synapse-react-client 4.0.38 → 4.0.40

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 (222) hide show
  1. package/dist/SWC.index.js +1 -1
  2. package/dist/aridhia-queries/useAridhiaQuery.d.ts +6 -2
  3. package/dist/aridhia-queries/useAridhiaQuery.d.ts.map +1 -1
  4. package/dist/aridhia-queries/useAridhiaQuery.js +3 -0
  5. package/dist/aridhia-queries/useAridhiaQuery.js.map +1 -1
  6. package/dist/components/Aridhia/AridhiaAccessStatus.d.ts +2 -1
  7. package/dist/components/Aridhia/AridhiaAccessStatus.d.ts.map +1 -1
  8. package/dist/components/Aridhia/AridhiaAccessStatus.js +60 -37
  9. package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
  10. package/dist/components/Aridhia/AridhiaDarStatusPopover.d.ts +12 -0
  11. package/dist/components/Aridhia/AridhiaDarStatusPopover.d.ts.map +1 -0
  12. package/dist/components/Aridhia/AridhiaDarStatusPopover.js +56 -0
  13. package/dist/components/Aridhia/AridhiaDarStatusPopover.js.map +1 -0
  14. package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.d.ts.map +1 -1
  15. package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.js +38 -30
  16. package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.js.map +1 -1
  17. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js +15 -14
  18. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js.map +1 -1
  19. package/dist/components/Aridhia/RdcaDapEligibilityDialog.d.ts +11 -0
  20. package/dist/components/Aridhia/RdcaDapEligibilityDialog.d.ts.map +1 -0
  21. package/dist/components/Aridhia/RdcaDapEligibilityDialog.js +37 -0
  22. package/dist/components/Aridhia/RdcaDapEligibilityDialog.js.map +1 -0
  23. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js +2 -2
  24. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
  25. package/dist/components/Aridhia/aridhiaFairPortalUrls.d.ts +10 -0
  26. package/dist/components/Aridhia/aridhiaFairPortalUrls.d.ts.map +1 -0
  27. package/dist/components/Aridhia/aridhiaFairPortalUrls.js +11 -0
  28. package/dist/components/Aridhia/aridhiaFairPortalUrls.js.map +1 -0
  29. package/dist/components/Aridhia/rdcaDapConstants.d.ts +3 -0
  30. package/dist/components/Aridhia/rdcaDapConstants.d.ts.map +1 -0
  31. package/dist/components/Aridhia/rdcaDapConstants.js +6 -0
  32. package/dist/components/Aridhia/rdcaDapConstants.js.map +1 -0
  33. package/dist/components/DataExplorer/DataExplorer.css +1 -1
  34. package/dist/components/DataExplorer/DataExplorer.d.ts.map +1 -1
  35. package/dist/components/DataExplorer/DataExplorer.js +50 -50
  36. package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
  37. package/dist/components/DataExplorer/DataExplorer.module.js +16 -16
  38. package/dist/components/DataExplorer/DataExplorer.module.js.map +1 -1
  39. package/dist/components/DataExplorer/DataExplorer.module.scss +29 -6
  40. package/dist/components/DataGrid/columns/DateTimeColumn.d.ts +16 -7
  41. package/dist/components/DataGrid/columns/DateTimeColumn.d.ts.map +1 -1
  42. package/dist/components/DataGrid/columns/DateTimeColumn.js +79 -57
  43. package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
  44. package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
  45. package/dist/components/DataGrid/utils/columnFactory.js +11 -8
  46. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  47. package/dist/components/DatePicker/DatePicker.d.ts +10 -0
  48. package/dist/components/DatePicker/DatePicker.d.ts.map +1 -0
  49. package/dist/components/DatePicker/DatePicker.js +18 -0
  50. package/dist/components/DatePicker/DatePicker.js.map +1 -0
  51. package/dist/components/EntityCitation/EntityCitation.d.ts.map +1 -1
  52. package/dist/components/EntityCitation/EntityCitation.js +8 -5
  53. package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
  54. package/dist/components/HasAccess/AccessIcon.d.ts +3 -1
  55. package/dist/components/HasAccess/AccessIcon.d.ts.map +1 -1
  56. package/dist/components/HasAccess/AccessIcon.js +11 -1
  57. package/dist/components/HasAccess/AccessIcon.js.map +1 -1
  58. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.d.ts +2 -1
  59. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.d.ts.map +1 -1
  60. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js +81 -53
  61. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
  62. package/dist/components/ProjectInfo/ProjectInfo.d.ts.map +1 -1
  63. package/dist/components/ProjectInfo/ProjectInfo.js +3 -2
  64. package/dist/components/ProjectInfo/ProjectInfo.js.map +1 -1
  65. package/dist/components/QueryBuilder/FilterConditionRow.css +1 -0
  66. package/dist/components/QueryBuilder/FilterConditionRow.d.ts +6 -0
  67. package/dist/components/QueryBuilder/FilterConditionRow.d.ts.map +1 -0
  68. package/dist/components/QueryBuilder/FilterConditionRow.js +257 -0
  69. package/dist/components/QueryBuilder/FilterConditionRow.js.map +1 -0
  70. package/dist/components/QueryBuilder/FilterConditionRow.module.js +17 -0
  71. package/dist/components/QueryBuilder/FilterConditionRow.module.js.map +1 -0
  72. package/dist/components/QueryBuilder/FilterConditionRow.module.scss +106 -0
  73. package/dist/components/QueryBuilder/FilterGroupNode.css +1 -0
  74. package/dist/components/QueryBuilder/FilterGroupNode.d.ts +7 -0
  75. package/dist/components/QueryBuilder/FilterGroupNode.d.ts.map +1 -0
  76. package/dist/components/QueryBuilder/FilterGroupNode.js +100 -0
  77. package/dist/components/QueryBuilder/FilterGroupNode.js.map +1 -0
  78. package/dist/components/QueryBuilder/FilterGroupNode.module.js +15 -0
  79. package/dist/components/QueryBuilder/FilterGroupNode.module.js.map +1 -0
  80. package/dist/components/QueryBuilder/FilterGroupNode.module.scss +83 -0
  81. package/dist/components/QueryBuilder/QueryBuilderControls.css +1 -0
  82. package/dist/components/QueryBuilder/QueryBuilderControls.d.ts +21 -0
  83. package/dist/components/QueryBuilder/QueryBuilderControls.d.ts.map +1 -0
  84. package/dist/components/QueryBuilder/QueryBuilderControls.js +138 -0
  85. package/dist/components/QueryBuilder/QueryBuilderControls.js.map +1 -0
  86. package/dist/components/QueryBuilder/QueryBuilderControls.module.js +17 -0
  87. package/dist/components/QueryBuilder/QueryBuilderControls.module.js.map +1 -0
  88. package/dist/components/QueryBuilder/QueryBuilderControls.module.scss +79 -0
  89. package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts +39 -0
  90. package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts.map +1 -0
  91. package/dist/components/QueryBuilder/QueryBuilderInternalContext.js +19 -0
  92. package/dist/components/QueryBuilder/QueryBuilderInternalContext.js.map +1 -0
  93. package/dist/components/QueryBuilder/qbTreeToReadable.d.ts +14 -0
  94. package/dist/components/QueryBuilder/qbTreeToReadable.d.ts.map +1 -0
  95. package/dist/components/QueryBuilder/qbTreeToReadable.js +89 -0
  96. package/dist/components/QueryBuilder/qbTreeToReadable.js.map +1 -0
  97. package/dist/components/QueryBuilder/queryBuilderId.d.ts +2 -0
  98. package/dist/components/QueryBuilder/queryBuilderId.d.ts.map +1 -0
  99. package/dist/components/QueryBuilder/queryBuilderId.js +9 -0
  100. package/dist/components/QueryBuilder/queryBuilderId.js.map +1 -0
  101. package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts +24 -0
  102. package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts.map +1 -0
  103. package/dist/components/QueryBuilder/queryBuilderMetadata.js +91 -0
  104. package/dist/components/QueryBuilder/queryBuilderMetadata.js.map +1 -0
  105. package/dist/components/QueryBuilder/queryBuilderOperations.d.ts +58 -0
  106. package/dist/components/QueryBuilder/queryBuilderOperations.d.ts.map +1 -0
  107. package/dist/components/QueryBuilder/queryBuilderOperations.js +200 -0
  108. package/dist/components/QueryBuilder/queryBuilderOperations.js.map +1 -0
  109. package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts +3 -2
  110. package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts.map +1 -1
  111. package/dist/components/QueryBuilder/queryBuilderTranslation.js +82 -84
  112. package/dist/components/QueryBuilder/queryBuilderTranslation.js.map +1 -1
  113. package/dist/components/QueryBuilder/useQBCombinedSql.d.ts +11 -0
  114. package/dist/components/QueryBuilder/useQBCombinedSql.d.ts.map +1 -0
  115. package/dist/components/QueryBuilder/useQBCombinedSql.js +29 -0
  116. package/dist/components/QueryBuilder/useQBCombinedSql.js.map +1 -0
  117. package/dist/components/QueryBuilder/useQBFacetSourceMetadata.d.ts +18 -0
  118. package/dist/components/QueryBuilder/useQBFacetSourceMetadata.d.ts.map +1 -0
  119. package/dist/components/QueryBuilder/useQBFacetSourceMetadata.js +27 -0
  120. package/dist/components/QueryBuilder/useQBFacetSourceMetadata.js.map +1 -0
  121. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +14 -1
  122. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
  123. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +185 -120
  124. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  125. package/dist/components/RssFeedCards/RssFeedCards.d.ts +1 -0
  126. package/dist/components/RssFeedCards/RssFeedCards.d.ts.map +1 -1
  127. package/dist/components/RssFeedCards/RssFeedCards.js +11 -11
  128. package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
  129. package/dist/components/SynapseChat/SynapseChat.d.ts +7 -1
  130. package/dist/components/SynapseChat/SynapseChat.d.ts.map +1 -1
  131. package/dist/components/SynapseChat/SynapseChat.js +76 -71
  132. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  133. package/dist/components/SynapseChat/SynapsePortalChatDialog.d.ts +3 -1
  134. package/dist/components/SynapseChat/SynapsePortalChatDialog.d.ts.map +1 -1
  135. package/dist/components/SynapseChat/SynapsePortalChatDialog.js +24 -13
  136. package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -1
  137. package/dist/components/SynapseChat/portalChatSessionStorage.d.ts +23 -0
  138. package/dist/components/SynapseChat/portalChatSessionStorage.d.ts.map +1 -0
  139. package/dist/components/SynapseChat/portalChatSessionStorage.js +29 -0
  140. package/dist/components/SynapseChat/portalChatSessionStorage.js.map +1 -0
  141. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts +6 -0
  142. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts.map +1 -1
  143. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js +92 -79
  144. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
  145. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts +3 -4
  146. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts.map +1 -1
  147. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js +2 -2
  148. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js.map +1 -1
  149. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js +1 -1
  150. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
  151. package/dist/components/entity/page/action_menu/EntityActionMenu.d.ts.map +1 -1
  152. package/dist/components/entity/page/action_menu/EntityActionMenu.js +9 -2
  153. package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
  154. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js +1 -1
  155. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
  156. package/dist/components/menu/ComplexMenu.js +1 -1
  157. package/dist/components/menu/ComplexMenu.js.map +1 -1
  158. package/dist/components/menu/DropdownMenu.d.ts.map +1 -1
  159. package/dist/components/menu/DropdownMenu.js +4 -0
  160. package/dist/components/menu/DropdownMenu.js.map +1 -1
  161. package/dist/features/entity/metadata-task/hooks/useMarkCurationTaskInProgress.d.ts +10 -0
  162. package/dist/features/entity/metadata-task/hooks/useMarkCurationTaskInProgress.d.ts.map +1 -0
  163. package/dist/features/entity/metadata-task/hooks/useMarkCurationTaskInProgress.js +20 -0
  164. package/dist/features/entity/metadata-task/hooks/useMarkCurationTaskInProgress.js.map +1 -0
  165. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.d.ts.map +1 -1
  166. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js +29 -20
  167. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
  168. package/dist/mocks/accessRequirement/mockFormTemplates.d.ts +16 -0
  169. package/dist/mocks/accessRequirement/mockFormTemplates.d.ts.map +1 -0
  170. package/dist/mocks/accessRequirement/mockFormTemplates.js +70 -0
  171. package/dist/mocks/accessRequirement/mockFormTemplates.js.map +1 -0
  172. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.d.ts +7 -0
  173. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.d.ts.map +1 -0
  174. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.js +47 -0
  175. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.js.map +1 -0
  176. package/dist/mocks/accessRequirement/mockJsonSchemas.d.ts +24 -0
  177. package/dist/mocks/accessRequirement/mockJsonSchemas.d.ts.map +1 -0
  178. package/dist/mocks/accessRequirement/mockJsonSchemas.js +62 -0
  179. package/dist/mocks/accessRequirement/mockJsonSchemas.js.map +1 -0
  180. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts +18 -1
  181. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts.map +1 -1
  182. package/dist/mocks/msw/handlers/aridhiaHandlers.js +39 -33
  183. package/dist/mocks/msw/handlers/aridhiaHandlers.js.map +1 -1
  184. package/dist/mocks/msw/handlers/formTemplateHandlers.d.ts +5 -0
  185. package/dist/mocks/msw/handlers/formTemplateHandlers.d.ts.map +1 -0
  186. package/dist/mocks/msw/handlers/formTemplateHandlers.js +65 -0
  187. package/dist/mocks/msw/handlers/formTemplateHandlers.js.map +1 -0
  188. package/dist/mocks/msw/handlers.d.ts.map +1 -1
  189. package/dist/mocks/msw/handlers.js +49 -47
  190. package/dist/mocks/msw/handlers.js.map +1 -1
  191. package/dist/style/abstracts/_cssVariables.scss +7 -0
  192. package/dist/style/components/_query-wrapper-plot-nav.scss +9 -0
  193. package/dist/style/main.css +1 -1
  194. package/dist/synapse-queries/KeyFactory.d.ts +6 -1
  195. package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
  196. package/dist/synapse-queries/KeyFactory.js +17 -2
  197. package/dist/synapse-queries/KeyFactory.js.map +1 -1
  198. package/dist/synapse-queries/chat/useChat.d.ts.map +1 -1
  199. package/dist/synapse-queries/chat/useChat.js +2 -4
  200. package/dist/synapse-queries/chat/useChat.js.map +1 -1
  201. package/dist/synapse-queries/dataaccess/index.d.ts +2 -0
  202. package/dist/synapse-queries/dataaccess/index.d.ts.map +1 -1
  203. package/dist/synapse-queries/dataaccess/index.js +5 -3
  204. package/dist/synapse-queries/dataaccess/useFormTemplate.d.ts +41 -0
  205. package/dist/synapse-queries/dataaccess/useFormTemplate.d.ts.map +1 -0
  206. package/dist/synapse-queries/dataaccess/useFormTemplate.js +63 -0
  207. package/dist/synapse-queries/dataaccess/useFormTemplate.js.map +1 -0
  208. package/dist/synapse-queries/dataaccess/useGenerateDataAccessSchema.d.ts +21 -0
  209. package/dist/synapse-queries/dataaccess/useGenerateDataAccessSchema.d.ts.map +1 -0
  210. package/dist/synapse-queries/dataaccess/useGenerateDataAccessSchema.js +34 -0
  211. package/dist/synapse-queries/dataaccess/useGenerateDataAccessSchema.js.map +1 -0
  212. package/dist/synapse-queries/index.js +190 -180
  213. package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
  214. package/dist/tsconfig.build.tsbuildinfo +1 -1
  215. package/dist/utils/featureflag/FeatureFlags.d.ts +0 -1
  216. package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
  217. package/dist/utils/featureflag/FeatureFlags.js +1 -1
  218. package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
  219. package/dist/utils/jsonschema/getType.d.ts.map +1 -1
  220. package/dist/utils/jsonschema/getType.js +4 -1
  221. package/dist/utils/jsonschema/getType.js.map +1 -1
  222. package/package.json +7 -7
