@databiosphere/findable-ui 18.0.0 → 20.0.0

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 (536) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +22 -0
  3. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.d.ts +2 -0
  4. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.js +29 -0
  5. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/types.d.ts +6 -0
  6. package/lib/components/Authentication/components/SessionController/components/NextSessionController/SessionController.d.ts +2 -0
  7. package/lib/components/Authentication/components/SessionController/components/NextSessionController/SessionController.js +17 -0
  8. package/lib/components/Authentication/components/SessionController/components/NextSessionController/constants.d.ts +5 -0
  9. package/lib/components/Authentication/components/SessionController/components/NextSessionController/constants.js +12 -0
  10. package/lib/components/Authentication/components/SessionController/components/NextSessionController/types.d.ts +4 -0
  11. package/lib/components/Authentication/components/SessionController/components/NextSessionController/types.js +1 -0
  12. package/lib/components/Authentication/components/SessionController/components/NextSessionController/utils.d.ts +15 -0
  13. package/lib/components/Authentication/components/SessionController/components/NextSessionController/utils.js +53 -0
  14. package/lib/components/ComponentCreator/ComponentCreator.js +2 -3
  15. package/lib/components/Detail/components/Table/components/TableRows/components/CollapsableRows/collapsableRows.js +2 -0
  16. package/lib/components/Detail/components/Table/components/TableRows/tableRows.js +1 -15
  17. package/lib/components/Export/components/ExportForm/components/ExportFileSummaryForm/exportFileSummaryForm.js +9 -10
  18. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/FormStep/components/AcceptTerraTOS/acceptTerraTOS.js +2 -2
  19. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/NIHAccountExpiryWarning/nihAccountExpiryWarning.js +1 -1
  20. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/terraSetUpForm.js +8 -3
  21. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.d.ts +2 -1
  22. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.js +17 -14
  23. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.d.ts +3 -4
  24. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.js +15 -24
  25. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.d.ts +1 -1
  26. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.js +2 -2
  27. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.d.ts +2 -0
  28. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.js +14 -0
  29. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/Button/button.styles.js +3 -2
  30. package/lib/components/Layout/components/Header/header.js +1 -1
  31. package/lib/components/Links/components/Link/components/ExploreViewLink/exploreViewLink.js +23 -12
  32. package/lib/components/Login/components/Button/button.d.ts +2 -0
  33. package/lib/components/Login/components/Button/button.js +6 -0
  34. package/lib/components/Login/components/Button/button.styles.d.ts +5 -0
  35. package/lib/components/Login/components/Button/button.styles.js +11 -0
  36. package/lib/components/Login/components/Button/constants.d.ts +2 -0
  37. package/lib/components/Login/components/Button/constants.js +6 -0
  38. package/lib/components/Login/components/Button/types.d.ts +3 -0
  39. package/lib/components/Login/components/Button/types.js +1 -0
  40. package/lib/components/Login/login.d.ts +2 -9
  41. package/lib/components/Login/login.js +9 -10
  42. package/lib/components/Login/types.d.ts +10 -0
  43. package/lib/components/Login/types.js +1 -0
  44. package/lib/components/Table/common/columnDef.js +1 -0
  45. package/lib/components/Table/common/gridTable.styles.js +5 -11
  46. package/lib/components/Table/common/utils.d.ts +3 -29
  47. package/lib/components/Table/common/utils.js +25 -60
  48. package/lib/components/Table/components/TableBody/hooks/virtualizer/constants.d.ts +3 -0
  49. package/lib/components/Table/components/TableBody/hooks/virtualizer/constants.js +3 -0
  50. package/lib/components/Table/components/TableBody/hooks/virtualizer/hook.d.ts +8 -0
  51. package/lib/components/Table/components/TableBody/hooks/virtualizer/hook.js +18 -0
  52. package/lib/components/Table/components/TableBody/hooks/virtualizer/types.d.ts +4 -0
  53. package/lib/components/Table/components/TableBody/hooks/virtualizer/types.js +1 -0
  54. package/lib/components/Table/components/TableBody/tableBody.d.ts +3 -2
  55. package/lib/components/Table/components/TableBody/tableBody.js +7 -28
  56. package/lib/components/Table/components/TableBody/utils.d.ts +12 -0
  57. package/lib/components/Table/components/TableBody/utils.js +17 -0
  58. package/lib/components/Table/components/TableCell/components/CollapsableCell/collapsableCell.d.ts +3 -1
  59. package/lib/components/Table/components/TableCell/components/CollapsableCell/collapsableCell.js +6 -14
  60. package/lib/components/Table/components/TableFeatures/ColumnGrouping/utils.d.ts +28 -0
  61. package/lib/components/Table/components/TableFeatures/ColumnGrouping/utils.js +52 -0
  62. package/lib/components/Table/components/TableFeatures/ColumnVisibility/utils.d.ts +21 -0
  63. package/lib/components/Table/components/TableFeatures/ColumnVisibility/utils.js +37 -0
  64. package/lib/components/Table/components/TableFeatures/RowSorting/utils.d.ts +29 -0
  65. package/lib/components/Table/components/TableFeatures/RowSorting/utils.js +68 -0
  66. package/lib/components/Table/components/TableHead/tableHead.d.ts +2 -6
  67. package/lib/components/Table/components/TableHead/tableHead.js +6 -4
  68. package/lib/components/Table/components/TableHead/types.d.ts +6 -0
  69. package/lib/components/Table/components/TableHead/types.js +1 -0
  70. package/lib/components/Table/components/TableHead/utils.d.ts +19 -0
  71. package/lib/components/Table/components/TableHead/utils.js +34 -0
  72. package/lib/components/Table/components/TableRow/tableRow.styles.d.ts +1 -0
  73. package/lib/components/Table/components/TableRow/tableRow.styles.js +14 -2
  74. package/lib/components/Table/components/TableRows/components/CollapsableRows/collapsableRows.d.ts +3 -2
  75. package/lib/components/Table/components/TableRows/components/CollapsableRows/collapsableRows.js +8 -4
  76. package/lib/components/Table/components/TableRows/components/CollapsableRows/hook.d.ts +9 -0
  77. package/lib/components/Table/components/TableRows/components/CollapsableRows/hook.js +17 -0
  78. package/lib/components/Table/components/TableRows/tableRows.d.ts +3 -3
  79. package/lib/components/Table/components/TableRows/tableRows.js +9 -5
  80. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.d.ts +3 -0
  81. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.js +26 -0
  82. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.styles.d.ts +2 -0
  83. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.styles.js +16 -0
  84. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/menuItems.d.ts +3 -0
  85. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/menuItems.js +12 -0
  86. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/types.d.ts +7 -0
  87. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/types.js +1 -0
  88. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/constants.d.ts +4 -0
  89. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/constants.js +13 -0
  90. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/types.d.ts +4 -0
  91. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/types.js +1 -0
  92. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/utils.d.ts +17 -0
  93. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/utils.js +36 -0
  94. package/lib/components/Table/components/TableToolbar/components/RowSelection/components/DropdownMenu/dropdownMenu.d.ts +2 -3
  95. package/lib/components/Table/components/TableToolbar/components/RowSelection/components/DropdownMenu/dropdownMenu.js +3 -11
  96. package/lib/components/Table/components/TableToolbar/tableToolbar.js +4 -2
  97. package/lib/components/Table/features/RowPosition/constants.js +2 -2
  98. package/lib/components/Table/features/RowPosition/utils.d.ts +2 -2
  99. package/lib/components/Table/features/RowPosition/utils.js +12 -5
  100. package/lib/components/Table/options/updater.d.ts +10 -0
  101. package/lib/components/Table/options/updater.js +24 -0
  102. package/lib/components/Table/table.js +22 -17
  103. package/lib/components/TableCreator/common/constants.d.ts +2 -2
  104. package/lib/components/TableCreator/common/constants.js +2 -1
  105. package/lib/components/TableCreator/common/utils.d.ts +5 -2
  106. package/lib/components/TableCreator/common/utils.js +11 -4
  107. package/lib/components/TableCreator/options/expanded/constants.d.ts +2 -0
  108. package/lib/components/TableCreator/options/expanded/constants.js +6 -0
  109. package/lib/components/TableCreator/options/expanded/hook.d.ts +2 -0
  110. package/lib/components/TableCreator/options/expanded/hook.js +4 -0
  111. package/lib/components/TableCreator/options/grouping/constants.d.ts +2 -0
  112. package/lib/components/TableCreator/options/grouping/constants.js +5 -0
  113. package/lib/components/TableCreator/options/grouping/hook.d.ts +2 -0
  114. package/lib/components/TableCreator/options/grouping/hook.js +9 -0
  115. package/lib/components/TableCreator/options/hook.d.ts +2 -0
  116. package/lib/components/TableCreator/options/hook.js +25 -0
  117. package/lib/components/TableCreator/options/rowSelection/constants.d.ts +2 -0
  118. package/lib/components/TableCreator/options/rowSelection/constants.js +5 -0
  119. package/lib/components/TableCreator/options/rowSelection/hook.d.ts +2 -0
  120. package/lib/components/TableCreator/options/rowSelection/hook.js +4 -0
  121. package/lib/components/TableCreator/options/sorting/constants.d.ts +2 -0
  122. package/lib/components/TableCreator/options/sorting/constants.js +5 -0
  123. package/lib/components/TableCreator/options/sorting/hook.d.ts +2 -0
  124. package/lib/components/TableCreator/options/sorting/hook.js +4 -0
  125. package/lib/components/TableCreator/tableCreator.d.ts +3 -5
  126. package/lib/components/TableCreator/tableCreator.js +4 -2
  127. package/lib/components/common/Banner/components/SessionTimeout/sessionTimeout.js +1 -1
  128. package/lib/components/common/CustomIcon/common/entities.d.ts +1 -4
  129. package/lib/components/common/CustomIcon/components/GoogleIcon/googleIcon.d.ts +2 -2
  130. package/lib/components/common/CustomIcon/components/GoogleIcon/googleIcon.js +1 -1
  131. package/lib/components/common/DropdownMenu/dropdownMenu.d.ts +2 -3
  132. package/lib/components/common/DropdownMenu/dropdownMenu.js +7 -7
  133. package/lib/components/common/DropdownMenu/dropdownMenu.styles.d.ts +1 -1
  134. package/lib/components/common/DropdownMenu/dropdownMenu.styles.js +1 -1
  135. package/lib/components/common/Menu/hooks/useMenu.d.ts +5 -6
  136. package/lib/config/entities.d.ts +28 -29
  137. package/lib/config/utils.d.ts +0 -7
  138. package/lib/config/utils.js +0 -12
  139. package/lib/hooks/authentication/auth/useAuthReducer.d.ts +2 -0
  140. package/lib/hooks/authentication/auth/useAuthReducer.js +8 -0
  141. package/lib/hooks/authentication/authentication/useAuthenticationReducer.d.ts +2 -0
  142. package/lib/hooks/authentication/authentication/useAuthenticationReducer.js +8 -0
  143. package/lib/hooks/authentication/config/useAuthenticationConfig.d.ts +6 -0
  144. package/lib/hooks/authentication/config/useAuthenticationConfig.js +9 -0
  145. package/lib/hooks/authentication/credentials/useCredentialsReducer.d.ts +2 -0
  146. package/lib/hooks/authentication/credentials/useCredentialsReducer.js +7 -0
  147. package/lib/hooks/authentication/profile/types.d.ts +5 -0
  148. package/lib/hooks/authentication/profile/types.js +1 -0
  149. package/lib/hooks/authentication/profile/useProfile.d.ts +6 -0
  150. package/lib/hooks/authentication/profile/useProfile.js +15 -0
  151. package/lib/hooks/authentication/providers/types.d.ts +6 -0
  152. package/lib/hooks/authentication/providers/types.js +1 -0
  153. package/lib/hooks/authentication/providers/useProviders.d.ts +6 -0
  154. package/lib/hooks/authentication/providers/useProviders.js +14 -0
  155. package/lib/hooks/authentication/session/useSessionActive.d.ts +12 -0
  156. package/lib/hooks/authentication/session/useSessionActive.js +36 -0
  157. package/lib/hooks/authentication/session/useSessionCallbackUrl.d.ts +4 -0
  158. package/lib/hooks/authentication/session/useSessionCallbackUrl.js +20 -0
  159. package/lib/hooks/authentication/session/useSessionIdleTimer.d.ts +6 -0
  160. package/lib/hooks/authentication/session/useSessionIdleTimer.js +8 -0
  161. package/lib/hooks/{useSessionTimeout.js → authentication/session/useSessionTimeout.js} +2 -2
  162. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.d.ts +0 -1
  163. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.js +6 -9
  164. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.js +3 -4
  165. package/lib/hooks/authentication/token/types.d.ts +4 -0
  166. package/lib/hooks/authentication/token/types.js +1 -0
  167. package/lib/hooks/authentication/token/useToken.d.ts +2 -0
  168. package/lib/hooks/authentication/token/useToken.js +5 -0
  169. package/lib/hooks/authentication/token/useTokenReducer.d.ts +7 -0
  170. package/lib/hooks/authentication/token/useTokenReducer.js +12 -0
  171. package/lib/hooks/useEntityList.js +2 -2
  172. package/lib/hooks/useFetchEntity.js +4 -3
  173. package/lib/hooks/useFileManifest/useFetchFilesFacets.js +2 -3
  174. package/lib/hooks/useFileManifest/useFetchSummary.js +2 -3
  175. package/lib/hooks/useRequestFileLocation.js +2 -3
  176. package/lib/hooks/useRouteHistory.d.ts +14 -0
  177. package/lib/hooks/useRouteHistory.js +40 -0
  178. package/lib/hooks/useRouteRoot.d.ts +1 -0
  179. package/lib/hooks/useRouteRoot.js +8 -0
  180. package/lib/hooks/useSummary.js +3 -3
  181. package/lib/providers/authentication/auth/actions.d.ts +8 -0
  182. package/lib/providers/authentication/auth/actions.js +12 -0
  183. package/lib/providers/authentication/auth/constants.d.ts +2 -0
  184. package/lib/providers/authentication/auth/constants.js +5 -0
  185. package/lib/providers/authentication/auth/context.d.ts +2 -0
  186. package/lib/providers/authentication/auth/context.js +7 -0
  187. package/lib/providers/authentication/auth/dispatch.d.ts +23 -0
  188. package/lib/providers/authentication/auth/dispatch.js +43 -0
  189. package/lib/providers/authentication/auth/hook.d.ts +6 -0
  190. package/lib/providers/authentication/auth/hook.js +9 -0
  191. package/lib/providers/authentication/auth/reducer.d.ts +8 -0
  192. package/lib/providers/authentication/auth/reducer.js +24 -0
  193. package/lib/providers/authentication/auth/types.d.ts +48 -0
  194. package/lib/providers/authentication/auth/types.js +11 -0
  195. package/lib/providers/authentication/authentication/actions.d.ts +8 -0
  196. package/lib/providers/authentication/authentication/actions.js +12 -0
  197. package/lib/providers/authentication/authentication/constants.d.ts +2 -0
  198. package/lib/providers/authentication/authentication/constants.js +5 -0
  199. package/lib/providers/authentication/authentication/context.d.ts +2 -0
  200. package/lib/providers/authentication/authentication/context.js +6 -0
  201. package/lib/providers/authentication/authentication/dispatch.d.ts +22 -0
  202. package/lib/providers/authentication/authentication/dispatch.js +42 -0
  203. package/lib/providers/authentication/authentication/hook.d.ts +6 -0
  204. package/lib/providers/authentication/authentication/hook.js +9 -0
  205. package/lib/providers/authentication/authentication/reducer.d.ts +9 -0
  206. package/lib/providers/authentication/authentication/reducer.js +25 -0
  207. package/lib/providers/authentication/authentication/types.d.ts +47 -0
  208. package/lib/providers/authentication/authentication/types.js +11 -0
  209. package/lib/providers/authentication/authentication/utils.d.ts +12 -0
  210. package/lib/providers/authentication/authentication/utils.js +18 -0
  211. package/lib/providers/authentication/common/types.d.ts +1 -0
  212. package/lib/providers/authentication/common/types.js +1 -0
  213. package/lib/providers/authentication/common/utils.d.ts +6 -0
  214. package/lib/providers/authentication/common/utils.js +11 -0
  215. package/lib/providers/authentication/credentials/actions.d.ts +8 -0
  216. package/lib/providers/authentication/credentials/actions.js +12 -0
  217. package/lib/providers/authentication/credentials/constants.d.ts +2 -0
  218. package/lib/providers/authentication/credentials/constants.js +3 -0
  219. package/lib/providers/authentication/credentials/context.d.ts +2 -0
  220. package/lib/providers/authentication/credentials/context.js +6 -0
  221. package/lib/providers/authentication/credentials/dispatch.d.ts +12 -0
  222. package/lib/providers/authentication/credentials/dispatch.js +22 -0
  223. package/lib/providers/authentication/credentials/hook.d.ts +6 -0
  224. package/lib/providers/authentication/credentials/hook.js +9 -0
  225. package/lib/providers/authentication/credentials/reducer.d.ts +8 -0
  226. package/lib/providers/authentication/credentials/reducer.js +22 -0
  227. package/lib/providers/authentication/credentials/types.d.ts +24 -0
  228. package/lib/providers/authentication/credentials/types.js +5 -0
  229. package/lib/providers/authentication/terra/context.d.ts +2 -0
  230. package/lib/providers/authentication/terra/context.js +7 -0
  231. package/lib/providers/authentication/terra/hook.d.ts +6 -0
  232. package/lib/providers/authentication/terra/hook.js +9 -0
  233. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.d.ts +2 -0
  234. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.js +7 -0
  235. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.d.ts +3 -7
  236. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.js +1 -5
  237. package/lib/providers/authentication/terra/hooks/useFetchProfiles.d.ts +13 -0
  238. package/lib/providers/authentication/terra/hooks/useFetchProfiles.js +31 -0
  239. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.js +11 -6
  240. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.js +11 -6
  241. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.js +11 -6
  242. package/lib/providers/authentication/terra/hooks/utils.d.ts +16 -0
  243. package/lib/providers/authentication/terra/hooks/utils.js +19 -0
  244. package/lib/providers/authentication/terra/provider.d.ts +2 -0
  245. package/lib/providers/authentication/terra/provider.js +42 -0
  246. package/lib/providers/authentication/terra/types.d.ts +20 -0
  247. package/lib/providers/authentication/terra/types.js +6 -0
  248. package/lib/providers/authentication/terra/utils.d.ts +19 -0
  249. package/lib/providers/authentication/terra/utils.js +36 -0
  250. package/lib/providers/authentication/token/constants.d.ts +2 -0
  251. package/lib/providers/authentication/token/constants.js +4 -0
  252. package/lib/providers/authentication/token/dispatch.d.ts +12 -0
  253. package/lib/providers/authentication/token/dispatch.js +22 -0
  254. package/lib/providers/authentication/token/reducer.d.ts +8 -0
  255. package/lib/providers/authentication/token/reducer.js +22 -0
  256. package/lib/providers/authentication/token/types.d.ts +28 -0
  257. package/lib/providers/authentication/token/types.js +5 -0
  258. package/lib/providers/exploreState/actions/updateGrouping/action.d.ts +10 -0
  259. package/lib/providers/exploreState/actions/updateGrouping/action.js +16 -0
  260. package/lib/providers/exploreState/actions/updateGrouping/dispatch.d.ts +7 -0
  261. package/lib/providers/exploreState/actions/updateGrouping/dispatch.js +12 -0
  262. package/lib/providers/exploreState/actions/updateGrouping/types.d.ts +9 -0
  263. package/lib/providers/exploreState/actions/updateGrouping/types.js +1 -0
  264. package/lib/providers/exploreState/actions/updateGrouping/utils.d.ts +10 -0
  265. package/lib/providers/exploreState/actions/updateGrouping/utils.js +26 -0
  266. package/lib/providers/exploreState/entities.d.ts +3 -4
  267. package/lib/providers/exploreState/initializer/utils.js +41 -8
  268. package/lib/providers/exploreState/payloads/entities.d.ts +2 -1
  269. package/lib/providers/exploreState/utils.d.ts +6 -4
  270. package/lib/providers/exploreState/utils.js +7 -4
  271. package/lib/providers/exploreState.d.ts +3 -1
  272. package/lib/providers/exploreState.js +18 -10
  273. package/lib/providers/googleSignInAuthentication/common/types.d.ts +17 -0
  274. package/lib/providers/googleSignInAuthentication/common/types.js +1 -0
  275. package/lib/providers/googleSignInAuthentication/constants.d.ts +4 -0
  276. package/lib/providers/googleSignInAuthentication/constants.js +12 -0
  277. package/lib/providers/googleSignInAuthentication/hooks/useGoogleSignInService.d.ts +3 -0
  278. package/lib/providers/googleSignInAuthentication/hooks/useGoogleSignInService.js +36 -0
  279. package/lib/providers/googleSignInAuthentication/profile/types.d.ts +14 -0
  280. package/lib/providers/googleSignInAuthentication/profile/types.js +1 -0
  281. package/lib/providers/googleSignInAuthentication/profile/utils.d.ts +8 -0
  282. package/lib/providers/googleSignInAuthentication/profile/utils.js +25 -0
  283. package/lib/providers/googleSignInAuthentication/provider.d.ts +2 -0
  284. package/lib/providers/googleSignInAuthentication/provider.js +40 -0
  285. package/lib/providers/googleSignInAuthentication/service/constants.d.ts +4 -0
  286. package/lib/providers/googleSignInAuthentication/service/constants.js +9 -0
  287. package/lib/providers/googleSignInAuthentication/service/service.d.ts +6 -0
  288. package/lib/providers/googleSignInAuthentication/service/service.js +43 -0
  289. package/lib/providers/googleSignInAuthentication/types.d.ts +6 -0
  290. package/lib/providers/googleSignInAuthentication/types.js +1 -0
  291. package/lib/providers/nextAuthAuthentication/hooks/useNextAuthService.d.ts +2 -0
  292. package/lib/providers/nextAuthAuthentication/hooks/useNextAuthService.js +14 -0
  293. package/lib/providers/nextAuthAuthentication/provider.d.ts +2 -0
  294. package/lib/providers/nextAuthAuthentication/provider.js +30 -0
  295. package/lib/providers/nextAuthAuthentication/service/service.d.ts +6 -0
  296. package/lib/providers/nextAuthAuthentication/service/service.js +12 -0
  297. package/lib/providers/nextAuthAuthentication/types.d.ts +8 -0
  298. package/lib/providers/nextAuthAuthentication/types.js +1 -0
  299. package/lib/routes/constants.d.ts +3 -0
  300. package/lib/routes/constants.js +3 -0
  301. package/lib/styles/common/mui/button.d.ts +3 -0
  302. package/lib/styles/common/mui/button.js +17 -0
  303. package/lib/styles/common/mui/paper.d.ts +2 -0
  304. package/lib/styles/common/mui/paper.js +9 -0
  305. package/lib/styles/common/mui/popover.d.ts +3 -0
  306. package/lib/styles/common/mui/popover.js +10 -0
  307. package/lib/theme/common/entities.d.ts +6 -0
  308. package/lib/theme/common/entities.js +1 -0
  309. package/lib/views/ExploreView/exploreView.js +2 -2
  310. package/lib/views/LoginView/loginView.d.ts +5 -1
  311. package/lib/views/LoginView/loginView.js +6 -4
  312. package/package.json +3 -2
  313. package/src/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.tsx +38 -0
  314. package/src/components/Authentication/components/SessionController/components/GoogleSessionController/types.ts +7 -0
  315. package/src/components/Authentication/components/SessionController/components/NextSessionController/SessionController.tsx +23 -0
  316. package/src/components/Authentication/components/SessionController/components/NextSessionController/constants.ts +21 -0
  317. package/src/components/Authentication/components/SessionController/components/NextSessionController/types.ts +5 -0
  318. package/src/components/Authentication/components/SessionController/components/NextSessionController/utils.ts +74 -0
  319. package/src/components/ComponentCreator/ComponentCreator.tsx +4 -3
  320. package/src/components/Detail/components/Table/components/TableRows/components/CollapsableRows/collapsableRows.tsx +2 -0
  321. package/src/components/Detail/components/Table/components/TableRows/tableRows.tsx +3 -18
  322. package/src/components/Export/components/ExportForm/components/ExportFileSummaryForm/exportFileSummaryForm.tsx +28 -32
  323. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/FormStep/components/AcceptTerraTOS/acceptTerraTOS.tsx +4 -4
  324. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/NIHAccountExpiryWarning/nihAccountExpiryWarning.tsx +1 -1
  325. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/terraSetUpForm.tsx +9 -6
  326. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.tsx +27 -25
  327. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.ts +2 -2
  328. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.tsx +18 -42
  329. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.ts +19 -0
  330. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/Button/button.styles.ts +3 -2
  331. package/src/components/Layout/components/Header/header.tsx +1 -1
  332. package/src/components/Links/components/Link/components/ExploreViewLink/exploreViewLink.tsx +27 -13
  333. package/src/components/Login/components/Button/button.styles.ts +12 -0
  334. package/src/components/Login/components/Button/button.tsx +8 -0
  335. package/src/components/Login/components/Button/constants.ts +8 -0
  336. package/src/components/Login/components/Button/types.ts +4 -0
  337. package/src/components/Login/login.tsx +28 -28
  338. package/src/components/Login/types.ts +11 -0
  339. package/src/components/Table/common/columnDef.ts +1 -0
  340. package/src/components/Table/common/gridTable.styles.ts +5 -11
  341. package/src/components/Table/common/utils.ts +44 -107
  342. package/src/components/Table/components/TableBody/hooks/virtualizer/constants.ts +3 -0
  343. package/src/components/Table/components/TableBody/hooks/virtualizer/hook.ts +23 -0
  344. package/src/components/Table/components/TableBody/hooks/virtualizer/types.ts +5 -0
  345. package/src/components/Table/components/TableBody/tableBody.tsx +14 -30
  346. package/src/components/Table/components/TableBody/utils.ts +21 -0
  347. package/src/components/Table/components/TableCell/components/CollapsableCell/collapsableCell.tsx +14 -15
  348. package/src/components/Table/components/TableFeatures/ColumnGrouping/utils.ts +70 -0
  349. package/src/components/Table/components/TableFeatures/ColumnVisibility/utils.ts +52 -0
  350. package/src/components/Table/components/TableFeatures/RowSorting/utils.ts +87 -0
  351. package/src/components/Table/components/TableHead/tableHead.tsx +21 -29
  352. package/src/components/Table/components/TableHead/types.ts +7 -0
  353. package/src/components/Table/components/TableHead/utils.ts +42 -0
  354. package/src/components/Table/components/TableRow/tableRow.styles.ts +19 -2
  355. package/src/components/Table/components/TableRows/components/CollapsableRows/collapsableRows.tsx +8 -2
  356. package/src/components/Table/components/TableRows/components/CollapsableRows/hook.ts +20 -0
  357. package/src/components/Table/components/TableRows/tableRows.tsx +18 -15
  358. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.styles.ts +17 -0
  359. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.tsx +54 -0
  360. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/menuItems.tsx +28 -0
  361. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/types.ts +8 -0
  362. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/constants.ts +17 -0
  363. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/types.ts +5 -0
  364. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/utils.ts +45 -0
  365. package/src/components/Table/components/TableToolbar/components/RowSelection/components/DropdownMenu/dropdownMenu.tsx +7 -20
  366. package/src/components/Table/components/TableToolbar/tableToolbar.tsx +8 -2
  367. package/src/components/Table/features/RowPosition/constants.ts +2 -2
  368. package/src/components/Table/features/RowPosition/utils.ts +10 -5
  369. package/src/components/Table/options/updater.ts +29 -0
  370. package/src/components/Table/table.tsx +43 -25
  371. package/src/components/TableCreator/common/constants.ts +4 -6
  372. package/src/components/TableCreator/common/utils.ts +14 -7
  373. package/src/components/TableCreator/options/expanded/constants.ts +14 -0
  374. package/src/components/TableCreator/options/expanded/hook.ts +6 -0
  375. package/src/components/TableCreator/options/grouping/constants.ts +6 -0
  376. package/src/components/TableCreator/options/grouping/hook.ts +17 -0
  377. package/src/components/TableCreator/options/hook.ts +31 -0
  378. package/src/components/TableCreator/options/rowSelection/constants.ts +10 -0
  379. package/src/components/TableCreator/options/rowSelection/hook.ts +8 -0
  380. package/src/components/TableCreator/options/sorting/constants.ts +10 -0
  381. package/src/components/TableCreator/options/sorting/hook.ts +6 -0
  382. package/src/components/TableCreator/tableCreator.tsx +4 -11
  383. package/src/components/common/Banner/components/SessionTimeout/sessionTimeout.tsx +1 -1
  384. package/src/components/common/CustomIcon/common/entities.ts +1 -4
  385. package/src/components/common/CustomIcon/components/GoogleIcon/googleIcon.tsx +3 -4
  386. package/src/components/common/DropdownMenu/dropdownMenu.styles.ts +1 -1
  387. package/src/components/common/DropdownMenu/dropdownMenu.tsx +19 -17
  388. package/src/components/common/Menu/hooks/useMenu.ts +8 -9
  389. package/src/config/entities.ts +30 -34
  390. package/src/config/utils.ts +0 -14
  391. package/src/hooks/authentication/auth/useAuthReducer.ts +16 -0
  392. package/src/hooks/authentication/authentication/useAuthenticationReducer.ts +16 -0
  393. package/src/hooks/authentication/config/useAuthenticationConfig.ts +13 -0
  394. package/src/hooks/authentication/credentials/useCredentialsReducer.ts +13 -0
  395. package/src/hooks/authentication/profile/types.ts +9 -0
  396. package/src/hooks/authentication/profile/useProfile.ts +21 -0
  397. package/src/hooks/authentication/providers/types.ts +7 -0
  398. package/src/hooks/authentication/providers/useProviders.ts +23 -0
  399. package/src/hooks/authentication/session/useSessionActive.ts +51 -0
  400. package/src/hooks/authentication/session/useSessionCallbackUrl.ts +25 -0
  401. package/src/hooks/authentication/session/useSessionIdleTimer.ts +10 -0
  402. package/src/hooks/{useSessionTimeout.ts → authentication/session/useSessionTimeout.ts} +2 -2
  403. package/src/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.ts +8 -13
  404. package/src/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.ts +3 -4
  405. package/src/hooks/authentication/token/types.ts +5 -0
  406. package/src/hooks/authentication/token/useToken.ts +9 -0
  407. package/src/hooks/authentication/token/useTokenReducer.ts +19 -0
  408. package/src/hooks/useEntityList.ts +2 -2
  409. package/src/hooks/useFetchEntity.tsx +3 -3
  410. package/src/hooks/useFileManifest/useFetchFilesFacets.ts +2 -3
  411. package/src/hooks/useFileManifest/useFetchSummary.ts +2 -3
  412. package/src/hooks/useRequestFileLocation.ts +2 -3
  413. package/src/hooks/useRouteHistory.ts +65 -0
  414. package/src/hooks/useRouteRoot.ts +11 -0
  415. package/src/hooks/useSummary.ts +3 -3
  416. package/src/providers/authentication/auth/actions.ts +17 -0
  417. package/src/providers/authentication/auth/constants.ts +6 -0
  418. package/src/providers/authentication/auth/context.ts +9 -0
  419. package/src/providers/authentication/auth/dispatch.ts +58 -0
  420. package/src/providers/authentication/auth/hook.ts +11 -0
  421. package/src/providers/authentication/auth/reducer.ts +25 -0
  422. package/src/providers/authentication/auth/types.ts +63 -0
  423. package/src/providers/authentication/authentication/actions.ts +17 -0
  424. package/src/providers/authentication/authentication/constants.ts +6 -0
  425. package/src/providers/authentication/authentication/context.ts +8 -0
  426. package/src/providers/authentication/authentication/dispatch.ts +55 -0
  427. package/src/providers/authentication/authentication/hook.ts +11 -0
  428. package/src/providers/authentication/authentication/reducer.ts +34 -0
  429. package/src/providers/authentication/authentication/types.ts +64 -0
  430. package/src/providers/authentication/authentication/utils.ts +25 -0
  431. package/src/providers/authentication/common/types.ts +1 -0
  432. package/src/providers/authentication/common/utils.ts +11 -0
  433. package/src/providers/authentication/credentials/actions.ts +17 -0
  434. package/src/providers/authentication/credentials/constants.ts +5 -0
  435. package/src/providers/authentication/credentials/context.ts +8 -0
  436. package/src/providers/authentication/credentials/dispatch.ts +31 -0
  437. package/src/providers/authentication/credentials/hook.ts +11 -0
  438. package/src/providers/authentication/credentials/reducer.ts +30 -0
  439. package/src/providers/authentication/credentials/types.ts +33 -0
  440. package/src/providers/authentication/terra/context.ts +16 -0
  441. package/src/providers/authentication/terra/hook.ts +11 -0
  442. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.ts +9 -0
  443. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.ts +1 -7
  444. package/src/providers/authentication/terra/hooks/useFetchProfiles.ts +61 -0
  445. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.ts +18 -7
  446. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.ts +18 -7
  447. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.ts +18 -7
  448. package/src/providers/authentication/terra/hooks/utils.ts +29 -0
  449. package/src/providers/authentication/terra/provider.tsx +60 -0
  450. package/src/providers/authentication/terra/types.ts +23 -0
  451. package/src/providers/authentication/terra/utils.ts +49 -0
  452. package/src/providers/authentication/token/constants.ts +6 -0
  453. package/src/providers/authentication/token/dispatch.ts +29 -0
  454. package/src/providers/authentication/token/reducer.ts +26 -0
  455. package/src/providers/authentication/token/types.ts +36 -0
  456. package/src/providers/exploreState/actions/updateGrouping/action.ts +26 -0
  457. package/src/providers/exploreState/actions/updateGrouping/dispatch.ts +16 -0
  458. package/src/providers/exploreState/actions/updateGrouping/types.ts +11 -0
  459. package/src/providers/exploreState/actions/updateGrouping/utils.ts +33 -0
  460. package/src/providers/exploreState/entities.ts +3 -3
  461. package/src/providers/exploreState/initializer/utils.ts +58 -10
  462. package/src/providers/exploreState/payloads/entities.ts +2 -0
  463. package/src/providers/exploreState/utils.ts +10 -7
  464. package/src/providers/exploreState.tsx +32 -10
  465. package/src/providers/googleSignInAuthentication/common/types.ts +28 -0
  466. package/src/providers/googleSignInAuthentication/constants.ts +17 -0
  467. package/src/providers/googleSignInAuthentication/hooks/useGoogleSignInService.ts +53 -0
  468. package/src/providers/googleSignInAuthentication/profile/types.ts +15 -0
  469. package/src/providers/googleSignInAuthentication/profile/utils.ts +29 -0
  470. package/src/providers/googleSignInAuthentication/provider.tsx +53 -0
  471. package/src/providers/googleSignInAuthentication/service/constants.ts +16 -0
  472. package/src/providers/googleSignInAuthentication/service/service.ts +68 -0
  473. package/src/providers/googleSignInAuthentication/types.ts +7 -0
  474. package/src/providers/nextAuthAuthentication/hooks/useNextAuthService.ts +26 -0
  475. package/src/providers/nextAuthAuthentication/provider.tsx +42 -0
  476. package/src/providers/nextAuthAuthentication/service/service.ts +14 -0
  477. package/src/providers/nextAuthAuthentication/types.ts +9 -0
  478. package/src/routes/constants.ts +3 -0
  479. package/src/styles/common/mui/button.ts +20 -0
  480. package/src/styles/common/mui/paper.ts +11 -0
  481. package/src/styles/common/mui/popover.ts +19 -0
  482. package/src/theme/common/entities.ts +7 -0
  483. package/src/views/ExploreView/exploreView.tsx +1 -3
  484. package/src/views/LoginView/loginView.tsx +15 -9
  485. package/tests/getProfileStatus.test.ts +290 -0
  486. package/tests/terraProfileProvider.test.tsx +121 -0
  487. package/tests/transformRoute.test.ts +21 -0
  488. package/tests/useRouteHistory.test.ts +97 -0
  489. package/tests/useSessionActive.test.ts +107 -0
  490. package/types/data-explorer-ui.d.ts +8 -1
  491. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.d.ts +0 -5
  492. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.js +0 -29
  493. package/lib/components/Login/login.stories.d.ts +0 -6
  494. package/lib/components/Login/login.stories.js +0 -31
  495. package/lib/components/TableCreator/common/entities.d.ts +0 -5
  496. package/lib/components/common/Button/components/LoginButton/loginButton.d.ts +0 -3
  497. package/lib/components/common/Button/components/LoginButton/loginButton.js +0 -6
  498. package/lib/components/common/Button/components/LoginButton/loginButton.styles.d.ts +0 -7
  499. package/lib/components/common/Button/components/LoginButton/loginButton.styles.js +0 -11
  500. package/lib/hooks/useAuthentication/useAuthentication.d.ts +0 -6
  501. package/lib/hooks/useAuthentication/useAuthentication.js +0 -9
  502. package/lib/hooks/useAuthentication/useAuthenticationComplete.d.ts +0 -6
  503. package/lib/hooks/useAuthentication/useAuthenticationComplete.js +0 -55
  504. package/lib/hooks/useAuthentication/useAuthenticationStatus.d.ts +0 -20
  505. package/lib/hooks/useAuthentication/useAuthenticationStatus.js +0 -32
  506. package/lib/hooks/useAuthentication/useFetchGoogleProfile.d.ts +0 -21
  507. package/lib/hooks/useAuthentication/useFetchGoogleProfile.js +0 -41
  508. package/lib/hooks/useAuthentication/useTokenClient.d.ts +0 -11
  509. package/lib/hooks/useAuthentication/useTokenClient.js +0 -29
  510. package/lib/hooks/useAuthenticationConfig.d.ts +0 -6
  511. package/lib/hooks/useAuthenticationConfig.js +0 -14
  512. package/lib/providers/authentication.d.ts +0 -51
  513. package/lib/providers/authentication.js +0 -110
  514. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.tsx +0 -35
  515. package/src/components/Login/login.stories.tsx +0 -43
  516. package/src/components/TableCreator/common/entities.ts +0 -6
  517. package/src/components/common/Button/components/LoginButton/loginButton.styles.ts +0 -13
  518. package/src/components/common/Button/components/LoginButton/loginButton.tsx +0 -16
  519. package/src/hooks/useAuthentication/useAuthentication.tsx +0 -10
  520. package/src/hooks/useAuthentication/useAuthenticationComplete.ts +0 -66
  521. package/src/hooks/useAuthentication/useAuthenticationStatus.ts +0 -49
  522. package/src/hooks/useAuthentication/useFetchGoogleProfile.ts +0 -68
  523. package/src/hooks/useAuthentication/useTokenClient.ts +0 -54
  524. package/src/hooks/useAuthenticationConfig.ts +0 -18
  525. package/src/providers/authentication.tsx +0 -181
  526. package/tests/authentication.test.ts +0 -142
  527. package/tests/useAuthenticationStatus.test.ts +0 -155
  528. /package/lib/components/{TableCreator/common/entities.js → Authentication/components/SessionController/components/GoogleSessionController/types.js} +0 -0
  529. /package/lib/hooks/{useSessionTimeout.d.ts → authentication/session/useSessionTimeout.d.ts} +0 -0
  530. /package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.d.ts +0 -0
  531. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.d.ts +0 -0
  532. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.js +0 -0
  533. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.d.ts +0 -0
  534. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.d.ts +0 -0
  535. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.d.ts +0 -0
  536. /package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.ts +0 -0
