@okta/odyssey-react-mui 1.44.0 → 1.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Autocomplete.cjs +3 -33
- package/dist/cjs/Autocomplete.cjs.map +1 -1
- package/dist/cjs/Banner.cjs +2 -2
- package/dist/cjs/Banner.cjs.map +1 -1
- package/dist/cjs/Breadcrumbs.cjs +2 -2
- package/dist/cjs/Breadcrumbs.cjs.map +1 -1
- package/dist/cjs/Buttons/BaseButton.cjs.map +1 -1
- package/dist/cjs/Callout.cjs +3 -27
- package/dist/cjs/Callout.cjs.map +1 -1
- package/dist/cjs/Card.cjs +280 -63
- package/dist/cjs/Card.cjs.map +1 -1
- package/dist/cjs/Checkbox.cjs +14 -12
- package/dist/cjs/Checkbox.cjs.map +1 -1
- package/dist/cjs/DataTable/DataTable.cjs +2 -2
- package/dist/cjs/DataTable/DataTable.cjs.map +1 -1
- package/dist/cjs/DataTable/DataTableRowActions.cjs +6 -6
- package/dist/cjs/DataTable/DataTableRowActions.cjs.map +1 -1
- package/dist/cjs/DataTable/DataTableSettings.cjs +2 -2
- package/dist/cjs/DataTable/DataTableSettings.cjs.map +1 -1
- package/dist/cjs/DataTable/useRowReordering.cjs +2 -2
- package/dist/cjs/DataTable/useRowReordering.cjs.map +1 -1
- package/dist/cjs/DatePickers/DateField.cjs +2 -2
- package/dist/cjs/DatePickers/DateField.cjs.map +1 -1
- package/dist/cjs/DatePickers/DateFieldActionBar.cjs +2 -2
- package/dist/cjs/DatePickers/DateFieldActionBar.cjs.map +1 -1
- package/dist/cjs/DatePickers/DatePicker.cjs +2 -2
- package/dist/cjs/DatePickers/DatePicker.cjs.map +1 -1
- package/dist/cjs/DatePickers/useDateFieldsTranslations.cjs +2 -2
- package/dist/cjs/DatePickers/useDateFieldsTranslations.cjs.map +1 -1
- package/dist/cjs/DatePickers/useOdysseyDateFields.cjs +2 -2
- package/dist/cjs/DatePickers/useOdysseyDateFields.cjs.map +1 -1
- package/dist/cjs/Dialog.cjs +34 -31
- package/dist/cjs/Dialog.cjs.map +1 -1
- package/dist/cjs/Drawer.cjs +8 -4
- package/dist/cjs/Drawer.cjs.map +1 -1
- package/dist/cjs/Field.cjs +2 -2
- package/dist/cjs/Field.cjs.map +1 -1
- package/dist/cjs/FieldError.cjs +2 -2
- package/dist/cjs/FieldError.cjs.map +1 -1
- package/dist/cjs/FieldLabel.cjs +2 -2
- package/dist/cjs/FieldLabel.cjs.map +1 -1
- package/dist/cjs/FileUploader/FileUploadPreview.cjs +2 -2
- package/dist/cjs/FileUploader/FileUploadPreview.cjs.map +1 -1
- package/dist/cjs/FileUploader/FileUploader.cjs +2 -2
- package/dist/cjs/FileUploader/FileUploader.cjs.map +1 -1
- package/dist/cjs/FullScreenOverlay.cjs +40 -0
- package/dist/cjs/FullScreenOverlay.cjs.map +1 -0
- package/dist/cjs/FullScreenOverlayContext.cjs +72 -0
- package/dist/cjs/FullScreenOverlayContext.cjs.map +1 -0
- package/dist/cjs/OdysseyCacheProvider.cjs +12 -17
- package/dist/cjs/OdysseyCacheProvider.cjs.map +1 -1
- package/dist/cjs/OdysseyProvider.cjs +18 -10
- package/dist/cjs/OdysseyProvider.cjs.map +1 -1
- package/dist/cjs/OdysseyThemeProvider.cjs +27 -16
- package/dist/cjs/OdysseyThemeProvider.cjs.map +1 -1
- package/dist/cjs/OdysseyThemeProviderPropsContext.cjs +44 -0
- package/dist/cjs/OdysseyThemeProviderPropsContext.cjs.map +1 -0
- package/dist/cjs/Pagination/Pagination.cjs +2 -3
- package/dist/cjs/Pagination/Pagination.cjs.map +1 -1
- package/dist/cjs/Pagination/usePagination.cjs +2 -2
- package/dist/cjs/Pagination/usePagination.cjs.map +1 -1
- package/dist/cjs/PasswordField.cjs +2 -2
- package/dist/cjs/PasswordField.cjs.map +1 -1
- package/dist/cjs/Radio.cjs +22 -20
- package/dist/cjs/Radio.cjs.map +1 -1
- package/dist/cjs/SearchField.cjs +2 -2
- package/dist/cjs/SearchField.cjs.map +1 -1
- package/dist/cjs/Select.cjs +1 -37
- package/dist/cjs/Select.cjs.map +1 -1
- package/dist/cjs/Surface.cjs +3 -3
- package/dist/cjs/Surface.cjs.map +1 -1
- package/dist/cjs/Switch.cjs +2 -2
- package/dist/cjs/Switch.cjs.map +1 -1
- package/dist/cjs/Tabs.cjs +1 -21
- package/dist/cjs/Tabs.cjs.map +1 -1
- package/dist/cjs/Tag.cjs +2 -2
- package/dist/cjs/Tag.cjs.map +1 -1
- package/dist/cjs/TextField.cjs +1 -26
- package/dist/cjs/TextField.cjs.map +1 -1
- package/dist/cjs/Toast.cjs +2 -2
- package/dist/cjs/Toast.cjs.map +1 -1
- package/dist/cjs/__internal.cjs +149 -0
- package/dist/cjs/__internal.cjs.map +1 -0
- package/dist/cjs/i18n.generated/i18n.cjs +35 -0
- package/dist/cjs/i18n.generated/i18n.cjs.map +1 -0
- package/dist/cjs/i18n.generated/i18n.resources.cjs +81 -0
- package/dist/cjs/i18n.generated/i18n.resources.cjs.map +1 -0
- package/dist/{esm/shadow-dom/index.js → cjs/i18n.generated/i18n.types.cjs} +9 -4
- package/dist/cjs/i18n.generated/i18n.types.cjs.map +1 -0
- package/dist/cjs/index.cjs +49 -30
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/labs/DataFilters.cjs +4 -4
- package/dist/cjs/labs/DataFilters.cjs.map +1 -1
- package/dist/cjs/labs/DataTable.cjs +2 -2
- package/dist/cjs/labs/DataTable.cjs.map +1 -1
- package/dist/cjs/labs/DataView/BulkActionsMenu.cjs +2 -2
- package/dist/cjs/labs/DataView/BulkActionsMenu.cjs.map +1 -1
- package/dist/cjs/labs/DataView/CardLayoutContent.cjs +60 -44
- package/dist/cjs/labs/DataView/CardLayoutContent.cjs.map +1 -1
- package/dist/cjs/labs/DataView/DataCard.cjs +52 -181
- package/dist/cjs/labs/DataView/DataCard.cjs.map +1 -1
- package/dist/cjs/labs/DataView/DataView.cjs +2 -2
- package/dist/cjs/labs/DataView/DataView.cjs.map +1 -1
- package/dist/cjs/labs/DataView/LayoutSwitcher.cjs +2 -2
- package/dist/cjs/labs/DataView/LayoutSwitcher.cjs.map +1 -1
- package/dist/cjs/labs/DataView/RowActions.cjs +2 -2
- package/dist/cjs/labs/DataView/RowActions.cjs.map +1 -1
- package/dist/cjs/labs/DataView/TableLayoutContent.cjs +2 -2
- package/dist/cjs/labs/DataView/TableLayoutContent.cjs.map +1 -1
- package/dist/cjs/labs/DataView/TableSettings.cjs +2 -2
- package/dist/cjs/labs/DataView/TableSettings.cjs.map +1 -1
- package/dist/cjs/labs/DataView/componentTypes.cjs.map +1 -1
- package/dist/cjs/labs/DataView/fetchData.cjs +2 -2
- package/dist/cjs/labs/DataView/fetchData.cjs.map +1 -1
- package/dist/cjs/labs/DatePickers/DateTimeField.cjs +2 -2
- package/dist/cjs/labs/DatePickers/DateTimeField.cjs.map +1 -1
- package/dist/cjs/labs/DatePickers/DateTimePicker.cjs +2 -2
- package/dist/cjs/labs/DatePickers/DateTimePicker.cjs.map +1 -1
- package/dist/cjs/labs/DatePickers/dateTimePickerTheme.cjs +3 -3
- package/dist/cjs/labs/DatePickers/dateTimePickerTheme.cjs.map +1 -1
- package/dist/cjs/labs/OdysseyPickers/ComposablePicker.cjs +2 -2
- package/dist/cjs/labs/OdysseyPickers/ComposablePicker.cjs.map +1 -1
- package/dist/cjs/labs/OdysseyPickers/PickerWithOptionAdornment.cjs +4 -0
- package/dist/cjs/labs/OdysseyPickers/PickerWithOptionAdornment.cjs.map +1 -1
- package/dist/cjs/labs/OdysseyPickers/index.cjs.map +1 -1
- package/dist/cjs/labs/PageTemplate/Layout.cjs +2 -2
- package/dist/cjs/labs/PageTemplate/Layout.cjs.map +1 -1
- package/dist/cjs/labs/PageTemplate/PageTemplate.cjs.map +1 -1
- package/dist/cjs/labs/PaginatedTable.cjs +4 -4
- package/dist/cjs/labs/PaginatedTable.cjs.map +1 -1
- package/dist/cjs/labs/StaticTable.cjs +2 -2
- package/dist/cjs/labs/StaticTable.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_cs.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_cs.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_da.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_da.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_de.cjs +8 -2
- package/dist/cjs/properties/ts/odyssey-react-mui_de.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_el.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_el.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_es.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_es.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_eu.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_eu.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_fi.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_fi.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_fr.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_fr.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ht.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ht.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_hu.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_hu.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_id.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_id.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_it.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_it.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ja.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ja.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ko.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ko.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ms.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ms.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_nb.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_nb.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_nl_NL.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_nl_NL.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ok_PL.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ok_SK.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_pl.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_pl.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_pt_BR.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_pt_BR.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ro.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ro.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ru.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ru.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_sv.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_sv.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_th.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_th.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_tr.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_tr.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_uk.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_uk.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_vi.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_vi.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_zh_CN.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_zh_CN.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_zh_TW.cjs +7 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_zh_TW.cjs.map +1 -1
- package/dist/cjs/test-selectors/AutocompleteTestSelector.cjs +49 -0
- package/dist/cjs/test-selectors/AutocompleteTestSelector.cjs.map +1 -0
- package/dist/cjs/test-selectors/CalloutTestSelector.cjs +43 -0
- package/dist/cjs/test-selectors/CalloutTestSelector.cjs.map +1 -0
- package/dist/cjs/test-selectors/SelectTestSelector.cjs +55 -0
- package/dist/cjs/test-selectors/SelectTestSelector.cjs.map +1 -0
- package/dist/cjs/{OdysseyTranslationProvider.types.cjs → test-selectors/TabsTestSelector.cjs} +23 -4
- package/dist/cjs/test-selectors/TabsTestSelector.cjs.map +1 -0
- package/dist/cjs/test-selectors/TextFieldTestSelector.cjs +44 -0
- package/dist/cjs/test-selectors/TextFieldTestSelector.cjs.map +1 -0
- package/dist/cjs/test-selectors/index.cjs +11 -0
- package/dist/cjs/test-selectors/index.cjs.map +1 -1
- package/dist/cjs/test-selectors/queryOdysseySelector.cjs +10 -10
- package/dist/cjs/test-selectors/queryOdysseySelector.cjs.map +1 -1
- package/dist/cjs/theme/components.cjs +5 -9
- package/dist/cjs/theme/components.cjs.map +1 -1
- package/dist/cjs/tools/addSpecificity.cjs.map +1 -0
- package/dist/cjs/tools/bufferLatest.cjs.map +1 -0
- package/dist/cjs/tools/createMessageBus.cjs.map +1 -0
- package/dist/cjs/tools/createStore.cjs.map +1 -0
- package/dist/cjs/ui-shell/NarrowUiShellContent.cjs +2 -12
- package/dist/cjs/ui-shell/NarrowUiShellContent.cjs.map +1 -1
- package/dist/cjs/ui-shell/SideNav/NavAccordion.cjs +20 -15
- package/dist/cjs/ui-shell/SideNav/NavAccordion.cjs.map +1 -1
- package/dist/cjs/ui-shell/SideNav/SideNav.cjs +137 -136
- package/dist/cjs/ui-shell/SideNav/SideNav.cjs.map +1 -1
- package/dist/cjs/ui-shell/SideNav/SideNavFooterContent.cjs +2 -2
- package/dist/cjs/ui-shell/SideNav/SideNavFooterContent.cjs.map +1 -1
- package/dist/cjs/ui-shell/SideNav/SideNavItemContent.cjs +7 -4
- package/dist/cjs/ui-shell/SideNav/SideNavItemContent.cjs.map +1 -1
- package/dist/cjs/ui-shell/SideNav/SideNavItemContentContext.cjs.map +1 -1
- package/dist/cjs/ui-shell/SideNav/SideNavItemLinkContent.cjs +3 -4
- package/dist/cjs/ui-shell/SideNav/SideNavItemLinkContent.cjs.map +1 -1
- package/dist/cjs/ui-shell/SideNav/SideNavSortableList.cjs +47 -0
- package/dist/cjs/ui-shell/SideNav/SideNavSortableList.cjs.map +1 -0
- package/dist/cjs/ui-shell/SideNav/SideNavToggleButton.cjs +2 -2
- package/dist/cjs/ui-shell/SideNav/SideNavToggleButton.cjs.map +1 -1
- package/dist/cjs/ui-shell/SideNav/SortableList/SortableItem.cjs +2 -2
- package/dist/cjs/ui-shell/SideNav/SortableList/SortableItem.cjs.map +1 -1
- package/dist/cjs/ui-shell/SideNav/SortableList/SortableList.cjs +2 -2
- package/dist/cjs/ui-shell/SideNav/SortableList/SortableList.cjs.map +1 -1
- package/dist/cjs/ui-shell/SideNav/types.cjs.map +1 -1
- package/dist/cjs/ui-shell/UiShell.cjs +4 -4
- package/dist/cjs/ui-shell/UiShell.cjs.map +1 -1
- package/dist/cjs/ui-shell/UiShellProvider.cjs +1 -1
- package/dist/cjs/ui-shell/UiShellProvider.cjs.map +1 -1
- package/dist/cjs/ui-shell/WideUiShellContent.cjs +2 -1
- package/dist/cjs/ui-shell/WideUiShellContent.cjs.map +1 -1
- package/dist/cjs/ui-shell/renderUiShell.cjs +2 -2
- package/dist/cjs/ui-shell/renderUiShell.cjs.map +1 -1
- package/dist/cjs/ui-shell/uiShellContentTypes.cjs +2 -1
- package/dist/cjs/ui-shell/uiShellContentTypes.cjs.map +1 -1
- package/dist/cjs/{shadow-dom/shadow-dom.cjs → web-component/createShadowDomElements.cjs} +8 -3
- package/dist/cjs/web-component/createShadowDomElements.cjs.map +1 -0
- package/dist/cjs/web-component/index.cjs +33 -0
- package/dist/cjs/web-component/index.cjs.map +1 -1
- package/dist/cjs/web-component/odysseyWebComponentVersion.generated.cjs +1 -1
- package/dist/cjs/web-component/odysseyWebComponentVersion.generated.cjs.map +1 -1
- package/dist/cjs/web-component/removeGlobalStylesFromShadowDom.cjs +35 -0
- package/dist/cjs/web-component/removeGlobalStylesFromShadowDom.cjs.map +1 -0
- package/dist/cjs/web-component/renderReactInWebComponent.cjs +5 -9
- package/dist/cjs/web-component/renderReactInWebComponent.cjs.map +1 -1
- package/dist/esm/Autocomplete.js +1 -31
- package/dist/esm/Autocomplete.js.map +1 -1
- package/dist/esm/Banner.js +1 -1
- package/dist/esm/Banner.js.map +1 -1
- package/dist/esm/Breadcrumbs.js +1 -1
- package/dist/esm/Breadcrumbs.js.map +1 -1
- package/dist/esm/Buttons/BaseButton.js.map +1 -1
- package/dist/esm/Callout.js +1 -25
- package/dist/esm/Callout.js.map +1 -1
- package/dist/esm/Card.js +281 -63
- package/dist/esm/Card.js.map +1 -1
- package/dist/esm/Checkbox.js +13 -11
- package/dist/esm/Checkbox.js.map +1 -1
- package/dist/esm/DataTable/DataTable.js +1 -1
- package/dist/esm/DataTable/DataTable.js.map +1 -1
- package/dist/esm/DataTable/DataTableRowActions.js +1 -1
- package/dist/esm/DataTable/DataTableRowActions.js.map +1 -1
- package/dist/esm/DataTable/DataTableSettings.js +1 -1
- package/dist/esm/DataTable/DataTableSettings.js.map +1 -1
- package/dist/esm/DataTable/useRowReordering.js +1 -1
- package/dist/esm/DataTable/useRowReordering.js.map +1 -1
- package/dist/esm/DatePickers/DateField.js +1 -1
- package/dist/esm/DatePickers/DateField.js.map +1 -1
- package/dist/esm/DatePickers/DateFieldActionBar.js +1 -1
- package/dist/esm/DatePickers/DateFieldActionBar.js.map +1 -1
- package/dist/esm/DatePickers/DatePicker.js +1 -1
- package/dist/esm/DatePickers/DatePicker.js.map +1 -1
- package/dist/esm/DatePickers/useDateFieldsTranslations.js +1 -1
- package/dist/esm/DatePickers/useDateFieldsTranslations.js.map +1 -1
- package/dist/esm/DatePickers/useOdysseyDateFields.js +1 -1
- package/dist/esm/DatePickers/useOdysseyDateFields.js.map +1 -1
- package/dist/esm/Dialog.js +33 -30
- package/dist/esm/Dialog.js.map +1 -1
- package/dist/esm/Drawer.js +7 -3
- package/dist/esm/Drawer.js.map +1 -1
- package/dist/esm/Field.js +1 -1
- package/dist/esm/Field.js.map +1 -1
- package/dist/esm/FieldError.js +1 -1
- package/dist/esm/FieldError.js.map +1 -1
- package/dist/esm/FieldLabel.js +1 -1
- package/dist/esm/FieldLabel.js.map +1 -1
- package/dist/esm/FileUploader/FileUploadPreview.js +1 -1
- package/dist/esm/FileUploader/FileUploadPreview.js.map +1 -1
- package/dist/esm/FileUploader/FileUploader.js +1 -1
- package/dist/esm/FileUploader/FileUploader.js.map +1 -1
- package/dist/esm/FullScreenOverlay.js +35 -0
- package/dist/esm/FullScreenOverlay.js.map +1 -0
- package/dist/esm/FullScreenOverlayContext.js +66 -0
- package/dist/esm/FullScreenOverlayContext.js.map +1 -0
- package/dist/esm/OdysseyCacheProvider.js +12 -17
- package/dist/esm/OdysseyCacheProvider.js.map +1 -1
- package/dist/esm/OdysseyProvider.js +18 -10
- package/dist/esm/OdysseyProvider.js.map +1 -1
- package/dist/esm/OdysseyThemeProvider.js +27 -16
- package/dist/esm/OdysseyThemeProvider.js.map +1 -1
- package/dist/esm/OdysseyThemeProviderPropsContext.js +38 -0
- package/dist/esm/OdysseyThemeProviderPropsContext.js.map +1 -0
- package/dist/esm/Pagination/Pagination.js +1 -2
- package/dist/esm/Pagination/Pagination.js.map +1 -1
- package/dist/esm/Pagination/usePagination.js +1 -1
- package/dist/esm/Pagination/usePagination.js.map +1 -1
- package/dist/esm/PasswordField.js +1 -1
- package/dist/esm/PasswordField.js.map +1 -1
- package/dist/esm/Radio.js +22 -20
- package/dist/esm/Radio.js.map +1 -1
- package/dist/esm/SearchField.js +1 -1
- package/dist/esm/SearchField.js.map +1 -1
- package/dist/esm/Select.js +0 -36
- package/dist/esm/Select.js.map +1 -1
- package/dist/esm/Surface.js +3 -3
- package/dist/esm/Surface.js.map +1 -1
- package/dist/esm/Switch.js +1 -1
- package/dist/esm/Switch.js.map +1 -1
- package/dist/esm/Tabs.js +0 -20
- package/dist/esm/Tabs.js.map +1 -1
- package/dist/esm/Tag.js +1 -1
- package/dist/esm/Tag.js.map +1 -1
- package/dist/esm/TextField.js +0 -25
- package/dist/esm/TextField.js.map +1 -1
- package/dist/esm/Toast.js +1 -1
- package/dist/esm/Toast.js.map +1 -1
- package/dist/esm/__internal.js +24 -0
- package/dist/esm/__internal.js.map +1 -0
- package/dist/esm/i18n.generated/i18n.js +25 -0
- package/dist/esm/i18n.generated/i18n.js.map +1 -0
- package/dist/esm/i18n.generated/i18n.resources.js +75 -0
- package/dist/esm/i18n.generated/i18n.resources.js.map +1 -0
- package/dist/{types/shadow-dom/index.d.ts → esm/i18n.generated/i18n.types.js} +3 -3
- package/dist/esm/i18n.generated/i18n.types.js.map +1 -0
- package/dist/esm/index.js +4 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/labs/DataFilters.js +1 -1
- package/dist/esm/labs/DataFilters.js.map +1 -1
- package/dist/esm/labs/DataTable.js +1 -1
- package/dist/esm/labs/DataTable.js.map +1 -1
- package/dist/esm/labs/DataView/BulkActionsMenu.js +1 -1
- package/dist/esm/labs/DataView/BulkActionsMenu.js.map +1 -1
- package/dist/esm/labs/DataView/CardLayoutContent.js +61 -45
- package/dist/esm/labs/DataView/CardLayoutContent.js.map +1 -1
- package/dist/esm/labs/DataView/DataCard.js +51 -180
- package/dist/esm/labs/DataView/DataCard.js.map +1 -1
- package/dist/esm/labs/DataView/DataView.js +1 -1
- package/dist/esm/labs/DataView/DataView.js.map +1 -1
- package/dist/esm/labs/DataView/LayoutSwitcher.js +1 -1
- package/dist/esm/labs/DataView/LayoutSwitcher.js.map +1 -1
- package/dist/esm/labs/DataView/RowActions.js +1 -1
- package/dist/esm/labs/DataView/RowActions.js.map +1 -1
- package/dist/esm/labs/DataView/TableLayoutContent.js +1 -1
- package/dist/esm/labs/DataView/TableLayoutContent.js.map +1 -1
- package/dist/esm/labs/DataView/TableSettings.js +1 -1
- package/dist/esm/labs/DataView/TableSettings.js.map +1 -1
- package/dist/esm/labs/DataView/componentTypes.js.map +1 -1
- package/dist/esm/labs/DataView/fetchData.js +2 -2
- package/dist/esm/labs/DataView/fetchData.js.map +1 -1
- package/dist/esm/labs/DatePickers/DateTimeField.js +1 -1
- package/dist/esm/labs/DatePickers/DateTimeField.js.map +1 -1
- package/dist/esm/labs/DatePickers/DateTimePicker.js +1 -1
- package/dist/esm/labs/DatePickers/DateTimePicker.js.map +1 -1
- package/dist/esm/labs/DatePickers/dateTimePickerTheme.js +3 -3
- package/dist/esm/labs/DatePickers/dateTimePickerTheme.js.map +1 -1
- package/dist/esm/labs/OdysseyPickers/ComposablePicker.js +1 -1
- package/dist/esm/labs/OdysseyPickers/ComposablePicker.js.map +1 -1
- package/dist/esm/labs/OdysseyPickers/PickerWithOptionAdornment.js +4 -0
- package/dist/esm/labs/OdysseyPickers/PickerWithOptionAdornment.js.map +1 -1
- package/dist/esm/labs/OdysseyPickers/index.js.map +1 -1
- package/dist/esm/labs/PageTemplate/Layout.js +2 -2
- package/dist/esm/labs/PageTemplate/Layout.js.map +1 -1
- package/dist/esm/labs/PageTemplate/PageTemplate.js.map +1 -1
- package/dist/esm/labs/PaginatedTable.js +1 -1
- package/dist/esm/labs/PaginatedTable.js.map +1 -1
- package/dist/esm/labs/StaticTable.js +1 -1
- package/dist/esm/labs/StaticTable.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_cs.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_cs.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_da.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_da.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_de.js +8 -2
- package/dist/esm/properties/ts/odyssey-react-mui_de.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_el.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_el.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_es.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_es.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_eu.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_eu.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_fi.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_fi.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_fr.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_fr.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ht.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ht.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_hu.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_hu.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_id.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_id.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_it.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_it.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ja.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ja.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ko.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ko.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ms.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ms.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_nb.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_nb.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_nl_NL.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_nl_NL.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ok_PL.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ok_SK.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_pl.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_pl.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_pt_BR.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_pt_BR.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ro.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ro.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ru.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ru.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_sv.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_sv.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_th.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_th.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_tr.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_tr.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_uk.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_uk.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_vi.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_vi.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_zh_CN.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_zh_CN.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_zh_TW.js +7 -1
- package/dist/esm/properties/ts/odyssey-react-mui_zh_TW.js.map +1 -1
- package/dist/esm/test-selectors/AutocompleteTestSelector.js +43 -0
- package/dist/esm/test-selectors/AutocompleteTestSelector.js.map +1 -0
- package/dist/esm/test-selectors/CalloutTestSelector.js +37 -0
- package/dist/esm/test-selectors/CalloutTestSelector.js.map +1 -0
- package/dist/esm/test-selectors/SelectTestSelector.js +49 -0
- package/dist/esm/test-selectors/SelectTestSelector.js.map +1 -0
- package/dist/esm/test-selectors/TabsTestSelector.js +33 -0
- package/dist/esm/test-selectors/TabsTestSelector.js.map +1 -0
- package/dist/esm/test-selectors/TextFieldTestSelector.js +38 -0
- package/dist/esm/test-selectors/TextFieldTestSelector.js.map +1 -0
- package/dist/esm/test-selectors/index.js +1 -0
- package/dist/esm/test-selectors/index.js.map +1 -1
- package/dist/esm/test-selectors/queryOdysseySelector.js +5 -5
- package/dist/esm/test-selectors/queryOdysseySelector.js.map +1 -1
- package/dist/esm/theme/components.js +5 -9
- package/dist/esm/theme/components.js.map +1 -1
- package/dist/esm/tools/addSpecificity.js.map +1 -0
- package/dist/esm/tools/bufferLatest.js.map +1 -0
- package/dist/esm/tools/createMessageBus.js.map +1 -0
- package/dist/esm/tools/createStore.js.map +1 -0
- package/dist/esm/ui-shell/NarrowUiShellContent.js +3 -13
- package/dist/esm/ui-shell/NarrowUiShellContent.js.map +1 -1
- package/dist/esm/ui-shell/SideNav/NavAccordion.js +20 -15
- package/dist/esm/ui-shell/SideNav/NavAccordion.js.map +1 -1
- package/dist/esm/ui-shell/SideNav/SideNav.js +136 -135
- package/dist/esm/ui-shell/SideNav/SideNav.js.map +1 -1
- package/dist/esm/ui-shell/SideNav/SideNavFooterContent.js +1 -1
- package/dist/esm/ui-shell/SideNav/SideNavFooterContent.js.map +1 -1
- package/dist/esm/ui-shell/SideNav/SideNavItemContent.js +7 -4
- package/dist/esm/ui-shell/SideNav/SideNavItemContent.js.map +1 -1
- package/dist/esm/ui-shell/SideNav/SideNavItemContentContext.js.map +1 -1
- package/dist/esm/ui-shell/SideNav/SideNavItemLinkContent.js +3 -4
- package/dist/esm/ui-shell/SideNav/SideNavItemLinkContent.js.map +1 -1
- package/dist/esm/ui-shell/SideNav/SideNavSortableList.js +42 -0
- package/dist/esm/ui-shell/SideNav/SideNavSortableList.js.map +1 -0
- package/dist/esm/ui-shell/SideNav/SideNavToggleButton.js +1 -1
- package/dist/esm/ui-shell/SideNav/SideNavToggleButton.js.map +1 -1
- package/dist/esm/ui-shell/SideNav/SortableList/SortableItem.js +1 -1
- package/dist/esm/ui-shell/SideNav/SortableList/SortableItem.js.map +1 -1
- package/dist/esm/ui-shell/SideNav/SortableList/SortableList.js +1 -1
- package/dist/esm/ui-shell/SideNav/SortableList/SortableList.js.map +1 -1
- package/dist/esm/ui-shell/SideNav/types.js.map +1 -1
- package/dist/esm/ui-shell/UiShell.js +4 -4
- package/dist/esm/ui-shell/UiShell.js.map +1 -1
- package/dist/esm/ui-shell/UiShellProvider.js +1 -1
- package/dist/esm/ui-shell/UiShellProvider.js.map +1 -1
- package/dist/esm/ui-shell/WideUiShellContent.js +2 -1
- package/dist/esm/ui-shell/WideUiShellContent.js.map +1 -1
- package/dist/esm/ui-shell/renderUiShell.js +2 -2
- package/dist/esm/ui-shell/renderUiShell.js.map +1 -1
- package/dist/esm/ui-shell/uiShellContentTypes.js +1 -0
- package/dist/esm/ui-shell/uiShellContentTypes.js.map +1 -1
- package/dist/esm/{shadow-dom/shadow-dom.js → web-component/createShadowDomElements.js} +8 -3
- package/dist/esm/web-component/createShadowDomElements.js.map +1 -0
- package/dist/esm/web-component/index.js +3 -0
- package/dist/esm/web-component/index.js.map +1 -1
- package/dist/esm/web-component/odysseyWebComponentVersion.generated.js +1 -1
- package/dist/esm/web-component/odysseyWebComponentVersion.generated.js.map +1 -1
- package/dist/esm/web-component/removeGlobalStylesFromShadowDom.js +28 -0
- package/dist/esm/web-component/removeGlobalStylesFromShadowDom.js.map +1 -0
- package/dist/esm/web-component/renderReactInWebComponent.js +5 -9
- package/dist/esm/web-component/renderReactInWebComponent.js.map +1 -1
- package/dist/tsconfig.production.tsbuildinfo +1 -1
- package/dist/types/Autocomplete.d.ts +0 -30
- package/dist/types/Autocomplete.d.ts.map +1 -1
- package/dist/types/Banner.d.ts.map +1 -1
- package/dist/types/Breadcrumbs.d.ts.map +1 -1
- package/dist/types/Buttons/BaseButton.d.ts +2 -2
- package/dist/types/Buttons/BaseButton.d.ts.map +1 -1
- package/dist/types/Callout.d.ts +0 -24
- package/dist/types/Callout.d.ts.map +1 -1
- package/dist/types/Card.d.ts +17 -6
- package/dist/types/Card.d.ts.map +1 -1
- package/dist/types/Checkbox.d.ts.map +1 -1
- package/dist/types/DataTable/DataTable.d.ts.map +1 -1
- package/dist/types/DataTable/DataTableRowActions.d.ts.map +1 -1
- package/dist/types/DatePickers/DatePicker.d.ts.map +1 -1
- package/dist/types/DatePickers/useDateFieldsTranslations.d.ts.map +1 -1
- package/dist/types/DatePickers/useOdysseyDateFields.d.ts.map +1 -1
- package/dist/types/Dialog.d.ts.map +1 -1
- package/dist/types/Drawer.d.ts.map +1 -1
- package/dist/types/Field.d.ts.map +1 -1
- package/dist/types/FieldError.d.ts.map +1 -1
- package/dist/types/FieldLabel.d.ts.map +1 -1
- package/dist/types/FileUploader/FileUploader.d.ts.map +1 -1
- package/dist/types/FullScreenOverlay.d.ts +19 -0
- package/dist/types/FullScreenOverlay.d.ts.map +1 -0
- package/dist/types/FullScreenOverlayContext.d.ts +31 -0
- package/dist/types/FullScreenOverlayContext.d.ts.map +1 -0
- package/dist/types/NativeSelect.d.ts +1 -1
- package/dist/types/OdysseyCacheProvider.d.ts +10 -3
- package/dist/types/OdysseyCacheProvider.d.ts.map +1 -1
- package/dist/types/OdysseyProvider.d.ts +8 -8
- package/dist/types/OdysseyProvider.d.ts.map +1 -1
- package/dist/types/OdysseyThemeProvider.d.ts +7 -16
- package/dist/types/OdysseyThemeProvider.d.ts.map +1 -1
- package/dist/types/OdysseyThemeProviderPropsContext.d.ts +27 -0
- package/dist/types/OdysseyThemeProviderPropsContext.d.ts.map +1 -0
- package/dist/types/Pagination/Pagination.d.ts +0 -1
- package/dist/types/Pagination/Pagination.d.ts.map +1 -1
- package/dist/types/Pagination/usePagination.d.ts.map +1 -1
- package/dist/types/PasswordField.d.ts.map +1 -1
- package/dist/types/Radio.d.ts.map +1 -1
- package/dist/types/SearchField.d.ts.map +1 -1
- package/dist/types/Select.d.ts +0 -36
- package/dist/types/Select.d.ts.map +1 -1
- package/dist/types/Surface.d.ts.map +1 -1
- package/dist/types/Switch.d.ts.map +1 -1
- package/dist/types/Tabs.d.ts +0 -20
- package/dist/types/Tabs.d.ts.map +1 -1
- package/dist/types/Tag.d.ts.map +1 -1
- package/dist/types/TextField.d.ts +0 -25
- package/dist/types/TextField.d.ts.map +1 -1
- package/dist/types/Toast.d.ts.map +1 -1
- package/dist/types/__internal.d.ts +30 -0
- package/dist/types/__internal.d.ts.map +1 -0
- package/dist/types/i18n.generated/i18n.d.ts +285 -0
- package/dist/types/i18n.generated/i18n.d.ts.map +1 -0
- package/dist/types/i18n.generated/i18n.resources.d.ts +4199 -0
- package/dist/types/{i18n.d.ts.map → i18n.generated/i18n.resources.d.ts.map} +1 -1
- package/dist/types/i18n.generated/i18n.types.d.ts +30 -0
- package/dist/types/i18n.generated/i18n.types.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/labs/DataTable.d.ts.map +1 -1
- package/dist/types/labs/DataView/CardLayoutContent.d.ts.map +1 -1
- package/dist/types/labs/DataView/DataCard.d.ts +14 -30
- package/dist/types/labs/DataView/DataCard.d.ts.map +1 -1
- package/dist/types/labs/DataView/RowActions.d.ts.map +1 -1
- package/dist/types/labs/DataView/componentTypes.d.ts +1 -1
- package/dist/types/labs/DataView/componentTypes.d.ts.map +1 -1
- package/dist/types/labs/DataView/fetchData.d.ts.map +1 -1
- package/dist/types/labs/DatePickers/DateTimePicker.d.ts.map +1 -1
- package/dist/types/labs/OdysseyPickers/ComposablePicker.d.ts.map +1 -1
- package/dist/types/labs/OdysseyPickers/PickerWithOptionAdornment.d.ts.map +1 -1
- package/dist/types/labs/OdysseyPickers/index.d.ts +1 -2
- package/dist/types/labs/OdysseyPickers/index.d.ts.map +1 -1
- package/dist/types/labs/PageTemplate/PageTemplate.d.ts.map +1 -1
- package/dist/types/labs/PaginatedTable.d.ts.map +1 -1
- package/dist/types/labs/StaticTable.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui.d.ts +133 -133
- package/dist/types/properties/ts/odyssey-react-mui.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_cs.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_cs.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_da.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_da.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_de.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_de.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_el.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_el.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_es.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_es.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_eu.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_eu.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_fi.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_fi.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_fr.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_fr.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_ht.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_ht.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_hu.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_hu.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_id.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_id.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_it.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_it.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_ja.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_ja.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_ko.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_ko.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_ms.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_ms.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_nb.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_nb.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_nl_NL.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_nl_NL.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_ok_PL.d.ts +133 -133
- package/dist/types/properties/ts/odyssey-react-mui_ok_PL.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_ok_SK.d.ts +133 -133
- package/dist/types/properties/ts/odyssey-react-mui_ok_SK.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_pl.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_pl.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_pt_BR.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_pt_BR.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_ro.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_ro.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_ru.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_ru.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_sv.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_sv.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_th.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_th.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_tr.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_tr.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_uk.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_uk.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_vi.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_vi.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_zh_CN.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_zh_CN.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_zh_TW.d.ts +133 -127
- package/dist/types/properties/ts/odyssey-react-mui_zh_TW.d.ts.map +1 -1
- package/dist/types/test-selectors/AutocompleteTestSelector.d.ts +42 -0
- package/dist/types/test-selectors/AutocompleteTestSelector.d.ts.map +1 -0
- package/dist/types/test-selectors/CalloutTestSelector.d.ts +36 -0
- package/dist/types/test-selectors/CalloutTestSelector.d.ts.map +1 -0
- package/dist/types/test-selectors/SelectTestSelector.d.ts +48 -0
- package/dist/types/test-selectors/SelectTestSelector.d.ts.map +1 -0
- package/dist/types/test-selectors/TabsTestSelector.d.ts +32 -0
- package/dist/types/test-selectors/TabsTestSelector.d.ts.map +1 -0
- package/dist/types/test-selectors/TextFieldTestSelector.d.ts +37 -0
- package/dist/types/test-selectors/TextFieldTestSelector.d.ts.map +1 -0
- package/dist/types/test-selectors/index.d.ts +1 -0
- package/dist/types/test-selectors/index.d.ts.map +1 -1
- package/dist/types/test-selectors/queryOdysseySelector.d.ts.map +1 -1
- package/dist/types/theme/components.d.ts.map +1 -1
- package/dist/types/tools/addSpecificity.d.ts.map +1 -0
- package/dist/types/tools/bufferLatest.d.ts.map +1 -0
- package/dist/types/tools/createMessageBus.d.ts.map +1 -0
- package/dist/types/tools/createStore.d.ts.map +1 -0
- package/dist/types/ui-shell/NarrowUiShellContent.d.ts.map +1 -1
- package/dist/types/ui-shell/SideNav/NavAccordion.d.ts.map +1 -1
- package/dist/types/ui-shell/SideNav/SideNav.d.ts +1 -1
- package/dist/types/ui-shell/SideNav/SideNav.d.ts.map +1 -1
- package/dist/types/ui-shell/SideNav/SideNavFooterContent.d.ts.map +1 -1
- package/dist/types/ui-shell/SideNav/SideNavItemContent.d.ts +2 -1
- package/dist/types/ui-shell/SideNav/SideNavItemContent.d.ts.map +1 -1
- package/dist/types/ui-shell/SideNav/SideNavItemContentContext.d.ts +1 -0
- package/dist/types/ui-shell/SideNav/SideNavItemContentContext.d.ts.map +1 -1
- package/dist/types/ui-shell/SideNav/SideNavItemLinkContent.d.ts.map +1 -1
- package/dist/types/ui-shell/SideNav/SideNavSortableList.d.ts +41 -0
- package/dist/types/ui-shell/SideNav/SideNavSortableList.d.ts.map +1 -0
- package/dist/types/ui-shell/SideNav/types.d.ts +13 -2
- package/dist/types/ui-shell/SideNav/types.d.ts.map +1 -1
- package/dist/types/ui-shell/UiShell.d.ts +1 -1
- package/dist/types/ui-shell/UiShell.d.ts.map +1 -1
- package/dist/types/ui-shell/UiShellProvider.d.ts +1 -1
- package/dist/types/ui-shell/UiShellProvider.d.ts.map +1 -1
- package/dist/types/ui-shell/WideUiShellContent.d.ts.map +1 -1
- package/dist/types/ui-shell/renderUiShell.d.ts +2 -2
- package/dist/types/ui-shell/renderUiShell.d.ts.map +1 -1
- package/dist/types/ui-shell/uiShellContentTypes.d.ts +4 -1
- package/dist/types/ui-shell/uiShellContentTypes.d.ts.map +1 -1
- package/dist/types/{shadow-dom/shadow-dom.d.ts → web-component/createShadowDomElements.d.ts} +6 -4
- package/dist/types/web-component/createShadowDomElements.d.ts.map +1 -0
- package/dist/types/web-component/index.d.ts +3 -0
- package/dist/types/web-component/index.d.ts.map +1 -1
- package/dist/types/web-component/odysseyWebComponentVersion.generated.d.ts +1 -1
- package/dist/types/web-component/removeGlobalStylesFromShadowDom.d.ts +18 -0
- package/dist/types/web-component/removeGlobalStylesFromShadowDom.d.ts.map +1 -0
- package/dist/types/web-component/renderReactInWebComponent.d.ts +1 -1
- package/dist/types/web-component/renderReactInWebComponent.d.ts.map +1 -1
- package/package.json +26 -17
- package/dist/cjs/@types/i18next.d.cjs +0 -4
- package/dist/cjs/@types/i18next.d.cjs.map +0 -1
- package/dist/cjs/@types/properties.d.cjs +0 -2
- package/dist/cjs/@types/properties.d.cjs.map +0 -1
- package/dist/cjs/OdysseyTranslationProvider.cjs +0 -55
- package/dist/cjs/OdysseyTranslationProvider.cjs.map +0 -1
- package/dist/cjs/OdysseyTranslationProvider.types.cjs.map +0 -1
- package/dist/cjs/addSpecificity.cjs.map +0 -1
- package/dist/cjs/i18n.cjs +0 -113
- package/dist/cjs/i18n.cjs.map +0 -1
- package/dist/cjs/shadow-dom/index.cjs +0 -17
- package/dist/cjs/shadow-dom/index.cjs.map +0 -1
- package/dist/cjs/shadow-dom/shadow-dom.cjs.map +0 -1
- package/dist/cjs/ui-shell/bufferLatest.cjs.map +0 -1
- package/dist/cjs/ui-shell/createMessageBus.cjs.map +0 -1
- package/dist/cjs/ui-shell/createStore.cjs.map +0 -1
- package/dist/esm/@types/i18next.d.js +0 -14
- package/dist/esm/@types/i18next.d.js.map +0 -1
- package/dist/esm/@types/properties.d.js +0 -2
- package/dist/esm/@types/properties.d.js.map +0 -1
- package/dist/esm/OdysseyTranslationProvider.js +0 -48
- package/dist/esm/OdysseyTranslationProvider.js.map +0 -1
- package/dist/esm/OdysseyTranslationProvider.types.js +0 -14
- package/dist/esm/OdysseyTranslationProvider.types.js.map +0 -1
- package/dist/esm/addSpecificity.js.map +0 -1
- package/dist/esm/i18n.js +0 -100
- package/dist/esm/i18n.js.map +0 -1
- package/dist/esm/shadow-dom/index.js.map +0 -1
- package/dist/esm/shadow-dom/shadow-dom.js.map +0 -1
- package/dist/esm/ui-shell/bufferLatest.js.map +0 -1
- package/dist/esm/ui-shell/createMessageBus.js.map +0 -1
- package/dist/esm/ui-shell/createStore.js.map +0 -1
- package/dist/types/OdysseyTranslationProvider.d.ts +0 -24
- package/dist/types/OdysseyTranslationProvider.d.ts.map +0 -1
- package/dist/types/OdysseyTranslationProvider.types.d.ts +0 -14
- package/dist/types/OdysseyTranslationProvider.types.d.ts.map +0 -1
- package/dist/types/addSpecificity.d.ts.map +0 -1
- package/dist/types/i18n.d.ts +0 -3910
- package/dist/types/shadow-dom/index.d.ts.map +0 -1
- package/dist/types/shadow-dom/shadow-dom.d.ts.map +0 -1
- package/dist/types/ui-shell/bufferLatest.d.ts.map +0 -1
- package/dist/types/ui-shell/createMessageBus.d.ts.map +0 -1
- package/dist/types/ui-shell/createStore.d.ts.map +0 -1
- /package/dist/cjs/{addSpecificity.cjs → tools/addSpecificity.cjs} +0 -0
- /package/dist/cjs/{ui-shell → tools}/bufferLatest.cjs +0 -0
- /package/dist/cjs/{ui-shell → tools}/createMessageBus.cjs +0 -0
- /package/dist/cjs/{ui-shell → tools}/createStore.cjs +0 -0
- /package/dist/esm/{addSpecificity.js → tools/addSpecificity.js} +0 -0
- /package/dist/esm/{ui-shell → tools}/bufferLatest.js +0 -0
- /package/dist/esm/{ui-shell → tools}/createMessageBus.js +0 -0
- /package/dist/esm/{ui-shell → tools}/createStore.js +0 -0
- /package/dist/types/{addSpecificity.d.ts → tools/addSpecificity.d.ts} +0 -0
- /package/dist/types/{ui-shell → tools}/bufferLatest.d.ts +0 -0
- /package/dist/types/{ui-shell → tools}/createMessageBus.d.ts +0 -0
- /package/dist/types/{ui-shell → tools}/createStore.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataFilters.js","names":["styled","memo","useCallback","useEffect","useMemo","useRef","useState","Trans","useTranslation","Autocomplete","Box","Button","Checkbox","CheckboxGroup","CheckIcon","ChevronRightIcon","CloseCircleFilledIcon","FilterIcon","useOdysseyDesignTokens","Radio","RadioGroup","SearchField","Tag","TagList","TextField","Subordinate","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","StyledAutocompleteOuterContainer","shouldForwardProp","prop","odysseyDesignTokens","display","alignItems","gap","Spacing2","StyledAutocompleteInnerContainer","width","FilterTags","activeFilters","updateFilterAndInputValues","filtersWithValues","filter","activeFilter","value","filtersToRender","forEach","Array","isArray","filterValue","formattedValue","push","id","label","getFilter","find","removeValueFromFilterAndInput","removedFilterValue","currentFilter","updatedValues","currentValue","filterId","length","undefined","children","map","onRemove","MemoizedFilterTags","displayName","DataFilters","onChangeSearch","onChangeFilters","hasSearchSubmitButton","searchDelayTime","defaultSearchTerm","additionalActions","filters","filtersProp","isDisabled","setFilters","t","initialInputValues","reduce","accumulator","inputValues","setInputValues","searchValue","setSearchValue","isFiltersMenuOpen","setIsFiltersMenuOpen","filtersMenuAnchorElement","setFiltersMenuAnchorElement","isFilterPopoverOpen","setIsFilterPopoverOpen","filterPopoverAnchorElement","setFilterPopoverAnchorElement","filterPopoverCurrentFilter","setFilterPopoverCurrentFilter","menuRef","debouncer","current","clearTimeout","setTimeout","autocompleteOptions","options","updateInputValue","updateFilters","prevInputValues","updatedFilters","handleCheckboxFilterAndInputValueChange","option","checked","currentValues","inputValue","normalizedUpdatedValues","handleAutocompleteFilterChange","clearAllFilters","updatedInputValues","handleFilterSubmit","filterMenu","ariaControls","ariaExpanded","ariaHasPopup","ariaLabel","endIcon","onClick","event","currentTarget","variant","_Menu","anchorEl","anchorOrigin","horizontal","vertical","onClose","open","PaperProps","ref","transformOrigin","latestFilterValue","f","_MenuItem","className","selected","sx","justifyContent","minWidth","paddingBlock","paddingInlineStart","marginRight","_Typography","fontWeight","marginBlockEnd","component","i18nKey","values","toLowerCase","count","autoCompleteValue","maxWidth","_Popover","elevation","ev","menuRect","getBoundingClientRect","clickInsideMenu","clientX","left","right","clientY","top","bottom","marginLeft","marginTop","padding","noValidate","onSubmit","preventDefault","render","hasMultipleChoices","isCustomValueAllowed","onChange","_","type","endAdornment","_IconButton","size","hasInitialFocus","isRequired","checkFilterInputValuesAsArray","isOptionValueInInputValues","some","isChecked","style","target","onClear","placeholder","borderTopWidth","borderTopColor","borderTopStyle","paddingTop","MemoizedDataFilters"],"sources":["../../../src/labs/DataFilters.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport styled from \"@emotion/styled\";\nimport {\n IconButton as MuiIconButton,\n Menu as MuiMenu,\n MenuItem as MuiMenuItem,\n Popover as MuiPopover,\n Typography as MuiTypography,\n} from \"@mui/material\";\nimport { MRT_ColumnDef, MRT_RowData } from \"material-react-table\";\nimport {\n memo,\n MutableRefObject,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { Autocomplete } from \"../Autocomplete.js\";\nimport { Box } from \"../Box.js\";\nimport { Button } from \"../Buttons/index.js\";\nimport { Checkbox } from \"../Checkbox.js\";\nimport { CheckboxGroup } from \"../CheckboxGroup.js\";\nimport {\n CheckIcon,\n ChevronRightIcon,\n CloseCircleFilledIcon,\n FilterIcon,\n} from \"../icons.generated/index.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../OdysseyDesignTokensContext.js\";\nimport { Radio } from \"../Radio.js\";\nimport { RadioGroup } from \"../RadioGroup.js\";\nimport { SearchField } from \"../SearchField.js\";\nimport { Tag } from \"../Tag.js\";\nimport { TagList } from \"../TagList.js\";\nimport { TextField } from \"../TextField.js\";\nimport { Subordinate } from \"../Typography.js\";\n\nconst StyledAutocompleteOuterContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"flex-end\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst StyledAutocompleteInnerContainer = styled(\"div\")({\n width: \"100%\",\n});\n\ntype Option = {\n label: string;\n value: string;\n};\n\nexport type DataFilterValue = string | string[] | Option[] | undefined;\n\nexport type UpdateFiltersOrValues = ({\n filterId,\n value,\n}: {\n filterId: string;\n value: DataFilterValue;\n}) => void;\n\n// This is the shape of each individual filter\nexport type DataFilter = {\n /**\n * A unique ID for the filter, typically the same id\n * as the column it'll be applied to.\n */\n id: Exclude<MRT_ColumnDef<MRT_RowData>[\"accessorKey\"], undefined>;\n /**\n * `Autocomplete` normally only allows values that exist in the list box. This feature allows you to enter in any value in the text field and have that be the stored value in `Autocomplete`\n *\n * NOTE: This only applies when `variant` is `autocomplete`\n */\n isCustomValueAllowed?: boolean;\n /**\n * The human-friendly name of the filter.\n */\n label: string;\n /**\n * If the filter control has preset options (such as a select or multi-select),\n * these are the options provided.\n */\n options?: Option[];\n /**\n * A callback which renders a custom filter control\n */\n render?: (updateFilters: UpdateFiltersOrValues) => ReactNode;\n /**\n * The current value of the filter. Typically a string, but\n * filters that allow for multiple selections (such as multi-select)\n * can accept an array.\n */\n value?: DataFilterValue;\n /**\n * The type of filter, which determines which filtering control\n * is shown.\n */\n variant?: MRT_ColumnDef<MRT_RowData>[\"filterVariant\"];\n};\n\n// This is the type of the DataFilters component itself\nexport type DataFiltersProps = {\n /**\n * A slot for optional additional actions, like buttons, to be displayed\n * on the opposite side of the top row from the search and filter controls.\n */\n additionalActions?: ReactNode;\n /**\n * The starting value of the search input\n */\n defaultSearchTerm?: string;\n /**\n * The filters available in the filter menu. If undefined,\n * the filter menu won't be shown.\n */\n filters?: Array<DataFilter>;\n /**\n * If true, a Search button will be provided alongside the search input\n * and `onChangeSearch` will fire when the button is clicked, rather than\n * whenever the input value changes.\n */\n hasSearchSubmitButton?: boolean;\n /**\n * If true, the filter and search will be disabled\n */\n isDisabled?: boolean;\n /**\n * The callback that's fired when filter values change.\n */\n onChangeFilters?: (filters: Array<DataFilter>) => void;\n /**\n * The callback that's fired when the search input changes\n * (either on change or on submit, based on the value of `hasSearchSubmitButton`).\n * If this is undefined, the search input will not be shown.\n */\n onChangeSearch?: (value: string) => void;\n /**\n * The debounce time, in milliseconds, for the search input firing\n * `onChangeSearch` when changed. If `hasSearchSubmitButton` is true,\n * this doesn't do anything.\n */\n searchDelayTime?: number;\n};\n\ntype FilterTagsProps = {\n activeFilters: DataFilter[];\n updateFilterAndInputValues: UpdateFiltersOrValues;\n};\n\ntype FiltersToRender = {\n id: string;\n label: string;\n value: string;\n};\n\nconst FilterTags = ({\n activeFilters,\n updateFilterAndInputValues,\n}: FilterTagsProps) => {\n const filtersWithValues = activeFilters.filter(\n (activeFilter: DataFilter) => activeFilter.value,\n );\n const filtersToRender: FiltersToRender[] = [];\n\n filtersWithValues.forEach((filter) => {\n if (Array.isArray(filter.value)) {\n filter.value.forEach((filterValue) => {\n const formattedValue =\n typeof filterValue === \"string\" ? filterValue : filterValue.value;\n filtersToRender.push({\n id: filter.id,\n label: filter.label,\n value: formattedValue,\n });\n });\n }\n if (typeof filter.value === \"string\") {\n filtersToRender.push({\n id: filter.id,\n label: filter.label,\n value: filter.value,\n });\n }\n });\n\n const getFilter = (id: string) =>\n filtersWithValues.find((filter) => filter.id === id);\n\n const removeValueFromFilterAndInput = (\n id: string,\n removedFilterValue: string,\n ) => {\n const currentFilter = getFilter(id);\n\n if (currentFilter) {\n const { value } = currentFilter;\n\n if (Array.isArray(value)) {\n const updatedValues = value.filter((currentValue) => {\n return (currentValue as Option).value !== removedFilterValue;\n });\n updateFilterAndInputValues({\n filterId: id,\n value:\n updatedValues.length > 0 ? (updatedValues as Option[]) : undefined,\n });\n }\n\n if (typeof value === \"string\") {\n updateFilterAndInputValues({\n filterId: id,\n value: undefined,\n });\n }\n }\n };\n\n return (\n <TagList>\n {filtersToRender.map((filter) => (\n <Tag\n key={`${filter.label}: ${filter.value}`}\n label={`${filter.label}: ${filter.value}`}\n onRemove={() =>\n removeValueFromFilterAndInput(filter.id, filter.value)\n }\n />\n ))}\n </TagList>\n );\n};\n\nconst MemoizedFilterTags = memo(FilterTags);\nMemoizedFilterTags.displayName = \"FilterTags\";\n\nconst DataFilters = ({\n onChangeSearch,\n onChangeFilters,\n hasSearchSubmitButton = false,\n searchDelayTime = 200,\n defaultSearchTerm = \"\",\n additionalActions,\n filters: filtersProp = [],\n isDisabled,\n}: DataFiltersProps) => {\n const [filters, setFilters] = useState<DataFilter[]>(filtersProp);\n const { t } = useTranslation();\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const initialInputValues = useMemo(() => {\n return filtersProp.reduce(\n (accumulator, filter) => {\n accumulator[filter.id] = filter.value;\n return accumulator;\n },\n {} as Record<string, DataFilterValue>,\n );\n }, [filtersProp]);\n\n const [inputValues, setInputValues] = useState(initialInputValues);\n\n const [searchValue, setSearchValue] = useState<string>(defaultSearchTerm);\n\n const activeFilters = useMemo(() => {\n return filters.filter((filter) => filter.value);\n }, [filters]);\n\n const [isFiltersMenuOpen, setIsFiltersMenuOpen] = useState<boolean>(false);\n\n const [filtersMenuAnchorElement, setFiltersMenuAnchorElement] = useState<\n HTMLElement | undefined\n >();\n\n const [isFilterPopoverOpen, setIsFilterPopoverOpen] =\n useState<boolean>(false);\n\n const [filterPopoverAnchorElement, setFilterPopoverAnchorElement] = useState<\n HTMLElement | undefined\n >();\n\n const [filterPopoverCurrentFilter, setFilterPopoverCurrentFilter] = useState<\n DataFilter | undefined\n >();\n\n const menuRef = useRef<HTMLDivElement>();\n\n useEffect(() => {\n onChangeFilters?.(filters);\n }, [filters, onChangeFilters]);\n\n const debouncer = useRef<NodeJS.Timeout | undefined>(undefined);\n\n useEffect(() => {\n if (!hasSearchSubmitButton) {\n if (debouncer.current) {\n clearTimeout(debouncer.current);\n }\n\n debouncer.current = setTimeout(() => {\n onChangeSearch?.(searchValue ?? \"\");\n }, searchDelayTime);\n }\n }, [onChangeSearch, searchValue, searchDelayTime, hasSearchSubmitButton]);\n\n const autocompleteOptions = useMemo(() => {\n return filterPopoverCurrentFilter?.options || [];\n }, [filterPopoverCurrentFilter]);\n\n const updateInputValue = useCallback<UpdateFiltersOrValues>(\n ({ filterId, value }) => {\n setInputValues({ ...inputValues, [filterId]: value });\n },\n [inputValues],\n );\n\n const updateFilters = useCallback<UpdateFiltersOrValues>(\n ({ filterId, value }) => {\n setInputValues((prevInputValues) => ({\n ...prevInputValues,\n [filterId]: value,\n }));\n const updatedFilters = filtersProp.map((filter) => ({\n ...filter,\n value: filter.id === filterId ? value : inputValues[filter.id],\n }));\n setFilters(updatedFilters);\n },\n [inputValues, filtersProp],\n );\n\n const updateFilterAndInputValues = useCallback<UpdateFiltersOrValues>(\n ({ filterId, value }) => {\n updateInputValue({ filterId, value });\n updateFilters({ filterId, value });\n },\n [updateFilters, updateInputValue],\n );\n\n const handleCheckboxFilterAndInputValueChange = useCallback<\n (filterId: string, option: Option, checked: boolean) => void\n >(\n (filterId, option, checked) => {\n const currentValues = (inputValues[filterId] as Option[]) || [];\n\n const updatedValues = checked\n ? [...currentValues, option]\n : currentValues.filter(\n (inputValue) => inputValue.value !== option.value,\n );\n\n const normalizedUpdatedValues =\n updatedValues.length > 0 ? updatedValues : undefined;\n\n setInputValues({\n ...inputValues,\n [filterId]: normalizedUpdatedValues,\n });\n\n const updatedFilters = filters.map((filter) => ({\n ...filter,\n value:\n filter.id === filterId\n ? normalizedUpdatedValues\n : inputValues[filter.id],\n }));\n\n setFilters(updatedFilters);\n },\n [filters, inputValues],\n );\n\n const handleAutocompleteFilterChange = useCallback<\n (filterId: string, option: Option[]) => void\n >(\n (filterId, option) => {\n setInputValues({ ...inputValues, [filterId]: option });\n },\n [inputValues],\n );\n\n const clearAllFilters = useCallback(() => {\n const updatedInputValues = filtersProp.reduce(\n (accumulator, filter) => {\n accumulator[filter.id] = undefined;\n return accumulator;\n },\n {} as Record<string, DataFilterValue>,\n );\n\n setInputValues(updatedInputValues);\n\n const updatedFilters = filtersProp.map((filter) => ({\n ...filter,\n value: undefined,\n }));\n\n setFilters(updatedFilters);\n }, [filtersProp]);\n\n const handleFilterSubmit = useCallback(() => {\n const updatedFilters = filtersProp.map((filter) => ({\n ...filter,\n value: inputValues[filter.id],\n }));\n\n setFilters(updatedFilters);\n }, [inputValues, filtersProp]);\n\n const filterMenu = useMemo(\n () => (\n <>\n <Box>\n <Button\n ariaControls={isFiltersMenuOpen ? \"filters-menu\" : undefined}\n ariaExpanded={isFiltersMenuOpen ? \"true\" : undefined}\n ariaHasPopup=\"true\"\n ariaLabel={t(\"filters.filters.arialabel\")}\n endIcon={<FilterIcon />}\n isDisabled={isDisabled}\n onClick={(event) => {\n setFiltersMenuAnchorElement(event.currentTarget);\n setIsFiltersMenuOpen(true);\n }}\n variant=\"secondary\"\n />\n </Box>\n\n <MuiMenu\n anchorEl={filtersMenuAnchorElement}\n anchorOrigin={{ horizontal: \"left\", vertical: \"bottom\" }}\n id=\"filters-menu\"\n onClose={() => setIsFiltersMenuOpen(false)}\n open={isFiltersMenuOpen}\n PaperProps={{\n ref: menuRef as MutableRefObject<HTMLDivElement>,\n }}\n transformOrigin={{ horizontal: \"left\", vertical: \"top\" }}\n >\n {filtersProp.map((filter) => {\n // Unintuitively, we can't just use filter.value to grab the filter value.\n // `filter` is the initial set of filters provided to the component, so its\n // value prop may not reflect the current value of the filter.\n const latestFilterValue = filters.find(\n (f) => f.id === filter.id,\n )?.value;\n\n return (\n <MuiMenuItem\n aria-controls={isFilterPopoverOpen ? \"filter-form\" : undefined}\n className={\n filterPopoverCurrentFilter === filter &&\n isFilterPopoverOpen === true\n ? \"isVisiblySelected\"\n : undefined\n }\n key={filter.id}\n onClick={(event) => {\n setIsFilterPopoverOpen(true);\n setFilterPopoverAnchorElement(event.currentTarget);\n setFilterPopoverCurrentFilter(filter);\n }}\n selected={\n filterPopoverCurrentFilter === filter &&\n isFilterPopoverOpen === true\n }\n >\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n width: \"100%\",\n minWidth: 180,\n paddingBlock: 1,\n paddingInlineStart: 2,\n }}\n >\n <Box sx={{ marginRight: 2 }}>\n <MuiTypography fontWeight=\"500\" sx={{ marginBlockEnd: 2 }}>\n {filter.label}\n </MuiTypography>\n <Subordinate component=\"div\">\n {!latestFilterValue ||\n (Array.isArray(latestFilterValue) &&\n latestFilterValue.length === 0) ? (\n <Trans\n i18nKey=\"filters.menuitem.any\"\n values={{\n label: filter.label.toLowerCase(),\n }}\n />\n ) : Array.isArray(latestFilterValue) ? (\n <Trans\n count={latestFilterValue.length}\n i18nKey=\"filters.menuitem.selected\"\n values={{\n selected: latestFilterValue.length,\n }}\n />\n ) : (\n latestFilterValue\n )}\n </Subordinate>\n </Box>\n <ChevronRightIcon />\n </Box>\n </MuiMenuItem>\n );\n })}\n </MuiMenu>\n </>\n ),\n [\n isFiltersMenuOpen,\n isDisabled,\n filterPopoverCurrentFilter,\n isFilterPopoverOpen,\n filtersMenuAnchorElement,\n filtersProp,\n filters,\n t,\n ],\n );\n\n const autoCompleteValue = useMemo(\n () =>\n filterPopoverCurrentFilter?.id\n ? (inputValues[filterPopoverCurrentFilter.id] as Option[])\n : undefined,\n [filterPopoverCurrentFilter, inputValues],\n );\n\n return (\n <Box>\n {/* Upper section */}\n <Box sx={{ display: \"flex\", justifyContent: \"space-between\" }}>\n {/* Upper section left (filters and search) */}\n <Box sx={{ display: \"flex\", gap: 2, width: \"50%\", maxWidth: 480 }}>\n {/* Filter menu */}\n {filters.length > 0 && (\n <>\n {filterMenu}\n {/* Filter popover */}\n <MuiPopover\n anchorEl={filterPopoverAnchorElement}\n anchorOrigin={{ vertical: \"top\", horizontal: \"right\" }}\n // Positions the popover flush with the edge of the parent menu\n // and at the right shadow elevation. These magic values are simply\n // to match the default popover offset.\n elevation={2}\n id=\"filter-form\"\n onClose={(ev: MouseEvent) => {\n if (menuRef.current) {\n const menuRect = menuRef.current.getBoundingClientRect();\n const clickInsideMenu =\n ev.clientX >= menuRect.left &&\n ev.clientX <= menuRect.right &&\n ev.clientY >= menuRect.top &&\n ev.clientY <= menuRect.bottom;\n\n if (!clickInsideMenu) {\n setIsFiltersMenuOpen(false);\n }\n }\n handleFilterSubmit();\n setIsFilterPopoverOpen(false);\n }}\n open={isFilterPopoverOpen}\n sx={{ marginLeft: 2, marginTop: -1 }}\n >\n <Box sx={{ padding: 4, minWidth: 320 }}>\n <form\n noValidate\n onSubmit={(ev) => {\n ev.preventDefault();\n handleFilterSubmit();\n setIsFilterPopoverOpen(false);\n setIsFiltersMenuOpen(false);\n }}\n >\n {filterPopoverCurrentFilter?.render ? (\n filterPopoverCurrentFilter.render(updateFilters)\n ) : (\n <>\n {/* Autocomplete */}\n {filterPopoverCurrentFilter?.variant ===\n \"autocomplete\" &&\n filterPopoverCurrentFilter?.options && (\n <StyledAutocompleteOuterContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <StyledAutocompleteInnerContainer>\n <Autocomplete\n hasMultipleChoices\n isCustomValueAllowed={\n filterPopoverCurrentFilter?.isCustomValueAllowed\n }\n label={filterPopoverCurrentFilter.label}\n onChange={(_, value) => {\n handleAutocompleteFilterChange(\n filterPopoverCurrentFilter.id,\n value as Option[],\n );\n }}\n options={autocompleteOptions}\n value={autoCompleteValue}\n />\n </StyledAutocompleteInnerContainer>\n <Button\n ariaLabel={t(\"filters.submit.label\")}\n endIcon={<CheckIcon />}\n type=\"submit\"\n variant=\"primary\"\n />\n </StyledAutocompleteOuterContainer>\n )}\n {/* Text, Number, or undefined */}\n {(filterPopoverCurrentFilter?.variant === \"text\" ||\n filterPopoverCurrentFilter?.variant === \"range\" ||\n (filterPopoverCurrentFilter &&\n filterPopoverCurrentFilter?.variant ==\n undefined)) && (\n <Box\n sx={{\n display: \"flex\",\n gap: 2,\n alignItems: \"flex-end\",\n }}\n >\n <Box sx={{ width: \"100%\" }}>\n <TextField\n endAdornment={\n inputValues[\n filterPopoverCurrentFilter.id\n ] && (\n <MuiIconButton\n aria-label={t(\"filters.filter.clear\")}\n onClick={() => {\n updateInputValue({\n filterId:\n filterPopoverCurrentFilter.id,\n value: undefined,\n });\n\n updateFilters({\n filterId:\n filterPopoverCurrentFilter.id,\n value: undefined,\n });\n }}\n size=\"small\"\n >\n <CloseCircleFilledIcon />\n </MuiIconButton>\n )\n }\n hasInitialFocus\n label={filterPopoverCurrentFilter.label}\n onChange={(ev) =>\n updateInputValue({\n filterId: filterPopoverCurrentFilter.id,\n value: ev.currentTarget.value,\n })\n }\n type={\n filterPopoverCurrentFilter.variant === \"range\"\n ? \"number\"\n : \"text\"\n }\n value={\n (inputValues[\n filterPopoverCurrentFilter.id\n ] as string) ?? \"\"\n }\n />\n </Box>\n <Button\n ariaLabel={t(\"filters.submit.label\")}\n endIcon={<CheckIcon />}\n type=\"submit\"\n variant=\"primary\"\n />\n </Box>\n )}\n\n {/* Checkbox */}\n {filterPopoverCurrentFilter?.variant ===\n \"multi-select\" &&\n filterPopoverCurrentFilter?.options && (\n <CheckboxGroup\n isRequired\n label={filterPopoverCurrentFilter.label}\n >\n {filterPopoverCurrentFilter.options.map(\n (option: { label: string; value: string }) => {\n const checkFilterInputValuesAsArray =\n (inputValues[\n filterPopoverCurrentFilter.id\n ] as Option[]) || [];\n const isOptionValueInInputValues =\n checkFilterInputValuesAsArray.some(\n (inputValue) =>\n inputValue.value === option.value,\n );\n return (\n <Checkbox\n isChecked={isOptionValueInInputValues}\n key={option.value}\n label={option.label}\n onChange={(_, checked) => {\n handleCheckboxFilterAndInputValueChange(\n filterPopoverCurrentFilter.id,\n option,\n checked,\n );\n }}\n value={option.value}\n />\n );\n },\n )}\n </CheckboxGroup>\n )}\n\n {/* Radio */}\n {filterPopoverCurrentFilter?.variant === \"select\" &&\n filterPopoverCurrentFilter?.options && (\n <RadioGroup\n label={filterPopoverCurrentFilter.label}\n onChange={(_, value) => {\n updateFilterAndInputValues({\n filterId: filterPopoverCurrentFilter.id,\n value,\n });\n }}\n >\n <Radio\n isChecked={\n !inputValues[filterPopoverCurrentFilter.id]\n }\n label={t(\"filters.filter.any\")}\n value={\"\"}\n />\n <>\n {filterPopoverCurrentFilter.options.map(\n (option: {\n label: string;\n value: string;\n }) => (\n <Radio\n isChecked={\n inputValues[\n filterPopoverCurrentFilter.id\n ] === option.value\n }\n key={option.value}\n label={option.label}\n value={option.value}\n />\n ),\n )}\n </>\n </RadioGroup>\n )}\n </>\n )}\n </form>\n </Box>\n </MuiPopover>\n </>\n )}\n\n {/* Search */}\n {onChangeSearch && (\n <form\n onSubmit={(event) => {\n event.preventDefault();\n if (hasSearchSubmitButton) {\n onChangeSearch(searchValue);\n }\n }}\n style={{ width: \"100%\" }}\n >\n <Box sx={{ display: \"flex\", gap: 2, width: \"100%\" }}>\n <SearchField\n isDisabled={isDisabled}\n label={t(\"filters.search.label\")}\n onChange={(ev) => setSearchValue(ev.target.value)}\n onClear={() => {\n setSearchValue(\"\");\n onChangeSearch(\"\");\n }}\n placeholder={t(\"filters.search.label\")}\n value={searchValue}\n />\n {hasSearchSubmitButton && (\n <Box>\n <Button\n isDisabled={isDisabled}\n label={t(\"filters.search.label\")}\n onClick={() => onChangeSearch(searchValue)}\n variant=\"primary\"\n />\n </Box>\n )}\n </Box>\n </form>\n )}\n </Box>\n\n {/* Upper section right (clear filters & additional actions) */}\n <Box sx={{ display: \"flex\", gap: 2 }}>\n {activeFilters.length > 0 && (\n <Box>\n <Button\n label={t(\"filters.clear.label\")}\n onClick={clearAllFilters}\n variant=\"secondary\"\n />\n </Box>\n )}\n {additionalActions}\n </Box>\n </Box>\n\n {/* Lower section */}\n {activeFilters.length > 0 && (\n <Box\n sx={{\n borderTopWidth: 1,\n borderTopColor: \"#eeeeee\",\n borderTopStyle: \"solid\",\n paddingTop: 4,\n marginTop: 4,\n }}\n >\n <MemoizedFilterTags\n activeFilters={activeFilters}\n updateFilterAndInputValues={updateFilterAndInputValues}\n />\n </Box>\n )}\n </Box>\n );\n};\n\nconst MemoizedDataFilters = memo(DataFilters);\nMemoizedDataFilters.displayName = \"DataFilters\";\n\nexport { MemoizedDataFilters as DataFilters };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DataFilters.js","names":["styled","memo","useCallback","useEffect","useMemo","useRef","useState","Autocomplete","Box","Button","Checkbox","CheckboxGroup","Trans","useTranslation","CheckIcon","ChevronRightIcon","CloseCircleFilledIcon","FilterIcon","useOdysseyDesignTokens","Radio","RadioGroup","SearchField","Tag","TagList","TextField","Subordinate","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","StyledAutocompleteOuterContainer","shouldForwardProp","prop","odysseyDesignTokens","display","alignItems","gap","Spacing2","StyledAutocompleteInnerContainer","width","FilterTags","activeFilters","updateFilterAndInputValues","filtersWithValues","filter","activeFilter","value","filtersToRender","forEach","Array","isArray","filterValue","formattedValue","push","id","label","getFilter","find","removeValueFromFilterAndInput","removedFilterValue","currentFilter","updatedValues","currentValue","filterId","length","undefined","children","map","onRemove","MemoizedFilterTags","displayName","DataFilters","onChangeSearch","onChangeFilters","hasSearchSubmitButton","searchDelayTime","defaultSearchTerm","additionalActions","filters","filtersProp","isDisabled","setFilters","t","initialInputValues","reduce","accumulator","inputValues","setInputValues","searchValue","setSearchValue","isFiltersMenuOpen","setIsFiltersMenuOpen","filtersMenuAnchorElement","setFiltersMenuAnchorElement","isFilterPopoverOpen","setIsFilterPopoverOpen","filterPopoverAnchorElement","setFilterPopoverAnchorElement","filterPopoverCurrentFilter","setFilterPopoverCurrentFilter","menuRef","debouncer","current","clearTimeout","setTimeout","autocompleteOptions","options","updateInputValue","updateFilters","prevInputValues","updatedFilters","handleCheckboxFilterAndInputValueChange","option","checked","currentValues","inputValue","normalizedUpdatedValues","handleAutocompleteFilterChange","clearAllFilters","updatedInputValues","handleFilterSubmit","filterMenu","ariaControls","ariaExpanded","ariaHasPopup","ariaLabel","endIcon","onClick","event","currentTarget","variant","_Menu","anchorEl","anchorOrigin","horizontal","vertical","onClose","open","PaperProps","ref","transformOrigin","latestFilterValue","f","_MenuItem","className","selected","sx","justifyContent","minWidth","paddingBlock","paddingInlineStart","marginRight","_Typography","fontWeight","marginBlockEnd","component","i18nKey","values","toLowerCase","count","autoCompleteValue","maxWidth","_Popover","elevation","ev","menuRect","getBoundingClientRect","clickInsideMenu","clientX","left","right","clientY","top","bottom","marginLeft","marginTop","padding","noValidate","onSubmit","preventDefault","render","hasMultipleChoices","isCustomValueAllowed","onChange","_","type","endAdornment","_IconButton","size","hasInitialFocus","isRequired","checkFilterInputValuesAsArray","isOptionValueInInputValues","some","isChecked","style","target","onClear","placeholder","borderTopWidth","borderTopColor","borderTopStyle","paddingTop","MemoizedDataFilters"],"sources":["../../../src/labs/DataFilters.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport styled from \"@emotion/styled\";\nimport {\n IconButton as MuiIconButton,\n Menu as MuiMenu,\n MenuItem as MuiMenuItem,\n Popover as MuiPopover,\n Typography as MuiTypography,\n} from \"@mui/material\";\nimport { MRT_ColumnDef, MRT_RowData } from \"material-react-table\";\nimport {\n memo,\n MutableRefObject,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { Autocomplete } from \"../Autocomplete.js\";\nimport { Box } from \"../Box.js\";\nimport { Button } from \"../Buttons/index.js\";\nimport { Checkbox } from \"../Checkbox.js\";\nimport { CheckboxGroup } from \"../CheckboxGroup.js\";\nimport { Trans, useTranslation } from \"../i18n.generated/i18n.js\";\nimport {\n CheckIcon,\n ChevronRightIcon,\n CloseCircleFilledIcon,\n FilterIcon,\n} from \"../icons.generated/index.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../OdysseyDesignTokensContext.js\";\nimport { Radio } from \"../Radio.js\";\nimport { RadioGroup } from \"../RadioGroup.js\";\nimport { SearchField } from \"../SearchField.js\";\nimport { Tag } from \"../Tag.js\";\nimport { TagList } from \"../TagList.js\";\nimport { TextField } from \"../TextField.js\";\nimport { Subordinate } from \"../Typography.js\";\n\nconst StyledAutocompleteOuterContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"flex-end\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst StyledAutocompleteInnerContainer = styled(\"div\")({\n width: \"100%\",\n});\n\ntype Option = {\n label: string;\n value: string;\n};\n\nexport type DataFilterValue = string | string[] | Option[] | undefined;\n\nexport type UpdateFiltersOrValues = ({\n filterId,\n value,\n}: {\n filterId: string;\n value: DataFilterValue;\n}) => void;\n\n// This is the shape of each individual filter\nexport type DataFilter = {\n /**\n * A unique ID for the filter, typically the same id\n * as the column it'll be applied to.\n */\n id: Exclude<MRT_ColumnDef<MRT_RowData>[\"accessorKey\"], undefined>;\n /**\n * `Autocomplete` normally only allows values that exist in the list box. This feature allows you to enter in any value in the text field and have that be the stored value in `Autocomplete`\n *\n * NOTE: This only applies when `variant` is `autocomplete`\n */\n isCustomValueAllowed?: boolean;\n /**\n * The human-friendly name of the filter.\n */\n label: string;\n /**\n * If the filter control has preset options (such as a select or multi-select),\n * these are the options provided.\n */\n options?: Option[];\n /**\n * A callback which renders a custom filter control\n */\n render?: (updateFilters: UpdateFiltersOrValues) => ReactNode;\n /**\n * The current value of the filter. Typically a string, but\n * filters that allow for multiple selections (such as multi-select)\n * can accept an array.\n */\n value?: DataFilterValue;\n /**\n * The type of filter, which determines which filtering control\n * is shown.\n */\n variant?: MRT_ColumnDef<MRT_RowData>[\"filterVariant\"];\n};\n\n// This is the type of the DataFilters component itself\nexport type DataFiltersProps = {\n /**\n * A slot for optional additional actions, like buttons, to be displayed\n * on the opposite side of the top row from the search and filter controls.\n */\n additionalActions?: ReactNode;\n /**\n * The starting value of the search input\n */\n defaultSearchTerm?: string;\n /**\n * The filters available in the filter menu. If undefined,\n * the filter menu won't be shown.\n */\n filters?: Array<DataFilter>;\n /**\n * If true, a Search button will be provided alongside the search input\n * and `onChangeSearch` will fire when the button is clicked, rather than\n * whenever the input value changes.\n */\n hasSearchSubmitButton?: boolean;\n /**\n * If true, the filter and search will be disabled\n */\n isDisabled?: boolean;\n /**\n * The callback that's fired when filter values change.\n */\n onChangeFilters?: (filters: Array<DataFilter>) => void;\n /**\n * The callback that's fired when the search input changes\n * (either on change or on submit, based on the value of `hasSearchSubmitButton`).\n * If this is undefined, the search input will not be shown.\n */\n onChangeSearch?: (value: string) => void;\n /**\n * The debounce time, in milliseconds, for the search input firing\n * `onChangeSearch` when changed. If `hasSearchSubmitButton` is true,\n * this doesn't do anything.\n */\n searchDelayTime?: number;\n};\n\ntype FilterTagsProps = {\n activeFilters: DataFilter[];\n updateFilterAndInputValues: UpdateFiltersOrValues;\n};\n\ntype FiltersToRender = {\n id: string;\n label: string;\n value: string;\n};\n\nconst FilterTags = ({\n activeFilters,\n updateFilterAndInputValues,\n}: FilterTagsProps) => {\n const filtersWithValues = activeFilters.filter(\n (activeFilter: DataFilter) => activeFilter.value,\n );\n const filtersToRender: FiltersToRender[] = [];\n\n filtersWithValues.forEach((filter) => {\n if (Array.isArray(filter.value)) {\n filter.value.forEach((filterValue) => {\n const formattedValue =\n typeof filterValue === \"string\" ? filterValue : filterValue.value;\n filtersToRender.push({\n id: filter.id,\n label: filter.label,\n value: formattedValue,\n });\n });\n }\n if (typeof filter.value === \"string\") {\n filtersToRender.push({\n id: filter.id,\n label: filter.label,\n value: filter.value,\n });\n }\n });\n\n const getFilter = (id: string) =>\n filtersWithValues.find((filter) => filter.id === id);\n\n const removeValueFromFilterAndInput = (\n id: string,\n removedFilterValue: string,\n ) => {\n const currentFilter = getFilter(id);\n\n if (currentFilter) {\n const { value } = currentFilter;\n\n if (Array.isArray(value)) {\n const updatedValues = value.filter((currentValue) => {\n return (currentValue as Option).value !== removedFilterValue;\n });\n updateFilterAndInputValues({\n filterId: id,\n value:\n updatedValues.length > 0 ? (updatedValues as Option[]) : undefined,\n });\n }\n\n if (typeof value === \"string\") {\n updateFilterAndInputValues({\n filterId: id,\n value: undefined,\n });\n }\n }\n };\n\n return (\n <TagList>\n {filtersToRender.map((filter) => (\n <Tag\n key={`${filter.label}: ${filter.value}`}\n label={`${filter.label}: ${filter.value}`}\n onRemove={() =>\n removeValueFromFilterAndInput(filter.id, filter.value)\n }\n />\n ))}\n </TagList>\n );\n};\n\nconst MemoizedFilterTags = memo(FilterTags);\nMemoizedFilterTags.displayName = \"FilterTags\";\n\nconst DataFilters = ({\n onChangeSearch,\n onChangeFilters,\n hasSearchSubmitButton = false,\n searchDelayTime = 200,\n defaultSearchTerm = \"\",\n additionalActions,\n filters: filtersProp = [],\n isDisabled,\n}: DataFiltersProps) => {\n const [filters, setFilters] = useState<DataFilter[]>(filtersProp);\n const { t } = useTranslation();\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const initialInputValues = useMemo(() => {\n return filtersProp.reduce(\n (accumulator, filter) => {\n accumulator[filter.id] = filter.value;\n return accumulator;\n },\n {} as Record<string, DataFilterValue>,\n );\n }, [filtersProp]);\n\n const [inputValues, setInputValues] = useState(initialInputValues);\n\n const [searchValue, setSearchValue] = useState<string>(defaultSearchTerm);\n\n const activeFilters = useMemo(() => {\n return filters.filter((filter) => filter.value);\n }, [filters]);\n\n const [isFiltersMenuOpen, setIsFiltersMenuOpen] = useState<boolean>(false);\n\n const [filtersMenuAnchorElement, setFiltersMenuAnchorElement] = useState<\n HTMLElement | undefined\n >();\n\n const [isFilterPopoverOpen, setIsFilterPopoverOpen] =\n useState<boolean>(false);\n\n const [filterPopoverAnchorElement, setFilterPopoverAnchorElement] = useState<\n HTMLElement | undefined\n >();\n\n const [filterPopoverCurrentFilter, setFilterPopoverCurrentFilter] = useState<\n DataFilter | undefined\n >();\n\n const menuRef = useRef<HTMLDivElement>();\n\n useEffect(() => {\n onChangeFilters?.(filters);\n }, [filters, onChangeFilters]);\n\n const debouncer = useRef<NodeJS.Timeout | undefined>(undefined);\n\n useEffect(() => {\n if (!hasSearchSubmitButton) {\n if (debouncer.current) {\n clearTimeout(debouncer.current);\n }\n\n debouncer.current = setTimeout(() => {\n onChangeSearch?.(searchValue ?? \"\");\n }, searchDelayTime);\n }\n }, [onChangeSearch, searchValue, searchDelayTime, hasSearchSubmitButton]);\n\n const autocompleteOptions = useMemo(() => {\n return filterPopoverCurrentFilter?.options || [];\n }, [filterPopoverCurrentFilter]);\n\n const updateInputValue = useCallback<UpdateFiltersOrValues>(\n ({ filterId, value }) => {\n setInputValues({ ...inputValues, [filterId]: value });\n },\n [inputValues],\n );\n\n const updateFilters = useCallback<UpdateFiltersOrValues>(\n ({ filterId, value }) => {\n setInputValues((prevInputValues) => ({\n ...prevInputValues,\n [filterId]: value,\n }));\n const updatedFilters = filtersProp.map((filter) => ({\n ...filter,\n value: filter.id === filterId ? value : inputValues[filter.id],\n }));\n setFilters(updatedFilters);\n },\n [inputValues, filtersProp],\n );\n\n const updateFilterAndInputValues = useCallback<UpdateFiltersOrValues>(\n ({ filterId, value }) => {\n updateInputValue({ filterId, value });\n updateFilters({ filterId, value });\n },\n [updateFilters, updateInputValue],\n );\n\n const handleCheckboxFilterAndInputValueChange = useCallback<\n (filterId: string, option: Option, checked: boolean) => void\n >(\n (filterId, option, checked) => {\n const currentValues = (inputValues[filterId] as Option[]) || [];\n\n const updatedValues = checked\n ? [...currentValues, option]\n : currentValues.filter(\n (inputValue) => inputValue.value !== option.value,\n );\n\n const normalizedUpdatedValues =\n updatedValues.length > 0 ? updatedValues : undefined;\n\n setInputValues({\n ...inputValues,\n [filterId]: normalizedUpdatedValues,\n });\n\n const updatedFilters = filters.map((filter) => ({\n ...filter,\n value:\n filter.id === filterId\n ? normalizedUpdatedValues\n : inputValues[filter.id],\n }));\n\n setFilters(updatedFilters);\n },\n [filters, inputValues],\n );\n\n const handleAutocompleteFilterChange = useCallback<\n (filterId: string, option: Option[]) => void\n >(\n (filterId, option) => {\n setInputValues({ ...inputValues, [filterId]: option });\n },\n [inputValues],\n );\n\n const clearAllFilters = useCallback(() => {\n const updatedInputValues = filtersProp.reduce(\n (accumulator, filter) => {\n accumulator[filter.id] = undefined;\n return accumulator;\n },\n {} as Record<string, DataFilterValue>,\n );\n\n setInputValues(updatedInputValues);\n\n const updatedFilters = filtersProp.map((filter) => ({\n ...filter,\n value: undefined,\n }));\n\n setFilters(updatedFilters);\n }, [filtersProp]);\n\n const handleFilterSubmit = useCallback(() => {\n const updatedFilters = filtersProp.map((filter) => ({\n ...filter,\n value: inputValues[filter.id],\n }));\n\n setFilters(updatedFilters);\n }, [inputValues, filtersProp]);\n\n const filterMenu = useMemo(\n () => (\n <>\n <Box>\n <Button\n ariaControls={isFiltersMenuOpen ? \"filters-menu\" : undefined}\n ariaExpanded={isFiltersMenuOpen ? \"true\" : undefined}\n ariaHasPopup=\"true\"\n ariaLabel={t(\"filters.filters.arialabel\")}\n endIcon={<FilterIcon />}\n isDisabled={isDisabled}\n onClick={(event) => {\n setFiltersMenuAnchorElement(event.currentTarget);\n setIsFiltersMenuOpen(true);\n }}\n variant=\"secondary\"\n />\n </Box>\n\n <MuiMenu\n anchorEl={filtersMenuAnchorElement}\n anchorOrigin={{ horizontal: \"left\", vertical: \"bottom\" }}\n id=\"filters-menu\"\n onClose={() => setIsFiltersMenuOpen(false)}\n open={isFiltersMenuOpen}\n PaperProps={{\n ref: menuRef as MutableRefObject<HTMLDivElement>,\n }}\n transformOrigin={{ horizontal: \"left\", vertical: \"top\" }}\n >\n {filtersProp.map((filter) => {\n // Unintuitively, we can't just use filter.value to grab the filter value.\n // `filter` is the initial set of filters provided to the component, so its\n // value prop may not reflect the current value of the filter.\n const latestFilterValue = filters.find(\n (f) => f.id === filter.id,\n )?.value;\n\n return (\n <MuiMenuItem\n aria-controls={isFilterPopoverOpen ? \"filter-form\" : undefined}\n className={\n filterPopoverCurrentFilter === filter &&\n isFilterPopoverOpen === true\n ? \"isVisiblySelected\"\n : undefined\n }\n key={filter.id}\n onClick={(event) => {\n setIsFilterPopoverOpen(true);\n setFilterPopoverAnchorElement(event.currentTarget);\n setFilterPopoverCurrentFilter(filter);\n }}\n selected={\n filterPopoverCurrentFilter === filter &&\n isFilterPopoverOpen === true\n }\n >\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n width: \"100%\",\n minWidth: 180,\n paddingBlock: 1,\n paddingInlineStart: 2,\n }}\n >\n <Box sx={{ marginRight: 2 }}>\n <MuiTypography fontWeight=\"500\" sx={{ marginBlockEnd: 2 }}>\n {filter.label}\n </MuiTypography>\n <Subordinate component=\"div\">\n {!latestFilterValue ||\n (Array.isArray(latestFilterValue) &&\n latestFilterValue.length === 0) ? (\n <Trans\n i18nKey=\"filters.menuitem.any\"\n values={{\n label: filter.label.toLowerCase(),\n }}\n />\n ) : Array.isArray(latestFilterValue) ? (\n <Trans\n count={latestFilterValue.length}\n i18nKey=\"filters.menuitem.selected\"\n values={{\n selected: latestFilterValue.length,\n }}\n />\n ) : (\n latestFilterValue\n )}\n </Subordinate>\n </Box>\n <ChevronRightIcon />\n </Box>\n </MuiMenuItem>\n );\n })}\n </MuiMenu>\n </>\n ),\n [\n isFiltersMenuOpen,\n isDisabled,\n filterPopoverCurrentFilter,\n isFilterPopoverOpen,\n filtersMenuAnchorElement,\n filtersProp,\n filters,\n t,\n ],\n );\n\n const autoCompleteValue = useMemo(\n () =>\n filterPopoverCurrentFilter?.id\n ? (inputValues[filterPopoverCurrentFilter.id] as Option[])\n : undefined,\n [filterPopoverCurrentFilter, inputValues],\n );\n\n return (\n <Box>\n {/* Upper section */}\n <Box sx={{ display: \"flex\", justifyContent: \"space-between\" }}>\n {/* Upper section left (filters and search) */}\n <Box sx={{ display: \"flex\", gap: 2, width: \"50%\", maxWidth: 480 }}>\n {/* Filter menu */}\n {filters.length > 0 && (\n <>\n {filterMenu}\n {/* Filter popover */}\n <MuiPopover\n anchorEl={filterPopoverAnchorElement}\n anchorOrigin={{ vertical: \"top\", horizontal: \"right\" }}\n // Positions the popover flush with the edge of the parent menu\n // and at the right shadow elevation. These magic values are simply\n // to match the default popover offset.\n elevation={2}\n id=\"filter-form\"\n onClose={(ev: MouseEvent) => {\n if (menuRef.current) {\n const menuRect = menuRef.current.getBoundingClientRect();\n const clickInsideMenu =\n ev.clientX >= menuRect.left &&\n ev.clientX <= menuRect.right &&\n ev.clientY >= menuRect.top &&\n ev.clientY <= menuRect.bottom;\n\n if (!clickInsideMenu) {\n setIsFiltersMenuOpen(false);\n }\n }\n handleFilterSubmit();\n setIsFilterPopoverOpen(false);\n }}\n open={isFilterPopoverOpen}\n sx={{ marginLeft: 2, marginTop: -1 }}\n >\n <Box sx={{ padding: 4, minWidth: 320 }}>\n <form\n noValidate\n onSubmit={(ev) => {\n ev.preventDefault();\n handleFilterSubmit();\n setIsFilterPopoverOpen(false);\n setIsFiltersMenuOpen(false);\n }}\n >\n {filterPopoverCurrentFilter?.render ? (\n filterPopoverCurrentFilter.render(updateFilters)\n ) : (\n <>\n {/* Autocomplete */}\n {filterPopoverCurrentFilter?.variant ===\n \"autocomplete\" &&\n filterPopoverCurrentFilter?.options && (\n <StyledAutocompleteOuterContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <StyledAutocompleteInnerContainer>\n <Autocomplete\n hasMultipleChoices\n isCustomValueAllowed={\n filterPopoverCurrentFilter?.isCustomValueAllowed\n }\n label={filterPopoverCurrentFilter.label}\n onChange={(_, value) => {\n handleAutocompleteFilterChange(\n filterPopoverCurrentFilter.id,\n value as Option[],\n );\n }}\n options={autocompleteOptions}\n value={autoCompleteValue}\n />\n </StyledAutocompleteInnerContainer>\n <Button\n ariaLabel={t(\"filters.submit.label\")}\n endIcon={<CheckIcon />}\n type=\"submit\"\n variant=\"primary\"\n />\n </StyledAutocompleteOuterContainer>\n )}\n {/* Text, Number, or undefined */}\n {(filterPopoverCurrentFilter?.variant === \"text\" ||\n filterPopoverCurrentFilter?.variant === \"range\" ||\n (filterPopoverCurrentFilter &&\n filterPopoverCurrentFilter?.variant ==\n undefined)) && (\n <Box\n sx={{\n display: \"flex\",\n gap: 2,\n alignItems: \"flex-end\",\n }}\n >\n <Box sx={{ width: \"100%\" }}>\n <TextField\n endAdornment={\n inputValues[\n filterPopoverCurrentFilter.id\n ] && (\n <MuiIconButton\n aria-label={t(\"filters.filter.clear\")}\n onClick={() => {\n updateInputValue({\n filterId:\n filterPopoverCurrentFilter.id,\n value: undefined,\n });\n\n updateFilters({\n filterId:\n filterPopoverCurrentFilter.id,\n value: undefined,\n });\n }}\n size=\"small\"\n >\n <CloseCircleFilledIcon />\n </MuiIconButton>\n )\n }\n hasInitialFocus\n label={filterPopoverCurrentFilter.label}\n onChange={(ev) =>\n updateInputValue({\n filterId: filterPopoverCurrentFilter.id,\n value: ev.currentTarget.value,\n })\n }\n type={\n filterPopoverCurrentFilter.variant === \"range\"\n ? \"number\"\n : \"text\"\n }\n value={\n (inputValues[\n filterPopoverCurrentFilter.id\n ] as string) ?? \"\"\n }\n />\n </Box>\n <Button\n ariaLabel={t(\"filters.submit.label\")}\n endIcon={<CheckIcon />}\n type=\"submit\"\n variant=\"primary\"\n />\n </Box>\n )}\n\n {/* Checkbox */}\n {filterPopoverCurrentFilter?.variant ===\n \"multi-select\" &&\n filterPopoverCurrentFilter?.options && (\n <CheckboxGroup\n isRequired\n label={filterPopoverCurrentFilter.label}\n >\n {filterPopoverCurrentFilter.options.map(\n (option: { label: string; value: string }) => {\n const checkFilterInputValuesAsArray =\n (inputValues[\n filterPopoverCurrentFilter.id\n ] as Option[]) || [];\n const isOptionValueInInputValues =\n checkFilterInputValuesAsArray.some(\n (inputValue) =>\n inputValue.value === option.value,\n );\n return (\n <Checkbox\n isChecked={isOptionValueInInputValues}\n key={option.value}\n label={option.label}\n onChange={(_, checked) => {\n handleCheckboxFilterAndInputValueChange(\n filterPopoverCurrentFilter.id,\n option,\n checked,\n );\n }}\n value={option.value}\n />\n );\n },\n )}\n </CheckboxGroup>\n )}\n\n {/* Radio */}\n {filterPopoverCurrentFilter?.variant === \"select\" &&\n filterPopoverCurrentFilter?.options && (\n <RadioGroup\n label={filterPopoverCurrentFilter.label}\n onChange={(_, value) => {\n updateFilterAndInputValues({\n filterId: filterPopoverCurrentFilter.id,\n value,\n });\n }}\n >\n <Radio\n isChecked={\n !inputValues[filterPopoverCurrentFilter.id]\n }\n label={t(\"filters.filter.any\")}\n value={\"\"}\n />\n <>\n {filterPopoverCurrentFilter.options.map(\n (option: {\n label: string;\n value: string;\n }) => (\n <Radio\n isChecked={\n inputValues[\n filterPopoverCurrentFilter.id\n ] === option.value\n }\n key={option.value}\n label={option.label}\n value={option.value}\n />\n ),\n )}\n </>\n </RadioGroup>\n )}\n </>\n )}\n </form>\n </Box>\n </MuiPopover>\n </>\n )}\n\n {/* Search */}\n {onChangeSearch && (\n <form\n onSubmit={(event) => {\n event.preventDefault();\n if (hasSearchSubmitButton) {\n onChangeSearch(searchValue);\n }\n }}\n style={{ width: \"100%\" }}\n >\n <Box sx={{ display: \"flex\", gap: 2, width: \"100%\" }}>\n <SearchField\n isDisabled={isDisabled}\n label={t(\"filters.search.label\")}\n onChange={(ev) => setSearchValue(ev.target.value)}\n onClear={() => {\n setSearchValue(\"\");\n onChangeSearch(\"\");\n }}\n placeholder={t(\"filters.search.label\")}\n value={searchValue}\n />\n {hasSearchSubmitButton && (\n <Box>\n <Button\n isDisabled={isDisabled}\n label={t(\"filters.search.label\")}\n onClick={() => onChangeSearch(searchValue)}\n variant=\"primary\"\n />\n </Box>\n )}\n </Box>\n </form>\n )}\n </Box>\n\n {/* Upper section right (clear filters & additional actions) */}\n <Box sx={{ display: \"flex\", gap: 2 }}>\n {activeFilters.length > 0 && (\n <Box>\n <Button\n label={t(\"filters.clear.label\")}\n onClick={clearAllFilters}\n variant=\"secondary\"\n />\n </Box>\n )}\n {additionalActions}\n </Box>\n </Box>\n\n {/* Lower section */}\n {activeFilters.length > 0 && (\n <Box\n sx={{\n borderTopWidth: 1,\n borderTopColor: \"#eeeeee\",\n borderTopStyle: \"solid\",\n paddingTop: 4,\n marginTop: 4,\n }}\n >\n <MemoizedFilterTags\n activeFilters={activeFilters}\n updateFilterAndInputValues={updateFilterAndInputValues}\n />\n </Box>\n )}\n </Box>\n );\n};\n\nconst MemoizedDataFilters = memo(DataFilters);\nMemoizedDataFilters.displayName = \"DataFilters\";\n\nexport { MemoizedDataFilters as DataFilters };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,10 +12,10 @@ import _Checkbox from "@mui/material/Checkbox";
|
|
|
12
12
|
*/
|
|
13
13
|
import { MRT_TableContainer, useMaterialReactTable } from "material-react-table";
|
|
14
14
|
import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
15
|
-
import { useTranslation } from "react-i18next";
|
|
16
15
|
import { Box } from "../Box.js";
|
|
17
16
|
import { MenuButton } from "../Buttons/MenuButton.js";
|
|
18
17
|
import { MenuItem } from "../Buttons/MenuItem.js";
|
|
18
|
+
import { useTranslation } from "../i18n.generated/i18n.js";
|
|
19
19
|
import { ArrowBottomIcon, ArrowDownIcon, ArrowTopIcon, ArrowUnsortedIcon, ArrowUpIcon, DragIndicatorIcon, ListIcon, MoreIcon, ShowIcon } from "../icons.generated/index.js";
|
|
20
20
|
import { useOdysseyDesignTokens } from "../OdysseyDesignTokensContext.js";
|
|
21
21
|
import { DataFilters } from "./DataFilters.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.js","names":["MRT_TableContainer","useMaterialReactTable","memo","useCallback","useEffect","useMemo","useRef","useState","useTranslation","Box","MenuButton","MenuItem","ArrowBottomIcon","ArrowDownIcon","ArrowTopIcon","ArrowUnsortedIcon","ArrowUpIcon","DragIndicatorIcon","ListIcon","MoreIcon","ShowIcon","useOdysseyDesignTokens","DataFilters","DataTablePagination","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","t","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","Promise","error","console","handleSortingChange","updater","prevSorting","Function","handleColumnVisibility","columnId","prevVisibility","handleSearch","value","handleFilters","updatedFilters","handleRowSelectionChange","prevRowSelection","updateRowOrder","rowVirtualizerInstanceRef","setHoveredRow","table","nextRow","getRow","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","tableState","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","original","ariaLabel","buttonVariant","endIcon","menuAlignment","size","isDisabled","onClick","tableSettings","shouldCloseOnSelect","map","isSelected","charAt","toUpperCase","slice","filter","_Checkbox","checked","flexDirection","gap","additionalActions","enableColumnFilter","label","variant","filterVariant","options","filterSelectOptions","onChangeFilters","onChangeSearch","currentNumberOfResults","length","currentPage","isNextButtonDisabled","isPreviousButtonDisabled","onClickNext","onClickPrevious","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 { Checkbox as MuiCheckbox } from \"@mui/material\";\nimport {\n MRT_ColumnDef,\n MRT_DensityState,\n MRT_Row,\n MRT_RowData,\n MRT_RowSelectionState,\n MRT_RowVirtualizer,\n MRT_SortingState,\n MRT_TableContainer,\n MRT_TableInstance,\n MRT_TableOptions,\n MRT_Updater,\n MRT_VisibilityState,\n useMaterialReactTable,\n} from \"material-react-table\";\nimport {\n Fragment,\n KeyboardEvent,\n memo,\n ReactElement,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Box } from \"../Box.js\";\nimport { Button } from \"../Buttons/Button.js\";\nimport { MenuButton } from \"../Buttons/MenuButton.js\";\nimport { MenuItem } from \"../Buttons/MenuItem.js\";\nimport {\n ArrowBottomIcon,\n ArrowDownIcon,\n ArrowTopIcon,\n ArrowUnsortedIcon,\n ArrowUpIcon,\n DragIndicatorIcon,\n ListIcon,\n MoreIcon,\n ShowIcon,\n} from \"../icons.generated/index.js\";\nimport { useOdysseyDesignTokens } from \"../OdysseyDesignTokensContext.js\";\nimport { DataFilter, DataFilters } from \"./DataFilters.js\";\nimport {\n DataTablePagination,\n paginationTypeValues,\n} from \"./DataTablePagination.js\";\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 DataTableColumn<TData extends MRT_RowData> = {\n /**\n * The unique ID of the column\n */\n accessorKey: string;\n /**\n * Customize the way each cell in the column is\n * displayed via a custom React component.\n */\n Cell?: MRT_ColumnDef<TData>[\"Cell\"];\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 hidable\n */\n enableHiding?: 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 sortable\n */\n enableSorting?: boolean;\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 UI control that will be used to filter the column.\n * Defaults to a standard text input.\n */\n filterVariant?: MRT_ColumnDef<TData>[\"filterVariant\"];\n /**\n * The human-friendly title of the column\n */\n header: string;\n /**\n * The maximum column width, in pixels\n */\n maxSize?: number;\n /**\n * The minimum column width, in pixels\n */\n minSize?: number;\n /**\n * The optional column width, in pixels\n */\n size?: number;\n};\n\nexport type DataTableProps<TData extends MRT_RowData> = {\n /**\n * The columns that make up the table\n */\n columns: DataTableColumn<TData>[];\n /**\n * The data that goes into the table, which will be displayed\n * as the table rows\n */\n data: MRT_TableOptions<TData>[\"data\"];\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 filters?: DataFilter[];\n page?: number;\n resultsPerPage?: number;\n search?: string;\n sort?: MRT_SortingState;\n }) =>\n | MRT_TableOptions<TData>[\"data\"]\n | Promise<MRT_TableOptions<TData>[\"data\"]>;\n /**\n * The function to get the ID of a row\n */\n getRowId?: MRT_TableOptions<TData>[\"getRowId\"];\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 end user can reorder rows via a drag-and-drop interface\n */\n hasRowReordering?: boolean;\n /**\n * If true, the table will include checkboxes on each row, enabling\n * the user to select some or all rows.\n */\n hasRowSelection?: boolean;\n /**\n * If true, the global table search controls will be shown.\n */\n hasSearch?: boolean;\n /**\n * If true, the search field will include a Search button, rather than\n * firing on input change.\n */\n hasSearchSubmitButton?: boolean;\n /**\n * If true, the end user can sort columns (ascending, descending, or neither)\n */\n hasSorting?: boolean;\n /**\n * 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 * Callback that fires when a row (or rows) is selected or unselected.\n */\n onRowSelectionChange?: (rowSelection: MRT_RowSelectionState) => void;\n /**\n * The current page number.\n */\n page?: 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 * Callback that fires when the user reorders rows within the table. Can be used\n * to propagate order change to the backend.\n */\n reorderDataFn?: ({\n rowId,\n newIndex,\n }: {\n newIndex: number;\n rowId: string;\n }) => void;\n /**\n * The number of results per page.\n */\n resultsPerPage?: number;\n /**\n * Action buttons to display in each row\n */\n rowActionButtons?: (\n row: TData,\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: TData,\n ) => ReactElement<typeof MenuItem | typeof Fragment>;\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 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\ntype TableType<TData extends MRT_RowData> = MRT_TableInstance<TData>;\n\nconst reorderDataRowsLocally = <TData extends MRT_RowData>({\n currentData,\n rowId,\n newIndex,\n}: {\n currentData: MRT_TableOptions<TData>[\"data\"];\n newIndex: number;\n rowId: string;\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 = <TData extends MRT_RowData>({\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<TData>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n const [draggingRow, setDraggingRow] = useState<MRT_Row<TData> | null>();\n const [showSkeletons, setShowSkeletons] = useState<boolean>(true);\n const [data, setData] = useState<MRT_TableOptions<TData>[\"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] = 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 = fetchDataFn({\n page: page,\n resultsPerPage: resultsPerPage,\n sort: sorting,\n search: globalFilter,\n filters: filters,\n });\n\n setData(newData instanceof Promise ? await newData : newData);\n\n setShowSkeletons(false);\n } catch (error) {\n console.error(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 }: { newIndex: number; rowId: string }) => {\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_RowVirtualizer<HTMLDivElement, HTMLTableRowElement>>(null);\n\n const setHoveredRow = useCallback<\n (table: TableType<TData>, id: TData[\"id\"]) => void\n >((table, id) => {\n if (id) {\n const nextRow = table.getRow(id) as MRT_Row<TData>;\n\n if (nextRow) {\n table.setHoveredRow(nextRow);\n }\n }\n }, []);\n\n const resetDraggingAndHoveredRow = useCallback<\n (table: TableType<TData>) => void\n >(\n (table) => {\n setDraggingRow(null);\n table.setHoveredRow(null);\n },\n [setDraggingRow],\n );\n\n type HandleDragHandleKeyDownArgs = {\n event: KeyboardEvent<HTMLButtonElement>;\n row: MRT_Row<TData>;\n table: TableType<TData>;\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 // This is a legacy file. In general, we shouldn't have `as` here. Newer versions will have this fixed. --Kevin Ghadyani\n setHoveredRow(table, data[nextIndex]?.id as TData[\"id\"]);\n }\n } else {\n if (isArrowDown || isArrowUp) {\n const nextIndex = isArrowDown ? row.index + 1 : row.index - 1;\n // This is a legacy file. In general, we shouldn't have `as` here. Newer versions will have this fixed. --Kevin Ghadyani\n setHoveredRow(table, data[nextIndex]?.id as TData[\"id\"]);\n }\n }\n } else {\n if (isSpaceOrEnter) {\n setDraggingRow(row);\n }\n }\n },\n [\n data,\n draggingRow,\n odysseyDesignTokens.TransitionDurationMainAsNumber,\n page,\n resetDraggingAndHoveredRow,\n resultsPerPage,\n setHoveredRow,\n updateRowOrder,\n ],\n );\n\n const handleDragHandleOnDragEnd = useCallback(\n (table: TableType<TData>) => {\n const cols = table.getAllColumns();\n cols[0].toggleVisibility();\n\n const { draggingRow, hoveredRow } = table.getState();\n\n if (draggingRow) {\n updateRowOrder({\n newIndex: (hoveredRow as TData).index as number,\n rowId: draggingRow.id,\n });\n }\n\n setDraggingRow(null);\n },\n [updateRowOrder],\n );\n\n const handleDragHandleOnDragCapture = useCallback(\n (table: TableType<TData>) => {\n if (!draggingRow && table.getState().draggingRow?.id) {\n setDraggingRow(table.getState().draggingRow);\n }\n },\n [draggingRow],\n );\n\n const tableState = useMemo(\n () => ({\n density,\n sorting,\n globalFilter,\n columnVisibility,\n rowSelection,\n showSkeletons,\n }),\n [\n density,\n sorting,\n globalFilter,\n columnVisibility,\n rowSelection,\n showSkeletons,\n ],\n );\n\n const table = useMaterialReactTable({\n columns: columns,\n data: data,\n state: tableState,\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 },\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: t(\"table.draghandle.tooltip\"),\n \"aria-label\": t(\"table.draghandle.arialabel\"),\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.original)}\n {(rowActionMenuItems || hasRowReordering) && (\n <MenuButton\n ariaLabel={t(\"table.moreactions.arialabel\")}\n buttonVariant=\"floating\"\n endIcon={<MoreIcon />}\n menuAlignment=\"right\"\n size=\"small\"\n >\n {rowActionMenuItems && (\n <>\n {rowActionMenuItems(row.original)}\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 ariaLabel=\"Table density\"\n endIcon={<ListIcon />}\n menuAlignment=\"right\"\n shouldCloseOnSelect={false}\n >\n <>\n {densityValues.map((value: MRT_DensityState) => (\n <MenuItem\n isSelected={density === value}\n key={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 ariaLabel=\"Show/hide columns\"\n endIcon={<ShowIcon />}\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={() => handleColumnVisibility(column.accessorKey)}\n >\n <MuiCheckbox\n checked={columnVisibility[column.accessorKey] !== false}\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 additionalActions={tableSettings}\n filters={\n hasFilters\n ? columns\n .filter((column) => column.enableColumnFilter !== false)\n .map((column) => {\n return {\n id: column.accessorKey,\n label: column.header,\n variant: column.filterVariant ?? \"text\",\n options: column.filterSelectOptions,\n };\n })\n : undefined\n }\n hasSearchSubmitButton={hasSearchSubmitButton}\n onChangeFilters={handleFilters}\n onChangeSearch={hasSearch ? handleSearch : undefined}\n searchDelayTime={searchDelayTime}\n />\n\n <MRT_TableContainer table={table} />\n\n {hasPagination && (\n <DataTablePagination\n currentNumberOfResults={data.length}\n currentPage={page}\n isNextButtonDisabled={false} // TODO: Add logic for disabling next/load more button\n isPreviousButtonDisabled={page <= 1}\n onClickNext={() => {\n if (paginationType === \"loadMore\") {\n setResultsPerPage(resultsPerPage + resultsPerPageProp);\n } else {\n setPage(page + 1);\n }\n }}\n onClickPrevious={() => setPage(page - 1)}\n paginationType={paginationType}\n />\n )}\n </Box>\n );\n};\n\nconst MemoizedDataTable = memo(DataTable);\nMemoizedDataTable.displayName = \"DataTable\";\n\nexport { MemoizedDataTable as DataTable };\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA,SAQEA,kBAAkB,EAKlBC,qBAAqB,QAChB,sBAAsB;AAC7B,SAGEC,IAAI,EAEJC,WAAW,EACXC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACH,OAAO;AACd,SAASC,cAAc,QAAQ,eAAe;AAE9C,SAASC,GAAG,QAAQ,WAAW;AAE/B,SAASC,UAAU,QAAQ,0BAA0B;AACrD,SAASC,QAAQ,QAAQ,wBAAwB;AACjD,SACEC,eAAe,EACfC,aAAa,EACbC,YAAY,EACZC,iBAAiB,EACjBC,WAAW,EACXC,iBAAiB,EACjBC,QAAQ,EACRC,QAAQ,EACRC,QAAQ,QACH,6BAA6B;AACpC,SAASC,sBAAsB,QAAQ,kCAAkC;AACzE,SAAqBC,WAAW,QAAQ,kBAAkB;AAC1D,SACEC,mBAAmB,QAEd,0BAA0B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAElC,OAAO,MAAMC,aAAa,GAAG,CAAC,aAAa,EAAE,UAAU,EAAE,SAAS,CAAU;AA2M5E,MAAMC,sBAAsB,GAAGA,CAA4B;EACzDC,WAAW;EACXC,KAAK;EACLC;AAKF,CAAC,KAAK;EACJ,MAAMC,WAAW,GAAG,CAAC,GAAGH,WAAW,CAAC;EAEpC,MAAMI,QAAQ,GAAGD,WAAW,CAACE,SAAS,CAAEC,GAAG,IAAKA,GAAG,CAACC,EAAE,KAAKN,KAAK,CAAC;EAEjE,IAAIG,QAAQ,KAAK,CAAC,CAAC,EAAE;IAEnB,MAAM,CAACI,UAAU,CAAC,GAAGL,WAAW,CAACM,MAAM,CAACL,QAAQ,EAAE,CAAC,CAAC;IAGpDD,WAAW,CAACM,MAAM,CAACP,QAAQ,EAAE,CAAC,EAAEM,UAAU,CAAC;EAC7C;EAEA,OAAOL,WAAW;AACpB,CAAC;AAED,MAAMO,SAAS,GAAGA,CAA4B;EAC5CC,OAAO;EACPC,IAAI,EAAEC,QAAQ;EACdC,QAAQ;EACRC,IAAI,EAAEC,QAAQ,GAAG,CAAC;EAClBC,cAAc,GAAGnB,aAAa,CAAC,CAAC,CAAC;EACjCoB,cAAc,EAAEC,kBAAkB,GAAG,EAAE;EACvCC,WAAW;EACXC,aAAa;EACbC,SAAS;EACTC,qBAAqB;EACrBC,eAAe;EACfC,cAAc,GAAG,OAAO;EACxBC,oBAAoB;EACpBC,gBAAgB;EAChBC,kBAAkB;EAClBC,oBAAoB;EACpBC,iBAAiB;EACjBC,mBAAmB;EACnBC,UAAU;EACVC,aAAa;EACbC,gBAAgB;EAChBC,eAAe;EACfC,SAAS;EACTC;AACqB,CAAC,KAAK;EAC3B,MAAMC,mBAAmB,GAAGjD,sBAAsB,CAAC,CAAC;EACpD,MAAM;IAAEkD;EAAE,CAAC,GAAG/D,cAAc,CAAC,CAAC;EAC9B,MAAM,CAACgE,WAAW,EAAEC,cAAc,CAAC,GAAGlE,QAAQ,CAAwB,CAAC;EACvE,MAAM,CAACmE,aAAa,EAAEC,gBAAgB,CAAC,GAAGpE,QAAQ,CAAU,IAAI,CAAC;EACjE,MAAM,CAACqC,IAAI,EAAEgC,OAAO,CAAC,GAAGrE,QAAQ,CAAkCsC,QAAQ,CAAC;EAC3E,MAAM,CAACE,IAAI,EAAE8B,OAAO,CAAC,GAAGtE,QAAQ,CAASyC,QAAQ,CAAC;EAClD,MAAM,CAACE,cAAc,EAAE4B,iBAAiB,CAAC,GACvCvE,QAAQ,CAAS4C,kBAAkB,CAAC;EACtC,MAAM,CAAC4B,YAAY,EAAEC,eAAe,CAAC,GAAGzE,QAAQ,CAAwB,CAAC,CAAC,CAAC;EAC3E,MAAM,CAAC0E,OAAO,EAAEC,UAAU,CAAC,GAAG3E,QAAQ,CAAmB,EAAE,CAAC;EAC5D,MAAM,CAAC4E,OAAO,EAAEC,UAAU,CAAC,GAAG7E,QAAQ,CAAmB0C,cAAc,CAAC;EAExE,MAAMoC,uBAAuB,GAAGhF,OAAO,CAAC,MAAM;IAC5C,OAAOsC,OAAO,CAAC2C,MAAM,CAAC,CAACC,GAAG,EAAEC,MAAM,KAAK;MACrCD,GAAG,CAACC,MAAM,CAACC,WAAW,CAAC,GAAG,IAAI;MAC9B,OAAOF,GAAG;IACZ,CAAC,EAAE,CAAC,CAAwB,CAAC;EAC/B,CAAC,EAAE,CAAC5C,OAAO,CAAC,CAAC;EAEb,MAAM,CAAC+C,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGpF,QAAQ,CACtD8E,uBACF,CAAC;EAED,MAAM,CAACO,YAAY,EAAEC,eAAe,CAAC,GAAGtF,QAAQ,CAAS,EAAE,CAAC;EAC5D,MAAM,CAACuF,OAAO,EAAEC,UAAU,CAAC,GAAGxF,QAAQ,CAAoB,CAAC;EAE3DH,SAAS,CAAC,MAAM;IACduE,gBAAgB,CAAC,KAAK,CAAC;EACzB,CAAC,EAAE,CAAC/B,IAAI,CAAC,CAAC;EAEVxC,SAAS,CAAC,MAAM;IACdsD,oBAAoB,GAAGqB,YAAY,CAAC;EACtC,CAAC,EAAE,CAACA,YAAY,EAAErB,oBAAoB,CAAC,CAAC;EAExC,MAAMsC,WAAW,GAAG7F,WAAW,CAAC,YAAY;IAC1CwE,gBAAgB,CAAC,IAAI,CAAC;IACtB,IAAI;MACF,MAAMsB,OAAO,GAAG7C,WAAW,CAAC;QAC1BL,IAAI,EAAEA,IAAI;QACVG,cAAc,EAAEA,cAAc;QAC9BgD,IAAI,EAAEjB,OAAO;QACbkB,MAAM,EAAEP,YAAY;QACpBE,OAAO,EAAEA;MACX,CAAC,CAAC;MAEFlB,OAAO,CAACqB,OAAO,YAAYG,OAAO,GAAG,MAAMH,OAAO,GAAGA,OAAO,CAAC;MAE7DtB,gBAAgB,CAAC,KAAK,CAAC;IACzB,CAAC,CAAC,OAAO0B,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAACA,KAAK,CAAC;MACpB1B,gBAAgB,CAAC,KAAK,CAAC;IACzB;EACF,CAAC,EAAE,CAAC5B,IAAI,EAAEG,cAAc,EAAE+B,OAAO,EAAEW,YAAY,EAAEE,OAAO,EAAE1C,WAAW,CAAC,CAAC;EAEvEhD,SAAS,CAAC,MAAM;IACd4F,WAAW,CAAC,CAAC;EACf,CAAC,EAAE,CAACA,WAAW,EAAEjD,IAAI,EAAEG,cAAc,EAAE+B,OAAO,EAAEW,YAAY,EAAEE,OAAO,CAAC,CAAC;EAEvE,MAAMS,mBAAmB,GAAGpG,WAAW,CACpCqG,OAAsC,IAAK;IAC1CtB,UAAU,CAAEuB,WAAW,IACrBD,OAAO,YAAYE,QAAQ,GAAGF,OAAO,CAACC,WAAW,CAAC,GAAGxB,OACvD,CAAC;EACH,CAAC,EACD,CAACA,OAAO,CACV,CAAC;EAED,MAAM0B,sBAAsB,GAAGxG,WAAW,CACvCyG,QAAgB,IAAK;IACpBjB,mBAAmB,CAAEkB,cAAc,KAAM;MACvC,GAAGA,cAAc;MACjB,CAACD,QAAQ,GAAG,CAAClB,gBAAgB,CAACkB,QAAQ;IACxC,CAAC,CAAC,CAAC;EACL,CAAC,EACD,CAAClB,gBAAgB,CACnB,CAAC;EAED,MAAMoB,YAAY,GAAG3G,WAAW,CAAE4G,KAAa,IAAK;IAClDlB,eAAe,CAACkB,KAAK,CAAC;EACxB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,aAAa,GAAG7G,WAAW,CAAE8G,cAAiC,IAAK;IACvElB,UAAU,CAACkB,cAAc,CAAC;EAC5B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,wBAAwB,GAAG/G,WAAW,CACzCqG,OAA2C,IAAK;IAC/CxB,eAAe,CAAEmC,gBAAgB,IAC/BX,OAAO,YAAYE,QAAQ,GAAGF,OAAO,CAACW,gBAAgB,CAAC,GAAGpC,YAC5D,CAAC;EACH,CAAC,EACD,CAACA,YAAY,CACf,CAAC;EAED,MAAMqC,cAAc,GAAGjH,WAAW,CAChC,CAAC;IAAE8B,KAAK;IAAEC;EAA8C,CAAC,KAAK;IAC5D,IAAIA,QAAQ,GAAG,CAAC,EAAE;MAChB;IACF;IAEA,IAAIoB,SAAS,IAAIpB,QAAQ,GAAGoB,SAAS,EAAE;MACrC;IACF;IAEA,MAAM2C,OAAO,GAAGlE,sBAAsB,CAAC;MACrCC,WAAW,EAAEY,IAAI;MACjBX,KAAK;MACLC;IACF,CAAC,CAAC;IAEF0C,OAAO,CAACqB,OAAO,CAAC;IAChB5C,aAAa,GAAG;MAAEpB,KAAK;MAAEC;IAAS,CAAC,CAAC;IACpC8D,WAAW,CAAC,CAAC;EACf,CAAC,EACD,CAACpD,IAAI,EAAEU,SAAS,EAAED,aAAa,EAAE2C,WAAW,CAC9C,CAAC;EAED,MAAMqB,yBAAyB,GAC7B/G,MAAM,CAA0D,IAAI,CAAC;EAEvE,MAAMgH,aAAa,GAAGnH,WAAW,CAE/B,CAACoH,KAAK,EAAEhF,EAAE,KAAK;IACf,IAAIA,EAAE,EAAE;MACN,MAAMiF,OAAO,GAAGD,KAAK,CAACE,MAAM,CAAClF,EAAE,CAAmB;MAElD,IAAIiF,OAAO,EAAE;QACXD,KAAK,CAACD,aAAa,CAACE,OAAO,CAAC;MAC9B;IACF;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,0BAA0B,GAAGvH,WAAW,CAG3CoH,KAAK,IAAK;IACT9C,cAAc,CAAC,IAAI,CAAC;IACpB8C,KAAK,CAACD,aAAa,CAAC,IAAI,CAAC;EAC3B,CAAC,EACD,CAAC7C,cAAc,CACjB,CAAC;EAQD,MAAMkD,uBAAuB,GAAGxH,WAAW,CACzC,CAAC;IAAEoH,KAAK;IAAEjF,GAAG;IAAEsF;EAAmC,CAAC,KAAK;IACtD,MAAM;MAAEC;IAAW,CAAC,GAAGN,KAAK,CAACO,QAAQ,CAAC,CAAC;IAEvC,MAAM;MAAEC;IAAI,CAAC,GAAGH,KAAK;IAErB,MAAMI,UAAU,GAAGD,GAAG,KAAK,GAAG;IAC9B,MAAME,UAAU,GAAGF,GAAG,KAAK,OAAO;IAClC,MAAMG,WAAW,GAAGH,GAAG,KAAK,QAAQ;IACpC,MAAMI,WAAW,GAAGJ,GAAG,KAAK,WAAW;IACvC,MAAMK,SAAS,GAAGL,GAAG,KAAK,SAAS;IACnC,MAAMM,cAAc,GAAGL,UAAU,IAAIC,UAAU;IAC/C,MAAMK,qBAAqB,GAAGvF,IAAI,GAAG,CAAC;IACtC,MAAMwF,YAAY,GAAGjG,GAAG,CAACkG,KAAK,GAAGF,qBAAqB,GAAGpF,cAAc;IAEvE,IAAIgF,WAAW,EAAE;MACfR,0BAA0B,CAACH,KAAK,CAAC;MACjC;IACF;IAEA,IAAIc,cAAc,EAAE;MAClBT,KAAK,CAACa,cAAc,CAAC,CAAC;MACtBb,KAAK,CAACc,eAAe,CAAC,CAAC;IACzB;IAEA,IAAIlE,WAAW,EAAE;MACf,IAAI,OAAOqD,UAAU,EAAEW,KAAK,KAAK,QAAQ,EAAE;QACzC,MAAM;UAAEA;QAAM,CAAC,GAAGX,UAAU;QAE5B,IAAIQ,cAAc,EAAE;UAClB,MAAMM,iBAAiB,GACrBH,KAAK,GAAGF,qBAAqB,GAAGpF,cAAc;UAEhD,IAAIyF,iBAAiB,KAAKJ,YAAY,EAAE;YACtCnB,cAAc,CAAC;cACbnF,KAAK,EAAEK,GAAG,CAACC,EAAE;cACbL,QAAQ,EAAEyG;YACZ,CAAC,CAAC;YAGFC,UAAU,CAAC,MAAM;cACflB,0BAA0B,CAACH,KAAK,CAAC;YACnC,CAAC,EAAEjD,mBAAmB,CAACuE,8BAA8B,CAAC;YACtD;UACF;QACF;QAEA,IAAIV,WAAW,IAAIC,SAAS,EAAE;UAC5B,MAAMU,SAAS,GAAGX,WAAW,GAAGK,KAAK,GAAG,CAAC,GAAGA,KAAK,GAAG,CAAC;UAErDlB,aAAa,CAACC,KAAK,EAAE3E,IAAI,CAACkG,SAAS,CAAC,EAAEvG,EAAiB,CAAC;QAC1D;MACF,CAAC,MAAM;QACL,IAAI4F,WAAW,IAAIC,SAAS,EAAE;UAC5B,MAAMU,SAAS,GAAGX,WAAW,GAAG7F,GAAG,CAACkG,KAAK,GAAG,CAAC,GAAGlG,GAAG,CAACkG,KAAK,GAAG,CAAC;UAE7DlB,aAAa,CAACC,KAAK,EAAE3E,IAAI,CAACkG,SAAS,CAAC,EAAEvG,EAAiB,CAAC;QAC1D;MACF;IACF,CAAC,MAAM;MACL,IAAI8F,cAAc,EAAE;QAClB5D,cAAc,CAACnC,GAAG,CAAC;MACrB;IACF;EACF,CAAC,EACD,CACEM,IAAI,EACJ4B,WAAW,EACXF,mBAAmB,CAACuE,8BAA8B,EAClD9F,IAAI,EACJ2E,0BAA0B,EAC1BxE,cAAc,EACdoE,aAAa,EACbF,cAAc,CAElB,CAAC;EAED,MAAM2B,yBAAyB,GAAG5I,WAAW,CAC1CoH,KAAuB,IAAK;IAC3B,MAAMyB,IAAI,GAAGzB,KAAK,CAAC0B,aAAa,CAAC,CAAC;IAClCD,IAAI,CAAC,CAAC,CAAC,CAACE,gBAAgB,CAAC,CAAC;IAE1B,MAAM;MAAE1E,WAAW;MAAEqD;IAAW,CAAC,GAAGN,KAAK,CAACO,QAAQ,CAAC,CAAC;IAEpD,IAAItD,WAAW,EAAE;MACf4C,cAAc,CAAC;QACblF,QAAQ,EAAG2F,UAAU,CAAWW,KAAe;QAC/CvG,KAAK,EAAEuC,WAAW,CAACjC;MACrB,CAAC,CAAC;IACJ;IAEAkC,cAAc,CAAC,IAAI,CAAC;EACtB,CAAC,EACD,CAAC2C,cAAc,CACjB,CAAC;EAED,MAAM+B,6BAA6B,GAAGhJ,WAAW,CAC9CoH,KAAuB,IAAK;IAC3B,IAAI,CAAC/C,WAAW,IAAI+C,KAAK,CAACO,QAAQ,CAAC,CAAC,CAACtD,WAAW,EAAEjC,EAAE,EAAE;MACpDkC,cAAc,CAAC8C,KAAK,CAACO,QAAQ,CAAC,CAAC,CAACtD,WAAW,CAAC;IAC9C;EACF,CAAC,EACD,CAACA,WAAW,CACd,CAAC;EAED,MAAM4E,UAAU,GAAG/I,OAAO,CACxB,OAAO;IACL8E,OAAO;IACPF,OAAO;IACPW,YAAY;IACZF,gBAAgB;IAChBX,YAAY;IACZL;EACF,CAAC,CAAC,EACF,CACES,OAAO,EACPF,OAAO,EACPW,YAAY,EACZF,gBAAgB,EAChBX,YAAY,EACZL,aAAa,CAEjB,CAAC;EAED,MAAM6C,KAAK,GAAGtH,qBAAqB,CAAC;IAClC0C,OAAO,EAAEA,OAAO;IAChBC,IAAI,EAAEA,IAAI;IACVyG,KAAK,EAAED,UAAU;IACjB/B,yBAAyB,EAAEA,yBAAyB;IACpDiC,qBAAqB,EAAE;MAAEC,QAAQ,EAAE;IAAE,CAAC;IACtCC,uBAAuB,EACrB/F,cAAc,KAAK,UAAU,IAAIP,cAAc,GAAG,EAAE;IACtDuG,oBAAoB,EAAE3F,iBAAiB;IACvC4F,mBAAmB,EAAE,KAAK;IAC1BC,sBAAsB,EAAE,KAAK;IAC7BC,gBAAgB,EAAE,KAAK;IACvBC,kBAAkB,EAAE1F,eAAe;IACnC2F,aAAa,EAAE,KAAK;IACpBC,YAAY,EAAE,KAAK;IACnBC,iBAAiB,EAAE9F,gBAAgB;IACnC+F,iBAAiB,EAAE/F,gBAAgB;IACnCgG,aAAa,EAAE7F,UAAU;IACzB8F,aAAa,EAAE,KAAK;IACpBC,mBAAmB,EAAE,KAAK;IAC1BC,UAAU,EAAE,cAAc;IAC1BC,uBAAuB,EAAE;MACvB,iBAAiB,EAAE;QACjBC,qBAAqB,EAAE;UACrBC,KAAK,EAAE,OAAO;UACdC,EAAE,EAAE;YACFC,QAAQ,EAAE,SAAS;YACnBC,KAAK,EAAE;UACT;QACF,CAAC;QACDC,qBAAqB,EAAE;UACrBJ,KAAK,EAAE,OAAO;UACdC,EAAE,EAAE;YACFE,KAAK,EAAE;UACT;QACF;MACF,CAAC;MACD,cAAc,EAAE;QACdE,MAAM,EAAE,EAAE;QACVN,qBAAqB,EAAE;UACrBE,EAAE,EAAE;YACFK,QAAQ,EAAE,CAAC;YACXH,KAAK,EAAE;UACT;QACF,CAAC;QACDC,qBAAqB,EAAE;UACrBH,EAAE,EAAE;YACFK,QAAQ,EAAE,CAAC;YACXH,KAAK,EAAE;UACT;QACF;MACF;IACF,CAAC;IACDI,kBAAkB,EAAE,KAAK;IACzBC,eAAe,EAAE,IAAI;IACrBC,aAAa,EAAE,IAAI;IACnBnI,QAAQ,EAAEA,QAAQ;IAClBoI,KAAK,EAAE;MACLC,iBAAiB,EAAEtK,aAAa;MAChCuK,cAAc,EAAEnK,iBAAiB;MACjCoK,WAAW,EAAEtK;IACf,CAAC;IACDuK,eAAe,EAAE/E,mBAAmB;IACpC7C,oBAAoB,EAAEwD,wBAAwB;IAC9CqE,gBAAgB,EACdrH,gBAAgB,KAAK,IAAI,IAAIP,gBAAgB,IAAIC,kBAAkB,GAC/D,IAAI,GACJ,KAAK;IACX4H,qBAAqB,EAAE,MAAM;IAE7BZ,qBAAqB,EAAEA,CAAC;MAAEpF;IAAO,CAAC,MAAM;MACtCiG,SAAS,EAAExG,OAAO,CAACyG,IAAI,CAAEC,IAAI,IAAKA,IAAI,CAACpJ,EAAE,KAAKiD,MAAM,CAACjD,EAAE,CAAC,GACpD,UAAU,GACV;IACN,CAAC,CAAC;IAEFqJ,oBAAoB,EAAEA,CAAC;MAAErE,KAAK;MAAEjF;IAAI,CAAC,MAAM;MACzCmJ,SAAS,EACPjH,WAAW,EAAEjC,EAAE,KAAKD,GAAG,CAACC,EAAE,IAAIgF,KAAK,CAACO,QAAQ,CAAC,CAAC,CAACD,UAAU,EAAEtF,EAAE,KAAKD,GAAG,CAACC,EAAE,GACpE,YAAY,GACZgF,KAAK,CAACO,QAAQ,CAAC,CAAC,CAACD,UAAU,EAAEtF,EAAE,KAAKD,GAAG,CAACC,EAAE,IACxCiC,WAAW,EAAEjC,EAAE,KAAKD,GAAG,CAACC,EAAE,GAC1B,cAAc,GACdiC,WAAW,EAAEjC,EAAE,KAAKD,GAAG,CAACC,EAAE,IACxBgF,KAAK,CAACO,QAAQ,CAAC,CAAC,CAACD,UAAU,EAAEtF,EAAE,KAAKD,GAAG,CAACC,EAAE,GAC1C,yBAAyB,GACzBsJ;IACZ,CAAC,CAAC;IAEFC,qBAAqB,EAAEA,CAAC;MAAEvE,KAAK;MAAEjF;IAAI,CAAC,MAAM;MAC1CyJ,KAAK,EAAExH,CAAC,CAAC,0BAA0B,CAAC;MACpC,YAAY,EAAEA,CAAC,CAAC,4BAA4B,CAAC;MAC7CyH,SAAS,EAAGpE,KAAK,IAAKD,uBAAuB,CAAC;QAAEJ,KAAK;QAAEjF,GAAG;QAAEsF;MAAM,CAAC,CAAC;MACpEqE,MAAM,EAAEA,CAAA,KAAM;QACZvE,0BAA0B,CAACH,KAAK,CAAC;MACnC,CAAC;MACD2E,SAAS,EAAEA,CAAA,KAAMnD,yBAAyB,CAACxB,KAAK,CAAC;MACjD4E,aAAa,EAAEA,CAAA,KAAMhD,6BAA6B,CAAC5B,KAAK,CAAC;MACzDkD,EAAE,EAAE;QACF2B,OAAO,EAAE9H,mBAAmB,CAAC+H,QAAQ;QACrCC,YAAY,EAAEhI,mBAAmB,CAACiI,gBAAgB;QAElD,iBAAiB,EAAE;UACjBC,SAAS,EAAE,aAAalI,mBAAmB,CAACmI,eAAe,eAAenI,mBAAmB,CAACoI,kBAAkB,EAAE;UAClHC,OAAO,EAAE,uBAAuB;UAChCC,aAAa,EAAE;QACjB;MACF;IACF,CAAC,CAAC;IAEFC,gBAAgB,EAAEA,CAAC;MAAEvK;IAAI,CAAC,KAAK;MAC7B,MAAMiG,YAAY,GAAGjG,GAAG,CAACkG,KAAK,GAAG,CAACzF,IAAI,GAAG,CAAC,IAAIG,cAAc;MAE5D,OACErB,KAAA,CAACpB,GAAG;QAACgK,EAAE,EAAE;UAAEqC,OAAO,EAAE;QAAO,CAAE;QAAAC,QAAA,GAC1BpJ,gBAAgB,GAAGrB,GAAG,CAAC0K,QAAQ,CAAC,EAChC,CAACpJ,kBAAkB,IAAIM,gBAAgB,KACtCrC,KAAA,CAACnB,UAAU;UACTuM,SAAS,EAAE1I,CAAC,CAAC,6BAA6B,CAAE;UAC5C2I,aAAa,EAAC,UAAU;UACxBC,OAAO,EAAE1L,IAAA,CAACN,QAAQ,IAAE,CAAE;UACtBiM,aAAa,EAAC,OAAO;UACrBC,IAAI,EAAC,OAAO;UAAAN,QAAA,GAEXnJ,kBAAkB,IACjB/B,KAAA,CAAAF,SAAA;YAAAoL,QAAA,GACGnJ,kBAAkB,CAACtB,GAAG,CAAC0K,QAAQ,CAAC,EACjCvL,IAAA,SAAK,CAAC;UAAA,CACN,CACH,EACDI,KAAA,CAAClB,QAAQ;YACP2M,UAAU,EAAE/E,YAAY,IAAI,CAAE;YAC9BgF,OAAO,EAAEA,CAAA,KAAMnG,cAAc,CAAC;cAAEnF,KAAK,EAAEK,GAAG,CAACC,EAAE;cAAEL,QAAQ,EAAE;YAAE,CAAC,CAAE;YAAA6K,QAAA,GAE9DtL,IAAA,CAACX,YAAY,IAAE,CAAC,mBAClB;UAAA,CAAU,CAAC,EACXe,KAAA,CAAClB,QAAQ;YACP2M,UAAU,EAAE/E,YAAY,IAAI,CAAE;YAC9BgF,OAAO,EAAEA,CAAA,KACPnG,cAAc,CAAC;cACbnF,KAAK,EAAEK,GAAG,CAACC,EAAE;cACbL,QAAQ,EAAEqG,YAAY,IAAI,CAAC,GAAG,CAAC,GAAGA,YAAY,GAAG;YACnD,CAAC,CACF;YAAAwE,QAAA,GAEDtL,IAAA,CAACT,WAAW,IAAE,CAAC,kBACjB;UAAA,CAAU,CAAC,EACXa,KAAA,CAAClB,QAAQ;YACP2M,UAAU,EAAEhK,SAAS,GAAGiF,YAAY,IAAIjF,SAAS,GAAG,CAAC,GAAG,KAAM;YAC9DiK,OAAO,EAAEA,CAAA,KACPnG,cAAc,CAAC;cACbnF,KAAK,EAAEK,GAAG,CAACC,EAAE;cACbL,QAAQ,EAAEqG,YAAY,GAAG;YAC3B,CAAC,CACF;YAAAwE,QAAA,GAEDtL,IAAA,CAACZ,aAAa,IAAE,CAAC,kBACnB;UAAA,CAAU,CAAC,EACXY,IAAA,CAAAE,SAAA;YAAAoL,QAAA,EACGzJ,SAAS,IACRzB,KAAA,CAAClB,QAAQ;cACP2M,UAAU,EAAE/E,YAAY,IAAIjF,SAAS,GAAG,CAAE;cAC1CiK,OAAO,EAAEA,CAAA,KACPnG,cAAc,CAAC;gBACbnF,KAAK,EAAEK,GAAG,CAACC,EAAE;gBACbL,QAAQ,EAAEoB;cACZ,CAAC,CACF;cAAAyJ,QAAA,GAEDtL,IAAA,CAACb,eAAe,IAAE,CAAC,iBACrB;YAAA,CAAU;UACX,CACD,CAAC;QAAA,CACO,CACb;MAAA,CACE,CAAC;IAEV;EACF,CAAC,CAAC;EAEF,MAAM4M,aAAa,GAAGnN,OAAO,CAC3B,MACEwB,KAAA,CAAAF,SAAA;IAAAoL,QAAA,GACGlJ,oBAAoB,IACnBpC,IAAA,CAACf,UAAU;MACTuM,SAAS,EAAC,eAAe;MACzBE,OAAO,EAAE1L,IAAA,CAACP,QAAQ,IAAE,CAAE;MACtBkM,aAAa,EAAC,OAAO;MACrBK,mBAAmB,EAAE,KAAM;MAAAV,QAAA,EAE3BtL,IAAA,CAAAE,SAAA;QAAAoL,QAAA,EACGjL,aAAa,CAAC4L,GAAG,CAAE3G,KAAuB,IACzCtF,IAAA,CAACd,QAAQ;UACPgN,UAAU,EAAExI,OAAO,KAAK4B,KAAM;UAE9BwG,OAAO,EAAEA,CAAA,KAAMnI,UAAU,CAAC2B,KAAK,CAAE;UAAAgG,QAAA,EAEhC,GAAGhG,KAAK,CAAC6G,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAG9G,KAAK,CAAC+G,KAAK,CAAC,CAAC,CAAC;QAAE,GAH/C/G,KAIG,CACX;MAAC,CACF;IAAC,CACO,CACb,EAEAhD,mBAAmB,IAClBtC,IAAA,CAACf,UAAU;MACTuM,SAAS,EAAC,mBAAmB;MAC7BE,OAAO,EAAE1L,IAAA,CAACL,QAAQ,IAAE,CAAE;MACtBgM,aAAa,EAAC,OAAO;MACrBK,mBAAmB,EAAE,KAAM;MAAAV,QAAA,EAE3BtL,IAAA,CAAAE,SAAA;QAAAoL,QAAA,EACGpK,OAAO,CACLoL,MAAM,CAAEvI,MAAM,IAAKA,MAAM,CAACuE,YAAY,KAAK,KAAK,CAAC,CACjD2D,GAAG,CAAElI,MAAM,IACV3D,KAAA,CAAClB,QAAQ;UAEP4M,OAAO,EAAEA,CAAA,KAAM5G,sBAAsB,CAACnB,MAAM,CAACC,WAAW,CAAE;UAAAsH,QAAA,GAE1DtL,IAAA,CAAAuM,SAAA;YACEC,OAAO,EAAEvI,gBAAgB,CAACF,MAAM,CAACC,WAAW,CAAC,KAAK;UAAM,CACzD,CAAC,EACDD,MAAM,CAACqF,MAAM;QAAA,GANTrF,MAAM,CAACC,WAOJ,CACX;MAAC,CACJ;IAAC,CACO,CACb;EAAA,CACD,CACH,EACD,CACEC,gBAAgB,EAChB/C,OAAO,EACPwC,OAAO,EACPtB,oBAAoB,EACpB8C,sBAAsB,EACtB5C,mBAAmB,CAEvB,CAAC;EAED,OACElC,KAAA,CAACpB,GAAG;IAACgK,EAAE,EAAE;MAAEqC,OAAO,EAAE,MAAM;MAAEoB,aAAa,EAAE,QAAQ;MAAEC,GAAG,EAAE;IAAE,CAAE;IAAApB,QAAA,GAC5DtL,IAAA,CAACH,WAAW;MACV8M,iBAAiB,EAAEZ,aAAc;MACjC1H,OAAO,EACL9B,UAAU,GACNrB,OAAO,CACJoL,MAAM,CAAEvI,MAAM,IAAKA,MAAM,CAAC6I,kBAAkB,KAAK,KAAK,CAAC,CACvDX,GAAG,CAAElI,MAAM,IAAK;QACf,OAAO;UACLjD,EAAE,EAAEiD,MAAM,CAACC,WAAW;UACtB6I,KAAK,EAAE9I,MAAM,CAACqF,MAAM;UACpB0D,OAAO,EAAE/I,MAAM,CAACgJ,aAAa,IAAI,MAAM;UACvCC,OAAO,EAAEjJ,MAAM,CAACkJ;QAClB,CAAC;MACH,CAAC,CAAC,GACJ7C,SACL;MACDtI,qBAAqB,EAAEA,qBAAsB;MAC7CoL,eAAe,EAAE3H,aAAc;MAC/B4H,cAAc,EAAExK,SAAS,GAAG0C,YAAY,GAAG+E,SAAU;MACrDrI,eAAe,EAAEA;IAAgB,CAClC,CAAC,EAEF/B,IAAA,CAACzB,kBAAkB;MAACuH,KAAK,EAAEA;IAAM,CAAE,CAAC,EAEnCtD,aAAa,IACZxC,IAAA,CAACF,mBAAmB;MAClBsN,sBAAsB,EAAEjM,IAAI,CAACkM,MAAO;MACpCC,WAAW,EAAEhM,IAAK;MAClBiM,oBAAoB,EAAE,KAAM;MAC5BC,wBAAwB,EAAElM,IAAI,IAAI,CAAE;MACpCmM,WAAW,EAAEA,CAAA,KAAM;QACjB,IAAIzL,cAAc,KAAK,UAAU,EAAE;UACjCqB,iBAAiB,CAAC5B,cAAc,GAAGC,kBAAkB,CAAC;QACxD,CAAC,MAAM;UACL0B,OAAO,CAAC9B,IAAI,GAAG,CAAC,CAAC;QACnB;MACF,CAAE;MACFoM,eAAe,EAAEA,CAAA,KAAMtK,OAAO,CAAC9B,IAAI,GAAG,CAAC,CAAE;MACzCU,cAAc,EAAEA;IAAe,CAChC,CACF;EAAA,CACE,CAAC;AAEV,CAAC;AAED,MAAM2L,iBAAiB,GAAGlP,IAAI,CAACwC,SAAS,CAAC;AACzC0M,iBAAiB,CAACC,WAAW,GAAG,WAAW;AAE3C,SAASD,iBAAiB,IAAI1M,SAAS","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DataTable.js","names":["MRT_TableContainer","useMaterialReactTable","memo","useCallback","useEffect","useMemo","useRef","useState","Box","MenuButton","MenuItem","useTranslation","ArrowBottomIcon","ArrowDownIcon","ArrowTopIcon","ArrowUnsortedIcon","ArrowUpIcon","DragIndicatorIcon","ListIcon","MoreIcon","ShowIcon","useOdysseyDesignTokens","DataFilters","DataTablePagination","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","t","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","Promise","error","console","handleSortingChange","updater","prevSorting","Function","handleColumnVisibility","columnId","prevVisibility","handleSearch","value","handleFilters","updatedFilters","handleRowSelectionChange","prevRowSelection","updateRowOrder","rowVirtualizerInstanceRef","setHoveredRow","table","nextRow","getRow","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","tableState","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","original","ariaLabel","buttonVariant","endIcon","menuAlignment","size","isDisabled","onClick","tableSettings","shouldCloseOnSelect","map","isSelected","charAt","toUpperCase","slice","filter","_Checkbox","checked","flexDirection","gap","additionalActions","enableColumnFilter","label","variant","filterVariant","options","filterSelectOptions","onChangeFilters","onChangeSearch","currentNumberOfResults","length","currentPage","isNextButtonDisabled","isPreviousButtonDisabled","onClickNext","onClickPrevious","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 { Checkbox as MuiCheckbox } from \"@mui/material\";\nimport {\n MRT_ColumnDef,\n MRT_DensityState,\n MRT_Row,\n MRT_RowData,\n MRT_RowSelectionState,\n MRT_RowVirtualizer,\n MRT_SortingState,\n MRT_TableContainer,\n MRT_TableInstance,\n MRT_TableOptions,\n MRT_Updater,\n MRT_VisibilityState,\n useMaterialReactTable,\n} from \"material-react-table\";\nimport {\n Fragment,\n KeyboardEvent,\n memo,\n ReactElement,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { Box } from \"../Box.js\";\nimport { Button } from \"../Buttons/Button.js\";\nimport { MenuButton } from \"../Buttons/MenuButton.js\";\nimport { MenuItem } from \"../Buttons/MenuItem.js\";\nimport { useTranslation } from \"../i18n.generated/i18n.js\";\nimport {\n ArrowBottomIcon,\n ArrowDownIcon,\n ArrowTopIcon,\n ArrowUnsortedIcon,\n ArrowUpIcon,\n DragIndicatorIcon,\n ListIcon,\n MoreIcon,\n ShowIcon,\n} from \"../icons.generated/index.js\";\nimport { useOdysseyDesignTokens } from \"../OdysseyDesignTokensContext.js\";\nimport { DataFilter, DataFilters } from \"./DataFilters.js\";\nimport {\n DataTablePagination,\n paginationTypeValues,\n} from \"./DataTablePagination.js\";\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 DataTableColumn<TData extends MRT_RowData> = {\n /**\n * The unique ID of the column\n */\n accessorKey: string;\n /**\n * Customize the way each cell in the column is\n * displayed via a custom React component.\n */\n Cell?: MRT_ColumnDef<TData>[\"Cell\"];\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 hidable\n */\n enableHiding?: 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 sortable\n */\n enableSorting?: boolean;\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 UI control that will be used to filter the column.\n * Defaults to a standard text input.\n */\n filterVariant?: MRT_ColumnDef<TData>[\"filterVariant\"];\n /**\n * The human-friendly title of the column\n */\n header: string;\n /**\n * The maximum column width, in pixels\n */\n maxSize?: number;\n /**\n * The minimum column width, in pixels\n */\n minSize?: number;\n /**\n * The optional column width, in pixels\n */\n size?: number;\n};\n\nexport type DataTableProps<TData extends MRT_RowData> = {\n /**\n * The columns that make up the table\n */\n columns: DataTableColumn<TData>[];\n /**\n * The data that goes into the table, which will be displayed\n * as the table rows\n */\n data: MRT_TableOptions<TData>[\"data\"];\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 filters?: DataFilter[];\n page?: number;\n resultsPerPage?: number;\n search?: string;\n sort?: MRT_SortingState;\n }) =>\n | MRT_TableOptions<TData>[\"data\"]\n | Promise<MRT_TableOptions<TData>[\"data\"]>;\n /**\n * The function to get the ID of a row\n */\n getRowId?: MRT_TableOptions<TData>[\"getRowId\"];\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 end user can reorder rows via a drag-and-drop interface\n */\n hasRowReordering?: boolean;\n /**\n * If true, the table will include checkboxes on each row, enabling\n * the user to select some or all rows.\n */\n hasRowSelection?: boolean;\n /**\n * If true, the global table search controls will be shown.\n */\n hasSearch?: boolean;\n /**\n * If true, the search field will include a Search button, rather than\n * firing on input change.\n */\n hasSearchSubmitButton?: boolean;\n /**\n * If true, the end user can sort columns (ascending, descending, or neither)\n */\n hasSorting?: boolean;\n /**\n * 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 * Callback that fires when a row (or rows) is selected or unselected.\n */\n onRowSelectionChange?: (rowSelection: MRT_RowSelectionState) => void;\n /**\n * The current page number.\n */\n page?: 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 * Callback that fires when the user reorders rows within the table. Can be used\n * to propagate order change to the backend.\n */\n reorderDataFn?: ({\n rowId,\n newIndex,\n }: {\n newIndex: number;\n rowId: string;\n }) => void;\n /**\n * The number of results per page.\n */\n resultsPerPage?: number;\n /**\n * Action buttons to display in each row\n */\n rowActionButtons?: (\n row: TData,\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: TData,\n ) => ReactElement<typeof MenuItem | typeof Fragment>;\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 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\ntype TableType<TData extends MRT_RowData> = MRT_TableInstance<TData>;\n\nconst reorderDataRowsLocally = <TData extends MRT_RowData>({\n currentData,\n rowId,\n newIndex,\n}: {\n currentData: MRT_TableOptions<TData>[\"data\"];\n newIndex: number;\n rowId: string;\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 = <TData extends MRT_RowData>({\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<TData>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n const [draggingRow, setDraggingRow] = useState<MRT_Row<TData> | null>();\n const [showSkeletons, setShowSkeletons] = useState<boolean>(true);\n const [data, setData] = useState<MRT_TableOptions<TData>[\"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] = 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 = fetchDataFn({\n page: page,\n resultsPerPage: resultsPerPage,\n sort: sorting,\n search: globalFilter,\n filters: filters,\n });\n\n setData(newData instanceof Promise ? await newData : newData);\n\n setShowSkeletons(false);\n } catch (error) {\n console.error(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 }: { newIndex: number; rowId: string }) => {\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_RowVirtualizer<HTMLDivElement, HTMLTableRowElement>>(null);\n\n const setHoveredRow = useCallback<\n (table: TableType<TData>, id: TData[\"id\"]) => void\n >((table, id) => {\n if (id) {\n const nextRow = table.getRow(id) as MRT_Row<TData>;\n\n if (nextRow) {\n table.setHoveredRow(nextRow);\n }\n }\n }, []);\n\n const resetDraggingAndHoveredRow = useCallback<\n (table: TableType<TData>) => void\n >(\n (table) => {\n setDraggingRow(null);\n table.setHoveredRow(null);\n },\n [setDraggingRow],\n );\n\n type HandleDragHandleKeyDownArgs = {\n event: KeyboardEvent<HTMLButtonElement>;\n row: MRT_Row<TData>;\n table: TableType<TData>;\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 // This is a legacy file. In general, we shouldn't have `as` here. Newer versions will have this fixed. --Kevin Ghadyani\n setHoveredRow(table, data[nextIndex]?.id as TData[\"id\"]);\n }\n } else {\n if (isArrowDown || isArrowUp) {\n const nextIndex = isArrowDown ? row.index + 1 : row.index - 1;\n // This is a legacy file. In general, we shouldn't have `as` here. Newer versions will have this fixed. --Kevin Ghadyani\n setHoveredRow(table, data[nextIndex]?.id as TData[\"id\"]);\n }\n }\n } else {\n if (isSpaceOrEnter) {\n setDraggingRow(row);\n }\n }\n },\n [\n data,\n draggingRow,\n odysseyDesignTokens.TransitionDurationMainAsNumber,\n page,\n resetDraggingAndHoveredRow,\n resultsPerPage,\n setHoveredRow,\n updateRowOrder,\n ],\n );\n\n const handleDragHandleOnDragEnd = useCallback(\n (table: TableType<TData>) => {\n const cols = table.getAllColumns();\n cols[0].toggleVisibility();\n\n const { draggingRow, hoveredRow } = table.getState();\n\n if (draggingRow) {\n updateRowOrder({\n newIndex: (hoveredRow as TData).index as number,\n rowId: draggingRow.id,\n });\n }\n\n setDraggingRow(null);\n },\n [updateRowOrder],\n );\n\n const handleDragHandleOnDragCapture = useCallback(\n (table: TableType<TData>) => {\n if (!draggingRow && table.getState().draggingRow?.id) {\n setDraggingRow(table.getState().draggingRow);\n }\n },\n [draggingRow],\n );\n\n const tableState = useMemo(\n () => ({\n density,\n sorting,\n globalFilter,\n columnVisibility,\n rowSelection,\n showSkeletons,\n }),\n [\n density,\n sorting,\n globalFilter,\n columnVisibility,\n rowSelection,\n showSkeletons,\n ],\n );\n\n const table = useMaterialReactTable({\n columns: columns,\n data: data,\n state: tableState,\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 },\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: t(\"table.draghandle.tooltip\"),\n \"aria-label\": t(\"table.draghandle.arialabel\"),\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.original)}\n {(rowActionMenuItems || hasRowReordering) && (\n <MenuButton\n ariaLabel={t(\"table.moreactions.arialabel\")}\n buttonVariant=\"floating\"\n endIcon={<MoreIcon />}\n menuAlignment=\"right\"\n size=\"small\"\n >\n {rowActionMenuItems && (\n <>\n {rowActionMenuItems(row.original)}\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 ariaLabel=\"Table density\"\n endIcon={<ListIcon />}\n menuAlignment=\"right\"\n shouldCloseOnSelect={false}\n >\n <>\n {densityValues.map((value: MRT_DensityState) => (\n <MenuItem\n isSelected={density === value}\n key={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 ariaLabel=\"Show/hide columns\"\n endIcon={<ShowIcon />}\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={() => handleColumnVisibility(column.accessorKey)}\n >\n <MuiCheckbox\n checked={columnVisibility[column.accessorKey] !== false}\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 additionalActions={tableSettings}\n filters={\n hasFilters\n ? columns\n .filter((column) => column.enableColumnFilter !== false)\n .map((column) => {\n return {\n id: column.accessorKey,\n label: column.header,\n variant: column.filterVariant ?? \"text\",\n options: column.filterSelectOptions,\n };\n })\n : undefined\n }\n hasSearchSubmitButton={hasSearchSubmitButton}\n onChangeFilters={handleFilters}\n onChangeSearch={hasSearch ? handleSearch : undefined}\n searchDelayTime={searchDelayTime}\n />\n\n <MRT_TableContainer table={table} />\n\n {hasPagination && (\n <DataTablePagination\n currentNumberOfResults={data.length}\n currentPage={page}\n isNextButtonDisabled={false} // TODO: Add logic for disabling next/load more button\n isPreviousButtonDisabled={page <= 1}\n onClickNext={() => {\n if (paginationType === \"loadMore\") {\n setResultsPerPage(resultsPerPage + resultsPerPageProp);\n } else {\n setPage(page + 1);\n }\n }}\n onClickPrevious={() => setPage(page - 1)}\n paginationType={paginationType}\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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","ignoreList":[]}
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
|
|
13
13
|
import styled from "@emotion/styled";
|
|
14
14
|
import { memo, useCallback } from "react";
|
|
15
|
-
import { useTranslation } from "react-i18next";
|
|
16
15
|
import { Box } from "../../Box.js";
|
|
17
16
|
import { Button, MenuButton } from "../../Buttons/index.js";
|
|
17
|
+
import { useTranslation } from "../../i18n.generated/i18n.js";
|
|
18
18
|
import { ChevronDownIcon } from "../../icons.generated/index.js";
|
|
19
19
|
import { useOdysseyDesignTokens } from "../../OdysseyDesignTokensContext.js";
|
|
20
20
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BulkActionsMenu.js","names":["styled","memo","useCallback","
|
|
1
|
+
{"version":3,"file":"BulkActionsMenu.js","names":["styled","memo","useCallback","Box","Button","MenuButton","useTranslation","ChevronDownIcon","useOdysseyDesignTokens","jsx","_jsx","jsxs","_jsxs","BulkActionsContainer","shouldForwardProp","prop","odysseyDesignTokens","display","gap","Spacing2","BulkActionsMenu","data","menuItems","rowSelection","setRowSelection","t","selectedRowCount","Object","values","filter","Boolean","length","handleSelectAll","rows","fromEntries","map","row","id","handleSelectNone","children","ariaLabel","buttonLabel","buttonVariant","endIcon","isDisabled","label","onClick","variant","MemoizedBulkActionsMenu","displayName"],"sources":["../../../../src/labs/DataView/BulkActionsMenu.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport styled from \"@emotion/styled\";\nimport { MRT_RowData, MRT_RowSelectionState } from \"material-react-table\";\nimport { Dispatch, memo, SetStateAction, useCallback } from \"react\";\n\nimport { Box } from \"../../Box.js\";\nimport { Button, MenuButton } from \"../../Buttons/index.js\";\nimport { useTranslation } from \"../../i18n.generated/i18n.js\";\nimport { ChevronDownIcon } from \"../../icons.generated/index.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport { UniversalProps } from \"./componentTypes.js\";\n\nexport type BulkActionsMenuProps<TData extends MRT_RowData> = {\n data: TData[];\n menuItems: UniversalProps<TData>[\"bulkActionMenuItems\"];\n rowSelection: MRT_RowSelectionState;\n setRowSelection: Dispatch<SetStateAction<MRT_RowSelectionState>>;\n};\n\nconst BulkActionsContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst BulkActionsMenu = <TData extends MRT_RowData>({\n data,\n menuItems,\n rowSelection,\n setRowSelection,\n}: BulkActionsMenuProps<TData>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const selectedRowCount = Object.values(rowSelection).filter(Boolean).length;\n\n const handleSelectAll = useCallback(() => {\n const rows = Object.fromEntries(\n data.map((row) => [row.id as string, true]),\n );\n setRowSelection(rows);\n }, [data, setRowSelection]);\n\n const handleSelectNone = useCallback(() => {\n setRowSelection({});\n }, [setRowSelection]);\n\n return (\n <BulkActionsContainer odysseyDesignTokens={odysseyDesignTokens}>\n {selectedRowCount > 0 && (\n <MenuButton\n ariaLabel={t(\"table.actions.arialabel\")}\n buttonLabel={t(\"table.actions.selectsome\", { selectedRowCount })}\n buttonVariant=\"primary\"\n endIcon={<ChevronDownIcon />}\n >\n {menuItems?.(rowSelection)}\n </MenuButton>\n )}\n <Box>\n <Button\n isDisabled={selectedRowCount === data.length} // Disabled if all are selected\n label={t(\"table.actions.selectall\")}\n onClick={handleSelectAll}\n variant=\"secondary\"\n />\n <Button\n isDisabled={selectedRowCount === 0} // Disabled if none are selected\n label={t(\"table.actions.selectnone\")}\n onClick={handleSelectNone}\n variant=\"secondary\"\n />\n </Box>\n </BulkActionsContainer>\n );\n};\n\nconst MemoizedBulkActionsMenu = memo(BulkActionsMenu);\nMemoizedBulkActionsMenu.displayName = \"BulkActionsMenu\";\n\nexport { MemoizedBulkActionsMenu as BulkActionsMenu };\n"],"mappings":"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","ignoreList":[]}
|