@@ -1,20 +1,20 @@
1
1
  import './DataExplorer.css';var e = {
2
- dataExplorerTitle: "_dataExplorerTitle_1ezpn_1",
3
- dataExplorerSubtitle: "_dataExplorerSubtitle_1ezpn_7",
4
- dataExplorerButton: "_dataExplorerButton_1ezpn_12",
5
- dataExplorerTextContainer: "_dataExplorerTextContainer_1ezpn_17",
6
- dataExplorerContainer: "_dataExplorerContainer_1ezpn_27",
7
- dataContainer: "_dataContainer_1ezpn_41",
8
- dataRowTitle: "_dataRowTitle_1ezpn_51",
9
- dataRowInner: "_dataRowInner_1ezpn_67",
10
- dataRow: "_dataRow_1ezpn_51",
11
- viewCta: "_viewCta_1ezpn_96",
12
- dataRowLeft: "_dataRowLeft_1ezpn_101",
13
- iconContainer: "_iconContainer_1ezpn_109",
14
- dataRowNamePill: "_dataRowNamePill_1ezpn_119",
15
- facetCount: "_facetCount_1ezpn_127",
16
- viewCtaText: "_viewCtaText_1ezpn_160",
17
- viewCtaIcon: "_viewCtaIcon_1ezpn_167"
2
+ dataExplorerTitle: "_dataExplorerTitle_1d57f_1",
3
+ dataExplorerSubtitle: "_dataExplorerSubtitle_1d57f_7",
4
+ dataExplorerButton: "_dataExplorerButton_1d57f_12",
5
+ dataExplorerTextContainer: "_dataExplorerTextContainer_1d57f_17",
6
+ dataExplorerContainer: "_dataExplorerContainer_1d57f_27",
7
+ dataContainer: "_dataContainer_1d57f_42",
8
+ dataRowTitle: "_dataRowTitle_1d57f_59",
9
+ dataRowInner: "_dataRowInner_1d57f_75",
10
+ dataRow: "_dataRow_1d57f_59",
11
+ viewCta: "_viewCta_1d57f_114",
12
+ dataRowLeft: "_dataRowLeft_1d57f_124",
13
+ iconContainer: "_iconContainer_1d57f_132",
14
+ dataRowNamePill: "_dataRowNamePill_1d57f_142",
15
+ facetCount: "_facetCount_1d57f_150",
16
+ viewCtaText: "_viewCtaText_1d57f_183",
17
+ viewCtaIcon: "_viewCtaIcon_1d57f_190"
18
18
  };
