@okta/odyssey-react-mui 1.15.9 → 1.20.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.
- package/CHANGELOG.md +35 -0
- package/dist/Accordion.js +2 -0
- package/dist/Accordion.js.map +1 -1
- package/dist/Autocomplete.js +9 -0
- package/dist/Autocomplete.js.map +1 -1
- package/dist/Badge.js +1 -0
- package/dist/Badge.js.map +1 -1
- package/dist/Banner.js +6 -5
- package/dist/Banner.js.map +1 -1
- package/dist/Button.js +15 -11
- package/dist/Button.js.map +1 -1
- package/dist/Callout.js +45 -7
- package/dist/Callout.js.map +1 -1
- package/dist/{Tile.js → Card.js} +43 -28
- package/dist/Card.js.map +1 -0
- package/dist/DataTable/DataTable.js +68 -41
- package/dist/DataTable/DataTable.js.map +1 -1
- package/dist/DataTable/DataTableRowActions.js.map +1 -1
- package/dist/DataTable/constants.js +0 -1
- package/dist/DataTable/constants.js.map +1 -1
- package/dist/DataTable/index.js +0 -1
- package/dist/DataTable/index.js.map +1 -1
- package/dist/Dialog.js +9 -3
- package/dist/Dialog.js.map +1 -1
- package/dist/{labs/Drawer.js → Drawer.js} +5 -5
- package/dist/Drawer.js.map +1 -0
- package/dist/{DataTable/DataTableEmptyState.js → EmptyState.js} +17 -15
- package/dist/EmptyState.js.map +1 -0
- package/dist/ErrorMessageList.js +1 -1
- package/dist/ErrorMessageList.js.map +1 -1
- package/dist/FieldError.js +3 -2
- package/dist/FieldError.js.map +1 -1
- package/dist/HtmlProps.js.map +1 -1
- package/dist/MenuItem.js +1 -0
- package/dist/MenuItem.js.map +1 -1
- package/dist/OdysseyCacheProvider.js +5 -2
- package/dist/OdysseyCacheProvider.js.map +1 -1
- package/dist/OdysseyProvider.js +1 -1
- package/dist/OdysseyProvider.js.map +1 -1
- package/dist/OdysseyTranslationProvider.js +1 -6
- package/dist/OdysseyTranslationProvider.js.map +1 -1
- package/dist/{DataTable/DataTablePagination.js → Pagination/Pagination.js} +56 -59
- package/dist/Pagination/Pagination.js.map +1 -0
- package/dist/Pagination/constants.js +14 -0
- package/dist/Pagination/constants.js.map +1 -0
- package/dist/Pagination/index.js +15 -0
- package/dist/Pagination/index.js.map +1 -0
- package/dist/Pagination/usePagination.js +51 -0
- package/dist/Pagination/usePagination.js.map +1 -0
- package/dist/Radio.js +17 -5
- package/dist/Radio.js.map +1 -1
- package/dist/ScreenReaderText.js +4 -0
- package/dist/ScreenReaderText.js.map +1 -1
- package/dist/Select.js +1 -0
- package/dist/Select.js.map +1 -1
- package/dist/Status.js +5 -3
- package/dist/Status.js.map +1 -1
- package/dist/Surface.js +38 -0
- package/dist/Surface.js.map +1 -0
- package/dist/Tabs.js +22 -0
- package/dist/Tabs.js.map +1 -1
- package/dist/TextField.js +48 -0
- package/dist/TextField.js.map +1 -1
- package/dist/Toast.js +37 -34
- package/dist/Toast.js.map +1 -1
- package/dist/assertEnv.d.ts +18 -0
- package/dist/assertEnv.d.ts.map +1 -0
- package/dist/assertEnv.js +32 -0
- package/dist/icons.generated/Add.js +1 -1
- package/dist/icons.generated/Add.js.map +1 -1
- package/dist/icons.generated/AddCircle.js +1 -1
- package/dist/icons.generated/AddCircle.js.map +1 -1
- package/dist/icons.generated/Apps.js +1 -1
- package/dist/icons.generated/Apps.js.map +1 -1
- package/dist/icons.generated/ArrowBottom.js +2 -2
- package/dist/icons.generated/ArrowBottom.js.map +1 -1
- package/dist/icons.generated/ArrowDown.js +1 -1
- package/dist/icons.generated/ArrowDown.js.map +1 -1
- package/dist/icons.generated/ArrowLeft.js +1 -1
- package/dist/icons.generated/ArrowLeft.js.map +1 -1
- package/dist/icons.generated/ArrowLowerLeft.js +1 -1
- package/dist/icons.generated/ArrowLowerLeft.js.map +1 -1
- package/dist/icons.generated/ArrowLowerRight.js +1 -1
- package/dist/icons.generated/ArrowLowerRight.js.map +1 -1
- package/dist/icons.generated/ArrowRight.js +1 -1
- package/dist/icons.generated/ArrowRight.js.map +1 -1
- package/dist/icons.generated/ArrowTop.js +2 -2
- package/dist/icons.generated/ArrowTop.js.map +1 -1
- package/dist/icons.generated/ArrowUnsorted.js +1 -1
- package/dist/icons.generated/ArrowUnsorted.js.map +1 -1
- package/dist/icons.generated/ArrowUp.js +1 -1
- package/dist/icons.generated/ArrowUp.js.map +1 -1
- package/dist/icons.generated/ArrowUpperLeft.js +1 -1
- package/dist/icons.generated/ArrowUpperLeft.js.map +1 -1
- package/dist/icons.generated/ArrowUpperRight.js +1 -1
- package/dist/icons.generated/ArrowUpperRight.js.map +1 -1
- package/dist/icons.generated/Bug.js +1 -1
- package/dist/icons.generated/Bug.js.map +1 -1
- package/dist/icons.generated/Calendar.js +1 -1
- package/dist/icons.generated/Calendar.js.map +1 -1
- package/dist/icons.generated/Call.js +1 -1
- package/dist/icons.generated/Call.js.map +1 -1
- package/dist/icons.generated/Chat.js +1 -1
- package/dist/icons.generated/Chat.js.map +1 -1
- package/dist/icons.generated/Check.js +1 -1
- package/dist/icons.generated/Check.js.map +1 -1
- package/dist/icons.generated/CheckCircleFilled.js +1 -1
- package/dist/icons.generated/CheckCircleFilled.js.map +1 -1
- package/dist/icons.generated/ChevronDown.js +1 -1
- package/dist/icons.generated/ChevronDown.js.map +1 -1
- package/dist/icons.generated/ChevronLeft.js +1 -1
- package/dist/icons.generated/ChevronLeft.js.map +1 -1
- package/dist/icons.generated/ChevronRight.js +1 -1
- package/dist/icons.generated/ChevronRight.js.map +1 -1
- package/dist/icons.generated/ChevronUp.js +1 -1
- package/dist/icons.generated/ChevronUp.js.map +1 -1
- package/dist/icons.generated/Clock.js +1 -1
- package/dist/icons.generated/Clock.js.map +1 -1
- package/dist/icons.generated/Close.js +1 -1
- package/dist/icons.generated/Close.js.map +1 -1
- package/dist/icons.generated/CloseCircleFilled.js +1 -1
- package/dist/icons.generated/CloseCircleFilled.js.map +1 -1
- package/dist/icons.generated/CollapseLeft.js +1 -1
- package/dist/icons.generated/CollapseLeft.js.map +1 -1
- package/dist/icons.generated/CollapseRight.js +1 -1
- package/dist/icons.generated/CollapseRight.js.map +1 -1
- package/dist/icons.generated/Copy.js +1 -1
- package/dist/icons.generated/Copy.js.map +1 -1
- package/dist/icons.generated/Custom.js +39 -0
- package/dist/icons.generated/Custom.js.map +1 -0
- package/dist/icons.generated/DangerDiamond.js +1 -1
- package/dist/icons.generated/DangerDiamond.js.map +1 -1
- package/dist/icons.generated/DangerDiamondFilled.js +1 -1
- package/dist/icons.generated/DangerDiamondFilled.js.map +1 -1
- package/dist/icons.generated/Delete.js +1 -1
- package/dist/icons.generated/Delete.js.map +1 -1
- package/dist/icons.generated/Deny.js +1 -1
- package/dist/icons.generated/Deny.js.map +1 -1
- package/dist/icons.generated/Devices.js +1 -1
- package/dist/icons.generated/Devices.js.map +1 -1
- package/dist/icons.generated/Directory.js +1 -1
- package/dist/icons.generated/Directory.js.map +1 -1
- package/dist/icons.generated/Documentation.js +1 -1
- package/dist/icons.generated/Documentation.js.map +1 -1
- package/dist/icons.generated/Download.js +1 -1
- package/dist/icons.generated/Download.js.map +1 -1
- package/dist/icons.generated/DragIndicator.js +1 -1
- package/dist/icons.generated/DragIndicator.js.map +1 -1
- package/dist/icons.generated/Duo.js +47 -0
- package/dist/icons.generated/Duo.js.map +1 -0
- package/dist/icons.generated/Edit.js +1 -1
- package/dist/icons.generated/Edit.js.map +1 -1
- package/dist/icons.generated/Email.js +38 -0
- package/dist/icons.generated/Email.js.map +1 -0
- package/dist/icons.generated/ExpandLeft.js +1 -1
- package/dist/icons.generated/ExpandLeft.js.map +1 -1
- package/dist/icons.generated/ExpandRight.js +1 -1
- package/dist/icons.generated/ExpandRight.js.map +1 -1
- package/dist/icons.generated/ExternalLink.js +1 -1
- package/dist/icons.generated/ExternalLink.js.map +1 -1
- package/dist/icons.generated/Fido2.js +57 -0
- package/dist/icons.generated/Fido2.js.map +1 -0
- package/dist/icons.generated/Filter.js +1 -1
- package/dist/icons.generated/Filter.js.map +1 -1
- package/dist/icons.generated/Folder.js +1 -1
- package/dist/icons.generated/Folder.js.map +1 -1
- package/dist/icons.generated/Globe.js +1 -1
- package/dist/icons.generated/Globe.js.map +1 -1
- package/dist/icons.generated/GoogleAuth.js +54 -0
- package/dist/icons.generated/GoogleAuth.js.map +1 -0
- package/dist/icons.generated/Grid.js +1 -1
- package/dist/icons.generated/Grid.js.map +1 -1
- package/dist/icons.generated/Group.js +1 -1
- package/dist/icons.generated/Group.js.map +1 -1
- package/dist/icons.generated/Hide.js +1 -1
- package/dist/icons.generated/Hide.js.map +1 -1
- package/dist/icons.generated/Home.js +1 -1
- package/dist/icons.generated/Home.js.map +1 -1
- package/dist/icons.generated/Idp.js +42 -0
- package/dist/icons.generated/Idp.js.map +1 -0
- package/dist/icons.generated/InformationCircle.js +1 -1
- package/dist/icons.generated/InformationCircle.js.map +1 -1
- package/dist/icons.generated/InformationCircleFilled.js +1 -1
- package/dist/icons.generated/InformationCircleFilled.js.map +1 -1
- package/dist/icons.generated/Link.js +1 -1
- package/dist/icons.generated/Link.js.map +1 -1
- package/dist/icons.generated/List.js +1 -1
- package/dist/icons.generated/List.js.map +1 -1
- package/dist/icons.generated/Lock.js +1 -1
- package/dist/icons.generated/Lock.js.map +1 -1
- package/dist/icons.generated/More.js +1 -1
- package/dist/icons.generated/More.js.map +1 -1
- package/dist/icons.generated/Notification.js +1 -1
- package/dist/icons.generated/Notification.js.map +1 -1
- package/dist/icons.generated/OktaVerify.js +33 -0
- package/dist/icons.generated/OktaVerify.js.map +1 -0
- package/dist/icons.generated/OnPremMfa.js +39 -0
- package/dist/icons.generated/OnPremMfa.js.map +1 -0
- package/dist/icons.generated/OneTimePassword.js +49 -0
- package/dist/icons.generated/OneTimePassword.js.map +1 -0
- package/dist/icons.generated/Password.js +61 -0
- package/dist/icons.generated/Password.js.map +1 -0
- package/dist/icons.generated/Pause.js +1 -1
- package/dist/icons.generated/Pause.js.map +1 -1
- package/dist/icons.generated/QuestionCircle.js +1 -1
- package/dist/icons.generated/QuestionCircle.js.map +1 -1
- package/dist/icons.generated/QuestionCircleFilled.js +1 -1
- package/dist/icons.generated/QuestionCircleFilled.js.map +1 -1
- package/dist/icons.generated/Refresh.js +1 -1
- package/dist/icons.generated/Refresh.js.map +1 -1
- package/dist/icons.generated/Reset.js +1 -1
- package/dist/icons.generated/Reset.js.map +1 -1
- package/dist/icons.generated/Resume.js +1 -1
- package/dist/icons.generated/Resume.js.map +1 -1
- package/dist/icons.generated/Search.js +1 -1
- package/dist/icons.generated/Search.js.map +1 -1
- package/dist/icons.generated/SecurityQuestion.js +41 -0
- package/dist/icons.generated/SecurityQuestion.js.map +1 -0
- package/dist/icons.generated/Server.js +1 -1
- package/dist/icons.generated/Server.js.map +1 -1
- package/dist/icons.generated/Settings.js +1 -1
- package/dist/icons.generated/Settings.js.map +1 -1
- package/dist/icons.generated/Show.js +1 -1
- package/dist/icons.generated/Show.js.map +1 -1
- package/dist/icons.generated/SmartCard.js +49 -0
- package/dist/icons.generated/SmartCard.js.map +1 -0
- package/dist/icons.generated/Sms.js +49 -0
- package/dist/icons.generated/Sms.js.map +1 -0
- package/dist/icons.generated/Subtract.js +1 -1
- package/dist/icons.generated/Subtract.js.map +1 -1
- package/dist/icons.generated/SymantecVip.js +38 -0
- package/dist/icons.generated/SymantecVip.js.map +1 -0
- package/dist/icons.generated/Sync.js +1 -1
- package/dist/icons.generated/Sync.js.map +1 -1
- package/dist/icons.generated/ThumbsDown.js +33 -0
- package/dist/icons.generated/ThumbsDown.js.map +1 -0
- package/dist/icons.generated/ThumbsUp.js +33 -0
- package/dist/icons.generated/ThumbsUp.js.map +1 -0
- package/dist/icons.generated/Unlock.js +1 -1
- package/dist/icons.generated/Unlock.js.map +1 -1
- package/dist/icons.generated/Upload.js +1 -1
- package/dist/icons.generated/Upload.js.map +1 -1
- package/dist/icons.generated/User.js +1 -1
- package/dist/icons.generated/User.js.map +1 -1
- package/dist/icons.generated/Video.js +1 -1
- package/dist/icons.generated/Video.js.map +1 -1
- package/dist/icons.generated/VoiceCall.js +54 -0
- package/dist/icons.generated/VoiceCall.js.map +1 -0
- package/dist/icons.generated/Warning.js +1 -1
- package/dist/icons.generated/Warning.js.map +1 -1
- package/dist/icons.generated/WarningFilled.js +1 -1
- package/dist/icons.generated/WarningFilled.js.map +1 -1
- package/dist/icons.generated/Yubikey.js +31 -0
- package/dist/icons.generated/Yubikey.js.map +1 -0
- package/dist/icons.generated/index.js +18 -0
- package/dist/icons.generated/index.js.map +1 -1
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/index.scss +457 -0
- package/dist/labs/DataComponents/BulkActionsMenu.js +77 -0
- package/dist/labs/DataComponents/BulkActionsMenu.js.map +1 -0
- package/dist/labs/DataComponents/DataStack.js +79 -0
- package/dist/labs/DataComponents/DataStack.js.map +1 -0
- package/dist/labs/DataComponents/DataTable.js +90 -0
- package/dist/labs/DataComponents/DataTable.js.map +1 -0
- package/dist/labs/DataComponents/DataView.js +278 -0
- package/dist/labs/DataComponents/DataView.js.map +1 -0
- package/dist/{src/DataTable/DataTableEmptyState.d.ts → labs/DataComponents/DetailPanel.js} +14 -9
- package/dist/labs/DataComponents/DetailPanel.js.map +1 -0
- package/dist/labs/DataComponents/LayoutSwitcher.js +53 -0
- package/dist/labs/DataComponents/LayoutSwitcher.js.map +1 -0
- package/dist/labs/DataComponents/RowActions.js +80 -0
- package/dist/labs/DataComponents/RowActions.js.map +1 -0
- package/dist/labs/DataComponents/StackCard.js +163 -0
- package/dist/labs/DataComponents/StackCard.js.map +1 -0
- package/dist/labs/DataComponents/StackContent.js +143 -0
- package/dist/labs/DataComponents/StackContent.js.map +1 -0
- package/dist/labs/DataComponents/TableContent.js +248 -0
- package/dist/labs/DataComponents/TableContent.js.map +1 -0
- package/dist/labs/DataComponents/TableSettings.js +96 -0
- package/dist/labs/DataComponents/TableSettings.js.map +1 -0
- package/dist/labs/DataComponents/componentTypes.js +2 -0
- package/dist/labs/DataComponents/componentTypes.js.map +1 -0
- package/dist/labs/DataComponents/constants.js +17 -0
- package/dist/labs/DataComponents/constants.js.map +1 -0
- package/dist/labs/DataComponents/dataTypes.js +2 -0
- package/dist/labs/DataComponents/dataTypes.js.map +1 -0
- package/dist/labs/DataComponents/fetchData.js +33 -0
- package/dist/labs/DataComponents/fetchData.js.map +1 -0
- package/dist/labs/DataComponents/index.js +18 -0
- package/dist/labs/DataComponents/index.js.map +1 -0
- package/dist/labs/DataComponents/tableConstants.js +146 -0
- package/dist/labs/DataComponents/tableConstants.js.map +1 -0
- package/dist/labs/DataComponents/useFilterConversion.js +58 -0
- package/dist/labs/DataComponents/useFilterConversion.js.map +1 -0
- package/dist/labs/DataFilters.js +139 -82
- package/dist/labs/DataFilters.js.map +1 -1
- package/dist/labs/DateField.js +77 -0
- package/dist/labs/DateField.js.map +1 -0
- package/dist/labs/DatePicker.js +186 -23
- package/dist/labs/DatePicker.js.map +1 -1
- package/dist/labs/{DatePicker.types.js → DatePicker.types.d.js} +1 -1
- package/dist/labs/DatePicker.types.d.js.map +1 -0
- package/dist/labs/FileUpload.js +28 -25
- package/dist/labs/FileUpload.js.map +1 -1
- package/dist/labs/FileUploadIllustration.js +1 -1
- package/dist/labs/FileUploadIllustration.js.map +1 -1
- package/dist/labs/FileUploadPreview.js +1 -0
- package/dist/labs/FileUploadPreview.js.map +1 -1
- package/dist/labs/Layout.js +49 -0
- package/dist/labs/Layout.js.map +1 -0
- package/dist/labs/NavAccordion.js +80 -0
- package/dist/labs/NavAccordion.js.map +1 -0
- package/dist/labs/PageTemplate.js +140 -0
- package/dist/labs/PageTemplate.js.map +1 -0
- package/dist/labs/SideNav.js +478 -0
- package/dist/labs/SideNav.js.map +1 -0
- package/dist/labs/Switch.js +186 -77
- package/dist/labs/Switch.js.map +1 -1
- package/dist/labs/datePickerTheme.js +138 -80
- package/dist/labs/datePickerTheme.js.map +1 -1
- package/dist/labs/index.js +5 -1
- package/dist/labs/index.js.map +1 -1
- package/dist/labs/useDatePickerTranslations.js +71 -0
- package/dist/labs/useDatePickerTranslations.js.map +1 -0
- package/dist/preset.d.ts +23 -0
- package/dist/preset.d.ts.map +1 -0
- package/dist/preset.js +35 -0
- package/dist/properties/ts/odyssey-react-mui.js +68 -10
- package/dist/properties/ts/odyssey-react-mui.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_cs.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_cs.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_da.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_da.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_de.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_de.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_el.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_el.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_es.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_es.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_fi.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_fi.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_fr.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_fr.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ht.js +98 -0
- package/dist/properties/ts/odyssey-react-mui_ht.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_hu.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_hu.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_id.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_id.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_it.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_it.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ja.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_ja.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ko.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_ko.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ms.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_ms.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_nb.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_nb.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_nl_NL.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_nl_NL.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_pl.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_pl.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_pt_BR.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_pt_BR.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ro.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_ro.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ru.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_ru.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_sv.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_sv.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_th.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_th.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_tr.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_tr.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_uk.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_uk.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_vi.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_vi.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_zh_CN.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_zh_CN.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_zh_TW.js +55 -8
- package/dist/properties/ts/odyssey-react-mui_zh_TW.js.map +1 -1
- package/dist/remUtils.js +14 -0
- package/dist/remUtils.js.map +1 -0
- package/dist/scripts/generateTestSelectorsJson.d.ts +13 -0
- package/dist/scripts/generateTestSelectorsJson.d.ts.map +1 -0
- package/dist/src/Accordion.d.ts +1 -1
- package/dist/src/Accordion.d.ts.map +1 -1
- package/dist/src/Autocomplete.d.ts +7 -1
- package/dist/src/Autocomplete.d.ts.map +1 -1
- package/dist/src/Badge.d.ts +2 -2
- package/dist/src/Badge.d.ts.map +1 -1
- package/dist/src/Banner.d.ts.map +1 -1
- package/dist/src/Button.d.ts +10 -6
- package/dist/src/Button.d.ts.map +1 -1
- package/dist/src/Callout.d.ts +38 -2
- package/dist/src/Callout.d.ts.map +1 -1
- package/dist/src/{Tile.d.ts → Card.d.ts} +6 -27
- package/dist/src/Card.d.ts.map +1 -0
- package/dist/src/DataTable/DataTable.d.ts +65 -48
- package/dist/src/DataTable/DataTable.d.ts.map +1 -1
- package/dist/src/DataTable/DataTableRowActions.d.ts +1 -1
- package/dist/src/DataTable/DataTableRowActions.d.ts.map +1 -1
- package/dist/src/DataTable/constants.d.ts +0 -1
- package/dist/src/DataTable/constants.d.ts.map +1 -1
- package/dist/src/DataTable/index.d.ts +1 -2
- package/dist/src/DataTable/index.d.ts.map +1 -1
- package/dist/src/DataTable/reorderDataRowsLocally.d.ts.map +1 -1
- package/dist/src/DataTable/useRowReordering.d.ts +3 -3
- package/dist/src/DataTable/useRowReordering.d.ts.map +1 -1
- package/dist/src/Dialog.d.ts +19 -7
- package/dist/src/Dialog.d.ts.map +1 -1
- package/dist/src/{labs/Drawer.d.ts → Drawer.d.ts} +3 -3
- package/dist/src/Drawer.d.ts.map +1 -0
- package/dist/src/EmptyState.d.ts +34 -0
- package/dist/src/EmptyState.d.ts.map +1 -0
- package/dist/src/ErrorMessageList.d.ts.map +1 -1
- package/dist/src/FieldError.d.ts.map +1 -1
- package/dist/src/HtmlProps.d.ts +1 -0
- package/dist/src/HtmlProps.d.ts.map +1 -1
- package/dist/src/MenuItem.d.ts.map +1 -1
- package/dist/src/OdysseyCacheProvider.d.ts +6 -2
- package/dist/src/OdysseyCacheProvider.d.ts.map +1 -1
- package/dist/src/OdysseyProvider.d.ts.map +1 -1
- package/dist/src/OdysseyTranslationProvider.d.ts +1 -1
- package/dist/src/OdysseyTranslationProvider.d.ts.map +1 -1
- package/dist/src/Pagination/Pagination.d.ts +70 -0
- package/dist/src/Pagination/Pagination.d.ts.map +1 -0
- package/dist/src/Pagination/constants.d.ts +13 -0
- package/dist/src/Pagination/constants.d.ts.map +1 -0
- package/dist/src/Pagination/index.d.ts +15 -0
- package/dist/src/Pagination/index.d.ts.map +1 -0
- package/dist/src/Pagination/usePagination.d.ts +23 -0
- package/dist/src/Pagination/usePagination.d.ts.map +1 -0
- package/dist/src/Radio.d.ts +2 -2
- package/dist/src/Radio.d.ts.map +1 -1
- package/dist/src/ScreenReaderText.d.ts +3 -2
- package/dist/src/ScreenReaderText.d.ts.map +1 -1
- package/dist/src/Select.d.ts.map +1 -1
- package/dist/src/Status.d.ts +7 -2
- package/dist/src/Status.d.ts.map +1 -1
- package/dist/src/{labs/DatePicker.types.d.ts → Surface.d.ts} +7 -8
- package/dist/src/Surface.d.ts.map +1 -0
- package/dist/src/Tabs.d.ts +22 -0
- package/dist/src/Tabs.d.ts.map +1 -1
- package/dist/src/TextField.d.ts +48 -0
- package/dist/src/TextField.d.ts.map +1 -1
- package/dist/src/Toast.d.ts.map +1 -1
- package/dist/src/icons.generated/Add.d.ts +1 -1
- package/dist/src/icons.generated/AddCircle.d.ts +1 -1
- package/dist/src/icons.generated/Apps.d.ts +1 -1
- package/dist/src/icons.generated/ArrowBottom.d.ts +1 -1
- package/dist/src/icons.generated/ArrowDown.d.ts +1 -1
- package/dist/src/icons.generated/ArrowLeft.d.ts +1 -1
- package/dist/src/icons.generated/ArrowLowerLeft.d.ts +1 -1
- package/dist/src/icons.generated/ArrowLowerRight.d.ts +1 -1
- package/dist/src/icons.generated/ArrowRight.d.ts +1 -1
- package/dist/src/icons.generated/ArrowTop.d.ts +1 -1
- package/dist/src/icons.generated/ArrowUnsorted.d.ts +1 -1
- package/dist/src/icons.generated/ArrowUp.d.ts +1 -1
- package/dist/src/icons.generated/ArrowUpperLeft.d.ts +1 -1
- package/dist/src/icons.generated/ArrowUpperRight.d.ts +1 -1
- package/dist/src/icons.generated/Bug.d.ts +1 -1
- package/dist/src/icons.generated/Calendar.d.ts +1 -1
- package/dist/src/icons.generated/Call.d.ts +1 -1
- package/dist/src/icons.generated/Chat.d.ts +1 -1
- package/dist/src/icons.generated/Check.d.ts +1 -1
- package/dist/src/icons.generated/CheckCircleFilled.d.ts +1 -1
- package/dist/src/icons.generated/ChevronDown.d.ts +1 -1
- package/dist/src/icons.generated/ChevronLeft.d.ts +1 -1
- package/dist/src/icons.generated/ChevronRight.d.ts +1 -1
- package/dist/src/icons.generated/ChevronUp.d.ts +1 -1
- package/dist/src/icons.generated/Clock.d.ts +1 -1
- package/dist/src/icons.generated/Close.d.ts +1 -1
- package/dist/src/icons.generated/CloseCircleFilled.d.ts +1 -1
- package/dist/src/icons.generated/CollapseLeft.d.ts +1 -1
- package/dist/src/icons.generated/CollapseRight.d.ts +1 -1
- package/dist/src/icons.generated/Copy.d.ts +1 -1
- package/dist/src/icons.generated/Custom.d.ts +16 -0
- package/dist/src/icons.generated/Custom.d.ts.map +1 -0
- package/dist/src/icons.generated/DangerDiamond.d.ts +1 -1
- package/dist/src/icons.generated/DangerDiamondFilled.d.ts +1 -1
- package/dist/src/icons.generated/Delete.d.ts +1 -1
- package/dist/src/icons.generated/Deny.d.ts +1 -1
- package/dist/src/icons.generated/Devices.d.ts +1 -1
- package/dist/src/icons.generated/Directory.d.ts +1 -1
- package/dist/src/icons.generated/Documentation.d.ts +1 -1
- package/dist/src/icons.generated/Download.d.ts +1 -1
- package/dist/src/icons.generated/DragIndicator.d.ts +1 -1
- package/dist/src/icons.generated/Duo.d.ts +16 -0
- package/dist/src/icons.generated/Duo.d.ts.map +1 -0
- package/dist/src/icons.generated/Edit.d.ts +1 -1
- package/dist/src/icons.generated/Email.d.ts +16 -0
- package/dist/src/icons.generated/Email.d.ts.map +1 -0
- package/dist/src/icons.generated/ExpandLeft.d.ts +1 -1
- package/dist/src/icons.generated/ExpandRight.d.ts +1 -1
- package/dist/src/icons.generated/ExternalLink.d.ts +1 -1
- package/dist/src/icons.generated/Fido2.d.ts +16 -0
- package/dist/src/icons.generated/Fido2.d.ts.map +1 -0
- package/dist/src/icons.generated/Filter.d.ts +1 -1
- package/dist/src/icons.generated/Folder.d.ts +1 -1
- package/dist/src/icons.generated/Globe.d.ts +1 -1
- package/dist/src/icons.generated/GoogleAuth.d.ts +16 -0
- package/dist/src/icons.generated/GoogleAuth.d.ts.map +1 -0
- package/dist/src/icons.generated/Grid.d.ts +1 -1
- package/dist/src/icons.generated/Group.d.ts +1 -1
- package/dist/src/icons.generated/Hide.d.ts +1 -1
- package/dist/src/icons.generated/Home.d.ts +1 -1
- package/dist/src/icons.generated/Idp.d.ts +16 -0
- package/dist/src/icons.generated/Idp.d.ts.map +1 -0
- package/dist/src/icons.generated/InformationCircle.d.ts +1 -1
- package/dist/src/icons.generated/InformationCircleFilled.d.ts +1 -1
- package/dist/src/icons.generated/Link.d.ts +1 -1
- package/dist/src/icons.generated/List.d.ts +1 -1
- package/dist/src/icons.generated/Lock.d.ts +1 -1
- package/dist/src/icons.generated/More.d.ts +1 -1
- package/dist/src/icons.generated/Notification.d.ts +1 -1
- package/dist/src/icons.generated/OktaVerify.d.ts +16 -0
- package/dist/src/icons.generated/OktaVerify.d.ts.map +1 -0
- package/dist/src/icons.generated/OnPremMfa.d.ts +16 -0
- package/dist/src/icons.generated/OnPremMfa.d.ts.map +1 -0
- package/dist/src/icons.generated/OneTimePassword.d.ts +16 -0
- package/dist/src/icons.generated/OneTimePassword.d.ts.map +1 -0
- package/dist/src/icons.generated/Password.d.ts +16 -0
- package/dist/src/icons.generated/Password.d.ts.map +1 -0
- package/dist/src/icons.generated/Pause.d.ts +1 -1
- package/dist/src/icons.generated/QuestionCircle.d.ts +1 -1
- package/dist/src/icons.generated/QuestionCircleFilled.d.ts +1 -1
- package/dist/src/icons.generated/Refresh.d.ts +1 -1
- package/dist/src/icons.generated/Reset.d.ts +1 -1
- package/dist/src/icons.generated/Resume.d.ts +1 -1
- package/dist/src/icons.generated/Search.d.ts +1 -1
- package/dist/src/icons.generated/SecurityQuestion.d.ts +16 -0
- package/dist/src/icons.generated/SecurityQuestion.d.ts.map +1 -0
- package/dist/src/icons.generated/Server.d.ts +1 -1
- package/dist/src/icons.generated/Settings.d.ts +1 -1
- package/dist/src/icons.generated/Show.d.ts +1 -1
- package/dist/src/icons.generated/SmartCard.d.ts +16 -0
- package/dist/src/icons.generated/SmartCard.d.ts.map +1 -0
- package/dist/src/icons.generated/Sms.d.ts +16 -0
- package/dist/src/icons.generated/Sms.d.ts.map +1 -0
- package/dist/src/icons.generated/Subtract.d.ts +1 -1
- package/dist/src/icons.generated/SymantecVip.d.ts +16 -0
- package/dist/src/icons.generated/SymantecVip.d.ts.map +1 -0
- package/dist/src/icons.generated/Sync.d.ts +1 -1
- package/dist/src/icons.generated/ThumbsDown.d.ts +16 -0
- package/dist/src/icons.generated/ThumbsDown.d.ts.map +1 -0
- package/dist/src/icons.generated/ThumbsUp.d.ts +16 -0
- package/dist/src/icons.generated/ThumbsUp.d.ts.map +1 -0
- package/dist/src/icons.generated/Unlock.d.ts +1 -1
- package/dist/src/icons.generated/Upload.d.ts +1 -1
- package/dist/src/icons.generated/User.d.ts +1 -1
- package/dist/src/icons.generated/Video.d.ts +1 -1
- package/dist/src/icons.generated/VoiceCall.d.ts +16 -0
- package/dist/src/icons.generated/VoiceCall.d.ts.map +1 -0
- package/dist/src/icons.generated/Warning.d.ts +1 -1
- package/dist/src/icons.generated/WarningFilled.d.ts +1 -1
- package/dist/src/icons.generated/Yubikey.d.ts +16 -0
- package/dist/src/icons.generated/Yubikey.d.ts.map +1 -0
- package/dist/src/icons.generated/index.d.ts +18 -0
- package/dist/src/icons.generated/index.d.ts.map +1 -1
- package/dist/src/index.d.ts +7 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/inputUtils.d.ts.map +1 -1
- package/dist/src/labs/DataComponents/BulkActionsMenu.d.ts +23 -0
- package/dist/src/labs/DataComponents/BulkActionsMenu.d.ts.map +1 -0
- package/dist/src/labs/DataComponents/DataStack.d.ts +21 -0
- package/dist/src/labs/DataComponents/DataStack.d.ts.map +1 -0
- package/dist/src/labs/DataComponents/DataTable.d.ts +17 -0
- package/dist/src/labs/DataComponents/DataTable.d.ts.map +1 -0
- package/dist/src/labs/DataComponents/DataView.d.ts +17 -0
- package/dist/src/labs/DataComponents/DataView.d.ts.map +1 -0
- package/dist/src/labs/DataComponents/DetailPanel.d.ts +20 -0
- package/dist/src/labs/DataComponents/DetailPanel.d.ts.map +1 -0
- package/dist/src/labs/DataComponents/LayoutSwitcher.d.ts +21 -0
- package/dist/src/labs/DataComponents/LayoutSwitcher.d.ts.map +1 -0
- package/dist/src/labs/DataComponents/RowActions.d.ts +31 -0
- package/dist/src/labs/DataComponents/RowActions.d.ts.map +1 -0
- package/dist/src/labs/DataComponents/StackCard.d.ts +36 -0
- package/dist/src/labs/DataComponents/StackCard.d.ts.map +1 -0
- package/dist/src/labs/DataComponents/StackContent.d.ts +64 -0
- package/dist/src/labs/DataComponents/StackContent.d.ts.map +1 -0
- package/dist/src/labs/DataComponents/TableContent.d.ts +66 -0
- package/dist/src/labs/DataComponents/TableContent.d.ts.map +1 -0
- package/dist/src/labs/DataComponents/TableSettings.d.ts +21 -0
- package/dist/src/labs/DataComponents/TableSettings.d.ts.map +1 -0
- package/dist/src/labs/DataComponents/componentTypes.d.ts +81 -0
- package/dist/src/labs/DataComponents/componentTypes.d.ts.map +1 -0
- package/dist/src/labs/DataComponents/constants.d.ts +16 -0
- package/dist/src/labs/DataComponents/constants.d.ts.map +1 -0
- package/dist/src/labs/DataComponents/dataTypes.d.ts +52 -0
- package/dist/src/labs/DataComponents/dataTypes.d.ts.map +1 -0
- package/dist/src/labs/DataComponents/fetchData.d.ts +26 -0
- package/dist/src/labs/DataComponents/fetchData.d.ts.map +1 -0
- package/dist/src/labs/DataComponents/index.d.ts +18 -0
- package/dist/src/labs/DataComponents/index.d.ts.map +1 -0
- package/dist/src/labs/DataComponents/tableConstants.d.ts +100 -0
- package/dist/src/labs/DataComponents/tableConstants.d.ts.map +1 -0
- package/dist/src/labs/DataComponents/useFilterConversion.d.ts +20 -0
- package/dist/src/labs/DataComponents/useFilterConversion.d.ts.map +1 -0
- package/dist/src/labs/DataFilters.d.ts +14 -7
- package/dist/src/labs/DataFilters.d.ts.map +1 -1
- package/dist/src/labs/DateField.d.ts +23 -0
- package/dist/src/labs/DateField.d.ts.map +1 -0
- package/dist/src/labs/DatePicker.d.ts +31 -8
- package/dist/src/labs/DatePicker.d.ts.map +1 -1
- package/dist/src/labs/FileUpload.d.ts +2 -2
- package/dist/src/labs/FileUpload.d.ts.map +1 -1
- package/dist/src/labs/FileUploadPreview.d.ts.map +1 -1
- package/dist/src/labs/GroupPicker.d.ts.map +1 -1
- package/dist/src/labs/Layout.d.ts +28 -0
- package/dist/src/labs/Layout.d.ts.map +1 -0
- package/dist/src/labs/NavAccordion.d.ts +52 -0
- package/dist/src/labs/NavAccordion.d.ts.map +1 -0
- package/dist/src/labs/PageTemplate.d.ts +57 -0
- package/dist/src/labs/PageTemplate.d.ts.map +1 -0
- package/dist/src/labs/PaginatedTable.d.ts.map +1 -1
- package/dist/src/labs/SideNav.d.ts +120 -0
- package/dist/src/labs/SideNav.d.ts.map +1 -0
- package/dist/src/labs/StaticTable.d.ts.map +1 -1
- package/dist/src/labs/Switch.d.ts +3 -7
- package/dist/src/labs/Switch.d.ts.map +1 -1
- package/dist/src/labs/datePickerTheme.d.ts.map +1 -1
- package/dist/src/labs/index.d.ts +5 -1
- package/dist/src/labs/index.d.ts.map +1 -1
- package/dist/src/labs/useDatePickerTranslations.d.ts +15 -0
- package/dist/src/labs/useDatePickerTranslations.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui.d.ts +66 -8
- package/dist/src/properties/ts/odyssey-react-mui.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_cs.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_cs.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_da.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_da.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_de.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_de.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_el.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_el.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_es.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_es.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_fi.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_fi.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_fr.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_fr.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ht.d.ts +98 -0
- package/dist/src/properties/ts/odyssey-react-mui_ht.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_hu.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_hu.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_id.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_id.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_it.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_it.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ja.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_ja.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ko.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_ko.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ms.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_ms.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_nb.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_nb.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_nl_NL.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_nl_NL.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_pl.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_pl.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_pt_BR.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_pt_BR.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ro.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_ro.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ru.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_ru.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_sv.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_sv.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_th.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_th.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_tr.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_tr.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_uk.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_uk.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_vi.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_vi.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_zh_CN.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_zh_CN.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_zh_TW.d.ts +54 -7
- package/dist/src/properties/ts/odyssey-react-mui_zh_TW.d.ts.map +1 -1
- package/dist/src/remUtils.d.ts +24 -0
- package/dist/src/remUtils.d.ts.map +1 -0
- package/dist/src/test-selectors/featureTestSelector.d.ts +31 -0
- package/dist/src/test-selectors/featureTestSelector.d.ts.map +1 -0
- package/dist/src/test-selectors/index.d.ts +15 -0
- package/dist/src/test-selectors/index.d.ts.map +1 -0
- package/dist/src/test-selectors/odysseyTestSelectors.d.ts +120 -0
- package/dist/src/test-selectors/odysseyTestSelectors.d.ts.map +1 -0
- package/dist/src/test-selectors/querySelector.d.ts +3632 -0
- package/dist/src/test-selectors/querySelector.d.ts.map +1 -0
- package/dist/src/theme/components.d.ts +1 -1
- package/dist/src/theme/components.d.ts.map +1 -1
- package/dist/src/theme/components.types.d.ts +5 -3
- package/dist/src/theme/components.types.d.ts.map +1 -1
- package/dist/src/theme/createOdysseyMuiTheme.d.ts +1 -1
- package/dist/src/theme/createOdysseyMuiTheme.d.ts.map +1 -1
- package/dist/src/theme/mixins.d.ts.map +1 -1
- package/dist/src/theme/palette.d.ts.map +1 -1
- package/dist/src/theme/shape.d.ts.map +1 -1
- package/dist/src/theme/spacing.d.ts.map +1 -1
- package/dist/src/theme/typography.d.ts.map +1 -1
- package/dist/test-selectors/featureTestSelector.js +2 -0
- package/dist/test-selectors/featureTestSelector.js.map +1 -0
- package/dist/test-selectors/index.js +15 -0
- package/dist/test-selectors/index.js.map +1 -0
- package/dist/test-selectors/odysseyTestSelectors.js +20 -0
- package/dist/test-selectors/odysseyTestSelectors.js.map +1 -0
- package/dist/test-selectors/querySelector.js +78 -0
- package/dist/test-selectors/querySelector.js.map +1 -0
- package/dist/test-selectors/testSelectors.json +1 -0
- package/dist/theme/components.js +248 -177
- package/dist/theme/components.js.map +1 -1
- package/dist/theme/components.types.js.map +1 -1
- package/dist/tsconfig.production.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/i18n.config.json +3 -1
- package/package.json +13 -5
- package/scripts/generateTestSelectorsJson.ts +28 -0
- package/src/Accordion.tsx +3 -0
- package/src/Autocomplete.tsx +13 -0
- package/src/Badge.tsx +4 -3
- package/src/Banner.tsx +4 -4
- package/src/Button.tsx +30 -16
- package/src/Callout.tsx +59 -12
- package/src/{Tile.tsx → Card.tsx} +63 -57
- package/src/DataTable/DataTable.tsx +164 -95
- package/src/DataTable/DataTableRowActions.tsx +1 -1
- package/src/DataTable/constants.ts +0 -1
- package/src/DataTable/index.tsx +1 -1
- package/src/Dialog.tsx +38 -13
- package/src/{labs/Drawer.tsx → Drawer.tsx} +10 -9
- package/src/{DataTable/DataTableEmptyState.tsx → EmptyState.tsx} +34 -19
- package/src/ErrorMessageList.tsx +6 -1
- package/src/FieldError.tsx +10 -5
- package/src/HtmlProps.ts +1 -0
- package/src/MenuItem.tsx +1 -0
- package/src/OdysseyCacheProvider.tsx +11 -3
- package/src/OdysseyProvider.tsx +1 -1
- package/src/OdysseyTranslationProvider.tsx +1 -17
- package/src/{DataTable/DataTablePagination.tsx → Pagination/Pagination.tsx} +107 -74
- package/src/Pagination/constants.ts +13 -0
- package/src/Pagination/index.ts +15 -0
- package/src/Pagination/usePagination.ts +49 -0
- package/src/Radio.tsx +18 -6
- package/src/ScreenReaderText.tsx +15 -3
- package/src/Select.tsx +2 -0
- package/src/Status.tsx +14 -2
- package/src/Surface.tsx +48 -0
- package/src/Tabs.tsx +24 -0
- package/src/TextField.tsx +50 -0
- package/src/Toast.tsx +44 -40
- package/src/icons.generated/Add.tsx +1 -1
- package/src/icons.generated/AddCircle.tsx +1 -1
- package/src/icons.generated/Apps.tsx +1 -1
- package/src/icons.generated/ArrowBottom.tsx +2 -2
- package/src/icons.generated/ArrowDown.tsx +1 -1
- package/src/icons.generated/ArrowLeft.tsx +1 -1
- package/src/icons.generated/ArrowLowerLeft.tsx +1 -1
- package/src/icons.generated/ArrowLowerRight.tsx +1 -1
- package/src/icons.generated/ArrowRight.tsx +1 -1
- package/src/icons.generated/ArrowTop.tsx +2 -2
- package/src/icons.generated/ArrowUnsorted.tsx +1 -1
- package/src/icons.generated/ArrowUp.tsx +1 -1
- package/src/icons.generated/ArrowUpperLeft.tsx +1 -1
- package/src/icons.generated/ArrowUpperRight.tsx +1 -1
- package/src/icons.generated/Bug.tsx +1 -1
- package/src/icons.generated/Calendar.tsx +1 -1
- package/src/icons.generated/Call.tsx +1 -1
- package/src/icons.generated/Chat.tsx +1 -1
- package/src/icons.generated/Check.tsx +1 -1
- package/src/icons.generated/CheckCircleFilled.tsx +1 -1
- package/src/icons.generated/ChevronDown.tsx +1 -1
- package/src/icons.generated/ChevronLeft.tsx +1 -1
- package/src/icons.generated/ChevronRight.tsx +1 -1
- package/src/icons.generated/ChevronUp.tsx +1 -1
- package/src/icons.generated/Clock.tsx +1 -1
- package/src/icons.generated/Close.tsx +1 -1
- package/src/icons.generated/CloseCircleFilled.tsx +1 -1
- package/src/icons.generated/CollapseLeft.tsx +1 -1
- package/src/icons.generated/CollapseRight.tsx +1 -1
- package/src/icons.generated/Copy.tsx +1 -1
- package/src/icons.generated/Custom.tsx +49 -0
- package/src/icons.generated/DangerDiamond.tsx +1 -1
- package/src/icons.generated/DangerDiamondFilled.tsx +1 -1
- package/src/icons.generated/Delete.tsx +1 -1
- package/src/icons.generated/Deny.tsx +1 -1
- package/src/icons.generated/Devices.tsx +1 -1
- package/src/icons.generated/Directory.tsx +1 -1
- package/src/icons.generated/Documentation.tsx +1 -1
- package/src/icons.generated/Download.tsx +1 -1
- package/src/icons.generated/DragIndicator.tsx +1 -1
- package/src/icons.generated/Duo.tsx +59 -0
- package/src/icons.generated/Edit.tsx +1 -1
- package/src/icons.generated/Email.tsx +48 -0
- package/src/icons.generated/ExpandLeft.tsx +1 -1
- package/src/icons.generated/ExpandRight.tsx +1 -1
- package/src/icons.generated/ExternalLink.tsx +1 -1
- package/src/icons.generated/Fido2.tsx +71 -0
- package/src/icons.generated/Filter.tsx +1 -1
- package/src/icons.generated/Folder.tsx +1 -1
- package/src/icons.generated/Globe.tsx +1 -1
- package/src/icons.generated/GoogleAuth.tsx +67 -0
- package/src/icons.generated/Grid.tsx +1 -1
- package/src/icons.generated/Group.tsx +1 -1
- package/src/icons.generated/Hide.tsx +1 -1
- package/src/icons.generated/Home.tsx +1 -1
- package/src/icons.generated/Idp.tsx +51 -0
- package/src/icons.generated/InformationCircle.tsx +1 -1
- package/src/icons.generated/InformationCircleFilled.tsx +1 -1
- package/src/icons.generated/Link.tsx +1 -1
- package/src/icons.generated/List.tsx +1 -1
- package/src/icons.generated/Lock.tsx +1 -1
- package/src/icons.generated/More.tsx +1 -1
- package/src/icons.generated/Notification.tsx +1 -1
- package/src/icons.generated/OktaVerify.tsx +43 -0
- package/src/icons.generated/OnPremMfa.tsx +49 -0
- package/src/icons.generated/OneTimePassword.tsx +63 -0
- package/src/icons.generated/Password.tsx +77 -0
- package/src/icons.generated/Pause.tsx +1 -1
- package/src/icons.generated/QuestionCircle.tsx +1 -1
- package/src/icons.generated/QuestionCircleFilled.tsx +1 -1
- package/src/icons.generated/Refresh.tsx +1 -1
- package/src/icons.generated/Reset.tsx +1 -1
- package/src/icons.generated/Resume.tsx +1 -1
- package/src/icons.generated/Search.tsx +1 -1
- package/src/icons.generated/SecurityQuestion.tsx +48 -0
- package/src/icons.generated/Server.tsx +1 -1
- package/src/icons.generated/Settings.tsx +1 -1
- package/src/icons.generated/Show.tsx +1 -1
- package/src/icons.generated/SmartCard.tsx +62 -0
- package/src/icons.generated/Sms.tsx +52 -0
- package/src/icons.generated/Subtract.tsx +1 -1
- package/src/icons.generated/SymantecVip.tsx +49 -0
- package/src/icons.generated/Sync.tsx +1 -1
- package/src/icons.generated/ThumbsDown.tsx +43 -0
- package/src/icons.generated/ThumbsUp.tsx +43 -0
- package/src/icons.generated/Unlock.tsx +1 -1
- package/src/icons.generated/Upload.tsx +1 -1
- package/src/icons.generated/User.tsx +1 -1
- package/src/icons.generated/Video.tsx +1 -1
- package/src/icons.generated/VoiceCall.tsx +59 -0
- package/src/icons.generated/Warning.tsx +1 -1
- package/src/icons.generated/WarningFilled.tsx +1 -1
- package/src/icons.generated/Yubikey.tsx +41 -0
- package/src/icons.generated/index.ts +18 -0
- package/src/index.ts +7 -2
- package/src/labs/DataComponents/BulkActionsMenu.tsx +97 -0
- package/src/labs/DataComponents/DataStack.tsx +99 -0
- package/src/labs/DataComponents/DataTable.tsx +111 -0
- package/src/labs/DataComponents/DataView.tsx +394 -0
- package/src/labs/DataComponents/DetailPanel.tsx +31 -0
- package/src/labs/DataComponents/LayoutSwitcher.tsx +73 -0
- package/src/labs/DataComponents/RowActions.tsx +122 -0
- package/src/labs/DataComponents/StackCard.tsx +256 -0
- package/src/labs/DataComponents/StackContent.tsx +254 -0
- package/src/labs/DataComponents/TableContent.tsx +390 -0
- package/src/labs/DataComponents/TableSettings.tsx +138 -0
- package/src/labs/DataComponents/componentTypes.ts +111 -0
- package/src/labs/DataComponents/constants.tsx +20 -0
- package/src/labs/DataComponents/dataTypes.ts +77 -0
- package/src/labs/DataComponents/fetchData.ts +47 -0
- package/src/labs/DataComponents/index.tsx +19 -0
- package/src/labs/DataComponents/tableConstants.tsx +162 -0
- package/src/labs/DataComponents/useFilterConversion.ts +92 -0
- package/src/labs/DataFilters.tsx +250 -162
- package/src/labs/DateField.tsx +119 -0
- package/src/labs/DatePicker.tsx +304 -31
- package/src/labs/{DatePicker.types.ts → DatePicker.types.d.ts} +0 -10
- package/src/labs/FileUpload.tsx +30 -21
- package/src/labs/FileUploadIllustration.tsx +1 -1
- package/src/labs/FileUploadPreview.tsx +1 -0
- package/src/labs/Layout.tsx +85 -0
- package/src/labs/NavAccordion.tsx +133 -0
- package/src/labs/PageTemplate.tsx +225 -0
- package/src/labs/SideNav.tsx +745 -0
- package/src/labs/Switch.tsx +240 -119
- package/src/labs/datePickerTheme.tsx +119 -83
- package/src/labs/index.ts +7 -1
- package/src/labs/useDatePickerTranslations.ts +92 -0
- package/src/properties/odyssey-react-mui.properties +76 -10
- package/src/properties/translations/odyssey-react-mui_cs.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_da.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_de.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_el.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_es.properties +65 -8
- package/src/properties/translations/odyssey-react-mui_fi.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_fr.properties +65 -8
- package/src/properties/translations/odyssey-react-mui_ht.properties +112 -0
- package/src/properties/translations/odyssey-react-mui_hu.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_id.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_it.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_ja.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_ko.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_ms.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_nb.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_nl_NL.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_pl.properties +65 -8
- package/src/properties/translations/odyssey-react-mui_pt_BR.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_ro.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_ru.properties +65 -8
- package/src/properties/translations/odyssey-react-mui_sv.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_th.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_tr.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_uk.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_vi.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_zh_CN.properties +64 -7
- package/src/properties/translations/odyssey-react-mui_zh_TW.properties +64 -7
- package/src/properties/ts/odyssey-react-mui.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_cs.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_da.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_de.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_el.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_es.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_fi.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_fr.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ht.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_hu.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_id.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_it.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ja.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ko.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ms.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_nb.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_nl_NL.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_pl.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_pt_BR.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ro.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ru.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_sv.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_th.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_tr.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_uk.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_vi.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_zh_CN.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_zh_TW.ts +1 -1
- package/src/remUtils.ts +27 -0
- package/src/test-selectors/featureTestSelector.ts +41 -0
- package/src/test-selectors/index.ts +15 -0
- package/src/test-selectors/odysseyTestSelectors.ts +22 -0
- package/src/test-selectors/querySelector.ts +198 -0
- package/src/theme/components.tsx +270 -189
- package/src/theme/components.types.ts +5 -3
- package/dist/DataTable/DataTableEmptyState.js.map +0 -1
- package/dist/DataTable/DataTablePagination.js.map +0 -1
- package/dist/Tile.js.map +0 -1
- package/dist/labs/DatePicker.types.js.map +0 -1
- package/dist/labs/Drawer.js.map +0 -1
- package/dist/src/DataTable/DataTableEmptyState.d.ts.map +0 -1
- package/dist/src/DataTable/DataTablePagination.d.ts +0 -33
- package/dist/src/DataTable/DataTablePagination.d.ts.map +0 -1
- package/dist/src/Tile.d.ts.map +0 -1
- package/dist/src/labs/DatePicker.types.d.ts.map +0 -1
- package/dist/src/labs/Drawer.d.ts.map +0 -1
package/dist/{Tile.js → Card.js}
RENAMED
|
@@ -13,17 +13,17 @@ import _CardActions from "@mui/material/CardActions";
|
|
|
13
13
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
import { memo, useMemo } from "react";
|
|
16
|
+
import { memo, useMemo, useEffect } from "react";
|
|
17
17
|
import styled from "@emotion/styled";
|
|
18
18
|
import { ButtonContext } from "./ButtonContext.js";
|
|
19
19
|
import { MoreIcon } from "./icons.generated/index.js";
|
|
20
20
|
import { MenuButton } from "./MenuButton.js";
|
|
21
21
|
import { useOdysseyDesignTokens } from "./OdysseyDesignTokensContext.js";
|
|
22
22
|
import { Heading5, Paragraph, Support } from "./Typography.js";
|
|
23
|
+
import { Box } from "./Box.js";
|
|
23
24
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
|
-
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
25
25
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
26
|
-
export const
|
|
26
|
+
export const CARD_IMAGE_HEIGHT = "64px";
|
|
27
27
|
const ImageContainer = styled("div", {
|
|
28
28
|
shouldForwardProp: prop => prop !== "odysseyDesignTokens" && prop !== "hasMenuButtonChildren"
|
|
29
29
|
})(({
|
|
@@ -32,7 +32,7 @@ const ImageContainer = styled("div", {
|
|
|
32
32
|
}) => ({
|
|
33
33
|
display: "flex",
|
|
34
34
|
alignItems: "flex-start",
|
|
35
|
-
maxHeight:
|
|
35
|
+
maxHeight: CARD_IMAGE_HEIGHT,
|
|
36
36
|
marginBlockEnd: odysseyDesignTokens.Spacing5,
|
|
37
37
|
paddingRight: hasMenuButtonChildren ? odysseyDesignTokens.Spacing5 : 0
|
|
38
38
|
}));
|
|
@@ -45,10 +45,13 @@ const MenuButtonContainer = styled("div", {
|
|
|
45
45
|
right: odysseyDesignTokens.Spacing3,
|
|
46
46
|
top: odysseyDesignTokens.Spacing3
|
|
47
47
|
}));
|
|
48
|
+
const CardContentContainer = styled("div")(() => ({
|
|
49
|
+
display: "flex"
|
|
50
|
+
}));
|
|
48
51
|
const buttonProviderValue = {
|
|
49
52
|
isFullWidth: true
|
|
50
53
|
};
|
|
51
|
-
const
|
|
54
|
+
const Card = ({
|
|
52
55
|
button,
|
|
53
56
|
description,
|
|
54
57
|
image,
|
|
@@ -58,26 +61,28 @@ const Tile = ({
|
|
|
58
61
|
title
|
|
59
62
|
}) => {
|
|
60
63
|
const odysseyDesignTokens = useOdysseyDesignTokens();
|
|
61
|
-
const cardContent = useMemo(() =>
|
|
62
|
-
children:
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
64
|
+
const cardContent = useMemo(() => _jsx(CardContentContainer, {
|
|
65
|
+
children: _jsxs(Box, {
|
|
66
|
+
children: [image && _jsx(ImageContainer, {
|
|
67
|
+
odysseyDesignTokens: odysseyDesignTokens,
|
|
68
|
+
hasMenuButtonChildren: Boolean(menuButtonChildren),
|
|
69
|
+
children: image
|
|
70
|
+
}), overline && _jsx(Support, {
|
|
71
|
+
component: "div",
|
|
72
|
+
children: overline
|
|
73
|
+
}), title && _jsx(Heading5, {
|
|
74
|
+
component: "div",
|
|
75
|
+
children: title
|
|
76
|
+
}), description && _jsx(Paragraph, {
|
|
77
|
+
color: "textSecondary",
|
|
78
|
+
children: description
|
|
79
|
+
}), button && _jsx(_CardActions, {
|
|
80
|
+
children: _jsx(ButtonContext.Provider, {
|
|
81
|
+
value: buttonProviderValue,
|
|
82
|
+
children: button
|
|
83
|
+
})
|
|
84
|
+
})]
|
|
85
|
+
})
|
|
81
86
|
}), [button, description, image, menuButtonChildren, overline, title, odysseyDesignTokens]);
|
|
82
87
|
return _jsxs(_Card, {
|
|
83
88
|
className: onClick ? "isClickable" : "",
|
|
@@ -88,7 +93,7 @@ const Tile = ({
|
|
|
88
93
|
odysseyDesignTokens: odysseyDesignTokens,
|
|
89
94
|
children: _jsx(MenuButton, {
|
|
90
95
|
endIcon: _jsx(MoreIcon, {}),
|
|
91
|
-
ariaLabel: "
|
|
96
|
+
ariaLabel: "Card menu",
|
|
92
97
|
buttonVariant: "floating",
|
|
93
98
|
menuAlignment: "right",
|
|
94
99
|
size: "small",
|
|
@@ -98,7 +103,17 @@ const Tile = ({
|
|
|
98
103
|
})]
|
|
99
104
|
});
|
|
100
105
|
};
|
|
106
|
+
const MemoizedCard = memo(Card);
|
|
107
|
+
MemoizedCard.displayName = "Card";
|
|
108
|
+
const Tile = props => {
|
|
109
|
+
useEffect(() => {
|
|
110
|
+
console.warn("Warning: The 'Tile' component is now called 'Card'. Please update your references as 'Tile' will be deprecated soon.");
|
|
111
|
+
}, []);
|
|
112
|
+
return _jsx(MemoizedCard, {
|
|
113
|
+
...props
|
|
114
|
+
});
|
|
115
|
+
};
|
|
101
116
|
const MemoizedTile = memo(Tile);
|
|
102
117
|
MemoizedTile.displayName = "Tile";
|
|
103
|
-
export { MemoizedTile as Tile };
|
|
104
|
-
//# sourceMappingURL=
|
|
118
|
+
export { MemoizedCard as Card, MemoizedTile as Tile };
|
|
119
|
+
//# sourceMappingURL=Card.js.map
|
package/dist/Card.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card.js","names":["memo","useMemo","useEffect","styled","ButtonContext","MoreIcon","MenuButton","useOdysseyDesignTokens","Heading5","Paragraph","Support","Box","jsx","_jsx","jsxs","_jsxs","CARD_IMAGE_HEIGHT","ImageContainer","shouldForwardProp","prop","odysseyDesignTokens","hasMenuButtonChildren","display","alignItems","maxHeight","marginBlockEnd","Spacing5","paddingRight","MenuButtonContainer","position","right","Spacing3","top","CardContentContainer","buttonProviderValue","isFullWidth","Card","button","description","image","menuButtonChildren","onClick","overline","title","cardContent","children","Boolean","component","color","_CardActions","Provider","value","_Card","className","_CardActionArea","endIcon","ariaLabel","buttonVariant","menuAlignment","size","tooltipText","MemoizedCard","displayName","Tile","props","console","warn","MemoizedTile"],"sources":["../src/Card.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2022-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n MouseEventHandler,\n ReactElement,\n memo,\n useMemo,\n useEffect,\n} from \"react\";\nimport {\n Card as MuiCard,\n CardActions as MuiCardActions,\n CardActionArea as MuiCardActionArea,\n} from \"@mui/material\";\nimport styled from \"@emotion/styled\";\n\nimport { Button } from \"./Button\";\nimport { ButtonContext } from \"./ButtonContext\";\nimport { MoreIcon } from \"./icons.generated\";\nimport { MenuButton, MenuButtonProps } from \"./MenuButton\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"./OdysseyDesignTokensContext\";\nimport { Heading5, Paragraph, Support } from \"./Typography\";\nimport { Box } from \"./Box\";\n\nexport const CARD_IMAGE_HEIGHT = \"64px\";\n\nexport type CardProps = {\n description?: string;\n image?: ReactElement;\n overline?: string;\n title?: string;\n} & (\n | {\n onClick: MouseEventHandler;\n button?: never;\n menuButtonChildren?: never;\n }\n | {\n onClick?: never;\n button?: ReactElement<typeof Button>;\n menuButtonChildren?: MenuButtonProps[\"children\"];\n }\n);\n\nconst ImageContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"hasMenuButtonChildren\",\n})<{\n odysseyDesignTokens: DesignTokens;\n hasMenuButtonChildren: boolean;\n}>(({ odysseyDesignTokens, hasMenuButtonChildren }) => ({\n display: \"flex\",\n alignItems: \"flex-start\",\n maxHeight: CARD_IMAGE_HEIGHT,\n marginBlockEnd: odysseyDesignTokens.Spacing5,\n paddingRight: hasMenuButtonChildren ? odysseyDesignTokens.Spacing5 : 0,\n}));\n\nconst MenuButtonContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n position: \"absolute\",\n right: odysseyDesignTokens.Spacing3,\n top: odysseyDesignTokens.Spacing3,\n}));\n\nconst CardContentContainer = styled(\"div\")(() => ({\n display: \"flex\",\n}));\n\nconst buttonProviderValue = { isFullWidth: true };\n\nconst Card = ({\n button,\n description,\n image,\n menuButtonChildren,\n onClick,\n overline,\n title,\n}: CardProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const cardContent = useMemo(\n () => (\n <CardContentContainer>\n <Box>\n {image && (\n <ImageContainer\n odysseyDesignTokens={odysseyDesignTokens}\n hasMenuButtonChildren={Boolean(menuButtonChildren)}\n >\n {image}\n </ImageContainer>\n )}\n\n {overline && <Support component=\"div\">{overline}</Support>}\n {title && <Heading5 component=\"div\">{title}</Heading5>}\n {description && (\n <Paragraph color=\"textSecondary\">{description}</Paragraph>\n )}\n\n {button && (\n <MuiCardActions>\n <ButtonContext.Provider value={buttonProviderValue}>\n {button}\n </ButtonContext.Provider>\n </MuiCardActions>\n )}\n </Box>\n </CardContentContainer>\n ),\n [\n button,\n description,\n image,\n menuButtonChildren,\n overline,\n title,\n odysseyDesignTokens,\n ],\n );\n\n return (\n <MuiCard className={onClick ? \"isClickable\" : \"\"}>\n {onClick ? (\n <MuiCardActionArea onClick={onClick}>{cardContent}</MuiCardActionArea>\n ) : (\n cardContent\n )}\n\n {menuButtonChildren && (\n <MenuButtonContainer odysseyDesignTokens={odysseyDesignTokens}>\n <MenuButton\n endIcon={<MoreIcon />}\n ariaLabel=\"Card menu\"\n buttonVariant=\"floating\"\n menuAlignment=\"right\"\n size=\"small\"\n tooltipText=\"Actions\"\n >\n {menuButtonChildren}\n </MenuButton>\n </MenuButtonContainer>\n )}\n </MuiCard>\n );\n};\n\nconst MemoizedCard = memo(Card);\nMemoizedCard.displayName = \"Card\";\n\n/**\n * @deprecated The 'Tile' component is now called 'Card'. Please update your references as 'Tile' will be deprecated soon.\n */\nconst Tile = (props: CardProps) => {\n useEffect(() => {\n console.warn(\n \"Warning: The 'Tile' component is now called 'Card'. Please update your references as 'Tile' will be deprecated soon.\",\n );\n }, []);\n\n return <MemoizedCard {...props} />;\n};\n\nconst MemoizedTile = memo(Tile);\nMemoizedTile.displayName = \"Tile\";\n\nexport { MemoizedCard as Card, MemoizedTile as Tile };\n"],"mappings":"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"}
|
|
@@ -12,9 +12,10 @@
|
|
|
12
12
|
|
|
13
13
|
import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
14
14
|
import { useMaterialReactTable, MRT_TableContainer } from "material-react-table";
|
|
15
|
-
import {
|
|
15
|
+
import { useTranslation } from "react-i18next";
|
|
16
|
+
import { ArrowDownIcon, ArrowUnsortedIcon, ChevronDownIcon, DragIndicatorIcon, MoreIcon } from "../icons.generated/index.js";
|
|
16
17
|
import { densityValues } from "./constants.js";
|
|
17
|
-
import {
|
|
18
|
+
import { Pagination, usePagination } from "../Pagination/index.js";
|
|
18
19
|
import { DataFilters } from "../labs/DataFilters.js";
|
|
19
20
|
import { DataTableRowActions } from "./DataTableRowActions.js";
|
|
20
21
|
import { useRowReordering } from "./useRowReordering.js";
|
|
@@ -24,9 +25,8 @@ import { Box } from "../Box.js";
|
|
|
24
25
|
import { useOdysseyDesignTokens } from "../OdysseyDesignTokensContext.js";
|
|
25
26
|
import { useScrollIndication } from "./useScrollIndication.js";
|
|
26
27
|
import styled from "@emotion/styled";
|
|
27
|
-
import {
|
|
28
|
+
import { EmptyState } from "../EmptyState.js";
|
|
28
29
|
import { Callout } from "../Callout.js";
|
|
29
|
-
import { t } from "i18next";
|
|
30
30
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
31
31
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
32
32
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -84,6 +84,9 @@ const displayColumnDefOptions = {
|
|
|
84
84
|
muiTableBodyCellProps: {
|
|
85
85
|
padding: "checkbox"
|
|
86
86
|
}
|
|
87
|
+
},
|
|
88
|
+
"mrt-row-expand": {
|
|
89
|
+
header: ""
|
|
87
90
|
}
|
|
88
91
|
};
|
|
89
92
|
const ScrollableTableContainer = styled("div", {
|
|
@@ -93,9 +96,6 @@ const ScrollableTableContainer = styled("div", {
|
|
|
93
96
|
isScrollableStart,
|
|
94
97
|
isScrollableEnd
|
|
95
98
|
}) => ({
|
|
96
|
-
borderBlockEndColor: odysseyDesignTokens.HueNeutral100,
|
|
97
|
-
borderBlockEndStyle: "solid",
|
|
98
|
-
borderBlockEndWidth: odysseyDesignTokens.BorderWidthMain,
|
|
99
99
|
marginBlockEnd: odysseyDesignTokens.Spacing4,
|
|
100
100
|
position: "relative",
|
|
101
101
|
borderInlineStartColor: isScrollableStart ? odysseyDesignTokens.HueNeutral200 : "transparent",
|
|
@@ -131,20 +131,14 @@ const ScrollableTableContainer = styled("div", {
|
|
|
131
131
|
}
|
|
132
132
|
}));
|
|
133
133
|
const DataTable = ({
|
|
134
|
+
bulkActionMenuItems,
|
|
134
135
|
columns,
|
|
135
|
-
getRowId: getRowIdProp,
|
|
136
136
|
currentPage = 1,
|
|
137
|
-
|
|
138
|
-
|
|
137
|
+
emptyPlaceholder,
|
|
138
|
+
errorMessage: errorMessageProp,
|
|
139
|
+
filters: filtersProp,
|
|
139
140
|
getData,
|
|
140
|
-
|
|
141
|
-
totalRows,
|
|
142
|
-
hasSearchSubmitButton,
|
|
143
|
-
searchDelayTime,
|
|
144
|
-
paginationType = "paged",
|
|
145
|
-
onChangeRowSelection,
|
|
146
|
-
rowActionButtons,
|
|
147
|
-
rowActionMenuItems,
|
|
141
|
+
getRowId: getRowIdProp,
|
|
148
142
|
hasChangeableDensity,
|
|
149
143
|
hasColumnResizing,
|
|
150
144
|
hasColumnVisibility,
|
|
@@ -153,13 +147,24 @@ const DataTable = ({
|
|
|
153
147
|
hasRowReordering,
|
|
154
148
|
hasRowSelection,
|
|
155
149
|
hasSearch,
|
|
150
|
+
hasSearchSubmitButton,
|
|
156
151
|
hasSorting,
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
emptyPlaceholder,
|
|
152
|
+
initialDensity = densityValues[0],
|
|
153
|
+
initialSearchValue = "",
|
|
160
154
|
noResultsPlaceholder,
|
|
161
|
-
|
|
155
|
+
onChangeRowSelection,
|
|
156
|
+
onReorderRows,
|
|
157
|
+
paginationType = "paged",
|
|
158
|
+
renderDetailPanel,
|
|
159
|
+
resultsPerPage = 20,
|
|
160
|
+
rowActionButtons,
|
|
161
|
+
rowActionMenuItems,
|
|
162
|
+
searchDelayTime,
|
|
163
|
+
totalRows
|
|
162
164
|
}) => {
|
|
165
|
+
const {
|
|
166
|
+
t
|
|
167
|
+
} = useTranslation();
|
|
163
168
|
const [data, setData] = useState([]);
|
|
164
169
|
const [pagination, setPagination] = useState({
|
|
165
170
|
pageIndex: currentPage,
|
|
@@ -176,7 +181,7 @@ const DataTable = ({
|
|
|
176
181
|
const [columnVisibility, setColumnVisibility] = useState();
|
|
177
182
|
const [rowDensity, setRowDensity] = useState(initialDensity);
|
|
178
183
|
const [rowSelection, setRowSelection] = useState({});
|
|
179
|
-
const [search, setSearch] = useState(
|
|
184
|
+
const [search, setSearch] = useState(initialSearchValue);
|
|
180
185
|
const [filters, setFilters] = useState();
|
|
181
186
|
const [initialFilters, setInitialFilters] = useState();
|
|
182
187
|
const [isLoading, setIsLoading] = useState(true);
|
|
@@ -210,8 +215,8 @@ const DataTable = ({
|
|
|
210
215
|
page: pagination.pageIndex
|
|
211
216
|
});
|
|
212
217
|
const getRowId = getRowIdProp ? getRowIdProp : row => row.id;
|
|
213
|
-
const
|
|
214
|
-
return rowDensity === "spacious" ? "
|
|
218
|
+
const rowDensityClassName = useMemo(() => {
|
|
219
|
+
return rowDensity === "spacious" ? "MuiTableBody-spacious" : rowDensity === "compact" ? "MuiTableBody-compact" : "MuiTableBody-default";
|
|
215
220
|
}, [rowDensity]);
|
|
216
221
|
const renderRowActions = useCallback(({
|
|
217
222
|
row
|
|
@@ -265,8 +270,8 @@ const DataTable = ({
|
|
|
265
270
|
cell
|
|
266
271
|
}) => {
|
|
267
272
|
const value = cell.getValue();
|
|
268
|
-
const
|
|
269
|
-
return
|
|
273
|
+
const hasTextWrapping = cell.column.columnDef.hasTextWrapping || cell.column.columnDef.enableWrapping;
|
|
274
|
+
return hasTextWrapping ? value : _jsx(Box, {
|
|
270
275
|
sx: {
|
|
271
276
|
whiteSpace: "nowrap",
|
|
272
277
|
textOverflow: "ellipsis",
|
|
@@ -276,9 +281,9 @@ const DataTable = ({
|
|
|
276
281
|
});
|
|
277
282
|
}, []);
|
|
278
283
|
const emptyState = useCallback(() => {
|
|
279
|
-
const noResultsInnerContent = noResultsPlaceholder || _jsx(
|
|
284
|
+
const noResultsInnerContent = noResultsPlaceholder || _jsx(EmptyState, {
|
|
280
285
|
heading: t("table.noresults.heading"),
|
|
281
|
-
|
|
286
|
+
description: t("table.noresults.text")
|
|
282
287
|
});
|
|
283
288
|
const emptyStateInnerContent = emptyPlaceholder && isEmpty ? emptyPlaceholder : noResultsInnerContent;
|
|
284
289
|
return _jsx(Box, {
|
|
@@ -287,23 +292,28 @@ const DataTable = ({
|
|
|
287
292
|
},
|
|
288
293
|
children: emptyStateInnerContent
|
|
289
294
|
});
|
|
290
|
-
}, [
|
|
295
|
+
}, [emptyPlaceholder, isEmpty, noResultsPlaceholder, t, tableInnerContainerWidth]);
|
|
296
|
+
const columnIds = useMemo(() => {
|
|
297
|
+
return columns.map(column => column.accessorKey);
|
|
298
|
+
}, [columns]);
|
|
299
|
+
const columnOrder = useMemo(() => ["mrt-row-drag", "mrt-row-select", "mrt-row-expand", ...columnIds, "mrt-row-actions"], [columnIds]);
|
|
291
300
|
const dataTable = useMaterialReactTable({
|
|
292
301
|
columns: columns,
|
|
293
302
|
data: data,
|
|
294
303
|
getRowId: getRowId,
|
|
295
304
|
state: {
|
|
296
|
-
density: rowDensity,
|
|
297
305
|
sorting: columnSorting,
|
|
298
306
|
globalFilter: search,
|
|
299
307
|
columnVisibility,
|
|
300
308
|
isLoading,
|
|
301
|
-
rowSelection
|
|
309
|
+
rowSelection,
|
|
310
|
+
columnOrder
|
|
302
311
|
},
|
|
303
312
|
icons: {
|
|
304
313
|
ArrowDownwardIcon: ArrowDownIcon,
|
|
305
314
|
DragHandleIcon: DragIndicatorIcon,
|
|
306
|
-
SyncAltIcon: ArrowUnsortedIcon
|
|
315
|
+
SyncAltIcon: ArrowUnsortedIcon,
|
|
316
|
+
ExpandMoreIcon: ChevronDownIcon
|
|
307
317
|
},
|
|
308
318
|
enableColumnActions: false,
|
|
309
319
|
enableColumnResizing: hasColumnResizing,
|
|
@@ -324,8 +334,8 @@ const DataTable = ({
|
|
|
324
334
|
},
|
|
325
335
|
selectAllMode: "all",
|
|
326
336
|
displayColumnDefOptions: displayColumnDefOptions,
|
|
327
|
-
|
|
328
|
-
className:
|
|
337
|
+
muiTableBodyProps: () => ({
|
|
338
|
+
className: rowDensityClassName
|
|
329
339
|
}),
|
|
330
340
|
defaultColumn: {
|
|
331
341
|
Cell: defaultCell
|
|
@@ -384,7 +394,9 @@ const DataTable = ({
|
|
|
384
394
|
},
|
|
385
395
|
muiTableContainerProps: {
|
|
386
396
|
ref: tableInnerContainerRef
|
|
387
|
-
}
|
|
397
|
+
},
|
|
398
|
+
enableExpandAll: false,
|
|
399
|
+
renderDetailPanel: renderDetailPanel
|
|
388
400
|
});
|
|
389
401
|
const bulkActionMenuButton = useMemo(() => _jsx(_Fragment, {
|
|
390
402
|
children: _jsx(MenuButton, {
|
|
@@ -414,7 +426,7 @@ const DataTable = ({
|
|
|
414
426
|
setIsLoading(false);
|
|
415
427
|
}
|
|
416
428
|
})();
|
|
417
|
-
}, [
|
|
429
|
+
}, [columnSorting, errorMessageProp, filters, getData, pagination, search, t]);
|
|
418
430
|
useEffect(() => {
|
|
419
431
|
if (!initialFilters && filters) {
|
|
420
432
|
setInitialFilters(filters);
|
|
@@ -424,6 +436,13 @@ const DataTable = ({
|
|
|
424
436
|
useEffect(() => {
|
|
425
437
|
onChangeRowSelection?.(rowSelection);
|
|
426
438
|
}, [rowSelection, onChangeRowSelection]);
|
|
439
|
+
const {
|
|
440
|
+
lastRow
|
|
441
|
+
} = usePagination({
|
|
442
|
+
pageIndex: pagination.pageIndex,
|
|
443
|
+
pageSize: pagination.pageSize,
|
|
444
|
+
totalRows
|
|
445
|
+
});
|
|
427
446
|
return _jsxs(_Fragment, {
|
|
428
447
|
children: [(hasSearch || hasFilters || hasChangeableDensity || hasColumnVisibility || bulkActionMenuItems) && _jsx(Box, {
|
|
429
448
|
sx: {
|
|
@@ -435,6 +454,7 @@ const DataTable = ({
|
|
|
435
454
|
hasSearchSubmitButton: hasSearchSubmitButton,
|
|
436
455
|
searchDelayTime: searchDelayTime,
|
|
437
456
|
filters: hasFilters ? dataTableFilters : undefined,
|
|
457
|
+
defaultSearchTerm: initialSearchValue,
|
|
438
458
|
isDisabled: isEmpty,
|
|
439
459
|
additionalActions: _jsxs(_Fragment, {
|
|
440
460
|
children: [_jsx(DataTableSettings, {
|
|
@@ -464,12 +484,19 @@ const DataTable = ({
|
|
|
464
484
|
children: _jsx(MRT_TableContainer, {
|
|
465
485
|
table: dataTable
|
|
466
486
|
})
|
|
467
|
-
}), hasPagination && _jsx(
|
|
468
|
-
|
|
469
|
-
|
|
487
|
+
}), hasPagination && _jsx(Pagination, {
|
|
488
|
+
pageIndex: pagination.pageIndex,
|
|
489
|
+
pageSize: pagination.pageSize,
|
|
490
|
+
onPaginationChange: setPagination,
|
|
491
|
+
lastRow: lastRow,
|
|
470
492
|
totalRows: totalRows,
|
|
471
493
|
isDisabled: isEmpty,
|
|
472
|
-
variant: paginationType
|
|
494
|
+
variant: paginationType,
|
|
495
|
+
rowsPerPageLabel: t("pagination.rowsperpage"),
|
|
496
|
+
currentPageLabel: t("pagination.page"),
|
|
497
|
+
previousLabel: t("pagination.previous"),
|
|
498
|
+
nextLabel: t("pagination.next"),
|
|
499
|
+
loadMoreLabel: t("pagination.loadmore")
|
|
473
500
|
})]
|
|
474
501
|
});
|
|
475
502
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.js","names":["memo","useCallback","useEffect","useMemo","useRef","useState","useMaterialReactTable","MRT_TableContainer","ArrowDownIcon","ArrowUnsortedIcon","DragIndicatorIcon","MoreIcon","densityValues","DataTablePagination","DataFilters","DataTableRowActions","useRowReordering","DataTableSettings","MenuButton","Box","useOdysseyDesignTokens","useScrollIndication","styled","DataTableEmptyState","Callout","t","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","displayColumnDefOptions","header","grow","muiTableBodyCellProps","align","sx","overflow","width","className","muiTableHeadCellProps","minWidth","children","marginInline","opacity","padding","ScrollableTableContainer","shouldForwardProp","prop","odysseyDesignTokens","isScrollableStart","isScrollableEnd","borderBlockEndColor","HueNeutral100","borderBlockEndStyle","borderBlockEndWidth","BorderWidthMain","marginBlockEnd","Spacing4","position","borderInlineStartColor","HueNeutral200","borderInlineStartStyle","borderInlineStartWidth","background","content","pointerEvents","top","left","bottom","Spacing6","zIndex","transition","TransitionDurationMain","TransitionTimingMain","borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth","right","DataTable","columns","getRowId","getRowIdProp","currentPage","initialDensity","resultsPerPage","getData","onReorderRows","totalRows","hasSearchSubmitButton","searchDelayTime","paginationType","onChangeRowSelection","rowActionButtons","rowActionMenuItems","hasChangeableDensity","hasColumnResizing","hasColumnVisibility","hasFilters","hasPagination","hasRowReordering","hasRowSelection","hasSearch","hasSorting","bulkActionMenuItems","errorMessage","errorMessageProp","emptyPlaceholder","noResultsPlaceholder","filters","filtersProp","data","setData","pagination","setPagination","pageIndex","pageSize","draggingRow","setDraggingRow","isTableContainerScrolledToStart","setIsTableContainerScrolledToStart","isTableContainerScrolledToEnd","setIsTableContainerScrolledToEnd","tableInnerContainerWidth","setTableInnerContainerWidth","tableOuterContainerRef","tableInnerContainerRef","tableContentRef","columnSorting","setColumnSorting","columnVisibility","setColumnVisibility","rowDensity","setRowDensity","rowSelection","setRowSelection","search","setSearch","setFilters","initialFilters","setInitialFilters","isLoading","setIsLoading","isEmpty","setIsEmpty","setErrorMessage","tableOuterContainer","current","tableInnerContainer","dragHandleStyles","dragHandleText","draggableTableBodyRowClassName","handleDragHandleKeyDown","handleDragHandleOnDragCapture","handleDragHandleOnDragEnd","resetDraggingAndHoveredRow","updateRowOrder","page","row","id","rowDensityCellClassName","renderRowActions","currentIndex","index","rowIndex","undefined","convertFilterSelectOptions","options","map","option","label","value","convertColumnToFilter","column","enableColumnFilter","accessorKey","variant","filterVariant","filterSelectOptions","dataTableFilters","providedFilters","reduce","accumulator","item","foundColumn","find","filter","concat","defaultCell","cell","getValue","enableWrapping","columnDef","whiteSpace","textOverflow","emptyState","noResultsInnerContent","heading","text","emptyStateInnerContent","dataTable","state","density","sorting","globalFilter","icons","ArrowDownwardIcon","DragHandleIcon","SyncAltIcon","enableColumnActions","enableColumnResizing","enableDensityToggle","enableFilters","enableFullScreenToggle","enableGlobalFilter","enableHiding","enablePagination","layoutMode","manualFiltering","manualSorting","muiTablePaperProps","elevation","selectAllMode","defaultColumn","Cell","enableRowOrdering","Boolean","enableRowDragging","muiTableBodyRowProps","table","currentRowId","draggingRowId","hoveredRowId","getState","hoveredRow","muiRowDragHandleProps","onKeyDown","event","onBlur","onDragEnd","onDragCapture","enableRowActions","positionActionsColumn","enableRowSelection","onRowSelectionChange","enableSorting","onSortingChange","currentColumn","sortedColumn","enableRowVirtualization","rowVirtualizerInstanceRef","rowVirtualizerOptions","overscan","renderEmptyRowsFallback","muiTableProps","ref","muiTableContainerProps","bulkActionMenuButton","buttonVariant","endIcon","isDisabled","Object","keys","length","ariaLabel","incomingData","sort","error","marginBottom","onChangeSearch","onChangeFilters","additionalActions","severity","MemoizedDataTable","displayName"],"sources":["../../src/DataTable/DataTable.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n ReactNode,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n MRT_Cell,\n MRT_DensityState,\n MRT_Row,\n MRT_SortingState,\n MRT_TableOptions,\n MRT_RowSelectionState,\n MRT_RowVirtualizer,\n MRT_VisibilityState,\n useMaterialReactTable,\n MRT_TableContainer,\n MRT_Column,\n MRT_ColumnDef,\n} from \"material-react-table\";\nimport {\n ArrowDownIcon,\n ArrowUnsortedIcon,\n DragIndicatorIcon,\n MoreIcon,\n} from \"../icons.generated\";\nimport { densityValues, paginationTypeValues } from \"./constants\";\nimport { DataTablePagination } from \"./DataTablePagination\";\nimport { DataFilter, DataFilters } from \"../labs/DataFilters\";\nimport {\n DataTableRowActions,\n DataTableRowActionsProps,\n} from \"./DataTableRowActions\";\nimport { useRowReordering } from \"./useRowReordering\";\nimport { DataTableSettings } from \"./DataTableSettings\";\nimport { MenuButton, MenuButtonProps } from \"../MenuButton\";\nimport { Box } from \"../Box\";\nimport { DataTableRowSelectionState, DataTableRowData } from \".\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../OdysseyDesignTokensContext\";\nimport { useScrollIndication } from \"./useScrollIndication\";\nimport styled from \"@emotion/styled\";\nimport { DataTableEmptyState } from \"./DataTableEmptyState\";\nimport { Callout } from \"../Callout\";\nimport { t } from \"i18next\";\n\nexport type DataTableColumn<T extends DataTableRowData> = MRT_ColumnDef<T> & {\n enableWrapping?: boolean;\n};\n\ntype DataTableColumnInstance<T extends DataTableRowData> = Omit<\n MRT_Column<T, unknown>,\n \"columnDef\"\n> & {\n columnDef: DataTableColumn<T>;\n};\n\ntype DataTableCell<T extends DataTableRowData> = Omit<MRT_Cell<T>, \"column\"> & {\n column: DataTableColumnInstance<T>;\n};\n\nexport type DataTableGetDataType = {\n page?: number;\n resultsPerPage?: number;\n search?: string;\n filters?: DataFilter[];\n sort?: MRT_SortingState;\n};\n\nexport type DataTableOnReorderRowsType = {\n rowId: string;\n newRowIndex: number;\n};\n\nexport type DataTableProps = {\n /**\n * The columns that make up the table\n */\n columns: DataTableColumn<DataTableRowData>[];\n /**\n * The total number of rows in the table. Optional, because it's sometimes impossible\n * to calculate. Used in table pagination to know when to disable the \"next\"/\"more\" button.\n */\n totalRows?: number;\n /**\n * The function to get the ID of a row\n */\n getRowId?: MRT_TableOptions<DataTableRowData>[\"getRowId\"];\n /**\n * The initial density (height & padding) of the table rows. This is available even if the\n * table density isn't changeable by the end user via hasChangeableDensity.\n */\n initialDensity?: (typeof densityValues)[number];\n /**\n * If true, the end user will be able to change the table density.\n */\n hasChangeableDensity?: boolean;\n /**\n * If true, the end user can resize individual columns.\n */\n hasColumnResizing?: boolean;\n /**\n * If true, the end user will be able to show/hide columns.\n */\n hasColumnVisibility?: boolean;\n /**\n * If true, the end user will be able to filter columns.\n */\n hasFilters?: boolean;\n /**\n * If true, the table will include pagination controls.\n */\n hasPagination?: boolean;\n /**\n * If true, the table will include checkboxes on each row, enabling\n * the user to select some or all rows.\n */\n hasRowSelection?: boolean;\n /**\n * If true, the global table search controls will be shown.\n */\n hasSearch?: boolean;\n /**\n * If true, the end user can sort columns (ascending, descending, or neither)\n */\n hasSorting?: boolean;\n /**\n * If true, the end user can reorder rows via a drag-and-drop interface\n */\n hasRowReordering?: boolean;\n /**\n * If true, the search field will include a Search button, rather than\n * firing on input change.\n */\n hasSearchSubmitButton?: boolean;\n /**\n * The debounce time, in milliseconds, for the search input firing\n * `onChangeSearch` when changed. If `hasSearchSubmitButton` is true,\n * this doesn't do anything.\n */\n searchDelayTime?: number;\n /**\n * Callback that fires when a row (or rows) is selected or unselected.\n */\n onChangeRowSelection?: (rowSelection: DataTableRowSelectionState) => void;\n /**\n * Callback that fires whenever the table needs to fetch new data, due to changes in\n * page, results per page, search input, filters, or sorting\n */\n getData: ({\n page,\n resultsPerPage,\n search,\n filters,\n sort,\n }: DataTableGetDataType) =>\n | MRT_TableOptions<DataTableRowData>[\"data\"]\n | Promise<MRT_TableOptions<DataTableRowData>[\"data\"]>;\n /**\n * Callback that fires when the user reorders rows within the table. Can be used\n * to propogate order change to the backend.\n */\n onReorderRows?: ({ rowId, newRowIndex }: DataTableOnReorderRowsType) => void;\n /**\n * The current page number.\n */\n currentPage?: number;\n /**\n * The number of results per page.\n */\n resultsPerPage?: number;\n /**\n * The type of pagination controls shown. Defaults to next/prev buttons, but can be\n * set to a simple \"Load more\" button by setting to \"loadMore\".\n */\n paginationType?: (typeof paginationTypeValues)[number];\n /**\n * Action buttons to display in each row\n */\n rowActionButtons?: DataTableRowActionsProps[\"rowActionButtons\"];\n /**\n * Menu items to include in the optional actions menu on each row.\n */\n rowActionMenuItems?: DataTableRowActionsProps[\"rowActionMenuItems\"];\n /**\n * Menu items to include in the bulk actions menu, which appears above the table if a row or rows are selected\n */\n bulkActionMenuItems?: (\n selectedRows: MRT_RowSelectionState,\n ) => MenuButtonProps[\"children\"];\n /**\n * If `error` is not undefined, the DataTable will indicate an error.\n */\n errorMessage?: string;\n /**\n * The component to display when the table is displaying the initial empty state\n */\n emptyPlaceholder?: ReactNode;\n /**\n * The component to display when the query returns no results\n */\n noResultsPlaceholder?: ReactNode;\n /**\n * An optional set of filters to render in the filters menu\n */\n filters?: Array<DataFilter | DataTableColumn<DataTableRowData> | string>;\n};\n\nconst displayColumnDefOptions = {\n \"mrt-row-actions\": {\n header: \"\",\n grow: true,\n muiTableBodyCellProps: {\n align: \"right\",\n sx: {\n overflow: \"visible\",\n width: \"unset\",\n },\n className: \"ods-actions-cell\",\n },\n muiTableHeadCellProps: {\n align: \"right\",\n sx: {\n width: \"unset\",\n },\n className: \"ods-actions-cell\",\n },\n },\n \"mrt-row-drag\": {\n header: \"\",\n muiTableBodyCellProps: {\n sx: {\n minWidth: 0,\n width: \"auto\",\n },\n className: \"ods-drag-handle\",\n },\n muiTableHeadCellProps: {\n sx: {\n minWidth: 0,\n width: \"auto\",\n },\n children: (\n // Add a spacer to simulate the width of the drag handle in the column.\n // Without this, the head cells are offset from their body cell counterparts\n <Box sx={{ marginInline: \"-0.1rem\" }}>\n <DragIndicatorIcon sx={{ marginInline: 1, opacity: 0 }} />\n </Box>\n ),\n },\n },\n \"mrt-row-select\": {\n muiTableHeadCellProps: {\n padding: \"checkbox\",\n },\n muiTableBodyCellProps: {\n padding: \"checkbox\",\n },\n },\n};\n\nconst ScrollableTableContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"isScrollableStart\" &&\n prop !== \"isScrollableEnd\",\n})(\n ({\n odysseyDesignTokens,\n isScrollableStart,\n isScrollableEnd,\n }: {\n odysseyDesignTokens: DesignTokens;\n isScrollableStart: boolean;\n isScrollableEnd: boolean;\n }) => ({\n borderBlockEndColor: odysseyDesignTokens.HueNeutral100,\n borderBlockEndStyle: \"solid\",\n borderBlockEndWidth: odysseyDesignTokens.BorderWidthMain,\n marginBlockEnd: odysseyDesignTokens.Spacing4,\n position: \"relative\",\n borderInlineStartColor: isScrollableStart\n ? odysseyDesignTokens.HueNeutral200\n : \"transparent\",\n borderInlineStartStyle: \"solid\",\n borderInlineStartWidth: odysseyDesignTokens.BorderWidthMain,\n \"::before\": {\n background:\n \"linear-gradient(-90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.33) 50%, rgba(0, 0, 0, 1) 100%)\",\n content: '\"\"',\n opacity: isScrollableStart ? \"0.075\" : \"0\",\n pointerEvents: \"none\",\n position: \"absolute\",\n top: 0,\n left: 0,\n bottom: 0,\n width: odysseyDesignTokens.Spacing6,\n zIndex: 100,\n transition: `opacity ${odysseyDesignTokens.TransitionDurationMain} ${odysseyDesignTokens.TransitionTimingMain}`,\n },\n borderInlineEndColor: isScrollableEnd\n ? odysseyDesignTokens.HueNeutral200\n : \"transparent\",\n borderInlineEndStyle: \"solid\",\n borderInlineEndWidth: odysseyDesignTokens.BorderWidthMain,\n \"::after\": {\n background:\n \"linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.33) 50%, rgba(0, 0, 0, 1) 100%)\",\n content: '\"\"',\n opacity: isScrollableEnd ? \"0.075\" : \"0\",\n pointerEvents: \"none\",\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n width: odysseyDesignTokens.Spacing6,\n transition: `opacity ${odysseyDesignTokens.TransitionDurationMain} ${odysseyDesignTokens.TransitionTimingMain}`,\n },\n }),\n);\n\nconst DataTable = ({\n columns,\n getRowId: getRowIdProp,\n currentPage = 1,\n initialDensity = densityValues[0],\n resultsPerPage = 20,\n getData,\n onReorderRows,\n totalRows,\n hasSearchSubmitButton,\n searchDelayTime,\n paginationType = \"paged\",\n onChangeRowSelection,\n rowActionButtons,\n rowActionMenuItems,\n hasChangeableDensity,\n hasColumnResizing,\n hasColumnVisibility,\n hasFilters,\n hasPagination,\n hasRowReordering,\n hasRowSelection,\n hasSearch,\n hasSorting,\n bulkActionMenuItems,\n errorMessage: errorMessageProp,\n emptyPlaceholder,\n noResultsPlaceholder,\n filters: filtersProp,\n}: DataTableProps) => {\n const [data, setData] = useState<DataTableRowData[]>([]);\n const [pagination, setPagination] = useState({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n const [draggingRow, setDraggingRow] =\n useState<MRT_Row<DataTableRowData> | null>();\n const [isTableContainerScrolledToStart, setIsTableContainerScrolledToStart] =\n useState(true);\n const [isTableContainerScrolledToEnd, setIsTableContainerScrolledToEnd] =\n useState(true);\n const [tableInnerContainerWidth, setTableInnerContainerWidth] =\n useState<string>(\"100%\");\n const tableOuterContainerRef = useRef<HTMLDivElement>(null);\n const tableInnerContainerRef = useRef<HTMLDivElement>(null);\n const tableContentRef = useRef<HTMLTableElement>(null);\n\n // Table states\n const [columnSorting, setColumnSorting] = useState<MRT_SortingState>([]);\n const [columnVisibility, setColumnVisibility] =\n useState<MRT_VisibilityState>();\n const [rowDensity, setRowDensity] =\n useState<MRT_DensityState>(initialDensity);\n const [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n const [search, setSearch] = useState<string>(\"\");\n const [filters, setFilters] = useState<DataFilter[]>();\n const [initialFilters, setInitialFilters] = useState<DataFilter[]>();\n const [isLoading, setIsLoading] = useState<boolean | undefined>(true);\n const [isEmpty, setIsEmpty] = useState<boolean | undefined>();\n const [errorMessage, setErrorMessage] = useState<string | undefined>(\n errorMessageProp,\n );\n\n useScrollIndication({\n tableOuterContainer: tableOuterContainerRef.current,\n tableInnerContainer: tableInnerContainerRef.current,\n setIsTableContainerScrolledToStart: setIsTableContainerScrolledToStart,\n setIsTableContainerScrolledToEnd: setIsTableContainerScrolledToEnd,\n setTableInnerContainerWidth: setTableInnerContainerWidth,\n });\n\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const {\n dragHandleStyles,\n dragHandleText,\n draggableTableBodyRowClassName,\n handleDragHandleKeyDown,\n handleDragHandleOnDragCapture,\n handleDragHandleOnDragEnd,\n resetDraggingAndHoveredRow,\n updateRowOrder,\n } = useRowReordering({\n totalRows,\n onReorderRows,\n data,\n setData,\n draggingRow,\n setDraggingRow,\n resultsPerPage: pagination.pageSize,\n page: pagination.pageIndex,\n });\n\n const getRowId = getRowIdProp\n ? getRowIdProp\n : (row: DataTableRowData) => row.id;\n\n const rowDensityCellClassName = useMemo(() => {\n return rowDensity === \"spacious\"\n ? \"MuiTableCell-spacious\"\n : rowDensity === \"compact\"\n ? \"MuiTableCell-compact\"\n : \"MuiTableCell-default\";\n }, [rowDensity]);\n\n const renderRowActions = useCallback(\n ({ row }: { row: MRT_Row<DataTableRowData> }) => {\n const currentIndex =\n row.index + (pagination.pageIndex - 1) * pagination.pageSize;\n return (\n <DataTableRowActions\n row={row}\n rowIndex={currentIndex}\n rowActionButtons={rowActionButtons}\n rowActionMenuItems={rowActionMenuItems}\n totalRows={totalRows}\n updateRowOrder={\n hasRowReordering && onReorderRows ? updateRowOrder : undefined\n }\n />\n );\n },\n [\n pagination,\n rowActionButtons,\n rowActionMenuItems,\n hasRowReordering,\n onReorderRows,\n totalRows,\n updateRowOrder,\n ],\n );\n\n /**\n * This hack is to provide compatibility with Material-React-Table's\n * filterOptions format, which allows for strings and { label: string, value: string }\n */\n const convertFilterSelectOptions = useCallback(\n (options: DataTableColumn<DataTableRowData>[\"filterSelectOptions\"]) =>\n options?.map((option) =>\n typeof option === \"string\"\n ? {\n label: option,\n value: option,\n }\n : {\n // If the option isn't a string, it must have value and/or option defined\n // If either is undefined, use the other\n label: option.label ?? option.value,\n value: option.value ?? option.label,\n },\n ),\n [],\n );\n\n const convertColumnToFilter = useCallback(\n (column: DataTableColumn<DataTableRowData>) =>\n column.enableColumnFilter !== false && column.accessorKey\n ? ({\n id: column.accessorKey,\n label: column.header,\n variant: column.filterVariant,\n options: convertFilterSelectOptions(column.filterSelectOptions),\n } satisfies DataFilter as DataFilter)\n : null,\n [convertFilterSelectOptions],\n );\n\n /**\n * Filters default to the columns, but can be overridden\n * with the `filters` prop. `filters` should be an array\n * of column accessorKeys, column defs, or DataFilters.\n */\n const dataTableFilters = useMemo(() => {\n const providedFilters = filtersProp || columns;\n return providedFilters.reduce<DataFilter[]>((accumulator, item) => {\n if (typeof item === \"string\") {\n const foundColumn = columns.find(\n (column) => column.accessorKey === item,\n );\n if (foundColumn) {\n const filter = convertColumnToFilter(foundColumn);\n if (filter) {\n return accumulator.concat(filter);\n }\n }\n } else if (\"accessorKey\" in item) {\n // Checks if it's a column\n const filter = convertColumnToFilter(item);\n if (filter) {\n return accumulator.concat(filter);\n }\n } else if (\"label\" in item) {\n // Checks if it's a DataFilter\n return accumulator.concat(item);\n }\n // If none of the conditions match, item is ignored (not mapping to undefined)\n return accumulator;\n }, []);\n }, [columns, filtersProp, convertColumnToFilter]);\n\n const defaultCell = useCallback(\n ({ cell }: { cell: DataTableCell<DataTableRowData> }) => {\n const value = cell.getValue<string>();\n const enableWrapping = cell.column.columnDef.enableWrapping;\n return enableWrapping ? (\n value\n ) : (\n <Box\n sx={{\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n }}\n >\n {value}\n </Box>\n );\n },\n [],\n );\n\n const emptyState = useCallback(() => {\n const noResultsInnerContent = noResultsPlaceholder || (\n <DataTableEmptyState\n heading={t(\"table.noresults.heading\")}\n text={t(\"table.noresults.text\")}\n />\n );\n\n const emptyStateInnerContent =\n emptyPlaceholder && isEmpty ? emptyPlaceholder : noResultsInnerContent;\n\n return (\n <Box sx={{ width: tableInnerContainerWidth }}>\n {emptyStateInnerContent}\n </Box>\n );\n }, [\n tableInnerContainerWidth,\n emptyPlaceholder,\n noResultsPlaceholder,\n isEmpty,\n ]);\n\n const dataTable = useMaterialReactTable({\n columns: columns,\n data: data,\n getRowId: getRowId,\n state: {\n density: rowDensity,\n sorting: columnSorting,\n globalFilter: search,\n columnVisibility,\n isLoading,\n rowSelection,\n },\n icons: {\n ArrowDownwardIcon: ArrowDownIcon,\n DragHandleIcon: DragIndicatorIcon,\n SyncAltIcon: ArrowUnsortedIcon,\n },\n\n // Base table settings\n enableColumnActions: false,\n enableColumnResizing: hasColumnResizing,\n enableDensityToggle: false,\n enableFilters: false,\n enableFullScreenToggle: false,\n enableGlobalFilter: false,\n enableHiding: false,\n enablePagination: false,\n layoutMode: \"grid-no-grow\",\n manualFiltering: true,\n manualSorting: true,\n muiTablePaperProps: {\n elevation: 0,\n sx: {\n overflow: \"visible\",\n },\n },\n selectAllMode: \"all\",\n displayColumnDefOptions:\n displayColumnDefOptions as MRT_TableOptions<DataTableRowData>[\"displayColumnDefOptions\"],\n muiTableBodyCellProps: () => ({\n className: rowDensityCellClassName,\n }),\n defaultColumn: {\n Cell: defaultCell,\n },\n\n // Reordering\n enableRowOrdering: hasRowReordering && Boolean(onReorderRows),\n enableRowDragging: hasRowReordering && Boolean(onReorderRows),\n muiTableBodyRowProps: ({ table, row }) => ({\n className: draggableTableBodyRowClassName({\n currentRowId: row.id,\n draggingRowId: draggingRow?.id,\n hoveredRowId: table.getState().hoveredRow?.id,\n }),\n }),\n muiRowDragHandleProps: ({ table, row }) => ({\n onKeyDown: (event) => handleDragHandleKeyDown({ table, row, event }),\n onBlur: () => resetDraggingAndHoveredRow(table),\n onDragEnd: () => handleDragHandleOnDragEnd(table),\n onDragCapture: () => handleDragHandleOnDragCapture(table),\n sx: dragHandleStyles,\n ...dragHandleText,\n }),\n\n // Row actions\n enableRowActions:\n (hasRowReordering === true && onReorderRows) ||\n rowActionButtons ||\n rowActionMenuItems\n ? true\n : false,\n positionActionsColumn:\n \"last\" as MRT_TableOptions<DataTableRowData>[\"positionActionsColumn\"],\n renderRowActions: ({ row }) => renderRowActions({ row }),\n\n // Row selection\n enableRowSelection: hasRowSelection,\n onRowSelectionChange: setRowSelection,\n\n // Sorting\n enableSorting: hasSorting,\n onSortingChange: setColumnSorting,\n muiTableHeadCellProps: ({ column: currentColumn }) => ({\n className: columnSorting.find(\n (sortedColumn) => sortedColumn.id === currentColumn.id,\n )\n ? \"isSorted\"\n : \"isUnsorted\",\n }),\n\n // Virtualization\n enableRowVirtualization:\n paginationType !== \"loadMore\" && pagination.pageSize > 50,\n rowVirtualizerInstanceRef:\n useRef<MRT_RowVirtualizer<HTMLDivElement, HTMLTableRowElement>>(null),\n rowVirtualizerOptions: {\n overscan: 4,\n },\n\n // States\n renderEmptyRowsFallback: emptyState,\n\n // Refs\n muiTableProps: {\n ref: tableContentRef,\n },\n\n muiTableContainerProps: {\n ref: tableInnerContainerRef,\n },\n });\n\n // Effects\n const bulkActionMenuButton = useMemo(\n () => (\n <>\n <MenuButton\n buttonVariant=\"secondary\"\n endIcon={<MoreIcon />}\n isDisabled={Object.keys(rowSelection).length === 0}\n ariaLabel=\"More actions\"\n >\n {bulkActionMenuItems?.(rowSelection)}\n </MenuButton>\n </>\n ),\n [bulkActionMenuItems, rowSelection],\n );\n\n useEffect(() => {\n (async () => {\n setIsLoading(true);\n setErrorMessage(errorMessageProp);\n try {\n const incomingData = await getData?.({\n page: pagination.pageIndex,\n resultsPerPage: pagination.pageSize,\n search,\n filters,\n sort: columnSorting,\n });\n setData(incomingData);\n } catch (error) {\n setErrorMessage(typeof error === \"string\" ? error : t(\"table.error\"));\n } finally {\n setIsLoading(false);\n }\n })();\n }, [pagination, columnSorting, search, filters, getData, errorMessageProp]);\n\n useEffect(() => {\n if (!initialFilters && filters) {\n setInitialFilters(filters);\n }\n\n setIsEmpty(\n pagination.pageIndex === currentPage &&\n pagination.pageSize === resultsPerPage &&\n search === \"\" &&\n filters === initialFilters &&\n data.length === 0,\n );\n }, [\n filters,\n pagination,\n search,\n data,\n currentPage,\n initialFilters,\n resultsPerPage,\n ]);\n\n useEffect(() => {\n onChangeRowSelection?.(rowSelection);\n }, [rowSelection, onChangeRowSelection]);\n\n // Render the table\n return (\n <>\n {(hasSearch ||\n hasFilters ||\n hasChangeableDensity ||\n hasColumnVisibility ||\n bulkActionMenuItems) && (\n <Box sx={{ marginBottom: 5 }}>\n <DataFilters\n onChangeSearch={hasSearch ? setSearch : undefined}\n onChangeFilters={hasFilters ? setFilters : undefined}\n hasSearchSubmitButton={hasSearchSubmitButton}\n searchDelayTime={searchDelayTime}\n filters={hasFilters ? dataTableFilters : undefined}\n isDisabled={isEmpty}\n additionalActions={\n <>\n <DataTableSettings\n hasChangeableDensity={hasChangeableDensity}\n rowDensity={rowDensity}\n setRowDensity={setRowDensity}\n hasColumnVisibility={hasColumnVisibility}\n columns={columns}\n columnVisibility={columnVisibility}\n setColumnVisibility={setColumnVisibility}\n />\n {bulkActionMenuItems && bulkActionMenuButton}\n </>\n }\n />\n </Box>\n )}\n\n {errorMessage && (\n <Box sx={{ marginBlockEnd: 2 }}>\n <Callout severity=\"error\" text={errorMessage} />\n </Box>\n )}\n\n <ScrollableTableContainer\n odysseyDesignTokens={odysseyDesignTokens}\n isScrollableStart={!isTableContainerScrolledToStart}\n isScrollableEnd={!isTableContainerScrolledToEnd}\n ref={tableOuterContainerRef}\n >\n <MRT_TableContainer table={dataTable} />\n </ScrollableTableContainer>\n\n {hasPagination && (\n <DataTablePagination\n pagination={pagination}\n setPagination={setPagination}\n totalRows={totalRows}\n isDisabled={isEmpty}\n variant={paginationType}\n />\n )}\n </>\n );\n};\n\nconst MemoizedDataTable = memo(DataTable);\nMemoizedDataTable.displayName = \"DataTable\";\n\nexport { MemoizedDataTable as DataTable };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataTable.js","names":["memo","useCallback","useEffect","useMemo","useRef","useState","useMaterialReactTable","MRT_TableContainer","useTranslation","ArrowDownIcon","ArrowUnsortedIcon","ChevronDownIcon","DragIndicatorIcon","MoreIcon","densityValues","Pagination","usePagination","DataFilters","DataTableRowActions","useRowReordering","DataTableSettings","MenuButton","Box","useOdysseyDesignTokens","useScrollIndication","styled","EmptyState","Callout","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","displayColumnDefOptions","header","grow","muiTableBodyCellProps","align","sx","overflow","width","className","muiTableHeadCellProps","minWidth","children","marginInline","opacity","padding","ScrollableTableContainer","shouldForwardProp","prop","odysseyDesignTokens","isScrollableStart","isScrollableEnd","marginBlockEnd","Spacing4","position","borderInlineStartColor","HueNeutral200","borderInlineStartStyle","borderInlineStartWidth","BorderWidthMain","background","content","pointerEvents","top","left","bottom","Spacing6","zIndex","transition","TransitionDurationMain","TransitionTimingMain","borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth","right","DataTable","bulkActionMenuItems","columns","currentPage","emptyPlaceholder","errorMessage","errorMessageProp","filters","filtersProp","getData","getRowId","getRowIdProp","hasChangeableDensity","hasColumnResizing","hasColumnVisibility","hasFilters","hasPagination","hasRowReordering","hasRowSelection","hasSearch","hasSearchSubmitButton","hasSorting","initialDensity","initialSearchValue","noResultsPlaceholder","onChangeRowSelection","onReorderRows","paginationType","renderDetailPanel","resultsPerPage","rowActionButtons","rowActionMenuItems","searchDelayTime","totalRows","t","data","setData","pagination","setPagination","pageIndex","pageSize","draggingRow","setDraggingRow","isTableContainerScrolledToStart","setIsTableContainerScrolledToStart","isTableContainerScrolledToEnd","setIsTableContainerScrolledToEnd","tableInnerContainerWidth","setTableInnerContainerWidth","tableOuterContainerRef","tableInnerContainerRef","tableContentRef","columnSorting","setColumnSorting","columnVisibility","setColumnVisibility","rowDensity","setRowDensity","rowSelection","setRowSelection","search","setSearch","setFilters","initialFilters","setInitialFilters","isLoading","setIsLoading","isEmpty","setIsEmpty","setErrorMessage","tableOuterContainer","current","tableInnerContainer","dragHandleStyles","dragHandleText","draggableTableBodyRowClassName","handleDragHandleKeyDown","handleDragHandleOnDragCapture","handleDragHandleOnDragEnd","resetDraggingAndHoveredRow","updateRowOrder","page","row","id","rowDensityClassName","renderRowActions","currentIndex","index","rowIndex","undefined","convertFilterSelectOptions","options","map","option","label","value","convertColumnToFilter","column","enableColumnFilter","accessorKey","variant","filterVariant","filterSelectOptions","dataTableFilters","providedFilters","reduce","accumulator","item","foundColumn","find","filter","concat","defaultCell","cell","getValue","hasTextWrapping","columnDef","enableWrapping","whiteSpace","textOverflow","emptyState","noResultsInnerContent","heading","description","emptyStateInnerContent","columnIds","columnOrder","dataTable","state","sorting","globalFilter","icons","ArrowDownwardIcon","DragHandleIcon","SyncAltIcon","ExpandMoreIcon","enableColumnActions","enableColumnResizing","enableDensityToggle","enableFilters","enableFullScreenToggle","enableGlobalFilter","enableHiding","enablePagination","layoutMode","manualFiltering","manualSorting","muiTablePaperProps","elevation","selectAllMode","muiTableBodyProps","defaultColumn","Cell","enableRowOrdering","Boolean","enableRowDragging","muiTableBodyRowProps","table","currentRowId","draggingRowId","hoveredRowId","getState","hoveredRow","muiRowDragHandleProps","onKeyDown","event","onBlur","onDragEnd","onDragCapture","enableRowActions","positionActionsColumn","enableRowSelection","onRowSelectionChange","enableSorting","onSortingChange","currentColumn","sortedColumn","enableRowVirtualization","rowVirtualizerInstanceRef","rowVirtualizerOptions","overscan","renderEmptyRowsFallback","muiTableProps","ref","muiTableContainerProps","enableExpandAll","bulkActionMenuButton","buttonVariant","endIcon","isDisabled","Object","keys","length","ariaLabel","incomingData","sort","error","lastRow","marginBottom","onChangeSearch","onChangeFilters","defaultSearchTerm","additionalActions","severity","text","onPaginationChange","rowsPerPageLabel","currentPageLabel","previousLabel","nextLabel","loadMoreLabel","MemoizedDataTable","displayName"],"sources":["../../src/DataTable/DataTable.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n ReactNode,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n MRT_Cell,\n MRT_DensityState,\n MRT_Row,\n MRT_SortingState,\n MRT_TableOptions,\n MRT_RowSelectionState,\n MRT_RowVirtualizer,\n MRT_VisibilityState,\n useMaterialReactTable,\n MRT_TableContainer,\n MRT_Column,\n MRT_ColumnDef,\n MRT_TableInstance,\n} from \"material-react-table\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n ArrowDownIcon,\n ArrowUnsortedIcon,\n ChevronDownIcon,\n DragIndicatorIcon,\n MoreIcon,\n} from \"../icons.generated\";\nimport { densityValues } from \"./constants\";\nimport { Pagination, paginationTypeValues, usePagination } from \"../Pagination\";\nimport { DataFilter, DataFilters } from \"../labs/DataFilters\";\nimport {\n DataTableRowActions,\n DataTableRowActionsProps,\n} from \"./DataTableRowActions\";\nimport { useRowReordering } from \"./useRowReordering\";\nimport { DataTableSettings } from \"./DataTableSettings\";\nimport { MenuButton, MenuButtonProps } from \"../MenuButton\";\nimport { Box } from \"../Box\";\nimport { DataTableRowSelectionState, DataTableRowData } from \".\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../OdysseyDesignTokensContext\";\nimport { useScrollIndication } from \"./useScrollIndication\";\nimport styled from \"@emotion/styled\";\nimport { EmptyState } from \"../EmptyState\";\nimport { Callout } from \"../Callout\";\n\nexport type DataTableColumn<T extends DataTableRowData> = MRT_ColumnDef<T> & {\n /**\n * @deprecated use hasTextWrapping instead of enableWrapping\n */\n enableWrapping?: boolean;\n hasTextWrapping?: boolean;\n};\n\ntype DataTableColumnInstance<T extends DataTableRowData> = Omit<\n MRT_Column<T, unknown>,\n \"columnDef\"\n> & {\n columnDef: DataTableColumn<T>;\n};\n\ntype DataTableCell<T extends DataTableRowData> = Omit<MRT_Cell<T>, \"column\"> & {\n column: DataTableColumnInstance<T>;\n};\n\nexport type DataTableGetDataType = {\n page?: number;\n resultsPerPage?: number;\n search?: string;\n filters?: DataFilter[];\n sort?: MRT_SortingState;\n};\n\nexport type DataTableOnReorderRowsType = {\n rowId: string;\n newRowIndex: number;\n};\n\nexport type DataTableRenderDetailPanelType = {\n row: MRT_Row<DataTableRowData>;\n table: MRT_TableInstance<DataTableRowData>;\n};\n\nexport type DataTableProps = {\n /**\n * Menu items to include in the bulk actions menu, which appears above the table if a row or rows are selected\n */\n bulkActionMenuItems?: (\n selectedRows: MRT_RowSelectionState,\n ) => MenuButtonProps[\"children\"];\n /**\n * The columns that make up the table\n */\n columns: DataTableColumn<DataTableRowData>[];\n /**\n * The current page number.\n */\n currentPage?: number;\n /**\n * If `error` is not undefined, the DataTable will indicate an error.\n */\n errorMessage?: string;\n /**\n * The component to display when the table is displaying the initial empty state\n */\n emptyPlaceholder?: ReactNode;\n /**\n * An optional set of filters to render in the filters menu\n */\n filters?: Array<DataFilter | DataTableColumn<DataTableRowData> | string>;\n /**\n * The function to get the ID of a row\n */\n getRowId?: MRT_TableOptions<DataTableRowData>[\"getRowId\"];\n /**\n * Callback that fires whenever the table needs to fetch new data, due to changes in\n * page, results per page, search input, filters, or sorting\n */\n getData: ({\n page,\n resultsPerPage,\n search,\n filters,\n sort,\n }: DataTableGetDataType) =>\n | MRT_TableOptions<DataTableRowData>[\"data\"]\n | Promise<MRT_TableOptions<DataTableRowData>[\"data\"]>;\n /**\n * If true, the end user can resize individual columns.\n */\n hasColumnResizing?: boolean;\n /**\n * If true, the end user will be able to show/hide columns.\n */\n hasColumnVisibility?: boolean;\n /**\n * If true, the end user will be able to filter columns.\n */\n hasFilters?: boolean;\n /**\n * If true, the table will include pagination controls.\n */\n hasPagination?: boolean;\n /**\n * If true, the end user can reorder rows via a drag-and-drop interface\n */\n hasRowReordering?: boolean;\n /**\n * If true, the table will include checkboxes on each row, enabling\n * the user to select some or all rows.\n */\n hasRowSelection?: boolean;\n /**\n * If true, the global table search controls will be shown.\n */\n hasSearch?: boolean;\n /**\n * If true, the search field will include a Search button, rather than\n * firing on input change.\n */\n hasSearchSubmitButton?: boolean;\n /**\n * If true, the end user can sort columns (ascending, descending, or neither)\n */\n hasSorting?: boolean;\n /**\n * If true, the end user will be able to change the table density.\n */\n hasChangeableDensity?: boolean;\n /**\n * The initial density (height & padding) of the table rows. This is available even if the\n * table density isn't changeable by the end user via hasChangeableDensity.\n */\n initialDensity?: (typeof densityValues)[number];\n /**\n * The initial search value\n */\n initialSearchValue?: string;\n /**\n * The component to display when the query returns no results\n */\n noResultsPlaceholder?: ReactNode;\n /**\n * The number of results per page.\n */\n resultsPerPage?: number;\n /**\n * The optional component to display when expanding a row.\n */\n renderDetailPanel?: MRT_TableOptions<DataTableRowData>[\"renderDetailPanel\"];\n /**\n * Action buttons to display in each row\n */\n rowActionButtons?: DataTableRowActionsProps[\"rowActionButtons\"];\n /**\n * Menu items to include in the optional actions menu on each row.\n */\n rowActionMenuItems?: DataTableRowActionsProps[\"rowActionMenuItems\"];\n /**\n * The debounce time, in milliseconds, for the search input firing\n * `onChangeSearch` when changed. If `hasSearchSubmitButton` is true,\n * this doesn't do anything.\n */\n searchDelayTime?: number;\n /**\n * Callback that fires when a row (or rows) is selected or unselected.\n */\n onChangeRowSelection?: (rowSelection: DataTableRowSelectionState) => void;\n /**\n * Callback that fires when the user reorders rows within the table. Can be used\n * to propogate order change to the backend.\n */\n onReorderRows?: ({ rowId, newRowIndex }: DataTableOnReorderRowsType) => void;\n /**\n * The type of pagination controls shown. Defaults to next/prev buttons, but can be\n * set to a simple \"Load more\" button by setting to \"loadMore\".\n */\n paginationType?: (typeof paginationTypeValues)[number];\n /**\n * The total number of rows in the table. Optional, because it's sometimes impossible\n * to calculate. Used in table pagination to know when to disable the \"next\"/\"more\" button.\n */\n totalRows?: number;\n};\n\nconst displayColumnDefOptions = {\n \"mrt-row-actions\": {\n header: \"\",\n grow: true,\n muiTableBodyCellProps: {\n align: \"right\",\n sx: {\n overflow: \"visible\",\n width: \"unset\",\n },\n className: \"ods-actions-cell\",\n },\n muiTableHeadCellProps: {\n align: \"right\",\n sx: {\n width: \"unset\",\n },\n className: \"ods-actions-cell\",\n },\n },\n \"mrt-row-drag\": {\n header: \"\",\n muiTableBodyCellProps: {\n sx: {\n minWidth: 0,\n width: \"auto\",\n },\n className: \"ods-drag-handle\",\n },\n muiTableHeadCellProps: {\n sx: {\n minWidth: 0,\n width: \"auto\",\n },\n children: (\n // Add a spacer to simulate the width of the drag handle in the column.\n // Without this, the head cells are offset from their body cell counterparts\n <Box sx={{ marginInline: \"-0.1rem\" }}>\n <DragIndicatorIcon sx={{ marginInline: 1, opacity: 0 }} />\n </Box>\n ),\n },\n },\n \"mrt-row-select\": {\n muiTableHeadCellProps: {\n padding: \"checkbox\",\n },\n muiTableBodyCellProps: {\n padding: \"checkbox\",\n },\n },\n \"mrt-row-expand\": {\n header: \"\",\n },\n};\n\nconst ScrollableTableContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"isScrollableStart\" &&\n prop !== \"isScrollableEnd\",\n})(\n ({\n odysseyDesignTokens,\n isScrollableStart,\n isScrollableEnd,\n }: {\n odysseyDesignTokens: DesignTokens;\n isScrollableStart: boolean;\n isScrollableEnd: boolean;\n }) => ({\n marginBlockEnd: odysseyDesignTokens.Spacing4,\n position: \"relative\",\n borderInlineStartColor: isScrollableStart\n ? odysseyDesignTokens.HueNeutral200\n : \"transparent\",\n borderInlineStartStyle: \"solid\",\n borderInlineStartWidth: odysseyDesignTokens.BorderWidthMain,\n \"::before\": {\n background:\n \"linear-gradient(-90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.33) 50%, rgba(0, 0, 0, 1) 100%)\",\n content: '\"\"',\n opacity: isScrollableStart ? \"0.075\" : \"0\",\n pointerEvents: \"none\",\n position: \"absolute\",\n top: 0,\n left: 0,\n bottom: 0,\n width: odysseyDesignTokens.Spacing6,\n zIndex: 100,\n transition: `opacity ${odysseyDesignTokens.TransitionDurationMain} ${odysseyDesignTokens.TransitionTimingMain}`,\n },\n borderInlineEndColor: isScrollableEnd\n ? odysseyDesignTokens.HueNeutral200\n : \"transparent\",\n borderInlineEndStyle: \"solid\",\n borderInlineEndWidth: odysseyDesignTokens.BorderWidthMain,\n \"::after\": {\n background:\n \"linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.33) 50%, rgba(0, 0, 0, 1) 100%)\",\n content: '\"\"',\n opacity: isScrollableEnd ? \"0.075\" : \"0\",\n pointerEvents: \"none\",\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n width: odysseyDesignTokens.Spacing6,\n transition: `opacity ${odysseyDesignTokens.TransitionDurationMain} ${odysseyDesignTokens.TransitionTimingMain}`,\n },\n }),\n);\n\nconst DataTable = ({\n bulkActionMenuItems,\n columns,\n currentPage = 1,\n emptyPlaceholder,\n errorMessage: errorMessageProp,\n filters: filtersProp,\n getData,\n getRowId: getRowIdProp,\n hasChangeableDensity,\n hasColumnResizing,\n hasColumnVisibility,\n hasFilters,\n hasPagination,\n hasRowReordering,\n hasRowSelection,\n hasSearch,\n hasSearchSubmitButton,\n hasSorting,\n initialDensity = densityValues[0],\n initialSearchValue = \"\",\n noResultsPlaceholder,\n onChangeRowSelection,\n onReorderRows,\n paginationType = \"paged\",\n renderDetailPanel,\n resultsPerPage = 20,\n rowActionButtons,\n rowActionMenuItems,\n searchDelayTime,\n totalRows,\n}: DataTableProps) => {\n const { t } = useTranslation();\n\n const [data, setData] = useState<DataTableRowData[]>([]);\n const [pagination, setPagination] = useState({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n const [draggingRow, setDraggingRow] =\n useState<MRT_Row<DataTableRowData> | null>();\n const [isTableContainerScrolledToStart, setIsTableContainerScrolledToStart] =\n useState(true);\n const [isTableContainerScrolledToEnd, setIsTableContainerScrolledToEnd] =\n useState(true);\n const [tableInnerContainerWidth, setTableInnerContainerWidth] =\n useState<string>(\"100%\");\n const tableOuterContainerRef = useRef<HTMLDivElement>(null);\n const tableInnerContainerRef = useRef<HTMLDivElement>(null);\n const tableContentRef = useRef<HTMLTableElement>(null);\n\n // Table states\n const [columnSorting, setColumnSorting] = useState<MRT_SortingState>([]);\n const [columnVisibility, setColumnVisibility] =\n useState<MRT_VisibilityState>();\n const [rowDensity, setRowDensity] =\n useState<MRT_DensityState>(initialDensity);\n const [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n const [search, setSearch] = useState<string>(initialSearchValue);\n const [filters, setFilters] = useState<DataFilter[]>();\n const [initialFilters, setInitialFilters] = useState<DataFilter[]>();\n const [isLoading, setIsLoading] = useState<boolean | undefined>(true);\n const [isEmpty, setIsEmpty] = useState<boolean | undefined>();\n const [errorMessage, setErrorMessage] = useState<string | undefined>(\n errorMessageProp,\n );\n\n useScrollIndication({\n tableOuterContainer: tableOuterContainerRef.current,\n tableInnerContainer: tableInnerContainerRef.current,\n setIsTableContainerScrolledToStart: setIsTableContainerScrolledToStart,\n setIsTableContainerScrolledToEnd: setIsTableContainerScrolledToEnd,\n setTableInnerContainerWidth: setTableInnerContainerWidth,\n });\n\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const {\n dragHandleStyles,\n dragHandleText,\n draggableTableBodyRowClassName,\n handleDragHandleKeyDown,\n handleDragHandleOnDragCapture,\n handleDragHandleOnDragEnd,\n resetDraggingAndHoveredRow,\n updateRowOrder,\n } = useRowReordering({\n totalRows,\n onReorderRows,\n data,\n setData,\n draggingRow,\n setDraggingRow,\n resultsPerPage: pagination.pageSize,\n page: pagination.pageIndex,\n });\n\n const getRowId = getRowIdProp\n ? getRowIdProp\n : (row: DataTableRowData) => row.id;\n\n const rowDensityClassName = useMemo(() => {\n return rowDensity === \"spacious\"\n ? \"MuiTableBody-spacious\"\n : rowDensity === \"compact\"\n ? \"MuiTableBody-compact\"\n : \"MuiTableBody-default\";\n }, [rowDensity]);\n\n const renderRowActions = useCallback(\n ({ row }: { row: MRT_Row<DataTableRowData> }) => {\n const currentIndex =\n row.index + (pagination.pageIndex - 1) * pagination.pageSize;\n return (\n <DataTableRowActions\n row={row}\n rowIndex={currentIndex}\n rowActionButtons={rowActionButtons}\n rowActionMenuItems={rowActionMenuItems}\n totalRows={totalRows}\n updateRowOrder={\n hasRowReordering && onReorderRows ? updateRowOrder : undefined\n }\n />\n );\n },\n [\n pagination,\n rowActionButtons,\n rowActionMenuItems,\n hasRowReordering,\n onReorderRows,\n totalRows,\n updateRowOrder,\n ],\n );\n\n /**\n * This hack is to provide compatibility with Material-React-Table's\n * filterOptions format, which allows for strings and { label: string, value: string }\n */\n const convertFilterSelectOptions = useCallback(\n (options: DataTableColumn<DataTableRowData>[\"filterSelectOptions\"]) =>\n options?.map((option) =>\n typeof option === \"string\"\n ? {\n label: option,\n value: option,\n }\n : {\n // If the option isn't a string, it must have value and/or option defined\n // If either is undefined, use the other\n label: option.label ?? option.value,\n value: option.value ?? option.label,\n },\n ),\n [],\n );\n\n const convertColumnToFilter = useCallback(\n (column: DataTableColumn<DataTableRowData>) =>\n column.enableColumnFilter !== false && column.accessorKey\n ? ({\n id: column.accessorKey,\n label: column.header,\n variant: column.filterVariant,\n options: convertFilterSelectOptions(column.filterSelectOptions),\n } satisfies DataFilter as DataFilter)\n : null,\n [convertFilterSelectOptions],\n );\n\n /**\n * Filters default to the columns, but can be overridden\n * with the `filters` prop. `filters` should be an array\n * of column accessorKeys, column defs, or DataFilters.\n */\n const dataTableFilters = useMemo(() => {\n const providedFilters = filtersProp || columns;\n return providedFilters.reduce<DataFilter[]>((accumulator, item) => {\n if (typeof item === \"string\") {\n const foundColumn = columns.find(\n (column) => column.accessorKey === item,\n );\n if (foundColumn) {\n const filter = convertColumnToFilter(foundColumn);\n if (filter) {\n return accumulator.concat(filter);\n }\n }\n } else if (\"accessorKey\" in item) {\n // Checks if it's a column\n const filter = convertColumnToFilter(item);\n if (filter) {\n return accumulator.concat(filter);\n }\n } else if (\"label\" in item) {\n // Checks if it's a DataFilter\n return accumulator.concat(item);\n }\n // If none of the conditions match, item is ignored (not mapping to undefined)\n return accumulator;\n }, []);\n }, [columns, filtersProp, convertColumnToFilter]);\n\n const defaultCell = useCallback(\n ({ cell }: { cell: DataTableCell<DataTableRowData> }) => {\n const value = cell.getValue<string>();\n const hasTextWrapping =\n cell.column.columnDef.hasTextWrapping ||\n cell.column.columnDef.enableWrapping;\n\n return hasTextWrapping ? (\n value\n ) : (\n <Box\n sx={{\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n }}\n >\n {value}\n </Box>\n );\n },\n [],\n );\n\n const emptyState = useCallback(() => {\n const noResultsInnerContent = noResultsPlaceholder || (\n <EmptyState\n heading={t(\"table.noresults.heading\")}\n description={t(\"table.noresults.text\")}\n />\n );\n\n const emptyStateInnerContent =\n emptyPlaceholder && isEmpty ? emptyPlaceholder : noResultsInnerContent;\n\n return (\n <Box sx={{ width: tableInnerContainerWidth }}>\n {emptyStateInnerContent}\n </Box>\n );\n }, [\n emptyPlaceholder,\n isEmpty,\n noResultsPlaceholder,\n t,\n tableInnerContainerWidth,\n ]);\n\n const columnIds = useMemo(() => {\n return columns.map((column) => column.accessorKey);\n }, [columns]);\n\n const columnOrder = useMemo(\n () => [\n \"mrt-row-drag\",\n \"mrt-row-select\",\n \"mrt-row-expand\",\n ...columnIds,\n \"mrt-row-actions\",\n ],\n [columnIds],\n ) as string[];\n\n const dataTable = useMaterialReactTable({\n columns: columns,\n data: data,\n getRowId: getRowId,\n state: {\n sorting: columnSorting,\n globalFilter: search,\n columnVisibility,\n isLoading,\n rowSelection,\n columnOrder,\n },\n icons: {\n ArrowDownwardIcon: ArrowDownIcon,\n DragHandleIcon: DragIndicatorIcon,\n SyncAltIcon: ArrowUnsortedIcon,\n ExpandMoreIcon: ChevronDownIcon,\n },\n\n // Base table settings\n enableColumnActions: false,\n enableColumnResizing: hasColumnResizing,\n enableDensityToggle: false,\n enableFilters: false,\n enableFullScreenToggle: false,\n enableGlobalFilter: false,\n enableHiding: false,\n enablePagination: false,\n layoutMode: \"grid-no-grow\",\n manualFiltering: true,\n manualSorting: true,\n muiTablePaperProps: {\n elevation: 0,\n sx: {\n overflow: \"visible\",\n },\n },\n selectAllMode: \"all\",\n displayColumnDefOptions:\n displayColumnDefOptions as MRT_TableOptions<DataTableRowData>[\"displayColumnDefOptions\"],\n muiTableBodyProps: () => ({\n className: rowDensityClassName,\n }),\n defaultColumn: {\n Cell: defaultCell,\n },\n\n // Reordering\n enableRowOrdering: hasRowReordering && Boolean(onReorderRows),\n enableRowDragging: hasRowReordering && Boolean(onReorderRows),\n muiTableBodyRowProps: ({ table, row }) => ({\n className: draggableTableBodyRowClassName({\n currentRowId: row.id,\n draggingRowId: draggingRow?.id,\n hoveredRowId: table.getState().hoveredRow?.id,\n }),\n }),\n muiRowDragHandleProps: ({ table, row }) => ({\n onKeyDown: (event) => handleDragHandleKeyDown({ table, row, event }),\n onBlur: () => resetDraggingAndHoveredRow(table),\n onDragEnd: () => handleDragHandleOnDragEnd(table),\n onDragCapture: () => handleDragHandleOnDragCapture(table),\n sx: dragHandleStyles,\n ...dragHandleText,\n }),\n\n // Row actions\n enableRowActions:\n (hasRowReordering === true && onReorderRows) ||\n rowActionButtons ||\n rowActionMenuItems\n ? true\n : false,\n positionActionsColumn:\n \"last\" as MRT_TableOptions<DataTableRowData>[\"positionActionsColumn\"],\n renderRowActions: ({ row }) => renderRowActions({ row }),\n\n // Row selection\n enableRowSelection: hasRowSelection,\n onRowSelectionChange: setRowSelection,\n\n // Sorting\n enableSorting: hasSorting,\n onSortingChange: setColumnSorting,\n muiTableHeadCellProps: ({ column: currentColumn }) => ({\n className: columnSorting.find(\n (sortedColumn) => sortedColumn.id === currentColumn.id,\n )\n ? \"isSorted\"\n : \"isUnsorted\",\n }),\n\n // Virtualization\n enableRowVirtualization:\n paginationType !== \"loadMore\" && pagination.pageSize > 50,\n rowVirtualizerInstanceRef:\n useRef<MRT_RowVirtualizer<HTMLDivElement, HTMLTableRowElement>>(null),\n rowVirtualizerOptions: {\n overscan: 4,\n },\n\n // States\n renderEmptyRowsFallback: emptyState,\n\n // Refs\n muiTableProps: {\n ref: tableContentRef,\n },\n\n muiTableContainerProps: {\n ref: tableInnerContainerRef,\n },\n\n // Row expansion\n enableExpandAll: false,\n renderDetailPanel: renderDetailPanel,\n });\n\n // Effects\n const bulkActionMenuButton = useMemo(\n () => (\n <>\n <MenuButton\n buttonVariant=\"secondary\"\n endIcon={<MoreIcon />}\n isDisabled={Object.keys(rowSelection).length === 0}\n ariaLabel=\"More actions\"\n >\n {bulkActionMenuItems?.(rowSelection)}\n </MenuButton>\n </>\n ),\n [bulkActionMenuItems, rowSelection],\n );\n\n useEffect(() => {\n (async () => {\n setIsLoading(true);\n setErrorMessage(errorMessageProp);\n try {\n const incomingData = await getData?.({\n page: pagination.pageIndex,\n resultsPerPage: pagination.pageSize,\n search,\n filters,\n sort: columnSorting,\n });\n setData(incomingData);\n } catch (error) {\n setErrorMessage(typeof error === \"string\" ? error : t(\"table.error\"));\n } finally {\n setIsLoading(false);\n }\n })();\n }, [\n columnSorting,\n errorMessageProp,\n filters,\n getData,\n pagination,\n search,\n t,\n ]);\n\n useEffect(() => {\n if (!initialFilters && filters) {\n setInitialFilters(filters);\n }\n\n setIsEmpty(\n pagination.pageIndex === currentPage &&\n pagination.pageSize === resultsPerPage &&\n search === \"\" &&\n filters === initialFilters &&\n data.length === 0,\n );\n }, [\n filters,\n pagination,\n search,\n data,\n currentPage,\n initialFilters,\n resultsPerPage,\n ]);\n\n useEffect(() => {\n onChangeRowSelection?.(rowSelection);\n }, [rowSelection, onChangeRowSelection]);\n\n const { lastRow } = usePagination({\n pageIndex: pagination.pageIndex,\n pageSize: pagination.pageSize,\n totalRows,\n });\n\n // Render the table\n return (\n <>\n {(hasSearch ||\n hasFilters ||\n hasChangeableDensity ||\n hasColumnVisibility ||\n bulkActionMenuItems) && (\n <Box sx={{ marginBottom: 5 }}>\n <DataFilters\n onChangeSearch={hasSearch ? setSearch : undefined}\n onChangeFilters={hasFilters ? setFilters : undefined}\n hasSearchSubmitButton={hasSearchSubmitButton}\n searchDelayTime={searchDelayTime}\n filters={hasFilters ? dataTableFilters : undefined}\n defaultSearchTerm={initialSearchValue}\n isDisabled={isEmpty}\n additionalActions={\n <>\n <DataTableSettings\n hasChangeableDensity={hasChangeableDensity}\n rowDensity={rowDensity}\n setRowDensity={setRowDensity}\n hasColumnVisibility={hasColumnVisibility}\n columns={columns}\n columnVisibility={columnVisibility}\n setColumnVisibility={setColumnVisibility}\n />\n {bulkActionMenuItems && bulkActionMenuButton}\n </>\n }\n />\n </Box>\n )}\n\n {errorMessage && (\n <Box sx={{ marginBlockEnd: 2 }}>\n <Callout severity=\"error\" text={errorMessage} />\n </Box>\n )}\n\n <ScrollableTableContainer\n odysseyDesignTokens={odysseyDesignTokens}\n isScrollableStart={!isTableContainerScrolledToStart}\n isScrollableEnd={!isTableContainerScrolledToEnd}\n ref={tableOuterContainerRef}\n >\n <MRT_TableContainer table={dataTable} />\n </ScrollableTableContainer>\n\n {hasPagination && (\n <Pagination\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n onPaginationChange={setPagination}\n lastRow={lastRow}\n totalRows={totalRows}\n isDisabled={isEmpty}\n variant={paginationType}\n rowsPerPageLabel={t(\"pagination.rowsperpage\")}\n currentPageLabel={t(\"pagination.page\")}\n previousLabel={t(\"pagination.previous\")}\n nextLabel={t(\"pagination.next\")}\n loadMoreLabel={t(\"pagination.loadmore\")}\n />\n )}\n </>\n );\n};\n\nconst MemoizedDataTable = memo(DataTable);\nMemoizedDataTable.displayName = \"DataTable\";\n\nexport { MemoizedDataTable as DataTable };\n"],"mappings":"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"}
|