synapse-react-client 4.0.43 → 4.0.45
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.d.ts +1 -1
- package/dist/SWC.index.js +2 -2
- package/dist/SWC.index.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.d.ts +2 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js +126 -125
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListItem.d.ts +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListItem.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js +28 -16
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js +99 -97
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.d.ts +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/RequestDataStep.d.ts +1 -4
- package/dist/components/AccessRequirementList/RequestDataStep.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/RequestDataStep.js +15 -18
- package/dist/components/AccessRequirementList/RequestDataStep.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.d.ts.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js +52 -49
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.d.ts +29 -1
- package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.js +48 -16
- package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
- package/dist/components/DataGrid/components/GridLoadingState.d.ts +2 -2
- package/dist/components/DataGrid/components/GridLoadingState.d.ts.map +1 -1
- package/dist/components/DataGrid/components/GridLoadingState.js +2 -2
- package/dist/components/DataGrid/components/GridLoadingState.js.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.js +2 -1
- package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.d.ts.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js +11 -10
- package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js.map +1 -1
- package/dist/components/FormTemplateEditor/useSaveFormTemplate.d.ts.map +1 -1
- package/dist/components/FormTemplateEditor/useSaveFormTemplate.js.map +1 -1
- package/dist/components/FormTemplateReferenceField/FormTemplatePreviewDialog.d.ts +9 -0
- package/dist/components/FormTemplateReferenceField/FormTemplatePreviewDialog.d.ts.map +1 -0
- package/dist/components/FormTemplateReferenceField/FormTemplatePreviewDialog.js +45 -0
- package/dist/components/FormTemplateReferenceField/FormTemplatePreviewDialog.js.map +1 -0
- package/dist/components/FormTemplateReferenceField/FormTemplateReferenceField.d.ts +22 -0
- package/dist/components/FormTemplateReferenceField/FormTemplateReferenceField.d.ts.map +1 -0
- package/dist/components/FormTemplateReferenceField/FormTemplateReferenceField.js +139 -0
- package/dist/components/FormTemplateReferenceField/FormTemplateReferenceField.js.map +1 -0
- package/dist/components/Forum/ForumTable.d.ts +17 -5
- package/dist/components/Forum/ForumTable.d.ts.map +1 -1
- package/dist/components/Forum/ForumTable.js +94 -77
- package/dist/components/Forum/ForumTable.js.map +1 -1
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.d.ts.map +1 -1
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js +142 -108
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.d.ts.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js +15 -15
- package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
- package/dist/components/SetManagedAccessRequirementFields/DataUseCertificateFields.d.ts +10 -0
- package/dist/components/SetManagedAccessRequirementFields/DataUseCertificateFields.d.ts.map +1 -0
- package/dist/components/SetManagedAccessRequirementFields/DataUseCertificateFields.js +81 -0
- package/dist/components/SetManagedAccessRequirementFields/DataUseCertificateFields.js.map +1 -0
- package/dist/components/SetManagedAccessRequirementFields/ExpirationPeriodField.d.ts +9 -0
- package/dist/components/SetManagedAccessRequirementFields/ExpirationPeriodField.d.ts.map +1 -0
- package/dist/components/SetManagedAccessRequirementFields/ExpirationPeriodField.js +32 -0
- package/dist/components/SetManagedAccessRequirementFields/ExpirationPeriodField.js.map +1 -0
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.d.ts +0 -2
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.d.ts.map +1 -1
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js +79 -154
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
- package/dist/components/TanStackTable/TanStackTableUtils.d.ts.map +1 -1
- package/dist/components/TanStackTable/TanStackTableUtils.js +8 -5
- package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/DataAccessSubmissionFileHandleLink.d.ts +5 -0
- package/dist/components/dataaccess/SubmissionPage/DataAccessSubmissionFileHandleLink.d.ts.map +1 -0
- package/dist/components/dataaccess/SubmissionPage/DataAccessSubmissionFileHandleLink.js +20 -0
- package/dist/components/dataaccess/SubmissionPage/DataAccessSubmissionFileHandleLink.js.map +1 -0
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.d.ts.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +183 -188
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionSchemaAnswers.d.ts +25 -0
- package/dist/components/dataaccess/SubmissionPage/SubmissionSchemaAnswers.d.ts.map +1 -0
- package/dist/components/dataaccess/SubmissionPage/SubmissionSchemaAnswers.js +125 -0
- package/dist/components/dataaccess/SubmissionPage/SubmissionSchemaAnswers.js.map +1 -0
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js +4 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js.map +1 -1
- package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.d.ts +5 -0
- package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.d.ts.map +1 -1
- package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.js +37 -26
- package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.js.map +1 -1
- package/dist/mocks/dataaccess/MockSubmission.d.ts +76 -0
- package/dist/mocks/dataaccess/MockSubmission.d.ts.map +1 -1
- package/dist/mocks/dataaccess/MockSubmission.js +108 -63
- package/dist/mocks/dataaccess/MockSubmission.js.map +1 -1
- package/dist/mocks/msw/handlers/discussionHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/discussionHandlers.js +40 -33
- package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
- package/dist/style/components/_submission-page.scss +0 -4
- package/dist/style/main.css +1 -1
- package/dist/synapse-client/SynapseClient.d.ts +10 -0
- package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
- package/dist/synapse-client/SynapseClient.js +486 -482
- package/dist/synapse-client/SynapseClient.js.map +1 -1
- package/dist/synapse-client/index.js +3 -3
- package/dist/synapse-queries/KeyFactory.d.ts +13 -1
- package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
- package/dist/synapse-queries/KeyFactory.js +11 -1
- package/dist/synapse-queries/KeyFactory.js.map +1 -1
- package/dist/synapse-queries/dataaccess/index.js +4 -4
- package/dist/synapse-queries/dataaccess/useAccessRequirements.d.ts.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessRequirements.js +4 -1
- package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useEDuc.d.ts +19 -5
- package/dist/synapse-queries/dataaccess/useEDuc.d.ts.map +1 -1
- package/dist/synapse-queries/dataaccess/useEDuc.js +29 -21
- package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useFormTemplate.d.ts +12 -0
- package/dist/synapse-queries/dataaccess/useFormTemplate.d.ts.map +1 -1
- package/dist/synapse-queries/dataaccess/useFormTemplate.js +52 -30
- package/dist/synapse-queries/dataaccess/useFormTemplate.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useGeneratedSubmissionForm.d.ts +37 -0
- package/dist/synapse-queries/dataaccess/useGeneratedSubmissionForm.d.ts.map +1 -0
- package/dist/synapse-queries/dataaccess/useGeneratedSubmissionForm.js +35 -0
- package/dist/synapse-queries/dataaccess/useGeneratedSubmissionForm.js.map +1 -0
- package/dist/synapse-queries/forum/useForum.d.ts +5 -1
- package/dist/synapse-queries/forum/useForum.d.ts.map +1 -1
- package/dist/synapse-queries/forum/useForum.js +23 -1
- package/dist/synapse-queries/forum/useForum.js.map +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.d.ts +2 -0
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.d.ts.map +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
- package/dist/synapse-queries/index.js +185 -184
- package/dist/synapse-queries/jsonschema/useCreateJsonSchema.d.ts +5 -3
- package/dist/synapse-queries/jsonschema/useCreateJsonSchema.d.ts.map +1 -1
- package/dist/synapse-queries/jsonschema/useCreateJsonSchema.js +12 -15
- package/dist/synapse-queries/jsonschema/useCreateJsonSchema.js.map +1 -1
- package/dist/synapse-queries/termsOfService/useTermsOfService.d.ts.map +1 -1
- package/dist/synapse-queries/termsOfService/useTermsOfService.js +21 -19
- package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.d.ts +2 -2
- package/dist/utils/functions/EntityTypeUtils.d.ts.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.js +135 -135
- package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
- package/dist/utils/functions/getEndpoint.d.ts +1 -0
- package/dist/utils/functions/getEndpoint.d.ts.map +1 -1
- package/dist/utils/functions/getEndpoint.js +3 -3
- package/dist/utils/functions/getEndpoint.js.map +1 -1
- package/dist/utils/types/RequestableAccessRequirement.d.ts +8 -0
- package/dist/utils/types/RequestableAccessRequirement.d.ts.map +1 -0
- package/dist/utils/types/RequestableAccessRequirement.js +9 -0
- package/dist/utils/types/RequestableAccessRequirement.js.map +1 -0
- package/package.json +3 -3
- package/dist/testutils/ReactQueryMockUtils.js +0 -676
- package/dist/testutils/ReactQueryMockUtils.js.map +0 -1
|
@@ -1,51 +1,55 @@
|
|
|
1
1
|
import { AVATAR as e } from "../../utils/SynapseConstants.js";
|
|
2
|
-
import t from "../
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import i from "../
|
|
6
|
-
import a from "../TanStackTable/
|
|
7
|
-
import
|
|
8
|
-
import s from "
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import h from "
|
|
14
|
-
import
|
|
15
|
-
import
|
|
2
|
+
import { ErrorBanner as t } from "../error/ErrorBanner.js";
|
|
3
|
+
import n from "../IconSvg/IconSvg.js";
|
|
4
|
+
import { UserCard as r } from "../UserCard/UserCard.js";
|
|
5
|
+
import { UserBadge as i } from "../UserCard/UserBadge.js";
|
|
6
|
+
import a from "../TanStackTable/StyledTanStackTable.js";
|
|
7
|
+
import o from "../TanStackTable/ColumnHeader.js";
|
|
8
|
+
import { useGetEntityThreadsInfinite as s, useGetForumThreadsInfinite as c } from "../../synapse-queries/forum/useForum.js";
|
|
9
|
+
import l from "../layout/InfiniteTableLayout.js";
|
|
10
|
+
import u from "./DiscussionEmpty.js";
|
|
11
|
+
import { useEffect as d, useMemo as f, useState as p } from "react";
|
|
12
|
+
import { Link as m } from "@mui/material";
|
|
13
|
+
import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
|
|
14
|
+
import { DiscussionThreadOrder as v } from "@sage-bionetworks/synapse-types";
|
|
15
|
+
import y from "lodash-es/isEmpty";
|
|
16
|
+
import b from "dayjs";
|
|
17
|
+
import x from "dayjs/plugin/relativeTime";
|
|
18
|
+
import { createColumnHelper as S, getCoreRowModel as C, useReactTable as w } from "@tanstack/react-table";
|
|
16
19
|
//#region src/components/Forum/ForumTable.tsx
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
b.extend(x);
|
|
21
|
+
var T = S();
|
|
22
|
+
function E(t) {
|
|
19
23
|
return [
|
|
20
|
-
|
|
21
|
-
header: (e) => /* @__PURE__ */
|
|
24
|
+
T.accessor("title", {
|
|
25
|
+
header: (e) => /* @__PURE__ */ g(o, {
|
|
22
26
|
...e,
|
|
23
27
|
title: "Topic"
|
|
24
28
|
}),
|
|
25
|
-
cell: ({ row: e }) => /* @__PURE__ */
|
|
26
|
-
onClick: () =>
|
|
27
|
-
children: [e.original.isPinned ? /* @__PURE__ */
|
|
29
|
+
cell: ({ row: e }) => /* @__PURE__ */ _(m, {
|
|
30
|
+
onClick: () => e.original.id && t(e.original.id, e.original.projectId),
|
|
31
|
+
children: [e.original.isPinned ? /* @__PURE__ */ g(n, { icon: "pushpin" }) : /* @__PURE__ */ g(h, {}), e.original.title]
|
|
28
32
|
}),
|
|
29
33
|
enableSorting: !0,
|
|
30
|
-
size:
|
|
34
|
+
size: 300
|
|
31
35
|
}),
|
|
32
|
-
|
|
33
|
-
header: (e) => /* @__PURE__ */
|
|
36
|
+
T.accessor("createdBy", {
|
|
37
|
+
header: (e) => /* @__PURE__ */ g(o, {
|
|
34
38
|
...e,
|
|
35
39
|
title: "Author"
|
|
36
40
|
}),
|
|
37
|
-
cell: ({ getValue: e }) => /* @__PURE__ */
|
|
41
|
+
cell: ({ getValue: e }) => /* @__PURE__ */ g(i, { userId: e() }),
|
|
38
42
|
enableSorting: !1,
|
|
39
|
-
size:
|
|
43
|
+
size: 150
|
|
40
44
|
}),
|
|
41
|
-
|
|
42
|
-
header: (e) => /* @__PURE__ */
|
|
45
|
+
T.accessor("activeAuthors", {
|
|
46
|
+
header: (e) => /* @__PURE__ */ g(o, {
|
|
43
47
|
...e,
|
|
44
48
|
title: "Active Users"
|
|
45
49
|
}),
|
|
46
|
-
cell: ({ getValue: t }) => t().map((t) => /* @__PURE__ */
|
|
50
|
+
cell: ({ getValue: t }) => (t() ?? []).map((t) => /* @__PURE__ */ g("div", {
|
|
47
51
|
className: "avatarContainer",
|
|
48
|
-
children: /* @__PURE__ */
|
|
52
|
+
children: /* @__PURE__ */ g(r, {
|
|
49
53
|
showCardOnHover: !0,
|
|
50
54
|
className: "ActiveUsers",
|
|
51
55
|
size: e,
|
|
@@ -53,84 +57,97 @@ function x(i) {
|
|
|
53
57
|
ownerId: t
|
|
54
58
|
})
|
|
55
59
|
}, t)),
|
|
56
|
-
enableSorting: !1
|
|
60
|
+
enableSorting: !1,
|
|
61
|
+
size: 200
|
|
57
62
|
}),
|
|
58
|
-
|
|
59
|
-
header: (e) => /* @__PURE__ */
|
|
63
|
+
T.accessor("numberOfReplies", {
|
|
64
|
+
header: (e) => /* @__PURE__ */ g(o, {
|
|
60
65
|
...e,
|
|
61
66
|
title: "Replies"
|
|
62
67
|
}),
|
|
63
|
-
cell: ({ getValue: e }) => e()
|
|
68
|
+
cell: ({ getValue: e }) => e()?.toLocaleString(),
|
|
64
69
|
enableSorting: !0,
|
|
65
|
-
minSize:
|
|
66
|
-
size:
|
|
70
|
+
minSize: 90,
|
|
71
|
+
size: 100
|
|
67
72
|
}),
|
|
68
|
-
|
|
69
|
-
header: (e) => /* @__PURE__ */
|
|
73
|
+
T.accessor("numberOfViews", {
|
|
74
|
+
header: (e) => /* @__PURE__ */ g(o, {
|
|
70
75
|
...e,
|
|
71
76
|
title: "Views"
|
|
72
77
|
}),
|
|
73
|
-
cell: ({ getValue: e }) => e()
|
|
78
|
+
cell: ({ getValue: e }) => e()?.toLocaleString(),
|
|
74
79
|
enableSorting: !0,
|
|
75
|
-
minSize:
|
|
76
|
-
size:
|
|
80
|
+
minSize: 90,
|
|
81
|
+
size: 100
|
|
77
82
|
}),
|
|
78
|
-
|
|
79
|
-
header: (e) => /* @__PURE__ */
|
|
83
|
+
T.accessor("lastActivity", {
|
|
84
|
+
header: (e) => /* @__PURE__ */ g(o, {
|
|
80
85
|
...e,
|
|
81
86
|
title: "Activity"
|
|
82
87
|
}),
|
|
83
|
-
cell: ({ getValue: e }) =>
|
|
88
|
+
cell: ({ getValue: e }) => e() && b(e()).fromNow(),
|
|
84
89
|
enableSorting: !0,
|
|
85
|
-
|
|
90
|
+
minSize: 120,
|
|
91
|
+
size: 140
|
|
86
92
|
})
|
|
87
93
|
];
|
|
88
94
|
}
|
|
89
|
-
function
|
|
90
|
-
let [
|
|
95
|
+
function D(e) {
|
|
96
|
+
let { limit: n, onClickLink: r, noBackgroundColor: i, onIsEmptyChange: o, maxHeight: m = "250px" } = e, h = "entityId" in e, [b, x] = p([{
|
|
91
97
|
desc: !0,
|
|
92
98
|
id: "lastActivity"
|
|
93
|
-
}]),
|
|
94
|
-
if (!
|
|
95
|
-
if (
|
|
96
|
-
if (
|
|
97
|
-
if (
|
|
98
|
-
if (
|
|
99
|
+
}]), S = f(() => {
|
|
100
|
+
if (!y(b)) {
|
|
101
|
+
if (b[0].id == "lastActivity") return v.PINNED_AND_LAST_ACTIVITY;
|
|
102
|
+
if (b[0].id == "numberOfReplies") return v.NUMBER_OF_REPLIES;
|
|
103
|
+
if (b[0].id == "title") return v.THREAD_TITLE;
|
|
104
|
+
if (b[0].id == "numberOfViews") return v.NUMBER_OF_VIEWS;
|
|
99
105
|
}
|
|
100
|
-
return
|
|
101
|
-
}, [
|
|
102
|
-
data:
|
|
103
|
-
columns:
|
|
104
|
-
state: { sorting:
|
|
105
|
-
onSortingChange:
|
|
106
|
-
getRowId: (e) => e.id,
|
|
107
|
-
getCoreRowModel:
|
|
106
|
+
return v.PINNED_AND_LAST_ACTIVITY;
|
|
107
|
+
}, [b]), T = !b[0]?.desc, D = c(h ? "" : e.forumId, n, S, T, h ? void 0 : e.filter, { enabled: !h }), O = s(h ? e.entityId : "", n, S, T, { enabled: h }), { data: k, isLoading: A, error: j, hasNextPage: M, fetchNextPage: N, isFetchingNextPage: P } = h ? O : D, F = w({
|
|
108
|
+
data: f(() => (k?.pages ?? []).flatMap((e) => e.results), [k]),
|
|
109
|
+
columns: f(() => E(r), [r]),
|
|
110
|
+
state: { sorting: b },
|
|
111
|
+
onSortingChange: x,
|
|
112
|
+
getRowId: (e, t) => e.id ?? String(t),
|
|
113
|
+
getCoreRowModel: C(),
|
|
108
114
|
columnResizeMode: "onChange",
|
|
109
115
|
manualSorting: !0,
|
|
110
116
|
enableMultiSort: !1,
|
|
111
117
|
enableFilters: !1
|
|
112
|
-
}),
|
|
113
|
-
|
|
118
|
+
}), I = !A && !j && F.getRowModel().rows.length === 0;
|
|
119
|
+
d(() => {
|
|
120
|
+
A || o?.(I);
|
|
121
|
+
}, [
|
|
122
|
+
A,
|
|
123
|
+
I,
|
|
124
|
+
o
|
|
125
|
+
]);
|
|
126
|
+
let L = h ? e.onViewForumClicked : void 0;
|
|
127
|
+
return I && L ? /* @__PURE__ */ g(u, { onViewForumClicked: L }) : /* @__PURE__ */ _("div", {
|
|
114
128
|
className: "ForumTable",
|
|
115
|
-
children: /* @__PURE__ */
|
|
116
|
-
table: /* @__PURE__ */
|
|
117
|
-
table:
|
|
118
|
-
styledTableContainerProps: {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
129
|
+
children: [/* @__PURE__ */ g(t, { error: j }), /* @__PURE__ */ g(l, {
|
|
130
|
+
table: /* @__PURE__ */ g(a, {
|
|
131
|
+
table: F,
|
|
132
|
+
styledTableContainerProps: {
|
|
133
|
+
sx: {
|
|
134
|
+
my: 2,
|
|
135
|
+
maxHeight: m
|
|
136
|
+
},
|
|
137
|
+
noBackgroundColor: i
|
|
138
|
+
}
|
|
122
139
|
}),
|
|
123
|
-
isLoading:
|
|
124
|
-
isEmpty:
|
|
125
|
-
hasNextPage:
|
|
140
|
+
isLoading: A,
|
|
141
|
+
isEmpty: I,
|
|
142
|
+
hasNextPage: M,
|
|
126
143
|
onFetchNextPageClicked: () => {
|
|
127
|
-
|
|
144
|
+
N();
|
|
128
145
|
},
|
|
129
|
-
isFetchingNextPage:
|
|
130
|
-
})
|
|
146
|
+
isFetchingNextPage: P
|
|
147
|
+
})]
|
|
131
148
|
});
|
|
132
149
|
}
|
|
133
150
|
//#endregion
|
|
134
|
-
export {
|
|
151
|
+
export { D as ForumTable, D as default };
|
|
135
152
|
|
|
136
153
|
//# sourceMappingURL=ForumTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ForumTable.js","names":[],"sources":["../../../src/components/Forum/ForumTable.tsx"],"sourcesContent":["import InfiniteTableLayout from '@/components/layout/InfiniteTableLayout'\nimport { useGetForumThreadsInfinite } from '@/synapse-queries/forum/useForum'\nimport { AVATAR } from '@/utils/SynapseConstants'\nimport { Link } from '@mui/material'\nimport {\n DiscussionFilter,\n DiscussionThreadBundle,\n DiscussionThreadOrder,\n} from '@sage-bionetworks/synapse-types'\nimport {\n ColumnDef,\n createColumnHelper,\n getCoreRowModel,\n SortingState,\n Table,\n useReactTable,\n} from '@tanstack/react-table'\nimport dayjs from 'dayjs'\nimport isEmpty from 'lodash-es/isEmpty'\nimport { useMemo, useState } from 'react'\nimport IconSvg from '../IconSvg/IconSvg'\nimport ColumnHeader from '../TanStackTable/ColumnHeader'\nimport StyledTanStackTable from '../TanStackTable/StyledTanStackTable'\nimport { UserBadge } from '../UserCard/UserBadge'\nimport UserCard from '../UserCard/UserCard'\n\nexport type ForumTableProps = {\n forumId: string\n limit: number\n onClickLink: (threadId: string) => void\n filter: DiscussionFilter\n}\n\nconst columnHelper = createColumnHelper<DiscussionThreadBundle>()\n\nfunction getColumns(\n onClickLink: (threadId: string) => void,\n): ColumnDef<DiscussionThreadBundle, any>[] {\n return [\n columnHelper.accessor('title', {\n header: props => <ColumnHeader {...props} title={'Topic'} />,\n cell: ({ row }) => (\n <Link onClick={() => onClickLink(row.original.id)}>\n {row.original.isPinned ? <IconSvg icon=\"pushpin\" /> : <></>}\n {row.original.title}\n </Link>\n ),\n enableSorting: true,\n size: 250,\n }),\n columnHelper.accessor('createdBy', {\n header: props => <ColumnHeader {...props} title={'Author'} />,\n cell: ({ getValue }) => <UserBadge userId={getValue()} />,\n enableSorting: false,\n size: 60,\n }),\n columnHelper.accessor('activeAuthors', {\n header: props => <ColumnHeader {...props} title={'Active Users'} />,\n cell: ({ getValue }) =>\n getValue().map((userId: string) => (\n <div key={userId} className=\"avatarContainer\">\n <UserCard\n showCardOnHover={true}\n className=\"ActiveUsers\"\n size={AVATAR}\n avatarSize={'MEDIUM'}\n ownerId={userId}\n />\n </div>\n )),\n enableSorting: false,\n }),\n columnHelper.accessor('numberOfReplies', {\n header: props => <ColumnHeader {...props} title={'Replies'} />,\n cell: ({ getValue }) => getValue().toLocaleString(),\n enableSorting: true,\n minSize: 10,\n size: 20,\n }),\n columnHelper.accessor('numberOfViews', {\n header: props => <ColumnHeader {...props} title={'Views'} />,\n cell: ({ getValue }) => getValue().toLocaleString(),\n enableSorting: true,\n minSize: 10,\n size: 20,\n }),\n columnHelper.accessor('lastActivity', {\n header: props => <ColumnHeader {...props} title={'Activity'} />,\n cell: ({ getValue }) => dayjs(getValue()).format('L'),\n enableSorting: true,\n size: 30,\n }),\n ]\n}\n\nexport function ForumTable({\n forumId,\n limit,\n filter,\n onClickLink,\n}: ForumTableProps) {\n const [tableSortState, setTableSortState] = useState<SortingState>([\n {\n desc: true,\n id: 'lastActivity',\n },\n ])\n\n const discussionThreadOrder = useMemo(() => {\n if (!isEmpty(tableSortState)) {\n if (tableSortState[0].id == 'lastActivity') {\n return DiscussionThreadOrder.PINNED_AND_LAST_ACTIVITY\n } else if (tableSortState[0].id == 'numberOfReplies') {\n return DiscussionThreadOrder.NUMBER_OF_REPLIES\n } else if (tableSortState[0].id == 'title') {\n return DiscussionThreadOrder.THREAD_TITLE\n } else if (tableSortState[0].id == 'numberOfViews') {\n return DiscussionThreadOrder.NUMBER_OF_VIEWS\n }\n }\n return DiscussionThreadOrder.PINNED_AND_LAST_ACTIVITY\n }, [tableSortState])\n\n const { data, isLoading, hasNextPage, fetchNextPage, isFetchingNextPage } =\n useGetForumThreadsInfinite(\n forumId,\n limit,\n discussionThreadOrder,\n !tableSortState[0]?.desc,\n filter,\n )\n\n const threads = useMemo(\n () => data?.pages.flatMap(page => page.results) ?? [],\n [data],\n )\n\n const columns = useMemo(() => getColumns(onClickLink), [onClickLink])\n\n const table: Table<DiscussionThreadBundle> =\n useReactTable<DiscussionThreadBundle>({\n data: threads,\n columns: columns,\n state: {\n sorting: tableSortState,\n },\n onSortingChange: setTableSortState,\n getRowId: row => row.id,\n getCoreRowModel: getCoreRowModel(),\n columnResizeMode: 'onChange',\n manualSorting: true,\n enableMultiSort: false,\n enableFilters: false,\n })\n\n const hasNoResults = !isLoading && table.getRowModel().rows.length === 0\n\n return (\n <div className=\"ForumTable\">\n <InfiniteTableLayout\n table={\n <StyledTanStackTable\n table={table}\n styledTableContainerProps={{ sx: { my: 2, maxHeight: '250px' } }}\n />\n }\n isLoading={isLoading}\n isEmpty={hasNoResults}\n hasNextPage={hasNextPage}\n onFetchNextPageClicked={() => {\n void fetchNextPage()\n }}\n isFetchingNextPage={isFetchingNextPage}\n />\n </div>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ForumTable.js","names":[],"sources":["../../../src/components/Forum/ForumTable.tsx"],"sourcesContent":["import { ErrorBanner } from '@/components/error/ErrorBanner'\nimport InfiniteTableLayout from '@/components/layout/InfiniteTableLayout'\nimport {\n useGetEntityThreadsInfinite,\n useGetForumThreadsInfinite,\n} from '@/synapse-queries/forum/useForum'\nimport { AVATAR } from '@/utils/SynapseConstants'\nimport { Link } from '@mui/material'\nimport { DiscussionThreadBundle as DiscussionThreadBundleGenerated } from '@sage-bionetworks/synapse-client'\nimport {\n DiscussionFilter,\n DiscussionThreadOrder,\n PaginatedResults,\n} from '@sage-bionetworks/synapse-types'\nimport {\n ColumnDef,\n createColumnHelper,\n getCoreRowModel,\n SortingState,\n Table,\n useReactTable,\n} from '@tanstack/react-table'\nimport dayjs from 'dayjs'\nimport relativeTime from 'dayjs/plugin/relativeTime'\nimport isEmpty from 'lodash-es/isEmpty'\nimport { useEffect, useMemo, useState } from 'react'\nimport IconSvg from '../IconSvg/IconSvg'\nimport ColumnHeader from '../TanStackTable/ColumnHeader'\nimport StyledTanStackTable from '../TanStackTable/StyledTanStackTable'\nimport { UserBadge } from '../UserCard/UserBadge'\nimport UserCard from '../UserCard/UserCard'\nimport DiscussionEmpty from './DiscussionEmpty'\n\ndayjs.extend(relativeTime)\n\ntype ForumTableBaseProps = {\n limit: number\n /** Called with the clicked thread's ID and the ID of the project it belongs to */\n onClickLink: (threadId: string, projectId?: string) => void\n noBackgroundColor?: boolean\n /** Called when the first page loads, with whether there are no threads */\n onIsEmptyChange?: (isEmpty: boolean) => void\n /** Max height of the table before it scrolls. Use 'none' for full height. @default '250px' */\n maxHeight?: string\n}\n\nexport type ForumTableProps = ForumTableBaseProps &\n (\n | { forumId: string; filter: DiscussionFilter }\n | { entityId: string; onViewForumClicked?: () => void }\n )\n\nconst columnHelper = createColumnHelper<DiscussionThreadBundleGenerated>()\n\nfunction getColumns(\n onClickLink: (threadId: string, projectId?: string) => void,\n): ColumnDef<DiscussionThreadBundleGenerated, any>[] {\n return [\n columnHelper.accessor('title', {\n header: props => <ColumnHeader {...props} title={'Topic'} />,\n cell: ({ row }) => (\n <Link\n onClick={() =>\n row.original.id &&\n onClickLink(row.original.id, row.original.projectId)\n }\n >\n {row.original.isPinned ? <IconSvg icon=\"pushpin\" /> : <></>}\n {row.original.title}\n </Link>\n ),\n enableSorting: true,\n size: 300,\n }),\n columnHelper.accessor('createdBy', {\n header: props => <ColumnHeader {...props} title={'Author'} />,\n cell: ({ getValue }) => <UserBadge userId={getValue()} />,\n enableSorting: false,\n size: 150,\n }),\n columnHelper.accessor('activeAuthors', {\n header: props => <ColumnHeader {...props} title={'Active Users'} />,\n cell: ({ getValue }) =>\n (getValue() ?? []).map((userId: string) => (\n <div key={userId} className=\"avatarContainer\">\n <UserCard\n showCardOnHover={true}\n className=\"ActiveUsers\"\n size={AVATAR}\n avatarSize={'MEDIUM'}\n ownerId={userId}\n />\n </div>\n )),\n enableSorting: false,\n size: 200,\n }),\n columnHelper.accessor('numberOfReplies', {\n header: props => <ColumnHeader {...props} title={'Replies'} />,\n cell: ({ getValue }) => getValue()?.toLocaleString(),\n enableSorting: true,\n minSize: 90,\n size: 100,\n }),\n columnHelper.accessor('numberOfViews', {\n header: props => <ColumnHeader {...props} title={'Views'} />,\n cell: ({ getValue }) => getValue()?.toLocaleString(),\n enableSorting: true,\n minSize: 90,\n size: 100,\n }),\n columnHelper.accessor('lastActivity', {\n header: props => <ColumnHeader {...props} title={'Activity'} />,\n cell: ({ getValue }) => getValue() && dayjs(getValue()).fromNow(),\n enableSorting: true,\n minSize: 120,\n size: 140,\n }),\n ]\n}\n\nexport function ForumTable(props: ForumTableProps) {\n const {\n limit,\n onClickLink,\n noBackgroundColor,\n onIsEmptyChange,\n maxHeight = '250px',\n } = props\n const isEntityMode = 'entityId' in props\n\n const [tableSortState, setTableSortState] = useState<SortingState>([\n {\n desc: true,\n id: 'lastActivity',\n },\n ])\n\n const discussionThreadOrder = useMemo(() => {\n if (!isEmpty(tableSortState)) {\n if (tableSortState[0].id == 'lastActivity') {\n return DiscussionThreadOrder.PINNED_AND_LAST_ACTIVITY\n } else if (tableSortState[0].id == 'numberOfReplies') {\n return DiscussionThreadOrder.NUMBER_OF_REPLIES\n } else if (tableSortState[0].id == 'title') {\n return DiscussionThreadOrder.THREAD_TITLE\n } else if (tableSortState[0].id == 'numberOfViews') {\n return DiscussionThreadOrder.NUMBER_OF_VIEWS\n }\n }\n return DiscussionThreadOrder.PINNED_AND_LAST_ACTIVITY\n }, [tableSortState])\n\n const ascending = !tableSortState[0]?.desc\n\n const forumThreadsQuery = useGetForumThreadsInfinite(\n isEntityMode ? '' : props.forumId,\n limit,\n discussionThreadOrder,\n ascending,\n isEntityMode ? undefined : props.filter,\n { enabled: !isEntityMode },\n )\n\n const entityThreadsQuery = useGetEntityThreadsInfinite(\n isEntityMode ? props.entityId : '',\n limit,\n discussionThreadOrder,\n ascending,\n { enabled: isEntityMode },\n )\n\n const {\n data,\n isLoading,\n error,\n hasNextPage,\n fetchNextPage,\n isFetchingNextPage,\n } = isEntityMode ? entityThreadsQuery : forumThreadsQuery\n\n const threads = useMemo(() => {\n const pages: PaginatedResults<DiscussionThreadBundleGenerated>[] =\n data?.pages ?? []\n return pages.flatMap(page => page.results)\n }, [data])\n\n const columns = useMemo(() => getColumns(onClickLink), [onClickLink])\n\n const table: Table<DiscussionThreadBundleGenerated> =\n useReactTable<DiscussionThreadBundleGenerated>({\n data: threads,\n columns: columns,\n state: {\n sorting: tableSortState,\n },\n onSortingChange: setTableSortState,\n getRowId: (row, index) => row.id ?? String(index),\n getCoreRowModel: getCoreRowModel(),\n columnResizeMode: 'onChange',\n manualSorting: true,\n enableMultiSort: false,\n enableFilters: false,\n })\n\n const hasNoResults =\n !isLoading && !error && table.getRowModel().rows.length === 0\n\n useEffect(() => {\n if (!isLoading) {\n onIsEmptyChange?.(hasNoResults)\n }\n }, [isLoading, hasNoResults, onIsEmptyChange])\n\n const onViewForumClicked = isEntityMode ? props.onViewForumClicked : undefined\n\n if (hasNoResults && onViewForumClicked) {\n return <DiscussionEmpty onViewForumClicked={onViewForumClicked} />\n }\n\n return (\n <div className=\"ForumTable\">\n <ErrorBanner error={error} />\n <InfiniteTableLayout\n table={\n <StyledTanStackTable\n table={table}\n styledTableContainerProps={{\n sx: { my: 2, maxHeight },\n noBackgroundColor,\n }}\n />\n }\n isLoading={isLoading}\n isEmpty={hasNoResults}\n hasNextPage={hasNextPage}\n onFetchNextPageClicked={() => {\n void fetchNextPage()\n }}\n isFetchingNextPage={isFetchingNextPage}\n />\n </div>\n )\n}\n\nexport default ForumTable\n"],"mappings":"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"}
|
package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetAccessRequirementCommonFields.d.ts","sourceRoot":"","sources":["../../../src/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SetAccessRequirementCommonFields.d.ts","sourceRoot":"","sources":["../../../src/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.tsx"],"names":[],"mappings":"AAsBA,OAAO,EACL,gCAAgC,EAKhC,4BAA4B,EAC5B,sBAAsB,EAEvB,MAAM,iCAAiC,CAAA;AAqBxC,eAAO,MAAM,gCAAgC,2FAC6C,CAAA;AAC1F,eAAO,MAAM,8BAA8B,GACzC,cAAc,sBAAsB,WASrC,CAAA;AAsBD,MAAM,MAAM,sCAAsC,GAAG;IAEnD,IAAI,EAAE,MAAM,IAAI,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,qCAAqC,GAAG;IAElD,OAAO,CAAC,EAAE,4BAA4B,CAAA;IAEtC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B,MAAM,EAAE,CACN,mBAAmB,EAAE,MAAM,EAC3B,4BAA4B,EAAE,gCAAgC,KAC3D,IAAI,CAAA;IAET,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,gCAAgC,0JAyV5C,CAAA"}
|
package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js
CHANGED
|
@@ -1,161 +1,173 @@
|
|
|
1
1
|
import { spreadSx as e } from "../../theme/spreadSx.js";
|
|
2
2
|
import { SynapseErrorBoundary as t } from "../error/ErrorBanner.js";
|
|
3
|
-
import { useCreateAccessRequirement as n, useGetAccessRequirements as
|
|
3
|
+
import { useCreateAccessRequirement as n, useGetAccessRequirements as ee, useUpdateAccessRequirement as te } from "../../synapse-queries/dataaccess/useAccessRequirements.js";
|
|
4
|
+
import { useGetFeatureFlag as ne } from "../../synapse-queries/featureflags/useGetFeatureFlag.js";
|
|
4
5
|
import "../../synapse-queries/index.js";
|
|
5
6
|
import "../error/index.js";
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import
|
|
7
|
+
import { FeatureFlagEnum as re } from "../../utils/featureflag/FeatureFlags.js";
|
|
8
|
+
import ie from "../TeamSubjectsSelector/index.js";
|
|
9
|
+
import { FormTemplateReferenceField as ae, useFormTemplateReferenceError as oe } from "../FormTemplateReferenceField/FormTemplateReferenceField.js";
|
|
10
|
+
import se from "../EntitySubjectsSelector/index.js";
|
|
11
|
+
import { forwardRef as r, useEffect as ce, useImperativeHandle as le, useMemo as i, useState as a } from "react";
|
|
12
|
+
import { Alert as o, Box as ue, Checkbox as de, FormControlLabel as s, Radio as c, RadioGroup as fe, Skeleton as l, Stack as pe, TextField as u, Tooltip as me, Typography as d } from "@mui/material";
|
|
13
|
+
import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
14
|
+
import { ACCESS_TYPE as h, JSON_SCHEMA_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE as g, MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE as _, RestrictableObjectType as v, SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE as y } from "@sage-bionetworks/synapse-types";
|
|
15
|
+
import { HelpOutlineTwoTone as b } from "@mui/icons-material";
|
|
16
|
+
import x from "pluralize";
|
|
14
17
|
//#region src/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.tsx
|
|
15
|
-
var
|
|
16
|
-
let t = e ===
|
|
17
|
-
return `${t} IDs were specified but not added to the subjects list. Please either clear out the Add ${t} IDs textbox or click the Add ${
|
|
18
|
-
},
|
|
18
|
+
var S = "Please select at least one resource for this Access Requirement to be associated with.", C = (e) => {
|
|
19
|
+
let t = e === v.ENTITY ? "Synapse" : "Team";
|
|
20
|
+
return `${t} IDs were specified but not added to the subjects list. Please either clear out the Add ${t} IDs textbox or click the Add ${x(e[0].toUpperCase() + e.slice(1).toLowerCase())} button.`;
|
|
21
|
+
}, he = "Enter access requirement name. This will also be used when sending notifications for expiring or revoked approval. For example, 'The approval for the name access requirement was revoked...'", w = {
|
|
19
22
|
variant: "body1",
|
|
20
23
|
fontWeight: 700
|
|
21
24
|
};
|
|
22
|
-
function
|
|
25
|
+
function ge(e) {
|
|
23
26
|
switch (e) {
|
|
24
|
-
case
|
|
25
|
-
case
|
|
27
|
+
case v.ENTITY: return h.DOWNLOAD;
|
|
28
|
+
case v.TEAM: return h.PARTICIPATE;
|
|
26
29
|
default: throw Error(`RestrictableObjectType ${e} does not have an access type specified.`);
|
|
27
30
|
}
|
|
28
31
|
}
|
|
29
|
-
var
|
|
30
|
-
let { subject:
|
|
31
|
-
|
|
32
|
+
var T = r(function(r, h) {
|
|
33
|
+
let { subject: x, accessRequirementId: T, onSave: _e, onError: E } = r, D = !x, [O, k] = a(x ? [x] : []), [A, ve] = a(!1), [j, M] = a(null), [N, P] = a(""), [F, I] = a(!1), [L, R] = a(x?.type === v.TEAM ? y : _), [z, B] = a(null), V = ne(re.ACT_DASHBOARD_FORM_TEMPLATES), [H, U] = a(void 0), [ye, W] = a(!1), G = V && L === g, K = oe(G ? H : void 0), q = (e) => {
|
|
34
|
+
B(null), _e(e.id.toString(), e.concreteType);
|
|
32
35
|
}, J = (e) => {
|
|
33
|
-
|
|
36
|
+
B(e.reason), E();
|
|
34
37
|
}, { mutate: Y } = n({
|
|
35
38
|
onSuccess: (e) => q(e),
|
|
36
39
|
onError: (e) => J(e)
|
|
37
|
-
}), { mutate: X } =
|
|
40
|
+
}), { mutate: X } = te({
|
|
38
41
|
onSuccess: (e) => q(e),
|
|
39
42
|
onError: (e) => J(e)
|
|
40
|
-
}), { data: Z, isLoading:
|
|
41
|
-
|
|
42
|
-
Z && (
|
|
43
|
+
}), { data: Z, isLoading: be, error: Q } = ee(T, { enabled: !!T });
|
|
44
|
+
ce(() => {
|
|
45
|
+
Z && (R(Z.concreteType), Z.concreteType === g && U(Z.formTemplateRef), P(Z.name), k(Z.subjectIds), I(Z.subjectsDefinedByAnnotations));
|
|
43
46
|
}, [Z]);
|
|
44
|
-
let $ =
|
|
45
|
-
if (
|
|
47
|
+
let $ = i(() => {
|
|
48
|
+
if (x) return x.type;
|
|
46
49
|
if (Z) {
|
|
47
50
|
let e = Z.subjectIds;
|
|
48
51
|
if (e.length > 0) return e[0].type;
|
|
49
52
|
}
|
|
50
|
-
return
|
|
53
|
+
return F ? v.ENTITY : null;
|
|
51
54
|
}, [
|
|
52
|
-
|
|
55
|
+
x,
|
|
53
56
|
Z,
|
|
54
|
-
|
|
55
|
-
]),
|
|
56
|
-
if (!$) return /* @__PURE__ */
|
|
57
|
+
F
|
|
58
|
+
]), xe = i(() => {
|
|
59
|
+
if (!$) return /* @__PURE__ */ p(f, {});
|
|
57
60
|
function e(e) {
|
|
58
|
-
|
|
61
|
+
M(null), k(e);
|
|
59
62
|
}
|
|
60
63
|
function t(e) {
|
|
61
|
-
|
|
64
|
+
M(null), ve(e.trim() !== "");
|
|
62
65
|
}
|
|
63
|
-
if (
|
|
66
|
+
if (F) return /* @__PURE__ */ p(f, {});
|
|
64
67
|
switch ($) {
|
|
65
|
-
case
|
|
66
|
-
subjects:
|
|
68
|
+
case v.TEAM: return /* @__PURE__ */ p(ie, {
|
|
69
|
+
subjects: O,
|
|
67
70
|
onUpdate: (t) => e(t),
|
|
68
71
|
onUpdateTeamIDsTextbox: (e) => t(e)
|
|
69
72
|
});
|
|
70
|
-
case
|
|
71
|
-
subjects:
|
|
73
|
+
case v.ENTITY: return /* @__PURE__ */ p(se, {
|
|
74
|
+
subjects: O,
|
|
72
75
|
onUpdate: (t) => e(t),
|
|
73
76
|
onUpdateEntityIDsTextbox: (e) => t(e)
|
|
74
77
|
});
|
|
75
|
-
default: return console.error(`RestrictableObjectType ${$} does not have a selector implemented.`), /* @__PURE__ */
|
|
78
|
+
default: return console.error(`RestrictableObjectType ${$} does not have a selector implemented.`), /* @__PURE__ */ p(f, {});
|
|
76
79
|
}
|
|
77
80
|
}, [
|
|
78
81
|
$,
|
|
79
|
-
|
|
80
|
-
|
|
82
|
+
O,
|
|
83
|
+
F
|
|
81
84
|
]);
|
|
82
|
-
return
|
|
83
|
-
let e =
|
|
85
|
+
return le(h, () => ({ save() {
|
|
86
|
+
let e = D && !Z || !$, t = !F && (A || O.length === 0);
|
|
84
87
|
if (e || t) {
|
|
85
|
-
t && !e && (
|
|
88
|
+
t && !e && (A ? M(C($)) : O.length === 0 && M(S)), E();
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (G && K) {
|
|
92
|
+
W(!0), E();
|
|
86
93
|
return;
|
|
87
94
|
}
|
|
88
|
-
let n =
|
|
89
|
-
|
|
90
|
-
concreteType:
|
|
91
|
-
subjectIds:
|
|
92
|
-
name:
|
|
95
|
+
let n = ge($);
|
|
96
|
+
D || Y({
|
|
97
|
+
concreteType: L,
|
|
98
|
+
subjectIds: O,
|
|
99
|
+
name: N,
|
|
93
100
|
accessType: n,
|
|
94
|
-
subjectsDefinedByAnnotations:
|
|
95
|
-
|
|
101
|
+
subjectsDefinedByAnnotations: F,
|
|
102
|
+
...G ? { formTemplateRef: H } : {}
|
|
103
|
+
}), D && Z && X({
|
|
96
104
|
...Z,
|
|
97
|
-
subjectIds:
|
|
98
|
-
name:
|
|
105
|
+
subjectIds: O,
|
|
106
|
+
name: N,
|
|
99
107
|
accessType: n,
|
|
100
|
-
subjectsDefinedByAnnotations:
|
|
108
|
+
subjectsDefinedByAnnotations: F,
|
|
109
|
+
...G ? { formTemplateRef: H } : {}
|
|
101
110
|
});
|
|
102
111
|
} }), [
|
|
103
|
-
|
|
112
|
+
A,
|
|
104
113
|
$,
|
|
105
|
-
|
|
106
|
-
z,
|
|
107
|
-
U,
|
|
108
|
-
Z,
|
|
114
|
+
O,
|
|
109
115
|
N,
|
|
110
|
-
|
|
116
|
+
L,
|
|
117
|
+
Z,
|
|
118
|
+
D,
|
|
119
|
+
E,
|
|
111
120
|
Y,
|
|
112
121
|
X,
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
122
|
+
F,
|
|
123
|
+
G,
|
|
124
|
+
H,
|
|
125
|
+
K
|
|
126
|
+
]), be || !$ ? /* @__PURE__ */ m(f, { children: [
|
|
127
|
+
/* @__PURE__ */ p(l, {
|
|
116
128
|
width: 100,
|
|
117
129
|
height: 30
|
|
118
130
|
}),
|
|
119
|
-
/* @__PURE__ */
|
|
131
|
+
/* @__PURE__ */ p(l, {
|
|
120
132
|
width: 125,
|
|
121
133
|
height: 30
|
|
122
134
|
}),
|
|
123
|
-
/* @__PURE__ */
|
|
135
|
+
/* @__PURE__ */ p(l, {
|
|
124
136
|
width: "100%",
|
|
125
|
-
children: /* @__PURE__ */
|
|
137
|
+
children: /* @__PURE__ */ p(u, {})
|
|
126
138
|
}),
|
|
127
|
-
/* @__PURE__ */
|
|
139
|
+
/* @__PURE__ */ p(l, {
|
|
128
140
|
width: 100,
|
|
129
141
|
height: 30
|
|
130
142
|
}),
|
|
131
|
-
/* @__PURE__ */
|
|
143
|
+
/* @__PURE__ */ p(l, {
|
|
132
144
|
width: "100%",
|
|
133
|
-
children: /* @__PURE__ */
|
|
145
|
+
children: /* @__PURE__ */ p(u, {})
|
|
134
146
|
})
|
|
135
|
-
] }) : Q ? /* @__PURE__ */
|
|
147
|
+
] }) : Q ? /* @__PURE__ */ p(o, {
|
|
136
148
|
severity: "error",
|
|
137
149
|
children: Q.reason
|
|
138
|
-
}) : /* @__PURE__ */
|
|
139
|
-
/* @__PURE__ */
|
|
140
|
-
...
|
|
150
|
+
}) : /* @__PURE__ */ m(f, { children: [
|
|
151
|
+
/* @__PURE__ */ p(d, {
|
|
152
|
+
...w,
|
|
141
153
|
children: "Resources"
|
|
142
154
|
}),
|
|
143
|
-
$ !==
|
|
144
|
-
control: /* @__PURE__ */
|
|
155
|
+
$ !== v.TEAM && /* @__PURE__ */ p(s, {
|
|
156
|
+
control: /* @__PURE__ */ p(de, {}),
|
|
145
157
|
label: "Associated entities should be defined by annotations (DUO)",
|
|
146
|
-
checked:
|
|
158
|
+
checked: F,
|
|
147
159
|
onChange: () => {
|
|
148
|
-
|
|
160
|
+
M(null);
|
|
149
161
|
let e = [];
|
|
150
|
-
|
|
162
|
+
F && (Z ? e = Z.subjectIds : x && (e = [x])), k(e), I(!F);
|
|
151
163
|
}
|
|
152
164
|
}),
|
|
153
|
-
/* @__PURE__ */
|
|
154
|
-
|
|
165
|
+
/* @__PURE__ */ p(t, { children: xe }),
|
|
166
|
+
j && /* @__PURE__ */ p(o, {
|
|
155
167
|
severity: "error",
|
|
156
|
-
children:
|
|
168
|
+
children: j
|
|
157
169
|
}),
|
|
158
|
-
/* @__PURE__ */
|
|
170
|
+
/* @__PURE__ */ m(pe, {
|
|
159
171
|
direction: "row",
|
|
160
172
|
sx: {
|
|
161
173
|
gap: 1,
|
|
@@ -163,50 +175,72 @@ var j = s(function(s, S) {
|
|
|
163
175
|
mb: 1,
|
|
164
176
|
mt: 2
|
|
165
177
|
},
|
|
166
|
-
children: [/* @__PURE__ */
|
|
178
|
+
children: [/* @__PURE__ */ p(d, {
|
|
167
179
|
component: "label",
|
|
168
180
|
htmlFor: "arName",
|
|
169
|
-
...
|
|
181
|
+
...w,
|
|
170
182
|
children: "Name"
|
|
171
|
-
}), /* @__PURE__ */
|
|
172
|
-
title:
|
|
183
|
+
}), /* @__PURE__ */ p(me, {
|
|
184
|
+
title: he,
|
|
173
185
|
placement: "right",
|
|
174
|
-
children: /* @__PURE__ */ b
|
|
186
|
+
children: /* @__PURE__ */ p(b, { sx: { color: "grey.600" } })
|
|
175
187
|
})]
|
|
176
188
|
}),
|
|
177
|
-
/* @__PURE__ */
|
|
189
|
+
/* @__PURE__ */ p(u, {
|
|
178
190
|
id: "arName",
|
|
179
191
|
name: "arName",
|
|
180
|
-
value:
|
|
192
|
+
value: N,
|
|
181
193
|
placeholder: "Access requirement name",
|
|
182
194
|
fullWidth: !0,
|
|
183
|
-
onChange: (e) =>
|
|
195
|
+
onChange: (e) => P(e.target.value)
|
|
184
196
|
}),
|
|
185
|
-
!
|
|
186
|
-
...
|
|
187
|
-
sx: e({ mt: 2 },
|
|
197
|
+
!D && $ !== v.TEAM && /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p(d, {
|
|
198
|
+
...w,
|
|
199
|
+
sx: e({ mt: 2 }, w.sx),
|
|
188
200
|
children: "Access requirement type"
|
|
189
|
-
}), /* @__PURE__ */
|
|
190
|
-
value:
|
|
191
|
-
onChange: (e, t) =>
|
|
192
|
-
children: [
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
+
}), /* @__PURE__ */ m(fe, {
|
|
202
|
+
value: L,
|
|
203
|
+
onChange: (e, t) => R(t),
|
|
204
|
+
children: [
|
|
205
|
+
/* @__PURE__ */ p(s, {
|
|
206
|
+
value: _,
|
|
207
|
+
control: /* @__PURE__ */ p(c, {}),
|
|
208
|
+
label: "Controlled - requests are in Synapse"
|
|
209
|
+
}),
|
|
210
|
+
/* @__PURE__ */ p(s, {
|
|
211
|
+
value: y,
|
|
212
|
+
control: /* @__PURE__ */ p(c, {}),
|
|
213
|
+
label: "Click wrap"
|
|
214
|
+
}),
|
|
215
|
+
V && /* @__PURE__ */ p(s, {
|
|
216
|
+
value: g,
|
|
217
|
+
control: /* @__PURE__ */ p(c, {}),
|
|
218
|
+
label: "Schema-driven - requests are in Synapse, using a form template"
|
|
219
|
+
})
|
|
220
|
+
]
|
|
201
221
|
})] }),
|
|
202
|
-
G && /* @__PURE__ */
|
|
222
|
+
G && /* @__PURE__ */ m(ue, {
|
|
223
|
+
sx: { mt: 2 },
|
|
224
|
+
children: [/* @__PURE__ */ p(d, {
|
|
225
|
+
...w,
|
|
226
|
+
sx: e({ mb: 1 }, w.sx),
|
|
227
|
+
children: "Form presented to requesters"
|
|
228
|
+
}), /* @__PURE__ */ p(ae, {
|
|
229
|
+
value: H,
|
|
230
|
+
onChange: (e) => {
|
|
231
|
+
W(!1), U(e);
|
|
232
|
+
},
|
|
233
|
+
error: ye ? K : null
|
|
234
|
+
})]
|
|
235
|
+
}),
|
|
236
|
+
z && /* @__PURE__ */ p(o, {
|
|
203
237
|
severity: "error",
|
|
204
238
|
sx: { marginTop: 2 },
|
|
205
|
-
children:
|
|
239
|
+
children: z
|
|
206
240
|
})
|
|
207
241
|
] });
|
|
208
242
|
});
|
|
209
243
|
//#endregion
|
|
210
|
-
export {
|
|
244
|
+
export { S as EMPTY_SUBJECT_LIST_ERROR_MESSAGE, T as SetAccessRequirementCommonFields, C as UNSAVED_SUBJECTS_ERROR_MESSAGE };
|
|
211
245
|
|
|
212
246
|
//# sourceMappingURL=SetAccessRequirementCommonFields.js.map
|