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.
Files changed (159) hide show
  1. package/dist/SWC.index.d.ts +1 -1
  2. package/dist/SWC.index.js +2 -2
  3. package/dist/SWC.index.js.map +1 -1
  4. package/dist/components/AccessRequirementList/AccessRequirementList.d.ts +2 -1
  5. package/dist/components/AccessRequirementList/AccessRequirementList.d.ts.map +1 -1
  6. package/dist/components/AccessRequirementList/AccessRequirementList.js +126 -125
  7. package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
  8. package/dist/components/AccessRequirementList/AccessRequirementListItem.d.ts +1 -1
  9. package/dist/components/AccessRequirementList/AccessRequirementListItem.d.ts.map +1 -1
  10. package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
  11. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts.map +1 -1
  12. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js +28 -16
  13. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js.map +1 -1
  14. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts.map +1 -1
  15. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js +99 -97
  16. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js.map +1 -1
  17. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.d.ts +1 -1
  18. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.d.ts.map +1 -1
  19. package/dist/components/AccessRequirementList/RequestDataStep.d.ts +1 -4
  20. package/dist/components/AccessRequirementList/RequestDataStep.d.ts.map +1 -1
  21. package/dist/components/AccessRequirementList/RequestDataStep.js +15 -18
  22. package/dist/components/AccessRequirementList/RequestDataStep.js.map +1 -1
  23. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.d.ts.map +1 -1
  24. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js +52 -49
  25. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
  26. package/dist/components/DataGrid/DataGridWebSocket.d.ts +29 -1
  27. package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
  28. package/dist/components/DataGrid/DataGridWebSocket.js +48 -16
  29. package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
  30. package/dist/components/DataGrid/components/GridLoadingState.d.ts +2 -2
  31. package/dist/components/DataGrid/components/GridLoadingState.d.ts.map +1 -1
  32. package/dist/components/DataGrid/components/GridLoadingState.js +2 -2
  33. package/dist/components/DataGrid/components/GridLoadingState.js.map +1 -1
  34. package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
  35. package/dist/components/DataGrid/useDataGridWebsocket.js +2 -1
  36. package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
  37. package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.d.ts.map +1 -1
  38. package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js +11 -10
  39. package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js.map +1 -1
  40. package/dist/components/FormTemplateEditor/useSaveFormTemplate.d.ts.map +1 -1
  41. package/dist/components/FormTemplateEditor/useSaveFormTemplate.js.map +1 -1
  42. package/dist/components/FormTemplateReferenceField/FormTemplatePreviewDialog.d.ts +9 -0
  43. package/dist/components/FormTemplateReferenceField/FormTemplatePreviewDialog.d.ts.map +1 -0
  44. package/dist/components/FormTemplateReferenceField/FormTemplatePreviewDialog.js +45 -0
  45. package/dist/components/FormTemplateReferenceField/FormTemplatePreviewDialog.js.map +1 -0
  46. package/dist/components/FormTemplateReferenceField/FormTemplateReferenceField.d.ts +22 -0
  47. package/dist/components/FormTemplateReferenceField/FormTemplateReferenceField.d.ts.map +1 -0
  48. package/dist/components/FormTemplateReferenceField/FormTemplateReferenceField.js +139 -0
  49. package/dist/components/FormTemplateReferenceField/FormTemplateReferenceField.js.map +1 -0
  50. package/dist/components/Forum/ForumTable.d.ts +17 -5
  51. package/dist/components/Forum/ForumTable.d.ts.map +1 -1
  52. package/dist/components/Forum/ForumTable.js +94 -77
  53. package/dist/components/Forum/ForumTable.js.map +1 -1
  54. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.d.ts.map +1 -1
  55. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js +142 -108
  56. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
  57. package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.d.ts.map +1 -1
  58. package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js +15 -15
  59. package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
  60. package/dist/components/SetManagedAccessRequirementFields/DataUseCertificateFields.d.ts +10 -0
  61. package/dist/components/SetManagedAccessRequirementFields/DataUseCertificateFields.d.ts.map +1 -0
  62. package/dist/components/SetManagedAccessRequirementFields/DataUseCertificateFields.js +81 -0
  63. package/dist/components/SetManagedAccessRequirementFields/DataUseCertificateFields.js.map +1 -0
  64. package/dist/components/SetManagedAccessRequirementFields/ExpirationPeriodField.d.ts +9 -0
  65. package/dist/components/SetManagedAccessRequirementFields/ExpirationPeriodField.d.ts.map +1 -0
  66. package/dist/components/SetManagedAccessRequirementFields/ExpirationPeriodField.js +32 -0
  67. package/dist/components/SetManagedAccessRequirementFields/ExpirationPeriodField.js.map +1 -0
  68. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.d.ts +0 -2
  69. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.d.ts.map +1 -1
  70. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js +79 -154
  71. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
  72. package/dist/components/TanStackTable/TanStackTableUtils.d.ts.map +1 -1
  73. package/dist/components/TanStackTable/TanStackTableUtils.js +8 -5
  74. package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
  75. package/dist/components/dataaccess/SubmissionPage/DataAccessSubmissionFileHandleLink.d.ts +5 -0
  76. package/dist/components/dataaccess/SubmissionPage/DataAccessSubmissionFileHandleLink.d.ts.map +1 -0
  77. package/dist/components/dataaccess/SubmissionPage/DataAccessSubmissionFileHandleLink.js +20 -0
  78. package/dist/components/dataaccess/SubmissionPage/DataAccessSubmissionFileHandleLink.js.map +1 -0
  79. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.d.ts.map +1 -1
  80. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +183 -188
  81. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
  82. package/dist/components/dataaccess/SubmissionPage/SubmissionSchemaAnswers.d.ts +25 -0
  83. package/dist/components/dataaccess/SubmissionPage/SubmissionSchemaAnswers.d.ts.map +1 -0
  84. package/dist/components/dataaccess/SubmissionPage/SubmissionSchemaAnswers.js +125 -0
  85. package/dist/components/dataaccess/SubmissionPage/SubmissionSchemaAnswers.js.map +1 -0
  86. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts.map +1 -1
  87. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js +4 -1
  88. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js.map +1 -1
  89. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.d.ts +5 -0
  90. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.d.ts.map +1 -1
  91. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.js +37 -26
  92. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.js.map +1 -1
  93. package/dist/mocks/dataaccess/MockSubmission.d.ts +76 -0
  94. package/dist/mocks/dataaccess/MockSubmission.d.ts.map +1 -1
  95. package/dist/mocks/dataaccess/MockSubmission.js +108 -63
  96. package/dist/mocks/dataaccess/MockSubmission.js.map +1 -1
  97. package/dist/mocks/msw/handlers/discussionHandlers.d.ts.map +1 -1
  98. package/dist/mocks/msw/handlers/discussionHandlers.js +40 -33
  99. package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
  100. package/dist/style/components/_submission-page.scss +0 -4
  101. package/dist/style/main.css +1 -1
  102. package/dist/synapse-client/SynapseClient.d.ts +10 -0
  103. package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
  104. package/dist/synapse-client/SynapseClient.js +486 -482
  105. package/dist/synapse-client/SynapseClient.js.map +1 -1
  106. package/dist/synapse-client/index.js +3 -3
  107. package/dist/synapse-queries/KeyFactory.d.ts +13 -1
  108. package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
  109. package/dist/synapse-queries/KeyFactory.js +11 -1
  110. package/dist/synapse-queries/KeyFactory.js.map +1 -1
  111. package/dist/synapse-queries/dataaccess/index.js +4 -4
  112. package/dist/synapse-queries/dataaccess/useAccessRequirements.d.ts.map +1 -1
  113. package/dist/synapse-queries/dataaccess/useAccessRequirements.js +4 -1
  114. package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
  115. package/dist/synapse-queries/dataaccess/useEDuc.d.ts +19 -5
  116. package/dist/synapse-queries/dataaccess/useEDuc.d.ts.map +1 -1
  117. package/dist/synapse-queries/dataaccess/useEDuc.js +29 -21
  118. package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
  119. package/dist/synapse-queries/dataaccess/useFormTemplate.d.ts +12 -0
  120. package/dist/synapse-queries/dataaccess/useFormTemplate.d.ts.map +1 -1
  121. package/dist/synapse-queries/dataaccess/useFormTemplate.js +52 -30
  122. package/dist/synapse-queries/dataaccess/useFormTemplate.js.map +1 -1
  123. package/dist/synapse-queries/dataaccess/useGeneratedSubmissionForm.d.ts +37 -0
  124. package/dist/synapse-queries/dataaccess/useGeneratedSubmissionForm.d.ts.map +1 -0
  125. package/dist/synapse-queries/dataaccess/useGeneratedSubmissionForm.js +35 -0
  126. package/dist/synapse-queries/dataaccess/useGeneratedSubmissionForm.js.map +1 -0
  127. package/dist/synapse-queries/forum/useForum.d.ts +5 -1
  128. package/dist/synapse-queries/forum/useForum.d.ts.map +1 -1
  129. package/dist/synapse-queries/forum/useForum.js +23 -1
  130. package/dist/synapse-queries/forum/useForum.js.map +1 -1
  131. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.d.ts +2 -0
  132. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.d.ts.map +1 -1
  133. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
  134. package/dist/synapse-queries/index.js +185 -184
  135. package/dist/synapse-queries/jsonschema/useCreateJsonSchema.d.ts +5 -3
  136. package/dist/synapse-queries/jsonschema/useCreateJsonSchema.d.ts.map +1 -1
  137. package/dist/synapse-queries/jsonschema/useCreateJsonSchema.js +12 -15
  138. package/dist/synapse-queries/jsonschema/useCreateJsonSchema.js.map +1 -1
  139. package/dist/synapse-queries/termsOfService/useTermsOfService.d.ts.map +1 -1
  140. package/dist/synapse-queries/termsOfService/useTermsOfService.js +21 -19
  141. package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
  142. package/dist/tsconfig.build.tsbuildinfo +1 -1
  143. package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
  144. package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
  145. package/dist/utils/functions/EntityTypeUtils.d.ts +2 -2
  146. package/dist/utils/functions/EntityTypeUtils.d.ts.map +1 -1
  147. package/dist/utils/functions/EntityTypeUtils.js +135 -135
  148. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  149. package/dist/utils/functions/getEndpoint.d.ts +1 -0
  150. package/dist/utils/functions/getEndpoint.d.ts.map +1 -1
  151. package/dist/utils/functions/getEndpoint.js +3 -3
  152. package/dist/utils/functions/getEndpoint.js.map +1 -1
  153. package/dist/utils/types/RequestableAccessRequirement.d.ts +8 -0
  154. package/dist/utils/types/RequestableAccessRequirement.d.ts.map +1 -0
  155. package/dist/utils/types/RequestableAccessRequirement.js +9 -0
  156. package/dist/utils/types/RequestableAccessRequirement.js.map +1 -0
  157. package/package.json +3 -3
  158. package/dist/testutils/ReactQueryMockUtils.js +0 -676
  159. package/dist/testutils/ReactQueryMockUtils.js.map +0 -1