@@ -1,18 +1,10 @@
1
1
  import React from "react";
2
- import { DropdownButton as DXDropdownButton } from "../../../../../../../common/Button/components/DropdownButton/dropdownButton";
2
+ import { DropdownButton } from "../../../../../../../common/Button/components/DropdownButton/dropdownButton";
3
3
  import { DropdownMenu as RowSelectionDropdownMenu } from "./dropdownMenu.styles";
4
4
  const DEFAULT_MENU_PROPS = {
5
5
  anchorOrigin: { horizontal: "left", vertical: "bottom" },
6
6
  transformOrigin: { horizontal: "left", vertical: "top" },
7
7
  };
8
- export const DropdownMenu = ({ Button = (props) => renderButton({ children: buttonLabel, ...props }), buttonLabel = "Edit", children, className, ...props /* Spread props to allow for Mui Menu specific prop overrides e.g. "anchorOrigin". */ }) => {
9
- return (React.createElement(RowSelectionDropdownMenu, { ...DEFAULT_MENU_PROPS, className: className, Button: Button, ...props }, ({ closeMenu }) => children({ closeMenu })));
8
+ export const DropdownMenu = ({ button = (props) => (React.createElement(DropdownButton, { ...props }, "Edit")), children, className, ...props /* Spread props to allow for Mui Menu specific prop overrides e.g. "anchorOrigin". */ }) => {
9
+ return (React.createElement(RowSelectionDropdownMenu, { ...DEFAULT_MENU_PROPS, className: className, button: button, ...props }, ({ closeMenu }) => children({ closeMenu })));
10
10
  };
11
- /**
12
- * Return the dropdown button.
13
- * @param props - Button props e.g. "onClick".
14
- * @returns button element.
15
- */
16
- function renderButton(props) {
17
- return React.createElement(DXDropdownButton, { ...props });
18
- }
@@ -5,6 +5,7 @@ import { getEditColumnOptions, isAnyRowSelected } from "../../common/utils";
5
5
  import { CheckboxMenu } from "../CheckboxMenu/checkboxMenu";
6
6
  import { DownloadEntityResults } from "../DownloadEntityResults/downloadEntityResults";
7
7
  import { PaginationSummary } from "../PaginationSummary/paginationSummary";
8
+ import { ColumnGrouping } from "./components/ColumnGrouping/columnGrouping";
8
9
  import { RowPreview } from "./components/RowPreview/rowPreview";
9
10
  import { RowSelection } from "./components/RowSelection/rowSelection";
10
11
  import { Toolbar, ToolbarActions } from "./tableToolbar.styles";
@@ -12,12 +13,12 @@ export const TableToolbar = ({ listView, rowDirection, tableInstance, }) => {
12
13
  const { exploreState } = useExploreState();
13
14
  const { paginationState } = exploreState;
14
15
  const { currentPage, pages, pageSize, rows } = paginationState;
15
- const { getSelectedRowModel, resetColumnVisibility } = tableInstance;
16
+ const { getSelectedRowModel, options: { enableGrouping }, resetColumnVisibility, } = tableInstance;
16
17
  const { enableDownload, rowPreviewView } = listView || {};
17
18
  const isLastPage = currentPage === pages;
18
19
  const editColumnOptions = getEditColumnOptions(tableInstance);
19
20
  const showToolbar = rowDirection === ROW_DIRECTION.DEFAULT &&
20
- (editColumnOptions || enableDownload);
21
+ (editColumnOptions || enableDownload || enableGrouping);
21
22
  /**
22
23
  * Resets column visibility to default state.
23
24
  */
@@ -29,6 +30,7 @@ export const TableToolbar = ({ listView, rowDirection, tableInstance, }) => {
29
30
  isAnyRowSelected(tableInstance) ? (React.createElement(RowSelection, { rows: getSelectedRowModel().rows, rowSelectionView: listView?.rowSelectionView })) : (React.createElement(PaginationSummary, { firstResult: (currentPage - 1) * pageSize + 1, lastResult: isLastPage ? rows : pageSize * currentPage, totalResult: rows })),
30
31
  React.createElement(ToolbarActions, null,
31
32
  enableDownload && (React.createElement(DownloadEntityResults, { entityName: exploreState.tabValue, rows: tableInstance.getFilteredRowModel().rows })),
33
+ React.createElement(ColumnGrouping, { tableInstance: tableInstance }),
32
34
  React.createElement(CheckboxMenu, { label: "Edit Columns", onReset: onResetColumnVisibility, options: editColumnOptions })))),
33
35
  React.createElement(RowPreview, { rowPreviewView: rowPreviewView, tableInstance: tableInstance })));
