synapse-react-client 4.0.16 → 4.0.18

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 (229) hide show
  1. package/README.md +5 -3
  2. package/dist/SWC.index.d.ts +1 -0
  3. package/dist/SWC.index.d.ts.map +1 -1
  4. package/dist/SWC.index.js +2 -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/DataGrid/utils/json-rx/JsonRxResponseComplete.js.map +1 -1
  45. package/dist/components/DownloadCart/RequestDownloadCard.js +14 -14
  46. package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
  47. package/dist/components/EntityAclEditor/EntityAclEditor.d.ts.map +1 -1
  48. package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
  49. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.d.ts.map +1 -1
  50. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  51. package/dist/components/EntityCitation/EntityCitationUtils.js.map +1 -1
  52. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
  53. package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
  54. package/dist/components/EntityFinder/EntityIdTextField.d.ts +17 -0
  55. package/dist/components/EntityFinder/EntityIdTextField.d.ts.map +1 -0
  56. package/dist/components/EntityFinder/EntityIdTextField.js +35 -0
  57. package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -0
  58. package/dist/components/EntityIcon.d.ts.map +1 -1
  59. package/dist/components/EntityIcon.js +2 -1
  60. package/dist/components/EntityIcon.js.map +1 -1
  61. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.d.ts.map +1 -1
  62. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js +22 -16
  63. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js.map +1 -1
  64. package/dist/components/FeaturedDataTabs/FacetPlotsCardGrid.js.map +1 -1
  65. package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
  66. package/dist/components/FullWidthAlert/FullWidthAlert.d.ts.map +1 -1
  67. package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
  68. package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.d.ts.map +1 -1
  69. package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.js.map +1 -1
  70. package/dist/components/Markdown/widget/MarkdownSynapsePlot.js.map +1 -1
  71. package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.d.ts.map +1 -1
  72. package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
  73. package/dist/components/PortalAclEditor/PortalAclEditor.d.ts.map +1 -1
  74. package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
  75. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.d.ts +1 -1
  76. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.d.ts.map +1 -1
  77. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js +1 -1
  78. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
  79. package/dist/components/PortalList/CreatePortalModal.d.ts.map +1 -1
  80. package/dist/components/PortalList/CreatePortalModal.js +34 -33
  81. package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
  82. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.d.ts.map +1 -1
  83. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
  84. package/dist/components/QueryWrapperPlotNav/RowSetView.d.ts.map +1 -1
  85. package/dist/components/QueryWrapperPlotNav/RowSetView.js.map +1 -1
  86. package/dist/components/Resources/Resources.Desktop.js.map +1 -1
  87. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
  88. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.d.ts.map +1 -1
  89. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
  90. package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.d.ts.map +1 -1
  91. package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.js.map +1 -1
  92. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.d.ts.map +1 -1
  93. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
  94. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  95. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.d.ts.map +1 -1
  96. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js +1 -1
  97. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
  98. package/dist/components/SynapseTable/SearchV2.js.map +1 -1
  99. package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
  100. package/dist/components/SynapseTable/SynapseTableUtils.d.ts.map +1 -1
  101. package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
  102. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
  103. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
  104. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.d.ts.map +1 -1
  105. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
  106. package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
  107. package/dist/components/TextField/TextField.css +1 -1
  108. package/dist/components/TextField/TextField.d.ts +14 -3
  109. package/dist/components/TextField/TextField.d.ts.map +1 -1
  110. package/dist/components/TextField/TextField.js +41 -43
  111. package/dist/components/TextField/TextField.js.map +1 -1
  112. package/dist/components/TextField/TextField.module.js +3 -4
  113. package/dist/components/TextField/TextField.module.js.map +1 -1
  114. package/dist/components/TextField/TextField.module.scss +18 -10
  115. package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.d.ts.map +1 -1
  116. package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js +20 -16
  117. package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
  118. package/dist/components/UserCardList/UserCardList.d.ts.map +1 -1
  119. package/dist/components/UserCardList/UserCardList.js.map +1 -1
  120. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Desktop.js.map +1 -1
  121. package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
  122. package/dist/components/UserSearchBox/UserSearchBox.d.ts.map +1 -1
  123. package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
  124. package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
  125. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
  126. package/dist/components/doi/CreateOrUpdateDoiModal.js +13 -13
  127. package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
  128. package/dist/components/entity/page/title_bar/TitleBarProperties.js +23 -23
  129. package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +1 -1
  130. package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
  131. package/dist/components/index.js +17 -17
  132. package/dist/components/styled/StyledFormControl.d.ts +15 -0
  133. package/dist/components/styled/StyledFormControl.d.ts.map +1 -1
  134. package/dist/components/styled/StyledFormControl.js +1 -0
  135. package/dist/components/styled/StyledFormControl.js.map +1 -1
  136. package/dist/components/styled/index.js +3 -3
  137. package/dist/components/utils/ConditionalWrapper.d.ts.map +1 -1
  138. package/dist/components/utils/ConditionalWrapper.js.map +1 -1
  139. package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
  140. package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts.map +1 -1
  141. package/dist/components/widgets/facet-nav/FacetNavPanel.js +69 -62
  142. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  143. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts +1 -0
  144. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts.map +1 -1
  145. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js +27 -26
  146. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
  147. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.d.ts +1 -0
  148. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.d.ts.map +1 -1
  149. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js +2 -1
  150. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js.map +1 -1
  151. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts +1 -0
  152. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts.map +1 -1
  153. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js +44 -43
  154. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
  155. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts +13 -0
  156. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -0
  157. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +398 -0
  158. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -0
  159. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
  160. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +49 -19
  161. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  162. package/dist/features/entity/metadata-task/components/MetadataTasksPage.d.ts.map +1 -1
  163. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +46 -25
  164. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
  165. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.d.ts +0 -1
  166. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.d.ts.map +1 -1
  167. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js +20 -22
  168. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
  169. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.d.ts.map +1 -1
  170. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js +25 -27
  171. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
  172. package/dist/features/entity/metadata-task/utils/constants.d.ts +26 -0
  173. package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
  174. package/dist/features/entity/metadata-task/utils/constants.js +2 -2
  175. package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
  176. package/dist/index.js +17 -17
  177. package/dist/mockServiceWorker.js +6 -8
  178. package/dist/mocks/curation/mockCurationTask.d.ts +2 -2
  179. package/dist/mocks/curation/mockCurationTask.d.ts.map +1 -1
  180. package/dist/mocks/curation/mockCurationTask.js +9 -5
  181. package/dist/mocks/curation/mockCurationTask.js.map +1 -1
  182. package/dist/mocks/msw/handlers/featureFlagHandlers.d.ts +1 -1
  183. package/dist/mocks/msw/handlers/featureFlagHandlers.d.ts.map +1 -1
  184. package/dist/mocks/msw/handlers/featureFlagHandlers.js +1 -1
  185. package/dist/mocks/msw/handlers/featureFlagHandlers.js.map +1 -1
  186. package/dist/style/components/_cards.scss +0 -3
  187. package/dist/style/components/_data-grid-extra.scss +2 -2
  188. package/dist/style/components/_login.scss +6 -2
  189. package/dist/style/main.css +1 -1
  190. package/dist/synapse-client/SynapseClient.d.ts +2 -1
  191. package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
  192. package/dist/synapse-client/SynapseClient.js.map +1 -1
  193. package/dist/synapse-queries/QueryFilterUtils.js.map +1 -1
  194. package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -0
  195. package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
  196. package/dist/synapse-queries/curation/task/useCurationTask.js +16 -6
  197. package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
  198. package/dist/synapse-queries/dataaccess/useAccessRequirements.d.ts.map +1 -1
  199. package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
  200. package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
  201. package/dist/synapse-queries/featureflags/useGetFeatureFlag.d.ts +1 -1
  202. package/dist/synapse-queries/featureflags/useGetFeatureFlag.d.ts.map +1 -1
  203. package/dist/synapse-queries/featureflags/useGetFeatureFlag.js.map +1 -1
  204. package/dist/synapse-queries/file/useFiles.d.ts.map +1 -1
  205. package/dist/synapse-queries/file/useFiles.js.map +1 -1
  206. package/dist/synapse-queries/termsOfService/useTermsOfService.d.ts.map +1 -1
  207. package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
  208. package/dist/synapse-queries/user/useGetUserChallenges.d.ts.map +1 -1
  209. package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
  210. package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
  211. package/dist/theme/palette/Palettes.d.ts +2 -2
  212. package/dist/theme/palette/Palettes.d.ts.map +1 -1
  213. package/dist/theme/palette/Palettes.js +2 -2
  214. package/dist/theme/palette/Palettes.js.map +1 -1
  215. package/dist/tsconfig.build.tsbuildinfo +1 -1
  216. package/dist/types/ThemeTypes.d.ts +5 -6
  217. package/dist/utils/AppUtils/session/SynapseSessionManager.d.ts.map +1 -1
  218. package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
  219. package/dist/utils/featureflag/FeatureFlags.d.ts +12 -0
  220. package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -0
  221. package/dist/utils/featureflag/FeatureFlags.js +8 -0
  222. package/dist/utils/featureflag/FeatureFlags.js.map +1 -0
  223. package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
  224. package/dist/utils/functions/queryUtils.js.map +1 -1
  225. package/dist/utils/hooks/useGetInfoFromIds.d.ts.map +1 -1
  226. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  227. package/dist/utils/slots/SlotUtils.d.ts.map +1 -1
  228. package/dist/utils/slots/SlotUtils.js.map +1 -1
  229. package/package.json +5 -6
