@okta/odyssey-react-mui 1.20.0 → 1.21.1

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 (383) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/dist/DataTable/DataTable.js +101 -63
  3. package/dist/DataTable/DataTable.js.map +1 -1
  4. package/dist/Pagination/Pagination.js +29 -20
  5. package/dist/Pagination/Pagination.js.map +1 -1
  6. package/dist/Pagination/usePagination.js +13 -22
  7. package/dist/Pagination/usePagination.js.map +1 -1
  8. package/dist/assertEnv.js +1 -1
  9. package/dist/index.scss +1 -1
  10. package/dist/labs/DataComponents/DataStack.js +6 -0
  11. package/dist/labs/DataComponents/DataStack.js.map +1 -1
  12. package/dist/labs/DataComponents/DataTable.js +6 -0
  13. package/dist/labs/DataComponents/DataTable.js.map +1 -1
  14. package/dist/labs/DataComponents/DataView.js +15 -1
  15. package/dist/labs/DataComponents/DataView.js.map +1 -1
  16. package/dist/labs/DataComponents/TableContent.js +49 -3
  17. package/dist/labs/DataComponents/TableContent.js.map +1 -1
  18. package/dist/labs/DataComponents/TableSettings.js +28 -38
  19. package/dist/labs/DataComponents/TableSettings.js.map +1 -1
  20. package/dist/labs/DataComponents/componentTypes.js.map +1 -1
  21. package/dist/labs/DataComponents/constants.js.map +1 -1
  22. package/dist/labs/DataComponents/tableConstants.js +0 -19
  23. package/dist/labs/DataComponents/tableConstants.js.map +1 -1
  24. package/dist/labs/DataComponents/useFilterConversion.js +8 -15
  25. package/dist/labs/DataComponents/useFilterConversion.js.map +1 -1
  26. package/dist/labs/DateField.js +97 -10
  27. package/dist/labs/DateField.js.map +1 -1
  28. package/dist/labs/DatePicker.js +113 -51
  29. package/dist/labs/DatePicker.js.map +1 -1
  30. package/dist/labs/TimeZonePicker.js +37 -0
  31. package/dist/labs/TimeZonePicker.js.map +1 -0
  32. package/dist/labs/TopNav.js +280 -0
  33. package/dist/labs/TopNav.js.map +1 -0
  34. package/dist/labs/datePickerTheme.js +8 -5
  35. package/dist/labs/datePickerTheme.js.map +1 -1
  36. package/dist/labs/index.js +1 -0
  37. package/dist/labs/index.js.map +1 -1
  38. package/dist/labs/{useDatePickerTranslations.js → useDateFieldsTranslations.js} +2 -2
  39. package/dist/labs/{useDatePickerTranslations.js.map → useDateFieldsTranslations.js.map} +1 -1
  40. package/dist/labs/useOdysseyDateFields.js +101 -0
  41. package/dist/labs/useOdysseyDateFields.js.map +1 -0
  42. package/dist/properties/ts/odyssey-react-mui.js +3 -0
  43. package/dist/properties/ts/odyssey-react-mui.js.map +1 -1
  44. package/dist/properties/ts/odyssey-react-mui_ok_PL.js +3 -1
  45. package/dist/properties/ts/odyssey-react-mui_ok_PL.js.map +1 -1
  46. package/dist/properties/ts/odyssey-react-mui_ok_SK.js +2 -0
  47. package/dist/properties/ts/odyssey-react-mui_ok_SK.js.map +1 -1
  48. package/dist/src/Autocomplete.d.ts +2 -1
  49. package/dist/src/Autocomplete.d.ts.map +1 -1
  50. package/dist/src/Badge.d.ts +0 -1
  51. package/dist/src/Badge.d.ts.map +1 -1
  52. package/dist/src/Banner.d.ts +0 -1
  53. package/dist/src/Banner.d.ts.map +1 -1
  54. package/dist/src/ButtonContext.d.ts +0 -1
  55. package/dist/src/ButtonContext.d.ts.map +1 -1
  56. package/dist/src/Checkbox.d.ts +0 -1
  57. package/dist/src/Checkbox.d.ts.map +1 -1
  58. package/dist/src/CircularProgress.d.ts +0 -1
  59. package/dist/src/CircularProgress.d.ts.map +1 -1
  60. package/dist/src/DataTable/DataTable.d.ts +14 -1
  61. package/dist/src/DataTable/DataTable.d.ts.map +1 -1
  62. package/dist/src/DataTable/useRowReordering.d.ts.map +1 -1
  63. package/dist/src/ErrorMessageList.d.ts +0 -1
  64. package/dist/src/ErrorMessageList.d.ts.map +1 -1
  65. package/dist/src/Field.d.ts.map +1 -1
  66. package/dist/src/FieldError.d.ts +0 -1
  67. package/dist/src/FieldError.d.ts.map +1 -1
  68. package/dist/src/FieldHint.d.ts +0 -1
  69. package/dist/src/FieldHint.d.ts.map +1 -1
  70. package/dist/src/FieldLabel.d.ts +0 -1
  71. package/dist/src/FieldLabel.d.ts.map +1 -1
  72. package/dist/src/FieldsetContext.d.ts +0 -1
  73. package/dist/src/FieldsetContext.d.ts.map +1 -1
  74. package/dist/src/HintLink.d.ts +0 -1
  75. package/dist/src/HintLink.d.ts.map +1 -1
  76. package/dist/src/MuiPropsContext.d.ts +0 -1
  77. package/dist/src/MuiPropsContext.d.ts.map +1 -1
  78. package/dist/src/NativeSelect.d.ts +4 -4
  79. package/dist/src/NativeSelect.d.ts.map +1 -1
  80. package/dist/src/OdysseyDesignTokensContext.d.ts +0 -1
  81. package/dist/src/OdysseyDesignTokensContext.d.ts.map +1 -1
  82. package/dist/src/OdysseyProvider.d.ts +2 -1
  83. package/dist/src/OdysseyProvider.d.ts.map +1 -1
  84. package/dist/src/OdysseyTranslationProvider.d.ts +1 -1
  85. package/dist/src/OdysseyTranslationProvider.d.ts.map +1 -1
  86. package/dist/src/Pagination/Pagination.d.ts +41 -26
  87. package/dist/src/Pagination/Pagination.d.ts.map +1 -1
  88. package/dist/src/Pagination/usePagination.d.ts +2 -1
  89. package/dist/src/Pagination/usePagination.d.ts.map +1 -1
  90. package/dist/src/PasswordField.d.ts +10 -10
  91. package/dist/src/PasswordField.d.ts.map +1 -1
  92. package/dist/src/Radio.d.ts +0 -1
  93. package/dist/src/Radio.d.ts.map +1 -1
  94. package/dist/src/SearchField.d.ts +11 -11
  95. package/dist/src/SearchField.d.ts.map +1 -1
  96. package/dist/src/Select.d.ts +0 -1
  97. package/dist/src/Select.d.ts.map +1 -1
  98. package/dist/src/Status.d.ts +0 -1
  99. package/dist/src/Status.d.ts.map +1 -1
  100. package/dist/src/Tabs.d.ts.map +1 -1
  101. package/dist/src/TagListContext.d.ts +0 -1
  102. package/dist/src/TagListContext.d.ts.map +1 -1
  103. package/dist/src/TextField.d.ts +12 -12
  104. package/dist/src/TextField.d.ts.map +1 -1
  105. package/dist/src/Toast.d.ts +0 -1
  106. package/dist/src/Toast.d.ts.map +1 -1
  107. package/dist/src/icons.generated/Add.d.ts +0 -1
  108. package/dist/src/icons.generated/Add.d.ts.map +1 -1
  109. package/dist/src/icons.generated/AddCircle.d.ts +0 -1
  110. package/dist/src/icons.generated/AddCircle.d.ts.map +1 -1
  111. package/dist/src/icons.generated/Apps.d.ts +0 -1
  112. package/dist/src/icons.generated/Apps.d.ts.map +1 -1
  113. package/dist/src/icons.generated/ArrowBottom.d.ts +0 -1
  114. package/dist/src/icons.generated/ArrowBottom.d.ts.map +1 -1
  115. package/dist/src/icons.generated/ArrowDown.d.ts +0 -1
  116. package/dist/src/icons.generated/ArrowDown.d.ts.map +1 -1
  117. package/dist/src/icons.generated/ArrowLeft.d.ts +0 -1
  118. package/dist/src/icons.generated/ArrowLeft.d.ts.map +1 -1
  119. package/dist/src/icons.generated/ArrowLowerLeft.d.ts +0 -1
  120. package/dist/src/icons.generated/ArrowLowerLeft.d.ts.map +1 -1
  121. package/dist/src/icons.generated/ArrowLowerRight.d.ts +0 -1
  122. package/dist/src/icons.generated/ArrowLowerRight.d.ts.map +1 -1
  123. package/dist/src/icons.generated/ArrowRight.d.ts +0 -1
  124. package/dist/src/icons.generated/ArrowRight.d.ts.map +1 -1
  125. package/dist/src/icons.generated/ArrowTop.d.ts +0 -1
  126. package/dist/src/icons.generated/ArrowTop.d.ts.map +1 -1
  127. package/dist/src/icons.generated/ArrowUnsorted.d.ts +0 -1
  128. package/dist/src/icons.generated/ArrowUnsorted.d.ts.map +1 -1
  129. package/dist/src/icons.generated/ArrowUp.d.ts +0 -1
  130. package/dist/src/icons.generated/ArrowUp.d.ts.map +1 -1
  131. package/dist/src/icons.generated/ArrowUpperLeft.d.ts +0 -1
  132. package/dist/src/icons.generated/ArrowUpperLeft.d.ts.map +1 -1
  133. package/dist/src/icons.generated/ArrowUpperRight.d.ts +0 -1
  134. package/dist/src/icons.generated/ArrowUpperRight.d.ts.map +1 -1
  135. package/dist/src/icons.generated/Bug.d.ts +0 -1
  136. package/dist/src/icons.generated/Bug.d.ts.map +1 -1
  137. package/dist/src/icons.generated/Calendar.d.ts +0 -1
  138. package/dist/src/icons.generated/Calendar.d.ts.map +1 -1
  139. package/dist/src/icons.generated/Call.d.ts +0 -1
  140. package/dist/src/icons.generated/Call.d.ts.map +1 -1
  141. package/dist/src/icons.generated/Chat.d.ts +0 -1
  142. package/dist/src/icons.generated/Chat.d.ts.map +1 -1
  143. package/dist/src/icons.generated/Check.d.ts +0 -1
  144. package/dist/src/icons.generated/Check.d.ts.map +1 -1
  145. package/dist/src/icons.generated/CheckCircleFilled.d.ts +0 -1
  146. package/dist/src/icons.generated/CheckCircleFilled.d.ts.map +1 -1
  147. package/dist/src/icons.generated/ChevronDown.d.ts +0 -1
  148. package/dist/src/icons.generated/ChevronDown.d.ts.map +1 -1
  149. package/dist/src/icons.generated/ChevronLeft.d.ts +0 -1
  150. package/dist/src/icons.generated/ChevronLeft.d.ts.map +1 -1
  151. package/dist/src/icons.generated/ChevronRight.d.ts +0 -1
  152. package/dist/src/icons.generated/ChevronRight.d.ts.map +1 -1
  153. package/dist/src/icons.generated/ChevronUp.d.ts +0 -1
  154. package/dist/src/icons.generated/ChevronUp.d.ts.map +1 -1
  155. package/dist/src/icons.generated/Clock.d.ts +0 -1
  156. package/dist/src/icons.generated/Clock.d.ts.map +1 -1
  157. package/dist/src/icons.generated/Close.d.ts +0 -1
  158. package/dist/src/icons.generated/Close.d.ts.map +1 -1
  159. package/dist/src/icons.generated/CloseCircleFilled.d.ts +0 -1
  160. package/dist/src/icons.generated/CloseCircleFilled.d.ts.map +1 -1
  161. package/dist/src/icons.generated/CollapseLeft.d.ts +0 -1
  162. package/dist/src/icons.generated/CollapseLeft.d.ts.map +1 -1
  163. package/dist/src/icons.generated/CollapseRight.d.ts +0 -1
  164. package/dist/src/icons.generated/CollapseRight.d.ts.map +1 -1
  165. package/dist/src/icons.generated/Copy.d.ts +0 -1
  166. package/dist/src/icons.generated/Copy.d.ts.map +1 -1
  167. package/dist/src/icons.generated/Custom.d.ts +0 -1
  168. package/dist/src/icons.generated/Custom.d.ts.map +1 -1
  169. package/dist/src/icons.generated/DangerDiamond.d.ts +0 -1
  170. package/dist/src/icons.generated/DangerDiamond.d.ts.map +1 -1
  171. package/dist/src/icons.generated/DangerDiamondFilled.d.ts +0 -1
  172. package/dist/src/icons.generated/DangerDiamondFilled.d.ts.map +1 -1
  173. package/dist/src/icons.generated/Delete.d.ts +0 -1
  174. package/dist/src/icons.generated/Delete.d.ts.map +1 -1
  175. package/dist/src/icons.generated/Deny.d.ts +0 -1
  176. package/dist/src/icons.generated/Deny.d.ts.map +1 -1
  177. package/dist/src/icons.generated/Devices.d.ts +0 -1
  178. package/dist/src/icons.generated/Devices.d.ts.map +1 -1
  179. package/dist/src/icons.generated/Directory.d.ts +0 -1
  180. package/dist/src/icons.generated/Directory.d.ts.map +1 -1
  181. package/dist/src/icons.generated/Documentation.d.ts +0 -1
  182. package/dist/src/icons.generated/Documentation.d.ts.map +1 -1
  183. package/dist/src/icons.generated/Download.d.ts +0 -1
  184. package/dist/src/icons.generated/Download.d.ts.map +1 -1
  185. package/dist/src/icons.generated/DragIndicator.d.ts +0 -1
  186. package/dist/src/icons.generated/DragIndicator.d.ts.map +1 -1
  187. package/dist/src/icons.generated/Duo.d.ts +0 -1
  188. package/dist/src/icons.generated/Duo.d.ts.map +1 -1
  189. package/dist/src/icons.generated/Edit.d.ts +0 -1
  190. package/dist/src/icons.generated/Edit.d.ts.map +1 -1
  191. package/dist/src/icons.generated/Email.d.ts +0 -1
  192. package/dist/src/icons.generated/Email.d.ts.map +1 -1
  193. package/dist/src/icons.generated/ExpandLeft.d.ts +0 -1
  194. package/dist/src/icons.generated/ExpandLeft.d.ts.map +1 -1
  195. package/dist/src/icons.generated/ExpandRight.d.ts +0 -1
  196. package/dist/src/icons.generated/ExpandRight.d.ts.map +1 -1
  197. package/dist/src/icons.generated/ExternalLink.d.ts +0 -1
  198. package/dist/src/icons.generated/ExternalLink.d.ts.map +1 -1
  199. package/dist/src/icons.generated/Fido2.d.ts +0 -1
  200. package/dist/src/icons.generated/Fido2.d.ts.map +1 -1
  201. package/dist/src/icons.generated/Filter.d.ts +0 -1
  202. package/dist/src/icons.generated/Filter.d.ts.map +1 -1
  203. package/dist/src/icons.generated/Folder.d.ts +0 -1
  204. package/dist/src/icons.generated/Folder.d.ts.map +1 -1
  205. package/dist/src/icons.generated/Globe.d.ts +0 -1
  206. package/dist/src/icons.generated/Globe.d.ts.map +1 -1
  207. package/dist/src/icons.generated/GoogleAuth.d.ts +0 -1
  208. package/dist/src/icons.generated/GoogleAuth.d.ts.map +1 -1
  209. package/dist/src/icons.generated/Grid.d.ts +0 -1
  210. package/dist/src/icons.generated/Grid.d.ts.map +1 -1
  211. package/dist/src/icons.generated/Group.d.ts +0 -1
  212. package/dist/src/icons.generated/Group.d.ts.map +1 -1
  213. package/dist/src/icons.generated/Hide.d.ts +0 -1
  214. package/dist/src/icons.generated/Hide.d.ts.map +1 -1
  215. package/dist/src/icons.generated/Home.d.ts +0 -1
  216. package/dist/src/icons.generated/Home.d.ts.map +1 -1
  217. package/dist/src/icons.generated/Idp.d.ts +0 -1
  218. package/dist/src/icons.generated/Idp.d.ts.map +1 -1
  219. package/dist/src/icons.generated/InformationCircle.d.ts +0 -1
  220. package/dist/src/icons.generated/InformationCircle.d.ts.map +1 -1
  221. package/dist/src/icons.generated/InformationCircleFilled.d.ts +0 -1
  222. package/dist/src/icons.generated/InformationCircleFilled.d.ts.map +1 -1
  223. package/dist/src/icons.generated/Link.d.ts +0 -1
  224. package/dist/src/icons.generated/Link.d.ts.map +1 -1
  225. package/dist/src/icons.generated/List.d.ts +0 -1
  226. package/dist/src/icons.generated/List.d.ts.map +1 -1
  227. package/dist/src/icons.generated/Lock.d.ts +0 -1
  228. package/dist/src/icons.generated/Lock.d.ts.map +1 -1
  229. package/dist/src/icons.generated/More.d.ts +0 -1
  230. package/dist/src/icons.generated/More.d.ts.map +1 -1
  231. package/dist/src/icons.generated/Notification.d.ts +0 -1
  232. package/dist/src/icons.generated/Notification.d.ts.map +1 -1
  233. package/dist/src/icons.generated/OktaVerify.d.ts +0 -1
  234. package/dist/src/icons.generated/OktaVerify.d.ts.map +1 -1
  235. package/dist/src/icons.generated/OnPremMfa.d.ts +0 -1
  236. package/dist/src/icons.generated/OnPremMfa.d.ts.map +1 -1
  237. package/dist/src/icons.generated/OneTimePassword.d.ts +0 -1
  238. package/dist/src/icons.generated/OneTimePassword.d.ts.map +1 -1
  239. package/dist/src/icons.generated/Password.d.ts +0 -1
  240. package/dist/src/icons.generated/Password.d.ts.map +1 -1
  241. package/dist/src/icons.generated/Pause.d.ts +0 -1
  242. package/dist/src/icons.generated/Pause.d.ts.map +1 -1
  243. package/dist/src/icons.generated/QuestionCircle.d.ts +0 -1
  244. package/dist/src/icons.generated/QuestionCircle.d.ts.map +1 -1
  245. package/dist/src/icons.generated/QuestionCircleFilled.d.ts +0 -1
  246. package/dist/src/icons.generated/QuestionCircleFilled.d.ts.map +1 -1
  247. package/dist/src/icons.generated/Refresh.d.ts +0 -1
  248. package/dist/src/icons.generated/Refresh.d.ts.map +1 -1
  249. package/dist/src/icons.generated/Reset.d.ts +0 -1
  250. package/dist/src/icons.generated/Reset.d.ts.map +1 -1
  251. package/dist/src/icons.generated/Resume.d.ts +0 -1
  252. package/dist/src/icons.generated/Resume.d.ts.map +1 -1
  253. package/dist/src/icons.generated/Search.d.ts +0 -1
  254. package/dist/src/icons.generated/Search.d.ts.map +1 -1
  255. package/dist/src/icons.generated/SecurityQuestion.d.ts +0 -1
  256. package/dist/src/icons.generated/SecurityQuestion.d.ts.map +1 -1
  257. package/dist/src/icons.generated/Server.d.ts +0 -1
  258. package/dist/src/icons.generated/Server.d.ts.map +1 -1
  259. package/dist/src/icons.generated/Settings.d.ts +0 -1
  260. package/dist/src/icons.generated/Settings.d.ts.map +1 -1
  261. package/dist/src/icons.generated/Show.d.ts +0 -1
  262. package/dist/src/icons.generated/Show.d.ts.map +1 -1
  263. package/dist/src/icons.generated/SmartCard.d.ts +0 -1
  264. package/dist/src/icons.generated/SmartCard.d.ts.map +1 -1
  265. package/dist/src/icons.generated/Sms.d.ts +0 -1
  266. package/dist/src/icons.generated/Sms.d.ts.map +1 -1
  267. package/dist/src/icons.generated/Subtract.d.ts +0 -1
  268. package/dist/src/icons.generated/Subtract.d.ts.map +1 -1
  269. package/dist/src/icons.generated/SymantecVip.d.ts +0 -1
  270. package/dist/src/icons.generated/SymantecVip.d.ts.map +1 -1
  271. package/dist/src/icons.generated/Sync.d.ts +0 -1
  272. package/dist/src/icons.generated/Sync.d.ts.map +1 -1
  273. package/dist/src/icons.generated/ThumbsDown.d.ts +0 -1
  274. package/dist/src/icons.generated/ThumbsDown.d.ts.map +1 -1
  275. package/dist/src/icons.generated/ThumbsUp.d.ts +0 -1
  276. package/dist/src/icons.generated/ThumbsUp.d.ts.map +1 -1
  277. package/dist/src/icons.generated/Unlock.d.ts +0 -1
  278. package/dist/src/icons.generated/Unlock.d.ts.map +1 -1
  279. package/dist/src/icons.generated/Upload.d.ts +0 -1
  280. package/dist/src/icons.generated/Upload.d.ts.map +1 -1
  281. package/dist/src/icons.generated/User.d.ts +0 -1
  282. package/dist/src/icons.generated/User.d.ts.map +1 -1
  283. package/dist/src/icons.generated/Video.d.ts +0 -1
  284. package/dist/src/icons.generated/Video.d.ts.map +1 -1
  285. package/dist/src/icons.generated/VoiceCall.d.ts +0 -1
  286. package/dist/src/icons.generated/VoiceCall.d.ts.map +1 -1
  287. package/dist/src/icons.generated/Warning.d.ts +0 -1
  288. package/dist/src/icons.generated/Warning.d.ts.map +1 -1
  289. package/dist/src/icons.generated/WarningFilled.d.ts +0 -1
  290. package/dist/src/icons.generated/WarningFilled.d.ts.map +1 -1
  291. package/dist/src/icons.generated/Yubikey.d.ts +0 -1
  292. package/dist/src/icons.generated/Yubikey.d.ts.map +1 -1
  293. package/dist/src/inputUtils.d.ts.map +1 -1
  294. package/dist/src/labs/DataComponents/DataStack.d.ts +1 -2
  295. package/dist/src/labs/DataComponents/DataStack.d.ts.map +1 -1
  296. package/dist/src/labs/DataComponents/DataTable.d.ts +1 -2
  297. package/dist/src/labs/DataComponents/DataTable.d.ts.map +1 -1
  298. package/dist/src/labs/DataComponents/DataView.d.ts +1 -2
  299. package/dist/src/labs/DataComponents/DataView.d.ts.map +1 -1
  300. package/dist/src/labs/DataComponents/DetailPanel.d.ts +0 -1
  301. package/dist/src/labs/DataComponents/DetailPanel.d.ts.map +1 -1
  302. package/dist/src/labs/DataComponents/TableContent.d.ts.map +1 -1
  303. package/dist/src/labs/DataComponents/TableSettings.d.ts.map +1 -1
  304. package/dist/src/labs/DataComponents/componentTypes.d.ts +5 -2
  305. package/dist/src/labs/DataComponents/componentTypes.d.ts.map +1 -1
  306. package/dist/src/labs/DataComponents/constants.d.ts +6 -4
  307. package/dist/src/labs/DataComponents/constants.d.ts.map +1 -1
  308. package/dist/src/labs/DataComponents/tableConstants.d.ts +6 -25
  309. package/dist/src/labs/DataComponents/tableConstants.d.ts.map +1 -1
  310. package/dist/src/labs/DataComponents/useFilterConversion.d.ts.map +1 -1
  311. package/dist/src/labs/DataTablePagination.d.ts +0 -1
  312. package/dist/src/labs/DataTablePagination.d.ts.map +1 -1
  313. package/dist/src/labs/DateField.d.ts +3 -6
  314. package/dist/src/labs/DateField.d.ts.map +1 -1
  315. package/dist/src/labs/DatePicker.d.ts +20 -19
  316. package/dist/src/labs/DatePicker.d.ts.map +1 -1
  317. package/dist/src/labs/FileUpload.d.ts +0 -1
  318. package/dist/src/labs/FileUpload.d.ts.map +1 -1
  319. package/dist/src/labs/FileUploadIllustration.d.ts +0 -1
  320. package/dist/src/labs/FileUploadIllustration.d.ts.map +1 -1
  321. package/dist/src/labs/FileUploadPreview.d.ts +0 -1
  322. package/dist/src/labs/FileUploadPreview.d.ts.map +1 -1
  323. package/dist/src/labs/GroupPicker.d.ts +2 -1
  324. package/dist/src/labs/GroupPicker.d.ts.map +1 -1
  325. package/dist/src/labs/PaginatedTable.d.ts +2 -1
  326. package/dist/src/labs/PaginatedTable.d.ts.map +1 -1
  327. package/dist/src/labs/StaticTable.d.ts +2 -1
  328. package/dist/src/labs/StaticTable.d.ts.map +1 -1
  329. package/dist/src/labs/Switch.d.ts +0 -1
  330. package/dist/src/labs/Switch.d.ts.map +1 -1
  331. package/dist/src/labs/TimeZonePicker.d.ts +22 -0
  332. package/dist/src/labs/TimeZonePicker.d.ts.map +1 -0
  333. package/dist/src/labs/TopNav.d.ts +77 -0
  334. package/dist/src/labs/TopNav.d.ts.map +1 -0
  335. package/dist/src/labs/datePickerTheme.d.ts.map +1 -1
  336. package/dist/src/labs/index.d.ts +1 -0
  337. package/dist/src/labs/index.d.ts.map +1 -1
  338. package/dist/src/labs/{useDatePickerTranslations.d.ts → useDateFieldsTranslations.d.ts} +3 -2
  339. package/dist/src/labs/useDateFieldsTranslations.d.ts.map +1 -0
  340. package/dist/src/labs/useOdysseyDateFields.d.ts +82 -0
  341. package/dist/src/labs/useOdysseyDateFields.d.ts.map +1 -0
  342. package/dist/src/properties/ts/odyssey-react-mui.d.ts +3 -0
  343. package/dist/src/properties/ts/odyssey-react-mui.d.ts.map +1 -1
  344. package/dist/src/properties/ts/odyssey-react-mui_ok_PL.d.ts +2 -0
  345. package/dist/src/properties/ts/odyssey-react-mui_ok_PL.d.ts.map +1 -1
  346. package/dist/src/properties/ts/odyssey-react-mui_ok_SK.d.ts +2 -0
  347. package/dist/src/properties/ts/odyssey-react-mui_ok_SK.d.ts.map +1 -1
  348. package/dist/src/test-selectors/querySelector.d.ts +2 -2
  349. package/dist/src/test-selectors/querySelector.d.ts.map +1 -1
  350. package/dist/src/theme/components.d.ts.map +1 -1
  351. package/dist/theme/components.js +44 -9
  352. package/dist/theme/components.js.map +1 -1
  353. package/dist/tsconfig.production.tsbuildinfo +1 -1
  354. package/dist/tsconfig.tsbuildinfo +1 -1
  355. package/package.json +3 -3
  356. package/src/DataTable/DataTable.tsx +118 -64
  357. package/src/Pagination/Pagination.tsx +82 -46
  358. package/src/Pagination/usePagination.ts +14 -18
  359. package/src/labs/DataComponents/DataStack.tsx +6 -0
  360. package/src/labs/DataComponents/DataTable.tsx +6 -0
  361. package/src/labs/DataComponents/DataView.tsx +16 -0
  362. package/src/labs/DataComponents/TableContent.tsx +66 -9
  363. package/src/labs/DataComponents/TableSettings.tsx +60 -60
  364. package/src/labs/DataComponents/componentTypes.ts +5 -6
  365. package/src/labs/DataComponents/constants.tsx +12 -4
  366. package/src/labs/DataComponents/tableConstants.tsx +0 -19
  367. package/src/labs/DataComponents/useFilterConversion.ts +14 -18
  368. package/src/labs/DateField.tsx +175 -26
  369. package/src/labs/DatePicker.tsx +155 -93
  370. package/src/labs/TimeZonePicker.tsx +55 -0
  371. package/src/labs/TopNav.tsx +394 -0
  372. package/src/labs/datePickerTheme.tsx +6 -4
  373. package/src/labs/index.ts +1 -0
  374. package/src/labs/{useDatePickerTranslations.ts → useDateFieldsTranslations.ts} +3 -1
  375. package/src/labs/useOdysseyDateFields.ts +201 -0
  376. package/src/properties/odyssey-react-mui.properties +3 -0
  377. package/src/properties/translations/odyssey-react-mui_ok_PL.properties +3 -1
  378. package/src/properties/translations/odyssey-react-mui_ok_SK.properties +2 -0
  379. package/src/properties/ts/odyssey-react-mui.ts +1 -1
  380. package/src/properties/ts/odyssey-react-mui_ok_PL.ts +1 -1
  381. package/src/properties/ts/odyssey-react-mui_ok_SK.ts +1 -1
  382. package/src/theme/components.tsx +50 -7
  383. package/dist/src/labs/useDatePickerTranslations.d.ts.map +0 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,82 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.21.1](https://github.com/okta/odyssey/compare/v1.15.9...v1.21.1) (2024-08-07)
7
+
8
+ ### Features
9
+
10
+ - add backwards compatible empty state export ([#2266](https://github.com/okta/odyssey/issues/2266)) ([0fe3203](https://github.com/okta/odyssey/commit/0fe3203629dc85f7c91c58e3ff078c9a89360407))
11
+ - add initial search prop to DataTable ([#2265](https://github.com/okta/odyssey/issues/2265)) ([5829534](https://github.com/okta/odyssey/commit/582953472b9a4e9946a57c852b78cd890a6ab674))
12
+ - adds a generic top nav component ([#2296](https://github.com/okta/odyssey/issues/2296)) ([6f3165f](https://github.com/okta/odyssey/commit/6f3165f9fd4a1d1743c975b72132d4ec186d09bb))
13
+ - adds new side navigation component for unified nav design ([#2269](https://github.com/okta/odyssey/issues/2269)) ([e54a470](https://github.com/okta/odyssey/commit/e54a470aaa71eec4fd85f19ac8519425f1d64e8f))
14
+ - EmptyState component ([#2175](https://github.com/okta/odyssey/issues/2175)) ([8c86845](https://github.com/okta/odyssey/commit/8c868450b6e1b8c63775afe1f38219507e9bacc7))
15
+ - move Pagination to its own component ([#2166](https://github.com/okta/odyssey/issues/2166)) ([61eda40](https://github.com/okta/odyssey/commit/61eda40aaf1a5dc5477799694594ea5625715fe0))
16
+ - Test Selectors ([#2209](https://github.com/okta/odyssey/issues/2209)) ([dfa8451](https://github.com/okta/odyssey/commit/dfa8451d0cb6ed63cbd3ac1ce740203b638348f7))
17
+
18
+ ### Bug Fixes
19
+
20
+ - add changes back, remove required label ([cccce45](https://github.com/okta/odyssey/commit/cccce454c33588369786b2dc8cc6e39bbace4678))
21
+ - add comment ([9af7d11](https://github.com/okta/odyssey/commit/9af7d11f2964fa1b17be673c4e84a0bbb1a47ab9))
22
+ - add floating action button variant ([a32110d](https://github.com/okta/odyssey/commit/a32110d5aa71efd7fcbf3f1606eae613a639c721))
23
+ - add hint text to Radio and RadioGroup ([6518de5](https://github.com/okta/odyssey/commit/6518de5b38e54ec6aa3146a310c7c02a3b7d8a4e))
24
+ - add optional href prop to button ([f46123b](https://github.com/okta/odyssey/commit/f46123b538947aa0040b29832dafaf6df9da332e))
25
+ - add secondary danger button variant ([170e6e0](https://github.com/okta/odyssey/commit/170e6e03476d3a7fdef9bdca9f94a8d7e0d6f00a))
26
+ - add translation keys for Autocomplete ([#2308](https://github.com/okta/odyssey/issues/2308)) ([9617768](https://github.com/okta/odyssey/commit/961776881b3e07667cb09c6ffb51c57ffa0c1ca7))
27
+ - alphabetize props ([988bd74](https://github.com/okta/odyssey/commit/988bd74e98794f2f48589e6be3e37f608f87a07a))
28
+ - alphabetize props in imports ([ca56f0a](https://github.com/okta/odyssey/commit/ca56f0a3ad5b3a4902bf38111bc6c229ad1533f6))
29
+ - bump version to 1.17 ([0e32aba](https://github.com/okta/odyssey/commit/0e32aba973ef00d5a872dbd408a84fb54c8a7408))
30
+ - make return implicit in label ([e2a26df](https://github.com/okta/odyssey/commit/e2a26df5082bfb5e7573c83a9ab53b364941713b))
31
+ - move Drawer from labs to Odyssey OKTA-700393 ([247b30a](https://github.com/okta/odyssey/commit/247b30af6e598119b78d97c971f490c48cd1dfca))
32
+ - prevent mixing old and new button props ([7aed65b](https://github.com/okta/odyssey/commit/7aed65be175c12525c9aee5fca18af0251dd2fec))
33
+ - re-add support for "callToAction" button usage ([0eb6ec7](https://github.com/okta/odyssey/commit/0eb6ec704ba6a0a9da12dcd6d864a6d1d1421915))
34
+ - remove invalid pseudo element from theme overrides ([#2310](https://github.com/okta/odyssey/issues/2310)) ([fea0793](https://github.com/okta/odyssey/commit/fea0793acf0800494270a87e4e5d65129942b99e))
35
+ - rename new variant ([28466a4](https://github.com/okta/odyssey/commit/28466a46c8a254f543f595d2abf26115eff7b66b))
36
+ - resolve eslint error ([6be8bd0](https://github.com/okta/odyssey/commit/6be8bd0ca6f333949d80cbe59e28fac48528388b))
37
+ - revert type change ([9d9e16b](https://github.com/okta/odyssey/commit/9d9e16b83cc3047b7dd6c5eb7e8027b2dd0898cb))
38
+
39
+ ## [1.21.0](https://github.com/okta/odyssey/compare/v1.15.9...v1.21.0) (2024-08-07)
40
+
41
+ ### Features
42
+
43
+ - add backwards compatible empty state export ([#2266](https://github.com/okta/odyssey/issues/2266)) ([0fe3203](https://github.com/okta/odyssey/commit/0fe3203629dc85f7c91c58e3ff078c9a89360407))
44
+ - add initial search prop to DataTable ([#2265](https://github.com/okta/odyssey/issues/2265)) ([5829534](https://github.com/okta/odyssey/commit/582953472b9a4e9946a57c852b78cd890a6ab674))
45
+ - adds a generic top nav component ([#2296](https://github.com/okta/odyssey/issues/2296)) ([6f3165f](https://github.com/okta/odyssey/commit/6f3165f9fd4a1d1743c975b72132d4ec186d09bb))
46
+ - adds new side navigation component for unified nav design ([#2269](https://github.com/okta/odyssey/issues/2269)) ([e54a470](https://github.com/okta/odyssey/commit/e54a470aaa71eec4fd85f19ac8519425f1d64e8f))
47
+ - EmptyState component ([#2175](https://github.com/okta/odyssey/issues/2175)) ([8c86845](https://github.com/okta/odyssey/commit/8c868450b6e1b8c63775afe1f38219507e9bacc7))
48
+ - move Pagination to its own component ([#2166](https://github.com/okta/odyssey/issues/2166)) ([61eda40](https://github.com/okta/odyssey/commit/61eda40aaf1a5dc5477799694594ea5625715fe0))
49
+ - Test Selectors ([#2209](https://github.com/okta/odyssey/issues/2209)) ([dfa8451](https://github.com/okta/odyssey/commit/dfa8451d0cb6ed63cbd3ac1ce740203b638348f7))
50
+
51
+ ### Bug Fixes
52
+
53
+ - add changes back, remove required label ([cccce45](https://github.com/okta/odyssey/commit/cccce454c33588369786b2dc8cc6e39bbace4678))
54
+ - add comment ([9af7d11](https://github.com/okta/odyssey/commit/9af7d11f2964fa1b17be673c4e84a0bbb1a47ab9))
55
+ - add floating action button variant ([a32110d](https://github.com/okta/odyssey/commit/a32110d5aa71efd7fcbf3f1606eae613a639c721))
56
+ - add hint text to Radio and RadioGroup ([6518de5](https://github.com/okta/odyssey/commit/6518de5b38e54ec6aa3146a310c7c02a3b7d8a4e))
57
+ - add optional href prop to button ([f46123b](https://github.com/okta/odyssey/commit/f46123b538947aa0040b29832dafaf6df9da332e))
58
+ - add secondary danger button variant ([170e6e0](https://github.com/okta/odyssey/commit/170e6e03476d3a7fdef9bdca9f94a8d7e0d6f00a))
59
+ - alphabetize props ([988bd74](https://github.com/okta/odyssey/commit/988bd74e98794f2f48589e6be3e37f608f87a07a))
60
+ - alphabetize props in imports ([ca56f0a](https://github.com/okta/odyssey/commit/ca56f0a3ad5b3a4902bf38111bc6c229ad1533f6))
61
+ - bump version to 1.17 ([0e32aba](https://github.com/okta/odyssey/commit/0e32aba973ef00d5a872dbd408a84fb54c8a7408))
62
+ - make return implicit in label ([e2a26df](https://github.com/okta/odyssey/commit/e2a26df5082bfb5e7573c83a9ab53b364941713b))
63
+ - move Drawer from labs to Odyssey OKTA-700393 ([247b30a](https://github.com/okta/odyssey/commit/247b30af6e598119b78d97c971f490c48cd1dfca))
64
+ - prevent mixing old and new button props ([7aed65b](https://github.com/okta/odyssey/commit/7aed65be175c12525c9aee5fca18af0251dd2fec))
65
+ - re-add support for "callToAction" button usage ([0eb6ec7](https://github.com/okta/odyssey/commit/0eb6ec704ba6a0a9da12dcd6d864a6d1d1421915))
66
+ - remove invalid pseudo element from theme overrides ([#2310](https://github.com/okta/odyssey/issues/2310)) ([fea0793](https://github.com/okta/odyssey/commit/fea0793acf0800494270a87e4e5d65129942b99e))
67
+ - rename new variant ([28466a4](https://github.com/okta/odyssey/commit/28466a46c8a254f543f595d2abf26115eff7b66b))
68
+ - resolve eslint error ([6be8bd0](https://github.com/okta/odyssey/commit/6be8bd0ca6f333949d80cbe59e28fac48528388b))
69
+ - revert type change ([9d9e16b](https://github.com/okta/odyssey/commit/9d9e16b83cc3047b7dd6c5eb7e8027b2dd0898cb))
70
+
71
+ ## [1.20.0](https://github.com/okta/odyssey/compare/v1.19.0...v1.20.0) (2024-07-25)
72
+
73
+ ### Features
74
+
75
+ - pageTemplate and Layout component ([#2219](https://github.com/okta/odyssey/issues/2219)) ([a04eb1d](https://github.com/okta/odyssey/commit/a04eb1df24702ef23b436d0df58e0571974b0454))
76
+
77
+ ### Bug Fixes
78
+
79
+ - data Table legacy improvements ([#2294](https://github.com/okta/odyssey/issues/2294)) ([3146cd1](https://github.com/okta/odyssey/commit/3146cd1edeb145aa727682659eaba422533ba0f1))
80
+ - english leak for "Close" in Autocomplete ([#2291](https://github.com/okta/odyssey/issues/2291)) ([0959c71](https://github.com/okta/odyssey/commit/0959c71f7c2dc6ddc1cde3281534f19222f4df6d))
81
+
6
82
  ## [1.19.0](https://github.com/okta/odyssey/compare/v1.18.0...v1.19.0) (2024-07-15)
7
83
 
8
84
  ### Features
@@ -26,69 +26,11 @@ import { useOdysseyDesignTokens } from "../OdysseyDesignTokensContext.js";
26
26
  import { useScrollIndication } from "./useScrollIndication.js";
27
27
  import styled from "@emotion/styled";
28
28
  import { EmptyState } from "../EmptyState.js";
29
+ import { Button } from "../Button.js";
29
30
  import { Callout } from "../Callout.js";
30
31
  import { jsx as _jsx } from "react/jsx-runtime";
31
- import { Fragment as _Fragment } from "react/jsx-runtime";
32
32
  import { jsxs as _jsxs } from "react/jsx-runtime";
33
- const displayColumnDefOptions = {
34
- "mrt-row-actions": {
35
- header: "",
36
- grow: true,
37
- muiTableBodyCellProps: {
38
- align: "right",
39
- sx: {
40
- overflow: "visible",
41
- width: "unset"
42
- },
43
- className: "ods-actions-cell"
44
- },
45
- muiTableHeadCellProps: {
46
- align: "right",
47
- sx: {
48
- width: "unset"
49
- },
50
- className: "ods-actions-cell"
51
- }
52
- },
53
- "mrt-row-drag": {
54
- header: "",
55
- muiTableBodyCellProps: {
56
- sx: {
57
- minWidth: 0,
58
- width: "auto"
59
- },
60
- className: "ods-drag-handle"
61
- },
62
- muiTableHeadCellProps: {
63
- sx: {
64
- minWidth: 0,
65
- width: "auto"
66
- },
67
- children: _jsx(Box, {
68
- sx: {
69
- marginInline: "-0.1rem"
70
- },
71
- children: _jsx(DragIndicatorIcon, {
72
- sx: {
73
- marginInline: 1,
74
- opacity: 0
75
- }
76
- })
77
- })
78
- }
79
- },
80
- "mrt-row-select": {
81
- muiTableHeadCellProps: {
82
- padding: "checkbox"
83
- },
84
- muiTableBodyCellProps: {
85
- padding: "checkbox"
86
- }
87
- },
88
- "mrt-row-expand": {
89
- header: ""
90
- }
91
- };
33
+ import { Fragment as _Fragment } from "react/jsx-runtime";
92
34
  const ScrollableTableContainer = styled("div", {
93
35
  shouldForwardProp: prop => prop !== "odysseyDesignTokens" && prop !== "isScrollableStart" && prop !== "isScrollableEnd"
94
36
  })(({
@@ -151,12 +93,15 @@ const DataTable = ({
151
93
  hasSorting,
152
94
  initialDensity = densityValues[0],
153
95
  initialSearchValue = "",
96
+ isPaginationMoreDisabled,
154
97
  noResultsPlaceholder,
155
98
  onChangeRowSelection,
156
99
  onReorderRows,
157
100
  paginationType = "paged",
158
101
  renderDetailPanel,
159
102
  resultsPerPage = 20,
103
+ maxResultsPerPage,
104
+ maxPages,
160
105
  rowActionButtons,
161
106
  rowActionMenuItems,
162
107
  searchDelayTime,
@@ -297,6 +242,7 @@ const DataTable = ({
297
242
  return columns.map(column => column.accessorKey);
298
243
  }, [columns]);
299
244
  const columnOrder = useMemo(() => ["mrt-row-drag", "mrt-row-select", "mrt-row-expand", ...columnIds, "mrt-row-actions"], [columnIds]);
245
+ const shouldDisplayRowActions = useMemo(() => hasRowReordering === true && onReorderRows || rowActionButtons || rowActionMenuItems ? true : false, [hasRowReordering, onReorderRows, rowActionButtons, rowActionMenuItems]);
300
246
  const dataTable = useMaterialReactTable({
301
247
  columns: columns,
302
248
  data: data,
@@ -333,13 +279,93 @@ const DataTable = ({
333
279
  }
334
280
  },
335
281
  selectAllMode: "all",
336
- displayColumnDefOptions: displayColumnDefOptions,
282
+ displayColumnDefOptions: {
283
+ "mrt-row-actions": {
284
+ header: "",
285
+ grow: true,
286
+ muiTableBodyCellProps: {
287
+ align: "right",
288
+ sx: {
289
+ overflow: "visible",
290
+ width: "unset"
291
+ },
292
+ className: "ods-actions-cell"
293
+ },
294
+ muiTableHeadCellProps: {
295
+ align: "right",
296
+ sx: {
297
+ width: "unset"
298
+ },
299
+ className: "ods-actions-cell",
300
+ children: _jsxs(Box, {
301
+ sx: {
302
+ display: "flex",
303
+ visibility: "hidden"
304
+ },
305
+ children: [rowActionButtons && rowActionButtons({
306
+ id: null
307
+ }), (hasRowReordering && onReorderRows || rowActionMenuItems) && _jsx(Box, {
308
+ children: _jsx(Button, {
309
+ endIcon: _jsx(MoreIcon, {}),
310
+ size: "small",
311
+ variant: "floating",
312
+ ariaLabel: t("table.moreactions.arialabel"),
313
+ isDisabled: true
314
+ })
315
+ })]
316
+ })
317
+ }
318
+ },
319
+ "mrt-row-drag": {
320
+ header: "",
321
+ muiTableBodyCellProps: {
322
+ sx: {
323
+ minWidth: 0,
324
+ width: "auto"
325
+ },
326
+ className: "ods-drag-handle"
327
+ },
328
+ muiTableHeadCellProps: {
329
+ sx: {
330
+ minWidth: 0,
331
+ width: "auto"
332
+ },
333
+ children: _jsx(Box, {
334
+ sx: {
335
+ marginInline: "-0.1rem"
336
+ },
337
+ children: _jsx(DragIndicatorIcon, {
338
+ sx: {
339
+ marginInline: 1,
340
+ opacity: 0
341
+ }
342
+ })
343
+ })
344
+ }
345
+ },
346
+ "mrt-row-select": {
347
+ muiTableHeadCellProps: {
348
+ padding: "checkbox"
349
+ },
350
+ muiTableBodyCellProps: {
351
+ padding: "checkbox"
352
+ }
353
+ },
354
+ "mrt-row-expand": {
355
+ header: ""
356
+ }
357
+ },
337
358
  muiTableBodyProps: () => ({
338
359
  className: rowDensityClassName
339
360
  }),
340
361
  defaultColumn: {
341
362
  Cell: defaultCell
342
363
  },
364
+ muiTableBodyCellProps: ({
365
+ column
366
+ }) => ({
367
+ className: column.getIsResizing() ? "isResizing" : ""
368
+ }),
343
369
  enableRowOrdering: hasRowReordering && Boolean(onReorderRows),
344
370
  enableRowDragging: hasRowReordering && Boolean(onReorderRows),
345
371
  muiTableBodyRowProps: ({
@@ -367,7 +393,7 @@ const DataTable = ({
367
393
  sx: dragHandleStyles,
368
394
  ...dragHandleText
369
395
  }),
370
- enableRowActions: hasRowReordering === true && onReorderRows || rowActionButtons || rowActionMenuItems ? true : false,
396
+ enableRowActions: shouldDisplayRowActions,
371
397
  positionActionsColumn: "last",
372
398
  renderRowActions: ({
373
399
  row
@@ -390,7 +416,8 @@ const DataTable = ({
390
416
  },
391
417
  renderEmptyRowsFallback: emptyState,
392
418
  muiTableProps: {
393
- ref: tableContentRef
419
+ ref: tableContentRef,
420
+ className: !shouldDisplayRowActions && hasColumnResizing ? "ods-hide-spacer-column" : ""
394
421
  },
395
422
  muiTableContainerProps: {
396
423
  ref: tableInnerContainerRef
@@ -433,12 +460,19 @@ const DataTable = ({
433
460
  }
434
461
  setIsEmpty(pagination.pageIndex === currentPage && pagination.pageSize === resultsPerPage && search === "" && filters === initialFilters && data.length === 0);
435
462
  }, [filters, pagination, search, data, currentPage, initialFilters, resultsPerPage]);
463
+ useEffect(() => {
464
+ setPagination(prev => ({
465
+ pageIndex: 1,
466
+ pageSize: prev.pageSize
467
+ }));
468
+ }, [filters, search]);
436
469
  useEffect(() => {
437
470
  onChangeRowSelection?.(rowSelection);
438
471
  }, [rowSelection, onChangeRowSelection]);
439
472
  const {
440
473
  lastRow
441
474
  } = usePagination({
475
+ currentRowsCount: data.length,
442
476
  pageIndex: pagination.pageIndex,
443
477
  pageSize: pagination.pageSize,
444
478
  totalRows
@@ -487,10 +521,14 @@ const DataTable = ({
487
521
  }), hasPagination && _jsx(Pagination, {
488
522
  pageIndex: pagination.pageIndex,
489
523
  pageSize: pagination.pageSize,
524
+ maxPageIndex: maxPages,
525
+ maxPageSize: maxResultsPerPage,
490
526
  onPaginationChange: setPagination,
491
527
  lastRow: lastRow,
492
528
  totalRows: totalRows,
529
+ currentRowsCount: data.length,
493
530
  isDisabled: isEmpty,
531
+ isMoreDisabled: isPaginationMoreDisabled,
494
532
  variant: paginationType,
495
533
  rowsPerPageLabel: t("pagination.rowsperpage"),
496
534
  currentPageLabel: t("pagination.page"),
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.js","names":["memo","useCallback","useEffect","useMemo","useRef","useState","useMaterialReactTable","MRT_TableContainer","useTranslation","ArrowDownIcon","ArrowUnsortedIcon","ChevronDownIcon","DragIndicatorIcon","MoreIcon","densityValues","Pagination","usePagination","DataFilters","DataTableRowActions","useRowReordering","DataTableSettings","MenuButton","Box","useOdysseyDesignTokens","useScrollIndication","styled","EmptyState","Callout","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","displayColumnDefOptions","header","grow","muiTableBodyCellProps","align","sx","overflow","width","className","muiTableHeadCellProps","minWidth","children","marginInline","opacity","padding","ScrollableTableContainer","shouldForwardProp","prop","odysseyDesignTokens","isScrollableStart","isScrollableEnd","marginBlockEnd","Spacing4","position","borderInlineStartColor","HueNeutral200","borderInlineStartStyle","borderInlineStartWidth","BorderWidthMain","background","content","pointerEvents","top","left","bottom","Spacing6","zIndex","transition","TransitionDurationMain","TransitionTimingMain","borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth","right","DataTable","bulkActionMenuItems","columns","currentPage","emptyPlaceholder","errorMessage","errorMessageProp","filters","filtersProp","getData","getRowId","getRowIdProp","hasChangeableDensity","hasColumnResizing","hasColumnVisibility","hasFilters","hasPagination","hasRowReordering","hasRowSelection","hasSearch","hasSearchSubmitButton","hasSorting","initialDensity","initialSearchValue","noResultsPlaceholder","onChangeRowSelection","onReorderRows","paginationType","renderDetailPanel","resultsPerPage","rowActionButtons","rowActionMenuItems","searchDelayTime","totalRows","t","data","setData","pagination","setPagination","pageIndex","pageSize","draggingRow","setDraggingRow","isTableContainerScrolledToStart","setIsTableContainerScrolledToStart","isTableContainerScrolledToEnd","setIsTableContainerScrolledToEnd","tableInnerContainerWidth","setTableInnerContainerWidth","tableOuterContainerRef","tableInnerContainerRef","tableContentRef","columnSorting","setColumnSorting","columnVisibility","setColumnVisibility","rowDensity","setRowDensity","rowSelection","setRowSelection","search","setSearch","setFilters","initialFilters","setInitialFilters","isLoading","setIsLoading","isEmpty","setIsEmpty","setErrorMessage","tableOuterContainer","current","tableInnerContainer","dragHandleStyles","dragHandleText","draggableTableBodyRowClassName","handleDragHandleKeyDown","handleDragHandleOnDragCapture","handleDragHandleOnDragEnd","resetDraggingAndHoveredRow","updateRowOrder","page","row","id","rowDensityClassName","renderRowActions","currentIndex","index","rowIndex","undefined","convertFilterSelectOptions","options","map","option","label","value","convertColumnToFilter","column","enableColumnFilter","accessorKey","variant","filterVariant","filterSelectOptions","dataTableFilters","providedFilters","reduce","accumulator","item","foundColumn","find","filter","concat","defaultCell","cell","getValue","hasTextWrapping","columnDef","enableWrapping","whiteSpace","textOverflow","emptyState","noResultsInnerContent","heading","description","emptyStateInnerContent","columnIds","columnOrder","dataTable","state","sorting","globalFilter","icons","ArrowDownwardIcon","DragHandleIcon","SyncAltIcon","ExpandMoreIcon","enableColumnActions","enableColumnResizing","enableDensityToggle","enableFilters","enableFullScreenToggle","enableGlobalFilter","enableHiding","enablePagination","layoutMode","manualFiltering","manualSorting","muiTablePaperProps","elevation","selectAllMode","muiTableBodyProps","defaultColumn","Cell","enableRowOrdering","Boolean","enableRowDragging","muiTableBodyRowProps","table","currentRowId","draggingRowId","hoveredRowId","getState","hoveredRow","muiRowDragHandleProps","onKeyDown","event","onBlur","onDragEnd","onDragCapture","enableRowActions","positionActionsColumn","enableRowSelection","onRowSelectionChange","enableSorting","onSortingChange","currentColumn","sortedColumn","enableRowVirtualization","rowVirtualizerInstanceRef","rowVirtualizerOptions","overscan","renderEmptyRowsFallback","muiTableProps","ref","muiTableContainerProps","enableExpandAll","bulkActionMenuButton","buttonVariant","endIcon","isDisabled","Object","keys","length","ariaLabel","incomingData","sort","error","lastRow","marginBottom","onChangeSearch","onChangeFilters","defaultSearchTerm","additionalActions","severity","text","onPaginationChange","rowsPerPageLabel","currentPageLabel","previousLabel","nextLabel","loadMoreLabel","MemoizedDataTable","displayName"],"sources":["../../src/DataTable/DataTable.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n ReactNode,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n MRT_Cell,\n MRT_DensityState,\n MRT_Row,\n MRT_SortingState,\n MRT_TableOptions,\n MRT_RowSelectionState,\n MRT_RowVirtualizer,\n MRT_VisibilityState,\n useMaterialReactTable,\n MRT_TableContainer,\n MRT_Column,\n MRT_ColumnDef,\n MRT_TableInstance,\n} from \"material-react-table\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n ArrowDownIcon,\n ArrowUnsortedIcon,\n ChevronDownIcon,\n DragIndicatorIcon,\n MoreIcon,\n} from \"../icons.generated\";\nimport { densityValues } from \"./constants\";\nimport { Pagination, paginationTypeValues, usePagination } from \"../Pagination\";\nimport { DataFilter, DataFilters } from \"../labs/DataFilters\";\nimport {\n DataTableRowActions,\n DataTableRowActionsProps,\n} from \"./DataTableRowActions\";\nimport { useRowReordering } from \"./useRowReordering\";\nimport { DataTableSettings } from \"./DataTableSettings\";\nimport { MenuButton, MenuButtonProps } from \"../MenuButton\";\nimport { Box } from \"../Box\";\nimport { DataTableRowSelectionState, DataTableRowData } from \".\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../OdysseyDesignTokensContext\";\nimport { useScrollIndication } from \"./useScrollIndication\";\nimport styled from \"@emotion/styled\";\nimport { EmptyState } from \"../EmptyState\";\nimport { Callout } from \"../Callout\";\n\nexport type DataTableColumn<T extends DataTableRowData> = MRT_ColumnDef<T> & {\n /**\n * @deprecated use hasTextWrapping instead of enableWrapping\n */\n enableWrapping?: boolean;\n hasTextWrapping?: boolean;\n};\n\ntype DataTableColumnInstance<T extends DataTableRowData> = Omit<\n MRT_Column<T, unknown>,\n \"columnDef\"\n> & {\n columnDef: DataTableColumn<T>;\n};\n\ntype DataTableCell<T extends DataTableRowData> = Omit<MRT_Cell<T>, \"column\"> & {\n column: DataTableColumnInstance<T>;\n};\n\nexport type DataTableGetDataType = {\n page?: number;\n resultsPerPage?: number;\n search?: string;\n filters?: DataFilter[];\n sort?: MRT_SortingState;\n};\n\nexport type DataTableOnReorderRowsType = {\n rowId: string;\n newRowIndex: number;\n};\n\nexport type DataTableRenderDetailPanelType = {\n row: MRT_Row<DataTableRowData>;\n table: MRT_TableInstance<DataTableRowData>;\n};\n\nexport type DataTableProps = {\n /**\n * Menu items to include in the bulk actions menu, which appears above the table if a row or rows are selected\n */\n bulkActionMenuItems?: (\n selectedRows: MRT_RowSelectionState,\n ) => MenuButtonProps[\"children\"];\n /**\n * The columns that make up the table\n */\n columns: DataTableColumn<DataTableRowData>[];\n /**\n * The current page number.\n */\n currentPage?: number;\n /**\n * If `error` is not undefined, the DataTable will indicate an error.\n */\n errorMessage?: string;\n /**\n * The component to display when the table is displaying the initial empty state\n */\n emptyPlaceholder?: ReactNode;\n /**\n * An optional set of filters to render in the filters menu\n */\n filters?: Array<DataFilter | DataTableColumn<DataTableRowData> | string>;\n /**\n * The function to get the ID of a row\n */\n getRowId?: MRT_TableOptions<DataTableRowData>[\"getRowId\"];\n /**\n * Callback that fires whenever the table needs to fetch new data, due to changes in\n * page, results per page, search input, filters, or sorting\n */\n getData: ({\n page,\n resultsPerPage,\n search,\n filters,\n sort,\n }: DataTableGetDataType) =>\n | MRT_TableOptions<DataTableRowData>[\"data\"]\n | Promise<MRT_TableOptions<DataTableRowData>[\"data\"]>;\n /**\n * If true, the end user can resize individual columns.\n */\n hasColumnResizing?: boolean;\n /**\n * If true, the end user will be able to show/hide columns.\n */\n hasColumnVisibility?: boolean;\n /**\n * If true, the end user will be able to filter columns.\n */\n hasFilters?: boolean;\n /**\n * If true, the table will include pagination controls.\n */\n hasPagination?: boolean;\n /**\n * If true, the end user can reorder rows via a drag-and-drop interface\n */\n hasRowReordering?: boolean;\n /**\n * If true, the table will include checkboxes on each row, enabling\n * the user to select some or all rows.\n */\n hasRowSelection?: boolean;\n /**\n * If true, the global table search controls will be shown.\n */\n hasSearch?: boolean;\n /**\n * If true, the search field will include a Search button, rather than\n * firing on input change.\n */\n hasSearchSubmitButton?: boolean;\n /**\n * If true, the end user can sort columns (ascending, descending, or neither)\n */\n hasSorting?: boolean;\n /**\n * If true, the end user will be able to change the table density.\n */\n hasChangeableDensity?: boolean;\n /**\n * The initial density (height & padding) of the table rows. This is available even if the\n * table density isn't changeable by the end user via hasChangeableDensity.\n */\n initialDensity?: (typeof densityValues)[number];\n /**\n * The initial search value\n */\n initialSearchValue?: string;\n /**\n * The component to display when the query returns no results\n */\n noResultsPlaceholder?: ReactNode;\n /**\n * The number of results per page.\n */\n resultsPerPage?: number;\n /**\n * The optional component to display when expanding a row.\n */\n renderDetailPanel?: MRT_TableOptions<DataTableRowData>[\"renderDetailPanel\"];\n /**\n * Action buttons to display in each row\n */\n rowActionButtons?: DataTableRowActionsProps[\"rowActionButtons\"];\n /**\n * Menu items to include in the optional actions menu on each row.\n */\n rowActionMenuItems?: DataTableRowActionsProps[\"rowActionMenuItems\"];\n /**\n * The debounce time, in milliseconds, for the search input firing\n * `onChangeSearch` when changed. If `hasSearchSubmitButton` is true,\n * this doesn't do anything.\n */\n searchDelayTime?: number;\n /**\n * Callback that fires when a row (or rows) is selected or unselected.\n */\n onChangeRowSelection?: (rowSelection: DataTableRowSelectionState) => void;\n /**\n * Callback that fires when the user reorders rows within the table. Can be used\n * to propogate order change to the backend.\n */\n onReorderRows?: ({ rowId, newRowIndex }: DataTableOnReorderRowsType) => void;\n /**\n * The type of pagination controls shown. Defaults to next/prev buttons, but can be\n * set to a simple \"Load more\" button by setting to \"loadMore\".\n */\n paginationType?: (typeof paginationTypeValues)[number];\n /**\n * The total number of rows in the table. Optional, because it's sometimes impossible\n * to calculate. Used in table pagination to know when to disable the \"next\"/\"more\" button.\n */\n totalRows?: number;\n};\n\nconst displayColumnDefOptions = {\n \"mrt-row-actions\": {\n header: \"\",\n grow: true,\n muiTableBodyCellProps: {\n align: \"right\",\n sx: {\n overflow: \"visible\",\n width: \"unset\",\n },\n className: \"ods-actions-cell\",\n },\n muiTableHeadCellProps: {\n align: \"right\",\n sx: {\n width: \"unset\",\n },\n className: \"ods-actions-cell\",\n },\n },\n \"mrt-row-drag\": {\n header: \"\",\n muiTableBodyCellProps: {\n sx: {\n minWidth: 0,\n width: \"auto\",\n },\n className: \"ods-drag-handle\",\n },\n muiTableHeadCellProps: {\n sx: {\n minWidth: 0,\n width: \"auto\",\n },\n children: (\n // Add a spacer to simulate the width of the drag handle in the column.\n // Without this, the head cells are offset from their body cell counterparts\n <Box sx={{ marginInline: \"-0.1rem\" }}>\n <DragIndicatorIcon sx={{ marginInline: 1, opacity: 0 }} />\n </Box>\n ),\n },\n },\n \"mrt-row-select\": {\n muiTableHeadCellProps: {\n padding: \"checkbox\",\n },\n muiTableBodyCellProps: {\n padding: \"checkbox\",\n },\n },\n \"mrt-row-expand\": {\n header: \"\",\n },\n};\n\nconst ScrollableTableContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"isScrollableStart\" &&\n prop !== \"isScrollableEnd\",\n})(\n ({\n odysseyDesignTokens,\n isScrollableStart,\n isScrollableEnd,\n }: {\n odysseyDesignTokens: DesignTokens;\n isScrollableStart: boolean;\n isScrollableEnd: boolean;\n }) => ({\n marginBlockEnd: odysseyDesignTokens.Spacing4,\n position: \"relative\",\n borderInlineStartColor: isScrollableStart\n ? odysseyDesignTokens.HueNeutral200\n : \"transparent\",\n borderInlineStartStyle: \"solid\",\n borderInlineStartWidth: odysseyDesignTokens.BorderWidthMain,\n \"::before\": {\n background:\n \"linear-gradient(-90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.33) 50%, rgba(0, 0, 0, 1) 100%)\",\n content: '\"\"',\n opacity: isScrollableStart ? \"0.075\" : \"0\",\n pointerEvents: \"none\",\n position: \"absolute\",\n top: 0,\n left: 0,\n bottom: 0,\n width: odysseyDesignTokens.Spacing6,\n zIndex: 100,\n transition: `opacity ${odysseyDesignTokens.TransitionDurationMain} ${odysseyDesignTokens.TransitionTimingMain}`,\n },\n borderInlineEndColor: isScrollableEnd\n ? odysseyDesignTokens.HueNeutral200\n : \"transparent\",\n borderInlineEndStyle: \"solid\",\n borderInlineEndWidth: odysseyDesignTokens.BorderWidthMain,\n \"::after\": {\n background:\n \"linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.33) 50%, rgba(0, 0, 0, 1) 100%)\",\n content: '\"\"',\n opacity: isScrollableEnd ? \"0.075\" : \"0\",\n pointerEvents: \"none\",\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n width: odysseyDesignTokens.Spacing6,\n transition: `opacity ${odysseyDesignTokens.TransitionDurationMain} ${odysseyDesignTokens.TransitionTimingMain}`,\n },\n }),\n);\n\nconst DataTable = ({\n bulkActionMenuItems,\n columns,\n currentPage = 1,\n emptyPlaceholder,\n errorMessage: errorMessageProp,\n filters: filtersProp,\n getData,\n getRowId: getRowIdProp,\n hasChangeableDensity,\n hasColumnResizing,\n hasColumnVisibility,\n hasFilters,\n hasPagination,\n hasRowReordering,\n hasRowSelection,\n hasSearch,\n hasSearchSubmitButton,\n hasSorting,\n initialDensity = densityValues[0],\n initialSearchValue = \"\",\n noResultsPlaceholder,\n onChangeRowSelection,\n onReorderRows,\n paginationType = \"paged\",\n renderDetailPanel,\n resultsPerPage = 20,\n rowActionButtons,\n rowActionMenuItems,\n searchDelayTime,\n totalRows,\n}: DataTableProps) => {\n const { t } = useTranslation();\n\n const [data, setData] = useState<DataTableRowData[]>([]);\n const [pagination, setPagination] = useState({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n const [draggingRow, setDraggingRow] =\n useState<MRT_Row<DataTableRowData> | null>();\n const [isTableContainerScrolledToStart, setIsTableContainerScrolledToStart] =\n useState(true);\n const [isTableContainerScrolledToEnd, setIsTableContainerScrolledToEnd] =\n useState(true);\n const [tableInnerContainerWidth, setTableInnerContainerWidth] =\n useState<string>(\"100%\");\n const tableOuterContainerRef = useRef<HTMLDivElement>(null);\n const tableInnerContainerRef = useRef<HTMLDivElement>(null);\n const tableContentRef = useRef<HTMLTableElement>(null);\n\n // Table states\n const [columnSorting, setColumnSorting] = useState<MRT_SortingState>([]);\n const [columnVisibility, setColumnVisibility] =\n useState<MRT_VisibilityState>();\n const [rowDensity, setRowDensity] =\n useState<MRT_DensityState>(initialDensity);\n const [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n const [search, setSearch] = useState<string>(initialSearchValue);\n const [filters, setFilters] = useState<DataFilter[]>();\n const [initialFilters, setInitialFilters] = useState<DataFilter[]>();\n const [isLoading, setIsLoading] = useState<boolean | undefined>(true);\n const [isEmpty, setIsEmpty] = useState<boolean | undefined>();\n const [errorMessage, setErrorMessage] = useState<string | undefined>(\n errorMessageProp,\n );\n\n useScrollIndication({\n tableOuterContainer: tableOuterContainerRef.current,\n tableInnerContainer: tableInnerContainerRef.current,\n setIsTableContainerScrolledToStart: setIsTableContainerScrolledToStart,\n setIsTableContainerScrolledToEnd: setIsTableContainerScrolledToEnd,\n setTableInnerContainerWidth: setTableInnerContainerWidth,\n });\n\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const {\n dragHandleStyles,\n dragHandleText,\n draggableTableBodyRowClassName,\n handleDragHandleKeyDown,\n handleDragHandleOnDragCapture,\n handleDragHandleOnDragEnd,\n resetDraggingAndHoveredRow,\n updateRowOrder,\n } = useRowReordering({\n totalRows,\n onReorderRows,\n data,\n setData,\n draggingRow,\n setDraggingRow,\n resultsPerPage: pagination.pageSize,\n page: pagination.pageIndex,\n });\n\n const getRowId = getRowIdProp\n ? getRowIdProp\n : (row: DataTableRowData) => row.id;\n\n const rowDensityClassName = useMemo(() => {\n return rowDensity === \"spacious\"\n ? \"MuiTableBody-spacious\"\n : rowDensity === \"compact\"\n ? \"MuiTableBody-compact\"\n : \"MuiTableBody-default\";\n }, [rowDensity]);\n\n const renderRowActions = useCallback(\n ({ row }: { row: MRT_Row<DataTableRowData> }) => {\n const currentIndex =\n row.index + (pagination.pageIndex - 1) * pagination.pageSize;\n return (\n <DataTableRowActions\n row={row}\n rowIndex={currentIndex}\n rowActionButtons={rowActionButtons}\n rowActionMenuItems={rowActionMenuItems}\n totalRows={totalRows}\n updateRowOrder={\n hasRowReordering && onReorderRows ? updateRowOrder : undefined\n }\n />\n );\n },\n [\n pagination,\n rowActionButtons,\n rowActionMenuItems,\n hasRowReordering,\n onReorderRows,\n totalRows,\n updateRowOrder,\n ],\n );\n\n /**\n * This hack is to provide compatibility with Material-React-Table's\n * filterOptions format, which allows for strings and { label: string, value: string }\n */\n const convertFilterSelectOptions = useCallback(\n (options: DataTableColumn<DataTableRowData>[\"filterSelectOptions\"]) =>\n options?.map((option) =>\n typeof option === \"string\"\n ? {\n label: option,\n value: option,\n }\n : {\n // If the option isn't a string, it must have value and/or option defined\n // If either is undefined, use the other\n label: option.label ?? option.value,\n value: option.value ?? option.label,\n },\n ),\n [],\n );\n\n const convertColumnToFilter = useCallback(\n (column: DataTableColumn<DataTableRowData>) =>\n column.enableColumnFilter !== false && column.accessorKey\n ? ({\n id: column.accessorKey,\n label: column.header,\n variant: column.filterVariant,\n options: convertFilterSelectOptions(column.filterSelectOptions),\n } satisfies DataFilter as DataFilter)\n : null,\n [convertFilterSelectOptions],\n );\n\n /**\n * Filters default to the columns, but can be overridden\n * with the `filters` prop. `filters` should be an array\n * of column accessorKeys, column defs, or DataFilters.\n */\n const dataTableFilters = useMemo(() => {\n const providedFilters = filtersProp || columns;\n return providedFilters.reduce<DataFilter[]>((accumulator, item) => {\n if (typeof item === \"string\") {\n const foundColumn = columns.find(\n (column) => column.accessorKey === item,\n );\n if (foundColumn) {\n const filter = convertColumnToFilter(foundColumn);\n if (filter) {\n return accumulator.concat(filter);\n }\n }\n } else if (\"accessorKey\" in item) {\n // Checks if it's a column\n const filter = convertColumnToFilter(item);\n if (filter) {\n return accumulator.concat(filter);\n }\n } else if (\"label\" in item) {\n // Checks if it's a DataFilter\n return accumulator.concat(item);\n }\n // If none of the conditions match, item is ignored (not mapping to undefined)\n return accumulator;\n }, []);\n }, [columns, filtersProp, convertColumnToFilter]);\n\n const defaultCell = useCallback(\n ({ cell }: { cell: DataTableCell<DataTableRowData> }) => {\n const value = cell.getValue<string>();\n const hasTextWrapping =\n cell.column.columnDef.hasTextWrapping ||\n cell.column.columnDef.enableWrapping;\n\n return hasTextWrapping ? (\n value\n ) : (\n <Box\n sx={{\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n }}\n >\n {value}\n </Box>\n );\n },\n [],\n );\n\n const emptyState = useCallback(() => {\n const noResultsInnerContent = noResultsPlaceholder || (\n <EmptyState\n heading={t(\"table.noresults.heading\")}\n description={t(\"table.noresults.text\")}\n />\n );\n\n const emptyStateInnerContent =\n emptyPlaceholder && isEmpty ? emptyPlaceholder : noResultsInnerContent;\n\n return (\n <Box sx={{ width: tableInnerContainerWidth }}>\n {emptyStateInnerContent}\n </Box>\n );\n }, [\n emptyPlaceholder,\n isEmpty,\n noResultsPlaceholder,\n t,\n tableInnerContainerWidth,\n ]);\n\n const columnIds = useMemo(() => {\n return columns.map((column) => column.accessorKey);\n }, [columns]);\n\n const columnOrder = useMemo(\n () => [\n \"mrt-row-drag\",\n \"mrt-row-select\",\n \"mrt-row-expand\",\n ...columnIds,\n \"mrt-row-actions\",\n ],\n [columnIds],\n ) as string[];\n\n const dataTable = useMaterialReactTable({\n columns: columns,\n data: data,\n getRowId: getRowId,\n state: {\n sorting: columnSorting,\n globalFilter: search,\n columnVisibility,\n isLoading,\n rowSelection,\n columnOrder,\n },\n icons: {\n ArrowDownwardIcon: ArrowDownIcon,\n DragHandleIcon: DragIndicatorIcon,\n SyncAltIcon: ArrowUnsortedIcon,\n ExpandMoreIcon: ChevronDownIcon,\n },\n\n // Base table settings\n enableColumnActions: false,\n enableColumnResizing: hasColumnResizing,\n enableDensityToggle: false,\n enableFilters: false,\n enableFullScreenToggle: false,\n enableGlobalFilter: false,\n enableHiding: false,\n enablePagination: false,\n layoutMode: \"grid-no-grow\",\n manualFiltering: true,\n manualSorting: true,\n muiTablePaperProps: {\n elevation: 0,\n sx: {\n overflow: \"visible\",\n },\n },\n selectAllMode: \"all\",\n displayColumnDefOptions:\n displayColumnDefOptions as MRT_TableOptions<DataTableRowData>[\"displayColumnDefOptions\"],\n muiTableBodyProps: () => ({\n className: rowDensityClassName,\n }),\n defaultColumn: {\n Cell: defaultCell,\n },\n\n // Reordering\n enableRowOrdering: hasRowReordering && Boolean(onReorderRows),\n enableRowDragging: hasRowReordering && Boolean(onReorderRows),\n muiTableBodyRowProps: ({ table, row }) => ({\n className: draggableTableBodyRowClassName({\n currentRowId: row.id,\n draggingRowId: draggingRow?.id,\n hoveredRowId: table.getState().hoveredRow?.id,\n }),\n }),\n muiRowDragHandleProps: ({ table, row }) => ({\n onKeyDown: (event) => handleDragHandleKeyDown({ table, row, event }),\n onBlur: () => resetDraggingAndHoveredRow(table),\n onDragEnd: () => handleDragHandleOnDragEnd(table),\n onDragCapture: () => handleDragHandleOnDragCapture(table),\n sx: dragHandleStyles,\n ...dragHandleText,\n }),\n\n // Row actions\n enableRowActions:\n (hasRowReordering === true && onReorderRows) ||\n rowActionButtons ||\n rowActionMenuItems\n ? true\n : false,\n positionActionsColumn:\n \"last\" as MRT_TableOptions<DataTableRowData>[\"positionActionsColumn\"],\n renderRowActions: ({ row }) => renderRowActions({ row }),\n\n // Row selection\n enableRowSelection: hasRowSelection,\n onRowSelectionChange: setRowSelection,\n\n // Sorting\n enableSorting: hasSorting,\n onSortingChange: setColumnSorting,\n muiTableHeadCellProps: ({ column: currentColumn }) => ({\n className: columnSorting.find(\n (sortedColumn) => sortedColumn.id === currentColumn.id,\n )\n ? \"isSorted\"\n : \"isUnsorted\",\n }),\n\n // Virtualization\n enableRowVirtualization:\n paginationType !== \"loadMore\" && pagination.pageSize > 50,\n rowVirtualizerInstanceRef:\n useRef<MRT_RowVirtualizer<HTMLDivElement, HTMLTableRowElement>>(null),\n rowVirtualizerOptions: {\n overscan: 4,\n },\n\n // States\n renderEmptyRowsFallback: emptyState,\n\n // Refs\n muiTableProps: {\n ref: tableContentRef,\n },\n\n muiTableContainerProps: {\n ref: tableInnerContainerRef,\n },\n\n // Row expansion\n enableExpandAll: false,\n renderDetailPanel: renderDetailPanel,\n });\n\n // Effects\n const bulkActionMenuButton = useMemo(\n () => (\n <>\n <MenuButton\n buttonVariant=\"secondary\"\n endIcon={<MoreIcon />}\n isDisabled={Object.keys(rowSelection).length === 0}\n ariaLabel=\"More actions\"\n >\n {bulkActionMenuItems?.(rowSelection)}\n </MenuButton>\n </>\n ),\n [bulkActionMenuItems, rowSelection],\n );\n\n useEffect(() => {\n (async () => {\n setIsLoading(true);\n setErrorMessage(errorMessageProp);\n try {\n const incomingData = await getData?.({\n page: pagination.pageIndex,\n resultsPerPage: pagination.pageSize,\n search,\n filters,\n sort: columnSorting,\n });\n setData(incomingData);\n } catch (error) {\n setErrorMessage(typeof error === \"string\" ? error : t(\"table.error\"));\n } finally {\n setIsLoading(false);\n }\n })();\n }, [\n columnSorting,\n errorMessageProp,\n filters,\n getData,\n pagination,\n search,\n t,\n ]);\n\n useEffect(() => {\n if (!initialFilters && filters) {\n setInitialFilters(filters);\n }\n\n setIsEmpty(\n pagination.pageIndex === currentPage &&\n pagination.pageSize === resultsPerPage &&\n search === \"\" &&\n filters === initialFilters &&\n data.length === 0,\n );\n }, [\n filters,\n pagination,\n search,\n data,\n currentPage,\n initialFilters,\n resultsPerPage,\n ]);\n\n useEffect(() => {\n onChangeRowSelection?.(rowSelection);\n }, [rowSelection, onChangeRowSelection]);\n\n const { lastRow } = usePagination({\n pageIndex: pagination.pageIndex,\n pageSize: pagination.pageSize,\n totalRows,\n });\n\n // Render the table\n return (\n <>\n {(hasSearch ||\n hasFilters ||\n hasChangeableDensity ||\n hasColumnVisibility ||\n bulkActionMenuItems) && (\n <Box sx={{ marginBottom: 5 }}>\n <DataFilters\n onChangeSearch={hasSearch ? setSearch : undefined}\n onChangeFilters={hasFilters ? setFilters : undefined}\n hasSearchSubmitButton={hasSearchSubmitButton}\n searchDelayTime={searchDelayTime}\n filters={hasFilters ? dataTableFilters : undefined}\n defaultSearchTerm={initialSearchValue}\n isDisabled={isEmpty}\n additionalActions={\n <>\n <DataTableSettings\n hasChangeableDensity={hasChangeableDensity}\n rowDensity={rowDensity}\n setRowDensity={setRowDensity}\n hasColumnVisibility={hasColumnVisibility}\n columns={columns}\n columnVisibility={columnVisibility}\n setColumnVisibility={setColumnVisibility}\n />\n {bulkActionMenuItems && bulkActionMenuButton}\n </>\n }\n />\n </Box>\n )}\n\n {errorMessage && (\n <Box sx={{ marginBlockEnd: 2 }}>\n <Callout severity=\"error\" text={errorMessage} />\n </Box>\n )}\n\n <ScrollableTableContainer\n odysseyDesignTokens={odysseyDesignTokens}\n isScrollableStart={!isTableContainerScrolledToStart}\n isScrollableEnd={!isTableContainerScrolledToEnd}\n ref={tableOuterContainerRef}\n >\n <MRT_TableContainer table={dataTable} />\n </ScrollableTableContainer>\n\n {hasPagination && (\n <Pagination\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n onPaginationChange={setPagination}\n lastRow={lastRow}\n totalRows={totalRows}\n isDisabled={isEmpty}\n variant={paginationType}\n rowsPerPageLabel={t(\"pagination.rowsperpage\")}\n currentPageLabel={t(\"pagination.page\")}\n previousLabel={t(\"pagination.previous\")}\n nextLabel={t(\"pagination.next\")}\n loadMoreLabel={t(\"pagination.loadmore\")}\n />\n )}\n </>\n );\n};\n\nconst MemoizedDataTable = memo(DataTable);\nMemoizedDataTable.displayName = \"DataTable\";\n\nexport { MemoizedDataTable as DataTable };\n"],"mappings":"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"}
1
+ {"version":3,"file":"DataTable.js","names":["memo","useCallback","useEffect","useMemo","useRef","useState","useMaterialReactTable","MRT_TableContainer","useTranslation","ArrowDownIcon","ArrowUnsortedIcon","ChevronDownIcon","DragIndicatorIcon","MoreIcon","densityValues","Pagination","usePagination","DataFilters","DataTableRowActions","useRowReordering","DataTableSettings","MenuButton","Box","useOdysseyDesignTokens","useScrollIndication","styled","EmptyState","Button","Callout","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ScrollableTableContainer","shouldForwardProp","prop","odysseyDesignTokens","isScrollableStart","isScrollableEnd","marginBlockEnd","Spacing4","position","borderInlineStartColor","HueNeutral200","borderInlineStartStyle","borderInlineStartWidth","BorderWidthMain","background","content","opacity","pointerEvents","top","left","bottom","width","Spacing6","zIndex","transition","TransitionDurationMain","TransitionTimingMain","borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth","right","DataTable","bulkActionMenuItems","columns","currentPage","emptyPlaceholder","errorMessage","errorMessageProp","filters","filtersProp","getData","getRowId","getRowIdProp","hasChangeableDensity","hasColumnResizing","hasColumnVisibility","hasFilters","hasPagination","hasRowReordering","hasRowSelection","hasSearch","hasSearchSubmitButton","hasSorting","initialDensity","initialSearchValue","isPaginationMoreDisabled","noResultsPlaceholder","onChangeRowSelection","onReorderRows","paginationType","renderDetailPanel","resultsPerPage","maxResultsPerPage","maxPages","rowActionButtons","rowActionMenuItems","searchDelayTime","totalRows","t","data","setData","pagination","setPagination","pageIndex","pageSize","draggingRow","setDraggingRow","isTableContainerScrolledToStart","setIsTableContainerScrolledToStart","isTableContainerScrolledToEnd","setIsTableContainerScrolledToEnd","tableInnerContainerWidth","setTableInnerContainerWidth","tableOuterContainerRef","tableInnerContainerRef","tableContentRef","columnSorting","setColumnSorting","columnVisibility","setColumnVisibility","rowDensity","setRowDensity","rowSelection","setRowSelection","search","setSearch","setFilters","initialFilters","setInitialFilters","isLoading","setIsLoading","isEmpty","setIsEmpty","setErrorMessage","tableOuterContainer","current","tableInnerContainer","dragHandleStyles","dragHandleText","draggableTableBodyRowClassName","handleDragHandleKeyDown","handleDragHandleOnDragCapture","handleDragHandleOnDragEnd","resetDraggingAndHoveredRow","updateRowOrder","page","row","id","rowDensityClassName","renderRowActions","currentIndex","index","rowIndex","undefined","convertFilterSelectOptions","options","map","option","label","value","convertColumnToFilter","column","enableColumnFilter","accessorKey","header","variant","filterVariant","filterSelectOptions","dataTableFilters","providedFilters","reduce","accumulator","item","foundColumn","find","filter","concat","defaultCell","cell","getValue","hasTextWrapping","columnDef","enableWrapping","sx","whiteSpace","textOverflow","overflow","children","emptyState","noResultsInnerContent","heading","description","emptyStateInnerContent","columnIds","columnOrder","shouldDisplayRowActions","dataTable","state","sorting","globalFilter","icons","ArrowDownwardIcon","DragHandleIcon","SyncAltIcon","ExpandMoreIcon","enableColumnActions","enableColumnResizing","enableDensityToggle","enableFilters","enableFullScreenToggle","enableGlobalFilter","enableHiding","enablePagination","layoutMode","manualFiltering","manualSorting","muiTablePaperProps","elevation","selectAllMode","displayColumnDefOptions","grow","muiTableBodyCellProps","align","className","muiTableHeadCellProps","display","visibility","endIcon","size","ariaLabel","isDisabled","minWidth","marginInline","padding","muiTableBodyProps","defaultColumn","Cell","getIsResizing","enableRowOrdering","Boolean","enableRowDragging","muiTableBodyRowProps","table","currentRowId","draggingRowId","hoveredRowId","getState","hoveredRow","muiRowDragHandleProps","onKeyDown","event","onBlur","onDragEnd","onDragCapture","enableRowActions","positionActionsColumn","enableRowSelection","onRowSelectionChange","enableSorting","onSortingChange","currentColumn","sortedColumn","enableRowVirtualization","rowVirtualizerInstanceRef","rowVirtualizerOptions","overscan","renderEmptyRowsFallback","muiTableProps","ref","muiTableContainerProps","enableExpandAll","bulkActionMenuButton","buttonVariant","Object","keys","length","incomingData","sort","error","prev","lastRow","currentRowsCount","marginBottom","onChangeSearch","onChangeFilters","defaultSearchTerm","additionalActions","severity","text","maxPageIndex","maxPageSize","onPaginationChange","isMoreDisabled","rowsPerPageLabel","currentPageLabel","previousLabel","nextLabel","loadMoreLabel","MemoizedDataTable","displayName"],"sources":["../../src/DataTable/DataTable.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n ReactNode,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n MRT_Cell,\n MRT_DensityState,\n MRT_Row,\n MRT_SortingState,\n MRT_TableOptions,\n MRT_RowSelectionState,\n MRT_RowVirtualizer,\n MRT_VisibilityState,\n useMaterialReactTable,\n MRT_TableContainer,\n MRT_Column,\n MRT_ColumnDef,\n MRT_TableInstance,\n} from \"material-react-table\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n ArrowDownIcon,\n ArrowUnsortedIcon,\n ChevronDownIcon,\n DragIndicatorIcon,\n MoreIcon,\n} from \"../icons.generated\";\nimport { densityValues } from \"./constants\";\nimport { Pagination, paginationTypeValues, usePagination } from \"../Pagination\";\nimport { DataFilter, DataFilters } from \"../labs/DataFilters\";\nimport {\n DataTableRowActions,\n DataTableRowActionsProps,\n} from \"./DataTableRowActions\";\nimport { useRowReordering } from \"./useRowReordering\";\nimport { DataTableSettings } from \"./DataTableSettings\";\nimport { MenuButton, MenuButtonProps } from \"../MenuButton\";\nimport { Box } from \"../Box\";\nimport { DataTableRowSelectionState, DataTableRowData } from \".\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../OdysseyDesignTokensContext\";\nimport { useScrollIndication } from \"./useScrollIndication\";\nimport styled from \"@emotion/styled\";\nimport { EmptyState } from \"../EmptyState\";\nimport { Button } from \"../Button\";\nimport { Callout } from \"../Callout\";\n\nexport type DataTableColumn<T extends DataTableRowData> = MRT_ColumnDef<T> & {\n /**\n * @deprecated use hasTextWrapping instead of enableWrapping\n */\n enableWrapping?: boolean;\n hasTextWrapping?: boolean;\n};\n\ntype DataTableColumnInstance<T extends DataTableRowData> = Omit<\n MRT_Column<T, unknown>,\n \"columnDef\"\n> & {\n columnDef: DataTableColumn<T>;\n};\n\ntype DataTableCell<T extends DataTableRowData> = Omit<MRT_Cell<T>, \"column\"> & {\n column: DataTableColumnInstance<T>;\n};\n\nexport type DataTableGetDataType = {\n page?: number;\n resultsPerPage?: number;\n search?: string;\n filters?: DataFilter[];\n sort?: MRT_SortingState;\n};\n\nexport type DataTableOnReorderRowsType = {\n rowId: string;\n newRowIndex: number;\n};\n\nexport type DataTableRenderDetailPanelType = {\n row: MRT_Row<DataTableRowData>;\n table: MRT_TableInstance<DataTableRowData>;\n};\n\nexport type DataTableProps = {\n /**\n * Menu items to include in the bulk actions menu, which appears above the table if a row or rows are selected\n */\n bulkActionMenuItems?: (\n selectedRows: MRT_RowSelectionState,\n ) => MenuButtonProps[\"children\"];\n /**\n * The columns that make up the table\n */\n columns: DataTableColumn<DataTableRowData>[];\n /**\n * The current page number.\n */\n currentPage?: number;\n /**\n * If `error` is not undefined, the DataTable will indicate an error.\n */\n errorMessage?: string;\n /**\n * The component to display when the table is displaying the initial empty state\n */\n emptyPlaceholder?: ReactNode;\n /**\n * An optional set of filters to render in the filters menu\n */\n filters?: Array<DataFilter | DataTableColumn<DataTableRowData> | string>;\n /**\n * The function to get the ID of a row\n */\n getRowId?: MRT_TableOptions<DataTableRowData>[\"getRowId\"];\n /**\n * Callback that fires whenever the table needs to fetch new data, due to changes in\n * page, results per page, search input, filters, or sorting\n */\n getData: ({\n page,\n resultsPerPage,\n search,\n filters,\n sort,\n }: DataTableGetDataType) =>\n | MRT_TableOptions<DataTableRowData>[\"data\"]\n | Promise<MRT_TableOptions<DataTableRowData>[\"data\"]>;\n /**\n * If true, the end user can resize individual columns.\n */\n hasColumnResizing?: boolean;\n /**\n * If true, the end user will be able to show/hide columns.\n */\n hasColumnVisibility?: boolean;\n /**\n * If true, the end user will be able to filter columns.\n */\n hasFilters?: boolean;\n /**\n * If true, the table will include pagination controls.\n */\n hasPagination?: boolean;\n /**\n * If true, the end user can reorder rows via a drag-and-drop interface\n */\n hasRowReordering?: boolean;\n /**\n * If true, the table will include checkboxes on each row, enabling\n * the user to select some or all rows.\n */\n hasRowSelection?: boolean;\n /**\n * If true, the global table search controls will be shown.\n */\n hasSearch?: boolean;\n /**\n * If true, the search field will include a Search button, rather than\n * firing on input change.\n */\n hasSearchSubmitButton?: boolean;\n /**\n * If true, the end user can sort columns (ascending, descending, or neither)\n */\n hasSorting?: boolean;\n /**\n * If true, the end user will be able to change the table density.\n */\n hasChangeableDensity?: boolean;\n /**\n * The initial density (height & padding) of the table rows. This is available even if the\n * table density isn't changeable by the end user via hasChangeableDensity.\n */\n initialDensity?: (typeof densityValues)[number];\n /**\n * The initial search value\n */\n initialSearchValue?: string;\n /**\n * Is the next or show-more button disabled\n */\n isPaginationMoreDisabled?: boolean;\n /**\n * The component to display when the query returns no results\n */\n noResultsPlaceholder?: ReactNode;\n /**\n * The number of results per page.\n */\n resultsPerPage?: number;\n /**\n * The optional component to display when expanding a row.\n */\n renderDetailPanel?: MRT_TableOptions<DataTableRowData>[\"renderDetailPanel\"];\n /**\n * Action buttons to display in each row\n */\n rowActionButtons?: DataTableRowActionsProps[\"rowActionButtons\"];\n /**\n * Menu items to include in the optional actions menu on each row.\n */\n rowActionMenuItems?: DataTableRowActionsProps[\"rowActionMenuItems\"];\n /**\n * The debounce time, in milliseconds, for the search input firing\n * `onChangeSearch` when changed. If `hasSearchSubmitButton` is true,\n * this doesn't do anything.\n */\n searchDelayTime?: number;\n /**\n * Callback that fires when a row (or rows) is selected or unselected.\n */\n onChangeRowSelection?: (rowSelection: DataTableRowSelectionState) => void;\n /**\n * Callback that fires when the user reorders rows within the table. Can be used\n * to propogate order change to the backend.\n */\n onReorderRows?: ({ rowId, newRowIndex }: DataTableOnReorderRowsType) => void;\n /**\n * The type of pagination controls shown. Defaults to next/prev buttons, but can be\n * set to a simple \"Load more\" button by setting to \"loadMore\".\n */\n paginationType?: (typeof paginationTypeValues)[number];\n /**\n * The total number of rows in the table. Optional, because it's sometimes impossible\n * to calculate. Used in table pagination to know when to disable the \"next\"/\"more\" button.\n */\n totalRows?: number;\n /**\n * The largest number of rows allowed to be shown per page. This only affects the row input\n * in pagination.\n */\n maxResultsPerPage?: number;\n /**\n * The highest page number allowed to be manually input in pagination\n */\n maxPages?: number;\n};\n\nconst ScrollableTableContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"isScrollableStart\" &&\n prop !== \"isScrollableEnd\",\n})(\n ({\n odysseyDesignTokens,\n isScrollableStart,\n isScrollableEnd,\n }: {\n odysseyDesignTokens: DesignTokens;\n isScrollableStart: boolean;\n isScrollableEnd: boolean;\n }) => ({\n marginBlockEnd: odysseyDesignTokens.Spacing4,\n position: \"relative\",\n borderInlineStartColor: isScrollableStart\n ? odysseyDesignTokens.HueNeutral200\n : \"transparent\",\n borderInlineStartStyle: \"solid\",\n borderInlineStartWidth: odysseyDesignTokens.BorderWidthMain,\n \"::before\": {\n background:\n \"linear-gradient(-90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.33) 50%, rgba(0, 0, 0, 1) 100%)\",\n content: '\"\"',\n opacity: isScrollableStart ? \"0.075\" : \"0\",\n pointerEvents: \"none\",\n position: \"absolute\",\n top: 0,\n left: 0,\n bottom: 0,\n width: odysseyDesignTokens.Spacing6,\n zIndex: 100,\n transition: `opacity ${odysseyDesignTokens.TransitionDurationMain} ${odysseyDesignTokens.TransitionTimingMain}`,\n },\n borderInlineEndColor: isScrollableEnd\n ? odysseyDesignTokens.HueNeutral200\n : \"transparent\",\n borderInlineEndStyle: \"solid\",\n borderInlineEndWidth: odysseyDesignTokens.BorderWidthMain,\n \"::after\": {\n background:\n \"linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.33) 50%, rgba(0, 0, 0, 1) 100%)\",\n content: '\"\"',\n opacity: isScrollableEnd ? \"0.075\" : \"0\",\n pointerEvents: \"none\",\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n width: odysseyDesignTokens.Spacing6,\n transition: `opacity ${odysseyDesignTokens.TransitionDurationMain} ${odysseyDesignTokens.TransitionTimingMain}`,\n },\n }),\n);\n\nconst DataTable = ({\n bulkActionMenuItems,\n columns,\n currentPage = 1,\n emptyPlaceholder,\n errorMessage: errorMessageProp,\n filters: filtersProp,\n getData,\n getRowId: getRowIdProp,\n hasChangeableDensity,\n hasColumnResizing,\n hasColumnVisibility,\n hasFilters,\n hasPagination,\n hasRowReordering,\n hasRowSelection,\n hasSearch,\n hasSearchSubmitButton,\n hasSorting,\n initialDensity = densityValues[0],\n initialSearchValue = \"\",\n isPaginationMoreDisabled,\n noResultsPlaceholder,\n onChangeRowSelection,\n onReorderRows,\n paginationType = \"paged\",\n renderDetailPanel,\n resultsPerPage = 20,\n maxResultsPerPage,\n maxPages,\n rowActionButtons,\n rowActionMenuItems,\n searchDelayTime,\n totalRows,\n}: DataTableProps) => {\n const { t } = useTranslation();\n\n const [data, setData] = useState<DataTableRowData[]>([]);\n const [pagination, setPagination] = useState({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n const [draggingRow, setDraggingRow] =\n useState<MRT_Row<DataTableRowData> | null>();\n const [isTableContainerScrolledToStart, setIsTableContainerScrolledToStart] =\n useState(true);\n const [isTableContainerScrolledToEnd, setIsTableContainerScrolledToEnd] =\n useState(true);\n const [tableInnerContainerWidth, setTableInnerContainerWidth] =\n useState<string>(\"100%\");\n const tableOuterContainerRef = useRef<HTMLDivElement>(null);\n const tableInnerContainerRef = useRef<HTMLDivElement>(null);\n const tableContentRef = useRef<HTMLTableElement>(null);\n\n // Table states\n const [columnSorting, setColumnSorting] = useState<MRT_SortingState>([]);\n const [columnVisibility, setColumnVisibility] =\n useState<MRT_VisibilityState>();\n const [rowDensity, setRowDensity] =\n useState<MRT_DensityState>(initialDensity);\n const [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n const [search, setSearch] = useState<string>(initialSearchValue);\n const [filters, setFilters] = useState<DataFilter[]>();\n const [initialFilters, setInitialFilters] = useState<DataFilter[]>();\n const [isLoading, setIsLoading] = useState<boolean | undefined>(true);\n const [isEmpty, setIsEmpty] = useState<boolean | undefined>();\n const [errorMessage, setErrorMessage] = useState<string | undefined>(\n errorMessageProp,\n );\n\n useScrollIndication({\n tableOuterContainer: tableOuterContainerRef.current,\n tableInnerContainer: tableInnerContainerRef.current,\n setIsTableContainerScrolledToStart: setIsTableContainerScrolledToStart,\n setIsTableContainerScrolledToEnd: setIsTableContainerScrolledToEnd,\n setTableInnerContainerWidth: setTableInnerContainerWidth,\n });\n\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const {\n dragHandleStyles,\n dragHandleText,\n draggableTableBodyRowClassName,\n handleDragHandleKeyDown,\n handleDragHandleOnDragCapture,\n handleDragHandleOnDragEnd,\n resetDraggingAndHoveredRow,\n updateRowOrder,\n } = useRowReordering({\n totalRows,\n onReorderRows,\n data,\n setData,\n draggingRow,\n setDraggingRow,\n resultsPerPage: pagination.pageSize,\n page: pagination.pageIndex,\n });\n\n const getRowId = getRowIdProp\n ? getRowIdProp\n : (row: DataTableRowData) => row.id;\n\n const rowDensityClassName = useMemo(() => {\n return rowDensity === \"spacious\"\n ? \"MuiTableBody-spacious\"\n : rowDensity === \"compact\"\n ? \"MuiTableBody-compact\"\n : \"MuiTableBody-default\";\n }, [rowDensity]);\n\n const renderRowActions = useCallback(\n ({ row }: { row: MRT_Row<DataTableRowData> }) => {\n const currentIndex =\n row.index + (pagination.pageIndex - 1) * pagination.pageSize;\n return (\n <DataTableRowActions\n row={row}\n rowIndex={currentIndex}\n rowActionButtons={rowActionButtons}\n rowActionMenuItems={rowActionMenuItems}\n totalRows={totalRows}\n updateRowOrder={\n hasRowReordering && onReorderRows ? updateRowOrder : undefined\n }\n />\n );\n },\n [\n pagination,\n rowActionButtons,\n rowActionMenuItems,\n hasRowReordering,\n onReorderRows,\n totalRows,\n updateRowOrder,\n ],\n );\n\n /**\n * This hack is to provide compatibility with Material-React-Table's\n * filterOptions format, which allows for strings and { label: string, value: string }\n */\n const convertFilterSelectOptions = useCallback(\n (options: DataTableColumn<DataTableRowData>[\"filterSelectOptions\"]) =>\n options?.map((option) =>\n typeof option === \"string\"\n ? {\n label: option,\n value: option,\n }\n : {\n // If the option isn't a string, it must have value and/or option defined\n // If either is undefined, use the other\n label: option.label ?? option.value,\n value: option.value ?? option.label,\n },\n ),\n [],\n );\n\n const convertColumnToFilter = useCallback(\n (column: DataTableColumn<DataTableRowData>) =>\n column.enableColumnFilter !== false && column.accessorKey\n ? ({\n id: column.accessorKey,\n label: column.header,\n variant: column.filterVariant,\n options: convertFilterSelectOptions(column.filterSelectOptions),\n } satisfies DataFilter as DataFilter)\n : null,\n [convertFilterSelectOptions],\n );\n\n /**\n * Filters default to the columns, but can be overridden\n * with the `filters` prop. `filters` should be an array\n * of column accessorKeys, column defs, or DataFilters.\n */\n const dataTableFilters = useMemo(() => {\n const providedFilters = filtersProp || columns;\n return providedFilters.reduce<DataFilter[]>((accumulator, item) => {\n if (typeof item === \"string\") {\n const foundColumn = columns.find(\n (column) => column.accessorKey === item,\n );\n if (foundColumn) {\n const filter = convertColumnToFilter(foundColumn);\n if (filter) {\n return accumulator.concat(filter);\n }\n }\n } else if (\"accessorKey\" in item) {\n // Checks if it's a column\n const filter = convertColumnToFilter(item);\n if (filter) {\n return accumulator.concat(filter);\n }\n } else if (\"label\" in item) {\n // Checks if it's a DataFilter\n return accumulator.concat(item);\n }\n // If none of the conditions match, item is ignored (not mapping to undefined)\n return accumulator;\n }, []);\n }, [columns, filtersProp, convertColumnToFilter]);\n\n const defaultCell = useCallback(\n ({ cell }: { cell: DataTableCell<DataTableRowData> }) => {\n const value = cell.getValue<string>();\n const hasTextWrapping =\n cell.column.columnDef.hasTextWrapping ||\n cell.column.columnDef.enableWrapping;\n\n return hasTextWrapping ? (\n value\n ) : (\n <Box\n sx={{\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n }}\n >\n {value}\n </Box>\n );\n },\n [],\n );\n\n const emptyState = useCallback(() => {\n const noResultsInnerContent = noResultsPlaceholder || (\n <EmptyState\n heading={t(\"table.noresults.heading\")}\n description={t(\"table.noresults.text\")}\n />\n );\n\n const emptyStateInnerContent =\n emptyPlaceholder && isEmpty ? emptyPlaceholder : noResultsInnerContent;\n\n return (\n <Box sx={{ width: tableInnerContainerWidth }}>\n {emptyStateInnerContent}\n </Box>\n );\n }, [\n emptyPlaceholder,\n isEmpty,\n noResultsPlaceholder,\n t,\n tableInnerContainerWidth,\n ]);\n\n const columnIds = useMemo(() => {\n return columns.map((column) => column.accessorKey);\n }, [columns]);\n\n const columnOrder = useMemo(\n () => [\n \"mrt-row-drag\",\n \"mrt-row-select\",\n \"mrt-row-expand\",\n ...columnIds,\n \"mrt-row-actions\",\n ],\n [columnIds],\n ) as string[];\n\n const shouldDisplayRowActions = useMemo(\n () =>\n (hasRowReordering === true && onReorderRows) ||\n rowActionButtons ||\n rowActionMenuItems\n ? true\n : false,\n [hasRowReordering, onReorderRows, rowActionButtons, rowActionMenuItems],\n );\n\n const dataTable = useMaterialReactTable({\n columns: columns,\n data: data,\n getRowId: getRowId,\n state: {\n sorting: columnSorting,\n globalFilter: search,\n columnVisibility,\n isLoading,\n rowSelection,\n columnOrder,\n },\n icons: {\n ArrowDownwardIcon: ArrowDownIcon,\n DragHandleIcon: DragIndicatorIcon,\n SyncAltIcon: ArrowUnsortedIcon,\n ExpandMoreIcon: ChevronDownIcon,\n },\n\n // Base table settings\n enableColumnActions: false,\n enableColumnResizing: hasColumnResizing,\n enableDensityToggle: false,\n enableFilters: false,\n enableFullScreenToggle: false,\n enableGlobalFilter: false,\n enableHiding: false,\n enablePagination: false,\n layoutMode: \"grid-no-grow\",\n manualFiltering: true,\n manualSorting: true,\n muiTablePaperProps: {\n elevation: 0,\n sx: {\n overflow: \"visible\",\n },\n },\n selectAllMode: \"all\",\n displayColumnDefOptions: {\n \"mrt-row-actions\": {\n header: \"\",\n grow: true,\n muiTableBodyCellProps: {\n align: \"right\",\n sx: {\n overflow: \"visible\",\n width: \"unset\",\n },\n className: \"ods-actions-cell\",\n },\n muiTableHeadCellProps: {\n align: \"right\",\n sx: {\n width: \"unset\",\n },\n className: \"ods-actions-cell\",\n children: (\n <Box sx={{ display: \"flex\", visibility: \"hidden\" }}>\n {rowActionButtons && rowActionButtons({ id: null })}\n {((hasRowReordering && onReorderRows) || rowActionMenuItems) && (\n <Box>\n <Button\n endIcon={<MoreIcon />}\n size=\"small\"\n variant=\"floating\"\n ariaLabel={t(\"table.moreactions.arialabel\")}\n isDisabled\n />\n </Box>\n )}\n </Box>\n ),\n },\n },\n \"mrt-row-drag\": {\n header: \"\",\n muiTableBodyCellProps: {\n sx: {\n minWidth: 0,\n width: \"auto\",\n },\n className: \"ods-drag-handle\",\n },\n muiTableHeadCellProps: {\n sx: {\n minWidth: 0,\n width: \"auto\",\n },\n children: (\n // Add a spacer to simulate the width of the drag handle in the column.\n // Without this, the head cells are offset from their body cell counterparts\n <Box sx={{ marginInline: \"-0.1rem\" }}>\n <DragIndicatorIcon sx={{ marginInline: 1, opacity: 0 }} />\n </Box>\n ),\n },\n },\n \"mrt-row-select\": {\n muiTableHeadCellProps: {\n padding: \"checkbox\",\n },\n muiTableBodyCellProps: {\n padding: \"checkbox\",\n },\n },\n \"mrt-row-expand\": {\n header: \"\",\n },\n },\n muiTableBodyProps: () => ({\n className: rowDensityClassName,\n }),\n defaultColumn: {\n Cell: defaultCell,\n },\n muiTableBodyCellProps: ({ column }) => ({\n className: column.getIsResizing() ? \"isResizing\" : \"\",\n }),\n\n // Reordering\n enableRowOrdering: hasRowReordering && Boolean(onReorderRows),\n enableRowDragging: hasRowReordering && Boolean(onReorderRows),\n muiTableBodyRowProps: ({ table, row }) => ({\n className: draggableTableBodyRowClassName({\n currentRowId: row.id,\n draggingRowId: draggingRow?.id,\n hoveredRowId: table.getState().hoveredRow?.id,\n }),\n }),\n muiRowDragHandleProps: ({ table, row }) => ({\n onKeyDown: (event) => handleDragHandleKeyDown({ table, row, event }),\n onBlur: () => resetDraggingAndHoveredRow(table),\n onDragEnd: () => handleDragHandleOnDragEnd(table),\n onDragCapture: () => handleDragHandleOnDragCapture(table),\n sx: dragHandleStyles,\n ...dragHandleText,\n }),\n\n // Row actions\n enableRowActions: shouldDisplayRowActions,\n positionActionsColumn:\n \"last\" as MRT_TableOptions<DataTableRowData>[\"positionActionsColumn\"],\n renderRowActions: ({ row }) => renderRowActions({ row }),\n\n // Row selection\n enableRowSelection: hasRowSelection,\n onRowSelectionChange: setRowSelection,\n\n // Sorting\n enableSorting: hasSorting,\n onSortingChange: setColumnSorting,\n muiTableHeadCellProps: ({ column: currentColumn }) => ({\n className: columnSorting.find(\n (sortedColumn) => sortedColumn.id === currentColumn.id,\n )\n ? \"isSorted\"\n : \"isUnsorted\",\n }),\n\n // Virtualization\n enableRowVirtualization:\n paginationType !== \"loadMore\" && pagination.pageSize > 50,\n rowVirtualizerInstanceRef:\n useRef<MRT_RowVirtualizer<HTMLDivElement, HTMLTableRowElement>>(null),\n rowVirtualizerOptions: {\n overscan: 4,\n },\n\n // States\n renderEmptyRowsFallback: emptyState,\n\n // Refs\n muiTableProps: {\n ref: tableContentRef,\n className:\n !shouldDisplayRowActions && hasColumnResizing\n ? \"ods-hide-spacer-column\"\n : \"\",\n },\n\n muiTableContainerProps: {\n ref: tableInnerContainerRef,\n },\n\n // Row expansion\n enableExpandAll: false,\n renderDetailPanel: renderDetailPanel,\n });\n\n // Effects\n const bulkActionMenuButton = useMemo(\n () => (\n <>\n <MenuButton\n buttonVariant=\"secondary\"\n endIcon={<MoreIcon />}\n isDisabled={Object.keys(rowSelection).length === 0}\n ariaLabel=\"More actions\"\n >\n {bulkActionMenuItems?.(rowSelection)}\n </MenuButton>\n </>\n ),\n [bulkActionMenuItems, rowSelection],\n );\n\n useEffect(() => {\n (async () => {\n setIsLoading(true);\n setErrorMessage(errorMessageProp);\n try {\n const incomingData = await getData?.({\n page: pagination.pageIndex,\n resultsPerPage: pagination.pageSize,\n search,\n filters,\n sort: columnSorting,\n });\n setData(incomingData);\n } catch (error) {\n setErrorMessage(typeof error === \"string\" ? error : t(\"table.error\"));\n } finally {\n setIsLoading(false);\n }\n })();\n }, [\n columnSorting,\n errorMessageProp,\n filters,\n getData,\n pagination,\n search,\n t,\n ]);\n\n useEffect(() => {\n if (!initialFilters && filters) {\n setInitialFilters(filters);\n }\n\n setIsEmpty(\n pagination.pageIndex === currentPage &&\n pagination.pageSize === resultsPerPage &&\n search === \"\" &&\n filters === initialFilters &&\n data.length === 0,\n );\n }, [\n filters,\n pagination,\n search,\n data,\n currentPage,\n initialFilters,\n resultsPerPage,\n ]);\n\n useEffect(() => {\n setPagination((prev) => ({\n pageIndex: 1,\n pageSize: prev.pageSize,\n }));\n }, [filters, search]);\n\n useEffect(() => {\n onChangeRowSelection?.(rowSelection);\n }, [rowSelection, onChangeRowSelection]);\n\n const { lastRow } = usePagination({\n currentRowsCount: data.length,\n pageIndex: pagination.pageIndex,\n pageSize: pagination.pageSize,\n totalRows,\n });\n\n // Render the table\n return (\n <>\n {(hasSearch ||\n hasFilters ||\n hasChangeableDensity ||\n hasColumnVisibility ||\n bulkActionMenuItems) && (\n <Box sx={{ marginBottom: 5 }}>\n <DataFilters\n onChangeSearch={hasSearch ? setSearch : undefined}\n onChangeFilters={hasFilters ? setFilters : undefined}\n hasSearchSubmitButton={hasSearchSubmitButton}\n searchDelayTime={searchDelayTime}\n filters={hasFilters ? dataTableFilters : undefined}\n defaultSearchTerm={initialSearchValue}\n isDisabled={isEmpty}\n additionalActions={\n <>\n <DataTableSettings\n hasChangeableDensity={hasChangeableDensity}\n rowDensity={rowDensity}\n setRowDensity={setRowDensity}\n hasColumnVisibility={hasColumnVisibility}\n columns={columns}\n columnVisibility={columnVisibility}\n setColumnVisibility={setColumnVisibility}\n />\n {bulkActionMenuItems && bulkActionMenuButton}\n </>\n }\n />\n </Box>\n )}\n\n {errorMessage && (\n <Box sx={{ marginBlockEnd: 2 }}>\n <Callout severity=\"error\" text={errorMessage} />\n </Box>\n )}\n\n <ScrollableTableContainer\n odysseyDesignTokens={odysseyDesignTokens}\n isScrollableStart={!isTableContainerScrolledToStart}\n isScrollableEnd={!isTableContainerScrolledToEnd}\n ref={tableOuterContainerRef}\n >\n <MRT_TableContainer table={dataTable} />\n </ScrollableTableContainer>\n\n {hasPagination && (\n <Pagination\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n maxPageIndex={maxPages}\n maxPageSize={maxResultsPerPage}\n onPaginationChange={setPagination}\n lastRow={lastRow}\n totalRows={totalRows}\n currentRowsCount={data.length}\n isDisabled={isEmpty}\n isMoreDisabled={isPaginationMoreDisabled}\n variant={paginationType}\n rowsPerPageLabel={t(\"pagination.rowsperpage\")}\n currentPageLabel={t(\"pagination.page\")}\n previousLabel={t(\"pagination.previous\")}\n nextLabel={t(\"pagination.next\")}\n loadMoreLabel={t(\"pagination.loadmore\")}\n />\n )}\n </>\n );\n};\n\nconst MemoizedDataTable = memo(DataTable);\nMemoizedDataTable.displayName = \"DataTable\";\n\nexport { MemoizedDataTable as DataTable };\n"],"mappings":"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"}