@okta/odyssey-react-mui 1.20.0 → 1.21.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 +43 -0
- package/dist/DataTable/DataTable.js +101 -63
- package/dist/DataTable/DataTable.js.map +1 -1
- package/dist/Pagination/Pagination.js +29 -20
- package/dist/Pagination/Pagination.js.map +1 -1
- package/dist/Pagination/usePagination.js +13 -22
- package/dist/Pagination/usePagination.js.map +1 -1
- package/dist/assertEnv.js +1 -1
- package/dist/index.scss +1 -1
- package/dist/labs/DataComponents/DataStack.js +6 -0
- package/dist/labs/DataComponents/DataStack.js.map +1 -1
- package/dist/labs/DataComponents/DataTable.js +6 -0
- package/dist/labs/DataComponents/DataTable.js.map +1 -1
- package/dist/labs/DataComponents/DataView.js +15 -1
- package/dist/labs/DataComponents/DataView.js.map +1 -1
- package/dist/labs/DataComponents/TableContent.js +49 -3
- package/dist/labs/DataComponents/TableContent.js.map +1 -1
- package/dist/labs/DataComponents/TableSettings.js +28 -38
- package/dist/labs/DataComponents/TableSettings.js.map +1 -1
- package/dist/labs/DataComponents/componentTypes.js.map +1 -1
- package/dist/labs/DataComponents/constants.js.map +1 -1
- package/dist/labs/DataComponents/tableConstants.js +0 -19
- package/dist/labs/DataComponents/tableConstants.js.map +1 -1
- package/dist/labs/DataComponents/useFilterConversion.js +8 -15
- package/dist/labs/DataComponents/useFilterConversion.js.map +1 -1
- package/dist/labs/DateField.js +97 -10
- package/dist/labs/DateField.js.map +1 -1
- package/dist/labs/DatePicker.js +113 -51
- package/dist/labs/DatePicker.js.map +1 -1
- package/dist/labs/TimeZonePicker.js +37 -0
- package/dist/labs/TimeZonePicker.js.map +1 -0
- package/dist/labs/TopNav.js +280 -0
- package/dist/labs/TopNav.js.map +1 -0
- package/dist/labs/datePickerTheme.js +8 -5
- package/dist/labs/datePickerTheme.js.map +1 -1
- package/dist/labs/index.js +1 -0
- package/dist/labs/index.js.map +1 -1
- package/dist/labs/{useDatePickerTranslations.js → useDateFieldsTranslations.js} +2 -2
- package/dist/labs/{useDatePickerTranslations.js.map → useDateFieldsTranslations.js.map} +1 -1
- package/dist/labs/useOdysseyDateFields.js +101 -0
- package/dist/labs/useOdysseyDateFields.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui.js +3 -0
- package/dist/properties/ts/odyssey-react-mui.js.map +1 -1
- package/dist/src/Autocomplete.d.ts +2 -1
- package/dist/src/Autocomplete.d.ts.map +1 -1
- package/dist/src/Badge.d.ts +0 -1
- package/dist/src/Badge.d.ts.map +1 -1
- package/dist/src/Banner.d.ts +0 -1
- package/dist/src/Banner.d.ts.map +1 -1
- package/dist/src/ButtonContext.d.ts +0 -1
- package/dist/src/ButtonContext.d.ts.map +1 -1
- package/dist/src/Checkbox.d.ts +0 -1
- package/dist/src/Checkbox.d.ts.map +1 -1
- package/dist/src/CircularProgress.d.ts +0 -1
- package/dist/src/CircularProgress.d.ts.map +1 -1
- package/dist/src/DataTable/DataTable.d.ts +14 -1
- package/dist/src/DataTable/DataTable.d.ts.map +1 -1
- package/dist/src/DataTable/useRowReordering.d.ts.map +1 -1
- package/dist/src/ErrorMessageList.d.ts +0 -1
- package/dist/src/ErrorMessageList.d.ts.map +1 -1
- package/dist/src/Field.d.ts.map +1 -1
- package/dist/src/FieldError.d.ts +0 -1
- package/dist/src/FieldError.d.ts.map +1 -1
- package/dist/src/FieldHint.d.ts +0 -1
- package/dist/src/FieldHint.d.ts.map +1 -1
- package/dist/src/FieldLabel.d.ts +0 -1
- package/dist/src/FieldLabel.d.ts.map +1 -1
- package/dist/src/FieldsetContext.d.ts +0 -1
- package/dist/src/FieldsetContext.d.ts.map +1 -1
- package/dist/src/HintLink.d.ts +0 -1
- package/dist/src/HintLink.d.ts.map +1 -1
- package/dist/src/MuiPropsContext.d.ts +0 -1
- package/dist/src/MuiPropsContext.d.ts.map +1 -1
- package/dist/src/NativeSelect.d.ts +4 -4
- package/dist/src/NativeSelect.d.ts.map +1 -1
- package/dist/src/OdysseyDesignTokensContext.d.ts +0 -1
- package/dist/src/OdysseyDesignTokensContext.d.ts.map +1 -1
- package/dist/src/OdysseyProvider.d.ts +2 -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 +41 -26
- package/dist/src/Pagination/Pagination.d.ts.map +1 -1
- package/dist/src/Pagination/usePagination.d.ts +2 -1
- package/dist/src/Pagination/usePagination.d.ts.map +1 -1
- package/dist/src/PasswordField.d.ts +10 -10
- package/dist/src/PasswordField.d.ts.map +1 -1
- package/dist/src/Radio.d.ts +0 -1
- package/dist/src/Radio.d.ts.map +1 -1
- package/dist/src/SearchField.d.ts +11 -11
- package/dist/src/SearchField.d.ts.map +1 -1
- package/dist/src/Select.d.ts +0 -1
- package/dist/src/Select.d.ts.map +1 -1
- package/dist/src/Status.d.ts +0 -1
- package/dist/src/Status.d.ts.map +1 -1
- package/dist/src/Tabs.d.ts.map +1 -1
- package/dist/src/TagListContext.d.ts +0 -1
- package/dist/src/TagListContext.d.ts.map +1 -1
- package/dist/src/TextField.d.ts +12 -12
- package/dist/src/TextField.d.ts.map +1 -1
- package/dist/src/Toast.d.ts +0 -1
- package/dist/src/Toast.d.ts.map +1 -1
- package/dist/src/icons.generated/Add.d.ts +0 -1
- package/dist/src/icons.generated/Add.d.ts.map +1 -1
- package/dist/src/icons.generated/AddCircle.d.ts +0 -1
- package/dist/src/icons.generated/AddCircle.d.ts.map +1 -1
- package/dist/src/icons.generated/Apps.d.ts +0 -1
- package/dist/src/icons.generated/Apps.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowBottom.d.ts +0 -1
- package/dist/src/icons.generated/ArrowBottom.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowDown.d.ts +0 -1
- package/dist/src/icons.generated/ArrowDown.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowLeft.d.ts +0 -1
- package/dist/src/icons.generated/ArrowLeft.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowLowerLeft.d.ts +0 -1
- package/dist/src/icons.generated/ArrowLowerLeft.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowLowerRight.d.ts +0 -1
- package/dist/src/icons.generated/ArrowLowerRight.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowRight.d.ts +0 -1
- package/dist/src/icons.generated/ArrowRight.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowTop.d.ts +0 -1
- package/dist/src/icons.generated/ArrowTop.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowUnsorted.d.ts +0 -1
- package/dist/src/icons.generated/ArrowUnsorted.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowUp.d.ts +0 -1
- package/dist/src/icons.generated/ArrowUp.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowUpperLeft.d.ts +0 -1
- package/dist/src/icons.generated/ArrowUpperLeft.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowUpperRight.d.ts +0 -1
- package/dist/src/icons.generated/ArrowUpperRight.d.ts.map +1 -1
- package/dist/src/icons.generated/Bug.d.ts +0 -1
- package/dist/src/icons.generated/Bug.d.ts.map +1 -1
- package/dist/src/icons.generated/Calendar.d.ts +0 -1
- package/dist/src/icons.generated/Calendar.d.ts.map +1 -1
- package/dist/src/icons.generated/Call.d.ts +0 -1
- package/dist/src/icons.generated/Call.d.ts.map +1 -1
- package/dist/src/icons.generated/Chat.d.ts +0 -1
- package/dist/src/icons.generated/Chat.d.ts.map +1 -1
- package/dist/src/icons.generated/Check.d.ts +0 -1
- package/dist/src/icons.generated/Check.d.ts.map +1 -1
- package/dist/src/icons.generated/CheckCircleFilled.d.ts +0 -1
- package/dist/src/icons.generated/CheckCircleFilled.d.ts.map +1 -1
- package/dist/src/icons.generated/ChevronDown.d.ts +0 -1
- package/dist/src/icons.generated/ChevronDown.d.ts.map +1 -1
- package/dist/src/icons.generated/ChevronLeft.d.ts +0 -1
- package/dist/src/icons.generated/ChevronLeft.d.ts.map +1 -1
- package/dist/src/icons.generated/ChevronRight.d.ts +0 -1
- package/dist/src/icons.generated/ChevronRight.d.ts.map +1 -1
- package/dist/src/icons.generated/ChevronUp.d.ts +0 -1
- package/dist/src/icons.generated/ChevronUp.d.ts.map +1 -1
- package/dist/src/icons.generated/Clock.d.ts +0 -1
- package/dist/src/icons.generated/Clock.d.ts.map +1 -1
- package/dist/src/icons.generated/Close.d.ts +0 -1
- package/dist/src/icons.generated/Close.d.ts.map +1 -1
- package/dist/src/icons.generated/CloseCircleFilled.d.ts +0 -1
- package/dist/src/icons.generated/CloseCircleFilled.d.ts.map +1 -1
- package/dist/src/icons.generated/CollapseLeft.d.ts +0 -1
- package/dist/src/icons.generated/CollapseLeft.d.ts.map +1 -1
- package/dist/src/icons.generated/CollapseRight.d.ts +0 -1
- package/dist/src/icons.generated/CollapseRight.d.ts.map +1 -1
- package/dist/src/icons.generated/Copy.d.ts +0 -1
- package/dist/src/icons.generated/Copy.d.ts.map +1 -1
- package/dist/src/icons.generated/Custom.d.ts +0 -1
- package/dist/src/icons.generated/Custom.d.ts.map +1 -1
- package/dist/src/icons.generated/DangerDiamond.d.ts +0 -1
- package/dist/src/icons.generated/DangerDiamond.d.ts.map +1 -1
- package/dist/src/icons.generated/DangerDiamondFilled.d.ts +0 -1
- package/dist/src/icons.generated/DangerDiamondFilled.d.ts.map +1 -1
- package/dist/src/icons.generated/Delete.d.ts +0 -1
- package/dist/src/icons.generated/Delete.d.ts.map +1 -1
- package/dist/src/icons.generated/Deny.d.ts +0 -1
- package/dist/src/icons.generated/Deny.d.ts.map +1 -1
- package/dist/src/icons.generated/Devices.d.ts +0 -1
- package/dist/src/icons.generated/Devices.d.ts.map +1 -1
- package/dist/src/icons.generated/Directory.d.ts +0 -1
- package/dist/src/icons.generated/Directory.d.ts.map +1 -1
- package/dist/src/icons.generated/Documentation.d.ts +0 -1
- package/dist/src/icons.generated/Documentation.d.ts.map +1 -1
- package/dist/src/icons.generated/Download.d.ts +0 -1
- package/dist/src/icons.generated/Download.d.ts.map +1 -1
- package/dist/src/icons.generated/DragIndicator.d.ts +0 -1
- package/dist/src/icons.generated/DragIndicator.d.ts.map +1 -1
- package/dist/src/icons.generated/Duo.d.ts +0 -1
- package/dist/src/icons.generated/Duo.d.ts.map +1 -1
- package/dist/src/icons.generated/Edit.d.ts +0 -1
- package/dist/src/icons.generated/Edit.d.ts.map +1 -1
- package/dist/src/icons.generated/Email.d.ts +0 -1
- package/dist/src/icons.generated/Email.d.ts.map +1 -1
- package/dist/src/icons.generated/ExpandLeft.d.ts +0 -1
- package/dist/src/icons.generated/ExpandLeft.d.ts.map +1 -1
- package/dist/src/icons.generated/ExpandRight.d.ts +0 -1
- package/dist/src/icons.generated/ExpandRight.d.ts.map +1 -1
- package/dist/src/icons.generated/ExternalLink.d.ts +0 -1
- package/dist/src/icons.generated/ExternalLink.d.ts.map +1 -1
- package/dist/src/icons.generated/Fido2.d.ts +0 -1
- package/dist/src/icons.generated/Fido2.d.ts.map +1 -1
- package/dist/src/icons.generated/Filter.d.ts +0 -1
- package/dist/src/icons.generated/Filter.d.ts.map +1 -1
- package/dist/src/icons.generated/Folder.d.ts +0 -1
- package/dist/src/icons.generated/Folder.d.ts.map +1 -1
- package/dist/src/icons.generated/Globe.d.ts +0 -1
- package/dist/src/icons.generated/Globe.d.ts.map +1 -1
- package/dist/src/icons.generated/GoogleAuth.d.ts +0 -1
- package/dist/src/icons.generated/GoogleAuth.d.ts.map +1 -1
- package/dist/src/icons.generated/Grid.d.ts +0 -1
- package/dist/src/icons.generated/Grid.d.ts.map +1 -1
- package/dist/src/icons.generated/Group.d.ts +0 -1
- package/dist/src/icons.generated/Group.d.ts.map +1 -1
- package/dist/src/icons.generated/Hide.d.ts +0 -1
- package/dist/src/icons.generated/Hide.d.ts.map +1 -1
- package/dist/src/icons.generated/Home.d.ts +0 -1
- package/dist/src/icons.generated/Home.d.ts.map +1 -1
- package/dist/src/icons.generated/Idp.d.ts +0 -1
- package/dist/src/icons.generated/Idp.d.ts.map +1 -1
- package/dist/src/icons.generated/InformationCircle.d.ts +0 -1
- package/dist/src/icons.generated/InformationCircle.d.ts.map +1 -1
- package/dist/src/icons.generated/InformationCircleFilled.d.ts +0 -1
- package/dist/src/icons.generated/InformationCircleFilled.d.ts.map +1 -1
- package/dist/src/icons.generated/Link.d.ts +0 -1
- package/dist/src/icons.generated/Link.d.ts.map +1 -1
- package/dist/src/icons.generated/List.d.ts +0 -1
- package/dist/src/icons.generated/List.d.ts.map +1 -1
- package/dist/src/icons.generated/Lock.d.ts +0 -1
- package/dist/src/icons.generated/Lock.d.ts.map +1 -1
- package/dist/src/icons.generated/More.d.ts +0 -1
- package/dist/src/icons.generated/More.d.ts.map +1 -1
- package/dist/src/icons.generated/Notification.d.ts +0 -1
- package/dist/src/icons.generated/Notification.d.ts.map +1 -1
- package/dist/src/icons.generated/OktaVerify.d.ts +0 -1
- package/dist/src/icons.generated/OktaVerify.d.ts.map +1 -1
- package/dist/src/icons.generated/OnPremMfa.d.ts +0 -1
- package/dist/src/icons.generated/OnPremMfa.d.ts.map +1 -1
- package/dist/src/icons.generated/OneTimePassword.d.ts +0 -1
- package/dist/src/icons.generated/OneTimePassword.d.ts.map +1 -1
- package/dist/src/icons.generated/Password.d.ts +0 -1
- package/dist/src/icons.generated/Password.d.ts.map +1 -1
- package/dist/src/icons.generated/Pause.d.ts +0 -1
- package/dist/src/icons.generated/Pause.d.ts.map +1 -1
- package/dist/src/icons.generated/QuestionCircle.d.ts +0 -1
- package/dist/src/icons.generated/QuestionCircle.d.ts.map +1 -1
- package/dist/src/icons.generated/QuestionCircleFilled.d.ts +0 -1
- package/dist/src/icons.generated/QuestionCircleFilled.d.ts.map +1 -1
- package/dist/src/icons.generated/Refresh.d.ts +0 -1
- package/dist/src/icons.generated/Refresh.d.ts.map +1 -1
- package/dist/src/icons.generated/Reset.d.ts +0 -1
- package/dist/src/icons.generated/Reset.d.ts.map +1 -1
- package/dist/src/icons.generated/Resume.d.ts +0 -1
- package/dist/src/icons.generated/Resume.d.ts.map +1 -1
- package/dist/src/icons.generated/Search.d.ts +0 -1
- package/dist/src/icons.generated/Search.d.ts.map +1 -1
- package/dist/src/icons.generated/SecurityQuestion.d.ts +0 -1
- package/dist/src/icons.generated/SecurityQuestion.d.ts.map +1 -1
- package/dist/src/icons.generated/Server.d.ts +0 -1
- package/dist/src/icons.generated/Server.d.ts.map +1 -1
- package/dist/src/icons.generated/Settings.d.ts +0 -1
- package/dist/src/icons.generated/Settings.d.ts.map +1 -1
- package/dist/src/icons.generated/Show.d.ts +0 -1
- package/dist/src/icons.generated/Show.d.ts.map +1 -1
- package/dist/src/icons.generated/SmartCard.d.ts +0 -1
- package/dist/src/icons.generated/SmartCard.d.ts.map +1 -1
- package/dist/src/icons.generated/Sms.d.ts +0 -1
- package/dist/src/icons.generated/Sms.d.ts.map +1 -1
- package/dist/src/icons.generated/Subtract.d.ts +0 -1
- package/dist/src/icons.generated/Subtract.d.ts.map +1 -1
- package/dist/src/icons.generated/SymantecVip.d.ts +0 -1
- package/dist/src/icons.generated/SymantecVip.d.ts.map +1 -1
- package/dist/src/icons.generated/Sync.d.ts +0 -1
- package/dist/src/icons.generated/Sync.d.ts.map +1 -1
- package/dist/src/icons.generated/ThumbsDown.d.ts +0 -1
- package/dist/src/icons.generated/ThumbsDown.d.ts.map +1 -1
- package/dist/src/icons.generated/ThumbsUp.d.ts +0 -1
- package/dist/src/icons.generated/ThumbsUp.d.ts.map +1 -1
- package/dist/src/icons.generated/Unlock.d.ts +0 -1
- package/dist/src/icons.generated/Unlock.d.ts.map +1 -1
- package/dist/src/icons.generated/Upload.d.ts +0 -1
- package/dist/src/icons.generated/Upload.d.ts.map +1 -1
- package/dist/src/icons.generated/User.d.ts +0 -1
- package/dist/src/icons.generated/User.d.ts.map +1 -1
- package/dist/src/icons.generated/Video.d.ts +0 -1
- package/dist/src/icons.generated/Video.d.ts.map +1 -1
- package/dist/src/icons.generated/VoiceCall.d.ts +0 -1
- package/dist/src/icons.generated/VoiceCall.d.ts.map +1 -1
- package/dist/src/icons.generated/Warning.d.ts +0 -1
- package/dist/src/icons.generated/Warning.d.ts.map +1 -1
- package/dist/src/icons.generated/WarningFilled.d.ts +0 -1
- package/dist/src/icons.generated/WarningFilled.d.ts.map +1 -1
- package/dist/src/icons.generated/Yubikey.d.ts +0 -1
- package/dist/src/icons.generated/Yubikey.d.ts.map +1 -1
- package/dist/src/inputUtils.d.ts.map +1 -1
- package/dist/src/labs/DataComponents/DataStack.d.ts +1 -2
- package/dist/src/labs/DataComponents/DataStack.d.ts.map +1 -1
- package/dist/src/labs/DataComponents/DataTable.d.ts +1 -2
- package/dist/src/labs/DataComponents/DataTable.d.ts.map +1 -1
- package/dist/src/labs/DataComponents/DataView.d.ts +1 -2
- package/dist/src/labs/DataComponents/DataView.d.ts.map +1 -1
- package/dist/src/labs/DataComponents/DetailPanel.d.ts +0 -1
- package/dist/src/labs/DataComponents/DetailPanel.d.ts.map +1 -1
- package/dist/src/labs/DataComponents/TableContent.d.ts.map +1 -1
- package/dist/src/labs/DataComponents/TableSettings.d.ts.map +1 -1
- package/dist/src/labs/DataComponents/componentTypes.d.ts +5 -2
- package/dist/src/labs/DataComponents/componentTypes.d.ts.map +1 -1
- package/dist/src/labs/DataComponents/constants.d.ts +6 -4
- package/dist/src/labs/DataComponents/constants.d.ts.map +1 -1
- package/dist/src/labs/DataComponents/tableConstants.d.ts +6 -25
- package/dist/src/labs/DataComponents/tableConstants.d.ts.map +1 -1
- package/dist/src/labs/DataComponents/useFilterConversion.d.ts.map +1 -1
- package/dist/src/labs/DataTablePagination.d.ts +0 -1
- package/dist/src/labs/DataTablePagination.d.ts.map +1 -1
- package/dist/src/labs/DateField.d.ts +3 -6
- package/dist/src/labs/DateField.d.ts.map +1 -1
- package/dist/src/labs/DatePicker.d.ts +20 -19
- package/dist/src/labs/DatePicker.d.ts.map +1 -1
- package/dist/src/labs/FileUpload.d.ts +0 -1
- package/dist/src/labs/FileUpload.d.ts.map +1 -1
- package/dist/src/labs/FileUploadIllustration.d.ts +0 -1
- package/dist/src/labs/FileUploadIllustration.d.ts.map +1 -1
- package/dist/src/labs/FileUploadPreview.d.ts +0 -1
- package/dist/src/labs/FileUploadPreview.d.ts.map +1 -1
- package/dist/src/labs/GroupPicker.d.ts +2 -1
- package/dist/src/labs/GroupPicker.d.ts.map +1 -1
- package/dist/src/labs/PaginatedTable.d.ts +2 -1
- package/dist/src/labs/PaginatedTable.d.ts.map +1 -1
- package/dist/src/labs/StaticTable.d.ts +2 -1
- package/dist/src/labs/StaticTable.d.ts.map +1 -1
- package/dist/src/labs/Switch.d.ts +0 -1
- package/dist/src/labs/Switch.d.ts.map +1 -1
- package/dist/src/labs/TimeZonePicker.d.ts +22 -0
- package/dist/src/labs/TimeZonePicker.d.ts.map +1 -0
- package/dist/src/labs/TopNav.d.ts +77 -0
- package/dist/src/labs/TopNav.d.ts.map +1 -0
- package/dist/src/labs/datePickerTheme.d.ts.map +1 -1
- package/dist/src/labs/index.d.ts +1 -0
- package/dist/src/labs/index.d.ts.map +1 -1
- package/dist/src/labs/{useDatePickerTranslations.d.ts → useDateFieldsTranslations.d.ts} +3 -2
- package/dist/src/labs/useDateFieldsTranslations.d.ts.map +1 -0
- package/dist/src/labs/useOdysseyDateFields.d.ts +82 -0
- package/dist/src/labs/useOdysseyDateFields.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui.d.ts +3 -0
- package/dist/src/properties/ts/odyssey-react-mui.d.ts.map +1 -1
- package/dist/src/test-selectors/querySelector.d.ts +2 -2
- package/dist/src/test-selectors/querySelector.d.ts.map +1 -1
- package/dist/src/theme/components.d.ts.map +1 -1
- package/dist/theme/components.js +44 -9
- package/dist/theme/components.js.map +1 -1
- package/dist/tsconfig.production.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/DataTable/DataTable.tsx +118 -64
- package/src/Pagination/Pagination.tsx +82 -46
- package/src/Pagination/usePagination.ts +14 -18
- package/src/labs/DataComponents/DataStack.tsx +6 -0
- package/src/labs/DataComponents/DataTable.tsx +6 -0
- package/src/labs/DataComponents/DataView.tsx +16 -0
- package/src/labs/DataComponents/TableContent.tsx +66 -9
- package/src/labs/DataComponents/TableSettings.tsx +60 -60
- package/src/labs/DataComponents/componentTypes.ts +5 -6
- package/src/labs/DataComponents/constants.tsx +12 -4
- package/src/labs/DataComponents/tableConstants.tsx +0 -19
- package/src/labs/DataComponents/useFilterConversion.ts +14 -18
- package/src/labs/DateField.tsx +175 -26
- package/src/labs/DatePicker.tsx +155 -93
- package/src/labs/TimeZonePicker.tsx +55 -0
- package/src/labs/TopNav.tsx +394 -0
- package/src/labs/datePickerTheme.tsx +6 -4
- package/src/labs/index.ts +1 -0
- package/src/labs/{useDatePickerTranslations.ts → useDateFieldsTranslations.ts} +3 -1
- package/src/labs/useOdysseyDateFields.ts +201 -0
- package/src/properties/odyssey-react-mui.properties +3 -0
- package/src/properties/ts/odyssey-react-mui.ts +1 -1
- package/src/theme/components.tsx +50 -7
- package/dist/src/labs/useDatePickerTranslations.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.js","names":["memo","useCallback","useEffect","useMemo","useRef","useState","Paragraph","Button","ArrowLeftIcon","ArrowRightIcon","styled","useOdysseyDesignTokens","Box","usePagination","jsx","_jsx","jsxs","_jsxs","PaginationContainer","display","alignItems","justifyContent","PaginationSegment","shouldForwardProp","prop","odysseyDesignTokens","gap","Spacing4","Spacing2","PaginationInput","_InputBase","borderColor","HueNeutral200","borderRadius","BorderRadiusTight","height","Spacing6","width","HueNeutral400","PalettePrimaryMain","PaginationButtonContainer","marginInlineStart","Pagination","pageIndex","pageSize","onPaginationChange","lastRow","totalRows","isDisabled","variant","rowsPerPageLabel","currentPageLabel","previousLabel","nextLabel","loadMoreLabel","page","setPage","rowsPerPage","setRowsPerPage","initialRowsPerPage","totalRowsLabel","handlePaginationChange","updatedPage","Math","ceil","updatedRowsPerPage","handlePageSubmit","event","key","parseInt","currentTarget","value","handleRowsPerPageSubmit","setPageFromEvent","target","setRowsPerPageFromEvent","handleLoadMore","current","handleNextButton","handlePreviousButton","loadMoreIsDisabled","nextButtonDisabled","previousButtonDisabled","rowsPerPageInputProps","currentPageInputProps","children","component","color","type","onChange","onBlur","onKeyDown","disabled","inputProps","startIcon","size","ariaLabel","onClick","endIcon","label","MemoizedPagination","displayName"],"sources":["../../src/Pagination/Pagination.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 { InputBase } from \"@mui/material\";\nimport { memo, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { Paragraph } from \"../Typography\";\nimport { Button } from \"../Button\";\nimport { ArrowLeftIcon, ArrowRightIcon } from \"../icons.generated\";\nimport styled from \"@emotion/styled\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../OdysseyDesignTokensContext\";\nimport { Box } from \"../Box\";\nimport { paginationTypeValues } from \"./constants\";\nimport { usePagination } from \"./usePagination\";\n\nconst PaginationContainer = styled(\"div\")({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n});\n\nconst PaginationSegment = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})(({ odysseyDesignTokens }: { odysseyDesignTokens: DesignTokens }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing4,\n \"& > div\": {\n display: \"flex\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing2,\n },\n}));\n\nconst PaginationInput = styled(InputBase, {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})(({ odysseyDesignTokens }: { odysseyDesignTokens: DesignTokens }) => ({\n borderColor: odysseyDesignTokens.HueNeutral200,\n borderRadius: odysseyDesignTokens.BorderRadiusTight,\n height: odysseyDesignTokens.Spacing6,\n width: \"4.5714285714rem\", // This is a hardcoded value, keep as string\n \"&:hover\": {\n borderColor: odysseyDesignTokens.HueNeutral400,\n },\n \"&.Mui-focused:hover\": {\n borderColor: odysseyDesignTokens.PalettePrimaryMain,\n },\n}));\n\nconst PaginationButtonContainer = styled(\"div\")({\n \"& > *\": {\n marginInlineStart: `0 !important`,\n },\n});\n\nexport type PaginationProps = {\n /**\n * The current page index\n */\n pageIndex: number;\n /**\n * The current page size\n */\n pageSize: number;\n /**\n * Page index and page size setter\n */\n onPaginationChange: ({\n pageIndex,\n pageSize,\n }: {\n pageIndex: number;\n pageSize: number;\n }) => void;\n /**\n * The current page last row index\n */\n lastRow: number;\n /**\n * Total rows count\n */\n totalRows?: number;\n /**\n * If true, the pagination controls will be disabled\n */\n isDisabled?: boolean;\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 variant?: (typeof paginationTypeValues)[number];\n /**\n * The label that shows how many results are rendered per page\n */\n rowsPerPageLabel: string;\n /**\n * The labeled rendered for the current page index\n */\n currentPageLabel: string;\n /**\n * The label for the previous control\n */\n previousLabel: string;\n /**\n * The label for the next control\n */\n nextLabel: string;\n /**\n * If the pagination is of \"loadMore\" variant, then this is the the load more label\n */\n loadMoreLabel: string;\n};\n\nconst Pagination = ({\n pageIndex,\n pageSize,\n onPaginationChange,\n lastRow,\n totalRows,\n isDisabled,\n variant,\n rowsPerPageLabel,\n currentPageLabel,\n previousLabel,\n nextLabel,\n loadMoreLabel,\n}: PaginationProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const [page, setPage] = useState<number>(pageIndex);\n const [rowsPerPage, setRowsPerPage] = useState<number>(pageSize);\n const initialRowsPerPage = useRef<number>(pageSize);\n\n useEffect(() => {\n setPage(pageIndex);\n setRowsPerPage(pageSize);\n }, [pageIndex, pageSize]);\n\n const { totalRowsLabel } = usePagination({ pageIndex, pageSize, totalRows });\n\n const handlePaginationChange = useCallback(() => {\n const updatedPage =\n totalRows && page * totalRows > lastRow\n ? Math.ceil(totalRows / rowsPerPage)\n : page;\n const updatedRowsPerPage =\n totalRows && rowsPerPage > totalRows ? totalRows : rowsPerPage;\n\n onPaginationChange({\n pageIndex: updatedPage,\n pageSize: updatedRowsPerPage,\n });\n }, [page, rowsPerPage, lastRow, onPaginationChange, totalRows]);\n\n // The following handlers use React.KeyboardEvent (rather than just KeyboardEvent) becuase React.KeyboardEvent\n // is generic, while plain KeyboardEvent is not. We need this generic so we can specify the HTMLInputElement,\n // which allows us to use currentTarget.value\n const handlePageSubmit = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n if (event.key === \"Enter\") {\n onPaginationChange({\n pageIndex: parseInt(event.currentTarget.value),\n pageSize: rowsPerPage,\n });\n }\n },\n [rowsPerPage, onPaginationChange],\n );\n\n const handleRowsPerPageSubmit = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n if (event.key === \"Enter\") {\n onPaginationChange({\n pageIndex: page,\n pageSize: parseInt(event.currentTarget.value),\n });\n }\n },\n [page, onPaginationChange],\n );\n\n const setPageFromEvent = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n setPage(parseInt(event.target.value));\n },\n [setPage],\n );\n\n const setRowsPerPageFromEvent = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n setRowsPerPage(parseInt(event.target.value));\n },\n [setRowsPerPage],\n );\n\n const handleLoadMore = useCallback(() => {\n onPaginationChange({\n pageIndex: 1,\n pageSize: rowsPerPage + initialRowsPerPage.current,\n });\n }, [rowsPerPage, onPaginationChange]);\n\n const handleNextButton = useCallback(() => {\n onPaginationChange({ pageIndex: page + 1, pageSize: rowsPerPage });\n }, [onPaginationChange, page, rowsPerPage]);\n\n const handlePreviousButton = useCallback(() => {\n onPaginationChange({ pageIndex: page - 1, pageSize: rowsPerPage });\n }, [onPaginationChange, page, rowsPerPage]);\n\n const loadMoreIsDisabled = useMemo(() => {\n return totalRows ? rowsPerPage >= totalRows : false;\n }, [rowsPerPage, totalRows]);\n\n const nextButtonDisabled = useMemo(\n () => (totalRows ? lastRow >= totalRows : false) || isDisabled,\n [totalRows, lastRow, isDisabled],\n );\n\n const previousButtonDisabled = useMemo(\n () => pageIndex <= 1 || isDisabled,\n [pageIndex, isDisabled],\n );\n\n const rowsPerPageInputProps = useMemo(\n () => ({\n \"aria-label\": rowsPerPageLabel,\n }),\n [rowsPerPageLabel],\n );\n\n const currentPageInputProps = useMemo(\n () => ({\n \"aria-label\": currentPageLabel,\n }),\n [currentPageLabel],\n );\n\n return variant === \"paged\" ? (\n <PaginationContainer>\n <PaginationSegment odysseyDesignTokens={odysseyDesignTokens}>\n <Box>\n <Paragraph component=\"span\" color=\"textSecondary\">\n {rowsPerPageLabel}\n </Paragraph>\n <PaginationInput\n odysseyDesignTokens={odysseyDesignTokens}\n type=\"number\"\n value={rowsPerPage}\n onChange={setRowsPerPageFromEvent}\n onBlur={handlePaginationChange}\n onKeyDown={handleRowsPerPageSubmit}\n disabled={isDisabled}\n inputProps={rowsPerPageInputProps}\n />\n </Box>\n <Paragraph component=\"span\" color=\"textSecondary\">\n {totalRowsLabel}\n </Paragraph>\n </PaginationSegment>\n\n <PaginationSegment odysseyDesignTokens={odysseyDesignTokens}>\n {totalRows && (\n <Box>\n <Paragraph component=\"span\" color=\"textSecondary\">\n {currentPageLabel}\n </Paragraph>\n <PaginationInput\n odysseyDesignTokens={odysseyDesignTokens}\n type=\"number\"\n value={page}\n onChange={setPageFromEvent}\n onBlur={handlePaginationChange}\n onKeyDown={handlePageSubmit}\n disabled={isDisabled}\n inputProps={currentPageInputProps}\n />\n </Box>\n )}\n <PaginationButtonContainer>\n <Button\n startIcon={<ArrowLeftIcon />}\n variant=\"floating\"\n size=\"small\"\n ariaLabel={previousLabel}\n onClick={handlePreviousButton}\n isDisabled={previousButtonDisabled}\n />\n <Button\n endIcon={<ArrowRightIcon />}\n variant=\"floating\"\n size=\"small\"\n ariaLabel={nextLabel}\n onClick={handleNextButton}\n isDisabled={nextButtonDisabled}\n />\n </PaginationButtonContainer>\n </PaginationSegment>\n </PaginationContainer>\n ) : (\n <Button\n variant=\"secondary\"\n label={loadMoreLabel}\n onClick={handleLoadMore}\n isDisabled={loadMoreIsDisabled}\n />\n );\n};\n\nconst MemoizedPagination = memo(Pagination);\nMemoizedPagination.displayName = \"Pagination\";\n\nexport { MemoizedPagination as Pagination };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Pagination.js","names":["memo","useCallback","useEffect","useMemo","useRef","useState","Paragraph","Button","ArrowLeftIcon","ArrowRightIcon","styled","useOdysseyDesignTokens","Box","usePagination","jsx","_jsx","jsxs","_jsxs","PaginationContainer","display","alignItems","justifyContent","PaginationSegment","shouldForwardProp","prop","odysseyDesignTokens","gap","Spacing4","Spacing2","PaginationInput","_InputBase","borderColor","HueNeutral200","borderRadius","BorderRadiusTight","height","Spacing6","width","HueNeutral400","PalettePrimaryMain","PaginationButtonContainer","marginInlineStart","Pagination","currentPageLabel","isDisabled","isMoreDisabled","lastRow","loadMoreLabel","maxPageIndex","maxPageSize","nextLabel","onPaginationChange","pageIndex","pageSize","previousLabel","rowsPerPageLabel","totalRows","currentRowsCount","variant","page","setPage","rowsPerPage","setRowsPerPage","initialRowsPerPage","totalRowsLabel","handlePaginationChange","updatedPage","Math","ceil","updatedRowsPerPage","handlePageSubmit","event","key","parseInt","currentTarget","value","handleRowsPerPageSubmit","setPageFromEvent","min","target","setRowsPerPageFromEvent","handleLoadMore","current","handleNextButton","handlePreviousButton","loadMoreIsDisabled","nextButtonDisabled","previousButtonDisabled","rowsPerPageInputProps","max","currentPageInputProps","children","component","color","type","onChange","onBlur","onKeyDown","disabled","inputProps","startIcon","size","ariaLabel","onClick","endIcon","label","MemoizedPagination","displayName"],"sources":["../../src/Pagination/Pagination.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 { InputBase } from \"@mui/material\";\nimport { memo, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { Paragraph } from \"../Typography\";\nimport { Button } from \"../Button\";\nimport { ArrowLeftIcon, ArrowRightIcon } from \"../icons.generated\";\nimport styled from \"@emotion/styled\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../OdysseyDesignTokensContext\";\nimport { Box } from \"../Box\";\nimport { paginationTypeValues } from \"./constants\";\nimport { usePagination } from \"./usePagination\";\n\nconst PaginationContainer = styled(\"div\")({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n});\n\nconst PaginationSegment = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})(({ odysseyDesignTokens }: { odysseyDesignTokens: DesignTokens }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing4,\n \"& > div\": {\n display: \"flex\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing2,\n },\n}));\n\nconst PaginationInput = styled(InputBase, {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})(({ odysseyDesignTokens }: { odysseyDesignTokens: DesignTokens }) => ({\n borderColor: odysseyDesignTokens.HueNeutral200,\n borderRadius: odysseyDesignTokens.BorderRadiusTight,\n height: odysseyDesignTokens.Spacing6,\n width: \"4.5714285714rem\", // This is a hardcoded value, keep as string\n \"&:hover\": {\n borderColor: odysseyDesignTokens.HueNeutral400,\n },\n \"&.Mui-focused:hover\": {\n borderColor: odysseyDesignTokens.PalettePrimaryMain,\n },\n}));\n\nconst PaginationButtonContainer = styled(\"div\")({\n \"& > *\": {\n marginInlineStart: `0 !important`,\n },\n});\n\nexport type PaginationProps = {\n /**\n * The labeled rendered for the current page index\n */\n currentPageLabel: string;\n /**\n * The number of items currently visible on the page\n */\n currentRowsCount?: number;\n /**\n * If true, the pagination controls will be disabled\n */\n isDisabled?: boolean;\n /**\n * If true, the next or Show More button will be disabled\n */\n isMoreDisabled?: boolean;\n /**\n * The current page last row index\n */\n lastRow: number;\n /**\n * If the pagination is of \"loadMore\" variant, then this is the the load more label\n */\n loadMoreLabel: string;\n /**\n * The max page\n */\n maxPageIndex?: number;\n /**\n * The max rows per page\n */\n maxPageSize?: number;\n /**\n * The label for the next control\n */\n nextLabel: string;\n /**\n * Page index and page size setter\n */\n onPaginationChange: ({\n pageIndex,\n pageSize,\n }: {\n pageIndex: number;\n pageSize: number;\n }) => void;\n /**\n * The current page index\n */\n pageIndex: number;\n /**\n * The current page size\n */\n pageSize: number;\n /**\n * The label for the previous control\n */\n previousLabel: string;\n /**\n * The label that shows how many results are rendered per page\n */\n rowsPerPageLabel: string;\n /**\n * Total rows count\n */\n totalRows?: 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 variant?: (typeof paginationTypeValues)[number];\n};\n\nconst Pagination = ({\n currentPageLabel,\n isDisabled,\n isMoreDisabled,\n lastRow,\n loadMoreLabel,\n maxPageIndex,\n maxPageSize,\n nextLabel,\n onPaginationChange,\n pageIndex,\n pageSize,\n previousLabel,\n rowsPerPageLabel,\n totalRows,\n currentRowsCount,\n variant,\n}: PaginationProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const [page, setPage] = useState<number>(pageIndex);\n const [rowsPerPage, setRowsPerPage] = useState<number>(pageSize);\n const initialRowsPerPage = useRef<number>(pageSize);\n\n useEffect(() => {\n setPage(pageIndex);\n setRowsPerPage(pageSize);\n }, [pageIndex, pageSize]);\n\n const { totalRowsLabel } = usePagination({\n pageIndex,\n pageSize,\n currentRowsCount: currentRowsCount || pageSize,\n totalRows,\n });\n\n const handlePaginationChange = useCallback(() => {\n const updatedPage =\n totalRows && page * totalRows > lastRow\n ? Math.ceil(totalRows / rowsPerPage)\n : page;\n const updatedRowsPerPage =\n totalRows && rowsPerPage > totalRows ? totalRows : rowsPerPage;\n\n onPaginationChange({\n pageIndex: updatedPage,\n pageSize: updatedRowsPerPage,\n });\n }, [page, rowsPerPage, lastRow, onPaginationChange, totalRows]);\n\n // The following handlers use React.KeyboardEvent (rather than just KeyboardEvent) becuase React.KeyboardEvent\n // is generic, while plain KeyboardEvent is not. We need this generic so we can specify the HTMLInputElement,\n // which allows us to use currentTarget.value\n const handlePageSubmit = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n if (event.key === \"Enter\") {\n onPaginationChange({\n pageIndex: parseInt(event.currentTarget.value),\n pageSize: rowsPerPage,\n });\n }\n },\n [rowsPerPage, onPaginationChange],\n );\n\n const handleRowsPerPageSubmit = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n if (event.key === \"Enter\") {\n onPaginationChange({\n pageIndex: page,\n pageSize: parseInt(event.currentTarget.value),\n });\n }\n },\n [page, onPaginationChange],\n );\n\n const setPageFromEvent = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const value = maxPageIndex\n ? Math.min(parseInt(event.target.value), maxPageIndex)\n : parseInt(event.target.value);\n setPage(value);\n },\n [setPage, maxPageIndex],\n );\n\n const setRowsPerPageFromEvent = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const value = maxPageSize\n ? Math.min(parseInt(event.target.value), maxPageSize)\n : parseInt(event.target.value);\n setRowsPerPage(value);\n },\n [setRowsPerPage, maxPageSize],\n );\n\n const handleLoadMore = useCallback(() => {\n onPaginationChange({\n pageIndex: 1,\n pageSize: rowsPerPage + initialRowsPerPage.current,\n });\n }, [rowsPerPage, onPaginationChange]);\n\n const handleNextButton = useCallback(() => {\n onPaginationChange({ pageIndex: page + 1, pageSize: rowsPerPage });\n }, [onPaginationChange, page, rowsPerPage]);\n\n const handlePreviousButton = useCallback(() => {\n onPaginationChange({ pageIndex: page - 1, pageSize: rowsPerPage });\n }, [onPaginationChange, page, rowsPerPage]);\n\n const loadMoreIsDisabled = useMemo(() => {\n return isMoreDisabled || (totalRows ? rowsPerPage >= totalRows : false);\n }, [isMoreDisabled, rowsPerPage, totalRows]);\n\n const nextButtonDisabled = useMemo(\n () =>\n isMoreDisabled ||\n (totalRows ? lastRow >= totalRows : false) ||\n isDisabled,\n [isMoreDisabled, totalRows, lastRow, isDisabled],\n );\n\n const previousButtonDisabled = useMemo(\n () => pageIndex <= 1 || isDisabled,\n [pageIndex, isDisabled],\n );\n\n const rowsPerPageInputProps = useMemo(\n () => ({\n \"aria-label\": rowsPerPageLabel,\n max: maxPageSize || totalRows,\n }),\n [maxPageSize, rowsPerPageLabel, totalRows],\n );\n\n const currentPageInputProps = useMemo(\n () => ({\n \"aria-label\": currentPageLabel,\n max: maxPageIndex,\n }),\n [currentPageLabel, maxPageIndex],\n );\n\n return variant === \"paged\" ? (\n <PaginationContainer>\n <PaginationSegment odysseyDesignTokens={odysseyDesignTokens}>\n <Box>\n <Paragraph component=\"span\" color=\"textSecondary\">\n {rowsPerPageLabel}\n </Paragraph>\n <PaginationInput\n odysseyDesignTokens={odysseyDesignTokens}\n type=\"number\"\n value={rowsPerPage}\n onChange={setRowsPerPageFromEvent}\n onBlur={handlePaginationChange}\n onKeyDown={handleRowsPerPageSubmit}\n disabled={isDisabled}\n inputProps={rowsPerPageInputProps}\n />\n </Box>\n <Paragraph component=\"span\" color=\"textSecondary\">\n {totalRowsLabel}\n </Paragraph>\n </PaginationSegment>\n\n <PaginationSegment odysseyDesignTokens={odysseyDesignTokens}>\n {totalRows && (\n <Box>\n <Paragraph component=\"span\" color=\"textSecondary\">\n {currentPageLabel}\n </Paragraph>\n <PaginationInput\n odysseyDesignTokens={odysseyDesignTokens}\n type=\"number\"\n value={page}\n onChange={setPageFromEvent}\n onBlur={handlePaginationChange}\n onKeyDown={handlePageSubmit}\n disabled={isDisabled}\n inputProps={currentPageInputProps}\n />\n </Box>\n )}\n <PaginationButtonContainer>\n <Button\n startIcon={<ArrowLeftIcon />}\n variant=\"floating\"\n size=\"small\"\n ariaLabel={previousLabel}\n onClick={handlePreviousButton}\n isDisabled={previousButtonDisabled}\n />\n <Button\n endIcon={<ArrowRightIcon />}\n variant=\"floating\"\n size=\"small\"\n ariaLabel={nextLabel}\n onClick={handleNextButton}\n isDisabled={nextButtonDisabled}\n />\n </PaginationButtonContainer>\n </PaginationSegment>\n </PaginationContainer>\n ) : (\n <Button\n variant=\"secondary\"\n label={loadMoreLabel}\n onClick={handleLoadMore}\n isDisabled={loadMoreIsDisabled}\n />\n );\n};\n\nconst MemoizedPagination = memo(Pagination);\nMemoizedPagination.displayName = \"Pagination\";\n\nexport { MemoizedPagination as Pagination };\n"],"mappings":"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"}
|
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import { useTranslation } from "react-i18next";
|
|
14
|
+
import { useMemo } from "react";
|
|
14
15
|
export const usePagination = ({
|
|
16
|
+
currentRowsCount,
|
|
15
17
|
pageIndex,
|
|
16
18
|
pageSize,
|
|
17
19
|
totalRows
|
|
@@ -19,33 +21,22 @@ export const usePagination = ({
|
|
|
19
21
|
const {
|
|
20
22
|
t
|
|
21
23
|
} = useTranslation();
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
firstRow,
|
|
27
|
-
lastRow: totalRows,
|
|
28
|
-
totalRowsLabel: totalRows ? t("pagination.rowswithtotal", {
|
|
29
|
-
firstRow,
|
|
30
|
-
lastRow,
|
|
31
|
-
totalRows
|
|
32
|
-
}) : t("pagination.rowswithouttotal", {
|
|
33
|
-
firstRow,
|
|
34
|
-
lastRow
|
|
35
|
-
})
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
return {
|
|
39
|
-
firstRow,
|
|
40
|
-
lastRow,
|
|
41
|
-
totalRowsLabel: totalRows ? t("pagination.rowswithtotal", {
|
|
24
|
+
return useMemo(() => {
|
|
25
|
+
const firstRow = pageSize * (pageIndex - 1) + 1;
|
|
26
|
+
const lastRow = firstRow + (currentRowsCount - 1);
|
|
27
|
+
const totalRowsLabel = totalRows ? t("pagination.rowswithtotal", {
|
|
42
28
|
firstRow,
|
|
43
29
|
lastRow,
|
|
44
30
|
totalRows
|
|
45
31
|
}) : t("pagination.rowswithouttotal", {
|
|
46
32
|
firstRow,
|
|
47
33
|
lastRow
|
|
48
|
-
})
|
|
49
|
-
|
|
34
|
+
});
|
|
35
|
+
return {
|
|
36
|
+
firstRow,
|
|
37
|
+
lastRow,
|
|
38
|
+
totalRowsLabel
|
|
39
|
+
};
|
|
40
|
+
}, [currentRowsCount, pageIndex, pageSize, totalRows, t]);
|
|
50
41
|
};
|
|
51
42
|
//# sourceMappingURL=usePagination.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePagination.js","names":["useTranslation","usePagination","pageIndex","pageSize","totalRows","t","firstRow","lastRow","totalRowsLabel"],"sources":["../../src/Pagination/usePagination.ts"],"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 { useTranslation } from \"react-i18next\";\n\ntype UsePaginationType = {\n pageIndex: number;\n pageSize: number;\n totalRows?: number;\n};\n\nexport const usePagination = ({\n pageIndex,\n pageSize,\n totalRows,\n}: UsePaginationType) => {\n const { t } = useTranslation();\n\n const firstRow = pageSize * (pageIndex - 1) + 1;\n
|
|
1
|
+
{"version":3,"file":"usePagination.js","names":["useTranslation","useMemo","usePagination","currentRowsCount","pageIndex","pageSize","totalRows","t","firstRow","lastRow","totalRowsLabel"],"sources":["../../src/Pagination/usePagination.ts"],"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 { useTranslation } from \"react-i18next\";\nimport { useMemo } from \"react\";\n\ntype UsePaginationType = {\n currentRowsCount: number;\n pageIndex: number;\n pageSize: number;\n totalRows?: number;\n};\n\nexport const usePagination = ({\n currentRowsCount,\n pageIndex,\n pageSize,\n totalRows,\n}: UsePaginationType) => {\n const { t } = useTranslation();\n\n return useMemo(() => {\n const firstRow = pageSize * (pageIndex - 1) + 1;\n const lastRow = firstRow + (currentRowsCount - 1);\n\n const totalRowsLabel = totalRows\n ? t(\"pagination.rowswithtotal\", { firstRow, lastRow, totalRows })\n : t(\"pagination.rowswithouttotal\", { firstRow, lastRow });\n\n return {\n firstRow,\n lastRow,\n totalRowsLabel,\n };\n }, [currentRowsCount, pageIndex, pageSize, totalRows, t]);\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,cAAc,QAAQ,eAAe;AAC9C,SAASC,OAAO,QAAQ,OAAO;AAS/B,OAAO,MAAMC,aAAa,GAAGA,CAAC;EAC5BC,gBAAgB;EAChBC,SAAS;EACTC,QAAQ;EACRC;AACiB,CAAC,KAAK;EACvB,MAAM;IAAEC;EAAE,CAAC,GAAGP,cAAc,CAAC,CAAC;EAE9B,OAAOC,OAAO,CAAC,MAAM;IACnB,MAAMO,QAAQ,GAAGH,QAAQ,IAAID,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC;IAC/C,MAAMK,OAAO,GAAGD,QAAQ,IAAIL,gBAAgB,GAAG,CAAC,CAAC;IAEjD,MAAMO,cAAc,GAAGJ,SAAS,GAC5BC,CAAC,CAAC,0BAA0B,EAAE;MAAEC,QAAQ;MAAEC,OAAO;MAAEH;IAAU,CAAC,CAAC,GAC/DC,CAAC,CAAC,6BAA6B,EAAE;MAAEC,QAAQ;MAAEC;IAAQ,CAAC,CAAC;IAE3D,OAAO;MACLD,QAAQ;MACRC,OAAO;MACPC;IACF,CAAC;EACH,CAAC,EAAE,CAACP,gBAAgB,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,CAAC,CAAC,CAAC;AAC3D,CAAC"}
|
package/dist/assertEnv.js
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
12
12
|
*/
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.default = assertEnv;
|
|
14
15
|
function assertEnv(env) {
|
|
15
16
|
const result = {
|
|
16
17
|
isTest: false,
|
|
@@ -29,4 +30,3 @@ function assertEnv(env) {
|
|
|
29
30
|
Valid environments are 'test', 'development' and 'production'`.replace(/\n\s+/, "\n"));
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
|
-
exports.default = assertEnv;
|
package/dist/index.scss
CHANGED
|
@@ -31,8 +31,11 @@ const DataStack = ({
|
|
|
31
31
|
isEmpty,
|
|
32
32
|
isLoading,
|
|
33
33
|
isNoResults,
|
|
34
|
+
isPaginationMoreDisabled,
|
|
34
35
|
isRowReorderingDisabled,
|
|
35
36
|
maxGridColumns,
|
|
37
|
+
maxPages,
|
|
38
|
+
maxResultsPerPage,
|
|
36
39
|
noResultsPlaceholder,
|
|
37
40
|
onChangeRowSelection,
|
|
38
41
|
paginationType,
|
|
@@ -63,7 +66,10 @@ const DataStack = ({
|
|
|
63
66
|
isEmpty: isEmpty,
|
|
64
67
|
isLoading: isLoading,
|
|
65
68
|
isNoResults: isNoResults,
|
|
69
|
+
isPaginationMoreDisabled: isPaginationMoreDisabled,
|
|
66
70
|
isRowReorderingDisabled: isRowReorderingDisabled,
|
|
71
|
+
maxPages: maxPages,
|
|
72
|
+
maxResultsPerPage: maxResultsPerPage,
|
|
67
73
|
noResultsPlaceholder: noResultsPlaceholder,
|
|
68
74
|
onChangeRowSelection: onChangeRowSelection,
|
|
69
75
|
paginationType: paginationType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataStack.js","names":["memo","useMemo","DataView","jsx","_jsx","DataStack","availableLayouts","bulkActionMenuItems","cardProps","currentPage","emptyPlaceholder","errorMessage","filters","getData","hasFilters","hasPagination","hasRowReordering","hasRowSelection","hasSearch","hasSearchSubmitButton","isEmpty","isLoading","isNoResults","isRowReorderingDisabled","maxGridColumns","noResultsPlaceholder","onChangeRowSelection","paginationType","resultsPerPage","rowActionMenuItems","searchDelayTime","totalRows","stackOptions","MemoizedDataStack","displayName"],"sources":["../../../src/labs/DataComponents/DataStack.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo, useMemo } from \"react\";\n\nimport { availableStackLayouts } from \"./constants\";\nimport {\n AvailableStackLayouts,\n StackProps,\n UniversalProps,\n} from \"./componentTypes\";\nimport { DataView } from \"./DataView\";\n\nexport type DataStackProps = UniversalProps &\n StackProps & {\n initialLayout?: (typeof availableStackLayouts)[number];\n availableLayouts?: AvailableStackLayouts;\n };\n\nconst DataStack = ({\n availableLayouts,\n bulkActionMenuItems,\n cardProps,\n currentPage,\n emptyPlaceholder,\n errorMessage,\n filters,\n getData,\n hasFilters,\n hasPagination,\n hasRowReordering,\n hasRowSelection,\n hasSearch,\n hasSearchSubmitButton,\n isEmpty,\n isLoading,\n isNoResults,\n isRowReorderingDisabled,\n maxGridColumns,\n noResultsPlaceholder,\n onChangeRowSelection,\n paginationType,\n resultsPerPage,\n rowActionMenuItems,\n searchDelayTime,\n totalRows,\n}: DataStackProps) => {\n const stackOptions = useMemo(\n () => ({\n cardProps,\n maxGridColumns,\n rowActionMenuItems,\n }),\n [cardProps, maxGridColumns, rowActionMenuItems],\n );\n\n return (\n <DataView\n availableLayouts={availableLayouts}\n bulkActionMenuItems={bulkActionMenuItems}\n currentPage={currentPage}\n emptyPlaceholder={emptyPlaceholder}\n errorMessage={errorMessage}\n filters={filters}\n getData={getData}\n hasFilters={hasFilters}\n hasPagination={hasPagination}\n hasRowReordering={hasRowReordering}\n hasSearch={hasSearch}\n hasSearchSubmitButton={hasSearchSubmitButton}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n noResultsPlaceholder={noResultsPlaceholder}\n onChangeRowSelection={onChangeRowSelection}\n paginationType={paginationType}\n resultsPerPage={resultsPerPage}\n searchDelayTime={searchDelayTime}\n stackOptions={stackOptions}\n totalRows={totalRows}\n />\n );\n};\n\nconst MemoizedDataStack = memo(DataStack);\nMemoizedDataStack.displayName = \"DataStack\";\n\nexport { MemoizedDataStack as DataStack };\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,OAAO,QAAQ,OAAO;AAAC,SAQ7BC,QAAQ;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAQjB,MAAMC,SAAS,GAAGA,CAAC;EACjBC,gBAAgB;EAChBC,mBAAmB;EACnBC,SAAS;EACTC,WAAW;EACXC,gBAAgB;EAChBC,YAAY;EACZC,OAAO;EACPC,OAAO;EACPC,UAAU;EACVC,aAAa;EACbC,gBAAgB;EAChBC,eAAe;EACfC,SAAS;EACTC,qBAAqB;EACrBC,OAAO;EACPC,SAAS;EACTC,WAAW;EACXC,uBAAuB;EACvBC,cAAc;EACdC,oBAAoB;EACpBC,oBAAoB;EACpBC,cAAc;EACdC,cAAc;EACdC,kBAAkB;EAClBC,eAAe;EACfC;AACc,CAAC,KAAK;EACpB,MAAMC,YAAY,
|
|
1
|
+
{"version":3,"file":"DataStack.js","names":["memo","useMemo","DataView","jsx","_jsx","DataStack","availableLayouts","bulkActionMenuItems","cardProps","currentPage","emptyPlaceholder","errorMessage","filters","getData","hasFilters","hasPagination","hasRowReordering","hasRowSelection","hasSearch","hasSearchSubmitButton","isEmpty","isLoading","isNoResults","isPaginationMoreDisabled","isRowReorderingDisabled","maxGridColumns","maxPages","maxResultsPerPage","noResultsPlaceholder","onChangeRowSelection","paginationType","resultsPerPage","rowActionMenuItems","searchDelayTime","totalRows","stackOptions","MemoizedDataStack","displayName"],"sources":["../../../src/labs/DataComponents/DataStack.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo, useMemo } from \"react\";\n\nimport { availableStackLayouts } from \"./constants\";\nimport {\n AvailableStackLayouts,\n StackProps,\n UniversalProps,\n} from \"./componentTypes\";\nimport { DataView } from \"./DataView\";\n\nexport type DataStackProps = UniversalProps &\n StackProps & {\n initialLayout?: (typeof availableStackLayouts)[number];\n availableLayouts?: AvailableStackLayouts;\n };\n\nconst DataStack = ({\n availableLayouts,\n bulkActionMenuItems,\n cardProps,\n currentPage,\n emptyPlaceholder,\n errorMessage,\n filters,\n getData,\n hasFilters,\n hasPagination,\n hasRowReordering,\n hasRowSelection,\n hasSearch,\n hasSearchSubmitButton,\n isEmpty,\n isLoading,\n isNoResults,\n isPaginationMoreDisabled,\n isRowReorderingDisabled,\n maxGridColumns,\n maxPages,\n maxResultsPerPage,\n noResultsPlaceholder,\n onChangeRowSelection,\n paginationType,\n resultsPerPage,\n rowActionMenuItems,\n searchDelayTime,\n totalRows,\n}: DataStackProps) => {\n const stackOptions = useMemo(\n () => ({\n cardProps,\n maxGridColumns,\n rowActionMenuItems,\n }),\n [cardProps, maxGridColumns, rowActionMenuItems],\n );\n\n return (\n <DataView\n availableLayouts={availableLayouts}\n bulkActionMenuItems={bulkActionMenuItems}\n currentPage={currentPage}\n emptyPlaceholder={emptyPlaceholder}\n errorMessage={errorMessage}\n filters={filters}\n getData={getData}\n hasFilters={hasFilters}\n hasPagination={hasPagination}\n hasRowReordering={hasRowReordering}\n hasSearch={hasSearch}\n hasSearchSubmitButton={hasSearchSubmitButton}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isPaginationMoreDisabled={isPaginationMoreDisabled}\n isRowReorderingDisabled={isRowReorderingDisabled}\n maxPages={maxPages}\n maxResultsPerPage={maxResultsPerPage}\n noResultsPlaceholder={noResultsPlaceholder}\n onChangeRowSelection={onChangeRowSelection}\n paginationType={paginationType}\n resultsPerPage={resultsPerPage}\n searchDelayTime={searchDelayTime}\n stackOptions={stackOptions}\n totalRows={totalRows}\n />\n );\n};\n\nconst MemoizedDataStack = memo(DataStack);\nMemoizedDataStack.displayName = \"DataStack\";\n\nexport { MemoizedDataStack as DataStack };\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,OAAO,QAAQ,OAAO;AAAC,SAQ7BC,QAAQ;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAQjB,MAAMC,SAAS,GAAGA,CAAC;EACjBC,gBAAgB;EAChBC,mBAAmB;EACnBC,SAAS;EACTC,WAAW;EACXC,gBAAgB;EAChBC,YAAY;EACZC,OAAO;EACPC,OAAO;EACPC,UAAU;EACVC,aAAa;EACbC,gBAAgB;EAChBC,eAAe;EACfC,SAAS;EACTC,qBAAqB;EACrBC,OAAO;EACPC,SAAS;EACTC,WAAW;EACXC,wBAAwB;EACxBC,uBAAuB;EACvBC,cAAc;EACdC,QAAQ;EACRC,iBAAiB;EACjBC,oBAAoB;EACpBC,oBAAoB;EACpBC,cAAc;EACdC,cAAc;EACdC,kBAAkB;EAClBC,eAAe;EACfC;AACc,CAAC,KAAK;EACpB,MAAMC,YAAY,GAAGlC,OAAO,CAC1B,OAAO;IACLO,SAAS;IACTiB,cAAc;IACdO;EACF,CAAC,CAAC,EACF,CAACxB,SAAS,EAAEiB,cAAc,EAAEO,kBAAkB,CAChD,CAAC;EAED,OACE5B,IAAA,CAACF,QAAQ;IACPI,gBAAgB,EAAEA,gBAAiB;IACnCC,mBAAmB,EAAEA,mBAAoB;IACzCE,WAAW,EAAEA,WAAY;IACzBC,gBAAgB,EAAEA,gBAAiB;IACnCC,YAAY,EAAEA,YAAa;IAC3BC,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBC,UAAU,EAAEA,UAAW;IACvBC,aAAa,EAAEA,aAAc;IAC7BC,gBAAgB,EAAEA,gBAAiB;IACnCE,SAAS,EAAEA,SAAU;IACrBC,qBAAqB,EAAEA,qBAAsB;IAC7CF,eAAe,EAAEA,eAAgB;IACjCG,OAAO,EAAEA,OAAQ;IACjBC,SAAS,EAAEA,SAAU;IACrBC,WAAW,EAAEA,WAAY;IACzBC,wBAAwB,EAAEA,wBAAyB;IACnDC,uBAAuB,EAAEA,uBAAwB;IACjDE,QAAQ,EAAEA,QAAS;IACnBC,iBAAiB,EAAEA,iBAAkB;IACrCC,oBAAoB,EAAEA,oBAAqB;IAC3CC,oBAAoB,EAAEA,oBAAqB;IAC3CC,cAAc,EAAEA,cAAe;IAC/BC,cAAc,EAAEA,cAAe;IAC/BE,eAAe,EAAEA,eAAgB;IACjCE,YAAY,EAAEA,YAAa;IAC3BD,SAAS,EAAEA;EAAU,CACtB,CAAC;AAEN,CAAC;AAED,MAAME,iBAAiB,GAAGpC,IAAI,CAACK,SAAS,CAAC;AACzC+B,iBAAiB,CAACC,WAAW,GAAG,WAAW;AAE3C,SAASD,iBAAiB,IAAI/B,SAAS"}
|
|
@@ -35,7 +35,10 @@ const DataTable = ({
|
|
|
35
35
|
isLoading,
|
|
36
36
|
isEmpty,
|
|
37
37
|
isNoResults,
|
|
38
|
+
isPaginationMoreDisabled,
|
|
38
39
|
isRowReorderingDisabled,
|
|
40
|
+
maxResultsPerPage,
|
|
41
|
+
maxPages,
|
|
39
42
|
noResultsPlaceholder,
|
|
40
43
|
onChangeRowSelection,
|
|
41
44
|
paginationType,
|
|
@@ -74,7 +77,10 @@ const DataTable = ({
|
|
|
74
77
|
isEmpty: isEmpty,
|
|
75
78
|
isLoading: isLoading,
|
|
76
79
|
isNoResults: isNoResults,
|
|
80
|
+
isPaginationMoreDisabled: isPaginationMoreDisabled,
|
|
77
81
|
isRowReorderingDisabled: isRowReorderingDisabled,
|
|
82
|
+
maxPages: maxPages,
|
|
83
|
+
maxResultsPerPage: maxResultsPerPage,
|
|
78
84
|
noResultsPlaceholder: noResultsPlaceholder,
|
|
79
85
|
onChangeRowSelection: onChangeRowSelection,
|
|
80
86
|
paginationType: paginationType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.js","names":["memo","useMemo","DataView","jsx","_jsx","DataTable","bulkActionMenuItems","columns","currentPage","emptyPlaceholder","errorMessage","filters","getData","hasChangeableDensity","hasColumnResizing","hasColumnVisibility","initialDensity","hasFilters","hasPagination","hasRowReordering","hasRowSelection","hasSearch","hasSearchSubmitButton","hasSorting","isLoading","isEmpty","isNoResults","isRowReorderingDisabled","noResultsPlaceholder","onChangeRowSelection","paginationType","renderDetailPanel","resultsPerPage","rowActionButtons","rowActionMenuItems","searchDelayTime","totalRows","tableOptions","availableLayouts","MemoizedDataTable","displayName"],"sources":["../../../src/labs/DataComponents/DataTable.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo, useMemo } from \"react\";\n\nimport { DataView } from \"./DataView\";\nimport { TableProps, UniversalProps } from \"./componentTypes\";\n\nexport type DataTableProps = UniversalProps & TableProps;\n\nconst DataTable = ({\n bulkActionMenuItems,\n columns,\n currentPage,\n emptyPlaceholder,\n errorMessage,\n filters,\n getData,\n hasChangeableDensity,\n hasColumnResizing,\n hasColumnVisibility,\n initialDensity,\n hasFilters,\n hasPagination,\n hasRowReordering,\n hasRowSelection,\n hasSearch,\n hasSearchSubmitButton,\n hasSorting,\n isLoading,\n isEmpty,\n isNoResults,\n isRowReorderingDisabled,\n noResultsPlaceholder,\n onChangeRowSelection,\n paginationType,\n renderDetailPanel,\n resultsPerPage,\n rowActionButtons,\n rowActionMenuItems,\n searchDelayTime,\n totalRows,\n}: DataTableProps) => {\n const tableOptions = useMemo(\n () => ({\n columns,\n hasChangeableDensity,\n hasColumnResizing,\n hasColumnVisibility,\n hasSorting,\n initialDensity,\n renderDetailPanel,\n rowActionButtons,\n rowActionMenuItems,\n }),\n [\n columns,\n hasChangeableDensity,\n hasColumnResizing,\n hasColumnVisibility,\n hasSorting,\n initialDensity,\n renderDetailPanel,\n rowActionButtons,\n rowActionMenuItems,\n ],\n );\n\n return (\n <DataView\n availableLayouts={[\"table\"]}\n bulkActionMenuItems={bulkActionMenuItems}\n currentPage={currentPage}\n emptyPlaceholder={emptyPlaceholder}\n errorMessage={errorMessage}\n filters={filters}\n getData={getData}\n hasFilters={hasFilters}\n hasPagination={hasPagination}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n hasSearch={hasSearch}\n hasSearchSubmitButton={hasSearchSubmitButton}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n noResultsPlaceholder={noResultsPlaceholder}\n onChangeRowSelection={onChangeRowSelection}\n paginationType={paginationType}\n resultsPerPage={resultsPerPage}\n searchDelayTime={searchDelayTime}\n tableOptions={tableOptions}\n totalRows={totalRows}\n />\n );\n};\n\nconst MemoizedDataTable = memo(DataTable);\nMemoizedDataTable.displayName = \"DataTable\";\n\nexport { MemoizedDataTable as DataTable };\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,OAAO,QAAQ,OAAO;AAAC,SAE7BC,QAAQ;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAKjB,MAAMC,SAAS,GAAGA,CAAC;EACjBC,mBAAmB;EACnBC,OAAO;EACPC,WAAW;EACXC,gBAAgB;EAChBC,YAAY;EACZC,OAAO;EACPC,OAAO;EACPC,oBAAoB;EACpBC,iBAAiB;EACjBC,mBAAmB;EACnBC,cAAc;EACdC,UAAU;EACVC,aAAa;EACbC,gBAAgB;EAChBC,eAAe;EACfC,SAAS;EACTC,qBAAqB;EACrBC,UAAU;EACVC,SAAS;EACTC,OAAO;EACPC,WAAW;EACXC,uBAAuB;EACvBC,oBAAoB;EACpBC,oBAAoB;EACpBC,cAAc;EACdC,iBAAiB;EACjBC,cAAc;EACdC,gBAAgB;EAChBC,kBAAkB;EAClBC,eAAe;EACfC;AACc,CAAC,KAAK;EACpB,MAAMC,YAAY,
|
|
1
|
+
{"version":3,"file":"DataTable.js","names":["memo","useMemo","DataView","jsx","_jsx","DataTable","bulkActionMenuItems","columns","currentPage","emptyPlaceholder","errorMessage","filters","getData","hasChangeableDensity","hasColumnResizing","hasColumnVisibility","initialDensity","hasFilters","hasPagination","hasRowReordering","hasRowSelection","hasSearch","hasSearchSubmitButton","hasSorting","isLoading","isEmpty","isNoResults","isPaginationMoreDisabled","isRowReorderingDisabled","maxResultsPerPage","maxPages","noResultsPlaceholder","onChangeRowSelection","paginationType","renderDetailPanel","resultsPerPage","rowActionButtons","rowActionMenuItems","searchDelayTime","totalRows","tableOptions","availableLayouts","MemoizedDataTable","displayName"],"sources":["../../../src/labs/DataComponents/DataTable.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo, useMemo } from \"react\";\n\nimport { DataView } from \"./DataView\";\nimport { TableProps, UniversalProps } from \"./componentTypes\";\n\nexport type DataTableProps = UniversalProps & TableProps;\n\nconst DataTable = ({\n bulkActionMenuItems,\n columns,\n currentPage,\n emptyPlaceholder,\n errorMessage,\n filters,\n getData,\n hasChangeableDensity,\n hasColumnResizing,\n hasColumnVisibility,\n initialDensity,\n hasFilters,\n hasPagination,\n hasRowReordering,\n hasRowSelection,\n hasSearch,\n hasSearchSubmitButton,\n hasSorting,\n isLoading,\n isEmpty,\n isNoResults,\n isPaginationMoreDisabled,\n isRowReorderingDisabled,\n maxResultsPerPage,\n maxPages,\n noResultsPlaceholder,\n onChangeRowSelection,\n paginationType,\n renderDetailPanel,\n resultsPerPage,\n rowActionButtons,\n rowActionMenuItems,\n searchDelayTime,\n totalRows,\n}: DataTableProps) => {\n const tableOptions = useMemo(\n () => ({\n columns,\n hasChangeableDensity,\n hasColumnResizing,\n hasColumnVisibility,\n hasSorting,\n initialDensity,\n renderDetailPanel,\n rowActionButtons,\n rowActionMenuItems,\n }),\n [\n columns,\n hasChangeableDensity,\n hasColumnResizing,\n hasColumnVisibility,\n hasSorting,\n initialDensity,\n renderDetailPanel,\n rowActionButtons,\n rowActionMenuItems,\n ],\n );\n\n return (\n <DataView\n availableLayouts={[\"table\"]}\n bulkActionMenuItems={bulkActionMenuItems}\n currentPage={currentPage}\n emptyPlaceholder={emptyPlaceholder}\n errorMessage={errorMessage}\n filters={filters}\n getData={getData}\n hasFilters={hasFilters}\n hasPagination={hasPagination}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n hasSearch={hasSearch}\n hasSearchSubmitButton={hasSearchSubmitButton}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isPaginationMoreDisabled={isPaginationMoreDisabled}\n isRowReorderingDisabled={isRowReorderingDisabled}\n maxPages={maxPages}\n maxResultsPerPage={maxResultsPerPage}\n noResultsPlaceholder={noResultsPlaceholder}\n onChangeRowSelection={onChangeRowSelection}\n paginationType={paginationType}\n resultsPerPage={resultsPerPage}\n searchDelayTime={searchDelayTime}\n tableOptions={tableOptions}\n totalRows={totalRows}\n />\n );\n};\n\nconst MemoizedDataTable = memo(DataTable);\nMemoizedDataTable.displayName = \"DataTable\";\n\nexport { MemoizedDataTable as DataTable };\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,OAAO,QAAQ,OAAO;AAAC,SAE7BC,QAAQ;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAKjB,MAAMC,SAAS,GAAGA,CAAC;EACjBC,mBAAmB;EACnBC,OAAO;EACPC,WAAW;EACXC,gBAAgB;EAChBC,YAAY;EACZC,OAAO;EACPC,OAAO;EACPC,oBAAoB;EACpBC,iBAAiB;EACjBC,mBAAmB;EACnBC,cAAc;EACdC,UAAU;EACVC,aAAa;EACbC,gBAAgB;EAChBC,eAAe;EACfC,SAAS;EACTC,qBAAqB;EACrBC,UAAU;EACVC,SAAS;EACTC,OAAO;EACPC,WAAW;EACXC,wBAAwB;EACxBC,uBAAuB;EACvBC,iBAAiB;EACjBC,QAAQ;EACRC,oBAAoB;EACpBC,oBAAoB;EACpBC,cAAc;EACdC,iBAAiB;EACjBC,cAAc;EACdC,gBAAgB;EAChBC,kBAAkB;EAClBC,eAAe;EACfC;AACc,CAAC,KAAK;EACpB,MAAMC,YAAY,GAAGvC,OAAO,CAC1B,OAAO;IACLM,OAAO;IACPM,oBAAoB;IACpBC,iBAAiB;IACjBC,mBAAmB;IACnBQ,UAAU;IACVP,cAAc;IACdkB,iBAAiB;IACjBE,gBAAgB;IAChBC;EACF,CAAC,CAAC,EACF,CACE9B,OAAO,EACPM,oBAAoB,EACpBC,iBAAiB,EACjBC,mBAAmB,EACnBQ,UAAU,EACVP,cAAc,EACdkB,iBAAiB,EACjBE,gBAAgB,EAChBC,kBAAkB,CAEtB,CAAC;EAED,OACEjC,IAAA,CAACF,QAAQ;IACPuC,gBAAgB,EAAE,CAAC,OAAO,CAAE;IAC5BnC,mBAAmB,EAAEA,mBAAoB;IACzCE,WAAW,EAAEA,WAAY;IACzBC,gBAAgB,EAAEA,gBAAiB;IACnCC,YAAY,EAAEA,YAAa;IAC3BC,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBK,UAAU,EAAEA,UAAW;IACvBC,aAAa,EAAEA,aAAc;IAC7BC,gBAAgB,EAAEA,gBAAiB;IACnCC,eAAe,EAAEA,eAAgB;IACjCC,SAAS,EAAEA,SAAU;IACrBC,qBAAqB,EAAEA,qBAAsB;IAC7CG,OAAO,EAAEA,OAAQ;IACjBD,SAAS,EAAEA,SAAU;IACrBE,WAAW,EAAEA,WAAY;IACzBC,wBAAwB,EAAEA,wBAAyB;IACnDC,uBAAuB,EAAEA,uBAAwB;IACjDE,QAAQ,EAAEA,QAAS;IACnBD,iBAAiB,EAAEA,iBAAkB;IACrCE,oBAAoB,EAAEA,oBAAqB;IAC3CC,oBAAoB,EAAEA,oBAAqB;IAC3CC,cAAc,EAAEA,cAAe;IAC/BE,cAAc,EAAEA,cAAe;IAC/BG,eAAe,EAAEA,eAAgB;IACjCE,YAAY,EAAEA,YAAa;IAC3BD,SAAS,EAAEA;EAAU,CACtB,CAAC;AAEN,CAAC;AAED,MAAMG,iBAAiB,GAAG1C,IAAI,CAACK,SAAS,CAAC;AACzCqC,iBAAiB,CAACC,WAAW,GAAG,WAAW;AAE3C,SAASD,iBAAiB,IAAIrC,SAAS"}
|
|
@@ -67,6 +67,7 @@ const DataView = ({
|
|
|
67
67
|
isEmpty: isEmptyProp,
|
|
68
68
|
isLoading: isLoadingProp,
|
|
69
69
|
isNoResults: isNoResultsProp,
|
|
70
|
+
isPaginationMoreDisabled,
|
|
70
71
|
isRowReorderingDisabled,
|
|
71
72
|
noResultsPlaceholder,
|
|
72
73
|
onChangeRowSelection,
|
|
@@ -76,7 +77,9 @@ const DataView = ({
|
|
|
76
77
|
searchDelayTime,
|
|
77
78
|
stackOptions,
|
|
78
79
|
tableOptions,
|
|
79
|
-
totalRows
|
|
80
|
+
totalRows,
|
|
81
|
+
maxPages,
|
|
82
|
+
maxResultsPerPage
|
|
80
83
|
}) => {
|
|
81
84
|
const odysseyDesignTokens = useOdysseyDesignTokens();
|
|
82
85
|
const {
|
|
@@ -129,6 +132,12 @@ const DataView = ({
|
|
|
129
132
|
pageSize: resultsPerPage
|
|
130
133
|
});
|
|
131
134
|
}, [currentPage, resultsPerPage]);
|
|
135
|
+
useEffect(() => {
|
|
136
|
+
setPagination(prev => ({
|
|
137
|
+
pageIndex: 1,
|
|
138
|
+
pageSize: prev.pageSize
|
|
139
|
+
}));
|
|
140
|
+
}, [filters, search]);
|
|
132
141
|
useEffect(() => {
|
|
133
142
|
fetchData({
|
|
134
143
|
dataQueryParams,
|
|
@@ -178,6 +187,7 @@ const DataView = ({
|
|
|
178
187
|
const {
|
|
179
188
|
lastRow: lastRowOnPage
|
|
180
189
|
} = usePagination({
|
|
190
|
+
currentRowsCount: data.length,
|
|
181
191
|
pageIndex: pagination.pageIndex,
|
|
182
192
|
pageSize: pagination.pageSize,
|
|
183
193
|
totalRows
|
|
@@ -259,8 +269,11 @@ const DataView = ({
|
|
|
259
269
|
}), hasPagination && _jsx(Pagination, {
|
|
260
270
|
currentPageLabel: t("pagination.page"),
|
|
261
271
|
isDisabled: isEmpty,
|
|
272
|
+
isMoreDisabled: isPaginationMoreDisabled,
|
|
262
273
|
lastRow: lastRowOnPage,
|
|
263
274
|
loadMoreLabel: t("pagination.loadmore"),
|
|
275
|
+
maxPageIndex: maxPages,
|
|
276
|
+
maxPageSize: maxResultsPerPage,
|
|
264
277
|
nextLabel: t("pagination.next"),
|
|
265
278
|
onPaginationChange: setPagination,
|
|
266
279
|
pageIndex: pagination.pageIndex,
|
|
@@ -268,6 +281,7 @@ const DataView = ({
|
|
|
268
281
|
previousLabel: t("pagination.previous"),
|
|
269
282
|
rowsPerPageLabel: t("pagination.rowsperpage"),
|
|
270
283
|
totalRows: totalRows,
|
|
284
|
+
currentRowsCount: data.length,
|
|
271
285
|
variant: paginationType
|
|
272
286
|
})]
|
|
273
287
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataView.js","names":["memo","useEffect","useMemo","useState","useTranslation","availableLayouts","allAvailableLayouts","densityValues","Box","BulkActionsMenu","Callout","DataFilters","EmptyState","fetchData","LayoutSwitcher","TableSettings","Pagination","usePagination","TableContent","StackContent","useFilterConversion","useRowReordering","useOdysseyDesignTokens","styled","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DataViewContainer","shouldForwardProp","prop","odysseyDesignTokens","display","flexDirection","gap","Spacing4","BulkActionsContainer","justifyContent","AdditionalActionsContainer","DataView","bulkActionMenuItems","currentPage","emptyPlaceholder","errorMessage","errorMessageProp","filters","filtersProp","getData","getRowId","getRowIdProp","hasFilters","hasPagination","hasSearch","hasSearchSubmitButton","hasRowReordering","hasRowSelection","initialLayout","isEmpty","isEmptyProp","isLoading","isLoadingProp","isNoResults","isNoResultsProp","isRowReorderingDisabled","noResultsPlaceholder","onChangeRowSelection","onReorderRows","paginationType","resultsPerPage","searchDelayTime","stackOptions","tableOptions","totalRows","t","currentLayout","setCurrentLayout","data","setData","setIsLoading","setIsEmpty","setIsNoResults","setErrorMessage","search","setSearch","initialFilters","setInitialFilters","setFilters","draggingRow","setDraggingRow","rowSelection","setRowSelection","pagination","setPagination","pageIndex","pageSize","tableState","setTableState","columnSorting","columnVisibility","rowDensity","initialDensity","shouldShowFilters","availableFilters","columns","dataQueryParams","page","sort","row","id","length","prevValue","emptyState","noResultsInnerContent","description","heading","additionalActions","children","lastRow","lastRowOnPage","rowReorderingUtilities","severity","text","undefined","isDisabled","onChangeFilters","onChangeSearch","menuItems","currentPageLabel","loadMoreLabel","nextLabel","onPaginationChange","previousLabel","rowsPerPageLabel","variant","MemoizedDataView","displayName"],"sources":["../../../src/labs/DataComponents/DataView.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo, useEffect, useMemo, useState } from \"react\";\nimport {\n MRT_Row,\n MRT_RowData,\n MRT_RowSelectionState,\n} from \"material-react-table\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n availableLayouts as allAvailableLayouts,\n densityValues,\n} from \"./constants\";\nimport {\n DataLayout,\n UniversalProps,\n ViewProps,\n TableState,\n} from \"./componentTypes\";\nimport { Box } from \"../../Box\";\nimport { BulkActionsMenu } from \"./BulkActionsMenu\";\nimport { Callout } from \"../../Callout\";\nimport { DataFilters } from \"../DataFilters\";\nimport { EmptyState } from \"../../EmptyState\";\nimport { fetchData } from \"./fetchData\";\nimport { LayoutSwitcher } from \"./LayoutSwitcher\";\nimport { TableSettings } from \"./TableSettings\";\nimport { Pagination, usePagination } from \"../../Pagination\";\nimport { TableContent } from \"./TableContent\";\nimport { StackContent } from \"./StackContent\";\nimport { useFilterConversion } from \"./useFilterConversion\";\nimport { useRowReordering } from \"../../DataTable/useRowReordering\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext\";\nimport styled from \"@emotion/styled\";\n\nexport type DataViewProps = UniversalProps & ViewProps<DataLayout>;\n\nconst DataViewContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n flexDirection: \"column\",\n gap: odysseyDesignTokens.Spacing4,\n}));\n\nconst BulkActionsContainer = styled(\"div\")(() => ({\n display: \"flex\",\n justifyContent: \"space-between\",\n}));\n\nconst AdditionalActionsContainer = styled(\"div\")(() => ({\n display: \"flex\",\n justifyContent: \"flex-end\",\n}));\n\nconst DataView = ({\n availableLayouts = allAvailableLayouts,\n bulkActionMenuItems,\n currentPage = 1,\n emptyPlaceholder,\n errorMessage: errorMessageProp,\n filters: filtersProp,\n getData,\n getRowId: getRowIdProp,\n hasFilters,\n hasPagination,\n hasSearch,\n hasSearchSubmitButton,\n hasRowReordering,\n hasRowSelection,\n initialLayout,\n isEmpty: isEmptyProp,\n isLoading: isLoadingProp,\n isNoResults: isNoResultsProp,\n isRowReorderingDisabled,\n noResultsPlaceholder,\n onChangeRowSelection,\n onReorderRows,\n paginationType = \"paged\",\n resultsPerPage = 20,\n searchDelayTime,\n stackOptions,\n tableOptions,\n totalRows,\n}: DataViewProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const [currentLayout, setCurrentLayout] = useState<DataLayout>(\n initialLayout ?? availableLayouts[0],\n );\n\n const [data, setData] = useState<MRT_RowData[]>([]);\n const [isLoading, setIsLoading] = useState<boolean>(isLoadingProp ?? true);\n const [isEmpty, setIsEmpty] = useState<boolean>(isEmptyProp ?? true);\n const [isNoResults, setIsNoResults] = useState<boolean>(\n isNoResultsProp ?? false,\n );\n const [errorMessage, setErrorMessage] =\n useState<UniversalProps[\"errorMessage\"]>(errorMessageProp);\n\n const [search, setSearch] = useState<string>(\"\");\n\n const [initialFilters, setInitialFilters] =\n useState<UniversalProps[\"filters\"]>(filtersProp);\n const [filters, setFilters] =\n useState<UniversalProps[\"filters\"]>(filtersProp);\n\n const [draggingRow, setDraggingRow] = useState<MRT_Row<MRT_RowData> | null>();\n\n const [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n\n useEffect(() => {\n onChangeRowSelection?.(rowSelection);\n }, [rowSelection, onChangeRowSelection]);\n\n const [pagination, setPagination] = useState({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n\n const [tableState, setTableState] = useState<TableState>({\n columnSorting: [],\n columnVisibility: {},\n rowDensity: tableOptions?.initialDensity ?? densityValues[0],\n });\n\n const shouldShowFilters = hasSearch || hasFilters;\n\n const availableFilters = useFilterConversion({\n filters: filters,\n columns: tableOptions?.columns,\n });\n\n useEffect(() => {\n if (!initialFilters && availableFilters) {\n setInitialFilters(availableFilters);\n }\n }, [availableFilters, initialFilters]);\n\n const dataQueryParams = useMemo(\n () => ({\n page: pagination.pageIndex,\n resultsPerPage: pagination.pageSize,\n search,\n filters: availableFilters,\n sort: tableState?.columnSorting,\n }),\n [\n pagination.pageIndex,\n pagination.pageSize,\n search,\n availableFilters,\n tableState?.columnSorting,\n ],\n );\n\n const getRowId = getRowIdProp ? getRowIdProp : (row: MRT_RowData) => row.id;\n\n // Update pagination state if props change\n useEffect(() => {\n setPagination({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n }, [currentPage, resultsPerPage]);\n\n // Retrieve the data\n useEffect(() => {\n fetchData({\n dataQueryParams,\n errorMessageProp,\n getData,\n setData,\n setErrorMessage,\n setIsLoading,\n });\n }, [dataQueryParams, errorMessageProp, getData]);\n\n // When data is updated\n useEffect(() => {\n setIsEmpty(\n pagination.pageIndex === currentPage &&\n pagination.pageSize === resultsPerPage &&\n search === \"\" &&\n filters === initialFilters &&\n data.length === 0,\n );\n }, [\n currentPage,\n data,\n filters,\n initialFilters,\n pagination,\n resultsPerPage,\n search,\n ]);\n\n // Change loading, empty and noResults state on prop change\n useEffect(() => {\n setIsLoading((prevValue) => isLoadingProp ?? prevValue);\n }, [isLoadingProp]);\n\n useEffect(() => {\n setIsEmpty((prevValue) => isEmptyProp ?? prevValue);\n }, [isEmptyProp]);\n\n useEffect(() => {\n setIsNoResults((prevValue) => isNoResultsProp ?? prevValue);\n }, [isNoResultsProp]);\n\n const emptyState = useMemo(() => {\n const noResultsInnerContent = noResultsPlaceholder || (\n <EmptyState\n description={t(\"table.noresults.text\")}\n heading={t(\"table.noresults.heading\")}\n />\n );\n\n if (isEmpty) {\n return emptyPlaceholder || noResultsInnerContent;\n }\n\n if (isNoResults) {\n return noResultsInnerContent;\n }\n\n return;\n }, [noResultsPlaceholder, t, isEmpty, isNoResults, emptyPlaceholder]);\n\n const additionalActions = useMemo(\n () => (\n <>\n {currentLayout === \"table\" && tableOptions && (\n <TableSettings\n setTableState={setTableState}\n tableOptions={tableOptions}\n tableState={tableState}\n />\n )}\n\n {availableLayouts.length > 1 && (\n <LayoutSwitcher\n availableLayouts={availableLayouts}\n currentLayout={currentLayout}\n setCurrentLayout={setCurrentLayout}\n />\n )}\n </>\n ),\n [currentLayout, tableOptions, tableState, availableLayouts],\n );\n\n const { lastRow: lastRowOnPage } = usePagination({\n pageIndex: pagination.pageIndex,\n pageSize: pagination.pageSize,\n totalRows,\n });\n\n const rowReorderingUtilities = useRowReordering({\n totalRows,\n onReorderRows,\n data,\n setData,\n draggingRow,\n setDraggingRow,\n resultsPerPage: pagination.pageSize,\n page: pagination.pageIndex,\n });\n\n return (\n <DataViewContainer odysseyDesignTokens={odysseyDesignTokens}>\n {errorMessage && (\n <Box>\n <Callout severity=\"error\" text={errorMessage} />\n </Box>\n )}\n\n {shouldShowFilters && (\n <DataFilters\n additionalActions={additionalActions}\n filters={hasFilters ? availableFilters : undefined}\n hasSearchSubmitButton={hasSearchSubmitButton}\n isDisabled={isEmpty}\n onChangeFilters={hasFilters ? setFilters : undefined}\n onChangeSearch={hasSearch ? setSearch : undefined}\n searchDelayTime={searchDelayTime}\n />\n )}\n\n {(bulkActionMenuItems || hasRowSelection) && (\n <BulkActionsContainer>\n <BulkActionsMenu\n data={data}\n menuItems={bulkActionMenuItems}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n />\n {!shouldShowFilters && additionalActions}\n </BulkActionsContainer>\n )}\n\n {!shouldShowFilters && !bulkActionMenuItems && !hasRowSelection && (\n <AdditionalActionsContainer>\n {additionalActions}\n </AdditionalActionsContainer>\n )}\n\n {currentLayout === \"table\" && tableOptions && (\n <TableContent\n columns={tableOptions.columns}\n data={data}\n draggingRow={draggingRow}\n emptyState={emptyState}\n getRowId={getRowId}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n onReorderRows={onReorderRows}\n pagination={pagination}\n rowReorderingUtilities={rowReorderingUtilities}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n setTableState={setTableState}\n tableOptions={tableOptions}\n tableState={tableState}\n totalRows={totalRows}\n />\n )}\n {(currentLayout === \"list\" || currentLayout === \"grid\") &&\n stackOptions && (\n <StackContent\n currentLayout={currentLayout}\n data={data}\n draggingRow={draggingRow}\n emptyState={emptyState}\n getRowId={getRowId}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n onReorderRows={onReorderRows}\n pagination={pagination}\n rowReorderingUtilities={rowReorderingUtilities}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n stackOptions={stackOptions}\n totalRows={totalRows}\n />\n )}\n\n {hasPagination && (\n <Pagination\n currentPageLabel={t(\"pagination.page\")}\n isDisabled={isEmpty}\n lastRow={lastRowOnPage}\n loadMoreLabel={t(\"pagination.loadmore\")}\n nextLabel={t(\"pagination.next\")}\n onPaginationChange={setPagination}\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n previousLabel={t(\"pagination.previous\")}\n rowsPerPageLabel={t(\"pagination.rowsperpage\")}\n totalRows={totalRows}\n variant={paginationType}\n />\n )}\n </DataViewContainer>\n );\n};\n\nconst MemoizedDataView = memo(DataView);\nMemoizedDataView.displayName = \"DataView\";\n\nexport { MemoizedDataView as DataView };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataView.js","names":["memo","useEffect","useMemo","useState","useTranslation","availableLayouts","allAvailableLayouts","densityValues","Box","BulkActionsMenu","Callout","DataFilters","EmptyState","fetchData","LayoutSwitcher","TableSettings","Pagination","usePagination","TableContent","StackContent","useFilterConversion","useRowReordering","useOdysseyDesignTokens","styled","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DataViewContainer","shouldForwardProp","prop","odysseyDesignTokens","display","flexDirection","gap","Spacing4","BulkActionsContainer","justifyContent","AdditionalActionsContainer","DataView","bulkActionMenuItems","currentPage","emptyPlaceholder","errorMessage","errorMessageProp","filters","filtersProp","getData","getRowId","getRowIdProp","hasFilters","hasPagination","hasSearch","hasSearchSubmitButton","hasRowReordering","hasRowSelection","initialLayout","isEmpty","isEmptyProp","isLoading","isLoadingProp","isNoResults","isNoResultsProp","isPaginationMoreDisabled","isRowReorderingDisabled","noResultsPlaceholder","onChangeRowSelection","onReorderRows","paginationType","resultsPerPage","searchDelayTime","stackOptions","tableOptions","totalRows","maxPages","maxResultsPerPage","t","currentLayout","setCurrentLayout","data","setData","setIsLoading","setIsEmpty","setIsNoResults","setErrorMessage","search","setSearch","initialFilters","setInitialFilters","setFilters","draggingRow","setDraggingRow","rowSelection","setRowSelection","pagination","setPagination","pageIndex","pageSize","tableState","setTableState","columnSorting","columnVisibility","rowDensity","initialDensity","shouldShowFilters","availableFilters","columns","dataQueryParams","page","sort","row","id","prev","length","prevValue","emptyState","noResultsInnerContent","description","heading","additionalActions","children","lastRow","lastRowOnPage","currentRowsCount","rowReorderingUtilities","severity","text","undefined","isDisabled","onChangeFilters","onChangeSearch","menuItems","currentPageLabel","isMoreDisabled","loadMoreLabel","maxPageIndex","maxPageSize","nextLabel","onPaginationChange","previousLabel","rowsPerPageLabel","variant","MemoizedDataView","displayName"],"sources":["../../../src/labs/DataComponents/DataView.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo, useEffect, useMemo, useState } from \"react\";\nimport {\n MRT_Row,\n MRT_RowData,\n MRT_RowSelectionState,\n} from \"material-react-table\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n availableLayouts as allAvailableLayouts,\n densityValues,\n} from \"./constants\";\nimport {\n DataLayout,\n UniversalProps,\n ViewProps,\n TableState,\n} from \"./componentTypes\";\nimport { Box } from \"../../Box\";\nimport { BulkActionsMenu } from \"./BulkActionsMenu\";\nimport { Callout } from \"../../Callout\";\nimport { DataFilters } from \"../DataFilters\";\nimport { EmptyState } from \"../../EmptyState\";\nimport { fetchData } from \"./fetchData\";\nimport { LayoutSwitcher } from \"./LayoutSwitcher\";\nimport { TableSettings } from \"./TableSettings\";\nimport { Pagination, usePagination } from \"../../Pagination\";\nimport { TableContent } from \"./TableContent\";\nimport { StackContent } from \"./StackContent\";\nimport { useFilterConversion } from \"./useFilterConversion\";\nimport { useRowReordering } from \"../../DataTable/useRowReordering\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext\";\nimport styled from \"@emotion/styled\";\n\nexport type DataViewProps = UniversalProps & ViewProps<DataLayout>;\n\nconst DataViewContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n flexDirection: \"column\",\n gap: odysseyDesignTokens.Spacing4,\n}));\n\nconst BulkActionsContainer = styled(\"div\")(() => ({\n display: \"flex\",\n justifyContent: \"space-between\",\n}));\n\nconst AdditionalActionsContainer = styled(\"div\")(() => ({\n display: \"flex\",\n justifyContent: \"flex-end\",\n}));\n\nconst DataView = ({\n availableLayouts = allAvailableLayouts,\n bulkActionMenuItems,\n currentPage = 1,\n emptyPlaceholder,\n errorMessage: errorMessageProp,\n filters: filtersProp,\n getData,\n getRowId: getRowIdProp,\n hasFilters,\n hasPagination,\n hasSearch,\n hasSearchSubmitButton,\n hasRowReordering,\n hasRowSelection,\n initialLayout,\n isEmpty: isEmptyProp,\n isLoading: isLoadingProp,\n isNoResults: isNoResultsProp,\n isPaginationMoreDisabled,\n isRowReorderingDisabled,\n noResultsPlaceholder,\n onChangeRowSelection,\n onReorderRows,\n paginationType = \"paged\",\n resultsPerPage = 20,\n searchDelayTime,\n stackOptions,\n tableOptions,\n totalRows,\n maxPages,\n maxResultsPerPage,\n}: DataViewProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const [currentLayout, setCurrentLayout] = useState<DataLayout>(\n initialLayout ?? availableLayouts[0],\n );\n\n const [data, setData] = useState<MRT_RowData[]>([]);\n const [isLoading, setIsLoading] = useState<boolean>(isLoadingProp ?? true);\n const [isEmpty, setIsEmpty] = useState<boolean>(isEmptyProp ?? true);\n const [isNoResults, setIsNoResults] = useState<boolean>(\n isNoResultsProp ?? false,\n );\n const [errorMessage, setErrorMessage] =\n useState<UniversalProps[\"errorMessage\"]>(errorMessageProp);\n\n const [search, setSearch] = useState<string>(\"\");\n\n const [initialFilters, setInitialFilters] =\n useState<UniversalProps[\"filters\"]>(filtersProp);\n const [filters, setFilters] =\n useState<UniversalProps[\"filters\"]>(filtersProp);\n\n const [draggingRow, setDraggingRow] = useState<MRT_Row<MRT_RowData> | null>();\n\n const [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n\n useEffect(() => {\n onChangeRowSelection?.(rowSelection);\n }, [rowSelection, onChangeRowSelection]);\n\n const [pagination, setPagination] = useState({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n\n const [tableState, setTableState] = useState<TableState>({\n columnSorting: [],\n columnVisibility: {},\n rowDensity: tableOptions?.initialDensity ?? densityValues[0],\n });\n\n const shouldShowFilters = hasSearch || hasFilters;\n\n const availableFilters = useFilterConversion({\n filters: filters,\n columns: tableOptions?.columns,\n });\n\n useEffect(() => {\n if (!initialFilters && availableFilters) {\n setInitialFilters(availableFilters);\n }\n }, [availableFilters, initialFilters]);\n\n const dataQueryParams = useMemo(\n () => ({\n page: pagination.pageIndex,\n resultsPerPage: pagination.pageSize,\n search,\n filters: availableFilters,\n sort: tableState?.columnSorting,\n }),\n [\n pagination.pageIndex,\n pagination.pageSize,\n search,\n availableFilters,\n tableState?.columnSorting,\n ],\n );\n\n const getRowId = getRowIdProp ? getRowIdProp : (row: MRT_RowData) => row.id;\n\n // Update pagination state if props change\n useEffect(() => {\n setPagination({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n }, [currentPage, resultsPerPage]);\n\n // Reset pagination if search or filters change\n useEffect(() => {\n setPagination((prev) => ({\n pageIndex: 1,\n pageSize: prev.pageSize,\n }));\n }, [filters, search]);\n\n // Retrieve the data\n useEffect(() => {\n fetchData({\n dataQueryParams,\n errorMessageProp,\n getData,\n setData,\n setErrorMessage,\n setIsLoading,\n });\n }, [dataQueryParams, errorMessageProp, getData]);\n\n // When data is updated\n useEffect(() => {\n setIsEmpty(\n pagination.pageIndex === currentPage &&\n pagination.pageSize === resultsPerPage &&\n search === \"\" &&\n filters === initialFilters &&\n data.length === 0,\n );\n }, [\n currentPage,\n data,\n filters,\n initialFilters,\n pagination,\n resultsPerPage,\n search,\n ]);\n\n // Change loading, empty and noResults state on prop change\n useEffect(() => {\n setIsLoading((prevValue) => isLoadingProp ?? prevValue);\n }, [isLoadingProp]);\n\n useEffect(() => {\n setIsEmpty((prevValue) => isEmptyProp ?? prevValue);\n }, [isEmptyProp]);\n\n useEffect(() => {\n setIsNoResults((prevValue) => isNoResultsProp ?? prevValue);\n }, [isNoResultsProp]);\n\n const emptyState = useMemo(() => {\n const noResultsInnerContent = noResultsPlaceholder || (\n <EmptyState\n description={t(\"table.noresults.text\")}\n heading={t(\"table.noresults.heading\")}\n />\n );\n\n if (isEmpty) {\n return emptyPlaceholder || noResultsInnerContent;\n }\n\n if (isNoResults) {\n return noResultsInnerContent;\n }\n\n return;\n }, [noResultsPlaceholder, t, isEmpty, isNoResults, emptyPlaceholder]);\n\n const additionalActions = useMemo(\n () => (\n <>\n {currentLayout === \"table\" && tableOptions && (\n <TableSettings\n setTableState={setTableState}\n tableOptions={tableOptions}\n tableState={tableState}\n />\n )}\n\n {availableLayouts.length > 1 && (\n <LayoutSwitcher\n availableLayouts={availableLayouts}\n currentLayout={currentLayout}\n setCurrentLayout={setCurrentLayout}\n />\n )}\n </>\n ),\n [currentLayout, tableOptions, tableState, availableLayouts],\n );\n\n const { lastRow: lastRowOnPage } = usePagination({\n currentRowsCount: data.length,\n pageIndex: pagination.pageIndex,\n pageSize: pagination.pageSize,\n totalRows,\n });\n\n const rowReorderingUtilities = useRowReordering({\n totalRows,\n onReorderRows,\n data,\n setData,\n draggingRow,\n setDraggingRow,\n resultsPerPage: pagination.pageSize,\n page: pagination.pageIndex,\n });\n\n return (\n <DataViewContainer odysseyDesignTokens={odysseyDesignTokens}>\n {errorMessage && (\n <Box>\n <Callout severity=\"error\" text={errorMessage} />\n </Box>\n )}\n\n {shouldShowFilters && (\n <DataFilters\n additionalActions={additionalActions}\n filters={hasFilters ? availableFilters : undefined}\n hasSearchSubmitButton={hasSearchSubmitButton}\n isDisabled={isEmpty}\n onChangeFilters={hasFilters ? setFilters : undefined}\n onChangeSearch={hasSearch ? setSearch : undefined}\n searchDelayTime={searchDelayTime}\n />\n )}\n\n {(bulkActionMenuItems || hasRowSelection) && (\n <BulkActionsContainer>\n <BulkActionsMenu\n data={data}\n menuItems={bulkActionMenuItems}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n />\n {!shouldShowFilters && additionalActions}\n </BulkActionsContainer>\n )}\n\n {!shouldShowFilters && !bulkActionMenuItems && !hasRowSelection && (\n <AdditionalActionsContainer>\n {additionalActions}\n </AdditionalActionsContainer>\n )}\n\n {currentLayout === \"table\" && tableOptions && (\n <TableContent\n columns={tableOptions.columns}\n data={data}\n draggingRow={draggingRow}\n emptyState={emptyState}\n getRowId={getRowId}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n onReorderRows={onReorderRows}\n pagination={pagination}\n rowReorderingUtilities={rowReorderingUtilities}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n setTableState={setTableState}\n tableOptions={tableOptions}\n tableState={tableState}\n totalRows={totalRows}\n />\n )}\n {(currentLayout === \"list\" || currentLayout === \"grid\") &&\n stackOptions && (\n <StackContent\n currentLayout={currentLayout}\n data={data}\n draggingRow={draggingRow}\n emptyState={emptyState}\n getRowId={getRowId}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n onReorderRows={onReorderRows}\n pagination={pagination}\n rowReorderingUtilities={rowReorderingUtilities}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n stackOptions={stackOptions}\n totalRows={totalRows}\n />\n )}\n\n {hasPagination && (\n <Pagination\n currentPageLabel={t(\"pagination.page\")}\n isDisabled={isEmpty}\n isMoreDisabled={isPaginationMoreDisabled}\n lastRow={lastRowOnPage}\n loadMoreLabel={t(\"pagination.loadmore\")}\n maxPageIndex={maxPages}\n maxPageSize={maxResultsPerPage}\n nextLabel={t(\"pagination.next\")}\n onPaginationChange={setPagination}\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n previousLabel={t(\"pagination.previous\")}\n rowsPerPageLabel={t(\"pagination.rowsperpage\")}\n totalRows={totalRows}\n currentRowsCount={data.length}\n variant={paginationType}\n />\n )}\n </DataViewContainer>\n );\n};\n\nconst MemoizedDataView = memo(DataView);\nMemoizedDataView.displayName = \"DataView\";\n\nexport { MemoizedDataView as DataView };\n"],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ import { MRT_TableContainer, useMaterialReactTable } from "material-react-table"
|
|
|
16
16
|
import { useTranslation } from "react-i18next";
|
|
17
17
|
import { ArrowDownIcon, ArrowUnsortedIcon, ChevronDownIcon, DragIndicatorIcon } from "../../icons.generated/index.js";
|
|
18
18
|
import { Box } from "../../Box.js";
|
|
19
|
+
import { Button } from "../../Button.js";
|
|
19
20
|
import { dataTableImmutableSettings, displayColumnDefOptions, ScrollableTableContainer } from "./tableConstants.js";
|
|
20
21
|
import { MenuButton } from "../../MenuButton.js";
|
|
21
22
|
import { MoreIcon } from "../../icons.generated/index.js";
|
|
@@ -126,6 +127,7 @@ const TableContent = ({
|
|
|
126
127
|
sx: innerWidthStyle,
|
|
127
128
|
children: emptyState
|
|
128
129
|
}), [innerWidthStyle, emptyState]);
|
|
130
|
+
const shouldDisplayRowActions = useMemo(() => hasRowReordering === true && onReorderRows || tableOptions.rowActionButtons || tableOptions.rowActionMenuItems ? true : false, [hasRowReordering, onReorderRows, tableOptions.rowActionButtons, tableOptions.rowActionMenuItems]);
|
|
129
131
|
const dataTable = useMaterialReactTable({
|
|
130
132
|
data: !isEmpty && !isNoResults ? data : [],
|
|
131
133
|
columns,
|
|
@@ -144,9 +146,48 @@ const TableContent = ({
|
|
|
144
146
|
ExpandMoreIcon: ChevronDownIcon
|
|
145
147
|
},
|
|
146
148
|
...dataTableImmutableSettings,
|
|
147
|
-
displayColumnDefOptions:
|
|
149
|
+
displayColumnDefOptions: {
|
|
150
|
+
...displayColumnDefOptions,
|
|
151
|
+
"mrt-row-actions": {
|
|
152
|
+
header: "",
|
|
153
|
+
grow: true,
|
|
154
|
+
muiTableBodyCellProps: {
|
|
155
|
+
align: "right",
|
|
156
|
+
sx: {
|
|
157
|
+
overflow: "visible",
|
|
158
|
+
width: "unset"
|
|
159
|
+
},
|
|
160
|
+
className: "ods-actions-cell"
|
|
161
|
+
},
|
|
162
|
+
muiTableHeadCellProps: {
|
|
163
|
+
align: "right",
|
|
164
|
+
sx: {
|
|
165
|
+
width: "unset"
|
|
166
|
+
},
|
|
167
|
+
className: "ods-actions-cell",
|
|
168
|
+
children: _jsxs(Box, {
|
|
169
|
+
sx: {
|
|
170
|
+
display: "flex",
|
|
171
|
+
visibility: "hidden"
|
|
172
|
+
},
|
|
173
|
+
children: [tableOptions.rowActionButtons && tableOptions.rowActionButtons({
|
|
174
|
+
id: null
|
|
175
|
+
}), (hasRowReordering === true && onReorderRows || tableOptions.rowActionMenuItems) && _jsx(Box, {
|
|
176
|
+
children: _jsx(Button, {
|
|
177
|
+
endIcon: _jsx(MoreIcon, {}),
|
|
178
|
+
size: "small",
|
|
179
|
+
variant: "floating",
|
|
180
|
+
ariaLabel: t("table.moreactions.arialabel"),
|
|
181
|
+
isDisabled: true
|
|
182
|
+
})
|
|
183
|
+
})]
|
|
184
|
+
})
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
},
|
|
148
188
|
muiTableProps: {
|
|
149
|
-
ref: tableContentRef
|
|
189
|
+
ref: tableContentRef,
|
|
190
|
+
className: !shouldDisplayRowActions && tableOptions.hasColumnResizing ? "ods-hide-spacer-column" : ""
|
|
150
191
|
},
|
|
151
192
|
muiTableContainerProps: {
|
|
152
193
|
ref: tableInnerContainerRef
|
|
@@ -158,7 +199,7 @@ const TableContent = ({
|
|
|
158
199
|
defaultColumn: {
|
|
159
200
|
Cell: defaultCell
|
|
160
201
|
},
|
|
161
|
-
enableRowActions:
|
|
202
|
+
enableRowActions: shouldDisplayRowActions,
|
|
162
203
|
renderRowActions: ({
|
|
163
204
|
row
|
|
164
205
|
}) => renderRowActions({
|
|
@@ -214,6 +255,11 @@ const TableContent = ({
|
|
|
214
255
|
}) => ({
|
|
215
256
|
className: tableState.columnSorting.find(sortedColumn => sortedColumn.id === currentColumn.id) ? "isSorted" : "isUnsorted"
|
|
216
257
|
}),
|
|
258
|
+
muiTableBodyCellProps: ({
|
|
259
|
+
column
|
|
260
|
+
}) => ({
|
|
261
|
+
className: column.getIsResizing() ? "isResizing" : ""
|
|
262
|
+
}),
|
|
217
263
|
enableSorting: tableOptions.hasSorting === true,
|
|
218
264
|
onSortingChange: sortingUpdater => {
|
|
219
265
|
const newSortVal = typeof sortingUpdater === "function" ? sortingUpdater(tableState.columnSorting) : tableState.columnSorting;
|