synapse-react-client 3.1.37 → 3.1.38
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.d.ts +2 -1
- package/dist/index.js +216 -160
- package/dist/index.mjs +611 -555
- package/dist/umd/synapse-react-client.development.js +228 -172
- package/dist/umd/synapse-react-client.development.js.map +3 -3
- package/dist/umd/synapse-react-client.production.min.js +74 -74
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -39399,6 +39399,7 @@ function DataAccessRequestAccessorsEditor(props) {
|
|
|
39399
39399
|
/* @__PURE__ */ import_react135.default.createElement(IconSvg_default, { icon: "clear" })
|
|
39400
39400
|
),
|
|
39401
39401
|
// Renewal/Revoke data access, only display if isRenewal is true
|
|
39402
|
+
// TODO: It's possible to that the accessors list is in an illegal state with no way to recover -- see PLFM-7893
|
|
39402
39403
|
isRenewal && user?.ownerId !== ac.userId && ac.type !== "GAIN_ACCESS" /* GAIN_ACCESS */ && /* @__PURE__ */ import_react135.default.createElement(import_react135.default.Fragment, null, /* @__PURE__ */ import_react135.default.createElement(
|
|
39403
39404
|
RadioGroup,
|
|
39404
39405
|
{
|
|
@@ -39431,7 +39432,8 @@ var FileUpload = (props) => {
|
|
|
39431
39432
|
id,
|
|
39432
39433
|
buttonProps = { variant: "contained" },
|
|
39433
39434
|
label = "Browse...",
|
|
39434
|
-
|
|
39435
|
+
onUploadStart,
|
|
39436
|
+
onComplete
|
|
39435
39437
|
} = props;
|
|
39436
39438
|
const { accessToken } = useSynapseContext();
|
|
39437
39439
|
const hiddenFileInput = import_react136.default.useRef(null);
|
|
@@ -39442,6 +39444,9 @@ var FileUpload = (props) => {
|
|
|
39442
39444
|
};
|
|
39443
39445
|
const changeHandler = async (e) => {
|
|
39444
39446
|
if (e.target.files && e.target.files.length > 0) {
|
|
39447
|
+
if (onUploadStart) {
|
|
39448
|
+
onUploadStart();
|
|
39449
|
+
}
|
|
39445
39450
|
const file = e.target.files[0];
|
|
39446
39451
|
try {
|
|
39447
39452
|
const resp = await uploadFile(
|
|
@@ -39449,16 +39454,16 @@ var FileUpload = (props) => {
|
|
|
39449
39454
|
file.name,
|
|
39450
39455
|
file
|
|
39451
39456
|
);
|
|
39452
|
-
if (
|
|
39453
|
-
|
|
39457
|
+
if (onComplete) {
|
|
39458
|
+
onComplete({
|
|
39454
39459
|
success: true,
|
|
39455
39460
|
resp
|
|
39456
39461
|
});
|
|
39457
39462
|
}
|
|
39458
39463
|
} catch (e2) {
|
|
39459
39464
|
console.log("FileUpload: fail to upload file", e2);
|
|
39460
|
-
if (
|
|
39461
|
-
|
|
39465
|
+
if (onComplete) {
|
|
39466
|
+
onComplete({
|
|
39462
39467
|
success: false,
|
|
39463
39468
|
error: e2
|
|
39464
39469
|
});
|
|
@@ -39494,16 +39499,12 @@ function DirectDownloadButton(props) {
|
|
|
39494
39499
|
includeFileHandles: false,
|
|
39495
39500
|
includePreviewPreSignedURLs: false
|
|
39496
39501
|
};
|
|
39497
|
-
|
|
39498
|
-
|
|
39499
|
-
|
|
39500
|
-
|
|
39501
|
-
|
|
39502
|
-
|
|
39503
|
-
window.open(preSignedURL);
|
|
39504
|
-
}
|
|
39505
|
-
} catch (e) {
|
|
39506
|
-
console.log("Fail to get file download link", e);
|
|
39502
|
+
const file = await getFiles(batchFileRequest, accessToken);
|
|
39503
|
+
const preSignedURL = file.requestedFiles[0].preSignedURL;
|
|
39504
|
+
if (!preSignedURL) {
|
|
39505
|
+
console.log("Fail to get file download link");
|
|
39506
|
+
} else {
|
|
39507
|
+
window.open(preSignedURL);
|
|
39507
39508
|
}
|
|
39508
39509
|
};
|
|
39509
39510
|
return /* @__PURE__ */ import_react137.default.createElement(
|
|
@@ -39528,8 +39529,10 @@ function UploadDocumentField(props) {
|
|
|
39528
39529
|
id,
|
|
39529
39530
|
documentName,
|
|
39530
39531
|
isMultiFileUpload = false,
|
|
39531
|
-
onClearAttachment
|
|
39532
|
+
onClearAttachment,
|
|
39533
|
+
isLoading = false
|
|
39532
39534
|
} = props;
|
|
39535
|
+
const [isUploading, setIsUploading] = (0, import_react138.useState)(false);
|
|
39533
39536
|
const { data: fileData } = useGetFileBatch(
|
|
39534
39537
|
{
|
|
39535
39538
|
includeFileHandles: true,
|
|
@@ -39554,9 +39557,14 @@ function UploadDocumentField(props) {
|
|
|
39554
39557
|
FileUpload_default,
|
|
39555
39558
|
{
|
|
39556
39559
|
id: `${id}-upload`,
|
|
39557
|
-
|
|
39560
|
+
onUploadStart: () => setIsUploading(true),
|
|
39561
|
+
onComplete: (res) => {
|
|
39562
|
+
setIsUploading(false);
|
|
39563
|
+
uploadCallback(res);
|
|
39564
|
+
},
|
|
39558
39565
|
label: `Upload ${documentName}`,
|
|
39559
39566
|
buttonProps: {
|
|
39567
|
+
disabled: isLoading,
|
|
39560
39568
|
variant: "outlined",
|
|
39561
39569
|
endIcon: /* @__PURE__ */ import_react138.default.createElement(IconSvg_default, { icon: "upload", wrap: false })
|
|
39562
39570
|
}
|
|
@@ -39590,7 +39598,16 @@ function UploadDocumentField(props) {
|
|
|
39590
39598
|
},
|
|
39591
39599
|
/* @__PURE__ */ import_react138.default.createElement(IconSvg_default, { icon: "clear" })
|
|
39592
39600
|
));
|
|
39593
|
-
})
|
|
39601
|
+
}),
|
|
39602
|
+
isUploading && /* @__PURE__ */ import_react138.default.createElement(
|
|
39603
|
+
Button_default,
|
|
39604
|
+
{
|
|
39605
|
+
disabled: true,
|
|
39606
|
+
variant: "text",
|
|
39607
|
+
endIcon: /* @__PURE__ */ import_react138.default.createElement(IconSvg_default, { icon: "download", wrap: false })
|
|
39608
|
+
},
|
|
39609
|
+
"Uploading..."
|
|
39610
|
+
)
|
|
39594
39611
|
);
|
|
39595
39612
|
}
|
|
39596
39613
|
|
|
@@ -39639,6 +39656,23 @@ function DocumentTemplate(props) {
|
|
|
39639
39656
|
}
|
|
39640
39657
|
|
|
39641
39658
|
// src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm.tsx
|
|
39659
|
+
var import_utils148 = require("@rjsf/utils");
|
|
39660
|
+
function AccessorRequirementHelpText(props) {
|
|
39661
|
+
const { managedACTAccessRequirement } = props;
|
|
39662
|
+
let link = "";
|
|
39663
|
+
let msg = "";
|
|
39664
|
+
if (managedACTAccessRequirement.isCertifiedUserRequired && managedACTAccessRequirement.isValidatedProfileRequired) {
|
|
39665
|
+
link = "https://help.synapse.org/docs/User-Types.2007072795.html";
|
|
39666
|
+
msg = "All data requesters must be certified users and have a validated user profile.";
|
|
39667
|
+
} else if (managedACTAccessRequirement.isCertifiedUserRequired) {
|
|
39668
|
+
link = "https://help.synapse.org/docs/User-Types.2007072795.html#UserAccountTiers-CertifiedUsers";
|
|
39669
|
+
msg = "All data requesters must be a certified user.";
|
|
39670
|
+
} else if (managedACTAccessRequirement.isValidatedProfileRequired) {
|
|
39671
|
+
link = "https://help.synapse.org/docs/User-Types.2007072795.html#UserAccountTiers-ValidatedUsers";
|
|
39672
|
+
msg = "All data requesters must have a validated user profile.";
|
|
39673
|
+
}
|
|
39674
|
+
return link && msg ? /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, managedACTAccessRequirement.isDUCRequired ? /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, "This list should match those listed on your DUC.", /* @__PURE__ */ import_react140.default.createElement("br", null)) : "", msg, " ", /* @__PURE__ */ import_react140.default.createElement(Link_default, { href: link, target: "_blank", rel: "noreferrer" }, "Learn more")) : /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null);
|
|
39675
|
+
}
|
|
39642
39676
|
function DataAccessRequestAccessorsFilesForm(props) {
|
|
39643
39677
|
const {
|
|
39644
39678
|
onSubmissionCreated,
|
|
@@ -39647,45 +39681,19 @@ function DataAccessRequestAccessorsFilesForm(props) {
|
|
|
39647
39681
|
researchProjectId,
|
|
39648
39682
|
onCancel
|
|
39649
39683
|
} = props;
|
|
39650
|
-
const {
|
|
39684
|
+
const { accessToken } = useSynapseContext();
|
|
39685
|
+
const isLoggedIn = Boolean(accessToken);
|
|
39686
|
+
const { data: user } = useGetCurrentUserProfile({ enabled: isLoggedIn });
|
|
39651
39687
|
const [alert2, setAlert] = (0, import_react140.useState)();
|
|
39652
|
-
const [
|
|
39653
|
-
|
|
39654
|
-
|
|
39655
|
-
|
|
39688
|
+
const [accessorChanges, setAccessorChanges] = (0, import_react140.useState)();
|
|
39689
|
+
const [summaryOfUse, setSummaryOfUse] = (0, import_react140.useState)();
|
|
39690
|
+
const [publication, setPublication] = (0, import_react140.useState)();
|
|
39691
|
+
const { data: dataAccessRequest, isLoading: isLoadingGetDataAccessRequest } = useGetDataAccessRequestForUpdate(String(managedACTAccessRequirement.id), {
|
|
39692
|
+
enabled: isLoggedIn,
|
|
39656
39693
|
// Infinite staleTime ensures this won't get re-fetched unless explicitly invalidated by the mutation
|
|
39657
39694
|
staleTime: Infinity,
|
|
39658
|
-
|
|
39659
|
-
|
|
39660
|
-
const currentUserWithGainAccess = {
|
|
39661
|
-
userId: user.ownerId,
|
|
39662
|
-
type: isRenewal2 ? "RENEW_ACCESS" /* RENEW_ACCESS */ : "GAIN_ACCESS" /* GAIN_ACCESS */
|
|
39663
|
-
};
|
|
39664
|
-
if (!data.accessorChanges) {
|
|
39665
|
-
data.accessorChanges = [currentUserWithGainAccess];
|
|
39666
|
-
} else {
|
|
39667
|
-
data.accessorChanges = [
|
|
39668
|
-
currentUserWithGainAccess,
|
|
39669
|
-
...data.accessorChanges
|
|
39670
|
-
];
|
|
39671
|
-
}
|
|
39672
|
-
const seen = /* @__PURE__ */ new Set();
|
|
39673
|
-
data.accessorChanges = data.accessorChanges.filter((accessorChange) => {
|
|
39674
|
-
return seen.has(accessorChange.userId) ? false : seen.add(accessorChange.userId);
|
|
39675
|
-
});
|
|
39676
|
-
data.researchProjectId = researchProjectId;
|
|
39677
|
-
return data;
|
|
39678
|
-
},
|
|
39679
|
-
onSuccess: (data) => {
|
|
39680
|
-
setAlert(void 0);
|
|
39681
|
-
setDataAccessRequest(data);
|
|
39682
|
-
},
|
|
39683
|
-
onError: (err) => {
|
|
39684
|
-
setAlert({
|
|
39685
|
-
key: "error",
|
|
39686
|
-
message: err.reason
|
|
39687
|
-
});
|
|
39688
|
-
}
|
|
39695
|
+
// This call should never fail, so if we run into an error, throwing to an error boundary is acceptable
|
|
39696
|
+
useErrorBoundary: true
|
|
39689
39697
|
});
|
|
39690
39698
|
const isRenewal = dataAccessRequest?.concreteType === "org.sagebionetworks.repo.model.dataaccess.Renewal";
|
|
39691
39699
|
function onError(e) {
|
|
@@ -39695,18 +39703,87 @@ function DataAccessRequestAccessorsFilesForm(props) {
|
|
|
39695
39703
|
message: getErrorMessage(e.reason)
|
|
39696
39704
|
});
|
|
39697
39705
|
}
|
|
39698
|
-
const { mutate: submit } = useSubmitDataAccessRequest({
|
|
39706
|
+
const { mutate: submit, isLoading: isLoadingSubmitDataAccessRequest } = useSubmitDataAccessRequest({
|
|
39699
39707
|
onSuccess: () => {
|
|
39700
39708
|
onSubmissionCreated();
|
|
39701
39709
|
},
|
|
39702
39710
|
onError
|
|
39703
39711
|
});
|
|
39704
|
-
const {
|
|
39712
|
+
const {
|
|
39713
|
+
mutateAsync: updateRequestAsync,
|
|
39714
|
+
isLoading: isLoadingUpdateDataAccessRequest
|
|
39715
|
+
} = useUpdateDataAccessRequest({
|
|
39705
39716
|
onError
|
|
39706
39717
|
});
|
|
39718
|
+
const isLoading = isLoadingGetDataAccessRequest || isLoadingUpdateDataAccessRequest || isLoadingSubmitDataAccessRequest;
|
|
39719
|
+
(0, import_react140.useEffect)(() => {
|
|
39720
|
+
if (dataAccessRequest && user) {
|
|
39721
|
+
let shouldUpdate = false;
|
|
39722
|
+
if (!dataAccessRequest.researchProjectId) {
|
|
39723
|
+
dataAccessRequest.researchProjectId = researchProjectId;
|
|
39724
|
+
shouldUpdate = true;
|
|
39725
|
+
}
|
|
39726
|
+
const currentUserWithGainAccess = {
|
|
39727
|
+
userId: user.ownerId,
|
|
39728
|
+
type: isRenewal ? "RENEW_ACCESS" /* RENEW_ACCESS */ : "GAIN_ACCESS" /* GAIN_ACCESS */
|
|
39729
|
+
};
|
|
39730
|
+
if (!dataAccessRequest.accessorChanges || !dataAccessRequest.accessorChanges.find(
|
|
39731
|
+
(item) => (0, import_utils148.deepEquals)(item, currentUserWithGainAccess)
|
|
39732
|
+
)) {
|
|
39733
|
+
dataAccessRequest.accessorChanges = [
|
|
39734
|
+
currentUserWithGainAccess,
|
|
39735
|
+
...dataAccessRequest.accessorChanges || []
|
|
39736
|
+
];
|
|
39737
|
+
shouldUpdate = true;
|
|
39738
|
+
}
|
|
39739
|
+
const seen = /* @__PURE__ */ new Set();
|
|
39740
|
+
const uniqueAccessorChanges = dataAccessRequest.accessorChanges.filter(
|
|
39741
|
+
(accessorChange) => {
|
|
39742
|
+
return seen.has(accessorChange.userId) ? false : seen.add(accessorChange.userId);
|
|
39743
|
+
}
|
|
39744
|
+
);
|
|
39745
|
+
if (uniqueAccessorChanges.length !== dataAccessRequest.accessorChanges.length) {
|
|
39746
|
+
dataAccessRequest.accessorChanges = uniqueAccessorChanges;
|
|
39747
|
+
shouldUpdate = true;
|
|
39748
|
+
}
|
|
39749
|
+
if (shouldUpdate) {
|
|
39750
|
+
updateRequestAsync(dataAccessRequest);
|
|
39751
|
+
}
|
|
39752
|
+
}
|
|
39753
|
+
}, [
|
|
39754
|
+
dataAccessRequest,
|
|
39755
|
+
isRenewal,
|
|
39756
|
+
researchProjectId,
|
|
39757
|
+
updateRequestAsync,
|
|
39758
|
+
user
|
|
39759
|
+
]);
|
|
39760
|
+
(0, import_react140.useEffect)(() => {
|
|
39761
|
+
if (dataAccessRequest) {
|
|
39762
|
+
if (dataAccessRequest.accessorChanges && accessorChanges == void 0) {
|
|
39763
|
+
setAccessorChanges(dataAccessRequest.accessorChanges);
|
|
39764
|
+
}
|
|
39765
|
+
if (isRenewal && dataAccessRequest.publication && publication == void 0) {
|
|
39766
|
+
setPublication(dataAccessRequest.publication);
|
|
39767
|
+
}
|
|
39768
|
+
if (isRenewal && dataAccessRequest.summaryOfUse && summaryOfUse == void 0) {
|
|
39769
|
+
setSummaryOfUse(dataAccessRequest.summaryOfUse);
|
|
39770
|
+
}
|
|
39771
|
+
}
|
|
39772
|
+
}, [dataAccessRequest]);
|
|
39773
|
+
function getDataAccessRequestWithLocalState() {
|
|
39774
|
+
return {
|
|
39775
|
+
...dataAccessRequest,
|
|
39776
|
+
// append local state to the request
|
|
39777
|
+
accessorChanges,
|
|
39778
|
+
publication,
|
|
39779
|
+
summaryOfUse
|
|
39780
|
+
};
|
|
39781
|
+
}
|
|
39707
39782
|
async function handleSubmit() {
|
|
39708
39783
|
if (dataAccessRequest) {
|
|
39709
|
-
const requestObject = await updateRequestAsync(
|
|
39784
|
+
const requestObject = await updateRequestAsync(
|
|
39785
|
+
getDataAccessRequestWithLocalState()
|
|
39786
|
+
);
|
|
39710
39787
|
submit({
|
|
39711
39788
|
request: {
|
|
39712
39789
|
requestId: requestObject.id,
|
|
@@ -39722,41 +39799,30 @@ function DataAccessRequestAccessorsFilesForm(props) {
|
|
|
39722
39799
|
return /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, /* @__PURE__ */ import_react140.default.createElement("strong", null, "Sorry, there is an error in submitting your request."), /* @__PURE__ */ import_react140.default.createElement("br", null), reason);
|
|
39723
39800
|
};
|
|
39724
39801
|
const onAccessorChange = (updater) => {
|
|
39725
|
-
|
|
39726
|
-
...req,
|
|
39727
|
-
// Copy the array so the caller doesn't have to worry about immutability
|
|
39728
|
-
accessorChanges: [...updater(req.accessorChanges || [])]
|
|
39729
|
-
}));
|
|
39802
|
+
setAccessorChanges([...updater(accessorChanges || [])]);
|
|
39730
39803
|
};
|
|
39731
39804
|
const onClearAttachment = (fid) => {
|
|
39732
|
-
|
|
39733
|
-
|
|
39734
|
-
|
|
39735
|
-
...req,
|
|
39736
|
-
attachments: req.attachments?.filter((item) => item !== fid)
|
|
39737
|
-
};
|
|
39738
|
-
}
|
|
39739
|
-
return req;
|
|
39805
|
+
updateRequestAsync({
|
|
39806
|
+
...dataAccessRequest,
|
|
39807
|
+
attachments: dataAccessRequest.attachments?.filter((item) => item !== fid)
|
|
39740
39808
|
});
|
|
39741
39809
|
};
|
|
39742
39810
|
const uploadCallback = (data, context) => {
|
|
39743
39811
|
if (data.resp && data.success) {
|
|
39744
39812
|
const uploadResponse = data.resp;
|
|
39745
39813
|
if (context === "attachments") {
|
|
39746
|
-
|
|
39747
|
-
|
|
39748
|
-
|
|
39749
|
-
attachments
|
|
39750
|
-
|
|
39751
|
-
|
|
39752
|
-
]
|
|
39753
|
-
};
|
|
39814
|
+
updateRequestAsync({
|
|
39815
|
+
...dataAccessRequest,
|
|
39816
|
+
attachments: [
|
|
39817
|
+
...dataAccessRequest.attachments || [],
|
|
39818
|
+
uploadResponse.fileHandleId
|
|
39819
|
+
]
|
|
39754
39820
|
});
|
|
39755
39821
|
} else {
|
|
39756
|
-
|
|
39757
|
-
...
|
|
39822
|
+
updateRequestAsync({
|
|
39823
|
+
...dataAccessRequest,
|
|
39758
39824
|
[context]: uploadResponse.fileHandleId
|
|
39759
|
-
})
|
|
39825
|
+
});
|
|
39760
39826
|
}
|
|
39761
39827
|
} else if (!data.success && data.error) {
|
|
39762
39828
|
console.log(
|
|
@@ -39769,46 +39835,24 @@ function DataAccessRequestAccessorsFilesForm(props) {
|
|
|
39769
39835
|
});
|
|
39770
39836
|
}
|
|
39771
39837
|
};
|
|
39772
|
-
const handleTextAreaInputChange = (e, key) => {
|
|
39773
|
-
const value = e.target.value;
|
|
39774
|
-
setDataAccessRequest((req) => ({
|
|
39775
|
-
...req,
|
|
39776
|
-
[key]: value
|
|
39777
|
-
}));
|
|
39778
|
-
};
|
|
39779
|
-
const AccessorRequirementHelpText = () => {
|
|
39780
|
-
let link = "";
|
|
39781
|
-
let msg = "";
|
|
39782
|
-
if (managedACTAccessRequirement.isCertifiedUserRequired && managedACTAccessRequirement.isValidatedProfileRequired) {
|
|
39783
|
-
link = "https://help.synapse.org/docs/User-Types.2007072795.html";
|
|
39784
|
-
msg = "All data requesters must be certified users and have a validated user profile.";
|
|
39785
|
-
} else if (managedACTAccessRequirement.isCertifiedUserRequired) {
|
|
39786
|
-
link = "https://help.synapse.org/docs/User-Types.2007072795.html#UserAccountTiers-CertifiedUsers";
|
|
39787
|
-
msg = "All data requesters must be a certified user.";
|
|
39788
|
-
} else if (managedACTAccessRequirement.isValidatedProfileRequired) {
|
|
39789
|
-
link = "https://help.synapse.org/docs/User-Types.2007072795.html#UserAccountTiers-ValidatedUsers";
|
|
39790
|
-
msg = "All data requesters must have a validated user profile.";
|
|
39791
|
-
}
|
|
39792
|
-
return link && msg ? /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, managedACTAccessRequirement.isDUCRequired ? /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, "This list should match those listed on your DUC.", /* @__PURE__ */ import_react140.default.createElement("br", null)) : "", msg, " ", /* @__PURE__ */ import_react140.default.createElement(Link_default, { href: link, target: "_blank", rel: "noreferrer" }, "Learn more")) : /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null);
|
|
39793
|
-
};
|
|
39794
39838
|
const ducFileHandleAssociation = dataAccessRequest?.ducFileHandleId ? [
|
|
39795
39839
|
{
|
|
39796
39840
|
fileHandleId: dataAccessRequest?.ducFileHandleId,
|
|
39797
|
-
associateObjectType: "
|
|
39798
|
-
associateObjectId: String(
|
|
39841
|
+
associateObjectType: "DataAccessRequestAttachment" /* DataAccessRequestAttachment */,
|
|
39842
|
+
associateObjectId: String(dataAccessRequest.id)
|
|
39799
39843
|
}
|
|
39800
39844
|
] : [];
|
|
39801
39845
|
const irbFileHandleAssociation = dataAccessRequest?.irbFileHandleId ? [
|
|
39802
39846
|
{
|
|
39803
39847
|
fileHandleId: dataAccessRequest.irbFileHandleId,
|
|
39804
|
-
associateObjectType: "
|
|
39805
|
-
associateObjectId: String(
|
|
39848
|
+
associateObjectType: "DataAccessRequestAttachment" /* DataAccessRequestAttachment */,
|
|
39849
|
+
associateObjectId: String(dataAccessRequest.id)
|
|
39806
39850
|
}
|
|
39807
39851
|
] : [];
|
|
39808
39852
|
const attachmentFileHandleAssociations = (dataAccessRequest?.attachments || []).map((attachmentFileHandleId) => ({
|
|
39809
39853
|
fileHandleId: attachmentFileHandleId,
|
|
39810
|
-
associateObjectType: "
|
|
39811
|
-
associateObjectId: String(
|
|
39854
|
+
associateObjectType: "DataAccessRequestAttachment" /* DataAccessRequestAttachment */,
|
|
39855
|
+
associateObjectId: String(dataAccessRequest.id)
|
|
39812
39856
|
})) ?? [];
|
|
39813
39857
|
return /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, /* @__PURE__ */ import_react140.default.createElement(DialogTitle_default, null, /* @__PURE__ */ import_react140.default.createElement(Stack_default, { direction: "row", alignItems: "center", gap: "5px" }, "Request Access", /* @__PURE__ */ import_react140.default.createElement(Box_default, { sx: { flexGrow: 1 } }), /* @__PURE__ */ import_react140.default.createElement(IconButton_default, { onClick: props.onHide }, /* @__PURE__ */ import_react140.default.createElement(IconSvg_default, { icon: "close", wrap: false, sx: { color: "grey.700" } })))), /* @__PURE__ */ import_react140.default.createElement(DialogContent_default, null, /* @__PURE__ */ import_react140.default.createElement(
|
|
39814
39858
|
ManagedACTAccessRequirementFormWikiWrapper,
|
|
@@ -39826,13 +39870,18 @@ function DataAccessRequestAccessorsFilesForm(props) {
|
|
|
39826
39870
|
onSubmit: (e) => e.preventDefault()
|
|
39827
39871
|
},
|
|
39828
39872
|
/* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "body1", sx: { mb: 2 } }, "Please provide the information below to submit the request for access."),
|
|
39829
|
-
dataAccessRequest && /* @__PURE__ */ import_react140.default.createElement(
|
|
39873
|
+
dataAccessRequest && user && /* @__PURE__ */ import_react140.default.createElement(
|
|
39830
39874
|
DataAccessRequestAccessorsEditor,
|
|
39831
39875
|
{
|
|
39832
|
-
accessorChanges:
|
|
39876
|
+
accessorChanges: accessorChanges || [],
|
|
39833
39877
|
onChange: onAccessorChange,
|
|
39834
39878
|
isRenewal,
|
|
39835
|
-
helpText: /* @__PURE__ */ import_react140.default.createElement(
|
|
39879
|
+
helpText: /* @__PURE__ */ import_react140.default.createElement(
|
|
39880
|
+
AccessorRequirementHelpText,
|
|
39881
|
+
{
|
|
39882
|
+
managedACTAccessRequirement
|
|
39883
|
+
}
|
|
39884
|
+
)
|
|
39836
39885
|
}
|
|
39837
39886
|
),
|
|
39838
39887
|
(managedACTAccessRequirement?.isDUCRequired || managedACTAccessRequirement?.isIRBApprovalRequired || managedACTAccessRequirement?.areOtherAttachmentsRequired || isRenewal) && /* @__PURE__ */ import_react140.default.createElement(Divider_default, { sx: { my: 4 } }),
|
|
@@ -39848,56 +39897,61 @@ function DataAccessRequestAccessorsFilesForm(props) {
|
|
|
39848
39897
|
},
|
|
39849
39898
|
downloadButtonText: "Download DUC Template"
|
|
39850
39899
|
}
|
|
39851
|
-
), /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "headline3", sx: { mt: 4, mb: 2 } }, "Fill out and upload a Data Use Certificate"), /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "body1", sx: { my: 2 } }, "You must download and fill out a Data Use Certificate (DUC). Be sure to upload the completed DUC below once you've completed it."), /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "body1", component: "ol" }, /* @__PURE__ */ import_react140.default.createElement("li", null, "Download the DUC template file."), /* @__PURE__ */ import_react140.default.createElement("li", null, "Fill out the DUC template, following the instructions in the file."), /* @__PURE__ */ import_react140.default.createElement("li", null, "Upload the completed certificate using the button below:")), /* @__PURE__ */ import_react140.default.createElement(
|
|
39900
|
+
), /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "headline3", sx: { mt: 4, mb: 2 } }, "Fill out and upload a Data Use Certificate"), /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "body1", sx: { my: 2 } }, "You must download and fill out a Data Use Certificate (DUC). Be sure to upload the completed DUC below once you've completed it."), /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "body1", component: "ol" }, /* @__PURE__ */ import_react140.default.createElement("li", null, "Download the DUC template file."), /* @__PURE__ */ import_react140.default.createElement("li", null, "Fill out the DUC template, following the instructions in the file."), /* @__PURE__ */ import_react140.default.createElement("li", null, "Upload the completed certificate using the button below:")), /* @__PURE__ */ import_react140.default.createElement(SynapseErrorBoundary, null, /* @__PURE__ */ import_react140.default.createElement(
|
|
39852
39901
|
UploadDocumentField,
|
|
39853
39902
|
{
|
|
39854
39903
|
id: "duc",
|
|
39904
|
+
isLoading,
|
|
39855
39905
|
uploadCallback: (resp) => uploadCallback(resp, "ducFileHandleId"),
|
|
39856
39906
|
documentName: "Data Use Certificate",
|
|
39857
39907
|
fileHandleAssociations: ducFileHandleAssociation
|
|
39858
39908
|
}
|
|
39859
|
-
), (managedACTAccessRequirement?.isIRBApprovalRequired || managedACTAccessRequirement?.areOtherAttachmentsRequired || isRenewal) && /* @__PURE__ */ import_react140.default.createElement(Divider_default, { sx: { my: 4 } })),
|
|
39860
|
-
managedACTAccessRequirement?.isIRBApprovalRequired && /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "headline3", sx: { my: 2 } }, "IRB Approval"), /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "body1", sx: { my: 2 } }, "Upload a signed IRB letter on institutional letterhead. The letter must include the names of all the datasets requested, as well as the names of the data requesters above. Use the button below to upload the document."), /* @__PURE__ */ import_react140.default.createElement(
|
|
39909
|
+
)), (managedACTAccessRequirement?.isIRBApprovalRequired || managedACTAccessRequirement?.areOtherAttachmentsRequired || isRenewal) && /* @__PURE__ */ import_react140.default.createElement(Divider_default, { sx: { my: 4 } })),
|
|
39910
|
+
managedACTAccessRequirement?.isIRBApprovalRequired && /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "headline3", sx: { my: 2 } }, "IRB Approval"), /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "body1", sx: { my: 2 } }, "Upload a signed IRB letter on institutional letterhead. The letter must include the names of all the datasets requested, as well as the names of the data requesters above. Use the button below to upload the document."), /* @__PURE__ */ import_react140.default.createElement(SynapseErrorBoundary, null, /* @__PURE__ */ import_react140.default.createElement(
|
|
39861
39911
|
UploadDocumentField,
|
|
39862
39912
|
{
|
|
39863
39913
|
id: "irb",
|
|
39914
|
+
isLoading,
|
|
39864
39915
|
documentName: "IRB Approval Letter",
|
|
39865
39916
|
uploadCallback: (resp) => uploadCallback(resp, "irbFileHandleId"),
|
|
39866
39917
|
fileHandleAssociations: irbFileHandleAssociation
|
|
39867
39918
|
}
|
|
39868
|
-
), (managedACTAccessRequirement?.areOtherAttachmentsRequired || isRenewal) && /* @__PURE__ */ import_react140.default.createElement(Divider_default, { sx: { my: 4 } })),
|
|
39919
|
+
)), (managedACTAccessRequirement?.areOtherAttachmentsRequired || isRenewal) && /* @__PURE__ */ import_react140.default.createElement(Divider_default, { sx: { my: 4 } })),
|
|
39869
39920
|
/* Attachments */
|
|
39870
|
-
managedACTAccessRequirement?.areOtherAttachmentsRequired && /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "headline3", sx: { my: 2 } }, "Upload other required documents"), /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "body1", sx: { my: 2 } }, "You must upload other required documents. Please review the instructions to gain data access to determine which documents must also be uploaded."), /* @__PURE__ */ import_react140.default.createElement(
|
|
39921
|
+
managedACTAccessRequirement?.areOtherAttachmentsRequired && /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "headline3", sx: { my: 2 } }, "Upload other required documents"), /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "body1", sx: { my: 2 } }, "You must upload other required documents. Please review the instructions to gain data access to determine which documents must also be uploaded."), /* @__PURE__ */ import_react140.default.createElement(SynapseErrorBoundary, null, /* @__PURE__ */ import_react140.default.createElement(
|
|
39871
39922
|
UploadDocumentField,
|
|
39872
39923
|
{
|
|
39873
39924
|
id: "file-attachment",
|
|
39925
|
+
isLoading,
|
|
39874
39926
|
documentName: "Attachment",
|
|
39875
39927
|
uploadCallback: (res) => uploadCallback(res, "attachments"),
|
|
39876
39928
|
isMultiFileUpload: true,
|
|
39877
39929
|
fileHandleAssociations: attachmentFileHandleAssociations,
|
|
39878
39930
|
onClearAttachment
|
|
39879
39931
|
}
|
|
39880
|
-
), isRenewal && /* @__PURE__ */ import_react140.default.createElement(Divider_default, { sx: { my: 4 } })),
|
|
39932
|
+
)), isRenewal && /* @__PURE__ */ import_react140.default.createElement(Divider_default, { sx: { my: 4 } })),
|
|
39881
39933
|
// Publications & Summary of Use
|
|
39882
39934
|
isRenewal && /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, /* @__PURE__ */ import_react140.default.createElement(
|
|
39883
39935
|
TextField3,
|
|
39884
39936
|
{
|
|
39885
39937
|
id: "publications",
|
|
39886
39938
|
label: "Publication(s)",
|
|
39939
|
+
disabled: isLoadingSubmitDataAccessRequest,
|
|
39887
39940
|
multiline: true,
|
|
39888
39941
|
rows: 3,
|
|
39889
|
-
value:
|
|
39890
|
-
onChange: (e) =>
|
|
39942
|
+
value: publication,
|
|
39943
|
+
onChange: (e) => setPublication(e.target.value)
|
|
39891
39944
|
}
|
|
39892
39945
|
), /* @__PURE__ */ import_react140.default.createElement(
|
|
39893
39946
|
TextField3,
|
|
39894
39947
|
{
|
|
39895
39948
|
id: "summaryOfUse",
|
|
39896
39949
|
label: "Summary of use",
|
|
39897
|
-
value:
|
|
39950
|
+
value: summaryOfUse,
|
|
39951
|
+
disabled: isLoadingSubmitDataAccessRequest,
|
|
39898
39952
|
multiline: true,
|
|
39899
39953
|
rows: 3,
|
|
39900
|
-
onChange: (e) =>
|
|
39954
|
+
onChange: (e) => setSummaryOfUse(e.target.value)
|
|
39901
39955
|
}
|
|
39902
39956
|
))
|
|
39903
39957
|
)
|
|
@@ -39905,9 +39959,10 @@ function DataAccessRequestAccessorsFilesForm(props) {
|
|
|
39905
39959
|
Button_default,
|
|
39906
39960
|
{
|
|
39907
39961
|
variant: "outlined",
|
|
39962
|
+
disabled: isLoadingSubmitDataAccessRequest,
|
|
39908
39963
|
onClick: () => {
|
|
39909
39964
|
if (dataAccessRequest) {
|
|
39910
|
-
onCancel(
|
|
39965
|
+
onCancel(getDataAccessRequestWithLocalState());
|
|
39911
39966
|
}
|
|
39912
39967
|
}
|
|
39913
39968
|
},
|
|
@@ -39916,6 +39971,7 @@ function DataAccessRequestAccessorsFilesForm(props) {
|
|
|
39916
39971
|
Button_default,
|
|
39917
39972
|
{
|
|
39918
39973
|
variant: "contained",
|
|
39974
|
+
disabled: isLoadingSubmitDataAccessRequest,
|
|
39919
39975
|
onClick: () => {
|
|
39920
39976
|
handleSubmit();
|
|
39921
39977
|
}
|
|
@@ -52061,7 +52117,7 @@ var DateTimeWidget = ({
|
|
|
52061
52117
|
};
|
|
52062
52118
|
|
|
52063
52119
|
// src/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.tsx
|
|
52064
|
-
var
|
|
52120
|
+
var import_utils173 = require("@rjsf/utils");
|
|
52065
52121
|
var import_react315 = __toESM(require("react"));
|
|
52066
52122
|
var import_use_deep_compare_effect8 = require("use-deep-compare-effect");
|
|
52067
52123
|
function ObjectFieldTemplate(props) {
|
|
@@ -52079,13 +52135,13 @@ function ObjectFieldTemplate(props) {
|
|
|
52079
52135
|
title,
|
|
52080
52136
|
uiSchema
|
|
52081
52137
|
} = props;
|
|
52082
|
-
const options = (0,
|
|
52083
|
-
const TitleFieldTemplate = (0,
|
|
52138
|
+
const options = (0, import_utils173.getUiOptions)(uiSchema);
|
|
52139
|
+
const TitleFieldTemplate = (0, import_utils173.getTemplate)(
|
|
52084
52140
|
"TitleFieldTemplate",
|
|
52085
52141
|
registry,
|
|
52086
52142
|
options
|
|
52087
52143
|
);
|
|
52088
|
-
const DescriptionFieldTemplate2 = (0,
|
|
52144
|
+
const DescriptionFieldTemplate2 = (0, import_utils173.getTemplate)("DescriptionFieldTemplate", registry, options);
|
|
52089
52145
|
const previousSchemaDefinedProperties = (0, import_react315.useRef)(/* @__PURE__ */ new Set());
|
|
52090
52146
|
(0, import_use_deep_compare_effect8.useDeepCompareEffectNoCheck)(() => {
|
|
52091
52147
|
if ("properties" in schema && schema.properties) {
|
|
@@ -52093,7 +52149,7 @@ function ObjectFieldTemplate(props) {
|
|
|
52093
52149
|
const schemaDefinedProperties = new Set(
|
|
52094
52150
|
propertyKeys.filter((key) => {
|
|
52095
52151
|
const propertyObject = schema.properties[key];
|
|
52096
|
-
return !propertyObject[
|
|
52152
|
+
return !propertyObject[import_utils173.ADDITIONAL_PROPERTY_FLAG];
|
|
52097
52153
|
})
|
|
52098
52154
|
);
|
|
52099
52155
|
if (previousSchemaDefinedProperties.current != null) {
|
|
@@ -52144,7 +52200,7 @@ function ObjectFieldTemplate(props) {
|
|
|
52144
52200
|
registry,
|
|
52145
52201
|
schema
|
|
52146
52202
|
}
|
|
52147
|
-
), properties.map((prop) => prop.content), (0,
|
|
52203
|
+
), properties.map((prop) => prop.content), (0, import_utils173.canExpand)(schema, uiSchema, formData) && /* @__PURE__ */ import_react315.default.createElement(Tooltip_default, { title: "Add a new custom field", placement: "top" }, /* @__PURE__ */ import_react315.default.createElement(
|
|
52148
52204
|
Button_default,
|
|
52149
52205
|
{
|
|
52150
52206
|
sx: { my: 2 },
|
|
@@ -52182,7 +52238,7 @@ var import_validator_ajv82 = __toESM(require("@rjsf/validator-ajv8"));
|
|
|
52182
52238
|
// src/components/SchemaDrivenAnnotationEditor/field/CustomObjectField.tsx
|
|
52183
52239
|
var import_react317 = __toESM(require("react"));
|
|
52184
52240
|
var import_core3 = require("@rjsf/core");
|
|
52185
|
-
var
|
|
52241
|
+
var import_utils174 = require("@rjsf/utils");
|
|
52186
52242
|
function CustomObjectField(props) {
|
|
52187
52243
|
const {
|
|
52188
52244
|
fields: { ObjectField }
|
|
@@ -52190,11 +52246,11 @@ function CustomObjectField(props) {
|
|
|
52190
52246
|
(0, import_react317.useEffect)(() => {
|
|
52191
52247
|
const { schema, formData, onChange } = props;
|
|
52192
52248
|
const newFormData = { ...formData };
|
|
52193
|
-
if (schema[
|
|
52194
|
-
Object.entries(schema[
|
|
52249
|
+
if (schema[import_utils174.PROPERTIES_KEY]) {
|
|
52250
|
+
Object.entries(schema[import_utils174.PROPERTIES_KEY]).forEach(
|
|
52195
52251
|
([key, propertySchema]) => {
|
|
52196
52252
|
const data = newFormData[key];
|
|
52197
|
-
if (propertySchema[
|
|
52253
|
+
if (propertySchema[import_utils174.ADDITIONAL_PROPERTY_FLAG]) {
|
|
52198
52254
|
if (!Array.isArray(data)) {
|
|
52199
52255
|
newFormData[key] = convertToArray(data);
|
|
52200
52256
|
}
|
|
@@ -52205,7 +52261,7 @@ function CustomObjectField(props) {
|
|
|
52205
52261
|
}
|
|
52206
52262
|
}
|
|
52207
52263
|
);
|
|
52208
|
-
if (!(0,
|
|
52264
|
+
if (!(0, import_utils174.deepEquals)(formData, newFormData)) {
|
|
52209
52265
|
onChange(newFormData);
|
|
52210
52266
|
}
|
|
52211
52267
|
}
|
|
@@ -52306,20 +52362,20 @@ function ArrayFieldItemTemplate(props) {
|
|
|
52306
52362
|
}
|
|
52307
52363
|
|
|
52308
52364
|
// src/components/SchemaDrivenAnnotationEditor/template/ArrayFieldTemplate.tsx
|
|
52309
|
-
var
|
|
52365
|
+
var import_utils175 = require("@rjsf/utils");
|
|
52310
52366
|
var import_react319 = __toESM(require("react"));
|
|
52311
52367
|
var import_icons_material12 = require("@mui/icons-material");
|
|
52312
52368
|
function ArrayFieldTemplate(props) {
|
|
52313
52369
|
const { idSchema, uiSchema, items, registry, schema } = props;
|
|
52314
|
-
const uiOptions = (0,
|
|
52315
|
-
const ArrayFieldTitleTemplate2 = (0,
|
|
52316
|
-
const ArrayFieldDescriptionTemplate2 = (0,
|
|
52317
|
-
const ArrayFieldItemTemplate2 = (0,
|
|
52370
|
+
const uiOptions = (0, import_utils175.getUiOptions)(uiSchema);
|
|
52371
|
+
const ArrayFieldTitleTemplate2 = (0, import_utils175.getTemplate)("ArrayFieldTitleTemplate", registry, uiOptions);
|
|
52372
|
+
const ArrayFieldDescriptionTemplate2 = (0, import_utils175.getTemplate)("ArrayFieldDescriptionTemplate", registry, uiOptions);
|
|
52373
|
+
const ArrayFieldItemTemplate2 = (0, import_utils175.getTemplate)(
|
|
52318
52374
|
"ArrayFieldItemTemplate",
|
|
52319
52375
|
registry,
|
|
52320
52376
|
uiOptions
|
|
52321
52377
|
);
|
|
52322
|
-
const isAdditionalProperty = !!props.schema[
|
|
52378
|
+
const isAdditionalProperty = !!props.schema[import_utils175.ADDITIONAL_PROPERTY_FLAG];
|
|
52323
52379
|
const additionalPropertyContext = useAdditionalPropertyContext();
|
|
52324
52380
|
const [showDetails, setShowDetails] = (0, import_react319.useState)(false);
|
|
52325
52381
|
(0, import_react319.useEffect)(() => {
|
|
@@ -52380,7 +52436,7 @@ function ArrayFieldTemplate(props) {
|
|
|
52380
52436
|
var ArrayFieldTemplate_default = ArrayFieldTemplate;
|
|
52381
52437
|
|
|
52382
52438
|
// src/components/SchemaDrivenAnnotationEditor/template/WrapIfAdditionalTemplate.tsx
|
|
52383
|
-
var
|
|
52439
|
+
var import_utils176 = require("@rjsf/utils");
|
|
52384
52440
|
var import_react320 = __toESM(require("react"));
|
|
52385
52441
|
function WrapIfAdditionalTemplate(props) {
|
|
52386
52442
|
const {
|
|
@@ -52396,8 +52452,8 @@ function WrapIfAdditionalTemplate(props) {
|
|
|
52396
52452
|
registry
|
|
52397
52453
|
} = props;
|
|
52398
52454
|
const { translateString } = registry;
|
|
52399
|
-
const keyLabel = translateString(
|
|
52400
|
-
const additional =
|
|
52455
|
+
const keyLabel = translateString(import_utils176.TranslatableString.KeyLabel, [""]);
|
|
52456
|
+
const additional = import_utils176.ADDITIONAL_PROPERTY_FLAG in schema;
|
|
52401
52457
|
if (!additional) {
|
|
52402
52458
|
return /* @__PURE__ */ import_react320.default.createElement("div", { className: classNames }, children);
|
|
52403
52459
|
}
|
|
@@ -52423,7 +52479,7 @@ function WrapIfAdditionalTemplate(props) {
|
|
|
52423
52479
|
|
|
52424
52480
|
// src/components/SchemaDrivenAnnotationEditor/template/FieldTemplate.tsx
|
|
52425
52481
|
var import_react321 = __toESM(require("react"));
|
|
52426
|
-
var
|
|
52482
|
+
var import_utils177 = require("@rjsf/utils");
|
|
52427
52483
|
var import_icons_material13 = require("@mui/icons-material");
|
|
52428
52484
|
function FieldTemplate(props) {
|
|
52429
52485
|
const {
|
|
@@ -52440,8 +52496,8 @@ function FieldTemplate(props) {
|
|
|
52440
52496
|
uiSchema,
|
|
52441
52497
|
schema
|
|
52442
52498
|
} = props;
|
|
52443
|
-
const uiOptions = (0,
|
|
52444
|
-
const WrapIfAdditionalTemplate2 = (0,
|
|
52499
|
+
const uiOptions = (0, import_utils177.getUiOptions)(uiSchema);
|
|
52500
|
+
const WrapIfAdditionalTemplate2 = (0, import_utils177.getTemplate)("WrapIfAdditionalTemplate", registry, uiOptions);
|
|
52445
52501
|
const [showDetails, setShowDetails] = (0, import_react321.useState)(false);
|
|
52446
52502
|
if (hidden) {
|
|
52447
52503
|
return /* @__PURE__ */ import_react321.default.createElement("div", { className: "hidden" }, children);
|
|
@@ -52477,14 +52533,14 @@ function ArrayFieldTitleTemplate(props) {
|
|
|
52477
52533
|
var import_icons_material14 = require("@mui/icons-material");
|
|
52478
52534
|
var import_react323 = __toESM(require("react"));
|
|
52479
52535
|
var import_ContentCopy2 = __toESM(require("@mui/icons-material/ContentCopy"));
|
|
52480
|
-
var
|
|
52536
|
+
var import_utils178 = require("@rjsf/utils");
|
|
52481
52537
|
var buttonSx = { minWidth: "unset", width: "40px", height: "40px" };
|
|
52482
52538
|
function AddButton({ uiSchema, registry, ...props }) {
|
|
52483
52539
|
const { translateString } = registry;
|
|
52484
52540
|
return /* @__PURE__ */ import_react323.default.createElement(
|
|
52485
52541
|
Button_default,
|
|
52486
52542
|
{
|
|
52487
|
-
title: translateString(
|
|
52543
|
+
title: translateString(import_utils178.TranslatableString.AddItemButton),
|
|
52488
52544
|
...props,
|
|
52489
52545
|
color: "primary",
|
|
52490
52546
|
variant: "contained",
|
|
@@ -52515,7 +52571,7 @@ function IconButtonTemplate(props) {
|
|
|
52515
52571
|
return /* @__PURE__ */ import_react323.default.createElement(
|
|
52516
52572
|
IconButton_default,
|
|
52517
52573
|
{
|
|
52518
|
-
title: translateString(
|
|
52574
|
+
title: translateString(import_utils178.TranslatableString.RemoveButton),
|
|
52519
52575
|
...otherProps,
|
|
52520
52576
|
color: "default",
|
|
52521
52577
|
sx: buttonSx
|
|
@@ -52584,15 +52640,15 @@ function DescriptionFieldTemplate(props) {
|
|
|
52584
52640
|
|
|
52585
52641
|
// src/components/SchemaDrivenAnnotationEditor/template/ArrayFieldDescriptionTemplate.tsx
|
|
52586
52642
|
var import_react326 = __toESM(require("react"));
|
|
52587
|
-
var
|
|
52643
|
+
var import_utils179 = require("@rjsf/utils");
|
|
52588
52644
|
function ArrayFieldDescriptionTemplate(props) {
|
|
52589
52645
|
const { idSchema, description, registry, schema, uiSchema } = props;
|
|
52590
|
-
const options = (0,
|
|
52646
|
+
const options = (0, import_utils179.getUiOptions)(uiSchema, registry.globalUiOptions);
|
|
52591
52647
|
const { label: displayLabel } = options;
|
|
52592
52648
|
if (displayLabel === false) {
|
|
52593
52649
|
return null;
|
|
52594
52650
|
}
|
|
52595
|
-
const DescriptionFieldTemplate2 = (0,
|
|
52651
|
+
const DescriptionFieldTemplate2 = (0, import_utils179.getTemplate)("DescriptionFieldTemplate", registry, options);
|
|
52596
52652
|
const id = `${idSchema.$id}__description`;
|
|
52597
52653
|
return /* @__PURE__ */ import_react326.default.createElement(
|
|
52598
52654
|
DescriptionFieldTemplate2,
|
|
@@ -52608,7 +52664,7 @@ function ArrayFieldDescriptionTemplate(props) {
|
|
|
52608
52664
|
|
|
52609
52665
|
// src/components/SchemaDrivenAnnotationEditor/template/BaseInputTemplate.tsx
|
|
52610
52666
|
var import_react327 = __toESM(require("react"));
|
|
52611
|
-
var
|
|
52667
|
+
var import_utils180 = require("@rjsf/utils");
|
|
52612
52668
|
var TYPES_THAT_SHRINK_LABEL = ["date", "datetime-local", "file", "time"];
|
|
52613
52669
|
function BaseInputTemplate(props) {
|
|
52614
52670
|
const {
|
|
@@ -52638,14 +52694,14 @@ function BaseInputTemplate(props) {
|
|
|
52638
52694
|
...textFieldProps
|
|
52639
52695
|
} = props;
|
|
52640
52696
|
const hideLabel = true;
|
|
52641
|
-
const inputProps = (0,
|
|
52697
|
+
const inputProps = (0, import_utils180.getInputProps)(schema, type, options);
|
|
52642
52698
|
const { step, min, max, ...rest } = inputProps;
|
|
52643
52699
|
const otherProps = {
|
|
52644
52700
|
inputProps: {
|
|
52645
52701
|
step,
|
|
52646
52702
|
min,
|
|
52647
52703
|
max,
|
|
52648
|
-
...schema.examples ? { list: (0,
|
|
52704
|
+
...schema.examples ? { list: (0, import_utils180.examplesId)(id) } : void 0
|
|
52649
52705
|
},
|
|
52650
52706
|
...rest
|
|
52651
52707
|
};
|
|
@@ -52666,7 +52722,7 @@ function BaseInputTemplate(props) {
|
|
|
52666
52722
|
id,
|
|
52667
52723
|
name: id,
|
|
52668
52724
|
placeholder: derivedValuePlaceholder || placeholder,
|
|
52669
|
-
label: (0,
|
|
52725
|
+
label: (0, import_utils180.labelValue)(label || void 0, hideLabel, false),
|
|
52670
52726
|
autoFocus: autofocus,
|
|
52671
52727
|
required: false,
|
|
52672
52728
|
disabled: disabled || readonly,
|
|
@@ -52681,9 +52737,9 @@ function BaseInputTemplate(props) {
|
|
|
52681
52737
|
inputProps: {
|
|
52682
52738
|
"aria-label": id
|
|
52683
52739
|
},
|
|
52684
|
-
"aria-describedby": (0,
|
|
52740
|
+
"aria-describedby": (0, import_utils180.ariaDescribedByIds)(id, !!schema.examples)
|
|
52685
52741
|
}
|
|
52686
|
-
), Array.isArray(schema.examples) && /* @__PURE__ */ import_react327.default.createElement("datalist", { id: (0,
|
|
52742
|
+
), Array.isArray(schema.examples) && /* @__PURE__ */ import_react327.default.createElement("datalist", { id: (0, import_utils180.examplesId)(id) }, schema.examples.concat(
|
|
52687
52743
|
schema.default && !schema.examples.includes(schema.default) ? [schema.default] : []
|
|
52688
52744
|
).map((example) => {
|
|
52689
52745
|
return /* @__PURE__ */ import_react327.default.createElement("option", { key: example, value: example });
|
|
@@ -52692,13 +52748,13 @@ function BaseInputTemplate(props) {
|
|
|
52692
52748
|
|
|
52693
52749
|
// src/components/SchemaDrivenAnnotationEditor/template/FieldErrorTemplate.tsx
|
|
52694
52750
|
var import_react328 = __toESM(require("react"));
|
|
52695
|
-
var
|
|
52751
|
+
var import_utils181 = require("@rjsf/utils");
|
|
52696
52752
|
function FieldErrorTemplate(props) {
|
|
52697
52753
|
const { errors = [], idSchema } = props;
|
|
52698
52754
|
if (errors.length === 0) {
|
|
52699
52755
|
return null;
|
|
52700
52756
|
}
|
|
52701
|
-
const id = (0,
|
|
52757
|
+
const id = (0, import_utils181.errorId)(idSchema);
|
|
52702
52758
|
return /* @__PURE__ */ import_react328.default.createElement(List_default, { dense: true, disablePadding: true }, errors.map((error, i) => {
|
|
52703
52759
|
return /* @__PURE__ */ import_react328.default.createElement(ListItem_default, { key: i, disableGutters: true }, /* @__PURE__ */ import_react328.default.createElement(FormHelperText_default, { id, sx: { color: "error.main" } }, error));
|
|
52704
52760
|
}));
|