34
36
  };
@@ -6,9 +6,9 @@ export const ROW_POSITION = {
6
6
  };
7
7
  },
8
8
  createTable: (table) => {
9
- const originalGetRowModel = table.getRowModel.bind(table);
10
9
  table.getRowModel = () => {
11
- return getRowModel(table, originalGetRowModel);
10
+ const rowModel = table.getPaginationRowModel();
11
+ return getRowModel(table, rowModel);
12
12
  };
13
13
  },
14
14
  getInitialState: (initialState) => {
@@ -2,10 +2,10 @@ import { InitialTableState, RowData, RowModel, Table, TableState } from "@tansta
2
2
  /**
3
3
  * Returns row model, with getter for row position.
4
4
  * @param table - Table.
5
- * @param getRowModel - Table getRowModel function.
5
+ * @param rowModel - Row model.
6
6
  * @returns row model.
7
7
  */
8
- export declare function getRowModel<T extends RowData>(table: Table<T>, getRowModel: Table<T>[`getRowModel`]): RowModel<T>;
8
+ export declare function getRowModel<T extends RowData>(table: Table<T>, rowModel: RowModel<T>): RowModel<T>;
9
9
  /**
10
10
  * Returns the position of the row in the table.
11
11
  * @param rowId - Row ID.
@@ -3,13 +3,18 @@ import { DEFAULT_PAGINATION } from "../constants";
3
3
  /**
4
4
  * Returns row model, with getter for row position.
5
5
  * @param table - Table.
6
- * @param getRowModel - Table getRowModel function.
6
+ * @param rowModel - Row model.
7
7
  * @returns row model.
8
8
  */
9
- export function getRowModel(table, getRowModel) {
10
- const rowModel = getRowModel();
11
- rowModel.rows.forEach(({ id }, i) => {
12
- rowModel.rowsById[id].getRowPosition = () => calculateRowPosition(table, i);
9
+ export function getRowModel(table, rowModel) {
10
+ let i = 0;
11
+ rowModel.flatRows.forEach(({ getIsGrouped, id }) => {
12
+ const isGroupedRow = getIsGrouped();
13
+ const index = isGroupedRow ? -1 : i; // Capture the current value of i for this iteration.
14
+ rowModel.rowsById[id].getRowPosition = () => calculateRowPosition(table, index);
15
+ if (isGroupedRow)
16
+ return; // Iterate only for non-grouped rows.
17
+ i++;
13
18
  });
14
19
  return rowModel;
15
20
  }
@@ -31,6 +36,8 @@ export function getRowPosition(rowId, table) {
31
36
  * @returns row position.
32
37
  */
33
38
  function calculateRowPosition(table, index) {
39
+ if (index < 0)
40
+ return index; // Grouped rows have a position of -1.
34
41
  const { getState } = table;
35
42
  const { pagination: { pageIndex, pageSize }, } = getState();
36
43
  return pageIndex * pageSize + (index + 1);
@@ -0,0 +1,10 @@
1
+ import { Updater } from "@tanstack/react-table";
2
+ /**
3
+ * Utility function to resolve TanStack updater into a new value.
4
+ * If the updater is a function, it is called with the `old` value to compute the new value.
5
+ * If the updater is not a function, it is returned as-is.
6
+ * @param updaterOrValue - The updater, either a function or a direct value.
7
+ * @param old - The (old) value.
8
+ * @returns Resolved value.
9
+ */
10
+ export declare function resolveUpdater<T>(updaterOrValue: Updater<T>, old: T): T;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Type guard to check if the given value is TanStack's updater function.
3
+ * TanStack updater can either be a function that computes the new value based on the old value,
4
+ * or a direct value. This type guard identifies whether the provided updater is a function.
5
+ * @param updaterOrValue - The value to check.
6
+ * @returns True if the value is a function, false otherwise.
7
+ */
8
+ function isUpdaterFunction(updaterOrValue) {
9
+ return typeof updaterOrValue === "function";
10
+ }
11
+ /**
12
+ * Utility function to resolve TanStack updater into a new value.
13
+ * If the updater is a function, it is called with the `old` value to compute the new value.
14
+ * If the updater is not a function, it is returned as-is.
15
+ * @param updaterOrValue - The updater, either a function or a direct value.
16
+ * @param old - The (old) value.
17
+ * @returns Resolved value.
18
+ */
19
+ export function resolveUpdater(updaterOrValue, old) {
20
+ if (isUpdaterFunction(updaterOrValue)) {
21
+ return updaterOrValue(old);
22
+ }
23
+ return updaterOrValue;
24
+ }
@@ -1,6 +1,6 @@
1
1
  import { TableContainer } from "@mui/material";
2
2
  import { getCoreRowModel, getFacetedRowModel, getFilteredRowModel, getPaginationRowModel, getSortedRowModel, useReactTable, } from "@tanstack/react-table";
3
- import React, { useEffect, useMemo } from "react";
3
+ import React, { useCallback, useEffect, useMemo } from "react";
4
4
  import { track } from "../../common/analytics/analytics";
5
5
  import { EVENT_NAME, EVENT_PARAM, PAGINATION_DIRECTION, SORT_DIRECTION, } from "../../common/analytics/entities";
6
6
  import { BREAKPOINT_FN_NAME, useBreakpointHelper, } from "../../hooks/useBreakpointHelper";
@@ -39,7 +39,7 @@ export const TableComponent = ({ columns, getRowId, initialState, items, listVie
39
39
  const exploreMode = useExploreMode();
40
40
  const { exploreDispatch, exploreState } = useExploreState();
41
41
  const { entityPageState, filterState, listItems, loading, paginationState, rowPreview, tabValue, } = exploreState;
42
- const { columnsVisibility, enableRowSelection, rowSelection, sorting } = entityPageState[tabValue];
42
+ const { columnsVisibility, enableRowSelection, grouping, rowSelection, sorting, } = entityPageState[tabValue];
43
43
  const { currentPage, pages, pageSize, rows: pageCount } = paginationState;
44
44
  const { disablePagination = false, enableRowPreview = false } = listView || {};
45
45
  const clientFiltering = isClientFilteringEnabled(exploreMode);
@@ -48,39 +48,46 @@ export const TableComponent = ({ columns, getRowId, initialState, items, listVie
48
48
  : ROW_DIRECTION.DEFAULT;
49
49
  const pagination = useMemo(() => getTableStatePagination(currentPage - 1, pageSize), [currentPage, pageSize]);
50
50
  const onSortingChange = (updater) => {
51
+ // TODO(cc) memoize `onSortingChange` with `useCallback`.
52
+ // TODO(cc) copy `onSortingChange` to ../options/sorting/hook.ts see src/components/Table/options/grouping/hook.ts for example.
51
53
  exploreDispatch({
52
54
  payload: typeof updater === "function" ? updater(sorting) : updater,
53
55
  type: ExploreActionKind.UpdateSorting,
54
56
  });
55
57
  // Execute GTM tracking.
58
+ // TODO(cc) update tracking to handle sorting of multiple columns.
59
+ // TODO(cc) GTM tracking when `onSortingChange` is triggered only tracks the first column sorted, and takes the value from explore state which is not updated yet.
56
60
  track(EVENT_NAME.ENTITY_TABLE_SORTED, {
57
61
  [EVENT_PARAM.ENTITY_NAME]: exploreState.tabValue,
58
- [EVENT_PARAM.COLUMN_NAME]: sorting[0].id,
59
- [EVENT_PARAM.SORT_DIRECTION]: sorting[0].desc
62
+ [EVENT_PARAM.COLUMN_NAME]: sorting?.[0]?.id, // TODO(cc) sorting should always be at least `[]` and never `undefined`.
63
+ [EVENT_PARAM.SORT_DIRECTION]: sorting?.[0]?.desc // TODO(cc) sorting should always be at least `[]` and never `undefined`.
60
64
  ? SORT_DIRECTION.DESC
61
65
  : SORT_DIRECTION.ASC,
62
66
  });
63
67
  };
64
68
  const onColumnVisibilityChange = (updater) => {
69
+ // TODO(cc) memoize `onColumnVisibilityChange` with `useCallback`.
65
70
  exploreDispatch({
66
71
  payload: typeof updater === "function" ? updater(columnsVisibility) : updater,
67
72
  type: ExploreActionKind.UpdateColumnVisibility,
68
73
  });
69
74
  };
70
- const onRowPreviewChange = (updater) => {
75
+ const onRowPreviewChange = useCallback((updater) => {
71
76
  exploreDispatch({
72
77
  payload: typeof updater === "function" ? updater(rowPreview) : updater,
73
78
  type: ExploreActionKind.UpdateRowPreview,
74
79
  });
75
- };
76
- const onRowSelectionChange = (updater) => {
80
+ }, [exploreDispatch, rowPreview]);
81
+ const onRowSelectionChange = useCallback((updater) => {
82
+ // TODO(cc) refactor `onRowSelectionChange` to /options/rowSelection/hook.ts see onGroupingChange.
77
83
  exploreDispatch({
78
84
  payload: typeof updater === "function" ? updater(rowSelection) : updater,
79
85
  type: ExploreActionKind.UpdateRowSelection,
80
86
  });
81
- };
87
+ }, [exploreDispatch, rowSelection]);
82
88
  const state = {
83
89
  columnVisibility: columnsVisibility,
90
+ grouping,
84
91
  pagination,
85
92
  rowPreview,
86
93
  rowSelection,
@@ -107,11 +114,9 @@ export const TableComponent = ({ columns, getRowId, initialState, items, listVie
107
114
  data: items,
108
115
  enableColumnFilters: true, // client-side filtering.
109
116
  enableFilters: true, // client-side filtering.
110
- enableMultiSort: clientFiltering,
117
+ enableMultiSort: clientFiltering, // TODO(cc) move to sorting options; default to false and let the table options in config flag this value.
111
118
  enableRowPreview,
112
119
  enableRowSelection,
113
- enableSorting: true, // client-side filtering.
114
- enableSortingRemoval: false, // client-side filtering.
115
120
  getCoreRowModel: getCoreRowModel(),
116
121
  getFacetedRowModel: clientFiltering ? getFacetedRowModel() : undefined,
117
122
  getFacetedUniqueValues: clientFiltering
@@ -135,8 +140,8 @@ export const TableComponent = ({ columns, getRowId, initialState, items, listVie
135
140
  const { getAllColumns, getRowModel, getState, getVisibleFlatColumns, nextPage: tableNextPage, previousPage: tablePreviousPage, } = tableInstance;
136
141
  const allColumns = getAllColumns();
137
142
  const { columnFilters } = getState();
138
- const { rows: results } = getRowModel();
139
- const noResults = !loading && (!results || results.length === 0);
143
+ const { rows } = getRowModel();
144
+ const noResults = !loading && (!rows || rows.length === 0);
140
145
  const scrollTop = useScroll();
141
146
  const visibleColumns = getVisibleFlatColumns();
142
147
  const gridTemplateColumns = getGridTemplateColumns(visibleColumns);
@@ -195,8 +200,8 @@ export const TableComponent = ({ columns, getRowId, initialState, items, listVie
195
200
  loading: false,
196
201
  paginationResponse: {
197
202
  ...DEFAULT_PAGINATION_STATE,
198
- pageSize: results.length,
199
- rows: results.length,
203
+ pageSize: rows.filter(({ getIsGrouped }) => !getIsGrouped()).length,
204
+ rows: rows.filter(({ getIsGrouped }) => !getIsGrouped()).length,
200
205
  },
201
206
  selectCategories: buildCategoryViews(allColumns, columnFilters),
202
207
  },
@@ -209,7 +214,7 @@ export const TableComponent = ({ columns, getRowId, initialState, items, listVie
209
214
  columnFilters,
210
215
  exploreDispatch,
211
216
  listItems,
212
- results,
217
+ rows,
213
218
  ]);
214
219
  function canNextPage() {
215
220
  return currentPage < pages;
@@ -223,7 +228,7 @@ export const TableComponent = ({ columns, getRowId, initialState, items, listVie
223
228
  React.createElement(TableContainer, null,
224
229
  React.createElement(GridTable, { collapsable: true, gridTemplateColumns: gridTemplateColumns },
225
230
  React.createElement(TableHead, { rowDirection: rowDirection, tableInstance: tableInstance }),
226
- React.createElement(TableBody, { rowDirection: rowDirection, tableInstance: tableInstance }))),
231
+ React.createElement(TableBody, { rows: rows, rowDirection: rowDirection, tableInstance: tableInstance }))),
227
232
  !disablePagination && (React.createElement(DXPagination, { canNextPage: canNextPage(), canPreviousPage: canPreviousPage(), currentPage: currentPage, onNextPage: handleTableNextPage, onPreviousPage: handleTablePreviousPage, totalPage: pages ?? 0 })))));
228
233
  };
229
234
  // TODO(Dave) review whether memo is necessary - flash between tabs / loading state.
@@ -1,7 +1,7 @@
1
1
  import { RowData } from "@tanstack/react-table";
2
- import { BaseColumnConfig } from "./entities";
2
+ import { ColumnConfig } from "../../../config/entities";
3
3
  export declare const ACCESSOR_KEYS: {
4
4
  ROW_POSITION: string;
5
5
  SELECT: string;
6
6
  };
7
- export declare const COLUMN_CONFIGS: Record<string, BaseColumnConfig<RowData, unknown>>;
7
+ export declare const COLUMN_CONFIGS: Record<string, ColumnConfig<RowData>>;
@@ -9,7 +9,8 @@ export const COLUMN_CONFIGS = {
9
9
  columnVisible: false,
10
10
  componentConfig: { component: RowSelectionCell },
11
11
  disableHiding: true,
12
- disableSorting: true,
12
+ enableGrouping: false,
13
+ enableSorting: false,
13
14
  header: ACCESSOR_KEYS.SELECT,
14
15
  id: ACCESSOR_KEYS.SELECT,
15
16
  meta: {
@@ -1,8 +1,11 @@
1
1
  import { ColumnDef } from "@tanstack/react-table";
2
- import { BaseColumnConfig } from "./entities";
2
+ import { ColumnConfig } from "../../../config/entities";
3
3
  /**
4
4
  * Builds a base column definition.
5
+ * The following properties are set by default:
6
+ * - Grouping is not enabled `enableGrouping: false`.
7
+ * - Sorting is enabled - `enableSorting: true`.
5
8
  * @param baseColumnConfig - Base column configuration.
6
9
  * @returns column definition.
7
10
  */
8
- export declare function buildBaseColumnDef<T, TValue>(baseColumnConfig: BaseColumnConfig<T, TValue>): ColumnDef<T>;
11
+ export declare function buildBaseColumnDef<T>(baseColumnConfig: ColumnConfig<T>): ColumnDef<T>;
@@ -1,21 +1,28 @@
1
1
  /**
2
2
  * Builds a base column definition.
3
+ * The following properties are set by default:
4
+ * - Grouping is not enabled `enableGrouping: false`.
5
+ * - Sorting is enabled - `enableSorting: true`.
3
6
  * @param baseColumnConfig - Base column configuration.
4
7
  * @returns column definition.
5
8
  */
6
9
  export function buildBaseColumnDef(baseColumnConfig) {
7
- const { columnPinned, disableHiding, disableSorting, header, id, meta, width, } = baseColumnConfig;
10
+ const { columnPinned,
11
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars -- Destructure to avoid passing it to the columnDef.
12
+ columnVisible,
13
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars -- Destructure to avoid passing it to the columnDef.
14
+ componentConfig, disableHiding, header, id, meta, width, ...columnDef } = baseColumnConfig;
8
15
  return {
16
+ ...columnDef,
9
17
  accessorKey: id,
10
18
  enableHiding: !disableHiding,
11
- enableSorting: !disableSorting,
12
19
  header,
13
20
  id,
14
21
  meta: {
15
- ...meta,
16
22
  columnPinned,
17
- header: meta ? meta.header : header,
23
+ header: typeof header === "string" ? header : undefined,
18
24
  width,
25
+ ...meta,
19
26
  },
20
27
  };
21
28
  }
@@ -0,0 +1,2 @@
1
+ import { ExpandedOptions, RowData } from "@tanstack/react-table";
2
+ export declare const EXPANDED_OPTIONS: Pick<ExpandedOptions<RowData>, "autoResetExpanded" | "enableExpanding" | "getExpandedRowModel">;
@@ -0,0 +1,6 @@
1
+ import { getExpandedRowModel, } from "@tanstack/react-table";
2
+ export const EXPANDED_OPTIONS = {
3
+ autoResetExpanded: false,
4
+ enableExpanding: false,
5
+ getExpandedRowModel: getExpandedRowModel(),
6
+ };
@@ -0,0 +1,2 @@
1
+ import { ExpandedOptions, RowData } from "@tanstack/react-table";
2
+ export declare function useExpandedOptions<T extends RowData>(): ExpandedOptions<T>;
@@ -0,0 +1,4 @@
1
+ import { EXPANDED_OPTIONS } from "./constants";
2
+ export function useExpandedOptions() {
3
+ return { ...EXPANDED_OPTIONS };
4
+ }
@@ -0,0 +1,2 @@
1
+ import { GroupingOptions } from "@tanstack/react-table";
2
+ export declare const GROUPING_OPTIONS: GroupingOptions;
@@ -0,0 +1,5 @@
1
+ import { getGroupedRowModel } from "@tanstack/react-table";
2
+ export const GROUPING_OPTIONS = {
3
+ enableGrouping: false,
4
+ getGroupedRowModel: getGroupedRowModel(),
5
+ };
@@ -0,0 +1,2 @@
1
+ import { GroupingOptions } from "@tanstack/react-table";
2
+ export declare function useGroupingOptions(): GroupingOptions;
@@ -0,0 +1,9 @@
1
+ import { useCallback } from "react";
2
+ import { useExploreState } from "../../../../hooks/useExploreState";
3
+ import { updateGrouping } from "../../../../providers/exploreState/actions/updateGrouping/dispatch";
4
+ import { GROUPING_OPTIONS } from "./constants";
5
+ export function useGroupingOptions() {
6
+ const { exploreDispatch } = useExploreState();
7
+ const onGroupingChange = useCallback((updaterOrValue) => exploreDispatch(updateGrouping({ updaterOrValue })), [exploreDispatch]);
8
+ return { ...GROUPING_OPTIONS, onGroupingChange };
9
+ }
@@ -0,0 +1,2 @@
1
+ import { RowData, TableOptions } from "@tanstack/react-table";
2
+ export declare function useTableOptions<T extends RowData>(): Partial<TableOptions<T>>;
@@ -0,0 +1,25 @@
1
+ import { useConfig } from "../../../hooks/useConfig";
2
+ import { useExpandedOptions } from "./expanded/hook";
3
+ import { useGroupingOptions } from "./grouping/hook";
4
+ import { useRowSelectionOptions } from "./rowSelection/hook";
5
+ import { useSortingOptions } from "./sorting/hook";
6
+ export function useTableOptions() {
7
+ const { entityConfig: { list: { defaultSort, tableOptions }, }, } = useConfig();
8
+ const expandedOptions = useExpandedOptions();
9
+ const groupingOptions = useGroupingOptions();
10
+ const rowSelectionOptions = useRowSelectionOptions();
11
+ const sortingOptions = useSortingOptions();
12
+ return {
13
+ ...expandedOptions,
14
+ ...groupingOptions,
15
+ ...rowSelectionOptions,
16
+ ...sortingOptions, // TODO(cc) merge of all sorting options.
17
+ ...tableOptions,
18
+ initialState: {
19
+ ...tableOptions?.initialState,
20
+ sorting: defaultSort
21
+ ? [defaultSort] // TODO(cc) deprecate `defaultSort` in favor of `initialState.sorting`.
22
+ : tableOptions?.initialState?.sorting,
23
+ },
24
+ };
25
+ }
@@ -0,0 +1,2 @@
1
+ import { RowData, RowSelectionOptions } from "@tanstack/react-table";
2
+ export declare const ROW_SELECTION_OPTIONS: Pick<RowSelectionOptions<RowData>, "enableRowSelection" | "enableSubRowSelection" | "enableMultiRowSelection">;
@@ -0,0 +1,5 @@
1
+ export const ROW_SELECTION_OPTIONS = {
2
+ enableMultiRowSelection: false,
3
+ enableRowSelection: false,
4
+ enableSubRowSelection: false,
5
+ };
@@ -0,0 +1,2 @@
1
+ import { RowData, RowSelectionOptions } from "@tanstack/react-table";
2
+ export declare function useRowSelectionOptions<T extends RowData>(): RowSelectionOptions<T>;
@@ -0,0 +1,4 @@
1
+ import { ROW_SELECTION_OPTIONS } from "./constants";
2
+ export function useRowSelectionOptions() {
3
+ return { ...ROW_SELECTION_OPTIONS };
4
+ }
@@ -0,0 +1,2 @@
1
+ import { RowData, SortingOptions } from "@tanstack/react-table";
2
+ export declare const SORTING_OPTIONS: Pick<SortingOptions<RowData>, "enableSorting" | "enableSortingInteraction" | "enableSortingRemoval">;
@@ -0,0 +1,5 @@
1
+ export const SORTING_OPTIONS = {
2
+ enableSorting: true,
3
+ enableSortingInteraction: true,
4
+ enableSortingRemoval: false, // false i.e. toggling the sorting on a column will not remove sorting on the column.
5
+ };
@@ -0,0 +1,2 @@
1
+ import { RowData, SortingOptions } from "@tanstack/react-table";
2
+ export declare function useSortingOptions<T extends RowData>(): SortingOptions<T>;
@@ -0,0 +1,4 @@
1
+ import { SORTING_OPTIONS } from "./constants";
2
+ export function useSortingOptions() {
3
+ return { ...SORTING_OPTIONS };
4
+ }
@@ -1,12 +1,10 @@
1
- import { ColumnSort, CoreOptions, RowData } from "@tanstack/react-table";
2
- import { ColumnConfig, ListConfig, ListViewConfig } from "../../config/entities";
1
+ import { CoreOptions, RowData } from "@tanstack/react-table";
2
+ import { ColumnConfig, ListViewConfig } from "../../config/entities";
3
3
  export interface TableCreatorProps<T> {
4
4
  columns: ColumnConfig<T>[];
5
- defaultSort: ColumnSort | undefined;
6
5
  getRowId?: CoreOptions<T>["getRowId"];
7
6
  items: T[];
8
7
  listView?: ListViewConfig;
9
8
  loading?: boolean;
10
- tableOptions?: ListConfig<T>["tableOptions"];
11
9
  }
12
- export declare const TableCreator: <T extends RowData>({ columns, defaultSort, getRowId, items, listView, loading, tableOptions, }: TableCreatorProps<T>) => JSX.Element;
10
+ export declare const TableCreator: <T extends RowData>({ columns, getRowId, items, listView, loading, }: TableCreatorProps<T>) => JSX.Element;
@@ -9,6 +9,7 @@ import { HeadSelectionCell } from "../Table/components/TableHead/components/Head
9
9
  import { Table } from "../Table/table";
10
10
  import { COLUMN_CONFIGS } from "./common/constants";
11
11
  import { buildBaseColumnDef } from "./common/utils";
12
+ import { useTableOptions } from "./options/hook";
12
13
  import { TableCreator as TableCreatorContainer } from "./tableCreator.styles";
13
14
  const createCell = (config) => function CellCreator(cellContext) {
14
15
  return (React.createElement(ComponentCreator, { components: [config.componentConfig], response: cellContext.row.original, viewContext: { cellContext } }));
@@ -19,7 +20,8 @@ const createHeaderSelectionCell = () => function CellCreator({ table }) {
19
20
  const createRowSelectionCell = () => function CellCreator({ row }) {
20
21
  return React.createElement(RowSelectionCell, { row: row });
21
22
  };
22
- export const TableCreator = ({ columns, defaultSort, getRowId, items, listView, loading, tableOptions, }) => {
23
+ export const TableCreator = ({ columns, getRowId, items, listView, loading, }) => {
24
+ const tableOptions = useTableOptions();
23
25
  const columnDefs = useMemo(() => columns.reduce((acc, columnConfig) => {
24
26
  acc.push({
25
27
  ...buildBaseColumnDef(columnConfig),
@@ -38,7 +40,7 @@ export const TableCreator = ({ columns, defaultSort, getRowId, items, listView,
38
40
  header: createHeaderSelectionCell(),
39
41
  },
40
42
  ]), [columns]);
41
- const initialState = getInitialState(columns, defaultSort);
43
+ const initialState = getInitialState(columns);
42
44
  return (React.createElement(TableCreatorContainer, null,
43
45
  React.createElement(Loading, { appear: false, loading: loading || false, panelStyle: PAPER_PANEL_STYLE.FLUID }),
44
46
  React.createElement(Table, { columns: columnDefs, getRowId: getRowId, initialState: initialState, items: items, listView: listView, loading: loading, tableOptions: tableOptions })));
@@ -1,6 +1,6 @@
1
1
  import { Fade } from "@mui/material";
2
2
  import React from "react";
3
- import { useSessionTimeout } from "../../../../../hooks/useSessionTimeout";
3
+ import { useSessionTimeout } from "../../../../../hooks/authentication/session/useSessionTimeout";
4
4
  import { Banner } from "../../banner";
5
5
  export const SessionTimeout = ({ children, className, content, ...props }) => {
6
6
  const { clearSessionTimeout, isSessionTimeout } = useSessionTimeout();
@@ -1,5 +1,2 @@
1
1
  import { SvgIconProps } from "@mui/material";
2
- export interface CustomSVGIconProps extends SvgIconProps {
3
- fontSize?: SvgIconProps["fontSize"];
4
- viewBox?: string;
5
- }
2
+ export type CustomSVGIconProps = SvgIconProps;
@@ -1,5 +1,5 @@
1
- import { CustomSVGIconProps } from "../../common/entities";
1
+ import { SvgIconProps } from "@mui/material";
2
2
  /**
3
3
  * Custom Google logo icon.
4
4
  */
5
- export declare const GoogleIcon: ({ fontSize, viewBox, ...props }: CustomSVGIconProps) => JSX.Element;
5
+ export declare const GoogleIcon: ({ fontSize, viewBox, ...props }: SvgIconProps) => JSX.Element;
@@ -3,7 +3,7 @@ import React from "react";
3
3
  /**
4
4
  * Custom Google logo icon.
5
5
  */
6
- export const GoogleIcon = ({ fontSize = "xsmall", viewBox = "0 0 20 20", ...props /* Spread props to allow for Mui SvgIconProps specific prop overrides e.g. "htmlColor". */ }) => {
6
+ export const GoogleIcon = ({ fontSize = "xsmall", viewBox = "0 0 20 20", ...props }) => {
7
7
  return (React.createElement(SvgIcon, { fontSize: fontSize, viewBox: viewBox, ...props },
8
8
  React.createElement("path", { d: "M19.7874 10.2249C19.7874 9.56659 19.7291 8.94159 19.6291 8.33325H10.2124V12.0916H15.6041C15.3624 13.3249 14.6541 14.3666 13.6041 15.0749V17.5749H16.8207C18.7041 15.8333 19.7874 13.2666 19.7874 10.2249Z", fill: "#4285F4" }),
9
9
  React.createElement("path", { d: "M10.2126 20.0001C12.9126 20.0001 15.1709 19.1001 16.8209 17.5751L13.6043 15.0751C12.7043 15.6751 11.5626 16.0418 10.2126 16.0418C7.60427 16.0418 5.39593 14.2834 4.60427 11.9084H1.2876V14.4834C2.92926 17.7501 6.30427 20.0001 10.2126 20.0001Z", fill: "#34A853" }),
@@ -1,9 +1,8 @@
1
1
  import { MenuProps as MMenuProps } from "@mui/material";
2
- import { ElementType } from "react";
3
2
  import { DropdownMenuButtonProps, DropdownMenuIconButtonProps, DropdownMenuItemProps } from "./common/entities";
4
3
  export interface DropdownMenuProps extends Omit<MMenuProps, "children" | "open"> {
5
- Button: ElementType<DropdownMenuButtonProps> | ElementType<DropdownMenuIconButtonProps>;
4
+ button: (props: Pick<DropdownMenuButtonProps, "onClick" | "open"> | Pick<DropdownMenuIconButtonProps, "onClick" | "open">) => JSX.Element;
6
5
  children?: ({ closeMenu }: DropdownMenuItemProps) => JSX.Element[];
7
6
  className?: string;
8
7
  }
9
- export declare const DropdownMenu: ({ Button, children, className, ...props }: DropdownMenuProps) => JSX.Element;
8
+ export declare const DropdownMenu: ({ button, children, className, ...props }: DropdownMenuProps) => JSX.Element;
@@ -1,10 +1,10 @@
1
- import React, { Fragment, useState } from "react";
1
+ import React, { Fragment } from "react";
2
+ import { useMenu } from "../Menu/hooks/useMenu";
2
3
  import { DEFAULT_DROPDOWN_MENU_PROPS } from "./common/constants";
3
- import { Menu } from "./dropdownMenu.styles";
4
- export const DropdownMenu = ({ Button, children, className, ...props /* Spread props to allow for Mui Menu specific prop overrides e.g. "anchorOrigin". */ }) => {
5
- const [anchorEl, setAnchorEl] = useState(null);
6
- const closeMenu = () => setAnchorEl(null);
4
+ import { StyledMenu } from "./dropdownMenu.styles";
5
+ export const DropdownMenu = ({ button, children, className, ...props /* Spread props to allow for Mui Menu specific prop overrides e.g. "anchorOrigin". */ }) => {
6
+ const { anchorEl, onClose: closeMenu, onOpen: openMenu, open, } = useMenu();
7
7
  return (React.createElement(Fragment, null,
8
- React.createElement(Button, { onClick: (event) => setAnchorEl(event.currentTarget), open: Boolean(anchorEl) }),
9
- React.createElement(Menu, { ...DEFAULT_DROPDOWN_MENU_PROPS, anchorEl: anchorEl, className: className, onClose: closeMenu, open: Boolean(anchorEl), ...props }, children ? children({ closeMenu }) : null)));
8
+ button({ onClick: openMenu, open }),
9
+ React.createElement(StyledMenu, { ...DEFAULT_DROPDOWN_MENU_PROPS, anchorEl: anchorEl, className: className, onClose: closeMenu, open: open, ...props }, children ? children({ closeMenu }) : null)));
10
10
  };
@@ -1,3 +1,3 @@
1
- export declare const Menu: import("@emotion/styled").StyledComponent<import("@mui/material").MenuProps & {
1
+ export declare const StyledMenu: import("@emotion/styled").StyledComponent<import("@mui/material").MenuProps & {
2
2
  theme?: import("@emotion/react").Theme;
3
3
  }, {}, {}>;
@@ -1,6 +1,6 @@
1
1
  import styled from "@emotion/styled";
2
2
  import { Menu as MMenu } from "@mui/material";
3
- export const Menu = styled(MMenu) `
3
+ export const StyledMenu = styled(MMenu) `
4
4
  .MuiPaper-menu {
5
5
  margin: 4px 0;
6
6
  }