@okta/odyssey-react-mui 1.58.0 → 1.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/dist/cjs/Accordion.cjs +1 -1
  2. package/dist/cjs/Autocomplete.cjs +1 -1
  3. package/dist/cjs/Badge.cjs +1 -1
  4. package/dist/cjs/Banner.cjs +1 -1
  5. package/dist/cjs/Box.cjs +1 -1
  6. package/dist/cjs/Breadcrumbs.cjs +1 -1
  7. package/dist/cjs/Buttons/BaseButton.cjs +1 -1
  8. package/dist/cjs/Buttons/BaseMenuButton.cjs +1 -1
  9. package/dist/cjs/Buttons/Button.cjs +1 -1
  10. package/dist/cjs/Buttons/MenuButton.cjs +1 -1
  11. package/dist/cjs/Buttons/MenuItem.cjs +1 -1
  12. package/dist/cjs/Callout.cjs +1 -1
  13. package/dist/cjs/Card.cjs +1 -1
  14. package/dist/cjs/CircularProgress.cjs +1 -1
  15. package/dist/cjs/ConditionalWrapper.cjs +1 -1
  16. package/dist/cjs/DataTable/DataTable.cjs +4 -2
  17. package/dist/cjs/DataTable/DataTable.cjs.map +1 -1
  18. package/dist/cjs/DataTable/DataTableRowActions.cjs +1 -1
  19. package/dist/cjs/DataTable/DataTableSettings.cjs +1 -1
  20. package/dist/cjs/DatePickers/DateField.cjs +1 -1
  21. package/dist/cjs/DatePickers/DateFieldActionBar.cjs +1 -1
  22. package/dist/cjs/DatePickers/DateFieldLocalizationProvider.cjs +1 -1
  23. package/dist/cjs/DatePickers/DatePicker.cjs +1 -1
  24. package/dist/cjs/DatePickers/TimeZonePicker.cjs +1 -1
  25. package/dist/cjs/Dialog.cjs +1 -1
  26. package/dist/cjs/Drawer.cjs +1 -1
  27. package/dist/cjs/EmptyState.cjs +1 -1
  28. package/dist/cjs/ErrorMessageList.cjs +1 -1
  29. package/dist/cjs/Field.cjs +1 -1
  30. package/dist/cjs/FieldError.cjs +1 -1
  31. package/dist/cjs/FieldHint.cjs +1 -1
  32. package/dist/cjs/FieldLabel.cjs +1 -1
  33. package/dist/cjs/Fields/Checkbox.cjs +1 -1
  34. package/dist/cjs/Fields/CheckboxGroup.cjs +1 -1
  35. package/dist/cjs/Fields/Radio.cjs +1 -1
  36. package/dist/cjs/Fields/RadioGroup.cjs +1 -1
  37. package/dist/cjs/Fieldset.cjs +1 -1
  38. package/dist/cjs/FileUploader/FileUploadIllustration.cjs +1 -1
  39. package/dist/cjs/FileUploader/FileUploadPreview.cjs +1 -1
  40. package/dist/cjs/FileUploader/FileUploader.cjs +1 -1
  41. package/dist/cjs/Form.cjs +1 -1
  42. package/dist/cjs/FullScreenOverlay.cjs +1 -1
  43. package/dist/cjs/FullScreenOverlayContext.cjs +1 -1
  44. package/dist/cjs/HintLink.cjs +1 -1
  45. package/dist/cjs/IconWithTooltip.cjs +1 -1
  46. package/dist/cjs/Link.cjs +1 -1
  47. package/dist/cjs/MuiPropsChild.cjs +1 -1
  48. package/dist/cjs/NativeSelect.cjs +1 -1
  49. package/dist/cjs/OdysseyCacheProvider.cjs +1 -1
  50. package/dist/cjs/OdysseyDesignTokensContext.cjs +3 -3
  51. package/dist/cjs/OdysseyDesignTokensContext.cjs.map +1 -1
  52. package/dist/cjs/OdysseyProvider.cjs +1 -1
  53. package/dist/cjs/OdysseyThemeProvider.cjs +27 -20
  54. package/dist/cjs/OdysseyThemeProvider.cjs.map +1 -1
  55. package/dist/cjs/OdysseyThemeProviderPropsContext.cjs +1 -1
  56. package/dist/cjs/Pagination/Pagination.cjs +1 -1
  57. package/dist/cjs/PasswordField.cjs +1 -1
  58. package/dist/cjs/ScreenReaderText.cjs +1 -1
  59. package/dist/cjs/SearchField.cjs +1 -1
  60. package/dist/cjs/Select.cjs +1 -1
  61. package/dist/cjs/Stack.cjs +1 -1
  62. package/dist/cjs/Status.cjs +1 -1
  63. package/dist/cjs/Surface.cjs +1 -1
  64. package/dist/cjs/Switch.cjs +2 -2
  65. package/dist/cjs/Tabs.cjs +1 -1
  66. package/dist/cjs/Tag.cjs +3 -2
  67. package/dist/cjs/Tag.cjs.map +1 -1
  68. package/dist/cjs/TagList.cjs +3 -1
  69. package/dist/cjs/TagList.cjs.map +1 -1
  70. package/dist/cjs/TextField.cjs +1 -1
  71. package/dist/cjs/Toast.cjs +1 -1
  72. package/dist/cjs/ToastStack.cjs +1 -1
  73. package/dist/cjs/Tooltip.cjs +1 -1
  74. package/dist/cjs/Typography.cjs +12 -12
  75. package/dist/cjs/icons.generated/Add.cjs +1 -1
  76. package/dist/cjs/icons.generated/AddCircle.cjs +1 -1
  77. package/dist/cjs/icons.generated/Apps.cjs +1 -1
  78. package/dist/cjs/icons.generated/AppsSelected.cjs +1 -1
  79. package/dist/cjs/icons.generated/ArrowBottom.cjs +1 -1
  80. package/dist/cjs/icons.generated/ArrowDown.cjs +1 -1
  81. package/dist/cjs/icons.generated/ArrowLeft.cjs +1 -1
  82. package/dist/cjs/icons.generated/ArrowLowerLeft.cjs +1 -1
  83. package/dist/cjs/icons.generated/ArrowLowerRight.cjs +1 -1
  84. package/dist/cjs/icons.generated/ArrowRight.cjs +1 -1
  85. package/dist/cjs/icons.generated/ArrowTop.cjs +1 -1
  86. package/dist/cjs/icons.generated/ArrowUnsorted.cjs +1 -1
  87. package/dist/cjs/icons.generated/ArrowUp.cjs +1 -1
  88. package/dist/cjs/icons.generated/ArrowUpperLeft.cjs +1 -1
  89. package/dist/cjs/icons.generated/ArrowUpperRight.cjs +1 -1
  90. package/dist/cjs/icons.generated/Bug.cjs +1 -1
  91. package/dist/cjs/icons.generated/Calendar.cjs +1 -1
  92. package/dist/cjs/icons.generated/Call.cjs +1 -1
  93. package/dist/cjs/icons.generated/Chat.cjs +1 -1
  94. package/dist/cjs/icons.generated/Check.cjs +1 -1
  95. package/dist/cjs/icons.generated/CheckCircleFilled.cjs +1 -1
  96. package/dist/cjs/icons.generated/ChevronDown.cjs +1 -1
  97. package/dist/cjs/icons.generated/ChevronLeft.cjs +1 -1
  98. package/dist/cjs/icons.generated/ChevronRight.cjs +1 -1
  99. package/dist/cjs/icons.generated/ChevronUp.cjs +1 -1
  100. package/dist/cjs/icons.generated/Clock.cjs +1 -1
  101. package/dist/cjs/icons.generated/Close.cjs +1 -1
  102. package/dist/cjs/icons.generated/CloseCircleFilled.cjs +1 -1
  103. package/dist/cjs/icons.generated/CollapseLeft.cjs +1 -1
  104. package/dist/cjs/icons.generated/CollapseRight.cjs +1 -1
  105. package/dist/cjs/icons.generated/Copy.cjs +1 -1
  106. package/dist/cjs/icons.generated/Custom.cjs +1 -1
  107. package/dist/cjs/icons.generated/Customizations.cjs +1 -1
  108. package/dist/cjs/icons.generated/CustomizationsSelected.cjs +1 -1
  109. package/dist/cjs/icons.generated/DangerDiamond.cjs +1 -1
  110. package/dist/cjs/icons.generated/DangerDiamondFilled.cjs +1 -1
  111. package/dist/cjs/icons.generated/Delete.cjs +1 -1
  112. package/dist/cjs/icons.generated/Deny.cjs +1 -1
  113. package/dist/cjs/icons.generated/Devices.cjs +1 -1
  114. package/dist/cjs/icons.generated/Directory.cjs +1 -1
  115. package/dist/cjs/icons.generated/DirectorySelected.cjs +1 -1
  116. package/dist/cjs/icons.generated/Documentation.cjs +1 -1
  117. package/dist/cjs/icons.generated/Download.cjs +1 -1
  118. package/dist/cjs/icons.generated/DragIndicator.cjs +1 -1
  119. package/dist/cjs/icons.generated/Duo.cjs +1 -1
  120. package/dist/cjs/icons.generated/Edit.cjs +1 -1
  121. package/dist/cjs/icons.generated/Email.cjs +1 -1
  122. package/dist/cjs/icons.generated/ExpandLeft.cjs +1 -1
  123. package/dist/cjs/icons.generated/ExpandRight.cjs +1 -1
  124. package/dist/cjs/icons.generated/ExternalLink.cjs +1 -1
  125. package/dist/cjs/icons.generated/Fido2.cjs +1 -1
  126. package/dist/cjs/icons.generated/Filter.cjs +1 -1
  127. package/dist/cjs/icons.generated/Folder.cjs +1 -1
  128. package/dist/cjs/icons.generated/Globe.cjs +1 -1
  129. package/dist/cjs/icons.generated/GoogleAuth.cjs +1 -1
  130. package/dist/cjs/icons.generated/Grid.cjs +1 -1
  131. package/dist/cjs/icons.generated/Group.cjs +1 -1
  132. package/dist/cjs/icons.generated/Happy.cjs +1 -1
  133. package/dist/cjs/icons.generated/Hide.cjs +1 -1
  134. package/dist/cjs/icons.generated/Home.cjs +1 -1
  135. package/dist/cjs/icons.generated/HomeSelected.cjs +1 -1
  136. package/dist/cjs/icons.generated/IdentityGovernance.cjs +1 -1
  137. package/dist/cjs/icons.generated/IdentityGovernanceSelected.cjs +1 -1
  138. package/dist/cjs/icons.generated/Idp.cjs +1 -1
  139. package/dist/cjs/icons.generated/InformationCircle.cjs +1 -1
  140. package/dist/cjs/icons.generated/InformationCircleFilled.cjs +1 -1
  141. package/dist/cjs/icons.generated/Link.cjs +1 -1
  142. package/dist/cjs/icons.generated/List.cjs +1 -1
  143. package/dist/cjs/icons.generated/Lock.cjs +1 -1
  144. package/dist/cjs/icons.generated/Menu.cjs +1 -1
  145. package/dist/cjs/icons.generated/More.cjs +1 -1
  146. package/dist/cjs/icons.generated/Neutral.cjs +1 -1
  147. package/dist/cjs/icons.generated/Notification.cjs +1 -1
  148. package/dist/cjs/icons.generated/OktaVerify.cjs +1 -1
  149. package/dist/cjs/icons.generated/OnPremMfa.cjs +1 -1
  150. package/dist/cjs/icons.generated/OneTimePassword.cjs +1 -1
  151. package/dist/cjs/icons.generated/Password.cjs +1 -1
  152. package/dist/cjs/icons.generated/Pause.cjs +1 -1
  153. package/dist/cjs/icons.generated/QuestionCircle.cjs +1 -1
  154. package/dist/cjs/icons.generated/QuestionCircleFilled.cjs +1 -1
  155. package/dist/cjs/icons.generated/Refresh.cjs +1 -1
  156. package/dist/cjs/icons.generated/Reports.cjs +1 -1
  157. package/dist/cjs/icons.generated/ReportsSelected.cjs +1 -1
  158. package/dist/cjs/icons.generated/Reset.cjs +1 -1
  159. package/dist/cjs/icons.generated/Resume.cjs +1 -1
  160. package/dist/cjs/icons.generated/Sad.cjs +1 -1
  161. package/dist/cjs/icons.generated/Same.cjs +1 -1
  162. package/dist/cjs/icons.generated/Search.cjs +1 -1
  163. package/dist/cjs/icons.generated/Security.cjs +1 -1
  164. package/dist/cjs/icons.generated/SecurityQuestion.cjs +1 -1
  165. package/dist/cjs/icons.generated/SecuritySelected.cjs +1 -1
  166. package/dist/cjs/icons.generated/Send.cjs +1 -1
  167. package/dist/cjs/icons.generated/Server.cjs +1 -1
  168. package/dist/cjs/icons.generated/Settings.cjs +1 -1
  169. package/dist/cjs/icons.generated/SettingsSelected.cjs +1 -1
  170. package/dist/cjs/icons.generated/Show.cjs +1 -1
  171. package/dist/cjs/icons.generated/SmartCard.cjs +1 -1
  172. package/dist/cjs/icons.generated/Sms.cjs +1 -1
  173. package/dist/cjs/icons.generated/Sparkle.cjs +1 -1
  174. package/dist/cjs/icons.generated/Subtract.cjs +1 -1
  175. package/dist/cjs/icons.generated/SymantecVip.cjs +1 -1
  176. package/dist/cjs/icons.generated/Sync.cjs +1 -1
  177. package/dist/cjs/icons.generated/ThumbsDown.cjs +1 -1
  178. package/dist/cjs/icons.generated/ThumbsUp.cjs +1 -1
  179. package/dist/cjs/icons.generated/Unlock.cjs +1 -1
  180. package/dist/cjs/icons.generated/Upload.cjs +1 -1
  181. package/dist/cjs/icons.generated/User.cjs +1 -1
  182. package/dist/cjs/icons.generated/Video.cjs +1 -1
  183. package/dist/cjs/icons.generated/VoiceCall.cjs +1 -1
  184. package/dist/cjs/icons.generated/Warning.cjs +1 -1
  185. package/dist/cjs/icons.generated/WarningFilled.cjs +1 -1
  186. package/dist/cjs/icons.generated/Workflows.cjs +1 -1
  187. package/dist/cjs/icons.generated/WorkflowsSelected.cjs +1 -1
  188. package/dist/cjs/icons.generated/Yubikey.cjs +1 -1
  189. package/dist/cjs/index.cjs.map +1 -1
  190. package/dist/cjs/labs/AppTile.cjs +1 -1
  191. package/dist/cjs/labs/DataFilters.cjs +19 -5
  192. package/dist/cjs/labs/DataFilters.cjs.map +1 -1
  193. package/dist/cjs/labs/DataTable.cjs +1 -1
  194. package/dist/cjs/labs/DataTablePagination.cjs +1 -1
  195. package/dist/cjs/labs/DataView/BulkActionsMenu.cjs +1 -1
  196. package/dist/cjs/labs/DataView/CardLayoutContent.cjs +2 -2
  197. package/dist/cjs/labs/DataView/DataCard.cjs +1 -1
  198. package/dist/cjs/labs/DataView/DataTable.cjs +1 -1
  199. package/dist/cjs/labs/DataView/DataView.cjs +9 -3
  200. package/dist/cjs/labs/DataView/DataView.cjs.map +1 -1
  201. package/dist/cjs/labs/DataView/DetailPanel.cjs +1 -1
  202. package/dist/cjs/labs/DataView/LayoutSwitcher.cjs +1 -1
  203. package/dist/cjs/labs/DataView/RowActions.cjs +1 -1
  204. package/dist/cjs/labs/DataView/TableLayoutContent.cjs +1 -1
  205. package/dist/cjs/labs/DataView/TableSettings.cjs +1 -1
  206. package/dist/cjs/labs/DataView/componentTypes.cjs.map +1 -1
  207. package/dist/cjs/labs/DataView/dataTypes.cjs.map +1 -1
  208. package/dist/cjs/labs/DatePickers/DateTimeField.cjs +1 -1
  209. package/dist/cjs/labs/DatePickers/DateTimePicker.cjs +1 -1
  210. package/dist/cjs/labs/OdysseyPickers/ComposablePicker.cjs +1 -1
  211. package/dist/cjs/labs/OdysseyPickers/Picker.cjs +1 -1
  212. package/dist/cjs/labs/OdysseyPickers/PickerVirtualizationListBox.cjs +1 -1
  213. package/dist/cjs/labs/OdysseyPickers/PickerWithOptionAdornment.cjs +1 -1
  214. package/dist/cjs/labs/OdysseyPickers/SearchDropdown.cjs +1 -1
  215. package/dist/cjs/labs/PageTemplate/DocumentationLink.cjs +1 -1
  216. package/dist/cjs/labs/PageTemplate/Layout.cjs +1 -1
  217. package/dist/cjs/labs/PageTemplate/PageTemplate.cjs +1 -1
  218. package/dist/cjs/labs/PaginatedTable.cjs +1 -1
  219. package/dist/cjs/labs/StaticTable.cjs +1 -1
  220. package/dist/cjs/labs/UserProfile.cjs +1 -1
  221. package/dist/cjs/labs/UserProfileMenuButton.cjs +1 -1
  222. package/dist/cjs/properties/ts/odyssey-react-mui.cjs +2 -0
  223. package/dist/cjs/properties/ts/odyssey-react-mui.cjs.map +1 -1
  224. package/dist/cjs/properties/ts/odyssey-react-mui_ok_PL.cjs +2 -0
  225. package/dist/cjs/properties/ts/odyssey-react-mui_ok_PL.cjs.map +1 -1
  226. package/dist/cjs/properties/ts/odyssey-react-mui_ok_SK.cjs +2 -0
  227. package/dist/cjs/properties/ts/odyssey-react-mui_ok_SK.cjs.map +1 -1
  228. package/dist/cjs/theme/components.cjs +7 -7
  229. package/dist/cjs/theme/components.cjs.map +1 -1
  230. package/dist/cjs/ui-shell/AppSwitcher/AppSwitcher.cjs +1 -1
  231. package/dist/cjs/ui-shell/InnerAppContainer.cjs +1 -1
  232. package/dist/cjs/ui-shell/NarrowUiShellContent.cjs +5 -2
  233. package/dist/cjs/ui-shell/NarrowUiShellContent.cjs.map +1 -1
  234. package/dist/cjs/ui-shell/SideNav/NavAccordion.cjs +1 -1
  235. package/dist/cjs/ui-shell/SideNav/SideNav.cjs +1 -1
  236. package/dist/cjs/ui-shell/SideNav/SideNavFooterContent.cjs +1 -1
  237. package/dist/cjs/ui-shell/SideNav/SideNavHeader.cjs +1 -1
  238. package/dist/cjs/ui-shell/SideNav/SideNavItemContent.cjs +1 -1
  239. package/dist/cjs/ui-shell/SideNav/SideNavItemLinkContent.cjs +1 -1
  240. package/dist/cjs/ui-shell/SideNav/SideNavSortableList.cjs +1 -1
  241. package/dist/cjs/ui-shell/SideNav/SideNavToggleButton.cjs +2 -2
  242. package/dist/cjs/ui-shell/SkipToContent.cjs +124 -0
  243. package/dist/cjs/ui-shell/SkipToContent.cjs.map +1 -0
  244. package/dist/cjs/ui-shell/TopNav/HamburgerMenuIcon.cjs +1 -1
  245. package/dist/cjs/ui-shell/TopNav/TopNav.cjs +1 -1
  246. package/dist/cjs/ui-shell/TopNav/TopNavLinksList.cjs +1 -1
  247. package/dist/cjs/ui-shell/TopNav/TopNavListItem.cjs +1 -1
  248. package/dist/cjs/ui-shell/UiShell.cjs +1 -1
  249. package/dist/cjs/ui-shell/UiShellLogo.cjs +1 -1
  250. package/dist/cjs/ui-shell/WideUiShellContent.cjs +5 -2
  251. package/dist/cjs/ui-shell/WideUiShellContent.cjs.map +1 -1
  252. package/dist/cjs/ui-shell/index.cjs +12 -0
  253. package/dist/cjs/ui-shell/index.cjs.map +1 -1
  254. package/dist/cjs/ui-shell/uiShellSharedConstants.cjs +2 -1
  255. package/dist/cjs/ui-shell/uiShellSharedConstants.cjs.map +1 -1
  256. package/dist/cjs/useContrastMode.cjs +38 -20
  257. package/dist/cjs/useContrastMode.cjs.map +1 -1
  258. package/dist/cjs/useThemeCache.cjs +53 -0
  259. package/dist/cjs/useThemeCache.cjs.map +1 -0
  260. package/dist/cjs/web-component/odysseyWebComponentVersion.generated.cjs +1 -1
  261. package/dist/cjs/web-component/odysseyWebComponentVersion.generated.cjs.map +1 -1
  262. package/dist/esm/Accordion.js +1 -1
  263. package/dist/esm/Autocomplete.js +1 -1
  264. package/dist/esm/Badge.js +1 -1
  265. package/dist/esm/Banner.js +1 -1
  266. package/dist/esm/Box.js +1 -1
  267. package/dist/esm/Breadcrumbs.js +1 -1
  268. package/dist/esm/Buttons/BaseButton.js +1 -1
  269. package/dist/esm/Buttons/BaseMenuButton.js +1 -1
  270. package/dist/esm/Buttons/Button.js +1 -1
  271. package/dist/esm/Buttons/MenuButton.js +1 -1
  272. package/dist/esm/Buttons/MenuItem.js +1 -1
  273. package/dist/esm/Callout.js +1 -1
  274. package/dist/esm/Card.js +1 -1
  275. package/dist/esm/CircularProgress.js +1 -1
  276. package/dist/esm/ConditionalWrapper.js +1 -1
  277. package/dist/esm/DataTable/DataTable.js +4 -2
  278. package/dist/esm/DataTable/DataTable.js.map +1 -1
  279. package/dist/esm/DataTable/DataTableRowActions.js +1 -1
  280. package/dist/esm/DataTable/DataTableSettings.js +1 -1
  281. package/dist/esm/DatePickers/DateField.js +1 -1
  282. package/dist/esm/DatePickers/DateFieldActionBar.js +1 -1
  283. package/dist/esm/DatePickers/DateFieldLocalizationProvider.js +1 -1
  284. package/dist/esm/DatePickers/DatePicker.js +1 -1
  285. package/dist/esm/DatePickers/TimeZonePicker.js +1 -1
  286. package/dist/esm/Dialog.js +1 -1
  287. package/dist/esm/Drawer.js +1 -1
  288. package/dist/esm/EmptyState.js +1 -1
  289. package/dist/esm/ErrorMessageList.js +1 -1
  290. package/dist/esm/Field.js +1 -1
  291. package/dist/esm/FieldError.js +1 -1
  292. package/dist/esm/FieldHint.js +1 -1
  293. package/dist/esm/FieldLabel.js +1 -1
  294. package/dist/esm/Fields/Checkbox.js +1 -1
  295. package/dist/esm/Fields/CheckboxGroup.js +1 -1
  296. package/dist/esm/Fields/Radio.js +1 -1
  297. package/dist/esm/Fields/RadioGroup.js +1 -1
  298. package/dist/esm/Fieldset.js +1 -1
  299. package/dist/esm/FileUploader/FileUploadIllustration.js +1 -1
  300. package/dist/esm/FileUploader/FileUploadPreview.js +1 -1
  301. package/dist/esm/FileUploader/FileUploader.js +1 -1
  302. package/dist/esm/Form.js +1 -1
  303. package/dist/esm/FullScreenOverlay.js +1 -1
  304. package/dist/esm/FullScreenOverlayContext.js +1 -1
  305. package/dist/esm/HintLink.js +1 -1
  306. package/dist/esm/IconWithTooltip.js +1 -1
  307. package/dist/esm/Link.js +1 -1
  308. package/dist/esm/MuiPropsChild.js +1 -1
  309. package/dist/esm/NativeSelect.js +1 -1
  310. package/dist/esm/OdysseyCacheProvider.js +1 -1
  311. package/dist/esm/OdysseyDesignTokensContext.js +3 -1
  312. package/dist/esm/OdysseyDesignTokensContext.js.map +1 -1
  313. package/dist/esm/OdysseyProvider.js +1 -1
  314. package/dist/esm/OdysseyThemeProvider.js +28 -21
  315. package/dist/esm/OdysseyThemeProvider.js.map +1 -1
  316. package/dist/esm/OdysseyThemeProviderPropsContext.js +1 -1
  317. package/dist/esm/Pagination/Pagination.js +1 -1
  318. package/dist/esm/PasswordField.js +1 -1
  319. package/dist/esm/ScreenReaderText.js +1 -1
  320. package/dist/esm/SearchField.js +1 -1
  321. package/dist/esm/Select.js +1 -1
  322. package/dist/esm/Stack.js +1 -1
  323. package/dist/esm/Status.js +1 -1
  324. package/dist/esm/Surface.js +1 -1
  325. package/dist/esm/Switch.js +2 -2
  326. package/dist/esm/Tabs.js +1 -1
  327. package/dist/esm/Tag.js +3 -2
  328. package/dist/esm/Tag.js.map +1 -1
  329. package/dist/esm/TagList.js +3 -1
  330. package/dist/esm/TagList.js.map +1 -1
  331. package/dist/esm/TextField.js +1 -1
  332. package/dist/esm/Toast.js +1 -1
  333. package/dist/esm/ToastStack.js +1 -1
  334. package/dist/esm/Tooltip.js +1 -1
  335. package/dist/esm/Typography.js +12 -12
  336. package/dist/esm/icons.generated/Add.js +1 -1
  337. package/dist/esm/icons.generated/AddCircle.js +1 -1
  338. package/dist/esm/icons.generated/Apps.js +1 -1
  339. package/dist/esm/icons.generated/AppsSelected.js +1 -1
  340. package/dist/esm/icons.generated/ArrowBottom.js +1 -1
  341. package/dist/esm/icons.generated/ArrowDown.js +1 -1
  342. package/dist/esm/icons.generated/ArrowLeft.js +1 -1
  343. package/dist/esm/icons.generated/ArrowLowerLeft.js +1 -1
  344. package/dist/esm/icons.generated/ArrowLowerRight.js +1 -1
  345. package/dist/esm/icons.generated/ArrowRight.js +1 -1
  346. package/dist/esm/icons.generated/ArrowTop.js +1 -1
  347. package/dist/esm/icons.generated/ArrowUnsorted.js +1 -1
  348. package/dist/esm/icons.generated/ArrowUp.js +1 -1
  349. package/dist/esm/icons.generated/ArrowUpperLeft.js +1 -1
  350. package/dist/esm/icons.generated/ArrowUpperRight.js +1 -1
  351. package/dist/esm/icons.generated/Bug.js +1 -1
  352. package/dist/esm/icons.generated/Calendar.js +1 -1
  353. package/dist/esm/icons.generated/Call.js +1 -1
  354. package/dist/esm/icons.generated/Chat.js +1 -1
  355. package/dist/esm/icons.generated/Check.js +1 -1
  356. package/dist/esm/icons.generated/CheckCircleFilled.js +1 -1
  357. package/dist/esm/icons.generated/ChevronDown.js +1 -1
  358. package/dist/esm/icons.generated/ChevronLeft.js +1 -1
  359. package/dist/esm/icons.generated/ChevronRight.js +1 -1
  360. package/dist/esm/icons.generated/ChevronUp.js +1 -1
  361. package/dist/esm/icons.generated/Clock.js +1 -1
  362. package/dist/esm/icons.generated/Close.js +1 -1
  363. package/dist/esm/icons.generated/CloseCircleFilled.js +1 -1
  364. package/dist/esm/icons.generated/CollapseLeft.js +1 -1
  365. package/dist/esm/icons.generated/CollapseRight.js +1 -1
  366. package/dist/esm/icons.generated/Copy.js +1 -1
  367. package/dist/esm/icons.generated/Custom.js +1 -1
  368. package/dist/esm/icons.generated/Customizations.js +1 -1
  369. package/dist/esm/icons.generated/CustomizationsSelected.js +1 -1
  370. package/dist/esm/icons.generated/DangerDiamond.js +1 -1
  371. package/dist/esm/icons.generated/DangerDiamondFilled.js +1 -1
  372. package/dist/esm/icons.generated/Delete.js +1 -1
  373. package/dist/esm/icons.generated/Deny.js +1 -1
  374. package/dist/esm/icons.generated/Devices.js +1 -1
  375. package/dist/esm/icons.generated/Directory.js +1 -1
  376. package/dist/esm/icons.generated/DirectorySelected.js +1 -1
  377. package/dist/esm/icons.generated/Documentation.js +1 -1
  378. package/dist/esm/icons.generated/Download.js +1 -1
  379. package/dist/esm/icons.generated/DragIndicator.js +1 -1
  380. package/dist/esm/icons.generated/Duo.js +1 -1
  381. package/dist/esm/icons.generated/Edit.js +1 -1
  382. package/dist/esm/icons.generated/Email.js +1 -1
  383. package/dist/esm/icons.generated/ExpandLeft.js +1 -1
  384. package/dist/esm/icons.generated/ExpandRight.js +1 -1
  385. package/dist/esm/icons.generated/ExternalLink.js +1 -1
  386. package/dist/esm/icons.generated/Fido2.js +1 -1
  387. package/dist/esm/icons.generated/Filter.js +1 -1
  388. package/dist/esm/icons.generated/Folder.js +1 -1
  389. package/dist/esm/icons.generated/Globe.js +1 -1
  390. package/dist/esm/icons.generated/GoogleAuth.js +1 -1
  391. package/dist/esm/icons.generated/Grid.js +1 -1
  392. package/dist/esm/icons.generated/Group.js +1 -1
  393. package/dist/esm/icons.generated/Happy.js +1 -1
  394. package/dist/esm/icons.generated/Hide.js +1 -1
  395. package/dist/esm/icons.generated/Home.js +1 -1
  396. package/dist/esm/icons.generated/HomeSelected.js +1 -1
  397. package/dist/esm/icons.generated/IdentityGovernance.js +1 -1
  398. package/dist/esm/icons.generated/IdentityGovernanceSelected.js +1 -1
  399. package/dist/esm/icons.generated/Idp.js +1 -1
  400. package/dist/esm/icons.generated/InformationCircle.js +1 -1
  401. package/dist/esm/icons.generated/InformationCircleFilled.js +1 -1
  402. package/dist/esm/icons.generated/Link.js +1 -1
  403. package/dist/esm/icons.generated/List.js +1 -1
  404. package/dist/esm/icons.generated/Lock.js +1 -1
  405. package/dist/esm/icons.generated/Menu.js +1 -1
  406. package/dist/esm/icons.generated/More.js +1 -1
  407. package/dist/esm/icons.generated/Neutral.js +1 -1
  408. package/dist/esm/icons.generated/Notification.js +1 -1
  409. package/dist/esm/icons.generated/OktaVerify.js +1 -1
  410. package/dist/esm/icons.generated/OnPremMfa.js +1 -1
  411. package/dist/esm/icons.generated/OneTimePassword.js +1 -1
  412. package/dist/esm/icons.generated/Password.js +1 -1
  413. package/dist/esm/icons.generated/Pause.js +1 -1
  414. package/dist/esm/icons.generated/QuestionCircle.js +1 -1
  415. package/dist/esm/icons.generated/QuestionCircleFilled.js +1 -1
  416. package/dist/esm/icons.generated/Refresh.js +1 -1
  417. package/dist/esm/icons.generated/Reports.js +1 -1
  418. package/dist/esm/icons.generated/ReportsSelected.js +1 -1
  419. package/dist/esm/icons.generated/Reset.js +1 -1
  420. package/dist/esm/icons.generated/Resume.js +1 -1
  421. package/dist/esm/icons.generated/Sad.js +1 -1
  422. package/dist/esm/icons.generated/Same.js +1 -1
  423. package/dist/esm/icons.generated/Search.js +1 -1
  424. package/dist/esm/icons.generated/Security.js +1 -1
  425. package/dist/esm/icons.generated/SecurityQuestion.js +1 -1
  426. package/dist/esm/icons.generated/SecuritySelected.js +1 -1
  427. package/dist/esm/icons.generated/Send.js +1 -1
  428. package/dist/esm/icons.generated/Server.js +1 -1
  429. package/dist/esm/icons.generated/Settings.js +1 -1
  430. package/dist/esm/icons.generated/SettingsSelected.js +1 -1
  431. package/dist/esm/icons.generated/Show.js +1 -1
  432. package/dist/esm/icons.generated/SmartCard.js +1 -1
  433. package/dist/esm/icons.generated/Sms.js +1 -1
  434. package/dist/esm/icons.generated/Sparkle.js +1 -1
  435. package/dist/esm/icons.generated/Subtract.js +1 -1
  436. package/dist/esm/icons.generated/SymantecVip.js +1 -1
  437. package/dist/esm/icons.generated/Sync.js +1 -1
  438. package/dist/esm/icons.generated/ThumbsDown.js +1 -1
  439. package/dist/esm/icons.generated/ThumbsUp.js +1 -1
  440. package/dist/esm/icons.generated/Unlock.js +1 -1
  441. package/dist/esm/icons.generated/Upload.js +1 -1
  442. package/dist/esm/icons.generated/User.js +1 -1
  443. package/dist/esm/icons.generated/Video.js +1 -1
  444. package/dist/esm/icons.generated/VoiceCall.js +1 -1
  445. package/dist/esm/icons.generated/Warning.js +1 -1
  446. package/dist/esm/icons.generated/WarningFilled.js +1 -1
  447. package/dist/esm/icons.generated/Workflows.js +1 -1
  448. package/dist/esm/icons.generated/WorkflowsSelected.js +1 -1
  449. package/dist/esm/icons.generated/Yubikey.js +1 -1
  450. package/dist/esm/index.js.map +1 -1
  451. package/dist/esm/labs/AppTile.js +1 -1
  452. package/dist/esm/labs/DataFilters.js +19 -5
  453. package/dist/esm/labs/DataFilters.js.map +1 -1
  454. package/dist/esm/labs/DataTable.js +1 -1
  455. package/dist/esm/labs/DataTablePagination.js +1 -1
  456. package/dist/esm/labs/DataView/BulkActionsMenu.js +1 -1
  457. package/dist/esm/labs/DataView/CardLayoutContent.js +2 -2
  458. package/dist/esm/labs/DataView/DataCard.js +1 -1
  459. package/dist/esm/labs/DataView/DataTable.js +1 -1
  460. package/dist/esm/labs/DataView/DataView.js +9 -3
  461. package/dist/esm/labs/DataView/DataView.js.map +1 -1
  462. package/dist/esm/labs/DataView/DetailPanel.js +1 -1
  463. package/dist/esm/labs/DataView/LayoutSwitcher.js +1 -1
  464. package/dist/esm/labs/DataView/RowActions.js +1 -1
  465. package/dist/esm/labs/DataView/TableLayoutContent.js +1 -1
  466. package/dist/esm/labs/DataView/TableSettings.js +1 -1
  467. package/dist/esm/labs/DataView/componentTypes.js.map +1 -1
  468. package/dist/esm/labs/DataView/dataTypes.js.map +1 -1
  469. package/dist/esm/labs/DatePickers/DateTimeField.js +1 -1
  470. package/dist/esm/labs/DatePickers/DateTimePicker.js +1 -1
  471. package/dist/esm/labs/OdysseyPickers/ComposablePicker.js +1 -1
  472. package/dist/esm/labs/OdysseyPickers/Picker.js +1 -1
  473. package/dist/esm/labs/OdysseyPickers/PickerVirtualizationListBox.js +1 -1
  474. package/dist/esm/labs/OdysseyPickers/PickerWithOptionAdornment.js +1 -1
  475. package/dist/esm/labs/OdysseyPickers/SearchDropdown.js +1 -1
  476. package/dist/esm/labs/PageTemplate/DocumentationLink.js +1 -1
  477. package/dist/esm/labs/PageTemplate/Layout.js +1 -1
  478. package/dist/esm/labs/PageTemplate/PageTemplate.js +1 -1
  479. package/dist/esm/labs/PaginatedTable.js +1 -1
  480. package/dist/esm/labs/StaticTable.js +1 -1
  481. package/dist/esm/labs/UserProfile.js +1 -1
  482. package/dist/esm/labs/UserProfileMenuButton.js +1 -1
  483. package/dist/esm/properties/ts/odyssey-react-mui.js +2 -0
  484. package/dist/esm/properties/ts/odyssey-react-mui.js.map +1 -1
  485. package/dist/esm/properties/ts/odyssey-react-mui_ok_PL.js +2 -0
  486. package/dist/esm/properties/ts/odyssey-react-mui_ok_PL.js.map +1 -1
  487. package/dist/esm/properties/ts/odyssey-react-mui_ok_SK.js +2 -0
  488. package/dist/esm/properties/ts/odyssey-react-mui_ok_SK.js.map +1 -1
  489. package/dist/esm/theme/components.js +7 -7
  490. package/dist/esm/theme/components.js.map +1 -1
  491. package/dist/esm/ui-shell/AppSwitcher/AppSwitcher.js +1 -1
  492. package/dist/esm/ui-shell/InnerAppContainer.js +1 -1
  493. package/dist/esm/ui-shell/NarrowUiShellContent.js +5 -2
  494. package/dist/esm/ui-shell/NarrowUiShellContent.js.map +1 -1
  495. package/dist/esm/ui-shell/SideNav/NavAccordion.js +1 -1
  496. package/dist/esm/ui-shell/SideNav/SideNav.js +1 -1
  497. package/dist/esm/ui-shell/SideNav/SideNavFooterContent.js +1 -1
  498. package/dist/esm/ui-shell/SideNav/SideNavHeader.js +1 -1
  499. package/dist/esm/ui-shell/SideNav/SideNavItemContent.js +1 -1
  500. package/dist/esm/ui-shell/SideNav/SideNavItemLinkContent.js +1 -1
  501. package/dist/esm/ui-shell/SideNav/SideNavSortableList.js +1 -1
  502. package/dist/esm/ui-shell/SideNav/SideNavToggleButton.js +2 -2
  503. package/dist/esm/ui-shell/SkipToContent.js +118 -0
  504. package/dist/esm/ui-shell/SkipToContent.js.map +1 -0
  505. package/dist/esm/ui-shell/TopNav/HamburgerMenuIcon.js +1 -1
  506. package/dist/esm/ui-shell/TopNav/TopNav.js +1 -1
  507. package/dist/esm/ui-shell/TopNav/TopNavLinksList.js +1 -1
  508. package/dist/esm/ui-shell/TopNav/TopNavListItem.js +1 -1
  509. package/dist/esm/ui-shell/UiShell.js +1 -1
  510. package/dist/esm/ui-shell/UiShellLogo.js +1 -1
  511. package/dist/esm/ui-shell/WideUiShellContent.js +5 -2
  512. package/dist/esm/ui-shell/WideUiShellContent.js.map +1 -1
  513. package/dist/esm/ui-shell/index.js +2 -1
  514. package/dist/esm/ui-shell/index.js.map +1 -1
  515. package/dist/esm/ui-shell/uiShellSharedConstants.js +1 -0
  516. package/dist/esm/ui-shell/uiShellSharedConstants.js.map +1 -1
  517. package/dist/esm/useContrastMode.js +37 -20
  518. package/dist/esm/useContrastMode.js.map +1 -1
  519. package/dist/esm/useThemeCache.js +46 -0
  520. package/dist/esm/useThemeCache.js.map +1 -0
  521. package/dist/esm/web-component/odysseyWebComponentVersion.generated.js +1 -1
  522. package/dist/esm/web-component/odysseyWebComponentVersion.generated.js.map +1 -1
  523. package/dist/tsconfig.production.tsbuildinfo +1 -1
  524. package/dist/types/DataTable/DataTable.d.ts +5 -1
  525. package/dist/types/DataTable/DataTable.d.ts.map +1 -1
  526. package/dist/types/OdysseyDesignTokensContext.d.ts +678 -3
  527. package/dist/types/OdysseyDesignTokensContext.d.ts.map +1 -1
  528. package/dist/types/OdysseyThemeProvider.d.ts.map +1 -1
  529. package/dist/types/Tag.d.ts +1 -1
  530. package/dist/types/Tag.d.ts.map +1 -1
  531. package/dist/types/TagList.d.ts +2 -2
  532. package/dist/types/TagList.d.ts.map +1 -1
  533. package/dist/types/i18n.generated/i18n.d.ts +4 -0
  534. package/dist/types/i18n.generated/i18n.d.ts.map +1 -1
  535. package/dist/types/i18n.generated/i18n.resources.d.ts +6 -0
  536. package/dist/types/i18n.generated/i18n.resources.d.ts.map +1 -1
  537. package/dist/types/index.d.ts +1 -0
  538. package/dist/types/index.d.ts.map +1 -1
  539. package/dist/types/labs/DataFilters.d.ts +10 -1
  540. package/dist/types/labs/DataFilters.d.ts.map +1 -1
  541. package/dist/types/labs/DataView/DataView.d.ts.map +1 -1
  542. package/dist/types/labs/DataView/componentTypes.d.ts +4 -1
  543. package/dist/types/labs/DataView/componentTypes.d.ts.map +1 -1
  544. package/dist/types/labs/DataView/dataTypes.d.ts +2 -1
  545. package/dist/types/labs/DataView/dataTypes.d.ts.map +1 -1
  546. package/dist/types/properties/ts/odyssey-react-mui.d.ts +2 -0
  547. package/dist/types/properties/ts/odyssey-react-mui.d.ts.map +1 -1
  548. package/dist/types/properties/ts/odyssey-react-mui_ok_PL.d.ts +2 -0
  549. package/dist/types/properties/ts/odyssey-react-mui_ok_PL.d.ts.map +1 -1
  550. package/dist/types/properties/ts/odyssey-react-mui_ok_SK.d.ts +2 -0
  551. package/dist/types/properties/ts/odyssey-react-mui_ok_SK.d.ts.map +1 -1
  552. package/dist/types/theme/components.d.ts.map +1 -1
  553. package/dist/types/ui-shell/NarrowUiShellContent.d.ts.map +1 -1
  554. package/dist/types/ui-shell/SkipToContent.d.ts +17 -0
  555. package/dist/types/ui-shell/SkipToContent.d.ts.map +1 -0
  556. package/dist/types/ui-shell/WideUiShellContent.d.ts.map +1 -1
  557. package/dist/types/ui-shell/index.d.ts +2 -1
  558. package/dist/types/ui-shell/index.d.ts.map +1 -1
  559. package/dist/types/ui-shell/uiShellSharedConstants.d.ts +1 -0
  560. package/dist/types/ui-shell/uiShellSharedConstants.d.ts.map +1 -1
  561. package/dist/types/useContrastMode.d.ts +6 -2
  562. package/dist/types/useContrastMode.d.ts.map +1 -1
  563. package/dist/types/useThemeCache.d.ts +28 -0
  564. package/dist/types/useThemeCache.d.ts.map +1 -0
  565. package/dist/types/web-component/odysseyWebComponentVersion.generated.d.ts +1 -1
  566. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"DataFilters.js","names":["styled","memo","useCallback","useEffect","useMemo","useRef","useState","Autocomplete","Box","Button","Checkbox","CheckboxGroup","Radio","RadioGroup","Trans","useTranslation","CheckIcon","ChevronRightIcon","CloseCircleFilledIcon","FilterIcon","useOdysseyDesignTokens","SearchField","Tag","TagList","TextField","Subordinate","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","StyledAutocompleteOuterContainer","shouldForwardProp","prop","odysseyDesignTokens","display","alignItems","gap","Spacing2","StyledAutocompleteInnerContainer","width","FilterTags","activeFilters","updateFilterAndInputValues","filtersWithValues","filter","activeFilter","value","filtersToRender","forEach","Array","isArray","filterValue","optionLabel","label","optionValue","push","filterId","id","filterLabel","getFilter","find","removeValueFromFilterAndInput","removedFilterValue","currentFilter","updatedValues","currentValue","length","undefined","children","map","chip","onRemove","MemoizedFilterTags","displayName","DataFilters","onChangeSearch","onChangeFilters","hasSearchSubmitButton","searchDelayTime","defaultSearchTerm","additionalActions","filters","filtersProp","isDisabled","setFilters","t","initialInputValues","reduce","accumulator","inputValues","setInputValues","searchValue","setSearchValue","isFiltersMenuOpen","setIsFiltersMenuOpen","filtersMenuAnchorElement","setFiltersMenuAnchorElement","isFilterPopoverOpen","setIsFilterPopoverOpen","filterPopoverAnchorElement","setFilterPopoverAnchorElement","filterPopoverCurrentFilter","setFilterPopoverCurrentFilter","menuRef","debouncer","current","clearTimeout","setTimeout","autocompleteOptions","options","updateInputValue","updateFilters","prevInputValues","updatedFilters","handleCheckboxFilterAndInputValueChange","option","checked","currentValues","inputValue","normalizedUpdatedValues","handleAutocompleteFilterChange","clearAllFilters","updatedInputValues","handleFilterSubmit","filterMenu","ariaControls","ariaExpanded","ariaHasPopup","ariaLabel","endIcon","onClick","event","currentTarget","variant","_Menu","anchorEl","anchorOrigin","horizontal","vertical","onClose","open","PaperProps","ref","transformOrigin","latestFilterValue","f","_MenuItem","className","selected","sx","justifyContent","minWidth","paddingBlock","paddingInlineStart","marginRight","_Typography","fontWeight","marginBlockEnd","component","i18nKey","values","toLowerCase","count","autoCompleteValue","maxWidth","_Popover","elevation","ev","menuRect","getBoundingClientRect","clickInsideMenu","clientX","left","right","clientY","top","bottom","marginLeft","marginTop","padding","noValidate","onSubmit","preventDefault","render","hasMultipleChoices","isCustomValueAllowed","onChange","_","type","endAdornment","_IconButton","size","hasInitialFocus","isRequired","checkFilterInputValuesAsArray","isOptionValueInInputValues","some","isChecked","style","target","onClear","placeholder","borderTopWidth","borderTopColor","borderTopStyle","paddingTop","MemoizedDataFilters"],"sources":["../../../src/labs/DataFilters.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 styled from \"@emotion/styled\";\nimport {\n IconButton as MuiIconButton,\n Menu as MuiMenu,\n MenuItem as MuiMenuItem,\n Popover as MuiPopover,\n Typography as MuiTypography,\n} from \"@mui/material\";\nimport { MRT_ColumnDef, MRT_RowData } from \"material-react-table\";\nimport {\n memo,\n MutableRefObject,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { Autocomplete } from \"../Autocomplete.js\";\nimport { Box } from \"../Box.js\";\nimport { Button } from \"../Buttons/Button.js\";\nimport { Checkbox } from \"../Fields/Checkbox.js\";\nimport { CheckboxGroup } from \"../Fields/CheckboxGroup.js\";\nimport { Radio } from \"../Fields/Radio.js\";\nimport { RadioGroup } from \"../Fields/RadioGroup.js\";\nimport { Trans, useTranslation } from \"../i18n.generated/i18n.js\";\nimport {\n CheckIcon,\n ChevronRightIcon,\n CloseCircleFilledIcon,\n FilterIcon,\n} from \"../icons.generated/index.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../OdysseyDesignTokensContext.js\";\nimport { SearchField } from \"../SearchField.js\";\nimport { Tag } from \"../Tag.js\";\nimport { TagList } from \"../TagList.js\";\nimport { TextField } from \"../TextField.js\";\nimport { Subordinate } from \"../Typography.js\";\n\nconst StyledAutocompleteOuterContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"flex-end\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst StyledAutocompleteInnerContainer = styled(\"div\")({\n width: \"100%\",\n});\n\ntype Option = {\n label: string;\n value: string;\n};\n\nexport type DataFilterValue = string | string[] | Option[] | undefined;\n\nexport type UpdateFiltersOrValues = ({\n filterId,\n value,\n}: {\n filterId: string;\n value: DataFilterValue;\n}) => void;\n\n// This is the shape of each individual filter\nexport type DataFilter = {\n /**\n * A unique ID for the filter, typically the same id\n * as the column it'll be applied to.\n */\n id: Exclude<MRT_ColumnDef<MRT_RowData>[\"accessorKey\"], undefined>;\n /**\n * `Autocomplete` normally only allows values that exist in the list box. This feature allows you to enter in any value in the text field and have that be the stored value in `Autocomplete`\n *\n * NOTE: This only applies when `variant` is `autocomplete`\n */\n isCustomValueAllowed?: boolean;\n /**\n * The human-friendly name of the filter.\n */\n label: string;\n /**\n * If the filter control has preset options (such as a select or multi-select),\n * these are the options provided.\n */\n options?: Option[];\n /**\n * A callback which renders a custom filter control\n */\n render?: (updateFilters: UpdateFiltersOrValues) => ReactNode;\n /**\n * The current value of the filter. Typically a string, but\n * filters that allow for multiple selections (such as multi-select)\n * can accept an array.\n */\n value?: DataFilterValue;\n /**\n * The type of filter, which determines which filtering control\n * is shown.\n */\n variant?: MRT_ColumnDef<MRT_RowData>[\"filterVariant\"];\n};\n\n// This is the type of the DataFilters component itself\nexport type DataFiltersProps = {\n /**\n * A slot for optional additional actions, like buttons, to be displayed\n * on the opposite side of the top row from the search and filter controls.\n */\n additionalActions?: ReactNode;\n /**\n * The starting value of the search input\n */\n defaultSearchTerm?: string;\n /**\n * The filters available in the filter menu. If undefined,\n * the filter menu won't be shown.\n */\n filters?: Array<DataFilter>;\n /**\n * If true, a Search button will be provided alongside the search input\n * and `onChangeSearch` will fire when the button is clicked, rather than\n * whenever the input value changes.\n */\n hasSearchSubmitButton?: boolean;\n /**\n * If true, the filter and search will be disabled\n */\n isDisabled?: boolean;\n /**\n * The callback that's fired when filter values change.\n */\n onChangeFilters?: (filters: Array<DataFilter>) => void;\n /**\n * The callback that's fired when the search input changes\n * (either on change or on submit, based on the value of `hasSearchSubmitButton`).\n * If this is undefined, the search input will not be shown.\n */\n onChangeSearch?: (value: string) => void;\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\ntype FilterTagsProps = {\n activeFilters: DataFilter[];\n updateFilterAndInputValues: UpdateFiltersOrValues;\n};\n\ntype FiltersToRender = {\n filterId: string;\n filterLabel: string;\n optionLabel: string;\n optionValue: string;\n};\n\nconst FilterTags = ({\n activeFilters,\n updateFilterAndInputValues,\n}: FilterTagsProps) => {\n const filtersWithValues = activeFilters.filter(\n (activeFilter: DataFilter) => activeFilter.value,\n );\n const filtersToRender: FiltersToRender[] = [];\n\n filtersWithValues.forEach((filter) => {\n if (Array.isArray(filter.value)) {\n filter.value.forEach((filterValue) => {\n const optionLabel =\n typeof filterValue === \"string\" ? filterValue : filterValue.label;\n const optionValue =\n typeof filterValue === \"string\" ? filterValue : filterValue.value;\n filtersToRender.push({\n filterId: filter.id,\n filterLabel: filter.label,\n optionLabel,\n optionValue,\n });\n });\n }\n if (typeof filter.value === \"string\") {\n filtersToRender.push({\n filterId: filter.id,\n filterLabel: filter.label,\n optionLabel: filter.value,\n optionValue: filter.value,\n });\n }\n });\n\n const getFilter = (id: string) =>\n filtersWithValues.find((filter) => filter.id === id);\n\n const removeValueFromFilterAndInput = (\n id: string,\n removedFilterValue: string,\n ) => {\n const currentFilter = getFilter(id);\n\n if (currentFilter) {\n const { value } = currentFilter;\n\n if (Array.isArray(value)) {\n const updatedValues = value.filter((currentValue) => {\n return (currentValue as Option).value !== removedFilterValue;\n });\n updateFilterAndInputValues({\n filterId: id,\n value:\n updatedValues.length > 0 ? (updatedValues as Option[]) : undefined,\n });\n }\n\n if (typeof value === \"string\") {\n updateFilterAndInputValues({\n filterId: id,\n value: undefined,\n });\n }\n }\n };\n\n return (\n <TagList>\n {filtersToRender.map((chip) => (\n <Tag\n key={`${chip.filterLabel}: ${chip.optionValue}`}\n label={`${chip.filterLabel}: ${chip.optionLabel}`}\n onRemove={() =>\n removeValueFromFilterAndInput(chip.filterId, chip.optionValue)\n }\n />\n ))}\n </TagList>\n );\n};\n\nconst MemoizedFilterTags = memo(FilterTags);\nMemoizedFilterTags.displayName = \"FilterTags\";\n\nconst DataFilters = ({\n onChangeSearch,\n onChangeFilters,\n hasSearchSubmitButton = false,\n searchDelayTime = 200,\n defaultSearchTerm = \"\",\n additionalActions,\n filters: filtersProp = [],\n isDisabled,\n}: DataFiltersProps) => {\n const [filters, setFilters] = useState<DataFilter[]>(filtersProp);\n const { t } = useTranslation();\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const initialInputValues = useMemo(() => {\n return filtersProp.reduce(\n (accumulator, filter) => {\n accumulator[filter.id] = filter.value;\n return accumulator;\n },\n {} as Record<string, DataFilterValue>,\n );\n }, [filtersProp]);\n\n const [inputValues, setInputValues] = useState(initialInputValues);\n\n const [searchValue, setSearchValue] = useState<string>(defaultSearchTerm);\n\n const activeFilters = useMemo(() => {\n return filters.filter((filter) => filter.value);\n }, [filters]);\n\n const [isFiltersMenuOpen, setIsFiltersMenuOpen] = useState<boolean>(false);\n\n const [filtersMenuAnchorElement, setFiltersMenuAnchorElement] = useState<\n HTMLElement | undefined\n >();\n\n const [isFilterPopoverOpen, setIsFilterPopoverOpen] =\n useState<boolean>(false);\n\n const [filterPopoverAnchorElement, setFilterPopoverAnchorElement] = useState<\n HTMLElement | undefined\n >();\n\n const [filterPopoverCurrentFilter, setFilterPopoverCurrentFilter] = useState<\n DataFilter | undefined\n >();\n\n const menuRef = useRef<HTMLDivElement>();\n\n useEffect(() => {\n onChangeFilters?.(filters);\n }, [filters, onChangeFilters]);\n\n const debouncer = useRef<NodeJS.Timeout | undefined>(undefined);\n\n useEffect(() => {\n if (!hasSearchSubmitButton) {\n if (debouncer.current) {\n clearTimeout(debouncer.current);\n }\n\n debouncer.current = setTimeout(() => {\n onChangeSearch?.(searchValue ?? \"\");\n }, searchDelayTime);\n }\n }, [onChangeSearch, searchValue, searchDelayTime, hasSearchSubmitButton]);\n\n const autocompleteOptions = useMemo(() => {\n return filterPopoverCurrentFilter?.options || [];\n }, [filterPopoverCurrentFilter]);\n\n const updateInputValue = useCallback<UpdateFiltersOrValues>(\n ({ filterId, value }) => {\n setInputValues({ ...inputValues, [filterId]: value });\n },\n [inputValues],\n );\n\n const updateFilters = useCallback<UpdateFiltersOrValues>(\n ({ filterId, value }) => {\n setInputValues((prevInputValues) => ({\n ...prevInputValues,\n [filterId]: value,\n }));\n const updatedFilters = filtersProp.map((filter) => ({\n ...filter,\n value: filter.id === filterId ? value : inputValues[filter.id],\n }));\n setFilters(updatedFilters);\n },\n [inputValues, filtersProp],\n );\n\n const updateFilterAndInputValues = useCallback<UpdateFiltersOrValues>(\n ({ filterId, value }) => {\n updateInputValue({ filterId, value });\n updateFilters({ filterId, value });\n },\n [updateFilters, updateInputValue],\n );\n\n const handleCheckboxFilterAndInputValueChange = useCallback<\n (filterId: string, option: Option, checked: boolean) => void\n >(\n (filterId, option, checked) => {\n const currentValues = (inputValues[filterId] as Option[]) || [];\n\n const updatedValues = checked\n ? [...currentValues, option]\n : currentValues.filter(\n (inputValue) => inputValue.value !== option.value,\n );\n\n const normalizedUpdatedValues =\n updatedValues.length > 0 ? updatedValues : undefined;\n\n setInputValues({\n ...inputValues,\n [filterId]: normalizedUpdatedValues,\n });\n\n const updatedFilters = filters.map((filter) => ({\n ...filter,\n value:\n filter.id === filterId\n ? normalizedUpdatedValues\n : inputValues[filter.id],\n }));\n\n setFilters(updatedFilters);\n },\n [filters, inputValues],\n );\n\n const handleAutocompleteFilterChange = useCallback<\n (filterId: string, option: Option[]) => void\n >(\n (filterId, option) => {\n setInputValues({ ...inputValues, [filterId]: option });\n },\n [inputValues],\n );\n\n const clearAllFilters = useCallback(() => {\n const updatedInputValues = filtersProp.reduce(\n (accumulator, filter) => {\n accumulator[filter.id] = undefined;\n return accumulator;\n },\n {} as Record<string, DataFilterValue>,\n );\n\n setInputValues(updatedInputValues);\n\n const updatedFilters = filtersProp.map((filter) => ({\n ...filter,\n value: undefined,\n }));\n\n setFilters(updatedFilters);\n }, [filtersProp]);\n\n const handleFilterSubmit = useCallback(() => {\n const updatedFilters = filtersProp.map((filter) => ({\n ...filter,\n value: inputValues[filter.id],\n }));\n\n setFilters(updatedFilters);\n }, [inputValues, filtersProp]);\n\n const filterMenu = useMemo(\n () => (\n <>\n <Box>\n <Button\n ariaControls={isFiltersMenuOpen ? \"filters-menu\" : undefined}\n ariaExpanded={isFiltersMenuOpen ? \"true\" : undefined}\n ariaHasPopup=\"true\"\n ariaLabel={t(\"filters.filters.arialabel\")}\n endIcon={<FilterIcon />}\n isDisabled={isDisabled}\n onClick={(event) => {\n setFiltersMenuAnchorElement(event.currentTarget);\n setIsFiltersMenuOpen(true);\n }}\n variant=\"secondary\"\n />\n </Box>\n\n <MuiMenu\n anchorEl={filtersMenuAnchorElement}\n anchorOrigin={{ horizontal: \"left\", vertical: \"bottom\" }}\n id=\"filters-menu\"\n onClose={() => setIsFiltersMenuOpen(false)}\n open={isFiltersMenuOpen}\n PaperProps={{\n ref: menuRef as MutableRefObject<HTMLDivElement>,\n }}\n transformOrigin={{ horizontal: \"left\", vertical: \"top\" }}\n >\n {filtersProp.map((filter) => {\n // Unintuitively, we can't just use filter.value to grab the filter value.\n // `filter` is the initial set of filters provided to the component, so its\n // value prop may not reflect the current value of the filter.\n const latestFilterValue = filters.find(\n (f) => f.id === filter.id,\n )?.value;\n\n return (\n <MuiMenuItem\n aria-controls={isFilterPopoverOpen ? \"filter-form\" : undefined}\n className={\n filterPopoverCurrentFilter === filter &&\n isFilterPopoverOpen === true\n ? \"isVisiblySelected\"\n : undefined\n }\n key={filter.id}\n onClick={(event) => {\n setIsFilterPopoverOpen(true);\n setFilterPopoverAnchorElement(event.currentTarget);\n setFilterPopoverCurrentFilter(filter);\n }}\n selected={\n filterPopoverCurrentFilter === filter &&\n isFilterPopoverOpen === true\n }\n >\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n width: \"100%\",\n minWidth: 180,\n paddingBlock: 1,\n paddingInlineStart: 2,\n }}\n >\n <Box sx={{ marginRight: 2 }}>\n <MuiTypography fontWeight=\"500\" sx={{ marginBlockEnd: 2 }}>\n {filter.label}\n </MuiTypography>\n <Subordinate component=\"div\">\n {!latestFilterValue ||\n (Array.isArray(latestFilterValue) &&\n latestFilterValue.length === 0) ? (\n <Trans\n i18nKey=\"filters.menuitem.any\"\n values={{\n label: filter.label.toLowerCase(),\n }}\n />\n ) : Array.isArray(latestFilterValue) ? (\n <Trans\n count={latestFilterValue.length}\n i18nKey=\"filters.menuitem.selected\"\n values={{\n selected: latestFilterValue.length,\n }}\n />\n ) : (\n latestFilterValue\n )}\n </Subordinate>\n </Box>\n <ChevronRightIcon />\n </Box>\n </MuiMenuItem>\n );\n })}\n </MuiMenu>\n </>\n ),\n [\n isFiltersMenuOpen,\n isDisabled,\n filterPopoverCurrentFilter,\n isFilterPopoverOpen,\n filtersMenuAnchorElement,\n filtersProp,\n filters,\n t,\n ],\n );\n\n const autoCompleteValue = useMemo(\n () =>\n filterPopoverCurrentFilter?.id\n ? (inputValues[filterPopoverCurrentFilter.id] as Option[])\n : undefined,\n [filterPopoverCurrentFilter, inputValues],\n );\n\n return (\n <Box>\n {/* Upper section */}\n <Box sx={{ display: \"flex\", justifyContent: \"space-between\" }}>\n {/* Upper section left (filters and search) */}\n <Box sx={{ display: \"flex\", gap: 2, width: \"50%\", maxWidth: 480 }}>\n {/* Filter menu */}\n {filters.length > 0 && (\n <>\n {filterMenu}\n {/* Filter popover */}\n <MuiPopover\n anchorEl={filterPopoverAnchorElement}\n anchorOrigin={{ vertical: \"top\", horizontal: \"right\" }}\n // Positions the popover flush with the edge of the parent menu\n // and at the right shadow elevation. These magic values are simply\n // to match the default popover offset.\n elevation={2}\n id=\"filter-form\"\n onClose={(ev: MouseEvent) => {\n if (menuRef.current) {\n const menuRect = menuRef.current.getBoundingClientRect();\n const clickInsideMenu =\n ev.clientX >= menuRect.left &&\n ev.clientX <= menuRect.right &&\n ev.clientY >= menuRect.top &&\n ev.clientY <= menuRect.bottom;\n\n if (!clickInsideMenu) {\n setIsFiltersMenuOpen(false);\n }\n }\n handleFilterSubmit();\n setIsFilterPopoverOpen(false);\n }}\n open={isFilterPopoverOpen}\n sx={{ marginLeft: 2, marginTop: -1 }}\n >\n <Box sx={{ padding: 4, minWidth: 320 }}>\n <form\n noValidate\n onSubmit={(ev) => {\n ev.preventDefault();\n handleFilterSubmit();\n setIsFilterPopoverOpen(false);\n setIsFiltersMenuOpen(false);\n }}\n >\n {filterPopoverCurrentFilter?.render ? (\n filterPopoverCurrentFilter.render(updateFilters)\n ) : (\n <>\n {/* Autocomplete */}\n {filterPopoverCurrentFilter?.variant ===\n \"autocomplete\" &&\n filterPopoverCurrentFilter?.options && (\n <StyledAutocompleteOuterContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <StyledAutocompleteInnerContainer>\n <Autocomplete\n hasMultipleChoices\n isCustomValueAllowed={\n filterPopoverCurrentFilter?.isCustomValueAllowed\n }\n label={filterPopoverCurrentFilter.label}\n onChange={(_, value) => {\n handleAutocompleteFilterChange(\n filterPopoverCurrentFilter.id,\n value as Option[],\n );\n }}\n options={autocompleteOptions}\n value={autoCompleteValue}\n />\n </StyledAutocompleteInnerContainer>\n <Button\n ariaLabel={t(\"filters.submit.label\")}\n endIcon={<CheckIcon />}\n type=\"submit\"\n variant=\"primary\"\n />\n </StyledAutocompleteOuterContainer>\n )}\n {/* Text, Number, or undefined */}\n {(filterPopoverCurrentFilter?.variant === \"text\" ||\n filterPopoverCurrentFilter?.variant === \"range\" ||\n (filterPopoverCurrentFilter &&\n filterPopoverCurrentFilter?.variant ==\n undefined)) && (\n <Box\n sx={{\n display: \"flex\",\n gap: 2,\n alignItems: \"flex-end\",\n }}\n >\n <Box sx={{ width: \"100%\" }}>\n <TextField\n endAdornment={\n inputValues[\n filterPopoverCurrentFilter.id\n ] && (\n <MuiIconButton\n aria-label={t(\"filters.filter.clear\")}\n onClick={() => {\n updateInputValue({\n filterId:\n filterPopoverCurrentFilter.id,\n value: undefined,\n });\n\n updateFilters({\n filterId:\n filterPopoverCurrentFilter.id,\n value: undefined,\n });\n }}\n size=\"small\"\n >\n <CloseCircleFilledIcon />\n </MuiIconButton>\n )\n }\n hasInitialFocus\n label={filterPopoverCurrentFilter.label}\n onChange={(ev) =>\n updateInputValue({\n filterId: filterPopoverCurrentFilter.id,\n value: ev.currentTarget.value,\n })\n }\n type={\n filterPopoverCurrentFilter.variant === \"range\"\n ? \"number\"\n : \"text\"\n }\n value={\n (inputValues[\n filterPopoverCurrentFilter.id\n ] as string) ?? \"\"\n }\n />\n </Box>\n <Button\n ariaLabel={t(\"filters.submit.label\")}\n endIcon={<CheckIcon />}\n type=\"submit\"\n variant=\"primary\"\n />\n </Box>\n )}\n\n {/* Checkbox */}\n {filterPopoverCurrentFilter?.variant ===\n \"multi-select\" &&\n filterPopoverCurrentFilter?.options && (\n <CheckboxGroup\n isRequired\n label={filterPopoverCurrentFilter.label}\n >\n {filterPopoverCurrentFilter.options.map(\n (option: { label: string; value: string }) => {\n const checkFilterInputValuesAsArray =\n (inputValues[\n filterPopoverCurrentFilter.id\n ] as Option[]) || [];\n const isOptionValueInInputValues =\n checkFilterInputValuesAsArray.some(\n (inputValue) =>\n inputValue.value === option.value,\n );\n return (\n <Checkbox\n isChecked={isOptionValueInInputValues}\n key={option.value}\n label={option.label}\n onChange={(_, checked) => {\n handleCheckboxFilterAndInputValueChange(\n filterPopoverCurrentFilter.id,\n option,\n checked,\n );\n }}\n value={option.value}\n />\n );\n },\n )}\n </CheckboxGroup>\n )}\n\n {/* Radio */}\n {filterPopoverCurrentFilter?.variant === \"select\" &&\n filterPopoverCurrentFilter?.options && (\n <RadioGroup\n label={filterPopoverCurrentFilter.label}\n onChange={(_, value) => {\n updateFilterAndInputValues({\n filterId: filterPopoverCurrentFilter.id,\n value,\n });\n }}\n >\n <Radio\n isChecked={\n !inputValues[filterPopoverCurrentFilter.id]\n }\n label={t(\"filters.filter.any\")}\n value={\"\"}\n />\n <>\n {filterPopoverCurrentFilter.options.map(\n (option: {\n label: string;\n value: string;\n }) => (\n <Radio\n isChecked={\n inputValues[\n filterPopoverCurrentFilter.id\n ] === option.value\n }\n key={option.value}\n label={option.label}\n value={option.value}\n />\n ),\n )}\n </>\n </RadioGroup>\n )}\n </>\n )}\n </form>\n </Box>\n </MuiPopover>\n </>\n )}\n\n {/* Search */}\n {onChangeSearch && (\n <form\n onSubmit={(event) => {\n event.preventDefault();\n if (hasSearchSubmitButton) {\n onChangeSearch(searchValue);\n }\n }}\n style={{ width: \"100%\" }}\n >\n <Box sx={{ display: \"flex\", gap: 2, width: \"100%\" }}>\n <SearchField\n isDisabled={isDisabled}\n label={t(\"filters.search.label\")}\n onChange={(ev) => setSearchValue(ev.target.value)}\n onClear={() => {\n setSearchValue(\"\");\n onChangeSearch(\"\");\n }}\n placeholder={t(\"filters.search.label\")}\n value={searchValue}\n />\n {hasSearchSubmitButton && (\n <Box>\n <Button\n isDisabled={isDisabled}\n label={t(\"filters.search.label\")}\n onClick={() => onChangeSearch(searchValue)}\n variant=\"primary\"\n />\n </Box>\n )}\n </Box>\n </form>\n )}\n </Box>\n\n {/* Upper section right (clear filters & additional actions) */}\n <Box sx={{ display: \"flex\", gap: 2 }}>\n {activeFilters.length > 0 && (\n <Box>\n <Button\n label={t(\"filters.clear.label\")}\n onClick={clearAllFilters}\n variant=\"secondary\"\n />\n </Box>\n )}\n {additionalActions}\n </Box>\n </Box>\n\n {/* Lower section */}\n {activeFilters.length > 0 && (\n <Box\n sx={{\n borderTopWidth: 1,\n borderTopColor: \"#eeeeee\",\n borderTopStyle: \"solid\",\n paddingTop: 4,\n marginTop: 4,\n }}\n >\n <MemoizedFilterTags\n activeFilters={activeFilters}\n updateFilterAndInputValues={updateFilterAndInputValues}\n />\n </Box>\n )}\n </Box>\n );\n};\n\nconst MemoizedDataFilters = memo(DataFilters);\nMemoizedDataFilters.displayName = \"DataFilters\";\n\nexport { MemoizedDataFilters as DataFilters };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DataFilters.js","names":["styled","memo","useCallback","useEffect","useMemo","useRef","useState","Autocomplete","Box","Button","Checkbox","CheckboxGroup","Radio","RadioGroup","Trans","useTranslation","CheckIcon","ChevronRightIcon","CloseCircleFilledIcon","FilterIcon","useOdysseyDesignTokens","SearchField","Tag","TagList","TextField","Subordinate","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","StyledAutocompleteOuterContainer","shouldForwardProp","prop","odysseyDesignTokens","display","alignItems","gap","Spacing2","StyledAutocompleteInnerContainer","width","FilterTags","activeFilters","updateFilterAndInputValues","t","filtersWithValues","filter","activeFilter","value","filtersToRender","forEach","Array","isArray","filterValue","optionLabel","label","optionValue","push","filterId","id","filterLabel","getFilter","find","removeValueFromFilterAndInput","removedFilterValue","currentFilter","updatedValues","currentValue","length","undefined","ariaLabel","children","map","chip","onRemove","MemoizedFilterTags","displayName","DataFilters","onChangeSearch","onChangeFilters","hasSearchSubmitButton","searchDelayTime","defaultSearchTerm","additionalActions","filters","filtersProp","isDisabled","searchFieldLabel","setFilters","resolvedSearchFieldLabel","initialInputValues","reduce","accumulator","inputValues","setInputValues","searchValue","setSearchValue","isFiltersMenuOpen","setIsFiltersMenuOpen","filtersMenuAnchorElement","setFiltersMenuAnchorElement","isFilterPopoverOpen","setIsFilterPopoverOpen","filterPopoverAnchorElement","setFilterPopoverAnchorElement","filterPopoverCurrentFilter","setFilterPopoverCurrentFilter","menuRef","debouncer","current","clearTimeout","setTimeout","autocompleteOptions","options","updateInputValue","updateFilters","prevInputValues","updatedFilters","handleCheckboxFilterAndInputValueChange","option","checked","currentValues","inputValue","normalizedUpdatedValues","handleAutocompleteFilterChange","clearAllFilters","updatedInputValues","handleFilterSubmit","filterMenu","ariaControls","ariaExpanded","ariaHasPopup","endIcon","onClick","event","currentTarget","variant","_Menu","anchorEl","anchorOrigin","horizontal","vertical","onClose","open","PaperProps","ref","transformOrigin","latestFilterValue","f","_MenuItem","className","selected","sx","justifyContent","minWidth","paddingBlock","paddingInlineStart","marginRight","_Typography","fontWeight","marginBlockEnd","description","component","i18nKey","values","toLowerCase","count","autoCompleteValue","maxWidth","_Popover","elevation","ev","menuRect","getBoundingClientRect","clickInsideMenu","clientX","left","right","clientY","top","bottom","marginLeft","marginTop","padding","noValidate","onSubmit","preventDefault","render","hasMultipleChoices","isCustomValueAllowed","onChange","_","type","endAdornment","_IconButton","size","hasInitialFocus","isRequired","checkFilterInputValuesAsArray","isOptionValueInInputValues","some","isChecked","style","target","onClear","placeholder","borderTopWidth","borderTopColor","borderTopStyle","paddingTop","MemoizedDataFilters"],"sources":["../../../src/labs/DataFilters.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 styled from \"@emotion/styled\";\nimport {\n IconButton as MuiIconButton,\n Menu as MuiMenu,\n MenuItem as MuiMenuItem,\n Popover as MuiPopover,\n Typography as MuiTypography,\n} from \"@mui/material\";\nimport { MRT_ColumnDef, MRT_RowData } from \"material-react-table\";\nimport {\n memo,\n MutableRefObject,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { Autocomplete } from \"../Autocomplete.js\";\nimport { Box } from \"../Box.js\";\nimport { Button } from \"../Buttons/Button.js\";\nimport { Checkbox } from \"../Fields/Checkbox.js\";\nimport { CheckboxGroup } from \"../Fields/CheckboxGroup.js\";\nimport { Radio } from \"../Fields/Radio.js\";\nimport { RadioGroup } from \"../Fields/RadioGroup.js\";\nimport { Trans, useTranslation } from \"../i18n.generated/i18n.js\";\nimport {\n CheckIcon,\n ChevronRightIcon,\n CloseCircleFilledIcon,\n FilterIcon,\n} from \"../icons.generated/index.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../OdysseyDesignTokensContext.js\";\nimport { SearchField } from \"../SearchField.js\";\nimport { Tag } from \"../Tag.js\";\nimport { TagList } from \"../TagList.js\";\nimport { TextField } from \"../TextField.js\";\nimport { Subordinate } from \"../Typography.js\";\n\nconst StyledAutocompleteOuterContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"flex-end\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst StyledAutocompleteInnerContainer = styled(\"div\")({\n width: \"100%\",\n});\n\ntype Option = {\n label: string;\n value: string;\n};\n\nexport type DataFilterValue = string | string[] | Option[] | undefined;\n\nexport type UpdateFiltersOrValues = ({\n filterId,\n value,\n}: {\n filterId: string;\n value: DataFilterValue;\n}) => void;\n\n// This is the shape of each individual filter\nexport type DataFilter = {\n /**\n * Optional description for the filter that appears as subtext in the menu,\n * between the filter label and the dynamic selection text.\n */\n description?: string;\n /**\n * A unique ID for the filter, typically the same id\n * as the column it'll be applied to.\n */\n id: Exclude<MRT_ColumnDef<MRT_RowData>[\"accessorKey\"], undefined>;\n /**\n * `Autocomplete` normally only allows values that exist in the list box. This feature allows you to enter in any value in the text field and have that be the stored value in `Autocomplete`\n *\n * NOTE: This only applies when `variant` is `autocomplete`\n */\n isCustomValueAllowed?: boolean;\n /**\n * The human-friendly name of the filter.\n */\n label: string;\n /**\n * If the filter control has preset options (such as a select or multi-select),\n * these are the options provided.\n */\n options?: Option[];\n /**\n * A callback which renders a custom filter control\n */\n render?: (updateFilters: UpdateFiltersOrValues) => ReactNode;\n /**\n * The current value of the filter. Typically a string, but\n * filters that allow for multiple selections (such as multi-select)\n * can accept an array.\n */\n value?: DataFilterValue;\n /**\n * The type of filter, which determines which filtering control\n * is shown.\n */\n variant?: MRT_ColumnDef<MRT_RowData>[\"filterVariant\"];\n};\n\n// This is the type of the DataFilters component itself\nexport type DataFiltersProps = {\n /**\n * A slot for optional additional actions, like buttons, to be displayed\n * on the opposite side of the top row from the search and filter controls.\n */\n additionalActions?: ReactNode;\n /**\n * The starting value of the search input\n */\n defaultSearchTerm?: string;\n /**\n * The filters available in the filter menu. If undefined,\n * the filter menu won't be shown.\n */\n filters?: Array<DataFilter>;\n /**\n * If true, a Search button will be provided alongside the search input\n * and `onChangeSearch` will fire when the button is clicked, rather than\n * whenever the input value changes.\n */\n hasSearchSubmitButton?: boolean;\n /**\n * If true, the filter and search will be disabled\n */\n isDisabled?: boolean;\n /**\n * The callback that's fired when filter values change.\n */\n onChangeFilters?: (filters: Array<DataFilter>) => void;\n /**\n * The callback that's fired when the search input changes\n * (either on change or on submit, based on the value of `hasSearchSubmitButton`).\n * If this is undefined, the search input will not be shown.\n */\n onChangeSearch?: (value: string) => void;\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 * Overrides the default label for the search field.\n */\n searchFieldLabel?: string;\n};\n\ntype FilterTagsProps = {\n activeFilters: DataFilter[];\n updateFilterAndInputValues: UpdateFiltersOrValues;\n};\n\ntype FiltersToRender = {\n filterId: string;\n filterLabel: string;\n optionLabel: string;\n optionValue: string;\n};\n\nconst FilterTags = ({\n activeFilters,\n updateFilterAndInputValues,\n}: FilterTagsProps) => {\n const { t } = useTranslation();\n const filtersWithValues = activeFilters.filter(\n (activeFilter: DataFilter) => activeFilter.value,\n );\n const filtersToRender: FiltersToRender[] = [];\n\n filtersWithValues.forEach((filter) => {\n if (Array.isArray(filter.value)) {\n filter.value.forEach((filterValue) => {\n const optionLabel =\n typeof filterValue === \"string\" ? filterValue : filterValue.label;\n const optionValue =\n typeof filterValue === \"string\" ? filterValue : filterValue.value;\n filtersToRender.push({\n filterId: filter.id,\n filterLabel: filter.label,\n optionLabel,\n optionValue,\n });\n });\n }\n if (typeof filter.value === \"string\") {\n filtersToRender.push({\n filterId: filter.id,\n filterLabel: filter.label,\n optionLabel: filter.value,\n optionValue: filter.value,\n });\n }\n });\n\n const getFilter = (id: string) =>\n filtersWithValues.find((filter) => filter.id === id);\n\n const removeValueFromFilterAndInput = (\n id: string,\n removedFilterValue: string,\n ) => {\n const currentFilter = getFilter(id);\n\n if (currentFilter) {\n const { value } = currentFilter;\n\n if (Array.isArray(value)) {\n const updatedValues = value.filter((currentValue) => {\n return (currentValue as Option).value !== removedFilterValue;\n });\n updateFilterAndInputValues({\n filterId: id,\n value:\n updatedValues.length > 0 ? (updatedValues as Option[]) : undefined,\n });\n }\n\n if (typeof value === \"string\") {\n updateFilterAndInputValues({\n filterId: id,\n value: undefined,\n });\n }\n }\n };\n\n return (\n <TagList ariaLabel={t(\"filters.activetags.arialabel\")}>\n {filtersToRender.map((chip) => (\n <Tag\n key={`${chip.filterLabel}: ${chip.optionValue}`}\n label={`${chip.filterLabel}: ${chip.optionLabel}`}\n onRemove={() =>\n removeValueFromFilterAndInput(chip.filterId, chip.optionValue)\n }\n />\n ))}\n </TagList>\n );\n};\n\nconst MemoizedFilterTags = memo(FilterTags);\nMemoizedFilterTags.displayName = \"FilterTags\";\n\nconst DataFilters = ({\n onChangeSearch,\n onChangeFilters,\n hasSearchSubmitButton = false,\n searchDelayTime = 200,\n defaultSearchTerm = \"\",\n additionalActions,\n filters: filtersProp = [],\n isDisabled,\n searchFieldLabel,\n}: DataFiltersProps) => {\n const [filters, setFilters] = useState<DataFilter[]>(filtersProp);\n const { t } = useTranslation();\n const resolvedSearchFieldLabel =\n searchFieldLabel || t(\"filters.search.label\");\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const initialInputValues = useMemo(() => {\n return filtersProp.reduce(\n (accumulator, filter) => {\n accumulator[filter.id] = filter.value;\n return accumulator;\n },\n {} as Record<string, DataFilterValue>,\n );\n }, [filtersProp]);\n\n const [inputValues, setInputValues] = useState(initialInputValues);\n\n const [searchValue, setSearchValue] = useState<string>(defaultSearchTerm);\n\n const activeFilters = useMemo(() => {\n return filters.filter((filter) => filter.value);\n }, [filters]);\n\n const [isFiltersMenuOpen, setIsFiltersMenuOpen] = useState<boolean>(false);\n\n const [filtersMenuAnchorElement, setFiltersMenuAnchorElement] = useState<\n HTMLElement | undefined\n >();\n\n const [isFilterPopoverOpen, setIsFilterPopoverOpen] =\n useState<boolean>(false);\n\n const [filterPopoverAnchorElement, setFilterPopoverAnchorElement] = useState<\n HTMLElement | undefined\n >();\n\n const [filterPopoverCurrentFilter, setFilterPopoverCurrentFilter] = useState<\n DataFilter | undefined\n >();\n\n const menuRef = useRef<HTMLDivElement>();\n\n useEffect(() => {\n onChangeFilters?.(filters);\n }, [filters, onChangeFilters]);\n\n const debouncer = useRef<NodeJS.Timeout | undefined>(undefined);\n\n useEffect(() => {\n if (!hasSearchSubmitButton) {\n if (debouncer.current) {\n clearTimeout(debouncer.current);\n }\n\n debouncer.current = setTimeout(() => {\n onChangeSearch?.(searchValue ?? \"\");\n }, searchDelayTime);\n }\n }, [onChangeSearch, searchValue, searchDelayTime, hasSearchSubmitButton]);\n\n const autocompleteOptions = useMemo(() => {\n return filterPopoverCurrentFilter?.options || [];\n }, [filterPopoverCurrentFilter]);\n\n const updateInputValue = useCallback<UpdateFiltersOrValues>(\n ({ filterId, value }) => {\n setInputValues({ ...inputValues, [filterId]: value });\n },\n [inputValues],\n );\n\n const updateFilters = useCallback<UpdateFiltersOrValues>(\n ({ filterId, value }) => {\n setInputValues((prevInputValues) => ({\n ...prevInputValues,\n [filterId]: value,\n }));\n const updatedFilters = filtersProp.map((filter) => ({\n ...filter,\n value: filter.id === filterId ? value : inputValues[filter.id],\n }));\n setFilters(updatedFilters);\n },\n [inputValues, filtersProp],\n );\n\n const updateFilterAndInputValues = useCallback<UpdateFiltersOrValues>(\n ({ filterId, value }) => {\n updateInputValue({ filterId, value });\n updateFilters({ filterId, value });\n },\n [updateFilters, updateInputValue],\n );\n\n const handleCheckboxFilterAndInputValueChange = useCallback<\n (filterId: string, option: Option, checked: boolean) => void\n >(\n (filterId, option, checked) => {\n const currentValues = (inputValues[filterId] as Option[]) || [];\n\n const updatedValues = checked\n ? [...currentValues, option]\n : currentValues.filter(\n (inputValue) => inputValue.value !== option.value,\n );\n\n const normalizedUpdatedValues =\n updatedValues.length > 0 ? updatedValues : undefined;\n\n setInputValues({\n ...inputValues,\n [filterId]: normalizedUpdatedValues,\n });\n\n const updatedFilters = filters.map((filter) => ({\n ...filter,\n value:\n filter.id === filterId\n ? normalizedUpdatedValues\n : inputValues[filter.id],\n }));\n\n setFilters(updatedFilters);\n },\n [filters, inputValues],\n );\n\n const handleAutocompleteFilterChange = useCallback<\n (filterId: string, option: Option[]) => void\n >(\n (filterId, option) => {\n setInputValues({ ...inputValues, [filterId]: option });\n },\n [inputValues],\n );\n\n const clearAllFilters = useCallback(() => {\n const updatedInputValues = filtersProp.reduce(\n (accumulator, filter) => {\n accumulator[filter.id] = undefined;\n return accumulator;\n },\n {} as Record<string, DataFilterValue>,\n );\n\n setInputValues(updatedInputValues);\n\n const updatedFilters = filtersProp.map((filter) => ({\n ...filter,\n value: undefined,\n }));\n\n setFilters(updatedFilters);\n }, [filtersProp]);\n\n const handleFilterSubmit = useCallback(() => {\n const updatedFilters = filtersProp.map((filter) => ({\n ...filter,\n value: inputValues[filter.id],\n }));\n\n setFilters(updatedFilters);\n }, [inputValues, filtersProp]);\n\n const filterMenu = useMemo(\n () => (\n <>\n <Box>\n <Button\n ariaControls={isFiltersMenuOpen ? \"filters-menu\" : undefined}\n ariaExpanded={isFiltersMenuOpen ? \"true\" : undefined}\n ariaHasPopup=\"true\"\n ariaLabel={t(\"filters.filters.arialabel\")}\n endIcon={<FilterIcon />}\n isDisabled={isDisabled}\n onClick={(event) => {\n setFiltersMenuAnchorElement(event.currentTarget);\n setIsFiltersMenuOpen(true);\n }}\n variant=\"secondary\"\n />\n </Box>\n\n <MuiMenu\n anchorEl={filtersMenuAnchorElement}\n anchorOrigin={{ horizontal: \"left\", vertical: \"bottom\" }}\n id=\"filters-menu\"\n onClose={() => setIsFiltersMenuOpen(false)}\n open={isFiltersMenuOpen}\n PaperProps={{\n ref: menuRef as MutableRefObject<HTMLDivElement>,\n }}\n transformOrigin={{ horizontal: \"left\", vertical: \"top\" }}\n >\n {filtersProp.map((filter) => {\n // Unintuitively, we can't just use filter.value to grab the filter value.\n // `filter` is the initial set of filters provided to the component, so its\n // value prop may not reflect the current value of the filter.\n const latestFilterValue = filters.find(\n (f) => f.id === filter.id,\n )?.value;\n\n return (\n <MuiMenuItem\n aria-controls={isFilterPopoverOpen ? \"filter-form\" : undefined}\n className={\n filterPopoverCurrentFilter === filter &&\n isFilterPopoverOpen === true\n ? \"isVisiblySelected\"\n : undefined\n }\n key={filter.id}\n onClick={(event) => {\n setIsFilterPopoverOpen(true);\n setFilterPopoverAnchorElement(event.currentTarget);\n setFilterPopoverCurrentFilter(filter);\n }}\n selected={\n filterPopoverCurrentFilter === filter &&\n isFilterPopoverOpen === true\n }\n >\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n width: \"100%\",\n minWidth: 180,\n paddingBlock: 1,\n paddingInlineStart: 2,\n }}\n >\n <Box sx={{ marginRight: 2 }}>\n <MuiTypography fontWeight=\"500\" sx={{ marginBlockEnd: 2 }}>\n {filter.label}\n </MuiTypography>\n {filter.description && (\n <Box sx={{ marginBlockEnd: 1 }}>\n <Subordinate component=\"div\">\n {filter.description}\n </Subordinate>\n </Box>\n )}\n <Subordinate component=\"div\">\n {!latestFilterValue ||\n (Array.isArray(latestFilterValue) &&\n latestFilterValue.length === 0) ? (\n <Trans\n i18nKey=\"filters.menuitem.any\"\n values={{\n label: filter.label.toLowerCase(),\n }}\n />\n ) : Array.isArray(latestFilterValue) ? (\n <Trans\n count={latestFilterValue.length}\n i18nKey=\"filters.menuitem.selected\"\n values={{\n selected: latestFilterValue.length,\n }}\n />\n ) : (\n latestFilterValue\n )}\n </Subordinate>\n </Box>\n <ChevronRightIcon />\n </Box>\n </MuiMenuItem>\n );\n })}\n </MuiMenu>\n </>\n ),\n [\n isFiltersMenuOpen,\n isDisabled,\n filterPopoverCurrentFilter,\n isFilterPopoverOpen,\n filtersMenuAnchorElement,\n filtersProp,\n filters,\n t,\n ],\n );\n\n const autoCompleteValue = useMemo(\n () =>\n filterPopoverCurrentFilter?.id\n ? (inputValues[filterPopoverCurrentFilter.id] as Option[])\n : undefined,\n [filterPopoverCurrentFilter, inputValues],\n );\n\n return (\n <Box>\n {/* Upper section */}\n <Box sx={{ display: \"flex\", justifyContent: \"space-between\" }}>\n {/* Upper section left (filters and search) */}\n <Box sx={{ display: \"flex\", gap: 2, width: \"50%\", maxWidth: 480 }}>\n {/* Filter menu */}\n {filters.length > 0 && (\n <>\n {filterMenu}\n {/* Filter popover */}\n <MuiPopover\n anchorEl={filterPopoverAnchorElement}\n anchorOrigin={{ vertical: \"top\", horizontal: \"right\" }}\n // Positions the popover flush with the edge of the parent menu\n // and at the right shadow elevation. These magic values are simply\n // to match the default popover offset.\n elevation={2}\n id=\"filter-form\"\n onClose={(ev: MouseEvent) => {\n if (menuRef.current) {\n const menuRect = menuRef.current.getBoundingClientRect();\n const clickInsideMenu =\n ev.clientX >= menuRect.left &&\n ev.clientX <= menuRect.right &&\n ev.clientY >= menuRect.top &&\n ev.clientY <= menuRect.bottom;\n\n if (!clickInsideMenu) {\n setIsFiltersMenuOpen(false);\n }\n }\n handleFilterSubmit();\n setIsFilterPopoverOpen(false);\n }}\n open={isFilterPopoverOpen}\n sx={{ marginLeft: 2, marginTop: -1 }}\n >\n <Box sx={{ padding: 4, minWidth: 320 }}>\n <form\n noValidate\n onSubmit={(ev) => {\n ev.preventDefault();\n handleFilterSubmit();\n setIsFilterPopoverOpen(false);\n setIsFiltersMenuOpen(false);\n }}\n >\n {filterPopoverCurrentFilter?.render ? (\n filterPopoverCurrentFilter.render(updateFilters)\n ) : (\n <>\n {/* Autocomplete */}\n {filterPopoverCurrentFilter?.variant ===\n \"autocomplete\" &&\n filterPopoverCurrentFilter?.options && (\n <StyledAutocompleteOuterContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <StyledAutocompleteInnerContainer>\n <Autocomplete\n hasMultipleChoices\n isCustomValueAllowed={\n filterPopoverCurrentFilter?.isCustomValueAllowed\n }\n label={filterPopoverCurrentFilter.label}\n onChange={(_, value) => {\n handleAutocompleteFilterChange(\n filterPopoverCurrentFilter.id,\n value as Option[],\n );\n }}\n options={autocompleteOptions}\n value={autoCompleteValue}\n />\n </StyledAutocompleteInnerContainer>\n <Button\n ariaLabel={t(\"filters.submit.label\")}\n endIcon={<CheckIcon />}\n type=\"submit\"\n variant=\"primary\"\n />\n </StyledAutocompleteOuterContainer>\n )}\n {/* Text, Number, or undefined */}\n {(filterPopoverCurrentFilter?.variant === \"text\" ||\n filterPopoverCurrentFilter?.variant === \"range\" ||\n (filterPopoverCurrentFilter &&\n filterPopoverCurrentFilter?.variant ==\n undefined)) && (\n <Box\n sx={{\n display: \"flex\",\n gap: 2,\n alignItems: \"flex-end\",\n }}\n >\n <Box sx={{ width: \"100%\" }}>\n <TextField\n endAdornment={\n inputValues[\n filterPopoverCurrentFilter.id\n ] && (\n <MuiIconButton\n aria-label={t(\"filters.filter.clear\")}\n onClick={() => {\n updateInputValue({\n filterId:\n filterPopoverCurrentFilter.id,\n value: undefined,\n });\n\n updateFilters({\n filterId:\n filterPopoverCurrentFilter.id,\n value: undefined,\n });\n }}\n size=\"small\"\n >\n <CloseCircleFilledIcon />\n </MuiIconButton>\n )\n }\n hasInitialFocus\n label={filterPopoverCurrentFilter.label}\n onChange={(ev) =>\n updateInputValue({\n filterId: filterPopoverCurrentFilter.id,\n value: ev.currentTarget.value,\n })\n }\n type={\n filterPopoverCurrentFilter.variant === \"range\"\n ? \"number\"\n : \"text\"\n }\n value={\n (inputValues[\n filterPopoverCurrentFilter.id\n ] as string) ?? \"\"\n }\n />\n </Box>\n <Button\n ariaLabel={t(\"filters.submit.label\")}\n endIcon={<CheckIcon />}\n type=\"submit\"\n variant=\"primary\"\n />\n </Box>\n )}\n\n {/* Checkbox */}\n {filterPopoverCurrentFilter?.variant ===\n \"multi-select\" &&\n filterPopoverCurrentFilter?.options && (\n <CheckboxGroup\n isRequired\n label={filterPopoverCurrentFilter.label}\n >\n {filterPopoverCurrentFilter.options.map(\n (option: { label: string; value: string }) => {\n const checkFilterInputValuesAsArray =\n (inputValues[\n filterPopoverCurrentFilter.id\n ] as Option[]) || [];\n const isOptionValueInInputValues =\n checkFilterInputValuesAsArray.some(\n (inputValue) =>\n inputValue.value === option.value,\n );\n return (\n <Checkbox\n isChecked={isOptionValueInInputValues}\n key={option.value}\n label={option.label}\n onChange={(_, checked) => {\n handleCheckboxFilterAndInputValueChange(\n filterPopoverCurrentFilter.id,\n option,\n checked,\n );\n }}\n value={option.value}\n />\n );\n },\n )}\n </CheckboxGroup>\n )}\n\n {/* Radio */}\n {filterPopoverCurrentFilter?.variant === \"select\" &&\n filterPopoverCurrentFilter?.options && (\n <RadioGroup\n label={filterPopoverCurrentFilter.label}\n onChange={(_, value) => {\n updateFilterAndInputValues({\n filterId: filterPopoverCurrentFilter.id,\n value,\n });\n }}\n >\n <Radio\n isChecked={\n !inputValues[filterPopoverCurrentFilter.id]\n }\n label={t(\"filters.filter.any\")}\n value={\"\"}\n />\n <>\n {filterPopoverCurrentFilter.options.map(\n (option: {\n label: string;\n value: string;\n }) => (\n <Radio\n isChecked={\n inputValues[\n filterPopoverCurrentFilter.id\n ] === option.value\n }\n key={option.value}\n label={option.label}\n value={option.value}\n />\n ),\n )}\n </>\n </RadioGroup>\n )}\n </>\n )}\n </form>\n </Box>\n </MuiPopover>\n </>\n )}\n\n {/* Search */}\n {onChangeSearch && (\n <form\n onSubmit={(event) => {\n event.preventDefault();\n if (hasSearchSubmitButton) {\n onChangeSearch(searchValue);\n }\n }}\n style={{ width: \"100%\" }}\n >\n <Box sx={{ display: \"flex\", gap: 2, width: \"100%\" }}>\n <SearchField\n isDisabled={isDisabled}\n label={resolvedSearchFieldLabel}\n onChange={(ev) => setSearchValue(ev.target.value)}\n onClear={() => {\n setSearchValue(\"\");\n onChangeSearch(\"\");\n }}\n placeholder={resolvedSearchFieldLabel}\n value={searchValue}\n />\n {hasSearchSubmitButton && (\n <Box>\n <Button\n isDisabled={isDisabled}\n label={t(\"filters.search.label\")}\n onClick={() => onChangeSearch(searchValue)}\n variant=\"primary\"\n />\n </Box>\n )}\n </Box>\n </form>\n )}\n </Box>\n\n {/* Upper section right (clear filters & additional actions) */}\n <Box sx={{ display: \"flex\", gap: 2 }}>\n {activeFilters.length > 0 && (\n <Box>\n <Button\n label={t(\"filters.clear.label\")}\n onClick={clearAllFilters}\n variant=\"secondary\"\n />\n </Box>\n )}\n {additionalActions}\n </Box>\n </Box>\n\n {/* Lower section */}\n {activeFilters.length > 0 && (\n <Box\n sx={{\n borderTopWidth: 1,\n borderTopColor: \"#eeeeee\",\n borderTopStyle: \"solid\",\n paddingTop: 4,\n marginTop: 4,\n }}\n >\n <MemoizedFilterTags\n activeFilters={activeFilters}\n updateFilterAndInputValues={updateFilterAndInputValues}\n />\n </Box>\n )}\n </Box>\n );\n};\n\nconst MemoizedDataFilters = memo(DataFilters);\nMemoizedDataFilters.displayName = \"DataFilters\";\n\nexport { MemoizedDataFilters as DataFilters };\n"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,MAAM,MAAM,iBAAiB;AASpC,SACEC,IAAI,EAGJC,WAAW,EACXC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACH,OAAO;AAEd,SAASC,YAAY,QAAQ,oBAAoB;AACjD,SAASC,GAAG,QAAQ,WAAW;AAC/B,SAASC,MAAM,QAAQ,sBAAsB;AAC7C,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,KAAK,QAAQ,oBAAoB;AAC1C,SAASC,UAAU,QAAQ,yBAAyB;AACpD,SAASC,KAAK,EAAEC,cAAc,QAAQ,2BAA2B;AACjE,SACEC,SAAS,EACTC,gBAAgB,EAChBC,qBAAqB,EACrBC,UAAU,QACL,6BAA6B;AACpC,SAEEC,sBAAsB,QACjB,kCAAkC;AACzC,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,GAAG,QAAQ,WAAW;AAC/B,SAASC,OAAO,QAAQ,eAAe;AACvC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,WAAW,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAE/C,MAAMC,gCAAgC,GAAGhC,MAAM,CAAC,KAAK,EAAE;EACrDiC,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK;AACxC,CAAC,CAAC,CAAwC,CAAC;EAAEC;AAAoB,CAAC,MAAM;EACtEC,OAAO,EAAE,MAAM;EACfC,UAAU,EAAE,UAAU;EACtBC,GAAG,EAAEH,mBAAmB,CAACI;AAC3B,CAAC,CAAC,CAAC;AAEH,MAAMC,gCAAgC,GAAGxC,MAAM,CAAC,KAAK,CAAC,CAAC;EACrDyC,KAAK,EAAE;AACT,CAAC,CAAC;AAyHF,MAAMC,UAAU,GAAGA,CAAC;EAClBC,aAAa;EACbC;AACe,CAAC,KAAK;EACrB,MAAM;IAAEC;EAAE,CAAC,GAAG9B,cAAc,CAAC,CAAC;EAC9B,MAAM+B,iBAAiB,GAAGH,aAAa,CAACI,MAAM,CAC3CC,YAAwB,IAAKA,YAAY,CAACC,KAC7C,CAAC;EACD,MAAMC,eAAkC,GAAG,EAAE;EAE7CJ,iBAAiB,CAACK,OAAO,CAAEJ,MAAM,IAAK;IACpC,IAAIK,KAAK,CAACC,OAAO,CAACN,MAAM,CAACE,KAAK,CAAC,EAAE;MAC/BF,MAAM,CAACE,KAAK,CAACE,OAAO,CAAEG,WAAW,IAAK;QACpC,MAAMC,WAAW,GACf,OAAOD,WAAW,KAAK,QAAQ,GAAGA,WAAW,GAAGA,WAAW,CAACE,KAAK;QACnE,MAAMC,WAAW,GACf,OAAOH,WAAW,KAAK,QAAQ,GAAGA,WAAW,GAAGA,WAAW,CAACL,KAAK;QACnEC,eAAe,CAACQ,IAAI,CAAC;UACnBC,QAAQ,EAAEZ,MAAM,CAACa,EAAE;UACnBC,WAAW,EAAEd,MAAM,CAACS,KAAK;UACzBD,WAAW;UACXE;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;IACA,IAAI,OAAOV,MAAM,CAACE,KAAK,KAAK,QAAQ,EAAE;MACpCC,eAAe,CAACQ,IAAI,CAAC;QACnBC,QAAQ,EAAEZ,MAAM,CAACa,EAAE;QACnBC,WAAW,EAAEd,MAAM,CAACS,KAAK;QACzBD,WAAW,EAAER,MAAM,CAACE,KAAK;QACzBQ,WAAW,EAAEV,MAAM,CAACE;MACtB,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;EAEF,MAAMa,SAAS,GAAIF,EAAU,IAC3Bd,iBAAiB,CAACiB,IAAI,CAAEhB,MAAM,IAAKA,MAAM,CAACa,EAAE,KAAKA,EAAE,CAAC;EAEtD,MAAMI,6BAA6B,GAAGA,CACpCJ,EAAU,EACVK,kBAA0B,KACvB;IACH,MAAMC,aAAa,GAAGJ,SAAS,CAACF,EAAE,CAAC;IAEnC,IAAIM,aAAa,EAAE;MACjB,MAAM;QAAEjB;MAAM,CAAC,GAAGiB,aAAa;MAE/B,IAAId,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,EAAE;QACxB,MAAMkB,aAAa,GAAGlB,KAAK,CAACF,MAAM,CAAEqB,YAAY,IAAK;UACnD,OAAQA,YAAY,CAAYnB,KAAK,KAAKgB,kBAAkB;QAC9D,CAAC,CAAC;QACFrB,0BAA0B,CAAC;UACzBe,QAAQ,EAAEC,EAAE;UACZX,KAAK,EACHkB,aAAa,CAACE,MAAM,GAAG,CAAC,GAAIF,aAAa,GAAgBG;QAC7D,CAAC,CAAC;MACJ;MAEA,IAAI,OAAOrB,KAAK,KAAK,QAAQ,EAAE;QAC7BL,0BAA0B,CAAC;UACzBe,QAAQ,EAAEC,EAAE;UACZX,KAAK,EAAEqB;QACT,CAAC,CAAC;MACJ;IACF;EACF,CAAC;EAED,OACE3C,IAAA,CAACJ,OAAO;IAACgD,SAAS,EAAE1B,CAAC,CAAC,8BAA8B,CAAE;IAAA2B,QAAA,EACnDtB,eAAe,CAACuB,GAAG,CAAEC,IAAI,IACxB/C,IAAA,CAACL,GAAG;MAEFkC,KAAK,EAAE,GAAGkB,IAAI,CAACb,WAAW,KAAKa,IAAI,CAACnB,WAAW,EAAG;MAClDoB,QAAQ,EAAEA,CAAA,KACRX,6BAA6B,CAACU,IAAI,CAACf,QAAQ,EAAEe,IAAI,CAACjB,WAAW;IAC9D,GAJI,GAAGiB,IAAI,CAACb,WAAW,KAAKa,IAAI,CAACjB,WAAW,EAK9C,CACF;EAAC,CACK,CAAC;AAEd,CAAC;AAED,MAAMmB,kBAAkB,GAAG3E,IAAI,CAACyC,UAAU,CAAC;AAC3CkC,kBAAkB,CAACC,WAAW,4CAAe;AAE7C,MAAMC,WAAW,GAAGA,CAAC;EACnBC,cAAc;EACdC,eAAe;EACfC,qBAAqB,GAAG,KAAK;EAC7BC,eAAe,GAAG,GAAG;EACrBC,iBAAiB,GAAG,EAAE;EACtBC,iBAAiB;EACjBC,OAAO,EAAEC,WAAW,GAAG,EAAE;EACzBC,UAAU;EACVC;AACgB,CAAC,KAAK;EACtB,MAAM,CAACH,OAAO,EAAEI,UAAU,CAAC,GAAGnF,QAAQ,CAAegF,WAAW,CAAC;EACjE,MAAM;IAAEzC;EAAE,CAAC,GAAG9B,cAAc,CAAC,CAAC;EAC9B,MAAM2E,wBAAwB,GAC5BF,gBAAgB,IAAI3C,CAAC,CAAC,sBAAsB,CAAC;EAC/C,MAAMV,mBAAmB,GAAGf,sBAAsB,CAAC,CAAC;EAEpD,MAAMuE,kBAAkB,GAAGvF,OAAO,CAAC,MAAM;IACvC,OAAOkF,WAAW,CAACM,MAAM,CACvB,CAACC,WAAW,EAAE9C,MAAM,KAAK;MACvB8C,WAAW,CAAC9C,MAAM,CAACa,EAAE,CAAC,GAAGb,MAAM,CAACE,KAAK;MACrC,OAAO4C,WAAW;IACpB,CAAC,EACD,CAAC,CACH,CAAC;EACH,CAAC,EAAE,CAACP,WAAW,CAAC,CAAC;EAEjB,MAAM,CAACQ,WAAW,EAAEC,cAAc,CAAC,GAAGzF,QAAQ,CAACqF,kBAAkB,CAAC;EAElE,MAAM,CAACK,WAAW,EAAEC,cAAc,CAAC,GAAG3F,QAAQ,CAAS6E,iBAAiB,CAAC;EAEzE,MAAMxC,aAAa,GAAGvC,OAAO,CAAC,MAAM;IAClC,OAAOiF,OAAO,CAACtC,MAAM,CAAEA,MAAM,IAAKA,MAAM,CAACE,KAAK,CAAC;EACjD,CAAC,EAAE,CAACoC,OAAO,CAAC,CAAC;EAEb,MAAM,CAACa,iBAAiB,EAAEC,oBAAoB,CAAC,GAAG7F,QAAQ,CAAU,KAAK,CAAC;EAE1E,MAAM,CAAC8F,wBAAwB,EAAEC,2BAA2B,CAAC,GAAG/F,QAAQ,CAEtE,CAAC;EAEH,MAAM,CAACgG,mBAAmB,EAAEC,sBAAsB,CAAC,GACjDjG,QAAQ,CAAU,KAAK,CAAC;EAE1B,MAAM,CAACkG,0BAA0B,EAAEC,6BAA6B,CAAC,GAAGnG,QAAQ,CAE1E,CAAC;EAEH,MAAM,CAACoG,0BAA0B,EAAEC,6BAA6B,CAAC,GAAGrG,QAAQ,CAE1E,CAAC;EAEH,MAAMsG,OAAO,GAAGvG,MAAM,CAAiB,CAAC;EAExCF,SAAS,CAAC,MAAM;IACd6E,eAAe,GAAGK,OAAO,CAAC;EAC5B,CAAC,EAAE,CAACA,OAAO,EAAEL,eAAe,CAAC,CAAC;EAE9B,MAAM6B,SAAS,GAAGxG,MAAM,CAA6BiE,SAAS,CAAC;EAE/DnE,SAAS,CAAC,MAAM;IACd,IAAI,CAAC8E,qBAAqB,EAAE;MAC1B,IAAI4B,SAAS,CAACC,OAAO,EAAE;QACrBC,YAAY,CAACF,SAAS,CAACC,OAAO,CAAC;MACjC;MAEAD,SAAS,CAACC,OAAO,GAAGE,UAAU,CAAC,MAAM;QACnCjC,cAAc,GAAGiB,WAAW,IAAI,EAAE,CAAC;MACrC,CAAC,EAAEd,eAAe,CAAC;IACrB;EACF,CAAC,EAAE,CAACH,cAAc,EAAEiB,WAAW,EAAEd,eAAe,EAAED,qBAAqB,CAAC,CAAC;EAEzE,MAAMgC,mBAAmB,GAAG7G,OAAO,CAAC,MAAM;IACxC,OAAOsG,0BAA0B,EAAEQ,OAAO,IAAI,EAAE;EAClD,CAAC,EAAE,CAACR,0BAA0B,CAAC,CAAC;EAEhC,MAAMS,gBAAgB,GAAGjH,WAAW,CAClC,CAAC;IAAEyD,QAAQ;IAAEV;EAAM,CAAC,KAAK;IACvB8C,cAAc,CAAC;MAAE,GAAGD,WAAW;MAAE,CAACnC,QAAQ,GAAGV;IAAM,CAAC,CAAC;EACvD,CAAC,EACD,CAAC6C,WAAW,CACd,CAAC;EAED,MAAMsB,aAAa,GAAGlH,WAAW,CAC/B,CAAC;IAAEyD,QAAQ;IAAEV;EAAM,CAAC,KAAK;IACvB8C,cAAc,CAAEsB,eAAe,KAAM;MACnC,GAAGA,eAAe;MAClB,CAAC1D,QAAQ,GAAGV;IACd,CAAC,CAAC,CAAC;IACH,MAAMqE,cAAc,GAAGhC,WAAW,CAACb,GAAG,CAAE1B,MAAM,KAAM;MAClD,GAAGA,MAAM;MACTE,KAAK,EAAEF,MAAM,CAACa,EAAE,KAAKD,QAAQ,GAAGV,KAAK,GAAG6C,WAAW,CAAC/C,MAAM,CAACa,EAAE;IAC/D,CAAC,CAAC,CAAC;IACH6B,UAAU,CAAC6B,cAAc,CAAC;EAC5B,CAAC,EACD,CAACxB,WAAW,EAAER,WAAW,CAC3B,CAAC;EAED,MAAM1C,0BAA0B,GAAG1C,WAAW,CAC5C,CAAC;IAAEyD,QAAQ;IAAEV;EAAM,CAAC,KAAK;IACvBkE,gBAAgB,CAAC;MAAExD,QAAQ;MAAEV;IAAM,CAAC,CAAC;IACrCmE,aAAa,CAAC;MAAEzD,QAAQ;MAAEV;IAAM,CAAC,CAAC;EACpC,CAAC,EACD,CAACmE,aAAa,EAAED,gBAAgB,CAClC,CAAC;EAED,MAAMI,uCAAuC,GAAGrH,WAAW,CAGzD,CAACyD,QAAQ,EAAE6D,MAAM,EAAEC,OAAO,KAAK;IAC7B,MAAMC,aAAa,GAAI5B,WAAW,CAACnC,QAAQ,CAAC,IAAiB,EAAE;IAE/D,MAAMQ,aAAa,GAAGsD,OAAO,GACzB,CAAC,GAAGC,aAAa,EAAEF,MAAM,CAAC,GAC1BE,aAAa,CAAC3E,MAAM,CACjB4E,UAAU,IAAKA,UAAU,CAAC1E,KAAK,KAAKuE,MAAM,CAACvE,KAC9C,CAAC;IAEL,MAAM2E,uBAAuB,GAC3BzD,aAAa,CAACE,MAAM,GAAG,CAAC,GAAGF,aAAa,GAAGG,SAAS;IAEtDyB,cAAc,CAAC;MACb,GAAGD,WAAW;MACd,CAACnC,QAAQ,GAAGiE;IACd,CAAC,CAAC;IAEF,MAAMN,cAAc,GAAGjC,OAAO,CAACZ,GAAG,CAAE1B,MAAM,KAAM;MAC9C,GAAGA,MAAM;MACTE,KAAK,EACHF,MAAM,CAACa,EAAE,KAAKD,QAAQ,GAClBiE,uBAAuB,GACvB9B,WAAW,CAAC/C,MAAM,CAACa,EAAE;IAC7B,CAAC,CAAC,CAAC;IAEH6B,UAAU,CAAC6B,cAAc,CAAC;EAC5B,CAAC,EACD,CAACjC,OAAO,EAAES,WAAW,CACvB,CAAC;EAED,MAAM+B,8BAA8B,GAAG3H,WAAW,CAGhD,CAACyD,QAAQ,EAAE6D,MAAM,KAAK;IACpBzB,cAAc,CAAC;MAAE,GAAGD,WAAW;MAAE,CAACnC,QAAQ,GAAG6D;IAAO,CAAC,CAAC;EACxD,CAAC,EACD,CAAC1B,WAAW,CACd,CAAC;EAED,MAAMgC,eAAe,GAAG5H,WAAW,CAAC,MAAM;IACxC,MAAM6H,kBAAkB,GAAGzC,WAAW,CAACM,MAAM,CAC3C,CAACC,WAAW,EAAE9C,MAAM,KAAK;MACvB8C,WAAW,CAAC9C,MAAM,CAACa,EAAE,CAAC,GAAGU,SAAS;MAClC,OAAOuB,WAAW;IACpB,CAAC,EACD,CAAC,CACH,CAAC;IAEDE,cAAc,CAACgC,kBAAkB,CAAC;IAElC,MAAMT,cAAc,GAAGhC,WAAW,CAACb,GAAG,CAAE1B,MAAM,KAAM;MAClD,GAAGA,MAAM;MACTE,KAAK,EAAEqB;IACT,CAAC,CAAC,CAAC;IAEHmB,UAAU,CAAC6B,cAAc,CAAC;EAC5B,CAAC,EAAE,CAAChC,WAAW,CAAC,CAAC;EAEjB,MAAM0C,kBAAkB,GAAG9H,WAAW,CAAC,MAAM;IAC3C,MAAMoH,cAAc,GAAGhC,WAAW,CAACb,GAAG,CAAE1B,MAAM,KAAM;MAClD,GAAGA,MAAM;MACTE,KAAK,EAAE6C,WAAW,CAAC/C,MAAM,CAACa,EAAE;IAC9B,CAAC,CAAC,CAAC;IAEH6B,UAAU,CAAC6B,cAAc,CAAC;EAC5B,CAAC,EAAE,CAACxB,WAAW,EAAER,WAAW,CAAC,CAAC;EAE9B,MAAM2C,UAAU,GAAG7H,OAAO,CACxB,MACEyB,KAAA,CAAAE,SAAA;IAAAyC,QAAA,GACE7C,IAAA,CAACnB,GAAG;MAAAgE,QAAA,EACF7C,IAAA,CAAClB,MAAM;QACLyH,YAAY,EAAEhC,iBAAiB,GAAG,cAAc,GAAG5B,SAAU;QAC7D6D,YAAY,EAAEjC,iBAAiB,GAAG,MAAM,GAAG5B,SAAU;QACrD8D,YAAY,EAAC,MAAM;QACnB7D,SAAS,EAAE1B,CAAC,CAAC,2BAA2B,CAAE;QAC1CwF,OAAO,EAAE1G,IAAA,CAACR,UAAU,IAAE,CAAE;QACxBoE,UAAU,EAAEA,UAAW;QACvB+C,OAAO,EAAGC,KAAK,IAAK;UAClBlC,2BAA2B,CAACkC,KAAK,CAACC,aAAa,CAAC;UAChDrC,oBAAoB,CAAC,IAAI,CAAC;QAC5B,CAAE;QACFsC,OAAO,EAAC;MAAW,CACpB;IAAC,CACC,CAAC,EAEN9G,IAAA,CAAA+G,KAAA;MACEC,QAAQ,EAAEvC,wBAAyB;MACnCwC,YAAY,EAAE;QAAEC,UAAU,EAAE,MAAM;QAAEC,QAAQ,EAAE;MAAS,CAAE;MACzDlF,EAAE,EAAC,cAAc;MACjBmF,OAAO,EAAEA,CAAA,KAAM5C,oBAAoB,CAAC,KAAK,CAAE;MAC3C6C,IAAI,EAAE9C,iBAAkB;MACxB+C,UAAU,EAAE;QACVC,GAAG,EAAEtC;MACP,CAAE;MACFuC,eAAe,EAAE;QAAEN,UAAU,EAAE,MAAM;QAAEC,QAAQ,EAAE;MAAM,CAAE;MAAAtE,QAAA,EAExDc,WAAW,CAACb,GAAG,CAAE1B,MAAM,IAAK;QAI3B,MAAMqG,iBAAiB,GAAG/D,OAAO,CAACtB,IAAI,CACnCsF,CAAC,IAAKA,CAAC,CAACzF,EAAE,KAAKb,MAAM,CAACa,EACzB,CAAC,EAAEX,KAAK;QAER,OACEtB,IAAA,CAAA2H,SAAA;UACE,iBAAehD,mBAAmB,GAAG,aAAa,GAAGhC,SAAU;UAC/DiF,SAAS,EACP7C,0BAA0B,KAAK3D,MAAM,IACrCuD,mBAAmB,KAAK,IAAI,GACxB,mBAAmB,GACnBhC,SACL;UAEDgE,OAAO,EAAGC,KAAK,IAAK;YAClBhC,sBAAsB,CAAC,IAAI,CAAC;YAC5BE,6BAA6B,CAAC8B,KAAK,CAACC,aAAa,CAAC;YAClD7B,6BAA6B,CAAC5D,MAAM,CAAC;UACvC,CAAE;UACFyG,QAAQ,EACN9C,0BAA0B,KAAK3D,MAAM,IACrCuD,mBAAmB,KAAK,IACzB;UAAA9B,QAAA,EAED3C,KAAA,CAACrB,GAAG;YACFiJ,EAAE,EAAE;cACFrH,OAAO,EAAE,MAAM;cACfC,UAAU,EAAE,QAAQ;cACpBqH,cAAc,EAAE,eAAe;cAC/BjH,KAAK,EAAE,MAAM;cACbkH,QAAQ,EAAE,GAAG;cACbC,YAAY,EAAE,CAAC;cACfC,kBAAkB,EAAE;YACtB,CAAE;YAAArF,QAAA,GAEF3C,KAAA,CAACrB,GAAG;cAACiJ,EAAE,EAAE;gBAAEK,WAAW,EAAE;cAAE,CAAE;cAAAtF,QAAA,GAC1B7C,IAAA,CAAAoI,WAAA;gBAAeC,UAAU,EAAC,KAAK;gBAACP,EAAE,EAAE;kBAAEQ,cAAc,EAAE;gBAAE,CAAE;gBAAAzF,QAAA,EACvDzB,MAAM,CAACS;cAAK,CACA,CAAC,EACfT,MAAM,CAACmH,WAAW,IACjBvI,IAAA,CAACnB,GAAG;gBAACiJ,EAAE,EAAE;kBAAEQ,cAAc,EAAE;gBAAE,CAAE;gBAAAzF,QAAA,EAC7B7C,IAAA,CAACF,WAAW;kBAAC0I,SAAS,EAAC,KAAK;kBAAA3F,QAAA,EACzBzB,MAAM,CAACmH;gBAAW,CACR;cAAC,CACX,CACN,EACDvI,IAAA,CAACF,WAAW;gBAAC0I,SAAS,EAAC,KAAK;gBAAA3F,QAAA,EACzB,CAAC4E,iBAAiB,IAClBhG,KAAK,CAACC,OAAO,CAAC+F,iBAAiB,CAAC,IAC/BA,iBAAiB,CAAC/E,MAAM,KAAK,CAAE,GAC/B1C,IAAA,CAACb,KAAK;kBACJsJ,OAAO,EAAC,sBAAsB;kBAC9BC,MAAM,EAAE;oBACN7G,KAAK,EAAET,MAAM,CAACS,KAAK,CAAC8G,WAAW,CAAC;kBAClC;gBAAE,CACH,CAAC,GACAlH,KAAK,CAACC,OAAO,CAAC+F,iBAAiB,CAAC,GAClCzH,IAAA,CAACb,KAAK;kBACJyJ,KAAK,EAAEnB,iBAAiB,CAAC/E,MAAO;kBAChC+F,OAAO,EAAC,2BAA2B;kBACnCC,MAAM,EAAE;oBACNb,QAAQ,EAAEJ,iBAAiB,CAAC/E;kBAC9B;gBAAE,CACH,CAAC,GAEF+E;cACD,CACU,CAAC;YAAA,CACX,CAAC,EACNzH,IAAA,CAACV,gBAAgB,IAAE,CAAC;UAAA,CACjB;QAAC,GAzDD8B,MAAM,CAACa,EA0DD,CAAC;MAElB,CAAC;IAAC,CACK,CAAC;EAAA,CACV,CACH,EACD,CACEsC,iBAAiB,EACjBX,UAAU,EACVmB,0BAA0B,EAC1BJ,mBAAmB,EACnBF,wBAAwB,EACxBd,WAAW,EACXD,OAAO,EACPxC,CAAC,CAEL,CAAC;EAED,MAAM2H,iBAAiB,GAAGpK,OAAO,CAC/B,MACEsG,0BAA0B,EAAE9C,EAAE,GACzBkC,WAAW,CAACY,0BAA0B,CAAC9C,EAAE,CAAC,GAC3CU,SAAS,EACf,CAACoC,0BAA0B,EAAEZ,WAAW,CAC1C,CAAC;EAED,OACEjE,KAAA,CAACrB,GAAG;IAAAgE,QAAA,GAEF3C,KAAA,CAACrB,GAAG;MAACiJ,EAAE,EAAE;QAAErH,OAAO,EAAE,MAAM;QAAEsH,cAAc,EAAE;MAAgB,CAAE;MAAAlF,QAAA,GAE5D3C,KAAA,CAACrB,GAAG;QAACiJ,EAAE,EAAE;UAAErH,OAAO,EAAE,MAAM;UAAEE,GAAG,EAAE,CAAC;UAAEG,KAAK,EAAE,KAAK;UAAEgI,QAAQ,EAAE;QAAI,CAAE;QAAAjG,QAAA,GAE/Da,OAAO,CAAChB,MAAM,GAAG,CAAC,IACjBxC,KAAA,CAAAE,SAAA;UAAAyC,QAAA,GACGyD,UAAU,EAEXtG,IAAA,CAAA+I,QAAA;YACE/B,QAAQ,EAAEnC,0BAA2B;YACrCoC,YAAY,EAAE;cAAEE,QAAQ,EAAE,KAAK;cAAED,UAAU,EAAE;YAAQ,CAAE;YAIvD8B,SAAS,EAAE,CAAE;YACb/G,EAAE,EAAC,aAAa;YAChBmF,OAAO,EAAG6B,EAAc,IAAK;cAC3B,IAAIhE,OAAO,CAACE,OAAO,EAAE;gBACnB,MAAM+D,QAAQ,GAAGjE,OAAO,CAACE,OAAO,CAACgE,qBAAqB,CAAC,CAAC;gBACxD,MAAMC,eAAe,GACnBH,EAAE,CAACI,OAAO,IAAIH,QAAQ,CAACI,IAAI,IAC3BL,EAAE,CAACI,OAAO,IAAIH,QAAQ,CAACK,KAAK,IAC5BN,EAAE,CAACO,OAAO,IAAIN,QAAQ,CAACO,GAAG,IAC1BR,EAAE,CAACO,OAAO,IAAIN,QAAQ,CAACQ,MAAM;gBAE/B,IAAI,CAACN,eAAe,EAAE;kBACpB5E,oBAAoB,CAAC,KAAK,CAAC;gBAC7B;cACF;cACA6B,kBAAkB,CAAC,CAAC;cACpBzB,sBAAsB,CAAC,KAAK,CAAC;YAC/B,CAAE;YACFyC,IAAI,EAAE1C,mBAAoB;YAC1BmD,EAAE,EAAE;cAAE6B,UAAU,EAAE,CAAC;cAAEC,SAAS,EAAE,CAAC;YAAE,CAAE;YAAA/G,QAAA,EAErC7C,IAAA,CAACnB,GAAG;cAACiJ,EAAE,EAAE;gBAAE+B,OAAO,EAAE,CAAC;gBAAE7B,QAAQ,EAAE;cAAI,CAAE;cAAAnF,QAAA,EACrC7C,IAAA;gBACE8J,UAAU;gBACVC,QAAQ,EAAGd,EAAE,IAAK;kBAChBA,EAAE,CAACe,cAAc,CAAC,CAAC;kBACnB3D,kBAAkB,CAAC,CAAC;kBACpBzB,sBAAsB,CAAC,KAAK,CAAC;kBAC7BJ,oBAAoB,CAAC,KAAK,CAAC;gBAC7B,CAAE;gBAAA3B,QAAA,EAEDkC,0BAA0B,EAAEkF,MAAM,GACjClF,0BAA0B,CAACkF,MAAM,CAACxE,aAAa,CAAC,GAEhDvF,KAAA,CAAAE,SAAA;kBAAAyC,QAAA,GAEGkC,0BAA0B,EAAE+B,OAAO,KAClC,cAAc,IACd/B,0BAA0B,EAAEQ,OAAO,IACjCrF,KAAA,CAACG,gCAAgC;oBAC/BG,mBAAmB,EAAEA,mBAAoB;oBAAAqC,QAAA,GAEzC7C,IAAA,CAACa,gCAAgC;sBAAAgC,QAAA,EAC/B7C,IAAA,CAACpB,YAAY;wBACXsL,kBAAkB;wBAClBC,oBAAoB,EAClBpF,0BAA0B,EAAEoF,oBAC7B;wBACDtI,KAAK,EAAEkD,0BAA0B,CAAClD,KAAM;wBACxCuI,QAAQ,EAAEA,CAACC,CAAC,EAAE/I,KAAK,KAAK;0BACtB4E,8BAA8B,CAC5BnB,0BAA0B,CAAC9C,EAAE,EAC7BX,KACF,CAAC;wBACH,CAAE;wBACFiE,OAAO,EAAED,mBAAoB;wBAC7BhE,KAAK,EAAEuH;sBAAkB,CAC1B;oBAAC,CAC8B,CAAC,EACnC7I,IAAA,CAAClB,MAAM;sBACL8D,SAAS,EAAE1B,CAAC,CAAC,sBAAsB,CAAE;sBACrCwF,OAAO,EAAE1G,IAAA,CAACX,SAAS,IAAE,CAAE;sBACvBiL,IAAI,EAAC,QAAQ;sBACbxD,OAAO,EAAC;oBAAS,CAClB,CAAC;kBAAA,CAC8B,CACnC,EAEF,CAAC/B,0BAA0B,EAAE+B,OAAO,KAAK,MAAM,IAC9C/B,0BAA0B,EAAE+B,OAAO,KAAK,OAAO,IAC9C/B,0BAA0B,IACzBA,0BAA0B,EAAE+B,OAAO,IACjCnE,SAAU,KACdzC,KAAA,CAACrB,GAAG;oBACFiJ,EAAE,EAAE;sBACFrH,OAAO,EAAE,MAAM;sBACfE,GAAG,EAAE,CAAC;sBACND,UAAU,EAAE;oBACd,CAAE;oBAAAmC,QAAA,GAEF7C,IAAA,CAACnB,GAAG;sBAACiJ,EAAE,EAAE;wBAAEhH,KAAK,EAAE;sBAAO,CAAE;sBAAA+B,QAAA,EACzB7C,IAAA,CAACH,SAAS;wBACR0K,YAAY,EACVpG,WAAW,CACTY,0BAA0B,CAAC9C,EAAE,CAC9B,IACCjC,IAAA,CAAAwK,WAAA;0BACE,cAAYtJ,CAAC,CAAC,sBAAsB,CAAE;0BACtCyF,OAAO,EAAEA,CAAA,KAAM;4BACbnB,gBAAgB,CAAC;8BACfxD,QAAQ,EACN+C,0BAA0B,CAAC9C,EAAE;8BAC/BX,KAAK,EAAEqB;4BACT,CAAC,CAAC;4BAEF8C,aAAa,CAAC;8BACZzD,QAAQ,EACN+C,0BAA0B,CAAC9C,EAAE;8BAC/BX,KAAK,EAAEqB;4BACT,CAAC,CAAC;0BACJ,CAAE;0BACF8H,IAAI,EAAC,OAAO;0BAAA5H,QAAA,EAEZ7C,IAAA,CAACT,qBAAqB,IAAE;wBAAC,CACZ,CAElB;wBACDmL,eAAe;wBACf7I,KAAK,EAAEkD,0BAA0B,CAAClD,KAAM;wBACxCuI,QAAQ,EAAGnB,EAAE,IACXzD,gBAAgB,CAAC;0BACfxD,QAAQ,EAAE+C,0BAA0B,CAAC9C,EAAE;0BACvCX,KAAK,EAAE2H,EAAE,CAACpC,aAAa,CAACvF;wBAC1B,CAAC,CACF;wBACDgJ,IAAI,EACFvF,0BAA0B,CAAC+B,OAAO,KAAK,OAAO,GAC1C,QAAQ,GACR,MACL;wBACDxF,KAAK,EACF6C,WAAW,CACVY,0BAA0B,CAAC9C,EAAE,CAC9B,IAAe;sBACjB,CACF;oBAAC,CACC,CAAC,EACNjC,IAAA,CAAClB,MAAM;sBACL8D,SAAS,EAAE1B,CAAC,CAAC,sBAAsB,CAAE;sBACrCwF,OAAO,EAAE1G,IAAA,CAACX,SAAS,IAAE,CAAE;sBACvBiL,IAAI,EAAC,QAAQ;sBACbxD,OAAO,EAAC;oBAAS,CAClB,CAAC;kBAAA,CACC,CACN,EAGA/B,0BAA0B,EAAE+B,OAAO,KAClC,cAAc,IACd/B,0BAA0B,EAAEQ,OAAO,IACjCvF,IAAA,CAAChB,aAAa;oBACZ2L,UAAU;oBACV9I,KAAK,EAAEkD,0BAA0B,CAAClD,KAAM;oBAAAgB,QAAA,EAEvCkC,0BAA0B,CAACQ,OAAO,CAACzC,GAAG,CACpC+C,MAAwC,IAAK;sBAC5C,MAAM+E,6BAA6B,GAChCzG,WAAW,CACVY,0BAA0B,CAAC9C,EAAE,CAC9B,IAAiB,EAAE;sBACtB,MAAM4I,0BAA0B,GAC9BD,6BAA6B,CAACE,IAAI,CAC/B9E,UAAU,IACTA,UAAU,CAAC1E,KAAK,KAAKuE,MAAM,CAACvE,KAChC,CAAC;sBACH,OACEtB,IAAA,CAACjB,QAAQ;wBACPgM,SAAS,EAAEF,0BAA2B;wBAEtChJ,KAAK,EAAEgE,MAAM,CAAChE,KAAM;wBACpBuI,QAAQ,EAAEA,CAACC,CAAC,EAAEvE,OAAO,KAAK;0BACxBF,uCAAuC,CACrCb,0BAA0B,CAAC9C,EAAE,EAC7B4D,MAAM,EACNC,OACF,CAAC;wBACH,CAAE;wBACFxE,KAAK,EAAEuE,MAAM,CAACvE;sBAAM,GATfuE,MAAM,CAACvE,KAUb,CAAC;oBAEN,CACF;kBAAC,CACY,CAChB,EAGFyD,0BAA0B,EAAE+B,OAAO,KAAK,QAAQ,IAC/C/B,0BAA0B,EAAEQ,OAAO,IACjCrF,KAAA,CAAChB,UAAU;oBACT2C,KAAK,EAAEkD,0BAA0B,CAAClD,KAAM;oBACxCuI,QAAQ,EAAEA,CAACC,CAAC,EAAE/I,KAAK,KAAK;sBACtBL,0BAA0B,CAAC;wBACzBe,QAAQ,EAAE+C,0BAA0B,CAAC9C,EAAE;wBACvCX;sBACF,CAAC,CAAC;oBACJ,CAAE;oBAAAuB,QAAA,GAEF7C,IAAA,CAACf,KAAK;sBACJ8L,SAAS,EACP,CAAC5G,WAAW,CAACY,0BAA0B,CAAC9C,EAAE,CAC3C;sBACDJ,KAAK,EAAEX,CAAC,CAAC,oBAAoB,CAAE;sBAC/BI,KAAK,EAAE;oBAAG,CACX,CAAC,EACFtB,IAAA,CAAAI,SAAA;sBAAAyC,QAAA,EACGkC,0BAA0B,CAACQ,OAAO,CAACzC,GAAG,CACpC+C,MAGA,IACC7F,IAAA,CAACf,KAAK;wBACJ8L,SAAS,EACP5G,WAAW,CACTY,0BAA0B,CAAC9C,EAAE,CAC9B,KAAK4D,MAAM,CAACvE,KACd;wBAEDO,KAAK,EAAEgE,MAAM,CAAChE,KAAM;wBACpBP,KAAK,EAAEuE,MAAM,CAACvE;sBAAM,GAFfuE,MAAM,CAACvE,KAGb,CAEL;oBAAC,CACD,CAAC;kBAAA,CACO,CACb;gBAAA,CACH;cACH,CACG;YAAC,CACJ;UAAC,CACI,CAAC;QAAA,CACb,CACH,EAGA8B,cAAc,IACbpD,IAAA;UACE+J,QAAQ,EAAGnD,KAAK,IAAK;YACnBA,KAAK,CAACoD,cAAc,CAAC,CAAC;YACtB,IAAI1G,qBAAqB,EAAE;cACzBF,cAAc,CAACiB,WAAW,CAAC;YAC7B;UACF,CAAE;UACF2G,KAAK,EAAE;YAAElK,KAAK,EAAE;UAAO,CAAE;UAAA+B,QAAA,EAEzB3C,KAAA,CAACrB,GAAG;YAACiJ,EAAE,EAAE;cAAErH,OAAO,EAAE,MAAM;cAAEE,GAAG,EAAE,CAAC;cAAEG,KAAK,EAAE;YAAO,CAAE;YAAA+B,QAAA,GAClD7C,IAAA,CAACN,WAAW;cACVkE,UAAU,EAAEA,UAAW;cACvB/B,KAAK,EAAEkC,wBAAyB;cAChCqG,QAAQ,EAAGnB,EAAE,IAAK3E,cAAc,CAAC2E,EAAE,CAACgC,MAAM,CAAC3J,KAAK,CAAE;cAClD4J,OAAO,EAAEA,CAAA,KAAM;gBACb5G,cAAc,CAAC,EAAE,CAAC;gBAClBlB,cAAc,CAAC,EAAE,CAAC;cACpB,CAAE;cACF+H,WAAW,EAAEpH,wBAAyB;cACtCzC,KAAK,EAAE+C;YAAY,CACpB,CAAC,EACDf,qBAAqB,IACpBtD,IAAA,CAACnB,GAAG;cAAAgE,QAAA,EACF7C,IAAA,CAAClB,MAAM;gBACL8E,UAAU,EAAEA,UAAW;gBACvB/B,KAAK,EAAEX,CAAC,CAAC,sBAAsB,CAAE;gBACjCyF,OAAO,EAAEA,CAAA,KAAMvD,cAAc,CAACiB,WAAW,CAAE;gBAC3CyC,OAAO,EAAC;cAAS,CAClB;YAAC,CACC,CACN;UAAA,CACE;QAAC,CACF,CACP;MAAA,CACE,CAAC,EAGN5G,KAAA,CAACrB,GAAG;QAACiJ,EAAE,EAAE;UAAErH,OAAO,EAAE,MAAM;UAAEE,GAAG,EAAE;QAAE,CAAE;QAAAkC,QAAA,GAClC7B,aAAa,CAAC0B,MAAM,GAAG,CAAC,IACvB1C,IAAA,CAACnB,GAAG;UAAAgE,QAAA,EACF7C,IAAA,CAAClB,MAAM;YACL+C,KAAK,EAAEX,CAAC,CAAC,qBAAqB,CAAE;YAChCyF,OAAO,EAAER,eAAgB;YACzBW,OAAO,EAAC;UAAW,CACpB;QAAC,CACC,CACN,EACArD,iBAAiB;MAAA,CACf,CAAC;IAAA,CACH,CAAC,EAGLzC,aAAa,CAAC0B,MAAM,GAAG,CAAC,IACvB1C,IAAA,CAACnB,GAAG;MACFiJ,EAAE,EAAE;QACFsD,cAAc,EAAE,CAAC;QACjBC,cAAc,EAAE,SAAS;QACzBC,cAAc,EAAE,OAAO;QACvBC,UAAU,EAAE,CAAC;QACb3B,SAAS,EAAE;MACb,CAAE;MAAA/G,QAAA,EAEF7C,IAAA,CAACiD,kBAAkB;QACjBjC,aAAa,EAAEA,aAAc;QAC7BC,0BAA0B,EAAEA;MAA2B,CACxD;IAAC,CACC,CACN;EAAA,CACE,CAAC;AAEV,CAAC;AAED,MAAMuK,mBAAmB,GAAGlN,IAAI,CAAC6E,WAAW,CAAC;AAC7CqI,mBAAmB,CAACtI,WAAW,6CAAgB;AAE/C,SAASsI,mBAAmB,IAAIrI,WAAW","ignoreList":[]}
@@ -473,6 +473,6 @@ const DataTable = ({
473
473
  });
474
474
  };
475
475
  const MemoizedDataTable = memo(DataTable);
476
- MemoizedDataTable.displayName = "DataTable::pkg=odyssey&odysseyV=1.58.0";
476
+ MemoizedDataTable.displayName = "DataTable::pkg=odyssey&odysseyV=1.59.0";
477
477
  export { MemoizedDataTable as DataTable };
478
478
  //# sourceMappingURL=DataTable.js.map
@@ -66,6 +66,6 @@ const DataTablePagination = ({
66
66
  });
67
67
  };
68
68
  const MemoizedDataTablePagination = memo(DataTablePagination);
69
- MemoizedDataTablePagination.displayName = "DataTablePagination::pkg=odyssey&odysseyV=1.58.0";
69
+ MemoizedDataTablePagination.displayName = "DataTablePagination::pkg=odyssey&odysseyV=1.59.0";
70
70
  export { MemoizedDataTablePagination as DataTablePagination };
71
71
  //# sourceMappingURL=DataTablePagination.js.map
@@ -71,6 +71,6 @@ const BulkActionsMenu = ({
71
71
  });
72
72
  };
73
73
  const MemoizedBulkActionsMenu = memo(BulkActionsMenu);
74
- MemoizedBulkActionsMenu.displayName = "BulkActionsMenu::pkg=odyssey&odysseyV=1.58.0";
74
+ MemoizedBulkActionsMenu.displayName = "BulkActionsMenu::pkg=odyssey&odysseyV=1.59.0";
75
75
  export { MemoizedBulkActionsMenu as BulkActionsMenu };
76
76
  //# sourceMappingURL=BulkActionsMenu.js.map
@@ -99,7 +99,7 @@ const RowDataCard = ({
99
99
  }, row.id);
100
100
  };