@@ -1,71 +1,47 @@
1
1
  import { DAY_IN_MS as e } from "../../utils/SynapseConstants.js";
2
- import { SynapseErrorBoundary as t } from "../error/ErrorBanner.js";
3
- import { SynapseSpinner as n } from "../LoadingScreen/LoadingScreen.js";
4
- import { useGetAccessRequirements as r, useUpdateAccessRequirement as i } from "../../synapse-queries/dataaccess/useAccessRequirements.js";
5
- import { useListEDucTemplates as a } from "../../synapse-queries/dataaccess/useEDuc.js";
2
+ import { SynapseSpinner as t } from "../LoadingScreen/LoadingScreen.js";
3
+ import { useGetAccessRequirements as n, useUpdateAccessRequirement as r } from "../../synapse-queries/dataaccess/useAccessRequirements.js";
6
4
  import "../../synapse-queries/index.js";
7
- import { UploadDocumentField as o } from "../AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.js";
8
- import { AccessRequirementWikiInstructions as s } from "../SetBasicAccessRequirementFields/AccessRequirementWikiInstructions.js";
9
- import { AccessorRequirements as c } from "../SetBasicAccessRequirementFields/AccessorRequirements.js";
5
+ import { AccessRequirementWikiInstructions as i } from "../SetBasicAccessRequirementFields/AccessRequirementWikiInstructions.js";
6
+ import { AccessorRequirements as a } from "../SetBasicAccessRequirementFields/AccessorRequirements.js";
10
7
  import "../SetBasicAccessRequirementFields/index.js";
11
- import { forwardRef as l, useEffect as u, useImperativeHandle as d, useMemo as f, useState as p } from "react";
12
- import { Alert as m, Autocomplete as h, Box as g, Checkbox as _, FormControlLabel as v, TextField as y, Typography as b } from "@mui/material";
13
- import { Fragment as x, jsx as S, jsxs as C } from "react/jsx-runtime";
14
- import { FileHandleAssociateType as w } from "@sage-bionetworks/synapse-types";
8
+ import { DataUseCertificateFields as o } from "./DataUseCertificateFields.js";
9
+ import { ExpirationPeriodField as s, getValidExpirationPeriodOrErrorMessage as c } from "./ExpirationPeriodField.js";
10
+ import { forwardRef as l, useEffect as u, useImperativeHandle as d, useState as f } from "react";
11
+ import { Alert as p, Box as m, Checkbox as h, FormControlLabel as g, Typography as _ } from "@mui/material";
12
+ import { Fragment as v, jsx as y, jsxs as b } from "react/jsx-runtime";
13
+ import { MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE as x } from "@sage-bionetworks/synapse-types";
15
14
  //#region src/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.tsx
