synapse-react-client 4.0.32 → 4.0.33

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 (266) hide show
  1. package/dist/SWC.index.js +1 -1
  2. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.d.ts.map +1 -1
  3. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js +48 -36
  4. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
  5. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.d.ts.map +1 -1
  6. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js +217 -143
  7. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
  8. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.d.ts.map +1 -1
  9. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.js +28 -24
  10. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.js.map +1 -1
  11. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.d.ts.map +1 -1
  12. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js +180 -94
  13. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
  14. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/styles.d.ts +3 -0
  15. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/styles.d.ts.map +1 -0
  16. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/styles.js +9 -0
  17. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/styles.js.map +1 -0
  18. package/dist/components/CopyToClipboardIcon.d.ts +2 -1
  19. package/dist/components/CopyToClipboardIcon.d.ts.map +1 -1
  20. package/dist/components/CopyToClipboardIcon.js +6 -6
  21. package/dist/components/CopyToClipboardIcon.js.map +1 -1
  22. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  23. package/dist/components/DataGrid/SynapseGrid.js +230 -215
  24. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  25. package/dist/components/DataGrid/SyncGridWithSourceButton.js +3 -3
  26. package/dist/components/DataGrid/SyncGridWithSourceButton.js.map +1 -1
  27. package/dist/components/DataGrid/columns/DateTimeColumn.js +1 -1
  28. package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
  29. package/dist/components/DataGrid/components/ReorderColumnsButton.d.ts +10 -0
  30. package/dist/components/DataGrid/components/ReorderColumnsButton.d.ts.map +1 -0
  31. package/dist/components/DataGrid/components/ReorderColumnsButton.js +37 -0
  32. package/dist/components/DataGrid/components/ReorderColumnsButton.js.map +1 -0
  33. package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts +12 -0
  34. package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts.map +1 -0
  35. package/dist/components/DataGrid/components/ReorderColumnsDialog.js +93 -0
  36. package/dist/components/DataGrid/components/ReorderColumnsDialog.js.map +1 -0
  37. package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js +1 -1
  38. package/dist/components/DataGrid/utils/applyModelChange.d.ts +3 -0
  39. package/dist/components/DataGrid/utils/applyModelChange.d.ts.map +1 -1
  40. package/dist/components/DataGrid/utils/applyModelChange.js +5 -0
  41. package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
  42. package/dist/components/DataGrid/utils/computeDefaultColumnOrder.d.ts +8 -0
  43. package/dist/components/DataGrid/utils/computeDefaultColumnOrder.d.ts.map +1 -0
  44. package/dist/components/DataGrid/utils/computeDefaultColumnOrder.js +14 -0
  45. package/dist/components/DataGrid/utils/computeDefaultColumnOrder.js.map +1 -0
  46. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +1 -1
  47. package/dist/components/EntityFinder/details/view/DetailsView.d.ts.map +1 -1
  48. package/dist/components/EntityFinder/details/view/DetailsView.js +119 -122
  49. package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
  50. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.d.ts +5 -1
  51. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.d.ts.map +1 -1
  52. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js +7 -7
  53. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
  54. package/dist/components/EntityLink.d.ts +2 -0
  55. package/dist/components/EntityLink.d.ts.map +1 -1
  56. package/dist/components/EntityLink.js +15 -11
  57. package/dist/components/EntityLink.js.map +1 -1
  58. package/dist/components/EntitySidebar/AccessAndPermissions.css +1 -0
  59. package/dist/components/EntitySidebar/AccessAndPermissions.d.ts +7 -0
  60. package/dist/components/EntitySidebar/AccessAndPermissions.d.ts.map +1 -0
  61. package/dist/components/EntitySidebar/AccessAndPermissions.js +75 -0
  62. package/dist/components/EntitySidebar/AccessAndPermissions.js.map +1 -0
  63. package/dist/components/EntitySidebar/AccessAndPermissions.module.js +15 -0
  64. package/dist/components/EntitySidebar/AccessAndPermissions.module.js.map +1 -0
  65. package/dist/components/EntitySidebar/AccessAndPermissions.module.scss +58 -0
  66. package/dist/components/EntitySidebar/EntitySidebar.css +1 -1
  67. package/dist/components/EntitySidebar/EntitySidebar.d.ts.map +1 -1
  68. package/dist/components/EntitySidebar/EntitySidebar.js +54 -42
  69. package/dist/components/EntitySidebar/EntitySidebar.js.map +1 -1
  70. package/dist/components/EntitySidebar/EntitySidebar.module.js +10 -11
  71. package/dist/components/EntitySidebar/EntitySidebar.module.js.map +1 -1
  72. package/dist/components/EntitySidebar/EntitySidebar.module.scss +6 -13
  73. package/dist/components/EntityTreeTable/EntityTreeTable.css +1 -1
  74. package/dist/components/EntityTreeTable/EntityTreeTable.module.js +1 -1
  75. package/dist/components/EntityTreeTable/EntityTreeTable.module.js.map +1 -1
  76. package/dist/components/EntityTreeTable/EntityTreeTable.module.scss +18 -0
  77. package/dist/components/EntityTreeTable/components/ColumnHeaders.d.ts.map +1 -1
  78. package/dist/components/EntityTreeTable/components/ColumnHeaders.js +20 -7
  79. package/dist/components/EntityTreeTable/components/ColumnHeaders.js.map +1 -1
  80. package/dist/components/EntityTreeTable/components/EntityNameCell.d.ts.map +1 -1
  81. package/dist/components/EntityTreeTable/components/EntityNameCell.js +3 -1
  82. package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
  83. package/dist/components/EntityTreeTable/components/EntityTreeTableView.d.ts.map +1 -1
  84. package/dist/components/EntityTreeTable/components/EntityTreeTableView.js +4 -1
  85. package/dist/components/EntityTreeTable/components/EntityTreeTableView.js.map +1 -1
  86. package/dist/components/EntityTreeTable/components/IdColumnHeader.d.ts.map +1 -1
  87. package/dist/components/EntityTreeTable/components/IdColumnHeader.js +3 -1
  88. package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
  89. package/dist/components/EntityTreeTable/hooks/useTableColumns.d.ts.map +1 -1
  90. package/dist/components/EntityTreeTable/hooks/useTableColumns.js +24 -19
  91. package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
  92. package/dist/components/Forum/DiscussionEmpty.css +1 -1
  93. package/dist/components/Forum/DiscussionEmpty.module.js +4 -4
  94. package/dist/components/Forum/DiscussionEmpty.module.js.map +1 -1
  95. package/dist/components/Forum/DiscussionEmpty.module.scss +3 -6
  96. package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPicker.css +1 -0
  97. package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPicker.d.ts +29 -0
  98. package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPicker.d.ts.map +1 -0
  99. package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPicker.js +229 -0
  100. package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPicker.js.map +1 -0
  101. package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPicker.module.js +9 -0
  102. package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPicker.module.js.map +1 -0
  103. package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPicker.module.scss +19 -0
  104. package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPickerModal.d.ts +23 -0
  105. package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPickerModal.d.ts.map +1 -0
  106. package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPickerModal.js +39 -0
  107. package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPickerModal.js.map +1 -0
  108. package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaVersionSelectionContext.d.ts +14 -0
  109. package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaVersionSelectionContext.d.ts.map +1 -0
  110. package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaVersionSelectionContext.js +12 -0
  111. package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaVersionSelectionContext.js.map +1 -0
  112. package/dist/components/JsonSchema/JsonSchemaPicker/VersionSelectionType.d.ts +17 -0
  113. package/dist/components/JsonSchema/JsonSchemaPicker/VersionSelectionType.d.ts.map +1 -0
  114. package/dist/components/JsonSchema/JsonSchemaPicker/VersionSelectionType.js +8 -0
  115. package/dist/components/JsonSchema/JsonSchemaPicker/VersionSelectionType.js.map +1 -0
  116. package/dist/components/JsonSchema/JsonSchemaPicker/index.d.ts +6 -0
  117. package/dist/components/JsonSchema/JsonSchemaPicker/index.d.ts.map +1 -0
  118. package/dist/components/JsonSchema/JsonSchemaPicker/index.js +4 -0
  119. package/dist/components/JsonSchema/JsonSchemaPicker/useJsonSchemaOrganizations.d.ts +20 -0
  120. package/dist/components/JsonSchema/JsonSchemaPicker/useJsonSchemaOrganizations.d.ts.map +1 -0
  121. package/dist/components/JsonSchema/JsonSchemaPicker/useJsonSchemaOrganizations.js +25 -0
  122. package/dist/components/JsonSchema/JsonSchemaPicker/useJsonSchemaOrganizations.js.map +1 -0
  123. package/dist/components/JsonSchema/JsonSchemaPicker/useJsonSchemaSelection.d.ts +35 -0
  124. package/dist/components/JsonSchema/JsonSchemaPicker/useJsonSchemaSelection.d.ts.map +1 -0
  125. package/dist/components/JsonSchema/JsonSchemaPicker/useJsonSchemaSelection.js +60 -0
  126. package/dist/components/JsonSchema/JsonSchemaPicker/useJsonSchemaSelection.js.map +1 -0
  127. package/dist/components/ProjectInfo/ProjectInfo.css +1 -1
  128. package/dist/components/ProjectInfo/ProjectInfo.module.js +5 -5
  129. package/dist/components/ProjectInfo/ProjectInfo.module.js.map +1 -1
  130. package/dist/components/ProjectInfo/ProjectInfo.module.scss +2 -4
  131. package/dist/components/ProjectInfo/ProjectInfoPopover.d.ts.map +1 -1
  132. package/dist/components/ProjectInfo/ProjectInfoPopover.js +17 -16
  133. package/dist/components/ProjectInfo/ProjectInfoPopover.js.map +1 -1
  134. package/dist/components/ProjectStorage/ProjectDataAvailability.d.ts.map +1 -1
  135. package/dist/components/ProjectStorage/ProjectDataAvailability.js +16 -16
  136. package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
  137. package/dist/components/ProvenanceGraph/ProvenanceGraph.d.ts.map +1 -1
  138. package/dist/components/ProvenanceGraph/ProvenanceGraph.js +95 -95
  139. package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
  140. package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js +2 -2
  141. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.d.ts.map +1 -1
  142. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js +116 -91
  143. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
  144. package/dist/components/SynapseChat/SynapseChat.d.ts.map +1 -1
  145. package/dist/components/SynapseChat/SynapseChat.js +40 -40
  146. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  147. package/dist/components/SynapseChat/SynapseChatInteraction.d.ts +3 -2
  148. package/dist/components/SynapseChat/SynapseChatInteraction.d.ts.map +1 -1
  149. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  150. package/dist/components/SynapseChat/components/AttachmentChip/AttachmentChip.css +1 -1
  151. package/dist/components/SynapseChat/components/AttachmentChip/AttachmentChip.d.ts.map +1 -1
  152. package/dist/components/SynapseChat/components/AttachmentChip/AttachmentChip.js +0 -7
  153. package/dist/components/SynapseChat/components/AttachmentChip/AttachmentChip.js.map +1 -1
  154. package/dist/components/SynapseChat/components/AttachmentChip/AttachmentChip.module.js +2 -2
  155. package/dist/components/SynapseChat/components/AttachmentChip/AttachmentChip.module.js.map +1 -1
  156. package/dist/components/SynapseChat/components/AttachmentChip/AttachmentChip.module.scss +12 -2
  157. package/dist/components/SynapseChat/components/ChatAttachmentStrip/ChatAttachmentStrip.css +1 -1
  158. package/dist/components/SynapseChat/components/ChatAttachmentStrip/ChatAttachmentStrip.module.js +3 -3
  159. package/dist/components/SynapseChat/components/ChatAttachmentStrip/ChatAttachmentStrip.module.js.map +1 -1
  160. package/dist/components/SynapseChat/components/ChatAttachmentStrip/ChatAttachmentStrip.module.scss +5 -1
  161. package/dist/components/TanStackTable/ColumnHeader.d.ts +7 -0
  162. package/dist/components/TanStackTable/ColumnHeader.d.ts.map +1 -1
  163. package/dist/components/TanStackTable/ColumnHeader.js +10 -9
  164. package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
  165. package/dist/components/TanStackTable/StyledVirtualTanStackTable.d.ts +8 -0
  166. package/dist/components/TanStackTable/StyledVirtualTanStackTable.d.ts.map +1 -1
  167. package/dist/components/TanStackTable/StyledVirtualTanStackTable.js +31 -22
  168. package/dist/components/TanStackTable/StyledVirtualTanStackTable.js.map +1 -1
  169. package/dist/components/TanStackTable/useFetchNextPageOnScrollToBottom.d.ts +21 -0
  170. package/dist/components/TanStackTable/useFetchNextPageOnScrollToBottom.d.ts.map +1 -0
  171. package/dist/components/TanStackTable/useFetchNextPageOnScrollToBottom.js +22 -0
  172. package/dist/components/TanStackTable/useFetchNextPageOnScrollToBottom.js.map +1 -0
  173. package/dist/components/entity/metadata/AnnotationsTable.js +2 -2
  174. package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
  175. package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.d.ts.map +1 -1
  176. package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.js +8 -8
  177. package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.js.map +1 -1
  178. package/dist/components/entity/page/title_bar/EntityPageTitleBar.d.ts +0 -1
  179. package/dist/components/entity/page/title_bar/EntityPageTitleBar.d.ts.map +1 -1
  180. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js +22 -22
  181. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
  182. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.d.ts.map +1 -1
  183. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +62 -68
  184. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  185. package/dist/components/styled/StyledTableContainer.d.ts +1 -0
  186. package/dist/components/styled/StyledTableContainer.d.ts.map +1 -1
  187. package/dist/components/styled/StyledTableContainer.js +3 -3
  188. package/dist/components/styled/StyledTableContainer.js.map +1 -1
  189. package/dist/mocks/eDuc/mockEDucTemplates.d.ts +7 -0
  190. package/dist/mocks/eDuc/mockEDucTemplates.d.ts.map +1 -0
  191. package/dist/mocks/eDuc/mockEDucTemplates.js +18 -0
  192. package/dist/mocks/eDuc/mockEDucTemplates.js.map +1 -0
  193. package/dist/mocks/jsonschema/mockJsonSchemaListing.d.ts +31 -0
  194. package/dist/mocks/jsonschema/mockJsonSchemaListing.d.ts.map +1 -0
  195. package/dist/mocks/jsonschema/mockJsonSchemaListing.js +101 -0
  196. package/dist/mocks/jsonschema/mockJsonSchemaListing.js.map +1 -0
  197. package/dist/mocks/msw/handlers/eDucTemplateHandlers.d.ts +2 -0
  198. package/dist/mocks/msw/handlers/eDucTemplateHandlers.d.ts.map +1 -0
  199. package/dist/mocks/msw/handlers/eDucTemplateHandlers.js +14 -0
  200. package/dist/mocks/msw/handlers/eDucTemplateHandlers.js.map +1 -0
  201. package/dist/mocks/msw/handlers/jsonSchemaListingHandlers.d.ts +8 -0
  202. package/dist/mocks/msw/handlers/jsonSchemaListingHandlers.d.ts.map +1 -0
  203. package/dist/mocks/msw/handlers/jsonSchemaListingHandlers.js +30 -0
  204. package/dist/mocks/msw/handlers/jsonSchemaListingHandlers.js.map +1 -0
  205. package/dist/mocks/msw/handlers.d.ts.map +1 -1
  206. package/dist/mocks/msw/handlers.js +55 -51
  207. package/dist/mocks/msw/handlers.js.map +1 -1
  208. package/dist/style/abstracts/_cssVariables.scss +13 -0
  209. package/dist/style/components/entity_finder/_details-view.scss +0 -10
  210. package/dist/style/main.css +1 -1
  211. package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
  212. package/dist/synapse-client/SynapseClient.js +2 -6
  213. package/dist/synapse-client/SynapseClient.js.map +1 -1
  214. package/dist/synapse-queries/KeyFactory.d.ts +3 -0
  215. package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
  216. package/dist/synapse-queries/KeyFactory.js +9 -0
  217. package/dist/synapse-queries/KeyFactory.js.map +1 -1
  218. package/dist/synapse-queries/dataaccess/useEDuc.d.ts +3 -3
  219. package/dist/synapse-queries/dataaccess/useEDuc.d.ts.map +1 -1
  220. package/dist/synapse-queries/dataaccess/useEDuc.js +40 -35
  221. package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
  222. package/dist/synapse-queries/entity/index.d.ts +0 -2
  223. package/dist/synapse-queries/entity/index.d.ts.map +1 -1
  224. package/dist/synapse-queries/entity/index.js +8 -10
  225. package/dist/synapse-queries/index.d.ts +1 -0
  226. package/dist/synapse-queries/index.d.ts.map +1 -1
  227. package/dist/synapse-queries/index.js +136 -128
  228. package/dist/synapse-queries/index.js.map +1 -1
  229. package/dist/synapse-queries/jsonschema/index.d.ts +6 -0
  230. package/dist/synapse-queries/jsonschema/index.d.ts.map +1 -0
  231. package/dist/synapse-queries/jsonschema/index.js +6 -0
  232. package/dist/synapse-queries/jsonschema/useEntityBoundSchema.d.ts.map +1 -0
  233. package/dist/synapse-queries/{entity → jsonschema}/useEntityBoundSchema.js +1 -1
  234. package/dist/synapse-queries/jsonschema/useEntityBoundSchema.js.map +1 -0
  235. package/dist/synapse-queries/jsonschema/useListJsonSchemaVersions.d.ts +26 -0
  236. package/dist/synapse-queries/jsonschema/useListJsonSchemaVersions.d.ts.map +1 -0
  237. package/dist/synapse-queries/jsonschema/useListJsonSchemaVersions.js +36 -0
  238. package/dist/synapse-queries/jsonschema/useListJsonSchemaVersions.js.map +1 -0
  239. package/dist/synapse-queries/jsonschema/useListJsonSchemasInfinite.d.ts +8 -0
  240. package/dist/synapse-queries/jsonschema/useListJsonSchemasInfinite.d.ts.map +1 -0
  241. package/dist/synapse-queries/jsonschema/useListJsonSchemasInfinite.js +21 -0
  242. package/dist/synapse-queries/jsonschema/useListJsonSchemasInfinite.js.map +1 -0
  243. package/dist/synapse-queries/jsonschema/useListOrganizations.d.ts +8 -0
  244. package/dist/synapse-queries/jsonschema/useListOrganizations.d.ts.map +1 -0
  245. package/dist/synapse-queries/jsonschema/useListOrganizations.js +22 -0
  246. package/dist/synapse-queries/jsonschema/useListOrganizations.js.map +1 -0
  247. package/dist/synapse-queries/jsonschema/useSchema.d.ts.map +1 -0
  248. package/dist/synapse-queries/{entity → jsonschema}/useSchema.js +1 -1
  249. package/dist/synapse-queries/jsonschema/useSchema.js.map +1 -0
  250. package/dist/testutils/VirtualizedTableTestUtils.js +17 -0
  251. package/dist/testutils/VirtualizedTableTestUtils.js.map +1 -0
  252. package/dist/theme/palette/Palettes.d.ts.map +1 -1
  253. package/dist/theme/palette/Palettes.js +13 -0
  254. package/dist/theme/palette/Palettes.js.map +1 -1
  255. package/dist/tsconfig.build.tsbuildinfo +1 -1
  256. package/dist/utils/APIConstants.d.ts +1 -0
  257. package/dist/utils/APIConstants.d.ts.map +1 -1
  258. package/dist/utils/APIConstants.js +2 -2
  259. package/dist/utils/APIConstants.js.map +1 -1
  260. package/package.json +4 -4
  261. package/dist/synapse-queries/entity/useEntityBoundSchema.d.ts.map +0 -1
  262. package/dist/synapse-queries/entity/useEntityBoundSchema.js.map +0 -1
  263. package/dist/synapse-queries/entity/useSchema.d.ts.map +0 -1
  264. package/dist/synapse-queries/entity/useSchema.js.map +0 -1
  265. /package/dist/synapse-queries/{entity → jsonschema}/useEntityBoundSchema.d.ts +0 -0
  266. /package/dist/synapse-queries/{entity → jsonschema}/useSchema.d.ts +0 -0