101
101
  const MemoizedRowDataCard = memo(RowDataCard);
102
- MemoizedRowDataCard.displayName = "RowDataCard::pkg=odyssey&odysseyV=1.58.0";
102
+ MemoizedRowDataCard.displayName = "RowDataCard::pkg=odyssey&odysseyV=1.59.0";
103
103
  const CardLayoutContent = ({
104
104
  currentLayout,
105
105
  data,
@@ -155,6 +155,6 @@ const CardLayoutContent = ({
155
155
  });
156
156
  };
157
157
  const MemoizedCardLayoutContent = memo(CardLayoutContent);
158
- MemoizedCardLayoutContent.displayName = "CardLayoutContent::pkg=odyssey&odysseyV=1.58.0";
158
+ MemoizedCardLayoutContent.displayName = "CardLayoutContent::pkg=odyssey&odysseyV=1.59.0";
159
159
  export { MemoizedCardLayoutContent as CardLayoutContent };
160
160
  //# sourceMappingURL=CardLayoutContent.js.map
@@ -93,6 +93,6 @@ const DataCard = ({
93
93
  });
94
94
  };
95
95
  const MemoizedDataCard = memo(DataCard);
96
- MemoizedDataCard.displayName = "DataCard::pkg=odyssey&odysseyV=1.58.0";
96
+ MemoizedDataCard.displayName = "DataCard::pkg=odyssey&odysseyV=1.59.0";
97
97
  export { MemoizedDataCard as DataCard };
