@okta/odyssey-react-mui 1.13.10 → 1.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/dist/@types/properties.d.js +2 -0
- package/dist/@types/properties.d.js.map +1 -0
- package/dist/Accordion.js.map +1 -1
- package/dist/Autocomplete.js.map +1 -1
- package/dist/Badge.js.map +1 -1
- package/dist/Banner.js.map +1 -1
- package/dist/Box.js.map +1 -1
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/Button.js +7 -4
- package/dist/Button.js.map +1 -1
- package/dist/ButtonContext.js +18 -0
- package/dist/ButtonContext.js.map +1 -0
- package/dist/Callout.js.map +1 -1
- package/dist/Checkbox.js.map +1 -1
- package/dist/CheckboxGroup.js.map +1 -1
- package/dist/CircularProgress.js.map +1 -1
- package/dist/Dialog.js +8 -8
- package/dist/Dialog.js.map +1 -1
- package/dist/ErrorMessageList.js.map +1 -1
- package/dist/Field.js +1 -0
- package/dist/Field.js.map +1 -1
- package/dist/FieldComponentProps.js.map +1 -1
- package/dist/FieldError.js.map +1 -1
- package/dist/FieldHint.js.map +1 -1
- package/dist/FieldLabel.js.map +1 -1
- package/dist/Fieldset.js.map +1 -1
- package/dist/Form.js.map +1 -1
- package/dist/FormCheckedProps.js.map +1 -1
- package/dist/HintLink.js.map +1 -1
- package/dist/HtmlProps.js.map +1 -1
- package/dist/Link.js.map +1 -1
- package/dist/MenuButton.js.map +1 -1
- package/dist/MenuContext.js.map +1 -1
- package/dist/MenuItem.js.map +1 -1
- package/dist/MuiPropsChild.js.map +1 -1
- package/dist/NativeSelect.js.map +1 -1
- package/dist/OdysseyProvider.js.map +1 -1
- package/dist/OdysseyThemeProvider.js.map +1 -1
- package/dist/OdysseyTranslationProvider.js.map +1 -1
- package/dist/PasswordField.js.map +1 -1
- package/dist/Radio.js.map +1 -1
- package/dist/RadioGroup.js.map +1 -1
- package/dist/ScreenReaderText.js.map +1 -1
- package/dist/SearchField.js +6 -2
- package/dist/SearchField.js.map +1 -1
- package/dist/Select.js +144 -44
- package/dist/Select.js.map +1 -1
- package/dist/Status.js +6 -1
- package/dist/Status.js.map +1 -1
- package/dist/Tabs.js +1 -1
- package/dist/Tabs.js.map +1 -1
- package/dist/Tag.js.map +1 -1
- package/dist/TagList.js.map +1 -1
- package/dist/TextField.js.map +1 -1
- package/dist/Tile.js +108 -0
- package/dist/Tile.js.map +1 -0
- package/dist/Toast.js.map +1 -1
- package/dist/Tooltip.js.map +1 -1
- package/dist/Typography.js +11 -10
- package/dist/Typography.js.map +1 -1
- package/dist/createShadowRootElement.js.map +1 -1
- package/dist/getTypedObjectKeys.js.map +1 -1
- package/dist/icons.generated/AddCircle.js.map +1 -1
- package/dist/icons.generated/Apps.js.map +1 -1
- package/dist/icons.generated/ArrowBottom.js.map +1 -1
- package/dist/icons.generated/ArrowDown.js.map +1 -1
- package/dist/icons.generated/ArrowLeft.js.map +1 -1
- package/dist/icons.generated/ArrowRight.js.map +1 -1
- package/dist/icons.generated/ArrowTop.js.map +1 -1
- package/dist/icons.generated/ArrowUp.js.map +1 -1
- package/dist/icons.generated/Calendar.js.map +1 -1
- package/dist/icons.generated/Call.js.map +1 -1
- package/dist/icons.generated/Chat.js.map +1 -1
- package/dist/icons.generated/Check.js.map +1 -1
- package/dist/icons.generated/ChevronDown.js.map +1 -1
- package/dist/icons.generated/ChevronLeft.js.map +1 -1
- package/dist/icons.generated/ChevronUp.js.map +1 -1
- package/dist/icons.generated/Clock.js.map +1 -1
- package/dist/icons.generated/Close.js.map +1 -1
- package/dist/icons.generated/Copy.js.map +1 -1
- package/dist/icons.generated/Delete.js.map +1 -1
- package/dist/icons.generated/Deny.js.map +1 -1
- package/dist/icons.generated/Devices.js.map +1 -1
- package/dist/icons.generated/Directory.js.map +1 -1
- package/dist/icons.generated/Download.js.map +1 -1
- package/dist/icons.generated/Edit.js.map +1 -1
- package/dist/icons.generated/ExpandLeft.js.map +1 -1
- package/dist/icons.generated/ExpandRight.js.map +1 -1
- package/dist/icons.generated/Filter.js.map +1 -1
- package/dist/icons.generated/Folder.js.map +1 -1
- package/dist/icons.generated/Globe.js.map +1 -1
- package/dist/icons.generated/Grid.js.map +1 -1
- package/dist/icons.generated/Group.js.map +1 -1
- package/dist/icons.generated/Hide.js.map +1 -1
- package/dist/icons.generated/Home.js.map +1 -1
- package/dist/icons.generated/Link.js.map +1 -1
- package/dist/icons.generated/List.js.map +1 -1
- package/dist/icons.generated/Lock.js.map +1 -1
- package/dist/icons.generated/More.js.map +1 -1
- package/dist/icons.generated/Pause.js.map +1 -1
- package/dist/icons.generated/Refresh.js.map +1 -1
- package/dist/icons.generated/Reset.js.map +1 -1
- package/dist/icons.generated/Resume.js.map +1 -1
- package/dist/icons.generated/Search.js.map +1 -1
- package/dist/icons.generated/Server.js.map +1 -1
- package/dist/icons.generated/Settings.js.map +1 -1
- package/dist/icons.generated/Show.js.map +1 -1
- package/dist/icons.generated/Subtract.js.map +1 -1
- package/dist/icons.generated/Sync.js.map +1 -1
- package/dist/icons.generated/Unlock.js.map +1 -1
- package/dist/icons.generated/Upload.js.map +1 -1
- package/dist/icons.generated/User.js.map +1 -1
- package/dist/icons.generated/Video.js.map +1 -1
- package/dist/icons.generated/Warning.js.map +1 -1
- package/dist/icons.generated/index.js +1 -1
- package/dist/icons.generated/index.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/labs/DataFilters.js.map +1 -1
- package/dist/labs/DataTable.js.map +1 -1
- package/dist/labs/DatePicker.js.map +1 -1
- package/dist/labs/Drawer.js +172 -0
- package/dist/labs/Drawer.js.map +1 -0
- package/dist/labs/GroupPicker.js.map +1 -1
- package/dist/labs/PaginatedTable.js.map +1 -1
- package/dist/labs/StaticTable.js.map +1 -1
- package/dist/labs/Switch.js.map +1 -1
- package/dist/labs/VirtualizedAutocomplete.js.map +1 -1
- 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/materialReactTableTypes.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_cs.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_cs.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_da.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_da.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_de.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_de.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_el.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_el.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_es.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_es.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_fi.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_fi.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_fr.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_fr.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_hu.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_hu.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_id.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_id.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_it.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_it.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ja.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_ja.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ko.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_ko.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ms.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_ms.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_nb.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_nb.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_nl_NL.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_nl_NL.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_pl.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_pl.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_pt_BR.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_pt_BR.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ro.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_ro.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ru.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_ru.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_sv.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_sv.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_th.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_th.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_tr.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_tr.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_uk.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_uk.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_vi.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_vi.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_zh_CN.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_zh_CN.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_zh_TW.js +4 -2
- package/dist/properties/ts/odyssey-react-mui_zh_TW.js.map +1 -1
- package/dist/scripts/properties-to-ts.d.ts +14 -0
- package/dist/scripts/properties-to-ts.d.ts.map +1 -0
- package/dist/src/Accordion.d.ts +2 -2
- package/dist/src/Accordion.d.ts.map +1 -1
- package/dist/src/Autocomplete.d.ts +2 -2
- package/dist/src/Autocomplete.d.ts.map +1 -1
- package/dist/src/Badge.d.ts +2 -2
- package/dist/src/Badge.d.ts.map +1 -1
- package/dist/src/Banner.d.ts +2 -2
- package/dist/src/Banner.d.ts.map +1 -1
- package/dist/src/Box.d.ts +2 -2
- package/dist/src/Box.d.ts.map +1 -1
- package/dist/src/Breadcrumbs.d.ts +3 -3
- package/dist/src/Breadcrumbs.d.ts.map +1 -1
- package/dist/src/Button.d.ts +3 -30
- package/dist/src/Button.d.ts.map +1 -1
- package/dist/src/ButtonContext.d.ts +18 -0
- package/dist/src/ButtonContext.d.ts.map +1 -0
- package/dist/src/Callout.d.ts +2 -2
- package/dist/src/Callout.d.ts.map +1 -1
- package/dist/src/Checkbox.d.ts +3 -23
- package/dist/src/Checkbox.d.ts.map +1 -1
- package/dist/src/CheckboxGroup.d.ts +2 -2
- package/dist/src/CheckboxGroup.d.ts.map +1 -1
- package/dist/src/CircularProgress.d.ts +2 -6
- package/dist/src/CircularProgress.d.ts.map +1 -1
- package/dist/src/CssBaseline.d.ts +1 -1
- package/dist/src/CssBaseline.d.ts.map +1 -1
- package/dist/src/Dialog.d.ts +5 -5
- package/dist/src/Dialog.d.ts.map +1 -1
- package/dist/src/ErrorMessageList.d.ts +1 -1
- package/dist/src/ErrorMessageList.d.ts.map +1 -1
- package/dist/src/Field.d.ts +2 -5
- package/dist/src/Field.d.ts.map +1 -1
- package/dist/src/FieldComponentProps.d.ts +7 -4
- package/dist/src/FieldComponentProps.d.ts.map +1 -1
- package/dist/src/FieldError.d.ts +2 -2
- package/dist/src/FieldError.d.ts.map +1 -1
- package/dist/src/FieldHint.d.ts +2 -2
- package/dist/src/FieldHint.d.ts.map +1 -1
- package/dist/src/FieldLabel.d.ts +2 -2
- package/dist/src/FieldLabel.d.ts.map +1 -1
- package/dist/src/Fieldset.d.ts +2 -2
- package/dist/src/Fieldset.d.ts.map +1 -1
- package/dist/src/Form.d.ts +2 -2
- package/dist/src/Form.d.ts.map +1 -1
- package/dist/src/HintLink.d.ts +1 -1
- package/dist/src/HintLink.d.ts.map +1 -1
- package/dist/src/HtmlProps.d.ts +59 -0
- package/dist/src/HtmlProps.d.ts.map +1 -1
- package/dist/src/Link.d.ts +2 -6
- package/dist/src/Link.d.ts.map +1 -1
- package/dist/src/MenuButton.d.ts +5 -23
- package/dist/src/MenuButton.d.ts.map +1 -1
- package/dist/src/MenuContext.d.ts.map +1 -1
- package/dist/src/MenuItem.d.ts +2 -2
- package/dist/src/MenuItem.d.ts.map +1 -1
- package/dist/src/NativeSelect.d.ts +2 -2
- package/dist/src/NativeSelect.d.ts.map +1 -1
- package/dist/src/OdysseyCacheProvider.d.ts +1 -1
- package/dist/src/OdysseyCacheProvider.d.ts.map +1 -1
- package/dist/src/OdysseyProvider.d.ts +1 -1
- package/dist/src/OdysseyProvider.d.ts.map +1 -1
- package/dist/src/OdysseyThemeProvider.d.ts +1 -1
- package/dist/src/OdysseyThemeProvider.d.ts.map +1 -1
- package/dist/src/OdysseyTranslationProvider.d.ts +2 -2
- package/dist/src/OdysseyTranslationProvider.d.ts.map +1 -1
- package/dist/src/PasswordField.d.ts +2 -2
- package/dist/src/PasswordField.d.ts.map +1 -1
- package/dist/src/Radio.d.ts +2 -2
- package/dist/src/Radio.d.ts.map +1 -1
- package/dist/src/RadioGroup.d.ts +2 -2
- package/dist/src/RadioGroup.d.ts.map +1 -1
- package/dist/src/ScreenReaderText.d.ts +2 -2
- package/dist/src/ScreenReaderText.d.ts.map +1 -1
- package/dist/src/SearchField.d.ts +11 -2
- package/dist/src/SearchField.d.ts.map +1 -1
- package/dist/src/Select.d.ts +2 -2
- package/dist/src/Select.d.ts.map +1 -1
- package/dist/src/Status.d.ts +4 -2
- package/dist/src/Status.d.ts.map +1 -1
- package/dist/src/Tabs.d.ts +2 -6
- package/dist/src/Tabs.d.ts.map +1 -1
- package/dist/src/Tag.d.ts +2 -2
- package/dist/src/Tag.d.ts.map +1 -1
- package/dist/src/TagList.d.ts +2 -2
- package/dist/src/TagList.d.ts.map +1 -1
- package/dist/src/TextField.d.ts +3 -3
- package/dist/src/TextField.d.ts.map +1 -1
- package/dist/src/Tile.d.ts +54 -0
- package/dist/src/Tile.d.ts.map +1 -0
- package/dist/src/Toast.d.ts +2 -2
- package/dist/src/Toast.d.ts.map +1 -1
- package/dist/src/ToastStack.d.ts +1 -1
- package/dist/src/ToastStack.d.ts.map +1 -1
- package/dist/src/Tooltip.d.ts +2 -2
- package/dist/src/Tooltip.d.ts.map +1 -1
- package/dist/src/Typography.d.ts +13 -25
- package/dist/src/Typography.d.ts.map +1 -1
- package/dist/src/icons.generated/Add.d.ts +1 -1
- package/dist/src/icons.generated/Add.d.ts.map +1 -1
- package/dist/src/icons.generated/AddCircle.d.ts +1 -1
- package/dist/src/icons.generated/AddCircle.d.ts.map +1 -1
- package/dist/src/icons.generated/Apps.d.ts +1 -1
- package/dist/src/icons.generated/Apps.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowBottom.d.ts +1 -1
- package/dist/src/icons.generated/ArrowBottom.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowDown.d.ts +1 -1
- package/dist/src/icons.generated/ArrowDown.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowLeft.d.ts +1 -1
- package/dist/src/icons.generated/ArrowLeft.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowLowerLeft.d.ts +1 -1
- package/dist/src/icons.generated/ArrowLowerLeft.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowLowerRight.d.ts +1 -1
- package/dist/src/icons.generated/ArrowLowerRight.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowRight.d.ts +1 -1
- package/dist/src/icons.generated/ArrowRight.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowTop.d.ts +1 -1
- package/dist/src/icons.generated/ArrowTop.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowUnsorted.d.ts +1 -1
- package/dist/src/icons.generated/ArrowUnsorted.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowUp.d.ts +1 -1
- package/dist/src/icons.generated/ArrowUp.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowUpperLeft.d.ts +1 -1
- package/dist/src/icons.generated/ArrowUpperLeft.d.ts.map +1 -1
- package/dist/src/icons.generated/ArrowUpperRight.d.ts +1 -1
- package/dist/src/icons.generated/ArrowUpperRight.d.ts.map +1 -1
- package/dist/src/icons.generated/Bug.d.ts +1 -1
- package/dist/src/icons.generated/Bug.d.ts.map +1 -1
- package/dist/src/icons.generated/Calendar.d.ts +1 -1
- package/dist/src/icons.generated/Calendar.d.ts.map +1 -1
- package/dist/src/icons.generated/Call.d.ts +1 -1
- package/dist/src/icons.generated/Call.d.ts.map +1 -1
- package/dist/src/icons.generated/Chat.d.ts +1 -1
- package/dist/src/icons.generated/Chat.d.ts.map +1 -1
- package/dist/src/icons.generated/Check.d.ts +1 -1
- package/dist/src/icons.generated/Check.d.ts.map +1 -1
- package/dist/src/icons.generated/CheckCircleFilled.d.ts +1 -1
- package/dist/src/icons.generated/CheckCircleFilled.d.ts.map +1 -1
- package/dist/src/icons.generated/ChevronDown.d.ts +1 -1
- package/dist/src/icons.generated/ChevronDown.d.ts.map +1 -1
- package/dist/src/icons.generated/ChevronLeft.d.ts +1 -1
- package/dist/src/icons.generated/ChevronLeft.d.ts.map +1 -1
- package/dist/src/icons.generated/ChevronRight.d.ts +1 -1
- package/dist/src/icons.generated/ChevronRight.d.ts.map +1 -1
- package/dist/src/icons.generated/ChevronUp.d.ts +1 -1
- package/dist/src/icons.generated/ChevronUp.d.ts.map +1 -1
- package/dist/src/icons.generated/Clock.d.ts +1 -1
- package/dist/src/icons.generated/Clock.d.ts.map +1 -1
- package/dist/src/icons.generated/Close.d.ts +1 -1
- package/dist/src/icons.generated/Close.d.ts.map +1 -1
- package/dist/src/icons.generated/CloseCircleFilled.d.ts +1 -1
- package/dist/src/icons.generated/CloseCircleFilled.d.ts.map +1 -1
- package/dist/src/icons.generated/CollapseLeft.d.ts +1 -1
- package/dist/src/icons.generated/CollapseLeft.d.ts.map +1 -1
- package/dist/src/icons.generated/CollapseRight.d.ts +1 -1
- package/dist/src/icons.generated/CollapseRight.d.ts.map +1 -1
- package/dist/src/icons.generated/Copy.d.ts +1 -1
- package/dist/src/icons.generated/Copy.d.ts.map +1 -1
- package/dist/src/icons.generated/DangerDiamond.d.ts +1 -1
- package/dist/src/icons.generated/DangerDiamond.d.ts.map +1 -1
- package/dist/src/icons.generated/DangerDiamondFilled.d.ts +1 -1
- package/dist/src/icons.generated/DangerDiamondFilled.d.ts.map +1 -1
- package/dist/src/icons.generated/Delete.d.ts +1 -1
- package/dist/src/icons.generated/Delete.d.ts.map +1 -1
- package/dist/src/icons.generated/Deny.d.ts +1 -1
- package/dist/src/icons.generated/Deny.d.ts.map +1 -1
- package/dist/src/icons.generated/Devices.d.ts +1 -1
- package/dist/src/icons.generated/Devices.d.ts.map +1 -1
- package/dist/src/icons.generated/Directory.d.ts +1 -1
- package/dist/src/icons.generated/Directory.d.ts.map +1 -1
- package/dist/src/icons.generated/Documentation.d.ts +1 -1
- package/dist/src/icons.generated/Documentation.d.ts.map +1 -1
- package/dist/src/icons.generated/Download.d.ts +1 -1
- package/dist/src/icons.generated/Download.d.ts.map +1 -1
- package/dist/src/icons.generated/DragIndicator.d.ts +1 -1
- package/dist/src/icons.generated/DragIndicator.d.ts.map +1 -1
- package/dist/src/icons.generated/Edit.d.ts +1 -1
- package/dist/src/icons.generated/Edit.d.ts.map +1 -1
- package/dist/src/icons.generated/ExpandLeft.d.ts +1 -1
- package/dist/src/icons.generated/ExpandLeft.d.ts.map +1 -1
- package/dist/src/icons.generated/ExpandRight.d.ts +1 -1
- package/dist/src/icons.generated/ExpandRight.d.ts.map +1 -1
- package/dist/src/icons.generated/ExternalLink.d.ts +1 -1
- package/dist/src/icons.generated/ExternalLink.d.ts.map +1 -1
- package/dist/src/icons.generated/Filter.d.ts +1 -1
- package/dist/src/icons.generated/Filter.d.ts.map +1 -1
- package/dist/src/icons.generated/Folder.d.ts +1 -1
- package/dist/src/icons.generated/Folder.d.ts.map +1 -1
- package/dist/src/icons.generated/Globe.d.ts +1 -1
- package/dist/src/icons.generated/Globe.d.ts.map +1 -1
- package/dist/src/icons.generated/Grid.d.ts +1 -1
- package/dist/src/icons.generated/Grid.d.ts.map +1 -1
- package/dist/src/icons.generated/Group.d.ts +1 -1
- package/dist/src/icons.generated/Group.d.ts.map +1 -1
- package/dist/src/icons.generated/Hide.d.ts +1 -1
- package/dist/src/icons.generated/Hide.d.ts.map +1 -1
- package/dist/src/icons.generated/Home.d.ts +1 -1
- package/dist/src/icons.generated/Home.d.ts.map +1 -1
- package/dist/src/icons.generated/InformationCircle.d.ts +1 -1
- package/dist/src/icons.generated/InformationCircle.d.ts.map +1 -1
- package/dist/src/icons.generated/InformationCircleFilled.d.ts +1 -1
- package/dist/src/icons.generated/InformationCircleFilled.d.ts.map +1 -1
- package/dist/src/icons.generated/Link.d.ts +1 -1
- package/dist/src/icons.generated/Link.d.ts.map +1 -1
- package/dist/src/icons.generated/List.d.ts +1 -1
- package/dist/src/icons.generated/List.d.ts.map +1 -1
- package/dist/src/icons.generated/Lock.d.ts +1 -1
- package/dist/src/icons.generated/Lock.d.ts.map +1 -1
- package/dist/src/icons.generated/More.d.ts +1 -1
- package/dist/src/icons.generated/More.d.ts.map +1 -1
- package/dist/src/icons.generated/Notification.d.ts +1 -1
- package/dist/src/icons.generated/Notification.d.ts.map +1 -1
- package/dist/src/icons.generated/Pause.d.ts +1 -1
- package/dist/src/icons.generated/Pause.d.ts.map +1 -1
- package/dist/src/icons.generated/QuestionCircle.d.ts +1 -1
- package/dist/src/icons.generated/QuestionCircle.d.ts.map +1 -1
- package/dist/src/icons.generated/QuestionCircleFilled.d.ts +1 -1
- package/dist/src/icons.generated/QuestionCircleFilled.d.ts.map +1 -1
- package/dist/src/icons.generated/Refresh.d.ts +1 -1
- package/dist/src/icons.generated/Refresh.d.ts.map +1 -1
- package/dist/src/icons.generated/Reset.d.ts +1 -1
- package/dist/src/icons.generated/Reset.d.ts.map +1 -1
- package/dist/src/icons.generated/Resume.d.ts +1 -1
- package/dist/src/icons.generated/Resume.d.ts.map +1 -1
- package/dist/src/icons.generated/Search.d.ts +1 -1
- package/dist/src/icons.generated/Search.d.ts.map +1 -1
- package/dist/src/icons.generated/Server.d.ts +1 -1
- package/dist/src/icons.generated/Server.d.ts.map +1 -1
- package/dist/src/icons.generated/Settings.d.ts +1 -1
- package/dist/src/icons.generated/Settings.d.ts.map +1 -1
- package/dist/src/icons.generated/Show.d.ts +1 -1
- package/dist/src/icons.generated/Show.d.ts.map +1 -1
- package/dist/src/icons.generated/Subtract.d.ts +1 -1
- package/dist/src/icons.generated/Subtract.d.ts.map +1 -1
- package/dist/src/icons.generated/Sync.d.ts +1 -1
- package/dist/src/icons.generated/Sync.d.ts.map +1 -1
- package/dist/src/icons.generated/Unlock.d.ts +1 -1
- package/dist/src/icons.generated/Unlock.d.ts.map +1 -1
- package/dist/src/icons.generated/Upload.d.ts +1 -1
- package/dist/src/icons.generated/Upload.d.ts.map +1 -1
- package/dist/src/icons.generated/User.d.ts +1 -1
- package/dist/src/icons.generated/User.d.ts.map +1 -1
- package/dist/src/icons.generated/Video.d.ts +1 -1
- package/dist/src/icons.generated/Video.d.ts.map +1 -1
- package/dist/src/icons.generated/Warning.d.ts +1 -1
- package/dist/src/icons.generated/Warning.d.ts.map +1 -1
- package/dist/src/icons.generated/WarningFilled.d.ts +1 -1
- package/dist/src/icons.generated/WarningFilled.d.ts.map +1 -1
- package/dist/src/icons.generated/index.d.ts +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/labs/DataFilters.d.ts +1 -1
- package/dist/src/labs/DataFilters.d.ts.map +1 -1
- package/dist/src/labs/DataTable.d.ts +1 -1
- package/dist/src/labs/DataTable.d.ts.map +1 -1
- package/dist/src/labs/DataTablePagination.d.ts +1 -1
- package/dist/src/labs/DataTablePagination.d.ts.map +1 -1
- package/dist/src/labs/DatePicker.d.ts +1 -1
- package/dist/src/labs/DatePicker.d.ts.map +1 -1
- package/dist/src/labs/Drawer.d.ts +56 -0
- package/dist/src/labs/Drawer.d.ts.map +1 -0
- package/dist/src/labs/GroupPicker.d.ts +1 -1
- package/dist/src/labs/GroupPicker.d.ts.map +1 -1
- package/dist/src/labs/PaginatedTable.d.ts +1 -1
- package/dist/src/labs/PaginatedTable.d.ts.map +1 -1
- package/dist/src/labs/StaticTable.d.ts +1 -1
- package/dist/src/labs/StaticTable.d.ts.map +1 -1
- package/dist/src/labs/Switch.d.ts +2 -2
- package/dist/src/labs/Switch.d.ts.map +1 -1
- package/dist/src/labs/VirtualizedAutocomplete.d.ts +2 -2
- package/dist/src/labs/VirtualizedAutocomplete.d.ts.map +1 -1
- 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/properties/ts/odyssey-react-mui_cs.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_cs.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_da.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_da.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_de.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_de.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_el.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_el.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_es.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_es.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_fi.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_fi.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_fr.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_fr.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_hu.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_hu.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_id.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_id.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_it.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_it.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ja.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_ja.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ko.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_ko.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ms.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_ms.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_nb.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_nb.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_nl_NL.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_nl_NL.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_pl.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_pl.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_pt_BR.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_pt_BR.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ro.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_ro.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ru.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_ru.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_sv.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_sv.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_th.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_th.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_tr.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_tr.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_uk.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_uk.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_vi.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_vi.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_zh_CN.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_zh_CN.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_zh_TW.d.ts +3 -1
- package/dist/src/properties/ts/odyssey-react-mui_zh_TW.d.ts.map +1 -1
- package/dist/src/theme/components.d.ts.map +1 -1
- package/dist/theme/components.js +117 -7
- package/dist/theme/components.js.map +1 -1
- package/dist/tsconfig.production.tsbuildinfo +1 -1
- package/package.json +15 -15
- package/scripts/generateIconsIndex.ts +2 -2
- package/scripts/{properties-to-ts.js → properties-to-ts.ts} +55 -41
- package/src/@types/properties.d.ts +292 -0
- package/src/Accordion.tsx +1 -1
- package/src/Autocomplete.tsx +17 -9
- package/src/Badge.tsx +1 -1
- package/src/Banner.tsx +1 -1
- package/src/Box.tsx +2 -2
- package/src/Breadcrumbs.tsx +2 -2
- package/src/Button.tsx +33 -37
- package/src/ButtonContext.tsx +23 -0
- package/src/Callout.tsx +1 -1
- package/src/Checkbox.tsx +9 -29
- package/src/CheckboxGroup.tsx +20 -5
- package/src/CircularProgress.tsx +1 -5
- package/src/Dialog.tsx +18 -17
- package/src/ErrorMessageList.tsx +1 -1
- package/src/Field.tsx +6 -9
- package/src/FieldComponentProps.ts +8 -4
- package/src/FieldError.tsx +2 -2
- package/src/FieldHint.tsx +1 -1
- package/src/FieldLabel.tsx +2 -2
- package/src/Fieldset.tsx +2 -2
- package/src/Form.tsx +1 -1
- package/src/FormCheckedProps.ts +3 -3
- package/src/HintLink.tsx +1 -1
- package/src/HtmlProps.ts +60 -0
- package/src/Link.tsx +2 -6
- package/src/MenuButton.tsx +21 -36
- package/src/MenuContext.ts +1 -1
- package/src/MenuItem.tsx +2 -2
- package/src/MuiPropsChild.tsx +2 -2
- package/src/NativeSelect.tsx +24 -13
- package/src/OdysseyCacheProvider.test.tsx +3 -3
- package/src/OdysseyProvider.tsx +1 -1
- package/src/OdysseyThemeProvider.tsx +4 -4
- package/src/OdysseyTranslationProvider.test.tsx +6 -6
- package/src/OdysseyTranslationProvider.tsx +7 -7
- package/src/PasswordField.tsx +23 -10
- package/src/Radio.tsx +4 -4
- package/src/RadioGroup.tsx +22 -7
- package/src/ScreenReaderText.tsx +1 -1
- package/src/SearchField.tsx +25 -12
- package/src/Select.tsx +219 -77
- package/src/Status.tsx +8 -2
- package/src/Tabs.tsx +7 -11
- package/src/Tag.tsx +4 -4
- package/src/TagList.tsx +2 -2
- package/src/TextField.tsx +22 -9
- package/src/Tile.tsx +178 -0
- package/src/Toast.tsx +1 -1
- package/src/Tooltip.tsx +1 -1
- package/src/Typography.tsx +20 -28
- package/src/createShadowRootElement.ts +1 -1
- package/src/getTypedObjectKeys.ts +1 -1
- package/src/icons.generated/AddCircle.tsx +1 -1
- package/src/icons.generated/Apps.tsx +1 -1
- package/src/icons.generated/ArrowBottom.tsx +1 -1
- package/src/icons.generated/ArrowDown.tsx +1 -1
- package/src/icons.generated/ArrowLeft.tsx +1 -1
- package/src/icons.generated/ArrowRight.tsx +1 -1
- package/src/icons.generated/ArrowTop.tsx +1 -1
- package/src/icons.generated/ArrowUp.tsx +1 -1
- package/src/icons.generated/Calendar.tsx +1 -1
- package/src/icons.generated/Call.tsx +1 -1
- package/src/icons.generated/Chat.tsx +1 -1
- package/src/icons.generated/Check.tsx +1 -1
- package/src/icons.generated/ChevronDown.tsx +1 -1
- package/src/icons.generated/ChevronLeft.tsx +1 -1
- package/src/icons.generated/ChevronUp.tsx +1 -1
- package/src/icons.generated/Clock.tsx +1 -1
- package/src/icons.generated/Close.tsx +1 -1
- package/src/icons.generated/Copy.tsx +1 -1
- package/src/icons.generated/Delete.tsx +1 -1
- package/src/icons.generated/Deny.tsx +1 -1
- package/src/icons.generated/Devices.tsx +1 -1
- package/src/icons.generated/Directory.tsx +1 -1
- package/src/icons.generated/Download.tsx +1 -1
- package/src/icons.generated/Edit.tsx +1 -1
- package/src/icons.generated/ExpandLeft.tsx +1 -1
- package/src/icons.generated/ExpandRight.tsx +1 -1
- package/src/icons.generated/Filter.tsx +1 -1
- package/src/icons.generated/Folder.tsx +1 -1
- package/src/icons.generated/Globe.tsx +1 -1
- package/src/icons.generated/Grid.tsx +1 -1
- package/src/icons.generated/Group.tsx +1 -1
- package/src/icons.generated/Hide.tsx +1 -1
- package/src/icons.generated/Home.tsx +1 -1
- package/src/icons.generated/Link.tsx +1 -1
- package/src/icons.generated/List.tsx +1 -1
- package/src/icons.generated/Lock.tsx +1 -1
- package/src/icons.generated/More.tsx +1 -1
- package/src/icons.generated/Pause.tsx +1 -1
- package/src/icons.generated/Refresh.tsx +1 -1
- package/src/icons.generated/Reset.tsx +1 -1
- package/src/icons.generated/Resume.tsx +1 -1
- package/src/icons.generated/Search.tsx +1 -1
- package/src/icons.generated/Server.tsx +1 -1
- package/src/icons.generated/Settings.tsx +1 -1
- package/src/icons.generated/Show.tsx +1 -1
- package/src/icons.generated/Subtract.tsx +1 -1
- package/src/icons.generated/Sync.tsx +1 -1
- package/src/icons.generated/Unlock.tsx +1 -1
- package/src/icons.generated/Upload.tsx +1 -1
- package/src/icons.generated/User.tsx +1 -1
- package/src/icons.generated/Video.tsx +1 -1
- package/src/icons.generated/Warning.tsx +1 -1
- package/src/icons.generated/index.ts +1 -1
- package/src/index.ts +1 -1
- package/src/labs/DataFilters.tsx +36 -30
- package/src/labs/DataTable.tsx +20 -20
- package/src/labs/DatePicker.tsx +3 -1
- package/src/labs/Drawer.tsx +254 -0
- package/src/labs/GroupPicker.tsx +34 -15
- package/src/labs/PaginatedTable.tsx +12 -10
- package/src/labs/StaticTable.tsx +3 -3
- package/src/labs/Switch.tsx +5 -5
- package/src/labs/VirtualizedAutocomplete.tsx +19 -16
- package/src/labs/datePickerTheme.tsx +4 -2
- package/src/labs/index.ts +2 -0
- package/src/labs/materialReactTableTypes.tsx +1 -1
- package/src/properties/translations/odyssey-react-mui_cs.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_da.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_de.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_el.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_es.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_fi.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_fr.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_hu.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_id.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_it.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_ja.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_ko.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_ms.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_nb.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_nl_NL.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_pl.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_pt_BR.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_ro.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_ru.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_sv.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_th.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_tr.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_uk.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_vi.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_zh_CN.properties +3 -1
- package/src/properties/translations/odyssey-react-mui_zh_TW.properties +3 -1
- package/src/properties/ts/odyssey-react-mui_cs.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_da.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_de.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_el.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_es.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_fi.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_fr.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_hu.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_id.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_it.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ja.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ko.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ms.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_nb.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_nl_NL.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_pl.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_pt_BR.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ro.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ru.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_sv.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_th.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_tr.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_uk.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_vi.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_zh_CN.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_zh_TW.ts +1 -1
- package/src/theme/components.tsx +146 -15
- package/tsconfig.json +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataFilters.js","names":["memo","useCallback","useEffect","useMemo","useRef","useState","styled","Autocomplete","Box","TagList","Tag","SearchField","Button","CheckIcon","ChevronRightIcon","CloseCircleFilledIcon","FilterIcon","MenuItem","Paragraph","Subordinate","TextField","CheckboxGroup","Checkbox","RadioGroup","Radio","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DataFilters","onChangeSearch","onChangeFilters","hasSearchSubmitButton","searchDelayTime","defaultSearchTerm","additionalActions","filters","filtersProp","setFilters","initialInputValues","reduce","accumulator","filter","id","value","inputValues","setInputValues","searchValue","setSearchValue","activeFilters","isFiltersMenuOpen","setIsFiltersMenuOpen","filtersMenuAnchorElement","setFiltersMenuAnchorElement","isFilterPopoverOpen","setIsFilterPopoverOpen","filterPopoverAnchorElement","setFilterPopoverAnchorElement","filterPopoverCurrentFilter","setFilterPopoverCurrentFilter","menuRef","debouncer","undefined","current","clearTimeout","setTimeout","autocompleteOptions","variant","options","map","option","label","updateInputValue","filterId","updateFilters","updatedFilters","getAutoCompleteLabel","Array","isArray","valueElement","item","Boolean","handleMultiSelectChange","submit","startingValues","find","currentValues","updatedValues","includes","valuesToSave","sort","join","clearAllFilters","updatedInputValues","handleFilterSubmit","AutocompleteOuterContainer","div","AutocompleteInnerContainer","filterMenu","children","ariaLabel","endIcon","onClick","event","currentTarget","_Menu","anchorOrigin","horizontal","vertical","transformOrigin","anchorEl","onClose","open","PaperProps","ref","latestFilterValue","f","sx","display","alignItems","justifyContent","width","minWidth","marginRight","component","length","toLowerCase","gap","maxWidth","_Popover","ev","menuRect","getBoundingClientRect","clickInsideMenu","clientX","left","right","clientY","top","bottom","padding","onSubmit","preventDefault","onChange","_","type","hasInitialFocus","endAdornment","_IconButton","size","isRequired","isDefaultChecked","isChecked","style","onClear","target","borderTopWidth","borderTopColor","borderTopStyle","paddingTop","marginTop","onRemove","MemoizedDataFilters","displayName"],"sources":["../../src/labs/DataFilters.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n MutableRefObject,\n ReactNode,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { Box } from \"../Box\";\nimport { TagList } from \"../TagList\";\nimport { Tag } from \"../Tag\";\nimport { SearchField } from \"../SearchField\";\nimport { Button } from \"../Button\";\nimport {\n IconButton as MuiIconButton,\n Menu as MuiMenu,\n Popover as MuiPopover,\n} from \"@mui/material\";\nimport {\n CheckIcon,\n ChevronRightIcon,\n CloseCircleFilledIcon,\n FilterIcon,\n} from \"../icons.generated\";\nimport { MenuItem } from \"../MenuItem\";\nimport { Paragraph, Subordinate } from \"../Typography\";\nimport { TextField } from \"../TextField\";\nimport { CheckboxGroup } from \"../CheckboxGroup\";\nimport { Checkbox } from \"../Checkbox\";\nimport { RadioGroup } from \"../RadioGroup\";\nimport { Radio } from \"../Radio\";\nimport { MRT_ColumnDef, MRT_RowData } from \"material-react-table\";\n\nexport type DataFilterValue = string | string[] | undefined;\n\n// This is the shape of each individual filter\nexport type DataFilter = {\n /**\n * A unique ID for the filter, typically the same id\n * as the column it'll be applied to.\n */\n id: string;\n /**\n * The human-friendly name of the filter.\n */\n label: string;\n /**\n * The type of filter, which determines which filtering control\n * is shown.\n */\n variant?: MRT_ColumnDef<MRT_RowData>[\"filterVariant\"];\n /**\n * The current value of the filter. Typically a string, but\n * filters that allow for multiple selections (such as multi-select)\n * can accept an array.\n */\n value?: DataFilterValue;\n /**\n * If the filter control has preset options (such as a select or multi-select),\n * these are the options provided.\n */\n options?: Array<{ label: string; value: string }>;\n};\n\n// This is the type of the DataFilters component itself\nexport type DataFiltersProps = {\n /**\n * The callback that's fired when the search input changes\n * (either on change or on submit, based on the value of `hasSearchSubmitButton`).\n * If this is undefined, the search input will not be shown.\n */\n onChangeSearch?: (value: string) => void;\n /**\n * The callback that's fired when filter values change.\n */\n onChangeFilters?: (filters: Array<DataFilter>) => void;\n /**\n * If true, a Search button will be provided alongside the search input\n * and `onChangeSearch` will fire when the button is clicked, rather than\n * whenever the input value changes.\n */\n hasSearchSubmitButton?: boolean;\n /**\n * The debounce time, in milliseconds, for the search input firing\n * `onChangeSearch` when changed. If `hasSearchSubmitButton` is true,\n * this doesn't do anything.\n */\n searchDelayTime?: number;\n /**\n * The starting value of the search input\n */\n defaultSearchTerm?: string;\n /**\n * A slot for optional additional actions, like buttons, to be displayed\n * on the opposite side of the top row from the search and filter controls.\n */\n additionalActions?: ReactNode;\n /**\n * The filters available in the filter menu. If undefined,\n * the filter menu won't be shown.\n */\n filters?: Array<DataFilter>;\n};\n\nconst DataFilters = ({\n onChangeSearch,\n onChangeFilters,\n hasSearchSubmitButton = false,\n searchDelayTime = 200,\n defaultSearchTerm = \"\",\n additionalActions,\n filters: filtersProp = [],\n}: DataFiltersProps) => {\n const [filters, setFilters] = useState<DataFilter[]>(filtersProp);\n\n const initialInputValues = useMemo(() => {\n return filtersProp.reduce((accumulator, filter) => {\n accumulator[filter.id] = filter.value;\n return accumulator;\n }, {} as Record<string, DataFilterValue>);\n }, [filtersProp]);\n\n const [inputValues, setInputValues] = useState(initialInputValues);\n\n const [searchValue, setSearchValue] = useState<string>(defaultSearchTerm);\n const activeFilters = useMemo(() => {\n return filters.filter(\n (filter) => typeof filter.value === \"string\" && filter.value\n );\n }, [filters]);\n const [isFiltersMenuOpen, setIsFiltersMenuOpen] = useState<boolean>(false);\n const [filtersMenuAnchorElement, setFiltersMenuAnchorElement] = useState<\n HTMLElement | undefined\n >();\n const [isFilterPopoverOpen, setIsFilterPopoverOpen] =\n useState<boolean>(false);\n const [filterPopoverAnchorElement, setFilterPopoverAnchorElement] = useState<\n HTMLElement | undefined\n >();\n const [filterPopoverCurrentFilter, setFilterPopoverCurrentFilter] = useState<\n DataFilter | undefined\n >();\n\n const menuRef = useRef<HTMLDivElement>();\n\n useEffect(() => {\n onChangeFilters?.(filters);\n }, [filters, onChangeFilters]);\n\n const debouncer = useRef<NodeJS.Timeout | undefined>(undefined);\n useEffect(() => {\n if (!hasSearchSubmitButton) {\n if (debouncer.current) {\n clearTimeout(debouncer.current);\n }\n\n debouncer.current = setTimeout(() => {\n onChangeSearch?.(searchValue ?? \"\");\n }, searchDelayTime);\n }\n }, [onChangeSearch, searchValue, searchDelayTime, hasSearchSubmitButton]);\n\n const autocompleteOptions = useMemo(() => {\n // Check if filterPopoverCurrentFilter and filterPopoverCurrentFilter.options are defined\n if (\n filterPopoverCurrentFilter?.variant === \"autocomplete\" &&\n filterPopoverCurrentFilter?.options\n ) {\n return filterPopoverCurrentFilter.options.map((option) => ({\n label: option.label,\n }));\n }\n\n // if filterPopoverCurrentFilter or filterPopoverCurrentFilter.options is undefined\n return [];\n }, [filterPopoverCurrentFilter]);\n\n const updateInputValue = useCallback(\n ({ filterId, value }: { filterId: string; value: DataFilterValue }) => {\n setInputValues({ ...inputValues, [filterId]: value });\n },\n [inputValues]\n );\n\n const updateFilters = useCallback(\n ({ filterId, value }: { filterId: string; value: DataFilterValue }) => {\n const updatedFilters = filtersProp.map((filter) => ({\n ...filter,\n value: filter.id === filterId ? value : inputValues[filter.id],\n }));\n\n setFilters(updatedFilters);\n },\n [inputValues, filtersProp]\n );\n\n const getAutoCompleteLabel = <\n Value extends { label: string } | Array<{ label: string }>\n >(\n value: Value\n ) => {\n if (Array.isArray(value)) {\n // Iterating to find the label\n return value\n .map((valueElement) => {\n if (typeof valueElement === \"string\") {\n return undefined;\n }\n return valueElement.label;\n })\n .filter((item): item is string => Boolean(item));\n }\n\n return value?.label;\n };\n\n const handleMultiSelectChange = useCallback(\n (filterId: string, value: string, submit: boolean = false) => {\n const startingValues = filtersProp\n .find((filter) => filter.id === filterId)\n ?.options?.map((option) => option.value);\n const currentValues = (inputValues[filterId] ??\n startingValues) as string[];\n const updatedValues = currentValues.includes(value)\n ? currentValues.filter((item: string) => item !== value)\n : [...currentValues, value];\n const valuesToSave =\n updatedValues.sort().join() === startingValues?.sort().join()\n ? undefined\n : updatedValues;\n\n setInputValues({ ...inputValues, [filterId]: valuesToSave });\n\n if (submit) {\n const updatedFilters = filtersProp.map((filter) => ({\n ...filter,\n value: filter.id === filterId ? valuesToSave : inputValues[filter.id],\n }));\n\n setFilters(updatedFilters);\n }\n },\n [inputValues, filtersProp]\n );\n\n const clearAllFilters = useCallback(() => {\n const updatedInputValues = filtersProp.reduce((accumulator, filter) => {\n accumulator[filter.id] = undefined;\n return accumulator;\n }, {} as Record<string, DataFilterValue>);\n\n setInputValues(updatedInputValues);\n\n const updatedFilters = filtersProp.map((filter) => ({\n ...filter,\n value: undefined,\n }));\n\n setFilters(updatedFilters);\n }, [filtersProp]);\n\n const handleFilterSubmit = useCallback(() => {\n const updatedFilters = filtersProp.map((filter) => ({\n ...filter,\n value: inputValues[filter.id],\n }));\n\n setFilters(updatedFilters);\n }, [inputValues, filtersProp]);\n\n const AutocompleteOuterContainer = styled.div`\n display: flex;\n gap: 2;\n align-items: center;\n alignitems: \"flex-end\";\n `;\n const AutocompleteInnerContainer = styled.div`\n width: \"100%\";\n `;\n const filterMenu = useMemo(\n () => (\n <>\n <Box>\n <Button\n aria-controls={isFiltersMenuOpen ? \"filters-menu\" : undefined}\n aria-expanded={isFiltersMenuOpen ? \"true\" : undefined}\n aria-haspopup=\"true\"\n ariaLabel=\"Filters\"\n endIcon={<FilterIcon />}\n onClick={(event) => {\n setFiltersMenuAnchorElement(event.currentTarget);\n setIsFiltersMenuOpen(true);\n }}\n variant=\"secondary\"\n />\n </Box>\n\n <MuiMenu\n anchorOrigin={{ horizontal: \"left\", vertical: \"bottom\" }}\n transformOrigin={{ horizontal: \"left\", vertical: \"top\" }}\n id=\"filters-menu\"\n anchorEl={filtersMenuAnchorElement}\n onClose={() => setIsFiltersMenuOpen(false)}\n open={isFiltersMenuOpen}\n PaperProps={{\n ref: menuRef as MutableRefObject<HTMLDivElement>,\n }}\n >\n {filtersProp.map((filter) => {\n // Unintuitively, we can't just use filter.value to grab the filter value.\n // `filter` is the initial set of filters provided to the comoponent, so its\n // value prop may not reflect the current value of the filter.\n const latestFilterValue = filters.find(\n (f) => f.id === filter.id\n )?.value;\n\n return (\n <MenuItem\n key={filter.id}\n onClick={(event) => {\n setIsFilterPopoverOpen(true);\n setFilterPopoverAnchorElement(event.currentTarget);\n setFilterPopoverCurrentFilter(filter);\n }}\n >\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n width: \"100%\",\n minWidth: 180,\n }}\n >\n <Box sx={{ marginRight: 2 }}>\n <Paragraph component=\"div\">{filter.label}</Paragraph>\n <Subordinate component=\"div\">\n {!latestFilterValue ||\n (Array.isArray(latestFilterValue) &&\n latestFilterValue.length === 0)\n ? `Any ${filter.label.toLowerCase()}`\n : Array.isArray(latestFilterValue)\n ? `${latestFilterValue.length} selected`\n : latestFilterValue}\n </Subordinate>\n </Box>\n <ChevronRightIcon />\n </Box>\n </MenuItem>\n );\n })}\n </MuiMenu>\n </>\n ),\n [isFiltersMenuOpen, filtersMenuAnchorElement, filtersProp, filters]\n );\n\n return (\n <Box>\n {/* Upper section */}\n <Box sx={{ display: \"flex\", justifyContent: \"space-between\" }}>\n {/* Upper section left (filters and search) */}\n <Box sx={{ display: \"flex\", gap: 2, width: \"50%\", maxWidth: 480 }}>\n {/* Filter menu */}\n {filters.length > 0 && (\n <>\n {filterMenu}\n {/* Filter popover */}\n <MuiPopover\n anchorEl={filterPopoverAnchorElement}\n open={isFilterPopoverOpen}\n anchorOrigin={{ vertical: \"top\", horizontal: \"right\" }}\n onClose={(ev: MouseEvent) => {\n if (menuRef.current) {\n const menuRect = menuRef.current.getBoundingClientRect();\n const clickInsideMenu =\n ev.clientX >= menuRect.left &&\n ev.clientX <= menuRect.right &&\n ev.clientY >= menuRect.top &&\n ev.clientY <= menuRect.bottom;\n\n if (!clickInsideMenu) {\n setIsFiltersMenuOpen(false);\n }\n }\n\n setIsFilterPopoverOpen(false);\n }}\n >\n <Box sx={{ padding: 4, minWidth: 320 }}>\n <form\n onSubmit={(ev) => {\n ev.preventDefault();\n handleFilterSubmit();\n setIsFilterPopoverOpen(false);\n setIsFiltersMenuOpen(false);\n }}\n >\n {/* Autocomplete */}\n {filterPopoverCurrentFilter?.variant === \"autocomplete\" &&\n filterPopoverCurrentFilter?.options && (\n <AutocompleteOuterContainer>\n <AutocompleteInnerContainer>\n <Autocomplete\n label={filterPopoverCurrentFilter.label}\n value={\n inputValues[filterPopoverCurrentFilter.id] ?? \"\"\n }\n onChange={(_, value) => {\n const label =\n typeof value === \"string\"\n ? getAutoCompleteLabel({ label: value })\n : Array.isArray(value)\n ? getAutoCompleteLabel(\n value.map((item) =>\n typeof item === \"string\"\n ? { label: item }\n : item\n )\n )\n : value\n ? getAutoCompleteLabel(value)\n : \"\";\n\n updateInputValue({\n filterId: filterPopoverCurrentFilter.id,\n value: label,\n });\n }}\n options={autocompleteOptions}\n />\n </AutocompleteInnerContainer>\n <Button\n variant=\"primary\"\n endIcon={<CheckIcon />}\n type=\"submit\"\n />\n </AutocompleteOuterContainer>\n )}\n {/* Text or Number */}\n {(filterPopoverCurrentFilter?.variant === \"text\" ||\n filterPopoverCurrentFilter?.variant === \"range\") && (\n <Box\n sx={{\n display: \"flex\",\n gap: 2,\n alignItems: \"flex-end\",\n }}\n >\n <Box sx={{ width: \"100%\" }}>\n <TextField\n hasInitialFocus\n label={filterPopoverCurrentFilter.label}\n type={\n filterPopoverCurrentFilter.variant === \"range\"\n ? \"number\"\n : \"text\"\n }\n value={\n (inputValues[\n filterPopoverCurrentFilter.id\n ] as string) ?? \"\"\n }\n onChange={(ev) =>\n updateInputValue({\n filterId: filterPopoverCurrentFilter.id,\n value: ev.currentTarget.value,\n })\n }\n endAdornment={\n inputValues[filterPopoverCurrentFilter.id] && (\n <MuiIconButton\n size=\"small\"\n aria-label=\"Clear filter\"\n onClick={() => {\n updateInputValue({\n filterId: filterPopoverCurrentFilter.id,\n value: undefined,\n });\n\n updateFilters({\n filterId: filterPopoverCurrentFilter.id,\n value: undefined,\n });\n }}\n >\n <CloseCircleFilledIcon />\n </MuiIconButton>\n )\n }\n />\n </Box>\n <Button\n variant=\"primary\"\n endIcon={<CheckIcon />}\n type=\"submit\"\n />\n </Box>\n )}\n\n {/* Checkbox */}\n {filterPopoverCurrentFilter?.variant === \"multi-select\" &&\n filterPopoverCurrentFilter?.options && (\n <CheckboxGroup\n label={filterPopoverCurrentFilter.label}\n isRequired\n >\n {filterPopoverCurrentFilter.options.map(\n (option: { label: string; value: string }) => (\n <Checkbox\n key={option.value}\n label={option.label}\n value={option.value}\n isDefaultChecked={\n inputValues[\n filterPopoverCurrentFilter.id\n ]?.includes(option.value) ||\n inputValues[filterPopoverCurrentFilter.id] ===\n undefined\n }\n onChange={() =>\n handleMultiSelectChange(\n filterPopoverCurrentFilter.id,\n option.value,\n true\n )\n }\n />\n )\n )}\n </CheckboxGroup>\n )}\n\n {/* Radio */}\n {filterPopoverCurrentFilter?.variant === \"select\" &&\n filterPopoverCurrentFilter?.options && (\n <RadioGroup\n label={filterPopoverCurrentFilter.label}\n onChange={(_, value) => {\n updateInputValue({\n filterId: filterPopoverCurrentFilter.id,\n value,\n });\n\n updateFilters({\n filterId: filterPopoverCurrentFilter.id,\n value,\n });\n }}\n >\n <Radio\n label=\"Any\"\n value={\"\"}\n isChecked={\n !inputValues[filterPopoverCurrentFilter.id]\n }\n />\n <>\n {filterPopoverCurrentFilter.options.map(\n (option: { label: string; value: string }) => (\n <Radio\n key={option.value}\n label={option.label}\n value={option.value}\n isChecked={\n inputValues[\n filterPopoverCurrentFilter.id\n ] === option.value\n }\n />\n )\n )}\n </>\n </RadioGroup>\n )}\n </form>\n </Box>\n </MuiPopover>\n </>\n )}\n\n {/* Search */}\n {onChangeSearch && (\n <form\n style={{ width: \"100%\" }}\n onSubmit={(event) => {\n event.preventDefault();\n if (hasSearchSubmitButton) {\n onChangeSearch(searchValue);\n }\n }}\n >\n <Box sx={{ display: \"flex\", gap: 2, width: \"100%\" }}>\n <SearchField\n value={searchValue}\n label=\"Search\"\n onClear={() => {\n setSearchValue(\"\");\n onChangeSearch(\"\");\n }}\n onChange={(ev) => setSearchValue(ev.target.value)}\n />\n {hasSearchSubmitButton && (\n <Box>\n <Button\n variant=\"primary\"\n label=\"Search\"\n onClick={() => onChangeSearch(searchValue)}\n />\n </Box>\n )}\n </Box>\n </form>\n )}\n </Box>\n\n {/* Upper section right (clear filters & additional actions) */}\n <Box sx={{ display: \"flex\", gap: 2 }}>\n {activeFilters.length > 0 && (\n <Box>\n <Button\n variant=\"secondary\"\n label=\"Clear filters\"\n onClick={clearAllFilters}\n />\n </Box>\n )}\n {additionalActions}\n </Box>\n </Box>\n\n {/* Lower section */}\n {activeFilters.length > 0 && (\n <Box\n sx={{\n borderTopWidth: 1,\n borderTopColor: \"#eeeeee\",\n borderTopStyle: \"solid\",\n paddingTop: 4,\n marginTop: 4,\n }}\n >\n <TagList>\n {activeFilters.map((filter) => (\n <Tag\n key={filter.label}\n label={`${filter.label}: ${filter.value}`}\n onRemove={() => {\n updateInputValue({\n filterId: filter.id,\n value: undefined,\n });\n\n updateFilters({\n filterId: filter.id,\n value: undefined,\n });\n }}\n />\n ))}\n </TagList>\n </Box>\n )}\n </Box>\n );\n};\n\nconst MemoizedDataFilters = memo(DataFilters);\nMemoizedDataFilters.displayName = \"DataFilters\";\n\nexport { MemoizedDataFilters as DataFilters };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataFilters.js","names":["memo","useCallback","useEffect","useMemo","useRef","useState","styled","Autocomplete","Box","TagList","Tag","SearchField","Button","CheckIcon","ChevronRightIcon","CloseCircleFilledIcon","FilterIcon","MenuItem","Paragraph","Subordinate","TextField","CheckboxGroup","Checkbox","RadioGroup","Radio","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DataFilters","onChangeSearch","onChangeFilters","hasSearchSubmitButton","searchDelayTime","defaultSearchTerm","additionalActions","filters","filtersProp","setFilters","initialInputValues","reduce","accumulator","filter","id","value","inputValues","setInputValues","searchValue","setSearchValue","activeFilters","isFiltersMenuOpen","setIsFiltersMenuOpen","filtersMenuAnchorElement","setFiltersMenuAnchorElement","isFilterPopoverOpen","setIsFilterPopoverOpen","filterPopoverAnchorElement","setFilterPopoverAnchorElement","filterPopoverCurrentFilter","setFilterPopoverCurrentFilter","menuRef","debouncer","undefined","current","clearTimeout","setTimeout","autocompleteOptions","variant","options","map","option","label","updateInputValue","filterId","updateFilters","updatedFilters","getAutoCompleteLabel","Array","isArray","valueElement","item","Boolean","handleMultiSelectChange","submit","startingValues","find","currentValues","updatedValues","includes","valuesToSave","sort","join","clearAllFilters","updatedInputValues","handleFilterSubmit","AutocompleteOuterContainer","div","AutocompleteInnerContainer","filterMenu","children","ariaLabel","endIcon","onClick","event","currentTarget","_Menu","anchorOrigin","horizontal","vertical","transformOrigin","anchorEl","onClose","open","PaperProps","ref","latestFilterValue","f","sx","display","alignItems","justifyContent","width","minWidth","marginRight","component","length","toLowerCase","gap","maxWidth","_Popover","ev","menuRect","getBoundingClientRect","clickInsideMenu","clientX","left","right","clientY","top","bottom","padding","onSubmit","preventDefault","onChange","_","type","hasInitialFocus","endAdornment","_IconButton","size","isRequired","isDefaultChecked","isChecked","style","onClear","target","borderTopWidth","borderTopColor","borderTopStyle","paddingTop","marginTop","onRemove","MemoizedDataFilters","displayName"],"sources":["../../src/labs/DataFilters.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n MutableRefObject,\n ReactNode,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { Box } from \"../Box\";\nimport { TagList } from \"../TagList\";\nimport { Tag } from \"../Tag\";\nimport { SearchField } from \"../SearchField\";\nimport { Button } from \"../Button\";\nimport {\n IconButton as MuiIconButton,\n Menu as MuiMenu,\n Popover as MuiPopover,\n} from \"@mui/material\";\nimport {\n CheckIcon,\n ChevronRightIcon,\n CloseCircleFilledIcon,\n FilterIcon,\n} from \"../icons.generated\";\nimport { MenuItem } from \"../MenuItem\";\nimport { Paragraph, Subordinate } from \"../Typography\";\nimport { TextField } from \"../TextField\";\nimport { CheckboxGroup } from \"../CheckboxGroup\";\nimport { Checkbox } from \"../Checkbox\";\nimport { RadioGroup } from \"../RadioGroup\";\nimport { Radio } from \"../Radio\";\nimport { MRT_ColumnDef, MRT_RowData } from \"material-react-table\";\n\nexport type DataFilterValue = string | string[] | undefined;\n\n// This is the shape of each individual filter\nexport type DataFilter = {\n /**\n * A unique ID for the filter, typically the same id\n * as the column it'll be applied to.\n */\n id: string;\n /**\n * The human-friendly name of the filter.\n */\n label: string;\n /**\n * The type of filter, which determines which filtering control\n * is shown.\n */\n variant?: MRT_ColumnDef<MRT_RowData>[\"filterVariant\"];\n /**\n * The current value of the filter. Typically a string, but\n * filters that allow for multiple selections (such as multi-select)\n * can accept an array.\n */\n value?: DataFilterValue;\n /**\n * If the filter control has preset options (such as a select or multi-select),\n * these are the options provided.\n */\n options?: Array<{ label: string; value: string }>;\n};\n\n// This is the type of the DataFilters component itself\nexport type DataFiltersProps = {\n /**\n * The callback that's fired when the search input changes\n * (either on change or on submit, based on the value of `hasSearchSubmitButton`).\n * If this is undefined, the search input will not be shown.\n */\n onChangeSearch?: (value: string) => void;\n /**\n * The callback that's fired when filter values change.\n */\n onChangeFilters?: (filters: Array<DataFilter>) => void;\n /**\n * If true, a Search button will be provided alongside the search input\n * and `onChangeSearch` will fire when the button is clicked, rather than\n * whenever the input value changes.\n */\n hasSearchSubmitButton?: boolean;\n /**\n * The debounce time, in milliseconds, for the search input firing\n * `onChangeSearch` when changed. If `hasSearchSubmitButton` is true,\n * this doesn't do anything.\n */\n searchDelayTime?: number;\n /**\n * The starting value of the search input\n */\n defaultSearchTerm?: string;\n /**\n * A slot for optional additional actions, like buttons, to be displayed\n * on the opposite side of the top row from the search and filter controls.\n */\n additionalActions?: ReactNode;\n /**\n * The filters available in the filter menu. If undefined,\n * the filter menu won't be shown.\n */\n filters?: Array<DataFilter>;\n};\n\nconst DataFilters = ({\n onChangeSearch,\n onChangeFilters,\n hasSearchSubmitButton = false,\n searchDelayTime = 200,\n defaultSearchTerm = \"\",\n additionalActions,\n filters: filtersProp = [],\n}: DataFiltersProps) => {\n const [filters, setFilters] = useState<DataFilter[]>(filtersProp);\n\n const initialInputValues = useMemo(() => {\n return filtersProp.reduce(\n (accumulator, filter) => {\n accumulator[filter.id] = filter.value;\n return accumulator;\n },\n {} as Record<string, DataFilterValue>,\n );\n }, [filtersProp]);\n\n const [inputValues, setInputValues] = useState(initialInputValues);\n\n const [searchValue, setSearchValue] = useState<string>(defaultSearchTerm);\n const activeFilters = useMemo(() => {\n return filters.filter(\n (filter) => typeof filter.value === \"string\" && filter.value,\n );\n }, [filters]);\n const [isFiltersMenuOpen, setIsFiltersMenuOpen] = useState<boolean>(false);\n const [filtersMenuAnchorElement, setFiltersMenuAnchorElement] = useState<\n HTMLElement | undefined\n >();\n const [isFilterPopoverOpen, setIsFilterPopoverOpen] =\n useState<boolean>(false);\n const [filterPopoverAnchorElement, setFilterPopoverAnchorElement] = useState<\n HTMLElement | undefined\n >();\n const [filterPopoverCurrentFilter, setFilterPopoverCurrentFilter] = useState<\n DataFilter | undefined\n >();\n\n const menuRef = useRef<HTMLDivElement>();\n\n useEffect(() => {\n onChangeFilters?.(filters);\n }, [filters, onChangeFilters]);\n\n const debouncer = useRef<NodeJS.Timeout | undefined>(undefined);\n useEffect(() => {\n if (!hasSearchSubmitButton) {\n if (debouncer.current) {\n clearTimeout(debouncer.current);\n }\n\n debouncer.current = setTimeout(() => {\n onChangeSearch?.(searchValue ?? \"\");\n }, searchDelayTime);\n }\n }, [onChangeSearch, searchValue, searchDelayTime, hasSearchSubmitButton]);\n\n const autocompleteOptions = useMemo(() => {\n // Check if filterPopoverCurrentFilter and filterPopoverCurrentFilter.options are defined\n if (\n filterPopoverCurrentFilter?.variant === \"autocomplete\" &&\n filterPopoverCurrentFilter?.options\n ) {\n return filterPopoverCurrentFilter.options.map((option) => ({\n label: option.label,\n }));\n }\n\n // if filterPopoverCurrentFilter or filterPopoverCurrentFilter.options is undefined\n return [];\n }, [filterPopoverCurrentFilter]);\n\n const updateInputValue = useCallback(\n ({ filterId, value }: { filterId: string; value: DataFilterValue }) => {\n setInputValues({ ...inputValues, [filterId]: value });\n },\n [inputValues],\n );\n\n const updateFilters = useCallback(\n ({ filterId, value }: { filterId: string; value: DataFilterValue }) => {\n const updatedFilters = filtersProp.map((filter) => ({\n ...filter,\n value: filter.id === filterId ? value : inputValues[filter.id],\n }));\n\n setFilters(updatedFilters);\n },\n [inputValues, filtersProp],\n );\n\n const getAutoCompleteLabel = <\n Value extends { label: string } | Array<{ label: string }>,\n >(\n value: Value,\n ) => {\n if (Array.isArray(value)) {\n // Iterating to find the label\n return value\n .map((valueElement) => {\n if (typeof valueElement === \"string\") {\n return undefined;\n }\n return valueElement.label;\n })\n .filter((item): item is string => Boolean(item));\n }\n\n return value?.label;\n };\n\n const handleMultiSelectChange = useCallback(\n (filterId: string, value: string, submit: boolean = false) => {\n const startingValues = filtersProp\n .find((filter) => filter.id === filterId)\n ?.options?.map((option) => option.value);\n const currentValues = (inputValues[filterId] ??\n startingValues) as string[];\n const updatedValues = currentValues.includes(value)\n ? currentValues.filter((item: string) => item !== value)\n : [...currentValues, value];\n const valuesToSave =\n updatedValues.sort().join() === startingValues?.sort().join()\n ? undefined\n : updatedValues;\n\n setInputValues({ ...inputValues, [filterId]: valuesToSave });\n\n if (submit) {\n const updatedFilters = filtersProp.map((filter) => ({\n ...filter,\n value: filter.id === filterId ? valuesToSave : inputValues[filter.id],\n }));\n\n setFilters(updatedFilters);\n }\n },\n [inputValues, filtersProp],\n );\n\n const clearAllFilters = useCallback(() => {\n const updatedInputValues = filtersProp.reduce(\n (accumulator, filter) => {\n accumulator[filter.id] = undefined;\n return accumulator;\n },\n {} as Record<string, DataFilterValue>,\n );\n\n setInputValues(updatedInputValues);\n\n const updatedFilters = filtersProp.map((filter) => ({\n ...filter,\n value: undefined,\n }));\n\n setFilters(updatedFilters);\n }, [filtersProp]);\n\n const handleFilterSubmit = useCallback(() => {\n const updatedFilters = filtersProp.map((filter) => ({\n ...filter,\n value: inputValues[filter.id],\n }));\n\n setFilters(updatedFilters);\n }, [inputValues, filtersProp]);\n\n const AutocompleteOuterContainer = styled.div`\n display: flex;\n gap: 2;\n align-items: center;\n alignitems: \"flex-end\";\n `;\n const AutocompleteInnerContainer = styled.div`\n width: \"100%\";\n `;\n const filterMenu = useMemo(\n () => (\n <>\n <Box>\n <Button\n aria-controls={isFiltersMenuOpen ? \"filters-menu\" : undefined}\n aria-expanded={isFiltersMenuOpen ? \"true\" : undefined}\n aria-haspopup=\"true\"\n ariaLabel=\"Filters\"\n endIcon={<FilterIcon />}\n onClick={(event) => {\n setFiltersMenuAnchorElement(event.currentTarget);\n setIsFiltersMenuOpen(true);\n }}\n variant=\"secondary\"\n />\n </Box>\n\n <MuiMenu\n anchorOrigin={{ horizontal: \"left\", vertical: \"bottom\" }}\n transformOrigin={{ horizontal: \"left\", vertical: \"top\" }}\n id=\"filters-menu\"\n anchorEl={filtersMenuAnchorElement}\n onClose={() => setIsFiltersMenuOpen(false)}\n open={isFiltersMenuOpen}\n PaperProps={{\n ref: menuRef as MutableRefObject<HTMLDivElement>,\n }}\n >\n {filtersProp.map((filter) => {\n // Unintuitively, we can't just use filter.value to grab the filter value.\n // `filter` is the initial set of filters provided to the comoponent, so its\n // value prop may not reflect the current value of the filter.\n const latestFilterValue = filters.find(\n (f) => f.id === filter.id,\n )?.value;\n\n return (\n <MenuItem\n key={filter.id}\n onClick={(event) => {\n setIsFilterPopoverOpen(true);\n setFilterPopoverAnchorElement(event.currentTarget);\n setFilterPopoverCurrentFilter(filter);\n }}\n >\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n width: \"100%\",\n minWidth: 180,\n }}\n >\n <Box sx={{ marginRight: 2 }}>\n <Paragraph component=\"div\">{filter.label}</Paragraph>\n <Subordinate component=\"div\">\n {!latestFilterValue ||\n (Array.isArray(latestFilterValue) &&\n latestFilterValue.length === 0)\n ? `Any ${filter.label.toLowerCase()}`\n : Array.isArray(latestFilterValue)\n ? `${latestFilterValue.length} selected`\n : latestFilterValue}\n </Subordinate>\n </Box>\n <ChevronRightIcon />\n </Box>\n </MenuItem>\n );\n })}\n </MuiMenu>\n </>\n ),\n [isFiltersMenuOpen, filtersMenuAnchorElement, filtersProp, filters],\n );\n\n return (\n <Box>\n {/* Upper section */}\n <Box sx={{ display: \"flex\", justifyContent: \"space-between\" }}>\n {/* Upper section left (filters and search) */}\n <Box sx={{ display: \"flex\", gap: 2, width: \"50%\", maxWidth: 480 }}>\n {/* Filter menu */}\n {filters.length > 0 && (\n <>\n {filterMenu}\n {/* Filter popover */}\n <MuiPopover\n anchorEl={filterPopoverAnchorElement}\n open={isFilterPopoverOpen}\n anchorOrigin={{ vertical: \"top\", horizontal: \"right\" }}\n onClose={(ev: MouseEvent) => {\n if (menuRef.current) {\n const menuRect = menuRef.current.getBoundingClientRect();\n const clickInsideMenu =\n ev.clientX >= menuRect.left &&\n ev.clientX <= menuRect.right &&\n ev.clientY >= menuRect.top &&\n ev.clientY <= menuRect.bottom;\n\n if (!clickInsideMenu) {\n setIsFiltersMenuOpen(false);\n }\n }\n\n setIsFilterPopoverOpen(false);\n }}\n >\n <Box sx={{ padding: 4, minWidth: 320 }}>\n <form\n onSubmit={(ev) => {\n ev.preventDefault();\n handleFilterSubmit();\n setIsFilterPopoverOpen(false);\n setIsFiltersMenuOpen(false);\n }}\n >\n {/* Autocomplete */}\n {filterPopoverCurrentFilter?.variant === \"autocomplete\" &&\n filterPopoverCurrentFilter?.options && (\n <AutocompleteOuterContainer>\n <AutocompleteInnerContainer>\n <Autocomplete\n label={filterPopoverCurrentFilter.label}\n value={\n inputValues[filterPopoverCurrentFilter.id] ?? \"\"\n }\n onChange={(_, value) => {\n const label =\n typeof value === \"string\"\n ? getAutoCompleteLabel({ label: value })\n : Array.isArray(value)\n ? getAutoCompleteLabel(\n value.map((item) =>\n typeof item === \"string\"\n ? { label: item }\n : item,\n ),\n )\n : value\n ? getAutoCompleteLabel(value)\n : \"\";\n\n updateInputValue({\n filterId: filterPopoverCurrentFilter.id,\n value: label,\n });\n }}\n options={autocompleteOptions}\n />\n </AutocompleteInnerContainer>\n <Button\n variant=\"primary\"\n endIcon={<CheckIcon />}\n type=\"submit\"\n />\n </AutocompleteOuterContainer>\n )}\n {/* Text or Number */}\n {(filterPopoverCurrentFilter?.variant === \"text\" ||\n filterPopoverCurrentFilter?.variant === \"range\") && (\n <Box\n sx={{\n display: \"flex\",\n gap: 2,\n alignItems: \"flex-end\",\n }}\n >\n <Box sx={{ width: \"100%\" }}>\n <TextField\n hasInitialFocus\n label={filterPopoverCurrentFilter.label}\n type={\n filterPopoverCurrentFilter.variant === \"range\"\n ? \"number\"\n : \"text\"\n }\n value={\n (inputValues[\n filterPopoverCurrentFilter.id\n ] as string) ?? \"\"\n }\n onChange={(ev) =>\n updateInputValue({\n filterId: filterPopoverCurrentFilter.id,\n value: ev.currentTarget.value,\n })\n }\n endAdornment={\n inputValues[filterPopoverCurrentFilter.id] && (\n <MuiIconButton\n size=\"small\"\n aria-label=\"Clear filter\"\n onClick={() => {\n updateInputValue({\n filterId: filterPopoverCurrentFilter.id,\n value: undefined,\n });\n\n updateFilters({\n filterId: filterPopoverCurrentFilter.id,\n value: undefined,\n });\n }}\n >\n <CloseCircleFilledIcon />\n </MuiIconButton>\n )\n }\n />\n </Box>\n <Button\n variant=\"primary\"\n endIcon={<CheckIcon />}\n type=\"submit\"\n />\n </Box>\n )}\n\n {/* Checkbox */}\n {filterPopoverCurrentFilter?.variant === \"multi-select\" &&\n filterPopoverCurrentFilter?.options && (\n <CheckboxGroup\n label={filterPopoverCurrentFilter.label}\n isRequired\n >\n {filterPopoverCurrentFilter.options.map(\n (option: { label: string; value: string }) => (\n <Checkbox\n key={option.value}\n label={option.label}\n value={option.value}\n isDefaultChecked={\n inputValues[\n filterPopoverCurrentFilter.id\n ]?.includes(option.value) ||\n inputValues[filterPopoverCurrentFilter.id] ===\n undefined\n }\n onChange={() =>\n handleMultiSelectChange(\n filterPopoverCurrentFilter.id,\n option.value,\n true,\n )\n }\n />\n ),\n )}\n </CheckboxGroup>\n )}\n\n {/* Radio */}\n {filterPopoverCurrentFilter?.variant === \"select\" &&\n filterPopoverCurrentFilter?.options && (\n <RadioGroup\n label={filterPopoverCurrentFilter.label}\n onChange={(_, value) => {\n updateInputValue({\n filterId: filterPopoverCurrentFilter.id,\n value,\n });\n\n updateFilters({\n filterId: filterPopoverCurrentFilter.id,\n value,\n });\n }}\n >\n <Radio\n label=\"Any\"\n value={\"\"}\n isChecked={\n !inputValues[filterPopoverCurrentFilter.id]\n }\n />\n <>\n {filterPopoverCurrentFilter.options.map(\n (option: { label: string; value: string }) => (\n <Radio\n key={option.value}\n label={option.label}\n value={option.value}\n isChecked={\n inputValues[\n filterPopoverCurrentFilter.id\n ] === option.value\n }\n />\n ),\n )}\n </>\n </RadioGroup>\n )}\n </form>\n </Box>\n </MuiPopover>\n </>\n )}\n\n {/* Search */}\n {onChangeSearch && (\n <form\n style={{ width: \"100%\" }}\n onSubmit={(event) => {\n event.preventDefault();\n if (hasSearchSubmitButton) {\n onChangeSearch(searchValue);\n }\n }}\n >\n <Box sx={{ display: \"flex\", gap: 2, width: \"100%\" }}>\n <SearchField\n value={searchValue}\n label=\"Search\"\n onClear={() => {\n setSearchValue(\"\");\n onChangeSearch(\"\");\n }}\n onChange={(ev) => setSearchValue(ev.target.value)}\n />\n {hasSearchSubmitButton && (\n <Box>\n <Button\n variant=\"primary\"\n label=\"Search\"\n onClick={() => onChangeSearch(searchValue)}\n />\n </Box>\n )}\n </Box>\n </form>\n )}\n </Box>\n\n {/* Upper section right (clear filters & additional actions) */}\n <Box sx={{ display: \"flex\", gap: 2 }}>\n {activeFilters.length > 0 && (\n <Box>\n <Button\n variant=\"secondary\"\n label=\"Clear filters\"\n onClick={clearAllFilters}\n />\n </Box>\n )}\n {additionalActions}\n </Box>\n </Box>\n\n {/* Lower section */}\n {activeFilters.length > 0 && (\n <Box\n sx={{\n borderTopWidth: 1,\n borderTopColor: \"#eeeeee\",\n borderTopStyle: \"solid\",\n paddingTop: 4,\n marginTop: 4,\n }}\n >\n <TagList>\n {activeFilters.map((filter) => (\n <Tag\n key={filter.label}\n label={`${filter.label}: ${filter.value}`}\n onRemove={() => {\n updateInputValue({\n filterId: filter.id,\n value: undefined,\n });\n\n updateFilters({\n filterId: filter.id,\n value: undefined,\n });\n }}\n />\n ))}\n </TagList>\n </Box>\n )}\n </Box>\n );\n};\n\nconst MemoizedDataFilters = memo(DataFilters);\nMemoizedDataFilters.displayName = \"DataFilters\";\n\nexport { MemoizedDataFilters as DataFilters };\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.js","names":["useMaterialReactTable","MRT_TableContainer","memo","useCallback","useEffect","useMemo","useRef","useState","ArrowTopIcon","ArrowBottomIcon","ArrowDownIcon","ArrowUpIcon","DragIndicatorIcon","ListIcon","ShowIcon","MoreIcon","useOdysseyDesignTokens","DataTablePagination","DataFilters","Box","MenuButton","MenuItem","ArrowUnsortedIcon","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","densityValues","reorderDataRowsLocally","currentData","rowId","newIndex","updatedData","rowIndex","findIndex","row","id","removedRow","splice","DataTable","columns","data","dataProp","getRowId","page","pageProp","initialDensity","resultsPerPage","resultsPerPageProp","fetchDataFn","reorderDataFn","totalRows","hasSearchSubmitButton","searchDelayTime","paginationType","onRowSelectionChange","rowActionButtons","rowActionMenuItems","hasChangeableDensity","hasColumnResizing","hasColumnVisibility","hasFilters","hasPagination","hasRowReordering","hasRowSelection","hasSearch","hasSorting","odysseyDesignTokens","draggingRow","setDraggingRow","showSkeletons","setShowSkeletons","setData","setPage","setResultsPerPage","rowSelection","setRowSelection","sorting","setSorting","density","setDensity","initialColumnVisibility","reduce","acc","column","accessorKey","columnVisibility","setColumnVisibility","globalFilter","setGlobalFilter","filters","setFilters","refreshData","newData","sort","search","error","handleSortingChange","updater","prevSorting","Function","handleColumnVisibility","columnId","prevVisibility","handleSearch","value","handleFilters","updatedFilters","handleRowSelectionChange","prevRowSelection","updateRowOrder","rowVirtualizerInstanceRef","getRowFromTableAndSetHovered","table","nextRow","getRow","setHoveredRow","resetDraggingAndHoveredRow","handleDragHandleKeyDown","event","hoveredRow","getState","key","isSpaceKey","isEnterKey","isEscapeKey","isArrowDown","isArrowUp","isSpaceOrEnter","zeroIndexedPageNumber","currentIndex","index","preventDefault","stopPropagation","pageRelativeIndex","setTimeout","TransitionDurationMainAsNumber","nextIndex","handleDragHandleOnDragEnd","cols","getAllColumns","toggleVisibility","handleDragHandleOnDragCapture","state","rowVirtualizerOptions","overscan","enableRowVirtualization","enableColumnResizing","enableDensityToggle","enableFullScreenToggle","enablePagination","enableRowSelection","enableFilters","enableHiding","enableRowOrdering","enableRowDragging","enableSorting","selectAllMode","enableColumnActions","layoutMode","displayColumnDefOptions","muiTableBodyCellProps","align","sx","overflow","width","muiTableHeadCellProps","header","minWidth","enableGlobalFilter","manualFiltering","manualSorting","icons","ArrowDownwardIcon","DragHandleIcon","SyncAltIcon","onSortingChange","enableRowActions","positionActionsColumn","className","find","item","muiTableBodyRowProps","undefined","muiRowDragHandleProps","title","onKeyDown","onBlur","onDragEnd","onDragCapture","padding","Spacing1","borderRadius","BorderRadiusMain","boxShadow","HueNeutralWhite","PalettePrimaryMain","outline","outlineOffset","renderRowActions","display","children","endIcon","size","buttonVariant","ariaLabel","menuAlignment","isDisabled","onClick","tableSettings","shouldCloseOnSelect","map","isSelected","charAt","toUpperCase","slice","filter","_Checkbox","checked","flexDirection","gap","onChangeSearch","onChangeFilters","additionalActions","enableColumnFilter","label","variant","filterVariant","options","filterSelectOptions","currentNumberOfResults","length","currentPage","isPreviousButtonDisabled","isNextButtonDisabled","onClickPrevious","onClickNext","MemoizedDataTable","displayName"],"sources":["../../src/labs/DataTable.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n MRT_Updater,\n MRT_Virtualizer,\n MRT_RowData,\n MRT_TableOptions,\n useMaterialReactTable,\n MRT_SortingState,\n MRT_DensityState,\n MRT_VisibilityState,\n MRT_TableContainer,\n MRT_RowSelectionState,\n MRT_Row,\n MRT_ColumnDef,\n MRT_TableInstance,\n} from \"material-react-table\";\nimport {\n Fragment,\n ReactElement,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n KeyboardEvent,\n} from \"react\";\nimport {\n ArrowTopIcon,\n ArrowBottomIcon,\n ArrowDownIcon,\n ArrowUpIcon,\n DragIndicatorIcon,\n ListIcon,\n ShowIcon,\n MoreIcon,\n} from \"../icons.generated\";\nimport { Checkbox as MuiCheckbox } from \"@mui/material\";\nimport { useOdysseyDesignTokens } from \"../OdysseyDesignTokensContext\";\nimport {\n DataTablePagination,\n paginationTypeValues,\n} from \"./DataTablePagination\";\nimport { DataFilter, DataFilters } from \"./DataFilters\";\nimport { Button } from \"../Button\";\nimport { Box } from \"../Box\";\nimport { MenuButton, MenuItem } from \"..\";\nimport { ArrowUnsortedIcon } from \"../icons.generated\";\n\nexport const densityValues = [\"comfortable\", \"spacious\", \"compact\"] as const;\n\nexport type {\n MRT_ColumnFiltersState,\n MRT_SortingState,\n MRT_ColumnDef as TableColumn,\n} from \"material-react-table\";\n\n// The shape of the table columns,\n// with props named to match their MRT_ColumnDef counterparts\nexport type DataColumn = {\n /**\n * The unique ID of the column\n */\n accessorKey: string;\n /**\n * The human-friendly title of the column\n */\n header: string;\n /**\n * Customize the way each cell in the column is\n * displayed via a custom React component.\n */\n Cell?: MRT_ColumnDef<MRT_RowData>[\"Cell\"];\n /**\n * The UI control that will be used to filter the column.\n * Defaults to a standard text input.\n */\n filterVariant?: MRT_ColumnDef<MRT_RowData>[\"filterVariant\"];\n /**\n * If the filter control has preset options (such as a select or multi-select),\n * these are the options provided.\n */\n filterSelectOptions?: Array<{ label: string; value: string }>;\n /**\n * The optional column width, in pixels\n */\n size?: number;\n /**\n * The minimum column width, in pixels\n */\n minSize?: number;\n /**\n * The maximum column width, in pixels\n */\n maxSize?: number;\n /**\n * If set to false, the column won't be filterable\n */\n enableColumnFilter?: boolean;\n /**\n * If set to false, the column won't be searchable\n */\n enableGlobalFilter?: boolean;\n /**\n * If set to false, the column won't be sortable\n */\n enableSorting?: boolean;\n /**\n * If set to false, the column won't be resizable\n */\n enableResizing?: boolean;\n /**\n * If set to false, the column won't be hideable\n */\n enableHiding?: boolean;\n};\n\nexport type DataTableProps = {\n /**\n * The columns that make up the table\n */\n columns: DataColumn[];\n /**\n * The data that goes into the table, which will be displayed\n * as the table rows\n */\n data: MRT_TableOptions<MRT_RowData>[\"data\"];\n /**\n * The total number of rows in the table. Optional, because it's sometimes impossible\n * to calculate. Used in table pagination to know when to disable the \"next\"/\"more\" button.\n */\n totalRows?: number;\n /**\n * The function to get the ID of a row\n */\n getRowId?: MRT_TableOptions<MRT_RowData>[\"getRowId\"];\n /**\n * The initial density of the table. This is available even if the table density\n * isn't changeable.\n */\n initialDensity?: (typeof densityValues)[number];\n /**\n * If true, the end user will be able to change the table density.\n */\n hasChangeableDensity?: boolean;\n /**\n * If true, the end user can resize individual columns.\n */\n hasColumnResizing?: boolean;\n /**\n * If true, the end user will be able to show/hide columns.\n */\n hasColumnVisibility?: boolean;\n /**\n * If true, the end user will be able to filter columns.\n */\n hasFilters?: boolean;\n /**\n * If true, the table will include pagination controls.\n */\n hasPagination?: boolean;\n /**\n * If true, the table will include checkboxes on each row, enabling\n * the user to select some or all rows.\n */\n hasRowSelection?: boolean;\n /**\n * If true, the global table search controls will be shown.\n */\n hasSearch?: boolean;\n /**\n * If true, the end user can sort columns (ascending, descending, or neither)\n */\n hasSorting?: boolean;\n /**\n * If true, the end user can reorder rows via a drag-and-drop interface\n */\n hasRowReordering?: boolean;\n /**\n * If true, the search field will include a Search button, rather than\n * firing on input change.\n */\n hasSearchSubmitButton?: boolean;\n /**\n * The debounce time, in milliseconds, for the search input firing\n * `onChangeSearch` when changed. If `hasSearchSubmitButton` is true,\n * this doesn't do anything.\n */\n searchDelayTime?: number;\n /**\n * Callback that fires when a row (or rows) is selected or unselected.\n */\n onRowSelectionChange?: (rowSelection: MRT_RowSelectionState) => void;\n /**\n * Callback that fires whenever the table needs to fetch new data, due to changes in\n * page, results per page, search input, filters, or sorting\n */\n fetchDataFn: ({\n page,\n resultsPerPage,\n search,\n filters,\n sort,\n }: {\n page?: number;\n resultsPerPage?: number;\n search?: string;\n filters?: DataFilter[];\n sort?: MRT_SortingState;\n }) => MRT_TableOptions<MRT_RowData>[\"data\"];\n /**\n * Callback that fires when the user reorders rows within the table. Can be used\n * to propogate order change to the backend.\n */\n reorderDataFn?: ({\n rowId,\n newIndex,\n }: {\n rowId: string;\n newIndex: number;\n }) => void;\n /**\n * The current page number.\n */\n page?: number;\n /**\n * The number of results per page.\n */\n resultsPerPage?: number;\n /**\n * The type of pagination controls shown. Defaults to next/prev buttons, but can be\n * set to a simple \"Load more\" button by setting to \"loadMore\".\n */\n paginationType?: (typeof paginationTypeValues)[number];\n /**\n * Action buttons to display in each row\n */\n rowActionButtons?: (\n row: MRT_RowData\n ) => ReactElement<typeof Button | typeof Fragment>;\n /**\n * Menu items to include in the optional actions menu on each row.\n */\n rowActionMenuItems?: (\n row: MRT_RowData\n ) => ReactElement<typeof MenuItem | typeof Fragment>;\n};\n\ntype TableType = MRT_TableInstance<MRT_RowData>;\n\nconst reorderDataRowsLocally = ({\n currentData,\n rowId,\n newIndex,\n}: {\n currentData: MRT_TableOptions<MRT_RowData>[\"data\"];\n rowId: string;\n newIndex: number;\n}) => {\n const updatedData = [...currentData];\n\n const rowIndex = updatedData.findIndex((row) => row.id === rowId);\n\n if (rowIndex !== -1) {\n // Remove the row from its current position\n const [removedRow] = updatedData.splice(rowIndex, 1);\n\n // Insert the row at the new index\n updatedData.splice(newIndex, 0, removedRow);\n }\n\n return updatedData;\n};\n\nconst DataTable = ({\n columns,\n data: dataProp,\n getRowId,\n page: pageProp = 1,\n initialDensity = densityValues[0],\n resultsPerPage: resultsPerPageProp = 20,\n fetchDataFn,\n reorderDataFn,\n totalRows,\n hasSearchSubmitButton,\n searchDelayTime,\n paginationType = \"paged\",\n onRowSelectionChange,\n rowActionButtons,\n rowActionMenuItems,\n hasChangeableDensity,\n hasColumnResizing,\n hasColumnVisibility,\n hasFilters,\n hasPagination,\n hasRowReordering,\n hasRowSelection,\n hasSearch,\n hasSorting,\n}: DataTableProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const [draggingRow, setDraggingRow] = useState<MRT_Row<MRT_RowData> | null>();\n const [showSkeletons, setShowSkeletons] = useState<boolean>(true);\n const [data, setData] =\n useState<MRT_TableOptions<MRT_RowData>[\"data\"]>(dataProp);\n const [page, setPage] = useState<number>(pageProp);\n const [resultsPerPage, setResultsPerPage] =\n useState<number>(resultsPerPageProp);\n const [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n const [sorting, setSorting] = useState<MRT_SortingState>([]);\n const [density, setDensity] = useState<MRT_DensityState>(initialDensity);\n\n const initialColumnVisibility = useMemo(() => {\n return columns.reduce((acc, column) => {\n acc[column.accessorKey as string] = true;\n return acc;\n }, {} as MRT_VisibilityState);\n }, [columns]);\n\n const [columnVisibility, setColumnVisibility] = useState<MRT_VisibilityState>(\n initialColumnVisibility\n );\n\n const [globalFilter, setGlobalFilter] = useState<string>(\"\");\n const [filters, setFilters] = useState<Array<DataFilter>>();\n\n useEffect(() => {\n setShowSkeletons(false);\n }, [data]);\n\n useEffect(() => {\n onRowSelectionChange?.(rowSelection);\n }, [rowSelection, onRowSelectionChange]);\n\n const refreshData = useCallback(async () => {\n setShowSkeletons(true);\n try {\n const newData = await fetchDataFn({\n page: page,\n resultsPerPage: resultsPerPage,\n sort: sorting,\n search: globalFilter,\n filters: filters,\n });\n setData(newData);\n setShowSkeletons(false);\n } catch (error) {\n setShowSkeletons(false);\n }\n }, [page, resultsPerPage, sorting, globalFilter, filters, fetchDataFn]);\n\n useEffect(() => {\n refreshData();\n }, [refreshData, page, resultsPerPage, sorting, globalFilter, filters]);\n\n const handleSortingChange = useCallback(\n (updater: MRT_Updater<MRT_SortingState>) => {\n setSorting((prevSorting) =>\n updater instanceof Function ? updater(prevSorting) : sorting\n );\n },\n [sorting]\n );\n\n const handleColumnVisibility = useCallback(\n (columnId: string) => {\n setColumnVisibility((prevVisibility) => ({\n ...prevVisibility,\n [columnId]: !columnVisibility[columnId],\n }));\n },\n [columnVisibility]\n );\n\n const handleSearch = useCallback((value: string) => {\n setGlobalFilter(value);\n }, []);\n\n const handleFilters = useCallback((updatedFilters: Array<DataFilter>) => {\n setFilters(updatedFilters);\n }, []);\n\n const handleRowSelectionChange = useCallback(\n (updater: MRT_Updater<MRT_RowSelectionState>) => {\n setRowSelection((prevRowSelection) =>\n updater instanceof Function ? updater(prevRowSelection) : rowSelection\n );\n },\n [rowSelection]\n );\n\n const updateRowOrder = useCallback(\n ({ rowId, newIndex }: { rowId: string; newIndex: number }) => {\n if (newIndex < 0) {\n return;\n }\n\n if (totalRows && newIndex > totalRows) {\n return;\n }\n\n const newData = reorderDataRowsLocally({\n currentData: data,\n rowId,\n newIndex,\n });\n\n setData(newData);\n reorderDataFn?.({ rowId, newIndex });\n refreshData();\n },\n [data, totalRows, reorderDataFn, refreshData]\n );\n\n const rowVirtualizerInstanceRef =\n useRef<MRT_Virtualizer<HTMLDivElement, HTMLTableRowElement>>(null);\n\n const getRowFromTableAndSetHovered = (\n table: TableType,\n id: MRT_RowData[\"id\"]\n ) => {\n if (id) {\n const nextRow: MRT_RowData = table.getRow(id);\n\n if (nextRow) {\n table.setHoveredRow(nextRow);\n }\n }\n };\n\n const resetDraggingAndHoveredRow = (table: TableType) => {\n setDraggingRow(null);\n table.setHoveredRow(null);\n };\n\n type HandleDragHandleKeyDownArgs = {\n table: TableType;\n row: MRT_Row<MRT_RowData>;\n event: KeyboardEvent<HTMLButtonElement>;\n };\n\n const handleDragHandleKeyDown = useCallback(\n ({ table, row, event }: HandleDragHandleKeyDownArgs) => {\n const { hoveredRow } = table.getState();\n\n const { key } = event;\n\n const isSpaceKey = key === \" \";\n const isEnterKey = key === \"Enter\";\n const isEscapeKey = key === \"Escape\";\n const isArrowDown = key === \"ArrowDown\";\n const isArrowUp = key === \"ArrowUp\";\n const isSpaceOrEnter = isSpaceKey || isEnterKey;\n const zeroIndexedPageNumber = page - 1;\n const currentIndex = row.index + zeroIndexedPageNumber * resultsPerPage;\n\n if (isEscapeKey) {\n resetDraggingAndHoveredRow(table);\n return;\n }\n\n if (isSpaceOrEnter) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (draggingRow) {\n if (typeof hoveredRow?.index === \"number\") {\n const { index } = hoveredRow;\n\n if (isSpaceOrEnter) {\n const pageRelativeIndex =\n index + zeroIndexedPageNumber * resultsPerPage;\n\n if (pageRelativeIndex !== currentIndex) {\n updateRowOrder({\n rowId: row.id,\n newIndex: pageRelativeIndex,\n });\n\n // Can't transition CSS hover effect. Use timeout to delay hovered row effect removal\n setTimeout(() => {\n resetDraggingAndHoveredRow(table);\n }, odysseyDesignTokens.TransitionDurationMainAsNumber);\n return;\n }\n }\n\n if (isArrowDown || isArrowUp) {\n const nextIndex = isArrowDown ? index + 1 : index - 1;\n getRowFromTableAndSetHovered(table, data[nextIndex]?.id);\n }\n } else {\n if (isArrowDown || isArrowUp) {\n const nextIndex = isArrowDown ? row.index + 1 : row.index - 1;\n getRowFromTableAndSetHovered(table, data[nextIndex]?.id);\n }\n }\n } else {\n if (isSpaceOrEnter) {\n setDraggingRow(row);\n }\n }\n },\n [\n data,\n draggingRow,\n odysseyDesignTokens,\n page,\n resultsPerPage,\n updateRowOrder,\n ]\n );\n\n const handleDragHandleOnDragEnd = useCallback(\n (table: TableType) => {\n const cols = table.getAllColumns();\n cols[0].toggleVisibility();\n\n const { draggingRow, hoveredRow } = table.getState();\n if (draggingRow) {\n updateRowOrder({\n rowId: draggingRow.id,\n newIndex: (hoveredRow as MRT_RowData).index,\n });\n }\n\n setDraggingRow(null);\n },\n [updateRowOrder]\n );\n\n const handleDragHandleOnDragCapture = useCallback(\n (table: TableType) => {\n if (!draggingRow && table.getState().draggingRow?.id) {\n setDraggingRow(table.getState().draggingRow);\n }\n },\n [draggingRow]\n );\n\n const table = useMaterialReactTable({\n columns: columns,\n data: data,\n state: {\n density,\n sorting,\n globalFilter,\n columnVisibility,\n rowSelection,\n showSkeletons,\n },\n rowVirtualizerInstanceRef: rowVirtualizerInstanceRef,\n rowVirtualizerOptions: { overscan: 4 },\n enableRowVirtualization:\n paginationType === \"loadMore\" || resultsPerPage > 50,\n enableColumnResizing: hasColumnResizing,\n enableDensityToggle: false,\n enableFullScreenToggle: false,\n enablePagination: false,\n enableRowSelection: hasRowSelection,\n enableFilters: false,\n enableHiding: false,\n enableRowOrdering: hasRowReordering,\n enableRowDragging: hasRowReordering,\n enableSorting: hasSorting,\n selectAllMode: \"all\",\n enableColumnActions: false,\n layoutMode: \"grid-no-grow\",\n displayColumnDefOptions: {\n \"mrt-row-actions\": {\n muiTableBodyCellProps: {\n align: \"right\",\n sx: {\n overflow: \"visible\",\n width: \"unset\",\n },\n },\n muiTableHeadCellProps: {\n align: \"right\",\n sx: {\n width: \"unset\",\n // TODO: Make the right padding here 16px (and possibly adapt it to the density padding)\n },\n },\n },\n \"mrt-row-drag\": {\n header: \"\",\n muiTableBodyCellProps: {\n sx: {\n minWidth: 0,\n width: \"auto\",\n },\n },\n muiTableHeadCellProps: {\n sx: {\n minWidth: 0,\n width: \"auto\",\n },\n },\n },\n },\n enableGlobalFilter: false,\n manualFiltering: true,\n manualSorting: true,\n getRowId: getRowId,\n icons: {\n ArrowDownwardIcon: ArrowDownIcon,\n DragHandleIcon: DragIndicatorIcon,\n SyncAltIcon: ArrowUnsortedIcon,\n },\n onSortingChange: handleSortingChange,\n onRowSelectionChange: handleRowSelectionChange,\n enableRowActions:\n hasRowReordering === true || rowActionButtons || rowActionMenuItems\n ? true\n : false,\n positionActionsColumn: \"last\",\n\n muiTableHeadCellProps: ({ column }) => ({\n className: sorting.find((item) => item.id === column.id)\n ? \"isSorted\"\n : \"isUnsorted\",\n }),\n\n muiTableBodyRowProps: ({ table, row }) => ({\n className:\n draggingRow?.id === row.id && table.getState().hoveredRow?.id !== row.id\n ? \"isDragging\"\n : table.getState().hoveredRow?.id === row.id &&\n draggingRow?.id !== row.id\n ? \"isDragTarget\"\n : draggingRow?.id === row.id &&\n table.getState().hoveredRow?.id === row.id\n ? \"isDragging isDragTarget\"\n : undefined,\n }),\n\n muiRowDragHandleProps: ({ table, row }) => ({\n title: \"Drag row or press space/enter key to start and stop reordering\",\n \"aria-label\":\n \"Drag row to reorder. Or, press space or enter to start and stop reordering and esc to cancel.\",\n onKeyDown: (event) => handleDragHandleKeyDown({ table, row, event }),\n onBlur: () => {\n resetDraggingAndHoveredRow(table);\n },\n onDragEnd: () => handleDragHandleOnDragEnd(table),\n onDragCapture: () => handleDragHandleOnDragCapture(table),\n sx: {\n padding: odysseyDesignTokens.Spacing1,\n borderRadius: odysseyDesignTokens.BorderRadiusMain,\n\n \"&:focus-visible\": {\n boxShadow: `0 0 0 2px ${odysseyDesignTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyDesignTokens.PalettePrimaryMain}`,\n outline: \"2px solid transparent\",\n outlineOffset: \"1px\",\n },\n },\n }),\n\n renderRowActions: ({ row }) => {\n const currentIndex = row.index + (page - 1) * resultsPerPage;\n\n return (\n <Box sx={{ display: \"flex\" }}>\n {rowActionButtons?.(row)}\n {(rowActionMenuItems || hasRowReordering) && (\n <MenuButton\n endIcon={<MoreIcon />}\n size=\"small\"\n buttonVariant=\"floating\"\n ariaLabel=\"More actions\"\n menuAlignment=\"right\"\n >\n {rowActionMenuItems && (\n <>\n {rowActionMenuItems(row)}\n <hr />\n </>\n )}\n <MenuItem\n isDisabled={currentIndex <= 0}\n onClick={() => updateRowOrder({ rowId: row.id, newIndex: 0 })}\n >\n <ArrowTopIcon /> Bring to front\n </MenuItem>\n <MenuItem\n isDisabled={currentIndex <= 0}\n onClick={() =>\n updateRowOrder({\n rowId: row.id,\n newIndex: currentIndex <= 0 ? 0 : currentIndex - 1,\n })\n }\n >\n <ArrowUpIcon /> Bring forward\n </MenuItem>\n <MenuItem\n isDisabled={totalRows ? currentIndex >= totalRows - 1 : false}\n onClick={() =>\n updateRowOrder({\n rowId: row.id,\n newIndex: currentIndex + 1,\n })\n }\n >\n <ArrowDownIcon /> Send backward\n </MenuItem>\n <>\n {totalRows && (\n <MenuItem\n isDisabled={currentIndex >= totalRows - 1}\n onClick={() =>\n updateRowOrder({\n rowId: row.id,\n newIndex: totalRows,\n })\n }\n >\n <ArrowBottomIcon /> Send to back\n </MenuItem>\n )}\n </>\n </MenuButton>\n )}\n </Box>\n );\n },\n });\n\n const tableSettings = useMemo(\n () => (\n <>\n {hasChangeableDensity && (\n <MenuButton\n endIcon={<ListIcon />}\n ariaLabel=\"Table density\"\n menuAlignment=\"right\"\n shouldCloseOnSelect={false}\n >\n <>\n {densityValues.map((value: MRT_DensityState) => (\n <MenuItem\n key={value}\n isSelected={density === value}\n onClick={() => setDensity(value)}\n >\n {`${value.charAt(0).toUpperCase()}${value.slice(1)}`}\n </MenuItem>\n ))}\n </>\n </MenuButton>\n )}\n\n {hasColumnVisibility && (\n <MenuButton\n endIcon={<ShowIcon />}\n ariaLabel=\"Show/hide columns\"\n menuAlignment=\"right\"\n shouldCloseOnSelect={false}\n >\n <>\n {columns\n .filter((column) => column.enableHiding !== false)\n .map((column) => (\n <MenuItem\n key={column.accessorKey}\n onClick={() =>\n handleColumnVisibility(column.accessorKey as string)\n }\n >\n <MuiCheckbox\n checked={\n columnVisibility[column.accessorKey as string] !== false\n }\n />\n {column.header}\n </MenuItem>\n ))}\n </>\n </MenuButton>\n )}\n </>\n ),\n [\n columnVisibility,\n columns,\n density,\n hasChangeableDensity,\n handleColumnVisibility,\n hasColumnVisibility,\n ]\n );\n\n return (\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 4 }}>\n <DataFilters\n onChangeSearch={hasSearch ? handleSearch : undefined}\n onChangeFilters={handleFilters}\n hasSearchSubmitButton={hasSearchSubmitButton}\n searchDelayTime={searchDelayTime}\n additionalActions={tableSettings}\n filters={\n hasFilters\n ? columns\n .filter((column) => column.enableColumnFilter !== false)\n .map((column) => {\n return {\n id: column.accessorKey as string,\n label: column.header,\n variant: column.filterVariant ?? \"text\",\n options: column.filterSelectOptions,\n };\n })\n : undefined\n }\n />\n\n <MRT_TableContainer table={table} />\n\n {hasPagination && (\n <DataTablePagination\n paginationType={paginationType}\n currentNumberOfResults={data.length}\n currentPage={page}\n isPreviousButtonDisabled={page <= 1}\n isNextButtonDisabled={false} // TODO: Add logic for disabling next/load more button\n onClickPrevious={() => setPage(page - 1)}\n onClickNext={() => {\n if (paginationType === \"loadMore\") {\n setResultsPerPage(resultsPerPage + resultsPerPageProp);\n } else {\n setPage(page + 1);\n }\n }}\n />\n )}\n </Box>\n );\n};\n\nconst MemoizedDataTable = memo(DataTable);\nMemoizedDataTable.displayName = \"DataTable\";\n\nexport { MemoizedDataTable as DataTable };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataTable.js","names":["useMaterialReactTable","MRT_TableContainer","memo","useCallback","useEffect","useMemo","useRef","useState","ArrowTopIcon","ArrowBottomIcon","ArrowDownIcon","ArrowUpIcon","DragIndicatorIcon","ListIcon","ShowIcon","MoreIcon","useOdysseyDesignTokens","DataTablePagination","DataFilters","Box","MenuButton","MenuItem","ArrowUnsortedIcon","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","densityValues","reorderDataRowsLocally","currentData","rowId","newIndex","updatedData","rowIndex","findIndex","row","id","removedRow","splice","DataTable","columns","data","dataProp","getRowId","page","pageProp","initialDensity","resultsPerPage","resultsPerPageProp","fetchDataFn","reorderDataFn","totalRows","hasSearchSubmitButton","searchDelayTime","paginationType","onRowSelectionChange","rowActionButtons","rowActionMenuItems","hasChangeableDensity","hasColumnResizing","hasColumnVisibility","hasFilters","hasPagination","hasRowReordering","hasRowSelection","hasSearch","hasSorting","odysseyDesignTokens","draggingRow","setDraggingRow","showSkeletons","setShowSkeletons","setData","setPage","setResultsPerPage","rowSelection","setRowSelection","sorting","setSorting","density","setDensity","initialColumnVisibility","reduce","acc","column","accessorKey","columnVisibility","setColumnVisibility","globalFilter","setGlobalFilter","filters","setFilters","refreshData","newData","sort","search","error","handleSortingChange","updater","prevSorting","Function","handleColumnVisibility","columnId","prevVisibility","handleSearch","value","handleFilters","updatedFilters","handleRowSelectionChange","prevRowSelection","updateRowOrder","rowVirtualizerInstanceRef","getRowFromTableAndSetHovered","table","nextRow","getRow","setHoveredRow","resetDraggingAndHoveredRow","handleDragHandleKeyDown","event","hoveredRow","getState","key","isSpaceKey","isEnterKey","isEscapeKey","isArrowDown","isArrowUp","isSpaceOrEnter","zeroIndexedPageNumber","currentIndex","index","preventDefault","stopPropagation","pageRelativeIndex","setTimeout","TransitionDurationMainAsNumber","nextIndex","handleDragHandleOnDragEnd","cols","getAllColumns","toggleVisibility","handleDragHandleOnDragCapture","state","rowVirtualizerOptions","overscan","enableRowVirtualization","enableColumnResizing","enableDensityToggle","enableFullScreenToggle","enablePagination","enableRowSelection","enableFilters","enableHiding","enableRowOrdering","enableRowDragging","enableSorting","selectAllMode","enableColumnActions","layoutMode","displayColumnDefOptions","muiTableBodyCellProps","align","sx","overflow","width","muiTableHeadCellProps","header","minWidth","enableGlobalFilter","manualFiltering","manualSorting","icons","ArrowDownwardIcon","DragHandleIcon","SyncAltIcon","onSortingChange","enableRowActions","positionActionsColumn","className","find","item","muiTableBodyRowProps","undefined","muiRowDragHandleProps","title","onKeyDown","onBlur","onDragEnd","onDragCapture","padding","Spacing1","borderRadius","BorderRadiusMain","boxShadow","HueNeutralWhite","PalettePrimaryMain","outline","outlineOffset","renderRowActions","display","children","endIcon","size","buttonVariant","ariaLabel","menuAlignment","isDisabled","onClick","tableSettings","shouldCloseOnSelect","map","isSelected","charAt","toUpperCase","slice","filter","_Checkbox","checked","flexDirection","gap","onChangeSearch","onChangeFilters","additionalActions","enableColumnFilter","label","variant","filterVariant","options","filterSelectOptions","currentNumberOfResults","length","currentPage","isPreviousButtonDisabled","isNextButtonDisabled","onClickPrevious","onClickNext","MemoizedDataTable","displayName"],"sources":["../../src/labs/DataTable.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n MRT_Updater,\n MRT_Virtualizer,\n MRT_RowData,\n MRT_TableOptions,\n useMaterialReactTable,\n MRT_SortingState,\n MRT_DensityState,\n MRT_VisibilityState,\n MRT_TableContainer,\n MRT_RowSelectionState,\n MRT_Row,\n MRT_ColumnDef,\n MRT_TableInstance,\n} from \"material-react-table\";\nimport {\n Fragment,\n ReactElement,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n KeyboardEvent,\n} from \"react\";\nimport {\n ArrowTopIcon,\n ArrowBottomIcon,\n ArrowDownIcon,\n ArrowUpIcon,\n DragIndicatorIcon,\n ListIcon,\n ShowIcon,\n MoreIcon,\n} from \"../icons.generated\";\nimport { Checkbox as MuiCheckbox } from \"@mui/material\";\nimport { useOdysseyDesignTokens } from \"../OdysseyDesignTokensContext\";\nimport {\n DataTablePagination,\n paginationTypeValues,\n} from \"./DataTablePagination\";\nimport { DataFilter, DataFilters } from \"./DataFilters\";\nimport { Button } from \"../Button\";\nimport { Box } from \"../Box\";\nimport { MenuButton, MenuItem } from \"..\";\nimport { ArrowUnsortedIcon } from \"../icons.generated\";\n\nexport const densityValues = [\"comfortable\", \"spacious\", \"compact\"] as const;\n\nexport type {\n MRT_ColumnFiltersState,\n MRT_SortingState,\n MRT_ColumnDef as TableColumn,\n} from \"material-react-table\";\n\n// The shape of the table columns,\n// with props named to match their MRT_ColumnDef counterparts\nexport type DataColumn = {\n /**\n * The unique ID of the column\n */\n accessorKey: string;\n /**\n * The human-friendly title of the column\n */\n header: string;\n /**\n * Customize the way each cell in the column is\n * displayed via a custom React component.\n */\n Cell?: MRT_ColumnDef<MRT_RowData>[\"Cell\"];\n /**\n * The UI control that will be used to filter the column.\n * Defaults to a standard text input.\n */\n filterVariant?: MRT_ColumnDef<MRT_RowData>[\"filterVariant\"];\n /**\n * If the filter control has preset options (such as a select or multi-select),\n * these are the options provided.\n */\n filterSelectOptions?: Array<{ label: string; value: string }>;\n /**\n * The optional column width, in pixels\n */\n size?: number;\n /**\n * The minimum column width, in pixels\n */\n minSize?: number;\n /**\n * The maximum column width, in pixels\n */\n maxSize?: number;\n /**\n * If set to false, the column won't be filterable\n */\n enableColumnFilter?: boolean;\n /**\n * If set to false, the column won't be searchable\n */\n enableGlobalFilter?: boolean;\n /**\n * If set to false, the column won't be sortable\n */\n enableSorting?: boolean;\n /**\n * If set to false, the column won't be resizable\n */\n enableResizing?: boolean;\n /**\n * If set to false, the column won't be hideable\n */\n enableHiding?: boolean;\n};\n\nexport type DataTableProps = {\n /**\n * The columns that make up the table\n */\n columns: DataColumn[];\n /**\n * The data that goes into the table, which will be displayed\n * as the table rows\n */\n data: MRT_TableOptions<MRT_RowData>[\"data\"];\n /**\n * The total number of rows in the table. Optional, because it's sometimes impossible\n * to calculate. Used in table pagination to know when to disable the \"next\"/\"more\" button.\n */\n totalRows?: number;\n /**\n * The function to get the ID of a row\n */\n getRowId?: MRT_TableOptions<MRT_RowData>[\"getRowId\"];\n /**\n * The initial density of the table. This is available even if the table density\n * isn't changeable.\n */\n initialDensity?: (typeof densityValues)[number];\n /**\n * If true, the end user will be able to change the table density.\n */\n hasChangeableDensity?: boolean;\n /**\n * If true, the end user can resize individual columns.\n */\n hasColumnResizing?: boolean;\n /**\n * If true, the end user will be able to show/hide columns.\n */\n hasColumnVisibility?: boolean;\n /**\n * If true, the end user will be able to filter columns.\n */\n hasFilters?: boolean;\n /**\n * If true, the table will include pagination controls.\n */\n hasPagination?: boolean;\n /**\n * If true, the table will include checkboxes on each row, enabling\n * the user to select some or all rows.\n */\n hasRowSelection?: boolean;\n /**\n * If true, the global table search controls will be shown.\n */\n hasSearch?: boolean;\n /**\n * If true, the end user can sort columns (ascending, descending, or neither)\n */\n hasSorting?: boolean;\n /**\n * If true, the end user can reorder rows via a drag-and-drop interface\n */\n hasRowReordering?: boolean;\n /**\n * If true, the search field will include a Search button, rather than\n * firing on input change.\n */\n hasSearchSubmitButton?: boolean;\n /**\n * The debounce time, in milliseconds, for the search input firing\n * `onChangeSearch` when changed. If `hasSearchSubmitButton` is true,\n * this doesn't do anything.\n */\n searchDelayTime?: number;\n /**\n * Callback that fires when a row (or rows) is selected or unselected.\n */\n onRowSelectionChange?: (rowSelection: MRT_RowSelectionState) => void;\n /**\n * Callback that fires whenever the table needs to fetch new data, due to changes in\n * page, results per page, search input, filters, or sorting\n */\n fetchDataFn: ({\n page,\n resultsPerPage,\n search,\n filters,\n sort,\n }: {\n page?: number;\n resultsPerPage?: number;\n search?: string;\n filters?: DataFilter[];\n sort?: MRT_SortingState;\n }) => MRT_TableOptions<MRT_RowData>[\"data\"];\n /**\n * Callback that fires when the user reorders rows within the table. Can be used\n * to propogate order change to the backend.\n */\n reorderDataFn?: ({\n rowId,\n newIndex,\n }: {\n rowId: string;\n newIndex: number;\n }) => void;\n /**\n * The current page number.\n */\n page?: number;\n /**\n * The number of results per page.\n */\n resultsPerPage?: number;\n /**\n * The type of pagination controls shown. Defaults to next/prev buttons, but can be\n * set to a simple \"Load more\" button by setting to \"loadMore\".\n */\n paginationType?: (typeof paginationTypeValues)[number];\n /**\n * Action buttons to display in each row\n */\n rowActionButtons?: (\n row: MRT_RowData,\n ) => ReactElement<typeof Button | typeof Fragment>;\n /**\n * Menu items to include in the optional actions menu on each row.\n */\n rowActionMenuItems?: (\n row: MRT_RowData,\n ) => ReactElement<typeof MenuItem | typeof Fragment>;\n};\n\ntype TableType = MRT_TableInstance<MRT_RowData>;\n\nconst reorderDataRowsLocally = ({\n currentData,\n rowId,\n newIndex,\n}: {\n currentData: MRT_TableOptions<MRT_RowData>[\"data\"];\n rowId: string;\n newIndex: number;\n}) => {\n const updatedData = [...currentData];\n\n const rowIndex = updatedData.findIndex((row) => row.id === rowId);\n\n if (rowIndex !== -1) {\n // Remove the row from its current position\n const [removedRow] = updatedData.splice(rowIndex, 1);\n\n // Insert the row at the new index\n updatedData.splice(newIndex, 0, removedRow);\n }\n\n return updatedData;\n};\n\nconst DataTable = ({\n columns,\n data: dataProp,\n getRowId,\n page: pageProp = 1,\n initialDensity = densityValues[0],\n resultsPerPage: resultsPerPageProp = 20,\n fetchDataFn,\n reorderDataFn,\n totalRows,\n hasSearchSubmitButton,\n searchDelayTime,\n paginationType = \"paged\",\n onRowSelectionChange,\n rowActionButtons,\n rowActionMenuItems,\n hasChangeableDensity,\n hasColumnResizing,\n hasColumnVisibility,\n hasFilters,\n hasPagination,\n hasRowReordering,\n hasRowSelection,\n hasSearch,\n hasSorting,\n}: DataTableProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const [draggingRow, setDraggingRow] = useState<MRT_Row<MRT_RowData> | null>();\n const [showSkeletons, setShowSkeletons] = useState<boolean>(true);\n const [data, setData] =\n useState<MRT_TableOptions<MRT_RowData>[\"data\"]>(dataProp);\n const [page, setPage] = useState<number>(pageProp);\n const [resultsPerPage, setResultsPerPage] =\n useState<number>(resultsPerPageProp);\n const [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n const [sorting, setSorting] = useState<MRT_SortingState>([]);\n const [density, setDensity] = useState<MRT_DensityState>(initialDensity);\n\n const initialColumnVisibility = useMemo(() => {\n return columns.reduce((acc, column) => {\n acc[column.accessorKey as string] = true;\n return acc;\n }, {} as MRT_VisibilityState);\n }, [columns]);\n\n const [columnVisibility, setColumnVisibility] = useState<MRT_VisibilityState>(\n initialColumnVisibility,\n );\n\n const [globalFilter, setGlobalFilter] = useState<string>(\"\");\n const [filters, setFilters] = useState<Array<DataFilter>>();\n\n useEffect(() => {\n setShowSkeletons(false);\n }, [data]);\n\n useEffect(() => {\n onRowSelectionChange?.(rowSelection);\n }, [rowSelection, onRowSelectionChange]);\n\n const refreshData = useCallback(async () => {\n setShowSkeletons(true);\n try {\n const newData = await fetchDataFn({\n page: page,\n resultsPerPage: resultsPerPage,\n sort: sorting,\n search: globalFilter,\n filters: filters,\n });\n setData(newData);\n setShowSkeletons(false);\n } catch (error) {\n setShowSkeletons(false);\n }\n }, [page, resultsPerPage, sorting, globalFilter, filters, fetchDataFn]);\n\n useEffect(() => {\n refreshData();\n }, [refreshData, page, resultsPerPage, sorting, globalFilter, filters]);\n\n const handleSortingChange = useCallback(\n (updater: MRT_Updater<MRT_SortingState>) => {\n setSorting((prevSorting) =>\n updater instanceof Function ? updater(prevSorting) : sorting,\n );\n },\n [sorting],\n );\n\n const handleColumnVisibility = useCallback(\n (columnId: string) => {\n setColumnVisibility((prevVisibility) => ({\n ...prevVisibility,\n [columnId]: !columnVisibility[columnId],\n }));\n },\n [columnVisibility],\n );\n\n const handleSearch = useCallback((value: string) => {\n setGlobalFilter(value);\n }, []);\n\n const handleFilters = useCallback((updatedFilters: Array<DataFilter>) => {\n setFilters(updatedFilters);\n }, []);\n\n const handleRowSelectionChange = useCallback(\n (updater: MRT_Updater<MRT_RowSelectionState>) => {\n setRowSelection((prevRowSelection) =>\n updater instanceof Function ? updater(prevRowSelection) : rowSelection,\n );\n },\n [rowSelection],\n );\n\n const updateRowOrder = useCallback(\n ({ rowId, newIndex }: { rowId: string; newIndex: number }) => {\n if (newIndex < 0) {\n return;\n }\n\n if (totalRows && newIndex > totalRows) {\n return;\n }\n\n const newData = reorderDataRowsLocally({\n currentData: data,\n rowId,\n newIndex,\n });\n\n setData(newData);\n reorderDataFn?.({ rowId, newIndex });\n refreshData();\n },\n [data, totalRows, reorderDataFn, refreshData],\n );\n\n const rowVirtualizerInstanceRef =\n useRef<MRT_Virtualizer<HTMLDivElement, HTMLTableRowElement>>(null);\n\n const getRowFromTableAndSetHovered = (\n table: TableType,\n id: MRT_RowData[\"id\"],\n ) => {\n if (id) {\n const nextRow: MRT_RowData = table.getRow(id);\n\n if (nextRow) {\n table.setHoveredRow(nextRow);\n }\n }\n };\n\n const resetDraggingAndHoveredRow = (table: TableType) => {\n setDraggingRow(null);\n table.setHoveredRow(null);\n };\n\n type HandleDragHandleKeyDownArgs = {\n table: TableType;\n row: MRT_Row<MRT_RowData>;\n event: KeyboardEvent<HTMLButtonElement>;\n };\n\n const handleDragHandleKeyDown = useCallback(\n ({ table, row, event }: HandleDragHandleKeyDownArgs) => {\n const { hoveredRow } = table.getState();\n\n const { key } = event;\n\n const isSpaceKey = key === \" \";\n const isEnterKey = key === \"Enter\";\n const isEscapeKey = key === \"Escape\";\n const isArrowDown = key === \"ArrowDown\";\n const isArrowUp = key === \"ArrowUp\";\n const isSpaceOrEnter = isSpaceKey || isEnterKey;\n const zeroIndexedPageNumber = page - 1;\n const currentIndex = row.index + zeroIndexedPageNumber * resultsPerPage;\n\n if (isEscapeKey) {\n resetDraggingAndHoveredRow(table);\n return;\n }\n\n if (isSpaceOrEnter) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (draggingRow) {\n if (typeof hoveredRow?.index === \"number\") {\n const { index } = hoveredRow;\n\n if (isSpaceOrEnter) {\n const pageRelativeIndex =\n index + zeroIndexedPageNumber * resultsPerPage;\n\n if (pageRelativeIndex !== currentIndex) {\n updateRowOrder({\n rowId: row.id,\n newIndex: pageRelativeIndex,\n });\n\n // Can't transition CSS hover effect. Use timeout to delay hovered row effect removal\n setTimeout(() => {\n resetDraggingAndHoveredRow(table);\n }, odysseyDesignTokens.TransitionDurationMainAsNumber);\n return;\n }\n }\n\n if (isArrowDown || isArrowUp) {\n const nextIndex = isArrowDown ? index + 1 : index - 1;\n getRowFromTableAndSetHovered(table, data[nextIndex]?.id);\n }\n } else {\n if (isArrowDown || isArrowUp) {\n const nextIndex = isArrowDown ? row.index + 1 : row.index - 1;\n getRowFromTableAndSetHovered(table, data[nextIndex]?.id);\n }\n }\n } else {\n if (isSpaceOrEnter) {\n setDraggingRow(row);\n }\n }\n },\n [\n data,\n draggingRow,\n odysseyDesignTokens,\n page,\n resultsPerPage,\n updateRowOrder,\n ],\n );\n\n const handleDragHandleOnDragEnd = useCallback(\n (table: TableType) => {\n const cols = table.getAllColumns();\n cols[0].toggleVisibility();\n\n const { draggingRow, hoveredRow } = table.getState();\n if (draggingRow) {\n updateRowOrder({\n rowId: draggingRow.id,\n newIndex: (hoveredRow as MRT_RowData).index,\n });\n }\n\n setDraggingRow(null);\n },\n [updateRowOrder],\n );\n\n const handleDragHandleOnDragCapture = useCallback(\n (table: TableType) => {\n if (!draggingRow && table.getState().draggingRow?.id) {\n setDraggingRow(table.getState().draggingRow);\n }\n },\n [draggingRow],\n );\n\n const table = useMaterialReactTable({\n columns: columns,\n data: data,\n state: {\n density,\n sorting,\n globalFilter,\n columnVisibility,\n rowSelection,\n showSkeletons,\n },\n rowVirtualizerInstanceRef: rowVirtualizerInstanceRef,\n rowVirtualizerOptions: { overscan: 4 },\n enableRowVirtualization:\n paginationType === \"loadMore\" || resultsPerPage > 50,\n enableColumnResizing: hasColumnResizing,\n enableDensityToggle: false,\n enableFullScreenToggle: false,\n enablePagination: false,\n enableRowSelection: hasRowSelection,\n enableFilters: false,\n enableHiding: false,\n enableRowOrdering: hasRowReordering,\n enableRowDragging: hasRowReordering,\n enableSorting: hasSorting,\n selectAllMode: \"all\",\n enableColumnActions: false,\n layoutMode: \"grid-no-grow\",\n displayColumnDefOptions: {\n \"mrt-row-actions\": {\n muiTableBodyCellProps: {\n align: \"right\",\n sx: {\n overflow: \"visible\",\n width: \"unset\",\n },\n },\n muiTableHeadCellProps: {\n align: \"right\",\n sx: {\n width: \"unset\",\n // TODO: Make the right padding here 16px (and possibly adapt it to the density padding)\n },\n },\n },\n \"mrt-row-drag\": {\n header: \"\",\n muiTableBodyCellProps: {\n sx: {\n minWidth: 0,\n width: \"auto\",\n },\n },\n muiTableHeadCellProps: {\n sx: {\n minWidth: 0,\n width: \"auto\",\n },\n },\n },\n },\n enableGlobalFilter: false,\n manualFiltering: true,\n manualSorting: true,\n getRowId: getRowId,\n icons: {\n ArrowDownwardIcon: ArrowDownIcon,\n DragHandleIcon: DragIndicatorIcon,\n SyncAltIcon: ArrowUnsortedIcon,\n },\n onSortingChange: handleSortingChange,\n onRowSelectionChange: handleRowSelectionChange,\n enableRowActions:\n hasRowReordering === true || rowActionButtons || rowActionMenuItems\n ? true\n : false,\n positionActionsColumn: \"last\",\n\n muiTableHeadCellProps: ({ column }) => ({\n className: sorting.find((item) => item.id === column.id)\n ? \"isSorted\"\n : \"isUnsorted\",\n }),\n\n muiTableBodyRowProps: ({ table, row }) => ({\n className:\n draggingRow?.id === row.id && table.getState().hoveredRow?.id !== row.id\n ? \"isDragging\"\n : table.getState().hoveredRow?.id === row.id &&\n draggingRow?.id !== row.id\n ? \"isDragTarget\"\n : draggingRow?.id === row.id &&\n table.getState().hoveredRow?.id === row.id\n ? \"isDragging isDragTarget\"\n : undefined,\n }),\n\n muiRowDragHandleProps: ({ table, row }) => ({\n title: \"Drag row or press space/enter key to start and stop reordering\",\n \"aria-label\":\n \"Drag row to reorder. Or, press space or enter to start and stop reordering and esc to cancel.\",\n onKeyDown: (event) => handleDragHandleKeyDown({ table, row, event }),\n onBlur: () => {\n resetDraggingAndHoveredRow(table);\n },\n onDragEnd: () => handleDragHandleOnDragEnd(table),\n onDragCapture: () => handleDragHandleOnDragCapture(table),\n sx: {\n padding: odysseyDesignTokens.Spacing1,\n borderRadius: odysseyDesignTokens.BorderRadiusMain,\n\n \"&:focus-visible\": {\n boxShadow: `0 0 0 2px ${odysseyDesignTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyDesignTokens.PalettePrimaryMain}`,\n outline: \"2px solid transparent\",\n outlineOffset: \"1px\",\n },\n },\n }),\n\n renderRowActions: ({ row }) => {\n const currentIndex = row.index + (page - 1) * resultsPerPage;\n\n return (\n <Box sx={{ display: \"flex\" }}>\n {rowActionButtons?.(row)}\n {(rowActionMenuItems || hasRowReordering) && (\n <MenuButton\n endIcon={<MoreIcon />}\n size=\"small\"\n buttonVariant=\"floating\"\n ariaLabel=\"More actions\"\n menuAlignment=\"right\"\n >\n {rowActionMenuItems && (\n <>\n {rowActionMenuItems(row)}\n <hr />\n </>\n )}\n <MenuItem\n isDisabled={currentIndex <= 0}\n onClick={() => updateRowOrder({ rowId: row.id, newIndex: 0 })}\n >\n <ArrowTopIcon /> Bring to front\n </MenuItem>\n <MenuItem\n isDisabled={currentIndex <= 0}\n onClick={() =>\n updateRowOrder({\n rowId: row.id,\n newIndex: currentIndex <= 0 ? 0 : currentIndex - 1,\n })\n }\n >\n <ArrowUpIcon /> Bring forward\n </MenuItem>\n <MenuItem\n isDisabled={totalRows ? currentIndex >= totalRows - 1 : false}\n onClick={() =>\n updateRowOrder({\n rowId: row.id,\n newIndex: currentIndex + 1,\n })\n }\n >\n <ArrowDownIcon /> Send backward\n </MenuItem>\n <>\n {totalRows && (\n <MenuItem\n isDisabled={currentIndex >= totalRows - 1}\n onClick={() =>\n updateRowOrder({\n rowId: row.id,\n newIndex: totalRows,\n })\n }\n >\n <ArrowBottomIcon /> Send to back\n </MenuItem>\n )}\n </>\n </MenuButton>\n )}\n </Box>\n );\n },\n });\n\n const tableSettings = useMemo(\n () => (\n <>\n {hasChangeableDensity && (\n <MenuButton\n endIcon={<ListIcon />}\n ariaLabel=\"Table density\"\n menuAlignment=\"right\"\n shouldCloseOnSelect={false}\n >\n <>\n {densityValues.map((value: MRT_DensityState) => (\n <MenuItem\n key={value}\n isSelected={density === value}\n onClick={() => setDensity(value)}\n >\n {`${value.charAt(0).toUpperCase()}${value.slice(1)}`}\n </MenuItem>\n ))}\n </>\n </MenuButton>\n )}\n\n {hasColumnVisibility && (\n <MenuButton\n endIcon={<ShowIcon />}\n ariaLabel=\"Show/hide columns\"\n menuAlignment=\"right\"\n shouldCloseOnSelect={false}\n >\n <>\n {columns\n .filter((column) => column.enableHiding !== false)\n .map((column) => (\n <MenuItem\n key={column.accessorKey}\n onClick={() =>\n handleColumnVisibility(column.accessorKey as string)\n }\n >\n <MuiCheckbox\n checked={\n columnVisibility[column.accessorKey as string] !== false\n }\n />\n {column.header}\n </MenuItem>\n ))}\n </>\n </MenuButton>\n )}\n </>\n ),\n [\n columnVisibility,\n columns,\n density,\n hasChangeableDensity,\n handleColumnVisibility,\n hasColumnVisibility,\n ],\n );\n\n return (\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 4 }}>\n <DataFilters\n onChangeSearch={hasSearch ? handleSearch : undefined}\n onChangeFilters={handleFilters}\n hasSearchSubmitButton={hasSearchSubmitButton}\n searchDelayTime={searchDelayTime}\n additionalActions={tableSettings}\n filters={\n hasFilters\n ? columns\n .filter((column) => column.enableColumnFilter !== false)\n .map((column) => {\n return {\n id: column.accessorKey as string,\n label: column.header,\n variant: column.filterVariant ?? \"text\",\n options: column.filterSelectOptions,\n };\n })\n : undefined\n }\n />\n\n <MRT_TableContainer table={table} />\n\n {hasPagination && (\n <DataTablePagination\n paginationType={paginationType}\n currentNumberOfResults={data.length}\n currentPage={page}\n isPreviousButtonDisabled={page <= 1}\n isNextButtonDisabled={false} // TODO: Add logic for disabling next/load more button\n onClickPrevious={() => setPage(page - 1)}\n onClickNext={() => {\n if (paginationType === \"loadMore\") {\n setResultsPerPage(resultsPerPage + resultsPerPageProp);\n } else {\n setPage(page + 1);\n }\n }}\n />\n )}\n </Box>\n );\n};\n\nconst MemoizedDataTable = memo(DataTable);\nMemoizedDataTable.displayName = \"DataTable\";\n\nexport { MemoizedDataTable as DataTable };\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","names":["DatePicker","MuiDatePicker","useCallback","jsx","_jsx","label","isOptional","onChange","value","renderInput","InputProps","props","combinedProps","_InputBase","required"],"sources":["../../src/labs/DatePicker.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 {\n DatePicker as MuiDatePicker,\n DatePickerProps as MuiDatePickerProps,\n} from \"@mui/x-date-pickers\";\nimport { useCallback } from \"react\";\n\nexport type DatePickerProps<TInputDate, TDate> = {\n label: MuiDatePickerProps<TInputDate, TDate>[\"label\"];\n /**\n * If `true`, the `input` element is not required.\n */\n isOptional?: boolean;\n onChange: MuiDatePickerProps<TInputDate, TDate>[\"onChange\"];\n value: MuiDatePickerProps<TInputDate, TDate>[\"value\"];\n};\n\nexport const DatePicker = <TInputDate, TDate>({\n label,\n isOptional = false,\n onChange,\n value = null,\n}: DatePickerProps<TInputDate, TDate>) => {\n const renderInput = useCallback(\n ({ InputProps, ...props }) => {\n const combinedProps = {\n ...InputProps,\n ...props,\n };\n\n return <InputBase {...combinedProps} required={!isOptional} />;\n },\n [isOptional]
|
|
1
|
+
{"version":3,"file":"DatePicker.js","names":["DatePicker","MuiDatePicker","useCallback","jsx","_jsx","label","isOptional","onChange","value","renderInput","InputProps","props","combinedProps","_InputBase","required"],"sources":["../../src/labs/DatePicker.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 {\n DatePicker as MuiDatePicker,\n DatePickerProps as MuiDatePickerProps,\n} from \"@mui/x-date-pickers\";\nimport { useCallback } from \"react\";\n\nexport type DatePickerProps<TInputDate, TDate> = {\n label: MuiDatePickerProps<TInputDate, TDate>[\"label\"];\n /**\n * If `true`, the `input` element is not required.\n */\n isOptional?: boolean;\n onChange: MuiDatePickerProps<TInputDate, TDate>[\"onChange\"];\n value: MuiDatePickerProps<TInputDate, TDate>[\"value\"];\n};\n\nexport const DatePicker = <TInputDate, TDate>({\n label,\n isOptional = false,\n onChange,\n value = null,\n}: DatePickerProps<TInputDate, TDate>) => {\n const renderInput = useCallback(\n // @ts-expect-error TEMP: This type aren't working after the upgrade, but they need to be fixed.\n ({ InputProps, ...props }) => {\n const combinedProps = {\n ...InputProps,\n ...props,\n };\n\n return <InputBase {...combinedProps} required={!isOptional} />;\n },\n [isOptional],\n );\n\n return (\n <MuiDatePicker\n label={label}\n onChange={onChange}\n // @ts-expect-error TEMP: This type aren't working after the upgrade, but they need to be fixed.\n renderInput={renderInput}\n value={value}\n />\n );\n};\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA,SACEA,UAAU,IAAIC,aAAa,QAEtB,qBAAqB;AAC5B,SAASC,WAAW,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAYpC,OAAO,MAAMJ,UAAU,GAAGA,CAAoB;EAC5CK,KAAK;EACLC,UAAU,GAAG,KAAK;EAClBC,QAAQ;EACRC,KAAK,GAAG;AAC0B,CAAC,KAAK;EACxC,MAAMC,WAAW,GAAGP,WAAW,CAE7B,CAAC;IAAEQ,UAAU;IAAE,GAAGC;EAAM,CAAC,KAAK;IAC5B,MAAMC,aAAa,GAAG;MACpB,GAAGF,UAAU;MACb,GAAGC;IACL,CAAC;IAED,OAAOP,IAAA,CAAAS,UAAA;MAAA,GAAeD,aAAa;MAAEE,QAAQ,EAAE,CAACR;IAAW,CAAE,CAAC;EAChE,CAAC,EACD,CAACA,UAAU,CACb,CAAC;EAED,OACEF,IAAA,CAACH,aAAa;IACZI,KAAK,EAAEA,KAAM;IACbE,QAAQ,EAAEA,QAAS;IAEnBE,WAAW,EAAEA,WAAY;IACzBD,KAAK,EAAEA;EAAM,CACd,CAAC;AAEN,CAAC"}
|