synapse-react-client 4.0.35 → 4.0.37

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 (511) hide show
  1. package/dist/SWC.index.js +1 -1
  2. package/dist/aridhia-queries/AridhiaKeyFactory.d.ts +24 -0
  3. package/dist/aridhia-queries/AridhiaKeyFactory.d.ts.map +1 -0
  4. package/dist/aridhia-queries/AridhiaKeyFactory.js +49 -0
  5. package/dist/aridhia-queries/AridhiaKeyFactory.js.map +1 -0
  6. package/dist/aridhia-queries/FairFormPayload.d.ts +45 -0
  7. package/dist/aridhia-queries/FairFormPayload.d.ts.map +1 -0
  8. package/dist/aridhia-queries/FairFormPayload.js +0 -0
  9. package/dist/aridhia-queries/TransferType.d.ts +10 -0
  10. package/dist/aridhia-queries/TransferType.d.ts.map +1 -0
  11. package/dist/aridhia-queries/TransferType.js +0 -0
  12. package/dist/aridhia-queries/aridhiaTokenExchange.js +6 -6
  13. package/dist/aridhia-queries/index.d.ts +12 -0
  14. package/dist/aridhia-queries/index.d.ts.map +1 -1
  15. package/dist/aridhia-queries/index.js +12 -2
  16. package/dist/aridhia-queries/useAridhiaQuery.d.ts +38 -0
  17. package/dist/aridhia-queries/useAridhiaQuery.d.ts.map +1 -0
  18. package/dist/aridhia-queries/useAridhiaQuery.js +78 -0
  19. package/dist/aridhia-queries/useAridhiaQuery.js.map +1 -0
  20. package/dist/aridhia-queries/useGetAridhiaDatasetCatalogue.d.ts +6 -0
  21. package/dist/aridhia-queries/useGetAridhiaDatasetCatalogue.d.ts.map +1 -0
  22. package/dist/aridhia-queries/useGetAridhiaDatasetCatalogue.js +13 -0
  23. package/dist/aridhia-queries/useGetAridhiaDatasetCatalogue.js.map +1 -0
  24. package/dist/aridhia-queries/useGetAridhiaDatasetSettings.d.ts +6 -0
  25. package/dist/aridhia-queries/useGetAridhiaDatasetSettings.d.ts.map +1 -0
  26. package/dist/aridhia-queries/useGetAridhiaDatasetSettings.js +13 -0
  27. package/dist/aridhia-queries/useGetAridhiaDatasetSettings.js.map +1 -0
  28. package/dist/aridhia-queries/useGetAridhiaDictionaries.d.ts +6 -0
  29. package/dist/aridhia-queries/useGetAridhiaDictionaries.d.ts.map +1 -0
  30. package/dist/aridhia-queries/useGetAridhiaDictionaries.js +13 -0
  31. package/dist/aridhia-queries/useGetAridhiaDictionaries.js.map +1 -0
  32. package/dist/aridhia-queries/useGetAridhiaRequests.d.ts +5 -4
  33. package/dist/aridhia-queries/useGetAridhiaRequests.d.ts.map +1 -1
  34. package/dist/aridhia-queries/useGetAridhiaRequests.js +11 -18
  35. package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
  36. package/dist/aridhia-queries/useGetAridhiaWorkflow.d.ts +13 -0
  37. package/dist/aridhia-queries/useGetAridhiaWorkflow.d.ts.map +1 -0
  38. package/dist/aridhia-queries/useGetAridhiaWorkflow.js +19 -0
  39. package/dist/aridhia-queries/useGetAridhiaWorkflow.js.map +1 -0
  40. package/dist/aridhia-queries/useGetAridhiaWorkspaceLocations.d.ts +6 -0
  41. package/dist/aridhia-queries/useGetAridhiaWorkspaceLocations.d.ts.map +1 -0
  42. package/dist/aridhia-queries/useGetAridhiaWorkspaceLocations.js +13 -0
  43. package/dist/aridhia-queries/useGetAridhiaWorkspaceLocations.js.map +1 -0
  44. package/dist/aridhia-queries/useGetAridhiaWorkspaceRequestForm.d.ts +19 -0
  45. package/dist/aridhia-queries/useGetAridhiaWorkspaceRequestForm.d.ts.map +1 -0
  46. package/dist/aridhia-queries/useGetAridhiaWorkspaceRequestForm.js +17 -0
  47. package/dist/aridhia-queries/useGetAridhiaWorkspaceRequestForm.js.map +1 -0
  48. package/dist/aridhia-queries/useGetAridhiaWorkspaces.d.ts +6 -0
  49. package/dist/aridhia-queries/useGetAridhiaWorkspaces.d.ts.map +1 -0
  50. package/dist/aridhia-queries/useGetAridhiaWorkspaces.js +19 -0
  51. package/dist/aridhia-queries/useGetAridhiaWorkspaces.js.map +1 -0
  52. package/dist/aridhia-queries/useSubmitAridhiaDar.d.ts +27 -0
  53. package/dist/aridhia-queries/useSubmitAridhiaDar.d.ts.map +1 -0
  54. package/dist/aridhia-queries/useSubmitAridhiaDar.js +38 -0
  55. package/dist/aridhia-queries/useSubmitAridhiaDar.js.map +1 -0
  56. package/dist/assets/icons/emailWithNotification.js +15 -15
  57. package/dist/assets/icons/emailWithNotification.js.map +1 -1
  58. package/dist/assets/icons/emailWithNotification.svg +13 -13
  59. package/dist/components/AccessRequirement/EntityActionsRequired.d.ts +0 -1
  60. package/dist/components/AccessRequirement/EntityActionsRequired.d.ts.map +1 -1
  61. package/dist/components/AccessRequirement/EntityActionsRequired.js +3 -6
  62. package/dist/components/AccessRequirement/EntityActionsRequired.js.map +1 -1
  63. package/dist/components/AccessRequirementList/AccessRequirementList.d.ts.map +1 -1
  64. package/dist/components/AccessRequirementList/AccessRequirementList.js +65 -57
  65. package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
  66. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.d.ts.map +1 -1
  67. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js +1 -1
  68. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
  69. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts.map +1 -1
  70. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js +67 -57
  71. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js.map +1 -1
  72. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts.map +1 -1
  73. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js +33 -32
  74. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js.map +1 -1
  75. package/dist/components/Aridhia/AridhiaAccessStatus.d.ts.map +1 -1
  76. package/dist/components/Aridhia/AridhiaAccessStatus.js +39 -18
  77. package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
  78. package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.d.ts +32 -0
  79. package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.d.ts.map +1 -0
  80. package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.js +285 -0
  81. package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.js.map +1 -0
  82. package/dist/components/Aridhia/DarWizard/DarAboutStep.d.ts +4 -0
  83. package/dist/components/Aridhia/DarWizard/DarAboutStep.d.ts.map +1 -0
  84. package/dist/components/Aridhia/DarWizard/DarAboutStep.js +17 -0
  85. package/dist/components/Aridhia/DarWizard/DarAboutStep.js.map +1 -0
  86. package/dist/components/Aridhia/DarWizard/DarCompleteStep.d.ts +27 -0
  87. package/dist/components/Aridhia/DarWizard/DarCompleteStep.d.ts.map +1 -0
  88. package/dist/components/Aridhia/DarWizard/DarCompleteStep.js +96 -0
  89. package/dist/components/Aridhia/DarWizard/DarCompleteStep.js.map +1 -0
  90. package/dist/components/Aridhia/DarWizard/DarDestinationStep.d.ts +28 -0
  91. package/dist/components/Aridhia/DarWizard/DarDestinationStep.d.ts.map +1 -0
  92. package/dist/components/Aridhia/DarWizard/DarDestinationStep.js +128 -0
  93. package/dist/components/Aridhia/DarWizard/DarDestinationStep.js.map +1 -0
  94. package/dist/components/Aridhia/DarWizard/DarProjectStep.d.ts +4 -0
  95. package/dist/components/Aridhia/DarWizard/DarProjectStep.d.ts.map +1 -0
  96. package/dist/components/Aridhia/DarWizard/DarProjectStep.js +17 -0
  97. package/dist/components/Aridhia/DarWizard/DarProjectStep.js.map +1 -0
  98. package/dist/components/Aridhia/DarWizard/DarSectionForm.d.ts +13 -0
  99. package/dist/components/Aridhia/DarWizard/DarSectionForm.d.ts.map +1 -0
  100. package/dist/components/Aridhia/DarWizard/DarSectionForm.js +23 -0
  101. package/dist/components/Aridhia/DarWizard/DarSectionForm.js.map +1 -0
  102. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts +11 -0
  103. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts.map +1 -0
  104. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js +47 -0
  105. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js.map +1 -0
  106. package/dist/components/Aridhia/DarWizard/DarWorkspaceStep.d.ts +16 -0
  107. package/dist/components/Aridhia/DarWizard/DarWorkspaceStep.d.ts.map +1 -0
  108. package/dist/components/Aridhia/DarWizard/DarWorkspaceStep.js +33 -0
  109. package/dist/components/Aridhia/DarWizard/DarWorkspaceStep.js.map +1 -0
  110. package/dist/components/Aridhia/DarWizard/useDarDraft.d.ts +32 -0
  111. package/dist/components/Aridhia/DarWizard/useDarDraft.d.ts.map +1 -0
  112. package/dist/components/Aridhia/DarWizard/useDarDraft.js +44 -0
  113. package/dist/components/Aridhia/DarWizard/useDarDraft.js.map +1 -0
  114. package/dist/components/Aridhia/FairLabelField.d.ts +8 -0
  115. package/dist/components/Aridhia/FairLabelField.d.ts.map +1 -0
  116. package/dist/components/Aridhia/FairLabelField.js +13 -0
  117. package/dist/components/Aridhia/FairLabelField.js.map +1 -0
  118. package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts +3 -3
  119. package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts.map +1 -1
  120. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js +1 -1
  121. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
  122. package/dist/components/Aridhia/fairFormToRjsf.d.ts +36 -0
  123. package/dist/components/Aridhia/fairFormToRjsf.d.ts.map +1 -0
  124. package/dist/components/Aridhia/fairFormToRjsf.js +137 -0
  125. package/dist/components/Aridhia/fairFormToRjsf.js.map +1 -0
  126. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.d.ts.map +1 -1
  127. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js +2 -2
  128. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
  129. package/dist/components/CardContainer/CardConfiguration.d.ts +8 -0
  130. package/dist/components/CardContainer/CardConfiguration.d.ts.map +1 -1
  131. package/dist/components/CardContainer/CardContainer.d.ts.map +1 -1
  132. package/dist/components/CardContainer/CardContainer.js +1 -1
  133. package/dist/components/CardContainer/CardContainer.js.map +1 -1
  134. package/dist/components/ChallengeSubmission/ChallengeSubmission.d.ts.map +1 -1
  135. package/dist/components/ChallengeSubmission/ChallengeSubmission.js +2 -2
  136. package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
  137. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.d.ts.map +1 -1
  138. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +3 -3
  139. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
  140. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js +1 -1
  141. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
  142. package/dist/components/ChangePassword/ChangePasswordWithToken.d.ts.map +1 -1
  143. package/dist/components/ChangePassword/ChangePasswordWithToken.js +58 -23
  144. package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
  145. package/dist/components/ChangePassword/useChangePasswordFormState.d.ts.map +1 -1
  146. package/dist/components/ChangePassword/useChangePasswordFormState.js +13 -3
  147. package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
  148. package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js +2 -2
  149. package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
  150. package/dist/components/CreateTableViewWizard/TableNameForm.d.ts.map +1 -1
  151. package/dist/components/CreateTableViewWizard/TableNameForm.js +11 -14
  152. package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
  153. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  154. package/dist/components/DataGrid/SynapseGrid.js +121 -117
  155. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  156. package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts +1 -1
  157. package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts.map +1 -1
  158. package/dist/components/DataGrid/SyncGridWithSourceButton.js +55 -61
  159. package/dist/components/DataGrid/SyncGridWithSourceButton.js.map +1 -1
  160. package/dist/components/DataGrid/columns/DateTimeColumn.d.ts +21 -1
  161. package/dist/components/DataGrid/columns/DateTimeColumn.d.ts.map +1 -1
  162. package/dist/components/DataGrid/columns/DateTimeColumn.js +73 -29
  163. package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
  164. package/dist/components/DataGrid/columns/NumberColumn.d.ts +31 -0
  165. package/dist/components/DataGrid/columns/NumberColumn.d.ts.map +1 -0
  166. package/dist/components/DataGrid/columns/NumberColumn.js +27 -0
  167. package/dist/components/DataGrid/columns/NumberColumn.js.map +1 -0
  168. package/dist/components/DataGrid/components/ReorderColumnsButton.d.ts +1 -0
  169. package/dist/components/DataGrid/components/ReorderColumnsButton.d.ts.map +1 -1
  170. package/dist/components/DataGrid/components/ReorderColumnsButton.js +17 -16
  171. package/dist/components/DataGrid/components/ReorderColumnsButton.js.map +1 -1
  172. package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts +2 -0
  173. package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts.map +1 -1
  174. package/dist/components/DataGrid/components/ReorderColumnsDialog.js +104 -65
  175. package/dist/components/DataGrid/components/ReorderColumnsDialog.js.map +1 -1
  176. package/dist/components/DataGrid/components/contextMenu.d.ts.map +1 -1
  177. package/dist/components/DataGrid/components/contextMenu.js +15 -15
  178. package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
  179. package/dist/components/DataGrid/useDataGridWebsocket.js +1 -1
  180. package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
  181. package/dist/components/DataGrid/useMergeGridWithSource.d.ts +1 -5
  182. package/dist/components/DataGrid/useMergeGridWithSource.d.ts.map +1 -1
  183. package/dist/components/DataGrid/useMergeGridWithSource.js +21 -28
  184. package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
  185. package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
  186. package/dist/components/DataGrid/utils/columnFactory.js +55 -51
  187. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  188. package/dist/components/DataGrid/utils/computeDefaultColumnOrder.d.ts.map +1 -1
  189. package/dist/components/DataGrid/utils/computeDefaultColumnOrder.js +9 -8
  190. package/dist/components/DataGrid/utils/computeDefaultColumnOrder.js.map +1 -1
  191. package/dist/components/DatasetHosting/DatasetDownloadButton.d.ts +40 -0
  192. package/dist/components/DatasetHosting/DatasetDownloadButton.d.ts.map +1 -0
  193. package/dist/components/DatasetHosting/DatasetDownloadButton.js +124 -0
  194. package/dist/components/DatasetHosting/DatasetDownloadButton.js.map +1 -0
  195. package/dist/components/DatasetHosting/DatasetHosting.d.ts +97 -0
  196. package/dist/components/DatasetHosting/DatasetHosting.d.ts.map +1 -0
  197. package/dist/components/DatasetHosting/DatasetHosting.js +64 -0
  198. package/dist/components/DatasetHosting/DatasetHosting.js.map +1 -0
  199. package/dist/components/DatasetHosting/DatasetHostingAdornment.d.ts +15 -0
  200. package/dist/components/DatasetHosting/DatasetHostingAdornment.d.ts.map +1 -0
  201. package/dist/components/DatasetHosting/DatasetHostingAdornment.js +23 -0
  202. package/dist/components/DatasetHosting/DatasetHostingAdornment.js.map +1 -0
  203. package/dist/components/DatasetHosting/index.d.ts +7 -0
  204. package/dist/components/DatasetHosting/index.d.ts.map +1 -0
  205. package/dist/components/DatasetHosting/index.js +4 -0
  206. package/dist/components/DownloadCart/ActionRequiredListItem.d.ts +0 -2
  207. package/dist/components/DownloadCart/ActionRequiredListItem.d.ts.map +1 -1
  208. package/dist/components/DownloadCart/ActionRequiredListItem.js +2 -3
  209. package/dist/components/DownloadCart/ActionRequiredListItem.js.map +1 -1
  210. package/dist/components/DownloadCart/DownloadCartPage.d.ts +1 -2
  211. package/dist/components/DownloadCart/DownloadCartPage.d.ts.map +1 -1
  212. package/dist/components/DownloadCart/DownloadCartPage.js +49 -49
  213. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  214. package/dist/components/DownloadCart/DownloadListActionsRequired.d.ts +1 -5
  215. package/dist/components/DownloadCart/DownloadListActionsRequired.d.ts.map +1 -1
  216. package/dist/components/DownloadCart/DownloadListActionsRequired.js +5 -6
  217. package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
  218. package/dist/components/DownloadCart/RequestDownloadCard.d.ts +0 -2
  219. package/dist/components/DownloadCart/RequestDownloadCard.d.ts.map +1 -1
  220. package/dist/components/DownloadCart/RequestDownloadCard.js +28 -32
  221. package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
  222. package/dist/components/DownloadCart/TableQueryActionsRequired.d.ts +0 -2
  223. package/dist/components/DownloadCart/TableQueryActionsRequired.d.ts.map +1 -1
  224. package/dist/components/DownloadCart/TableQueryActionsRequired.js +7 -8
  225. package/dist/components/DownloadCart/TableQueryActionsRequired.js.map +1 -1
  226. package/dist/components/DownloadCart/index.d.ts +1 -2
  227. package/dist/components/DownloadCart/index.d.ts.map +1 -1
  228. package/dist/components/DropdownSelect/DropdownSelect.d.ts.map +1 -1
  229. package/dist/components/DropdownSelect/DropdownSelect.js +1 -1
  230. package/dist/components/DropdownSelect/DropdownSelect.js.map +1 -1
  231. package/dist/components/EntityFinder/tree/EntityTree.d.ts.map +1 -1
  232. package/dist/components/EntityFinder/tree/EntityTree.js +1 -1
  233. package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
  234. package/dist/components/EntityFinder/tree/VirtualizedTree.js +1 -1
  235. package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
  236. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js +1 -1
  237. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  238. package/dist/components/GenericCard/CardActionButtonStyleContext.d.ts +10 -0
  239. package/dist/components/GenericCard/CardActionButtonStyleContext.d.ts.map +1 -0
  240. package/dist/components/GenericCard/CardActionButtonStyleContext.js +10 -0
  241. package/dist/components/GenericCard/CardActionButtonStyleContext.js.map +1 -0
  242. package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js +41 -41
  243. package/dist/components/GenericCard/GenericCardActionButton.d.ts +5 -0
  244. package/dist/components/GenericCard/GenericCardActionButton.d.ts.map +1 -1
  245. package/dist/components/GenericCard/GenericCardActionButton.js +28 -11
  246. package/dist/components/GenericCard/GenericCardActionButton.js.map +1 -1
  247. package/dist/components/GenericCard/TableRowGenericCard.d.ts +24 -0
  248. package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
  249. package/dist/components/GenericCard/TableRowGenericCard.js +158 -137
  250. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  251. package/dist/components/JSONArrayEditor/JSONArrayEditor.d.ts.map +1 -1
  252. package/dist/components/JSONArrayEditor/JSONArrayEditor.js +42 -42
  253. package/dist/components/JSONArrayEditor/JSONArrayEditor.js.map +1 -1
  254. package/dist/components/JsonSchemaForm/CustomFormContext.d.ts +9 -0
  255. package/dist/components/JsonSchemaForm/CustomFormContext.d.ts.map +1 -1
  256. package/dist/components/JsonSchemaForm/JsonSchemaForm.css +1 -0
  257. package/dist/components/JsonSchemaForm/JsonSchemaForm.d.ts.map +1 -1
  258. package/dist/components/JsonSchemaForm/JsonSchemaForm.js +15 -13
  259. package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
  260. package/dist/components/JsonSchemaForm/JsonSchemaForm.module.js +5 -0
  261. package/dist/components/JsonSchemaForm/JsonSchemaForm.module.js.map +1 -0
  262. package/dist/components/JsonSchemaForm/JsonSchemaForm.module.scss +109 -0
  263. package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.d.ts.map +1 -1
  264. package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js +1 -1
  265. package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js.map +1 -1
  266. package/dist/components/JsonSchemaForm/templates/FieldTemplate.d.ts.map +1 -1
  267. package/dist/components/JsonSchemaForm/templates/FieldTemplate.js +6 -6
  268. package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
  269. package/dist/components/JsonSchemaForm/widgets/DateWidget.d.ts +9 -0
  270. package/dist/components/JsonSchemaForm/widgets/DateWidget.d.ts.map +1 -0
  271. package/dist/components/JsonSchemaForm/widgets/DateWidget.js +23 -0
  272. package/dist/components/JsonSchemaForm/widgets/DateWidget.js.map +1 -0
  273. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.css +1 -1
  274. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.d.ts +3 -2
  275. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.d.ts.map +1 -1
  276. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js +10 -12
  277. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js.map +1 -1
  278. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.module.js +8 -7
  279. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.module.js.map +1 -1
  280. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.module.scss +12 -2
  281. package/dist/components/Markdown/MarkdownEditor.js +1 -1
  282. package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
  283. package/dist/components/ProvenanceGraph/ProvenanceGraph.d.ts.map +1 -1
  284. package/dist/components/ProvenanceGraph/ProvenanceGraph.js +46 -46
  285. package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
  286. package/dist/components/QueryBuilder/QueryBuilderTypes.d.ts +39 -0
  287. package/dist/components/QueryBuilder/QueryBuilderTypes.d.ts.map +1 -0
  288. package/dist/components/QueryBuilder/QueryBuilderTypes.js +11 -0
  289. package/dist/components/QueryBuilder/QueryBuilderTypes.js.map +1 -0
  290. package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts +48 -0
  291. package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts.map +1 -0
  292. package/dist/components/QueryBuilder/queryBuilderTranslation.js +256 -0
  293. package/dist/components/QueryBuilder/queryBuilderTranslation.js.map +1 -0
  294. package/dist/components/QueryContext/QueryContext.d.ts +0 -1
  295. package/dist/components/QueryContext/QueryContext.d.ts.map +1 -1
  296. package/dist/components/QueryContext/QueryContext.js.map +1 -1
  297. package/dist/components/QueryWrapper/QueryWrapper.d.ts +0 -1
  298. package/dist/components/QueryWrapper/QueryWrapper.d.ts.map +1 -1
  299. package/dist/components/QueryWrapper/QueryWrapper.js +52 -53
  300. package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
  301. package/dist/components/QueryWrapperErrorBoundary.d.ts.map +1 -1
  302. package/dist/components/QueryWrapperErrorBoundary.js +4 -11
  303. package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
  304. package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js +1 -1
  305. package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js.map +1 -1
  306. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +1 -2
  307. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
  308. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +27 -25
  309. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  310. package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.d.ts +0 -9
  311. package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.d.ts.map +1 -1
  312. package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js +23 -31
  313. package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
  314. package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.d.ts.map +1 -1
  315. package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js +126 -125
  316. package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
  317. package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.d.ts.map +1 -1
  318. package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js +6 -5
  319. package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js.map +1 -1
  320. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts +2 -0
  321. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
  322. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +18 -13
  323. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
  324. package/dist/components/SearchQueryWrapper/SearchQueryWrapper.d.ts.map +1 -1
  325. package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js +0 -1
  326. package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js.map +1 -1
  327. package/dist/components/ShareThisPage/ShareThisPage.js +30 -29
  328. package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
  329. package/dist/components/StatisticsPlot.d.ts.map +1 -1
  330. package/dist/components/StatisticsPlot.js +1 -1
  331. package/dist/components/StatisticsPlot.js.map +1 -1
  332. package/dist/components/SynapseChat/GridAgentChat.d.ts.map +1 -1
  333. package/dist/components/SynapseChat/GridAgentChat.js +29 -31
  334. package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
  335. package/dist/components/SynapseForm/SynapseFormWrapper.js +1 -1
  336. package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
  337. package/dist/components/SynapseHomepageV2/HotdropsAndNews.css +1 -1
  338. package/dist/components/SynapseHomepageV2/HotdropsAndNews.module.js +9 -9
  339. package/dist/components/SynapseHomepageV2/HotdropsAndNews.module.js.map +1 -1
  340. package/dist/components/SynapseHomepageV2/HotdropsAndNews.module.scss +14 -0
  341. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +1 -1
  342. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
  343. package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js +1 -1
  344. package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js.map +1 -1
  345. package/dist/components/SynapseTable/SynapseTable.d.ts.map +1 -1
  346. package/dist/components/SynapseTable/SynapseTable.js +2 -1
  347. package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
  348. package/dist/components/SynapseTable/SynapseTableRenderers.d.ts.map +1 -1
  349. package/dist/components/SynapseTable/SynapseTableRenderers.js +1 -1
  350. package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
  351. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts +4 -0
  352. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts.map +1 -1
  353. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js +71 -69
  354. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
  355. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.d.ts.map +1 -1
  356. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js +29 -30
  357. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
  358. package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts +4 -0
  359. package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts.map +1 -1
  360. package/dist/components/SynapseTable/table-top/DownloadOptions.js +14 -13
  361. package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
  362. package/dist/components/SynapseTable/usePrefetchTableData.js +1 -1
  363. package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
  364. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js +4 -4
  365. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
  366. package/dist/components/TanStackTable/StyledTanStackTable.d.ts +7 -0
  367. package/dist/components/TanStackTable/StyledTanStackTable.d.ts.map +1 -1
  368. package/dist/components/TanStackTable/StyledTanStackTable.js +68 -48
  369. package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
  370. package/dist/components/TanStackTable/TableCellRenderer.d.ts.map +1 -1
  371. package/dist/components/TanStackTable/TableCellRenderer.js +1 -1
  372. package/dist/components/TanStackTable/TableCellRenderer.js.map +1 -1
  373. package/dist/components/TanStackTable/useSyncedTopScrollbar.d.ts +13 -0
  374. package/dist/components/TanStackTable/useSyncedTopScrollbar.d.ts.map +1 -0
  375. package/dist/components/TanStackTable/useSyncedTopScrollbar.js +32 -0
  376. package/dist/components/TanStackTable/useSyncedTopScrollbar.js.map +1 -0
  377. package/dist/components/TermsAndConditions/TermsAndConditions.js +1 -1
  378. package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
  379. package/dist/components/Webhook/CreateWebhookModal.d.ts.map +1 -1
  380. package/dist/components/Webhook/CreateWebhookModal.js +1 -1
  381. package/dist/components/Webhook/CreateWebhookModal.js.map +1 -1
  382. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts.map +1 -1
  383. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js +172 -61
  384. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js.map +1 -1
  385. package/dist/components/dataaccess/UserAccessRequestHistory/RouteConstants.d.ts +3 -0
  386. package/dist/components/dataaccess/UserAccessRequestHistory/RouteConstants.d.ts.map +1 -1
  387. package/dist/components/dataaccess/UserAccessRequestHistory/RouteConstants.js +2 -2
  388. package/dist/components/dataaccess/UserAccessRequestHistory/RouteConstants.js.map +1 -1
  389. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.d.ts.map +1 -1
  390. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js +11 -9
  391. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
  392. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.d.ts.map +1 -1
  393. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js +74 -43
  394. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
  395. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.d.ts.map +1 -1
  396. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js +2 -2
  397. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
  398. package/dist/components/doi/CreateOrUpdateDoiModal.d.ts.map +1 -1
  399. package/dist/components/doi/CreateOrUpdateDoiModal.js +15 -18
  400. package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
  401. package/dist/components/entity/metadata/EntityModal.js +1 -1
  402. package/dist/components/entity/metadata/EntityModal.js.map +1 -1
  403. package/dist/components/entity/page/action_menu/EntityActionMenu.js +2 -2
  404. package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
  405. package/dist/components/index.d.ts +1 -0
  406. package/dist/components/index.d.ts.map +1 -1
  407. package/dist/components/index.js +144 -140
  408. package/dist/components/menu/DropdownMenu.d.ts.map +1 -1
  409. package/dist/components/menu/DropdownMenu.js +7 -7
  410. package/dist/components/menu/DropdownMenu.js.map +1 -1
  411. package/dist/components/row_renderers/Dataset.js +1 -1
  412. package/dist/components/row_renderers/Dataset.js.map +1 -1
  413. package/dist/components/styled/LeftRightPanel.d.ts +8 -0
  414. package/dist/components/styled/LeftRightPanel.d.ts.map +1 -1
  415. package/dist/components/styled/LeftRightPanel.js +10 -1
  416. package/dist/components/styled/LeftRightPanel.js.map +1 -1
  417. package/dist/components/widgets/facet-nav/FacetNavPanel.js +1 -1
  418. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  419. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts.map +1 -1
  420. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js +1 -1
  421. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
  422. package/dist/components/widgets/query-filter/FacetFilterControls.js +1 -1
  423. package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
  424. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
  425. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +1 -1
  426. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
  427. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +5 -5
  428. package/dist/index.js +174 -171
  429. package/dist/index.js.map +1 -1
  430. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts +73 -0
  431. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts.map +1 -0
  432. package/dist/mocks/msw/handlers/aridhiaHandlers.js +119 -0
  433. package/dist/mocks/msw/handlers/aridhiaHandlers.js.map +1 -0
  434. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.d.ts.map +1 -1
  435. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js +31 -27
  436. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
  437. package/dist/mocks/msw/handlers/entityHandlers.d.ts.map +1 -1
  438. package/dist/mocks/msw/handlers/entityHandlers.js +4 -4
  439. package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
  440. package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.d.ts +1 -0
  441. package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.d.ts.map +1 -1
  442. package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js +7 -1
  443. package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js.map +1 -1
  444. package/dist/mocks/msw/handlers/userProfileHandlers.d.ts.map +1 -1
  445. package/dist/mocks/msw/handlers/userProfileHandlers.js +6 -2
  446. package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
  447. package/dist/mocks/msw/handlers.d.ts.map +1 -1
  448. package/dist/mocks/msw/handlers.js +72 -69
  449. package/dist/mocks/msw/handlers.js.map +1 -1
  450. package/dist/style/components/_all.scss +0 -1
  451. package/dist/style/components/_cards.scss +4 -2
  452. package/dist/style/components/_terms-and-conditions.scss +25 -3
  453. package/dist/style/main.css +1 -1
  454. package/dist/synapse-queries/KeyFactory.d.ts +1 -0
  455. package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
  456. package/dist/synapse-queries/KeyFactory.js +3 -0
  457. package/dist/synapse-queries/KeyFactory.js.map +1 -1
  458. package/dist/synapse-queries/dataaccess/index.js +4 -4
  459. package/dist/synapse-queries/dataaccess/useEDuc.d.ts +7 -0
  460. package/dist/synapse-queries/dataaccess/useEDuc.d.ts.map +1 -1
  461. package/dist/synapse-queries/dataaccess/useEDuc.js +11 -3
  462. package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
  463. package/dist/synapse-queries/index.js +190 -189
  464. package/dist/testutils/RjsfFormTestUtils.js +12 -0
  465. package/dist/testutils/RjsfFormTestUtils.js.map +1 -0
  466. package/dist/tsconfig.build.tsbuildinfo +1 -1
  467. package/dist/utils/APIConstants.d.ts +1 -0
  468. package/dist/utils/APIConstants.d.ts.map +1 -1
  469. package/dist/utils/APIConstants.js +2 -2
  470. package/dist/utils/APIConstants.js.map +1 -1
  471. package/dist/utils/featureflag/FeatureFlags.d.ts +2 -4
  472. package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
  473. package/dist/utils/featureflag/FeatureFlags.js +1 -1
  474. package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
  475. package/dist/utils/functions/QueryFilterUtils.js +1 -1
  476. package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
  477. package/dist/utils/functions/RegularExpressions.d.ts +10 -0
  478. package/dist/utils/functions/RegularExpressions.d.ts.map +1 -1
  479. package/dist/utils/functions/RegularExpressions.js +7 -1
  480. package/dist/utils/functions/RegularExpressions.js.map +1 -1
  481. package/dist/utils/functions/SqlFunctions.d.ts.map +1 -1
  482. package/dist/utils/functions/SqlFunctions.js +20 -4
  483. package/dist/utils/functions/SqlFunctions.js.map +1 -1
  484. package/dist/utils/functions/queryUtils.js +1 -1
  485. package/dist/utils/functions/queryUtils.js.map +1 -1
  486. package/dist/utils/hooks/useDetectSSOCode.d.ts.map +1 -1
  487. package/dist/utils/hooks/useDetectSSOCode.js +1 -1
  488. package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
  489. package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js +1 -1
  490. package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
  491. package/dist/utils/index.js +16 -16
  492. package/dist/utils/jsonschema/SchemaAnnotationUtils.js +1 -1
  493. package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
  494. package/dist/utils/jsonschema/collectTopLevelProperties.d.ts +22 -0
  495. package/dist/utils/jsonschema/collectTopLevelProperties.d.ts.map +1 -0
  496. package/dist/utils/jsonschema/collectTopLevelProperties.js +31 -0
  497. package/dist/utils/jsonschema/collectTopLevelProperties.js.map +1 -0
  498. package/dist/utils/jsonschema/getSchemaPropertyInfo.d.ts.map +1 -1
  499. package/dist/utils/jsonschema/getSchemaPropertyInfo.js +1 -1
  500. package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
  501. package/dist/utils/types/IsType.d.ts +4 -1
  502. package/dist/utils/types/IsType.d.ts.map +1 -1
  503. package/dist/utils/types/IsType.js +4 -4
  504. package/dist/utils/types/IsType.js.map +1 -1
  505. package/dist/utils/types/index.js +2 -2
  506. package/package.json +5 -5
  507. package/dist/components/DataGrid/useMergeGridWithRecordSet.d.ts +0 -12
  508. package/dist/components/DataGrid/useMergeGridWithRecordSet.d.ts.map +0 -1
  509. package/dist/components/DataGrid/useMergeGridWithRecordSet.js +0 -25
  510. package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +0 -1
  511. package/dist/style/components/_annotations.scss +0 -110