16
- var T = "There was an error uploading the DUC template. ", E = (t) => {
17
- if (t === "") return 0;
18
- let n = "Please enter a valid expiration period (in days): ";
19
- if (/^[-]?\d+$/.test(t)) {
20
- let r = Number(t);
21
- return r < 0 ? `${n}If expiration period is set, then it must be greater than 0.` : r * e;
22
- }
23
- return `${n}For input string: "${t}"`;
24
- }, D = l(function(l, D) {
25
- let { accessRequirementId: O, onSave: k, onError: A } = l, { data: j, error: M } = r(O, { staleTime: Infinity });
15
+ var S = l(function(l, S) {
16
+ let { accessRequirementId: C, onSave: w, onError: T } = l, { data: E, error: D } = n(C, { staleTime: Infinity });
26
17
  u(() => {
27
- j && (R(j), B((j.expirationPeriod / e).toString()));
28
- }, [j]);
29
- let [N, P] = p(null), [F, I] = p(null), [L, R] = p(null), [z, B] = p(""), V = f(() => {
30
- if (L?.ducTemplateFileHandleId) return {
31
- fileHandleId: L.ducTemplateFileHandleId,
32
- associateObjectType: w.AccessRequirementAttachment,
33
- associateObjectId: L.id.toString()
34
- };
35
- }, [L?.ducTemplateFileHandleId, L?.id]), { data: H, isLoading: U, hasNextPage: W, fetchNextPage: G } = a();
36
- u(() => {
37
- W && G();
38
- }, [W, G]);
39
- let K = f(() => H?.pages.flatMap((e) => e.results ?? []) ?? [], [H]), q = f(() => K.find((e) => e.templateId === L?.eDucTemplateId) ?? null, [K, L?.eDucTemplateId]), J = (e) => {
40
- if (e.resp && e.success && L) {
41
- P(null);
42
- let t = e.resp;
43
- R({
44
- ...L,
45
- ducTemplateFileHandleId: t.fileHandleId,
46
- eDucTemplateId: void 0
47
- });
48
- } else !e.success && e.error && P(`${T} ${e.error.reason}`);
49
- }, { mutate: Y, isPending: X, error: Z } = i({
50
- onSuccess: () => k(),
51
- onError: () => A()
18
+ E && (j(E), N((E.expirationPeriod / e).toString()));
19
+ }, [E]);
20
+ let [O, k] = f(null), [A, j] = f(null), [M, N] = f(""), { mutate: P, isPending: F, error: I } = r({
21
+ onSuccess: () => w(),
22
+ onError: () => T()
52
23
  });
53
- return d(D, () => ({ save() {
54
- if (L) {
55
- let e = E(z);
56
- typeof e == "string" ? (I(e), A()) : Y({
57
- ...L,
24
+ if (d(S, () => ({ save() {
25
+ if (A) {
26
+ let e = c(M);
27
+ typeof e == "string" ? (k(e), T()) : P({
28
+ ...A,
58
29
  expirationPeriod: e
59
30
  });
60
31
  }
61
32
  } }), [
62
- z,
63
- L,
64
- Y,
65
- A
66
- ]), L ? /* @__PURE__ */ C(x, { children: [
67
- /* @__PURE__ */ S(s, { accessRequirement: L }),
68
- /* @__PURE__ */ C(g, { children: [/* @__PURE__ */ S(b, {
33
+ M,
34
+ A,
35
+ P,
36
+ T
37
+ ]), !A) return D ? /* @__PURE__ */ y(p, {
38
+ severity: "error",
39
+ children: D.reason
40
+ }) : /* @__PURE__ */ y(t, {});
41
+ let L = A.concreteType === x;
42
+ return /* @__PURE__ */ b(v, { children: [
43
+ /* @__PURE__ */ y(i, { accessRequirement: A }),
44
+ /* @__PURE__ */ b(m, { children: [/* @__PURE__ */ y(_, {
69
45
  sx: {
70
46
  bgcolor: "#f5f5f5",
71
47
  borderBottom: "1px solid #ddd",
@@ -74,125 +50,77 @@ var T = "There was an error uploading the DUC template. ", E = (t) => {
74
50
  py: 1
75
51
  },
76
52
  children: "Data Access Request Parameters"
77
- }), /* @__PURE__ */ C(g, {
53
+ }), /* @__PURE__ */ b(m, {
78
54
  sx: {
79
55
  mt: 2,
80
56
  mb: 4
81
57
  },
82
- children: [/* @__PURE__ */ S(c, {
83
- accessRequirement: L,
84
- onChange: (e) => R(e)
85
- }), /* @__PURE__ */ C(g, {
58
+ children: [/* @__PURE__ */ y(a, {
59
+ accessRequirement: A,
60
+ onChange: (e) => j(e)
61
+ }), /* @__PURE__ */ b(m, {
86
62
  sx: { mb: 2 },
87
63
  children: [
88
- /* @__PURE__ */ S(b, {
89
- variant: "body1",
90
- sx: { fontWeight: 700 },
91
- children: "DUC"
92
- }),
93
- /* @__PURE__ */ S(v, {
94
- control: /* @__PURE__ */ S(_, {}),
95
- label: "DUC is required.",
96
- checked: L.isDUCRequired,
97
- onChange: (e, t) => R({
98
- ...L,
99
- isDUCRequired: t
64
+ /* @__PURE__ */ y(o, {
65
+ accessRequirement: A,
66
+ isLoading: F,
67
+ onChange: (e) => j({
68
+ ...A,
69
+ ...e
100
70
  })
101
71
  }),
102
- /* @__PURE__ */ C(t, { children: [/* @__PURE__ */ S(o, {
103
- id: "duc",
104
- isLoading: X,
105
- disabled: !L.isDUCRequired,
106
- uploadCallback: (e) => J(e),
107
- documentName: "Template DUC",
108
- fileHandleAssociations: V ? [V] : void 0,
109
- isMultiFileUpload: !1,
110
- uploadBtnVariant: "contained"
111
- }), N && /* @__PURE__ */ S(m, {
112
- severity: "error",
113
- sx: { marginTop: 2 },
114
- children: N
115
- })] }),
116
- /* @__PURE__ */ S(g, {
117
- sx: { mt: 2 },
118
- children: /* @__PURE__ */ S(h, {
119
- id: "eDucTemplate",
120
- options: K,
121
- loading: U,
122
- disabled: !L.isDUCRequired,
123
- value: q,
124
- onChange: (e, t) => R({
125
- ...L,
126
- eDucTemplateId: t?.templateId
127
- }),
128
- getOptionLabel: (e) => e.name ?? "",
129
- isOptionEqualToValue: (e, t) => e.templateId === t.templateId,
130
- renderInput: (e) => /* @__PURE__ */ S(y, {
131
- ...e,
132
- label: "eDUC template (electronic signing)",
133
- helperText: "Optional. Select a DocuSign template to enable the eDUC signing flow for this Access Requirement."
134
- })
135
- })
136
- }),
137
- /* @__PURE__ */ S(v, {
72
+ L && /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y(g, {
138
73
  label: "IRB approval is required.",
139
- checked: L.isIRBApprovalRequired,
140
- control: /* @__PURE__ */ S(_, {}),
141
- onChange: (e, t) => R({
142
- ...L,
74
+ checked: A.isIRBApprovalRequired,
75
+ control: /* @__PURE__ */ y(h, {}),
76
+ onChange: (e, t) => j({
77
+ ...A,
143
78
  isIRBApprovalRequired: t
144
79
  }),
145
80
  sx: { ml: 0 }
146
- }),
147
- /* @__PURE__ */ S(v, {
148
- control: /* @__PURE__ */ S(_, {}),
81
+ }), /* @__PURE__ */ y(g, {
82
+ control: /* @__PURE__ */ y(h, {}),
149
83
  label: "Other documents are required.",
150
- checked: L.areOtherAttachmentsRequired,
151
- onChange: (e, t) => R({
152
- ...L,
84
+ checked: A.areOtherAttachmentsRequired,
85
+ onChange: (e, t) => j({
86
+ ...A,
153
87
  areOtherAttachmentsRequired: t
154
88
  })
155
- }),
156
- /* @__PURE__ */ S(y, {
157
- id: "expirationPeriod",
158
- name: "expirationPeriod",
159
- label: "Expiration period (days)",
160
- value: z,
161
- error: !!F,
162
- helperText: F,
163
- sx: { mt: 1 },
164
- fullWidth: !0,
89
+ })] }),
90
+ /* @__PURE__ */ y(s, {
91
+ days: M,
92
+ error: O,
165
93
  onChange: (e) => {
166
- I(null), B(e.target.value);
94
+ k(null), N(e);
167
95
  },
168
96
  onBlur: () => {
169
- let e = E(z);
170
- typeof e == "string" && I(e);
97
+ let e = c(M);
98
+ typeof e == "string" && k(e);
171
99
  }
172
100
  }),
173
- /* @__PURE__ */ C(g, {
101
+ L && /* @__PURE__ */ b(m, {
174
102
  sx: { mt: 1 },
175
- children: [/* @__PURE__ */ S(v, {
176
- control: /* @__PURE__ */ S(_, {}),
103
+ children: [/* @__PURE__ */ y(g, {
104
+ control: /* @__PURE__ */ y(h, {}),
177
105
  label: "Intended Data Use statement is required.",
178
- checked: L.isIDURequired,
106
+ checked: A.isIDURequired,
179
107
  onChange: (e, t) => {
180
- R(t ? {
181
- ...L,
108
+ j(t ? {
109
+ ...A,
182
110
  isIDURequired: !0
183
111
  } : {
184
- ...L,
112
+ ...A,
185
113
  isIDURequired: !1,
186
114
  isIDUPublic: !1
187
115
  });
188
116
  }
189
- }), /* @__PURE__ */ S(v, {
190
- control: /* @__PURE__ */ S(_, {}),
117
+ }), /* @__PURE__ */ y(g, {
118
+ control: /* @__PURE__ */ y(h, {}),
191
119
  label: "Intended Data Use statements will be publicly available.",
192
- checked: L.isIDUPublic,
193
- disabled: !L.isIDURequired,
194
- onChange: (e, t) => R({
195
- ...L,
120
+ checked: A.isIDUPublic,
121
+ disabled: !A.isIDURequired,
122
+ onChange: (e, t) => j({
123
+ ...A,
196
124
  isIDUPublic: t
197
125
  })
198
126
  })]
@@ -200,17 +128,14 @@ var T = "There was an error uploading the DUC template. ", E = (t) => {
200
128
  ]
201
129
  })]
202
130
  })] }),
203
- Z && /* @__PURE__ */ S(m, {
131
+ I && /* @__PURE__ */ y(p, {
204
132
  severity: "error",
205
133
  sx: { marginTop: 2 },
206
- children: Z.reason
134
+ children: I.reason
207
135
  })
208
- ] }) : M ? /* @__PURE__ */ S(m, {
209
- severity: "error",
210
- children: M.reason
211
- }) : /* @__PURE__ */ S(n, {});
136
+ ] });
212
137
  });
213
138
  //#endregion
214
- export { T as DUC_TEMPLATE_UPLOAD_ERROR, D as SetManagedAccessRequirementFields, E as getValidExpirationPeriodOrErrorMessage };
139
+ export { S as SetManagedAccessRequirementFields };
215
140
 
216
141
  //# sourceMappingURL=SetManagedAccessRequirementFields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SetManagedAccessRequirementFields.js","names":[],"sources":["../../../src/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.tsx"],"sourcesContent":["import {\n useGetAccessRequirements,\n useListEDucTemplates,\n useUpdateAccessRequirement,\n} from '@/synapse-queries'\nimport { DAY_IN_MS } from '@/utils/SynapseConstants'\nimport {\n Alert,\n Autocomplete,\n Box,\n Checkbox,\n FormControlLabel,\n TextField,\n Typography,\n} from '@mui/material'\nimport { EDucTemplate } from '@sage-bionetworks/synapse-client'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport {\n FileHandleAssociateType,\n FileHandleAssociation,\n FileUploadComplete,\n ManagedACTAccessRequirement,\n UploadCallbackResp,\n} from '@sage-bionetworks/synapse-types'\nimport {\n ForwardedRef,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react'\nimport { UploadDocumentField } from '../AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField'\nimport { SynapseErrorBoundary } from '../error/ErrorBanner'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport {\n AccessorRequirements,\n AccessRequirementWikiInstructions,\n} from '../SetBasicAccessRequirementFields'\n\nexport const DUC_TEMPLATE_UPLOAD_ERROR =\n 'There was an error uploading the DUC template. '\n\nexport const getValidExpirationPeriodOrErrorMessage = (\n expirationPeriodDays: string,\n) => {\n if (expirationPeriodDays === '') return 0\n\n const msgPrefix = 'Please enter a valid expiration period (in days): '\n if (/^[-]?\\d+$/.test(expirationPeriodDays)) {\n const num = Number(expirationPeriodDays)\n if (num < 0) {\n return `${msgPrefix}If expiration period is set, then it must be greater than 0.`\n }\n return num * DAY_IN_MS\n }\n return `${msgPrefix}For input string: \"${expirationPeriodDays}\"`\n}\n\nexport type SetManagedAccessRequirementFieldsHandle = {\n /* Allow the parent component to trigger saving the AR, so this may be embedded in an arbitrary modal. */\n save: () => void\n}\n\nexport type SetManagedAccessRequirementFieldsProps = {\n accessRequirementId: string\n /* Called when AR has been saved successfully */\n onSave: () => void\n /* Called when error saving AR */\n onError: () => void\n}\n\nexport const SetManagedAccessRequirementFields = forwardRef(\n function SetManagedAccessRequirementFields(\n props: SetManagedAccessRequirementFieldsProps,\n ref: ForwardedRef<SetManagedAccessRequirementFieldsHandle>,\n ) {\n const { accessRequirementId, onSave, onError } = props\n\n const { data: accessRequirement, error: getArError } =\n useGetAccessRequirements<ManagedACTAccessRequirement>(\n accessRequirementId,\n { staleTime: Infinity },\n )\n useEffect(() => {\n if (accessRequirement) {\n setUpdatedAr(accessRequirement)\n setExpirationPeriodDays(\n (accessRequirement.expirationPeriod / DAY_IN_MS).toString(),\n )\n }\n }, [accessRequirement])\n\n const [uploadDucTemplateError, setUploadDucTemplateError] = useState<\n string | null\n >(null)\n const [expirationPeriodError, setExpirationPeriodError] = useState<\n string | null\n >(null)\n\n const [updatedAr, setUpdatedAr] =\n useState<ManagedACTAccessRequirement | null>(null)\n const [expirationPeriodDays, setExpirationPeriodDays] = useState<string>('')\n\n const ducTemplateFileHandleAssociation = useMemo(() => {\n if (updatedAr?.ducTemplateFileHandleId) {\n const ducTemplateFileHandleAssociation: FileHandleAssociation = {\n fileHandleId: updatedAr.ducTemplateFileHandleId,\n associateObjectType:\n FileHandleAssociateType.AccessRequirementAttachment,\n associateObjectId: updatedAr.id.toString(),\n }\n return ducTemplateFileHandleAssociation\n }\n return undefined\n }, [updatedAr?.ducTemplateFileHandleId, updatedAr?.id])\n\n const {\n data: eDucTemplateData,\n isLoading: isLoadingEDucTemplates,\n hasNextPage: hasNextEDucTemplatePage,\n fetchNextPage: fetchNextEDucTemplatePage,\n } = useListEDucTemplates()\n // Auto-fetch all pages so the dropdown always shows the complete template list.\n useEffect(() => {\n if (hasNextEDucTemplatePage) {\n void fetchNextEDucTemplatePage()\n }\n }, [hasNextEDucTemplatePage, fetchNextEDucTemplatePage])\n const eDucTemplates = useMemo(\n () => eDucTemplateData?.pages.flatMap(page => page.results ?? []) ?? [],\n [eDucTemplateData],\n )\n const selectedEDucTemplate = useMemo(\n () =>\n eDucTemplates.find(\n template => template.templateId === updatedAr?.eDucTemplateId,\n ) ?? null,\n [eDucTemplates, updatedAr?.eDucTemplateId],\n )\n\n const uploadDucTemplateCallback = (data: UploadCallbackResp) => {\n if (data.resp && data.success && updatedAr) {\n setUploadDucTemplateError(null)\n // Files are uploaded and synced with the server immediately\n const uploadResponse: FileUploadComplete = data.resp\n setUpdatedAr({\n ...updatedAr,\n ducTemplateFileHandleId: uploadResponse.fileHandleId,\n eDucTemplateId: undefined, // mutually exclusive with file upload\n })\n } else if (!data.success && data.error) {\n setUploadDucTemplateError(\n `${DUC_TEMPLATE_UPLOAD_ERROR} ${\n (data.error as SynapseClientError).reason\n }`,\n )\n }\n }\n\n const {\n mutate: updateAccessRequirement,\n isPending: isUpdatingAccessRequirement,\n error: updateArError,\n } = useUpdateAccessRequirement<ManagedACTAccessRequirement>({\n onSuccess: () => onSave(),\n onError: () => onError(),\n })\n\n useImperativeHandle(ref, () => {\n return {\n save() {\n if (updatedAr) {\n const expirationPeriodOrErrorMessage =\n getValidExpirationPeriodOrErrorMessage(expirationPeriodDays)\n if (typeof expirationPeriodOrErrorMessage === 'string') {\n setExpirationPeriodError(expirationPeriodOrErrorMessage)\n onError()\n } else {\n updateAccessRequirement({\n ...updatedAr,\n expirationPeriod: expirationPeriodOrErrorMessage,\n })\n }\n }\n },\n }\n }, [expirationPeriodDays, updatedAr, updateAccessRequirement, onError])\n\n if (!updatedAr) {\n if (getArError) {\n return <Alert severity=\"error\">{getArError.reason}</Alert>\n } else {\n return <SynapseSpinner />\n }\n }\n\n return (\n <>\n <AccessRequirementWikiInstructions accessRequirement={updatedAr} />\n <Box>\n <Typography\n sx={{\n bgcolor: '#f5f5f5',\n borderBottom: '1px solid #ddd',\n color: '#333',\n px: 2,\n py: 1,\n }}\n >\n Data Access Request Parameters\n </Typography>\n <Box\n sx={{\n mt: 2,\n mb: 4,\n }}\n >\n <AccessorRequirements\n accessRequirement={updatedAr}\n onChange={updatedAr =>\n setUpdatedAr(updatedAr as ManagedACTAccessRequirement)\n }\n />\n <Box\n sx={{\n mb: 2,\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n fontWeight: 700,\n }}\n >\n DUC\n </Typography>\n <FormControlLabel\n control={<Checkbox />}\n label=\"DUC is required.\"\n checked={updatedAr.isDUCRequired}\n onChange={(_event, checked: boolean) =>\n setUpdatedAr({\n ...updatedAr,\n isDUCRequired: checked,\n })\n }\n />\n <SynapseErrorBoundary>\n <UploadDocumentField\n id=\"duc\"\n isLoading={isUpdatingAccessRequirement}\n disabled={!updatedAr.isDUCRequired}\n uploadCallback={resp => uploadDucTemplateCallback(resp)}\n documentName=\"Template DUC\"\n fileHandleAssociations={\n ducTemplateFileHandleAssociation\n ? [ducTemplateFileHandleAssociation]\n : undefined\n }\n isMultiFileUpload={false}\n uploadBtnVariant=\"contained\"\n />\n {uploadDucTemplateError && (\n <Alert severity=\"error\" sx={{ marginTop: 2 }}>\n {uploadDucTemplateError}\n </Alert>\n )}\n </SynapseErrorBoundary>\n <Box sx={{ mt: 2 }}>\n <Autocomplete<EDucTemplate>\n id=\"eDucTemplate\"\n options={eDucTemplates}\n loading={isLoadingEDucTemplates}\n disabled={!updatedAr.isDUCRequired}\n value={selectedEDucTemplate}\n onChange={(_event, template) =>\n setUpdatedAr({\n ...updatedAr,\n eDucTemplateId: template?.templateId,\n })\n }\n getOptionLabel={template => template.name ?? ''}\n isOptionEqualToValue={(option, value) =>\n option.templateId === value.templateId\n }\n renderInput={params => (\n <TextField\n {...params}\n label=\"eDUC template (electronic signing)\"\n helperText=\"Optional. Select a DocuSign template to enable the eDUC signing flow for this Access Requirement.\"\n />\n )}\n />\n </Box>\n <FormControlLabel\n label=\"IRB approval is required.\"\n checked={updatedAr.isIRBApprovalRequired}\n control={<Checkbox />}\n onChange={(_event, checked: boolean) =>\n setUpdatedAr({\n ...updatedAr,\n isIRBApprovalRequired: checked,\n })\n }\n sx={{ ml: 0 }}\n />\n <FormControlLabel\n control={<Checkbox />}\n label=\"Other documents are required.\"\n checked={updatedAr.areOtherAttachmentsRequired}\n onChange={(_event, checked: boolean) =>\n setUpdatedAr({\n ...updatedAr,\n areOtherAttachmentsRequired: checked,\n })\n }\n />\n <TextField\n id=\"expirationPeriod\"\n name=\"expirationPeriod\"\n label=\"Expiration period (days)\"\n value={expirationPeriodDays}\n error={Boolean(expirationPeriodError)}\n helperText={expirationPeriodError}\n sx={{ mt: 1 }}\n fullWidth\n onChange={event => {\n setExpirationPeriodError(null)\n setExpirationPeriodDays(event.target.value)\n }}\n onBlur={() => {\n const expirationPeriodOrErrorMessage =\n getValidExpirationPeriodOrErrorMessage(expirationPeriodDays)\n if (typeof expirationPeriodOrErrorMessage === 'string') {\n setExpirationPeriodError(expirationPeriodOrErrorMessage)\n }\n }}\n />\n <Box\n sx={{\n mt: 1,\n }}\n >\n <FormControlLabel\n control={<Checkbox />}\n label=\"Intended Data Use statement is required.\"\n checked={updatedAr.isIDURequired}\n onChange={(_event, checked: boolean) => {\n if (checked) {\n setUpdatedAr({\n ...updatedAr,\n isIDURequired: true,\n })\n } else {\n setUpdatedAr({\n ...updatedAr,\n isIDURequired: false,\n isIDUPublic: false,\n })\n }\n }}\n />\n <FormControlLabel\n control={<Checkbox />}\n label=\"Intended Data Use statements will be publicly available.\"\n checked={updatedAr.isIDUPublic}\n disabled={!updatedAr.isIDURequired}\n onChange={(_event, checked: boolean) =>\n setUpdatedAr({\n ...updatedAr,\n isIDUPublic: checked,\n })\n }\n />\n </Box>\n </Box>\n </Box>\n </Box>\n {updateArError && (\n <Alert severity=\"error\" sx={{ marginTop: 2 }}>\n {updateArError.reason}\n </Alert>\n )}\n </>\n )\n },\n)\n"],"mappings":"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"}
1
+ {"version":3,"file":"SetManagedAccessRequirementFields.js","names":[],"sources":["../../../src/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.tsx"],"sourcesContent":["import {\n useGetAccessRequirements,\n useUpdateAccessRequirement,\n} from '@/synapse-queries'\nimport { DAY_IN_MS } from '@/utils/SynapseConstants'\nimport {\n Alert,\n Box,\n Checkbox,\n FormControlLabel,\n Typography,\n} from '@mui/material'\nimport { RequestableAccessRequirement } from '@/utils/types/RequestableAccessRequirement'\nimport { MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE } from '@sage-bionetworks/synapse-types'\nimport {\n ForwardedRef,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport {\n AccessorRequirements,\n AccessRequirementWikiInstructions,\n} from '../SetBasicAccessRequirementFields'\nimport { DataUseCertificateFields } from './DataUseCertificateFields'\nimport {\n ExpirationPeriodField,\n getValidExpirationPeriodOrErrorMessage,\n} from './ExpirationPeriodField'\n\nexport type SetManagedAccessRequirementFieldsHandle = {\n /* Allow the parent component to trigger saving the AR, so this may be embedded in an arbitrary modal. */\n save: () => void\n}\n\nexport type SetManagedAccessRequirementFieldsProps = {\n accessRequirementId: string\n /* Called when AR has been saved successfully */\n onSave: () => void\n /* Called when error saving AR */\n onError: () => void\n}\n\nexport const SetManagedAccessRequirementFields = forwardRef(\n function SetManagedAccessRequirementFields(\n props: SetManagedAccessRequirementFieldsProps,\n ref: ForwardedRef<SetManagedAccessRequirementFieldsHandle>,\n ) {\n const { accessRequirementId, onSave, onError } = props\n\n const { data: accessRequirement, error: getArError } =\n useGetAccessRequirements<RequestableAccessRequirement>(\n accessRequirementId,\n {\n staleTime: Infinity,\n },\n )\n useEffect(() => {\n if (accessRequirement) {\n setUpdatedAr(accessRequirement)\n setExpirationPeriodDays(\n (accessRequirement.expirationPeriod / DAY_IN_MS).toString(),\n )\n }\n }, [accessRequirement])\n\n const [expirationPeriodError, setExpirationPeriodError] = useState<\n string | null\n >(null)\n\n const [updatedAr, setUpdatedAr] =\n useState<RequestableAccessRequirement | null>(null)\n const [expirationPeriodDays, setExpirationPeriodDays] = useState<string>('')\n\n const {\n mutate: updateAccessRequirement,\n isPending: isUpdatingAccessRequirement,\n error: updateArError,\n } = useUpdateAccessRequirement<RequestableAccessRequirement>({\n onSuccess: () => onSave(),\n onError: () => onError(),\n })\n\n useImperativeHandle(ref, () => {\n return {\n save() {\n if (updatedAr) {\n const expirationPeriodOrErrorMessage =\n getValidExpirationPeriodOrErrorMessage(expirationPeriodDays)\n if (typeof expirationPeriodOrErrorMessage === 'string') {\n setExpirationPeriodError(expirationPeriodOrErrorMessage)\n onError()\n } else {\n updateAccessRequirement({\n ...updatedAr,\n expirationPeriod: expirationPeriodOrErrorMessage,\n })\n }\n }\n },\n }\n }, [expirationPeriodDays, updatedAr, updateAccessRequirement, onError])\n\n if (!updatedAr) {\n if (getArError) {\n return <Alert severity=\"error\">{getArError.reason}</Alert>\n } else {\n return <SynapseSpinner />\n }\n }\n\n // A JsonSchemaAccessRequirement collects its remaining requirements through its form template,\n // so IRB approval, other documents, and Intended Data Use only apply to a Managed ACT AR.\n const isManagedAr =\n updatedAr.concreteType ===\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE\n\n return (\n <>\n <AccessRequirementWikiInstructions accessRequirement={updatedAr} />\n <Box>\n <Typography\n sx={{\n bgcolor: '#f5f5f5',\n borderBottom: '1px solid #ddd',\n color: '#333',\n px: 2,\n py: 1,\n }}\n >\n Data Access Request Parameters\n </Typography>\n <Box\n sx={{\n mt: 2,\n mb: 4,\n }}\n >\n <AccessorRequirements\n accessRequirement={updatedAr}\n onChange={updatedAr =>\n setUpdatedAr(updatedAr as RequestableAccessRequirement)\n }\n />\n <Box\n sx={{\n mb: 2,\n }}\n >\n <DataUseCertificateFields\n accessRequirement={updatedAr}\n isLoading={isUpdatingAccessRequirement}\n onChange={changes => setUpdatedAr({ ...updatedAr, ...changes })}\n />\n {isManagedAr && (\n <>\n <FormControlLabel\n label=\"IRB approval is required.\"\n checked={updatedAr.isIRBApprovalRequired}\n control={<Checkbox />}\n onChange={(_event, checked: boolean) =>\n setUpdatedAr({\n ...updatedAr,\n isIRBApprovalRequired: checked,\n })\n }\n sx={{ ml: 0 }}\n />\n <FormControlLabel\n control={<Checkbox />}\n label=\"Other documents are required.\"\n checked={updatedAr.areOtherAttachmentsRequired}\n onChange={(_event, checked: boolean) =>\n setUpdatedAr({\n ...updatedAr,\n areOtherAttachmentsRequired: checked,\n })\n }\n />\n </>\n )}\n <ExpirationPeriodField\n days={expirationPeriodDays}\n error={expirationPeriodError}\n onChange={days => {\n setExpirationPeriodError(null)\n setExpirationPeriodDays(days)\n }}\n onBlur={() => {\n const expirationPeriodOrErrorMessage =\n getValidExpirationPeriodOrErrorMessage(expirationPeriodDays)\n if (typeof expirationPeriodOrErrorMessage === 'string') {\n setExpirationPeriodError(expirationPeriodOrErrorMessage)\n }\n }}\n />\n {isManagedAr && (\n <Box\n sx={{\n mt: 1,\n }}\n >\n <FormControlLabel\n control={<Checkbox />}\n label=\"Intended Data Use statement is required.\"\n checked={updatedAr.isIDURequired}\n onChange={(_event, checked: boolean) => {\n if (checked) {\n setUpdatedAr({\n ...updatedAr,\n isIDURequired: true,\n })\n } else {\n setUpdatedAr({\n ...updatedAr,\n isIDURequired: false,\n isIDUPublic: false,\n })\n }\n }}\n />\n <FormControlLabel\n control={<Checkbox />}\n label=\"Intended Data Use statements will be publicly available.\"\n checked={updatedAr.isIDUPublic}\n disabled={!updatedAr.isIDURequired}\n onChange={(_event, checked: boolean) =>\n setUpdatedAr({\n ...updatedAr,\n isIDUPublic: checked,\n })\n }\n />\n </Box>\n )}\n </Box>\n </Box>\n </Box>\n {updateArError && (\n <Alert severity=\"error\" sx={{ marginTop: 2 }}>\n {updateArError.reason}\n </Alert>\n )}\n </>\n )\n },\n)\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TanStackTableUtils.d.ts","sourceRoot":"","sources":["../../../src/components/TanStackTable/TanStackTableUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAErC,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,UAExD;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,UAExD;AAID,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAsBzE"}
1
+ {"version":3,"file":"TanStackTableUtils.d.ts","sourceRoot":"","sources":["../../../src/components/TanStackTable/TanStackTableUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAcrC,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,UAExD;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,UAExD;AAID,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAsBzE"}
@@ -1,11 +1,14 @@
1
1
  //#region src/components/TanStackTable/TanStackTableUtils.ts
2
2
  function e(e) {
3
- return `--col-${e}-size`;
3
+ return e.replace(/[^A-Za-z0-9-]/g, (e) => `_${e.charCodeAt(0).toString(16)}_`);
4
4
  }
5
- function t(e) {
6
- return `--header-${e}-size`;
5
+ function t(t) {
6
+ return `--col-${e(t)}-size`;
7
7
  }
8
- function n(e) {
8
+ function n(t) {
9
+ return `--header-${e(t)}-size`;
10
+ }
11
+ function r(e) {
9
12
  let t = e.getIsPinned(), n = t === "left" && e.getIsLastColumn("left"), r = t === "right" && e.getIsFirstColumn("right");
10
13
  return t ? {
11
14
  background: "inherit",
@@ -19,6 +22,6 @@ function n(e) {
19
22
  } : {};
20
23
  }
21
24
  //#endregion
22
- export { e as getColumnSizeCssVariable, n as getCommonPinningStyles, t as getHeaderSizeCssVariable };
25
+ export { t as getColumnSizeCssVariable, r as getCommonPinningStyles, n as getHeaderSizeCssVariable };
23
26
 
24
27
  //# sourceMappingURL=TanStackTableUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TanStackTableUtils.js","names":[],"sources":["../../../src/components/TanStackTable/TanStackTableUtils.ts"],"sourcesContent":["import { Column } from '@tanstack/react-table'\nimport { CSSProperties } from 'react'\n\nexport function getColumnSizeCssVariable(columnId: string) {\n return `--col-${columnId}-size`\n}\n\nexport function getHeaderSizeCssVariable(headerId: string) {\n return `--header-${headerId}-size`\n}\n\n// Styles for column pinning, retrieved from TanStack docs examples with very minor modifications\n// See https://tanstack.com/table/v8/docs/framework/react/examples/column-pinning-sticky\nexport function getCommonPinningStyles(column: Column<any>): CSSProperties {\n const isPinned = column.getIsPinned()\n const isLastLeftPinnedColumn =\n isPinned === 'left' && column.getIsLastColumn('left')\n const isFirstRightPinnedColumn =\n isPinned === 'right' && column.getIsFirstColumn('right')\n\n if (!isPinned) return {}\n return {\n background: 'inherit',\n boxShadow: isLastLeftPinnedColumn\n ? '-4px 0 4px -4px gray inset'\n : isFirstRightPinnedColumn\n ? '4px 0 4px -4px gray inset'\n : undefined,\n left: isPinned === 'left' ? `${column.getStart('left')}px` : undefined,\n right: isPinned === 'right' ? `${column.getAfter('right')}px` : undefined,\n opacity: 0.95,\n position: 'sticky',\n width: column.getSize(),\n zIndex: 1,\n }\n}\n"],"mappings":";AAGA,SAAgB,EAAyB,GAAkB;CACzD,OAAO,SAAS,EAAS;AAC3B;AAEA,SAAgB,EAAyB,GAAkB;CACzD,OAAO,YAAY,EAAS;AAC9B;AAIA,SAAgB,EAAuB,GAAoC;CACzE,IAAM,IAAW,EAAO,YAAY,GAC9B,IACJ,MAAa,UAAU,EAAO,gBAAgB,MAAM,GAChD,IACJ,MAAa,WAAW,EAAO,iBAAiB,OAAO;CAGzD,OADK,IACE;EACL,YAAY;EACZ,WAAW,IACP,+BACA,IACE,8BACA,KAAA;EACN,MAAM,MAAa,SAAS,GAAG,EAAO,SAAS,MAAM,EAAE,MAAM,KAAA;EAC7D,OAAO,MAAa,UAAU,GAAG,EAAO,SAAS,OAAO,EAAE,MAAM,KAAA;EAChE,SAAS;EACT,UAAU;EACV,OAAO,EAAO,QAAQ;EACtB,QAAQ;CACV,IAdsB,CAAC;AAezB"}
1
+ {"version":3,"file":"TanStackTableUtils.js","names":[],"sources":["../../../src/components/TanStackTable/TanStackTableUtils.ts"],"sourcesContent":["import { Column } from '@tanstack/react-table'\nimport { CSSProperties } from 'react'\n\n/**\n * Column IDs are arbitrary strings (e.g. Synapse column names may contain spaces or periods), but a custom property\n * name referenced in `var()` must be a valid CSS identifier. Characters outside [A-Za-z0-9-] are hex-encoded between\n * underscores, so the encoding is valid and distinct IDs never map to the same name.\n */\nfunction toCssIdentifierSafeString(id: string) {\n return id.replace(\n /[^A-Za-z0-9-]/g,\n char => `_${char.charCodeAt(0).toString(16)}_`,\n )\n}\n\nexport function getColumnSizeCssVariable(columnId: string) {\n return `--col-${toCssIdentifierSafeString(columnId)}-size`\n}\n\nexport function getHeaderSizeCssVariable(headerId: string) {\n return `--header-${toCssIdentifierSafeString(headerId)}-size`\n}\n\n// Styles for column pinning, retrieved from TanStack docs examples with very minor modifications\n// See https://tanstack.com/table/v8/docs/framework/react/examples/column-pinning-sticky\nexport function getCommonPinningStyles(column: Column<any>): CSSProperties {\n const isPinned = column.getIsPinned()\n const isLastLeftPinnedColumn =\n isPinned === 'left' && column.getIsLastColumn('left')\n const isFirstRightPinnedColumn =\n isPinned === 'right' && column.getIsFirstColumn('right')\n\n if (!isPinned) return {}\n return {\n background: 'inherit',\n boxShadow: isLastLeftPinnedColumn\n ? '-4px 0 4px -4px gray inset'\n : isFirstRightPinnedColumn\n ? '4px 0 4px -4px gray inset'\n : undefined,\n left: isPinned === 'left' ? `${column.getStart('left')}px` : undefined,\n right: isPinned === 'right' ? `${column.getAfter('right')}px` : undefined,\n opacity: 0.95,\n position: 'sticky',\n width: column.getSize(),\n zIndex: 1,\n }\n}\n"],"mappings":";AAQA,SAAS,EAA0B,GAAY;CAC7C,OAAO,EAAG,QACR,mBACA,MAAQ,IAAI,EAAK,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,EAC9C;AACF;AAEA,SAAgB,EAAyB,GAAkB;CACzD,OAAO,SAAS,EAA0B,CAAQ,EAAE;AACtD;AAEA,SAAgB,EAAyB,GAAkB;CACzD,OAAO,YAAY,EAA0B,CAAQ,EAAE;AACzD;AAIA,SAAgB,EAAuB,GAAoC;CACzE,IAAM,IAAW,EAAO,YAAY,GAC9B,IACJ,MAAa,UAAU,EAAO,gBAAgB,MAAM,GAChD,IACJ,MAAa,WAAW,EAAO,iBAAiB,OAAO;CAGzD,OADK,IACE;EACL,YAAY;EACZ,WAAW,IACP,+BACA,IACE,8BACA,KAAA;EACN,MAAM,MAAa,SAAS,GAAG,EAAO,SAAS,MAAM,EAAE,MAAM,KAAA;EAC7D,OAAO,MAAa,UAAU,GAAG,EAAO,SAAS,OAAO,EAAE,MAAM,KAAA;EAChE,SAAS;EACT,UAAU;EACV,OAAO,EAAO,QAAQ;EACtB,QAAQ;CACV,IAdsB,CAAC;AAezB"}
@@ -0,0 +1,5 @@
1
+ export declare function DataAccessSubmissionFileHandleLink(props: {
2
+ submissionId: string;
3
+ fileHandleId: string;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=DataAccessSubmissionFileHandleLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataAccessSubmissionFileHandleLink.d.ts","sourceRoot":"","sources":["../../../../src/components/dataaccess/SubmissionPage/DataAccessSubmissionFileHandleLink.tsx"],"names":[],"mappings":"AAIA,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IACxD,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;CACrB,2CAkBA"}
@@ -0,0 +1,20 @@
1
+ import { FileHandleLink as e } from "../../widgets/FileHandleLink.js";
2
+ import { useMemo as t } from "react";
3
+ import { jsx as n } from "react/jsx-runtime";
4
+ import { FileHandleAssociateType as r } from "@sage-bionetworks/synapse-types";
5
+ //#region src/components/dataaccess/SubmissionPage/DataAccessSubmissionFileHandleLink.tsx
6
+ function i(i) {
7
+ let { submissionId: a, fileHandleId: o } = i;
8
+ return /* @__PURE__ */ n(e, {
9
+ showDownloadIcon: !0,
10
+ fileHandleAssociation: t(() => ({
11
+ fileHandleId: o,
12
+ associateObjectId: a,
13
+ associateObjectType: r.DataAccessSubmissionAttachment
14
+ }), [o, a])
15
+ }, o);
16
+ }
17
+ //#endregion
18
+ export { i as DataAccessSubmissionFileHandleLink };
19
+
20
+ //# sourceMappingURL=DataAccessSubmissionFileHandleLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataAccessSubmissionFileHandleLink.js","names":[],"sources":["../../../../src/components/dataaccess/SubmissionPage/DataAccessSubmissionFileHandleLink.tsx"],"sourcesContent":["import { FileHandleLink } from '@/components/widgets/FileHandleLink'\nimport { FileHandleAssociateType } from '@sage-bionetworks/synapse-types'\nimport { useMemo } from 'react'\n\nexport function DataAccessSubmissionFileHandleLink(props: {\n submissionId: string\n fileHandleId: string\n}) {\n const { submissionId, fileHandleId } = props\n const fileHandleAssociation = useMemo(\n () => ({\n fileHandleId: fileHandleId,\n associateObjectId: submissionId,\n associateObjectType:\n FileHandleAssociateType.DataAccessSubmissionAttachment,\n }),\n [fileHandleId, submissionId],\n )\n return (\n <FileHandleLink\n key={fileHandleId}\n showDownloadIcon={true}\n fileHandleAssociation={fileHandleAssociation}\n />\n )\n}\n"],"mappings":";;;;;AAIA,SAAgB,EAAmC,GAGhD;CACD,IAAM,EAAE,iBAAc,oBAAiB;CAUvC,OACE,kBAAC,GAAD;EAEE,kBAAkB;EACK,uBAbG,SACrB;GACS;GACd,mBAAmB;GACnB,qBACE,EAAwB;EAC5B,IACA,CAAC,GAAc,CAAY,CAMF;CACxB,GAHM,CAGN;AAEL"}
@@ -1 +1 @@
1
- {"version":3,"file":"SubmissionPage.d.ts","sourceRoot":"","sources":["../../../../src/components/dataaccess/SubmissionPage/SubmissionPage.tsx"],"names":[],"mappings":"AAsCA,MAAM,MAAM,mBAAmB,GAAG;IAChC,uCAAuC;IACvC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,qDAAqD;IACrD,UAAU,EAAE,OAAO,CAAA;CACpB,CAAA;AAqED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,EAAE,mBAAmB,2CAuchE"}
1
+ {"version":3,"file":"SubmissionPage.d.ts","sourceRoot":"","sources":["../../../../src/components/dataaccess/SubmissionPage/SubmissionPage.tsx"],"names":[],"mappings":"AAgDA,MAAM,MAAM,mBAAmB,GAAG;IAChC,uCAAuC;IACvC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,qDAAqD;IACrD,UAAU,EAAE,OAAO,CAAA;CACpB,CAAA;AAuDD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,EAAE,mBAAmB,2CA2dhE"}