synapse-react-client 4.0.5 → 4.0.6-SWC-7803a

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 (115) hide show
  1. package/dist/SWC.index.d.ts +2 -0
  2. package/dist/SWC.index.d.ts.map +1 -1
  3. package/dist/SWC.index.js +45 -39
  4. package/dist/SWC.index.js.map +1 -1
  5. package/dist/assets/DefaultColorfulPortalCardBackground.svg +50 -12
  6. package/dist/assets/DefaultColorfulPortalCardBackground.svg.js +4 -4
  7. package/dist/assets/DefaultColorfulPortalCardBackground.svg.js.map +1 -1
  8. package/dist/components/CreateProjectModal/CreateProjectModal.d.ts +2 -1
  9. package/dist/components/CreateProjectModal/CreateProjectModal.d.ts.map +1 -1
  10. package/dist/components/CreateProjectModal/CreateProjectModal.js +35 -30
  11. package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
  12. package/dist/components/DataGrid/DataGridWebSocket.d.ts +4 -0
  13. package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
  14. package/dist/components/DataGrid/DataGridWebSocket.js +47 -37
  15. package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
  16. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  17. package/dist/components/DataGrid/SynapseGrid.js +193 -152
  18. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  19. package/dist/components/DataGrid/useDataGridWebsocket.d.ts +6 -1
  20. package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
  21. package/dist/components/DataGrid/useDataGridWebsocket.js +78 -69
  22. package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
  23. package/dist/components/SynapseTable/SynapseTable.d.ts +6 -1
  24. package/dist/components/SynapseTable/SynapseTable.d.ts.map +1 -1
  25. package/dist/components/SynapseTable/SynapseTable.js +123 -93
  26. package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
  27. package/dist/components/TextField/TextField.css +1 -0
  28. package/dist/components/TextField/TextField.d.ts +1 -1
  29. package/dist/components/TextField/TextField.d.ts.map +1 -1
  30. package/dist/components/TextField/TextField.js +30 -28
  31. package/dist/components/TextField/TextField.js.map +1 -1
  32. package/dist/components/TextField/TextField.module.scss +18 -0
  33. package/dist/components/TextField/TextField.module.scss.js +12 -0
  34. package/dist/components/TextField/TextField.module.scss.js.map +1 -0
  35. package/dist/components/styled/HoverPopover.css +1 -1
  36. package/dist/components/styled/HoverPopover.d.ts.map +1 -1
  37. package/dist/components/styled/HoverPopover.js +6 -5
  38. package/dist/components/styled/HoverPopover.js.map +1 -1
  39. package/dist/components/styled/HoverPopover.module.scss +2 -1
  40. package/dist/components/styled/HoverPopover.module.scss.js +1 -1
  41. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts +5 -2
  42. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
  43. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +46 -33
  44. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  45. package/dist/features/entity/metadata-task/components/MetadataTasksPage.d.ts.map +1 -1
  46. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +52 -27
  47. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
  48. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.d.ts +7 -0
  49. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.d.ts.map +1 -0
  50. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js +323 -0
  51. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -0
  52. package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.d.ts +7 -1
  53. package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.d.ts.map +1 -1
  54. package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js +7 -7
  55. package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js.map +1 -1
  56. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.d.ts +9 -5
  57. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.d.ts.map +1 -1
  58. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js +79 -16
  59. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
  60. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.d.ts +12 -0
  61. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.d.ts.map +1 -0
  62. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js +20 -0
  63. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -0
  64. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts +3 -3
  65. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
  66. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +54 -41
  67. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
  68. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.d.ts +2 -2
  69. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.d.ts.map +1 -1
  70. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js +5 -2
  71. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
  72. package/dist/features/entity/metadata-task/utils/taskHasAssignee.d.ts +3 -0
  73. package/dist/features/entity/metadata-task/utils/taskHasAssignee.d.ts.map +1 -0
  74. package/dist/features/entity/metadata-task/utils/taskHasAssignee.js +7 -0
  75. package/dist/features/entity/metadata-task/utils/taskHasAssignee.js.map +1 -0
  76. package/dist/mocks/curation/mockCurationTask.d.ts +10 -0
  77. package/dist/mocks/curation/mockCurationTask.d.ts.map +1 -0
  78. package/dist/mocks/curation/mockCurationTask.js +24 -0
  79. package/dist/mocks/curation/mockCurationTask.js.map +1 -0
  80. package/dist/synapse-queries/KeyFactory.d.ts +8 -3
  81. package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
  82. package/dist/synapse-queries/KeyFactory.js +22 -7
  83. package/dist/synapse-queries/KeyFactory.js.map +1 -1
  84. package/dist/synapse-queries/curation/task/useCurationTask.d.ts +6 -3
  85. package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
  86. package/dist/synapse-queries/curation/task/useCurationTask.js +62 -18
  87. package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
  88. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.d.ts +2 -0
  89. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.d.ts.map +1 -1
  90. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
  91. package/dist/synapse-queries/grid/useGridSession.d.ts +17 -2
  92. package/dist/synapse-queries/grid/useGridSession.d.ts.map +1 -1
  93. package/dist/synapse-queries/grid/useGridSession.js +63 -30
  94. package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
  95. package/dist/synapse-queries/index.js +103 -99
  96. package/dist/synapse-queries/team/index.js +18 -15
  97. package/dist/synapse-queries/team/useTeamMembers.d.ts +34 -0
  98. package/dist/synapse-queries/team/useTeamMembers.d.ts.map +1 -1
  99. package/dist/synapse-queries/team/useTeamMembers.js +110 -69
  100. package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
  101. package/dist/synapse-queries/types.d.ts +13 -0
  102. package/dist/synapse-queries/types.d.ts.map +1 -0
  103. package/dist/synapse-queries/types.js +2 -0
  104. package/dist/synapse-queries/types.js.map +1 -0
  105. package/dist/synapse-queries/user/index.js +12 -11
  106. package/dist/synapse-queries/user/useUserGroupHeader.d.ts +5 -0
  107. package/dist/synapse-queries/user/useUserGroupHeader.d.ts.map +1 -1
  108. package/dist/synapse-queries/user/useUserGroupHeader.js +28 -21
  109. package/dist/synapse-queries/user/useUserGroupHeader.js.map +1 -1
  110. package/dist/tsconfig.build.tsbuildinfo +1 -1
  111. package/dist/utils/hooks/useOverlay.d.ts +2 -2
  112. package/dist/utils/hooks/useOverlay.d.ts.map +1 -1
  113. package/dist/utils/hooks/useOverlay.js +41 -41
  114. package/dist/utils/hooks/useOverlay.js.map +1 -1
  115. package/package.json +4 -4
@@ -1,5 +1,11 @@
1
1
  import { CreateGridRequest, GridSession, SynapseClientError } from '@sage-bionetworks/synapse-client';
2
- export default function useGetOrCreateGridSessionForSource(): import("@tanstack/react-query").UseMutationResult<GridSession, SynapseClientError, {
2
+ /**
3
+ * Given a source ID, retrieve the latest grid session owned by the user that uses that source. If no grid session
4
+ * exists, a new one is created.
5
+ * @deprecated Functionality to retrieve grid sessions has been replaced by tasks. This hook only remains to enable a legacy
6
+ * scenario that will be removed in the future.
7
+ */
8
+ export default function useGetOrCreateGridSessionForSource_legacy(): import("@tanstack/react-query").UseMutationResult<GridSession, SynapseClientError, {
3
9
  sourceId: string;
4
10
  createRequest: CreateGridRequest;
5
11
  }, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"useGetOrCreateGridSessionForSource.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EACnB,MAAM,kCAAkC,CAAA;AAGzC,MAAM,CAAC,OAAO,UAAU,kCAAkC;cAS1C,MAAM;mBAAiB,iBAAiB;YAcvD"}
1
+ {"version":3,"file":"useGetOrCreateGridSessionForSource.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EACnB,MAAM,kCAAkC,CAAA;AAGzC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,yCAAyC;cASjD,MAAM;mBAAiB,iBAAiB;YAcvD"}
@@ -1,10 +1,10 @@
1
1
  import { getLatestGridSessionForSource as i } from "../utils/getLatestGridSessionForSource.js";