@@ -1 +1 @@
1
- {"version":3,"file":"SyncGridWithSourceButton.d.ts","sourceRoot":"","sources":["../../../src/components/DataGrid/SyncGridWithSourceButton.tsx"],"names":[],"mappings":"AACA,OAA+B,EAC7B,mBAAmB,EACpB,MAAM,8CAA8C,CAAA;AASrD,OAAO,EACL,MAAM,EACN,UAAU,EAEV,WAAW,EAIX,uBAAuB,EACvB,uBAAuB,EAExB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAA;AAErF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,WAAW,EAAE,WAAW,CAAA;CACzB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC9C,KAAK,EAAE,6BAA6B,2CA8ErC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,yBAAyB,EAAE,uBAAuB,GAAG,IAAI,GACxD,OAAO,CAqBT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,OAAO,EACnB,gBAAgB,EAAE,UAAU,GAAG,SAAS,EACxC,mBAAmB,EAAE,OAAO,GAC3B;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAuB7C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,UAAU,GAAG,SAAS,EACxC,UAAU,EAAE,OAAO,GAClB,mBAAmB,CAOrB;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,CAAC,EAAE,QAAQ,QAmBpB"}
1
+ {"version":3,"file":"SyncGridWithSourceButton.d.ts","sourceRoot":"","sources":["../../../src/components/DataGrid/SyncGridWithSourceButton.tsx"],"names":[],"mappings":"AACA,OAA+B,EAC7B,mBAAmB,EACpB,MAAM,8CAA8C,CAAA;AAOrD,OAAO,EACL,MAAM,EACN,UAAU,EAEV,WAAW,EAIX,uBAAuB,EACvB,uBAAuB,EAExB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAA;AAErF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,WAAW,EAAE,WAAW,CAAA;CACzB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC9C,KAAK,EAAE,6BAA6B,2CAqErC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,yBAAyB,EAAE,uBAAuB,GAAG,IAAI,GACxD,OAAO,CAqBT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,OAAO,EACnB,gBAAgB,EAAE,UAAU,GAAG,SAAS,GACvC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAoB7C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,UAAU,GAAG,SAAS,EACxC,UAAU,EAAE,OAAO,GAClB,mBAAmB,CAOrB;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,CAAC,EAAE,QAAQ,QAmBpB"}
@@ -1,81 +1,75 @@
1
1
  import { displayToast as e } from "../ToastMessage/ToastMessage.js";