@@ -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_TOOLTIP as ie, AUTH_MODE_SESSION_OWNER_TOOLTIP as ae, AUTH_MODE_SOURCE_BENEFACTOR_TOOLTIP as oe, COLLABORATORS_TOOLTIP as se, CREATE_CURATION_TASK_DIALOG_TITLE as ce, EDIT_CURATION_TASK_DIALOG_TITLE as le, FILE_BASED_FILE_VIEW_INPUT_DESCRIPTION as ue, FILE_BASED_TASK_DESCRIPTION as de, FILE_BASED_TASK_TITLE as fe, FILE_BASED_UPLOAD_FOLDER_INPUT_DESCRIPTION as pe, FILE_VIEW_FINDER_PROMPT as me, FILE_VIEW_FINDER_TITLE as he, RECORD_BASED_RECORD_SET_INPUT_DESCRIPTION as ge, RECORD_BASED_TASK_DESCRIPTION as _e, RECORD_BASED_TASK_TITLE as ve, RECORD_SET_FINDER_PROMPT as ye, RECORD_SET_FINDER_TITLE as be, SELECT_TASK_TYPE_DESCRIPTION as xe, TASK_INSTRUCTIONS_INPUT_DESCRIPTION as Se, TASK_NAME_INPUT_DESCRIPTION as Ce, UPLOAD_FOLDER_FINDER_PROMPT as we, UPLOAD_FOLDER_FINDER_TITLE as Te } 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 Ee, FormControlLabel as p, FormLabel as De, Grid as m, IconButton as Oe, InputLabel as h, Radio as g, RadioGroup as ke, 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 Ae 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 je(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: Me, 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, Ne] = l(() => M?.dataType ?? ""), [z, Pe] = l(() => M?.instructions ?? ""), [B, Fe] = l(() => M?.assigneePrincipalId), V = je(M?.taskProperties?.suggestedAuthorizationMode), [H, Ie] = l(V), [Le] = l(V), [U, Re] = l(() => {
31
+ let e = M?.taskProperties;
32
+ return e?.concreteType === O ? e.uploadFolderId ?? "" : "";
33
+ }), [W, ze] = l(() => {
34
+ let e = M?.taskProperties;
35
+ return e?.concreteType === O ? e.fileViewId ?? "" : "";
36
+ }), [G, Be] = 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: Ve, isPending: He, error: Ue } = te({ onSuccess: (e) => {
40
+ j(e);
41
+ } }), { mutate: We, isPending: Ge, error: Ke } = ne({ onSuccess: (e) => {
42
+ j(e);
43
+ } }), X = He || Ge, Z = Ue ?? Ke, qe = I === O && U && W || I === k && G;
44
+ function Je() {
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: Me,
60
+ dataType: R || void 0,
61
+ instructions: z || void 0,
62
+ assigneePrincipalId: B || void 0,
63
+ taskProperties: n
64
+ };
65
+ }
66
+ function Ye() {
67
+ let e = Je();
68
+ N ? We(e) : Ve(e);
69
+ }
70
+ let Xe = N && H !== Le, Ze = /* @__PURE__ */ S(Ee, { children: [/* @__PURE__ */ x(De, { children: "Authorization Mode" }), /* @__PURE__ */ S(ke, {
71
+ value: H,
72
+ onChange: (e, t) => Ie(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: "None (Legacy)"
86
+ }), /* @__PURE__ */ x(v, {
87
+ title: ie,
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: "Session Owner"
104
+ }), /* @__PURE__ */ x(v, {
105
+ title: ae,
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: "Source Benefactor"
122
+ }), /* @__PURE__ */ x(v, {
123
+ title: oe,
124
+ children: /* @__PURE__ */ x(D, { sx: { color: "grey.700" } })
125
+ })]
126
+ })
127
+ })
128
+ ]
129
+ })] }), Qe = /* @__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) => Fe(e ?? void 0),
146
+ typeFilter: C.ALL
147
+ }, E.toString())] }), $e = /* @__PURE__ */ S(_, {
148
+ gap: 2,
149
+ children: [
150
+ /* @__PURE__ */ x(n, {
151
+ label: "Task Name",
152
+ fullWidth: !0,
153
+ value: R,
154
+ onChange: (e) => Ne(e.target.value),
155
+ required: !0,
156
+ description: Ce
157
+ }),
158
+ /* @__PURE__ */ x(n, {
159
+ label: "Instructions",
160
+ fullWidth: !0,
161
+ multiline: !0,
162
+ minRows: 3,
163
+ value: z,
164
+ onChange: (e) => Pe(e.target.value),
165
+ description: Se
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: se,
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(Oe, {
206
+ size: "small",
207
+ onClick: () => q((t) => t.filter((t) => t !== e)),
208
+ children: /* @__PURE__ */ x(Ae, { fontSize: "small" })
209
+ })]
210
+ }, e))]
211
+ })]
212
+ })
213
+ ]
214
+ }), et = /* @__PURE__ */ S(_, {
215
+ gap: 2,
216
+ children: [/* @__PURE__ */ x(c, {
217
+ label: "Upload Folder ID",
218
+ value: U,
219
+ description: pe,
220
+ onChange: Re,
221
+ disabled: N,
222
+ entityFinderModalProps: {
223
+ title: Te,
224
+ promptCopy: we,
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: ue,
239
+ onChange: ze,
240
+ disabled: N,
241
+ entityFinderModalProps: {
242
+ title: he,
243
+ promptCopy: me,
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
+ }), tt = /* @__PURE__ */ x(c, {
256
+ label: "Record Set ID",
257
+ value: G,
258
+ description: ge,
259
+ onChange: Be,
260
+ disabled: N,
261
+ entityFinderModalProps: {
262
+ title: be,
263
+ promptCopy: ye,
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
+ }), nt = /* @__PURE__ */ S(_, {
275
+ gap: 2,
276
+ children: [/* @__PURE__ */ x(y, {
277
+ variant: "body1",
278
+ children: xe
279
+ }), /* @__PURE__ */ S(ee, { children: [/* @__PURE__ */ x(s, {
280
+ title: fe,
281
+ description: de,
282
+ onClick: () => {
283
+ L(O), F("TYPE_SPECIFIC_FIELDS");
284
+ }
285
+ }), /* @__PURE__ */ x(s, {
286
+ title: ve,
287
+ description: _e,
288
+ onClick: () => {
289
+ L(k), F("TYPE_SPECIFIC_FIELDS");
290
+ }
291
+ })] })]
292
+ }), rt = /* @__PURE__ */ S(_, {
293
+ gap: 2,
294
+ children: [I === O && et, I === k && tt]
295
+ }), it = /* @__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: $e
310
+ })
311
+ }), /* @__PURE__ */ x(m, {
312
+ size: {
313
+ xs: 12,
314
+ sm: 6
315
+ },
316
+ children: /* @__PURE__ */ S(_, {
317
+ gap: 3,
318
+ children: [Qe, Ze]
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
+ Xe && /* @__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
+ }), at = N ? le : ce, Q = null;
336
+ switch (P) {
337
+ case "SELECT_TYPE":
338
+ Q = nt;
339
+ break;
340
+ case "TYPE_SPECIFIC_FIELDS":
341
+ Q = rt;
342
+ break;
343
+ case "COMMON_MUTABLE_FIELDS":
344
+ Q = it;
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 || !qe,
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: Ye,
374
+ disabled: X || I === null,
375
+ children: "Save"
376
+ })] });
377
+ break;
378
+ }
379
+ return /* @__PURE__ */ x(t, {
380
+ open: E,
381
+ title: at,
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateOrUpdateCurationTaskDialog.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.tsx"],"sourcesContent":["import { DialogBase } from '@/components/DialogBase'\nimport EntityIdTextField from '@/components/EntityFinder/EntityIdTextField'\nimport { FinderScope } from '@/components/EntityFinder/tree/EntityTree'\nimport { VersionSelectionType } from '@/components/EntityFinder/VersionSelectionType'\nimport { TextField } from '@/components/TextField'\nimport UserOrTeamBadge from '@/components/UserOrTeamBadge/UserOrTeamBadge'\nimport UserSearchBox from '@/components/UserSearchBox/UserSearchBox'\nimport WizardChoiceButton from '@/components/WizardChoiceButton/WizardChoiceButton'\nimport WizardChoiceButtonGroup from '@/components/WizardChoiceButton/WizardChoiceButtonGroup'\nimport {\n useCreateCurationTask,\n useUpdateCurationTask,\n} from '@/synapse-queries/curation/task/useCurationTask'\nimport { EntityTypeGroup } from '@/utils/functions/EntityTypeUtils'\nimport { HelpTwoTone } from '@mui/icons-material'\nimport Close from '@mui/icons-material/Close'\nimport {\n Alert,\n Box,\n Button,\n FormControl,\n FormControlLabel,\n FormLabel,\n Grid,\n IconButton,\n InputLabel,\n Radio,\n RadioGroup,\n Stack,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport {\n CurationTask,\n CurationTaskProperties,\n EntityType,\n FileBasedMetadataTaskPropertiesConcreteTypeEnum,\n RecordBasedMetadataTaskPropertiesConcreteTypeEnum,\n} from '@sage-bionetworks/synapse-client'\nimport { TYPE_FILTER } from '@sage-bionetworks/synapse-types'\nimport { useState } from 'react'\nimport {\n ASSIGNEE_TOOLTIP,\n AUTH_MODE_CHANGED_WARNING,\n AUTH_MODE_NONE_TOOLTIP,\n AUTH_MODE_SESSION_OWNER_TOOLTIP,\n AUTH_MODE_SOURCE_BENEFACTOR_TOOLTIP,\n COLLABORATORS_TOOLTIP,\n CREATE_CURATION_TASK_DIALOG_TITLE,\n EDIT_CURATION_TASK_DIALOG_TITLE,\n FILE_BASED_FILE_VIEW_INPUT_DESCRIPTION,\n FILE_BASED_TASK_DESCRIPTION,\n FILE_BASED_TASK_TITLE,\n FILE_BASED_UPLOAD_FOLDER_INPUT_DESCRIPTION,\n FILE_VIEW_FINDER_PROMPT,\n FILE_VIEW_FINDER_TITLE,\n GENERIC_SAVE_ERROR_MESSAGE,\n RECORD_BASED_RECORD_SET_INPUT_DESCRIPTION,\n RECORD_BASED_TASK_DESCRIPTION,\n RECORD_BASED_TASK_TITLE,\n RECORD_SET_FINDER_PROMPT,\n RECORD_SET_FINDER_TITLE,\n SELECT_TASK_TYPE_DESCRIPTION,\n TASK_INSTRUCTIONS_INPUT_DESCRIPTION,\n TASK_NAME_INPUT_DESCRIPTION,\n UNRECOGNIZED_TASK_TYPE_ERROR,\n UPLOAD_FOLDER_FINDER_PROMPT,\n UPLOAD_FOLDER_FINDER_TITLE,\n} from '../utils/constants'\n\nexport type CreateOrUpdateCurationTaskDialogProps = {\n open: boolean\n onCancel: () => void\n onSuccess: (task: CurationTask) => void\n projectId: string\n task?: CurationTask\n}\n\nconst FILE_BASED_CONCRETE_TYPE =\n FileBasedMetadataTaskPropertiesConcreteTypeEnum.org_sagebionetworks_repo_model_curation_metadata_FileBasedMetadataTaskProperties\nconst RECORD_BASED_CONCRETE_TYPE =\n RecordBasedMetadataTaskPropertiesConcreteTypeEnum.org_sagebionetworks_repo_model_curation_metadata_RecordBasedMetadataTaskProperties\n\n/** Null represents the \"Legacy\" / unset option for suggestedAuthorizationMode */\ntype AuthorizationModeOption = 'SESSION_OWNER' | 'SOURCE_BENEFACTOR' | 'NONE'\n\nfunction toAuthorizationModeOption(\n value: string | undefined,\n): AuthorizationModeOption {\n if (value === 'SESSION_OWNER' || value === 'SOURCE_BENEFACTOR') return value\n return 'NONE'\n}\n\ntype CreateOrUpdateCurationTaskDialogStep =\n | 'SELECT_TYPE'\n | 'TYPE_SPECIFIC_FIELDS'\n | 'COMMON_MUTABLE_FIELDS'\n\n/**\n * Dialog component that guides a user through creating a new CurationTask or editing an existing one.\n */\nexport default function CreateOrUpdateCurationTaskDialog(\n props: CreateOrUpdateCurationTaskDialogProps,\n) {\n const { open, onCancel, onSuccess, projectId, task } = props\n const isEditMode = task !== undefined\n\n // In create mode: track which step we're on (1 = type selection, 2 = type-specific fields, 3 = common mutable fields)\n const [step, setStep] = useState<CreateOrUpdateCurationTaskDialogStep>(() =>\n task ? 'COMMON_MUTABLE_FIELDS' : 'SELECT_TYPE',\n )\n\n // Derive initial concrete type from the existing task (null in create mode\n // until the user picks a type in step 1)\n const [selectedConcreteType, setSelectedConcreteType] = useState<\n CurationTaskProperties['concreteType'] | null\n >(() => {\n const ct = task?.taskProperties?.concreteType\n if (ct === FILE_BASED_CONCRETE_TYPE || ct === RECORD_BASED_CONCRETE_TYPE)\n return ct\n return null\n })\n\n // Common task fields — lazily initialized from the existing task\n const [dataType, setDataType] = useState(() => task?.dataType ?? '')\n const [instructions, setInstructions] = useState(\n () => task?.instructions ?? '',\n )\n const [assigneePrincipalId, setAssigneePrincipalId] = useState<\n string | undefined\n >(() => task?.assigneePrincipalId)\n\n const initialAuthMode = toAuthorizationModeOption(\n task?.taskProperties?.suggestedAuthorizationMode,\n )\n const [authorizationMode, setAuthorizationMode] =\n useState<AuthorizationModeOption>(initialAuthMode)\n // Track the original value to detect unsaved changes\n const [originalAuthorizationMode] =\n useState<AuthorizationModeOption>(initialAuthMode)\n\n // FileBasedMetadataTaskProperties fields\n const [uploadFolderId, setUploadFolderId] = useState(() => {\n const tp = task?.taskProperties\n return tp?.concreteType === FILE_BASED_CONCRETE_TYPE\n ? (tp.uploadFolderId ?? '')\n : ''\n })\n const [fileViewId, setFileViewId] = useState(() => {\n const tp = task?.taskProperties\n return tp?.concreteType === FILE_BASED_CONCRETE_TYPE\n ? (tp.fileViewId ?? '')\n : ''\n })\n\n // RecordBasedMetadataTaskProperties fields\n const [recordSetId, setRecordSetId] = useState(() => {\n const tp = task?.taskProperties\n return tp?.concreteType === RECORD_BASED_CONCRETE_TYPE\n ? (tp.recordSetId ?? '')\n : ''\n })\n\n // Shared taskProperties fields\n const [collaboratorPrincipalIds, setCollaboratorPrincipalIds] = useState<\n string[]\n >(() => {\n const ids = task?.taskProperties?.collaboratorPrincipalIds\n return ids ?? []\n })\n const [pendingCollaboratorId, setPendingCollaboratorId] = useState<\n string | null\n >(null)\n\n const {\n mutate: createTask,\n isPending: isCreatePending,\n error: createError,\n } = useCreateCurationTask({\n onSuccess: created => {\n onSuccess(created)\n },\n })\n\n const {\n mutate: updateTask,\n isPending: isUpdatePending,\n error: updateError,\n } = useUpdateCurationTask({\n onSuccess: updated => {\n onSuccess(updated)\n },\n })\n\n const isPending = isCreatePending || isUpdatePending\n const error = createError ?? updateError\n\n const isTaskPropertiesValid =\n (selectedConcreteType === FILE_BASED_CONCRETE_TYPE &&\n uploadFolderId &&\n fileViewId) ||\n (selectedConcreteType === RECORD_BASED_CONCRETE_TYPE && recordSetId)\n\n function buildTaskPayload(): CurationTask {\n const suggestedAuthorizationMode =\n authorizationMode === 'NONE' ? undefined : authorizationMode\n\n const concreteType = selectedConcreteType!\n let taskProperties: CurationTask['taskProperties']\n const collaborators =\n collaboratorPrincipalIds.length > 0 ? collaboratorPrincipalIds : undefined\n\n if (concreteType === FILE_BASED_CONCRETE_TYPE) {\n taskProperties = {\n concreteType: FILE_BASED_CONCRETE_TYPE,\n uploadFolderId: uploadFolderId || undefined,\n fileViewId: fileViewId || undefined,\n suggestedAuthorizationMode,\n collaboratorPrincipalIds: collaborators,\n }\n } else {\n taskProperties = {\n concreteType: RECORD_BASED_CONCRETE_TYPE,\n recordSetId: recordSetId || undefined,\n suggestedAuthorizationMode,\n collaboratorPrincipalIds: collaborators,\n }\n }\n\n return {\n // Spread the existing task to carry over server-managed fields (taskId, etc.)\n ...(isEditMode ? task : {}),\n projectId,\n dataType: dataType || undefined,\n instructions: instructions || undefined,\n assigneePrincipalId: assigneePrincipalId || undefined,\n taskProperties,\n }\n }\n\n function handleSave() {\n const payload = buildTaskPayload()\n if (isEditMode) {\n updateTask(payload)\n } else {\n createTask(payload)\n }\n }\n\n const authModeChanged =\n isEditMode && authorizationMode !== originalAuthorizationMode\n\n // ── Authorization Mode radio group (shared between columns) ────────────\n const authModeField = (\n <FormControl>\n <FormLabel>Authorization Mode</FormLabel>\n <RadioGroup\n value={authorizationMode}\n onChange={(_e, v) => setAuthorizationMode(v as AuthorizationModeOption)}\n >\n <FormControlLabel\n value=\"NONE\"\n control={<Radio />}\n label={\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <Typography variant=\"body1\">None (Legacy)</Typography>\n <Tooltip title={AUTH_MODE_NONE_TOOLTIP}>\n <HelpTwoTone sx={{ color: 'grey.700' }} />\n </Tooltip>\n </Box>\n }\n />\n <FormControlLabel\n value=\"SESSION_OWNER\"\n control={<Radio />}\n label={\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <Typography variant=\"body1\">Session Owner</Typography>\n <Tooltip title={AUTH_MODE_SESSION_OWNER_TOOLTIP}>\n <HelpTwoTone sx={{ color: 'grey.700' }} />\n </Tooltip>\n </Box>\n }\n />\n <FormControlLabel\n value=\"SOURCE_BENEFACTOR\"\n control={<Radio />}\n label={\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <Typography variant=\"body1\">Source Benefactor</Typography>\n <Tooltip title={AUTH_MODE_SOURCE_BENEFACTOR_TOOLTIP}>\n <HelpTwoTone sx={{ color: 'grey.700' }} />\n </Tooltip>\n </Box>\n }\n />\n </RadioGroup>\n </FormControl>\n )\n\n const assigneeField = (\n <Box>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <InputLabel htmlFor=\"dlg-set-task-assignee\">Assignee</InputLabel>\n <Tooltip title={ASSIGNEE_TOOLTIP}>\n <div>\n <HelpTwoTone sx={{ color: 'grey.700' }} />\n </div>\n </Tooltip>\n </Box>\n <UserSearchBox\n inputId=\"dlg-set-task-assignee\"\n key={open.toString()}\n defaultValue={assigneePrincipalId}\n onChange={id => setAssigneePrincipalId(id ?? undefined)}\n typeFilter={TYPE_FILTER.ALL}\n />\n </Box>\n )\n\n // ── Form fields (used in both step 3 create and edit mode) ──────────────\n const commonFields = (\n <Stack gap={2}>\n <TextField\n label=\"Task Name\"\n fullWidth\n value={dataType}\n onChange={e => setDataType(e.target.value)}\n required\n description={TASK_NAME_INPUT_DESCRIPTION}\n />\n <TextField\n label=\"Instructions\"\n fullWidth\n multiline\n minRows={3}\n value={instructions}\n onChange={e => setInstructions(e.target.value)}\n description={TASK_INSTRUCTIONS_INPUT_DESCRIPTION}\n />\n {/* TODO: Display the below 'collaborators' once multiple owners are supported */}\n <Box display=\"none\">\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <InputLabel>Collaborators</InputLabel>\n <Tooltip title={COLLABORATORS_TOOLTIP}>\n <div>\n <HelpTwoTone sx={{ color: 'grey.700' }} />\n </div>\n </Tooltip>\n </Box>\n <Stack gap={1}>\n <Stack direction=\"row\" gap={1} alignItems=\"center\">\n <Box flex={1}>\n <UserSearchBox\n value={pendingCollaboratorId}\n onChange={id => setPendingCollaboratorId(id)}\n typeFilter={TYPE_FILTER.ALL}\n placeholder=\"Search for a user or team\"\n />\n </Box>\n <Button\n variant=\"outlined\"\n onClick={() => {\n if (\n pendingCollaboratorId &&\n !collaboratorPrincipalIds.includes(pendingCollaboratorId)\n ) {\n setCollaboratorPrincipalIds(prev => [\n ...prev,\n pendingCollaboratorId,\n ])\n }\n setPendingCollaboratorId(null)\n }}\n disabled={!pendingCollaboratorId}\n >\n Add\n </Button>\n </Stack>\n {collaboratorPrincipalIds.map(id => (\n <Stack\n key={id}\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n >\n <UserOrTeamBadge principalId={id} />\n <IconButton\n size=\"small\"\n onClick={() =>\n setCollaboratorPrincipalIds(prev =>\n prev.filter(x => x !== id),\n )\n }\n >\n <Close fontSize=\"small\" />\n </IconButton>\n </Stack>\n ))}\n </Stack>\n </Box>\n </Stack>\n )\n\n // ── TaskProperties fields ────────────────────────────────────────────────\n const fileBasedFields = (\n <Stack gap={2}>\n <EntityIdTextField\n label=\"Upload Folder ID\"\n value={uploadFolderId}\n description={FILE_BASED_UPLOAD_FOLDER_INPUT_DESCRIPTION}\n onChange={setUploadFolderId}\n disabled={isEditMode}\n entityFinderModalProps={{\n title: UPLOAD_FOLDER_FINDER_TITLE,\n promptCopy: UPLOAD_FOLDER_FINDER_PROMPT,\n confirmButtonCopy: 'Select',\n configuration: {\n initialScope: FinderScope.ALL_PROJECTS,\n initialContainer: 'root',\n selectMultiple: false,\n treeOnly: false,\n versionSelection: VersionSelectionType.DISALLOWED,\n selectableTypes: EntityTypeGroup.CONTAINER,\n },\n }}\n />\n <EntityIdTextField\n label=\"File View ID\"\n value={fileViewId}\n description={FILE_BASED_FILE_VIEW_INPUT_DESCRIPTION}\n onChange={setFileViewId}\n disabled={isEditMode}\n entityFinderModalProps={{\n title: FILE_VIEW_FINDER_TITLE,\n promptCopy: FILE_VIEW_FINDER_PROMPT,\n confirmButtonCopy: 'Select',\n configuration: {\n initialScope: FinderScope.ALL_PROJECTS,\n initialContainer: 'root',\n selectMultiple: false,\n treeOnly: false,\n versionSelection: VersionSelectionType.DISALLOWED,\n selectableTypes: [EntityType.entityview],\n },\n }}\n />\n </Stack>\n )\n\n const recordBasedFields = (\n <EntityIdTextField\n label=\"Record Set ID\"\n value={recordSetId}\n description={RECORD_BASED_RECORD_SET_INPUT_DESCRIPTION}\n onChange={setRecordSetId}\n disabled={isEditMode}\n entityFinderModalProps={{\n title: RECORD_SET_FINDER_TITLE,\n promptCopy: RECORD_SET_FINDER_PROMPT,\n confirmButtonCopy: 'Select',\n configuration: {\n initialScope: FinderScope.ALL_PROJECTS,\n initialContainer: 'root',\n selectMultiple: false,\n treeOnly: false,\n versionSelection: VersionSelectionType.DISALLOWED,\n selectableTypes: [EntityType.recordset],\n },\n }}\n />\n )\n\n // ── Step 1: Type selection ───────────────────────────────────────────────\n const step1Content = (\n <Stack gap={2}>\n <Typography variant=\"body1\">{SELECT_TASK_TYPE_DESCRIPTION}</Typography>\n <WizardChoiceButtonGroup>\n <WizardChoiceButton\n title={FILE_BASED_TASK_TITLE}\n description={FILE_BASED_TASK_DESCRIPTION}\n onClick={() => {\n setSelectedConcreteType(FILE_BASED_CONCRETE_TYPE)\n setStep('TYPE_SPECIFIC_FIELDS')\n }}\n />\n <WizardChoiceButton\n title={RECORD_BASED_TASK_TITLE}\n description={RECORD_BASED_TASK_DESCRIPTION}\n onClick={() => {\n setSelectedConcreteType(RECORD_BASED_CONCRETE_TYPE)\n setStep('TYPE_SPECIFIC_FIELDS')\n }}\n />\n </WizardChoiceButtonGroup>\n </Stack>\n )\n\n // ── Step 2: Type-specific fields ───────────────────────────────────────────────\n const step2Content = (\n <Stack gap={2}>\n {selectedConcreteType === FILE_BASED_CONCRETE_TYPE && fileBasedFields}\n {selectedConcreteType === RECORD_BASED_CONCRETE_TYPE && recordBasedFields}\n </Stack>\n )\n\n // ── Step 3 / edit form content ───────────────────────────────────────────\n const step3Content = (\n <Stack gap={3}>\n <Grid container spacing={3} alignItems=\"flex-start\">\n <Grid size={{ xs: 12, sm: 6 }}>\n <Stack gap={2}>{commonFields}</Stack>\n </Grid>\n <Grid size={{ xs: 12, sm: 6 }}>\n <Stack gap={3}>\n {assigneeField}\n {authModeField}\n </Stack>\n </Grid>\n </Grid>\n\n {isEditMode && selectedConcreteType === null && (\n <Alert severity=\"error\">{UNRECOGNIZED_TASK_TYPE_ERROR}</Alert>\n )}\n {authModeChanged && (\n <Alert severity=\"warning\">{AUTH_MODE_CHANGED_WARNING}</Alert>\n )}\n {error && (\n <Alert severity=\"error\">\n {error.reason ?? GENERIC_SAVE_ERROR_MESSAGE}\n </Alert>\n )}\n </Stack>\n )\n\n const title = isEditMode\n ? EDIT_CURATION_TASK_DIALOG_TITLE\n : CREATE_CURATION_TASK_DIALOG_TITLE\n\n let dialogContent = null\n switch (step) {\n case 'SELECT_TYPE':\n dialogContent = step1Content\n break\n case 'TYPE_SPECIFIC_FIELDS':\n dialogContent = step2Content\n break\n case 'COMMON_MUTABLE_FIELDS':\n dialogContent = step3Content\n break\n }\n\n let dialogActions = null\n switch (step) {\n case 'SELECT_TYPE':\n dialogActions = null\n break\n case 'TYPE_SPECIFIC_FIELDS': {\n dialogActions = (\n <>\n <Button\n variant=\"outlined\"\n onClick={() => setStep('SELECT_TYPE')}\n disabled={isPending}\n >\n Back\n </Button>\n <Button\n variant=\"contained\"\n onClick={() => setStep('COMMON_MUTABLE_FIELDS')}\n disabled={isPending || !isTaskPropertiesValid}\n >\n Next\n </Button>\n </>\n )\n break\n }\n case 'COMMON_MUTABLE_FIELDS': {\n dialogActions = (\n <>\n {!isEditMode && (\n <Button\n variant=\"outlined\"\n onClick={() => setStep('TYPE_SPECIFIC_FIELDS')}\n disabled={isPending}\n >\n Back\n </Button>\n )}\n <Button\n variant=\"contained\"\n onClick={handleSave}\n disabled={isPending || selectedConcreteType === null}\n >\n Save\n </Button>\n </>\n )\n break\n }\n }\n\n return (\n <DialogBase\n open={open}\n title={title}\n maxWidth=\"md\"\n fullWidth\n onCancel={onCancel}\n content={dialogContent}\n actions={\n <Stack direction=\"row\" gap={1} justifyContent=\"flex-end\" width=\"100%\">\n {dialogActions}\n </Stack>\n }\n />\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA8EA,IAAM,IACJ,EAAgD,kFAC5C,IACJ,EAAkD;AAKpD,SAAS,GACP,GACyB;AAEzB,QADI,MAAU,mBAAmB,MAAU,sBAA4B,IAChE;;AAWT,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,SAAM,aAAU,cAAW,eAAW,YAAS,GACjD,IAAa,MAAS,KAAA,GAGtB,CAAC,GAAM,KAAW,QACtB,IAAO,0BAA0B,cAClC,EAIK,CAAC,GAAsB,KAA2B,QAEhD;EACN,IAAM,IAAK,GAAM,gBAAgB;AAGjC,SAFI,MAAO,KAA4B,MAAO,IACrC,IACF;GACP,EAGI,CAAC,GAAU,MAAe,QAAe,GAAM,YAAY,GAAG,EAC9D,CAAC,GAAc,MAAmB,QAChC,GAAM,gBAAgB,GAC7B,EACK,CAAC,GAAqB,MAA0B,QAE9C,GAAM,oBAAoB,EAE5B,IAAkB,GACtB,GAAM,gBAAgB,2BACvB,EACK,CAAC,GAAmB,MACxB,EAAkC,EAAgB,EAE9C,CAAC,MACL,EAAkC,EAAgB,EAG9C,CAAC,GAAgB,MAAqB,QAAe;EACzD,IAAM,IAAK,GAAM;AACjB,SAAO,GAAI,iBAAiB,IACvB,EAAG,kBAAkB,KACtB;GACJ,EACI,CAAC,GAAY,MAAiB,QAAe;EACjD,IAAM,IAAK,GAAM;AACjB,SAAO,GAAI,iBAAiB,IACvB,EAAG,cAAc,KAClB;GACJ,EAGI,CAAC,GAAa,MAAkB,QAAe;EACnD,IAAM,IAAK,GAAM;AACjB,SAAO,GAAI,iBAAiB,IACvB,EAAG,eAAe,KACnB;GACJ,EAGI,CAAC,GAA0B,KAA+B,QAGlD,GAAM,gBAAgB,4BACpB,EAAE,CAChB,EACI,CAAC,GAAuB,KAA4B,EAExD,KAAK,EAED,EACJ,QAAQ,IACR,WAAW,IACX,OAAO,OACL,GAAsB,EACxB,YAAW,MAAW;AACpB,IAAU,EAAQ;IAErB,CAAC,EAEI,EACJ,QAAQ,IACR,WAAW,IACX,OAAO,OACL,GAAsB,EACxB,YAAW,MAAW;AACpB,IAAU,EAAQ;IAErB,CAAC,EAEI,IAAY,MAAmB,IAC/B,IAAQ,MAAe,IAEvB,KACH,MAAyB,KACxB,KACA,KACD,MAAyB,KAA8B;CAE1D,SAAS,KAAiC;EACxC,IAAM,IACJ,MAAsB,SAAS,KAAA,IAAY,GAEvC,IAAe,GACjB,GACE,IACJ,EAAyB,SAAS,IAAI,IAA2B,KAAA;AAmBnE,SAjBA,AASE,IATE,MAAiB,IACF;GACf,cAAc;GACd,gBAAgB,KAAkB,KAAA;GAClC,YAAY,KAAc,KAAA;GAC1B;GACA,0BAA0B;GAC3B,GAEgB;GACf,cAAc;GACd,aAAa,KAAe,KAAA;GAC5B;GACA,0BAA0B;GAC3B,EAGI;GAEL,GAAI,IAAa,IAAO,EAAE;GAC1B;GACA,UAAU,KAAY,KAAA;GACtB,cAAc,KAAgB,KAAA;GAC9B,qBAAqB,KAAuB,KAAA;GAC5C;GACD;;CAGH,SAAS,KAAa;EACpB,IAAM,IAAU,IAAkB;AAClC,EAAI,IACF,GAAW,EAAQ,GAEnB,GAAW,EAAQ;;CAIvB,IAAM,KACJ,KAAc,MAAsB,IAGhC,KACJ,kBAAC,IAAD,EAAA,UAAA,CACE,kBAAC,IAAD,EAAA,UAAW,sBAA8B,CAAA,EACzC,kBAAC,IAAD;EACE,OAAO;EACP,WAAW,GAAI,MAAM,GAAqB,EAA6B;YAFzE;GAIE,kBAAC,GAAD;IACE,OAAM;IACN,SAAS,kBAAC,GAAD,EAAS,CAAA;IAClB,OACE,kBAAC,GAAD;KAAK,IAAI;MAAE,SAAS;MAAQ,YAAY;MAAU,KAAK;MAAK;eAA5D,CACE,kBAAC,GAAD;MAAY,SAAQ;gBAAQ;MAA0B,CAAA,EACtD,kBAAC,GAAD;MAAS,OAAO;gBACd,kBAAC,GAAD,EAAa,IAAI,EAAE,OAAO,YAAY,EAAI,CAAA;MAClC,CAAA,CACN;;IAER,CAAA;GACF,kBAAC,GAAD;IACE,OAAM;IACN,SAAS,kBAAC,GAAD,EAAS,CAAA;IAClB,OACE,kBAAC,GAAD;KAAK,IAAI;MAAE,SAAS;MAAQ,YAAY;MAAU,KAAK;MAAK;eAA5D,CACE,kBAAC,GAAD;MAAY,SAAQ;gBAAQ;MAA0B,CAAA,EACtD,kBAAC,GAAD;MAAS,OAAO;gBACd,kBAAC,GAAD,EAAa,IAAI,EAAE,OAAO,YAAY,EAAI,CAAA;MAClC,CAAA,CACN;;IAER,CAAA;GACF,kBAAC,GAAD;IACE,OAAM;IACN,SAAS,kBAAC,GAAD,EAAS,CAAA;IAClB,OACE,kBAAC,GAAD;KAAK,IAAI;MAAE,SAAS;MAAQ,YAAY;MAAU,KAAK;MAAK;eAA5D,CACE,kBAAC,GAAD;MAAY,SAAQ;gBAAQ;MAA8B,CAAA,EAC1D,kBAAC,GAAD;MAAS,OAAO;gBACd,kBAAC,GAAD,EAAa,IAAI,EAAE,OAAO,YAAY,EAAI,CAAA;MAClC,CAAA,CACN;;IAER,CAAA;GACS;IACD,EAAA,CAAA,EAGV,KACJ,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EAAK,IAAI;GAAE,SAAS;GAAQ,YAAY;GAAU,KAAK;GAAK;YAA5D,CACE,kBAAC,GAAD;GAAY,SAAQ;aAAwB;GAAqB,CAAA,EACjE,kBAAC,GAAD;GAAS,OAAO;aACd,kBAAC,OAAD,EAAA,UACE,kBAAC,GAAD,EAAa,IAAI,EAAE,OAAO,YAAY,EAAI,CAAA,EACtC,CAAA;GACE,CAAA,CACN;KACN,kBAAC,GAAD;EACE,SAAQ;EAER,cAAc;EACd,WAAU,MAAM,GAAuB,KAAM,KAAA,EAAU;EACvD,YAAY,EAAY;EACxB,EAJK,EAAK,UAAU,CAIpB,CACE,EAAA,CAAA,EAIF,KACJ,kBAAC,GAAD;EAAO,KAAK;YAAZ;GACE,kBAAC,GAAD;IACE,OAAM;IACN,WAAA;IACA,OAAO;IACP,WAAU,MAAK,GAAY,EAAE,OAAO,MAAM;IAC1C,UAAA;IACA,aAAa;IACb,CAAA;GACF,kBAAC,GAAD;IACE,OAAM;IACN,WAAA;IACA,WAAA;IACA,SAAS;IACT,OAAO;IACP,WAAU,MAAK,GAAgB,EAAE,OAAO,MAAM;IAC9C,aAAa;IACb,CAAA;GAEF,kBAAC,GAAD;IAAK,SAAQ;cAAb,CACE,kBAAC,GAAD;KAAK,IAAI;MAAE,SAAS;MAAQ,YAAY;MAAU,KAAK;MAAK;eAA5D,CACE,kBAAC,GAAD,EAAA,UAAY,iBAA0B,CAAA,EACtC,kBAAC,GAAD;MAAS,OAAO;gBACd,kBAAC,OAAD,EAAA,UACE,kBAAC,GAAD,EAAa,IAAI,EAAE,OAAO,YAAY,EAAI,CAAA,EACtC,CAAA;MACE,CAAA,CACN;QACN,kBAAC,GAAD;KAAO,KAAK;eAAZ,CACE,kBAAC,GAAD;MAAO,WAAU;MAAM,KAAK;MAAG,YAAW;gBAA1C,CACE,kBAAC,GAAD;OAAK,MAAM;iBACT,kBAAC,GAAD;QACE,OAAO;QACP,WAAU,MAAM,EAAyB,EAAG;QAC5C,YAAY,EAAY;QACxB,aAAY;QACZ,CAAA;OACE,CAAA,EACN,kBAAC,GAAD;OACE,SAAQ;OACR,eAAe;AAUb,QARE,KACA,CAAC,EAAyB,SAAS,EAAsB,IAEzD,GAA4B,MAAQ,CAClC,GAAG,GACH,EACD,CAAC,EAEJ,EAAyB,KAAK;;OAEhC,UAAU,CAAC;iBACZ;OAEQ,CAAA,CACH;SACP,EAAyB,KAAI,MAC5B,kBAAC,GAAD;MAEE,WAAU;MACV,YAAW;MACX,gBAAe;gBAJjB,CAME,kBAAC,GAAD,EAAiB,aAAa,GAAM,CAAA,EACpC,kBAAC,IAAD;OACE,MAAK;OACL,eACE,GAA4B,MAC1B,EAAK,QAAO,MAAK,MAAM,EAAG,CAC3B;iBAGH,kBAAC,IAAD,EAAO,UAAS,SAAU,CAAA;OACf,CAAA,CACP;QAhBD,EAgBC,CACR,CACI;OACJ;;GACA;KAIJ,KACJ,kBAAC,GAAD;EAAO,KAAK;YAAZ,CACE,kBAAC,GAAD;GACE,OAAM;GACN,OAAO;GACP,aAAa;GACb,UAAU;GACV,UAAU;GACV,wBAAwB;IACtB,OAAO;IACP,YAAY;IACZ,mBAAmB;IACnB,eAAe;KACb,cAAc,EAAY;KAC1B,kBAAkB;KAClB,gBAAgB;KAChB,UAAU;KACV,kBAAkB,EAAqB;KACvC,iBAAiB,EAAgB;KAClC;IACF;GACD,CAAA,EACF,kBAAC,GAAD;GACE,OAAM;GACN,OAAO;GACP,aAAa;GACb,UAAU;GACV,UAAU;GACV,wBAAwB;IACtB,OAAO;IACP,YAAY;IACZ,mBAAmB;IACnB,eAAe;KACb,cAAc,EAAY;KAC1B,kBAAkB;KAClB,gBAAgB;KAChB,UAAU;KACV,kBAAkB,EAAqB;KACvC,iBAAiB,CAAC,EAAW,WAAW;KACzC;IACF;GACD,CAAA,CACI;KAGJ,KACJ,kBAAC,GAAD;EACE,OAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,UAAU;EACV,wBAAwB;GACtB,OAAO;GACP,YAAY;GACZ,mBAAmB;GACnB,eAAe;IACb,cAAc,EAAY;IAC1B,kBAAkB;IAClB,gBAAgB;IAChB,UAAU;IACV,kBAAkB,EAAqB;IACvC,iBAAiB,CAAC,EAAW,UAAU;IACxC;GACF;EACD,CAAA,EAIE,KACJ,kBAAC,GAAD;EAAO,KAAK;YAAZ,CACE,kBAAC,GAAD;GAAY,SAAQ;aAAS;GAA0C,CAAA,EACvE,kBAAC,IAAD,EAAA,UAAA,CACE,kBAAC,GAAD;GACE,OAAO;GACP,aAAa;GACb,eAAe;AAEb,IADA,EAAwB,EAAyB,EACjD,EAAQ,uBAAuB;;GAEjC,CAAA,EACF,kBAAC,GAAD;GACE,OAAO;GACP,aAAa;GACb,eAAe;AAEb,IADA,EAAwB,EAA2B,EACnD,EAAQ,uBAAuB;;GAEjC,CAAA,CACsB,EAAA,CAAA,CACpB;KAIJ,KACJ,kBAAC,GAAD;EAAO,KAAK;YAAZ,CACG,MAAyB,KAA4B,IACrD,MAAyB,KAA8B,GAClD;KAIJ,KACJ,kBAAC,GAAD;EAAO,KAAK;YAAZ;GACE,kBAAC,GAAD;IAAM,WAAA;IAAU,SAAS;IAAG,YAAW;cAAvC,CACE,kBAAC,GAAD;KAAM,MAAM;MAAE,IAAI;MAAI,IAAI;MAAG;eAC3B,kBAAC,GAAD;MAAO,KAAK;gBAAI;MAAqB,CAAA;KAChC,CAAA,EACP,kBAAC,GAAD;KAAM,MAAM;MAAE,IAAI;MAAI,IAAI;MAAG;eAC3B,kBAAC,GAAD;MAAO,KAAK;gBAAZ,CACG,IACA,GACK;;KACH,CAAA,CACF;;GAEN,KAAc,MAAyB,QACtC,kBAAC,GAAD;IAAO,UAAS;;IAA8C,CAAA;GAE/D,MACC,kBAAC,GAAD;IAAO,UAAS;;IAA6C,CAAA;GAE9D,KACC,kBAAC,GAAD;IAAO,UAAS;cACb,EAAM,UAAA;IACD,CAAA;GAEJ;KAGJ,KAAQ,IACV,KACA,IAEA,IAAgB;AACpB,SAAQ,GAAR;EACE,KAAK;AACH,OAAgB;AAChB;EACF,KAAK;AACH,OAAgB;AAChB;EACF,KAAK;AACH,OAAgB;AAChB;;CAGJ,IAAI,IAAgB;AACpB,SAAQ,GAAR;EACE,KAAK;AACH,OAAgB;AAChB;EACF,KAAK;AACH,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;IACE,SAAQ;IACR,eAAe,EAAQ,cAAc;IACrC,UAAU;cACX;IAEQ,CAAA,EACT,kBAAC,GAAD;IACE,SAAQ;IACR,eAAe,EAAQ,wBAAwB;IAC/C,UAAU,KAAa,CAAC;cACzB;IAEQ,CAAA,CACR,EAAA,CAAA;AAEL;EAEF,KAAK;AACH,OACE,kBAAA,GAAA,EAAA,UAAA,CACG,CAAC,KACA,kBAAC,GAAD;IACE,SAAQ;IACR,eAAe,EAAQ,uBAAuB;IAC9C,UAAU;cACX;IAEQ,CAAA,EAEX,kBAAC,GAAD;IACE,SAAQ;IACR,SAAS;IACT,UAAU,KAAa,MAAyB;cACjD;IAEQ,CAAA,CACR,EAAA,CAAA;AAEL;;AAIJ,QACE,kBAAC,GAAD;EACQ;EACC;EACP,UAAS;EACT,WAAA;EACU;EACV,SAAS;EACT,SACE,kBAAC,GAAD;GAAO,WAAU;GAAM,KAAK;GAAG,gBAAe;GAAW,OAAM;aAC5D;GACK,CAAA;EAEV,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataTaskTableActionCell.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/components/MetadataTaskTableActionCell.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAO7D,eAAO,MAAM,qCAAqC,uBAAuB,CAAA;AAEzE;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,2BAA2B,CAAC,KAAK,EAAE;IACzD,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;CACjB,2CA+BA"}
1
+ {"version":3,"file":"MetadataTaskTableActionCell.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/components/MetadataTaskTableActionCell.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAU7D,eAAO,MAAM,qCAAqC,uBAAuB,CAAA;AAEzE;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,2BAA2B,CAAC,KAAK,EAAE;IACzD,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;CACjB,2CAgEA"}
@@ -1,25 +1,55 @@
1
- import { OPEN_CURATOR_NO_PERMISSION_ON_SOURCE_ERROR_MESSAGE as e, OPEN_CURATOR_TOOLTIP_TITLE as t } from "../utils/constants.js";
2
- import n from "../hooks/useOpenCuratorButton.js";
3
- import { Button as r, Tooltip as i } from "@mui/material";
4
- import { Fragment as a, jsx as o } from "react/jsx-runtime";
5
- import { StickyNote2Outlined as s } from "@mui/icons-material";
1
+ import { displayToast as e } from "../../../../components/ToastMessage/ToastMessage.js";
2
+ import { useGlobalIsEditingContext as t } from "../../../../utils/context/GlobalIsEditingContext.js";
3
+ import "../../../../components/ToastMessage/index.js";
4
+ import { OPEN_CURATOR_NO_PERMISSION_ON_SOURCE_ERROR_MESSAGE as n, OPEN_CURATOR_TOOLTIP_TITLE as r } from "../utils/constants.js";
5
+ import i from "../hooks/useOpenCuratorButton.js";
6
+ import a from "./CreateOrUpdateCurationTaskDialog.js";
7
+ import { useState as o } from "react";
8
+ import { Box as s, Button as c, Tooltip as l } from "@mui/material";
9
+ import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
10
+ import { StickyNote2Outlined as p } from "@mui/icons-material";
6
11
  //#region src/features/entity/metadata-task/components/MetadataTaskTableActionCell.tsx
7
- var c = "Task is Unassigned";
8
- function l(c) {
9
- let { taskBundle: l } = c, { hasPermission: u, isLoading: d, isPending: f, onClick: p } = n(l), m = f || d || !u, h;
10
- return u === !0 ? h = t : u === !1 && (h = e), /* @__PURE__ */ o(a, { children: /* @__PURE__ */ o(i, {
11
- title: h,
12
- children: /* @__PURE__ */ o("span", { children: /* @__PURE__ */ o(r, {
12
+ var m = "Task is Unassigned";
13
+ function h(m) {
14
+ let { canEdit: h, taskBundle: g } = m, [_, v] = o(!1), { setIsEditing: y } = t(), { hasPermission: b, isLoading: x, isPending: S, onClick: C } = i(g), w = S || x || !b, T;
15
+ return b === !0 ? T = r : b === !1 && (T = n), /* @__PURE__ */ f(s, {
16
+ sx: {
17
+ display: "flex",
18
+ flexDirection: "row",
19
+ gap: 1
20
+ },
21
+ children: [h && /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ d(a, {
22
+ projectId: g.task.projectId,
23
+ open: _,
24
+ task: g.task,
25
+ onSuccess: () => {
26
+ e("Curation task updated successfully", "success"), v(!1), y(!1);
27
+ },
28
+ onCancel: () => {
29
+ v(!1), y(!1);
30
+ }
31
+ }, String(_)), /* @__PURE__ */ d(c, {
32
+ variant: "outlined",
33
+ onClick: () => {
34
+ v(!0), y(!0);
35
+ },
13
36
  size: "small",
14
- startIcon: /* @__PURE__ */ o(s, {}),
15
- loading: f,
16
- disabled: m,
17
- onClick: p,
18
- children: "Open Curator"
19
- }) })
20
- }) });
37
+ children: "Edit"
38
+ })] }), /* @__PURE__ */ d(l, {
39
+ title: T,
40
+ children: /* @__PURE__ */ d("span", { children: /* @__PURE__ */ d(c, {
41
+ variant: "contained",
42
+ size: "small",
43
+ startIcon: /* @__PURE__ */ d(p, {}),
44
+ loading: S,
45
+ disabled: w,
46
+ onClick: C,
47
+ children: "Open Curator"
48
+ }) })
49
+ })]
50
+ });
21
51
  }
22
52
  //#endregion
23
- export { c as NO_TASK_ASSIGNEE_WARNING_DIALOG_TITLE, l as default };
53
+ export { m as NO_TASK_ASSIGNEE_WARNING_DIALOG_TITLE, h as default };
24
54
 
25
55
  //# sourceMappingURL=MetadataTaskTableActionCell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataTaskTableActionCell.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/components/MetadataTaskTableActionCell.tsx"],"sourcesContent":["import { StickyNote2Outlined } from '@mui/icons-material'\nimport { Button, Tooltip } from '@mui/material'\nimport { TaskBundle } from '@sage-bionetworks/synapse-client'\nimport useOpenCuratorFromTaskButton from '../hooks/useOpenCuratorButton'\nimport {\n OPEN_CURATOR_TOOLTIP_TITLE,\n OPEN_CURATOR_NO_PERMISSION_ON_SOURCE_ERROR_MESSAGE,\n} from '../utils/constants'\n\nexport const NO_TASK_ASSIGNEE_WARNING_DIALOG_TITLE = 'Task is Unassigned'\n\n/**\n * Handles rendering the 'Actions' cell in the Metadata Task table, which provides buttons for the user\n * to accomplish the actions they can take on a Metadata Task, such as opening a data grid for the entity referenced\n * by the task.\n */\nexport default function MetadataTaskTableActionCell(props: {\n taskBundle: TaskBundle\n canEdit: boolean\n}) {\n const { taskBundle } = props\n\n const { hasPermission, isLoading, isPending, onClick } =\n useOpenCuratorFromTaskButton(taskBundle)\n\n const disableButton = isPending || isLoading || !hasPermission\n let tooltipTitle: string | undefined = undefined\n if (hasPermission === true) {\n tooltipTitle = OPEN_CURATOR_TOOLTIP_TITLE\n } else if (hasPermission === false) {\n tooltipTitle = OPEN_CURATOR_NO_PERMISSION_ON_SOURCE_ERROR_MESSAGE\n }\n\n return (\n <>\n <Tooltip title={tooltipTitle}>\n <span>\n <Button\n size={'small'}\n startIcon={<StickyNote2Outlined />}\n loading={isPending}\n disabled={disableButton}\n onClick={onClick}\n >\n Open Curator\n </Button>\n </span>\n </Tooltip>\n </>\n )\n}\n"],"mappings":";;;;;;AASA,IAAa,IAAwC;AAOrD,SAAwB,EAA4B,GAGjD;CACD,IAAM,EAAE,kBAAe,GAEjB,EAAE,kBAAe,cAAW,cAAW,eAC3C,EAA6B,EAAW,EAEpC,IAAgB,KAAa,KAAa,CAAC,GAC7C;AAOJ,QANI,MAAkB,KACpB,IAAe,IACN,MAAkB,OAC3B,IAAe,IAIf,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;EAAS,OAAO;YACd,kBAAC,QAAD,EAAA,UACE,kBAAC,GAAD;GACE,MAAM;GACN,WAAW,kBAAC,GAAD,EAAuB,CAAA;GAClC,SAAS;GACT,UAAU;GACD;aACV;GAEQ,CAAA,EACJ,CAAA;EACC,CAAA,EACT,CAAA"}
1
+ {"version":3,"file":"MetadataTaskTableActionCell.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/components/MetadataTaskTableActionCell.tsx"],"sourcesContent":["import { displayToast } from '@/components/ToastMessage'\nimport { StickyNote2Outlined } from '@mui/icons-material'\nimport { Box, Button, Tooltip } from '@mui/material'\nimport { TaskBundle } from '@sage-bionetworks/synapse-client'\nimport { useState } from 'react'\nimport useOpenCuratorFromTaskButton from '../hooks/useOpenCuratorButton'\nimport {\n OPEN_CURATOR_NO_PERMISSION_ON_SOURCE_ERROR_MESSAGE,\n OPEN_CURATOR_TOOLTIP_TITLE,\n} from '../utils/constants'\nimport CreateOrUpdateCurationTaskDialog from './CreateOrUpdateCurationTaskDialog'\nimport { useGlobalIsEditingContext } from '@/utils/context/GlobalIsEditingContext'\n\nexport const NO_TASK_ASSIGNEE_WARNING_DIALOG_TITLE = 'Task is Unassigned'\n\n/**\n * Handles rendering the 'Actions' cell in the Metadata Task table, which provides buttons for the user\n * to accomplish the actions they can take on a Metadata Task, such as opening a data grid for the entity referenced\n * by the task.\n */\nexport default function MetadataTaskTableActionCell(props: {\n taskBundle: TaskBundle\n canEdit: boolean\n}) {\n const { canEdit, taskBundle } = props\n\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n const { setIsEditing } = useGlobalIsEditingContext()\n\n const { hasPermission, isLoading, isPending, onClick } =\n useOpenCuratorFromTaskButton(taskBundle)\n\n const disableButton = isPending || isLoading || !hasPermission\n let tooltipTitle: string | undefined = undefined\n if (hasPermission === true) {\n tooltipTitle = OPEN_CURATOR_TOOLTIP_TITLE\n } else if (hasPermission === false) {\n tooltipTitle = OPEN_CURATOR_NO_PERMISSION_ON_SOURCE_ERROR_MESSAGE\n }\n\n return (\n <Box sx={{ display: 'flex', flexDirection: 'row', gap: 1 }}>\n {canEdit && (\n <>\n <CreateOrUpdateCurationTaskDialog\n key={String(isDialogOpen)}\n projectId={taskBundle.task!.projectId!}\n open={isDialogOpen}\n task={taskBundle.task}\n onSuccess={() => {\n displayToast('Curation task updated successfully', 'success')\n setIsDialogOpen(false)\n setIsEditing(false)\n }}\n onCancel={() => {\n setIsDialogOpen(false)\n setIsEditing(false)\n }}\n />\n <Button\n variant=\"outlined\"\n onClick={() => {\n setIsDialogOpen(true)\n setIsEditing(true)\n }}\n size={'small'}\n >\n Edit\n </Button>\n </>\n )}\n <Tooltip title={tooltipTitle}>\n <span>\n <Button\n variant=\"contained\"\n size={'small'}\n startIcon={<StickyNote2Outlined />}\n loading={isPending}\n disabled={disableButton}\n onClick={onClick}\n >\n Open Curator\n </Button>\n </span>\n </Tooltip>\n </Box>\n )\n}\n"],"mappings":";;;;;;;;;;;AAaA,IAAa,IAAwC;AAOrD,SAAwB,EAA4B,GAGjD;CACD,IAAM,EAAE,YAAS,kBAAe,GAE1B,CAAC,GAAc,KAAmB,EAAS,GAAM,EACjD,EAAE,oBAAiB,GAA2B,EAE9C,EAAE,kBAAe,cAAW,cAAW,eAC3C,EAA6B,EAAW,EAEpC,IAAgB,KAAa,KAAa,CAAC,GAC7C;AAOJ,QANI,MAAkB,KACpB,IAAe,IACN,MAAkB,OAC3B,IAAe,IAIf,kBAAC,GAAD;EAAK,IAAI;GAAE,SAAS;GAAQ,eAAe;GAAO,KAAK;GAAG;YAA1D,CACG,KACC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GAEE,WAAW,EAAW,KAAM;GAC5B,MAAM;GACN,MAAM,EAAW;GACjB,iBAAiB;AAGf,IAFA,EAAa,sCAAsC,UAAU,EAC7D,EAAgB,GAAM,EACtB,EAAa,GAAM;;GAErB,gBAAgB;AAEd,IADA,EAAgB,GAAM,EACtB,EAAa,GAAM;;GAErB,EAbK,OAAO,EAAa,CAazB,EACF,kBAAC,GAAD;GACE,SAAQ;GACR,eAAe;AAEb,IADA,EAAgB,GAAK,EACrB,EAAa,GAAK;;GAEpB,MAAM;aACP;GAEQ,CAAA,CACR,EAAA,CAAA,EAEL,kBAAC,GAAD;GAAS,OAAO;aACd,kBAAC,QAAD,EAAA,UACE,kBAAC,GAAD;IACE,SAAQ;IACR,MAAM;IACN,WAAW,kBAAC,GAAD,EAAuB,CAAA;IAClC,SAAS;IACT,UAAU;IACD;cACV;IAEQ,CAAA,EACJ,CAAA;GACC,CAAA,CACN"}
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataTasksPage.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/components/MetadataTasksPage.tsx"],"names":[],"mappings":"AAOA,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CAgDtE"}
1
+ {"version":3,"file":"MetadataTasksPage.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/components/MetadataTasksPage.tsx"],"names":[],"mappings":"AAYA,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CAiFtE"}