@okta/odyssey-react-mui 1.42.0 → 1.43.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/DataTable/DataTable.cjs +67 -42
- package/dist/cjs/DataTable/DataTable.cjs.map +1 -1
- package/dist/cjs/Drawer.cjs +16 -14
- package/dist/cjs/Drawer.cjs.map +1 -1
- package/dist/cjs/PasswordField.cjs +1 -1
- package/dist/cjs/PasswordField.cjs.map +1 -1
- package/dist/cjs/Select.cjs +34 -43
- package/dist/cjs/Select.cjs.map +1 -1
- package/dist/cjs/Status.cjs +2 -0
- package/dist/cjs/Status.cjs.map +1 -1
- package/dist/cjs/Typography.cjs +32 -8
- package/dist/cjs/Typography.cjs.map +1 -1
- package/dist/cjs/labs/DataFilters.cjs +1 -0
- package/dist/cjs/labs/DataFilters.cjs.map +1 -1
- package/dist/cjs/labs/DataView/BulkActionsMenu.cjs.map +1 -1
- package/dist/cjs/labs/DataView/CardLayoutContent.cjs.map +1 -1
- package/dist/cjs/labs/DataView/DataView.cjs +10 -1
- package/dist/cjs/labs/DataView/DataView.cjs.map +1 -1
- package/dist/cjs/labs/DataView/RowActions.cjs +3 -4
- package/dist/cjs/labs/DataView/RowActions.cjs.map +1 -1
- package/dist/cjs/labs/DataView/TableLayoutContent.cjs +2 -4
- package/dist/cjs/labs/DataView/TableLayoutContent.cjs.map +1 -1
- package/dist/cjs/labs/DataView/useFilterConversion.cjs.map +1 -1
- package/dist/cjs/labs/OdysseyPickers/ComposablePicker.cjs.map +1 -1
- package/dist/cjs/labs/OdysseyPickers/Picker.cjs +17 -11
- package/dist/cjs/labs/OdysseyPickers/Picker.cjs.map +1 -1
- package/dist/cjs/labs/OdysseyPickers/PickerWithOptionAdornment.cjs +2 -1
- package/dist/cjs/labs/OdysseyPickers/PickerWithOptionAdornment.cjs.map +1 -1
- package/dist/cjs/labs/OdysseyPickers/SearchDropdown.cjs +2 -3
- package/dist/cjs/labs/OdysseyPickers/SearchDropdown.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_cs.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_cs.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_da.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_da.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_de.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_de.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_el.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_el.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_es.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_es.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_eu.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_eu.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_fi.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_fi.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_fr.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_fr.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ht.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ht.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_hu.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_hu.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_id.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_id.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_it.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_it.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ja.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ja.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ko.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ko.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ms.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ms.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_nb.cjs +0 -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 +0 -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 +4 -2
- 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 +129 -126
- package/dist/cjs/properties/ts/odyssey-react-mui_ok_SK.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_pl.cjs +0 -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 +0 -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 +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ro.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ru.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_ru.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_sv.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_sv.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_th.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_th.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_tr.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_tr.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_uk.cjs +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_uk.cjs.map +1 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_vi.cjs +0 -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 +0 -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 +0 -1
- package/dist/cjs/properties/ts/odyssey-react-mui_zh_TW.cjs.map +1 -1
- package/dist/cjs/theme/components.cjs +7 -1
- package/dist/cjs/theme/components.cjs.map +1 -1
- package/dist/cjs/ui-shell/SideNav/SideNav.cjs +1 -0
- package/dist/cjs/ui-shell/SideNav/SideNav.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/esm/DataTable/DataTable.js +67 -40
- package/dist/esm/DataTable/DataTable.js.map +1 -1
- package/dist/esm/Drawer.js +16 -14
- package/dist/esm/Drawer.js.map +1 -1
- package/dist/esm/PasswordField.js +1 -1
- package/dist/esm/PasswordField.js.map +1 -1
- package/dist/esm/Select.js +34 -43
- package/dist/esm/Select.js.map +1 -1
- package/dist/esm/Status.js +2 -0
- package/dist/esm/Status.js.map +1 -1
- package/dist/esm/Typography.js +32 -8
- package/dist/esm/Typography.js.map +1 -1
- package/dist/esm/labs/DataFilters.js +1 -0
- package/dist/esm/labs/DataFilters.js.map +1 -1
- package/dist/esm/labs/DataView/BulkActionsMenu.js.map +1 -1
- package/dist/esm/labs/DataView/CardLayoutContent.js.map +1 -1
- package/dist/esm/labs/DataView/DataView.js +10 -1
- package/dist/esm/labs/DataView/DataView.js.map +1 -1
- package/dist/esm/labs/DataView/RowActions.js +2 -1
- package/dist/esm/labs/DataView/RowActions.js.map +1 -1
- package/dist/esm/labs/DataView/TableLayoutContent.js +2 -4
- package/dist/esm/labs/DataView/TableLayoutContent.js.map +1 -1
- package/dist/esm/labs/DataView/useFilterConversion.js.map +1 -1
- package/dist/esm/labs/OdysseyPickers/ComposablePicker.js.map +1 -1
- package/dist/esm/labs/OdysseyPickers/Picker.js +19 -13
- package/dist/esm/labs/OdysseyPickers/Picker.js.map +1 -1
- package/dist/esm/labs/OdysseyPickers/PickerWithOptionAdornment.js +2 -1
- package/dist/esm/labs/OdysseyPickers/PickerWithOptionAdornment.js.map +1 -1
- package/dist/esm/labs/OdysseyPickers/SearchDropdown.js +2 -3
- package/dist/esm/labs/OdysseyPickers/SearchDropdown.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_cs.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_cs.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_da.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_da.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_de.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_de.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_el.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_el.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_es.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_es.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_eu.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_eu.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_fi.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_fi.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_fr.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_fr.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ht.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ht.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_hu.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_hu.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_id.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_id.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_it.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_it.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ja.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ja.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ko.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ko.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ms.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ms.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_nb.js +0 -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 +0 -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 +4 -2
- 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 +129 -126
- package/dist/esm/properties/ts/odyssey-react-mui_ok_SK.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_pl.js +0 -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 +0 -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 +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ro.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ru.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_ru.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_sv.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_sv.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_th.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_th.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_tr.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_tr.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_uk.js +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_uk.js.map +1 -1
- package/dist/esm/properties/ts/odyssey-react-mui_vi.js +0 -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 +0 -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 +0 -1
- package/dist/esm/properties/ts/odyssey-react-mui_zh_TW.js.map +1 -1
- package/dist/esm/theme/components.js +7 -1
- package/dist/esm/theme/components.js.map +1 -1
- package/dist/esm/ui-shell/SideNav/SideNav.js +1 -0
- package/dist/esm/ui-shell/SideNav/SideNav.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/index.cjs +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.scss +1 -1
- package/dist/tsconfig.production.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/DataTable/DataTable.d.ts +2 -2
- package/dist/types/DataTable/DataTable.d.ts.map +1 -1
- package/dist/types/Drawer.d.ts +24 -6
- package/dist/types/Drawer.d.ts.map +1 -1
- package/dist/types/OdysseyTranslationProvider.d.ts +1 -1
- package/dist/types/OdysseyTranslationProvider.d.ts.map +1 -1
- package/dist/types/PasswordField.d.ts.map +1 -1
- package/dist/types/Select.d.ts.map +1 -1
- package/dist/types/Status.d.ts +2 -2
- package/dist/types/Status.d.ts.map +1 -1
- package/dist/types/Typography.d.ts +16 -12
- package/dist/types/Typography.d.ts.map +1 -1
- package/dist/types/i18n.d.ts +6 -29
- package/dist/types/i18n.d.ts.map +1 -1
- package/dist/types/labs/DataFilters.d.ts.map +1 -1
- package/dist/types/labs/DataView/BulkActionsMenu.d.ts +1 -1
- package/dist/types/labs/DataView/BulkActionsMenu.d.ts.map +1 -1
- package/dist/types/labs/DataView/CardLayoutContent.d.ts.map +1 -1
- package/dist/types/labs/DataView/DataView.d.ts.map +1 -1
- package/dist/types/labs/DataView/RowActions.d.ts +5 -4
- package/dist/types/labs/DataView/RowActions.d.ts.map +1 -1
- package/dist/types/labs/DataView/TableLayoutContent.d.ts +1 -1
- package/dist/types/labs/DataView/TableLayoutContent.d.ts.map +1 -1
- package/dist/types/labs/OdysseyPickers/ComposablePicker.d.ts +4 -1
- package/dist/types/labs/OdysseyPickers/ComposablePicker.d.ts.map +1 -1
- package/dist/types/labs/OdysseyPickers/Picker.d.ts +7 -7
- package/dist/types/labs/OdysseyPickers/Picker.d.ts.map +1 -1
- package/dist/types/labs/OdysseyPickers/PickerWithOptionAdornment.d.ts.map +1 -1
- package/dist/types/labs/OdysseyPickers/SearchDropdown.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui.d.ts +0 -1
- package/dist/types/properties/ts/odyssey-react-mui.d.ts.map +1 -1
- package/dist/types/properties/ts/odyssey-react-mui_cs.d.ts +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +3 -1
- 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 +3 -0
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- package/dist/types/properties/ts/odyssey-react-mui_zh_TW.d.ts.map +1 -1
- package/dist/types/theme/components.d.ts.map +1 -1
- package/dist/types/ui-shell/SideNav/SideNav.d.ts.map +1 -1
- package/dist/types/web-component/odysseyWebComponentVersion.generated.d.ts +1 -1
- package/package.json +9 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataFilters.js","names":["memo","useCallback","useEffect","useMemo","useRef","useState","Trans","useTranslation","styled","Autocomplete","Box","Button","CheckboxGroup","Checkbox","CheckIcon","ChevronRightIcon","CloseCircleFilledIcon","FilterIcon","useOdysseyDesignTokens","RadioGroup","Radio","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","anchorOrigin","horizontal","vertical","transformOrigin","anchorEl","onClose","open","PaperProps","ref","latestFilterValue","f","_MenuItem","selected","className","sx","justifyContent","minWidth","paddingBlock","paddingInlineStart","marginRight","_Typography","fontWeight","marginBlockEnd","component","i18nKey","values","toLowerCase","count","autoCompleteValue","maxWidth","_Popover","elevation","marginLeft","marginTop","ev","menuRect","getBoundingClientRect","clickInsideMenu","clientX","left","right","clientY","top","bottom","padding","onSubmit","preventDefault","noValidate","render","hasMultipleChoices","isCustomValueAllowed","onChange","_","type","hasInitialFocus","endAdornment","_IconButton","size","isRequired","checkFilterInputValuesAsArray","isOptionValueInInputValues","some","isChecked","style","placeholder","onClear","target","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 {\n MutableRefObject,\n ReactNode,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { Trans, useTranslation } from \"react-i18next\";\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 styled from \"@emotion/styled\";\n\nimport { Autocomplete } from \"../Autocomplete.js\";\nimport { Box } from \"../Box.js\";\nimport { Button } from \"../Buttons/index.js\";\nimport { CheckboxGroup } from \"../CheckboxGroup.js\";\nimport { Checkbox } from \"../Checkbox.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 { RadioGroup } from \"../RadioGroup.js\";\nimport { Radio } from \"../Radio.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 * The type of filter, which determines which filtering control\n * is shown.\n */\n variant?: MRT_ColumnDef<MRT_RowData>[\"filterVariant\"];\n /**\n * The current value of the filter. Typically a string, but\n * filters that allow for multiple selections (such as multi-select)\n * can accept an array.\n */\n value?: DataFilterValue;\n /**\n * If the filter control has preset options (such as a select or multi-select),\n * these are the options provided.\n */\n options?: Option[];\n /**\n * A callback which renders a custom filter control\n */\n render?: (updateFilters: UpdateFiltersOrValues) => ReactNode;\n};\n\n// This is the type of the DataFilters component itself\nexport type DataFiltersProps = {\n /**\n * The callback that's fired when the search input changes\n * (either on change or on submit, based on the value of `hasSearchSubmitButton`).\n * If this is undefined, the search input will not be shown.\n */\n onChangeSearch?: (value: string) => void;\n /**\n * The callback that's fired when filter values change.\n */\n onChangeFilters?: (filters: Array<DataFilter>) => void;\n /**\n * If true, a Search button will be provided alongside the search input\n * and `onChangeSearch` will fire when the button is clicked, rather than\n * whenever the input value changes.\n */\n hasSearchSubmitButton?: boolean;\n /**\n * The debounce time, in milliseconds, for the search input firing\n * `onChangeSearch` when changed. If `hasSearchSubmitButton` is true,\n * this doesn't do anything.\n */\n searchDelayTime?: number;\n /**\n * The starting value of the search input\n */\n defaultSearchTerm?: string;\n /**\n * A slot for optional additional actions, like buttons, to be displayed\n * on the opposite side of the top row from the search and filter controls.\n */\n additionalActions?: ReactNode;\n /**\n * The filters available in the filter menu. If undefined,\n * the filter menu won't be shown.\n */\n filters?: Array<DataFilter>;\n /**\n * If true, the filter and search will be disabled\n */\n isDisabled?: boolean;\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 isDisabled={isDisabled}\n endIcon={<FilterIcon />}\n onClick={(event) => {\n setFiltersMenuAnchorElement(event.currentTarget);\n setIsFiltersMenuOpen(true);\n }}\n variant=\"secondary\"\n />\n </Box>\n\n <MuiMenu\n anchorOrigin={{ horizontal: \"left\", vertical: \"bottom\" }}\n transformOrigin={{ horizontal: \"left\", vertical: \"top\" }}\n id=\"filters-menu\"\n anchorEl={filtersMenuAnchorElement}\n onClose={() => setIsFiltersMenuOpen(false)}\n open={isFiltersMenuOpen}\n PaperProps={{\n ref: menuRef as MutableRefObject<HTMLDivElement>,\n }}\n >\n {filtersProp.map((filter) => {\n // Unintuitively, we can't just use filter.value to grab the filter value.\n // `filter` is the initial set of filters provided to the 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 key={filter.id}\n aria-controls={isFilterPopoverOpen ? \"filter-form\" : undefined}\n onClick={(event) => {\n setIsFilterPopoverOpen(true);\n setFilterPopoverAnchorElement(event.currentTarget);\n setFilterPopoverCurrentFilter(filter);\n }}\n selected={\n filterPopoverCurrentFilter === filter &&\n isFilterPopoverOpen === true\n }\n className={\n filterPopoverCurrentFilter === filter &&\n isFilterPopoverOpen === true\n ? \"isVisiblySelected\"\n : undefined\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 id=\"filter-form\"\n anchorEl={filterPopoverAnchorElement}\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 sx={{ marginLeft: 2, marginTop: -1 }}\n open={isFilterPopoverOpen}\n anchorOrigin={{ vertical: \"top\", horizontal: \"right\" }}\n onClose={(ev: MouseEvent) => {\n if (menuRef.current) {\n const menuRect = menuRef.current.getBoundingClientRect();\n const clickInsideMenu =\n ev.clientX >= menuRect.left &&\n ev.clientX <= menuRect.right &&\n ev.clientY >= menuRect.top &&\n ev.clientY <= menuRect.bottom;\n\n if (!clickInsideMenu) {\n setIsFiltersMenuOpen(false);\n }\n }\n handleFilterSubmit();\n setIsFilterPopoverOpen(false);\n }}\n >\n <Box sx={{ padding: 4, minWidth: 320 }}>\n <form\n onSubmit={(ev) => {\n ev.preventDefault();\n handleFilterSubmit();\n setIsFilterPopoverOpen(false);\n setIsFiltersMenuOpen(false);\n }}\n noValidate\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 value={autoCompleteValue}\n onChange={(_, value) => {\n handleAutocompleteFilterChange(\n filterPopoverCurrentFilter.id,\n value as Option[],\n );\n }}\n options={autocompleteOptions}\n />\n </StyledAutocompleteInnerContainer>\n <Button\n variant=\"primary\"\n endIcon={<CheckIcon />}\n type=\"submit\"\n ariaLabel={t(\"filters.submit.label\")}\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 hasInitialFocus\n label={filterPopoverCurrentFilter.label}\n type={\n filterPopoverCurrentFilter.variant === \"range\"\n ? \"number\"\n : \"text\"\n }\n value={\n (inputValues[\n filterPopoverCurrentFilter.id\n ] as string) ?? \"\"\n }\n onChange={(ev) =>\n updateInputValue({\n filterId: filterPopoverCurrentFilter.id,\n value: ev.currentTarget.value,\n })\n }\n endAdornment={\n inputValues[\n filterPopoverCurrentFilter.id\n ] && (\n <MuiIconButton\n size=\"small\"\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 >\n <CloseCircleFilledIcon />\n </MuiIconButton>\n )\n }\n />\n </Box>\n <Button\n variant=\"primary\"\n endIcon={<CheckIcon />}\n type=\"submit\"\n ariaLabel={t(\"filters.submit.label\")}\n />\n </Box>\n )}\n\n {/* Checkbox */}\n {filterPopoverCurrentFilter?.variant ===\n \"multi-select\" &&\n filterPopoverCurrentFilter?.options && (\n <CheckboxGroup\n label={filterPopoverCurrentFilter.label}\n isRequired\n >\n {filterPopoverCurrentFilter.options.map(\n (option: { label: string; value: string }) => {\n 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 key={option.value}\n label={option.label}\n value={option.value}\n isChecked={isOptionValueInInputValues}\n onChange={(_, checked) => {\n handleCheckboxFilterAndInputValueChange(\n filterPopoverCurrentFilter.id,\n option,\n checked,\n );\n }}\n />\n );\n },\n )}\n </CheckboxGroup>\n )}\n\n {/* Radio */}\n {filterPopoverCurrentFilter?.variant === \"select\" &&\n filterPopoverCurrentFilter?.options && (\n <RadioGroup\n label={filterPopoverCurrentFilter.label}\n onChange={(_, value) => {\n updateFilterAndInputValues({\n filterId: filterPopoverCurrentFilter.id,\n value,\n });\n }}\n >\n <Radio\n label={t(\"filters.filter.any\")}\n value={\"\"}\n isChecked={\n !inputValues[filterPopoverCurrentFilter.id]\n }\n />\n <>\n {filterPopoverCurrentFilter.options.map(\n (option: {\n label: string;\n value: string;\n }) => (\n <Radio\n key={option.value}\n label={option.label}\n value={option.value}\n isChecked={\n inputValues[\n filterPopoverCurrentFilter.id\n ] === option.value\n }\n />\n ),\n )}\n </>\n </RadioGroup>\n )}\n </>\n )}\n </form>\n </Box>\n </MuiPopover>\n </>\n )}\n\n {/* Search */}\n {onChangeSearch && (\n <form\n style={{ width: \"100%\" }}\n onSubmit={(event) => {\n event.preventDefault();\n if (hasSearchSubmitButton) {\n onChangeSearch(searchValue);\n }\n }}\n >\n <Box sx={{ display: \"flex\", gap: 2, width: \"100%\" }}>\n <SearchField\n value={searchValue}\n label={t(\"filters.search.label\")}\n placeholder={t(\"filters.search.label\")}\n isDisabled={isDisabled}\n onClear={() => {\n setSearchValue(\"\");\n onChangeSearch(\"\");\n }}\n onChange={(ev) => setSearchValue(ev.target.value)}\n />\n {hasSearchSubmitButton && (\n <Box>\n <Button\n variant=\"primary\"\n label={t(\"filters.search.label\")}\n onClick={() => onChangeSearch(searchValue)}\n />\n </Box>\n )}\n </Box>\n </form>\n )}\n </Box>\n\n {/* Upper section right (clear filters & additional actions) */}\n <Box sx={{ display: \"flex\", gap: 2 }}>\n {activeFilters.length > 0 && (\n <Box>\n <Button\n variant=\"secondary\"\n label={t(\"filters.clear.label\")}\n onClick={clearAllFilters}\n />\n </Box>\n )}\n {additionalActions}\n </Box>\n </Box>\n\n {/* Lower section */}\n {activeFilters.length > 0 && (\n <Box\n sx={{\n borderTopWidth: 1,\n borderTopColor: \"#eeeeee\",\n borderTopStyle: \"solid\",\n paddingTop: 4,\n marginTop: 4,\n }}\n >\n <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":["memo","useCallback","useEffect","useMemo","useRef","useState","Trans","useTranslation","styled","Autocomplete","Box","Button","CheckboxGroup","Checkbox","CheckIcon","ChevronRightIcon","CloseCircleFilledIcon","FilterIcon","useOdysseyDesignTokens","RadioGroup","Radio","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","anchorOrigin","horizontal","vertical","transformOrigin","anchorEl","onClose","open","PaperProps","ref","latestFilterValue","f","_MenuItem","selected","className","sx","justifyContent","minWidth","paddingBlock","paddingInlineStart","marginRight","_Typography","fontWeight","marginBlockEnd","component","i18nKey","values","toLowerCase","count","autoCompleteValue","maxWidth","_Popover","elevation","marginLeft","marginTop","ev","menuRect","getBoundingClientRect","clickInsideMenu","clientX","left","right","clientY","top","bottom","padding","onSubmit","preventDefault","noValidate","render","hasMultipleChoices","isCustomValueAllowed","onChange","_","type","hasInitialFocus","endAdornment","_IconButton","size","isRequired","checkFilterInputValuesAsArray","isOptionValueInInputValues","some","isChecked","style","placeholder","onClear","target","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 {\n MutableRefObject,\n ReactNode,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { Trans, useTranslation } from \"react-i18next\";\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 styled from \"@emotion/styled\";\n\nimport { Autocomplete } from \"../Autocomplete.js\";\nimport { Box } from \"../Box.js\";\nimport { Button } from \"../Buttons/index.js\";\nimport { CheckboxGroup } from \"../CheckboxGroup.js\";\nimport { Checkbox } from \"../Checkbox.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 { RadioGroup } from \"../RadioGroup.js\";\nimport { Radio } from \"../Radio.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 * The type of filter, which determines which filtering control\n * is shown.\n */\n variant?: MRT_ColumnDef<MRT_RowData>[\"filterVariant\"];\n /**\n * The current value of the filter. Typically a string, but\n * filters that allow for multiple selections (such as multi-select)\n * can accept an array.\n */\n value?: DataFilterValue;\n /**\n * If the filter control has preset options (such as a select or multi-select),\n * these are the options provided.\n */\n options?: Option[];\n /**\n * A callback which renders a custom filter control\n */\n render?: (updateFilters: UpdateFiltersOrValues) => ReactNode;\n};\n\n// This is the type of the DataFilters component itself\nexport type DataFiltersProps = {\n /**\n * The callback that's fired when the search input changes\n * (either on change or on submit, based on the value of `hasSearchSubmitButton`).\n * If this is undefined, the search input will not be shown.\n */\n onChangeSearch?: (value: string) => void;\n /**\n * The callback that's fired when filter values change.\n */\n onChangeFilters?: (filters: Array<DataFilter>) => void;\n /**\n * If true, a Search button will be provided alongside the search input\n * and `onChangeSearch` will fire when the button is clicked, rather than\n * whenever the input value changes.\n */\n hasSearchSubmitButton?: boolean;\n /**\n * The debounce time, in milliseconds, for the search input firing\n * `onChangeSearch` when changed. If `hasSearchSubmitButton` is true,\n * this doesn't do anything.\n */\n searchDelayTime?: number;\n /**\n * The starting value of the search input\n */\n defaultSearchTerm?: string;\n /**\n * A slot for optional additional actions, like buttons, to be displayed\n * on the opposite side of the top row from the search and filter controls.\n */\n additionalActions?: ReactNode;\n /**\n * The filters available in the filter menu. If undefined,\n * the filter menu won't be shown.\n */\n filters?: Array<DataFilter>;\n /**\n * If true, the filter and search will be disabled\n */\n isDisabled?: boolean;\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 isDisabled={isDisabled}\n endIcon={<FilterIcon />}\n onClick={(event) => {\n setFiltersMenuAnchorElement(event.currentTarget);\n setIsFiltersMenuOpen(true);\n }}\n variant=\"secondary\"\n />\n </Box>\n\n <MuiMenu\n anchorOrigin={{ horizontal: \"left\", vertical: \"bottom\" }}\n transformOrigin={{ horizontal: \"left\", vertical: \"top\" }}\n id=\"filters-menu\"\n anchorEl={filtersMenuAnchorElement}\n onClose={() => setIsFiltersMenuOpen(false)}\n open={isFiltersMenuOpen}\n PaperProps={{\n ref: menuRef as MutableRefObject<HTMLDivElement>,\n }}\n >\n {filtersProp.map((filter) => {\n // Unintuitively, we can't just use filter.value to grab the filter value.\n // `filter` is the initial set of filters provided to the 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 key={filter.id}\n aria-controls={isFilterPopoverOpen ? \"filter-form\" : undefined}\n onClick={(event) => {\n setIsFilterPopoverOpen(true);\n setFilterPopoverAnchorElement(event.currentTarget);\n setFilterPopoverCurrentFilter(filter);\n }}\n selected={\n filterPopoverCurrentFilter === filter &&\n isFilterPopoverOpen === true\n }\n className={\n filterPopoverCurrentFilter === filter &&\n isFilterPopoverOpen === true\n ? \"isVisiblySelected\"\n : undefined\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 id=\"filter-form\"\n anchorEl={filterPopoverAnchorElement}\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 sx={{ marginLeft: 2, marginTop: -1 }}\n open={isFilterPopoverOpen}\n anchorOrigin={{ vertical: \"top\", horizontal: \"right\" }}\n onClose={(ev: MouseEvent) => {\n if (menuRef.current) {\n const menuRect = menuRef.current.getBoundingClientRect();\n const clickInsideMenu =\n ev.clientX >= menuRect.left &&\n ev.clientX <= menuRect.right &&\n ev.clientY >= menuRect.top &&\n ev.clientY <= menuRect.bottom;\n\n if (!clickInsideMenu) {\n setIsFiltersMenuOpen(false);\n }\n }\n handleFilterSubmit();\n setIsFilterPopoverOpen(false);\n }}\n >\n <Box sx={{ padding: 4, minWidth: 320 }}>\n <form\n onSubmit={(ev) => {\n ev.preventDefault();\n handleFilterSubmit();\n setIsFilterPopoverOpen(false);\n setIsFiltersMenuOpen(false);\n }}\n noValidate\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 value={autoCompleteValue}\n onChange={(_, value) => {\n handleAutocompleteFilterChange(\n filterPopoverCurrentFilter.id,\n value as Option[],\n );\n }}\n options={autocompleteOptions}\n />\n </StyledAutocompleteInnerContainer>\n <Button\n variant=\"primary\"\n endIcon={<CheckIcon />}\n type=\"submit\"\n ariaLabel={t(\"filters.submit.label\")}\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 hasInitialFocus\n label={filterPopoverCurrentFilter.label}\n type={\n filterPopoverCurrentFilter.variant === \"range\"\n ? \"number\"\n : \"text\"\n }\n value={\n (inputValues[\n filterPopoverCurrentFilter.id\n ] as string) ?? \"\"\n }\n onChange={(ev) =>\n updateInputValue({\n filterId: filterPopoverCurrentFilter.id,\n value: ev.currentTarget.value,\n })\n }\n endAdornment={\n inputValues[\n filterPopoverCurrentFilter.id\n ] && (\n <MuiIconButton\n size=\"small\"\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 >\n <CloseCircleFilledIcon />\n </MuiIconButton>\n )\n }\n />\n </Box>\n <Button\n variant=\"primary\"\n endIcon={<CheckIcon />}\n type=\"submit\"\n ariaLabel={t(\"filters.submit.label\")}\n />\n </Box>\n )}\n\n {/* Checkbox */}\n {filterPopoverCurrentFilter?.variant ===\n \"multi-select\" &&\n filterPopoverCurrentFilter?.options && (\n <CheckboxGroup\n label={filterPopoverCurrentFilter.label}\n isRequired\n >\n {filterPopoverCurrentFilter.options.map(\n (option: { label: string; value: string }) => {\n 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 key={option.value}\n label={option.label}\n value={option.value}\n isChecked={isOptionValueInInputValues}\n onChange={(_, checked) => {\n handleCheckboxFilterAndInputValueChange(\n filterPopoverCurrentFilter.id,\n option,\n checked,\n );\n }}\n />\n );\n },\n )}\n </CheckboxGroup>\n )}\n\n {/* Radio */}\n {filterPopoverCurrentFilter?.variant === \"select\" &&\n filterPopoverCurrentFilter?.options && (\n <RadioGroup\n label={filterPopoverCurrentFilter.label}\n onChange={(_, value) => {\n updateFilterAndInputValues({\n filterId: filterPopoverCurrentFilter.id,\n value,\n });\n }}\n >\n <Radio\n label={t(\"filters.filter.any\")}\n value={\"\"}\n isChecked={\n !inputValues[filterPopoverCurrentFilter.id]\n }\n />\n <>\n {filterPopoverCurrentFilter.options.map(\n (option: {\n label: string;\n value: string;\n }) => (\n <Radio\n key={option.value}\n label={option.label}\n value={option.value}\n isChecked={\n inputValues[\n filterPopoverCurrentFilter.id\n ] === option.value\n }\n />\n ),\n )}\n </>\n </RadioGroup>\n )}\n </>\n )}\n </form>\n </Box>\n </MuiPopover>\n </>\n )}\n\n {/* Search */}\n {onChangeSearch && (\n <form\n style={{ width: \"100%\" }}\n onSubmit={(event) => {\n event.preventDefault();\n if (hasSearchSubmitButton) {\n onChangeSearch(searchValue);\n }\n }}\n >\n <Box sx={{ display: \"flex\", gap: 2, width: \"100%\" }}>\n <SearchField\n value={searchValue}\n label={t(\"filters.search.label\")}\n placeholder={t(\"filters.search.label\")}\n isDisabled={isDisabled}\n onClear={() => {\n setSearchValue(\"\");\n onChangeSearch(\"\");\n }}\n onChange={(ev) => setSearchValue(ev.target.value)}\n />\n {hasSearchSubmitButton && (\n <Box>\n <Button\n isDisabled={isDisabled}\n variant=\"primary\"\n label={t(\"filters.search.label\")}\n onClick={() => onChangeSearch(searchValue)}\n />\n </Box>\n )}\n </Box>\n </form>\n )}\n </Box>\n\n {/* Upper section right (clear filters & additional actions) */}\n <Box sx={{ display: \"flex\", gap: 2 }}>\n {activeFilters.length > 0 && (\n <Box>\n <Button\n variant=\"secondary\"\n label={t(\"filters.clear.label\")}\n onClick={clearAllFilters}\n />\n </Box>\n )}\n {additionalActions}\n </Box>\n </Box>\n\n {/* Lower section */}\n {activeFilters.length > 0 && (\n <Box\n sx={{\n borderTopWidth: 1,\n borderTopColor: \"#eeeeee\",\n borderTopStyle: \"solid\",\n paddingTop: 4,\n marginTop: 4,\n }}\n >\n <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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BulkActionsMenu.js","names":["memo","useCallback","styled","useTranslation","Box","Button","MenuButton","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 { memo, useCallback, Dispatch, SetStateAction } from \"react\";\nimport { MRT_RowData, MRT_RowSelectionState } from \"material-react-table\";\nimport styled from \"@emotion/styled\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Box } from \"../../Box.js\";\nimport { Button, MenuButton } from \"../../Buttons/index.js\";\nimport { ChevronDownIcon } from \"../../icons.generated/index.js\";\nimport { UniversalProps } from \"./componentTypes.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\n\nexport type BulkActionsMenuProps<TData extends MRT_RowData> = {\n data:
|
|
1
|
+
{"version":3,"file":"BulkActionsMenu.js","names":["memo","useCallback","styled","useTranslation","Box","Button","MenuButton","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 { memo, useCallback, Dispatch, SetStateAction } from \"react\";\nimport { MRT_RowData, MRT_RowSelectionState } from \"material-react-table\";\nimport styled from \"@emotion/styled\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Box } from \"../../Box.js\";\nimport { Button, MenuButton } from \"../../Buttons/index.js\";\nimport { ChevronDownIcon } from \"../../icons.generated/index.js\";\nimport { UniversalProps } from \"./componentTypes.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext.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=\"More actions\"\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":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,WAAW,QAAkC,OAAO;AAEnE,OAAOC,MAAM,MAAM,iBAAiB;AACpC,SAASC,cAAc,QAAQ,eAAe;AAE9C,SAASC,GAAG,QAAQ,cAAc;AAClC,SAASC,MAAM,EAAEC,UAAU,QAAQ,wBAAwB;AAC3D,SAASC,eAAe,QAAQ,gCAAgC;AAEhE,SAEEC,sBAAsB,QACjB,qCAAqC;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAS7C,MAAMC,oBAAoB,GAAGX,MAAM,CAAC,KAAK,EAAE;EACzCY,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK;AACxC,CAAC,CAAC,CAEC,CAAC;EAAEC;AAAoB,CAAC,MAAM;EAC/BC,OAAO,EAAE,MAAM;EACfC,GAAG,EAAEF,mBAAmB,CAACG;AAC3B,CAAC,CAAC,CAAC;AAEH,MAAMC,eAAe,GAAGA,CAA4B;EAClDC,IAAI;EACJC,SAAS;EACTC,YAAY;EACZC;AAC2B,CAAC,KAAK;EACjC,MAAMR,mBAAmB,GAAGR,sBAAsB,CAAC,CAAC;EACpD,MAAM;IAAEiB;EAAE,CAAC,GAAGtB,cAAc,CAAC,CAAC;EAE9B,MAAMuB,gBAAgB,GAAGC,MAAM,CAACC,MAAM,CAACL,YAAY,CAAC,CAACM,MAAM,CAACC,OAAO,CAAC,CAACC,MAAM;EAE3E,MAAMC,eAAe,GAAG/B,WAAW,CAAC,MAAM;IACxC,MAAMgC,IAAI,GAAGN,MAAM,CAACO,WAAW,CAC7Bb,IAAI,CAACc,GAAG,CAAEC,GAAG,IAAK,CAACA,GAAG,CAACC,EAAE,EAAY,IAAI,CAAC,CAC5C,CAAC;IACDb,eAAe,CAACS,IAAI,CAAC;EACvB,CAAC,EAAE,CAACZ,IAAI,EAAEG,eAAe,CAAC,CAAC;EAE3B,MAAMc,gBAAgB,GAAGrC,WAAW,CAAC,MAAM;IACzCuB,eAAe,CAAC,CAAC,CAAC,CAAC;EACrB,CAAC,EAAE,CAACA,eAAe,CAAC,CAAC;EAErB,OACEZ,KAAA,CAACC,oBAAoB;IAACG,mBAAmB,EAAEA,mBAAoB;IAAAuB,QAAA,GAC5Db,gBAAgB,GAAG,CAAC,IACnBhB,IAAA,CAACJ,UAAU;MACTkC,SAAS,EAAC,cAAc;MACxBC,WAAW,EAAEhB,CAAC,CAAC,0BAA0B,EAAE;QAAEC;MAAiB,CAAC,CAAE;MACjEgB,aAAa,EAAC,SAAS;MACvBC,OAAO,EAAEjC,IAAA,CAACH,eAAe,IAAE,CAAE;MAAAgC,QAAA,EAE5BjB,SAAS,GAAGC,YAAY;IAAC,CAChB,CACb,EACDX,KAAA,CAACR,GAAG;MAAAmC,QAAA,GACF7B,IAAA,CAACL,MAAM;QACLuC,UAAU,EAAElB,gBAAgB,KAAKL,IAAI,CAACU,MAAO;QAC7Cc,KAAK,EAAEpB,CAAC,CAAC,yBAAyB,CAAE;QACpCqB,OAAO,EAAEd,eAAgB;QACzBe,OAAO,EAAC;MAAW,CACpB,CAAC,EACFrC,IAAA,CAACL,MAAM;QACLuC,UAAU,EAAElB,gBAAgB,KAAK,CAAE;QACnCmB,KAAK,EAAEpB,CAAC,CAAC,0BAA0B,CAAE;QACrCqB,OAAO,EAAER,gBAAiB;QAC1BS,OAAO,EAAC;MAAW,CACpB,CAAC;IAAA,CACC,CAAC;EAAA,CACc,CAAC;AAE3B,CAAC;AAED,MAAMC,uBAAuB,GAAGhD,IAAI,CAACoB,eAAe,CAAC;AACrD4B,uBAAuB,CAACC,WAAW,GAAG,iBAAiB;AAEvD,SAASD,uBAAuB,IAAI5B,eAAe","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardLayoutContent.js","names":["memo","useCallback","styled","Box","CircularProgress","useOdysseyDesignTokens","RowActions","DataCard","jsx","_jsx","Fragment","_Fragment","StackContainer","shouldForwardProp","prop","odysseyDesignTokens","currentLayout","maxGridColumns","display","flexDirection","columnGap","Spacing5","gridTemplateColumns","LoadingContainer","alignItems","justifyContent","width","paddingBlock","CheckboxContainer","marginBlockStart","Spacing1","CardLayoutContent","data","emptyState","hasRowReordering","hasRowSelection","isEmpty","isLoading","isNoResults","isRowReorderingDisabled","onReorderRows","pagination","rowReorderingUtilities","rowSelection","setRowSelection","cardLayoutOptions","totalRows","handleRowSelectionChange","row","Object","fromEntries","id","entries","filter","key","concat","updateRowOrder","children","length","role","map","index","overline","title","description","image","variant","button","itemProps","currentIndex","pageIndex","pageSize","Accessory","_Checkbox","checked","onChange","renderDetailPanel","menuButtonChildren","rowActionMenuItems","rowIndex","undefined","MemoizedCardLayoutContent","displayName"],"sources":["../../../../src/labs/DataView/CardLayoutContent.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 { Dispatch, ReactNode, SetStateAction, memo, useCallback } from \"react\";\nimport styled, { CSSObject } from \"@emotion/styled\";\nimport {\n MRT_Row,\n MRT_RowData,\n MRT_RowSelectionState,\n MRT_TableInstance,\n} from \"material-react-table\";\n\nimport { Box } from \"../../Box.js\";\nimport { Checkbox as MuiCheckbox } from \"@mui/material\";\nimport { CircularProgress } from \"../../CircularProgress.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport { RowActions } from \"./RowActions.js\";\nimport { DataCard } from \"./DataCard.js\";\nimport {\n CardLayout,\n CardLayoutProps,\n UniversalProps,\n} from \"./componentTypes.js\";\n\nexport type CardLayoutContentProps<TData extends MRT_RowData> = {\n currentLayout: CardLayout;\n data: TData[];\n draggingRow?: MRT_Row<TData> | null;\n emptyState: ReactNode;\n getRowId: UniversalProps<TData>[\"getRowId\"];\n hasRowReordering: UniversalProps<TData>[\"hasRowReordering\"];\n hasRowSelection: UniversalProps<TData>[\"hasRowSelection\"];\n isEmpty?: boolean;\n isLoading: boolean;\n isNoResults?: boolean;\n isRowReorderingDisabled?: boolean;\n onReorderRows: UniversalProps<TData>[\"onReorderRows\"];\n pagination: { pageIndex: number; pageSize: number };\n rowReorderingUtilities: {\n dragHandleStyles: CSSObject;\n dragHandleText: {\n title: string;\n \"aria-label\": string;\n };\n draggableTableBodyRowClassName: ({\n currentRowId,\n draggingRowId,\n hoveredRowId,\n }: {\n currentRowId: string;\n draggingRowId?: string;\n hoveredRowId?: string;\n }) => string | undefined;\n handleDragHandleKeyDown: ({\n table,\n row,\n event,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n event: React.KeyboardEvent<HTMLButtonElement>;\n }) => void;\n handleDragHandleOnDragCapture: (table: MRT_TableInstance<TData>) => void;\n handleDragHandleOnDragEnd: (table: MRT_TableInstance<TData>) => void;\n resetDraggingAndHoveredRow: (table: MRT_TableInstance<TData>) => void;\n updateRowOrder: ({\n rowId,\n newRowIndex,\n }: {\n rowId: string;\n newRowIndex: number;\n }) => void;\n };\n rowSelection: MRT_RowSelectionState;\n setRowSelection: Dispatch<SetStateAction<MRT_RowSelectionState>>;\n cardLayoutOptions: CardLayoutProps<TData>;\n totalRows: UniversalProps<TData>[\"totalRows\"];\n};\ntype CardLayoutContentComponent = (<TData extends MRT_RowData>(\n props: CardLayoutContentProps<TData>,\n) => JSX.Element) & {\n displayName?: string;\n};\n\nconst StackContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"currentLayout\" &&\n prop !== \"maxGridColumns\",\n})<{\n odysseyDesignTokens: DesignTokens;\n currentLayout: CardLayout;\n maxGridColumns: number;\n}>(({ odysseyDesignTokens, currentLayout, maxGridColumns }) => ({\n display: currentLayout === \"list\" ? \"flex\" : \"grid\",\n flexDirection: \"column\",\n columnGap: odysseyDesignTokens.Spacing5,\n\n ...(currentLayout === \"grid\" && {\n [`@media (max-width: 720px)`]: {\n gridTemplateColumns: \"repeat(1, 1fr)\",\n },\n [`@media (min-width: 720px) and (max-width: 960px)`]: {\n gridTemplateColumns: \"repeat(2, 1fr)\",\n },\n [`@media (min-width: 960px)`]: {\n gridTemplateColumns: `repeat(${maxGridColumns}, 1fr)`,\n },\n }),\n}));\n\nconst LoadingContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n paddingBlock: odysseyDesignTokens.Spacing5,\n}));\n\nconst CheckboxContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n marginBlockStart: `-${odysseyDesignTokens.Spacing1}`,\n}));\n\nconst CardLayoutContent = <TData extends MRT_RowData>({\n currentLayout,\n data,\n emptyState,\n hasRowReordering,\n hasRowSelection,\n isEmpty,\n isLoading,\n isNoResults,\n isRowReorderingDisabled,\n onReorderRows,\n pagination,\n rowReorderingUtilities,\n rowSelection,\n setRowSelection,\n cardLayoutOptions,\n totalRows,\n}: CardLayoutContentProps<TData>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const handleRowSelectionChange = useCallback(\n (row: MRT_RowData) => {\n setRowSelection((rowSelection) =>\n Object.fromEntries(\n row.id in rowSelection\n ? Object.entries(rowSelection).filter(([key]) => key !== row.id)\n : Object.entries(rowSelection).concat([[row.id, true]]),\n ),\n );\n },\n [setRowSelection],\n );\n\n const { updateRowOrder } = rowReorderingUtilities;\n\n return (\n <Box>\n {isLoading ? (\n <LoadingContainer odysseyDesignTokens={odysseyDesignTokens}>\n <CircularProgress />\n </LoadingContainer>\n ) : (\n <>\n {!data || data.length === 0 || isEmpty || isNoResults ? (\n <Box>{emptyState}</Box>\n ) : (\n <StackContainer\n odysseyDesignTokens={odysseyDesignTokens}\n currentLayout={currentLayout}\n maxGridColumns={cardLayoutOptions.maxGridColumns ?? 3}\n role=\"list\"\n >\n {data.map((row, index) => {\n const {\n overline,\n title,\n description,\n image,\n children,\n variant,\n button,\n } = cardLayoutOptions.itemProps(row);\n const currentIndex =\n index + (pagination.pageIndex - 1) * pagination.pageSize;\n\n return (\n <DataCard\n Accessory={\n hasRowSelection && (\n // Negative margin to counteract the checkbox's inbuilt spacing\n <CheckboxContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <MuiCheckbox\n checked={rowSelection[row.id as string] ?? false}\n onChange={() => handleRowSelectionChange(row)}\n />\n </CheckboxContainer>\n )\n }\n button={button}\n children={children}\n description={description}\n renderDetailPanel={cardLayoutOptions.renderDetailPanel}\n row={row}\n image={image}\n key={row.id as string}\n menuButtonChildren={\n (cardLayoutOptions.rowActionMenuItems ||\n hasRowReordering) && (\n <RowActions\n row={row as unknown as MRT_Row<MRT_RowData>} // TODO: FIX THIS! The types are wrong. `row` is incorrectly set in `RowActions` to not be TData.\n rowIndex={currentIndex}\n rowActionMenuItems={\n // TODO: FIX THIS! The types are wrong. `row` is incorrectly set in `RowActions` to not be TData.\n cardLayoutOptions.rowActionMenuItems as unknown as (\n row: MRT_Row<MRT_RowData>,\n ) => any // eslint-disable-line @typescript-eslint/no-explicit-any\n }\n isRowReorderingDisabled={isRowReorderingDisabled}\n totalRows={totalRows}\n updateRowOrder={\n hasRowReordering && onReorderRows\n ? updateRowOrder\n : undefined\n }\n />\n )\n }\n overline={overline}\n title={title}\n variant={variant}\n />\n );\n })}\n </StackContainer>\n )}\n </>\n )}\n </Box>\n );\n};\n\nconst MemoizedCardLayoutContent = memo(\n CardLayoutContent,\n) as CardLayoutContentComponent;\nMemoizedCardLayoutContent.displayName = \"CardLayoutContent\";\n\nexport { MemoizedCardLayoutContent as CardLayoutContent };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"CardLayoutContent.js","names":["memo","useCallback","styled","Box","CircularProgress","useOdysseyDesignTokens","RowActions","DataCard","jsx","_jsx","Fragment","_Fragment","StackContainer","shouldForwardProp","prop","odysseyDesignTokens","currentLayout","maxGridColumns","display","flexDirection","columnGap","Spacing5","gridTemplateColumns","LoadingContainer","alignItems","justifyContent","width","paddingBlock","CheckboxContainer","marginBlockStart","Spacing1","CardLayoutContent","data","emptyState","hasRowReordering","hasRowSelection","isEmpty","isLoading","isNoResults","isRowReorderingDisabled","onReorderRows","pagination","rowReorderingUtilities","rowSelection","setRowSelection","cardLayoutOptions","totalRows","handleRowSelectionChange","row","Object","fromEntries","id","entries","filter","key","concat","updateRowOrder","children","length","role","map","index","overline","title","description","image","variant","button","itemProps","currentIndex","pageIndex","pageSize","Accessory","_Checkbox","checked","onChange","renderDetailPanel","menuButtonChildren","rowActionMenuItems","rowIndex","undefined","MemoizedCardLayoutContent","displayName"],"sources":["../../../../src/labs/DataView/CardLayoutContent.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 { Dispatch, ReactNode, SetStateAction, memo, useCallback } from \"react\";\nimport styled, { CSSObject } from \"@emotion/styled\";\nimport {\n MRT_Row,\n MRT_RowData,\n MRT_RowSelectionState,\n MRT_TableInstance,\n} from \"material-react-table\";\n\nimport { Box } from \"../../Box.js\";\nimport { Checkbox as MuiCheckbox } from \"@mui/material\";\nimport { CircularProgress } from \"../../CircularProgress.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport { RowActions } from \"./RowActions.js\";\nimport { DataCard } from \"./DataCard.js\";\nimport {\n CardLayout,\n CardLayoutProps,\n UniversalProps,\n} from \"./componentTypes.js\";\n\nexport type CardLayoutContentProps<TData extends MRT_RowData> = {\n currentLayout: CardLayout;\n data: TData[];\n draggingRow?: MRT_Row<TData> | null;\n emptyState: ReactNode;\n getRowId: UniversalProps<TData>[\"getRowId\"];\n hasRowReordering: UniversalProps<TData>[\"hasRowReordering\"];\n hasRowSelection: UniversalProps<TData>[\"hasRowSelection\"];\n isEmpty?: boolean;\n isLoading: boolean;\n isNoResults?: boolean;\n isRowReorderingDisabled?: boolean;\n onReorderRows: UniversalProps<TData>[\"onReorderRows\"];\n pagination: { pageIndex: number; pageSize: number };\n rowReorderingUtilities: {\n dragHandleStyles: CSSObject;\n dragHandleText: {\n title: string;\n \"aria-label\": string;\n };\n draggableTableBodyRowClassName: ({\n currentRowId,\n draggingRowId,\n hoveredRowId,\n }: {\n currentRowId: string;\n draggingRowId?: string;\n hoveredRowId?: string;\n }) => string | undefined;\n handleDragHandleKeyDown: ({\n table,\n row,\n event,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n event: React.KeyboardEvent<HTMLButtonElement>;\n }) => void;\n handleDragHandleOnDragCapture: (table: MRT_TableInstance<TData>) => void;\n handleDragHandleOnDragEnd: (table: MRT_TableInstance<TData>) => void;\n resetDraggingAndHoveredRow: (table: MRT_TableInstance<TData>) => void;\n updateRowOrder: ({\n rowId,\n newRowIndex,\n }: {\n rowId: string;\n newRowIndex: number;\n }) => void;\n };\n rowSelection: MRT_RowSelectionState;\n setRowSelection: Dispatch<SetStateAction<MRT_RowSelectionState>>;\n cardLayoutOptions: CardLayoutProps<TData>;\n totalRows: UniversalProps<TData>[\"totalRows\"];\n};\ntype CardLayoutContentComponent = (<TData extends MRT_RowData>(\n props: CardLayoutContentProps<TData>,\n) => JSX.Element) & {\n displayName?: string;\n};\n\nconst StackContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"currentLayout\" &&\n prop !== \"maxGridColumns\",\n})<{\n odysseyDesignTokens: DesignTokens;\n currentLayout: CardLayout;\n maxGridColumns: number;\n}>(({ odysseyDesignTokens, currentLayout, maxGridColumns }) => ({\n display: currentLayout === \"list\" ? \"flex\" : \"grid\",\n flexDirection: \"column\",\n columnGap: odysseyDesignTokens.Spacing5,\n\n ...(currentLayout === \"grid\" && {\n [`@media (max-width: 720px)`]: {\n gridTemplateColumns: \"repeat(1, 1fr)\",\n },\n [`@media (min-width: 720px) and (max-width: 960px)`]: {\n gridTemplateColumns: \"repeat(2, 1fr)\",\n },\n [`@media (min-width: 960px)`]: {\n gridTemplateColumns: `repeat(${maxGridColumns}, 1fr)`,\n },\n }),\n}));\n\nconst LoadingContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n paddingBlock: odysseyDesignTokens.Spacing5,\n}));\n\nconst CheckboxContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n marginBlockStart: `-${odysseyDesignTokens.Spacing1}`,\n}));\n\nconst CardLayoutContent = <TData extends MRT_RowData>({\n currentLayout,\n data,\n emptyState,\n hasRowReordering,\n hasRowSelection,\n isEmpty,\n isLoading,\n isNoResults,\n isRowReorderingDisabled,\n onReorderRows,\n pagination,\n rowReorderingUtilities,\n rowSelection,\n setRowSelection,\n cardLayoutOptions,\n totalRows,\n}: CardLayoutContentProps<TData>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const handleRowSelectionChange = useCallback(\n (row: TData) => {\n setRowSelection((rowSelection) =>\n Object.fromEntries(\n row.id in rowSelection\n ? Object.entries(rowSelection).filter(([key]) => key !== row.id)\n : Object.entries(rowSelection).concat([[row.id, true]]),\n ),\n );\n },\n [setRowSelection],\n );\n\n const { updateRowOrder } = rowReorderingUtilities;\n\n return (\n <Box>\n {isLoading ? (\n <LoadingContainer odysseyDesignTokens={odysseyDesignTokens}>\n <CircularProgress />\n </LoadingContainer>\n ) : (\n <>\n {!data || data.length === 0 || isEmpty || isNoResults ? (\n <Box>{emptyState}</Box>\n ) : (\n <StackContainer\n odysseyDesignTokens={odysseyDesignTokens}\n currentLayout={currentLayout}\n maxGridColumns={cardLayoutOptions.maxGridColumns ?? 3}\n role=\"list\"\n >\n {data.map((row, index) => {\n const {\n overline,\n title,\n description,\n image,\n children,\n variant,\n button,\n } = cardLayoutOptions.itemProps(row);\n const currentIndex =\n index + (pagination.pageIndex - 1) * pagination.pageSize;\n\n return (\n <DataCard\n Accessory={\n hasRowSelection && (\n // Negative margin to counteract the checkbox's inbuilt spacing\n <CheckboxContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <MuiCheckbox\n checked={rowSelection[row.id as string] ?? false}\n onChange={() => handleRowSelectionChange(row)}\n />\n </CheckboxContainer>\n )\n }\n button={button}\n children={children}\n description={description}\n renderDetailPanel={cardLayoutOptions.renderDetailPanel}\n row={row}\n image={image}\n key={row.id as string}\n menuButtonChildren={\n (cardLayoutOptions.rowActionMenuItems ||\n hasRowReordering) && (\n <RowActions\n row={row}\n rowIndex={currentIndex}\n rowActionMenuItems={\n cardLayoutOptions.rowActionMenuItems as CardLayoutProps<MRT_RowData>[\"rowActionMenuItems\"]\n }\n isRowReorderingDisabled={isRowReorderingDisabled}\n totalRows={totalRows}\n updateRowOrder={\n hasRowReordering && onReorderRows\n ? updateRowOrder\n : undefined\n }\n />\n )\n }\n overline={overline}\n title={title}\n variant={variant}\n />\n );\n })}\n </StackContainer>\n )}\n </>\n )}\n </Box>\n );\n};\n\nconst MemoizedCardLayoutContent = memo(\n CardLayoutContent,\n) as CardLayoutContentComponent;\nMemoizedCardLayoutContent.displayName = \"CardLayoutContent\";\n\nexport { MemoizedCardLayoutContent as CardLayoutContent };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -31,6 +31,7 @@ import { useRowReordering } from "../../DataTable/useRowReordering.js";
|
|
|
31
31
|
import { Typography } from "../../Typography.js";
|
|
32
32
|
import { useOdysseyDesignTokens } from "../../OdysseyDesignTokensContext.js";
|
|
33
33
|
import styled from "@emotion/styled";
|
|
34
|
+
import { createUniqueId } from "../../createUniqueId.js";
|
|
34
35
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
35
36
|
const StyledDataViewContainer = styled("div", {
|
|
36
37
|
shouldForwardProp: prop => prop !== "odysseyDesignTokens"
|
|
@@ -159,7 +160,15 @@ const DataView = ({
|
|
|
159
160
|
filters: availableFilters,
|
|
160
161
|
sort: tableState?.columnSorting
|
|
161
162
|
}), [pagination.pageIndex, pagination.pageSize, search, availableFilters, tableState?.columnSorting]);
|
|
162
|
-
const getRowId = useCallback(
|
|
163
|
+
const getRowId = useCallback((row, index, parentRow) => {
|
|
164
|
+
if (getRowIdProp) {
|
|
165
|
+
return getRowIdProp(row, index, parentRow);
|
|
166
|
+
}
|
|
167
|
+
if (row.id) {
|
|
168
|
+
return row.id;
|
|
169
|
+
}
|
|
170
|
+
return createUniqueId();
|
|
171
|
+
}, [getRowIdProp]);
|
|
163
172
|
useEffect(() => {
|
|
164
173
|
setPagination({
|
|
165
174
|
pageIndex: currentPage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataView.js","names":["memo","useCallback","useEffect","useMemo","useState","useTranslation","availableLayouts","allAvailableLayouts","densityValues","Box","BulkActionsMenu","Callout","DataFilters","EmptyState","fetchData","LayoutSwitcher","MenuButton","MoreIcon","TableSettings","Pagination","usePagination","TableLayoutContent","CardLayoutContent","useFilterConversion","useRowReordering","Typography","useOdysseyDesignTokens","styled","jsx","_jsx","jsxs","_jsxs","StyledDataViewContainer","shouldForwardProp","prop","odysseyDesignTokens","display","flexDirection","gap","Spacing4","StyledBulkActionsContainer","justifyContent","StyledAdditionalActionsContainer","Spacing2","StyledAdditionalActionsInner","alignItems","StyledMetaTextContainer","marginInlineEnd","DataView","additionalActionButton","additionalActionMenuItems","bulkActionMenuItems","currentPage","emptyPlaceholder","enableVirtualization","enableVirtualizationProp","errorMessage","errorMessageProp","filters","filtersProp","getData","getRowId","getRowIdProp","hasFilters","hasPagination","hasPageInput","hasRowCountInput","hasRowCountLabel","hasSearch","hasSearchSubmitButton","hasRowReordering","hasRowSelection","initialLayout","isEmpty","isEmptyProp","isLoading","isLoadingProp","isNoResults","isNoResultsProp","isPaginationMoreDisabled","isRowReorderingDisabled","metaText","noResultsPlaceholder","onChangeRowSelection","onReorderRows","onRowSelectionChange","paginationType","resultsPerPage","searchDelayTime","cardLayoutOptions","tableLayoutOptions","totalRows","maxPages","maxResultsPerPage","onPaginationChange","t","currentLayout","setCurrentLayout","data","setData","setIsLoading","setIsEmpty","setIsNoResults","setErrorMessage","search","setSearch","initialFilters","setInitialFilters","setFilters","draggingRow","setDraggingRow","rowSelection","setRowSelection","pagination","setPagination","pageIndex","pageSize","tableState","setTableState","columnSorting","columnVisibility","rowDensity","initialDensity","shouldShowFilters","availableFilters","columns","dataQueryParams","page","sort","originalRow","id","prev","undefined","length","prevValue","emptyState","noResultsInnerContent","description","heading","additionalActions","children","color","endIcon","ariaLabel","buttonVariant","menuAlignment","lastRow","lastRowOnPage","currentRowsCount","rowReorderingUtilities","severity","text","isDisabled","onChangeFilters","onChangeSearch","menuItems","currentPageLabel","isMoreDisabled","loadMoreLabel","maxPageIndex","maxPageSize","nextLabel","previousLabel","rowsPerPageLabel","variant","MemoizedDataView","displayName"],"sources":["../../../../src/labs/DataView/DataView.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo, useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n MRT_Row,\n MRT_RowData,\n MRT_RowSelectionState,\n} from \"material-react-table\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n availableLayouts as allAvailableLayouts,\n densityValues,\n} from \"./constants.js\";\nimport {\n DataLayout,\n UniversalProps,\n ViewProps,\n TableState,\n} from \"./componentTypes.js\";\nimport { Box } from \"../../Box.js\";\nimport { BulkActionsMenu } from \"./BulkActionsMenu.js\";\nimport { Callout } from \"../../Callout.js\";\nimport { DataFilters } from \"../DataFilters.js\";\nimport { EmptyState } from \"../../EmptyState.js\";\nimport { fetchData } from \"./fetchData.js\";\nimport { LayoutSwitcher } from \"./LayoutSwitcher.js\";\nimport { MenuButton } from \"../../Buttons/index.js\";\nimport { MoreIcon } from \"../../icons.generated/index.js\";\nimport { TableSettings } from \"./TableSettings.js\";\nimport { Pagination, usePagination } from \"../../Pagination/index.js\";\nimport { TableLayoutContent } from \"./TableLayoutContent.js\";\nimport { CardLayoutContent } from \"./CardLayoutContent.js\";\nimport { useFilterConversion } from \"./useFilterConversion.js\";\nimport { useRowReordering } from \"../../DataTable/useRowReordering.js\";\nimport { Typography } from \"../../Typography.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport styled from \"@emotion/styled\";\n\nexport type DataViewProps<TData extends MRT_RowData> = UniversalProps<TData> &\n ViewProps<TData, DataLayout>;\ntype DataViewComponent = (<TData extends MRT_RowData>(\n props: DataViewProps<TData>,\n) => JSX.Element) & {\n displayName?: string;\n};\n\nconst StyledDataViewContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n flexDirection: \"column\",\n gap: odysseyDesignTokens.Spacing4,\n}));\n\nconst StyledBulkActionsContainer = styled(\"div\")(() => ({\n display: \"flex\",\n justifyContent: \"space-between\",\n}));\n\nconst StyledAdditionalActionsContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n justifyContent: \"flex-end\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst StyledAdditionalActionsInner = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst StyledMetaTextContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n marginInlineEnd: odysseyDesignTokens.Spacing2,\n}));\n\nconst DataView = <TData extends MRT_RowData>({\n additionalActionButton,\n additionalActionMenuItems,\n availableLayouts = allAvailableLayouts,\n bulkActionMenuItems,\n currentPage = 1,\n emptyPlaceholder,\n enableVirtualization: enableVirtualizationProp,\n errorMessage: errorMessageProp,\n filters: filtersProp,\n getData,\n getRowId: getRowIdProp,\n hasFilters,\n hasPagination,\n hasPageInput,\n hasRowCountInput,\n hasRowCountLabel,\n hasSearch,\n hasSearchSubmitButton,\n hasRowReordering,\n hasRowSelection,\n initialLayout,\n isEmpty: isEmptyProp,\n isLoading: isLoadingProp,\n isNoResults: isNoResultsProp,\n isPaginationMoreDisabled,\n isRowReorderingDisabled,\n metaText,\n noResultsPlaceholder,\n onChangeRowSelection,\n onReorderRows,\n onRowSelectionChange,\n paginationType = \"paged\",\n resultsPerPage = 20,\n searchDelayTime,\n cardLayoutOptions,\n tableLayoutOptions,\n totalRows,\n maxPages,\n maxResultsPerPage,\n onPaginationChange,\n}: DataViewProps<TData>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const [currentLayout, setCurrentLayout] = useState<DataLayout>(\n initialLayout ?? availableLayouts[0],\n );\n\n const [data, setData] = useState<TData[]>([]);\n const [isLoading, setIsLoading] = useState<boolean>(isLoadingProp ?? true);\n const [isEmpty, setIsEmpty] = useState<boolean>(isEmptyProp ?? true);\n const [isNoResults, setIsNoResults] = useState<boolean>(\n isNoResultsProp ?? false,\n );\n const [errorMessage, setErrorMessage] =\n useState<UniversalProps<TData>[\"errorMessage\"]>(errorMessageProp);\n\n const [search, setSearch] = useState<string>(\"\");\n\n const [initialFilters, setInitialFilters] =\n useState<UniversalProps<TData>[\"filters\"]>(filtersProp);\n const [filters, setFilters] =\n useState<UniversalProps<TData>[\"filters\"]>(filtersProp);\n\n const [draggingRow, setDraggingRow] = useState<MRT_Row<TData> | null>();\n\n const [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n\n useEffect(() => {\n onChangeRowSelection?.(rowSelection);\n }, [rowSelection, onChangeRowSelection]);\n\n useEffect(() => {\n onRowSelectionChange?.(rowSelection);\n }, [rowSelection, onRowSelectionChange]);\n\n const [pagination, setPagination] = useState({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n\n const [tableState, setTableState] = useState<TableState>({\n columnSorting: [],\n columnVisibility: {},\n rowDensity: tableLayoutOptions?.initialDensity ?? densityValues[0],\n });\n\n const shouldShowFilters =\n hasSearch ||\n hasFilters ||\n additionalActionButton ||\n additionalActionMenuItems;\n\n const availableFilters = useFilterConversion({\n filters: filters,\n columns: tableLayoutOptions?.columns,\n });\n\n useEffect(() => {\n if (!initialFilters && availableFilters) {\n setInitialFilters(availableFilters);\n }\n }, [availableFilters, initialFilters]);\n\n const dataQueryParams = useMemo(\n () => ({\n page: pagination.pageIndex,\n resultsPerPage: pagination.pageSize,\n search,\n filters: availableFilters,\n sort: tableState?.columnSorting,\n }),\n [\n pagination.pageIndex,\n pagination.pageSize,\n search,\n availableFilters,\n tableState?.columnSorting,\n ],\n );\n\n const getRowId = useCallback<Required<DataViewProps<TData>>[\"getRowId\"]>(\n (originalRow) => originalRow.id as string,\n [],\n );\n\n // Update pagination state if props change\n useEffect(() => {\n setPagination({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n }, [currentPage, resultsPerPage]);\n\n // Reset pagination if search or filters change\n useEffect(() => {\n setPagination((prev) => ({\n pageIndex: 1,\n pageSize: paginationType == \"loadMore\" ? resultsPerPage : prev.pageSize,\n }));\n }, [filters, paginationType, resultsPerPage, search]);\n\n // Fire onPaginationChange if pagination changes\n useEffect(() => {\n onPaginationChange?.(pagination);\n }, [onPaginationChange, pagination]);\n\n // Retrieve the data\n useEffect(() => {\n fetchData({\n dataQueryParams,\n errorMessageProp,\n getData,\n setData,\n setErrorMessage,\n // Only include setIsLoading if that's not being controlled manually\n setIsLoading: isLoadingProp ? undefined : setIsLoading,\n });\n }, [dataQueryParams, errorMessageProp, getData, isLoadingProp]);\n\n // When data is updated\n useEffect(() => {\n setIsEmpty(\n pagination.pageIndex === currentPage &&\n pagination.pageSize === resultsPerPage &&\n search === \"\" &&\n (!hasFilters || filters === initialFilters) &&\n data.length === 0,\n );\n }, [\n currentPage,\n data,\n filters,\n hasFilters,\n initialFilters,\n pagination,\n resultsPerPage,\n search,\n ]);\n\n // Change loading, empty and noResults state on prop change\n useEffect(() => {\n setIsLoading((prevValue) => isLoadingProp ?? prevValue);\n }, [isLoadingProp]);\n\n useEffect(() => {\n setIsEmpty((prevValue) => isEmptyProp ?? prevValue);\n }, [isEmptyProp]);\n\n useEffect(() => {\n setIsNoResults((prevValue) => isNoResultsProp ?? prevValue);\n }, [isNoResultsProp]);\n\n const emptyState = useMemo(() => {\n const noResultsInnerContent = noResultsPlaceholder || (\n <EmptyState\n description={t(\"table.noresults.text\")}\n heading={t(\"table.noresults.heading\")}\n />\n );\n\n if (isEmpty) {\n return emptyPlaceholder || noResultsInnerContent;\n }\n\n if (isNoResults) {\n return noResultsInnerContent;\n }\n\n return;\n }, [noResultsPlaceholder, t, isEmpty, isNoResults, emptyPlaceholder]);\n\n const additionalActions = useMemo(() => {\n return (\n (metaText ||\n (currentLayout === \"table\" && tableLayoutOptions) ||\n availableLayouts.length > 1 ||\n additionalActionButton ||\n additionalActionMenuItems) && (\n <StyledAdditionalActionsInner odysseyDesignTokens={odysseyDesignTokens}>\n {metaText && (\n <StyledMetaTextContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Typography color=\"textSecondary\">{metaText}</Typography>\n </StyledMetaTextContainer>\n )}\n\n {currentLayout === \"table\" && tableLayoutOptions && (\n <TableSettings\n setTableState={setTableState}\n tableLayoutOptions={tableLayoutOptions}\n tableState={tableState}\n />\n )}\n\n {availableLayouts.length > 1 && (\n <LayoutSwitcher\n availableLayouts={availableLayouts}\n currentLayout={currentLayout}\n setCurrentLayout={setCurrentLayout}\n />\n )}\n\n {additionalActionButton}\n\n {additionalActionMenuItems && (\n <MenuButton\n endIcon={<MoreIcon />}\n ariaLabel={t(\"table.moreactions.arialabel\")}\n buttonVariant=\"secondary\"\n menuAlignment=\"right\"\n >\n {additionalActionMenuItems}\n </MenuButton>\n )}\n </StyledAdditionalActionsInner>\n )\n );\n }, [\n additionalActionButton,\n additionalActionMenuItems,\n availableLayouts,\n currentLayout,\n metaText,\n odysseyDesignTokens,\n tableLayoutOptions,\n tableState,\n t,\n ]);\n\n const enableVirtualization = useMemo(\n () => enableVirtualizationProp ?? paginationType === \"loadMore\",\n [enableVirtualizationProp, paginationType],\n );\n\n const { lastRow: lastRowOnPage } = usePagination({\n currentRowsCount: data.length,\n pageIndex: pagination.pageIndex,\n pageSize: pagination.pageSize,\n totalRows,\n });\n\n const rowReorderingUtilities = useRowReordering({\n totalRows,\n onReorderRows,\n data,\n setData,\n draggingRow,\n setDraggingRow,\n resultsPerPage: pagination.pageSize,\n page: pagination.pageIndex,\n });\n\n return (\n <StyledDataViewContainer odysseyDesignTokens={odysseyDesignTokens}>\n {errorMessage && (\n <Box>\n <Callout severity=\"error\" text={errorMessage} />\n </Box>\n )}\n\n {shouldShowFilters && (\n <DataFilters\n additionalActions={additionalActions}\n filters={hasFilters ? availableFilters : undefined}\n hasSearchSubmitButton={hasSearchSubmitButton}\n isDisabled={isEmpty}\n onChangeFilters={hasFilters ? setFilters : undefined}\n onChangeSearch={hasSearch ? setSearch : undefined}\n searchDelayTime={searchDelayTime}\n />\n )}\n\n {(bulkActionMenuItems || hasRowSelection) && (\n <StyledBulkActionsContainer>\n <BulkActionsMenu\n data={data}\n menuItems={bulkActionMenuItems}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n />\n {!shouldShowFilters && additionalActions}\n </StyledBulkActionsContainer>\n )}\n\n {!shouldShowFilters &&\n !bulkActionMenuItems &&\n !hasRowSelection &&\n additionalActions && (\n <StyledAdditionalActionsContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {additionalActions}\n </StyledAdditionalActionsContainer>\n )}\n\n {currentLayout === \"table\" && tableLayoutOptions && (\n <TableLayoutContent\n columns={tableLayoutOptions.columns}\n data={data}\n draggingRow={draggingRow}\n emptyState={emptyState}\n enableVirtualization={enableVirtualization}\n getRowId={getRowIdProp || getRowId}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n onReorderRows={onReorderRows}\n pagination={pagination}\n rowReorderingUtilities={rowReorderingUtilities}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n setTableState={setTableState}\n tableLayoutOptions={tableLayoutOptions}\n tableState={tableState}\n totalRows={totalRows}\n />\n )}\n {(currentLayout === \"list\" || currentLayout === \"grid\") &&\n cardLayoutOptions && (\n <CardLayoutContent\n currentLayout={currentLayout}\n data={data}\n draggingRow={draggingRow}\n emptyState={emptyState}\n getRowId={getRowIdProp || getRowId}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n onReorderRows={onReorderRows}\n pagination={pagination}\n rowReorderingUtilities={rowReorderingUtilities}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n cardLayoutOptions={cardLayoutOptions}\n totalRows={totalRows}\n />\n )}\n\n {hasPagination && (\n <Pagination\n currentPageLabel={t(\"pagination.page\")}\n hasPageInput={hasPageInput}\n hasRowCountInput={hasRowCountInput}\n hasRowCountLabel={hasRowCountLabel}\n isDisabled={isEmpty}\n isMoreDisabled={isPaginationMoreDisabled}\n lastRow={lastRowOnPage}\n loadMoreLabel={t(\"pagination.loadmore\")}\n maxPageIndex={maxPages}\n maxPageSize={maxResultsPerPage}\n nextLabel={t(\"pagination.next\")}\n onPaginationChange={setPagination}\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n previousLabel={t(\"pagination.previous\")}\n rowsPerPageLabel={t(\"pagination.rowsperpage\")}\n totalRows={totalRows}\n currentRowsCount={data.length}\n variant={paginationType}\n />\n )}\n </StyledDataViewContainer>\n );\n};\n\nconst MemoizedDataView = memo(DataView) as DataViewComponent;\nMemoizedDataView.displayName = \"DataView\";\n\nexport { MemoizedDataView as DataView };\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAMvE,SAASC,cAAc,QAAQ,eAAe;AAE9C,SACEC,gBAAgB,IAAIC,mBAAmB,EACvCC,aAAa,QACR,gBAAgB;AAOvB,SAASC,GAAG,QAAQ,cAAc;AAClC,SAASC,eAAe,QAAQ,sBAAsB;AACtD,SAASC,OAAO,QAAQ,kBAAkB;AAC1C,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,UAAU,QAAQ,qBAAqB;AAChD,SAASC,SAAS,QAAQ,gBAAgB;AAC1C,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,UAAU,QAAQ,wBAAwB;AACnD,SAASC,QAAQ,QAAQ,gCAAgC;AACzD,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,UAAU,EAAEC,aAAa,QAAQ,2BAA2B;AACrE,SAASC,kBAAkB,QAAQ,yBAAyB;AAC5D,SAASC,iBAAiB,QAAQ,wBAAwB;AAC1D,SAASC,mBAAmB,QAAQ,0BAA0B;AAC9D,SAASC,gBAAgB,QAAQ,qCAAqC;AACtE,SAASC,UAAU,QAAQ,qBAAqB;AAChD,SAEEC,sBAAsB,QACjB,qCAAqC;AAC5C,OAAOC,MAAM,MAAM,iBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAUrC,MAAMC,uBAAuB,GAAGL,MAAM,CAAC,KAAK,EAAE;EAC5CM,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK;AACxC,CAAC,CAAC,CAAwC,CAAC;EAAEC;AAAoB,CAAC,MAAM;EACtEC,OAAO,EAAE,MAAM;EACfC,aAAa,EAAE,QAAQ;EACvBC,GAAG,EAAEH,mBAAmB,CAACI;AAC3B,CAAC,CAAC,CAAC;AAEH,MAAMC,0BAA0B,GAAGb,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO;EACtDS,OAAO,EAAE,MAAM;EACfK,cAAc,EAAE;AAClB,CAAC,CAAC,CAAC;AAEH,MAAMC,gCAAgC,GAAGf,MAAM,CAAC,KAAK,EAAE;EACrDM,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK;AACxC,CAAC,CAAC,CAAwC,CAAC;EAAEC;AAAoB,CAAC,MAAM;EACtEC,OAAO,EAAE,MAAM;EACfK,cAAc,EAAE,UAAU;EAC1BH,GAAG,EAAEH,mBAAmB,CAACQ;AAC3B,CAAC,CAAC,CAAC;AAEH,MAAMC,4BAA4B,GAAGjB,MAAM,CAAC,KAAK,EAAE;EACjDM,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK;AACxC,CAAC,CAAC,CAAwC,CAAC;EAAEC;AAAoB,CAAC,MAAM;EACtEC,OAAO,EAAE,MAAM;EACfS,UAAU,EAAE,QAAQ;EACpBP,GAAG,EAAEH,mBAAmB,CAACQ;AAC3B,CAAC,CAAC,CAAC;AAEH,MAAMG,uBAAuB,GAAGnB,MAAM,CAAC,KAAK,EAAE;EAC5CM,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK;AACxC,CAAC,CAAC,CAAwC,CAAC;EAAEC;AAAoB,CAAC,MAAM;EACtEY,eAAe,EAAEZ,mBAAmB,CAACQ;AACvC,CAAC,CAAC,CAAC;AAEH,MAAMK,QAAQ,GAAGA,CAA4B;EAC3CC,sBAAsB;EACtBC,yBAAyB;EACzB5C,gBAAgB,GAAGC,mBAAmB;EACtC4C,mBAAmB;EACnBC,WAAW,GAAG,CAAC;EACfC,gBAAgB;EAChBC,oBAAoB,EAAEC,wBAAwB;EAC9CC,YAAY,EAAEC,gBAAgB;EAC9BC,OAAO,EAAEC,WAAW;EACpBC,OAAO;EACPC,QAAQ,EAAEC,YAAY;EACtBC,UAAU;EACVC,aAAa;EACbC,YAAY;EACZC,gBAAgB;EAChBC,gBAAgB;EAChBC,SAAS;EACTC,qBAAqB;EACrBC,gBAAgB;EAChBC,eAAe;EACfC,aAAa;EACbC,OAAO,EAAEC,WAAW;EACpBC,SAAS,EAAEC,aAAa;EACxBC,WAAW,EAAEC,eAAe;EAC5BC,wBAAwB;EACxBC,uBAAuB;EACvBC,QAAQ;EACRC,oBAAoB;EACpBC,oBAAoB;EACpBC,aAAa;EACbC,oBAAoB;EACpBC,cAAc,GAAG,OAAO;EACxBC,cAAc,GAAG,EAAE;EACnBC,eAAe;EACfC,iBAAiB;EACjBC,kBAAkB;EAClBC,SAAS;EACTC,QAAQ;EACRC,iBAAiB;EACjBC;AACoB,CAAC,KAAK;EAC1B,MAAM3D,mBAAmB,GAAGT,sBAAsB,CAAC,CAAC;EACpD,MAAM;IAAEqE;EAAE,CAAC,GAAG1F,cAAc,CAAC,CAAC;EAE9B,MAAM,CAAC2F,aAAa,EAAEC,gBAAgB,CAAC,GAAG7F,QAAQ,CAChDoE,aAAa,IAAIlE,gBAAgB,CAAC,CAAC,CACrC,CAAC;EAED,MAAM,CAAC4F,IAAI,EAAEC,OAAO,CAAC,GAAG/F,QAAQ,CAAU,EAAE,CAAC;EAC7C,MAAM,CAACuE,SAAS,EAAEyB,YAAY,CAAC,GAAGhG,QAAQ,CAAUwE,aAAa,IAAI,IAAI,CAAC;EAC1E,MAAM,CAACH,OAAO,EAAE4B,UAAU,CAAC,GAAGjG,QAAQ,CAAUsE,WAAW,IAAI,IAAI,CAAC;EACpE,MAAM,CAACG,WAAW,EAAEyB,cAAc,CAAC,GAAGlG,QAAQ,CAC5C0E,eAAe,IAAI,KACrB,CAAC;EACD,MAAM,CAACtB,YAAY,EAAE+C,eAAe,CAAC,GACnCnG,QAAQ,CAAwCqD,gBAAgB,CAAC;EAEnE,MAAM,CAAC+C,MAAM,EAAEC,SAAS,CAAC,GAAGrG,QAAQ,CAAS,EAAE,CAAC;EAEhD,MAAM,CAACsG,cAAc,EAAEC,iBAAiB,CAAC,GACvCvG,QAAQ,CAAmCuD,WAAW,CAAC;EACzD,MAAM,CAACD,OAAO,EAAEkD,UAAU,CAAC,GACzBxG,QAAQ,CAAmCuD,WAAW,CAAC;EAEzD,MAAM,CAACkD,WAAW,EAAEC,cAAc,CAAC,GAAG1G,QAAQ,CAAwB,CAAC;EAEvE,MAAM,CAAC2G,YAAY,EAAEC,eAAe,CAAC,GAAG5G,QAAQ,CAAwB,CAAC,CAAC,CAAC;EAE3EF,SAAS,CAAC,MAAM;IACdiF,oBAAoB,GAAG4B,YAAY,CAAC;EACtC,CAAC,EAAE,CAACA,YAAY,EAAE5B,oBAAoB,CAAC,CAAC;EAExCjF,SAAS,CAAC,MAAM;IACdmF,oBAAoB,GAAG0B,YAAY,CAAC;EACtC,CAAC,EAAE,CAACA,YAAY,EAAE1B,oBAAoB,CAAC,CAAC;EAExC,MAAM,CAAC4B,UAAU,EAAEC,aAAa,CAAC,GAAG9G,QAAQ,CAAC;IAC3C+G,SAAS,EAAE/D,WAAW;IACtBgE,QAAQ,EAAE7B;EACZ,CAAC,CAAC;EAEF,MAAM,CAAC8B,UAAU,EAAEC,aAAa,CAAC,GAAGlH,QAAQ,CAAa;IACvDmH,aAAa,EAAE,EAAE;IACjBC,gBAAgB,EAAE,CAAC,CAAC;IACpBC,UAAU,EAAE/B,kBAAkB,EAAEgC,cAAc,IAAIlH,aAAa,CAAC,CAAC;EACnE,CAAC,CAAC;EAEF,MAAMmH,iBAAiB,GACrBvD,SAAS,IACTL,UAAU,IACVd,sBAAsB,IACtBC,yBAAyB;EAE3B,MAAM0E,gBAAgB,GAAGrG,mBAAmB,CAAC;IAC3CmC,OAAO,EAAEA,OAAO;IAChBmE,OAAO,EAAEnC,kBAAkB,EAAEmC;EAC/B,CAAC,CAAC;EAEF3H,SAAS,CAAC,MAAM;IACd,IAAI,CAACwG,cAAc,IAAIkB,gBAAgB,EAAE;MACvCjB,iBAAiB,CAACiB,gBAAgB,CAAC;IACrC;EACF,CAAC,EAAE,CAACA,gBAAgB,EAAElB,cAAc,CAAC,CAAC;EAEtC,MAAMoB,eAAe,GAAG3H,OAAO,CAC7B,OAAO;IACL4H,IAAI,EAAEd,UAAU,CAACE,SAAS;IAC1B5B,cAAc,EAAE0B,UAAU,CAACG,QAAQ;IACnCZ,MAAM;IACN9C,OAAO,EAAEkE,gBAAgB;IACzBI,IAAI,EAAEX,UAAU,EAAEE;EACpB,CAAC,CAAC,EACF,CACEN,UAAU,CAACE,SAAS,EACpBF,UAAU,CAACG,QAAQ,EACnBZ,MAAM,EACNoB,gBAAgB,EAChBP,UAAU,EAAEE,aAAa,CAE7B,CAAC;EAED,MAAM1D,QAAQ,GAAG5D,WAAW,CACzBgI,WAAW,IAAKA,WAAW,CAACC,EAAY,EACzC,EACF,CAAC;EAGDhI,SAAS,CAAC,MAAM;IACdgH,aAAa,CAAC;MACZC,SAAS,EAAE/D,WAAW;MACtBgE,QAAQ,EAAE7B;IACZ,CAAC,CAAC;EACJ,CAAC,EAAE,CAACnC,WAAW,EAAEmC,cAAc,CAAC,CAAC;EAGjCrF,SAAS,CAAC,MAAM;IACdgH,aAAa,CAAEiB,IAAI,KAAM;MACvBhB,SAAS,EAAE,CAAC;MACZC,QAAQ,EAAE9B,cAAc,IAAI,UAAU,GAAGC,cAAc,GAAG4C,IAAI,CAACf;IACjE,CAAC,CAAC,CAAC;EACL,CAAC,EAAE,CAAC1D,OAAO,EAAE4B,cAAc,EAAEC,cAAc,EAAEiB,MAAM,CAAC,CAAC;EAGrDtG,SAAS,CAAC,MAAM;IACd4F,kBAAkB,GAAGmB,UAAU,CAAC;EAClC,CAAC,EAAE,CAACnB,kBAAkB,EAAEmB,UAAU,CAAC,CAAC;EAGpC/G,SAAS,CAAC,MAAM;IACdY,SAAS,CAAC;MACRgH,eAAe;MACfrE,gBAAgB;MAChBG,OAAO;MACPuC,OAAO;MACPI,eAAe;MAEfH,YAAY,EAAExB,aAAa,GAAGwD,SAAS,GAAGhC;IAC5C,CAAC,CAAC;EACJ,CAAC,EAAE,CAAC0B,eAAe,EAAErE,gBAAgB,EAAEG,OAAO,EAAEgB,aAAa,CAAC,CAAC;EAG/D1E,SAAS,CAAC,MAAM;IACdmG,UAAU,CACRY,UAAU,CAACE,SAAS,KAAK/D,WAAW,IAClC6D,UAAU,CAACG,QAAQ,KAAK7B,cAAc,IACtCiB,MAAM,KAAK,EAAE,KACZ,CAACzC,UAAU,IAAIL,OAAO,KAAKgD,cAAc,CAAC,IAC3CR,IAAI,CAACmC,MAAM,KAAK,CACpB,CAAC;EACH,CAAC,EAAE,CACDjF,WAAW,EACX8C,IAAI,EACJxC,OAAO,EACPK,UAAU,EACV2C,cAAc,EACdO,UAAU,EACV1B,cAAc,EACdiB,MAAM,CACP,CAAC;EAGFtG,SAAS,CAAC,MAAM;IACdkG,YAAY,CAAEkC,SAAS,IAAK1D,aAAa,IAAI0D,SAAS,CAAC;EACzD,CAAC,EAAE,CAAC1D,aAAa,CAAC,CAAC;EAEnB1E,SAAS,CAAC,MAAM;IACdmG,UAAU,CAAEiC,SAAS,IAAK5D,WAAW,IAAI4D,SAAS,CAAC;EACrD,CAAC,EAAE,CAAC5D,WAAW,CAAC,CAAC;EAEjBxE,SAAS,CAAC,MAAM;IACdoG,cAAc,CAAEgC,SAAS,IAAKxD,eAAe,IAAIwD,SAAS,CAAC;EAC7D,CAAC,EAAE,CAACxD,eAAe,CAAC,CAAC;EAErB,MAAMyD,UAAU,GAAGpI,OAAO,CAAC,MAAM;IAC/B,MAAMqI,qBAAqB,GAAGtD,oBAAoB,IAChDrD,IAAA,CAAChB,UAAU;MACT4H,WAAW,EAAE1C,CAAC,CAAC,sBAAsB,CAAE;MACvC2C,OAAO,EAAE3C,CAAC,CAAC,yBAAyB;IAAE,CACvC,CACF;IAED,IAAItB,OAAO,EAAE;MACX,OAAOpB,gBAAgB,IAAImF,qBAAqB;IAClD;IAEA,IAAI3D,WAAW,EAAE;MACf,OAAO2D,qBAAqB;IAC9B;IAEA;EACF,CAAC,EAAE,CAACtD,oBAAoB,EAAEa,CAAC,EAAEtB,OAAO,EAAEI,WAAW,EAAExB,gBAAgB,CAAC,CAAC;EAErE,MAAMsF,iBAAiB,GAAGxI,OAAO,CAAC,MAAM;IACtC,OACE,CAAC8E,QAAQ,IACNe,aAAa,KAAK,OAAO,IAAIN,kBAAmB,IACjDpF,gBAAgB,CAAC+H,MAAM,GAAG,CAAC,IAC3BpF,sBAAsB,IACtBC,yBAAyB,KACzBnB,KAAA,CAACa,4BAA4B;MAACT,mBAAmB,EAAEA,mBAAoB;MAAAyG,QAAA,GACpE3D,QAAQ,IACPpD,IAAA,CAACiB,uBAAuB;QAACX,mBAAmB,EAAEA,mBAAoB;QAAAyG,QAAA,EAChE/G,IAAA,CAACJ,UAAU;UAACoH,KAAK,EAAC,eAAe;UAAAD,QAAA,EAAE3D;QAAQ,CAAa;MAAC,CAClC,CAC1B,EAEAe,aAAa,KAAK,OAAO,IAAIN,kBAAkB,IAC9C7D,IAAA,CAACX,aAAa;QACZoG,aAAa,EAAEA,aAAc;QAC7B5B,kBAAkB,EAAEA,kBAAmB;QACvC2B,UAAU,EAAEA;MAAW,CACxB,CACF,EAEA/G,gBAAgB,CAAC+H,MAAM,GAAG,CAAC,IAC1BxG,IAAA,CAACd,cAAc;QACbT,gBAAgB,EAAEA,gBAAiB;QACnC0F,aAAa,EAAEA,aAAc;QAC7BC,gBAAgB,EAAEA;MAAiB,CACpC,CACF,EAEAhD,sBAAsB,EAEtBC,yBAAyB,IACxBrB,IAAA,CAACb,UAAU;QACT8H,OAAO,EAAEjH,IAAA,CAACZ,QAAQ,IAAE,CAAE;QACtB8H,SAAS,EAAEhD,CAAC,CAAC,6BAA6B,CAAE;QAC5CiD,aAAa,EAAC,WAAW;QACzBC,aAAa,EAAC,OAAO;QAAAL,QAAA,EAEpB1F;MAAyB,CAChB,CACb;IAAA,CAC2B,CAC/B;EAEL,CAAC,EAAE,CACDD,sBAAsB,EACtBC,yBAAyB,EACzB5C,gBAAgB,EAChB0F,aAAa,EACbf,QAAQ,EACR9C,mBAAmB,EACnBuD,kBAAkB,EAClB2B,UAAU,EACVtB,CAAC,CACF,CAAC;EAEF,MAAMzC,oBAAoB,GAAGnD,OAAO,CAClC,MAAMoD,wBAAwB,IAAI+B,cAAc,KAAK,UAAU,EAC/D,CAAC/B,wBAAwB,EAAE+B,cAAc,CAC3C,CAAC;EAED,MAAM;IAAE4D,OAAO,EAAEC;EAAc,CAAC,GAAG/H,aAAa,CAAC;IAC/CgI,gBAAgB,EAAElD,IAAI,CAACmC,MAAM;IAC7BlB,SAAS,EAAEF,UAAU,CAACE,SAAS;IAC/BC,QAAQ,EAAEH,UAAU,CAACG,QAAQ;IAC7BzB;EACF,CAAC,CAAC;EAEF,MAAM0D,sBAAsB,GAAG7H,gBAAgB,CAAC;IAC9CmE,SAAS;IACTP,aAAa;IACbc,IAAI;IACJC,OAAO;IACPU,WAAW;IACXC,cAAc;IACdvB,cAAc,EAAE0B,UAAU,CAACG,QAAQ;IACnCW,IAAI,EAAEd,UAAU,CAACE;EACnB,CAAC,CAAC;EAEF,OACEpF,KAAA,CAACC,uBAAuB;IAACG,mBAAmB,EAAEA,mBAAoB;IAAAyG,QAAA,GAC/DpF,YAAY,IACX3B,IAAA,CAACpB,GAAG;MAAAmI,QAAA,EACF/G,IAAA,CAAClB,OAAO;QAAC2I,QAAQ,EAAC,OAAO;QAACC,IAAI,EAAE/F;MAAa,CAAE;IAAC,CAC7C,CACN,EAEAmE,iBAAiB,IAChB9F,IAAA,CAACjB,WAAW;MACV+H,iBAAiB,EAAEA,iBAAkB;MACrCjF,OAAO,EAAEK,UAAU,GAAG6D,gBAAgB,GAAGQ,SAAU;MACnD/D,qBAAqB,EAAEA,qBAAsB;MAC7CmF,UAAU,EAAE/E,OAAQ;MACpBgF,eAAe,EAAE1F,UAAU,GAAG6C,UAAU,GAAGwB,SAAU;MACrDsB,cAAc,EAAEtF,SAAS,GAAGqC,SAAS,GAAG2B,SAAU;MAClD5C,eAAe,EAAEA;IAAgB,CAClC,CACF,EAEA,CAACrC,mBAAmB,IAAIoB,eAAe,KACtCxC,KAAA,CAACS,0BAA0B;MAAAoG,QAAA,GACzB/G,IAAA,CAACnB,eAAe;QACdwF,IAAI,EAAEA,IAAK;QACXyD,SAAS,EAAExG,mBAAoB;QAC/B4D,YAAY,EAAEA,YAAa;QAC3BC,eAAe,EAAEA;MAAgB,CAClC,CAAC,EACD,CAACW,iBAAiB,IAAIgB,iBAAiB;IAAA,CACd,CAC7B,EAEA,CAAChB,iBAAiB,IACjB,CAACxE,mBAAmB,IACpB,CAACoB,eAAe,IAChBoE,iBAAiB,IACf9G,IAAA,CAACa,gCAAgC;MAC/BP,mBAAmB,EAAEA,mBAAoB;MAAAyG,QAAA,EAExCD;IAAiB,CACc,CACnC,EAEF3C,aAAa,KAAK,OAAO,IAAIN,kBAAkB,IAC9C7D,IAAA,CAACR,kBAAkB;MACjBwG,OAAO,EAAEnC,kBAAkB,CAACmC,OAAQ;MACpC3B,IAAI,EAAEA,IAAK;MACXW,WAAW,EAAEA,WAAY;MACzB0B,UAAU,EAAEA,UAAW;MACvBjF,oBAAoB,EAAEA,oBAAqB;MAC3CO,QAAQ,EAAEC,YAAY,IAAID,QAAS;MACnCS,gBAAgB,EAAEA,gBAAiB;MACnCC,eAAe,EAAEA,eAAgB;MACjCE,OAAO,EAAEA,OAAQ;MACjBE,SAAS,EAAEA,SAAU;MACrBE,WAAW,EAAEA,WAAY;MACzBG,uBAAuB,EAAEA,uBAAwB;MACjDI,aAAa,EAAEA,aAAc;MAC7B6B,UAAU,EAAEA,UAAW;MACvBoC,sBAAsB,EAAEA,sBAAuB;MAC/CtC,YAAY,EAAEA,YAAa;MAC3BC,eAAe,EAAEA,eAAgB;MACjCM,aAAa,EAAEA,aAAc;MAC7B5B,kBAAkB,EAAEA,kBAAmB;MACvC2B,UAAU,EAAEA,UAAW;MACvB1B,SAAS,EAAEA;IAAU,CACtB,CACF,EACA,CAACK,aAAa,KAAK,MAAM,IAAIA,aAAa,KAAK,MAAM,KACpDP,iBAAiB,IACf5D,IAAA,CAACP,iBAAiB;MAChB0E,aAAa,EAAEA,aAAc;MAC7BE,IAAI,EAAEA,IAAK;MACXW,WAAW,EAAEA,WAAY;MACzB0B,UAAU,EAAEA,UAAW;MACvB1E,QAAQ,EAAEC,YAAY,IAAID,QAAS;MACnCS,gBAAgB,EAAEA,gBAAiB;MACnCC,eAAe,EAAEA,eAAgB;MACjCE,OAAO,EAAEA,OAAQ;MACjBE,SAAS,EAAEA,SAAU;MACrBE,WAAW,EAAEA,WAAY;MACzBG,uBAAuB,EAAEA,uBAAwB;MACjDI,aAAa,EAAEA,aAAc;MAC7B6B,UAAU,EAAEA,UAAW;MACvBoC,sBAAsB,EAAEA,sBAAuB;MAC/CtC,YAAY,EAAEA,YAAa;MAC3BC,eAAe,EAAEA,eAAgB;MACjCvB,iBAAiB,EAAEA,iBAAkB;MACrCE,SAAS,EAAEA;IAAU,CACtB,CACF,EAEF3B,aAAa,IACZnC,IAAA,CAACV,UAAU;MACTyI,gBAAgB,EAAE7D,CAAC,CAAC,iBAAiB,CAAE;MACvC9B,YAAY,EAAEA,YAAa;MAC3BC,gBAAgB,EAAEA,gBAAiB;MACnCC,gBAAgB,EAAEA,gBAAiB;MACnCqF,UAAU,EAAE/E,OAAQ;MACpBoF,cAAc,EAAE9E,wBAAyB;MACzCmE,OAAO,EAAEC,aAAc;MACvBW,aAAa,EAAE/D,CAAC,CAAC,qBAAqB,CAAE;MACxCgE,YAAY,EAAEnE,QAAS;MACvBoE,WAAW,EAAEnE,iBAAkB;MAC/BoE,SAAS,EAAElE,CAAC,CAAC,iBAAiB,CAAE;MAChCD,kBAAkB,EAAEoB,aAAc;MAClCC,SAAS,EAAEF,UAAU,CAACE,SAAU;MAChCC,QAAQ,EAAEH,UAAU,CAACG,QAAS;MAC9B8C,aAAa,EAAEnE,CAAC,CAAC,qBAAqB,CAAE;MACxCoE,gBAAgB,EAAEpE,CAAC,CAAC,wBAAwB,CAAE;MAC9CJ,SAAS,EAAEA,SAAU;MACrByD,gBAAgB,EAAElD,IAAI,CAACmC,MAAO;MAC9B+B,OAAO,EAAE9E;IAAe,CACzB,CACF;EAAA,CACsB,CAAC;AAE9B,CAAC;AAED,MAAM+E,gBAAgB,GAAGrK,IAAI,CAACgD,QAAQ,CAAsB;AAC5DqH,gBAAgB,CAACC,WAAW,GAAG,UAAU;AAEzC,SAASD,gBAAgB,IAAIrH,QAAQ","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DataView.js","names":["memo","useCallback","useEffect","useMemo","useState","useTranslation","availableLayouts","allAvailableLayouts","densityValues","Box","BulkActionsMenu","Callout","DataFilters","EmptyState","fetchData","LayoutSwitcher","MenuButton","MoreIcon","TableSettings","Pagination","usePagination","TableLayoutContent","CardLayoutContent","useFilterConversion","useRowReordering","Typography","useOdysseyDesignTokens","styled","createUniqueId","jsx","_jsx","jsxs","_jsxs","StyledDataViewContainer","shouldForwardProp","prop","odysseyDesignTokens","display","flexDirection","gap","Spacing4","StyledBulkActionsContainer","justifyContent","StyledAdditionalActionsContainer","Spacing2","StyledAdditionalActionsInner","alignItems","StyledMetaTextContainer","marginInlineEnd","DataView","additionalActionButton","additionalActionMenuItems","bulkActionMenuItems","currentPage","emptyPlaceholder","enableVirtualization","enableVirtualizationProp","errorMessage","errorMessageProp","filters","filtersProp","getData","getRowId","getRowIdProp","hasFilters","hasPagination","hasPageInput","hasRowCountInput","hasRowCountLabel","hasSearch","hasSearchSubmitButton","hasRowReordering","hasRowSelection","initialLayout","isEmpty","isEmptyProp","isLoading","isLoadingProp","isNoResults","isNoResultsProp","isPaginationMoreDisabled","isRowReorderingDisabled","metaText","noResultsPlaceholder","onChangeRowSelection","onReorderRows","onRowSelectionChange","paginationType","resultsPerPage","searchDelayTime","cardLayoutOptions","tableLayoutOptions","totalRows","maxPages","maxResultsPerPage","onPaginationChange","t","currentLayout","setCurrentLayout","data","setData","setIsLoading","setIsEmpty","setIsNoResults","setErrorMessage","search","setSearch","initialFilters","setInitialFilters","setFilters","draggingRow","setDraggingRow","rowSelection","setRowSelection","pagination","setPagination","pageIndex","pageSize","tableState","setTableState","columnSorting","columnVisibility","rowDensity","initialDensity","shouldShowFilters","availableFilters","columns","dataQueryParams","page","sort","row","index","parentRow","id","prev","undefined","length","prevValue","emptyState","noResultsInnerContent","description","heading","additionalActions","children","color","endIcon","ariaLabel","buttonVariant","menuAlignment","lastRow","lastRowOnPage","currentRowsCount","rowReorderingUtilities","severity","text","isDisabled","onChangeFilters","onChangeSearch","menuItems","currentPageLabel","isMoreDisabled","loadMoreLabel","maxPageIndex","maxPageSize","nextLabel","previousLabel","rowsPerPageLabel","variant","MemoizedDataView","displayName"],"sources":["../../../../src/labs/DataView/DataView.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo, useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n MRT_Row,\n MRT_RowData,\n MRT_RowSelectionState,\n} from \"material-react-table\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n availableLayouts as allAvailableLayouts,\n densityValues,\n} from \"./constants.js\";\nimport {\n DataLayout,\n UniversalProps,\n ViewProps,\n TableState,\n} from \"./componentTypes.js\";\nimport { Box } from \"../../Box.js\";\nimport { BulkActionsMenu } from \"./BulkActionsMenu.js\";\nimport { Callout } from \"../../Callout.js\";\nimport { DataFilters } from \"../DataFilters.js\";\nimport { EmptyState } from \"../../EmptyState.js\";\nimport { fetchData } from \"./fetchData.js\";\nimport { LayoutSwitcher } from \"./LayoutSwitcher.js\";\nimport { MenuButton } from \"../../Buttons/index.js\";\nimport { MoreIcon } from \"../../icons.generated/index.js\";\nimport { TableSettings } from \"./TableSettings.js\";\nimport { Pagination, usePagination } from \"../../Pagination/index.js\";\nimport { TableLayoutContent } from \"./TableLayoutContent.js\";\nimport { CardLayoutContent } from \"./CardLayoutContent.js\";\nimport { useFilterConversion } from \"./useFilterConversion.js\";\nimport { useRowReordering } from \"../../DataTable/useRowReordering.js\";\nimport { Typography } from \"../../Typography.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport styled from \"@emotion/styled\";\nimport { createUniqueId } from \"../../createUniqueId.js\";\n\nexport type DataViewProps<TData extends MRT_RowData> = UniversalProps<TData> &\n ViewProps<TData, DataLayout>;\ntype DataViewComponent = (<TData extends MRT_RowData>(\n props: DataViewProps<TData>,\n) => JSX.Element) & {\n displayName?: string;\n};\n\nconst StyledDataViewContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n flexDirection: \"column\",\n gap: odysseyDesignTokens.Spacing4,\n}));\n\nconst StyledBulkActionsContainer = styled(\"div\")(() => ({\n display: \"flex\",\n justifyContent: \"space-between\",\n}));\n\nconst StyledAdditionalActionsContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n justifyContent: \"flex-end\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst StyledAdditionalActionsInner = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst StyledMetaTextContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n marginInlineEnd: odysseyDesignTokens.Spacing2,\n}));\n\nconst DataView = <TData extends MRT_RowData>({\n additionalActionButton,\n additionalActionMenuItems,\n availableLayouts = allAvailableLayouts,\n bulkActionMenuItems,\n currentPage = 1,\n emptyPlaceholder,\n enableVirtualization: enableVirtualizationProp,\n errorMessage: errorMessageProp,\n filters: filtersProp,\n getData,\n getRowId: getRowIdProp,\n hasFilters,\n hasPagination,\n hasPageInput,\n hasRowCountInput,\n hasRowCountLabel,\n hasSearch,\n hasSearchSubmitButton,\n hasRowReordering,\n hasRowSelection,\n initialLayout,\n isEmpty: isEmptyProp,\n isLoading: isLoadingProp,\n isNoResults: isNoResultsProp,\n isPaginationMoreDisabled,\n isRowReorderingDisabled,\n metaText,\n noResultsPlaceholder,\n onChangeRowSelection,\n onReorderRows,\n onRowSelectionChange,\n paginationType = \"paged\",\n resultsPerPage = 20,\n searchDelayTime,\n cardLayoutOptions,\n tableLayoutOptions,\n totalRows,\n maxPages,\n maxResultsPerPage,\n onPaginationChange,\n}: DataViewProps<TData>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const [currentLayout, setCurrentLayout] = useState<DataLayout>(\n initialLayout ?? availableLayouts[0],\n );\n\n const [data, setData] = useState<TData[]>([]);\n const [isLoading, setIsLoading] = useState<boolean>(isLoadingProp ?? true);\n const [isEmpty, setIsEmpty] = useState<boolean>(isEmptyProp ?? true);\n const [isNoResults, setIsNoResults] = useState<boolean>(\n isNoResultsProp ?? false,\n );\n const [errorMessage, setErrorMessage] =\n useState<UniversalProps<TData>[\"errorMessage\"]>(errorMessageProp);\n\n const [search, setSearch] = useState<string>(\"\");\n\n const [initialFilters, setInitialFilters] =\n useState<UniversalProps<TData>[\"filters\"]>(filtersProp);\n const [filters, setFilters] =\n useState<UniversalProps<TData>[\"filters\"]>(filtersProp);\n\n const [draggingRow, setDraggingRow] = useState<MRT_Row<TData> | null>();\n\n const [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n\n useEffect(() => {\n onChangeRowSelection?.(rowSelection);\n }, [rowSelection, onChangeRowSelection]);\n\n useEffect(() => {\n onRowSelectionChange?.(rowSelection);\n }, [rowSelection, onRowSelectionChange]);\n\n const [pagination, setPagination] = useState({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n\n const [tableState, setTableState] = useState<TableState>({\n columnSorting: [],\n columnVisibility: {},\n rowDensity: tableLayoutOptions?.initialDensity ?? densityValues[0],\n });\n\n const shouldShowFilters =\n hasSearch ||\n hasFilters ||\n additionalActionButton ||\n additionalActionMenuItems;\n\n const availableFilters = useFilterConversion({\n filters: filters,\n columns: tableLayoutOptions?.columns,\n });\n\n useEffect(() => {\n if (!initialFilters && availableFilters) {\n setInitialFilters(availableFilters);\n }\n }, [availableFilters, initialFilters]);\n\n const dataQueryParams = useMemo(\n () => ({\n page: pagination.pageIndex,\n resultsPerPage: pagination.pageSize,\n search,\n filters: availableFilters,\n sort: tableState?.columnSorting,\n }),\n [\n pagination.pageIndex,\n pagination.pageSize,\n search,\n availableFilters,\n tableState?.columnSorting,\n ],\n );\n\n const getRowId = useCallback<Required<UniversalProps<TData>>[\"getRowId\"]>(\n (row, index, parentRow) => {\n if (getRowIdProp) {\n return getRowIdProp(row, index, parentRow);\n }\n if (row.id) {\n return row.id as string;\n }\n return createUniqueId();\n },\n [getRowIdProp],\n );\n\n // Update pagination state if props change\n useEffect(() => {\n setPagination({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n }, [currentPage, resultsPerPage]);\n\n // Reset pagination if search or filters change\n useEffect(() => {\n setPagination((prev) => ({\n pageIndex: 1,\n pageSize: paginationType == \"loadMore\" ? resultsPerPage : prev.pageSize,\n }));\n }, [filters, paginationType, resultsPerPage, search]);\n\n // Fire onPaginationChange if pagination changes\n useEffect(() => {\n onPaginationChange?.(pagination);\n }, [onPaginationChange, pagination]);\n\n // Retrieve the data\n useEffect(() => {\n fetchData({\n dataQueryParams,\n errorMessageProp,\n getData,\n setData,\n setErrorMessage,\n // Only include setIsLoading if that's not being controlled manually\n setIsLoading: isLoadingProp ? undefined : setIsLoading,\n });\n }, [dataQueryParams, errorMessageProp, getData, isLoadingProp]);\n\n // When data is updated\n useEffect(() => {\n setIsEmpty(\n pagination.pageIndex === currentPage &&\n pagination.pageSize === resultsPerPage &&\n search === \"\" &&\n (!hasFilters || filters === initialFilters) &&\n data.length === 0,\n );\n }, [\n currentPage,\n data,\n filters,\n hasFilters,\n initialFilters,\n pagination,\n resultsPerPage,\n search,\n ]);\n\n // Change loading, empty and noResults state on prop change\n useEffect(() => {\n setIsLoading((prevValue) => isLoadingProp ?? prevValue);\n }, [isLoadingProp]);\n\n useEffect(() => {\n setIsEmpty((prevValue) => isEmptyProp ?? prevValue);\n }, [isEmptyProp]);\n\n useEffect(() => {\n setIsNoResults((prevValue) => isNoResultsProp ?? prevValue);\n }, [isNoResultsProp]);\n\n const emptyState = useMemo(() => {\n const noResultsInnerContent = noResultsPlaceholder || (\n <EmptyState\n description={t(\"table.noresults.text\")}\n heading={t(\"table.noresults.heading\")}\n />\n );\n\n if (isEmpty) {\n return emptyPlaceholder || noResultsInnerContent;\n }\n\n if (isNoResults) {\n return noResultsInnerContent;\n }\n\n return;\n }, [noResultsPlaceholder, t, isEmpty, isNoResults, emptyPlaceholder]);\n\n const additionalActions = useMemo(() => {\n return (\n (metaText ||\n (currentLayout === \"table\" && tableLayoutOptions) ||\n availableLayouts.length > 1 ||\n additionalActionButton ||\n additionalActionMenuItems) && (\n <StyledAdditionalActionsInner odysseyDesignTokens={odysseyDesignTokens}>\n {metaText && (\n <StyledMetaTextContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Typography color=\"textSecondary\">{metaText}</Typography>\n </StyledMetaTextContainer>\n )}\n\n {currentLayout === \"table\" && tableLayoutOptions && (\n <TableSettings\n setTableState={setTableState}\n tableLayoutOptions={tableLayoutOptions}\n tableState={tableState}\n />\n )}\n\n {availableLayouts.length > 1 && (\n <LayoutSwitcher\n availableLayouts={availableLayouts}\n currentLayout={currentLayout}\n setCurrentLayout={setCurrentLayout}\n />\n )}\n\n {additionalActionButton}\n\n {additionalActionMenuItems && (\n <MenuButton\n endIcon={<MoreIcon />}\n ariaLabel={t(\"table.moreactions.arialabel\")}\n buttonVariant=\"secondary\"\n menuAlignment=\"right\"\n >\n {additionalActionMenuItems}\n </MenuButton>\n )}\n </StyledAdditionalActionsInner>\n )\n );\n }, [\n additionalActionButton,\n additionalActionMenuItems,\n availableLayouts,\n currentLayout,\n metaText,\n odysseyDesignTokens,\n tableLayoutOptions,\n tableState,\n t,\n ]);\n\n const enableVirtualization = useMemo(\n () => enableVirtualizationProp ?? paginationType === \"loadMore\",\n [enableVirtualizationProp, paginationType],\n );\n\n const { lastRow: lastRowOnPage } = usePagination({\n currentRowsCount: data.length,\n pageIndex: pagination.pageIndex,\n pageSize: pagination.pageSize,\n totalRows,\n });\n\n const rowReorderingUtilities = useRowReordering({\n totalRows,\n onReorderRows,\n data,\n setData,\n draggingRow,\n setDraggingRow,\n resultsPerPage: pagination.pageSize,\n page: pagination.pageIndex,\n });\n\n return (\n <StyledDataViewContainer odysseyDesignTokens={odysseyDesignTokens}>\n {errorMessage && (\n <Box>\n <Callout severity=\"error\" text={errorMessage} />\n </Box>\n )}\n\n {shouldShowFilters && (\n <DataFilters\n additionalActions={additionalActions}\n filters={hasFilters ? availableFilters : undefined}\n hasSearchSubmitButton={hasSearchSubmitButton}\n isDisabled={isEmpty}\n onChangeFilters={hasFilters ? setFilters : undefined}\n onChangeSearch={hasSearch ? setSearch : undefined}\n searchDelayTime={searchDelayTime}\n />\n )}\n\n {(bulkActionMenuItems || hasRowSelection) && (\n <StyledBulkActionsContainer>\n <BulkActionsMenu\n data={data}\n menuItems={bulkActionMenuItems}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n />\n {!shouldShowFilters && additionalActions}\n </StyledBulkActionsContainer>\n )}\n\n {!shouldShowFilters &&\n !bulkActionMenuItems &&\n !hasRowSelection &&\n additionalActions && (\n <StyledAdditionalActionsContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {additionalActions}\n </StyledAdditionalActionsContainer>\n )}\n\n {currentLayout === \"table\" && tableLayoutOptions && (\n <TableLayoutContent\n columns={tableLayoutOptions.columns}\n data={data}\n draggingRow={draggingRow}\n emptyState={emptyState}\n enableVirtualization={enableVirtualization}\n getRowId={getRowIdProp || getRowId}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n onReorderRows={onReorderRows}\n pagination={pagination}\n rowReorderingUtilities={rowReorderingUtilities}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n setTableState={setTableState}\n tableLayoutOptions={tableLayoutOptions}\n tableState={tableState}\n totalRows={totalRows}\n />\n )}\n {(currentLayout === \"list\" || currentLayout === \"grid\") &&\n cardLayoutOptions && (\n <CardLayoutContent\n currentLayout={currentLayout}\n data={data}\n draggingRow={draggingRow}\n emptyState={emptyState}\n getRowId={getRowIdProp || getRowId}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n onReorderRows={onReorderRows}\n pagination={pagination}\n rowReorderingUtilities={rowReorderingUtilities}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n cardLayoutOptions={cardLayoutOptions}\n totalRows={totalRows}\n />\n )}\n\n {hasPagination && (\n <Pagination\n currentPageLabel={t(\"pagination.page\")}\n hasPageInput={hasPageInput}\n hasRowCountInput={hasRowCountInput}\n hasRowCountLabel={hasRowCountLabel}\n isDisabled={isEmpty}\n isMoreDisabled={isPaginationMoreDisabled}\n lastRow={lastRowOnPage}\n loadMoreLabel={t(\"pagination.loadmore\")}\n maxPageIndex={maxPages}\n maxPageSize={maxResultsPerPage}\n nextLabel={t(\"pagination.next\")}\n onPaginationChange={setPagination}\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n previousLabel={t(\"pagination.previous\")}\n rowsPerPageLabel={t(\"pagination.rowsperpage\")}\n totalRows={totalRows}\n currentRowsCount={data.length}\n variant={paginationType}\n />\n )}\n </StyledDataViewContainer>\n );\n};\n\nconst MemoizedDataView = memo(DataView) as DataViewComponent;\nMemoizedDataView.displayName = \"DataView\";\n\nexport { MemoizedDataView as DataView };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,7 +17,7 @@ import { MenuItem } from "../../Buttons/index.js";
|
|
|
17
17
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
18
18
|
const RowActions = ({
|
|
19
19
|
isRowReorderingDisabled,
|
|
20
|
-
row,
|
|
20
|
+
row: incomingRow,
|
|
21
21
|
rowActionMenuItems,
|
|
22
22
|
rowIndex,
|
|
23
23
|
totalRows,
|
|
@@ -26,6 +26,7 @@ const RowActions = ({
|
|
|
26
26
|
const {
|
|
27
27
|
t
|
|
28
28
|
} = useTranslation();
|
|
29
|
+
const row = incomingRow.original ? incomingRow.original : incomingRow;
|
|
29
30
|
const handleToFrontClick = useCallback(() => {
|
|
30
31
|
if (updateRowOrder) {
|
|
31
32
|
updateRowOrder({
|