synapse-react-client 4.0.27 → 4.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SWC.index.js +1 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +102 -94
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/components/GridMenuButton/GridMenuButton.d.ts +4 -1
- package/dist/components/DataGrid/components/GridMenuButton/GridMenuButton.d.ts.map +1 -1
- package/dist/components/DataGrid/components/GridMenuButton/GridMenuButton.js +1 -0
- package/dist/components/DataGrid/components/GridMenuButton/GridMenuButton.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +12 -3
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
- package/dist/features/curator/dashboard/components/CurationTaskCard.css +1 -1
- package/dist/features/curator/dashboard/components/CurationTaskCard.module.js +13 -10
- package/dist/features/curator/dashboard/components/CurationTaskCard.module.js.map +1 -1
- package/dist/features/curator/dashboard/components/CurationTaskCard.module.scss +20 -0
- package/dist/features/curator/dashboard/components/CurationTaskCardLayout.d.ts.map +1 -1
- package/dist/features/curator/dashboard/components/CurationTaskCardLayout.js +62 -49
- package/dist/features/curator/dashboard/components/CurationTaskCardLayout.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +33 -34
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.js +16 -20
- package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.js.map +1 -1
- package/dist/features/entity/metadata-task/create-task/ComputeTaskForm.d.ts +1 -1
- package/dist/features/entity/metadata-task/create-task/ComputeTaskForm.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/create-task/ComputeTaskForm.js +89 -122
- package/dist/features/entity/metadata-task/create-task/ComputeTaskForm.js.map +1 -1
- package/dist/features/entity/metadata-task/create-task/CurateTaskForm.d.ts +1 -1
- package/dist/features/entity/metadata-task/create-task/CurateTaskForm.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js +77 -102
- package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js.map +1 -1
- package/dist/features/entity/metadata-task/create-task/FileBasedFields.d.ts +6 -1
- package/dist/features/entity/metadata-task/create-task/FileBasedFields.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/create-task/FileBasedFields.js +9 -2
- package/dist/features/entity/metadata-task/create-task/FileBasedFields.js.map +1 -1
- package/dist/features/entity/metadata-task/create-task/RecordBasedFields.d.ts +5 -1
- package/dist/features/entity/metadata-task/create-task/RecordBasedFields.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/create-task/RecordBasedFields.js +6 -2
- package/dist/features/entity/metadata-task/create-task/RecordBasedFields.js.map +1 -1
- package/dist/features/entity/metadata-task/create-task/RecordSetFields.d.ts +7 -1
- package/dist/features/entity/metadata-task/create-task/RecordSetFields.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/create-task/RecordSetFields.js +10 -2
- package/dist/features/entity/metadata-task/create-task/RecordSetFields.js.map +1 -1
- package/dist/features/entity/metadata-task/create-task/SampleSheetFields.d.ts +6 -1
- package/dist/features/entity/metadata-task/create-task/SampleSheetFields.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/create-task/SampleSheetFields.js +9 -2
- package/dist/features/entity/metadata-task/create-task/SampleSheetFields.js.map +1 -1
- package/dist/features/entity/metadata-task/create-task/TaskStatusField.d.ts +19 -0
- package/dist/features/entity/metadata-task/create-task/TaskStatusField.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/TaskStatusField.js +32 -0
- package/dist/features/entity/metadata-task/create-task/TaskStatusField.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/curationTaskFlowRoutes.d.ts +21 -0
- package/dist/features/entity/metadata-task/create-task/curationTaskFlowRoutes.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/curationTaskFlowRoutes.js +100 -0
- package/dist/features/entity/metadata-task/create-task/curationTaskFlowRoutes.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/useComputeTypeFields.d.ts +24 -0
- package/dist/features/entity/metadata-task/create-task/useComputeTypeFields.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/useComputeTypeFields.js +56 -0
- package/dist/features/entity/metadata-task/create-task/useComputeTypeFields.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/useCurateTypeFields.d.ts +26 -0
- package/dist/features/entity/metadata-task/create-task/useCurateTypeFields.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/useCurateTypeFields.js +57 -0
- package/dist/features/entity/metadata-task/create-task/useCurateTypeFields.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/useCurationTaskFormState.d.ts +4 -2
- package/dist/features/entity/metadata-task/create-task/useCurationTaskFormState.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/create-task/useCurationTaskFormState.js +12 -11
- package/dist/features/entity/metadata-task/create-task/useCurationTaskFormState.js.map +1 -1
- package/dist/features/entity/metadata-task/create-task/utils/buildComputeTaskPayload.d.ts +9 -14
- package/dist/features/entity/metadata-task/create-task/utils/buildComputeTaskPayload.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/create-task/utils/buildComputeTaskPayload.js +11 -7
- package/dist/features/entity/metadata-task/create-task/utils/buildComputeTaskPayload.js.map +1 -1
- package/dist/features/entity/metadata-task/create-task/utils/buildCurateTaskPayload.d.ts +11 -12
- package/dist/features/entity/metadata-task/create-task/utils/buildCurateTaskPayload.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/create-task/utils/buildCurateTaskPayload.js +17 -12
- package/dist/features/entity/metadata-task/create-task/utils/buildCurateTaskPayload.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.d.ts +14 -1
- package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.js +23 -20
- package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/dist/features/entity/metadata-task/create-task/CreateCurationTaskFlow.d.ts +0 -18
- package/dist/features/entity/metadata-task/create-task/CreateCurationTaskFlow.d.ts.map +0 -1
- package/dist/features/entity/metadata-task/create-task/CreateCurationTaskFlow.js +0 -78
- package/dist/features/entity/metadata-task/create-task/CreateCurationTaskFlow.js.map +0 -1
|
@@ -2,59 +2,58 @@ import { useGetEntityPermissions as e } from "../../../../synapse-queries/entity
|
|
|
2
2
|
import { useGetFeatureFlag as t } from "../../../../synapse-queries/featureflags/useGetFeatureFlag.js";
|
|
3
3
|
import "../../../../synapse-queries/index.js";
|
|
4
4
|
import { FeatureFlagEnum as n } from "../../../../utils/featureflag/FeatureFlags.js";
|
|
5
|
-
import r from "../../../../components/
|
|
6
|
-
import i from "../../../../
|
|
7
|
-
import
|
|
5
|
+
import r from "../../../../components/layout/InfiniteTableLayout.js";
|
|
6
|
+
import { useGetCurationTasksInfinite as i } from "../../../../synapse-queries/curation/task/useCurationTask.js";
|
|
7
|
+
import a from "../../../curator/dashboard/components/CurationTaskCard.js";
|
|
8
8
|
import o from "./MetadataTasksPageRouter.js";
|
|
9
|
-
import {
|
|
10
|
-
import { Button as
|
|
11
|
-
import { jsx as
|
|
12
|
-
import { AddCircleTwoTone as
|
|
13
|
-
import { useNavigate as
|
|
9
|
+
import { useMemo as s, useState as c } from "react";
|
|
10
|
+
import { Button as l, FormControlLabel as u, Stack as d, Switch as f } from "@mui/material";
|
|
11
|
+
import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
12
|
+
import { AddCircleTwoTone as h } from "@mui/icons-material";
|
|
13
|
+
import { useNavigate as g } from "react-router";
|
|
14
14
|
//#region src/features/entity/metadata-task/components/MetadataTasksPage.tsx
|
|
15
|
-
function
|
|
16
|
-
let { projectId:
|
|
17
|
-
projectId:
|
|
15
|
+
function _(o) {
|
|
16
|
+
let { projectId: _ } = o, v = g(), [y, b] = c({
|
|
17
|
+
projectId: _,
|
|
18
18
|
assignedToMe: !1
|
|
19
|
-
}), { data:
|
|
20
|
-
return /* @__PURE__ */
|
|
19
|
+
}), { data: x } = e(_), { data: S, isLoading: C, hasNextPage: w, fetchNextPage: T, isFetchingNextPage: E } = i(y), D = s(() => S?.pages.flatMap((e) => e.bundlePage ?? []) ?? [], [S]), O = t(n.CURATION_TASK_PAGE_SHOW_NEW_TASK_BUTTON);
|
|
20
|
+
return /* @__PURE__ */ m(d, { children: [/* @__PURE__ */ m(d, {
|
|
21
21
|
direction: "row",
|
|
22
22
|
justifyContent: "flex-end",
|
|
23
|
-
children: [/* @__PURE__ */
|
|
24
|
-
control: /* @__PURE__ */ f
|
|
25
|
-
checked: !!
|
|
23
|
+
children: [/* @__PURE__ */ p(u, {
|
|
24
|
+
control: /* @__PURE__ */ p(f, {
|
|
25
|
+
checked: !!y.assignedToMe,
|
|
26
26
|
onChange: (e, t) => {
|
|
27
|
-
|
|
27
|
+
b((e) => ({
|
|
28
28
|
...e,
|
|
29
29
|
assignedToMe: t
|
|
30
30
|
}));
|
|
31
31
|
}
|
|
32
32
|
}),
|
|
33
33
|
label: "View only tasks assigned to me"
|
|
34
|
-
}),
|
|
34
|
+
}), O && x?.canAddChild && /* @__PURE__ */ p(l, {
|
|
35
35
|
variant: "outlined",
|
|
36
|
-
onClick: () => void
|
|
37
|
-
startIcon: /* @__PURE__ */
|
|
36
|
+
onClick: () => void v("create"),
|
|
37
|
+
startIcon: /* @__PURE__ */ p(h, {}),
|
|
38
38
|
children: "New Task"
|
|
39
39
|
})]
|
|
40
|
-
}), /* @__PURE__ */
|
|
41
|
-
table: /* @__PURE__ */
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
}), /* @__PURE__ */ p(r, {
|
|
41
|
+
table: /* @__PURE__ */ p(d, {
|
|
42
|
+
gap: 3,
|
|
43
|
+
sx: { my: 2 },
|
|
44
|
+
children: D.map((e) => /* @__PURE__ */ p(a, { taskBundle: e }, e.task?.taskId))
|
|
44
45
|
}),
|
|
45
|
-
isLoading:
|
|
46
|
-
isEmpty: !
|
|
47
|
-
hasNextPage:
|
|
48
|
-
onFetchNextPageClicked: () =>
|
|
49
|
-
|
|
50
|
-
},
|
|
51
|
-
isFetchingNextPage: T
|
|
46
|
+
isLoading: C,
|
|
47
|
+
isEmpty: !C && D.length === 0,
|
|
48
|
+
hasNextPage: w,
|
|
49
|
+
onFetchNextPageClicked: () => void T(),
|
|
50
|
+
isFetchingNextPage: E
|
|
52
51
|
})] });
|
|
53
52
|
}
|
|
54
|
-
function
|
|
55
|
-
return /* @__PURE__ */
|
|
53
|
+
function v(e) {
|
|
54
|
+
return /* @__PURE__ */ p(o, { ...e });
|
|
56
55
|
}
|
|
57
56
|
//#endregion
|
|
58
|
-
export {
|
|
57
|
+
export { _ as MetadataTasksPageInternal, v as default };
|
|
59
58
|
|
|
60
59
|
//# sourceMappingURL=MetadataTasksPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetadataTasksPage.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/components/MetadataTasksPage.tsx"],"sourcesContent":["import InfiniteTableLayout from '@/components/layout/InfiniteTableLayout'\nimport
|
|
1
|
+
{"version":3,"file":"MetadataTasksPage.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/components/MetadataTasksPage.tsx"],"sourcesContent":["import InfiniteTableLayout from '@/components/layout/InfiniteTableLayout'\nimport CurationTaskCard from '@/features/curator/dashboard/components/CurationTaskCard'\nimport { useGetCurationTasksInfinite } from '@/synapse-queries/curation/task/useCurationTask'\nimport { useGetFeatureFlag } from '@/synapse-queries/index'\nimport { useGetEntityPermissions } from '@/synapse-queries/entity/useEntity'\nimport { Button, FormControlLabel, Stack, Switch } from '@mui/material'\nimport { useMemo, useState } from 'react'\nimport { ListCurationTaskRequest } from '@sage-bionetworks/synapse-client'\nimport { AddCircleTwoTone } from '@mui/icons-material'\nimport { FeatureFlagEnum } from '@/utils/featureflag/FeatureFlags'\nimport { useNavigate } from 'react-router'\nimport MetadataTasksPageRouter, {\n MetadataTasksPageRouterProps,\n} from './MetadataTasksPageRouter'\n\nexport type MetadataTaskTableProps = {\n projectId: string\n}\n\n/**\n * Displays a list of metadata curation tasks for a particular project, with actions that can be performed on each task.\n */\nfunction MetadataTasksPageInternal(props: MetadataTaskTableProps) {\n const { projectId } = props\n const navigate = useNavigate()\n const [listCurationTaskRequest, setListCurationTaskRequest] =\n useState<ListCurationTaskRequest>({\n projectId,\n assignedToMe: false,\n })\n\n const { data: permissions } = useGetEntityPermissions(projectId)\n\n const { data, isLoading, hasNextPage, fetchNextPage, isFetchingNextPage } =\n useGetCurationTasksInfinite(listCurationTaskRequest)\n\n const tasks = useMemo(\n () => data?.pages.flatMap(page => page.bundlePage ?? []) ?? [],\n [data],\n )\n\n const showNewTaskButton = useGetFeatureFlag(\n FeatureFlagEnum.CURATION_TASK_PAGE_SHOW_NEW_TASK_BUTTON,\n )\n\n return (\n <Stack>\n <Stack direction=\"row\" justifyContent=\"flex-end\">\n <FormControlLabel\n control={\n <Switch\n checked={!!listCurationTaskRequest.assignedToMe}\n onChange={(_e, checked) => {\n setListCurationTaskRequest(prev => ({\n ...prev,\n assignedToMe: checked,\n }))\n }}\n />\n }\n label=\"View only tasks assigned to me\"\n />\n {showNewTaskButton && permissions?.canAddChild && (\n <Button\n variant=\"outlined\"\n onClick={() => void navigate('create')}\n startIcon={<AddCircleTwoTone />}\n >\n New Task\n </Button>\n )}\n </Stack>\n <InfiniteTableLayout\n table={\n <Stack gap={3} sx={{ my: 2 }}>\n {tasks.map(taskBundle => (\n <CurationTaskCard\n key={taskBundle.task?.taskId}\n taskBundle={taskBundle}\n />\n ))}\n </Stack>\n }\n isLoading={isLoading}\n isEmpty={!isLoading && tasks.length === 0}\n hasNextPage={hasNextPage}\n onFetchNextPageClicked={() => void fetchNextPage()}\n isFetchingNextPage={isFetchingNextPage}\n />\n </Stack>\n )\n}\n\nexport type MetadataTasksPageProps = MetadataTaskTableProps &\n Omit<MetadataTasksPageRouterProps, 'projectId'>\n\n/**\n * A page that displays a project's metadata curation tasks, with included routing logic for the\n * create/edit task pages.\n */\nexport default function MetadataTasksPage(props: MetadataTasksPageProps) {\n return <MetadataTasksPageRouter {...props} />\n}\n\nexport { MetadataTasksPageInternal }\n"],"mappings":";;;;;;;;;;;;;;AAsBA,SAAS,EAA0B,GAA+B;CAChE,IAAM,EAAE,iBAAc,GAChB,IAAW,EAAY,GACvB,CAAC,GAAyB,KAC9B,EAAkC;EAChC;EACA,cAAc;CAChB,CAAC,GAEG,EAAE,MAAM,MAAgB,EAAwB,CAAS,GAEzD,EAAE,SAAM,cAAW,gBAAa,kBAAe,0BACnD,EAA4B,CAAuB,GAE/C,IAAQ,QACN,GAAM,MAAM,SAAQ,MAAQ,EAAK,cAAc,CAAC,CAAC,KAAK,CAAC,GAC7D,CAAC,CAAI,CACP,GAEM,IAAoB,EACxB,EAAgB,uCAClB;CAEA,OACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EAAO,WAAU;EAAM,gBAAe;YAAtC,CACE,kBAAC,GAAD;GACE,SACE,kBAAC,GAAD;IACE,SAAS,CAAC,CAAC,EAAwB;IACnC,WAAW,GAAI,MAAY;KACzB,GAA2B,OAAS;MAClC,GAAG;MACH,cAAc;KAChB,EAAE;IACJ;GACD,CAAA;GAEH,OAAM;EACP,CAAA,GACA,KAAqB,GAAa,eACjC,kBAAC,GAAD;GACE,SAAQ;GACR,eAAe,KAAK,EAAS,QAAQ;GACrC,WAAW,kBAAC,GAAD,CAAmB,CAAA;aAC/B;EAEO,CAAA,CAEL;KACP,kBAAC,GAAD;EACE,OACE,kBAAC,GAAD;GAAO,KAAK;GAAG,IAAI,EAAE,IAAI,EAAE;aACxB,EAAM,KAAI,MACT,kBAAC,GAAD,EAEc,cACb,GAFM,EAAW,MAAM,MAEvB,CACF;EACI,CAAA;EAEE;EACX,SAAS,CAAC,KAAa,EAAM,WAAW;EAC3B;EACb,8BAA8B,KAAK,EAAc;EAC7B;CACrB,CAAA,CACI,EAAA,CAAA;AAEX;AASA,SAAwB,EAAkB,GAA+B;CACvE,OAAO,kBAAC,GAAD,EAAyB,GAAI,EAAQ,CAAA;AAC9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetadataTasksPageRouter.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/components/MetadataTasksPageRouter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"MetadataTasksPageRouter.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/components/MetadataTasksPageRouter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAA;AAUlD,MAAM,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;IAC3D,SAAS,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB,2GAA2G;IAC3G,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC7C,KAAK,EAAE,4BAA4B,2CA4CpC"}
|
|
@@ -1,43 +1,39 @@
|
|
|
1
|
-
import e from "../create-task/
|
|
2
|
-
import t from "../create-task/
|
|
1
|
+
import e from "../create-task/EditCurationTaskPage.js";
|
|
2
|
+
import { getCurationTaskFlowRoutes as t } from "../create-task/curationTaskFlowRoutes.js";
|
|
3
3
|
import { MetadataTasksPageInternal as n } from "./MetadataTasksPage.js";
|
|
4
4
|
import { useMemo as r } from "react";
|
|
5
5
|
import { jsx as i } from "react/jsx-runtime";
|
|
6
|
-
import { RouterProvider as a, createBrowserRouter as o, createMemoryRouter as s
|
|
7
|
-
import { RouterProvider as
|
|
6
|
+
import { RouterProvider as a, createBrowserRouter as o, createMemoryRouter as s } from "react-router";
|
|
7
|
+
import { RouterProvider as c } from "react-router/dom";
|
|
8
8
|
//#region src/features/entity/metadata-task/components/MetadataTasksPageRouter.tsx
|
|
9
|
-
function
|
|
10
|
-
let
|
|
11
|
-
return /* @__PURE__ */ i(e, {
|
|
12
|
-
projectId: t.projectId,
|
|
13
|
-
onExit: () => void n("/")
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
function d(e) {
|
|
17
|
-
let { projectId: c, routerBaseName: d, useMemoryRouter: f = !1 } = e, p = r(() => [{
|
|
9
|
+
function l(l) {
|
|
10
|
+
let { projectId: u, routerBaseName: d, useMemoryRouter: f = !1 } = l, p = r(() => [{
|
|
18
11
|
path: "/",
|
|
19
12
|
children: [
|
|
20
13
|
{
|
|
21
14
|
index: !0,
|
|
22
|
-
element: /* @__PURE__ */ i(n, { projectId:
|
|
15
|
+
element: /* @__PURE__ */ i(n, { projectId: u })
|
|
23
16
|
},
|
|
24
17
|
{
|
|
25
|
-
path: "create
|
|
26
|
-
|
|
18
|
+
path: "create",
|
|
19
|
+
children: t({
|
|
20
|
+
projectId: u,
|
|
21
|
+
exitPath: "/"
|
|
22
|
+
})
|
|
27
23
|
},
|
|
28
24
|
{
|
|
29
25
|
path: "edit/:taskId",
|
|
30
|
-
element: /* @__PURE__ */ i(
|
|
26
|
+
element: /* @__PURE__ */ i(e, {})
|
|
31
27
|
}
|
|
32
28
|
]
|
|
33
|
-
}], [
|
|
29
|
+
}], [u]), m = r(() => f ? s(p, { basename: d }) : o(p, { basename: d }), [
|
|
34
30
|
f,
|
|
35
31
|
p,
|
|
36
32
|
d
|
|
37
33
|
]);
|
|
38
|
-
return i(f ? a :
|
|
34
|
+
return i(f ? a : c, { router: m });
|
|
39
35
|
}
|
|
40
36
|
//#endregion
|
|
41
|
-
export {
|
|
37
|
+
export { l as default };
|
|
42
38
|
|
|
43
39
|
//# sourceMappingURL=MetadataTasksPageRouter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetadataTasksPageRouter.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/components/MetadataTasksPageRouter.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"MetadataTasksPageRouter.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/components/MetadataTasksPageRouter.tsx"],"sourcesContent":["import { getCurationTaskFlowRoutes } from '@/features/entity/metadata-task/create-task/curationTaskFlowRoutes'\nimport EditCurationTaskPage from '@/features/entity/metadata-task/create-task/EditCurationTaskPage'\nimport { PropsWithChildren, useMemo } from 'react'\nimport {\n createBrowserRouter,\n createMemoryRouter,\n RouteObject,\n RouterProvider,\n} from 'react-router'\nimport { RouterProvider as DOMRouterProvider } from 'react-router/dom'\nimport { MetadataTasksPageInternal } from './MetadataTasksPage'\n\nexport type MetadataTasksPageRouterProps = PropsWithChildren<{\n projectId: string\n /**\n * Used to determine the base path for the component. In SWC, this should be /Synapse:syn123/metadata/\n * (replacing syn123 with the project ID).\n */\n routerBaseName: string\n /** If true use a MemoryRouter, which prevents the browser URL from updating. For testing purposes only. */\n useMemoryRouter?: boolean\n}>\n\n/**\n * A router wrapper for `MetadataTasksPage`, which applies a router around the page content to support\n * page-based create/edit flows for curation tasks, mirroring `GridPageRouter`.\n */\nexport default function MetadataTasksPageRouter(\n props: MetadataTasksPageRouterProps,\n) {\n const { projectId, routerBaseName, useMemoryRouter = false } = props\n\n const routes: RouteObject[] = useMemo(\n () => [\n {\n path: '/',\n children: [\n {\n index: true,\n element: <MetadataTasksPageInternal projectId={projectId} />,\n },\n {\n path: 'create',\n children: getCurationTaskFlowRoutes({ projectId, exitPath: '/' }),\n },\n {\n path: 'edit/:taskId',\n element: <EditCurationTaskPage />,\n },\n ],\n },\n ],\n [projectId],\n )\n\n const router = useMemo(() => {\n if (useMemoryRouter) {\n return createMemoryRouter(routes, {\n basename: routerBaseName,\n })\n } else {\n return createBrowserRouter(routes, {\n basename: routerBaseName,\n })\n }\n }, [useMemoryRouter, routes, routerBaseName])\n\n if (useMemoryRouter) {\n return <RouterProvider router={router} />\n }\n\n return <DOMRouterProvider router={router} />\n}\n"],"mappings":";;;;;;;;AA2BA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,cAAW,mBAAgB,qBAAkB,OAAU,GAEzD,IAAwB,QACtB,CACJ;EACE,MAAM;EACN,UAAU;GACR;IACE,OAAO;IACP,SAAS,kBAAC,GAAD,EAAsC,aAAY,CAAA;GAC7D;GACA;IACE,MAAM;IACN,UAAU,EAA0B;KAAE;KAAW,UAAU;IAAI,CAAC;GAClE;GACA;IACE,MAAM;IACN,SAAS,kBAAC,GAAD,CAAuB,CAAA;GAClC;EACF;CACF,CACF,GACA,CAAC,CAAS,CACZ,GAEM,IAAS,QACT,IACK,EAAmB,GAAQ,EAChC,UAAU,EACZ,CAAC,IAEM,EAAoB,GAAQ,EACjC,UAAU,EACZ,CAAC,GAEF;EAAC;EAAiB;EAAQ;CAAc,CAAC;CAM5C,OAHS,EADL,IACM,IAGF,GAHC,EAAwB,UAAS,CAAA;AAI5C"}
|
|
@@ -35,7 +35,7 @@ export type ComputeTaskFormProps = {
|
|
|
35
35
|
};
|
|
36
36
|
/**
|
|
37
37
|
* The create/edit form for a Compute Data curation task. Used as step 2 of the create wizard
|
|
38
|
-
* (`
|
|
38
|
+
* (`getCurationTaskFlowRoutes`) and directly by `EditCurationTaskPage`.
|
|
39
39
|
*/
|
|
40
40
|
export default function ComputeTaskForm(props: ComputeTaskFormProps): import("react/jsx-runtime").JSX.Element;
|
|
41
41
|
//# sourceMappingURL=ComputeTaskForm.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComputeTaskForm.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/create-task/ComputeTaskForm.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EAEb,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"ComputeTaskForm.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/create-task/ComputeTaskForm.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EAEb,MAAM,kCAAkC,CAAA;AAsBzC,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iEAAiE;IACjE,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,uDAAuD;IACvD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAA;IACxC,2DAA2D;IAC3D,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAA;IACtC,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,oBAAoB,2CAsJlE"}
|
|
@@ -1,73 +1,50 @@
|
|
|
1
1
|
import { StyledFormControl as e } from "../../../../components/styled/StyledFormControl.js";
|
|
2
2
|
import "../../../../components/styled/index.js";
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import { buildComputeTaskPayload as
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import
|
|
18
|
-
import T from "lodash-es/noop";
|
|
3
|
+
import { COMPUTE_TASK_DISABLED_STATUS_STATES as t, COMPUTE_TASK_EXECUTION_DETAILS as n, COMPUTE_TASK_TYPE_CONFIG as r, COMPUTE_TASK_TYPE_OPTIONS as i } from "../utils/constants.js";
|
|
4
|
+
import a from "./RecordSetFields.js";
|
|
5
|
+
import o from "./SampleSheetFields.js";
|
|
6
|
+
import { useComputeTypeFields as s } from "./useComputeTypeFields.js";
|
|
7
|
+
import { useCurationTaskFormState as c } from "./useCurationTaskFormState.js";
|
|
8
|
+
import l from "./CommonTaskFields.js";
|
|
9
|
+
import u from "./ProjectSelectorField.js";
|
|
10
|
+
import d from "./TaskFormActions.js";
|
|
11
|
+
import f from "./TaskFormHeader.js";
|
|
12
|
+
import p from "./TaskStatusField.js";
|
|
13
|
+
import { buildComputeTaskPayload as m } from "./utils/buildComputeTaskPayload.js";
|
|
14
|
+
import { Alert as h, InputLabel as g, MenuItem as _, Select as v, Stack as y } from "@mui/material";
|
|
15
|
+
import { jsx as b, jsxs as x } from "react/jsx-runtime";
|
|
16
|
+
import { SampleSheetGenerationExecutionPropertiesConcreteTypeEnum as S } from "@sage-bionetworks/synapse-client";
|
|
17
|
+
import C from "lodash-es/noop";
|
|
19
18
|
//#region src/features/entity/metadata-task/create-task/ComputeTaskForm.tsx
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}), [J, Y] = g(() => {
|
|
40
|
-
let e = A?.taskProperties;
|
|
41
|
-
return e?.concreteType === n[1] ? {
|
|
42
|
-
folderId: e.folderId ?? "",
|
|
43
|
-
instructions: e.instructions ?? "",
|
|
44
|
-
destinationTaskId: e.destinationTaskId?.toString() ?? ""
|
|
45
|
-
} : D;
|
|
46
|
-
}), X = !H || (W === n[0] ? u(K.inputTaskId) && u(K.destinationTaskId) : !!J.folderId.trim() && !!J.instructions.trim() && u(J.destinationTaskId)), Z = z.isCommonFieldsValid && z.isProjectValid && X;
|
|
47
|
-
async function Q() {
|
|
48
|
-
let e = h({
|
|
49
|
-
existingTask: B ? A : void 0,
|
|
50
|
-
projectId: z.effectiveProjectId,
|
|
51
|
-
dataType: z.dataType,
|
|
52
|
-
instructions: z.instructions,
|
|
53
|
-
assigneePrincipalId: z.assigneePrincipalId,
|
|
54
|
-
computeTypeFields: H ? {
|
|
55
|
-
concreteType: W,
|
|
56
|
-
sampleSheet: K,
|
|
57
|
-
recordSet: J
|
|
58
|
-
} : void 0
|
|
59
|
-
}), t = await z.submitTaskAndStatus(e);
|
|
60
|
-
B ? M?.(t) : j?.(t);
|
|
19
|
+
function w(w) {
|
|
20
|
+
let { projectId: T, task: E, onCreated: D, onSaved: O, onDeleted: k, onBack: A, onCancel: j, onExit: M, pageTitle: N, pageDescription: P } = w, F = c({
|
|
21
|
+
projectId: T,
|
|
22
|
+
task: E,
|
|
23
|
+
onDeleted: k
|
|
24
|
+
}), { isEditMode: I } = F, L = s({
|
|
25
|
+
taskProperties: E?.taskProperties,
|
|
26
|
+
isEditMode: I
|
|
27
|
+
}), R = F.isCommonFieldsValid && F.isProjectValid && L.isValid;
|
|
28
|
+
async function z() {
|
|
29
|
+
let e = m({
|
|
30
|
+
existingTask: I ? E : void 0,
|
|
31
|
+
projectId: F.effectiveProjectId,
|
|
32
|
+
dataType: F.dataType,
|
|
33
|
+
instructions: F.instructions,
|
|
34
|
+
assigneePrincipalId: F.assigneePrincipalId,
|
|
35
|
+
computeTypeFields: L.showTypeSection ? L.state : void 0
|
|
36
|
+
}), t = await F.submitTaskAndStatus(e, { initialExecutionDetails: n[L.state.concreteType] });
|
|
37
|
+
I ? O?.(t) : D?.(t);
|
|
61
38
|
}
|
|
62
|
-
return /* @__PURE__ */
|
|
39
|
+
return /* @__PURE__ */ x(y, {
|
|
63
40
|
gap: 3,
|
|
64
41
|
children: [
|
|
65
|
-
/* @__PURE__ */
|
|
66
|
-
onExit:
|
|
67
|
-
pageTitle:
|
|
68
|
-
pageDescription:
|
|
42
|
+
/* @__PURE__ */ b(f, {
|
|
43
|
+
onExit: M,
|
|
44
|
+
pageTitle: N,
|
|
45
|
+
pageDescription: P
|
|
69
46
|
}),
|
|
70
|
-
/* @__PURE__ */
|
|
47
|
+
/* @__PURE__ */ x(y, {
|
|
71
48
|
gap: 3,
|
|
72
49
|
sx: {
|
|
73
50
|
width: "100%",
|
|
@@ -75,91 +52,81 @@ function O(O) {
|
|
|
75
52
|
mx: "auto"
|
|
76
53
|
},
|
|
77
54
|
children: [
|
|
78
|
-
|
|
55
|
+
L.showTypeSection && /* @__PURE__ */ x(e, {
|
|
79
56
|
fullWidth: !0,
|
|
80
|
-
children: [/* @__PURE__ */
|
|
57
|
+
children: [/* @__PURE__ */ b(g, {
|
|
81
58
|
id: "compute-task-type-label",
|
|
82
59
|
children: "Compute Task Type"
|
|
83
|
-
}), /* @__PURE__ */
|
|
60
|
+
}), /* @__PURE__ */ b(v, {
|
|
84
61
|
labelId: "compute-task-type-label",
|
|
85
62
|
label: "Compute Task Type",
|
|
86
|
-
value:
|
|
87
|
-
disabled:
|
|
88
|
-
onChange: (e) =>
|
|
89
|
-
children:
|
|
63
|
+
value: L.state.concreteType,
|
|
64
|
+
disabled: I,
|
|
65
|
+
onChange: (e) => L.setConcreteType(e.target.value),
|
|
66
|
+
children: i.map((e) => /* @__PURE__ */ b(_, {
|
|
90
67
|
value: e,
|
|
91
|
-
children:
|
|
68
|
+
children: r[e].label
|
|
92
69
|
}, e))
|
|
93
70
|
})]
|
|
94
71
|
}),
|
|
95
|
-
|
|
96
|
-
value:
|
|
97
|
-
onChange:
|
|
72
|
+
F.showProjectSelector && /* @__PURE__ */ b(u, {
|
|
73
|
+
value: F.selectedProjectId,
|
|
74
|
+
onChange: F.setSelectedProjectId
|
|
98
75
|
}),
|
|
99
|
-
/* @__PURE__ */
|
|
100
|
-
dataType:
|
|
101
|
-
onDataTypeChange:
|
|
102
|
-
dueDate:
|
|
103
|
-
onDueDateChange:
|
|
104
|
-
instructions:
|
|
105
|
-
onInstructionsChange:
|
|
106
|
-
assigneePrincipalId:
|
|
107
|
-
onAssigneePrincipalIdChange:
|
|
76
|
+
/* @__PURE__ */ b(l, {
|
|
77
|
+
dataType: F.dataType,
|
|
78
|
+
onDataTypeChange: F.setDataType,
|
|
79
|
+
dueDate: F.displayedDueDate,
|
|
80
|
+
onDueDateChange: F.setPendingDueDate,
|
|
81
|
+
instructions: F.instructions,
|
|
82
|
+
onInstructionsChange: F.setInstructions,
|
|
83
|
+
assigneePrincipalId: F.assigneePrincipalId,
|
|
84
|
+
onAssigneePrincipalIdChange: F.setAssigneePrincipalId
|
|
108
85
|
}),
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
labelId: "compute-task-status-label",
|
|
116
|
-
value: z.displayedStatusState ?? "",
|
|
117
|
-
label: "Status",
|
|
118
|
-
disabled: z.isStatusFetching || z.currentTaskStatus == null,
|
|
119
|
-
onChange: (e) => z.setPendingStatusState(e.target.value),
|
|
120
|
-
children: Object.values(w).map((e) => /* @__PURE__ */ S(y, {
|
|
121
|
-
value: e,
|
|
122
|
-
children: i[e].label
|
|
123
|
-
}, e))
|
|
124
|
-
})]
|
|
86
|
+
I && /* @__PURE__ */ b(p, {
|
|
87
|
+
labelId: "compute-task-status-label",
|
|
88
|
+
value: F.displayedStatusState,
|
|
89
|
+
onChange: F.setPendingStatusState,
|
|
90
|
+
disabled: F.isStatusFetching || F.currentTaskStatus == null,
|
|
91
|
+
disabledStates: t
|
|
125
92
|
}),
|
|
126
|
-
|
|
127
|
-
value:
|
|
128
|
-
onChange:
|
|
129
|
-
}) : /* @__PURE__ */
|
|
130
|
-
value:
|
|
131
|
-
onChange:
|
|
93
|
+
L.showTypeSection && (L.state.concreteType === S.org_sagebionetworks_repo_model_curation_execution_SampleSheetGenerationExecutionProperties ? /* @__PURE__ */ b(o, {
|
|
94
|
+
value: L.state.value,
|
|
95
|
+
onChange: L.setValue
|
|
96
|
+
}) : /* @__PURE__ */ b(a, {
|
|
97
|
+
value: L.state.value,
|
|
98
|
+
onChange: L.setValue
|
|
132
99
|
})),
|
|
133
|
-
|
|
100
|
+
L.showUnrecognizedTypeWarning && /* @__PURE__ */ b(h, {
|
|
134
101
|
severity: "warning",
|
|
135
102
|
children: "This task has an unrecognized task type. Its category-specific fields cannot be edited here."
|
|
136
103
|
}),
|
|
137
|
-
|
|
104
|
+
F.error && /* @__PURE__ */ b(h, {
|
|
138
105
|
severity: "error",
|
|
139
|
-
children:
|
|
106
|
+
children: F.error.reason ?? "An error occurred. Please try again."
|
|
140
107
|
})
|
|
141
108
|
]
|
|
142
109
|
}),
|
|
143
|
-
/* @__PURE__ */
|
|
144
|
-
isEditMode:
|
|
145
|
-
isPending:
|
|
146
|
-
isValid:
|
|
147
|
-
onSubmit: () => void
|
|
148
|
-
onBack:
|
|
149
|
-
onCancel:
|
|
150
|
-
canDelete:
|
|
151
|
-
showDeleteConfirmation:
|
|
152
|
-
onRequestDelete: () =>
|
|
110
|
+
/* @__PURE__ */ b(d, {
|
|
111
|
+
isEditMode: I,
|
|
112
|
+
isPending: F.isPending,
|
|
113
|
+
isValid: R,
|
|
114
|
+
onSubmit: () => void z().catch(C),
|
|
115
|
+
onBack: A,
|
|
116
|
+
onCancel: j,
|
|
117
|
+
canDelete: F.canDelete,
|
|
118
|
+
showDeleteConfirmation: F.showDeleteConfirmation,
|
|
119
|
+
onRequestDelete: () => F.setShowDeleteConfirmation(!0),
|
|
153
120
|
onConfirmDelete: () => {
|
|
154
|
-
|
|
121
|
+
E?.taskId != null && F.deleteTask(E.taskId);
|
|
155
122
|
},
|
|
156
|
-
onCancelDelete: () =>
|
|
157
|
-
isDeletePending:
|
|
123
|
+
onCancelDelete: () => F.setShowDeleteConfirmation(!1),
|
|
124
|
+
isDeletePending: F.isDeletePending
|
|
158
125
|
})
|
|
159
126
|
]
|
|
160
127
|
});
|
|
161
128
|
}
|
|
162
129
|
//#endregion
|
|
163
|
-
export {
|
|
130
|
+
export { w as default };
|
|
164
131
|
|
|
165
132
|
//# sourceMappingURL=ComputeTaskForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComputeTaskForm.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/create-task/ComputeTaskForm.tsx"],"sourcesContent":["import { StyledFormControl } from '@/components/styled'\nimport { Alert, InputLabel, MenuItem, Select, Stack } from '@mui/material'\nimport {\n CurationTask,\n TaskStatusStateEnum,\n} from '@sage-bionetworks/synapse-client'\nimport noop from 'lodash-es/noop'\nimport { useState } from 'react'\nimport {\n COMPUTE_TASK_TYPE_CONFIG,\n COMPUTE_TASK_TYPE_INPUT_LABEL,\n COMPUTE_TASK_TYPE_OPTIONS,\n DEFAULT_COMPUTE_TASK_TYPE,\n EDIT_TASK_UNRECOGNIZED_TYPE_MESSAGE,\n GENERIC_SAVE_ERROR_MESSAGE,\n TASK_STATUS_CONFIG,\n TASK_STATUS_INPUT_LABEL,\n} from '../utils/constants'\nimport {\n ComputeTaskConcreteType,\n getComputeTaskConcreteType,\n instanceOfGridSupportedTaskProperties,\n} from '../utils/types'\nimport CommonTaskFields from './CommonTaskFields'\nimport ProjectSelectorField from './ProjectSelectorField'\nimport RecordSetFields from './RecordSetFields'\nimport SampleSheetFields from './SampleSheetFields'\nimport TaskFormActions from './TaskFormActions'\nimport TaskFormHeader from './TaskFormHeader'\nimport { useCurationTaskFormState } from './useCurationTaskFormState'\nimport {\n buildComputeTaskPayload,\n RecordSetFieldsValue,\n SampleSheetFieldsValue,\n} from './utils/buildComputeTaskPayload'\nimport { isValidTaskIdInput } from './utils/taskIdValidation'\n\nconst EMPTY_SAMPLE_SHEET_VALUE: SampleSheetFieldsValue = {\n inputTaskId: '',\n destinationTaskId: '',\n}\nconst EMPTY_RECORD_SET_VALUE: RecordSetFieldsValue = {\n folderId: '',\n instructions: '',\n destinationTaskId: '',\n}\n\nexport type ComputeTaskFormProps = {\n /**\n * Present when the host page already has a project context (e.g. a project's Metadata Tasks page).\n * Absent when creating from a context without one (e.g. the Curator Dashboard), in which case the user\n * is prompted to choose a project. Ignored in edit mode -- the project is always derived from `task`.\n */\n projectId?: string\n /** The task being edited. Undefined when creating a new task. */\n task?: CurationTask\n /** Called after a new task is successfully created. */\n onCreated?: (task: CurationTask) => void\n /** Called after an existing task is successfully saved. */\n onSaved?: (task: CurationTask) => void\n /** Called after the task is successfully deleted (edit mode only). */\n onDeleted?: () => void\n /** Shows a \"Back\" button (create mode) that returns to the category picker. */\n onBack?: () => void\n /** Shows a \"Cancel\" button (edit mode) that exits the page without saving. */\n onCancel?: () => void\n /**\n * Shows a \"Back to All Tasks\" button in the top-left of the page, which exits the entire\n * create/edit flow back to the task list (as opposed to `onBack`/`onCancel`, which only move\n * between steps within the flow).\n */\n onExit?: () => void\n /**\n * When present, rendered as a centered page title above the form (e.g. \"Create New Compute Task\" or\n * \"Edit Task\"). The host page is responsible for supplying this rather than rendering its own\n * heading, so the title and the single-column form below it share one centered layout.\n */\n pageTitle?: string\n /** When present, rendered as a centered subtitle below `pageTitle`. */\n pageDescription?: string\n}\n\n/**\n * The create/edit form for a Compute Data curation task. Used as step 2 of the create wizard\n * (`CreateCurationTaskFlow`) and directly by `EditCurationTaskPage`.\n */\nexport default function ComputeTaskForm(props: ComputeTaskFormProps) {\n const {\n projectId,\n task,\n onCreated,\n onSaved,\n onDeleted,\n onBack,\n onCancel,\n onExit,\n pageTitle,\n pageDescription,\n } = props\n\n const form = useCurationTaskFormState({ projectId, task, onDeleted })\n const { isEditMode } = form\n\n const existingComputeConcreteType = getComputeTaskConcreteType(\n task?.taskProperties,\n )\n\n // Whether the type-specific fields (and type selector) should render at all. False when editing a task\n // whose category isn't one of the two Compute Data types (e.g. a legacy Curate Data task).\n const showTypeSection =\n !isEditMode || existingComputeConcreteType !== undefined\n const showUnrecognizedTypeWarning =\n isEditMode &&\n existingComputeConcreteType === undefined &&\n !instanceOfGridSupportedTaskProperties(task?.taskProperties)\n\n const [selectedConcreteType, setSelectedConcreteType] =\n useState<ComputeTaskConcreteType>(\n () => existingComputeConcreteType ?? DEFAULT_COMPUTE_TASK_TYPE,\n )\n\n const [sampleSheetValue, setSampleSheetValue] =\n useState<SampleSheetFieldsValue>(() => {\n const tp = task?.taskProperties\n if (tp?.concreteType === COMPUTE_TASK_TYPE_OPTIONS[0]) {\n return {\n inputTaskId: tp.inputTaskId?.toString() ?? '',\n destinationTaskId: tp.destinationTaskId?.toString() ?? '',\n }\n }\n return EMPTY_SAMPLE_SHEET_VALUE\n })\n const [recordSetValue, setRecordSetValue] = useState<RecordSetFieldsValue>(\n () => {\n const tp = task?.taskProperties\n if (tp?.concreteType === COMPUTE_TASK_TYPE_OPTIONS[1]) {\n return {\n folderId: tp.folderId ?? '',\n instructions: tp.instructions ?? '',\n destinationTaskId: tp.destinationTaskId?.toString() ?? '',\n }\n }\n return EMPTY_RECORD_SET_VALUE\n },\n )\n\n const isTypeSpecificValid =\n !showTypeSection ||\n (selectedConcreteType === COMPUTE_TASK_TYPE_OPTIONS[0]\n ? isValidTaskIdInput(sampleSheetValue.inputTaskId) &&\n isValidTaskIdInput(sampleSheetValue.destinationTaskId)\n : !!recordSetValue.folderId.trim() &&\n !!recordSetValue.instructions.trim() &&\n isValidTaskIdInput(recordSetValue.destinationTaskId))\n const isValid =\n form.isCommonFieldsValid && form.isProjectValid && isTypeSpecificValid\n\n async function handleSubmit() {\n const payload = buildComputeTaskPayload({\n existingTask: isEditMode ? task : undefined,\n projectId: form.effectiveProjectId,\n dataType: form.dataType,\n instructions: form.instructions,\n assigneePrincipalId: form.assigneePrincipalId,\n computeTypeFields: showTypeSection\n ? {\n concreteType: selectedConcreteType,\n sampleSheet: sampleSheetValue,\n recordSet: recordSetValue,\n }\n : undefined,\n })\n\n const result = await form.submitTaskAndStatus(payload)\n if (isEditMode) {\n onSaved?.(result)\n } else {\n onCreated?.(result)\n }\n }\n\n return (\n <Stack gap={3}>\n <TaskFormHeader\n onExit={onExit}\n pageTitle={pageTitle}\n pageDescription={pageDescription}\n />\n\n <Stack gap={3} sx={{ width: '100%', maxWidth: 700, mx: 'auto' }}>\n {showTypeSection && (\n <StyledFormControl fullWidth>\n <InputLabel id=\"compute-task-type-label\">\n {COMPUTE_TASK_TYPE_INPUT_LABEL}\n </InputLabel>\n <Select\n labelId=\"compute-task-type-label\"\n label={COMPUTE_TASK_TYPE_INPUT_LABEL}\n value={selectedConcreteType}\n disabled={isEditMode}\n onChange={e => setSelectedConcreteType(e.target.value)}\n >\n {COMPUTE_TASK_TYPE_OPTIONS.map(concreteType => (\n <MenuItem key={concreteType} value={concreteType}>\n {COMPUTE_TASK_TYPE_CONFIG[concreteType].label}\n </MenuItem>\n ))}\n </Select>\n </StyledFormControl>\n )}\n\n {form.showProjectSelector && (\n <ProjectSelectorField\n value={form.selectedProjectId}\n onChange={form.setSelectedProjectId}\n />\n )}\n\n <CommonTaskFields\n dataType={form.dataType}\n onDataTypeChange={form.setDataType}\n dueDate={form.displayedDueDate}\n onDueDateChange={form.setPendingDueDate}\n instructions={form.instructions}\n onInstructionsChange={form.setInstructions}\n assigneePrincipalId={form.assigneePrincipalId}\n onAssigneePrincipalIdChange={form.setAssigneePrincipalId}\n />\n\n {isEditMode && (\n <StyledFormControl fullWidth>\n <InputLabel id=\"compute-task-status-label\">\n {TASK_STATUS_INPUT_LABEL}\n </InputLabel>\n <Select\n labelId=\"compute-task-status-label\"\n value={form.displayedStatusState ?? ''}\n label={TASK_STATUS_INPUT_LABEL}\n disabled={form.isStatusFetching || form.currentTaskStatus == null}\n onChange={e =>\n form.setPendingStatusState(\n e.target.value as TaskStatusStateEnum,\n )\n }\n >\n {Object.values(TaskStatusStateEnum).map(state => (\n <MenuItem key={state} value={state}>\n {TASK_STATUS_CONFIG[state].label}\n </MenuItem>\n ))}\n </Select>\n </StyledFormControl>\n )}\n\n {showTypeSection &&\n (selectedConcreteType === COMPUTE_TASK_TYPE_OPTIONS[0] ? (\n <SampleSheetFields\n value={sampleSheetValue}\n onChange={setSampleSheetValue}\n />\n ) : (\n <RecordSetFields\n value={recordSetValue}\n onChange={setRecordSetValue}\n />\n ))}\n\n {showUnrecognizedTypeWarning && (\n <Alert severity=\"warning\">\n {EDIT_TASK_UNRECOGNIZED_TYPE_MESSAGE}\n </Alert>\n )}\n {form.error && (\n <Alert severity=\"error\">\n {form.error.reason ?? GENERIC_SAVE_ERROR_MESSAGE}\n </Alert>\n )}\n </Stack>\n\n <TaskFormActions\n isEditMode={isEditMode}\n isPending={form.isPending}\n isValid={isValid}\n onSubmit={() => void handleSubmit().catch(noop)}\n onBack={onBack}\n onCancel={onCancel}\n canDelete={form.canDelete}\n showDeleteConfirmation={form.showDeleteConfirmation}\n onRequestDelete={() => form.setShowDeleteConfirmation(true)}\n onConfirmDelete={() => {\n if (task?.taskId != null) form.deleteTask(task.taskId)\n }}\n onCancelDelete={() => form.setShowDeleteConfirmation(false)}\n isDeletePending={form.isDeletePending}\n />\n </Stack>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ComputeTaskForm.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/create-task/ComputeTaskForm.tsx"],"sourcesContent":["import { StyledFormControl } from '@/components/styled'\nimport { Alert, InputLabel, MenuItem, Select, Stack } from '@mui/material'\nimport {\n CurationTask,\n SampleSheetGenerationExecutionPropertiesConcreteTypeEnum,\n} from '@sage-bionetworks/synapse-client'\nimport noop from 'lodash-es/noop'\nimport {\n COMPUTE_TASK_DISABLED_STATUS_STATES,\n COMPUTE_TASK_EXECUTION_DETAILS,\n COMPUTE_TASK_TYPE_CONFIG,\n COMPUTE_TASK_TYPE_INPUT_LABEL,\n COMPUTE_TASK_TYPE_OPTIONS,\n EDIT_TASK_UNRECOGNIZED_TYPE_MESSAGE,\n GENERIC_SAVE_ERROR_MESSAGE,\n} from '../utils/constants'\nimport CommonTaskFields from './CommonTaskFields'\nimport ProjectSelectorField from './ProjectSelectorField'\nimport RecordSetFields from './RecordSetFields'\nimport SampleSheetFields from './SampleSheetFields'\nimport TaskFormActions from './TaskFormActions'\nimport TaskFormHeader from './TaskFormHeader'\nimport TaskStatusField from './TaskStatusField'\nimport { useComputeTypeFields } from './useComputeTypeFields'\nimport { useCurationTaskFormState } from './useCurationTaskFormState'\nimport { buildComputeTaskPayload } from './utils/buildComputeTaskPayload'\n\nexport type ComputeTaskFormProps = {\n /**\n * Present when the host page already has a project context (e.g. a project's Metadata Tasks page).\n * Absent when creating from a context without one (e.g. the Curator Dashboard), in which case the user\n * is prompted to choose a project. Ignored in edit mode -- the project is always derived from `task`.\n */\n projectId?: string\n /** The task being edited. Undefined when creating a new task. */\n task?: CurationTask\n /** Called after a new task is successfully created. */\n onCreated?: (task: CurationTask) => void\n /** Called after an existing task is successfully saved. */\n onSaved?: (task: CurationTask) => void\n /** Called after the task is successfully deleted (edit mode only). */\n onDeleted?: () => void\n /** Shows a \"Back\" button (create mode) that returns to the category picker. */\n onBack?: () => void\n /** Shows a \"Cancel\" button (edit mode) that exits the page without saving. */\n onCancel?: () => void\n /**\n * Shows a \"Back to All Tasks\" button in the top-left of the page, which exits the entire\n * create/edit flow back to the task list (as opposed to `onBack`/`onCancel`, which only move\n * between steps within the flow).\n */\n onExit?: () => void\n /**\n * When present, rendered as a centered page title above the form (e.g. \"Create New Compute Task\" or\n * \"Edit Task\"). The host page is responsible for supplying this rather than rendering its own\n * heading, so the title and the single-column form below it share one centered layout.\n */\n pageTitle?: string\n /** When present, rendered as a centered subtitle below `pageTitle`. */\n pageDescription?: string\n}\n\n/**\n * The create/edit form for a Compute Data curation task. Used as step 2 of the create wizard\n * (`getCurationTaskFlowRoutes`) and directly by `EditCurationTaskPage`.\n */\nexport default function ComputeTaskForm(props: ComputeTaskFormProps) {\n const {\n projectId,\n task,\n onCreated,\n onSaved,\n onDeleted,\n onBack,\n onCancel,\n onExit,\n pageTitle,\n pageDescription,\n } = props\n\n const form = useCurationTaskFormState({ projectId, task, onDeleted })\n const { isEditMode } = form\n\n const typeFields = useComputeTypeFields({\n taskProperties: task?.taskProperties,\n isEditMode,\n })\n\n const isValid =\n form.isCommonFieldsValid && form.isProjectValid && typeFields.isValid\n\n async function handleSubmit() {\n const payload = buildComputeTaskPayload({\n existingTask: isEditMode ? task : undefined,\n projectId: form.effectiveProjectId,\n dataType: form.dataType,\n instructions: form.instructions,\n assigneePrincipalId: form.assigneePrincipalId,\n computeTypeFields: typeFields.showTypeSection\n ? typeFields.state\n : undefined,\n })\n\n const result = await form.submitTaskAndStatus(payload, {\n initialExecutionDetails:\n COMPUTE_TASK_EXECUTION_DETAILS[typeFields.state.concreteType],\n })\n if (isEditMode) {\n onSaved?.(result)\n } else {\n onCreated?.(result)\n }\n }\n\n return (\n <Stack gap={3}>\n <TaskFormHeader\n onExit={onExit}\n pageTitle={pageTitle}\n pageDescription={pageDescription}\n />\n\n <Stack gap={3} sx={{ width: '100%', maxWidth: 700, mx: 'auto' }}>\n {typeFields.showTypeSection && (\n <StyledFormControl fullWidth>\n <InputLabel id=\"compute-task-type-label\">\n {COMPUTE_TASK_TYPE_INPUT_LABEL}\n </InputLabel>\n <Select\n labelId=\"compute-task-type-label\"\n label={COMPUTE_TASK_TYPE_INPUT_LABEL}\n value={typeFields.state.concreteType}\n disabled={isEditMode}\n onChange={e => typeFields.setConcreteType(e.target.value)}\n >\n {COMPUTE_TASK_TYPE_OPTIONS.map(concreteType => (\n <MenuItem key={concreteType} value={concreteType}>\n {COMPUTE_TASK_TYPE_CONFIG[concreteType].label}\n </MenuItem>\n ))}\n </Select>\n </StyledFormControl>\n )}\n\n {form.showProjectSelector && (\n <ProjectSelectorField\n value={form.selectedProjectId}\n onChange={form.setSelectedProjectId}\n />\n )}\n\n <CommonTaskFields\n dataType={form.dataType}\n onDataTypeChange={form.setDataType}\n dueDate={form.displayedDueDate}\n onDueDateChange={form.setPendingDueDate}\n instructions={form.instructions}\n onInstructionsChange={form.setInstructions}\n assigneePrincipalId={form.assigneePrincipalId}\n onAssigneePrincipalIdChange={form.setAssigneePrincipalId}\n />\n\n {isEditMode && (\n <TaskStatusField\n labelId=\"compute-task-status-label\"\n value={form.displayedStatusState}\n onChange={form.setPendingStatusState}\n disabled={form.isStatusFetching || form.currentTaskStatus == null}\n disabledStates={COMPUTE_TASK_DISABLED_STATUS_STATES}\n />\n )}\n\n {typeFields.showTypeSection &&\n (typeFields.state.concreteType ===\n SampleSheetGenerationExecutionPropertiesConcreteTypeEnum.org_sagebionetworks_repo_model_curation_execution_SampleSheetGenerationExecutionProperties ? (\n <SampleSheetFields\n value={typeFields.state.value}\n onChange={typeFields.setValue}\n />\n ) : (\n <RecordSetFields\n value={typeFields.state.value}\n onChange={typeFields.setValue}\n />\n ))}\n\n {typeFields.showUnrecognizedTypeWarning && (\n <Alert severity=\"warning\">\n {EDIT_TASK_UNRECOGNIZED_TYPE_MESSAGE}\n </Alert>\n )}\n {form.error && (\n <Alert severity=\"error\">\n {form.error.reason ?? GENERIC_SAVE_ERROR_MESSAGE}\n </Alert>\n )}\n </Stack>\n\n <TaskFormActions\n isEditMode={isEditMode}\n isPending={form.isPending}\n isValid={isValid}\n onSubmit={() => void handleSubmit().catch(noop)}\n onBack={onBack}\n onCancel={onCancel}\n canDelete={form.canDelete}\n showDeleteConfirmation={form.showDeleteConfirmation}\n onRequestDelete={() => form.setShowDeleteConfirmation(true)}\n onConfirmDelete={() => {\n if (task?.taskId != null) form.deleteTask(task.taskId)\n }}\n onCancelDelete={() => form.setShowDeleteConfirmation(false)}\n isDeletePending={form.isDeletePending}\n />\n </Stack>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAkEA,SAAwB,EAAgB,GAA6B;CACnE,IAAM,EACJ,cACA,SACA,cACA,YACA,cACA,WACA,aACA,WACA,cACA,uBACE,GAEE,IAAO,EAAyB;EAAE;EAAW;EAAM;CAAU,CAAC,GAC9D,EAAE,kBAAe,GAEjB,IAAa,EAAqB;EACtC,gBAAgB,GAAM;EACtB;CACF,CAAC,GAEK,IACJ,EAAK,uBAAuB,EAAK,kBAAkB,EAAW;CAEhE,eAAe,IAAe;EAC5B,IAAM,IAAU,EAAwB;GACtC,cAAc,IAAa,IAAO,KAAA;GAClC,WAAW,EAAK;GAChB,UAAU,EAAK;GACf,cAAc,EAAK;GACnB,qBAAqB,EAAK;GAC1B,mBAAmB,EAAW,kBAC1B,EAAW,QACX,KAAA;EACN,CAAC,GAEK,IAAS,MAAM,EAAK,oBAAoB,GAAS,EACrD,yBACE,EAA+B,EAAW,MAAM,cACpD,CAAC;EACD,AAAI,IACF,IAAU,CAAM,IAEhB,IAAY,CAAM;CAEtB;CAEA,OACE,kBAAC,GAAD;EAAO,KAAK;YAAZ;GACE,kBAAC,GAAD;IACU;IACG;IACM;GAClB,CAAA;GAED,kBAAC,GAAD;IAAO,KAAK;IAAG,IAAI;KAAE,OAAO;KAAQ,UAAU;KAAK,IAAI;IAAO;cAA9D;KACG,EAAW,mBACV,kBAAC,GAAD;MAAmB,WAAA;gBAAnB,CACE,kBAAC,GAAD;OAAY,IAAG;;MAEH,CAAA,GACZ,kBAAC,GAAD;OACE,SAAQ;OACR,OAAA;OACA,OAAO,EAAW,MAAM;OACxB,UAAU;OACV,WAAU,MAAK,EAAW,gBAAgB,EAAE,OAAO,KAAK;iBAEvD,EAA0B,KAAI,MAC7B,kBAAC,GAAD;QAA6B,OAAO;kBACjC,EAAyB,GAAc;OAChC,GAFK,CAEL,CACX;MACK,CAAA,CACS;;KAGpB,EAAK,uBACJ,kBAAC,GAAD;MACE,OAAO,EAAK;MACZ,UAAU,EAAK;KAChB,CAAA;KAGH,kBAAC,GAAD;MACE,UAAU,EAAK;MACf,kBAAkB,EAAK;MACvB,SAAS,EAAK;MACd,iBAAiB,EAAK;MACtB,cAAc,EAAK;MACnB,sBAAsB,EAAK;MAC3B,qBAAqB,EAAK;MAC1B,6BAA6B,EAAK;KACnC,CAAA;KAEA,KACC,kBAAC,GAAD;MACE,SAAQ;MACR,OAAO,EAAK;MACZ,UAAU,EAAK;MACf,UAAU,EAAK,oBAAoB,EAAK,qBAAqB;MAC7D,gBAAgB;KACjB,CAAA;KAGF,EAAW,oBACT,EAAW,MAAM,iBAClB,EAAyD,6FACvD,kBAAC,GAAD;MACE,OAAO,EAAW,MAAM;MACxB,UAAU,EAAW;KACtB,CAAA,IAED,kBAAC,GAAD;MACE,OAAO,EAAW,MAAM;MACxB,UAAU,EAAW;KACtB,CAAA;KAGJ,EAAW,+BACV,kBAAC,GAAD;MAAO,UAAS;;KAET,CAAA;KAER,EAAK,SACJ,kBAAC,GAAD;MAAO,UAAS;gBACb,EAAK,MAAM,UAAA;KACP,CAAA;IAEJ;;GAEP,kBAAC,GAAD;IACc;IACZ,WAAW,EAAK;IACP;IACT,gBAAgB,KAAK,EAAa,EAAE,MAAM,CAAI;IACtC;IACE;IACV,WAAW,EAAK;IAChB,wBAAwB,EAAK;IAC7B,uBAAuB,EAAK,0BAA0B,EAAI;IAC1D,uBAAuB;KACrB,AAAI,GAAM,UAAU,QAAM,EAAK,WAAW,EAAK,MAAM;IACvD;IACA,sBAAsB,EAAK,0BAA0B,EAAK;IAC1D,iBAAiB,EAAK;GACvB,CAAA;EACI;;AAEX"}
|
|
@@ -35,7 +35,7 @@ export type CurateTaskFormProps = {
|
|
|
35
35
|
};
|
|
36
36
|
/**
|
|
37
37
|
* The create/edit form for a Curate Data curation task (File-Based / Records-Based). Used as the
|
|
38
|
-
* `curate` step of the create wizard (`
|
|
38
|
+
* `curate` step of the create wizard (`getCurationTaskFlowRoutes`) and directly by `EditCurationTaskPage`.
|
|
39
39
|
*/
|
|
40
40
|
export default function CurateTaskForm(props: CurateTaskFormProps): import("react/jsx-runtime").JSX.Element;
|
|
41
41
|
//# sourceMappingURL=CurateTaskForm.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CurateTaskForm.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/create-task/CurateTaskForm.tsx"],"names":[],"mappings":"AAaA,OAAO,EACL,YAAY,
|
|
1
|
+
{"version":3,"file":"CurateTaskForm.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/create-task/CurateTaskForm.tsx"],"names":[],"mappings":"AAaA,OAAO,EACL,YAAY,EAEb,MAAM,kCAAkC,CAAA;AA4BzC,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iEAAiE;IACjE,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,uDAAuD;IACvD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAA;IACxC,2DAA2D;IAC3D,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAA;IACtC,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,EAAE,mBAAmB,2CA+KhE"}
|