98
98
  //# sourceMappingURL=DataCard.js.map
@@ -95,6 +95,6 @@ const DataTable = ({
95
95
  });
96
96
  };
97
97
  const MemoizedDataTable = memo(DataTable);
98
- MemoizedDataTable.displayName = "DataTable::pkg=odyssey&odysseyV=1.58.0";
98
+ MemoizedDataTable.displayName = "DataTable::pkg=odyssey&odysseyV=1.59.0";
99
99
  export { MemoizedDataTable as DataTable };
100
100
  //# sourceMappingURL=DataTable.js.map
@@ -103,11 +103,13 @@ const DataView = ({
103
103
  metaText,
104
104
  noResultsPlaceholder,
105
105
  onChangeRowSelection,
106
+ onColumnVisibilityChange,
106
107
  onReorderRows,
107
108
  onRowSelectionChange,
108
109
  paginationType = "paged",
109
110
  resultsPerPage = 20,
110
111
  searchDelayTime,
112
+ searchFieldLabel,
111
113
  cardLayoutOptions,
112
114
  tableLayoutOptions,
113
115
  totalRows,
@@ -140,7 +142,7 @@ const DataView = ({
140
142
  });
141
143
  const [tableState, setTableState] = useState({
142
144
  columnSorting: [],
143
- columnVisibility: {},
145
+ columnVisibility: tableLayoutOptions?.initialColumnVisibility ?? {},
144
146
  rowDensity: tableLayoutOptions?.initialDensity ?? densityValues[0]
145
147
  });
146
148
  const shouldShowFilters = hasSearch || hasFilters || additionalActionButton || additionalActionMenuItems;
@@ -197,6 +199,9 @@ const DataView = ({
197
199
  useEffect(() => {
198
200
  onPaginationChange?.(pagination);
199
201
  }, [onPaginationChange, pagination]);
202
+ useEffect(() => {
203
+ onColumnVisibilityChange?.(tableState.columnVisibility);
204
+ }, [onColumnVisibilityChange, tableState.columnVisibility]);
200
205
  useEffect(() => {
201
206
  fetchData({
202
207
  dataQueryParams,
@@ -283,7 +288,8 @@ const DataView = ({
283
288
  isDisabled: isEmpty,
284
289
  onChangeFilters: hasFilters ? setFilters : undefined,
285
290
  onChangeSearch: hasSearch ? setSearch : undefined,
286
- searchDelayTime: searchDelayTime
291
+ searchDelayTime: searchDelayTime,
292
+ searchFieldLabel: searchFieldLabel
287
293
  }), (bulkActionMenuItems || hasRowSelection) && _jsxs(StyledBulkActionsContainer, {
288
294
  children: [_jsx(BulkActionsMenu, {
289
295
  data: data,
@@ -359,6 +365,6 @@ const DataView = ({
359
365
  });
360
366
  };
361
367
  const MemoizedDataView = memo(DataView);
362
- MemoizedDataView.displayName = "DataView::pkg=odyssey&odysseyV=1.58.0";
368
+ MemoizedDataView.displayName = "DataView::pkg=odyssey&odysseyV=1.59.0";
363
369
  export { MemoizedDataView as DataView };
364
370
  //# sourceMappingURL=DataView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataView.js","names":["styled","isEqual","memo","useCallback","useEffect","useMemo","useState","Box","MenuButton","Callout","createUniqueId","useRowReordering","EmptyState","useTranslation","MoreIcon","useOdysseyDesignTokens","Pagination","usePagination","Typography","DataFilters","BulkActionsMenu","CardLayoutContent","availableLayouts","allAvailableLayouts","densityValues","fetchData","LayoutSwitcher","TableLayoutContent","TableSettings","useFilterConversion","jsx","_jsx","jsxs","_jsxs","StyledDataViewContainer","shouldForwardProp","prop","odysseyDesignTokens","display","flexDirection","gap","Spacing4","StyledBulkActionsContainer","justifyContent","StyledAdditionalActionsContainer","Spacing2","StyledAdditionalActionsInner","alignItems","StyledMetaTextContainer","marginInlineEnd","DataView","additionalActionButton","additionalActionMenuItems","bulkActionMenuItems","currentPage","emptyPlaceholder","enableVirtualization","enableVirtualizationProp","errorMessage","errorMessageProp","filters","filtersProp","getData","getRowId","getRowIdProp","hasFilters","hasPagination","hasPageInput","hasRowCountInput","hasRowCountLabel","hasSearch","hasSearchSubmitButton","hasRowReordering","hasRowSelection","initialLayout","isEmpty","isEmptyProp","isLoading","isLoadingProp","isNoResults","isNoResultsProp","isPaginationMoreDisabled","isRowReorderingDisabled","metaText","noResultsPlaceholder","onChangeRowSelection","onReorderRows","onRowSelectionChange","paginationType","resultsPerPage","searchDelayTime","cardLayoutOptions","tableLayoutOptions","totalRows","maxPages","maxResultsPerPage","onPaginationChange","t","currentLayout","setCurrentLayout","data","setData","setIsLoading","setErrorMessage","search","setSearch","initialFilters","setInitialFilters","setFilters","draggingRow","setDraggingRow","rowSelection","setRowSelection","pagination","setPagination","pageIndex","pageSize","tableState","setTableState","columnSorting","columnVisibility","rowDensity","initialDensity","shouldShowFilters","availableFilters","columns","initialAvailableFilters","hasEmptyOrInitialFilters","calculatedIsEmpty","length","hasNoResults","dataQueryParams","page","sort","row","index","parentRow","id","prev","undefined","prevValue","emptyState","noResultsInnerContent","description","heading","additionalActions","hasTableSettings","hasColumnVisibility","hasChangeableDensity","children","color","ariaLabel","buttonVariant","endIcon","menuAlignment","lastRow","lastRowOnPage","currentRowsCount","rowReorderingUtilities","severity","text","isDisabled","onChangeFilters","onChangeSearch","menuItems","currentPageLabel","isMoreDisabled","loadMoreLabel","maxPageIndex","maxPageSize","nextLabel","previousLabel","rowsPerPageLabel","variant","MemoizedDataView","displayName"],"sources":["../../../../src/labs/DataView/DataView.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-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 styled from \"@emotion/styled\";\nimport isEqual from \"lodash.isequal\";\nimport {\n MRT_Row,\n MRT_RowData,\n MRT_RowSelectionState,\n} from \"material-react-table\";\nimport { memo, useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { Box } from \"../../Box.js\";\nimport { MenuButton } from \"../../Buttons/MenuButton.js\";\nimport { Callout } from \"../../Callout.js\";\nimport { createUniqueId } from \"../../createUniqueId.js\";\nimport { useRowReordering } from \"../../DataTable/useRowReordering.js\";\nimport { EmptyState } from \"../../EmptyState.js\";\nimport { useTranslation } from \"../../i18n.generated/i18n.js\";\nimport { MoreIcon } from \"../../icons.generated/index.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport { Pagination } from \"../../Pagination/Pagination.js\";\nimport { usePagination } from \"../../Pagination/usePagination.js\";\nimport { Typography } from \"../../Typography.js\";\nimport { DataFilters } from \"../DataFilters.js\";\nimport { BulkActionsMenu } from \"./BulkActionsMenu.js\";\nimport { CardLayoutContent } from \"./CardLayoutContent.js\";\nimport {\n DataLayout,\n TableState,\n UniversalProps,\n ViewProps,\n} from \"./componentTypes.js\";\nimport {\n availableLayouts as allAvailableLayouts,\n densityValues,\n} from \"./constants.js\";\nimport { fetchData } from \"./fetchData.js\";\nimport { LayoutSwitcher } from \"./LayoutSwitcher.js\";\nimport { TableLayoutContent } from \"./TableLayoutContent.js\";\nimport { TableSettings } from \"./TableSettings.js\";\nimport { useFilterConversion } from \"./useFilterConversion.js\";\n\nexport type DataViewProps<TData extends MRT_RowData> = UniversalProps<TData> &\n ViewProps<TData, DataLayout>;\ntype DataViewComponent = (<TData extends MRT_RowData>(\n props: DataViewProps<TData>,\n) => JSX.Element) & {\n displayName?: string;\n};\n\nconst StyledDataViewContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n flexDirection: \"column\",\n gap: odysseyDesignTokens.Spacing4,\n}));\n\nconst StyledBulkActionsContainer = styled(\"div\")(() => ({\n display: \"flex\",\n justifyContent: \"space-between\",\n}));\n\nconst StyledAdditionalActionsContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n justifyContent: \"flex-end\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst StyledAdditionalActionsInner = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst StyledMetaTextContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n marginInlineEnd: odysseyDesignTokens.Spacing2,\n}));\n\nconst DataView = <TData extends MRT_RowData>({\n additionalActionButton,\n additionalActionMenuItems,\n availableLayouts = allAvailableLayouts,\n bulkActionMenuItems,\n currentPage = 1,\n emptyPlaceholder,\n enableVirtualization: enableVirtualizationProp,\n errorMessage: errorMessageProp,\n filters: filtersProp,\n getData,\n getRowId: getRowIdProp,\n hasFilters,\n hasPagination,\n hasPageInput,\n hasRowCountInput,\n hasRowCountLabel,\n hasSearch,\n hasSearchSubmitButton,\n hasRowReordering,\n hasRowSelection,\n initialLayout,\n isEmpty: isEmptyProp,\n isLoading: isLoadingProp,\n isNoResults: isNoResultsProp,\n isPaginationMoreDisabled,\n isRowReorderingDisabled,\n metaText,\n noResultsPlaceholder,\n onChangeRowSelection,\n onReorderRows,\n onRowSelectionChange,\n paginationType = \"paged\",\n resultsPerPage = 20,\n searchDelayTime,\n cardLayoutOptions,\n tableLayoutOptions,\n totalRows,\n maxPages,\n maxResultsPerPage,\n onPaginationChange,\n}: DataViewProps<TData>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const [currentLayout, setCurrentLayout] = useState<DataLayout>(\n initialLayout ?? availableLayouts[0],\n );\n\n const [data, setData] = useState<TData[]>([]);\n const [isLoading, setIsLoading] = useState<boolean>(isLoadingProp ?? true);\n const [errorMessage, setErrorMessage] =\n useState<UniversalProps<TData>[\"errorMessage\"]>(errorMessageProp);\n\n const [search, setSearch] = useState<string>(\"\");\n\n const [initialFilters, setInitialFilters] =\n useState<UniversalProps<TData>[\"filters\"]>(filtersProp);\n const [filters, setFilters] =\n useState<UniversalProps<TData>[\"filters\"]>(filtersProp);\n\n const [draggingRow, setDraggingRow] = useState<MRT_Row<TData> | null>();\n\n const [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n\n useEffect(() => {\n onChangeRowSelection?.(rowSelection);\n }, [rowSelection, onChangeRowSelection]);\n\n useEffect(() => {\n onRowSelectionChange?.(rowSelection);\n }, [rowSelection, onRowSelectionChange]);\n\n const [pagination, setPagination] = useState({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n\n const [tableState, setTableState] = useState<TableState>({\n columnSorting: [],\n columnVisibility: {},\n rowDensity: tableLayoutOptions?.initialDensity ?? densityValues[0],\n });\n\n const shouldShowFilters =\n hasSearch ||\n hasFilters ||\n additionalActionButton ||\n additionalActionMenuItems;\n\n const availableFilters = useFilterConversion({\n filters: filters,\n columns: tableLayoutOptions?.columns,\n });\n // will format the initial filters to be used for comparison\n const initialAvailableFilters = useFilterConversion({\n filters: initialFilters,\n columns: tableLayoutOptions?.columns,\n });\n\n const isEmpty = useMemo(() => {\n const hasEmptyOrInitialFilters =\n !hasFilters || isEqual(filters, initialAvailableFilters);\n\n const calculatedIsEmpty =\n pagination.pageIndex === currentPage &&\n pagination.pageSize === resultsPerPage &&\n search === \"\" &&\n hasEmptyOrInitialFilters &&\n data.length === 0;\n\n return isEmptyProp ?? calculatedIsEmpty;\n }, [\n currentPage,\n data.length,\n filters,\n hasFilters,\n initialAvailableFilters,\n isEmptyProp,\n pagination.pageIndex,\n pagination.pageSize,\n resultsPerPage,\n search,\n ]);\n\n const isNoResults = useMemo(() => {\n const hasNoResults = isLoading\n ? false\n : // DB isn't actually empty (!isEmpty) and we have zero rows\n !isEmpty && data.length === 0;\n\n return isNoResultsProp ?? hasNoResults;\n }, [data, isEmpty, isLoading, isNoResultsProp]);\n\n useEffect(() => {\n if (!initialFilters && availableFilters) {\n setInitialFilters(availableFilters);\n }\n }, [availableFilters, initialFilters]);\n\n const dataQueryParams = useMemo(\n () => ({\n page: pagination.pageIndex,\n resultsPerPage: pagination.pageSize,\n search,\n filters: availableFilters,\n sort: tableState?.columnSorting,\n }),\n [\n pagination.pageIndex,\n pagination.pageSize,\n search,\n availableFilters,\n tableState?.columnSorting,\n ],\n );\n\n const getRowId = useCallback<Required<UniversalProps<TData>>[\"getRowId\"]>(\n (row, index, parentRow) => {\n if (getRowIdProp) {\n return getRowIdProp(row, index, parentRow);\n }\n if (row.id) {\n return row.id as string;\n }\n return createUniqueId();\n },\n [getRowIdProp],\n );\n\n // Update pagination state if props change\n useEffect(() => {\n setPagination({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n }, [currentPage, resultsPerPage]);\n\n // Reset pagination if search or filters change\n useEffect(() => {\n setPagination((prev) => ({\n pageIndex: 1,\n pageSize: paginationType == \"loadMore\" ? resultsPerPage : prev.pageSize,\n }));\n }, [filters, paginationType, resultsPerPage, search]);\n\n // Fire onPaginationChange if pagination changes\n useEffect(() => {\n onPaginationChange?.(pagination);\n }, [onPaginationChange, pagination]);\n\n // Retrieve the data\n useEffect(() => {\n fetchData({\n dataQueryParams,\n errorMessageProp,\n getData,\n setData,\n setErrorMessage,\n // Only include setIsLoading if that's not being controlled manually\n setIsLoading: isLoadingProp !== undefined ? undefined : setIsLoading,\n });\n }, [dataQueryParams, errorMessageProp, getData, isLoadingProp]);\n\n // Change loading state on prop change\n useEffect(() => {\n setIsLoading((prevValue) => isLoadingProp ?? prevValue);\n }, [isLoadingProp]);\n\n const emptyState = useMemo(() => {\n const noResultsInnerContent = noResultsPlaceholder || (\n <EmptyState\n description={t(\"table.noresults.text\")}\n heading={t(\"table.noresults.heading\")}\n />\n );\n\n if (isEmpty) {\n return emptyPlaceholder || noResultsInnerContent;\n }\n\n if (isNoResults) {\n return noResultsInnerContent;\n }\n\n return;\n }, [noResultsPlaceholder, t, isEmpty, isNoResults, emptyPlaceholder]);\n\n const additionalActions = useMemo(() => {\n const hasTableSettings =\n currentLayout === \"table\" &&\n tableLayoutOptions &&\n (tableLayoutOptions.hasColumnVisibility ||\n tableLayoutOptions.hasChangeableDensity);\n\n return (\n (metaText ||\n hasTableSettings ||\n availableLayouts.length > 1 ||\n additionalActionButton ||\n additionalActionMenuItems) && (\n <StyledAdditionalActionsInner odysseyDesignTokens={odysseyDesignTokens}>\n {metaText && (\n <StyledMetaTextContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Typography color=\"textSecondary\">{metaText}</Typography>\n </StyledMetaTextContainer>\n )}\n\n {hasTableSettings && (\n <TableSettings\n setTableState={setTableState}\n tableLayoutOptions={tableLayoutOptions}\n tableState={tableState}\n />\n )}\n\n {availableLayouts.length > 1 && (\n <LayoutSwitcher\n availableLayouts={availableLayouts}\n currentLayout={currentLayout}\n setCurrentLayout={setCurrentLayout}\n />\n )}\n\n {additionalActionButton}\n\n {additionalActionMenuItems && (\n <MenuButton\n ariaLabel={t(\"table.moreactions.arialabel\")}\n buttonVariant=\"secondary\"\n endIcon={<MoreIcon />}\n menuAlignment=\"right\"\n >\n {additionalActionMenuItems}\n </MenuButton>\n )}\n </StyledAdditionalActionsInner>\n )\n );\n }, [\n additionalActionButton,\n additionalActionMenuItems,\n availableLayouts,\n currentLayout,\n metaText,\n odysseyDesignTokens,\n tableLayoutOptions,\n tableState,\n t,\n ]);\n\n const enableVirtualization = useMemo(\n () => enableVirtualizationProp ?? paginationType === \"loadMore\",\n [enableVirtualizationProp, paginationType],\n );\n\n const { lastRow: lastRowOnPage } = usePagination({\n currentRowsCount: data.length,\n pageIndex: pagination.pageIndex,\n pageSize: pagination.pageSize,\n totalRows,\n });\n\n const rowReorderingUtilities = useRowReordering({\n totalRows,\n onReorderRows,\n data,\n setData,\n draggingRow,\n setDraggingRow,\n resultsPerPage: pagination.pageSize,\n page: pagination.pageIndex,\n });\n\n return (\n <StyledDataViewContainer odysseyDesignTokens={odysseyDesignTokens}>\n {errorMessage && (\n <Box>\n <Callout severity=\"error\" text={errorMessage} />\n </Box>\n )}\n\n {shouldShowFilters && (\n <DataFilters\n additionalActions={additionalActions}\n filters={hasFilters ? availableFilters : undefined}\n hasSearchSubmitButton={hasSearchSubmitButton}\n isDisabled={isEmpty}\n onChangeFilters={hasFilters ? setFilters : undefined}\n onChangeSearch={hasSearch ? setSearch : undefined}\n searchDelayTime={searchDelayTime}\n />\n )}\n\n {(bulkActionMenuItems || hasRowSelection) && (\n <StyledBulkActionsContainer>\n <BulkActionsMenu\n data={data}\n menuItems={bulkActionMenuItems}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n />\n {!shouldShowFilters && additionalActions}\n </StyledBulkActionsContainer>\n )}\n\n {!shouldShowFilters &&\n !bulkActionMenuItems &&\n !hasRowSelection &&\n additionalActions && (\n <StyledAdditionalActionsContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {additionalActions}\n </StyledAdditionalActionsContainer>\n )}\n\n {currentLayout === \"table\" && tableLayoutOptions && (\n <TableLayoutContent\n columns={tableLayoutOptions.columns}\n data={data}\n draggingRow={draggingRow}\n emptyState={emptyState}\n enableVirtualization={enableVirtualization}\n getRowId={getRowIdProp || getRowId}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n onReorderRows={onReorderRows}\n pagination={pagination}\n rowReorderingUtilities={rowReorderingUtilities}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n setTableState={setTableState}\n tableLayoutOptions={tableLayoutOptions}\n tableState={tableState}\n totalRows={totalRows}\n />\n )}\n {(currentLayout === \"list\" || currentLayout === \"grid\") &&\n cardLayoutOptions && (\n <CardLayoutContent\n cardLayoutOptions={cardLayoutOptions}\n currentLayout={currentLayout}\n data={data}\n draggingRow={draggingRow}\n emptyState={emptyState}\n getRowId={getRowIdProp || getRowId}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n onReorderRows={onReorderRows}\n pagination={pagination}\n rowReorderingUtilities={rowReorderingUtilities}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n totalRows={totalRows}\n />\n )}\n\n {hasPagination && (\n <Pagination\n currentPageLabel={t(\"pagination.page\")}\n currentRowsCount={data.length}\n hasPageInput={hasPageInput}\n hasRowCountInput={hasRowCountInput}\n hasRowCountLabel={hasRowCountLabel}\n isDisabled={isEmpty}\n isMoreDisabled={isPaginationMoreDisabled}\n lastRow={lastRowOnPage}\n loadMoreLabel={t(\"pagination.loadmore\")}\n maxPageIndex={maxPages}\n maxPageSize={maxResultsPerPage}\n nextLabel={t(\"pagination.next\")}\n onPaginationChange={setPagination}\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n previousLabel={t(\"pagination.previous\")}\n rowsPerPageLabel={t(\"pagination.rowsperpage\")}\n totalRows={totalRows}\n variant={paginationType}\n />\n )}\n </StyledDataViewContainer>\n );\n};\n\nconst MemoizedDataView = memo(DataView) as DataViewComponent;\nMemoizedDataView.displayName = \"DataView\";\n\nexport { MemoizedDataView as DataView };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DataView.js","names":["styled","isEqual","memo","useCallback","useEffect","useMemo","useState","Box","MenuButton","Callout","createUniqueId","useRowReordering","EmptyState","useTranslation","MoreIcon","useOdysseyDesignTokens","Pagination","usePagination","Typography","DataFilters","BulkActionsMenu","CardLayoutContent","availableLayouts","allAvailableLayouts","densityValues","fetchData","LayoutSwitcher","TableLayoutContent","TableSettings","useFilterConversion","jsx","_jsx","jsxs","_jsxs","StyledDataViewContainer","shouldForwardProp","prop","odysseyDesignTokens","display","flexDirection","gap","Spacing4","StyledBulkActionsContainer","justifyContent","StyledAdditionalActionsContainer","Spacing2","StyledAdditionalActionsInner","alignItems","StyledMetaTextContainer","marginInlineEnd","DataView","additionalActionButton","additionalActionMenuItems","bulkActionMenuItems","currentPage","emptyPlaceholder","enableVirtualization","enableVirtualizationProp","errorMessage","errorMessageProp","filters","filtersProp","getData","getRowId","getRowIdProp","hasFilters","hasPagination","hasPageInput","hasRowCountInput","hasRowCountLabel","hasSearch","hasSearchSubmitButton","hasRowReordering","hasRowSelection","initialLayout","isEmpty","isEmptyProp","isLoading","isLoadingProp","isNoResults","isNoResultsProp","isPaginationMoreDisabled","isRowReorderingDisabled","metaText","noResultsPlaceholder","onChangeRowSelection","onColumnVisibilityChange","onReorderRows","onRowSelectionChange","paginationType","resultsPerPage","searchDelayTime","searchFieldLabel","cardLayoutOptions","tableLayoutOptions","totalRows","maxPages","maxResultsPerPage","onPaginationChange","t","currentLayout","setCurrentLayout","data","setData","setIsLoading","setErrorMessage","search","setSearch","initialFilters","setInitialFilters","setFilters","draggingRow","setDraggingRow","rowSelection","setRowSelection","pagination","setPagination","pageIndex","pageSize","tableState","setTableState","columnSorting","columnVisibility","initialColumnVisibility","rowDensity","initialDensity","shouldShowFilters","availableFilters","columns","initialAvailableFilters","hasEmptyOrInitialFilters","calculatedIsEmpty","length","hasNoResults","dataQueryParams","page","sort","row","index","parentRow","id","prev","undefined","prevValue","emptyState","noResultsInnerContent","description","heading","additionalActions","hasTableSettings","hasColumnVisibility","hasChangeableDensity","children","color","ariaLabel","buttonVariant","endIcon","menuAlignment","lastRow","lastRowOnPage","currentRowsCount","rowReorderingUtilities","severity","text","isDisabled","onChangeFilters","onChangeSearch","menuItems","currentPageLabel","isMoreDisabled","loadMoreLabel","maxPageIndex","maxPageSize","nextLabel","previousLabel","rowsPerPageLabel","variant","MemoizedDataView","displayName"],"sources":["../../../../src/labs/DataView/DataView.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-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 styled from \"@emotion/styled\";\nimport isEqual from \"lodash.isequal\";\nimport {\n MRT_Row,\n MRT_RowData,\n MRT_RowSelectionState,\n} from \"material-react-table\";\nimport { memo, useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { Box } from \"../../Box.js\";\nimport { MenuButton } from \"../../Buttons/MenuButton.js\";\nimport { Callout } from \"../../Callout.js\";\nimport { createUniqueId } from \"../../createUniqueId.js\";\nimport { useRowReordering } from \"../../DataTable/useRowReordering.js\";\nimport { EmptyState } from \"../../EmptyState.js\";\nimport { useTranslation } from \"../../i18n.generated/i18n.js\";\nimport { MoreIcon } from \"../../icons.generated/index.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport { Pagination } from \"../../Pagination/Pagination.js\";\nimport { usePagination } from \"../../Pagination/usePagination.js\";\nimport { Typography } from \"../../Typography.js\";\nimport { DataFilters } from \"../DataFilters.js\";\nimport { BulkActionsMenu } from \"./BulkActionsMenu.js\";\nimport { CardLayoutContent } from \"./CardLayoutContent.js\";\nimport {\n DataLayout,\n TableState,\n UniversalProps,\n ViewProps,\n} from \"./componentTypes.js\";\nimport {\n availableLayouts as allAvailableLayouts,\n densityValues,\n} from \"./constants.js\";\nimport { fetchData } from \"./fetchData.js\";\nimport { LayoutSwitcher } from \"./LayoutSwitcher.js\";\nimport { TableLayoutContent } from \"./TableLayoutContent.js\";\nimport { TableSettings } from \"./TableSettings.js\";\nimport { useFilterConversion } from \"./useFilterConversion.js\";\n\nexport type DataViewProps<TData extends MRT_RowData> = UniversalProps<TData> &\n ViewProps<TData, DataLayout>;\ntype DataViewComponent = (<TData extends MRT_RowData>(\n props: DataViewProps<TData>,\n) => JSX.Element) & {\n displayName?: string;\n};\n\nconst StyledDataViewContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n flexDirection: \"column\",\n gap: odysseyDesignTokens.Spacing4,\n}));\n\nconst StyledBulkActionsContainer = styled(\"div\")(() => ({\n display: \"flex\",\n justifyContent: \"space-between\",\n}));\n\nconst StyledAdditionalActionsContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n justifyContent: \"flex-end\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst StyledAdditionalActionsInner = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst StyledMetaTextContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n marginInlineEnd: odysseyDesignTokens.Spacing2,\n}));\n\nconst DataView = <TData extends MRT_RowData>({\n additionalActionButton,\n additionalActionMenuItems,\n availableLayouts = allAvailableLayouts,\n bulkActionMenuItems,\n currentPage = 1,\n emptyPlaceholder,\n enableVirtualization: enableVirtualizationProp,\n errorMessage: errorMessageProp,\n filters: filtersProp,\n getData,\n getRowId: getRowIdProp,\n hasFilters,\n hasPagination,\n hasPageInput,\n hasRowCountInput,\n hasRowCountLabel,\n hasSearch,\n hasSearchSubmitButton,\n hasRowReordering,\n hasRowSelection,\n initialLayout,\n isEmpty: isEmptyProp,\n isLoading: isLoadingProp,\n isNoResults: isNoResultsProp,\n isPaginationMoreDisabled,\n isRowReorderingDisabled,\n metaText,\n noResultsPlaceholder,\n onChangeRowSelection,\n onColumnVisibilityChange,\n onReorderRows,\n onRowSelectionChange,\n paginationType = \"paged\",\n resultsPerPage = 20,\n searchDelayTime,\n searchFieldLabel,\n cardLayoutOptions,\n tableLayoutOptions,\n totalRows,\n maxPages,\n maxResultsPerPage,\n onPaginationChange,\n}: DataViewProps<TData>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const [currentLayout, setCurrentLayout] = useState<DataLayout>(\n initialLayout ?? availableLayouts[0],\n );\n\n const [data, setData] = useState<TData[]>([]);\n const [isLoading, setIsLoading] = useState<boolean>(isLoadingProp ?? true);\n const [errorMessage, setErrorMessage] =\n useState<UniversalProps<TData>[\"errorMessage\"]>(errorMessageProp);\n\n const [search, setSearch] = useState<string>(\"\");\n\n const [initialFilters, setInitialFilters] =\n useState<UniversalProps<TData>[\"filters\"]>(filtersProp);\n const [filters, setFilters] =\n useState<UniversalProps<TData>[\"filters\"]>(filtersProp);\n\n const [draggingRow, setDraggingRow] = useState<MRT_Row<TData> | null>();\n\n const [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n\n useEffect(() => {\n onChangeRowSelection?.(rowSelection);\n }, [rowSelection, onChangeRowSelection]);\n\n useEffect(() => {\n onRowSelectionChange?.(rowSelection);\n }, [rowSelection, onRowSelectionChange]);\n\n const [pagination, setPagination] = useState({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n\n const [tableState, setTableState] = useState<TableState>({\n columnSorting: [],\n columnVisibility: tableLayoutOptions?.initialColumnVisibility ?? {},\n rowDensity: tableLayoutOptions?.initialDensity ?? densityValues[0],\n });\n\n const shouldShowFilters =\n hasSearch ||\n hasFilters ||\n additionalActionButton ||\n additionalActionMenuItems;\n\n const availableFilters = useFilterConversion({\n filters: filters,\n columns: tableLayoutOptions?.columns,\n });\n // will format the initial filters to be used for comparison\n const initialAvailableFilters = useFilterConversion({\n filters: initialFilters,\n columns: tableLayoutOptions?.columns,\n });\n\n const isEmpty = useMemo(() => {\n const hasEmptyOrInitialFilters =\n !hasFilters || isEqual(filters, initialAvailableFilters);\n\n const calculatedIsEmpty =\n pagination.pageIndex === currentPage &&\n pagination.pageSize === resultsPerPage &&\n search === \"\" &&\n hasEmptyOrInitialFilters &&\n data.length === 0;\n\n return isEmptyProp ?? calculatedIsEmpty;\n }, [\n currentPage,\n data.length,\n filters,\n hasFilters,\n initialAvailableFilters,\n isEmptyProp,\n pagination.pageIndex,\n pagination.pageSize,\n resultsPerPage,\n search,\n ]);\n\n const isNoResults = useMemo(() => {\n const hasNoResults = isLoading\n ? false\n : // DB isn't actually empty (!isEmpty) and we have zero rows\n !isEmpty && data.length === 0;\n\n return isNoResultsProp ?? hasNoResults;\n }, [data, isEmpty, isLoading, isNoResultsProp]);\n\n useEffect(() => {\n if (!initialFilters && availableFilters) {\n setInitialFilters(availableFilters);\n }\n }, [availableFilters, initialFilters]);\n\n const dataQueryParams = useMemo(\n () => ({\n page: pagination.pageIndex,\n resultsPerPage: pagination.pageSize,\n search,\n filters: availableFilters,\n sort: tableState?.columnSorting,\n }),\n [\n pagination.pageIndex,\n pagination.pageSize,\n search,\n availableFilters,\n tableState?.columnSorting,\n ],\n );\n\n const getRowId = useCallback<Required<UniversalProps<TData>>[\"getRowId\"]>(\n (row, index, parentRow) => {\n if (getRowIdProp) {\n return getRowIdProp(row, index, parentRow);\n }\n if (row.id) {\n return row.id as string;\n }\n return createUniqueId();\n },\n [getRowIdProp],\n );\n\n // Update pagination state if props change\n useEffect(() => {\n setPagination({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n }, [currentPage, resultsPerPage]);\n\n // Reset pagination if search or filters change\n useEffect(() => {\n setPagination((prev) => ({\n pageIndex: 1,\n pageSize: paginationType == \"loadMore\" ? resultsPerPage : prev.pageSize,\n }));\n }, [filters, paginationType, resultsPerPage, search]);\n\n // Fire onPaginationChange if pagination changes\n useEffect(() => {\n onPaginationChange?.(pagination);\n }, [onPaginationChange, pagination]);\n\n // Fire onColumnVisibilityChange if column visibility changes\n useEffect(() => {\n onColumnVisibilityChange?.(tableState.columnVisibility);\n }, [onColumnVisibilityChange, tableState.columnVisibility]);\n\n // Retrieve the data\n useEffect(() => {\n fetchData({\n dataQueryParams,\n errorMessageProp,\n getData,\n setData,\n setErrorMessage,\n // Only include setIsLoading if that's not being controlled manually\n setIsLoading: isLoadingProp !== undefined ? undefined : setIsLoading,\n });\n }, [dataQueryParams, errorMessageProp, getData, isLoadingProp]);\n\n // Change loading state on prop change\n useEffect(() => {\n setIsLoading((prevValue) => isLoadingProp ?? prevValue);\n }, [isLoadingProp]);\n\n const emptyState = useMemo(() => {\n const noResultsInnerContent = noResultsPlaceholder || (\n <EmptyState\n description={t(\"table.noresults.text\")}\n heading={t(\"table.noresults.heading\")}\n />\n );\n\n if (isEmpty) {\n return emptyPlaceholder || noResultsInnerContent;\n }\n\n if (isNoResults) {\n return noResultsInnerContent;\n }\n\n return;\n }, [noResultsPlaceholder, t, isEmpty, isNoResults, emptyPlaceholder]);\n\n const additionalActions = useMemo(() => {\n const hasTableSettings =\n currentLayout === \"table\" &&\n tableLayoutOptions &&\n (tableLayoutOptions.hasColumnVisibility ||\n tableLayoutOptions.hasChangeableDensity);\n\n return (\n (metaText ||\n hasTableSettings ||\n availableLayouts.length > 1 ||\n additionalActionButton ||\n additionalActionMenuItems) && (\n <StyledAdditionalActionsInner odysseyDesignTokens={odysseyDesignTokens}>\n {metaText && (\n <StyledMetaTextContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Typography color=\"textSecondary\">{metaText}</Typography>\n </StyledMetaTextContainer>\n )}\n\n {hasTableSettings && (\n <TableSettings\n setTableState={setTableState}\n tableLayoutOptions={tableLayoutOptions}\n tableState={tableState}\n />\n )}\n\n {availableLayouts.length > 1 && (\n <LayoutSwitcher\n availableLayouts={availableLayouts}\n currentLayout={currentLayout}\n setCurrentLayout={setCurrentLayout}\n />\n )}\n\n {additionalActionButton}\n\n {additionalActionMenuItems && (\n <MenuButton\n ariaLabel={t(\"table.moreactions.arialabel\")}\n buttonVariant=\"secondary\"\n endIcon={<MoreIcon />}\n menuAlignment=\"right\"\n >\n {additionalActionMenuItems}\n </MenuButton>\n )}\n </StyledAdditionalActionsInner>\n )\n );\n }, [\n additionalActionButton,\n additionalActionMenuItems,\n availableLayouts,\n currentLayout,\n metaText,\n odysseyDesignTokens,\n tableLayoutOptions,\n tableState,\n t,\n ]);\n\n const enableVirtualization = useMemo(\n () => enableVirtualizationProp ?? paginationType === \"loadMore\",\n [enableVirtualizationProp, paginationType],\n );\n\n const { lastRow: lastRowOnPage } = usePagination({\n currentRowsCount: data.length,\n pageIndex: pagination.pageIndex,\n pageSize: pagination.pageSize,\n totalRows,\n });\n\n const rowReorderingUtilities = useRowReordering({\n totalRows,\n onReorderRows,\n data,\n setData,\n draggingRow,\n setDraggingRow,\n resultsPerPage: pagination.pageSize,\n page: pagination.pageIndex,\n });\n\n return (\n <StyledDataViewContainer odysseyDesignTokens={odysseyDesignTokens}>\n {errorMessage && (\n <Box>\n <Callout severity=\"error\" text={errorMessage} />\n </Box>\n )}\n\n {shouldShowFilters && (\n <DataFilters\n additionalActions={additionalActions}\n filters={hasFilters ? availableFilters : undefined}\n hasSearchSubmitButton={hasSearchSubmitButton}\n isDisabled={isEmpty}\n onChangeFilters={hasFilters ? setFilters : undefined}\n onChangeSearch={hasSearch ? setSearch : undefined}\n searchDelayTime={searchDelayTime}\n searchFieldLabel={searchFieldLabel}\n />\n )}\n\n {(bulkActionMenuItems || hasRowSelection) && (\n <StyledBulkActionsContainer>\n <BulkActionsMenu\n data={data}\n menuItems={bulkActionMenuItems}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n />\n {!shouldShowFilters && additionalActions}\n </StyledBulkActionsContainer>\n )}\n\n {!shouldShowFilters &&\n !bulkActionMenuItems &&\n !hasRowSelection &&\n additionalActions && (\n <StyledAdditionalActionsContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {additionalActions}\n </StyledAdditionalActionsContainer>\n )}\n\n {currentLayout === \"table\" && tableLayoutOptions && (\n <TableLayoutContent\n columns={tableLayoutOptions.columns}\n data={data}\n draggingRow={draggingRow}\n emptyState={emptyState}\n enableVirtualization={enableVirtualization}\n getRowId={getRowIdProp || getRowId}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n onReorderRows={onReorderRows}\n pagination={pagination}\n rowReorderingUtilities={rowReorderingUtilities}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n setTableState={setTableState}\n tableLayoutOptions={tableLayoutOptions}\n tableState={tableState}\n totalRows={totalRows}\n />\n )}\n {(currentLayout === \"list\" || currentLayout === \"grid\") &&\n cardLayoutOptions && (\n <CardLayoutContent\n cardLayoutOptions={cardLayoutOptions}\n currentLayout={currentLayout}\n data={data}\n draggingRow={draggingRow}\n emptyState={emptyState}\n getRowId={getRowIdProp || getRowId}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n onReorderRows={onReorderRows}\n pagination={pagination}\n rowReorderingUtilities={rowReorderingUtilities}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n totalRows={totalRows}\n />\n )}\n\n {hasPagination && (\n <Pagination\n currentPageLabel={t(\"pagination.page\")}\n currentRowsCount={data.length}\n hasPageInput={hasPageInput}\n hasRowCountInput={hasRowCountInput}\n hasRowCountLabel={hasRowCountLabel}\n isDisabled={isEmpty}\n isMoreDisabled={isPaginationMoreDisabled}\n lastRow={lastRowOnPage}\n loadMoreLabel={t(\"pagination.loadmore\")}\n maxPageIndex={maxPages}\n maxPageSize={maxResultsPerPage}\n nextLabel={t(\"pagination.next\")}\n onPaginationChange={setPagination}\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n previousLabel={t(\"pagination.previous\")}\n rowsPerPageLabel={t(\"pagination.rowsperpage\")}\n totalRows={totalRows}\n variant={paginationType}\n />\n )}\n </StyledDataViewContainer>\n );\n};\n\nconst MemoizedDataView = memo(DataView) as DataViewComponent;\nMemoizedDataView.displayName = \"DataView\";\n\nexport { MemoizedDataView as DataView };\n"],"mappings":"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","ignoreList":[]}
@@ -21,6 +21,6 @@ const DetailPanel = ({
21
21
  });
22
22
  };
23
23
  const MemoizedDetailPanel = memo(DetailPanel);
24
- MemoizedDetailPanel.displayName = "DetailPanel::pkg=odyssey&odysseyV=1.58.0";
24
+ MemoizedDetailPanel.displayName = "DetailPanel::pkg=odyssey&odysseyV=1.59.0";
25
25
  export { MemoizedDetailPanel as DetailPanel };
26
26
  //# sourceMappingURL=DetailPanel.js.map
@@ -48,6 +48,6 @@ const LayoutSwitcher = ({
48
48
  });
49
49
  };
50
50
  const MemoizedLayoutSwitcher = memo(LayoutSwitcher);
51
- MemoizedLayoutSwitcher.displayName = "LayoutSwitcher::pkg=odyssey&odysseyV=1.58.0";
51
+ MemoizedLayoutSwitcher.displayName = "LayoutSwitcher::pkg=odyssey&odysseyV=1.59.0";
52
52
  export { MemoizedLayoutSwitcher as LayoutSwitcher };
53
53
  //# sourceMappingURL=LayoutSwitcher.js.map
@@ -82,6 +82,6 @@ const RowActions = ({
82
82
  });
83
83
  };
84
84
  const MemoizedRowActions = memo(RowActions);
85
- MemoizedRowActions.displayName = "RowActions::pkg=odyssey&odysseyV=1.58.0";
85
+ MemoizedRowActions.displayName = "RowActions::pkg=odyssey&odysseyV=1.59.0";
86
86
  export { MemoizedRowActions as RowActions };
87
87
  //# sourceMappingURL=RowActions.js.map
@@ -303,6 +303,6 @@ const TableLayoutContent = ({
303
303
  });
304
304
  };
305
305
  const MemoizedTableLayoutContent = memo(TableLayoutContent);
306
- MemoizedTableLayoutContent.displayName = "TableLayoutContent::pkg=odyssey&odysseyV=1.58.0";
306
+ MemoizedTableLayoutContent.displayName = "TableLayoutContent::pkg=odyssey&odysseyV=1.59.0";
307
307
  export { MemoizedTableLayoutContent as TableLayoutContent };
308
308
  //# sourceMappingURL=TableLayoutContent.js.map
@@ -78,6 +78,6 @@ const TableSettings = ({
78
78
  });
79
79
  };
80
80
  const MemoizedTableSettings = memo(TableSettings);
81
- MemoizedTableSettings.displayName = "TableSettings::pkg=odyssey&odysseyV=1.58.0";
81
+ MemoizedTableSettings.displayName = "TableSettings::pkg=odyssey&odysseyV=1.59.0";
82
82
  export { MemoizedTableSettings as TableSettings };
83
83
  //# sourceMappingURL=TableSettings.js.map