@@ -1,50 +1,94 @@
1
- import { useGetResearchProject as e, useUpdateResearchProject as t } from "../../../../synapse-queries/dataaccess/useAccessRequirements.js";
1
+ import { useGetDataAccessRequestForUpdate as e, useGetResearchProject as t, useUpdateDataAccessRequest as ee, useUpdateResearchProject as n } from "../../../../synapse-queries/dataaccess/useAccessRequirements.js";
2
2
  import "../../../../synapse-queries/index.js";
3
- import n from "../../../IconSvg/IconSvg.js";
4
- import r, { getWordCount as i } from "../../../TextField/TextFieldWithWordLimit.js";
5
- import a from "../ManagedACTAccessRequirementFormWikiWrapper.js";
3
+ import r from "../../../IconSvg/IconSvg.js";
4
+ import i, { getWordCount as a } from "../../../TextField/TextFieldWithWordLimit.js";
5
+ import te from "../../../UserSearchBox/UserSearchBox.js";
6
+ import ne from "../ManagedACTAccessRequirementFormWikiWrapper.js";
6
7
  import o from "../../../HelpPopover/index.js";
7
- import { useEffect as s, useState as c } from "react";
8
- import { Alert as l, Box as u, Button as d, DialogActions as f, DialogContent as p, DialogTitle as m, IconButton as h, Stack as g, TextField as _, Typography as v } from "@mui/material";
9
- import { Fragment as y, jsx as b, jsxs as x } from "react/jsx-runtime";
10
- import S from "lodash-es/isEmpty";
11
- import { InfoTwoTone as C } from "@mui/icons-material";
8
+ import { useEffect as s, useRef as c, useState as l } from "react";
9
+ import { Alert as re, Box as u, Button as d, DialogActions as ie, DialogContent as f, DialogTitle as p, IconButton as m, Stack as h, TextField as g, Typography as _ } from "@mui/material";
10
+ import { Fragment as v, jsx as y, jsxs as b } from "react/jsx-runtime";
11
+ import { TYPE_FILTER as ae } from "@sage-bionetworks/synapse-types";
12
+ import x from "lodash-es/isEmpty";
13
+ import { InfoTwoTone as S } from "@mui/icons-material";
12
14
  //#region src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.tsx