19
19
  //#endregion
20
20
  export { e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"DataExplorer.module.js","names":[],"sources":["../../../src/components/DataExplorer/DataExplorer.module.scss"],"sourcesContent":["@use 'sass:map';\n@use '../../style/abstracts/variables' as SrcVariables;\n\n.dataExplorerTitle:global(.MuiTypography-root) {\n color: var(--data-explorer-title-color, var(--synapse-primary-action-color));\n font-size: 36px;\n line-height: 40px; /* 111.111% */\n}\n\n.dataExplorerSubtitle:global(.MuiTypography-root) {\n line-height: 140%;\n}\n\n.dataExplorerButton {\n @media (min-width: map.get(SrcVariables.$breakpoints, 'large')) {\n width: fit-content;\n }\n}\n\n.dataExplorerTextContainer {\n gap: 16px;\n\n @media (min-width: map.get(SrcVariables.$breakpoints, 'large')) {\n flex: 0 0 30%;\n max-width: 30%;\n }\n}\n\n.dataExplorerContainer {\n display: flex;\n padding: 40px 0;\n align-items: flex-start;\n gap: 60px;\n flex: 1 0 0;\n flex-direction: column;\n\n @media (min-width: map.get(SrcVariables.$breakpoints, 'large')) {\n flex-direction: row;\n }\n}\n\n.dataContainer {\n display: inline-grid;\n row-gap: 8px;\n column-gap: 8px;\n flex: 1 1 60%;\n min-width: 0;\n grid-template-rows: repeat(9, fit-content(100%));\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n.dataRowTitle {\n color: var(--synapse-primary-action-color, #4d558d);\n font-size: 16px;\n font-weight: 400;\n line-height: 26.4px;\n flex: 0 1 auto;\n min-width: 0;\n overflow-wrap: break-word;\n word-break: break-word;\n\n @media (min-width: map.get(SrcVariables.$breakpoints, 'large')) {\n font-size: 19.8px;\n }\n}\n\n.dataRowInner {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex: 1;\n min-width: 0;\n}\n\n.dataRow {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8.8px 26.4px;\n min-height: 66.6px;\n gap: 17.6px;\n justify-self: stretch;\n position: relative;\n border-radius: 3.3px;\n border: 1px solid transparent;\n text-decoration: none !important;\n transition:\n background-color 200ms ease,\n border-color 200ms ease,\n box-shadow 200ms ease,\n transform 200ms ease;\n\n &:hover {\n background-color: #fff;\n border-color: #e1e1e1;\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.1);\n transform: scale(1.1);\n z-index: 1;\n .viewCta {\n opacity: 1;\n pointer-events: auto;\n }\n }\n}\n\n.dataRowLeft {\n display: inline-flex;\n align-items: center;\n gap: 16px;\n min-width: 0;\n flex: 1;\n}\n\n.iconContainer {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 49px;\n height: 49px;\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n.dataRowNamePill {\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1 1 0;\n min-width: 0;\n}\n\n.facetCount {\n display: flex;\n padding: 4px 8px;\n justify-content: center;\n align-items: center;\n gap: 10px;\n border-radius: 80px;\n border: 1px solid #d8d5e0;\n color: #787090;\n font-size: 14px;\n font-weight: 400;\n line-height: 24px; /* 171.429% */\n flex-shrink: 0;\n}\n\n.viewCta {\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n display: inline-flex;\n align-items: center;\n padding-right: 26.4px;\n padding-left: 40px;\n gap: 4px;\n opacity: 0;\n white-space: nowrap;\n color: var(--synapse-primary-action-color, #4d558d);\n background: linear-gradient(to right, transparent, #fff 25%, #fff 100%);\n border-radius: 0 2px 2px 0;\n transition: opacity 200ms ease;\n}\n\n.viewCtaText {\n color: var(--synapse-primary-action-color, #4d558d);\n font-size: 16px;\n font-weight: 400;\n line-height: 26.4px; /* 165% */\n}\n\n.viewCtaIcon:global(.MuiSvgIcon-root) {\n font-size: 24px;\n color: var(--synapse-primary-action-color, #5a488f);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"DataExplorer.module.js","names":[],"sources":["../../../src/components/DataExplorer/DataExplorer.module.scss"],"sourcesContent":["@use 'sass:map';\n@use '../../style/abstracts/variables' as SrcVariables;\n\n.dataExplorerTitle:global(.MuiTypography-root) {\n color: var(--data-explorer-title-color, var(--synapse-primary-action-color));\n font-size: 36px;\n line-height: 40px; /* 111.111% */\n}\n\n.dataExplorerSubtitle:global(.MuiTypography-root) {\n line-height: 140%;\n}\n\n.dataExplorerButton {\n @media (min-width: map.get(SrcVariables.$breakpoints, 'large')) {\n width: fit-content;\n }\n}\n\n.dataExplorerTextContainer {\n gap: 16px;\n\n @media (min-width: map.get(SrcVariables.$breakpoints, 'large')) {\n flex: 0 0 30%;\n max-width: 30%;\n }\n}\n\n.dataExplorerContainer {\n display: flex;\n padding: 40px 0;\n align-items: flex-start;\n gap: 20px;\n flex: 1 0 0;\n flex-direction: column;\n\n @media (min-width: map.get(SrcVariables.$breakpoints, 'large')) {\n gap: 60px;\n flex-direction: row;\n }\n}\n\n.dataContainer {\n display: grid;\n width: 100%;\n align-self: stretch;\n row-gap: 8px;\n column-gap: 8px;\n flex: 1 1 60%;\n min-width: 0;\n grid-template-rows: repeat(9, fit-content(100%));\n grid-template-columns: minmax(0, 1fr);\n\n @media (min-width: map.get(SrcVariables.$breakpoints, 'large')) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n}\n\n.dataRowTitle {\n color: var(--synapse-primary-action-color, #4d558d);\n font-size: 16px;\n font-weight: 400;\n line-height: 26.4px;\n flex: 0 1 auto;\n min-width: 0;\n overflow-wrap: break-word;\n word-break: break-word;\n\n @media (min-width: map.get(SrcVariables.$breakpoints, 'large')) {\n font-size: 19.8px;\n }\n}\n\n.dataRowInner {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex: 1;\n min-width: 0;\n}\n\n.dataRow {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 6px 12px;\n min-height: 66.6px;\n gap: 17.6px;\n justify-self: stretch;\n position: relative;\n border-radius: 3.3px;\n border: 1px solid transparent;\n text-decoration: none !important;\n transition:\n background-color 200ms ease,\n border-color 200ms ease,\n box-shadow 200ms ease,\n transform 200ms ease;\n\n .dataRowTitle {\n text-decoration: underline;\n }\n\n @media (min-width: map.get(SrcVariables.$breakpoints, 'large')) {\n padding: 8.8px 26.4px;\n\n .dataRowTitle {\n text-decoration: none;\n }\n }\n\n &:hover,\n &:active {\n background-color: #fff;\n border-color: #e1e1e1;\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.1);\n z-index: 1;\n .viewCta {\n opacity: 1;\n pointer-events: auto;\n }\n }\n\n @media (min-width: map.get(SrcVariables.$breakpoints, 'large')) {\n transform: scale(1.1);\n }\n}\n\n.dataRowLeft {\n display: inline-flex;\n align-items: center;\n gap: 16px;\n min-width: 0;\n flex: 1;\n}\n\n.iconContainer {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 49px;\n height: 49px;\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n.dataRowNamePill {\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1 1 0;\n min-width: 0;\n}\n\n.facetCount {\n display: flex;\n padding: 4px 8px;\n justify-content: center;\n align-items: center;\n gap: 10px;\n border-radius: 80px;\n border: 1px solid #d8d5e0;\n color: #787090;\n font-size: 14px;\n font-weight: 400;\n line-height: 24px; /* 171.429% */\n flex-shrink: 0;\n}\n\n.viewCta {\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n display: inline-flex;\n align-items: center;\n padding-right: 26.4px;\n padding-left: 40px;\n gap: 4px;\n opacity: 0;\n white-space: nowrap;\n color: var(--synapse-primary-action-color, #4d558d);\n background: linear-gradient(to right, transparent, #fff 25%, #fff 100%);\n border-radius: 0 2px 2px 0;\n transition: opacity 200ms ease;\n}\n\n.viewCtaText {\n color: var(--synapse-primary-action-color, #4d558d);\n font-size: 16px;\n font-weight: 400;\n line-height: 26.4px; /* 165% */\n}\n\n.viewCtaIcon:global(.MuiSvgIcon-root) {\n font-size: 24px;\n color: var(--synapse-primary-action-color, #5a488f);\n}\n"],"mappings":""}
@@ -30,23 +30,30 @@
30
30
  display: flex;
31
31
  padding: 40px 0;
32
32
  align-items: flex-start;
33
- gap: 60px;
33
+ gap: 20px;
34
34
  flex: 1 0 0;
35
35
  flex-direction: column;
36
36
 
37
37
  @media (min-width: map.get(SrcVariables.$breakpoints, 'large')) {
38
+ gap: 60px;
38
39
  flex-direction: row;
39
40
  }
40
41
  }
41
42
 
42
43
  .dataContainer {
43
- display: inline-grid;
44
+ display: grid;
45
+ width: 100%;
46
+ align-self: stretch;
44
47
  row-gap: 8px;
45
48
  column-gap: 8px;
46
49
  flex: 1 1 60%;
47
50
  min-width: 0;
48
51
  grid-template-rows: repeat(9, fit-content(100%));
49
- grid-template-columns: repeat(2, minmax(0, 1fr));
52
+ grid-template-columns: minmax(0, 1fr);
53
+
54
+ @media (min-width: map.get(SrcVariables.$breakpoints, 'large')) {
55
+ grid-template-columns: repeat(2, minmax(0, 1fr));
56
+ }
50
57
  }
51
58
 
52
59
  .dataRowTitle {
@@ -76,7 +83,7 @@
76
83
  display: flex;
77
84
  align-items: center;
78
85
  justify-content: space-between;
79
- padding: 8.8px 26.4px;
86
+ padding: 6px 12px;
80
87
  min-height: 66.6px;
81
88
  gap: 17.6px;
82
89
  justify-self: stretch;
@@ -90,17 +97,33 @@
90
97
  box-shadow 200ms ease,
91
98
  transform 200ms ease;
92
99
 
93
- &:hover {
100
+ .dataRowTitle {
101
+ text-decoration: underline;
102
+ }
103
+
104
+ @media (min-width: map.get(SrcVariables.$breakpoints, 'large')) {
105
+ padding: 8.8px 26.4px;
106
+
107
+ .dataRowTitle {
108
+ text-decoration: none;
109
+ }
110
+ }
111
+
112
+ &:hover,
113
+ &:active {
94
114
  background-color: #fff;
95
115
  border-color: #e1e1e1;
96
116
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.1);
97
- transform: scale(1.1);
98
117
  z-index: 1;
99
118
  .viewCta {
100
119
  opacity: 1;
101
120
  pointer-events: auto;
102
121
  }
103
122
  }
123
+
124
+ @media (min-width: map.get(SrcVariables.$breakpoints, 'large')) {
125
+ transform: scale(1.1);
126
+ }
104
127
  }
105
128
 
106
129
  .dataRowLeft {
@@ -1,8 +1,15 @@
1
1
  import { Dayjs } from 'dayjs';
2
2
  import { JSONSchema7Type } from 'json-schema';
3
3
  import { CellProps, Column } from '@sage-bionetworks/react-datasheet-grid';
4
+ /** The JSON Schema `date` format: an RFC 3339 full-date, e.g. 2026-12-25. */
5
+ export declare const FULL_DATE_FORMAT_NAME = "date";
4
6
  export type DateTimeCellProps = CellProps & {
5
7
  colType?: JSONSchema7Type;
8
+ /**
9
+ * The column's JSON Schema `format`. `date` collects a calendar date only;
10
+ * anything else collects a date and time of day.
11
+ */
12
+ format?: string;
6
13
  };
7
14
  export type DateTimeCellValue = {
8
15
  kind: 'empty';
@@ -17,15 +24,17 @@ export type DateTimeCellValue = {
17
24
  * Classify a stored cell value as empty, a usable date, or something the picker
18
25
  * cannot represent.
19
26
  *
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.
27
+ * Epoch milliseconds stored as a string are read as a timestamp rather than
28
+ * handed to dayjs, which would take them for a year — see EPOCH_MILLIS_STRING.
29
+ *
30
+ * A `date` format column carries no time of day, so its value is reduced to the
31
+ * calendar date it names — see toCalendarDate.
24
32
  */
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;
33
+ export declare function interpretDateTimeCellValue(rowData: unknown, format?: string): DateTimeCellValue;
34
+ export declare function DateTimeCell({ rowData, setRowData, disabled, colType, format, active, }: DateTimeCellProps): import("react/jsx-runtime").JSX.Element;
27
35
  export type DateTimeColumnProps = {
28
36
  colType?: JSONSchema7Type;
37
+ format?: string;
29
38
  };
30
- export declare function dateTimeColumn({ colType, }: DateTimeColumnProps): Partial<Column>;
39
+ export declare function dateTimeColumn({ colType, format, }: DateTimeColumnProps): Partial<Column>;
31
40
  //# sourceMappingURL=DateTimeColumn.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"DateTimeColumn.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/columns/DateTimeColumn.tsx"],"names":[],"mappings":"AAGA,OAAc,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,OAAO,EAEL,SAAS,EACT,MAAM,EACP,MAAM,wCAAwC,CAAA;AAyB/C,6EAA6E;AAC7E,eAAO,MAAM,qBAAqB,SAAS,CAAA;AAW3C,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG;IAC1C,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,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;AAwDzC;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,iBAAiB,CA6BnB;AAsBD,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,UAAU,EACV,QAAQ,EACR,OAAO,EACP,MAAM,EACN,MAAM,GACP,EAAE,iBAAiB,2CAuCnB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,MAAM,GACP,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAUvC"}
@@ -1,12 +1,15 @@
1
1
  import e from "../../DateTimePicker/DateTimePicker.js";
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";
2
+ import t from "../../DatePicker/DatePicker.js";
3
+ import { castCellValueToString as n } from "./AutocompleteColumn.js";
4
+ import { Box as r, Tooltip as i } from "@mui/material";
5
+ import { jsx as a } from "react/jsx-runtime";
6
+ import o from "dayjs";
7
+ import s from "dayjs/plugin/utc";
8
+ import { c } from "react/compiler-runtime";
9
+ import l from "lodash-es/isNil";
8
10
  //#region src/components/DataGrid/columns/DateTimeColumn.tsx
9
- var c = {
11
+ o.extend(s);
12
+ var u = {
10
13
  display: "flex",
11
14
  alignItems: "center",
12
15
  width: "100%",
@@ -15,70 +18,89 @@ var c = {
15
18
  overflow: "hidden",
16
19
  whiteSpace: "nowrap",
17
20
  textOverflow: "ellipsis"
18
- };
19
- function l(e) {
20
- return typeof e == "string" || typeof e == "number" || e instanceof Date || a.isDayjs(e);
21
+ }, d = {
22
+ width: "100%",
23
+ height: "100%",
24
+ "& .MuiInputBase-root": {
25
+ height: "100%",
26
+ backgroundColor: "inherit"
27
+ }
28
+ }, f = "date", p = "YYYY-MM-DD", m = /^\d{4}-\d{2}-\d{2}/, h = /^-?\d{11,}$/;
29
+ function g(e) {
30
+ return typeof e == "string" || typeof e == "number" || e instanceof Date || o.isDayjs(e);
31
+ }
32
+ function _(e) {
33
+ if (typeof e != "string") return null;
34
+ let t = e.trim();
35
+ return h.test(t) ? Number(t) : null;
21
36
  }
22
- function u(e, n) {
23
- if (s(e) || typeof e == "string" && e.trim() === "") return { kind: "empty" };
37
+ function v(e, t, n) {
38
+ return t !== null || typeof e == "number" || e instanceof Date ? o(n.utc().format(p)) : typeof e == "string" && m.test(e.trim()) ? o(e.trim().slice(0, 10)) : o(n.format(p));
39
+ }
40
+ function y(e, t) {
41
+ if (l(e) || typeof e == "string" && e.trim() === "") return { kind: "empty" };
24
42
  let r = {
25
43
  kind: "unparseable",
26
- text: t(e)
44
+ text: n(e)
27
45
  };
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() ? {
46
+ if (!g(e)) return r;
47
+ let i = _(e), a = o(i ?? e);
48
+ return a.isValid() ? {
31
49
  kind: "date",
32
- date: i
50
+ date: t === "date" ? v(e, i, a) : a
33
51
  } : r;
34
52
  }
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) {
53
+ function b(e, t, n) {
54
+ let r = t === "number" || t === "integer";
55
+ if (n === "date") {
56
+ let t = e.format(p);
57
+ return r ? o.utc(t).valueOf() : t;
58
+ }
59
+ return r ? e.valueOf() : e.toISOString();
60
+ }
61
+ function x(n) {
62
+ let s = c(22), { rowData: l, setRowData: f, disabled: p, colType: m, format: h, active: g } = n, _;
63
+ s[0] !== h || s[1] !== l ? (_ = y(l, h), s[0] = h, s[1] = l, s[2] = _) : _ = s[2];
64
+ let v = _;
65
+ if (v.kind === "unparseable" && !g) {
40
66
  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);
67
+ s[3] === v.text ? e = s[4] : (e = /* @__PURE__ */ a(r, {
68
+ sx: u,
69
+ children: v.text
70
+ }), s[3] = v.text, s[4] = e);
45
71
  let t;
46
- return s[5] !== g.text || s[6] !== e ? (t = /* @__PURE__ */ i(r, {
47
- title: g.text,
72
+ return s[5] !== v.text || s[6] !== e ? (t = /* @__PURE__ */ a(i, {
73
+ title: v.text,
48
74
  placement: "top-start",
49
75
  arrow: !0,
50
76
  children: e
51
- }), s[5] = g.text, s[6] = e, s[7] = t) : t = s[7], t;
77
+ }), s[5] = v.text, s[6] = e, s[7] = t) : t = s[7], t;
52
78
  }
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 = {
59
- height: "100%",
60
- backgroundColor: "inherit"
61
- }, s[11] = b) : b = s[11];
62
- let x;
63
- s[12] === y ? x = s[13] : (x = {
64
- pointerEvents: y,
65
- width: "100%",
66
- height: "100%",
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;
79
+ let x = p ? "none" : void 0, S;
80
+ s[8] === x ? S = s[9] : (S = {
81
+ ...d,
82
+ pointerEvents: x
83
+ }, s[8] = x, s[9] = S);
84
+ let C = S, w = v.kind === "date" ? v.date : null, T;
85
+ s[10] !== m || s[11] !== h || s[12] !== f ? (T = (e) => {
86
+ f(e == null ? null : b(o(e), m, h));
87
+ }, s[10] = m, s[11] = h, s[12] = f, s[13] = T) : T = s[13];
88
+ let E;
89
+ s[14] !== p || s[15] !== C || s[16] !== w || s[17] !== T ? (E = {
90
+ disabled: p,
91
+ value: w,
92
+ onChange: T,
93
+ sx: C
94
+ }, s[14] = p, s[15] = C, s[16] = w, s[17] = T, s[18] = E) : E = s[18];
95
+ let D = E, O;
96
+ return s[19] !== h || s[20] !== D ? (O = a(h === "date" ? t : e, { ...D }), s[19] = h, s[20] = D, s[21] = O) : O = s[21], O;
76
97
  }
77
- function f({ colType: e }) {
98
+ function S({ colType: e, format: t }) {
78
99
  return {
79
- component: ((t) => /* @__PURE__ */ i(d, {
80
- ...t,
81
- colType: e
100
+ component: ((n) => /* @__PURE__ */ a(x, {
101
+ ...n,
102
+ colType: e,
103
+ format: t
82
104
  })),
83
105
  copyValue: ({ rowData: e }) => e,
84
106
  pasteValue: ({ value: e }) => e,
@@ -87,6 +109,6 @@ function f({ colType: e }) {
87
109
  };
88
110
  }
89
111
  //#endregion
90
- export { d as DateTimeCell, f as dateTimeColumn, u as interpretDateTimeCellValue };
112
+ export { x as DateTimeCell, f as FULL_DATE_FORMAT_NAME, S as dateTimeColumn, y as interpretDateTimeCellValue };
91
113
 
92
114
  //# sourceMappingURL=DateTimeColumn.js.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"DateTimeColumn.js","names":["DatePicker","DateTimePicker","Box","SxProps","Theme","Tooltip","dayjs","Dayjs","utc","JSONSchema7Type","isNil","CellComponent","CellProps","Column","castCellValueToString","extend","UNPARSEABLE_VALUE_SX","display","alignItems","width","height","px","overflow","whiteSpace","textOverflow","PICKER_SX","backgroundColor","FULL_DATE_FORMAT_NAME","FULL_DATE_PATTERN","LEADING_FULL_DATE","EPOCH_MILLIS_STRING","DateTimeCellProps","colType","format","DateTimeCellValue","kind","date","text","isDateLike","value","Date","isDayjs","parseEpochMillisString","rowData","trimmed","trim","test","Number","toCalendarDate","epochMillis","parsed","denotesInstant","slice","length","interpretDateTimeCellValue","unparseable","const","ConfigType","isValid","serializeDateCellValue","expectsEpochMillis","fullDate","valueOf","toISOString","DateTimeCell","t0","$","_c","setRowData","disabled","active","t1","cellValue","t2","t3","undefined","pointerEvents","pickerSx","t4","t5","newValue","t6","onChange","sx","pickerProps","t7","DateTimeColumnProps","dateTimeColumn","Partial","component","props","copyValue","pasteValue","disableKeys","keepFocus"],"sources":["../../../../src/components/DataGrid/columns/DateTimeColumn.tsx"],"sourcesContent":["import DatePicker from '@/components/DatePicker/DatePicker'\nimport DateTimePicker from '@/components/DateTimePicker/DateTimePicker'\nimport { Box, SxProps, Theme, Tooltip } from '@mui/material'\nimport dayjs, { Dayjs } from 'dayjs'\nimport utc from 'dayjs/plugin/utc'\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\ndayjs.extend(utc)\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\nconst PICKER_SX: SxProps<Theme> = {\n width: '100%',\n height: '100%',\n '& .MuiInputBase-root': {\n height: '100%',\n backgroundColor: 'inherit',\n },\n}\n\n/** The JSON Schema `date` format: an RFC 3339 full-date, e.g. 2026-12-25. */\nexport const FULL_DATE_FORMAT_NAME = 'date'\n\nconst FULL_DATE_PATTERN = 'YYYY-MM-DD'\nconst LEADING_FULL_DATE = /^\\d{4}-\\d{2}-\\d{2}/\n\n// Epoch millis reaches 11 digits in 1973 — longer than any date notation dayjs\n// accepts, whose longest form is an 8-digit YYYYMMDD — so a numeric string this\n// long is a timestamp rather than a date to parse. dayjs would otherwise read\n// \"1705314600000\" as the year 1707.\nconst EPOCH_MILLIS_STRING = /^-?\\d{11,}$/\n\nexport type DateTimeCellProps = CellProps & {\n colType?: JSONSchema7Type\n /**\n * The column's JSON Schema `format`. `date` collects a calendar date only;\n * anything else collects a date and time of day.\n */\n format?: string\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 * Read a value that carries epoch milliseconds as a string, or null if it does\n * not. A column of any schema type can hold one: server-side CSV import writes\n * cells without client-side parsing, and a value that has round-tripped through\n * a store that represents dates as timestamps comes back this way.\n */\nfunction parseEpochMillisString(rowData: unknown): number | null {\n if (typeof rowData !== 'string') {\n return null\n }\n const trimmed = rowData.trim()\n return EPOCH_MILLIS_STRING.test(trimmed) ? Number(trimmed) : null\n}\n\n/**\n * Anchor a value to local midnight of the calendar date it denotes.\n *\n * The picker renders in the browser's timezone, so a value carrying an instant\n * has to be reduced to a day first or the rendered date can land on the\n * neighboring one. Epoch millis are read in UTC, matching what\n * serializeDateCellValue writes. An ISO-style string already names its day, so\n * that day is read off the leading YYYY-MM-DD rather than from the instant\n * dayjs derived from it. Any other string was parsed in local time, so its\n * local day is already the intended one.\n */\nfunction toCalendarDate(\n rowData: unknown,\n epochMillis: number | null,\n parsed: Dayjs,\n): Dayjs {\n const denotesInstant =\n epochMillis !== null ||\n typeof rowData === 'number' ||\n rowData instanceof Date\n if (denotesInstant) {\n return dayjs(parsed.utc().format(FULL_DATE_PATTERN))\n }\n if (typeof rowData === 'string' && LEADING_FULL_DATE.test(rowData.trim())) {\n return dayjs(rowData.trim().slice(0, FULL_DATE_PATTERN.length))\n }\n return dayjs(parsed.format(FULL_DATE_PATTERN))\n}\n\n/**\n * Classify a stored cell value as empty, a usable date, or something the picker\n * cannot represent.\n *\n * Epoch milliseconds stored as a string are read as a timestamp rather than\n * handed to dayjs, which would take them for a year — see EPOCH_MILLIS_STRING.\n *\n * A `date` format column carries no time of day, so its value is reduced to the\n * calendar date it names — see toCalendarDate.\n */\nexport function interpretDateTimeCellValue(\n rowData: unknown,\n format?: string,\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 epochMillis = parseEpochMillisString(rowData)\n const parsed = dayjs((epochMillis ?? rowData) as dayjs.ConfigType)\n if (!parsed.isValid()) {\n return unparseable\n }\n return {\n kind: 'date',\n date:\n format === FULL_DATE_FORMAT_NAME\n ? toCalendarDate(rowData, epochMillis, parsed)\n : parsed,\n }\n}\n\n/**\n * Render a committed picker value in the representation the column's schema\n * declares.\n *\n * A `date` format column stores an RFC 3339 full-date, or — where the schema\n * type cannot hold a string — the equivalent UTC-midnight epoch.\n */\nfunction serializeDateCellValue(\n value: Dayjs,\n colType?: JSONSchema7Type,\n format?: string,\n): string | number {\n const expectsEpochMillis = colType === 'number' || colType === 'integer'\n if (format === FULL_DATE_FORMAT_NAME) {\n const fullDate = value.format(FULL_DATE_PATTERN)\n return expectsEpochMillis ? dayjs.utc(fullDate).valueOf() : fullDate\n }\n return expectsEpochMillis ? value.valueOf() : value.toISOString()\n}\n\nexport function DateTimeCell({\n rowData,\n setRowData,\n disabled,\n colType,\n format,\n active,\n}: DateTimeCellProps) {\n const cellValue = interpretDateTimeCellValue(rowData, format)\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 const pickerSx: SxProps<Theme> = {\n ...PICKER_SX,\n // When disabled, allow selecting the entire cell\n pointerEvents: disabled ? 'none' : undefined,\n }\n\n const pickerProps = {\n disabled,\n value: cellValue.kind === 'date' ? cellValue.date : null,\n onChange: (newValue: string | Dayjs | null) => {\n setRowData(\n newValue == null\n ? null\n : serializeDateCellValue(dayjs(newValue), colType, format),\n )\n },\n sx: pickerSx,\n }\n\n return format === FULL_DATE_FORMAT_NAME ? (\n <DatePicker {...pickerProps} />\n ) : (\n <DateTimePicker {...pickerProps} />\n )\n}\n\nexport type DateTimeColumnProps = {\n colType?: JSONSchema7Type\n format?: string\n}\n\nexport function dateTimeColumn({\n colType,\n format,\n}: DateTimeColumnProps): Partial<Column> {\n return {\n component: ((props: DateTimeCellProps) => (\n <DateTimeCell {...props} colType={colType} format={format} />\n )) as CellComponent,\n copyValue: ({ rowData }) => rowData,\n pasteValue: ({ value }) => value,\n disableKeys: true,\n keepFocus: true,\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"columnFactory.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/utils/columnFactory.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAA;AAC7E,OAAO,EAGL,MAAM,EAGP,MAAM,wCAAwC,CAAA;AAwE/C,KAAK,YAAY,GAAG;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;IAC7B,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;IACrD,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC,CAAA;AA0LD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAGzD"}
1
+ {"version":3,"file":"columnFactory.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/utils/columnFactory.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAA;AAC7E,OAAO,EAGL,MAAM,EAGP,MAAM,wCAAwC,CAAA;AAwE/C,KAAK,YAAY,GAAG;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;IAC7B,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;IACrD,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC,CAAA;AA+LD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAGzD"}
@@ -93,7 +93,7 @@ function y(e, t) {
93
93
  stickyLeft: e.isPinned
94
94
  };
95
95
  }
96
- var b = {
96
+ var b = new Set(["date", "date-time"]), x = {
97
97
  multipleEnum: (e) => y(e, n({
98
98
  choices: e.enumeratedValues ?? [],
99
99
  colType: e.typeInfo?.type || null,
@@ -114,8 +114,11 @@ var b = {
114
114
  colType: t.typeInfo?.type || null,
115
115
  clearValue: r(t.isRequired)
116
116
  })),
117
- "date-time": (e) => {
118
- let n = t({ colType: e.typeInfo?.type || null }), r = {
117
+ dateOrDateTime: (e) => {
118
+ let n = t({
119
+ colType: e.typeInfo?.type || null,
120
+ format: e.typeInfo?.format
121
+ }), r = {
119
122
  showPinIcon: e.showPinIcon,
120
123
  hasDescription: !!e.description
121
124
  }, i = e.customWidth ?? a(e.columnName, {
@@ -138,13 +141,13 @@ var b = {
138
141
  cellClassName: "MuiInputBase-input"
139
142
  })
140
143
  };
141
- function x(e, t) {
142
- return e ? e.format === "date-time" ? "date-time" : e.isArray ? "multipleEnum" : e.type === "boolean" ? "boolean" : e.type === "number" || e.type === "integer" ? "number" : t && t.length > 0 ? "enumerated" : "text" : t && t.length > 0 ? "enumerated" : "text";
144
+ function S(e, t) {
145
+ return e ? e.format && b.has(e.format) ? "dateOrDateTime" : e.isArray ? "multipleEnum" : e.type === "boolean" ? "boolean" : e.type === "number" || e.type === "integer" ? "number" : t && t.length > 0 ? "enumerated" : "text" : t && t.length > 0 ? "enumerated" : "text";
143
146
  }
144
- function S(e) {
145
- return b[x(e.typeInfo, e.enumeratedValues)](e);
147
+ function C(e) {
148
+ return x[S(e.typeInfo, e.enumeratedValues)](e);
146
149
  }
147
150
  //#endregion
148
- export { S as createColumn };
151
+ export { C as createColumn };
149
152
 
150
153
  //# sourceMappingURL=columnFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"columnFactory.js","names":["dateTimeColumn","EnumeratedValue","FlatTypeInfo","SchemaPropertyInfo","CellComponent","CellProps","Column","createTextColumn","keyColumn","autocompleteColumn","autocompleteMultipleEnumColumn","numberColumn","calculateDefaultColumnWidth","HeaderOptions","ColumnHeaderWithTooltip","Tooltip","SmartToyTwoTone","DataGridRow","wrapPasteValueWithSchemaCoercion","getEmptyValue","withChangeIndicatorTooltip","OriginalComponent","T","C","colName","CellWithTooltip","props","$","_c","changeInfo","rowData","__cellChangeInfo","isAgent","category","t0","t1","tooltipText","position","top","right","width","height","zIndex","pointerEvents","t2","focus","fontSize","alignSelf","flexShrink","mr","color","backgroundColor","t3","displayName","ColumnConfig","columnName","description","disabled","typeInfo","enumeratedValues","isRequired","customWidth","showPinIcon","isPinned","onTogglePin","isUpsertKey","schemaPropertyInfo","createDeleteValue","Record","createParseUserInput","value","trimmedValue","trim","createBaseColumn","config","columnImpl","headerOptions","hasDescription","undefined","keyed","component","title","minWidth","basis","grow","shrink","deleteValue","pasteValue","stickyLeft","COLUMN_FACTORIES","multipleEnum","choices","colType","type","limitTags","clearValue","boolean","number","enumerated","date-time","text","continuousUpdates","deletedValue","parseUserInput","cellClassName","getColumnType","length","format","isArray","createColumn","columnType"],"sources":["../../../../src/components/DataGrid/utils/columnFactory.tsx"],"sourcesContent":["import { dateTimeColumn } from '@/components/DataGrid/columns/DateTimeColumn'\nimport { EnumeratedValue } from '@/utils/jsonschema/getEnumeratedValues'\nimport { FlatTypeInfo } from '@/utils/jsonschema/getType'\nimport { SchemaPropertyInfo } from '@/utils/jsonschema/getSchemaPropertyInfo'\nimport {\n CellComponent,\n CellProps,\n Column,\n createTextColumn,\n keyColumn,\n} from '@sage-bionetworks/react-datasheet-grid'\nimport { autocompleteColumn } from '../columns/AutocompleteColumn'\nimport { autocompleteMultipleEnumColumn } from '../columns/AutocompleteMultipleEnumColumn'\nimport { numberColumn } from '../columns/NumberColumn'\nimport {\n calculateDefaultColumnWidth,\n HeaderOptions,\n} from './calculateColumnWidth'\nimport { ColumnHeaderWithTooltip } from '../components/ColumnHeaderWithTooltip'\nimport { Tooltip } from '@mui/material'\nimport { SmartToyTwoTone } from '@mui/icons-material'\nimport type { DataGridRow } from '../DataGridTypes'\nimport { wrapPasteValueWithSchemaCoercion } from './schemaAwarePasteValue'\nimport { getEmptyValue } from './getEmptyValue'\n\n/**\n * Wraps a column cell component to overlay change-attribution indicators:\n * - Non-agent changes: invisible 7×7px tooltip trigger over the CSS triangle (top-right).\n * - Agent changes: robot icon (1em, vertically centered on the right) with no triangle.\n */\nfunction withChangeIndicatorTooltip<T, C>(\n OriginalComponent: CellComponent<T, C>,\n colName: string,\n): CellComponent<T, C> {\n function CellWithTooltip(props: CellProps<T, C>) {\n const changeInfo = (props.rowData as DataGridRow).__cellChangeInfo?.[\n colName\n ]\n const isAgent =\n changeInfo?.category === 'own-agent' ||\n changeInfo?.category === 'other-agent'\n return (\n <>\n <OriginalComponent {...props} />\n {changeInfo && !isAgent && (\n <Tooltip title={changeInfo.tooltipText} placement=\"top-end\">\n <div\n style={{\n position: 'absolute',\n top: 0,\n right: 0,\n width: 7,\n height: 7,\n zIndex: 21,\n pointerEvents: 'auto',\n }}\n />\n </Tooltip>\n )}\n {isAgent && !props.focus && (\n <Tooltip title={changeInfo.tooltipText} placement=\"left\">\n <SmartToyTwoTone\n sx={{\n fontSize: '1em',\n alignSelf: 'center',\n flexShrink: 0,\n mr: 0.5,\n zIndex: 21,\n pointerEvents: 'auto',\n color: 'grey.400',\n backgroundColor: 'transparent',\n }}\n />\n </Tooltip>\n )}\n </>\n )\n }\n CellWithTooltip.displayName = `CellWithTooltip(${colName})`\n return CellWithTooltip\n}\n\ntype ColumnConfig = {\n columnName: string\n description?: string\n disabled?: boolean\n typeInfo: FlatTypeInfo | null\n enumeratedValues: EnumeratedValue[] | string[] | null\n isRequired: boolean\n customWidth?: number\n showPinIcon?: boolean\n isPinned?: boolean\n onTogglePin?: () => void\n isUpsertKey?: boolean\n /**\n * Optional column-level schema info. When provided, paste behavior coerces\n * empty pasted cells to the schema-correct blank (undefined for optional\n * columns, null for required columns). Omit to preserve the column impl's\n * default paste behavior.\n */\n schemaPropertyInfo?: SchemaPropertyInfo\n}\n\nfunction createDeleteValue(columnName: string, isRequired?: boolean) {\n return ({ rowData }: { rowData: Record<string, unknown> }) => ({\n ...rowData,\n [columnName]: getEmptyValue(isRequired),\n })\n}\n\nfunction createParseUserInput(isRequired?: boolean) {\n return (value: string) => {\n const trimmedValue = value.trim()\n if (trimmedValue === '') {\n return getEmptyValue(isRequired)\n }\n return trimmedValue\n }\n}\n\nfunction createBaseColumn(config: ColumnConfig, columnImpl: any) {\n const headerOptions: HeaderOptions = {\n showPinIcon: config.showPinIcon,\n hasDescription: !!config.description,\n }\n\n const width =\n config.customWidth ??\n calculateDefaultColumnWidth(\n config.columnName,\n undefined, // propertyInfo is not available here, passed from higher level\n headerOptions,\n )\n\n const keyed = keyColumn(config.columnName, columnImpl)\n return {\n ...keyed,\n component: withChangeIndicatorTooltip(keyed.component!, config.columnName),\n title: (\n <ColumnHeaderWithTooltip\n name={config.columnName}\n description={config.description}\n isRequired={config.isRequired}\n isUpsertKey={config.isUpsertKey}\n showPinIcon={config.showPinIcon}\n isPinned={config.isPinned}\n onTogglePin={config.onTogglePin}\n />\n ),\n minWidth: width,\n basis: width,\n grow: 0,\n shrink: 0,\n disabled: config.disabled,\n deleteValue: createDeleteValue(config.columnName, config.isRequired),\n pasteValue: wrapPasteValueWithSchemaCoercion(\n keyed.pasteValue,\n config.columnName,\n config.schemaPropertyInfo,\n ),\n stickyLeft: config.isPinned,\n }\n}\n\nconst COLUMN_FACTORIES = {\n multipleEnum: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteMultipleEnumColumn({\n choices: config.enumeratedValues ?? [],\n colType: config.typeInfo?.type || null,\n limitTags: 3,\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n boolean: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteColumn({\n choices: [true, false],\n colType: 'boolean',\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n number: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n numberColumn({\n colType: config.typeInfo?.type,\n isRequired: config.isRequired,\n }),\n )\n },\n\n enumerated: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteColumn({\n choices: config.enumeratedValues ?? [],\n colType: config.typeInfo?.type || null,\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n 'date-time': (config: ColumnConfig) => {\n const columnImpl = dateTimeColumn({\n colType: config.typeInfo?.type || null,\n })\n\n // Date-time needs special width calculation\n const headerOptions: HeaderOptions = {\n showPinIcon: config.showPinIcon,\n hasDescription: !!config.description,\n }\n\n const width =\n config.customWidth ??\n calculateDefaultColumnWidth(\n config.columnName,\n {\n type: config.typeInfo ?? undefined,\n isRequired: config.isRequired,\n enumeratedValues: null,\n },\n headerOptions,\n )\n\n return {\n ...createBaseColumn(config, columnImpl),\n minWidth: width,\n basis: width,\n }\n },\n\n text: (config: ColumnConfig) => {\n const columnImpl = createTextColumn({\n continuousUpdates: false,\n deletedValue: undefined,\n parseUserInput: createParseUserInput(config.isRequired),\n })\n\n return {\n ...createBaseColumn(config, columnImpl),\n cellClassName: 'MuiInputBase-input',\n }\n },\n}\n\nfunction getColumnType(\n typeInfo: FlatTypeInfo | null,\n enumeratedValues?: EnumeratedValue[] | string[] | null,\n): keyof typeof COLUMN_FACTORIES {\n if (!typeInfo) {\n return enumeratedValues && enumeratedValues.length > 0\n ? 'enumerated'\n : 'text'\n }\n\n if (typeInfo.format === 'date-time') {\n return 'date-time'\n }\n\n // Handle arrays - check if it's an array of enums\n if (typeInfo.isArray) {\n return 'multipleEnum'\n }\n\n if (typeInfo.type === 'boolean') {\n return 'boolean'\n }\n\n if (typeInfo.type === 'number' || typeInfo.type === 'integer') {\n return 'number'\n }\n\n if (enumeratedValues && enumeratedValues.length > 0) {\n return 'enumerated'\n }\n\n return 'text'\n}\n\nexport function createColumn(config: ColumnConfig): Column {\n const columnType = getColumnType(config.typeInfo, config.enumeratedValues)\n return COLUMN_FACTORIES[columnType](config)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"columnFactory.js","names":["dateTimeColumn","EnumeratedValue","FlatTypeInfo","SchemaPropertyInfo","CellComponent","CellProps","Column","createTextColumn","keyColumn","autocompleteColumn","autocompleteMultipleEnumColumn","numberColumn","calculateDefaultColumnWidth","HeaderOptions","ColumnHeaderWithTooltip","Tooltip","SmartToyTwoTone","DataGridRow","wrapPasteValueWithSchemaCoercion","getEmptyValue","withChangeIndicatorTooltip","OriginalComponent","T","C","colName","CellWithTooltip","props","$","_c","changeInfo","rowData","__cellChangeInfo","isAgent","category","t0","t1","tooltipText","position","top","right","width","height","zIndex","pointerEvents","t2","focus","fontSize","alignSelf","flexShrink","mr","color","backgroundColor","t3","displayName","ColumnConfig","columnName","description","disabled","typeInfo","enumeratedValues","isRequired","customWidth","showPinIcon","isPinned","onTogglePin","isUpsertKey","schemaPropertyInfo","createDeleteValue","Record","createParseUserInput","value","trimmedValue","trim","createBaseColumn","config","columnImpl","headerOptions","hasDescription","undefined","keyed","component","title","minWidth","basis","grow","shrink","deleteValue","pasteValue","stickyLeft","DATE_COLUMN_FORMATS","ReadonlySet","Set","COLUMN_FACTORIES","multipleEnum","choices","colType","type","limitTags","clearValue","boolean","number","enumerated","dateOrDateTime","format","text","continuousUpdates","deletedValue","parseUserInput","cellClassName","getColumnType","length","has","isArray","createColumn","columnType"],"sources":["../../../../src/components/DataGrid/utils/columnFactory.tsx"],"sourcesContent":["import { dateTimeColumn } from '@/components/DataGrid/columns/DateTimeColumn'\nimport { EnumeratedValue } from '@/utils/jsonschema/getEnumeratedValues'\nimport { FlatTypeInfo } from '@/utils/jsonschema/getType'\nimport { SchemaPropertyInfo } from '@/utils/jsonschema/getSchemaPropertyInfo'\nimport {\n CellComponent,\n CellProps,\n Column,\n createTextColumn,\n keyColumn,\n} from '@sage-bionetworks/react-datasheet-grid'\nimport { autocompleteColumn } from '../columns/AutocompleteColumn'\nimport { autocompleteMultipleEnumColumn } from '../columns/AutocompleteMultipleEnumColumn'\nimport { numberColumn } from '../columns/NumberColumn'\nimport {\n calculateDefaultColumnWidth,\n HeaderOptions,\n} from './calculateColumnWidth'\nimport { ColumnHeaderWithTooltip } from '../components/ColumnHeaderWithTooltip'\nimport { Tooltip } from '@mui/material'\nimport { SmartToyTwoTone } from '@mui/icons-material'\nimport type { DataGridRow } from '../DataGridTypes'\nimport { wrapPasteValueWithSchemaCoercion } from './schemaAwarePasteValue'\nimport { getEmptyValue } from './getEmptyValue'\n\n/**\n * Wraps a column cell component to overlay change-attribution indicators:\n * - Non-agent changes: invisible 7×7px tooltip trigger over the CSS triangle (top-right).\n * - Agent changes: robot icon (1em, vertically centered on the right) with no triangle.\n */\nfunction withChangeIndicatorTooltip<T, C>(\n OriginalComponent: CellComponent<T, C>,\n colName: string,\n): CellComponent<T, C> {\n function CellWithTooltip(props: CellProps<T, C>) {\n const changeInfo = (props.rowData as DataGridRow).__cellChangeInfo?.[\n colName\n ]\n const isAgent =\n changeInfo?.category === 'own-agent' ||\n changeInfo?.category === 'other-agent'\n return (\n <>\n <OriginalComponent {...props} />\n {changeInfo && !isAgent && (\n <Tooltip title={changeInfo.tooltipText} placement=\"top-end\">\n <div\n style={{\n position: 'absolute',\n top: 0,\n right: 0,\n width: 7,\n height: 7,\n zIndex: 21,\n pointerEvents: 'auto',\n }}\n />\n </Tooltip>\n )}\n {isAgent && !props.focus && (\n <Tooltip title={changeInfo.tooltipText} placement=\"left\">\n <SmartToyTwoTone\n sx={{\n fontSize: '1em',\n alignSelf: 'center',\n flexShrink: 0,\n mr: 0.5,\n zIndex: 21,\n pointerEvents: 'auto',\n color: 'grey.400',\n backgroundColor: 'transparent',\n }}\n />\n </Tooltip>\n )}\n </>\n )\n }\n CellWithTooltip.displayName = `CellWithTooltip(${colName})`\n return CellWithTooltip\n}\n\ntype ColumnConfig = {\n columnName: string\n description?: string\n disabled?: boolean\n typeInfo: FlatTypeInfo | null\n enumeratedValues: EnumeratedValue[] | string[] | null\n isRequired: boolean\n customWidth?: number\n showPinIcon?: boolean\n isPinned?: boolean\n onTogglePin?: () => void\n isUpsertKey?: boolean\n /**\n * Optional column-level schema info. When provided, paste behavior coerces\n * empty pasted cells to the schema-correct blank (undefined for optional\n * columns, null for required columns). Omit to preserve the column impl's\n * default paste behavior.\n */\n schemaPropertyInfo?: SchemaPropertyInfo\n}\n\nfunction createDeleteValue(columnName: string, isRequired?: boolean) {\n return ({ rowData }: { rowData: Record<string, unknown> }) => ({\n ...rowData,\n [columnName]: getEmptyValue(isRequired),\n })\n}\n\nfunction createParseUserInput(isRequired?: boolean) {\n return (value: string) => {\n const trimmedValue = value.trim()\n if (trimmedValue === '') {\n return getEmptyValue(isRequired)\n }\n return trimmedValue\n }\n}\n\nfunction createBaseColumn(config: ColumnConfig, columnImpl: any) {\n const headerOptions: HeaderOptions = {\n showPinIcon: config.showPinIcon,\n hasDescription: !!config.description,\n }\n\n const width =\n config.customWidth ??\n calculateDefaultColumnWidth(\n config.columnName,\n undefined, // propertyInfo is not available here, passed from higher level\n headerOptions,\n )\n\n const keyed = keyColumn(config.columnName, columnImpl)\n return {\n ...keyed,\n component: withChangeIndicatorTooltip(keyed.component!, config.columnName),\n title: (\n <ColumnHeaderWithTooltip\n name={config.columnName}\n description={config.description}\n isRequired={config.isRequired}\n isUpsertKey={config.isUpsertKey}\n showPinIcon={config.showPinIcon}\n isPinned={config.isPinned}\n onTogglePin={config.onTogglePin}\n />\n ),\n minWidth: width,\n basis: width,\n grow: 0,\n shrink: 0,\n disabled: config.disabled,\n deleteValue: createDeleteValue(config.columnName, config.isRequired),\n pasteValue: wrapPasteValueWithSchemaCoercion(\n keyed.pasteValue,\n config.columnName,\n config.schemaPropertyInfo,\n ),\n stickyLeft: config.isPinned,\n }\n}\n\n// JSON Schema formats handled by the date column: `date-time` collects a time of\n// day alongside the date, `date` a calendar date on its own.\nconst DATE_COLUMN_FORMATS: ReadonlySet<string> = new Set(['date', 'date-time'])\n\nconst COLUMN_FACTORIES = {\n multipleEnum: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteMultipleEnumColumn({\n choices: config.enumeratedValues ?? [],\n colType: config.typeInfo?.type || null,\n limitTags: 3,\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n boolean: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteColumn({\n choices: [true, false],\n colType: 'boolean',\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n number: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n numberColumn({\n colType: config.typeInfo?.type,\n isRequired: config.isRequired,\n }),\n )\n },\n\n enumerated: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteColumn({\n choices: config.enumeratedValues ?? [],\n colType: config.typeInfo?.type || null,\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n dateOrDateTime: (config: ColumnConfig) => {\n const columnImpl = dateTimeColumn({\n colType: config.typeInfo?.type || null,\n format: config.typeInfo?.format,\n })\n\n // Date-time needs special width calculation\n const headerOptions: HeaderOptions = {\n showPinIcon: config.showPinIcon,\n hasDescription: !!config.description,\n }\n\n const width =\n config.customWidth ??\n calculateDefaultColumnWidth(\n config.columnName,\n {\n type: config.typeInfo ?? undefined,\n isRequired: config.isRequired,\n enumeratedValues: null,\n },\n headerOptions,\n )\n\n return {\n ...createBaseColumn(config, columnImpl),\n minWidth: width,\n basis: width,\n }\n },\n\n text: (config: ColumnConfig) => {\n const columnImpl = createTextColumn({\n continuousUpdates: false,\n deletedValue: undefined,\n parseUserInput: createParseUserInput(config.isRequired),\n })\n\n return {\n ...createBaseColumn(config, columnImpl),\n cellClassName: 'MuiInputBase-input',\n }\n },\n}\n\nfunction getColumnType(\n typeInfo: FlatTypeInfo | null,\n enumeratedValues?: EnumeratedValue[] | string[] | null,\n): keyof typeof COLUMN_FACTORIES {\n if (!typeInfo) {\n return enumeratedValues && enumeratedValues.length > 0\n ? 'enumerated'\n : 'text'\n }\n\n if (typeInfo.format && DATE_COLUMN_FORMATS.has(typeInfo.format)) {\n return 'dateOrDateTime'\n }\n\n // Handle arrays - check if it's an array of enums\n if (typeInfo.isArray) {\n return 'multipleEnum'\n }\n\n if (typeInfo.type === 'boolean') {\n return 'boolean'\n }\n\n if (typeInfo.type === 'number' || typeInfo.type === 'integer') {\n return 'number'\n }\n\n if (enumeratedValues && enumeratedValues.length > 0) {\n return 'enumerated'\n }\n\n return 'text'\n}\n\nexport function createColumn(config: ColumnConfig): Column {\n const columnType = getColumnType(config.typeInfo, config.enumeratedValues)\n return COLUMN_FACTORIES[columnType](config)\n}\n"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { DatePickerProps as MuiDatePickerProps } from '@mui/x-date-pickers/DatePicker';
2
+ /**
3
+ * Picker for a calendar date with no time of day.
4
+ *
5
+ * Unlike DateTimePicker, no timezone is applied or displayed: a calendar date is
6
+ * not an instant, so converting one between zones could shift it onto the
7
+ * adjacent day.
8
+ */
9
+ export default function DatePicker(props: MuiDatePickerProps): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=DatePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/components/DatePicker/DatePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,eAAe,IAAI,kBAAkB,EACtC,MAAM,gCAAgC,CAAA;AAGvC;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,EAAE,kBAAkB,2CAM3D"}
@@ -0,0 +1,18 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { AdapterDayjs as t } from "@mui/x-date-pickers/AdapterDayjs";
3
+ import { LocalizationProvider as n } from "@mui/x-date-pickers/LocalizationProvider";
4
+ import { DatePicker as r } from "@mui/x-date-pickers/DatePicker";
5
+ //#region src/components/DatePicker/DatePicker.tsx
6
+ function i(i) {
7
+ return /* @__PURE__ */ e(n, {
8
+ dateAdapter: t,
9
+ children: /* @__PURE__ */ e(r, {
10
+ enableAccessibleFieldDOMStructure: !1,
11
+ ...i
12
+ })
13
+ });
14
+ }
15
+ //#endregion
16
+ export { i as default };
17
+
18
+ //# sourceMappingURL=DatePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker.js","names":[],"sources":["../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'\nimport {\n DatePicker as MuiDatePicker,\n DatePickerProps as MuiDatePickerProps,\n} from '@mui/x-date-pickers/DatePicker'\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'\n\n/**\n * Picker for a calendar date with no time of day.\n *\n * Unlike DateTimePicker, no timezone is applied or displayed: a calendar date is\n * not an instant, so converting one between zones could shift it onto the\n * adjacent day.\n */\nexport default function DatePicker(props: MuiDatePickerProps) {\n return (\n <LocalizationProvider dateAdapter={AdapterDayjs}>\n <MuiDatePicker enableAccessibleFieldDOMStructure={false} {...props} />\n </LocalizationProvider>\n )\n}\n"],"mappings":";;;;;AAcA,SAAwB,EAAW,GAA2B;CAC5D,OACE,kBAAC,GAAD;EAAsB,aAAa;YACjC,kBAAC,GAAD;GAAe,mCAAmC;GAAO,GAAI;EAAQ,CAAA;CACjD,CAAA;AAE1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityCitation.d.ts","sourceRoot":"","sources":["../../../src/components/EntityCitation/EntityCitation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAazB,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,QAAA,MAAM,cAAc,GAAI,yCAIrB,mBAAmB,KAAG,KAAK,CAAC,SA2J9B,CAAA;AAED,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"EntityCitation.d.ts","sourceRoot":"","sources":["../../../src/components/EntityCitation/EntityCitation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAazB,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,QAAA,MAAM,cAAc,GAAI,yCAIrB,mBAAmB,KAAG,KAAK,CAAC,SAgK9B,CAAA;AAED,eAAe,cAAc,CAAA"}