2
2
  import { convertToEntityType as t } from "../../utils/functions/EntityTypeUtils.js";
3
3
  import { useGetEntity as n } from "../../synapse-queries/entity/useEntity.js";
4
- import { useGetFeatureFlag as r } from "../../synapse-queries/featureflags/useGetFeatureFlag.js";
5
- import "../../synapse-queries/featureflags/index.js";
6
- import { useGetSchemaBinding as i } from "../../synapse-queries/jsonschema/useEntityBoundSchema.js";
4
+ import { useGetSchemaBinding as r } from "../../synapse-queries/jsonschema/useEntityBoundSchema.js";
7
5
  import "../../synapse-queries/index.js";
8
- import { FeatureFlagEnum as a } from "../../utils/featureflag/FeatureFlags.js";
9
6
  import "../index.js";
10
- import o from "./components/GridMenuButton/GridMenuButton.js";
11
- import s from "./useMergeGridWithSource.js";
12
- import { Skeleton as c, Tooltip as l } from "@mui/material";
13
- import { jsx as u } from "react/jsx-runtime";
14
- import { EntityType as d, instanceOfEntityUpdateResults as f, instanceOfRecordSet as p, instanceOfUploadToTableResult as m } from "@sage-bionetworks/synapse-client";
15
- import { CloudDownloadTwoTone as h, CloudSyncTwoTone as g } from "@mui/icons-material";
16
- import { c as _ } from "react/compiler-runtime";
7
+ import i from "./components/GridMenuButton/GridMenuButton.js";
8
+ import a from "./useMergeGridWithSource.js";
9
+ import { Skeleton as o, Tooltip as s } from "@mui/material";
10
+ import { jsx as c } from "react/jsx-runtime";
11
+ import { EntityType as l, instanceOfEntityUpdateResults as u, instanceOfRecordSet as d, instanceOfUploadToTableResult as f } from "@sage-bionetworks/synapse-client";
12
+ import { CloudDownloadTwoTone as p, CloudSyncTwoTone as m } from "@mui/icons-material";
13
+ import { c as h } from "react/compiler-runtime";
17
14
  //#region src/components/DataGrid/SyncGridWithSourceButton.tsx