13
- var w = 50, T = 750;
14
- function E(v) {
15
- let { onSave: E, managedACTAccessRequirement: O, onHide: k } = v, [A, j] = c(""), [M, N] = c(""), [P, F] = c(""), [I, L] = c(), [R, z] = c(!1), { data: B, isLoading: V } = e(String(O.id), { staleTime: Infinity });
15
+ var C = 50, w = 750;
16
+ function T(T) {
17
+ let { onSave: D, managedACTAccessRequirement: O, onHide: k } = T, A = !!O.eDucTemplateId, [j, M] = l(""), [N, P] = l(""), [F, I] = l(""), [L, R] = l(null), [z, B] = l(""), [V, H] = l(), [U, W] = l(!1), { data: G, isLoading: K } = t(String(O.id), { staleTime: Infinity }), { data: q, isLoading: oe } = e(String(O.id), {
18
+ enabled: A,
19
+ staleTime: Infinity
20
+ }), J = c(q);
16
21
  s(() => {
17
- S(A) && B?.projectLead && j(B?.projectLead), S(M) && B?.institution && N(B?.institution), S(P) && B?.intendedDataUseStatement && F(B?.intendedDataUseStatement);
22
+ J.current = q;
23
+ }, [q]), s(() => {
24
+ x(j) && G?.projectLead && M(G?.projectLead), x(N) && G?.institution && P(G?.institution), x(F) && G?.intendedDataUseStatement && I(G?.intendedDataUseStatement);
18
25
  }, [
19
- B?.institution,
20
- B?.intendedDataUseStatement,
21
- B?.projectLead
26
+ G?.institution,
27
+ G?.intendedDataUseStatement,
28
+ G?.projectLead
29
+ ]), s(() => {
30
+ if (!A || !q) return;
31
+ let e = q.principalInvestigator;
32
+ L === null && e?.userId && R(e.userId), x(z) && e?.institutionalEmail && B(e.institutionalEmail);
33
+ }, [
34
+ A,
35
+ q?.principalInvestigator?.userId,
36
+ q?.principalInvestigator?.institutionalEmail
22
37
  ]);
23
- let { mutate: H, isPending: U } = t({
24
- onSuccess: (e) => {
25
- E && E(e);
26
- },
27
- onError: (e) => {
28
- console.log("RequestDataAccessStep1: Error updating research project data: ", e), L({
29
- key: "error",
30
- message: G(e.reason)
38
+ let { mutateAsync: se, isPending: Y } = n({ onError: (e) => {
39
+ console.log("RequestDataAccessStep1: Error updating research project data: ", e), H({
40
+ key: "error",
41
+ message: Z(e.reason)
42
+ });
43
+ } }), { mutateAsync: ce, isPending: le } = ee({ onError: (e) => {
44
+ console.log("RequestDataAccessStep1: Error updating data access request: ", e), H({
45
+ key: "error",
46
+ message: Z(e.reason)
47
+ });
48
+ } }), X = K || A && oe || Y || le, Z = (e = "") => /* @__PURE__ */ b(v, { children: [
49
+ /* @__PURE__ */ y("strong", { children: "Unable to update research project data." }),
50
+ /* @__PURE__ */ y("br", {}),
51
+ e
52
+ ] }), Q = async (e) => {
53
+ if (e.preventDefault(), !U) {
54
+ W(!0);
55
+ return;
56
+ }
57
+ let t;
58
+ try {
59
+ t = await se({
60
+ ...G,
61
+ accessRequirementId: String(O.id),
62
+ institution: N,
63
+ projectLead: j,
64
+ intendedDataUseStatement: F || void 0
31
65
  });
66
+ } catch {
67
+ W(!1);
68
+ return;
32
69
  }
33
- }), W = V || U, G = (e = "") => /* @__PURE__ */ x(y, { children: [
34
- /* @__PURE__ */ b("strong", { children: "Unable to update research project data." }),
35
- /* @__PURE__ */ b("br", {}),
36
- e
37
- ] }), K = (e) => {
38
- e.preventDefault(), R ? (H({
39
- ...B,
40
- accessRequirementId: String(O.id),
41
- institution: M,
42
- projectLead: A,
43
- intendedDataUseStatement: P || void 0
44
- }), z(!1)) : z(!0);
45
- }, q = A && M && (!O.isIDURequired || P && i(P) >= w && i(P) <= T);
46
- return /* @__PURE__ */ x(y, { children: [
47
- /* @__PURE__ */ b(m, { children: /* @__PURE__ */ x(g, {
70
+ if (A && J.current) {
71
+ let e = J.current, t = {
72
+ ...e.principalInvestigator,
73
+ userId: L ?? void 0,
74
+ name: j || void 0,
75
+ institutionalEmail: z || void 0
76
+ };
77
+ try {
78
+ await ce({
79
+ ...e,
80
+ institution: N,
81
+ principalInvestigator: t
82
+ });
83
+ } catch {
84
+ W(!1);
85
+ return;
86
+ }
87
+ }
88
+ D && D(t);
89
+ }, $ = j && N && (!A || L && z) && (!O.isIDURequired || F && a(F) >= C && a(F) <= w);
90
+ return /* @__PURE__ */ b(v, { children: [
91
+ /* @__PURE__ */ y(p, { children: /* @__PURE__ */ b(h, {
48
92
  direction: "row",
49
93
  sx: {
50
94
  alignItems: "center",
@@ -52,10 +96,10 @@ function E(v) {
52
96
  },
53
97
  children: [
54
98
  "Request Access",
55
- /* @__PURE__ */ b(u, { sx: { flexGrow: 1 } }),
56
- /* @__PURE__ */ b(h, {
99
+ /* @__PURE__ */ y(u, { sx: { flexGrow: 1 } }),
100
+ /* @__PURE__ */ y(m, {
57
101
  onClick: k,
58
- children: /* @__PURE__ */ b(n, {
102
+ children: /* @__PURE__ */ y(r, {
59
103
  icon: "close",
60
104
  wrap: !1,
61
105
  sx: { color: "grey.700" }
@@ -63,52 +107,92 @@ function E(v) {
63
107
  })
64
108
  ]
65
109
  }) }),
66
- R && /* @__PURE__ */ b(D, { isIDURequired: O.isIDURequired }),
67
- !R && /* @__PURE__ */ x(p, { children: [/* @__PURE__ */ b(a, {
110
+ U && /* @__PURE__ */ y(E, { isIDURequired: O.isIDURequired }),
111
+ !U && /* @__PURE__ */ b(f, { children: [/* @__PURE__ */ y(ne, {
68
112
  managedACTAccessRequirementId: String(O.id),
69
- children: /* @__PURE__ */ x(u, {
113
+ children: /* @__PURE__ */ b(u, {
70
114
  component: "form",
71
- onSubmit: K,
115
+ onSubmit: (e) => {
116
+ Q(e);
117
+ },
72
118
  sx: { "& .MuiTextField-root": { marginBottom: "20px" } },
73
119
  children: [
74
- /* @__PURE__ */ b(_, {
120
+ /* @__PURE__ */ y(g, {
75
121
  id: "project-lead",
76
- label: /* @__PURE__ */ x(u, {
122
+ label: /* @__PURE__ */ b(u, {
77
123
  sx: { display: "inline" },
78
- children: [/* @__PURE__ */ b("span", { children: "First and last names of your project lead or PI" }), /* @__PURE__ */ b(o, {
79
- Icon: C,
124
+ children: [/* @__PURE__ */ y("span", { children: "First and last names of your Project Lead or PI" }), /* @__PURE__ */ y(o, {
125
+ Icon: S,
80
126
  containerSx: { float: "right" },
81
127
  markdownText: "This field is required.\n\nProvide the name of one person who serves as the project leader or PI."
82
128
  })]
83
129
  }),
84
130
  placeholder: "First and last name of individual leading the project, ex: Jane Smith",
85
131
  fullWidth: !0,
86
- disabled: W,
132
+ disabled: X,
87
133
  type: "text",
88
- value: A,
134
+ value: j,
89
135
  required: !0,
90
- onChange: (e) => j(e.target.value),
136
+ onChange: (e) => M(e.target.value),
91
137
  slotProps: { inputLabel: { sx: { width: "100%" } } }
92
138
  }),
93
- /* @__PURE__ */ b(_, {
139
+ /* @__PURE__ */ y(g, {
94
140
  id: "institution",
95
141
  label: "Your Institution",
96
142
  placeholder: "Full, unabbreviated name of the institution you are affiliated with",
97
143
  fullWidth: !0,
98
144
  type: "text",
99
- disabled: W,
100
- value: M,
145
+ disabled: X,
146
+ value: N,
101
147
  required: !0,
102
- onChange: (e) => N(e.target.value)
148
+ onChange: (e) => P(e.target.value)
103
149
  }),
104
- O.isIDURequired && /* @__PURE__ */ b(r, {
150
+ A && /* @__PURE__ */ b(u, {
151
+ sx: { mb: "20px" },
152
+ children: [
153
+ /* @__PURE__ */ b(_, {
154
+ component: "label",
155
+ htmlFor: "pi-user",
156
+ variant: "body1",
157
+ sx: {
158
+ display: "block",
159
+ mb: 1
160
+ },
161
+ children: ["Synapse username of your Project Lead or PI", /* @__PURE__ */ b(u, {
162
+ component: "span",
163
+ sx: { color: "error.main" },
164
+ children: [" ", "*"]
165
+ })]
166
+ }),
167
+ /* @__PURE__ */ y(te, {
168
+ inputId: "pi-user",
169
+ typeFilter: ae.USERS_ONLY,
170
+ value: L,
171
+ onChange: (e) => R(e),
172
+ placeholder: "Search Synapse for your Project Lead or PI"
173
+ }),
174
+ /* @__PURE__ */ y(g, {
175
+ id: "pi-email",
176
+ label: "Institutional Email of your Project Lead or PI",
177
+ type: "email",
178
+ placeholder: "pi@example.edu",
179
+ fullWidth: !0,
180
+ disabled: X,
181
+ value: z,
182
+ required: !0,
183
+ onChange: (e) => B(e.target.value),
184
+ sx: { mt: 2 }
185
+ })
186
+ ]
187
+ }),
188
+ O.isIDURequired && /* @__PURE__ */ y(i, {
105
189
  id: "data-use",
106
- minWords: w,
107
- maxWords: T,
108
- label: /* @__PURE__ */ x(u, {
190
+ minWords: C,
191
+ maxWords: w,
192
+ label: /* @__PURE__ */ b(u, {
109
193
  sx: { display: "inline" },
110
- children: [/* @__PURE__ */ b("span", { children: "Intended Data Use (IDU)" }), /* @__PURE__ */ b(o, {
111
- Icon: C,
194
+ children: [/* @__PURE__ */ y("span", { children: "Intended Data Use (IDU)" }), /* @__PURE__ */ y(o, {
195
+ Icon: S,
112
196
  containerSx: { float: "right" },
113
197
  markdownText: "This field is required.\n\nCheck the instructions for data access for information on completing the IDU statement."
114
198
  })]
@@ -119,95 +203,97 @@ function E(v) {
119
203
  required: !0,
120
204
  multiline: !0,
121
205
  rows: 9,
122
- disabled: W,
123
- value: P,
124
- onChange: (e) => F(e.target.value)
206
+ disabled: X,
207
+ value: F,
208
+ onChange: (e) => I(e.target.value)
125
209
  })
126
210
  ]
127
211
  })
128
- }), I && /* @__PURE__ */ b(l, {
129
- severity: I.key,
130
- children: I.message
212
+ }), V && /* @__PURE__ */ y(re, {
213
+ severity: V.key,
214
+ children: V.message
131
215
  })] }),
132
- /* @__PURE__ */ x(f, { children: [
133
- R && /* @__PURE__ */ x(y, { children: [/* @__PURE__ */ b(d, {
216
+ /* @__PURE__ */ b(ie, { children: [
217
+ U && /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y(d, {
134
218
  variant: "outlined",
135
219
  onClick: () => {
136
- z(!1);
220
+ W(!1);
137
221
  },
138
222
  children: "Back"
139
- }), /* @__PURE__ */ b(u, { sx: { flexGrow: 1 } })] }),
140
- /* @__PURE__ */ b(d, {
223
+ }), /* @__PURE__ */ y(u, { sx: { flexGrow: 1 } })] }),
224
+ /* @__PURE__ */ y(d, {
141
225
  variant: "outlined",
142
- disabled: W,
226
+ disabled: X,
143
227
  onClick: k,
144
228
  children: "Cancel"
145
229
  }),
146
- /* @__PURE__ */ b(d, {
230
+ /* @__PURE__ */ y(d, {
147
231
  variant: "contained",
148
232
  type: "submit",
149
- disabled: W || !q,
150
- onClick: K,
151
- children: U ? "Saving..." : "Save and Continue"
233
+ disabled: X || !$,
234
+ onClick: (e) => {
235
+ Q(e);
236
+ },
237
+ children: Y ? "Saving..." : "Save and Continue"
152
238
  })
153
239
  ] })
154
240
  ] });
155
241
  }
156
- function D(e) {
242
+ function E(e) {
157
243
  let { isIDURequired: t } = e;
158
- return /* @__PURE__ */ x(p, { children: [
159
- /* @__PURE__ */ b(v, {
244
+ return /* @__PURE__ */ b(f, { children: [
245
+ /* @__PURE__ */ y(_, {
160
246
  variant: "body1",
161
247
  gutterBottom: !0,
162
248
  sx: { fontWeight: 700 },
163
249
  children: "Double-check your submission before continuing!"
164
250
  }),
165
- /* @__PURE__ */ b(v, {
251
+ /* @__PURE__ */ y(_, {
166
252
  variant: "body1",
167
253
  gutterBottom: !0,
168
254
  children: "Here are some common reasons a request is rejected:"
169
255
  }),
170
- /* @__PURE__ */ x(u, {
256
+ /* @__PURE__ */ b(u, {
171
257
  component: "ul",
172
258
  children: [
173
- /* @__PURE__ */ x(v, {
259
+ /* @__PURE__ */ b(_, {
174
260
  component: "li",
175
261
  variant: "body1",
176
262
  gutterBottom: !0,
177
263
  children: [
178
264
  "Is your ",
179
- /* @__PURE__ */ b("i", { children: "Project Lead" }),
265
+ /* @__PURE__ */ y("i", { children: "Project Lead" }),
180
266
  " a full name (first and last)?"
181
267
  ]
182
268
  }),
183
- /* @__PURE__ */ x(v, {
269
+ /* @__PURE__ */ b(_, {
184
270
  component: "li",
185
271
  variant: "body1",
186
272
  gutterBottom: !0,
187
273
  children: [
188
274
  "Is the ",
189
- /* @__PURE__ */ b("i", { children: "Institution" }),
275
+ /* @__PURE__ */ y("i", { children: "Institution" }),
190
276
  " name you provided unabbreviated and verifiable? You must give the full name of your institution, so we can look it up."
191
277
  ]
192
278
  }),
193
- t && /* @__PURE__ */ x(v, {
279
+ t && /* @__PURE__ */ b(_, {
194
280
  component: "li",
195
281
  variant: "body1",
196
282
  gutterBottom: !0,
197
283
  children: [
198
284
  "Did you provide clear ",
199
- /* @__PURE__ */ b("i", { children: "study objectives" }),
285
+ /* @__PURE__ */ y("i", { children: "study objectives" }),
200
286
  " and your",
201
287
  " ",
202
- /* @__PURE__ */ b("i", { children: "study design" }),
288
+ /* @__PURE__ */ y("i", { children: "study design" }),
203
289
  " and ",
204
- /* @__PURE__ */ b("i", { children: "analysis plan" }),
290
+ /* @__PURE__ */ y("i", { children: "analysis plan" }),
205
291
  " in the IDU section?"
206
292
  ]
207
293
  })
208
294
  ]
209
295
  }),
210
- /* @__PURE__ */ b(v, {
296
+ /* @__PURE__ */ y(_, {
211
297
  variant: "body1",
212
298
  gutterBottom: !0,
213
299
  children: "Please take a minute to make sure your submission is correct. If your submission is rejected, you’ll have to resubmit after a few days!"
@@ -215,6 +301,6 @@ function D(e) {
215
301
  ] });
216
302
  }
217
303
  //#endregion
218
- export { E as default };
304
+ export { T as default };
219
305
 
220
306
  //# sourceMappingURL=ResearchProjectForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResearchProjectForm.js","names":[],"sources":["../../../../../src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.tsx"],"sourcesContent":["import {\n useGetResearchProject,\n useUpdateResearchProject,\n} from '@/synapse-queries'\nimport { InfoTwoTone } from '@mui/icons-material'\nimport {\n Alert,\n Box,\n Button,\n DialogActions,\n DialogContent,\n DialogTitle,\n IconButton,\n Stack,\n TextField,\n Typography,\n} from '@mui/material'\nimport {\n ManagedACTAccessRequirement,\n ResearchProject,\n} from '@sage-bionetworks/synapse-types'\nimport isEmpty from 'lodash-es/isEmpty'\nimport { FormEvent, useEffect, useState } from 'react'\nimport HelpPopover from '../../../HelpPopover'\nimport IconSvg from '../../../IconSvg/IconSvg'\nimport TextFieldWithWordLimit, {\n getWordCount,\n} from '../../../TextField/TextFieldWithWordLimit'\nimport { AlertProps } from '../DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm'\nimport ManagedACTAccessRequirementFormWikiWrapper from '../ManagedACTAccessRequirementFormWikiWrapper'\n\nconst INTENDED_DATA_USE_MIN_WORD_COUNT = 50\nconst INTENDED_DATA_USE_MAX_WORD_COUNT = 750 // SWC-7526\n\nexport type ResearchProjectFormProps = {\n /* The access requirement to which the research project refers */\n managedACTAccessRequirement: ManagedACTAccessRequirement\n onSave?: (researchProject: ResearchProject) => void\n onHide?: () => void\n}\n\n/**\n * Step 1 of the Data Access Request/Renewal flow prompts the user to provide information about their ResearchProject.\n */\nexport default function ResearchProjectForm(props: ResearchProjectFormProps) {\n const { onSave, managedACTAccessRequirement, onHide } = props\n const [projectLead, setProjectLead] = useState<string>('')\n const [institution, setInstitution] = useState<string>('')\n const [intendedDataUseStatement, setIntendedDataUseStatement] =\n useState<string>('')\n const [alert, setAlert] = useState<AlertProps | undefined>()\n\n const [showConfirmationScreen, setShowConfirmationScreen] = useState(false)\n\n const { data: existingResearchProject, isLoading: isLoadingInitialData } =\n useGetResearchProject(String(managedACTAccessRequirement.id), {\n // Infinite staleTime ensures this won't be refetched unless explicitly invalidated by the mutation\n staleTime: Infinity,\n })\n\n // Populate the form with existing data if it exists\n useEffect(() => {\n if (isEmpty(projectLead) && existingResearchProject?.projectLead) {\n setProjectLead(existingResearchProject?.projectLead)\n }\n if (isEmpty(institution) && existingResearchProject?.institution) {\n setInstitution(existingResearchProject?.institution)\n }\n if (\n isEmpty(intendedDataUseStatement) &&\n existingResearchProject?.intendedDataUseStatement\n ) {\n setIntendedDataUseStatement(\n existingResearchProject?.intendedDataUseStatement,\n )\n }\n }, [\n existingResearchProject?.institution,\n existingResearchProject?.intendedDataUseStatement,\n existingResearchProject?.projectLead,\n // PORTALS-3774: initialize from existingResearchProject, but do not reset institution,\n // projectLead, or intendedDataUseStatement if they have been modified\n ])\n\n const { mutate, isPending: updateIsPending } = useUpdateResearchProject({\n onSuccess: data => {\n if (onSave) {\n onSave(data)\n }\n },\n onError: e => {\n console.log(\n 'RequestDataAccessStep1: Error updating research project data: ',\n e,\n )\n setAlert({\n key: 'error',\n message: getErrorMessage(e.reason),\n })\n },\n })\n\n const isLoading = isLoadingInitialData || updateIsPending\n\n const getErrorMessage = (reason: string = '') => {\n return (\n <>\n <strong>Unable to update research project data.</strong>\n <br />\n {reason}\n </>\n )\n }\n\n const handleSubmit = (e: FormEvent<HTMLElement>) => {\n e.preventDefault()\n if (!showConfirmationScreen) {\n setShowConfirmationScreen(true)\n } else {\n mutate({\n ...existingResearchProject,\n accessRequirementId: String(managedACTAccessRequirement.id),\n institution: institution,\n projectLead: projectLead,\n intendedDataUseStatement: intendedDataUseStatement || undefined,\n })\n setShowConfirmationScreen(false)\n }\n }\n\n const formIsValid =\n projectLead &&\n institution &&\n (!managedACTAccessRequirement.isIDURequired ||\n (intendedDataUseStatement &&\n getWordCount(intendedDataUseStatement) >=\n INTENDED_DATA_USE_MIN_WORD_COUNT &&\n getWordCount(intendedDataUseStatement) <=\n INTENDED_DATA_USE_MAX_WORD_COUNT))\n\n return (\n <>\n <DialogTitle>\n <Stack\n direction=\"row\"\n sx={{\n alignItems: 'center',\n gap: '5px',\n }}\n >\n Request Access\n <Box sx={{ flexGrow: 1 }} />\n <IconButton onClick={onHide}>\n <IconSvg icon={'close'} wrap={false} sx={{ color: 'grey.700' }} />\n </IconButton>\n </Stack>\n </DialogTitle>\n {showConfirmationScreen && (\n <ConfirmationScreenContent\n isIDURequired={managedACTAccessRequirement.isIDURequired}\n />\n )}\n {!showConfirmationScreen && (\n <DialogContent>\n <ManagedACTAccessRequirementFormWikiWrapper\n managedACTAccessRequirementId={String(\n managedACTAccessRequirement.id,\n )}\n >\n <Box\n component={'form'}\n onSubmit={handleSubmit}\n sx={{\n '& .MuiTextField-root': {\n marginBottom: '20px',\n },\n }}\n >\n <TextField\n id={'project-lead'}\n label={\n <Box sx={{ display: 'inline' }}>\n <span>First and last names of your project lead or PI</span>\n <HelpPopover\n Icon={InfoTwoTone}\n containerSx={{ float: 'right' }}\n markdownText={`This field is required.\\n\\nProvide the name of one person who serves as the project leader or PI.`}\n />\n </Box>\n }\n placeholder={\n 'First and last name of individual leading the project, ex: Jane Smith'\n }\n fullWidth\n disabled={isLoading}\n type=\"text\"\n value={projectLead}\n required\n onChange={e => setProjectLead(e.target.value)}\n slotProps={{\n inputLabel: {\n // allows floating the help popover all the way to the right\n sx: { width: '100%' },\n },\n }}\n />\n <TextField\n id={'institution'}\n label={'Your Institution'}\n placeholder={\n 'Full, unabbreviated name of the institution you are affiliated with'\n }\n fullWidth\n type=\"text\"\n disabled={isLoading}\n value={institution}\n required\n onChange={e => setInstitution(e.target.value)}\n />\n\n {managedACTAccessRequirement.isIDURequired && (\n <TextFieldWithWordLimit\n id={'data-use'}\n minWords={INTENDED_DATA_USE_MIN_WORD_COUNT}\n maxWords={INTENDED_DATA_USE_MAX_WORD_COUNT}\n label={\n <Box sx={{ display: 'inline' }}>\n <span>Intended Data Use (IDU)</span>\n <HelpPopover\n Icon={InfoTwoTone}\n containerSx={{ float: 'right' }}\n markdownText={`This field is required.\\n\\nCheck the instructions for data access for information on completing the IDU statement.`}\n />\n </Box>\n }\n helperText={\n managedACTAccessRequirement.isIDUPublic\n ? 'This will be visible to the public'\n : undefined\n }\n placeholder={\n 'Outline the objectives of your proposed research involving this data, and your study design and analysis plan.'\n }\n fullWidth\n required\n multiline\n rows={9}\n disabled={isLoading}\n value={intendedDataUseStatement}\n onChange={e => setIntendedDataUseStatement(e.target.value)}\n />\n )}\n </Box>\n </ManagedACTAccessRequirementFormWikiWrapper>\n {alert && <Alert severity={alert.key}>{alert.message}</Alert>}\n </DialogContent>\n )}\n <DialogActions>\n {showConfirmationScreen && (\n <>\n <Button\n variant={'outlined'}\n onClick={() => {\n setShowConfirmationScreen(false)\n }}\n >\n Back\n </Button>\n <Box sx={{ flexGrow: 1 }}>{/* spacer */}</Box>\n </>\n )}\n <Button variant=\"outlined\" disabled={isLoading} onClick={onHide}>\n Cancel\n </Button>\n <Button\n variant=\"contained\"\n type=\"submit\"\n disabled={isLoading || !formIsValid}\n onClick={handleSubmit}\n >\n {updateIsPending ? 'Saving...' : 'Save and Continue'}\n </Button>\n </DialogActions>\n </>\n )\n}\n\nfunction ConfirmationScreenContent(props: { isIDURequired: boolean }) {\n const { isIDURequired } = props\n return (\n <DialogContent>\n <Typography\n variant=\"body1\"\n gutterBottom\n sx={{\n fontWeight: 700,\n }}\n >\n Double-check your submission before continuing!\n </Typography>\n <Typography variant=\"body1\" gutterBottom>\n Here are some common reasons a request is rejected:\n </Typography>\n <Box component=\"ul\">\n <Typography component={'li'} variant=\"body1\" gutterBottom>\n Is your <i>Project Lead</i> a full name (first and last)?\n </Typography>\n <Typography component={'li'} variant=\"body1\" gutterBottom>\n Is the <i>Institution</i> name you provided unabbreviated and\n verifiable? You must give the full name of your institution, so we can\n look it up.\n </Typography>\n {isIDURequired && (\n <Typography component={'li'} variant=\"body1\" gutterBottom>\n Did you provide clear <i>study objectives</i> and your{' '}\n <i>study design</i> and <i>analysis plan</i> in the IDU section?\n </Typography>\n )}\n </Box>\n <Typography variant=\"body1\" gutterBottom>\n Please take a minute to make sure your submission is correct. If your\n submission is rejected, you’ll have to resubmit after a few days!\n </Typography>\n </DialogContent>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ResearchProjectForm.js","names":[],"sources":["../../../../../src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.tsx"],"sourcesContent":["import {\n useGetDataAccessRequestForUpdate,\n useGetResearchProject,\n useUpdateDataAccessRequest,\n useUpdateResearchProject,\n} from '@/synapse-queries'\nimport { InfoTwoTone } from '@mui/icons-material'\nimport {\n Alert,\n Box,\n Button,\n DialogActions,\n DialogContent,\n DialogTitle,\n IconButton,\n Stack,\n TextField,\n Typography,\n} from '@mui/material'\nimport {\n ManagedACTAccessRequirement,\n PrincipalInvestigator,\n Renewal,\n Request,\n ResearchProject,\n TYPE_FILTER,\n} from '@sage-bionetworks/synapse-types'\nimport isEmpty from 'lodash-es/isEmpty'\nimport { FormEvent, useEffect, useRef, useState } from 'react'\nimport HelpPopover from '../../../HelpPopover'\nimport IconSvg from '../../../IconSvg/IconSvg'\nimport TextFieldWithWordLimit, {\n getWordCount,\n} from '../../../TextField/TextFieldWithWordLimit'\nimport UserSearchBox from '../../../UserSearchBox/UserSearchBox'\nimport { AlertProps } from '../DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm'\nimport ManagedACTAccessRequirementFormWikiWrapper from '../ManagedACTAccessRequirementFormWikiWrapper'\n\nconst INTENDED_DATA_USE_MIN_WORD_COUNT = 50\nconst INTENDED_DATA_USE_MAX_WORD_COUNT = 750 // SWC-7526\n\nexport type ResearchProjectFormProps = {\n /* The access requirement to which the research project refers */\n managedACTAccessRequirement: ManagedACTAccessRequirement\n onSave?: (researchProject: ResearchProject) => void\n onHide?: () => void\n}\n\n/**\n * Step 1 of the Data Access Request/Renewal flow prompts the user to provide information about their ResearchProject.\n */\nexport default function ResearchProjectForm(props: ResearchProjectFormProps) {\n const { onSave, managedACTAccessRequirement, onHide } = props\n const isEDucEnabled = Boolean(managedACTAccessRequirement.eDucTemplateId)\n const [projectLead, setProjectLead] = useState<string>('')\n const [institution, setInstitution] = useState<string>('')\n const [intendedDataUseStatement, setIntendedDataUseStatement] =\n useState<string>('')\n const [piUserId, setPiUserId] = useState<string | null>(null)\n const [piEmail, setPiEmail] = useState<string>('')\n const [alert, setAlert] = useState<AlertProps | undefined>()\n\n const [showConfirmationScreen, setShowConfirmationScreen] = useState(false)\n\n const { data: existingResearchProject, isLoading: isLoadingInitialData } =\n useGetResearchProject(String(managedACTAccessRequirement.id), {\n // Infinite staleTime ensures this won't be refetched unless explicitly invalidated by the mutation\n staleTime: Infinity,\n })\n\n const {\n data: existingDataAccessRequest,\n isLoading: isLoadingDataAccessRequest,\n } = useGetDataAccessRequestForUpdate(String(managedACTAccessRequirement.id), {\n enabled: isEDucEnabled,\n staleTime: Infinity,\n })\n const existingDarRef = useRef(existingDataAccessRequest)\n useEffect(() => {\n existingDarRef.current = existingDataAccessRequest\n }, [existingDataAccessRequest])\n\n // Populate the form with existing data if it exists\n useEffect(() => {\n if (isEmpty(projectLead) && existingResearchProject?.projectLead) {\n setProjectLead(existingResearchProject?.projectLead)\n }\n if (isEmpty(institution) && existingResearchProject?.institution) {\n setInstitution(existingResearchProject?.institution)\n }\n if (\n isEmpty(intendedDataUseStatement) &&\n existingResearchProject?.intendedDataUseStatement\n ) {\n setIntendedDataUseStatement(\n existingResearchProject?.intendedDataUseStatement,\n )\n }\n }, [\n existingResearchProject?.institution,\n existingResearchProject?.intendedDataUseStatement,\n existingResearchProject?.projectLead,\n // PORTALS-3774: initialize from existingResearchProject, but do not reset institution,\n // projectLead, or intendedDataUseStatement if they have been modified\n ])\n\n // Prefill eDUC-only PI fields from any previously-saved DAR values.\n useEffect(() => {\n if (!isEDucEnabled || !existingDataAccessRequest) return\n const pi = existingDataAccessRequest.principalInvestigator\n if (piUserId === null && pi?.userId) {\n setPiUserId(pi.userId)\n }\n if (isEmpty(piEmail) && pi?.institutionalEmail) {\n setPiEmail(pi.institutionalEmail)\n }\n // PORTALS-4375: initialize from existingDataAccessRequest, but do not reset\n // fields once the user has interacted with them.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n isEDucEnabled,\n existingDataAccessRequest?.principalInvestigator?.userId,\n existingDataAccessRequest?.principalInvestigator?.institutionalEmail,\n ])\n\n const { mutateAsync: updateResearchProject, isPending: updateIsPending } =\n useUpdateResearchProject({\n onError: e => {\n console.log(\n 'RequestDataAccessStep1: Error updating research project data: ',\n e,\n )\n setAlert({\n key: 'error',\n message: getErrorMessage(e.reason),\n })\n },\n })\n\n const {\n mutateAsync: updateDataAccessRequest,\n isPending: updateDarIsPending,\n } = useUpdateDataAccessRequest({\n onError: e => {\n console.log(\n 'RequestDataAccessStep1: Error updating data access request: ',\n e,\n )\n setAlert({\n key: 'error',\n message: getErrorMessage(e.reason),\n })\n },\n })\n\n const isLoading =\n isLoadingInitialData ||\n (isEDucEnabled && isLoadingDataAccessRequest) ||\n updateIsPending ||\n updateDarIsPending\n\n const getErrorMessage = (reason: string = '') => {\n return (\n <>\n <strong>Unable to update research project data.</strong>\n <br />\n {reason}\n </>\n )\n }\n\n const handleSubmit = async (e: FormEvent<HTMLElement>) => {\n e.preventDefault()\n if (!showConfirmationScreen) {\n setShowConfirmationScreen(true)\n return\n }\n let updatedResearchProject: ResearchProject\n try {\n updatedResearchProject = await updateResearchProject({\n ...existingResearchProject,\n accessRequirementId: String(managedACTAccessRequirement.id),\n institution: institution,\n projectLead: projectLead,\n intendedDataUseStatement: intendedDataUseStatement || undefined,\n })\n } catch {\n setShowConfirmationScreen(false)\n return\n }\n if (isEDucEnabled && existingDarRef.current) {\n const existingDar = existingDarRef.current\n const nextPi: PrincipalInvestigator = {\n ...existingDar.principalInvestigator,\n userId: piUserId ?? undefined,\n name: projectLead || undefined,\n institutionalEmail: piEmail || undefined,\n }\n try {\n await updateDataAccessRequest({\n ...existingDar,\n institution: institution,\n principalInvestigator: nextPi,\n } as Request | Renewal)\n } catch {\n setShowConfirmationScreen(false)\n return\n }\n }\n if (onSave) {\n onSave(updatedResearchProject)\n }\n }\n\n const formIsValid =\n projectLead &&\n institution &&\n (!isEDucEnabled || (piUserId && piEmail)) &&\n (!managedACTAccessRequirement.isIDURequired ||\n (intendedDataUseStatement &&\n getWordCount(intendedDataUseStatement) >=\n INTENDED_DATA_USE_MIN_WORD_COUNT &&\n getWordCount(intendedDataUseStatement) <=\n INTENDED_DATA_USE_MAX_WORD_COUNT))\n\n return (\n <>\n <DialogTitle>\n <Stack\n direction=\"row\"\n sx={{\n alignItems: 'center',\n gap: '5px',\n }}\n >\n Request Access\n <Box sx={{ flexGrow: 1 }} />\n <IconButton onClick={onHide}>\n <IconSvg icon={'close'} wrap={false} sx={{ color: 'grey.700' }} />\n </IconButton>\n </Stack>\n </DialogTitle>\n {showConfirmationScreen && (\n <ConfirmationScreenContent\n isIDURequired={managedACTAccessRequirement.isIDURequired}\n />\n )}\n {!showConfirmationScreen && (\n <DialogContent>\n <ManagedACTAccessRequirementFormWikiWrapper\n managedACTAccessRequirementId={String(\n managedACTAccessRequirement.id,\n )}\n >\n <Box\n component={'form'}\n onSubmit={e => {\n void handleSubmit(e)\n }}\n sx={{\n '& .MuiTextField-root': {\n marginBottom: '20px',\n },\n }}\n >\n <TextField\n id={'project-lead'}\n label={\n <Box sx={{ display: 'inline' }}>\n <span>First and last names of your Project Lead or PI</span>\n <HelpPopover\n Icon={InfoTwoTone}\n containerSx={{ float: 'right' }}\n markdownText={`This field is required.\\n\\nProvide the name of one person who serves as the project leader or PI.`}\n />\n </Box>\n }\n placeholder={\n 'First and last name of individual leading the project, ex: Jane Smith'\n }\n fullWidth\n disabled={isLoading}\n type=\"text\"\n value={projectLead}\n required\n onChange={e => setProjectLead(e.target.value)}\n slotProps={{\n inputLabel: {\n // allows floating the help popover all the way to the right\n sx: { width: '100%' },\n },\n }}\n />\n <TextField\n id={'institution'}\n label={'Your Institution'}\n placeholder={\n 'Full, unabbreviated name of the institution you are affiliated with'\n }\n fullWidth\n type=\"text\"\n disabled={isLoading}\n value={institution}\n required\n onChange={e => setInstitution(e.target.value)}\n />\n\n {isEDucEnabled && (\n <Box sx={{ mb: '20px' }}>\n <Typography\n component=\"label\"\n htmlFor=\"pi-user\"\n variant=\"body1\"\n sx={{ display: 'block', mb: 1 }}\n >\n Synapse username of your Project Lead or PI\n <Box component=\"span\" sx={{ color: 'error.main' }}>\n {' '}\n *\n </Box>\n </Typography>\n <UserSearchBox\n inputId=\"pi-user\"\n typeFilter={TYPE_FILTER.USERS_ONLY}\n value={piUserId}\n onChange={principalId => setPiUserId(principalId)}\n placeholder=\"Search Synapse for your Project Lead or PI\"\n />\n <TextField\n id=\"pi-email\"\n label=\"Institutional Email of your Project Lead or PI\"\n type=\"email\"\n placeholder=\"pi@example.edu\"\n fullWidth\n disabled={isLoading}\n value={piEmail}\n required\n onChange={e => setPiEmail(e.target.value)}\n sx={{ mt: 2 }}\n />\n </Box>\n )}\n\n {managedACTAccessRequirement.isIDURequired && (\n <TextFieldWithWordLimit\n id={'data-use'}\n minWords={INTENDED_DATA_USE_MIN_WORD_COUNT}\n maxWords={INTENDED_DATA_USE_MAX_WORD_COUNT}\n label={\n <Box sx={{ display: 'inline' }}>\n <span>Intended Data Use (IDU)</span>\n <HelpPopover\n Icon={InfoTwoTone}\n containerSx={{ float: 'right' }}\n markdownText={`This field is required.\\n\\nCheck the instructions for data access for information on completing the IDU statement.`}\n />\n </Box>\n }\n helperText={\n managedACTAccessRequirement.isIDUPublic\n ? 'This will be visible to the public'\n : undefined\n }\n placeholder={\n 'Outline the objectives of your proposed research involving this data, and your study design and analysis plan.'\n }\n fullWidth\n required\n multiline\n rows={9}\n disabled={isLoading}\n value={intendedDataUseStatement}\n onChange={e => setIntendedDataUseStatement(e.target.value)}\n />\n )}\n </Box>\n </ManagedACTAccessRequirementFormWikiWrapper>\n {alert && <Alert severity={alert.key}>{alert.message}</Alert>}\n </DialogContent>\n )}\n <DialogActions>\n {showConfirmationScreen && (\n <>\n <Button\n variant={'outlined'}\n onClick={() => {\n setShowConfirmationScreen(false)\n }}\n >\n Back\n </Button>\n <Box sx={{ flexGrow: 1 }}>{/* spacer */}</Box>\n </>\n )}\n <Button variant=\"outlined\" disabled={isLoading} onClick={onHide}>\n Cancel\n </Button>\n <Button\n variant=\"contained\"\n type=\"submit\"\n disabled={isLoading || !formIsValid}\n onClick={e => {\n void handleSubmit(e)\n }}\n >\n {updateIsPending ? 'Saving...' : 'Save and Continue'}\n </Button>\n </DialogActions>\n </>\n )\n}\n\nfunction ConfirmationScreenContent(props: { isIDURequired: boolean }) {\n const { isIDURequired } = props\n return (\n <DialogContent>\n <Typography\n variant=\"body1\"\n gutterBottom\n sx={{\n fontWeight: 700,\n }}\n >\n Double-check your submission before continuing!\n </Typography>\n <Typography variant=\"body1\" gutterBottom>\n Here are some common reasons a request is rejected:\n </Typography>\n <Box component=\"ul\">\n <Typography component={'li'} variant=\"body1\" gutterBottom>\n Is your <i>Project Lead</i> a full name (first and last)?\n </Typography>\n <Typography component={'li'} variant=\"body1\" gutterBottom>\n Is the <i>Institution</i> name you provided unabbreviated and\n verifiable? You must give the full name of your institution, so we can\n look it up.\n </Typography>\n {isIDURequired && (\n <Typography component={'li'} variant=\"body1\" gutterBottom>\n Did you provide clear <i>study objectives</i> and your{' '}\n <i>study design</i> and <i>analysis plan</i> in the IDU section?\n </Typography>\n )}\n </Box>\n <Typography variant=\"body1\" gutterBottom>\n Please take a minute to make sure your submission is correct. If your\n submission is rejected, you’ll have to resubmit after a few days!\n </Typography>\n </DialogContent>\n )\n}\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { SxProps } from '@mui/material';
2
+ export declare const longFieldLabelSx: SxProps;
3
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,eAAO,MAAM,gBAAgB,EAAE,OAG9B,CAAA"}
@@ -0,0 +1,9 @@
1
+ //#region src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/styles.ts
2
+ var e = {
3
+ fontSize: "14px",
4
+ fontWeight: 400
5
+ };
6
+ //#endregion
7
+ export { e as longFieldLabelSx };
8
+
9
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","names":[],"sources":["../../../../src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/styles.ts"],"sourcesContent":["import { SxProps } from '@mui/material'\n\nexport const longFieldLabelSx: SxProps = {\n fontSize: '14px',\n fontWeight: 400,\n}\n"],"mappings":";AAEA,IAAa,IAA4B;CACvC,UAAU;CACV,YAAY;AACd"}
@@ -1,8 +1,9 @@
1
1
  import { IconButtonProps } from '@mui/material';
2
2
  export type CopyToClipboardIconProps = IconButtonProps & {
3
3
  value: string;
4
+ icon?: 'contentCopy' | 'contentCopyRounded';
4
5
  sizePx?: number;
5
6
  };
6
- export declare function CopyToClipboardIcon({ value, sizePx, ...props }: CopyToClipboardIconProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function CopyToClipboardIcon({ value, sizePx, icon, ...props }: CopyToClipboardIconProps): import("react/jsx-runtime").JSX.Element;
7
8
  export default CopyToClipboardIcon;
8
9
  //# sourceMappingURL=CopyToClipboardIcon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CopyToClipboardIcon.d.ts","sourceRoot":"","sources":["../../src/components/CopyToClipboardIcon.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,eAAe,EAAW,MAAM,eAAe,CAAA;AAKpE,MAAM,MAAM,wBAAwB,GAAG,eAAe,GAAG;IACvD,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,MAAW,EACX,GAAG,KAAK,EACT,EAAE,wBAAwB,2CAgC1B;AAED,eAAe,mBAAmB,CAAA"}
1
+ {"version":3,"file":"CopyToClipboardIcon.d.ts","sourceRoot":"","sources":["../../src/components/CopyToClipboardIcon.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,eAAe,EAAW,MAAM,eAAe,CAAA;AAKpE,MAAM,MAAM,wBAAwB,GAAG,eAAe,GAAG;IACvD,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,aAAa,GAAG,oBAAoB,CAAA;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,MAAW,EACX,IAAoB,EACpB,GAAG,KAAK,EACT,EAAE,wBAAwB,2CAgC1B;AAED,eAAe,mBAAmB,CAAA"}
@@ -5,8 +5,8 @@ import { createRef as r } from "react";
5
5
  import { IconButton as i, Tooltip as a } from "@mui/material";
6
6
  import { jsx as o } from "react/jsx-runtime";
7
7
  //#region src/components/CopyToClipboardIcon.tsx
8
- function s({ value: s, sizePx: c = 16, ...l }) {
9
- let u = r(), d = (n, r) => (n) => {
8
+ function s({ value: s, sizePx: c = 16, icon: l = "contentCopy", ...u }) {
9
+ let d = r(), f = (n, r) => (n) => {
10
10
  n.preventDefault(), t(r).then(() => {
11
11
  e("Successfully copied to clipboard", "success");
12
12
  });
@@ -14,12 +14,12 @@ function s({ value: s, sizePx: c = 16, ...l }) {
14
14
  return /* @__PURE__ */ o(a, {
15
15
  title: "Copy to Clipboard",
16
16
  children: /* @__PURE__ */ o(i, {
17
- ref: u,
18
- ...l,
19
- onClick: d(u, s),
17
+ ref: d,
18
+ ...u,
19
+ onClick: f(d, s),
20
20
  "aria-label": "Copy to clipboard",
21
21
  children: /* @__PURE__ */ o(n, {
22
- icon: "contentCopy",
22
+ icon: l,
23
23
  wrap: !1,
24
24
  fontSize: "inherit",
25
25
  sx: c ? {
@@ -1 +1 @@
1
- {"version":3,"file":"CopyToClipboardIcon.js","names":[],"sources":["../../src/components/CopyToClipboardIcon.tsx"],"sourcesContent":["import { copyStringToClipboard } from '@/utils/functions/StringUtils'\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material'\nimport { createRef, RefObject, SyntheticEvent } from 'react'\nimport IconSvg from './IconSvg'\nimport { displayToast } from './ToastMessage/ToastMessage'\n\nexport type CopyToClipboardIconProps = IconButtonProps & {\n value: string\n sizePx?: number\n}\n\nexport function CopyToClipboardIcon({\n value,\n sizePx = 16,\n ...props\n}: CopyToClipboardIconProps) {\n const ref = createRef<HTMLButtonElement>()\n\n const copyToClipboard =\n (ref: RefObject<HTMLElement | null>, value: string) =>\n (event: SyntheticEvent) => {\n event.preventDefault()\n\n copyStringToClipboard(value).then(() => {\n displayToast('Successfully copied to clipboard', 'success')\n })\n }\n\n return (\n <Tooltip title={'Copy to Clipboard'}>\n <IconButton\n ref={ref}\n {...props}\n onClick={copyToClipboard(ref, value)}\n aria-label=\"Copy to clipboard\"\n >\n <IconSvg\n icon=\"contentCopy\"\n wrap={false}\n fontSize={'inherit'}\n sx={\n sizePx ? { width: `${sizePx}px`, height: `${sizePx}px` } : undefined\n }\n />\n </IconButton>\n </Tooltip>\n )\n}\n\nexport default CopyToClipboardIcon\n"],"mappings":";;;;;;;AAWA,SAAgB,EAAoB,EAClC,UACA,YAAS,IACT,GAAG,KACwB;CAC3B,IAAM,IAAM,EAA6B,GAEnC,KACH,GAAoC,OACpC,MAA0B;EAGzB,AAFA,EAAM,eAAe,GAErB,EAAsB,CAAK,EAAE,WAAW;GACtC,EAAa,oCAAoC,SAAS;EAC5D,CAAC;CACH;CAEF,OACE,kBAAC,GAAD;EAAS,OAAO;YACd,kBAAC,GAAD;GACO;GACL,GAAI;GACJ,SAAS,EAAgB,GAAK,CAAK;GACnC,cAAW;aAEX,kBAAC,GAAD;IACE,MAAK;IACL,MAAM;IACN,UAAU;IACV,IACE,IAAS;KAAE,OAAO,GAAG,EAAO;KAAK,QAAQ,GAAG,EAAO;IAAI,IAAI,KAAA;GAE9D,CAAA;EACS,CAAA;CACL,CAAA;AAEb"}
1
+ {"version":3,"file":"CopyToClipboardIcon.js","names":[],"sources":["../../src/components/CopyToClipboardIcon.tsx"],"sourcesContent":["import { copyStringToClipboard } from '@/utils/functions/StringUtils'\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material'\nimport { createRef, RefObject, SyntheticEvent } from 'react'\nimport IconSvg from './IconSvg'\nimport { displayToast } from './ToastMessage/ToastMessage'\n\nexport type CopyToClipboardIconProps = IconButtonProps & {\n value: string\n icon?: 'contentCopy' | 'contentCopyRounded'\n sizePx?: number\n}\n\nexport function CopyToClipboardIcon({\n value,\n sizePx = 16,\n icon = 'contentCopy',\n ...props\n}: CopyToClipboardIconProps) {\n const ref = createRef<HTMLButtonElement>()\n\n const copyToClipboard =\n (ref: RefObject<HTMLElement | null>, value: string) =>\n (event: SyntheticEvent) => {\n event.preventDefault()\n\n copyStringToClipboard(value).then(() => {\n displayToast('Successfully copied to clipboard', 'success')\n })\n }\n\n return (\n <Tooltip title={'Copy to Clipboard'}>\n <IconButton\n ref={ref}\n {...props}\n onClick={copyToClipboard(ref, value)}\n aria-label=\"Copy to clipboard\"\n >\n <IconSvg\n icon={icon}\n wrap={false}\n fontSize={'inherit'}\n sx={\n sizePx ? { width: `${sizePx}px`, height: `${sizePx}px` } : undefined\n }\n />\n </IconButton>\n </Tooltip>\n )\n}\n\nexport default CopyToClipboardIcon\n"],"mappings":";;;;;;;AAYA,SAAgB,EAAoB,EAClC,UACA,YAAS,IACT,UAAO,eACP,GAAG,KACwB;CAC3B,IAAM,IAAM,EAA6B,GAEnC,KACH,GAAoC,OACpC,MAA0B;EAGzB,AAFA,EAAM,eAAe,GAErB,EAAsB,CAAK,EAAE,WAAW;GACtC,EAAa,oCAAoC,SAAS;EAC5D,CAAC;CACH;CAEF,OACE,kBAAC,GAAD;EAAS,OAAO;YACd,kBAAC,GAAD;GACO;GACL,GAAI;GACJ,SAAS,EAAgB,GAAK,CAAK;GACnC,cAAW;aAEX,kBAAC,GAAD;IACQ;IACN,MAAM;IACN,UAAU;IACV,IACE,IAAS;KAAE,OAAO,GAAG,EAAO;KAAK,QAAQ,GAAG,EAAO;IAAI,IAAI,KAAA;GAE9D,CAAA;EACS,CAAA;CACL,CAAA;AAEb"}
@@ -1 +1 @@
1
- {"version":3,"file":"SynapseGrid.d.ts","sourceRoot":"","sources":["../../../src/components/DataGrid/SynapseGrid.tsx"],"names":[],"mappings":"AAqBA,OAAO,EACL,iBAAiB,EAElB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EACL,GAAG,EAOJ,MAAM,OAAO,CAAA;AAkBd,MAAM,MAAM,gBAAgB,GAAG;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,GAAG,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAA;IACpD,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;CACjD,CAAA;AA2fD,iBAAS,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CAM3C;AAED,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"SynapseGrid.d.ts","sourceRoot":"","sources":["../../../src/components/DataGrid/SynapseGrid.tsx"],"names":[],"mappings":"AAsBA,OAAO,EACL,iBAAiB,EAElB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EACL,GAAG,EAOJ,MAAM,OAAO,CAAA;AAkBd,MAAM,MAAM,gBAAgB,GAAG;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,GAAG,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAA;IACpD,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;CACjD,CAAA;AA6gBD,iBAAS,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CAM3C;AAED,eAAe,WAAW,CAAA"}