@douyinfe/semi-ui 2.2.2 → 2.4.0-beta.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/_base/_story/a11y.jsx +6 -6
- package/_base/_story/a11y.scss +0 -1
- package/_base/_story/index.scss +2 -5
- package/_utils/hooks/usePrevFocus.ts +16 -0
- package/_utils/index.ts +4 -0
- package/anchor/_story/anchor.stories.js +1 -1
- package/anchor/index.tsx +5 -2
- package/anchor/link.tsx +29 -4
- package/autoComplete/index.tsx +28 -1
- package/avatar/_story/avatar.stories.js +4 -4
- package/avatar/index.tsx +6 -4
- package/banner/index.tsx +2 -1
- package/breadcrumb/_story/breadcrumb.stories.js +22 -8
- package/breadcrumb/index.tsx +8 -1
- package/breadcrumb/item.tsx +1 -1
- package/button/Button.tsx +4 -0
- package/button/__test__/button.test.js +1 -1
- package/button/_story/button.stories.js +10 -10
- package/button/buttonGroup.tsx +4 -2
- package/button/splitButtonGroup.tsx +5 -2
- package/card/_story/card.stories.js +8 -1
- package/card/_story/card.stories.tsx +3 -0
- package/card/index.tsx +5 -2
- package/cascader/index.tsx +33 -5
- package/checkbox/_story/checkbox.stories.js +19 -12
- package/checkbox/checkbox.tsx +40 -5
- package/checkbox/checkboxGroup.tsx +30 -5
- package/checkbox/checkboxInner.tsx +25 -2
- package/collapse/index.tsx +1 -1
- package/collapse/item.tsx +12 -7
- package/collapsible/index.tsx +4 -2
- package/configProvider/_story/configProvider.stories.tsx +27 -0
- package/datePicker/datePicker.tsx +19 -0
- package/dist/css/semi.css +23 -12
- package/dist/css/semi.min.css +1 -1
- package/dist/umd/semi-ui.js +2502 -1249
- package/dist/umd/semi-ui.js.map +1 -1
- package/dist/umd/semi-ui.min.js +1 -1
- package/dist/umd/semi-ui.min.js.map +1 -1
- package/dropdown/dropdownItem.tsx +1 -1
- package/dropdown/dropdownMenu.tsx +1 -1
- package/dropdown/index.tsx +11 -3
- package/empty/index.tsx +4 -4
- package/form/_story/FormApi/formApiDemo.jsx +3 -2
- package/form/_story/Validate/validateDemo.jsx +1 -1
- package/form/_story/demo.jsx +12 -3
- package/form/_story/form.stories.js +0 -7
- package/form/baseForm.tsx +2 -0
- package/form/errorMessage.tsx +13 -2
- package/form/hoc/withField.tsx +37 -8
- package/form/index.tsx +0 -2
- package/form/interface.ts +2 -0
- package/form/label.tsx +4 -2
- package/input/index.tsx +49 -4
- package/input/inputGroup.tsx +9 -4
- package/input/textarea.tsx +30 -9
- package/inputNumber/__test__/inputNumber.test.js +36 -8
- package/inputNumber/index.tsx +30 -2
- package/layout/Sider.tsx +6 -2
- package/layout/index.tsx +4 -3
- package/lib/cjs/_utils/hooks/usePrevFocus.d.ts +2 -0
- package/lib/cjs/_utils/hooks/usePrevFocus.js +30 -0
- package/lib/cjs/_utils/index.d.ts +1 -0
- package/lib/cjs/_utils/index.js +6 -1
- package/lib/cjs/anchor/index.d.ts +2 -0
- package/lib/cjs/anchor/index.js +6 -1
- package/lib/cjs/anchor/link.d.ts +4 -1
- package/lib/cjs/anchor/link.js +39 -5
- package/lib/cjs/autoComplete/index.d.ts +17 -0
- package/lib/cjs/autoComplete/index.js +21 -2
- package/lib/cjs/avatar/index.d.ts +4 -3
- package/lib/cjs/avatar/index.js +15 -11
- package/lib/cjs/banner/index.js +4 -2
- package/lib/cjs/breadcrumb/index.d.ts +3 -0
- package/lib/cjs/breadcrumb/index.js +10 -4
- package/lib/cjs/breadcrumb/item.js +2 -2
- package/lib/cjs/button/Button.d.ts +2 -0
- package/lib/cjs/button/Button.js +4 -2
- package/lib/cjs/button/buttonGroup.d.ts +3 -0
- package/lib/cjs/button/buttonGroup.js +8 -4
- package/lib/cjs/button/index.d.ts +1 -0
- package/lib/cjs/button/splitButtonGroup.d.ts +3 -0
- package/lib/cjs/button/splitButtonGroup.js +5 -2
- package/lib/cjs/card/index.d.ts +3 -0
- package/lib/cjs/card/index.js +3 -1
- package/lib/cjs/cascader/index.d.ts +14 -0
- package/lib/cjs/cascader/index.js +35 -7
- package/lib/cjs/checkbox/checkbox.d.ts +21 -1
- package/lib/cjs/checkbox/checkbox.js +51 -17
- package/lib/cjs/checkbox/checkboxGroup.d.ts +13 -1
- package/lib/cjs/checkbox/checkboxGroup.js +16 -3
- package/lib/cjs/checkbox/checkboxInner.d.ts +15 -0
- package/lib/cjs/checkbox/checkboxInner.js +20 -3
- package/lib/cjs/collapse/item.d.ts +2 -1
- package/lib/cjs/collapse/item.js +12 -2
- package/lib/cjs/collapsible/index.d.ts +1 -0
- package/lib/cjs/collapsible/index.js +4 -2
- package/lib/cjs/datePicker/datePicker.d.ts +12 -0
- package/lib/cjs/datePicker/datePicker.js +14 -1
- package/lib/cjs/dropdown/dropdownItem.js +3 -1
- package/lib/cjs/dropdown/dropdownMenu.js +4 -1
- package/lib/cjs/dropdown/index.d.ts +10 -3
- package/lib/cjs/form/baseForm.d.ts +9 -0
- package/lib/cjs/form/baseForm.js +3 -1
- package/lib/cjs/form/errorMessage.d.ts +4 -0
- package/lib/cjs/form/errorMessage.js +21 -3
- package/lib/cjs/form/field.d.ts +7 -0
- package/lib/cjs/form/hoc/withField.js +49 -16
- package/lib/cjs/form/index.d.ts +0 -1
- package/lib/cjs/form/interface.d.ts +2 -0
- package/lib/cjs/form/label.d.ts +2 -0
- package/lib/cjs/form/label.js +5 -2
- package/lib/cjs/input/index.d.ts +16 -0
- package/lib/cjs/input/index.js +51 -15
- package/lib/cjs/input/inputGroup.d.ts +2 -1
- package/lib/cjs/input/inputGroup.js +11 -1
- package/lib/cjs/input/textarea.js +16 -3
- package/lib/cjs/inputNumber/index.d.ts +8 -0
- package/lib/cjs/inputNumber/index.js +35 -4
- package/lib/cjs/layout/Sider.d.ts +4 -0
- package/lib/cjs/layout/Sider.js +4 -1
- package/lib/cjs/layout/index.js +2 -0
- package/lib/cjs/list/index.d.ts +4 -4
- package/lib/cjs/list/item.js +0 -1
- package/lib/cjs/modal/Modal.js +2 -0
- package/lib/cjs/modal/ModalContent.d.ts +3 -1
- package/lib/cjs/modal/ModalContent.js +47 -5
- package/lib/cjs/navigation/Item.d.ts +4 -2
- package/lib/cjs/navigation/Item.js +25 -5
- package/lib/cjs/navigation/SubNav.d.ts +4 -2
- package/lib/cjs/navigation/SubNav.js +8 -1
- package/lib/cjs/navigation/index.js +2 -0
- package/lib/cjs/notification/notice.d.ts +1 -1
- package/lib/cjs/notification/notice.js +32 -22
- package/lib/cjs/pagination/index.js +16 -6
- package/lib/cjs/popover/index.js +7 -3
- package/lib/cjs/progress/index.d.ts +8 -0
- package/lib/cjs/progress/index.js +42 -9
- package/lib/cjs/radio/radio.d.ts +6 -1
- package/lib/cjs/radio/radio.js +17 -5
- package/lib/cjs/radio/radioGroup.d.ts +16 -1
- package/lib/cjs/radio/radioGroup.js +18 -3
- package/lib/cjs/radio/radioInner.d.ts +6 -1
- package/lib/cjs/radio/radioInner.js +11 -3
- package/lib/cjs/rating/index.d.ts +14 -0
- package/lib/cjs/rating/index.js +14 -3
- package/lib/cjs/rating/item.d.ts +2 -0
- package/lib/cjs/rating/item.js +6 -1
- package/lib/cjs/select/index.d.ts +16 -0
- package/lib/cjs/select/index.js +65 -19
- package/lib/cjs/select/option.js +28 -22
- package/lib/cjs/sideSheet/SideSheetContent.d.ts +1 -0
- package/lib/cjs/sideSheet/SideSheetContent.js +4 -1
- package/lib/cjs/sideSheet/index.d.ts +1 -0
- package/lib/cjs/sideSheet/index.js +2 -1
- package/lib/cjs/slider/index.d.ts +2 -1
- package/lib/cjs/slider/index.js +64 -17
- package/lib/cjs/spin/icon.js +3 -4
- package/lib/cjs/steps/basicStep.d.ts +3 -0
- package/lib/cjs/steps/basicStep.js +23 -25
- package/lib/cjs/steps/basicSteps.d.ts +1 -0
- package/lib/cjs/steps/basicSteps.js +2 -1
- package/lib/cjs/steps/fillStep.d.ts +3 -0
- package/lib/cjs/steps/fillStep.js +19 -4
- package/lib/cjs/steps/fillSteps.d.ts +1 -0
- package/lib/cjs/steps/fillSteps.js +2 -1
- package/lib/cjs/steps/navStep.d.ts +3 -0
- package/lib/cjs/steps/navStep.js +22 -25
- package/lib/cjs/steps/navSteps.d.ts +1 -0
- package/lib/cjs/steps/navSteps.js +2 -1
- package/lib/cjs/switch/index.d.ts +12 -0
- package/lib/cjs/switch/index.js +19 -4
- package/lib/cjs/table/Body/BaseRow.js +35 -3
- package/lib/cjs/table/Body/index.js +9 -1
- package/lib/cjs/table/ColumnFilter.js +4 -0
- package/lib/cjs/table/ColumnSelection.d.ts +3 -0
- package/lib/cjs/table/ColumnSelection.js +6 -2
- package/lib/cjs/table/ColumnSorter.js +19 -3
- package/lib/cjs/table/CustomExpandIcon.js +7 -1
- package/lib/cjs/table/Table.d.ts +2 -0
- package/lib/cjs/table/Table.js +35 -15
- package/lib/cjs/table/TableCell.d.ts +2 -0
- package/lib/cjs/table/TableCell.js +6 -2
- package/lib/cjs/table/TableHeaderRow.js +8 -2
- package/lib/cjs/tabs/TabBar.js +11 -3
- package/lib/cjs/tabs/TabPane.js +3 -1
- package/lib/cjs/tabs/index.js +0 -1
- package/lib/cjs/tagInput/index.d.ts +4 -1
- package/lib/cjs/tagInput/index.js +29 -3
- package/lib/cjs/timePicker/TimePicker.d.ts +14 -0
- package/lib/cjs/timePicker/TimePicker.js +11 -4
- package/lib/cjs/timePicker/index.d.ts +7 -0
- package/lib/cjs/timeline/index.d.ts +1 -1
- package/lib/cjs/timeline/index.js +1 -0
- package/lib/cjs/timeline/item.js +4 -2
- package/lib/cjs/toast/toast.js +2 -0
- package/lib/cjs/tooltip/TriangleArrow.js +1 -0
- package/lib/cjs/tooltip/TriangleArrowVertical.js +1 -0
- package/lib/cjs/tooltip/index.d.ts +16 -12
- package/lib/cjs/tooltip/index.js +55 -39
- package/lib/cjs/transfer/index.js +32 -14
- package/lib/cjs/tree/index.d.ts +1 -0
- package/lib/cjs/tree/index.js +15 -6
- package/lib/cjs/tree/treeNode.d.ts +12 -4
- package/lib/cjs/tree/treeNode.js +54 -5
- package/lib/cjs/treeSelect/index.d.ts +16 -0
- package/lib/cjs/treeSelect/index.js +60 -12
- package/lib/cjs/typography/base.js +18 -7
- package/lib/cjs/typography/copyable.js +6 -1
- package/lib/cjs/upload/fileCard.js +26 -7
- package/lib/cjs/upload/index.js +19 -4
- package/lib/es/_utils/hooks/usePrevFocus.d.ts +2 -0
- package/lib/es/_utils/hooks/usePrevFocus.js +15 -0
- package/lib/es/_utils/index.d.ts +1 -0
- package/lib/es/_utils/index.js +4 -1
- package/lib/es/anchor/index.d.ts +2 -0
- package/lib/es/anchor/index.js +6 -1
- package/lib/es/anchor/link.d.ts +4 -1
- package/lib/es/anchor/link.js +38 -5
- package/lib/es/autoComplete/index.d.ts +17 -0
- package/lib/es/autoComplete/index.js +21 -2
- package/lib/es/avatar/index.d.ts +4 -3
- package/lib/es/avatar/index.js +15 -11
- package/lib/es/banner/index.js +4 -2
- package/lib/es/breadcrumb/index.d.ts +3 -0
- package/lib/es/breadcrumb/index.js +10 -4
- package/lib/es/breadcrumb/item.js +2 -2
- package/lib/es/button/Button.d.ts +2 -0
- package/lib/es/button/Button.js +4 -2
- package/lib/es/button/buttonGroup.d.ts +3 -0
- package/lib/es/button/buttonGroup.js +8 -4
- package/lib/es/button/index.d.ts +1 -0
- package/lib/es/button/splitButtonGroup.d.ts +3 -0
- package/lib/es/button/splitButtonGroup.js +5 -2
- package/lib/es/card/index.d.ts +3 -0
- package/lib/es/card/index.js +3 -1
- package/lib/es/cascader/index.d.ts +14 -0
- package/lib/es/cascader/index.js +35 -7
- package/lib/es/checkbox/checkbox.d.ts +21 -1
- package/lib/es/checkbox/checkbox.js +50 -17
- package/lib/es/checkbox/checkboxGroup.d.ts +13 -1
- package/lib/es/checkbox/checkboxGroup.js +18 -5
- package/lib/es/checkbox/checkboxInner.d.ts +15 -0
- package/lib/es/checkbox/checkboxInner.js +20 -3
- package/lib/es/collapse/item.d.ts +2 -1
- package/lib/es/collapse/item.js +11 -2
- package/lib/es/collapsible/index.d.ts +1 -0
- package/lib/es/collapsible/index.js +4 -2
- package/lib/es/datePicker/datePicker.d.ts +12 -0
- package/lib/es/datePicker/datePicker.js +14 -1
- package/lib/es/dropdown/dropdownItem.js +3 -1
- package/lib/es/dropdown/dropdownMenu.js +4 -1
- package/lib/es/dropdown/index.d.ts +10 -3
- package/lib/es/form/baseForm.d.ts +9 -0
- package/lib/es/form/baseForm.js +3 -1
- package/lib/es/form/errorMessage.d.ts +4 -0
- package/lib/es/form/errorMessage.js +21 -3
- package/lib/es/form/field.d.ts +7 -0
- package/lib/es/form/hoc/withField.js +48 -15
- package/lib/es/form/index.d.ts +0 -1
- package/lib/es/form/index.js +0 -1
- package/lib/es/form/interface.d.ts +2 -0
- package/lib/es/form/label.d.ts +2 -0
- package/lib/es/form/label.js +5 -2
- package/lib/es/input/index.d.ts +16 -0
- package/lib/es/input/index.js +51 -15
- package/lib/es/input/inputGroup.d.ts +2 -1
- package/lib/es/input/inputGroup.js +11 -1
- package/lib/es/input/textarea.js +16 -3
- package/lib/es/inputNumber/index.d.ts +8 -0
- package/lib/es/inputNumber/index.js +36 -4
- package/lib/es/layout/Sider.d.ts +4 -0
- package/lib/es/layout/Sider.js +4 -1
- package/lib/es/layout/index.js +2 -0
- package/lib/es/list/index.d.ts +4 -4
- package/lib/es/list/item.js +0 -1
- package/lib/es/modal/Modal.js +2 -0
- package/lib/es/modal/ModalContent.d.ts +3 -1
- package/lib/es/modal/ModalContent.js +46 -5
- package/lib/es/navigation/Item.d.ts +4 -2
- package/lib/es/navigation/Item.js +25 -5
- package/lib/es/navigation/SubNav.d.ts +4 -2
- package/lib/es/navigation/SubNav.js +8 -1
- package/lib/es/navigation/index.js +2 -0
- package/lib/es/notification/notice.d.ts +1 -1
- package/lib/es/notification/notice.js +33 -24
- package/lib/es/pagination/index.js +16 -6
- package/lib/es/popover/index.js +7 -3
- package/lib/es/progress/index.d.ts +8 -0
- package/lib/es/progress/index.js +42 -9
- package/lib/es/radio/radio.d.ts +6 -1
- package/lib/es/radio/radio.js +16 -5
- package/lib/es/radio/radioGroup.d.ts +16 -1
- package/lib/es/radio/radioGroup.js +18 -3
- package/lib/es/radio/radioInner.d.ts +6 -1
- package/lib/es/radio/radioInner.js +11 -3
- package/lib/es/rating/index.d.ts +14 -0
- package/lib/es/rating/index.js +14 -3
- package/lib/es/rating/item.d.ts +2 -0
- package/lib/es/rating/item.js +6 -1
- package/lib/es/select/index.d.ts +16 -0
- package/lib/es/select/index.js +63 -17
- package/lib/es/select/option.js +28 -22
- package/lib/es/sideSheet/SideSheetContent.d.ts +1 -0
- package/lib/es/sideSheet/SideSheetContent.js +4 -1
- package/lib/es/sideSheet/index.d.ts +1 -0
- package/lib/es/sideSheet/index.js +2 -1
- package/lib/es/slider/index.d.ts +2 -1
- package/lib/es/slider/index.js +63 -16
- package/lib/es/spin/icon.js +3 -4
- package/lib/es/steps/basicStep.d.ts +3 -0
- package/lib/es/steps/basicStep.js +23 -23
- package/lib/es/steps/basicSteps.d.ts +1 -0
- package/lib/es/steps/basicSteps.js +2 -1
- package/lib/es/steps/fillStep.d.ts +3 -0
- package/lib/es/steps/fillStep.js +19 -4
- package/lib/es/steps/fillSteps.d.ts +1 -0
- package/lib/es/steps/fillSteps.js +2 -1
- package/lib/es/steps/navStep.d.ts +3 -0
- package/lib/es/steps/navStep.js +22 -23
- package/lib/es/steps/navSteps.d.ts +1 -0
- package/lib/es/steps/navSteps.js +2 -1
- package/lib/es/switch/index.d.ts +12 -0
- package/lib/es/switch/index.js +19 -4
- package/lib/es/table/Body/BaseRow.js +35 -3
- package/lib/es/table/Body/index.js +9 -2
- package/lib/es/table/ColumnFilter.js +4 -0
- package/lib/es/table/ColumnSelection.d.ts +3 -0
- package/lib/es/table/ColumnSelection.js +6 -2
- package/lib/es/table/ColumnSorter.js +17 -3
- package/lib/es/table/CustomExpandIcon.js +6 -1
- package/lib/es/table/Table.d.ts +2 -0
- package/lib/es/table/Table.js +35 -15
- package/lib/es/table/TableCell.d.ts +2 -0
- package/lib/es/table/TableCell.js +6 -2
- package/lib/es/table/TableHeaderRow.js +8 -2
- package/lib/es/tabs/TabBar.js +11 -3
- package/lib/es/tabs/TabPane.js +3 -1
- package/lib/es/tabs/index.js +0 -1
- package/lib/es/tagInput/index.d.ts +4 -1
- package/lib/es/tagInput/index.js +29 -3
- package/lib/es/timePicker/TimePicker.d.ts +14 -0
- package/lib/es/timePicker/TimePicker.js +11 -4
- package/lib/es/timePicker/index.d.ts +7 -0
- package/lib/es/timeline/index.d.ts +1 -1
- package/lib/es/timeline/index.js +1 -0
- package/lib/es/timeline/item.js +4 -2
- package/lib/es/toast/toast.js +2 -0
- package/lib/es/tooltip/TriangleArrow.js +1 -0
- package/lib/es/tooltip/TriangleArrowVertical.js +1 -0
- package/lib/es/tooltip/index.d.ts +16 -12
- package/lib/es/tooltip/index.js +53 -39
- package/lib/es/transfer/index.js +32 -14
- package/lib/es/tree/index.d.ts +1 -0
- package/lib/es/tree/index.js +15 -6
- package/lib/es/tree/treeNode.d.ts +12 -4
- package/lib/es/tree/treeNode.js +53 -5
- package/lib/es/treeSelect/index.d.ts +16 -0
- package/lib/es/treeSelect/index.js +57 -10
- package/lib/es/typography/base.js +17 -7
- package/lib/es/typography/copyable.js +5 -1
- package/lib/es/upload/fileCard.js +26 -7
- package/lib/es/upload/index.js +19 -4
- package/list/index.tsx +5 -5
- package/list/item.tsx +0 -1
- package/modal/Modal.tsx +2 -0
- package/modal/ModalContent.tsx +35 -5
- package/navigation/Item.tsx +15 -0
- package/navigation/SubNav.tsx +13 -1
- package/navigation/index.tsx +1 -1
- package/notification/notice.tsx +19 -14
- package/package.json +8 -8
- package/pagination/index.tsx +9 -5
- package/popover/index.tsx +5 -0
- package/progress/_story/progress.stories.js +18 -18
- package/progress/index.tsx +58 -20
- package/radio/radio.tsx +12 -2
- package/radio/radioGroup.tsx +29 -3
- package/radio/radioInner.tsx +10 -1
- package/rating/index.tsx +19 -2
- package/rating/item.tsx +6 -0
- package/select/__test__/select.test.js +45 -0
- package/select/_story/select.stories.js +29 -0
- package/select/index.tsx +57 -4
- package/select/option.tsx +3 -0
- package/sideSheet/SideSheetContent.tsx +6 -4
- package/sideSheet/index.tsx +3 -2
- package/slider/__test__/slider.test.js +9 -0
- package/slider/_story/slider.stories.js +1 -1
- package/slider/index.tsx +44 -7
- package/spin/icon.tsx +4 -3
- package/steps/basicStep.tsx +15 -4
- package/steps/basicSteps.tsx +3 -2
- package/steps/fillStep.tsx +27 -12
- package/steps/fillSteps.tsx +2 -0
- package/steps/navStep.tsx +15 -4
- package/steps/navSteps.tsx +3 -2
- package/switch/_story/switch.stories.js +20 -19
- package/switch/_story/switch.stories.tsx +13 -13
- package/switch/index.tsx +23 -5
- package/table/Body/BaseRow.tsx +25 -1
- package/table/Body/index.tsx +7 -2
- package/table/ColumnFilter.tsx +7 -1
- package/table/ColumnSelection.tsx +4 -1
- package/table/ColumnSorter.tsx +18 -1
- package/table/CustomExpandIcon.tsx +5 -0
- package/table/Table.tsx +30 -14
- package/table/TableCell.tsx +11 -1
- package/table/TableHeaderRow.tsx +16 -2
- package/table/__test__/table.test.js +46 -0
- package/table/_story/table.stories.js +2 -0
- package/table/_story/v2/FixedColumnsChange/index.jsx +104 -0
- package/table/_story/v2/FixedZIndex/index.jsx +87 -0
- package/tabs/TabBar.tsx +8 -5
- package/tabs/TabPane.tsx +3 -1
- package/tabs/index.tsx +0 -1
- package/tagInput/__test__/tagInput.test.js +46 -0
- package/tagInput/_story/tagInput.stories.js +2 -2
- package/tagInput/index.tsx +31 -8
- package/timePicker/TimePicker.tsx +17 -2
- package/timePicker/__test__/timePicker.test.js +34 -3
- package/timePicker/_story/timepicker.stories.js +18 -0
- package/timeline/_story/timeline.stories.js +1 -1
- package/timeline/index.tsx +2 -2
- package/timeline/item.tsx +2 -1
- package/toast/toast.tsx +2 -0
- package/tooltip/TriangleArrow.tsx +1 -1
- package/tooltip/TriangleArrowVertical.tsx +1 -1
- package/tooltip/_story/tooltip.stories.js +562 -514
- package/tooltip/index.tsx +51 -33
- package/transfer/index.tsx +29 -25
- package/tree/_story/tree.stories.js +3 -3
- package/tree/index.tsx +10 -2
- package/tree/treeNode.tsx +54 -11
- package/treeSelect/__test__/treeMultiple.test.js +5 -0
- package/treeSelect/_story/treeSelect.stories.js +12 -0
- package/treeSelect/index.tsx +58 -7
- package/typography/base.tsx +7 -1
- package/typography/copyable.tsx +10 -1
- package/upload/fileCard.tsx +14 -16
- package/upload/index.tsx +10 -6
package/lib/es/steps/fillStep.js
CHANGED
|
@@ -19,7 +19,8 @@ const FillStep = props => {
|
|
|
19
19
|
onClick,
|
|
20
20
|
icon,
|
|
21
21
|
onChange,
|
|
22
|
-
stepNumber
|
|
22
|
+
stepNumber,
|
|
23
|
+
onKeyDown
|
|
23
24
|
} = props;
|
|
24
25
|
|
|
25
26
|
const renderIcon = () => {
|
|
@@ -81,17 +82,31 @@ const FillStep = props => {
|
|
|
81
82
|
onChange();
|
|
82
83
|
};
|
|
83
84
|
|
|
85
|
+
const handleKeyDown = e => {
|
|
86
|
+
if (e.key === 'Enter') {
|
|
87
|
+
if (_isFunction(onKeyDown)) {
|
|
88
|
+
onKeyDown(e);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
onChange();
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
|
|
84
95
|
return /*#__PURE__*/React.createElement("div", {
|
|
96
|
+
role: props["role"],
|
|
97
|
+
"aria-label": props["aria-label"],
|
|
98
|
+
"aria-current": "step",
|
|
99
|
+
tabIndex: 0,
|
|
85
100
|
className: classnames({
|
|
86
|
-
[className]: Boolean(className),
|
|
87
101
|
[prefixCls]: true,
|
|
88
102
|
[_concatInstanceProperty(_context = "".concat(prefixCls, "-")).call(_context, status)]: Boolean(status),
|
|
89
103
|
["".concat(prefixCls, "-clickable")]: onClick
|
|
90
|
-
}),
|
|
104
|
+
}, className),
|
|
91
105
|
style: style,
|
|
92
106
|
onClick: e => {
|
|
93
107
|
handleClick(e);
|
|
94
|
-
}
|
|
108
|
+
},
|
|
109
|
+
onKeyDown: handleKeyDown
|
|
95
110
|
}, renderIcon(), /*#__PURE__*/React.createElement("div", {
|
|
96
111
|
className: "".concat(prefixCls, "-content")
|
|
97
112
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -76,7 +76,8 @@ const Steps = props => {
|
|
|
76
76
|
});
|
|
77
77
|
return /*#__PURE__*/React.createElement("div", {
|
|
78
78
|
className: wrapperCls,
|
|
79
|
-
style: style
|
|
79
|
+
style: style,
|
|
80
|
+
"aria-label": props["aria-label"]
|
|
80
81
|
}, /*#__PURE__*/React.createElement(Row, {
|
|
81
82
|
type: "flex",
|
|
82
83
|
justify: "start"
|
|
@@ -10,6 +10,9 @@ export interface NavStepProps {
|
|
|
10
10
|
prefixCls?: string;
|
|
11
11
|
onChange?: () => void;
|
|
12
12
|
onClick?: React.MouseEventHandler<HTMLDivElement>;
|
|
13
|
+
onKeyDown?: React.KeyboardEventHandler<HTMLDivElement>;
|
|
14
|
+
"role"?: React.AriaRole;
|
|
15
|
+
"aria-label"?: React.AriaAttributes["aria-label"];
|
|
13
16
|
}
|
|
14
17
|
declare const NavStep: {
|
|
15
18
|
(props: NavStepProps): JSX.Element;
|
package/lib/es/steps/navStep.js
CHANGED
|
@@ -1,19 +1,4 @@
|
|
|
1
1
|
import _isFunction from "lodash/isFunction";
|
|
2
|
-
import _indexOfInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/index-of";
|
|
3
|
-
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
|
|
4
|
-
import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
|
|
5
|
-
|
|
6
|
-
var __rest = this && this.__rest || function (s, e) {
|
|
7
|
-
var t = {};
|
|
8
|
-
|
|
9
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && _indexOfInstanceProperty(e).call(e, p) < 0) t[p] = s[p];
|
|
10
|
-
|
|
11
|
-
if (s != null && typeof _Object$getOwnPropertySymbols === "function") for (var i = 0, p = _Object$getOwnPropertySymbols(s); i < p.length; i++) {
|
|
12
|
-
if (_indexOfInstanceProperty(e).call(e, p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
13
|
-
}
|
|
14
|
-
return t;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
2
|
import React from 'react';
|
|
18
3
|
import PropTypes from 'prop-types';
|
|
19
4
|
import classnames from 'classnames';
|
|
@@ -30,13 +15,12 @@ const NavStep = props => {
|
|
|
30
15
|
index,
|
|
31
16
|
total,
|
|
32
17
|
onClick,
|
|
18
|
+
onKeyDown,
|
|
33
19
|
onChange
|
|
34
|
-
} = props
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const classString = classnames(prefixCls, className, {
|
|
20
|
+
} = props;
|
|
21
|
+
const classString = classnames(prefixCls, {
|
|
38
22
|
["".concat(prefixCls, "-active")]: active
|
|
39
|
-
});
|
|
23
|
+
}, className);
|
|
40
24
|
|
|
41
25
|
const handleClick = e => {
|
|
42
26
|
if (_isFunction(onClick)) {
|
|
@@ -46,11 +30,26 @@ const NavStep = props => {
|
|
|
46
30
|
onChange();
|
|
47
31
|
};
|
|
48
32
|
|
|
49
|
-
|
|
33
|
+
const handleKeyDown = e => {
|
|
34
|
+
if (e.key === 'Enter') {
|
|
35
|
+
if (_isFunction(onKeyDown)) {
|
|
36
|
+
onKeyDown(e);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
onChange();
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
44
|
+
role: props["role"],
|
|
45
|
+
"aria-label": props["aria-label"],
|
|
46
|
+
"aria-current": "step",
|
|
47
|
+
tabIndex: 0,
|
|
50
48
|
className: classString,
|
|
51
49
|
style: style,
|
|
52
|
-
onClick: e => handleClick(e)
|
|
53
|
-
|
|
50
|
+
onClick: e => handleClick(e),
|
|
51
|
+
onKeyDown: handleKeyDown
|
|
52
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
54
53
|
className: "".concat(prefixCls, "-container")
|
|
55
54
|
}, /*#__PURE__*/React.createElement("div", {
|
|
56
55
|
className: "".concat(prefixCls, "-content")
|
package/lib/es/steps/navSteps.js
CHANGED
|
@@ -49,12 +49,13 @@ const Steps = props => {
|
|
|
49
49
|
});
|
|
50
50
|
|
|
51
51
|
return content;
|
|
52
|
-
}, [children, prefixCls, current, size]);
|
|
52
|
+
}, [children, prefixCls, current, size, initial, onChange]);
|
|
53
53
|
const wrapperCls = cls(className, {
|
|
54
54
|
["".concat(prefixCls, "-nav")]: true,
|
|
55
55
|
[_concatInstanceProperty(_context2 = "".concat(prefixCls, "-")).call(_context2, size)]: size !== 'default'
|
|
56
56
|
});
|
|
57
57
|
return /*#__PURE__*/React.createElement("div", {
|
|
58
|
+
"aria-label": props["aria-label"],
|
|
58
59
|
className: wrapperCls,
|
|
59
60
|
style: style
|
|
60
61
|
}, inner);
|
package/lib/es/switch/index.d.ts
CHANGED
|
@@ -4,6 +4,11 @@ import { SwitchAdapter } from '@douyinfe/semi-foundation/lib/es/switch/foundatio
|
|
|
4
4
|
import BaseComponent from '../_base/baseComponent';
|
|
5
5
|
import '@douyinfe/semi-foundation/lib/es/switch/switch.css';
|
|
6
6
|
export interface SwitchProps {
|
|
7
|
+
'aria-label'?: React.AriaAttributes['aria-label'];
|
|
8
|
+
'aria-describedby'?: React.AriaAttributes['aria-describedby'];
|
|
9
|
+
'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
|
|
10
|
+
'aria-invalid'?: React.AriaAttributes['aria-invalid'];
|
|
11
|
+
'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
|
|
7
12
|
defaultChecked?: boolean;
|
|
8
13
|
checked?: boolean;
|
|
9
14
|
disabled?: boolean;
|
|
@@ -16,6 +21,7 @@ export interface SwitchProps {
|
|
|
16
21
|
size?: 'large' | 'default' | 'small';
|
|
17
22
|
checkedText?: React.ReactNode;
|
|
18
23
|
uncheckedText?: React.ReactNode;
|
|
24
|
+
id?: string;
|
|
19
25
|
}
|
|
20
26
|
export interface SwitchState {
|
|
21
27
|
nativeControlChecked: boolean;
|
|
@@ -23,6 +29,11 @@ export interface SwitchState {
|
|
|
23
29
|
}
|
|
24
30
|
declare class Switch extends BaseComponent<SwitchProps, SwitchState> {
|
|
25
31
|
static propTypes: {
|
|
32
|
+
'aria-label': PropTypes.Requireable<string>;
|
|
33
|
+
'aria-labelledby': PropTypes.Requireable<string>;
|
|
34
|
+
'aria-invalid': PropTypes.Requireable<boolean>;
|
|
35
|
+
'aria-errormessage': PropTypes.Requireable<string>;
|
|
36
|
+
'aria-describedby': PropTypes.Requireable<string>;
|
|
26
37
|
className: PropTypes.Requireable<string>;
|
|
27
38
|
checked: PropTypes.Requireable<boolean>;
|
|
28
39
|
checkedText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
@@ -35,6 +46,7 @@ declare class Switch extends BaseComponent<SwitchProps, SwitchState> {
|
|
|
35
46
|
style: PropTypes.Requireable<object>;
|
|
36
47
|
size: PropTypes.Requireable<"default" | "small" | "large">;
|
|
37
48
|
uncheckedText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
49
|
+
id: PropTypes.Requireable<string>;
|
|
38
50
|
};
|
|
39
51
|
static defaultProps: Partial<SwitchProps>;
|
|
40
52
|
private switchRef;
|
package/lib/es/switch/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _noop from "lodash/noop";
|
|
2
2
|
import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
|
|
3
3
|
|
|
4
|
-
/* eslint-disable max-len */
|
|
4
|
+
/* eslint-disable max-len, jsx-a11y/role-supports-aria-props */
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import cls from 'classnames';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
@@ -71,7 +71,8 @@ class Switch extends BaseComponent {
|
|
|
71
71
|
size,
|
|
72
72
|
checkedText,
|
|
73
73
|
uncheckedText,
|
|
74
|
-
loading
|
|
74
|
+
loading,
|
|
75
|
+
id
|
|
75
76
|
} = this.props;
|
|
76
77
|
const wrapperCls = cls(className, {
|
|
77
78
|
[cssClasses.PREFIX]: true,
|
|
@@ -99,13 +100,21 @@ class Switch extends BaseComponent {
|
|
|
99
100
|
wrapperClassName: cssClasses.LOADING_SPIN,
|
|
100
101
|
size: size === 'default' ? 'middle' : size
|
|
101
102
|
}) : /*#__PURE__*/React.createElement("div", {
|
|
102
|
-
className: cssClasses.KNOB
|
|
103
|
+
className: cssClasses.KNOB,
|
|
104
|
+
"aria-hidden": true
|
|
103
105
|
}), showCheckedText ? /*#__PURE__*/React.createElement("div", {
|
|
104
106
|
className: cssClasses.CHECKED_TEXT
|
|
105
107
|
}, checkedText) : null, showUncheckedText ? /*#__PURE__*/React.createElement("div", {
|
|
106
108
|
className: cssClasses.UNCHECKED_TEXT
|
|
107
109
|
}, uncheckedText) : null, /*#__PURE__*/React.createElement("input", _Object$assign({}, switchProps, {
|
|
108
110
|
ref: this.switchRef,
|
|
111
|
+
id: id,
|
|
112
|
+
"aria-checked": nativeControlChecked,
|
|
113
|
+
"aria-invalid": this.props['aria-invalid'],
|
|
114
|
+
"aria-errormessage": this.props['aria-errormessage'],
|
|
115
|
+
"aria-label": this.props['aria-label'],
|
|
116
|
+
"aria-labelledby": this.props['aria-labelledby'],
|
|
117
|
+
"aria-describedby": this.props["aria-describedby"],
|
|
109
118
|
onChange: e => this.foundation.handleChange(e.target.checked, e)
|
|
110
119
|
})));
|
|
111
120
|
}
|
|
@@ -113,6 +122,11 @@ class Switch extends BaseComponent {
|
|
|
113
122
|
}
|
|
114
123
|
|
|
115
124
|
Switch.propTypes = {
|
|
125
|
+
'aria-label': PropTypes.string,
|
|
126
|
+
'aria-labelledby': PropTypes.string,
|
|
127
|
+
'aria-invalid': PropTypes.bool,
|
|
128
|
+
'aria-errormessage': PropTypes.string,
|
|
129
|
+
'aria-describedby': PropTypes.string,
|
|
116
130
|
className: PropTypes.string,
|
|
117
131
|
checked: PropTypes.bool,
|
|
118
132
|
checkedText: PropTypes.node,
|
|
@@ -124,7 +138,8 @@ Switch.propTypes = {
|
|
|
124
138
|
onMouseLeave: PropTypes.func,
|
|
125
139
|
style: PropTypes.object,
|
|
126
140
|
size: PropTypes.oneOf(strings.SIZE_MAP),
|
|
127
|
-
uncheckedText: PropTypes.node
|
|
141
|
+
uncheckedText: PropTypes.node,
|
|
142
|
+
id: PropTypes.string
|
|
128
143
|
};
|
|
129
144
|
Switch.defaultProps = {
|
|
130
145
|
disabled: false,
|
|
@@ -182,6 +182,7 @@ export default class TableRow extends BaseComponent {
|
|
|
182
182
|
if (isExpandedColumn(column) && !displayExpandedColumn) {
|
|
183
183
|
cells.push( /*#__PURE__*/React.createElement(TableCell, {
|
|
184
184
|
key: columnIndex,
|
|
185
|
+
colIndex: columnIndex,
|
|
185
186
|
isSection: isSection
|
|
186
187
|
}));
|
|
187
188
|
} else if (!isScrollbarColumn(column)) {
|
|
@@ -191,7 +192,9 @@ export default class TableRow extends BaseComponent {
|
|
|
191
192
|
diyProps.width = _get(cellWidths, columnIndex);
|
|
192
193
|
}
|
|
193
194
|
|
|
194
|
-
cells.push( /*#__PURE__*/React.createElement(TableCell, _Object$assign({
|
|
195
|
+
cells.push( /*#__PURE__*/React.createElement(TableCell, _Object$assign({
|
|
196
|
+
colIndex: columnIndex
|
|
197
|
+
}, expandableProps, diyProps, {
|
|
195
198
|
hideExpandedColumn: hideExpandedColumn,
|
|
196
199
|
indentSize: indentSize,
|
|
197
200
|
isSection: isSection,
|
|
@@ -230,7 +233,11 @@ export default class TableRow extends BaseComponent {
|
|
|
230
233
|
replaceClassName,
|
|
231
234
|
record,
|
|
232
235
|
hovered,
|
|
233
|
-
expanded
|
|
236
|
+
expanded,
|
|
237
|
+
expandableRow,
|
|
238
|
+
level,
|
|
239
|
+
expandedRow,
|
|
240
|
+
isSection
|
|
234
241
|
} = this.props;
|
|
235
242
|
const BodyRow = components.body.row;
|
|
236
243
|
|
|
@@ -250,7 +257,32 @@ export default class TableRow extends BaseComponent {
|
|
|
250
257
|
["".concat(prefixCls, "-row-expanded")]: expanded,
|
|
251
258
|
["".concat(prefixCls, "-row-hovered")]: hovered
|
|
252
259
|
}, customClassName);
|
|
253
|
-
|
|
260
|
+
const ariaProps = {};
|
|
261
|
+
|
|
262
|
+
if (typeof index === 'number') {
|
|
263
|
+
ariaProps['aria-rowindex'] = index + 1;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
if (expandableRow) {
|
|
267
|
+
ariaProps['aria-expanded'] = expanded;
|
|
268
|
+
} // if row is expandedRow, set it's level to 2
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
if (expanded || expandedRow) {
|
|
272
|
+
ariaProps['aria-level'] = 2;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
if (typeof level === 'number') {
|
|
276
|
+
ariaProps['aria-level'] = level + 1;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
if (isSection) {
|
|
280
|
+
ariaProps['aria-level'] = 1;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
return /*#__PURE__*/React.createElement(BodyRow, _Object$assign({
|
|
284
|
+
role: "row"
|
|
285
|
+
}, ariaProps, rowProps, {
|
|
254
286
|
style: baseRowStyle,
|
|
255
287
|
className: rowCls,
|
|
256
288
|
ref: this._cacheNode,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _isFunction from "lodash/isFunction";
|
|
1
2
|
import _isNull from "lodash/isNull";
|
|
2
3
|
import _pick from "lodash/pick";
|
|
3
4
|
import _isEqual from "lodash/isEqual";
|
|
@@ -37,7 +38,7 @@ import React from 'react';
|
|
|
37
38
|
import PropTypes from 'prop-types';
|
|
38
39
|
import classnames from 'classnames';
|
|
39
40
|
import { VariableSizeList as List } from 'react-window';
|
|
40
|
-
import { arrayAdd, getRecordKey, isExpanded, isSelected, isDisabled, getRecord, genExpandedRowKey, getDefaultVirtualizedRowConfig } from '@douyinfe/semi-foundation/lib/es/table/utils';
|
|
41
|
+
import { arrayAdd, getRecordKey, isExpanded, isSelected, isDisabled, getRecord, genExpandedRowKey, getDefaultVirtualizedRowConfig, isTreeTable } from '@douyinfe/semi-foundation/lib/es/table/utils';
|
|
41
42
|
import BodyFoundation from '@douyinfe/semi-foundation/lib/es/table/bodyFoundation';
|
|
42
43
|
import { strings } from '@douyinfe/semi-foundation/lib/es/table/constants';
|
|
43
44
|
import BaseComponent from '../../_base/baseComponent';
|
|
@@ -494,7 +495,8 @@ class Body extends BaseComponent {
|
|
|
494
495
|
includeHeader,
|
|
495
496
|
dataSource,
|
|
496
497
|
onScroll,
|
|
497
|
-
groups
|
|
498
|
+
groups,
|
|
499
|
+
expandedRowRender
|
|
498
500
|
} = this.props;
|
|
499
501
|
|
|
500
502
|
const x = _get(scroll, 'x');
|
|
@@ -538,6 +540,11 @@ class Body extends BaseComponent {
|
|
|
538
540
|
onWheel: handleWheel,
|
|
539
541
|
onScroll: handleBodyScroll
|
|
540
542
|
}, /*#__PURE__*/React.createElement(Table, {
|
|
543
|
+
role: _isMap(groups) || _isFunction(expandedRowRender) || isTreeTable({
|
|
544
|
+
dataSource
|
|
545
|
+
}) ? 'treegrid' : 'grid',
|
|
546
|
+
"aria-rowcount": dataSource && dataSource.length,
|
|
547
|
+
"aria-colcount": columns && columns.length,
|
|
541
548
|
style: tableStyle,
|
|
542
549
|
className: classnames(prefixCls, {
|
|
543
550
|
["".concat(prefixCls, "-fixed")]: anyColumnFixed
|
|
@@ -154,6 +154,10 @@ export default function ColumnFilter() {
|
|
|
154
154
|
iconElem = /*#__PURE__*/React.createElement("div", {
|
|
155
155
|
className: finalCls
|
|
156
156
|
}, /*#__PURE__*/React.createElement(IconFilter, {
|
|
157
|
+
role: "button",
|
|
158
|
+
"aria-label": "Filter data with this column",
|
|
159
|
+
"aria-haspopup": "listbox",
|
|
160
|
+
tabIndex: -1,
|
|
157
161
|
size: "small"
|
|
158
162
|
}));
|
|
159
163
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
import BaseComponent from '../_base/baseComponent';
|
|
2
3
|
import PropTypes from 'prop-types';
|
|
3
4
|
import { TableSelectionCellAdapter, TableSelectionCellEvent } from '@douyinfe/semi-foundation/lib/es/table/tableSelectionCellFoundation';
|
|
@@ -12,6 +13,7 @@ export interface TableSelectionCellProps {
|
|
|
12
13
|
indeterminate?: boolean;
|
|
13
14
|
prefixCls?: string;
|
|
14
15
|
className?: string;
|
|
16
|
+
'aria-label'?: React.AriaAttributes['aria-label'];
|
|
15
17
|
}
|
|
16
18
|
/**
|
|
17
19
|
* render selection cell
|
|
@@ -27,6 +29,7 @@ export default class TableSelectionCell extends BaseComponent<TableSelectionCell
|
|
|
27
29
|
indeterminate: PropTypes.Requireable<boolean>;
|
|
28
30
|
prefixCls: PropTypes.Requireable<string>;
|
|
29
31
|
className: PropTypes.Requireable<string>;
|
|
32
|
+
'aria-label': PropTypes.Requireable<string>;
|
|
30
33
|
};
|
|
31
34
|
static defaultProps: {
|
|
32
35
|
disabled: boolean;
|
|
@@ -41,6 +41,7 @@ export default class TableSelectionCell extends BaseComponent {
|
|
|
41
41
|
prefixCls,
|
|
42
42
|
className
|
|
43
43
|
} = this.props;
|
|
44
|
+
const ariaLabel = this.props['aria-label'];
|
|
44
45
|
let checkboxProps = {
|
|
45
46
|
onChange: this.handleChange,
|
|
46
47
|
disabled,
|
|
@@ -57,7 +58,9 @@ export default class TableSelectionCell extends BaseComponent {
|
|
|
57
58
|
}, className);
|
|
58
59
|
return /*#__PURE__*/React.createElement("span", {
|
|
59
60
|
className: wrapCls
|
|
60
|
-
}, /*#__PURE__*/React.createElement(Checkbox, _Object$assign({
|
|
61
|
+
}, /*#__PURE__*/React.createElement(Checkbox, _Object$assign({
|
|
62
|
+
"aria-label": ariaLabel
|
|
63
|
+
}, checkboxProps)));
|
|
61
64
|
}
|
|
62
65
|
|
|
63
66
|
}
|
|
@@ -70,7 +73,8 @@ TableSelectionCell.propTypes = {
|
|
|
70
73
|
disabled: PropTypes.bool,
|
|
71
74
|
indeterminate: PropTypes.bool,
|
|
72
75
|
prefixCls: PropTypes.string,
|
|
73
|
-
className: PropTypes.string
|
|
76
|
+
className: PropTypes.string,
|
|
77
|
+
'aria-label': PropTypes.string
|
|
74
78
|
};
|
|
75
79
|
TableSelectionCell.defaultProps = {
|
|
76
80
|
disabled: false,
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import _noop from "lodash/noop";
|
|
2
|
+
import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
|
|
2
3
|
import React, { PureComponent } from 'react';
|
|
3
4
|
import PropTypes from 'prop-types';
|
|
4
5
|
import cls from 'classnames';
|
|
5
6
|
import { IconCaretup, IconCaretdown } from '@douyinfe/semi-icons';
|
|
6
7
|
import { cssClasses, strings } from '@douyinfe/semi-foundation/lib/es/table/constants';
|
|
8
|
+
import isEnterPress from '@douyinfe/semi-foundation/lib/es/utils/isEnterPress';
|
|
7
9
|
export default class ColumnSorter extends PureComponent {
|
|
8
10
|
render() {
|
|
9
11
|
const {
|
|
@@ -19,11 +21,23 @@ export default class ColumnSorter extends PureComponent {
|
|
|
19
21
|
const downCls = cls("".concat(prefixCls, "-column-sorter-down"), {
|
|
20
22
|
on: sortOrder === strings.SORT_DIRECTIONS[1]
|
|
21
23
|
});
|
|
22
|
-
|
|
24
|
+
const ariaProps = {
|
|
25
|
+
/**
|
|
26
|
+
* Set 'aria-sort' to aria-columnheader is difficult, so set 'aria-label' about sort info to sorter
|
|
27
|
+
* reference: https://developer.mozilla.org/en-US/docs/Web/API/Element/ariaSort
|
|
28
|
+
*/
|
|
29
|
+
'aria-label': "Current sort order is ".concat(sortOrder ? "".concat(sortOrder, "ing") : 'none'),
|
|
30
|
+
'aria-roledescription': 'Sort data with this column'
|
|
31
|
+
};
|
|
32
|
+
return /*#__PURE__*/React.createElement("div", _Object$assign({
|
|
33
|
+
role: 'button'
|
|
34
|
+
}, ariaProps, {
|
|
35
|
+
tabIndex: -1,
|
|
23
36
|
style: style,
|
|
24
37
|
className: "".concat(prefixCls, "-column-sorter"),
|
|
25
|
-
onClick: onClick
|
|
26
|
-
|
|
38
|
+
onClick: onClick,
|
|
39
|
+
onKeyPress: e => isEnterPress(e) && onClick(e)
|
|
40
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
27
41
|
className: "".concat(upCls)
|
|
28
42
|
}, /*#__PURE__*/React.createElement(IconCaretup, {
|
|
29
43
|
size: iconBtnSize
|
|
@@ -5,6 +5,7 @@ import React, { useCallback } from 'react';
|
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { IconChevronRight, IconChevronDown, IconTreeTriangleDown, IconTreeTriangleRight } from '@douyinfe/semi-icons';
|
|
7
7
|
import { cssClasses } from '@douyinfe/semi-foundation/lib/es/table/constants';
|
|
8
|
+
import isEnterPress from '@douyinfe/semi-foundation/lib/es/utils/isEnterPress';
|
|
8
9
|
import Rotate from '../motions/Rotate';
|
|
9
10
|
/**
|
|
10
11
|
* render expand icon
|
|
@@ -51,10 +52,14 @@ export default function CustomExpandIcon(props) {
|
|
|
51
52
|
}
|
|
52
53
|
|
|
53
54
|
return /*#__PURE__*/React.createElement("span", {
|
|
55
|
+
role: "button",
|
|
56
|
+
"aria-label": "Expand this row",
|
|
57
|
+
tabIndex: -1,
|
|
54
58
|
onClick: handleClick,
|
|
55
59
|
onMouseEnter: onMouseEnter,
|
|
56
60
|
onMouseLeave: onMouseLeave,
|
|
57
|
-
className: "".concat(prefixCls, "-expand-icon")
|
|
61
|
+
className: "".concat(prefixCls, "-expand-icon"),
|
|
62
|
+
onKeyPress: e => isEnterPress(e) && handleClick(e)
|
|
58
63
|
}, icon);
|
|
59
64
|
}
|
|
60
65
|
CustomExpandIcon.propTypes = {
|
package/lib/es/table/Table.d.ts
CHANGED
|
@@ -31,6 +31,7 @@ export interface NormalTableState<RecordType extends Record<string, any> = Data>
|
|
|
31
31
|
bodyHasScrollBar?: boolean;
|
|
32
32
|
prePropRowSelection?: TableStateRowSelection<RecordType>;
|
|
33
33
|
tableWidth?: number;
|
|
34
|
+
prePagination?: Pagination;
|
|
34
35
|
}
|
|
35
36
|
export declare type TableStateRowSelection<RecordType extends Record<string, any> = Data> = (RowSelectionProps<RecordType> & {
|
|
36
37
|
selectedRowKeysSet?: Set<(string | number)>;
|
|
@@ -229,6 +230,7 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
|
|
|
229
230
|
/**
|
|
230
231
|
* render pagination
|
|
231
232
|
* @param {object} pagination
|
|
233
|
+
* @param {object} propRenderPagination
|
|
232
234
|
*/
|
|
233
235
|
renderPagination: (pagination: TablePaginationProps, propRenderPagination: RenderPagination) => JSX.Element;
|
|
234
236
|
renderTitle: (props?: {
|
package/lib/es/table/Table.js
CHANGED
|
@@ -335,6 +335,7 @@ class Table extends BaseComponent {
|
|
|
335
335
|
const hasRowSelected = _this.foundation.hasRowSelected(selectedRowKeys, allRowKeysSet);
|
|
336
336
|
|
|
337
337
|
return /*#__PURE__*/React.createElement(ColumnSelection, {
|
|
338
|
+
"aria-label": "".concat(allIsSelected ? 'Deselect' : 'Select', " all rows"),
|
|
338
339
|
disabled: disabled,
|
|
339
340
|
key: columnKey,
|
|
340
341
|
selected: allIsSelected,
|
|
@@ -351,6 +352,7 @@ class Table extends BaseComponent {
|
|
|
351
352
|
const checkboxPropsFn = () => typeof getCheckboxProps === 'function' ? getCheckboxProps(record) : {};
|
|
352
353
|
|
|
353
354
|
return /*#__PURE__*/React.createElement(ColumnSelection, {
|
|
355
|
+
"aria-label": "".concat(selected ? 'Deselect' : 'Select', " this row"),
|
|
354
356
|
getCheckboxProps: checkboxPropsFn,
|
|
355
357
|
selected: selected,
|
|
356
358
|
onChange: (status, e) => _this.toggleSelectRow(status, key, e)
|
|
@@ -535,6 +537,7 @@ class Table extends BaseComponent {
|
|
|
535
537
|
/**
|
|
536
538
|
* render pagination
|
|
537
539
|
* @param {object} pagination
|
|
540
|
+
* @param {object} propRenderPagination
|
|
538
541
|
*/
|
|
539
542
|
|
|
540
543
|
|
|
@@ -841,7 +844,8 @@ class Table extends BaseComponent {
|
|
|
841
844
|
disabledRowKeysSet: new _Set(),
|
|
842
845
|
headWidths: [],
|
|
843
846
|
bodyHasScrollBar: false,
|
|
844
|
-
prePropRowSelection: undefined
|
|
847
|
+
prePropRowSelection: undefined,
|
|
848
|
+
prePagination: undefined
|
|
845
849
|
};
|
|
846
850
|
this.rootWrapRef = /*#__PURE__*/createRef();
|
|
847
851
|
this.wrapRef = /*#__PURE__*/createRef(); // table's outside wrap
|
|
@@ -1081,7 +1085,8 @@ class Table extends BaseComponent {
|
|
|
1081
1085
|
rowSelection,
|
|
1082
1086
|
dataSource,
|
|
1083
1087
|
childrenRecordName,
|
|
1084
|
-
rowKey
|
|
1088
|
+
rowKey,
|
|
1089
|
+
pagination
|
|
1085
1090
|
} = props;
|
|
1086
1091
|
props.columns && props.children && logger.warn('columns should not given by object and children at the same time');
|
|
1087
1092
|
|
|
@@ -1136,6 +1141,21 @@ class Table extends BaseComponent {
|
|
|
1136
1141
|
willUpdateStates.prePropRowSelection = rowSelection;
|
|
1137
1142
|
}
|
|
1138
1143
|
|
|
1144
|
+
if (pagination !== state.prePagination) {
|
|
1145
|
+
let newPagination = {};
|
|
1146
|
+
|
|
1147
|
+
if (_isObject(state.pagination)) {
|
|
1148
|
+
newPagination = _Object$assign(_Object$assign({}, newPagination), state.pagination);
|
|
1149
|
+
}
|
|
1150
|
+
|
|
1151
|
+
if (_isObject(pagination)) {
|
|
1152
|
+
newPagination = _Object$assign(_Object$assign({}, newPagination), pagination);
|
|
1153
|
+
}
|
|
1154
|
+
|
|
1155
|
+
willUpdateStates.pagination = newPagination;
|
|
1156
|
+
willUpdateStates.prePagination = pagination;
|
|
1157
|
+
}
|
|
1158
|
+
|
|
1139
1159
|
return willUpdateStates;
|
|
1140
1160
|
}
|
|
1141
1161
|
|
|
@@ -1151,15 +1171,16 @@ class Table extends BaseComponent {
|
|
|
1151
1171
|
|
|
1152
1172
|
componentDidUpdate(prevProps, prevState) {
|
|
1153
1173
|
const {
|
|
1154
|
-
pagination,
|
|
1155
1174
|
dataSource,
|
|
1156
1175
|
expandedRowKeys,
|
|
1157
1176
|
expandAllRows,
|
|
1158
1177
|
expandAllGroupRows,
|
|
1159
1178
|
virtualized,
|
|
1160
|
-
components
|
|
1179
|
+
components,
|
|
1180
|
+
pagination: propsPagination
|
|
1161
1181
|
} = this.props;
|
|
1162
1182
|
const {
|
|
1183
|
+
pagination: statePagination,
|
|
1163
1184
|
queries: stateQueries,
|
|
1164
1185
|
cachedColumns: stateCachedColumns,
|
|
1165
1186
|
cachedChildren: stateCachedChildren,
|
|
@@ -1203,11 +1224,6 @@ class Table extends BaseComponent {
|
|
|
1203
1224
|
this.foundation.initExpandedRowKeys({
|
|
1204
1225
|
groups: stateGroups
|
|
1205
1226
|
});
|
|
1206
|
-
} // Update pagination
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
if (pagination !== prevProps.pagination) {
|
|
1210
|
-
states.pagination = _isObject(pagination) ? _Object$assign({}, pagination) : pagination;
|
|
1211
1227
|
}
|
|
1212
1228
|
/**
|
|
1213
1229
|
* After dataSource is updated || (cachedColumns || cachedChildren updated)
|
|
@@ -1224,23 +1240,26 @@ class Table extends BaseComponent {
|
|
|
1224
1240
|
this.foundation.setCachedFilteredSortedDataSource(filteredSortedDataSource);
|
|
1225
1241
|
states.dataSource = filteredSortedDataSource;
|
|
1226
1242
|
|
|
1227
|
-
if (pagination === prevProps.pagination) {
|
|
1228
|
-
states.pagination = _isObject(pagination) ? _Object$assign({}, pagination) : pagination;
|
|
1229
|
-
}
|
|
1230
|
-
|
|
1231
1243
|
if (this.props.groupBy) {
|
|
1232
1244
|
states.groups = null;
|
|
1233
1245
|
}
|
|
1246
|
+
} // when dataSource has change, should reset currentPage
|
|
1247
|
+
|
|
1248
|
+
|
|
1249
|
+
if (dataSource !== prevProps.dataSource) {
|
|
1250
|
+
states.pagination = _isObject(statePagination) ? _Object$assign(_Object$assign({}, statePagination), {
|
|
1251
|
+
currentPage: _isObject(propsPagination) && propsPagination.currentPage ? propsPagination.currentPage : 1
|
|
1252
|
+
}) : statePagination;
|
|
1234
1253
|
}
|
|
1235
1254
|
|
|
1236
1255
|
if (_Object$keys(states).length) {
|
|
1237
1256
|
const {
|
|
1238
1257
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
1258
|
+
pagination: mergedStatePagination = null,
|
|
1239
1259
|
queries: stateQueries = null,
|
|
1240
|
-
pagination: statePagination = null,
|
|
1241
1260
|
dataSource: stateDataSource = null
|
|
1242
1261
|
} = states;
|
|
1243
|
-
const handledProps = this.foundation.getCurrentPageData(stateDataSource,
|
|
1262
|
+
const handledProps = this.foundation.getCurrentPageData(stateDataSource, mergedStatePagination, stateQueries); // After the pager is updated, reset allRowKeys of the current page
|
|
1244
1263
|
|
|
1245
1264
|
this.adapter.setAllRowKeys(handledProps.allRowKeys);
|
|
1246
1265
|
this.adapter.setDisabledRowKeys(handledProps.disabledRowKeys);
|
|
@@ -1417,6 +1436,7 @@ class Table extends BaseComponent {
|
|
|
1417
1436
|
return /*#__PURE__*/React.createElement("div", {
|
|
1418
1437
|
ref: this.rootWrapRef,
|
|
1419
1438
|
className: classnames(className, "".concat(prefixCls, "-wrapper")),
|
|
1439
|
+
"data-column-fixed": anyColumnFixed,
|
|
1420
1440
|
style: wrapStyle,
|
|
1421
1441
|
id: id
|
|
1422
1442
|
}, /*#__PURE__*/React.createElement(TableContextProvider, _Object$assign({}, tableContextValue), /*#__PURE__*/React.createElement(Spin, {
|
|
@@ -31,6 +31,7 @@ export interface TableCellProps extends BaseProps {
|
|
|
31
31
|
selected?: boolean;
|
|
32
32
|
expanded?: boolean;
|
|
33
33
|
disabled?: boolean;
|
|
34
|
+
colIndex?: number;
|
|
34
35
|
}
|
|
35
36
|
export default class TableCell extends BaseComponent<TableCellProps, Record<string, any>> {
|
|
36
37
|
static contextType: React.Context<import("./table-context").TableContextProps>;
|
|
@@ -65,6 +66,7 @@ export default class TableCell extends BaseComponent<TableCellProps, Record<stri
|
|
|
65
66
|
height: PropTypes.Requireable<string | number>;
|
|
66
67
|
selected: PropTypes.Requireable<boolean>;
|
|
67
68
|
expanded: PropTypes.Requireable<boolean>;
|
|
69
|
+
colIndex: PropTypes.Requireable<number>;
|
|
68
70
|
};
|
|
69
71
|
get adapter(): TableCellAdapter;
|
|
70
72
|
ref: React.MutableRefObject<any>;
|