18
- function v(e) {
19
- let d = _(19), { gridSession: f } = e, { data: p, isLoading: m } = n(f.sourceEntityId), v = !!f.sourceEntityId, w;
20
- d[0] === v ? w = d[1] : (w = { enabled: v }, d[0] = v, d[1] = w);
21
- let { data: T, isLoading: E } = i(f.sourceEntityId ?? "", w), D = p?.concreteType ? t(p.concreteType) : void 0, O = r(a.ENABLE_RECORDSET_SYNCHRONIZATION), k;
22
- d[2] === Symbol.for("react.memo_cache_sentinel") ? (k = {
23
- onSuccess: b,
24
- onError: y
25
- }, d[2] = k) : k = d[2];
26
- let { mutate: A, isPending: j } = s(k), M = O && p !== void 0 && T !== void 0 && x(f, p, T), { buttonText: N, tooltipText: P } = S(M, D, O);
27
- if (m || E) {
15
+ function g(e) {
16
+ let l = h(19), { gridSession: u } = e, { data: d, isLoading: f } = n(u.sourceEntityId), g = !!u.sourceEntityId, S;
17
+ l[0] === g ? S = l[1] : (S = { enabled: g }, l[0] = g, l[1] = S);
18
+ let { data: C, isLoading: w } = r(u.sourceEntityId ?? "", S), T = d?.concreteType ? t(d.concreteType) : void 0, E;
19
+ l[2] === Symbol.for("react.memo_cache_sentinel") ? (E = {
20
+ onSuccess: v,
21
+ onError: _
22
+ }, l[2] = E) : E = l[2];
23
+ let { mutate: D, isPending: O } = a(E), k = d !== void 0 && C !== void 0 && y(u, d, C), { buttonText: A, tooltipText: j } = b(k, T);
24
+ if (f || w) {
28
25
  let e;
29
- return d[3] === Symbol.for("react.memo_cache_sentinel") ? (e = /* @__PURE__ */ u(c, { width: "100px" }), d[3] = e) : e = d[3], e;
26
+ return l[3] === Symbol.for("react.memo_cache_sentinel") ? (e = /* @__PURE__ */ c(o, { width: "100px" }), l[3] = e) : e = l[3], e;
30
27
  }
31
- let F;
32
- d[4] === M ? F = d[5] : (F = u(M ? h : g, {}), d[4] = M, d[5] = F);
33
- let I;
34
- d[6] !== f || d[7] !== A || d[8] !== M || d[9] !== D ? (I = () => {
35
- A(C(f, D, M));
36
- }, d[6] = f, d[7] = A, d[8] = M, d[9] = D, d[10] = I) : I = d[10];
37
- let L;
38
- d[11] !== N || d[12] !== j || d[13] !== F || d[14] !== I ? (L = /* @__PURE__ */ u(o, {
39
- startIcon: F,
40
- loading: j,
41
- onClick: I,
28
+ let M;
29
+ l[4] === k ? M = l[5] : (M = c(k ? p : m, {}), l[4] = k, l[5] = M);
30
+ let N;
31
+ l[6] !== u || l[7] !== D || l[8] !== k || l[9] !== T ? (N = () => {
32
+ D(x(u, T, k));
33
+ }, l[6] = u, l[7] = D, l[8] = k, l[9] = T, l[10] = N) : N = l[10];
34
+ let P;
35
+ l[11] !== A || l[12] !== O || l[13] !== M || l[14] !== N ? (P = /* @__PURE__ */ c(i, {
36
+ startIcon: M,
37
+ loading: O,
38
+ onClick: N,
42
39
  variant: "contained",
43
- children: N
44
- }), d[11] = N, d[12] = j, d[13] = F, d[14] = I, d[15] = L) : L = d[15];
45
- let R;
46
- return d[16] !== L || d[17] !== P ? (R = /* @__PURE__ */ u(l, {
47
- title: P,
40
+ children: A
41
+ }), l[11] = A, l[12] = O, l[13] = M, l[14] = N, l[15] = P) : P = l[15];
42
+ let F;
43
+ return l[16] !== P || l[17] !== j ? (F = /* @__PURE__ */ c(s, {
44
+ title: j,
48
45
  describeChild: !0,
49
- children: L
50
- }), d[16] = L, d[17] = P, d[18] = R) : R = d[18], R;
46
+ children: P
47
+ }), l[16] = P, l[17] = j, l[18] = F) : F = l[18], F;
51
48
  }
52
- function y(t) {
49
+ function _(t) {
53
50
  return e(t.message, "danger");
54
51
  }
55
- function b(t, n) {
56
- bb14: switch (t.type) {
52
+ function v(e, t) {
53
+ bb14: switch (e.type) {
57
54
  case "synchronize":
58
- w(t.data, n.syncType);
55
+ S(e.data, t.syncType);
59
56
  break bb14;
60
57
  case "tableUpdateTransaction":
61
- T(t.data);
62
- break bb14;
63
- case "recordset_overwrite":
64
- e("Successfully updated RecordSet.", "success");
58
+ C(e.data);
65
59
  break bb14;
66
60
  default:
67
61
  }
68
62
  }
69
- function x(e, t, n) {
70
- if (!(t != null && p(t))) return !1;
63
+ function y(e, t, n) {
64
+ if (!(t != null && d(t))) return !1;
71
65
  let r = e.sourceEntityVersionNumber != null && t.versionNumber != null && e.sourceEntityVersionNumber < t.versionNumber, i = n != null && e.gridJsonSchema$Id !== n.jsonSchemaVersionInfo?.$id;
72
66
  return r || i;
73
67
  }
74
- function S(e, t, n) {
68
+ function b(e, t) {
75
69
  return e ? {
76
70
  buttonText: "Import latest changes",
77
71
  tooltipText: "Imports any recent changes into this Curator session. Your changes will not yet be applied."
78
- } : t === d.table || t === d.recordset && !n ? {
72
+ } : t === l.table ? {
79
73
  buttonText: "Apply changes",
80
74
  tooltipText: "Applies any changes made in this Curator session to the source"
81
75
  } : {
@@ -83,7 +77,7 @@ function S(e, t, n) {
83
77
  tooltipText: "Applies any changes made in this Curator session, and imports any recent changes into this Curator session."
84
78
  };
85
79
  }
86
- function C(e, t, n) {
80
+ function x(e, t, n) {
87
81
  return {
88
82
  gridSessionId: e.sessionId,
89
83
  sourceEntityId: e.sourceEntityId,
@@ -91,25 +85,25 @@ function C(e, t, n) {
91
85
  syncType: n ? "PULL" : "PULL_PUSH"
92
86
  };
93
87
  }
94
- function w(t, n) {
95
- t.errorMessages == null || t.errorMessages.length === 0 ? e(n === "PULL" ? "Successfully imported latest changes." : "Successfully synchronized changes.", "success") : e(/* @__PURE__ */ u("ul", { children: t.errorMessages.map((e, t) => /* @__PURE__ */ u("li", { children: e }, t)) }), "warning", { title: "Some changes could not be applied" });
88
+ function S(t, n) {
89
+ t.errorMessages == null || t.errorMessages.length === 0 ? e(n === "PULL" ? "Successfully imported latest changes." : "Successfully synchronized changes.", "success") : e(/* @__PURE__ */ c("ul", { children: t.errorMessages.map((e, t) => /* @__PURE__ */ c("li", { children: e }, t)) }), "warning", { title: "Some changes could not be applied" });
96
90
  }
97
- function T(t) {
91
+ function C(t) {
98
92
  if (t.results?.length) {
99
93
  let n = t.results[0];
100
- if (f(n)) {
101
- let t = E(n).join("\n");
94
+ if (u(n)) {
95
+ let t = w(n).join("\n");
102
96
  t ? e(`Some changes could not be applied:\n${t}`, "danger") : e("Changes applied successfully", "success");
103
- } else if (m(n)) {
97
+ } else if (f(n)) {
104
98
  let t = n.rowsProcessed?.toLocaleString();
105
99
  e(`Successfully updated ${t} rows.`, "success");
106
100
  }
107
101
  }
108
102
  }
109
- function E(e) {
103
+ function w(e) {
110
104
  return e.updateResults?.filter((e) => !!e.failureCode).map((e) => `${e.entityId}: ${e.failureMessage} (code: ${e.failureCode})`) ?? [];
111
105
  }
112
106
  //#endregion
113
- export { C as buildMergeGridVariables, v as default, S as getSyncButtonLabels, w as onSynchronizeSuccess, x as shouldPullBeforePush };
107
+ export { x as buildMergeGridVariables, g as default, b as getSyncButtonLabels, S as onSynchronizeSuccess, y as shouldPullBeforePush };
114
108
 
115
109
  //# sourceMappingURL=SyncGridWithSourceButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SyncGridWithSourceButton.js","names":["GridMenuButton","useMergeGridWithSource","MergeGridWithSource","displayToast","useGetEntity","useGetSchemaBinding","useGetFeatureFlag","FeatureFlagEnum","convertToEntityType","CloudDownloadTwoTone","CloudSyncTwoTone","Skeleton","Tooltip","Entity","EntityType","EntityUpdateResults","GridSession","instanceOfEntityUpdateResults","instanceOfRecordSet","instanceOfUploadToTableResult","JsonSchemaObjectBinding","SynchronizeGridResponse","TableUpdateTransactionResponse","SyncType","SyncGridWithSourceButtonProps","gridSession","SyncGridWithSourceButton","props","$","_c","data","entity","isLoading","entityLoading","sourceEntityId","t0","t1","enabled","sourceEntitySchemaBinding","schemaBindingIsLoading","sourceEntityType","concreteType","undefined","enableRecordSetSync","ENABLE_RECORDSET_SYNCHRONIZATION","t2","Symbol","for","onSuccess","_temp","onError","_temp2","mutate","mergeGrid","isPending","shouldPull","shouldPullBeforePush","buttonText","tooltipText","getSyncButtonLabels","isLoadingPrerequisiteData","t3","t4","buildMergeGridVariables","t5","t6","e","message","result","variables","bb14","type","onSynchronizeSuccess","syncType","onMergeTableSuccess","sourceEntity","isPullSupported","isSourceEntityUpdated","sourceEntityVersionNumber","versionNumber","isSchemaBindingUpdated","gridJsonSchema$Id","jsonSchemaVersionInfo","$id","table","recordset","gridSessionId","sessionId","errorMessages","length","map","msg","index","title","results","updateResult","failureMessages","getEntityUpdateResultsErrorMessages","join","rowsUpdatedStr","rowsProcessed","toLocaleString","updateResults","filter","failureCode","r","entityId","failureMessage"],"sources":["../../../src/components/DataGrid/SyncGridWithSourceButton.tsx"],"sourcesContent":["import GridMenuButton from '@/components/DataGrid/components/GridMenuButton/GridMenuButton'\nimport useMergeGridWithSource, {\n MergeGridWithSource,\n} from '@/components/DataGrid/useMergeGridWithSource'\nimport { displayToast } from '@/components/index'\nimport { useGetEntity } from '@/synapse-queries'\nimport { useGetSchemaBinding } from '@/synapse-queries/jsonschema/useEntityBoundSchema'\nimport { useGetFeatureFlag } from '@/synapse-queries/featureflags'\nimport { FeatureFlagEnum } from '@/utils/featureflag/FeatureFlags'\nimport { convertToEntityType } from '@/utils/functions/EntityTypeUtils'\nimport { CloudDownloadTwoTone, CloudSyncTwoTone } from '@mui/icons-material'\nimport { Skeleton, Tooltip } from '@mui/material'\nimport {\n Entity,\n EntityType,\n EntityUpdateResults,\n GridSession,\n instanceOfEntityUpdateResults,\n instanceOfRecordSet,\n instanceOfUploadToTableResult,\n JsonSchemaObjectBinding,\n SynchronizeGridResponse,\n TableUpdateTransactionResponse,\n} from '@sage-bionetworks/synapse-client'\nimport { SyncType } from '@sage-bionetworks/synapse-client/generated/models/SyncType'\n\nexport type SyncGridWithSourceButtonProps = {\n gridSession: GridSession\n}\n\nexport default function SyncGridWithSourceButton(\n props: SyncGridWithSourceButtonProps,\n) {\n const { gridSession } = props\n\n const { data: entity, isLoading: entityLoading } = useGetEntity(\n gridSession.sourceEntityId,\n )\n\n const { data: sourceEntitySchemaBinding, isLoading: schemaBindingIsLoading } =\n useGetSchemaBinding(gridSession.sourceEntityId ?? '', {\n enabled: !!gridSession.sourceEntityId,\n })\n\n const sourceEntityType = entity?.concreteType\n ? convertToEntityType(entity.concreteType)\n : undefined\n\n const enableRecordSetSync = useGetFeatureFlag(\n FeatureFlagEnum.ENABLE_RECORDSET_SYNCHRONIZATION,\n )\n\n const { mutate: mergeGrid, isPending } = useMergeGridWithSource({\n onSuccess: (result, variables) => {\n switch (result.type) {\n case 'synchronize':\n onSynchronizeSuccess(result.data, variables.syncType)\n break\n case 'tableUpdateTransaction':\n onMergeTableSuccess(result.data)\n break\n case 'recordset_overwrite':\n displayToast('Successfully updated RecordSet.', 'success')\n break\n default:\n result satisfies never\n }\n },\n onError: e => displayToast(e.message, 'danger'),\n })\n\n // At this time, only RecordSet sync supports PULL.\n // If the RecordSet source or JSON Schema has been updated since this grid was created,\n // we have the user PULL the latest changes before enabling a full PULL_PUSH, so they\n // have an opportunity to handle and fix unexpected merge outcomes.\n const shouldPull =\n enableRecordSetSync &&\n entity !== undefined &&\n sourceEntitySchemaBinding !== undefined &&\n shouldPullBeforePush(gridSession, entity, sourceEntitySchemaBinding)\n\n const { buttonText, tooltipText } = getSyncButtonLabels(\n shouldPull,\n sourceEntityType,\n enableRecordSetSync,\n )\n\n const isLoadingPrerequisiteData = entityLoading || schemaBindingIsLoading\n\n if (isLoadingPrerequisiteData) {\n return <Skeleton width=\"100px\" />\n }\n\n return (\n <Tooltip title={tooltipText} describeChild>\n <GridMenuButton\n startIcon={shouldPull ? <CloudDownloadTwoTone /> : <CloudSyncTwoTone />}\n loading={isPending}\n onClick={() => {\n mergeGrid(\n buildMergeGridVariables(gridSession, sourceEntityType, shouldPull),\n )\n }}\n variant=\"contained\"\n >\n {buttonText}\n </GridMenuButton>\n </Tooltip>\n )\n}\n\n/**\n * If the source data or JSON Schema has been updated since this grid was created, we have\n * the user PULL the latest changes before enabling a full PULL_PUSH, so they have an\n * opportunity to handle unexpected merge outcomes.\n *\n * This only applies to source types that support the PULL SyncType.\n *\n * @param gridSession The grid session to check.\n * @param sourceEntity The source entity to check.\n * @param sourceEntitySchemaBinding The source entity's schema binding to check.\n * @returns True if the user should PULL before PULL_PUSH, false otherwise.\n */\nexport function shouldPullBeforePush(\n gridSession: GridSession,\n sourceEntity: Entity | null,\n sourceEntitySchemaBinding: JsonSchemaObjectBinding | null,\n): boolean {\n // Currently, only RecordSet supports PULL\n const isPullSupported =\n sourceEntity != null && instanceOfRecordSet(sourceEntity)\n if (!isPullSupported) {\n return false\n }\n\n // Guide the user to PULL first if the source was updated since the grid was\n // created/synced, or if the JSON Schema binding has updated.\n const isSourceEntityUpdated =\n gridSession.sourceEntityVersionNumber != null &&\n sourceEntity.versionNumber != null &&\n gridSession.sourceEntityVersionNumber < sourceEntity.versionNumber\n\n const isSchemaBindingUpdated =\n sourceEntitySchemaBinding != null &&\n gridSession.gridJsonSchema$Id !==\n sourceEntitySchemaBinding.jsonSchemaVersionInfo?.$id\n\n return isSourceEntityUpdated || isSchemaBindingUpdated\n}\n\n/**\n * Determines the button label and tooltip copy for the sync button based on whether the\n * user should PULL before PULL_PUSH, and the source entity's type.\n */\nexport function getSyncButtonLabels(\n shouldPull: boolean,\n sourceEntityType: EntityType | undefined,\n enableRecordSetSync: boolean,\n): { buttonText: string; tooltipText: string } {\n if (shouldPull) {\n return {\n buttonText: 'Import latest changes',\n tooltipText:\n 'Imports any recent changes into this Curator session. Your changes will not yet be applied.',\n }\n }\n if (\n sourceEntityType === EntityType.table ||\n (sourceEntityType === EntityType.recordset && !enableRecordSetSync)\n ) {\n return {\n buttonText: 'Apply changes',\n tooltipText:\n 'Applies any changes made in this Curator session to the source',\n }\n }\n return {\n buttonText: 'Sync changes',\n tooltipText:\n 'Applies any changes made in this Curator session, and imports any recent changes into this Curator session.',\n }\n}\n\n/**\n * Builds the variables passed to the merge grid mutation for the given grid session,\n * source entity type, and whether the user should PULL before PULL_PUSH.\n */\nexport function buildMergeGridVariables(\n gridSession: GridSession,\n sourceEntityType: EntityType | undefined,\n shouldPull: boolean,\n): MergeGridWithSource {\n return {\n gridSessionId: gridSession.sessionId!,\n sourceEntityId: gridSession.sourceEntityId!,\n sourceEntityType,\n syncType: shouldPull ? 'PULL' : 'PULL_PUSH',\n }\n}\n\nexport function onSynchronizeSuccess(\n result: SynchronizeGridResponse,\n syncType?: SyncType,\n) {\n if (result.errorMessages == null || result.errorMessages.length === 0) {\n if (syncType === 'PULL') {\n displayToast('Successfully imported latest changes.', 'success')\n } else {\n displayToast('Successfully synchronized changes.', 'success')\n }\n } else {\n displayToast(\n <ul>\n {result.errorMessages.map((msg, index) => (\n <li key={index}>{msg}</li>\n ))}\n </ul>,\n 'warning',\n { title: 'Some changes could not be applied' },\n )\n }\n}\n\nfunction onMergeTableSuccess(result: TableUpdateTransactionResponse) {\n if (result.results?.length) {\n // There should only be one result since the CSV upload is done in one step\n const updateResult = result.results[0]\n if (instanceOfEntityUpdateResults(updateResult)) {\n // This is an update to the contents of a View\n const failureMessages =\n getEntityUpdateResultsErrorMessages(updateResult).join('\\n')\n\n if (failureMessages) {\n displayToast(\n `Some changes could not be applied:\\n${failureMessages}`,\n 'danger',\n )\n } else {\n displayToast('Changes applied successfully', 'success')\n }\n } else if (instanceOfUploadToTableResult(updateResult)) {\n // This is an update to a TableEntity\n const rowsUpdatedStr = updateResult.rowsProcessed?.toLocaleString()\n displayToast(`Successfully updated ${rowsUpdatedStr} rows.`, 'success')\n }\n }\n}\n\nfunction getEntityUpdateResultsErrorMessages(\n results: EntityUpdateResults,\n): string[] {\n return (\n results.updateResults\n ?.filter(e => !!e.failureCode)\n .map(\n r => `${r.entityId}: ${r.failureMessage} (code: ${r.failureCode})`,\n ) ?? []\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SyncGridWithSourceButton.js","names":["GridMenuButton","useMergeGridWithSource","MergeGridWithSource","displayToast","useGetEntity","useGetSchemaBinding","convertToEntityType","CloudDownloadTwoTone","CloudSyncTwoTone","Skeleton","Tooltip","Entity","EntityType","EntityUpdateResults","GridSession","instanceOfEntityUpdateResults","instanceOfRecordSet","instanceOfUploadToTableResult","JsonSchemaObjectBinding","SynchronizeGridResponse","TableUpdateTransactionResponse","SyncType","SyncGridWithSourceButtonProps","gridSession","SyncGridWithSourceButton","props","$","_c","data","entity","isLoading","entityLoading","sourceEntityId","t0","t1","enabled","sourceEntitySchemaBinding","schemaBindingIsLoading","sourceEntityType","concreteType","undefined","t2","Symbol","for","onSuccess","_temp","onError","_temp2","mutate","mergeGrid","isPending","shouldPull","shouldPullBeforePush","buttonText","tooltipText","getSyncButtonLabels","isLoadingPrerequisiteData","t3","t4","buildMergeGridVariables","t5","t6","e","message","result","variables","bb14","type","onSynchronizeSuccess","syncType","onMergeTableSuccess","sourceEntity","isPullSupported","isSourceEntityUpdated","sourceEntityVersionNumber","versionNumber","isSchemaBindingUpdated","gridJsonSchema$Id","jsonSchemaVersionInfo","$id","table","gridSessionId","sessionId","errorMessages","length","map","msg","index","title","results","updateResult","failureMessages","getEntityUpdateResultsErrorMessages","join","rowsUpdatedStr","rowsProcessed","toLocaleString","updateResults","filter","failureCode","r","entityId","failureMessage"],"sources":["../../../src/components/DataGrid/SyncGridWithSourceButton.tsx"],"sourcesContent":["import GridMenuButton from '@/components/DataGrid/components/GridMenuButton/GridMenuButton'\nimport useMergeGridWithSource, {\n MergeGridWithSource,\n} from '@/components/DataGrid/useMergeGridWithSource'\nimport { displayToast } from '@/components/index'\nimport { useGetEntity } from '@/synapse-queries'\nimport { useGetSchemaBinding } from '@/synapse-queries/jsonschema/useEntityBoundSchema'\nimport { convertToEntityType } from '@/utils/functions/EntityTypeUtils'\nimport { CloudDownloadTwoTone, CloudSyncTwoTone } from '@mui/icons-material'\nimport { Skeleton, Tooltip } from '@mui/material'\nimport {\n Entity,\n EntityType,\n EntityUpdateResults,\n GridSession,\n instanceOfEntityUpdateResults,\n instanceOfRecordSet,\n instanceOfUploadToTableResult,\n JsonSchemaObjectBinding,\n SynchronizeGridResponse,\n TableUpdateTransactionResponse,\n} from '@sage-bionetworks/synapse-client'\nimport { SyncType } from '@sage-bionetworks/synapse-client/generated/models/SyncType'\n\nexport type SyncGridWithSourceButtonProps = {\n gridSession: GridSession\n}\n\nexport default function SyncGridWithSourceButton(\n props: SyncGridWithSourceButtonProps,\n) {\n const { gridSession } = props\n\n const { data: entity, isLoading: entityLoading } = useGetEntity(\n gridSession.sourceEntityId,\n )\n\n const { data: sourceEntitySchemaBinding, isLoading: schemaBindingIsLoading } =\n useGetSchemaBinding(gridSession.sourceEntityId ?? '', {\n enabled: !!gridSession.sourceEntityId,\n })\n\n const sourceEntityType = entity?.concreteType\n ? convertToEntityType(entity.concreteType)\n : undefined\n\n const { mutate: mergeGrid, isPending } = useMergeGridWithSource({\n onSuccess: (result, variables) => {\n switch (result.type) {\n case 'synchronize':\n onSynchronizeSuccess(result.data, variables.syncType)\n break\n case 'tableUpdateTransaction':\n onMergeTableSuccess(result.data)\n break\n default:\n result satisfies never\n }\n },\n onError: e => displayToast(e.message, 'danger'),\n })\n\n // At this time, only RecordSet sync supports PULL.\n // If the RecordSet source or JSON Schema has been updated since this grid was created,\n // we have the user PULL the latest changes before enabling a full PULL_PUSH, so they\n // have an opportunity to handle and fix unexpected merge outcomes.\n const shouldPull =\n entity !== undefined &&\n sourceEntitySchemaBinding !== undefined &&\n shouldPullBeforePush(gridSession, entity, sourceEntitySchemaBinding)\n\n const { buttonText, tooltipText } = getSyncButtonLabels(\n shouldPull,\n sourceEntityType,\n )\n\n const isLoadingPrerequisiteData = entityLoading || schemaBindingIsLoading\n\n if (isLoadingPrerequisiteData) {\n return <Skeleton width=\"100px\" />\n }\n\n return (\n <Tooltip title={tooltipText} describeChild>\n <GridMenuButton\n startIcon={shouldPull ? <CloudDownloadTwoTone /> : <CloudSyncTwoTone />}\n loading={isPending}\n onClick={() => {\n mergeGrid(\n buildMergeGridVariables(gridSession, sourceEntityType, shouldPull),\n )\n }}\n variant=\"contained\"\n >\n {buttonText}\n </GridMenuButton>\n </Tooltip>\n )\n}\n\n/**\n * If the source data or JSON Schema has been updated since this grid was created, we have\n * the user PULL the latest changes before enabling a full PULL_PUSH, so they have an\n * opportunity to handle unexpected merge outcomes.\n *\n * This only applies to source types that support the PULL SyncType.\n *\n * @param gridSession The grid session to check.\n * @param sourceEntity The source entity to check.\n * @param sourceEntitySchemaBinding The source entity's schema binding to check.\n * @returns True if the user should PULL before PULL_PUSH, false otherwise.\n */\nexport function shouldPullBeforePush(\n gridSession: GridSession,\n sourceEntity: Entity | null,\n sourceEntitySchemaBinding: JsonSchemaObjectBinding | null,\n): boolean {\n // Currently, only RecordSet supports PULL\n const isPullSupported =\n sourceEntity != null && instanceOfRecordSet(sourceEntity)\n if (!isPullSupported) {\n return false\n }\n\n // Guide the user to PULL first if the source was updated since the grid was\n // created/synced, or if the JSON Schema binding has updated.\n const isSourceEntityUpdated =\n gridSession.sourceEntityVersionNumber != null &&\n sourceEntity.versionNumber != null &&\n gridSession.sourceEntityVersionNumber < sourceEntity.versionNumber\n\n const isSchemaBindingUpdated =\n sourceEntitySchemaBinding != null &&\n gridSession.gridJsonSchema$Id !==\n sourceEntitySchemaBinding.jsonSchemaVersionInfo?.$id\n\n return isSourceEntityUpdated || isSchemaBindingUpdated\n}\n\n/**\n * Determines the button label and tooltip copy for the sync button based on whether the\n * user should PULL before PULL_PUSH, and the source entity's type.\n */\nexport function getSyncButtonLabels(\n shouldPull: boolean,\n sourceEntityType: EntityType | undefined,\n): { buttonText: string; tooltipText: string } {\n if (shouldPull) {\n return {\n buttonText: 'Import latest changes',\n tooltipText:\n 'Imports any recent changes into this Curator session. Your changes will not yet be applied.',\n }\n }\n if (sourceEntityType === EntityType.table) {\n return {\n buttonText: 'Apply changes',\n tooltipText:\n 'Applies any changes made in this Curator session to the source',\n }\n }\n return {\n buttonText: 'Sync changes',\n tooltipText:\n 'Applies any changes made in this Curator session, and imports any recent changes into this Curator session.',\n }\n}\n\n/**\n * Builds the variables passed to the merge grid mutation for the given grid session,\n * source entity type, and whether the user should PULL before PULL_PUSH.\n */\nexport function buildMergeGridVariables(\n gridSession: GridSession,\n sourceEntityType: EntityType | undefined,\n shouldPull: boolean,\n): MergeGridWithSource {\n return {\n gridSessionId: gridSession.sessionId!,\n sourceEntityId: gridSession.sourceEntityId!,\n sourceEntityType,\n syncType: shouldPull ? 'PULL' : 'PULL_PUSH',\n }\n}\n\nexport function onSynchronizeSuccess(\n result: SynchronizeGridResponse,\n syncType?: SyncType,\n) {\n if (result.errorMessages == null || result.errorMessages.length === 0) {\n if (syncType === 'PULL') {\n displayToast('Successfully imported latest changes.', 'success')\n } else {\n displayToast('Successfully synchronized changes.', 'success')\n }\n } else {\n displayToast(\n <ul>\n {result.errorMessages.map((msg, index) => (\n <li key={index}>{msg}</li>\n ))}\n </ul>,\n 'warning',\n { title: 'Some changes could not be applied' },\n )\n }\n}\n\nfunction onMergeTableSuccess(result: TableUpdateTransactionResponse) {\n if (result.results?.length) {\n // There should only be one result since the CSV upload is done in one step\n const updateResult = result.results[0]\n if (instanceOfEntityUpdateResults(updateResult)) {\n // This is an update to the contents of a View\n const failureMessages =\n getEntityUpdateResultsErrorMessages(updateResult).join('\\n')\n\n if (failureMessages) {\n displayToast(\n `Some changes could not be applied:\\n${failureMessages}`,\n 'danger',\n )\n } else {\n displayToast('Changes applied successfully', 'success')\n }\n } else if (instanceOfUploadToTableResult(updateResult)) {\n // This is an update to a TableEntity\n const rowsUpdatedStr = updateResult.rowsProcessed?.toLocaleString()\n displayToast(`Successfully updated ${rowsUpdatedStr} rows.`, 'success')\n }\n }\n}\n\nfunction getEntityUpdateResultsErrorMessages(\n results: EntityUpdateResults,\n): string[] {\n return (\n results.updateResults\n ?.filter(e => !!e.failureCode)\n .map(\n r => `${r.entityId}: ${r.failureMessage} (code: ${r.failureCode})`,\n ) ?? []\n )\n}\n"],"mappings":"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"}
@@ -1,9 +1,29 @@
1
+ import { Dayjs } from 'dayjs';
1
2
  import { JSONSchema7Type } from 'json-schema';
2
3
  import { CellProps, Column } from '@sage-bionetworks/react-datasheet-grid';
3
4
  export type DateTimeCellProps = CellProps & {
4
5
  colType?: JSONSchema7Type;
5
6
  };
6
- export declare function DateTimeCell({ rowData, setRowData, disabled, colType, }: DateTimeCellProps): import("react/jsx-runtime").JSX.Element;
7
+ export type DateTimeCellValue = {
8
+ kind: 'empty';
9
+ } | {
10
+ kind: 'date';
11
+ date: Dayjs;
12
+ } | {
13
+ kind: 'unparseable';
14
+ text: string;
15
+ };
16
+ /**
17
+ * Classify a stored cell value as empty, a usable date, or something the picker
18
+ * cannot represent.
19
+ *
20
+ * Numeric schema types store epoch milliseconds, but an imported value can
21
+ * arrive as a numeric string, which dayjs would otherwise read as a year
22
+ * ("1705314600000" parses to 1707). Coercion is attempted only when the string
23
+ * is fully numeric, so an ISO string in a numeric column still parses as a date.
24
+ */
25
+ export declare function interpretDateTimeCellValue(rowData: unknown, colType?: JSONSchema7Type): DateTimeCellValue;
26
+ export declare function DateTimeCell({ rowData, setRowData, disabled, colType, active, }: DateTimeCellProps): import("react/jsx-runtime").JSX.Element;
7
27
  export type DateTimeColumnProps = {
8
28
  colType?: JSONSchema7Type;
9
29
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimeColumn.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/columns/DateTimeColumn.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAEL,SAAS,EACT,MAAM,EACP,MAAM,wCAAwC,CAAA;AAE/C,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG;IAC1C,OAAO,CAAC,EAAE,eAAe,CAAA;CAC1B,CAAA;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,UAAU,EACV,QAAQ,EACR,OAAO,GACR,EAAE,iBAAiB,2CA4BnB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,eAAe,CAAA;CAC1B,CAAA;AAED,wBAAgB,cAAc,CAAC,EAC7B,OAAO,GACR,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAUvC"}
1
+ {"version":3,"file":"DateTimeColumn.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/columns/DateTimeColumn.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,OAAO,EAEL,SAAS,EACT,MAAM,EACP,MAAM,wCAAwC,CAAA;AAc/C,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG;IAC1C,OAAO,CAAC,EAAE,eAAe,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,KAAK,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAazC;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,eAAe,GACxB,iBAAiB,CA2BnB;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,UAAU,EACV,QAAQ,EACR,OAAO,EACP,MAAM,GACP,EAAE,iBAAiB,2CA0CnB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,eAAe,CAAA;CAC1B,CAAA;AAED,wBAAgB,cAAc,CAAC,EAC7B,OAAO,GACR,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAUvC"}
@@ -1,39 +1,83 @@
1
1
  import e from "../../DateTimePicker/DateTimePicker.js";
2
- import { jsx as t } from "react/jsx-runtime";
3
- import n from "dayjs";
4
- import { c as r } from "react/compiler-runtime";
2
+ import { castCellValueToString as t } from "./AutocompleteColumn.js";
3
+ import { Box as n, Tooltip as r } from "@mui/material";
4
+ import { jsx as i } from "react/jsx-runtime";
5
+ import a from "dayjs";
6
+ import { c as o } from "react/compiler-runtime";
7
+ import s from "lodash-es/isNil";
5
8
  //#region src/components/DataGrid/columns/DateTimeColumn.tsx
6
- function i(i) {
7
- let a = r(13), { rowData: o, setRowData: s, disabled: c, colType: l } = i, u;
8
- a[0] === o ? u = a[1] : (u = o ? n(o) : null, a[0] = o, a[1] = u);
9
- let d;
10
- a[2] !== l || a[3] !== s ? (d = (e) => {
11
- s(e == null ? null : l === "number" || l === "integer" ? n(e).valueOf() : n(e).toISOString());
12
- }, a[2] = l, a[3] = s, a[4] = d) : d = a[4];
13
- let f = c ? "none" : void 0, p;
14
- a[5] === Symbol.for("react.memo_cache_sentinel") ? (p = {
9
+ var c = {
10
+ display: "flex",
11
+ alignItems: "center",
12
+ width: "100%",
13
+ height: "100%",
14
+ px: "14px",
15
+ overflow: "hidden",
16
+ whiteSpace: "nowrap",
17
+ textOverflow: "ellipsis"
18
+ };
19
+ function l(e) {
20
+ return typeof e == "string" || typeof e == "number" || e instanceof Date || a.isDayjs(e);
21
+ }
22
+ function u(e, n) {
23
+ if (s(e) || typeof e == "string" && e.trim() === "") return { kind: "empty" };
24
+ let r = {
25
+ kind: "unparseable",
26
+ text: t(e)
27
+ };
28
+ if (!l(e)) return r;
29
+ let i = a(((n === "number" || n === "integer") && typeof e == "string" && Number.isFinite(Number(e)) ? Number(e) : null) ?? e);
30
+ return i.isValid() ? {
31
+ kind: "date",
32
+ date: i
33
+ } : r;
34
+ }
35
+ function d(t) {
36
+ let s = o(19), { rowData: l, setRowData: d, disabled: f, colType: p, active: m } = t, h;
37
+ s[0] !== p || s[1] !== l ? (h = u(l, p), s[0] = p, s[1] = l, s[2] = h) : h = s[2];
38
+ let g = h;
39
+ if (g.kind === "unparseable" && !m) {
40
+ let e;
41
+ s[3] === g.text ? e = s[4] : (e = /* @__PURE__ */ i(n, {
42
+ sx: c,
43
+ children: g.text
44
+ }), s[3] = g.text, s[4] = e);
45
+ let t;
46
+ return s[5] !== g.text || s[6] !== e ? (t = /* @__PURE__ */ i(r, {
47
+ title: g.text,
48
+ placement: "top-start",
49
+ arrow: !0,
50
+ children: e
51
+ }), s[5] = g.text, s[6] = e, s[7] = t) : t = s[7], t;
52
+ }
53
+ let _ = g.kind === "date" ? g.date : null, v;
54
+ s[8] !== p || s[9] !== d ? (v = (e) => {
55
+ d(e == null ? null : p === "number" || p === "integer" ? a(e).valueOf() : a(e).toISOString());
56
+ }, s[8] = p, s[9] = d, s[10] = v) : v = s[10];
57
+ let y = f ? "none" : void 0, b;
58
+ s[11] === Symbol.for("react.memo_cache_sentinel") ? (b = {
15
59
  height: "100%",
16
60
  backgroundColor: "inherit"
17
- }, a[5] = p) : p = a[5];
18
- let m;
19
- a[6] === f ? m = a[7] : (m = {
20
- pointerEvents: f,
61
+ }, s[11] = b) : b = s[11];
62
+ let x;
63
+ s[12] === y ? x = s[13] : (x = {
64
+ pointerEvents: y,
21
65
  width: "100%",
22
66
  height: "100%",
23
- "& .MuiInputBase-root": p
24
- }, a[6] = f, a[7] = m);
25
- let h;
26
- return a[8] !== c || a[9] !== u || a[10] !== d || a[11] !== m ? (h = /* @__PURE__ */ t(e, {
27
- disabled: c,
28
- value: u,
29
- onChange: d,
30
- sx: m
31
- }), a[8] = c, a[9] = u, a[10] = d, a[11] = m, a[12] = h) : h = a[12], h;
67
+ "& .MuiInputBase-root": b
68
+ }, s[12] = y, s[13] = x);
69
+ let S;
70
+ return s[14] !== f || s[15] !== _ || s[16] !== v || s[17] !== x ? (S = /* @__PURE__ */ i(e, {
71
+ disabled: f,
72
+ value: _,
73
+ onChange: v,
74
+ sx: x
75
+ }), s[14] = f, s[15] = _, s[16] = v, s[17] = x, s[18] = S) : S = s[18], S;
32
76
  }
33
- function a({ colType: e }) {
77
+ function f({ colType: e }) {
34
78
  return {
35
- component: ((n) => /* @__PURE__ */ t(i, {
36
- ...n,
79
+ component: ((t) => /* @__PURE__ */ i(d, {
80
+ ...t,
37
81
  colType: e
38
82
  })),
39
83
  copyValue: ({ rowData: e }) => e,
@@ -43,6 +87,6 @@ function a({ colType: e }) {
43
87
  };
44
88
  }
45
89
  //#endregion
46
- export { i as DateTimeCell, a as dateTimeColumn };
90
+ export { d as DateTimeCell, f as dateTimeColumn, u as interpretDateTimeCellValue };
47
91
 
48
92
  //# sourceMappingURL=DateTimeColumn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimeColumn.js","names":["DateTimePicker","dayjs","Dayjs","JSONSchema7Type","CellComponent","CellProps","Column","DateTimeCellProps","colType","DateTimeCell","t0","$","_c","rowData","setRowData","disabled","t1","t2","newValue","valueOf","toISOString","t3","undefined","t4","Symbol","for","height","backgroundColor","t5","pointerEvents","width","t6","DateTimeColumnProps","dateTimeColumn","Partial","component","props","copyValue","pasteValue","value","disableKeys","keepFocus"],"sources":["../../../../src/components/DataGrid/columns/DateTimeColumn.tsx"],"sourcesContent":["import DateTimePicker from '@/components/DateTimePicker/DateTimePicker'\nimport dayjs, { Dayjs } from 'dayjs'\nimport { JSONSchema7Type } from 'json-schema'\nimport {\n CellComponent,\n CellProps,\n Column,\n} from '@sage-bionetworks/react-datasheet-grid'\n\nexport type DateTimeCellProps = CellProps & {\n colType?: JSONSchema7Type\n}\n\nexport function DateTimeCell({\n rowData,\n setRowData,\n disabled,\n colType,\n}: DateTimeCellProps) {\n return (\n <DateTimePicker\n disabled={disabled}\n value={rowData ? dayjs(rowData) : null}\n onChange={(newValue: string | Dayjs | null) => {\n if (newValue == null) {\n setRowData(null)\n } else if (colType === 'number' || colType === 'integer') {\n // Assume unix millisecond timestamp\n setRowData(dayjs(newValue).valueOf())\n } else {\n // colType is 'string' or unspecified, use ISO string\n setRowData(dayjs(newValue).toISOString())\n }\n }}\n sx={{\n // When disabled, allow selecting the entire cell\n pointerEvents: disabled ? 'none' : undefined,\n width: '100%',\n height: '100%',\n '& .MuiInputBase-root': {\n height: '100%',\n backgroundColor: 'inherit',\n },\n }}\n />\n )\n}\n\nexport type DateTimeColumnProps = {\n colType?: JSONSchema7Type\n}\n\nexport function dateTimeColumn({\n colType,\n}: DateTimeColumnProps): Partial<Column> {\n return {\n component: ((props: DateTimeCellProps) => (\n <DateTimeCell {...props} colType={colType} />\n )) as CellComponent,\n copyValue: ({ rowData }) => rowData,\n pasteValue: ({ value }) => value,\n disableKeys: true,\n keepFocus: true,\n }\n}\n"],"mappings":";;;;;AAaA,SAAOS,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAAsB,EAAAC,YAAAC,eAAAC,aAAAP,eAAAE,GAKTM;CAAA,AAAAL,EAAA,OAAAE,IAIwBG,IAAAL,EAAA,MAA/BK,IAAAH,IAAUZ,EAAMY,CAAc,IAA9B,MAA+BF,EAAA,KAAAE,GAAAF,EAAA,KAAAK;CAAA,IAAAC;CAAA,AAAAN,EAAA,OAAAH,KAAAG,EAAA,OAAAG,KAC5BG,KAAAC,MAAA;EACR,AACEJ,EADEI,KAAY,OACH,OACFV,MAAY,YAAYA,MAAY,YAElCP,EAAMiB,CAAQ,EAACC,QAAS,IAGxBlB,EAAMiB,CAAQ,EAACE,YAAa,CAAC;CACzC,GACFT,EAAA,KAAAH,GAAAG,EAAA,KAAAG,GAAAH,EAAA,KAAAM,KAAAA,IAAAN,EAAA;CAGgB,IAAAU,IAAAN,IAAA,SAAAO,KAAAA,GAA6BC;CAAA,AAAAZ,EAAA,OAAAa,OAAAC,IAAA,2BAAA,KAGpBF,IAAA;EAAAG,QACd;EAAMC,iBACG;CACnB,GAAChB,EAAA,KAAAY,KAAAA,IAAAZ,EAAA;CAAA,IAAAiB;CAAA,AAAAjB,EAAA,OAAAU,IACFO,IAAAjB,EAAA,MATGiB,IAAA;EAAAC,eAEaR;EAA6BS,OACrC;EAAMJ,QACL;EAAM,wBACUH;CAI1B,GAACZ,EAAA,KAAAU,GAAAV,EAAA,KAAAiB;CAAA,IAAAG;CACD,OADCpB,EAAA,OAAAI,KAAAJ,EAAA,OAAAK,KAAAL,EAAA,QAAAM,KAAAN,EAAA,QAAAiB,KAvBHG,IAAA,kBAAC,GAAD;EACYhB;EACH,OAAAC;EACG,UAAAC;EAWN,IAAAW;CASH,CAAA,GACDjB,EAAA,KAAAI,GAAAJ,EAAA,KAAAK,GAAAL,EAAA,MAAAM,GAAAN,EAAA,MAAAiB,GAAAjB,EAAA,MAAAoB,KAAAA,IAAApB,EAAA,KAxBFoB;AAwBE;AAQN,SAAgBE,EAAe,EAC7BzB,cACuC;CACvC,OAAO;EACL2B,aAAaC,MACX,kBAAC,GAAD;GAAc,GAAIA;GAAgB5B;EAAQ,CAAA;EAE5C6B,YAAY,EAAExB,iBAAcA;EAC5ByB,aAAa,EAAEC,eAAYA;EAC3BC,aAAa;EACbC,WAAW;CACb;AACF"}
1
+ {"version":3,"file":"DateTimeColumn.js","names":["DateTimePicker","Box","SxProps","Theme","Tooltip","dayjs","Dayjs","JSONSchema7Type","isNil","CellComponent","CellProps","Column","castCellValueToString","UNPARSEABLE_VALUE_SX","display","alignItems","width","height","px","overflow","whiteSpace","textOverflow","DateTimeCellProps","colType","DateTimeCellValue","kind","date","text","isDateLike","value","Date","isDayjs","interpretDateTimeCellValue","rowData","trim","unparseable","const","expectsEpochMillis","epochMillis","Number","isFinite","ConfigType","isValid","DateTimeCell","t0","$","_c","setRowData","disabled","active","t1","cellValue","t2","t3","newValue","valueOf","toISOString","t4","undefined","t5","Symbol","for","backgroundColor","t6","pointerEvents","t7","DateTimeColumnProps","dateTimeColumn","Partial","component","props","copyValue","pasteValue","disableKeys","keepFocus"],"sources":["../../../../src/components/DataGrid/columns/DateTimeColumn.tsx"],"sourcesContent":["import DateTimePicker from '@/components/DateTimePicker/DateTimePicker'\nimport { Box, SxProps, Theme, Tooltip } from '@mui/material'\nimport dayjs, { Dayjs } from 'dayjs'\nimport { JSONSchema7Type } from 'json-schema'\nimport isNil from 'lodash-es/isNil'\nimport {\n CellComponent,\n CellProps,\n Column,\n} from '@sage-bionetworks/react-datasheet-grid'\nimport { castCellValueToString } from './AutocompleteColumn'\n\nconst UNPARSEABLE_VALUE_SX: SxProps<Theme> = {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n height: '100%',\n px: '14px',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n}\n\nexport type DateTimeCellProps = CellProps & {\n colType?: JSONSchema7Type\n}\n\nexport type DateTimeCellValue =\n | { kind: 'empty' }\n | { kind: 'date'; date: Dayjs }\n | { kind: 'unparseable'; text: string }\n\n// dayjs coerces values it has no business accepting — dayjs(true) yields epoch\n// 1ms — so restrict parsing to types that can legitimately carry a date.\nfunction isDateLike(value: unknown): boolean {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n value instanceof Date ||\n dayjs.isDayjs(value)\n )\n}\n\n/**\n * Classify a stored cell value as empty, a usable date, or something the picker\n * cannot represent.\n *\n * Numeric schema types store epoch milliseconds, but an imported value can\n * arrive as a numeric string, which dayjs would otherwise read as a year\n * (\"1705314600000\" parses to 1707). Coercion is attempted only when the string\n * is fully numeric, so an ISO string in a numeric column still parses as a date.\n */\nexport function interpretDateTimeCellValue(\n rowData: unknown,\n colType?: JSONSchema7Type,\n): DateTimeCellValue {\n if (\n isNil(rowData) ||\n (typeof rowData === 'string' && rowData.trim() === '')\n ) {\n return { kind: 'empty' }\n }\n\n const unparseable = {\n kind: 'unparseable',\n text: castCellValueToString(rowData),\n } as const\n\n if (!isDateLike(rowData)) {\n return unparseable\n }\n\n const expectsEpochMillis = colType === 'number' || colType === 'integer'\n const epochMillis =\n expectsEpochMillis &&\n typeof rowData === 'string' &&\n Number.isFinite(Number(rowData))\n ? Number(rowData)\n : null\n\n const date = dayjs((epochMillis ?? rowData) as dayjs.ConfigType)\n return date.isValid() ? { kind: 'date', date } : unparseable\n}\n\nexport function DateTimeCell({\n rowData,\n setRowData,\n disabled,\n colType,\n active,\n}: DateTimeCellProps) {\n const cellValue = interpretDateTimeCellValue(rowData, colType)\n\n // The picker renders a value it can't parse as an empty field, which hides\n // imported data that fails schema validation. Show the raw value instead until\n // the user activates the cell, at which point the picker is the only way to\n // replace it. The value is left untouched unless the user commits a change.\n if (cellValue.kind === 'unparseable' && !active) {\n return (\n <Tooltip title={cellValue.text} placement=\"top-start\" arrow>\n <Box sx={UNPARSEABLE_VALUE_SX}>{cellValue.text}</Box>\n </Tooltip>\n )\n }\n\n return (\n <DateTimePicker\n disabled={disabled}\n value={cellValue.kind === 'date' ? cellValue.date : null}\n onChange={(newValue: string | Dayjs | null) => {\n if (newValue == null) {\n setRowData(null)\n } else if (colType === 'number' || colType === 'integer') {\n // Assume unix millisecond timestamp\n setRowData(dayjs(newValue).valueOf())\n } else {\n // colType is 'string' or unspecified, use ISO string\n setRowData(dayjs(newValue).toISOString())\n }\n }}\n sx={{\n // When disabled, allow selecting the entire cell\n pointerEvents: disabled ? 'none' : undefined,\n width: '100%',\n height: '100%',\n '& .MuiInputBase-root': {\n height: '100%',\n backgroundColor: 'inherit',\n },\n }}\n />\n )\n}\n\nexport type DateTimeColumnProps = {\n colType?: JSONSchema7Type\n}\n\nexport function dateTimeColumn({\n colType,\n}: DateTimeColumnProps): Partial<Column> {\n return {\n component: ((props: DateTimeCellProps) => (\n <DateTimeCell {...props} colType={colType} />\n )) as CellComponent,\n copyValue: ({ rowData }) => rowData,\n pasteValue: ({ value }) => value,\n disableKeys: true,\n keepFocus: true,\n }\n}\n"],"mappings":";;;;;;;;AAYA,IAAMa,IAAuC;CAC3CC,SAAS;CACTC,YAAY;CACZC,OAAO;CACPC,QAAQ;CACRC,IAAI;CACJC,UAAU;CACVC,YAAY;CACZC,cAAc;AAChB;AAaA,SAASO,EAAWC,GAAyB;CAC3C,OACE,OAAOA,KAAU,YACjB,OAAOA,KAAU,YACjBA,aAAiBC,QACjBzB,EAAM0B,QAAQF,CAAK;AAEvB;AAWA,SAAgBG,EACdC,GACAV,GACmB;CACnB,IACEf,EAAMyB,CAAO,KACZ,OAAOA,KAAY,YAAYA,EAAQC,KAAK,MAAM,IAEnD,OAAO,EAAET,MAAM,QAAQ;CAGzB,IAAMU,IAAc;EAClBV,MAAM;EACNE,MAAMf,EAAsBqB,CAAO;CACrC;CAEA,IAAI,CAACL,EAAWK,CAAO,GACrB,OAAOE;CAWT,IAAMT,IAAOrB,IARckB,MAAY,YAAYA,MAAY,cAG7D,OAAOU,KAAY,YACnBM,OAAOC,SAASD,OAAON,CAAO,CAAC,IAC3BM,OAAON,CAAO,IACd,SAE6BA,CAA4B;CAC/D,OAAOP,EAAKgB,QAAQ,IAAI;EAAEjB,MAAM;EAAQC;CAAK,IAAIS;AACnD;AAEA,SAAOQ,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAAsB,EAAAb,YAAAc,eAAAC,aAAAzB,YAAA0B,cAAAL,GAMTM;CAAA,AAAAL,EAAA,OAAAtB,KAAAsB,EAAA,OAAAZ,KACAiB,IAAAlB,EAA2BC,GAASV,CAAO,GAACsB,EAAA,KAAAtB,GAAAsB,EAAA,KAAAZ,GAAAY,EAAA,KAAAK,KAAAA,IAAAL,EAAA;CAA9D,IAAAM,IAAkBD;CAMlB,IAAIC,EAAS1B,SAAU,iBAAnB,CAAqCwB,GAAM;EAAA,IAAAG;EAAA,AAAAP,EAAA,OAAAM,EAAAxB,OAGYyB,IAAAP,EAAA,MAArDO,IAAA,kBAAC,GAAD;GAASvC,IAAAA;aAAuBsC,EAASxB;EAArC,CAAA,GAAiDkB,EAAA,KAAAM,EAAAxB,MAAAkB,EAAA,KAAAO;EAAA,IAAAC;EAC7C,OAD6CR,EAAA,OAAAM,EAAAxB,QAAAkB,EAAA,OAAAO,KADvDC,IAAA,kBAAC,GAAD;GAAgB,OAAAF,EAASxB;GAAiB,WAAA;GAAY,OAAA;aACpDyB;EADM,CAAA,GAEEP,EAAA,KAAAM,EAAAxB,MAAAkB,EAAA,KAAAO,GAAAP,EAAA,KAAAQ,KAAAA,IAAAR,EAAA,IAFVQ;CAEU;CAOH,IAAAD,IAAAD,EAAS1B,SAAU,SAAS0B,EAASzB,OAArC,MAAiD2B;CAAA,AAAAR,EAAA,OAAAtB,KAAAsB,EAAA,OAAAE,KAC9CM,KAAAC,MAAA;EACR,AACEP,EADEO,KAAY,OACH,OACF/B,MAAY,YAAYA,MAAY,YAElClB,EAAMiD,CAAQ,EAACC,QAAS,IAGxBlD,EAAMiD,CAAQ,EAACE,YAAa,CAAC;CACzC,GACFX,EAAA,KAAAtB,GAAAsB,EAAA,KAAAE,GAAAF,EAAA,MAAAQ,KAAAA,IAAAR,EAAA;CAGgB,IAAAY,IAAAT,IAAA,SAAAU,KAAAA,GAA6BC;CAAA,AAAAd,EAAA,QAAAe,OAAAC,IAAA,2BAAA,KAGpBF,IAAA;EAAA1C,QACd;EAAM6C,iBACG;CACnB,GAACjB,EAAA,MAAAc,KAAAA,IAAAd,EAAA;CAAA,IAAAkB;CAAA,AAAAlB,EAAA,QAAAY,IACFM,IAAAlB,EAAA,OATGkB,IAAA;EAAAC,eAEaP;EAA6BzC,OACrC;EAAMC,QACL;EAAM,wBACU0C;CAI1B,GAACd,EAAA,MAAAY,GAAAZ,EAAA,MAAAkB;CAAA,IAAAE;CACD,OADCpB,EAAA,QAAAG,KAAAH,EAAA,QAAAO,KAAAP,EAAA,QAAAQ,KAAAR,EAAA,QAAAkB,KAvBHE,IAAA,kBAAC,GAAD;EACYjB;EACH,OAAAI;EACG,UAAAC;EAWN,IAAAU;CASH,CAAA,GACDlB,EAAA,MAAAG,GAAAH,EAAA,MAAAO,GAAAP,EAAA,MAAAQ,GAAAR,EAAA,MAAAkB,GAAAlB,EAAA,MAAAoB,KAAAA,IAAApB,EAAA,KAxBFoB;AAwBE;AAQN,SAAgBE,EAAe,EAC7B5C,cACuC;CACvC,OAAO;EACL8C,aAAaC,MACX,kBAAC,GAAD;GAAc,GAAIA;GAAgB/C;EAAQ,CAAA;EAE5CgD,YAAY,EAAEtC,iBAAcA;EAC5BuC,aAAa,EAAE3C,eAAYA;EAC3B4C,aAAa;EACbC,WAAW;CACb;AACF"}
@@ -0,0 +1,31 @@
1
+ import { Column } from '@sage-bionetworks/react-datasheet-grid';
2
+ import { JSONSchema7Type } from 'json-schema';
3
+ /**
4
+ * Render a numeric cell value for display while the cell is not being edited.
5
+ *
6
+ * Real numbers are locale-formatted; anything else is stringified verbatim.
7
+ * Numeric columns legitimately hold non-numeric values — CSV import writes
8
+ * cells server-side without passing through any client-side parsing, and
9
+ * parseFreeTextGivenJsonSchemaType deliberately preserves unparseable text so
10
+ * the validator can report it. Rendering those as blank leaves the user with an
11
+ * apparently empty cell on a row flagged invalid.
12
+ */
13
+ export declare function formatNumberCellValue(value: unknown): string;
14
+ export type NumberColumnProps = {
15
+ colType?: JSONSchema7Type;
16
+ isRequired?: boolean;
17
+ };
18
+ /**
19
+ * Mirrors the (unexported) columnData that createTextColumn builds, so callers
20
+ * and tests can reach the format/parse functions it derives.
21
+ */
22
+ export type NumberColumnData = {
23
+ placeholder?: string;
24
+ alignRight: boolean;
25
+ continuousUpdates: boolean;
26
+ parseUserInput: (value: string) => unknown;
27
+ formatBlurredInput: (value: unknown) => string;
28
+ formatInputOnFocus: (value: unknown) => string;
29
+ };
30
+ export declare function numberColumn({ colType, isRequired, }: NumberColumnProps): Partial<Column<unknown, NumberColumnData, string>>;
31
+ //# sourceMappingURL=NumberColumn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberColumn.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/columns/NumberColumn.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,MAAM,EAEP,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAK7C;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAK5D;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,OAAO,CAAA;IACnB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;IAC1C,kBAAkB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAA;IAC9C,kBAAkB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAA;CAC/C,CAAA;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAkB,EAClB,UAAU,GACX,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAmBxE"}
@@ -0,0 +1,27 @@
1
+ import e from "../utils/parseFreeTextUsingJsonSchemaType.js";
2
+ import { castCellValueToString as t } from "./AutocompleteColumn.js";
3
+ import { getEmptyValue as n } from "../utils/getEmptyValue.js";
4
+ import { createTextColumn as r } from "@sage-bionetworks/react-datasheet-grid";
5
+ //#region src/components/DataGrid/columns/NumberColumn.ts
6
+ var i = new Intl.NumberFormat();
7
+ function a(e) {
8
+ return typeof e == "number" ? Number.isNaN(e) ? "" : i.format(e) : t(e);
9
+ }
10
+ function o({ colType: i = "number", isRequired: o }) {
11
+ function s(t) {
12
+ return t.trim() === "" ? n(o) : e(t, i);
13
+ }
14
+ return r({
15
+ alignRight: !0,
16
+ continuousUpdates: !1,
17
+ deletedValue: n(o),
18
+ formatBlurredInput: a,
19
+ formatInputOnFocus: t,
20
+ parseUserInput: s,
21
+ parsePastedValue: (e) => s(e.replace(/[\n\r]+/g, " "))
22
+ });
23
+ }
24
+ //#endregion
25
+ export { a as formatNumberCellValue, o as numberColumn };
26
+
27
+ //# sourceMappingURL=NumberColumn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberColumn.js","names":["getEmptyValue","parseFreeTextGivenJsonSchemaType","Column","createTextColumn","JSONSchema7Type","castCellValueToString","NUMBER_FORMAT","Intl","NumberFormat","formatNumberCellValue","value","Number","isNaN","format","NumberColumnProps","colType","isRequired","NumberColumnData","placeholder","alignRight","continuousUpdates","parseUserInput","formatBlurredInput","formatInputOnFocus","numberColumn","Partial","parse","trim","deletedValue","parsePastedValue","replace"],"sources":["../../../../src/components/DataGrid/columns/NumberColumn.ts"],"sourcesContent":["import { getEmptyValue } from '@/components/DataGrid/utils/getEmptyValue'\nimport parseFreeTextGivenJsonSchemaType from '@/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType'\nimport {\n Column,\n createTextColumn,\n} from '@sage-bionetworks/react-datasheet-grid'\nimport { JSONSchema7Type } from 'json-schema'\nimport { castCellValueToString } from './AutocompleteColumn'\n\nconst NUMBER_FORMAT = new Intl.NumberFormat()\n\n/**\n * Render a numeric cell value for display while the cell is not being edited.\n *\n * Real numbers are locale-formatted; anything else is stringified verbatim.\n * Numeric columns legitimately hold non-numeric values — CSV import writes\n * cells server-side without passing through any client-side parsing, and\n * parseFreeTextGivenJsonSchemaType deliberately preserves unparseable text so\n * the validator can report it. Rendering those as blank leaves the user with an\n * apparently empty cell on a row flagged invalid.\n */\nexport function formatNumberCellValue(value: unknown): string {\n if (typeof value === 'number') {\n return Number.isNaN(value) ? '' : NUMBER_FORMAT.format(value)\n }\n return castCellValueToString(value)\n}\n\nexport type NumberColumnProps = {\n colType?: JSONSchema7Type\n isRequired?: boolean\n}\n\n/**\n * Mirrors the (unexported) columnData that createTextColumn builds, so callers\n * and tests can reach the format/parse functions it derives.\n */\nexport type NumberColumnData = {\n placeholder?: string\n alignRight: boolean\n continuousUpdates: boolean\n parseUserInput: (value: string) => unknown\n formatBlurredInput: (value: unknown) => string\n formatInputOnFocus: (value: unknown) => string\n}\n\nexport function numberColumn({\n colType = 'number',\n isRequired,\n}: NumberColumnProps): Partial<Column<unknown, NumberColumnData, string>> {\n function parse(value: string): unknown {\n if (value.trim() === '') {\n return getEmptyValue(isRequired)\n }\n return parseFreeTextGivenJsonSchemaType(value, colType)\n }\n\n return createTextColumn<unknown>({\n alignRight: true,\n continuousUpdates: false,\n deletedValue: getEmptyValue(isRequired),\n formatBlurredInput: formatNumberCellValue,\n // Edit against the stored value rather than the locale-formatted one so\n // grouping separators never reach the parser.\n formatInputOnFocus: castCellValueToString,\n parseUserInput: parse,\n parsePastedValue: value => parse(value.replace(/[\\n\\r]+/g, ' ')),\n })\n}\n"],"mappings":";;;;;AASA,IAAMM,IAAgB,IAAIC,KAAKC,aAAa;AAY5C,SAAgBC,EAAsBC,GAAwB;CAI5D,OAHI,OAAOA,KAAU,WACZC,OAAOC,MAAMF,CAAK,IAAI,KAAKJ,EAAcO,OAAOH,CAAK,IAEvDL,EAAsBK,CAAK;AACpC;AAoBA,SAAgBc,EAAa,EAC3BT,aAAU,UACVC,iBACwE;CACxE,SAASU,EAAMhB,GAAwB;EAIrC,OAHIA,EAAMiB,KAAK,MAAM,KACZ3B,EAAcgB,CAAU,IAE1Bf,EAAiCS,GAAOK,CAAO;CACxD;CAEA,OAAOZ,EAA0B;EAC/BgB,YAAY;EACZC,mBAAmB;EACnBQ,cAAc5B,EAAcgB,CAAU;EACtCM,oBAAoBb;EAGpBc,oBAAoBlB;EACpBgB,gBAAgBK;EAChBG,mBAAkBnB,MAASgB,EAAMhB,EAAMoB,QAAQ,YAAY,GAAG,CAAC;CACjE,CAAC;AACH"}
@@ -4,6 +4,7 @@ export type ReorderColumnsButtonProps = {
4
4
  columnOrder: number[];
5
5
  jsonSchema: JSONSchema7 | undefined;
6
6
  upsertKey?: string[];
7
+ canRemoveColumns?: boolean;
7
8
  onReorder: (newColumnOrder: number[]) => void;
8
9
  };
9
10
  export default function ReorderColumnsButton(props: ReorderColumnsButtonProps): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"ReorderColumnsButton.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/components/ReorderColumnsButton.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAGzC,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,UAAU,EAAE,WAAW,GAAG,SAAS,CAAA;IACnC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,SAAS,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;CAC9C,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,2CAgC5E"}
1
+ {"version":3,"file":"ReorderColumnsButton.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/components/ReorderColumnsButton.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAGzC,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,UAAU,EAAE,WAAW,GAAG,SAAS,CAAA;IACnC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,SAAS,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;CAC9C,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,2CAwC5E"}
@@ -6,30 +6,31 @@ import { SwapHoriz as o } from "@mui/icons-material";
6
6
  import { c as s } from "react/compiler-runtime";
7
7
  //#region src/components/DataGrid/components/ReorderColumnsButton.tsx
8
8
  function c(c) {
9
- let l = s(14), { columnNames: u, columnOrder: d, jsonSchema: f, upsertKey: p, onReorder: m } = c, [h, g] = n(!1), _;
10
- l[0] !== u || l[1] !== d || l[2] !== f || l[3] !== m || l[4] !== h || l[5] !== p ? (_ = h && /* @__PURE__ */ i(t, {
11
- open: h,
9
+ let l = s(15), { columnNames: u, columnOrder: d, jsonSchema: f, upsertKey: p, canRemoveColumns: m, onReorder: h } = c, [g, _] = n(!1), v;
10
+ l[0] !== m || l[1] !== u || l[2] !== d || l[3] !== f || l[4] !== h || l[5] !== g || l[6] !== p ? (v = g && /* @__PURE__ */ i(t, {
11
+ open: g,
12
12
  columnNames: u,
13
13
  columnOrder: d,
14
14
  jsonSchema: f,
15
15
  upsertKey: p,
16
+ canRemoveColumns: m,
16
17
  onSave: (e) => {
17
- m(e), g(!1);
18
+ h(e), _(!1);
18
19
  },
19
- onCancel: () => g(!1)
20
- }), l[0] = u, l[1] = d, l[2] = f, l[3] = m, l[4] = h, l[5] = p, l[6] = _) : _ = l[6];
21
- let v, y;
22
- l[7] === Symbol.for("react.memo_cache_sentinel") ? (v = /* @__PURE__ */ i(o, {}), y = () => g(!0), l[7] = v, l[8] = y) : (v = l[7], y = l[8]);
23
- let b = d.length < 2, x;
24
- l[9] === b ? x = l[10] : (x = /* @__PURE__ */ i(e, {
20
+ onCancel: () => _(!1)
21
+ }), l[0] = m, l[1] = u, l[2] = d, l[3] = f, l[4] = h, l[5] = g, l[6] = p, l[7] = v) : v = l[7];
22
+ let y, b;
23
+ l[8] === Symbol.for("react.memo_cache_sentinel") ? (y = /* @__PURE__ */ i(o, {}), b = () => _(!0), l[8] = y, l[9] = b) : (y = l[8], b = l[9]);
24
+ let x = d.length < 2, S;
25
+ l[10] === x ? S = l[11] : (S = /* @__PURE__ */ i(e, {
25
26
  variant: "outlined",
26
- startIcon: v,
27
- onClick: y,
28
- disabled: b,
27
+ startIcon: y,
28
+ onClick: b,
29
+ disabled: x,
29
30
  children: "Reorder Columns"
30
- }), l[9] = b, l[10] = x);
31
- let S;
32
- return l[11] !== _ || l[12] !== x ? (S = /* @__PURE__ */ a(r, { children: [_, x] }), l[11] = _, l[12] = x, l[13] = S) : S = l[13], S;
31
+ }), l[10] = x, l[11] = S);
32
+ let C;
33
+ return l[12] !== v || l[13] !== S ? (C = /* @__PURE__ */ a(r, { children: [v, S] }), l[12] = v, l[13] = S, l[14] = C) : C = l[14], C;
33
34
  }
34
35
  //#endregion
35
36
  export { c as default };