2
- import { useCreateGridSession as u } from "../../../../synapse-queries/grid/useGridSession.js";
3
- import { useSynapseContext as a } from "../../../../utils/context/SynapseContext.js";
4
- import { useQueryClient as m, useMutation as c } from "@tanstack/react-query";
5
- function y() {
6
- const t = m(), r = a(), { mutateAsync: o } = u();
7
- return c({
2
+ import { useCreateGridSession as a } from "../../../../synapse-queries/grid/useGridSession.js";
3
+ import { useSynapseContext as u } from "../../../../utils/context/SynapseContext.js";
4
+ import { useQueryClient as c, useMutation as m } from "@tanstack/react-query";
5
+ function p() {
6
+ const t = c(), r = u(), { mutateAsync: o } = a();
7
+ return m({
8
8
  mutationFn: async ({ sourceId: s, createRequest: n }) => {
9
9
  const e = await i(s, {
10
10
  queryClient: t,
@@ -15,6 +15,6 @@ function y() {
15
15
  });
16
16
  }
17
17
  export {
18
- y as default
18
+ p as default
19
19
  };
20
20
  //# sourceMappingURL=useGetOrCreateGridSessionForSource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGetOrCreateGridSessionForSource.js","sources":["../../../../../src/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.ts"],"sourcesContent":["import { getLatestGridSessionForSource } from '@/features/entity/metadata-task/utils/getLatestGridSessionForSource'\nimport { useCreateGridSession } from '@/synapse-queries/grid/useGridSession'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n CreateGridRequest,\n GridSession,\n SynapseClientError,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation, useQueryClient } from '@tanstack/react-query'\n\nexport default function useGetOrCreateGridSessionForSource() {\n const queryClient = useQueryClient()\n const synapseContext = useSynapseContext()\n\n const { mutateAsync: createGridSession } = useCreateGridSession()\n\n return useMutation<\n GridSession,\n SynapseClientError,\n { sourceId: string; createRequest: CreateGridRequest }\n >({\n mutationFn: async ({ sourceId, createRequest }) => {\n const maybeGridSession = await getLatestGridSessionForSource(sourceId, {\n queryClient,\n synapseContext,\n })\n\n if (maybeGridSession != null) {\n return maybeGridSession\n }\n return (await createGridSession(createRequest)).gridSession!\n },\n })\n}\n"],"names":["useGetOrCreateGridSessionForSource","queryClient","useQueryClient","synapseContext","useSynapseContext","createGridSession","useCreateGridSession","useMutation","sourceId","createRequest","maybeGridSession","getLatestGridSessionForSource"],"mappings":";;;;AAUA,SAAwBA,IAAqC;AAC3D,QAAMC,IAAcC,EAAA,GACdC,IAAiBC,EAAA,GAEjB,EAAE,aAAaC,EAAA,IAAsBC,EAAA;AAE3C,SAAOC,EAIL;AAAA,IACA,YAAY,OAAO,EAAE,UAAAC,GAAU,eAAAC,QAAoB;AACjD,YAAMC,IAAmB,MAAMC,EAA8BH,GAAU;AAAA,QACrE,aAAAP;AAAA,QACA,gBAAAE;AAAA,MAAA,CACD;AAED,aAAIO,MAGI,MAAML,EAAkBI,CAAa,GAAG;AAAA,IAClD;AAAA,EAAA,CACD;AACH;"}
1
+ {"version":3,"file":"useGetOrCreateGridSessionForSource.js","sources":["../../../../../src/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.ts"],"sourcesContent":["import { getLatestGridSessionForSource } from '@/features/entity/metadata-task/utils/getLatestGridSessionForSource'\nimport { useCreateGridSession } from '@/synapse-queries/grid/useGridSession'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n CreateGridRequest,\n GridSession,\n SynapseClientError,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation, useQueryClient } from '@tanstack/react-query'\n\n/**\n * Given a source ID, retrieve the latest grid session owned by the user that uses that source. If no grid session\n * exists, a new one is created.\n * @deprecated Functionality to retrieve grid sessions has been replaced by tasks. This hook only remains to enable a legacy\n * scenario that will be removed in the future.\n */\nexport default function useGetOrCreateGridSessionForSource_legacy() {\n const queryClient = useQueryClient()\n const synapseContext = useSynapseContext()\n\n const { mutateAsync: createGridSession } = useCreateGridSession()\n\n return useMutation<\n GridSession,\n SynapseClientError,\n { sourceId: string; createRequest: CreateGridRequest }\n >({\n mutationFn: async ({ sourceId, createRequest }) => {\n const maybeGridSession = await getLatestGridSessionForSource(sourceId, {\n queryClient,\n synapseContext,\n })\n\n if (maybeGridSession != null) {\n return maybeGridSession\n }\n return (await createGridSession(createRequest)).gridSession!\n },\n })\n}\n"],"names":["useGetOrCreateGridSessionForSource_legacy","queryClient","useQueryClient","synapseContext","useSynapseContext","createGridSession","useCreateGridSession","useMutation","sourceId","createRequest","maybeGridSession","getLatestGridSessionForSource"],"mappings":";;;;AAgBA,SAAwBA,IAA4C;AAClE,QAAMC,IAAcC,EAAA,GACdC,IAAiBC,EAAA,GAEjB,EAAE,aAAaC,EAAA,IAAsBC,EAAA;AAE3C,SAAOC,EAIL;AAAA,IACA,YAAY,OAAO,EAAE,UAAAC,GAAU,eAAAC,QAAoB;AACjD,YAAMC,IAAmB,MAAMC,EAA8BH,GAAU;AAAA,QACrE,aAAAP;AAAA,QACA,gBAAAE;AAAA,MAAA,CACD;AAED,aAAIO,MAGI,MAAML,EAAkBI,CAAa,GAAG;AAAA,IAClD;AAAA,EAAA,CACD;AACH;"}
@@ -1,11 +1,15 @@
1
- import { CurationTask, GridSession, SynapseClientError } from '@sage-bionetworks/synapse-client';
1
+ import { GridSession, SynapseClientError, TaskBundle } from '@sage-bionetworks/synapse-client';
2
+ export type UseGridSessionForCurationTaskResult = {
3
+ gridSession: GridSession;
4
+ gridSessionOwnerMatchesTaskAssignee: boolean;
5
+ };
2
6
  /**
3
7
  * A hook to get or create a GridSession for a given CurationTask. If an appropriate GridSession exists, it will be returned.
4
8
  * If not, a new GridSession will be created based on the CurationTask's properties.
5
9
  *
6
- * @returns A mutation object with a function to get or create a GridSession for a CurationTask.
10
+ * @returns A mutation object with a function to get or create a GridSession for a CurationTask. The response will also indicate
11
+ * if the GridSession owner matches the task assignee (if there is one).
12
+ * @throws SynapseClientError with status 403 if the user does not have permission to access an existing GridSession
7
13
  */
8
- export default function useGridSessionForCurationTask(): import("@tanstack/react-query").UseMutationResult<GridSession, SynapseClientError, {
9
- curationTask: CurationTask;
10
- }, unknown>;
14
+ export default function useGridSessionForCurationTask(): import("@tanstack/react-query").UseMutationResult<UseGridSessionForCurationTaskResult, SynapseClientError, TaskBundle, unknown>;
11
15
  //# sourceMappingURL=useGridSessionForCurationTask.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGridSessionForCurationTask.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/hooks/useGridSessionForCurationTask.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EACnB,MAAM,kCAAkC,CAAA;AAMzC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,6BAA6B;kBAOjC,YAAY;YAkB/B"}
1
+ {"version":3,"file":"useGridSessionForCurationTask.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/hooks/useGridSessionForCurationTask.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,UAAU,EACX,MAAM,kCAAkC,CAAA;AAKzC,MAAM,MAAM,mCAAmC,GAAG;IAChD,WAAW,EAAE,WAAW,CAAA;IACxB,mCAAmC,EAAE,OAAO,CAAA;CAC7C,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,6BAA6B,oIA6FpD"}
@@ -1,23 +1,86 @@
1
- import { useMutation as i } from "@tanstack/react-query";
2
- import { getCreateGridRequestForMetadataTask as a } from "../utils/getCreateGridRequestForMetadataTask.js";
3
- import { getGridSourceIdForTask as n } from "../utils/getGridSourceIdForTask.js";
4
- import u from "./useGetOrCreateGridSessionForSource.js";
5
- function f() {
6
- const { mutateAsync: t } = u();
7
- return i({
8
- mutationFn: async ({ curationTask: r }) => {
9
- const e = r.taskProperties;
10
- if (e == null)
1
+ import { useUpdateCurationTaskStatus as S } from "../../../../synapse-queries/curation/task/useCurationTask.js";
2
+ import { useCreateGridSession as k, useDeleteGridSession as w, getGridSessionQuery as f } from "../../../../synapse-queries/grid/useGridSession.js";
3
+ import "../../../../utils/PermissionLevelToAccessType.js";
4
+ import "../../../../utils/SynapseConstants.js";
5
+ import "react";
6
+ import "../../../../synapse-client/SynapseClient.js";
7
+ import "@sage-bionetworks/synapse-client/generated/models/ErrorResponseCode";
8
+ import "@sage-bionetworks/synapse-client/generated/models/TwoFactorAuthErrorResponse";
9
+ import "@sage-bionetworks/synapse-client/util/SynapseClientError";
10
+ import "@sage-bionetworks/synapse-types";
11
+ import "../../../../utils/functions/EntityTypeUtils.js";
12
+ import "lodash-es";
13
+ import "@sage-bionetworks/synapse-client/util/synapseClientFetch";
14
+ import { useSynapseContext as y } from "../../../../utils/context/SynapseContext.js";
15
+ import "use-deep-compare-effect";
16
+ import { useQueryClient as h, useMutation as C } from "@tanstack/react-query";
17
+ import "@tanstack/query-core";
18
+ import "lodash-es/isEmpty";
19
+ import "lodash-es/isEqual";
20
+ import "lodash-es/xorWith";
21
+ import "@mui/material";
22
+ import { SynapseClientError as a } from "@sage-bionetworks/synapse-client";
23
+ import "../../../../utils/types/IsType.js";
24
+ import "react/jsx-runtime";
25
+ import "../../../../utils/hooks/useCookiePreferences.js";
26
+ import "../../../../utils/hooks/useSourceAppConfigs.js";
27
+ import "universal-cookie";
28
+ import "../../../../utils/AppUtils/session/ApplicationSessionContext.js";
29
+ import "../../../../utils/context/FullContextProvider.js";
30
+ import "../../../../utils/context/DocumentMetadataContext.js";
31
+ import '../../../../style/components/_spinner.css';/* empty css */
32
+ import "react-router";
33
+ import { getCreateGridRequestForMetadataTask as G } from "../utils/getCreateGridRequestForMetadataTask.js";
34
+ import T from "../utils/taskHasAssignee.js";
35
+ function nt() {
36
+ const { mutateAsync: p } = k(), { mutateAsync: m } = S(), { mutateAsync: c } = w(), u = y(), r = h();
37
+ return C({
38
+ mutationFn: async (d) => {
39
+ const { task: e, status: s } = d;
40
+ if (!e || !s)
41
+ throw new Error("CurationTaskBundle is missing task or status");
42
+ const o = T(e), n = s?.executionDetails?.activeSessionId;
43
+ if (n)
44
+ try {
45
+ const t = await r.fetchQuery({
46
+ ...f(n, {
47
+ ...u,
48
+ queryClient: r
49
+ }),
50
+ staleTime: 0
51
+ }), g = o && t.ownerPrincipalId == e.assigneePrincipalId;
52
+ return {
53
+ gridSession: t,
54
+ gridSessionOwnerMatchesTaskAssignee: g
55
+ };
56
+ } catch (t) {
57
+ if (!(t instanceof a && t.status === 404)) throw t;
58
+ }
59
+ if (e.taskProperties == null)
11
60
  throw new Error("CurationTask is missing taskProperties");
12
- const o = n(r), s = a(e);
13
- return await t({
14
- sourceId: o,
15
- createRequest: s
16
- });
61
+ const l = G(e), i = (await p(l)).gridSession;
62
+ try {
63
+ await m({
64
+ ...s,
65
+ executionDetails: {
66
+ ...s.executionDetails,
67
+ activeSessionId: i.sessionId,
68
+ concreteType: "org.sagebionetworks.repo.model.curation.execution.GridExecutionDetails"
69
+ }
70
+ });
71
+ } catch (t) {
72
+ throw t instanceof a && t.status === 412 ? (await c(i.sessionId), new Error(
73
+ "Failed to link Grid session to Curation Task. The task was updated since it was last retrieved. Please refresh and try again."
74
+ )) : t;
75
+ }
76
+ return {
77
+ gridSession: i,
78
+ gridSessionOwnerMatchesTaskAssignee: o
79
+ };
17
80
  }
18
81
  });
19
82
  }
20
83
  export {
21
- f as default
84
+ nt as default
22
85
  };
23
86
  //# sourceMappingURL=useGridSessionForCurationTask.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGridSessionForCurationTask.js","sources":["../../../../../src/features/entity/metadata-task/hooks/useGridSessionForCurationTask.ts"],"sourcesContent":["import {\n CurationTask,\n GridSession,\n SynapseClientError,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation } from '@tanstack/react-query'\nimport { getCreateGridRequestForMetadataTask } from '../utils/getCreateGridRequestForMetadataTask'\nimport { getGridSourceIdForTask } from '../utils/getGridSourceIdForTask'\nimport useGetOrCreateGridSessionForSource from './useGetOrCreateGridSessionForSource'\n\n/**\n * A hook to get or create a GridSession for a given CurationTask. If an appropriate GridSession exists, it will be returned.\n * If not, a new GridSession will be created based on the CurationTask's properties.\n *\n * @returns A mutation object with a function to get or create a GridSession for a CurationTask.\n */\nexport default function useGridSessionForCurationTask() {\n const { mutateAsync: getOrCreateGridSession } =\n useGetOrCreateGridSessionForSource()\n\n return useMutation<\n GridSession,\n SynapseClientError,\n { curationTask: CurationTask }\n >({\n mutationFn: async ({ curationTask }) => {\n const taskProperties = curationTask.taskProperties\n if (taskProperties == null) {\n throw new Error('CurationTask is missing taskProperties')\n }\n\n const gridSourceId = getGridSourceIdForTask(curationTask)\n\n const createGridRequest =\n getCreateGridRequestForMetadataTask(taskProperties)\n return await getOrCreateGridSession({\n sourceId: gridSourceId,\n createRequest: createGridRequest,\n })\n },\n })\n}\n"],"names":["useGridSessionForCurationTask","getOrCreateGridSession","useGetOrCreateGridSessionForSource","useMutation","curationTask","taskProperties","gridSourceId","getGridSourceIdForTask","createGridRequest","getCreateGridRequestForMetadataTask"],"mappings":";;;;AAgBA,SAAwBA,IAAgC;AACtD,QAAM,EAAE,aAAaC,EAAA,IACnBC,EAAA;AAEF,SAAOC,EAIL;AAAA,IACA,YAAY,OAAO,EAAE,cAAAC,QAAmB;AACtC,YAAMC,IAAiBD,EAAa;AACpC,UAAIC,KAAkB;AACpB,cAAM,IAAI,MAAM,wCAAwC;AAG1D,YAAMC,IAAeC,EAAuBH,CAAY,GAElDI,IACJC,EAAoCJ,CAAc;AACpD,aAAO,MAAMJ,EAAuB;AAAA,QAClC,UAAUK;AAAA,QACV,eAAeE;AAAA,MAAA,CAChB;AAAA,IACH;AAAA,EAAA,CACD;AACH;"}
1
+ {"version":3,"file":"useGridSessionForCurationTask.js","sources":["../../../../../src/features/entity/metadata-task/hooks/useGridSessionForCurationTask.ts"],"sourcesContent":["import { useUpdateCurationTaskStatus } from '@/synapse-queries/curation/task/useCurationTask'\nimport {\n getGridSessionQuery,\n useCreateGridSession,\n useDeleteGridSession,\n} from '@/synapse-queries/grid/useGridSession'\nimport { useSynapseContext } from '@/utils'\nimport {\n GridSession,\n SynapseClientError,\n TaskBundle,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation, useQueryClient } from '@tanstack/react-query'\nimport { getCreateGridRequestForMetadataTask } from '../utils/getCreateGridRequestForMetadataTask'\nimport taskHasAssignee from '../utils/taskHasAssignee'\n\nexport type UseGridSessionForCurationTaskResult = {\n gridSession: GridSession\n gridSessionOwnerMatchesTaskAssignee: boolean\n}\n\n/**\n * A hook to get or create a GridSession for a given CurationTask. If an appropriate GridSession exists, it will be returned.\n * If not, a new GridSession will be created based on the CurationTask's properties.\n *\n * @returns A mutation object with a function to get or create a GridSession for a CurationTask. The response will also indicate\n * if the GridSession owner matches the task assignee (if there is one).\n * @throws SynapseClientError with status 403 if the user does not have permission to access an existing GridSession\n */\nexport default function useGridSessionForCurationTask() {\n const { mutateAsync: createGridSession } = useCreateGridSession()\n const { mutateAsync: updateCurationTaskStatus } =\n useUpdateCurationTaskStatus()\n const { mutateAsync: deleteGridSession } = useDeleteGridSession()\n\n const synapseContext = useSynapseContext()\n const queryClient = useQueryClient()\n\n return useMutation<\n UseGridSessionForCurationTaskResult,\n SynapseClientError,\n TaskBundle\n >({\n mutationFn: async curationTaskBundle => {\n const { task, status } = curationTaskBundle\n if (!task || !status) {\n throw new Error('CurationTaskBundle is missing task or status')\n }\n\n const hasAssignee = taskHasAssignee(task)\n\n const gridSessionId = status?.executionDetails?.activeSessionId\n if (gridSessionId) {\n try {\n // Verify the session is still active before returning it\n const gridSession = await queryClient.fetchQuery({\n ...getGridSessionQuery(gridSessionId, {\n ...synapseContext,\n queryClient,\n }),\n staleTime: 0,\n })\n\n const assigneeMatchesGridSessionOwner =\n hasAssignee &&\n gridSession.ownerPrincipalId == task.assigneePrincipalId\n\n return {\n gridSession,\n gridSessionOwnerMatchesTaskAssignee:\n assigneeMatchesGridSessionOwner,\n }\n } catch (e) {\n if (e instanceof SynapseClientError && e.status === 404) {\n // Session not found, will create a new one\n } else {\n throw e\n }\n }\n }\n // Create a session and link it to the task\n const taskProperties = task.taskProperties\n if (taskProperties == null) {\n throw new Error('CurationTask is missing taskProperties')\n }\n\n const createGridRequest = getCreateGridRequestForMetadataTask(task)\n const createGridResponse = await createGridSession(createGridRequest)\n const gridSession = createGridResponse.gridSession!\n\n // Associate the new session with the task\n try {\n await updateCurationTaskStatus({\n ...status,\n executionDetails: {\n ...status.executionDetails,\n activeSessionId: gridSession.sessionId!,\n concreteType:\n 'org.sagebionetworks.repo.model.curation.execution.GridExecutionDetails',\n },\n })\n } catch (e) {\n if (e instanceof SynapseClientError && e.status === 412) {\n // etag mismatch -- possible race condition.\n // Delete the session we just created to avoid orphaned sessions, and throw an error to notify the user that they may need to refresh and try again.\n await deleteGridSession(gridSession.sessionId!)\n throw new Error(\n 'Failed to link Grid session to Curation Task. The task was updated since it was last retrieved. Please refresh and try again.',\n )\n } else {\n // Rethrow any other error\n throw e\n }\n }\n\n // Since we just created the session, the user must have access, and the owner must match the assignee (if there is one).\n return {\n gridSession,\n gridSessionOwnerMatchesTaskAssignee: hasAssignee,\n }\n },\n })\n}\n"],"names":["useGridSessionForCurationTask","createGridSession","useCreateGridSession","updateCurationTaskStatus","useUpdateCurationTaskStatus","deleteGridSession","useDeleteGridSession","synapseContext","useSynapseContext","queryClient","useQueryClient","useMutation","curationTaskBundle","task","status","hasAssignee","taskHasAssignee","gridSessionId","gridSession","getGridSessionQuery","assigneeMatchesGridSessionOwner","e","SynapseClientError","createGridRequest","getCreateGridRequestForMetadataTask"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,SAAwBA,KAAgC;AACtD,QAAM,EAAE,aAAaC,EAAA,IAAsBC,EAAA,GACrC,EAAE,aAAaC,EAAA,IACnBC,EAAA,GACI,EAAE,aAAaC,EAAA,IAAsBC,EAAA,GAErCC,IAAiBC,EAAA,GACjBC,IAAcC,EAAA;AAEpB,SAAOC,EAIL;AAAA,IACA,YAAY,OAAMC,MAAsB;AACtC,YAAM,EAAE,MAAAC,GAAM,QAAAC,EAAA,IAAWF;AACzB,UAAI,CAACC,KAAQ,CAACC;AACZ,cAAM,IAAI,MAAM,8CAA8C;AAGhE,YAAMC,IAAcC,EAAgBH,CAAI,GAElCI,IAAgBH,GAAQ,kBAAkB;AAChD,UAAIG;AACF,YAAI;AAEF,gBAAMC,IAAc,MAAMT,EAAY,WAAW;AAAA,YAC/C,GAAGU,EAAoBF,GAAe;AAAA,cACpC,GAAGV;AAAA,cACH,aAAAE;AAAA,YAAA,CACD;AAAA,YACD,WAAW;AAAA,UAAA,CACZ,GAEKW,IACJL,KACAG,EAAY,oBAAoBL,EAAK;AAEvC,iBAAO;AAAA,YACL,aAAAK;AAAAA,YACA,qCACEE;AAAA,UAAA;AAAA,QAEN,SAASC,GAAG;AACV,cAAI,EAAAA,aAAaC,KAAsBD,EAAE,WAAW,KAGlD,OAAMA;AAAA,QAEV;AAIF,UADuBR,EAAK,kBACN;AACpB,cAAM,IAAI,MAAM,wCAAwC;AAG1D,YAAMU,IAAoBC,EAAoCX,CAAI,GAE5DK,KADqB,MAAMjB,EAAkBsB,CAAiB,GAC7B;AAGvC,UAAI;AACF,cAAMpB,EAAyB;AAAA,UAC7B,GAAGW;AAAA,UACH,kBAAkB;AAAA,YAChB,GAAGA,EAAO;AAAA,YACV,iBAAiBI,EAAY;AAAA,YAC7B,cACE;AAAA,UAAA;AAAA,QACJ,CACD;AAAA,MACH,SAASG,GAAG;AACV,cAAIA,aAAaC,KAAsBD,EAAE,WAAW,OAGlD,MAAMhB,EAAkBa,EAAY,SAAU,GACxC,IAAI;AAAA,UACR;AAAA,QAAA,KAIIG;AAAA,MAEV;AAGA,aAAO;AAAA,QACL,aAAAH;AAAA,QACA,qCAAqCH;AAAA,MAAA;AAAA,IAEzC;AAAA,EAAA,CACD;AACH;"}
@@ -0,0 +1,12 @@
1
+ import { CurationTask, GridSession, SynapseClientError } from '@sage-bionetworks/synapse-client';
2
+ /**
3
+ * A hook to get or create a GridSession for an unassigned CurationTask. The session will be owned by the calling user.
4
+ *
5
+ * @returns A mutation object with a function to get or create a GridSession for a CurationTask.
6
+ * @deprecated This functionality is preserved to ensure users are not blocked from doing work, but enables a critical
7
+ * data loss scenario, so we must aim to remove it.
8
+ */
9
+ export default function useGridSessionForCurationTask_legacy(): import("@tanstack/react-query").UseMutationResult<GridSession, SynapseClientError, {
10
+ curationTask: CurationTask;
11
+ }, unknown>;
12
+ //# sourceMappingURL=useGridSessionForCurationTask_legacy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGridSessionForCurationTask_legacy.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EACnB,MAAM,kCAAkC,CAAA;AAMzC;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,oCAAoC;kBAOxC,YAAY;YAa/B"}
@@ -0,0 +1,20 @@
1
+ import { useMutation as s } from "@tanstack/react-query";
2
+ import { getCreateGridRequestForMetadataTask as a } from "../utils/getCreateGridRequestForMetadataTask.js";
3
+ import { getGridSourceIdForTask as i } from "../utils/getGridSourceIdForTask.js";
4
+ import u from "./useGetOrCreateGridSessionForSource.js";
5
+ function G() {
6
+ const { mutateAsync: r } = u();
7
+ return s({
8
+ mutationFn: async ({ curationTask: e }) => {
9
+ const t = i(e), o = a(e);
10
+ return await r({
11
+ sourceId: t,
12
+ createRequest: o
13
+ });
14
+ }
15
+ });
16
+ }
17
+ export {
18
+ G as default
19
+ };
20
+ //# sourceMappingURL=useGridSessionForCurationTask_legacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGridSessionForCurationTask_legacy.js","sources":["../../../../../src/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.ts"],"sourcesContent":["import {\n CurationTask,\n GridSession,\n SynapseClientError,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation } from '@tanstack/react-query'\nimport { getCreateGridRequestForMetadataTask } from '../utils/getCreateGridRequestForMetadataTask'\nimport { getGridSourceIdForTask } from '../utils/getGridSourceIdForTask'\nimport useGetOrCreateGridSessionForSource from './useGetOrCreateGridSessionForSource'\n\n/**\n * A hook to get or create a GridSession for an unassigned CurationTask. The session will be owned by the calling user.\n *\n * @returns A mutation object with a function to get or create a GridSession for a CurationTask.\n * @deprecated This functionality is preserved to ensure users are not blocked from doing work, but enables a critical\n * data loss scenario, so we must aim to remove it.\n */\nexport default function useGridSessionForCurationTask_legacy() {\n const { mutateAsync: getOrCreateGridSession } =\n useGetOrCreateGridSessionForSource()\n\n return useMutation<\n GridSession,\n SynapseClientError,\n { curationTask: CurationTask }\n >({\n mutationFn: async ({ curationTask }) => {\n const gridSourceId = getGridSourceIdForTask(curationTask)\n\n const createGridRequest =\n getCreateGridRequestForMetadataTask(curationTask)\n return await getOrCreateGridSession({\n sourceId: gridSourceId,\n createRequest: createGridRequest,\n })\n },\n })\n}\n"],"names":["useGridSessionForCurationTask_legacy","getOrCreateGridSession","useGetOrCreateGridSessionForSource","useMutation","curationTask","gridSourceId","getGridSourceIdForTask","createGridRequest","getCreateGridRequestForMetadataTask"],"mappings":";;;;AAiBA,SAAwBA,IAAuC;AAC7D,QAAM,EAAE,aAAaC,EAAA,IACnBC,EAAA;AAEF,SAAOC,EAIL;AAAA,IACA,YAAY,OAAO,EAAE,cAAAC,QAAmB;AACtC,YAAMC,IAAeC,EAAuBF,CAAY,GAElDG,IACJC,EAAoCJ,CAAY;AAClD,aAAO,MAAMH,EAAuB;AAAA,QAClC,UAAUI;AAAA,QACV,eAAeE;AAAA,MAAA,CAChB;AAAA,IACH;AAAA,EAAA,CACD;AACH;"}
@@ -1,13 +1,13 @@
1
- import { CurationTask } from '@sage-bionetworks/synapse-client';
1
+ import { ListCurationTaskRequest, TaskBundle } from '@sage-bionetworks/synapse-client';
2
2
  import { Table } from '@tanstack/react-table';
3
3
  type UseMetadataTaskTableOptions = {
4
- projectId: string;
4
+ listCurationTaskRequest: ListCurationTaskRequest;
5
5
  };
6
6
  /**
7
7
  * Provides a table instance and loading states for displaying metadata curation tasks associated with a project.
8
8
  */
9
9
  export declare function useMetadataTaskTable(opts: UseMetadataTaskTableOptions): {
10
- table: Table<CurationTask>;
10
+ table: Table<TaskBundle>;
11
11
  isLoading: boolean;
12
12
  hasNextPage: boolean;
13
13
  fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<import("@sage-bionetworks/synapse-client").ListCurationTaskResponse, unknown>, import("@sage-bionetworks/synapse-client").SynapseClientError>>;
@@ -1 +1 @@
1
- {"version":3,"file":"useMetadataTaskTable.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/hooks/useMetadataTaskTable.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAGL,KAAK,EAEN,MAAM,uBAAuB,CAAA;AA+C9B,KAAK,2BAA2B,GAAG;IACjC,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,2BAA2B;;;;;;EAwCrE"}
1
+ {"version":3,"file":"useMetadataTaskTable.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/hooks/useMetadataTaskTable.tsx"],"names":[],"mappings":"AAOA,OAAO,EACL,uBAAuB,EACvB,UAAU,EACX,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAGL,KAAK,EAEN,MAAM,uBAAuB,CAAA;AAsD9B,KAAK,2BAA2B,GAAG;IACjC,uBAAuB,EAAE,uBAAuB,CAAA;CACjD,CAAA;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,2BAA2B;;;;;;EA+CrE"}
@@ -1,8 +1,7 @@
1
- import { jsx as t } from "react/jsx-runtime";
1
+ import { jsx as o } from "react/jsx-runtime";
2
2
  import r from "../../../../components/TanStackTable/ColumnHeader.js";
3
- import { UserBadge as u } from "../../../../components/UserCard/UserBadge.js";
4
- import { getGridSourceIdForTask as g } from "../utils/getGridSourceIdForTask.js";
5
- import { useGetCurationTasksByProjectInfinite as b } from "../../../../synapse-queries/curation/task/useCurationTask.js";
3
+ import { getGridSourceIdForTask as f } from "../utils/getGridSourceIdForTask.js";
4
+ import { useGetCurationTasksByProjectInfinite as g } from "../../../../synapse-queries/curation/task/useCurationTask.js";
6
5
  import "../../../../synapse-client/SynapseClient.js";
7
6
  import "@sage-bionetworks/synapse-client/generated/models/ErrorResponseCode";
8
7
  import "@sage-bionetworks/synapse-client/generated/models/TwoFactorAuthErrorResponse";
@@ -14,10 +13,10 @@ import "lodash-es";
14
13
  import "@sage-bionetworks/synapse-client/util/synapseClientFetch";
15
14
  import "@tanstack/react-query";
16
15
  import "../../../../utils/PermissionLevelToAccessType.js";
17
- import { useMemo as T } from "react";
16
+ import { useMemo as k } from "react";
18
17
  import "../../../../utils/context/SynapseContext.js";
19
18
  import "use-deep-compare-effect";
20
- import { Link as h } from "@mui/material";
19
+ import { Link as b } from "@mui/material";
21
20
  import "../../../../utils/hooks/useCookiePreferences.js";
22
21
  import "../../../../utils/hooks/useSourceAppConfigs.js";
23
22
  import "universal-cookie";
@@ -32,49 +31,56 @@ import "lodash-es/xorWith";
32
31
  import "react-router";
33
32
  import "@sage-bionetworks/synapse-client";
34
33
  import "../../../../utils/types/IsType.js";
35
- import k from "../../../../synapse-queries/entity/useEntityBundle.js";
34
+ import T from "../../../../synapse-queries/entity/useEntityBundle.js";
36
35
  import { formatDate as C } from "../../../../utils/functions/DateFormatter.js";
37
- import { getLinkToEntityPage as y } from "../../../../utils/functions/getSynapseWebClientLink.js";
38
- import { useReactTable as I, getCoreRowModel as M, createColumnHelper as B } from "@tanstack/react-table";
39
- import L from "dayjs";
40
- import S from "../components/MetadataTaskTableActionCell.js";
41
- function j(a) {
42
- const o = B();
36
+ import { getLinkToEntityPage as h } from "../../../../utils/functions/getSynapseWebClientLink.js";
37
+ import { useReactTable as I, getCoreRowModel as M, createColumnHelper as P } from "@tanstack/react-table";
38
+ import j from "dayjs";
39
+ import y from "../components/MetadataTaskTableActionCell.js";
40
+ import L from "../components/MetadataTasksTableAssigneeCell.js";
41
+ function S(a) {
42
+ const t = P();
43
43
  return [
44
- o.accessor("dataType", {
45
- header: (e) => /* @__PURE__ */ t(r, { ...e, title: "Tasks" }),
44
+ t.accessor("task.dataType", {
45
+ header: (e) => /* @__PURE__ */ o(r, { ...e, title: "Task" }),
46
46
  cell: ({ row: e, getValue: n }) => {
47
- const s = g(e.original);
48
- return /* @__PURE__ */ t(h, { href: y(s), children: n() });
47
+ const s = f(e.original.task);
48
+ return /* @__PURE__ */ o(b, { href: h(s), children: n() });
49
49
  },
50
50
  enableSorting: !1,
51
51
  enableColumnFilter: !1
52
52
  }),
53
- o.accessor("instructions", {
54
- header: (e) => /* @__PURE__ */ t(r, { ...e, title: "Instructions" }),
55
- cell: ({ getValue: e }) => /* @__PURE__ */ t("p", { children: e() }),
53
+ t.accessor("task.instructions", {
54
+ header: (e) => /* @__PURE__ */ o(r, { ...e, title: "Instructions" }),
55
+ cell: ({ getValue: e }) => /* @__PURE__ */ o("p", { children: e() }),
56
56
  enableSorting: !1,
57
57
  enableColumnFilter: !1
58
58
  }),
59
- o.accessor("modifiedBy", {
60
- header: (e) => /* @__PURE__ */ t(r, { ...e, title: "Modified By" }),
61
- cell: ({ getValue: e }) => /* @__PURE__ */ t(u, { userId: e() }),
59
+ t.accessor("task.assigneePrincipalId", {
60
+ header: (e) => /* @__PURE__ */ o(r, { ...e, title: "Assignee" }),
61
+ cell: ({ row: e }) => /* @__PURE__ */ o(
62
+ L,
63
+ {
64
+ taskBundle: e.original,
65
+ canEdit: a
66
+ }
67
+ ),
62
68
  enableSorting: !1,
63
69
  enableColumnFilter: !1
64
70
  }),
65
- o.accessor("modifiedOn", {
66
- header: (e) => /* @__PURE__ */ t(r, { ...e, title: "Modified On" }),
67
- cell: ({ getValue: e }) => C(L(e())),
71
+ t.accessor("task.modifiedOn", {
72
+ header: (e) => /* @__PURE__ */ o(r, { ...e, title: "Modified On" }),
73
+ cell: ({ getValue: e }) => C(j(e())),
68
74
  enableSorting: !1,
69
75
  enableColumnFilter: !1
70
76
  }),
71
- o.display({
77
+ t.display({
72
78
  id: "actions",
73
- header: (e) => /* @__PURE__ */ t(r, { ...e, title: "Actions" }),
74
- cell: ({ row: e }) => /* @__PURE__ */ t(
75
- S,
79
+ header: (e) => /* @__PURE__ */ o(r, { ...e, title: "Actions" }),
80
+ cell: ({ row: e }) => /* @__PURE__ */ o(
81
+ y,
76
82
  {
77
- curationTask: e.original,
83
+ taskBundle: e.original,
78
84
  canEdit: a
79
85
  }
80
86
  )
@@ -82,21 +88,28 @@ function j(a) {
82
88
  ];
83
89
  }
84
90
  function ge(a) {
85
- const { projectId: o } = a, {
91
+ const { listCurationTaskRequest: t } = a, {
86
92
  data: e,
87
93
  hasNextPage: n,
88
94
  fetchNextPage: s,
89
- isLoading: m,
90
- isFetchingNextPage: l
91
- } = b(o), { data: p, isLoading: d } = k(o), c = p?.permissions?.canEdit ?? !1, f = T(
92
- () => e?.pages.flatMap((i) => i.page) ?? [],
95
+ isLoading: l,
96
+ isFetchingNextPage: m
97
+ } = g(t), { data: p, isLoading: d } = T(
98
+ t.projectId,
99
+ void 0,
100
+ { includePermissions: !0 },
101
+ {
102
+ enabled: !!t.projectId
103
+ }
104
+ ), c = p?.permissions?.canEdit ?? !1, u = k(
105
+ () => e?.pages.flatMap((i) => i.bundlePage) ?? [],
93
106
  [e]
94
107
  );
95
108
  return {
96
109
  table: I({
97
- data: f,
98
- columns: j(c),
99
- getRowId: (i) => String(i.taskId),
110
+ data: u,
111
+ columns: S(c),
112
+ getRowId: (i) => String(i.task.taskId),
100
113
  getCoreRowModel: M(),
101
114
  columnResizeMode: "onChange",
102
115
  manualSorting: !1,
@@ -104,10 +117,10 @@ function ge(a) {
104
117
  getWrapInExpandableTd: (i) => i.column.id === "instructions"
105
118
  }
106
119
  }),
107
- isLoading: m || d,
120
+ isLoading: l || d,
108
121
  hasNextPage: n,
109
122
  fetchNextPage: s,
110
- isFetchingNextPage: l
123
+ isFetchingNextPage: m
111
124
  };
112
125
  }
113
126
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"useMetadataTaskTable.js","sources":["../../../../../src/features/entity/metadata-task/hooks/useMetadataTaskTable.tsx"],"sourcesContent":["import ColumnHeader from '@/components/TanStackTable/ColumnHeader'\nimport { UserBadge } from '@/components/UserCard/UserBadge'\nimport { getGridSourceIdForTask } from '@/features/entity/metadata-task/utils/getGridSourceIdForTask'\nimport { useGetCurationTasksByProjectInfinite } from '@/synapse-queries/curation/task/useCurationTask'\nimport { useGetEntityBundle } from '@/synapse-queries/index'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { getLinkToEntityPage } from '@/utils/functions/getSynapseWebClientLink'\nimport { Link } from '@mui/material'\nimport { CurationTask } from '@sage-bionetworks/synapse-client'\nimport {\n createColumnHelper,\n getCoreRowModel,\n Table,\n useReactTable,\n} from '@tanstack/react-table'\nimport dayjs from 'dayjs'\nimport { useMemo } from 'react'\nimport MetadataTaskTableActionCell from '../components/MetadataTaskTableActionCell'\n\nfunction getColumns(canEdit: boolean) {\n const columnHelper = createColumnHelper<CurationTask>()\n return [\n columnHelper.accessor('dataType', {\n header: props => <ColumnHeader {...props} title={'Tasks'} />,\n cell: ({ row, getValue }) => {\n const entityId = getGridSourceIdForTask(row.original)\n return <Link href={getLinkToEntityPage(entityId)}>{getValue()}</Link>\n },\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('instructions', {\n header: props => <ColumnHeader {...props} title={'Instructions'} />,\n cell: ({ getValue }) => <p>{getValue()}</p>,\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('modifiedBy', {\n header: props => <ColumnHeader {...props} title={'Modified By'} />,\n cell: ({ getValue }) => <UserBadge userId={getValue()} />,\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('modifiedOn', {\n header: props => <ColumnHeader {...props} title={'Modified On'} />,\n cell: ({ getValue }) => formatDate(dayjs(getValue())),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.display({\n id: 'actions',\n header: props => <ColumnHeader {...props} title={'Actions'} />,\n cell: ({ row }) => (\n <MetadataTaskTableActionCell\n curationTask={row.original}\n canEdit={canEdit}\n />\n ),\n }),\n ]\n}\ntype UseMetadataTaskTableOptions = {\n projectId: string\n}\n\n/**\n * Provides a table instance and loading states for displaying metadata curation tasks associated with a project.\n */\nexport function useMetadataTaskTable(opts: UseMetadataTaskTableOptions) {\n const { projectId } = opts\n\n const {\n data,\n hasNextPage,\n fetchNextPage,\n isLoading: isLoadingTasks,\n isFetchingNextPage,\n } = useGetCurationTasksByProjectInfinite(projectId)\n\n const { data: projectBundle, isLoading: isLoadingProjectBundle } =\n useGetEntityBundle(projectId)\n\n const canEditTasks = projectBundle?.permissions?.canEdit ?? false\n\n const tasks = useMemo(\n () => data?.pages.flatMap(page => page.page!) ?? [],\n [data],\n )\n\n const table: Table<CurationTask> = useReactTable<CurationTask>({\n data: tasks,\n columns: getColumns(canEditTasks),\n getRowId: row => String(row.taskId!),\n getCoreRowModel: getCoreRowModel(),\n columnResizeMode: 'onChange',\n manualSorting: false,\n meta: {\n getWrapInExpandableTd: cell => cell.column.id === 'instructions',\n },\n })\n\n return {\n table,\n isLoading: isLoadingTasks || isLoadingProjectBundle,\n hasNextPage,\n fetchNextPage,\n isFetchingNextPage,\n }\n}\n"],"names":["getColumns","canEdit","columnHelper","createColumnHelper","props","jsx","ColumnHeader","row","getValue","entityId","getGridSourceIdForTask","Link","getLinkToEntityPage","UserBadge","formatDate","dayjs","MetadataTaskTableActionCell","useMetadataTaskTable","opts","projectId","data","hasNextPage","fetchNextPage","isLoadingTasks","isFetchingNextPage","useGetCurationTasksByProjectInfinite","projectBundle","isLoadingProjectBundle","useGetEntityBundle","canEditTasks","tasks","useMemo","page","useReactTable","getCoreRowModel","cell"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,SAASA,EAAWC,GAAkB;AACpC,QAAMC,IAAeC,EAAA;AACrB,SAAO;AAAA,IACLD,EAAa,SAAS,YAAY;AAAA,MAChC,QAAQ,CAAAE,MAAS,gBAAAC,EAACC,KAAc,GAAGF,GAAO,OAAO,SAAS;AAAA,MAC1D,MAAM,CAAC,EAAE,KAAAG,GAAK,UAAAC,QAAe;AAC3B,cAAMC,IAAWC,EAAuBH,EAAI,QAAQ;AACpD,iCAAQI,GAAA,EAAK,MAAMC,EAAoBH,CAAQ,GAAI,eAAW;AAAA,MAChE;AAAA,MACA,eAAe;AAAA,MACf,oBAAoB;AAAA,IAAA,CACrB;AAAA,IACDP,EAAa,SAAS,gBAAgB;AAAA,MACpC,QAAQ,CAAAE,MAAS,gBAAAC,EAACC,KAAc,GAAGF,GAAO,OAAO,gBAAgB;AAAA,MACjE,MAAM,CAAC,EAAE,UAAAI,QAAe,gBAAAH,EAAC,KAAA,EAAG,eAAW;AAAA,MACvC,eAAe;AAAA,MACf,oBAAoB;AAAA,IAAA,CACrB;AAAA,IACDH,EAAa,SAAS,cAAc;AAAA,MAClC,QAAQ,CAAAE,MAAS,gBAAAC,EAACC,KAAc,GAAGF,GAAO,OAAO,eAAe;AAAA,MAChE,MAAM,CAAC,EAAE,UAAAI,QAAe,gBAAAH,EAACQ,GAAA,EAAU,QAAQL,EAAA,GAAY;AAAA,MACvD,eAAe;AAAA,MACf,oBAAoB;AAAA,IAAA,CACrB;AAAA,IACDN,EAAa,SAAS,cAAc;AAAA,MAClC,QAAQ,CAAAE,MAAS,gBAAAC,EAACC,KAAc,GAAGF,GAAO,OAAO,eAAe;AAAA,MAChE,MAAM,CAAC,EAAE,UAAAI,EAAA,MAAeM,EAAWC,EAAMP,EAAA,CAAU,CAAC;AAAA,MACpD,eAAe;AAAA,MACf,oBAAoB;AAAA,IAAA,CACrB;AAAA,IACDN,EAAa,QAAQ;AAAA,MACnB,IAAI;AAAA,MACJ,QAAQ,CAAAE,MAAS,gBAAAC,EAACC,KAAc,GAAGF,GAAO,OAAO,WAAW;AAAA,MAC5D,MAAM,CAAC,EAAE,KAAAG,EAAA,MACP,gBAAAF;AAAA,QAACW;AAAA,QAAA;AAAA,UACC,cAAcT,EAAI;AAAA,UAClB,SAAAN;AAAA,QAAA;AAAA,MAAA;AAAA,IACF,CAEH;AAAA,EAAA;AAEL;AAQO,SAASgB,GAAqBC,GAAmC;AACtE,QAAM,EAAE,WAAAC,MAAcD,GAEhB;AAAA,IACJ,MAAAE;AAAA,IACA,aAAAC;AAAA,IACA,eAAAC;AAAA,IACA,WAAWC;AAAA,IACX,oBAAAC;AAAA,EAAA,IACEC,EAAqCN,CAAS,GAE5C,EAAE,MAAMO,GAAe,WAAWC,EAAA,IACtCC,EAAmBT,CAAS,GAExBU,IAAeH,GAAe,aAAa,WAAW,IAEtDI,IAAQC;AAAA,IACZ,MAAMX,GAAM,MAAM,QAAQ,OAAQY,EAAK,IAAK,KAAK,CAAA;AAAA,IACjD,CAACZ,CAAI;AAAA,EAAA;AAeP,SAAO;AAAA,IACL,OAbiCa,EAA4B;AAAA,MAC7D,MAAMH;AAAA,MACN,SAAS9B,EAAW6B,CAAY;AAAA,MAChC,UAAU,CAAAtB,MAAO,OAAOA,EAAI,MAAO;AAAA,MACnC,iBAAiB2B,EAAA;AAAA,MACjB,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,MAAM;AAAA,QACJ,uBAAuB,CAAAC,MAAQA,EAAK,OAAO,OAAO;AAAA,MAAA;AAAA,IACpD,CACD;AAAA,IAIC,WAAWZ,KAAkBI;AAAA,IAC7B,aAAAN;AAAA,IACA,eAAAC;AAAA,IACA,oBAAAE;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"useMetadataTaskTable.js","sources":["../../../../../src/features/entity/metadata-task/hooks/useMetadataTaskTable.tsx"],"sourcesContent":["import ColumnHeader from '@/components/TanStackTable/ColumnHeader'\nimport { getGridSourceIdForTask } from '@/features/entity/metadata-task/utils/getGridSourceIdForTask'\nimport { useGetCurationTasksByProjectInfinite } from '@/synapse-queries/curation/task/useCurationTask'\nimport { useGetEntityBundle } from '@/synapse-queries/index'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { getLinkToEntityPage } from '@/utils/functions/getSynapseWebClientLink'\nimport { Link } from '@mui/material'\nimport {\n ListCurationTaskRequest,\n TaskBundle,\n} from '@sage-bionetworks/synapse-client'\nimport {\n createColumnHelper,\n getCoreRowModel,\n Table,\n useReactTable,\n} from '@tanstack/react-table'\nimport dayjs from 'dayjs'\nimport { useMemo } from 'react'\nimport MetadataTaskTableActionCell from '../components/MetadataTaskTableActionCell'\nimport MetadataTasksTableAssigneeCell from '../components/MetadataTasksTableAssigneeCell'\n\nfunction getColumns(canEdit: boolean) {\n const columnHelper = createColumnHelper<TaskBundle>()\n return [\n columnHelper.accessor('task.dataType', {\n header: props => <ColumnHeader {...props} title={'Task'} />,\n cell: ({ row, getValue }) => {\n const entityId = getGridSourceIdForTask(row.original.task!)\n return <Link href={getLinkToEntityPage(entityId)}>{getValue()}</Link>\n },\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('task.instructions', {\n header: props => <ColumnHeader {...props} title={'Instructions'} />,\n cell: ({ getValue }) => <p>{getValue()}</p>,\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('task.assigneePrincipalId', {\n header: props => <ColumnHeader {...props} title={'Assignee'} />,\n cell: ({ row }) => (\n <MetadataTasksTableAssigneeCell\n taskBundle={row.original}\n canEdit={canEdit}\n />\n ),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('task.modifiedOn', {\n header: props => <ColumnHeader {...props} title={'Modified On'} />,\n cell: ({ getValue }) => formatDate(dayjs(getValue())),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.display({\n id: 'actions',\n header: props => <ColumnHeader {...props} title={'Actions'} />,\n cell: ({ row }) => (\n <MetadataTaskTableActionCell\n taskBundle={row.original}\n canEdit={canEdit}\n />\n ),\n }),\n ]\n}\n\ntype UseMetadataTaskTableOptions = {\n listCurationTaskRequest: ListCurationTaskRequest\n}\n\n/**\n * Provides a table instance and loading states for displaying metadata curation tasks associated with a project.\n */\nexport function useMetadataTaskTable(opts: UseMetadataTaskTableOptions) {\n const { listCurationTaskRequest } = opts\n\n const {\n data,\n hasNextPage,\n fetchNextPage,\n isLoading: isLoadingTasks,\n isFetchingNextPage,\n } = useGetCurationTasksByProjectInfinite(listCurationTaskRequest)\n\n const { data: projectBundle, isLoading: isLoadingProjectBundle } =\n useGetEntityBundle(\n listCurationTaskRequest.projectId,\n undefined,\n { includePermissions: true },\n {\n enabled: !!listCurationTaskRequest.projectId,\n },\n )\n\n const canEditTasks = projectBundle?.permissions?.canEdit ?? false\n\n const tasks = useMemo(\n () => data?.pages.flatMap(page => page.bundlePage!) ?? [],\n [data],\n )\n\n const table: Table<TaskBundle> = useReactTable<TaskBundle>({\n data: tasks,\n columns: getColumns(canEditTasks),\n getRowId: row => String(row.task!.taskId!),\n getCoreRowModel: getCoreRowModel(),\n columnResizeMode: 'onChange',\n manualSorting: false,\n meta: {\n getWrapInExpandableTd: cell => cell.column.id === 'instructions',\n },\n })\n\n return {\n table,\n isLoading: isLoadingTasks || isLoadingProjectBundle,\n hasNextPage,\n fetchNextPage,\n isFetchingNextPage,\n }\n}\n"],"names":["getColumns","canEdit","columnHelper","createColumnHelper","props","jsx","ColumnHeader","row","getValue","entityId","getGridSourceIdForTask","Link","getLinkToEntityPage","MetadataTasksTableAssigneeCell","formatDate","dayjs","MetadataTaskTableActionCell","useMetadataTaskTable","opts","listCurationTaskRequest","data","hasNextPage","fetchNextPage","isLoadingTasks","isFetchingNextPage","useGetCurationTasksByProjectInfinite","projectBundle","isLoadingProjectBundle","useGetEntityBundle","canEditTasks","tasks","useMemo","page","useReactTable","getCoreRowModel","cell"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,SAASA,EAAWC,GAAkB;AACpC,QAAMC,IAAeC,EAAA;AACrB,SAAO;AAAA,IACLD,EAAa,SAAS,iBAAiB;AAAA,MACrC,QAAQ,CAAAE,MAAS,gBAAAC,EAACC,KAAc,GAAGF,GAAO,OAAO,QAAQ;AAAA,MACzD,MAAM,CAAC,EAAE,KAAAG,GAAK,UAAAC,QAAe;AAC3B,cAAMC,IAAWC,EAAuBH,EAAI,SAAS,IAAK;AAC1D,iCAAQI,GAAA,EAAK,MAAMC,EAAoBH,CAAQ,GAAI,eAAW;AAAA,MAChE;AAAA,MACA,eAAe;AAAA,MACf,oBAAoB;AAAA,IAAA,CACrB;AAAA,IACDP,EAAa,SAAS,qBAAqB;AAAA,MACzC,QAAQ,CAAAE,MAAS,gBAAAC,EAACC,KAAc,GAAGF,GAAO,OAAO,gBAAgB;AAAA,MACjE,MAAM,CAAC,EAAE,UAAAI,QAAe,gBAAAH,EAAC,KAAA,EAAG,eAAW;AAAA,MACvC,eAAe;AAAA,MACf,oBAAoB;AAAA,IAAA,CACrB;AAAA,IACDH,EAAa,SAAS,4BAA4B;AAAA,MAChD,QAAQ,CAAAE,MAAS,gBAAAC,EAACC,KAAc,GAAGF,GAAO,OAAO,YAAY;AAAA,MAC7D,MAAM,CAAC,EAAE,KAAAG,EAAA,MACP,gBAAAF;AAAA,QAACQ;AAAA,QAAA;AAAA,UACC,YAAYN,EAAI;AAAA,UAChB,SAAAN;AAAA,QAAA;AAAA,MAAA;AAAA,MAGJ,eAAe;AAAA,MACf,oBAAoB;AAAA,IAAA,CACrB;AAAA,IACDC,EAAa,SAAS,mBAAmB;AAAA,MACvC,QAAQ,CAAAE,MAAS,gBAAAC,EAACC,KAAc,GAAGF,GAAO,OAAO,eAAe;AAAA,MAChE,MAAM,CAAC,EAAE,UAAAI,EAAA,MAAeM,EAAWC,EAAMP,EAAA,CAAU,CAAC;AAAA,MACpD,eAAe;AAAA,MACf,oBAAoB;AAAA,IAAA,CACrB;AAAA,IACDN,EAAa,QAAQ;AAAA,MACnB,IAAI;AAAA,MACJ,QAAQ,CAAAE,MAAS,gBAAAC,EAACC,KAAc,GAAGF,GAAO,OAAO,WAAW;AAAA,MAC5D,MAAM,CAAC,EAAE,KAAAG,EAAA,MACP,gBAAAF;AAAA,QAACW;AAAA,QAAA;AAAA,UACC,YAAYT,EAAI;AAAA,UAChB,SAAAN;AAAA,QAAA;AAAA,MAAA;AAAA,IACF,CAEH;AAAA,EAAA;AAEL;AASO,SAASgB,GAAqBC,GAAmC;AACtE,QAAM,EAAE,yBAAAC,MAA4BD,GAE9B;AAAA,IACJ,MAAAE;AAAA,IACA,aAAAC;AAAA,IACA,eAAAC;AAAA,IACA,WAAWC;AAAA,IACX,oBAAAC;AAAA,EAAA,IACEC,EAAqCN,CAAuB,GAE1D,EAAE,MAAMO,GAAe,WAAWC,MACtCC;AAAA,IACET,EAAwB;AAAA,IACxB;AAAA,IACA,EAAE,oBAAoB,GAAA;AAAA,IACtB;AAAA,MACE,SAAS,CAAC,CAACA,EAAwB;AAAA,IAAA;AAAA,EACrC,GAGEU,IAAeH,GAAe,aAAa,WAAW,IAEtDI,IAAQC;AAAA,IACZ,MAAMX,GAAM,MAAM,QAAQ,OAAQY,EAAK,UAAW,KAAK,CAAA;AAAA,IACvD,CAACZ,CAAI;AAAA,EAAA;AAeP,SAAO;AAAA,IACL,OAb+Ba,EAA0B;AAAA,MACzD,MAAMH;AAAA,MACN,SAAS9B,EAAW6B,CAAY;AAAA,MAChC,UAAU,CAAAtB,MAAO,OAAOA,EAAI,KAAM,MAAO;AAAA,MACzC,iBAAiB2B,EAAA;AAAA,MACjB,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,MAAM;AAAA,QACJ,uBAAuB,CAAAC,MAAQA,EAAK,OAAO,OAAO;AAAA,MAAA;AAAA,IACpD,CACD;AAAA,IAIC,WAAWZ,KAAkBI;AAAA,IAC7B,aAAAN;AAAA,IACA,eAAAC;AAAA,IACA,oBAAAE;AAAA,EAAA;AAEJ;"}
@@ -1,8 +1,8 @@
1
- import { CurationTaskProperties, CreateGridRequest } from '@sage-bionetworks/synapse-client';
1
+ import { CreateGridRequest, CurationTask } from '@sage-bionetworks/synapse-client';
2
2
  /**
3
3
  * Generates a CreateGridRequest for a metadata task based on its properties.
4
4
  * @param taskProperties The properties of the metadata task.
5
5
  * @returns A CreateGridRequest object.
6
6
  */
7
- export declare function getCreateGridRequestForMetadataTask(taskProperties: CurationTaskProperties): CreateGridRequest;
7
+ export declare function getCreateGridRequestForMetadataTask(task: CurationTask): CreateGridRequest;
8
8
  //# sourceMappingURL=getCreateGridRequestForMetadataTask.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getCreateGridRequestForMetadataTask.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,kCAAkC,CAAA;AAEzC;;;;GAIG;AACH,wBAAgB,mCAAmC,CACjD,cAAc,EAAE,sBAAsB,GACrC,iBAAiB,CAkBnB"}
1
+ {"version":3,"file":"getCreateGridRequestForMetadataTask.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,YAAY,EACb,MAAM,kCAAkC,CAAA;AAEzC;;;;GAIG;AACH,wBAAgB,mCAAmC,CACjD,IAAI,EAAE,YAAY,GACjB,iBAAiB,CAuBnB"}
@@ -1,4 +1,7 @@
1
- function r(e) {
1
+ function t(r) {
2
+ const e = r.taskProperties;
3
+ if (!e)
4
+ throw new Error("CurationTask is missing taskProperties");
2
5
  switch (e.concreteType) {
3
6
  case "org.sagebionetworks.repo.model.curation.metadata.FileBasedMetadataTaskProperties":
4
7
  return {
@@ -18,6 +21,6 @@ function r(e) {
18
21
  }
19
22
  }
20
23
  export {
21
- r as getCreateGridRequestForMetadataTask
24
+ t as getCreateGridRequestForMetadataTask
22
25
  };
23
26
  //# sourceMappingURL=getCreateGridRequestForMetadataTask.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getCreateGridRequestForMetadataTask.js","sources":["../../../../../src/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.tsx"],"sourcesContent":["import {\n CurationTaskProperties,\n CreateGridRequest,\n} from '@sage-bionetworks/synapse-client'\n\n/**\n * Generates a CreateGridRequest for a metadata task based on its properties.\n * @param taskProperties The properties of the metadata task.\n * @returns A CreateGridRequest object.\n */\nexport function getCreateGridRequestForMetadataTask(\n taskProperties: CurationTaskProperties,\n): CreateGridRequest {\n switch (taskProperties.concreteType) {\n case 'org.sagebionetworks.repo.model.curation.metadata.FileBasedMetadataTaskProperties':\n return {\n concreteType: 'org.sagebionetworks.repo.model.grid.CreateGridRequest',\n initialQuery: { sql: `SELECT * FROM ${taskProperties.fileViewId!}` },\n }\n case 'org.sagebionetworks.repo.model.curation.metadata.RecordBasedMetadataTaskProperties':\n return {\n concreteType: 'org.sagebionetworks.repo.model.grid.CreateGridRequest',\n recordSetId: taskProperties.recordSetId!,\n }\n default:\n throw new Error(\n // @ts-expect-error - This will fail if a new concreteType is introduced until it is handled in the switch statement.\n `Unknown taskProperties concreteType: ${taskProperties.concreteType}`,\n )\n }\n}\n"],"names":["getCreateGridRequestForMetadataTask","taskProperties"],"mappings":"AAUO,SAASA,EACdC,GACmB;AACnB,UAAQA,EAAe,cAAA;AAAA,IACrB,KAAK;AACH,aAAO;AAAA,QACL,cAAc;AAAA,QACd,cAAc,EAAE,KAAK,iBAAiBA,EAAe,UAAW,GAAA;AAAA,MAAG;AAAA,IAEvE,KAAK;AACH,aAAO;AAAA,QACL,cAAc;AAAA,QACd,aAAaA,EAAe;AAAA,MAAA;AAAA,IAEhC;AACE,YAAM,IAAI;AAAA;AAAA,QAER,wCAAwCA,EAAe,YAAY;AAAA,MAAA;AAAA,EACrE;AAEN;"}
1
+ {"version":3,"file":"getCreateGridRequestForMetadataTask.js","sources":["../../../../../src/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.tsx"],"sourcesContent":["import {\n CreateGridRequest,\n CurationTask,\n} from '@sage-bionetworks/synapse-client'\n\n/**\n * Generates a CreateGridRequest for a metadata task based on its properties.\n * @param taskProperties The properties of the metadata task.\n * @returns A CreateGridRequest object.\n */\nexport function getCreateGridRequestForMetadataTask(\n task: CurationTask,\n): CreateGridRequest {\n const taskProperties = task.taskProperties\n if (!taskProperties) {\n throw new Error('CurationTask is missing taskProperties')\n }\n\n switch (taskProperties.concreteType) {\n case 'org.sagebionetworks.repo.model.curation.metadata.FileBasedMetadataTaskProperties':\n return {\n concreteType: 'org.sagebionetworks.repo.model.grid.CreateGridRequest',\n initialQuery: { sql: `SELECT * FROM ${taskProperties.fileViewId!}` },\n }\n case 'org.sagebionetworks.repo.model.curation.metadata.RecordBasedMetadataTaskProperties':\n return {\n concreteType: 'org.sagebionetworks.repo.model.grid.CreateGridRequest',\n recordSetId: taskProperties.recordSetId!,\n }\n default:\n throw new Error(\n // @ts-expect-error - This will fail if a new concreteType is introduced until it is handled in the switch statement.\n `Unknown taskProperties concreteType: ${taskProperties.concreteType}`,\n )\n }\n}\n"],"names":["getCreateGridRequestForMetadataTask","task","taskProperties"],"mappings":"AAUO,SAASA,EACdC,GACmB;AACnB,QAAMC,IAAiBD,EAAK;AAC5B,MAAI,CAACC;AACH,UAAM,IAAI,MAAM,wCAAwC;AAG1D,UAAQA,EAAe,cAAA;AAAA,IACrB,KAAK;AACH,aAAO;AAAA,QACL,cAAc;AAAA,QACd,cAAc,EAAE,KAAK,iBAAiBA,EAAe,UAAW,GAAA;AAAA,MAAG;AAAA,IAEvE,KAAK;AACH,aAAO;AAAA,QACL,cAAc;AAAA,QACd,aAAaA,EAAe;AAAA,MAAA;AAAA,IAEhC;AACE,YAAM,IAAI;AAAA;AAAA,QAER,wCAAwCA,EAAe,YAAY;AAAA,MAAA;AAAA,EACrE;AAEN;"}
@@ -0,0 +1,3 @@
1
+ import type { CurationTask } from '@sage-bionetworks/synapse-client';
2
+ export default function taskHasAssignee(task: CurationTask): boolean;
3
+ //# sourceMappingURL=taskHasAssignee.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskHasAssignee.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/utils/taskHasAssignee.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAEpE,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAEnE"}
@@ -0,0 +1,7 @@
1
+ function i(e) {
2
+ return !!(e.assigneePrincipalId && Number(e.assigneePrincipalId) !== 0);
3
+ }
4
+ export {
5
+ i as default
6
+ };
7
+ //# sourceMappingURL=taskHasAssignee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskHasAssignee.js","sources":["../../../../../src/features/entity/metadata-task/utils/taskHasAssignee.ts"],"sourcesContent":["import type { CurationTask } from '@sage-bionetworks/synapse-client'\n\nexport default function taskHasAssignee(task: CurationTask): boolean {\n return !!(task.assigneePrincipalId && Number(task.assigneePrincipalId) !== 0)\n}\n"],"names":["taskHasAssignee","task"],"mappings":"AAEA,SAAwBA,EAAgBC,GAA6B;AACnE,SAAO,CAAC,EAAEA,EAAK,uBAAuB,OAAOA,EAAK,mBAAmB,MAAM;AAC7E;"}
@@ -0,0 +1,10 @@
1
+ import { TaskBundle } from '@sage-bionetworks/synapse-client';
2
+ export declare const MOCK_CURATION_TASK_ID = 123;
3
+ export declare const MOCK_CURATION_TASK_ASSIGNEE_PRINCIPAL_ID = "456";
4
+ export declare const MOCK_CURATION_TASK_FILE_VIEW_ID = "syn999";
5
+ /**
6
+ * Creates a mock TaskBundle suitable for use in tests. Defaults to a
7
+ * FileBasedMetadataTaskProperties task assigned to MOCK_CURATION_TASK_ASSIGNEE_PRINCIPAL_ID.
8
+ */
9
+ export declare function createMockTaskBundle(overrides?: Partial<TaskBundle>): TaskBundle;
10
+ //# sourceMappingURL=mockCurationTask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockCurationTask.d.ts","sourceRoot":"","sources":["../../../src/mocks/curation/mockCurationTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAE7D,eAAO,MAAM,qBAAqB,MAAM,CAAA;AACxC,eAAO,MAAM,wCAAwC,QAAQ,CAAA;AAC7D,eAAO,MAAM,+BAA+B,WAAW,CAAA;AAEvD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,GAAE,OAAO,CAAC,UAAU,CAAM,GAClC,UAAU,CAgBZ"}
@@ -0,0 +1,24 @@
1
+ const _ = 123, t = "456", I = "syn999";
2
+ function a(e = {}) {
3
+ return {
4
+ task: {
5
+ taskId: 123,
6
+ assigneePrincipalId: "456",
7
+ taskProperties: {
8
+ concreteType: "org.sagebionetworks.repo.model.curation.metadata.FileBasedMetadataTaskProperties",
9
+ fileViewId: I
10
+ }
11
+ },
12
+ status: {
13
+ taskId: 123
14
+ },
15
+ ...e
16
+ };
17
+ }
18
+ export {
19
+ t as MOCK_CURATION_TASK_ASSIGNEE_PRINCIPAL_ID,
20
+ I as MOCK_CURATION_TASK_FILE_VIEW_ID,
21
+ _ as MOCK_CURATION_TASK_ID,
22
+ a as createMockTaskBundle
23
+ };
24
+ //# sourceMappingURL=mockCurationTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockCurationTask.js","sources":["../../../src/mocks/curation/mockCurationTask.ts"],"sourcesContent":["import { TaskBundle } from '@sage-bionetworks/synapse-client'\n\nexport const MOCK_CURATION_TASK_ID = 123\nexport const MOCK_CURATION_TASK_ASSIGNEE_PRINCIPAL_ID = '456'\nexport const MOCK_CURATION_TASK_FILE_VIEW_ID = 'syn999'\n\n/**\n * Creates a mock TaskBundle suitable for use in tests. Defaults to a\n * FileBasedMetadataTaskProperties task assigned to MOCK_CURATION_TASK_ASSIGNEE_PRINCIPAL_ID.\n */\nexport function createMockTaskBundle(\n overrides: Partial<TaskBundle> = {},\n): TaskBundle {\n return {\n task: {\n taskId: MOCK_CURATION_TASK_ID,\n assigneePrincipalId: MOCK_CURATION_TASK_ASSIGNEE_PRINCIPAL_ID,\n taskProperties: {\n concreteType:\n 'org.sagebionetworks.repo.model.curation.metadata.FileBasedMetadataTaskProperties',\n fileViewId: MOCK_CURATION_TASK_FILE_VIEW_ID,\n },\n },\n status: {\n taskId: MOCK_CURATION_TASK_ID,\n },\n ...overrides,\n } as TaskBundle\n}\n"],"names":["MOCK_CURATION_TASK_ID","MOCK_CURATION_TASK_ASSIGNEE_PRINCIPAL_ID","MOCK_CURATION_TASK_FILE_VIEW_ID","createMockTaskBundle","overrides"],"mappings":"AAEO,MAAMA,IAAwB,KACxBC,IAA2C,OAC3CC,IAAkC;AAMxC,SAASC,EACdC,IAAiC,IACrB;AACZ,SAAO;AAAA,IACL,MAAM;AAAA,MACJ,QAAQ;AAAA,MACR,qBAAqB;AAAA,MACrB,gBAAgB;AAAA,QACd,cACE;AAAA,QACF,YAAYF;AAAA,MAAA;AAAA,IACd;AAAA,IAEF,QAAQ;AAAA,MACN,QAAQ;AAAA,IAAA;AAAA,IAEV,GAAGE;AAAA,EAAA;AAEP;"}