@okta/odyssey-react-mui 1.28.1 → 1.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/Breadcrumbs.js +1 -0
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/Buttons/MenuItem.js +1 -0
- package/dist/Buttons/MenuItem.js.map +1 -1
- package/dist/Checkbox.js +62 -35
- package/dist/Checkbox.js.map +1 -1
- package/dist/DataTable/reorderDataRowsLocally.js.map +1 -1
- package/dist/DataTable/useRowReordering.js.map +1 -1
- package/dist/HtmlProps.js.map +1 -1
- package/dist/Pagination/Pagination.js +2 -1
- package/dist/Pagination/Pagination.js.map +1 -1
- package/dist/Radio.js +65 -38
- package/dist/Radio.js.map +1 -1
- package/dist/Typography.js +20 -0
- package/dist/Typography.js.map +1 -1
- package/dist/index.scss +1 -1
- package/dist/labs/DataFilters.js +9 -5
- package/dist/labs/DataFilters.js.map +1 -1
- package/dist/labs/DataTable.js +7 -7
- package/dist/labs/DataTable.js.map +1 -1
- package/dist/labs/DataView/BulkActionsMenu.js.map +1 -1
- package/dist/labs/DataView/CardLayoutContent.js +6 -5
- package/dist/labs/DataView/CardLayoutContent.js.map +1 -1
- package/dist/labs/DataView/DataCard.js +1 -0
- package/dist/labs/DataView/DataCard.js.map +1 -1
- package/dist/labs/DataView/DataTable.js.map +1 -1
- package/dist/labs/DataView/DataView.js +2 -2
- package/dist/labs/DataView/DataView.js.map +1 -1
- package/dist/labs/DataView/DetailPanel.js.map +1 -1
- package/dist/labs/DataView/RowActions.js.map +1 -1
- package/dist/labs/DataView/TableLayoutContent.js +1 -1
- package/dist/labs/DataView/TableLayoutContent.js.map +1 -1
- package/dist/labs/DataView/TableSettings.js.map +1 -1
- package/dist/labs/DataView/componentTypes.js.map +1 -1
- package/dist/labs/DataView/dataTypes.js.map +1 -1
- package/dist/labs/DataView/fetchData.js.map +1 -1
- package/dist/labs/DataView/testSupportData.js +201 -0
- package/dist/labs/DataView/testSupportData.js.map +1 -0
- package/dist/labs/DataView/useFilterConversion.js.map +1 -1
- package/dist/labs/{DateField.js → DatePickers/DateField.js} +1 -1
- package/dist/labs/DatePickers/DateField.js.map +1 -0
- package/dist/labs/DatePickers/DateFieldActionBar.js +56 -0
- package/dist/labs/DatePickers/DateFieldActionBar.js.map +1 -0
- package/dist/labs/DatePickers/DateFieldLocalizationProvider.js +32 -0
- package/dist/labs/DatePickers/DateFieldLocalizationProvider.js.map +1 -0
- package/dist/labs/{DatePicker.js → DatePickers/DatePicker.js} +30 -73
- package/dist/labs/DatePickers/DatePicker.js.map +1 -0
- package/dist/labs/DatePickers/DatePicker.types.d.js.map +1 -0
- package/dist/labs/DatePickers/DateTimeField.js +166 -0
- package/dist/labs/DatePickers/DateTimeField.js.map +1 -0
- package/dist/labs/DatePickers/DateTimePicker.js +233 -0
- package/dist/labs/DatePickers/DateTimePicker.js.map +1 -0
- package/dist/labs/{datePickerTheme.js → DatePickers/datePickerTheme.js} +2 -2
- package/dist/labs/DatePickers/datePickerTheme.js.map +1 -0
- package/dist/labs/DatePickers/dateTimePickerTheme.js +230 -0
- package/dist/labs/DatePickers/dateTimePickerTheme.js.map +1 -0
- package/dist/labs/DatePickers/index.js +15 -0
- package/dist/labs/DatePickers/index.js.map +1 -0
- package/dist/labs/DatePickers/useDateFieldsTranslations.js.map +1 -0
- package/dist/labs/{useOdysseyDateFields.js → DatePickers/useOdysseyDateFields.js} +36 -3
- package/dist/labs/DatePickers/useOdysseyDateFields.js.map +1 -0
- package/dist/labs/PageTemplate.js +1 -1
- package/dist/labs/PageTemplate.js.map +1 -1
- package/dist/labs/SideNav/SideNav.js +40 -34
- package/dist/labs/SideNav/SideNav.js.map +1 -1
- package/dist/labs/SideNav/SideNavHeader.js +6 -4
- package/dist/labs/SideNav/SideNavHeader.js.map +1 -1
- package/dist/labs/SideNav/SideNavItemContent.js +11 -11
- package/dist/labs/SideNav/SideNavItemContent.js.map +1 -1
- package/dist/labs/SideNav/SideNavToggleButton.js +1 -1
- package/dist/labs/SideNav/SideNavToggleButton.js.map +1 -1
- package/dist/labs/SideNav/types.js.map +1 -1
- package/dist/labs/TimeZonePicker.js.map +1 -1
- package/dist/labs/index.js +1 -3
- package/dist/labs/index.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui.js +2 -0
- package/dist/properties/ts/odyssey-react-mui.js.map +1 -1
- package/dist/src/Breadcrumbs.d.ts.map +1 -1
- package/dist/src/Buttons/MenuItem.d.ts.map +1 -1
- package/dist/src/Checkbox.d.ts.map +1 -1
- package/dist/src/DataTable/reorderDataRowsLocally.d.ts +3 -3
- package/dist/src/DataTable/reorderDataRowsLocally.d.ts.map +1 -1
- package/dist/src/DataTable/useRowReordering.d.ts +10 -10
- package/dist/src/DataTable/useRowReordering.d.ts.map +1 -1
- package/dist/src/HtmlProps.d.ts +27 -0
- package/dist/src/HtmlProps.d.ts.map +1 -1
- package/dist/src/OdysseyTranslationProvider.d.ts +1 -1
- package/dist/src/OdysseyTranslationProvider.d.ts.map +1 -1
- package/dist/src/Radio.d.ts +1 -1
- package/dist/src/Radio.d.ts.map +1 -1
- package/dist/src/Typography.d.ts +11 -11
- package/dist/src/Typography.d.ts.map +1 -1
- package/dist/src/labs/DataFilters.d.ts.map +1 -1
- package/dist/src/labs/DataTable.d.ts +11 -11
- package/dist/src/labs/DataTable.d.ts.map +1 -1
- package/dist/src/labs/DataView/BulkActionsMenu.d.ts +3 -3
- package/dist/src/labs/DataView/BulkActionsMenu.d.ts.map +1 -1
- package/dist/src/labs/DataView/CardLayoutContent.d.ts +18 -15
- package/dist/src/labs/DataView/CardLayoutContent.d.ts.map +1 -1
- package/dist/src/labs/DataView/DataCard.d.ts +7 -4
- package/dist/src/labs/DataView/DataCard.d.ts.map +1 -1
- package/dist/src/labs/DataView/DataTable.d.ts +6 -2
- package/dist/src/labs/DataView/DataTable.d.ts.map +1 -1
- package/dist/src/labs/DataView/DataView.d.ts +6 -2
- package/dist/src/labs/DataView/DataView.d.ts.map +1 -1
- package/dist/src/labs/DataView/DetailPanel.d.ts +5 -5
- package/dist/src/labs/DataView/DetailPanel.d.ts.map +1 -1
- package/dist/src/labs/DataView/RowActions.d.ts +3 -3
- package/dist/src/labs/DataView/RowActions.d.ts.map +1 -1
- package/dist/src/labs/DataView/TableLayoutContent.d.ts +18 -15
- package/dist/src/labs/DataView/TableLayoutContent.d.ts.map +1 -1
- package/dist/src/labs/DataView/TableSettings.d.ts +7 -3
- package/dist/src/labs/DataView/TableSettings.d.ts.map +1 -1
- package/dist/src/labs/DataView/componentTypes.d.ts +17 -17
- package/dist/src/labs/DataView/componentTypes.d.ts.map +1 -1
- package/dist/src/labs/DataView/dataTypes.d.ts +6 -6
- package/dist/src/labs/DataView/dataTypes.d.ts.map +1 -1
- package/dist/src/labs/DataView/fetchData.d.ts +6 -6
- package/dist/src/labs/DataView/fetchData.d.ts.map +1 -1
- package/dist/src/labs/DataView/testSupportData.d.ts +33 -0
- package/dist/src/labs/DataView/testSupportData.d.ts.map +1 -0
- package/dist/src/labs/DataView/useFilterConversion.d.ts +5 -4
- package/dist/src/labs/DataView/useFilterConversion.d.ts.map +1 -1
- package/dist/src/labs/{DateField.d.ts → DatePickers/DateField.d.ts} +1 -1
- package/dist/src/labs/DatePickers/DateField.d.ts.map +1 -0
- package/dist/src/labs/DatePickers/DateFieldActionBar.d.ts +15 -0
- package/dist/src/labs/DatePickers/DateFieldActionBar.d.ts.map +1 -0
- package/dist/src/labs/DatePickers/DateFieldLocalizationProvider.d.ts +20 -0
- package/dist/src/labs/DatePickers/DateFieldLocalizationProvider.d.ts.map +1 -0
- package/dist/src/labs/DatePickers/DatePicker.d.ts +17 -0
- package/dist/src/labs/DatePickers/DatePicker.d.ts.map +1 -0
- package/dist/src/labs/DatePickers/DateTimeField.d.ts +20 -0
- package/dist/src/labs/DatePickers/DateTimeField.d.ts.map +1 -0
- package/dist/src/labs/DatePickers/DateTimePicker.d.ts +17 -0
- package/dist/src/labs/DatePickers/DateTimePicker.d.ts.map +1 -0
- package/dist/src/labs/DatePickers/datePickerTheme.d.ts +22 -0
- package/dist/src/labs/DatePickers/datePickerTheme.d.ts.map +1 -0
- package/dist/src/labs/{datePickerTheme.d.ts → DatePickers/dateTimePickerTheme.d.ts} +2 -2
- package/dist/src/labs/DatePickers/dateTimePickerTheme.d.ts.map +1 -0
- package/dist/src/labs/DatePickers/index.d.ts +15 -0
- package/dist/src/labs/DatePickers/index.d.ts.map +1 -0
- package/dist/src/labs/DatePickers/useDateFieldsTranslations.d.ts.map +1 -0
- package/dist/src/labs/{useOdysseyDateFields.d.ts → DatePickers/useOdysseyDateFields.d.ts} +49 -6
- package/dist/src/labs/DatePickers/useOdysseyDateFields.d.ts.map +1 -0
- package/dist/src/labs/SideNav/SideNav.d.ts.map +1 -1
- package/dist/src/labs/SideNav/SideNavHeader.d.ts.map +1 -1
- package/dist/src/labs/SideNav/SideNavItemContent.d.ts +1 -1
- package/dist/src/labs/SideNav/SideNavItemContent.d.ts.map +1 -1
- package/dist/src/labs/SideNav/types.d.ts +2 -2
- package/dist/src/labs/SideNav/types.d.ts.map +1 -1
- package/dist/src/labs/TimeZonePicker.d.ts +4 -1
- package/dist/src/labs/TimeZonePicker.d.ts.map +1 -1
- package/dist/src/labs/index.d.ts +1 -3
- package/dist/src/labs/index.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui.d.ts.map +1 -1
- package/dist/src/theme/components.d.ts.map +1 -1
- package/dist/src/theme/mixins.d.ts.map +1 -1
- package/dist/src/theme/mixins.types.d.ts +2 -0
- package/dist/src/theme/mixins.types.d.ts.map +1 -1
- package/dist/src/{labs → ui-shell}/UiShell/UiShell.d.ts +2 -2
- package/dist/src/ui-shell/UiShell/UiShell.d.ts.map +1 -0
- package/dist/src/{labs → ui-shell}/UiShell/UiShellContent.d.ts +12 -8
- package/dist/src/ui-shell/UiShell/UiShellContent.d.ts.map +1 -0
- package/dist/src/ui-shell/UiShell/bufferLatest.d.ts.map +1 -0
- package/dist/src/ui-shell/UiShell/createMessageBus.d.ts.map +1 -0
- package/dist/src/ui-shell/UiShell/createStore.d.ts.map +1 -0
- package/dist/src/ui-shell/UiShell/index.d.ts.map +1 -0
- package/dist/src/{labs → ui-shell}/UiShell/renderUiShell.d.ts +3 -4
- package/dist/src/ui-shell/UiShell/renderUiShell.d.ts.map +1 -0
- package/dist/src/{labs → ui-shell}/UiShell/useHasUiShell.d.ts +1 -0
- package/dist/src/ui-shell/UiShell/useHasUiShell.d.ts.map +1 -0
- package/dist/src/ui-shell/UiShell/useScrollState.d.ts.map +1 -0
- package/dist/src/ui-shell/index.d.ts +14 -0
- package/dist/src/ui-shell/index.d.ts.map +1 -0
- package/dist/src/{web-component → ui-shell}/renderReactInWebComponent.d.ts +3 -23
- package/dist/src/ui-shell/renderReactInWebComponent.d.ts.map +1 -0
- package/dist/src/web-component/index.d.ts +0 -1
- package/dist/src/web-component/index.d.ts.map +1 -1
- package/dist/src/web-component/shadow-dom.d.ts +23 -2
- package/dist/src/web-component/shadow-dom.d.ts.map +1 -1
- package/dist/theme/components.js +38 -4
- package/dist/theme/components.js.map +1 -1
- package/dist/theme/mixins.js +2 -1
- package/dist/theme/mixins.js.map +1 -1
- package/dist/theme/mixins.types.js.map +1 -1
- package/dist/tsconfig.production.tsbuildinfo +1 -1
- package/dist/{labs → ui-shell}/UiShell/UiShell.js +2 -0
- package/dist/ui-shell/UiShell/UiShell.js.map +1 -0
- package/dist/{labs → ui-shell}/UiShell/UiShellContent.js +19 -11
- package/dist/ui-shell/UiShell/UiShellContent.js.map +1 -0
- package/dist/ui-shell/UiShell/bufferLatest.js.map +1 -0
- package/dist/ui-shell/UiShell/createMessageBus.js.map +1 -0
- package/dist/ui-shell/UiShell/createStore.js.map +1 -0
- package/dist/ui-shell/UiShell/index.js.map +1 -0
- package/dist/{labs → ui-shell}/UiShell/renderUiShell.js +4 -2
- package/dist/ui-shell/UiShell/renderUiShell.js.map +1 -0
- package/dist/{labs → ui-shell}/UiShell/useHasUiShell.js +1 -1
- package/dist/ui-shell/UiShell/useHasUiShell.js.map +1 -0
- package/dist/ui-shell/UiShell/useScrollState.js.map +1 -0
- package/dist/ui-shell/index.js +14 -0
- package/dist/ui-shell/index.js.map +1 -0
- package/dist/{web-component → ui-shell}/renderReactInWebComponent.js +7 -17
- package/dist/ui-shell/renderReactInWebComponent.js.map +1 -0
- package/dist/web-component/index.js +0 -1
- package/dist/web-component/index.js.map +1 -1
- package/dist/web-component/shadow-dom.js +12 -2
- package/dist/web-component/shadow-dom.js.map +1 -1
- package/package.json +10 -3
- package/src/Breadcrumbs.tsx +5 -1
- package/src/Buttons/MenuItem.tsx +1 -0
- package/src/Checkbox.tsx +86 -44
- package/src/DataTable/reorderDataRowsLocally.tsx +3 -3
- package/src/DataTable/useRowReordering.tsx +16 -23
- package/src/HtmlProps.ts +27 -0
- package/src/Pagination/Pagination.tsx +2 -2
- package/src/Radio.tsx +78 -39
- package/src/Typography.tsx +26 -1
- package/src/labs/DataFilters.tsx +7 -3
- package/src/labs/DataTable.tsx +41 -33
- package/src/labs/DataView/BulkActionsMenu.tsx +4 -4
- package/src/labs/DataView/CardLayoutContent.tsx +34 -28
- package/src/labs/DataView/DataCard.tsx +13 -6
- package/src/labs/DataView/DataTable.tsx +11 -4
- package/src/labs/DataView/DataView.test.tsx +1012 -87
- package/src/labs/DataView/DataView.tsx +18 -11
- package/src/labs/DataView/DetailPanel.tsx +4 -4
- package/src/labs/DataView/RowActions.tsx +4 -4
- package/src/labs/DataView/TableLayoutContent.tsx +30 -24
- package/src/labs/DataView/TableSettings.tsx +12 -6
- package/src/labs/DataView/componentTypes.ts +17 -17
- package/src/labs/DataView/dataTypes.ts +14 -8
- package/src/labs/DataView/fetchData.ts +9 -7
- package/src/labs/DataView/testSupportData.tsx +301 -0
- package/src/labs/DataView/useFilterConversion.ts +8 -8
- package/src/labs/{DateField.tsx → DatePickers/DateField.tsx} +2 -2
- package/src/labs/DatePickers/DateFieldActionBar.tsx +65 -0
- package/src/labs/DatePickers/DateFieldLocalizationProvider.tsx +46 -0
- package/src/labs/{DatePicker.tsx → DatePickers/DatePicker.tsx} +31 -136
- package/src/labs/DatePickers/DateTimeField.tsx +271 -0
- package/src/labs/DatePickers/DateTimePicker.test.tsx +66 -0
- package/src/labs/DatePickers/DateTimePicker.tsx +303 -0
- package/src/labs/{datePickerTheme.tsx → DatePickers/datePickerTheme.tsx} +2 -2
- package/src/labs/DatePickers/dateTimePickerTheme.ts +213 -0
- package/src/labs/DatePickers/index.ts +15 -0
- package/src/labs/{useOdysseyDateFields.ts → DatePickers/useOdysseyDateFields.ts} +112 -10
- package/src/labs/PageTemplate.tsx +1 -1
- package/src/labs/SideNav/SideNav.tsx +38 -39
- package/src/labs/SideNav/SideNavHeader.tsx +6 -4
- package/src/labs/SideNav/SideNavItemContent.tsx +21 -18
- package/src/labs/SideNav/SideNavToggleButton.tsx +1 -1
- package/src/labs/SideNav/types.ts +2 -2
- package/src/labs/TimeZonePicker.tsx +5 -1
- package/src/labs/index.ts +2 -3
- package/src/properties/odyssey-react-mui.properties +2 -0
- package/src/properties/ts/odyssey-react-mui.ts +1 -1
- package/src/theme/components.tsx +45 -4
- package/src/theme/mixins.ts +1 -0
- package/src/theme/mixins.types.ts +2 -0
- package/src/{labs → ui-shell}/UiShell/UiShell.tsx +3 -0
- package/src/{labs → ui-shell}/UiShell/UiShellContent.tsx +60 -31
- package/src/{labs → ui-shell}/UiShell/renderUiShell.test.tsx +16 -22
- package/src/{labs → ui-shell}/UiShell/renderUiShell.tsx +7 -4
- package/src/{labs → ui-shell}/UiShell/useHasUiShell.ts +1 -1
- package/src/ui-shell/index.ts +14 -0
- package/src/{web-component → ui-shell}/renderReactInWebComponent.test.tsx +1 -1
- package/src/{web-component → ui-shell}/renderReactInWebComponent.ts +9 -45
- package/src/web-component/index.ts +0 -1
- package/src/web-component/shadow-dom.ts +36 -3
- package/dist/labs/DateField.js.map +0 -1
- package/dist/labs/DatePicker.js.map +0 -1
- package/dist/labs/DatePicker.types.d.js.map +0 -1
- package/dist/labs/UiShell/UiShell.js.map +0 -1
- package/dist/labs/UiShell/UiShellContent.js.map +0 -1
- package/dist/labs/UiShell/bufferLatest.js.map +0 -1
- package/dist/labs/UiShell/createMessageBus.js.map +0 -1
- package/dist/labs/UiShell/createStore.js.map +0 -1
- package/dist/labs/UiShell/index.js.map +0 -1
- package/dist/labs/UiShell/renderUiShell.js.map +0 -1
- package/dist/labs/UiShell/useHasUiShell.js.map +0 -1
- package/dist/labs/UiShell/useScrollState.js.map +0 -1
- package/dist/labs/datePickerTheme.js.map +0 -1
- package/dist/labs/useDateFieldsTranslations.js.map +0 -1
- package/dist/labs/useOdysseyDateFields.js.map +0 -1
- package/dist/src/labs/DateField.d.ts.map +0 -1
- package/dist/src/labs/DatePicker.d.ts +0 -47
- package/dist/src/labs/DatePicker.d.ts.map +0 -1
- package/dist/src/labs/UiShell/UiShell.d.ts.map +0 -1
- package/dist/src/labs/UiShell/UiShellContent.d.ts.map +0 -1
- package/dist/src/labs/UiShell/bufferLatest.d.ts.map +0 -1
- package/dist/src/labs/UiShell/createMessageBus.d.ts.map +0 -1
- package/dist/src/labs/UiShell/createStore.d.ts.map +0 -1
- package/dist/src/labs/UiShell/index.d.ts.map +0 -1
- package/dist/src/labs/UiShell/renderUiShell.d.ts.map +0 -1
- package/dist/src/labs/UiShell/useHasUiShell.d.ts.map +0 -1
- package/dist/src/labs/UiShell/useScrollState.d.ts.map +0 -1
- package/dist/src/labs/datePickerTheme.d.ts.map +0 -1
- package/dist/src/labs/useDateFieldsTranslations.d.ts.map +0 -1
- package/dist/src/labs/useOdysseyDateFields.d.ts.map +0 -1
- package/dist/src/web-component/renderReactInWebComponent.d.ts.map +0 -1
- package/dist/web-component/renderReactInWebComponent.js.map +0 -1
- /package/dist/labs/{DatePicker.types.d.js → DatePickers/DatePicker.types.d.js} +0 -0
- /package/dist/labs/{useDateFieldsTranslations.js → DatePickers/useDateFieldsTranslations.js} +0 -0
- /package/dist/src/labs/{useDateFieldsTranslations.d.ts → DatePickers/useDateFieldsTranslations.d.ts} +0 -0
- /package/dist/src/{labs → ui-shell}/UiShell/bufferLatest.d.ts +0 -0
- /package/dist/src/{labs → ui-shell}/UiShell/createMessageBus.d.ts +0 -0
- /package/dist/src/{labs → ui-shell}/UiShell/createStore.d.ts +0 -0
- /package/dist/src/{labs → ui-shell}/UiShell/index.d.ts +0 -0
- /package/dist/src/{labs → ui-shell}/UiShell/useScrollState.d.ts +0 -0
- /package/dist/{labs → ui-shell}/UiShell/bufferLatest.js +0 -0
- /package/dist/{labs → ui-shell}/UiShell/createMessageBus.js +0 -0
- /package/dist/{labs → ui-shell}/UiShell/createStore.js +0 -0
- /package/dist/{labs → ui-shell}/UiShell/index.js +0 -0
- /package/dist/{labs → ui-shell}/UiShell/useScrollState.js +0 -0
- /package/src/labs/{DatePicker.types.d.ts → DatePickers/DatePicker.types.d.ts} +0 -0
- /package/src/labs/{useDateFieldsTranslations.ts → DatePickers/useDateFieldsTranslations.ts} +0 -0
- /package/src/{labs → ui-shell}/UiShell/UiShell.test.tsx +0 -0
- /package/src/{labs → ui-shell}/UiShell/bufferLatest.test.ts +0 -0
- /package/src/{labs → ui-shell}/UiShell/bufferLatest.ts +0 -0
- /package/src/{labs → ui-shell}/UiShell/createMessageBus.test.ts +0 -0
- /package/src/{labs → ui-shell}/UiShell/createMessageBus.ts +0 -0
- /package/src/{labs → ui-shell}/UiShell/createStore.test.ts +0 -0
- /package/src/{labs → ui-shell}/UiShell/createStore.ts +0 -0
- /package/src/{labs → ui-shell}/UiShell/index.ts +0 -0
- /package/src/{labs → ui-shell}/UiShell/useScrollState.ts +0 -0
package/src/labs/DataFilters.tsx
CHANGED
|
@@ -433,9 +433,9 @@ const DataFilters = ({
|
|
|
433
433
|
<>
|
|
434
434
|
<Box>
|
|
435
435
|
<Button
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
436
|
+
ariaControls={isFiltersMenuOpen ? "filters-menu" : undefined}
|
|
437
|
+
ariaExpanded={isFiltersMenuOpen ? "true" : undefined}
|
|
438
|
+
ariaHasPopup="true"
|
|
439
439
|
ariaLabel={t("filters.filters.arialabel")}
|
|
440
440
|
isDisabled={isDisabled}
|
|
441
441
|
endIcon={<FilterIcon />}
|
|
@@ -469,6 +469,7 @@ const DataFilters = ({
|
|
|
469
469
|
return (
|
|
470
470
|
<MuiMenuItem
|
|
471
471
|
key={filter.id}
|
|
472
|
+
aria-controls={isFilterPopoverOpen ? "filter-form" : undefined}
|
|
472
473
|
onClick={(event) => {
|
|
473
474
|
setIsFilterPopoverOpen(true);
|
|
474
475
|
setFilterPopoverAnchorElement(event.currentTarget);
|
|
@@ -563,6 +564,7 @@ const DataFilters = ({
|
|
|
563
564
|
{filterMenu}
|
|
564
565
|
{/* Filter popover */}
|
|
565
566
|
<MuiPopover
|
|
567
|
+
id="filter-form"
|
|
566
568
|
anchorEl={filterPopoverAnchorElement}
|
|
567
569
|
// Positions the popover flush with the edge of the parent menu
|
|
568
570
|
// and at the right shadow elevation. These magic values are simply
|
|
@@ -630,6 +632,7 @@ const DataFilters = ({
|
|
|
630
632
|
variant="primary"
|
|
631
633
|
endIcon={<CheckIcon />}
|
|
632
634
|
type="submit"
|
|
635
|
+
ariaLabel={t("filters.submit.label")}
|
|
633
636
|
/>
|
|
634
637
|
</AutocompleteOuterContainer>
|
|
635
638
|
)}
|
|
@@ -697,6 +700,7 @@ const DataFilters = ({
|
|
|
697
700
|
variant="primary"
|
|
698
701
|
endIcon={<CheckIcon />}
|
|
699
702
|
type="submit"
|
|
703
|
+
ariaLabel={t("filters.submit.label")}
|
|
700
704
|
/>
|
|
701
705
|
</Box>
|
|
702
706
|
)}
|
package/src/labs/DataTable.tsx
CHANGED
|
@@ -69,7 +69,7 @@ export type {
|
|
|
69
69
|
|
|
70
70
|
// The shape of the table columns,
|
|
71
71
|
// with props named to match their MRT_ColumnDef counterparts
|
|
72
|
-
export type DataTableColumn = {
|
|
72
|
+
export type DataTableColumn<TData extends MRT_RowData> = {
|
|
73
73
|
/**
|
|
74
74
|
* The unique ID of the column
|
|
75
75
|
*/
|
|
@@ -82,12 +82,12 @@ export type DataTableColumn = {
|
|
|
82
82
|
* Customize the way each cell in the column is
|
|
83
83
|
* displayed via a custom React component.
|
|
84
84
|
*/
|
|
85
|
-
Cell?: MRT_ColumnDef<
|
|
85
|
+
Cell?: MRT_ColumnDef<TData>["Cell"];
|
|
86
86
|
/**
|
|
87
87
|
* The UI control that will be used to filter the column.
|
|
88
88
|
* Defaults to a standard text input.
|
|
89
89
|
*/
|
|
90
|
-
filterVariant?: MRT_ColumnDef<
|
|
90
|
+
filterVariant?: MRT_ColumnDef<TData>["filterVariant"];
|
|
91
91
|
/**
|
|
92
92
|
* If the filter control has preset options (such as a select or multi-select),
|
|
93
93
|
* these are the options provided.
|
|
@@ -127,16 +127,16 @@ export type DataTableColumn = {
|
|
|
127
127
|
enableHiding?: boolean;
|
|
128
128
|
};
|
|
129
129
|
|
|
130
|
-
export type DataTableProps = {
|
|
130
|
+
export type DataTableProps<TData extends MRT_RowData> = {
|
|
131
131
|
/**
|
|
132
132
|
* The columns that make up the table
|
|
133
133
|
*/
|
|
134
|
-
columns: DataTableColumn[];
|
|
134
|
+
columns: DataTableColumn<TData>[];
|
|
135
135
|
/**
|
|
136
136
|
* The data that goes into the table, which will be displayed
|
|
137
137
|
* as the table rows
|
|
138
138
|
*/
|
|
139
|
-
data: MRT_TableOptions<
|
|
139
|
+
data: MRT_TableOptions<TData>["data"];
|
|
140
140
|
/**
|
|
141
141
|
* The total number of rows in the table. Optional, because it's sometimes impossible
|
|
142
142
|
* to calculate. Used in table pagination to know when to disable the "next"/"more" button.
|
|
@@ -145,7 +145,7 @@ export type DataTableProps = {
|
|
|
145
145
|
/**
|
|
146
146
|
* The function to get the ID of a row
|
|
147
147
|
*/
|
|
148
|
-
getRowId?: MRT_TableOptions<
|
|
148
|
+
getRowId?: MRT_TableOptions<TData>["getRowId"];
|
|
149
149
|
/**
|
|
150
150
|
* The initial density of the table. This is available even if the table density
|
|
151
151
|
* isn't changeable.
|
|
@@ -219,7 +219,7 @@ export type DataTableProps = {
|
|
|
219
219
|
search?: string;
|
|
220
220
|
filters?: DataFilter[];
|
|
221
221
|
sort?: MRT_SortingState;
|
|
222
|
-
}) => MRT_TableOptions<
|
|
222
|
+
}) => MRT_TableOptions<TData>["data"];
|
|
223
223
|
/**
|
|
224
224
|
* Callback that fires when the user reorders rows within the table. Can be used
|
|
225
225
|
* to propogate order change to the backend.
|
|
@@ -248,24 +248,24 @@ export type DataTableProps = {
|
|
|
248
248
|
* Action buttons to display in each row
|
|
249
249
|
*/
|
|
250
250
|
rowActionButtons?: (
|
|
251
|
-
row:
|
|
251
|
+
row: TData,
|
|
252
252
|
) => ReactElement<typeof Button | typeof Fragment>;
|
|
253
253
|
/**
|
|
254
254
|
* Menu items to include in the optional actions menu on each row.
|
|
255
255
|
*/
|
|
256
256
|
rowActionMenuItems?: (
|
|
257
|
-
row:
|
|
257
|
+
row: TData,
|
|
258
258
|
) => ReactElement<typeof MenuItem | typeof Fragment>;
|
|
259
259
|
};
|
|
260
260
|
|
|
261
|
-
type TableType = MRT_TableInstance<
|
|
261
|
+
type TableType<TData extends MRT_RowData> = MRT_TableInstance<TData>;
|
|
262
262
|
|
|
263
|
-
const reorderDataRowsLocally = ({
|
|
263
|
+
const reorderDataRowsLocally = <TData extends MRT_RowData>({
|
|
264
264
|
currentData,
|
|
265
265
|
rowId,
|
|
266
266
|
newIndex,
|
|
267
267
|
}: {
|
|
268
|
-
currentData: MRT_TableOptions<
|
|
268
|
+
currentData: MRT_TableOptions<TData>["data"];
|
|
269
269
|
rowId: string;
|
|
270
270
|
newIndex: number;
|
|
271
271
|
}) => {
|
|
@@ -284,7 +284,7 @@ const reorderDataRowsLocally = ({
|
|
|
284
284
|
return updatedData;
|
|
285
285
|
};
|
|
286
286
|
|
|
287
|
-
const DataTable = ({
|
|
287
|
+
const DataTable = <TData extends MRT_RowData>({
|
|
288
288
|
columns,
|
|
289
289
|
data: dataProp,
|
|
290
290
|
getRowId,
|
|
@@ -309,13 +309,12 @@ const DataTable = ({
|
|
|
309
309
|
hasRowSelection,
|
|
310
310
|
hasSearch,
|
|
311
311
|
hasSorting,
|
|
312
|
-
}: DataTableProps) => {
|
|
312
|
+
}: DataTableProps<TData>) => {
|
|
313
313
|
const odysseyDesignTokens = useOdysseyDesignTokens();
|
|
314
314
|
const { t } = useTranslation();
|
|
315
|
-
const [draggingRow, setDraggingRow] = useState<MRT_Row<
|
|
315
|
+
const [draggingRow, setDraggingRow] = useState<MRT_Row<TData> | null>();
|
|
316
316
|
const [showSkeletons, setShowSkeletons] = useState<boolean>(true);
|
|
317
|
-
const [data, setData] =
|
|
318
|
-
useState<MRT_TableOptions<MRT_RowData>["data"]>(dataProp);
|
|
317
|
+
const [data, setData] = useState<MRT_TableOptions<TData>["data"]>(dataProp);
|
|
319
318
|
const [page, setPage] = useState<number>(pageProp);
|
|
320
319
|
const [resultsPerPage, setResultsPerPage] =
|
|
321
320
|
useState<number>(resultsPerPageProp);
|
|
@@ -428,24 +427,31 @@ const DataTable = ({
|
|
|
428
427
|
const rowVirtualizerInstanceRef =
|
|
429
428
|
useRef<MRT_RowVirtualizer<HTMLDivElement, HTMLTableRowElement>>(null);
|
|
430
429
|
|
|
431
|
-
const setHoveredRow =
|
|
430
|
+
const setHoveredRow = useCallback<
|
|
431
|
+
(table: TableType<TData>, id: TData["id"]) => void
|
|
432
|
+
>((table, id) => {
|
|
432
433
|
if (id) {
|
|
433
|
-
const nextRow
|
|
434
|
+
const nextRow = table.getRow(id) as MRT_Row<TData>;
|
|
434
435
|
|
|
435
436
|
if (nextRow) {
|
|
436
437
|
table.setHoveredRow(nextRow);
|
|
437
438
|
}
|
|
438
439
|
}
|
|
439
|
-
};
|
|
440
|
+
}, []);
|
|
440
441
|
|
|
441
|
-
const resetDraggingAndHoveredRow =
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
442
|
+
const resetDraggingAndHoveredRow = useCallback<
|
|
443
|
+
(table: TableType<TData>) => void
|
|
444
|
+
>(
|
|
445
|
+
(table) => {
|
|
446
|
+
setDraggingRow(null);
|
|
447
|
+
table.setHoveredRow(null);
|
|
448
|
+
},
|
|
449
|
+
[setDraggingRow],
|
|
450
|
+
);
|
|
445
451
|
|
|
446
452
|
type HandleDragHandleKeyDownArgs = {
|
|
447
|
-
table: TableType
|
|
448
|
-
row: MRT_Row<
|
|
453
|
+
table: TableType<TData>;
|
|
454
|
+
row: MRT_Row<TData>;
|
|
449
455
|
event: KeyboardEvent<HTMLButtonElement>;
|
|
450
456
|
};
|
|
451
457
|
|
|
@@ -515,15 +521,17 @@ const DataTable = ({
|
|
|
515
521
|
[
|
|
516
522
|
data,
|
|
517
523
|
draggingRow,
|
|
518
|
-
odysseyDesignTokens,
|
|
524
|
+
odysseyDesignTokens.TransitionDurationMainAsNumber,
|
|
519
525
|
page,
|
|
526
|
+
resetDraggingAndHoveredRow,
|
|
520
527
|
resultsPerPage,
|
|
528
|
+
setHoveredRow,
|
|
521
529
|
updateRowOrder,
|
|
522
530
|
],
|
|
523
531
|
);
|
|
524
532
|
|
|
525
533
|
const handleDragHandleOnDragEnd = useCallback(
|
|
526
|
-
(table: TableType) => {
|
|
534
|
+
(table: TableType<TData>) => {
|
|
527
535
|
const cols = table.getAllColumns();
|
|
528
536
|
cols[0].toggleVisibility();
|
|
529
537
|
|
|
@@ -531,7 +539,7 @@ const DataTable = ({
|
|
|
531
539
|
if (draggingRow) {
|
|
532
540
|
updateRowOrder({
|
|
533
541
|
rowId: draggingRow.id,
|
|
534
|
-
newIndex: (hoveredRow as
|
|
542
|
+
newIndex: (hoveredRow as TData).index,
|
|
535
543
|
});
|
|
536
544
|
}
|
|
537
545
|
|
|
@@ -541,7 +549,7 @@ const DataTable = ({
|
|
|
541
549
|
);
|
|
542
550
|
|
|
543
551
|
const handleDragHandleOnDragCapture = useCallback(
|
|
544
|
-
(table: TableType) => {
|
|
552
|
+
(table: TableType<TData>) => {
|
|
545
553
|
if (!draggingRow && table.getState().draggingRow?.id) {
|
|
546
554
|
setDraggingRow(table.getState().draggingRow);
|
|
547
555
|
}
|
|
@@ -683,7 +691,7 @@ const DataTable = ({
|
|
|
683
691
|
|
|
684
692
|
return (
|
|
685
693
|
<Box sx={{ display: "flex" }}>
|
|
686
|
-
{rowActionButtons?.(row)}
|
|
694
|
+
{rowActionButtons?.(row.original)}
|
|
687
695
|
{(rowActionMenuItems || hasRowReordering) && (
|
|
688
696
|
<MenuButton
|
|
689
697
|
endIcon={<MoreIcon />}
|
|
@@ -694,7 +702,7 @@ const DataTable = ({
|
|
|
694
702
|
>
|
|
695
703
|
{rowActionMenuItems && (
|
|
696
704
|
<>
|
|
697
|
-
{rowActionMenuItems(row)}
|
|
705
|
+
{rowActionMenuItems(row.original)}
|
|
698
706
|
<hr />
|
|
699
707
|
</>
|
|
700
708
|
)}
|
|
@@ -24,9 +24,9 @@ import {
|
|
|
24
24
|
useOdysseyDesignTokens,
|
|
25
25
|
} from "../../OdysseyDesignTokensContext";
|
|
26
26
|
|
|
27
|
-
export type BulkActionsMenuProps = {
|
|
27
|
+
export type BulkActionsMenuProps<TData extends MRT_RowData> = {
|
|
28
28
|
data: MRT_RowData[];
|
|
29
|
-
menuItems: UniversalProps["bulkActionMenuItems"];
|
|
29
|
+
menuItems: UniversalProps<TData>["bulkActionMenuItems"];
|
|
30
30
|
rowSelection: MRT_RowSelectionState;
|
|
31
31
|
setRowSelection: Dispatch<SetStateAction<MRT_RowSelectionState>>;
|
|
32
32
|
};
|
|
@@ -40,12 +40,12 @@ const BulkActionsContainer = styled("div", {
|
|
|
40
40
|
gap: odysseyDesignTokens.Spacing2,
|
|
41
41
|
}));
|
|
42
42
|
|
|
43
|
-
const BulkActionsMenu = ({
|
|
43
|
+
const BulkActionsMenu = <TData extends MRT_RowData>({
|
|
44
44
|
data,
|
|
45
45
|
menuItems,
|
|
46
46
|
rowSelection,
|
|
47
47
|
setRowSelection,
|
|
48
|
-
}: BulkActionsMenuProps) => {
|
|
48
|
+
}: BulkActionsMenuProps<TData>) => {
|
|
49
49
|
const odysseyDesignTokens = useOdysseyDesignTokens();
|
|
50
50
|
const { t } = useTranslation();
|
|
51
51
|
|
|
@@ -30,19 +30,19 @@ import { RowActions } from "./RowActions";
|
|
|
30
30
|
import { DataCard } from "./DataCard";
|
|
31
31
|
import { CardLayout, CardLayoutProps, UniversalProps } from "./componentTypes";
|
|
32
32
|
|
|
33
|
-
export type CardLayoutContentProps = {
|
|
33
|
+
export type CardLayoutContentProps<TData extends MRT_RowData> = {
|
|
34
34
|
currentLayout: CardLayout;
|
|
35
|
-
data:
|
|
36
|
-
draggingRow?: MRT_Row<
|
|
35
|
+
data: TData[];
|
|
36
|
+
draggingRow?: MRT_Row<TData> | null;
|
|
37
37
|
emptyState: ReactNode;
|
|
38
|
-
getRowId: UniversalProps["getRowId"];
|
|
39
|
-
hasRowReordering: UniversalProps["hasRowReordering"];
|
|
40
|
-
hasRowSelection: UniversalProps["hasRowSelection"];
|
|
38
|
+
getRowId: UniversalProps<TData>["getRowId"];
|
|
39
|
+
hasRowReordering: UniversalProps<TData>["hasRowReordering"];
|
|
40
|
+
hasRowSelection: UniversalProps<TData>["hasRowSelection"];
|
|
41
41
|
isEmpty?: boolean;
|
|
42
42
|
isLoading: boolean;
|
|
43
43
|
isNoResults?: boolean;
|
|
44
44
|
isRowReorderingDisabled?: boolean;
|
|
45
|
-
onReorderRows: UniversalProps["onReorderRows"];
|
|
45
|
+
onReorderRows: UniversalProps<TData>["onReorderRows"];
|
|
46
46
|
pagination: { pageIndex: number; pageSize: number };
|
|
47
47
|
rowReorderingUtilities: {
|
|
48
48
|
dragHandleStyles: CSSObject;
|
|
@@ -64,15 +64,13 @@ export type CardLayoutContentProps = {
|
|
|
64
64
|
row,
|
|
65
65
|
event,
|
|
66
66
|
}: {
|
|
67
|
-
table: MRT_TableInstance<
|
|
68
|
-
row: MRT_Row<
|
|
67
|
+
table: MRT_TableInstance<TData>;
|
|
68
|
+
row: MRT_Row<TData>;
|
|
69
69
|
event: React.KeyboardEvent<HTMLButtonElement>;
|
|
70
70
|
}) => void;
|
|
71
|
-
handleDragHandleOnDragCapture: (
|
|
72
|
-
|
|
73
|
-
) => void;
|
|
74
|
-
handleDragHandleOnDragEnd: (table: MRT_TableInstance<MRT_RowData>) => void;
|
|
75
|
-
resetDraggingAndHoveredRow: (table: MRT_TableInstance<MRT_RowData>) => void;
|
|
71
|
+
handleDragHandleOnDragCapture: (table: MRT_TableInstance<TData>) => void;
|
|
72
|
+
handleDragHandleOnDragEnd: (table: MRT_TableInstance<TData>) => void;
|
|
73
|
+
resetDraggingAndHoveredRow: (table: MRT_TableInstance<TData>) => void;
|
|
76
74
|
updateRowOrder: ({
|
|
77
75
|
rowId,
|
|
78
76
|
newRowIndex,
|
|
@@ -83,8 +81,13 @@ export type CardLayoutContentProps = {
|
|
|
83
81
|
};
|
|
84
82
|
rowSelection: MRT_RowSelectionState;
|
|
85
83
|
setRowSelection: Dispatch<SetStateAction<MRT_RowSelectionState>>;
|
|
86
|
-
cardLayoutOptions: CardLayoutProps
|
|
87
|
-
totalRows: UniversalProps["totalRows"];
|
|
84
|
+
cardLayoutOptions: CardLayoutProps<TData>;
|
|
85
|
+
totalRows: UniversalProps<TData>["totalRows"];
|
|
86
|
+
};
|
|
87
|
+
type CardLayoutContentComponent = (<TData extends MRT_RowData>(
|
|
88
|
+
props: CardLayoutContentProps<TData>,
|
|
89
|
+
) => JSX.Element) & {
|
|
90
|
+
displayName?: string;
|
|
88
91
|
};
|
|
89
92
|
|
|
90
93
|
const StackContainer = styled("div", {
|
|
@@ -134,7 +137,7 @@ const CheckboxContainer = styled("div", {
|
|
|
134
137
|
marginBlockStart: `-${odysseyDesignTokens.Spacing1}`,
|
|
135
138
|
}));
|
|
136
139
|
|
|
137
|
-
const CardLayoutContent = ({
|
|
140
|
+
const CardLayoutContent = <TData extends MRT_RowData>({
|
|
138
141
|
currentLayout,
|
|
139
142
|
data,
|
|
140
143
|
emptyState,
|
|
@@ -151,7 +154,7 @@ const CardLayoutContent = ({
|
|
|
151
154
|
setRowSelection,
|
|
152
155
|
cardLayoutOptions,
|
|
153
156
|
totalRows,
|
|
154
|
-
}: CardLayoutContentProps) => {
|
|
157
|
+
}: CardLayoutContentProps<TData>) => {
|
|
155
158
|
const odysseyDesignTokens = useOdysseyDesignTokens();
|
|
156
159
|
|
|
157
160
|
const handleRowSelectionChange = useCallback(
|
|
@@ -170,11 +173,7 @@ const CardLayoutContent = ({
|
|
|
170
173
|
const { updateRowOrder } = rowReorderingUtilities;
|
|
171
174
|
|
|
172
175
|
return (
|
|
173
|
-
<
|
|
174
|
-
odysseyDesignTokens={odysseyDesignTokens}
|
|
175
|
-
currentLayout={currentLayout}
|
|
176
|
-
maxGridColumns={cardLayoutOptions.maxGridColumns ?? 3}
|
|
177
|
-
>
|
|
176
|
+
<Box>
|
|
178
177
|
{isLoading ? (
|
|
179
178
|
<LoadingContainer odysseyDesignTokens={odysseyDesignTokens}>
|
|
180
179
|
<CircularProgress />
|
|
@@ -184,8 +183,13 @@ const CardLayoutContent = ({
|
|
|
184
183
|
{!data || data.length === 0 || isEmpty || isNoResults ? (
|
|
185
184
|
<Box>{emptyState}</Box>
|
|
186
185
|
) : (
|
|
187
|
-
|
|
188
|
-
{
|
|
186
|
+
<StackContainer
|
|
187
|
+
odysseyDesignTokens={odysseyDesignTokens}
|
|
188
|
+
currentLayout={currentLayout}
|
|
189
|
+
maxGridColumns={cardLayoutOptions.maxGridColumns ?? 3}
|
|
190
|
+
role="list"
|
|
191
|
+
>
|
|
192
|
+
{data.map((row: TData, index: number) => {
|
|
189
193
|
const {
|
|
190
194
|
overline,
|
|
191
195
|
title,
|
|
@@ -243,15 +247,17 @@ const CardLayoutContent = ({
|
|
|
243
247
|
/>
|
|
244
248
|
);
|
|
245
249
|
})}
|
|
246
|
-
|
|
250
|
+
</StackContainer>
|
|
247
251
|
)}
|
|
248
252
|
</>
|
|
249
253
|
)}
|
|
250
|
-
</
|
|
254
|
+
</Box>
|
|
251
255
|
);
|
|
252
256
|
};
|
|
253
257
|
|
|
254
|
-
const MemoizedCardLayoutContent = memo(
|
|
258
|
+
const MemoizedCardLayoutContent = memo(
|
|
259
|
+
CardLayoutContent,
|
|
260
|
+
) as CardLayoutContentComponent;
|
|
255
261
|
MemoizedCardLayoutContent.displayName = "CardLayoutContent";
|
|
256
262
|
|
|
257
263
|
export { MemoizedCardLayoutContent as CardLayoutContent };
|
|
@@ -53,13 +53,13 @@ export const CARD_IMAGE_SIZE_COMPACT = "48px";
|
|
|
53
53
|
|
|
54
54
|
export const cardVariantValues = ["tile", "stack", "compact"] as const;
|
|
55
55
|
|
|
56
|
-
export type DataCardProps = {
|
|
56
|
+
export type DataCardProps<TData extends MRT_RowData> = {
|
|
57
57
|
children?: ReactNode;
|
|
58
58
|
description?: string;
|
|
59
59
|
image?: ReactElement;
|
|
60
60
|
overline?: string;
|
|
61
|
-
renderDetailPanel?: CardLayoutProps["renderDetailPanel"];
|
|
62
|
-
row:
|
|
61
|
+
renderDetailPanel?: CardLayoutProps<TData>["renderDetailPanel"];
|
|
62
|
+
row: TData;
|
|
63
63
|
title?: string;
|
|
64
64
|
variant?: (typeof cardVariantValues)[number];
|
|
65
65
|
} & (
|
|
@@ -77,6 +77,12 @@ export type DataCardProps = {
|
|
|
77
77
|
}
|
|
78
78
|
);
|
|
79
79
|
|
|
80
|
+
type DataCardComponent = (<TData extends MRT_RowData>(
|
|
81
|
+
props: DataCardProps<TData>,
|
|
82
|
+
) => JSX.Element) & {
|
|
83
|
+
displayName?: string;
|
|
84
|
+
};
|
|
85
|
+
|
|
80
86
|
const AccessoryContainer = styled("div", {
|
|
81
87
|
shouldForwardProp: (prop) =>
|
|
82
88
|
prop !== "odysseyDesignTokens" && prop !== "variant",
|
|
@@ -170,7 +176,7 @@ const AccessoryPlaceholder = styled(MuiIconButton)(() => ({
|
|
|
170
176
|
}));
|
|
171
177
|
const buttonProviderValue = { isFullWidth: true };
|
|
172
178
|
|
|
173
|
-
const DataCard = ({
|
|
179
|
+
const DataCard: DataCardComponent = <TData extends MRT_RowData>({
|
|
174
180
|
Accessory: AccessoryProp,
|
|
175
181
|
button,
|
|
176
182
|
children,
|
|
@@ -183,7 +189,7 @@ const DataCard = ({
|
|
|
183
189
|
row,
|
|
184
190
|
title,
|
|
185
191
|
variant = "tile",
|
|
186
|
-
}: DataCardProps) => {
|
|
192
|
+
}: DataCardProps<TData>) => {
|
|
187
193
|
const odysseyDesignTokens = useOdysseyDesignTokens();
|
|
188
194
|
const { t } = useTranslation();
|
|
189
195
|
|
|
@@ -315,6 +321,7 @@ const DataCard = ({
|
|
|
315
321
|
return (
|
|
316
322
|
<MuiCard
|
|
317
323
|
className={`${onClick ? "isClickable" : ""} ${Accessory ? "hasAccessory" : ""} ods-card-${variant}`}
|
|
324
|
+
role="listitem"
|
|
318
325
|
>
|
|
319
326
|
{onClick ? (
|
|
320
327
|
<MuiCardActionArea onClick={onClick}>{cardContent}</MuiCardActionArea>
|
|
@@ -343,7 +350,7 @@ const DataCard = ({
|
|
|
343
350
|
);
|
|
344
351
|
};
|
|
345
352
|
|
|
346
|
-
const MemoizedDataCard = memo(DataCard);
|
|
353
|
+
const MemoizedDataCard = memo(DataCard) as DataCardComponent;
|
|
347
354
|
MemoizedDataCard.displayName = "DataCard";
|
|
348
355
|
|
|
349
356
|
export { MemoizedDataCard as DataCard };
|
|
@@ -14,10 +14,17 @@ import { memo, useMemo } from "react";
|
|
|
14
14
|
|
|
15
15
|
import { DataView } from "./DataView";
|
|
16
16
|
import { TableLayoutProps, UniversalProps } from "./componentTypes";
|
|
17
|
+
import { MRT_RowData } from "material-react-table";
|
|
17
18
|
|
|
18
|
-
export type DataTableProps = UniversalProps &
|
|
19
|
+
export type DataTableProps<TData extends MRT_RowData> = UniversalProps<TData> &
|
|
20
|
+
TableLayoutProps<TData>;
|
|
21
|
+
type DataTableComponent = (<TData extends MRT_RowData>(
|
|
22
|
+
props: DataTableProps<TData>,
|
|
23
|
+
) => JSX.Element) & {
|
|
24
|
+
displayName?: string;
|
|
25
|
+
};
|
|
19
26
|
|
|
20
|
-
const DataTable = ({
|
|
27
|
+
const DataTable = <TData extends MRT_RowData>({
|
|
21
28
|
additionalActionButton,
|
|
22
29
|
additionalActionMenuItems,
|
|
23
30
|
bulkActionMenuItems,
|
|
@@ -54,7 +61,7 @@ const DataTable = ({
|
|
|
54
61
|
rowActionMenuItems,
|
|
55
62
|
searchDelayTime,
|
|
56
63
|
totalRows,
|
|
57
|
-
}: DataTableProps) => {
|
|
64
|
+
}: DataTableProps<TData>) => {
|
|
58
65
|
const tableLayoutOptions = useMemo(
|
|
59
66
|
() => ({
|
|
60
67
|
columns,
|
|
@@ -115,7 +122,7 @@ const DataTable = ({
|
|
|
115
122
|
);
|
|
116
123
|
};
|
|
117
124
|
|
|
118
|
-
const MemoizedDataTable = memo(DataTable);
|
|
125
|
+
const MemoizedDataTable = memo(DataTable) as DataTableComponent;
|
|
119
126
|
MemoizedDataTable.displayName = "DataTable";
|
|
120
127
|
|
|
121
128
|
export { MemoizedDataTable as DataTable };
|