synapse-react-client 3.3.0 → 3.3.1
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/index.cjs +17 -17
- package/dist/index.d.ts +3 -4
- package/dist/index.js +5302 -5199
- package/dist/umd/synapse-react-client.development.cjs +166 -101
- package/dist/umd/synapse-react-client.production.min.cjs +116 -116
- package/package.json +1 -1
|
@@ -44887,9 +44887,17 @@ Please use another name.` : formatMuiErrorMessage$1(18));
|
|
|
44887
44887
|
).length > 0;
|
|
44888
44888
|
return hasFacetFilters || hasAdditionalFilters;
|
|
44889
44889
|
}
|
|
44890
|
-
function canTableQueryBeAddedToDownloadList(entity2) {
|
|
44890
|
+
function canTableQueryBeAddedToDownloadList(entity2, entityColumnId) {
|
|
44891
|
+
const viewCannotIncludeFiles = (
|
|
44892
|
+
// EntityViews without the file bit mask cannot contain files
|
|
44893
|
+
entity2 && isEntityView(entity2) && !hasFilesInView(entity2) || // DatasetCollections cannot contain files
|
|
44894
|
+
entity2 && isDatasetCollection(entity2)
|
|
44895
|
+
);
|
|
44896
|
+
if (viewCannotIncludeFiles) {
|
|
44897
|
+
return false;
|
|
44898
|
+
}
|
|
44891
44899
|
return Boolean(
|
|
44892
|
-
entity2 && (isEntityView(entity2) && isFileView(entity2) || isDataset(entity2))
|
|
44900
|
+
entityColumnId || entity2 && (isEntityView(entity2) && isFileView(entity2) || isDataset(entity2))
|
|
44893
44901
|
);
|
|
44894
44902
|
}
|
|
44895
44903
|
function queryRequestsHaveSameTotalResults(request1, request2) {
|
|
@@ -55718,6 +55726,7 @@ Please use another name.` : formatMuiErrorMessage$1(18));
|
|
|
55718
55726
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
55719
55727
|
"div",
|
|
55720
55728
|
{
|
|
55729
|
+
role: "progressbar",
|
|
55721
55730
|
className: "spinner",
|
|
55722
55731
|
style: {
|
|
55723
55732
|
height: `${size2}px`,
|
|
@@ -116708,8 +116717,10 @@ query = syn.tableQuery("${clientSql}")${"\n"}query.asDataFrame()`
|
|
|
116708
116717
|
const [showProgrammaticOptions, setShowProgrammaticOptions] = React$2.useState(false);
|
|
116709
116718
|
const { onDownloadFiles, darkTheme = true } = props;
|
|
116710
116719
|
const fileColumnId = getFileColumnModelId(queryResultBundle == null ? void 0 : queryResultBundle.columnModels);
|
|
116711
|
-
const
|
|
116712
|
-
|
|
116720
|
+
const showAddQueryToDownloadList = canTableQueryBeAddedToDownloadList(
|
|
116721
|
+
entity2,
|
|
116722
|
+
fileColumnId
|
|
116723
|
+
);
|
|
116713
116724
|
const disableDownload = entity2 && isDataset(entity2) && entity2.isLatestVersion;
|
|
116714
116725
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(React$2.Fragment, { children: [
|
|
116715
116726
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(ReactBootstrap.Dropdown, { as: "span", children: [
|
|
@@ -117093,7 +117104,10 @@ query = syn.tableQuery("${clientSql}")${"\n"}query.asDataFrame()`
|
|
|
117093
117104
|
}
|
|
117094
117105
|
};
|
|
117095
117106
|
const fileColumnId = getFileColumnModelId(data == null ? void 0 : data.columnModels);
|
|
117096
|
-
const showAddToDownloadCart =
|
|
117107
|
+
const showAddToDownloadCart = canTableQueryBeAddedToDownloadList(
|
|
117108
|
+
entity2,
|
|
117109
|
+
fileColumnId
|
|
117110
|
+
);
|
|
117097
117111
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
117098
117112
|
RowSelectionUI,
|
|
117099
117113
|
{
|
|
@@ -174009,6 +174023,53 @@ dl_list_file_entities = syn.get_download_list()`;
|
|
|
174009
174023
|
}
|
|
174010
174024
|
);
|
|
174011
174025
|
}
|
|
174026
|
+
const PRINCIPAL_ALREADY_ADDED_ERROR_MESSAGE = "User or team already has permissions.";
|
|
174027
|
+
function useUpdateAcl(options2) {
|
|
174028
|
+
const { onChange = noop$9, onError = noop$9 } = options2;
|
|
174029
|
+
const [resourceAccessList, setResourceAccessList] = React$2.useState([]);
|
|
174030
|
+
React$2.useEffect(() => {
|
|
174031
|
+
onChange(resourceAccessList);
|
|
174032
|
+
}, [resourceAccessList]);
|
|
174033
|
+
const addResourceAccessItem = (newReviewerId) => {
|
|
174034
|
+
if (newReviewerId) {
|
|
174035
|
+
const alreadyReviewer = resourceAccessList.some(
|
|
174036
|
+
(resourceAccess) => resourceAccess.principalId === Number(newReviewerId)
|
|
174037
|
+
);
|
|
174038
|
+
if (alreadyReviewer) {
|
|
174039
|
+
onError(PRINCIPAL_ALREADY_ADDED_ERROR_MESSAGE);
|
|
174040
|
+
} else {
|
|
174041
|
+
const newResourceAccess = {
|
|
174042
|
+
principalId: Number(newReviewerId),
|
|
174043
|
+
accessType: [ACCESS_TYPE.REVIEW_SUBMISSIONS]
|
|
174044
|
+
};
|
|
174045
|
+
const updatedResourceAccessList = [
|
|
174046
|
+
...resourceAccessList,
|
|
174047
|
+
newResourceAccess
|
|
174048
|
+
];
|
|
174049
|
+
setResourceAccessList(updatedResourceAccessList);
|
|
174050
|
+
}
|
|
174051
|
+
}
|
|
174052
|
+
};
|
|
174053
|
+
const updateResourceAccessItem = (principalId, accessType) => {
|
|
174054
|
+
const updatedResourceAccessList = resourceAccessList.map((resourceAccess) => {
|
|
174055
|
+
return resourceAccess.principalId === principalId ? { ...resourceAccess, accessType } : resourceAccess;
|
|
174056
|
+
});
|
|
174057
|
+
setResourceAccessList(updatedResourceAccessList);
|
|
174058
|
+
};
|
|
174059
|
+
const removeResourceAccessItem = (principalId) => {
|
|
174060
|
+
const updatedResourceAccessList = resourceAccessList.filter(
|
|
174061
|
+
(raListItem) => raListItem.principalId !== principalId
|
|
174062
|
+
);
|
|
174063
|
+
setResourceAccessList(updatedResourceAccessList);
|
|
174064
|
+
};
|
|
174065
|
+
return {
|
|
174066
|
+
resourceAccessList,
|
|
174067
|
+
setResourceAccessList,
|
|
174068
|
+
addResourceAccessItem,
|
|
174069
|
+
updateResourceAccessItem,
|
|
174070
|
+
removeResourceAccessItem
|
|
174071
|
+
};
|
|
174072
|
+
}
|
|
174012
174073
|
const PermissionLevelMenu = (props) => {
|
|
174013
174074
|
const { currentAccessType, availablePermissionLevels: availablePermissionLevels2, onChange } = props;
|
|
174014
174075
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -174039,13 +174100,8 @@ dl_list_file_entities = syn.get_download_list()`;
|
|
|
174039
174100
|
);
|
|
174040
174101
|
};
|
|
174041
174102
|
const REMOVE_BUTTON_LABEL = "Remove from AR Permissions";
|
|
174042
|
-
const availablePermissionLevels = [
|
|
174043
|
-
"CAN_REVIEW_SUBMISSIONS",
|
|
174044
|
-
"IS_EXEMPTION_ELIGIBLE",
|
|
174045
|
-
"CAN_REVIEW_SUBMISSIONS_AND_IS_EXEMPTION_ELIGIBLE"
|
|
174046
|
-
];
|
|
174047
174103
|
const ResourceAccessItem = (props) => {
|
|
174048
|
-
const { resourceAccess, onChange, onRemove: onRemove2 } = props;
|
|
174104
|
+
const { resourceAccess, availablePermissionLevels: availablePermissionLevels2, onChange, onRemove: onRemove2 } = props;
|
|
174049
174105
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
174050
174106
|
Stack$6,
|
|
174051
174107
|
{
|
|
@@ -174062,7 +174118,7 @@ dl_list_file_entities = syn.get_download_list()`;
|
|
|
174062
174118
|
PermissionLevelMenu,
|
|
174063
174119
|
{
|
|
174064
174120
|
currentAccessType: resourceAccess.accessType,
|
|
174065
|
-
availablePermissionLevels,
|
|
174121
|
+
availablePermissionLevels: availablePermissionLevels2,
|
|
174066
174122
|
onChange
|
|
174067
174123
|
}
|
|
174068
174124
|
),
|
|
@@ -174084,18 +174140,91 @@ dl_list_file_entities = syn.get_download_list()`;
|
|
|
174084
174140
|
}
|
|
174085
174141
|
) });
|
|
174086
174142
|
};
|
|
174143
|
+
function AclEditor(props) {
|
|
174144
|
+
const {
|
|
174145
|
+
isLoading,
|
|
174146
|
+
resourceAccessList,
|
|
174147
|
+
availablePermissionLevels: availablePermissionLevels2,
|
|
174148
|
+
emptyText,
|
|
174149
|
+
addResourceAccessItem,
|
|
174150
|
+
updateResourceAccessItem,
|
|
174151
|
+
removeResourceAccessItem
|
|
174152
|
+
} = props;
|
|
174153
|
+
if (isLoading) {
|
|
174154
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(Box, { display: "flex", justifyContent: "center", height: "150px", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SynapseSpinner, { size: 50 }) });
|
|
174155
|
+
}
|
|
174156
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { children: [
|
|
174157
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { mb: "30px", children: [
|
|
174158
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "headline3", mb: "10px", children: "Users and Teams with Permissions" }),
|
|
174159
|
+
resourceAccessList.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "body1Italic", children: emptyText }) : /* @__PURE__ */ jsxRuntimeExports.jsx(TransitionGroup, { children: resourceAccessList.map((resourceAccess) => {
|
|
174160
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(Collapse$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
174161
|
+
ResourceAccessItem,
|
|
174162
|
+
{
|
|
174163
|
+
resourceAccess,
|
|
174164
|
+
availablePermissionLevels: availablePermissionLevels2,
|
|
174165
|
+
onChange: (accessType) => updateResourceAccessItem(
|
|
174166
|
+
resourceAccess.principalId,
|
|
174167
|
+
accessType
|
|
174168
|
+
),
|
|
174169
|
+
onRemove: () => removeResourceAccessItem(resourceAccess.principalId)
|
|
174170
|
+
},
|
|
174171
|
+
resourceAccess.principalId
|
|
174172
|
+
) }, resourceAccess.principalId);
|
|
174173
|
+
}) })
|
|
174174
|
+
] }),
|
|
174175
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { children: [
|
|
174176
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "headline3", mb: "10px", children: "Add More" }),
|
|
174177
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
174178
|
+
Typography,
|
|
174179
|
+
{
|
|
174180
|
+
sx: {
|
|
174181
|
+
variant: "body1",
|
|
174182
|
+
lineHeight: "20px",
|
|
174183
|
+
fontStyle: "italic",
|
|
174184
|
+
color: "grey.900"
|
|
174185
|
+
},
|
|
174186
|
+
mb: "20px",
|
|
174187
|
+
children: "Search for a username or team to add. You can search by username, first or last names, or team name"
|
|
174188
|
+
}
|
|
174189
|
+
),
|
|
174190
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { children: [
|
|
174191
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
174192
|
+
Typography,
|
|
174193
|
+
{
|
|
174194
|
+
component: "label",
|
|
174195
|
+
variant: "smallText2",
|
|
174196
|
+
htmlFor: "reviewer-search",
|
|
174197
|
+
children: "Add a user or team"
|
|
174198
|
+
}
|
|
174199
|
+
),
|
|
174200
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
174201
|
+
UserSearchBoxV2,
|
|
174202
|
+
{
|
|
174203
|
+
value: null,
|
|
174204
|
+
inputId: "reviewer-search",
|
|
174205
|
+
placeholder: "Username, name (first and last) or team name.",
|
|
174206
|
+
onChange: (id2) => addResourceAccessItem(id2)
|
|
174207
|
+
}
|
|
174208
|
+
)
|
|
174209
|
+
] })
|
|
174210
|
+
] })
|
|
174211
|
+
] });
|
|
174212
|
+
}
|
|
174087
174213
|
const textSx = {
|
|
174088
174214
|
variant: "body1",
|
|
174089
174215
|
lineHeight: "20px",
|
|
174090
174216
|
color: "grey.800"
|
|
174091
174217
|
};
|
|
174092
174218
|
const EMPTY_RESOURCE_ACCESS_LIST_TEXT = "Only ACT has permissions on this AR.";
|
|
174093
|
-
const
|
|
174219
|
+
const availablePermissionLevels = [
|
|
174220
|
+
"CAN_REVIEW_SUBMISSIONS",
|
|
174221
|
+
"IS_EXEMPTION_ELIGIBLE",
|
|
174222
|
+
"CAN_REVIEW_SUBMISSIONS_AND_IS_EXEMPTION_ELIGIBLE"
|
|
174223
|
+
];
|
|
174094
174224
|
const AccessRequirementAclEditor = React$2.forwardRef(
|
|
174095
174225
|
function AccessRequirementAclEditor2(props, ref2) {
|
|
174096
174226
|
const { accessRequirementId, onSaveComplete } = props;
|
|
174097
174227
|
const [error2, setError] = React$2.useState(null);
|
|
174098
|
-
const [resourceAccessList, setResourceAccessList] = React$2.useState([]);
|
|
174099
174228
|
const onMutationSuccess = () => {
|
|
174100
174229
|
setError(null);
|
|
174101
174230
|
onSaveComplete(true);
|
|
@@ -174108,11 +174237,21 @@ dl_list_file_entities = syn.get_download_list()`;
|
|
|
174108
174237
|
// Infinite staleTime ensures this won't get re-fetched unless explicitly invalidated by the mutation
|
|
174109
174238
|
staleTime: Infinity
|
|
174110
174239
|
});
|
|
174240
|
+
const {
|
|
174241
|
+
resourceAccessList,
|
|
174242
|
+
setResourceAccessList,
|
|
174243
|
+
addResourceAccessItem,
|
|
174244
|
+
updateResourceAccessItem,
|
|
174245
|
+
removeResourceAccessItem
|
|
174246
|
+
} = useUpdateAcl({
|
|
174247
|
+
onChange: () => setError(null),
|
|
174248
|
+
onError: setError
|
|
174249
|
+
});
|
|
174111
174250
|
React$2.useEffect(() => {
|
|
174112
174251
|
if (originalAcl) {
|
|
174113
174252
|
setResourceAccessList(originalAcl.resourceAccess);
|
|
174114
174253
|
}
|
|
174115
|
-
}, [originalAcl]);
|
|
174254
|
+
}, [originalAcl, setResourceAccessList]);
|
|
174116
174255
|
const { mutate: deleteAcl } = useDeleteAccessRequirementACL({
|
|
174117
174256
|
onSuccess: () => onMutationSuccess(),
|
|
174118
174257
|
onError: (error22) => onMutationError(error22)
|
|
@@ -174159,42 +174298,6 @@ dl_list_file_entities = syn.get_download_list()`;
|
|
|
174159
174298
|
updateAcl
|
|
174160
174299
|
]
|
|
174161
174300
|
);
|
|
174162
|
-
const addResourceAccessItem = (newReviewerId) => {
|
|
174163
|
-
if (newReviewerId) {
|
|
174164
|
-
const alreadyReviewer = resourceAccessList.some(
|
|
174165
|
-
(resourceAccess) => resourceAccess.principalId === Number(newReviewerId)
|
|
174166
|
-
);
|
|
174167
|
-
if (alreadyReviewer) {
|
|
174168
|
-
setError(REVIEWER_ALREADY_ADDED_ERROR_MESSAGE);
|
|
174169
|
-
} else {
|
|
174170
|
-
const newResourceAccess = {
|
|
174171
|
-
principalId: Number(newReviewerId),
|
|
174172
|
-
accessType: [ACCESS_TYPE.REVIEW_SUBMISSIONS]
|
|
174173
|
-
};
|
|
174174
|
-
const updatedResourceAccessList = [
|
|
174175
|
-
...resourceAccessList,
|
|
174176
|
-
newResourceAccess
|
|
174177
|
-
];
|
|
174178
|
-
setResourceAccessList(updatedResourceAccessList);
|
|
174179
|
-
}
|
|
174180
|
-
} else {
|
|
174181
|
-
setError(null);
|
|
174182
|
-
}
|
|
174183
|
-
};
|
|
174184
|
-
const updateResourceAccessItem = (principalId, accessType) => {
|
|
174185
|
-
const updatedResourceAccessList = resourceAccessList.map(
|
|
174186
|
-
(resourceAccess) => {
|
|
174187
|
-
return resourceAccess.principalId === principalId ? { ...resourceAccess, accessType } : resourceAccess;
|
|
174188
|
-
}
|
|
174189
|
-
);
|
|
174190
|
-
setResourceAccessList(updatedResourceAccessList);
|
|
174191
|
-
};
|
|
174192
|
-
const removeResourceAccessItem = (principalId) => {
|
|
174193
|
-
const updatedResourceAccessList = resourceAccessList.filter(
|
|
174194
|
-
(raListItem) => raListItem.principalId !== principalId
|
|
174195
|
-
);
|
|
174196
|
-
setResourceAccessList(updatedResourceAccessList);
|
|
174197
|
-
};
|
|
174198
174301
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(Stack$6, { gap: "20px", direction: "column", children: [
|
|
174199
174302
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { children: [
|
|
174200
174303
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "headline3", mb: "10px", children: "Guide to AR permissions" }),
|
|
@@ -174208,56 +174311,18 @@ dl_list_file_entities = syn.get_download_list()`;
|
|
|
174208
174311
|
] }),
|
|
174209
174312
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { sx: { ...textSx, color: "grey.900" }, children: "ACT members always retain the ability to review or modify Access Requirements." })
|
|
174210
174313
|
] }),
|
|
174211
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
174212
|
-
|
|
174213
|
-
|
|
174214
|
-
|
|
174215
|
-
|
|
174216
|
-
|
|
174217
|
-
|
|
174218
|
-
|
|
174219
|
-
|
|
174220
|
-
|
|
174221
|
-
|
|
174222
|
-
|
|
174223
|
-
),
|
|
174224
|
-
onRemove: () => removeResourceAccessItem(resourceAccess.principalId)
|
|
174225
|
-
},
|
|
174226
|
-
resourceAccess.principalId
|
|
174227
|
-
);
|
|
174228
|
-
}) })
|
|
174229
|
-
] }),
|
|
174230
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { children: [
|
|
174231
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "headline3", mb: "10px", children: "Add More" }),
|
|
174232
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
174233
|
-
Typography,
|
|
174234
|
-
{
|
|
174235
|
-
sx: { ...textSx, fontStyle: "italic", color: "grey.900" },
|
|
174236
|
-
mb: "20px",
|
|
174237
|
-
children: "Search for a username or team to add. You can search by username, first or last names, or team name"
|
|
174238
|
-
}
|
|
174239
|
-
),
|
|
174240
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { children: [
|
|
174241
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
174242
|
-
Typography,
|
|
174243
|
-
{
|
|
174244
|
-
component: "label",
|
|
174245
|
-
variant: "smallText2",
|
|
174246
|
-
htmlFor: "reviewer-search",
|
|
174247
|
-
children: "Select a reviewer"
|
|
174248
|
-
}
|
|
174249
|
-
),
|
|
174250
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
174251
|
-
UserSearchBoxV2,
|
|
174252
|
-
{
|
|
174253
|
-
inputId: "reviewer-search",
|
|
174254
|
-
placeholder: "Username, name (first and last) or team name.",
|
|
174255
|
-
onChange: addResourceAccessItem
|
|
174256
|
-
}
|
|
174257
|
-
)
|
|
174258
|
-
] })
|
|
174259
|
-
] })
|
|
174260
|
-
] }),
|
|
174314
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
174315
|
+
AclEditor,
|
|
174316
|
+
{
|
|
174317
|
+
resourceAccessList,
|
|
174318
|
+
availablePermissionLevels,
|
|
174319
|
+
isLoading: isLoadingOriginalAcl,
|
|
174320
|
+
emptyText: EMPTY_RESOURCE_ACCESS_LIST_TEXT,
|
|
174321
|
+
addResourceAccessItem,
|
|
174322
|
+
updateResourceAccessItem,
|
|
174323
|
+
removeResourceAccessItem
|
|
174324
|
+
}
|
|
174325
|
+
),
|
|
174261
174326
|
error2 && /* @__PURE__ */ jsxRuntimeExports.jsx(Alert, { severity: "error", children: error2 })
|
|
174262
174327
|
] });
|
|
174263
174328
|
}
|