@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
|
@@ -26,6 +26,8 @@ var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-st
|
|
|
26
26
|
|
|
27
27
|
var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set"));
|
|
28
28
|
|
|
29
|
+
var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
|
|
30
|
+
|
|
29
31
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
|
|
30
32
|
|
|
31
33
|
var _isFunction2 = _interopRequireDefault(require("lodash/isFunction"));
|
|
@@ -64,7 +66,7 @@ require("@douyinfe/semi-foundation/lib/cjs/treeSelect/treeSelect.css");
|
|
|
64
66
|
|
|
65
67
|
var _baseComponent = _interopRequireDefault(require("../_base/baseComponent"));
|
|
66
68
|
|
|
67
|
-
var
|
|
69
|
+
var _context3 = _interopRequireDefault(require("../configProvider/context"));
|
|
68
70
|
|
|
69
71
|
var _group = _interopRequireDefault(require("../tag/group"));
|
|
70
72
|
|
|
@@ -104,6 +106,8 @@ const key = 0;
|
|
|
104
106
|
|
|
105
107
|
class TreeSelect extends _baseComponent.default {
|
|
106
108
|
constructor(props) {
|
|
109
|
+
var _context2;
|
|
110
|
+
|
|
107
111
|
super(props);
|
|
108
112
|
|
|
109
113
|
this.renderSuffix = () => {
|
|
@@ -123,7 +127,8 @@ class TreeSelect extends _baseComponent.default {
|
|
|
123
127
|
this.renderPrefix = () => {
|
|
124
128
|
const {
|
|
125
129
|
prefix,
|
|
126
|
-
insetLabel
|
|
130
|
+
insetLabel,
|
|
131
|
+
insetLabelId
|
|
127
132
|
} = this.props;
|
|
128
133
|
const labelNode = prefix || insetLabel;
|
|
129
134
|
const prefixWrapperCls = (0, _classnames.default)({
|
|
@@ -134,7 +139,8 @@ class TreeSelect extends _baseComponent.default {
|
|
|
134
139
|
["".concat(prefixcls, "-prefix-icon")]: (0, _utils.isSemiIcon)(labelNode)
|
|
135
140
|
});
|
|
136
141
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
137
|
-
className: prefixWrapperCls
|
|
142
|
+
className: prefixWrapperCls,
|
|
143
|
+
id: insetLabelId
|
|
138
144
|
}, labelNode);
|
|
139
145
|
};
|
|
140
146
|
|
|
@@ -152,7 +158,6 @@ class TreeSelect extends _baseComponent.default {
|
|
|
152
158
|
const popoverCls = (0, _classnames.default)(dropdownClassName, "".concat(prefixcls, "-popover"));
|
|
153
159
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
154
160
|
className: popoverCls,
|
|
155
|
-
role: "list-box",
|
|
156
161
|
style: style
|
|
157
162
|
}, this.renderTree());
|
|
158
163
|
};
|
|
@@ -165,6 +170,10 @@ class TreeSelect extends _baseComponent.default {
|
|
|
165
170
|
this.foundation.handleClick(e);
|
|
166
171
|
};
|
|
167
172
|
|
|
173
|
+
this.handleSelectionEnterPress = e => {
|
|
174
|
+
this.foundation.handleSelectionEnterPress(e);
|
|
175
|
+
};
|
|
176
|
+
|
|
168
177
|
this.showClearBtn = () => {
|
|
169
178
|
const {
|
|
170
179
|
searchPosition
|
|
@@ -332,6 +341,11 @@ class TreeSelect extends _baseComponent.default {
|
|
|
332
341
|
this.foundation.handleClear(e);
|
|
333
342
|
};
|
|
334
343
|
|
|
344
|
+
this.handleClearEnterPress = e => {
|
|
345
|
+
e && e.stopPropagation();
|
|
346
|
+
this.foundation.handleClearEnterPress(e);
|
|
347
|
+
};
|
|
348
|
+
|
|
335
349
|
this.handleMouseOver = e => {
|
|
336
350
|
this.foundation.toggleHoverState(true);
|
|
337
351
|
};
|
|
@@ -369,8 +383,12 @@ class TreeSelect extends _baseComponent.default {
|
|
|
369
383
|
|
|
370
384
|
if (showClearBtn) {
|
|
371
385
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
386
|
+
role: 'button',
|
|
387
|
+
tabIndex: 0,
|
|
388
|
+
"aria-label": "Clear TreeSelect value",
|
|
372
389
|
className: clearCls,
|
|
373
|
-
onClick: this.handleClear
|
|
390
|
+
onClick: this.handleClear,
|
|
391
|
+
onKeyPress: this.handleClearEnterPress
|
|
374
392
|
}, /*#__PURE__*/_react.default.createElement(_semiIcons.IconClear, null));
|
|
375
393
|
}
|
|
376
394
|
|
|
@@ -452,11 +470,29 @@ class TreeSelect extends _baseComponent.default {
|
|
|
452
470
|
}, showClear || isTriggerPositionSearch && inputValue ? this.renderClearBtn() : null), /*#__PURE__*/_react.default.createElement(_react.Fragment, {
|
|
453
471
|
key: 'arrow'
|
|
454
472
|
}, this.renderArrow())];
|
|
473
|
+
const tabIndex = disabled ? null : 0;
|
|
474
|
+
/**
|
|
475
|
+
* Reasons for disabling the a11y eslint rule:
|
|
476
|
+
* The following attributes(aria-controls,aria-expanded) will be automatically added by Tooltip, no need to declare here
|
|
477
|
+
*/
|
|
478
|
+
|
|
455
479
|
return /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
|
|
480
|
+
// eslint-disable-next-line jsx-a11y/role-has-required-aria-props
|
|
481
|
+
role: 'combobox',
|
|
482
|
+
"aria-disabled": disabled,
|
|
483
|
+
"aria-haspopup": "tree",
|
|
484
|
+
tabIndex: tabIndex,
|
|
456
485
|
className: classNames,
|
|
457
486
|
style: style,
|
|
458
487
|
ref: this.triggerRef,
|
|
459
|
-
onClick: this.handleClick
|
|
488
|
+
onClick: this.handleClick,
|
|
489
|
+
onKeyPress: this.handleSelectionEnterPress,
|
|
490
|
+
"aria-invalid": this.props['aria-invalid'],
|
|
491
|
+
"aria-errormessage": this.props['aria-errormessage'],
|
|
492
|
+
"aria-label": this.props['aria-label'],
|
|
493
|
+
"aria-labelledby": this.props['aria-labelledby'],
|
|
494
|
+
"aria-describedby": this.props['aria-describedby'],
|
|
495
|
+
"aria-required": this.props['aria-required']
|
|
460
496
|
}, mouseEvent), inner);
|
|
461
497
|
}; // eslint-disable-next-line @typescript-eslint/no-shadow
|
|
462
498
|
|
|
@@ -531,7 +567,8 @@ class TreeSelect extends _baseComponent.default {
|
|
|
531
567
|
disabled,
|
|
532
568
|
size,
|
|
533
569
|
searchAutoFocus,
|
|
534
|
-
placeholder
|
|
570
|
+
placeholder,
|
|
571
|
+
maxTagCount
|
|
535
572
|
} = this.props;
|
|
536
573
|
const {
|
|
537
574
|
keyEntities,
|
|
@@ -540,6 +577,7 @@ class TreeSelect extends _baseComponent.default {
|
|
|
540
577
|
} = this.state;
|
|
541
578
|
const keyList = (0, _treeUtil.normalizeKeyList)(checkedKeys, keyEntities, leafOnly);
|
|
542
579
|
return /*#__PURE__*/_react.default.createElement(_tagInput.default, {
|
|
580
|
+
maxTagCount: maxTagCount,
|
|
543
581
|
disabled: disabled,
|
|
544
582
|
onInputChange: v => this.search(v),
|
|
545
583
|
ref: this.tagInputRef,
|
|
@@ -611,6 +649,7 @@ class TreeSelect extends _baseComponent.default {
|
|
|
611
649
|
}
|
|
612
650
|
|
|
613
651
|
return /*#__PURE__*/_react.default.createElement(_index2.default, (0, _assign.default)({
|
|
652
|
+
"aria-label": 'Filter TreeSelect item',
|
|
614
653
|
ref: this.inputRef,
|
|
615
654
|
autofocus: searchAutoFocus,
|
|
616
655
|
placeholder: placeholder
|
|
@@ -839,11 +878,11 @@ class TreeSelect extends _baseComponent.default {
|
|
|
839
878
|
labelEllipsis: typeof labelEllipsis === 'undefined' ? virtualize : labelEllipsis
|
|
840
879
|
}
|
|
841
880
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
842
|
-
className: wrapperCls
|
|
843
|
-
role: "list-box"
|
|
881
|
+
className: wrapperCls
|
|
844
882
|
}, outerTopSlot, !outerTopSlot && filterTreeNode && isDropdownPositionSearch && this.renderInput(), /*#__PURE__*/_react.default.createElement("div", {
|
|
845
883
|
className: listCls,
|
|
846
884
|
role: "tree",
|
|
885
|
+
"aria-multiselectable": multiple ? true : false,
|
|
847
886
|
style: optionListStyle
|
|
848
887
|
}, noData ? this.renderEmpty() : this.renderNodeList()), outerBottomSlot));
|
|
849
888
|
};
|
|
@@ -880,6 +919,7 @@ class TreeSelect extends _baseComponent.default {
|
|
|
880
919
|
this.optionsRef = /*#__PURE__*/_react.default.createRef();
|
|
881
920
|
this.clickOutsideHandler = null;
|
|
882
921
|
this.foundation = new _foundation.default(this.adapter);
|
|
922
|
+
this.treeSelectID = (0, _slice.default)(_context2 = Math.random().toString(36)).call(_context2, 2);
|
|
883
923
|
} // eslint-disable-next-line max-lines-per-function
|
|
884
924
|
|
|
885
925
|
|
|
@@ -1179,8 +1219,13 @@ class TreeSelect extends _baseComponent.default {
|
|
|
1179
1219
|
|
|
1180
1220
|
}
|
|
1181
1221
|
|
|
1182
|
-
TreeSelect.contextType =
|
|
1222
|
+
TreeSelect.contextType = _context3.default;
|
|
1183
1223
|
TreeSelect.propTypes = {
|
|
1224
|
+
'aria-describedby': _propTypes.default.string,
|
|
1225
|
+
'aria-errormessage': _propTypes.default.string,
|
|
1226
|
+
'aria-invalid': _propTypes.default.bool,
|
|
1227
|
+
'aria-labelledby': _propTypes.default.string,
|
|
1228
|
+
'aria-required': _propTypes.default.bool,
|
|
1184
1229
|
loadedKeys: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
1185
1230
|
loadData: _propTypes.default.func,
|
|
1186
1231
|
onLoad: _propTypes.default.func,
|
|
@@ -1233,6 +1278,7 @@ TreeSelect.propTypes = {
|
|
|
1233
1278
|
suffix: _propTypes.default.node,
|
|
1234
1279
|
prefix: _propTypes.default.node,
|
|
1235
1280
|
insetLabel: _propTypes.default.node,
|
|
1281
|
+
insetLabelId: _propTypes.default.string,
|
|
1236
1282
|
zIndex: _propTypes.default.number,
|
|
1237
1283
|
getPopupContainer: _propTypes.default.func,
|
|
1238
1284
|
dropdownMatchSelectWidth: _propTypes.default.bool,
|
|
@@ -1252,7 +1298,8 @@ TreeSelect.propTypes = {
|
|
|
1252
1298
|
labelEllipsis: _propTypes.default.bool,
|
|
1253
1299
|
optionListStyle: _propTypes.default.object,
|
|
1254
1300
|
searchRender: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.bool]),
|
|
1255
|
-
renderSelectedItem: _propTypes.default.func
|
|
1301
|
+
renderSelectedItem: _propTypes.default.func,
|
|
1302
|
+
'aria-label': _propTypes.default.string
|
|
1256
1303
|
};
|
|
1257
1304
|
TreeSelect.defaultProps = {
|
|
1258
1305
|
searchPosition: _constants.strings.SEARCH_POSITION_DROPDOWN,
|
|
@@ -1279,7 +1326,8 @@ TreeSelect.defaultProps = {
|
|
|
1279
1326
|
onVisibleChange: _noop2.default,
|
|
1280
1327
|
expandAction: false,
|
|
1281
1328
|
clickToHide: true,
|
|
1282
|
-
searchAutoFocus: false
|
|
1329
|
+
searchAutoFocus: false,
|
|
1330
|
+
'aria-label': 'TreeSelect'
|
|
1283
1331
|
};
|
|
1284
1332
|
var _default = TreeSelect;
|
|
1285
1333
|
exports.default = _default;
|
|
@@ -58,6 +58,8 @@ var _util = _interopRequireDefault(require("./util"));
|
|
|
58
58
|
|
|
59
59
|
var _warning = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs/utils/warning"));
|
|
60
60
|
|
|
61
|
+
var _isEnterPress = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs/utils/isEnterPress"));
|
|
62
|
+
|
|
61
63
|
var _localeConsumer = _interopRequireDefault(require("../locale/localeConsumer"));
|
|
62
64
|
|
|
63
65
|
var _utils = require("../_utils");
|
|
@@ -271,13 +273,22 @@ class Base extends _react.Component {
|
|
|
271
273
|
}
|
|
272
274
|
|
|
273
275
|
if (!noExpandText || !noCollapseText) {
|
|
274
|
-
return
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
276
|
+
return (
|
|
277
|
+
/*#__PURE__*/
|
|
278
|
+
// TODO: replace `a` tag with `span` in next major version
|
|
279
|
+
// NOTE: may have effect on style
|
|
280
|
+
// eslint-disable-next-line jsx-a11y/anchor-is-valid
|
|
281
|
+
_react.default.createElement("a", {
|
|
282
|
+
role: "button",
|
|
283
|
+
tabIndex: 0,
|
|
284
|
+
className: "".concat(prefixCls, "-ellipsis-expand"),
|
|
285
|
+
key: "expand",
|
|
286
|
+
ref: this.expandRef,
|
|
287
|
+
"aria-label": text,
|
|
288
|
+
onClick: this.toggleOverflow,
|
|
289
|
+
onKeyPress: e => (0, _isEnterPress.default)(e) && this.toggleOverflow(e)
|
|
290
|
+
}, text)
|
|
291
|
+
);
|
|
281
292
|
}
|
|
282
293
|
|
|
283
294
|
return null;
|
|
@@ -32,6 +32,8 @@ var _localeConsumer = _interopRequireDefault(require("../locale/localeConsumer")
|
|
|
32
32
|
|
|
33
33
|
var _semiIcons = require("@douyinfe/semi-icons");
|
|
34
34
|
|
|
35
|
+
var _isEnterPress = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs/utils/isEnterPress"));
|
|
36
|
+
|
|
35
37
|
const prefixCls = _constants.cssClasses.PREFIX;
|
|
36
38
|
|
|
37
39
|
class Copyable extends _react.default.PureComponent {
|
|
@@ -124,7 +126,10 @@ class Copyable extends _react.default.PureComponent {
|
|
|
124
126
|
}, /*#__PURE__*/_react.default.createElement("a", {
|
|
125
127
|
className: "".concat(prefixCls, "-action-copy-icon")
|
|
126
128
|
}, /*#__PURE__*/_react.default.createElement(_semiIcons.IconCopy, {
|
|
127
|
-
|
|
129
|
+
role: "button",
|
|
130
|
+
tabIndex: 0,
|
|
131
|
+
onClick: this.copy,
|
|
132
|
+
onKeyPress: e => (0, _isEnterPress.default)(e) && this.copy(e)
|
|
128
133
|
})))));
|
|
129
134
|
}
|
|
130
135
|
|
|
@@ -49,6 +49,8 @@ const prefixCls = _constants.cssClasses.PREFIX;
|
|
|
49
49
|
const ErrorSvg = function () {
|
|
50
50
|
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
51
51
|
return /*#__PURE__*/_react.default.createElement("svg", (0, _assign.default)({
|
|
52
|
+
focusable: false,
|
|
53
|
+
"aria-hidden": true,
|
|
52
54
|
width: "16",
|
|
53
55
|
height: "16",
|
|
54
56
|
viewBox: "0 0 16 16",
|
|
@@ -70,6 +72,8 @@ const ErrorSvg = function () {
|
|
|
70
72
|
const ReplaceSvg = function () {
|
|
71
73
|
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
72
74
|
return /*#__PURE__*/_react.default.createElement("svg", (0, _assign.default)({
|
|
75
|
+
focusable: false,
|
|
76
|
+
"aria-hidden": true,
|
|
73
77
|
width: "28",
|
|
74
78
|
height: "28",
|
|
75
79
|
viewBox: "0 0 28 28",
|
|
@@ -97,6 +101,8 @@ const ReplaceSvg = function () {
|
|
|
97
101
|
const DirectorySvg = function () {
|
|
98
102
|
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
99
103
|
return /*#__PURE__*/_react.default.createElement("svg", (0, _assign.default)({
|
|
104
|
+
focusable: false,
|
|
105
|
+
"aria-hidden": true,
|
|
100
106
|
width: "24",
|
|
101
107
|
height: "24",
|
|
102
108
|
viewBox: "0 0 24 24",
|
|
@@ -211,6 +217,8 @@ class FileCard extends _react.PureComponent {
|
|
|
211
217
|
const closeCls = "".concat(prefixCls, "-picture-file-card-close");
|
|
212
218
|
|
|
213
219
|
const retry = /*#__PURE__*/_react.default.createElement("div", {
|
|
220
|
+
role: "button",
|
|
221
|
+
tabIndex: 0,
|
|
214
222
|
className: "".concat(prefixCls, "-picture-file-card-retry"),
|
|
215
223
|
onClick: e => this.onRetry(e)
|
|
216
224
|
}, /*#__PURE__*/_react.default.createElement(_semiIcons.IconRefresh, {
|
|
@@ -224,6 +232,8 @@ class FileCard extends _react.PureComponent {
|
|
|
224
232
|
showArrow: false,
|
|
225
233
|
spacing: 4
|
|
226
234
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
235
|
+
role: "button",
|
|
236
|
+
tabIndex: 0,
|
|
227
237
|
className: "".concat(prefixCls, "-picture-file-card-replace"),
|
|
228
238
|
onClick: e => this.onReplace(e)
|
|
229
239
|
}, /*#__PURE__*/_react.default.createElement(ReplaceSvg, {
|
|
@@ -235,9 +245,10 @@ class FileCard extends _react.PureComponent {
|
|
|
235
245
|
}, index + 1);
|
|
236
246
|
const thumbnail = typeof renderThumbnail === 'function' ? renderThumbnail(this.props) : /*#__PURE__*/_react.default.createElement("img", {
|
|
237
247
|
src: url,
|
|
238
|
-
alt:
|
|
248
|
+
alt: name
|
|
239
249
|
});
|
|
240
250
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
251
|
+
role: "listitem",
|
|
241
252
|
className: filePicCardCls,
|
|
242
253
|
style: style,
|
|
243
254
|
onClick: onPreviewClick
|
|
@@ -245,12 +256,15 @@ class FileCard extends _react.PureComponent {
|
|
|
245
256
|
percent: percent,
|
|
246
257
|
type: "circle",
|
|
247
258
|
size: "small",
|
|
248
|
-
orbitStroke: '#FFF'
|
|
259
|
+
orbitStroke: '#FFF',
|
|
260
|
+
"aria-label": "uploading file progress"
|
|
249
261
|
}) : null, showRetry ? retry : null, showReplace && replace, showPicInfo && picInfo, !disabled && /*#__PURE__*/_react.default.createElement("div", {
|
|
250
|
-
className: closeCls
|
|
251
|
-
}, /*#__PURE__*/_react.default.createElement(_semiIcons.IconClose, {
|
|
252
|
-
size: "extra-small",
|
|
262
|
+
className: closeCls,
|
|
253
263
|
onClick: e => this.onRemove(e)
|
|
264
|
+
}, /*#__PURE__*/_react.default.createElement(_semiIcons.IconClose, {
|
|
265
|
+
tabIndex: 0,
|
|
266
|
+
role: "button",
|
|
267
|
+
size: "extra-small"
|
|
254
268
|
})), this.renderPicValidateMsg());
|
|
255
269
|
}
|
|
256
270
|
|
|
@@ -286,7 +300,8 @@ class FileCard extends _react.PureComponent {
|
|
|
286
300
|
const showReplace = status === _constants.strings.FILE_STATUS_SUCCESS && propsShowReplace;
|
|
287
301
|
const fileSize = this.transSize(size);
|
|
288
302
|
let previewContent = preview ? /*#__PURE__*/_react.default.createElement("img", {
|
|
289
|
-
src: url
|
|
303
|
+
src: url,
|
|
304
|
+
alt: name
|
|
290
305
|
}) : /*#__PURE__*/_react.default.createElement(_semiIcons.IconFile, {
|
|
291
306
|
size: "large"
|
|
292
307
|
});
|
|
@@ -296,6 +311,7 @@ class FileCard extends _react.PureComponent {
|
|
|
296
311
|
}
|
|
297
312
|
|
|
298
313
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
314
|
+
role: "listitem",
|
|
299
315
|
className: fileCardCls,
|
|
300
316
|
style: style,
|
|
301
317
|
onClick: onPreviewClick
|
|
@@ -325,12 +341,15 @@ class FileCard extends _react.PureComponent {
|
|
|
325
341
|
percent: percent,
|
|
326
342
|
style: {
|
|
327
343
|
width: '100%'
|
|
328
|
-
}
|
|
344
|
+
},
|
|
345
|
+
"aria-label": "uploading file progress"
|
|
329
346
|
}) : null, /*#__PURE__*/_react.default.createElement("div", {
|
|
330
347
|
className: "".concat(infoCls, "-main-control")
|
|
331
348
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
332
349
|
className: "".concat(infoCls, "-validate-message")
|
|
333
350
|
}, this.renderValidateMessage()), showRetry ? /*#__PURE__*/_react.default.createElement("span", {
|
|
351
|
+
role: "button",
|
|
352
|
+
tabIndex: 0,
|
|
334
353
|
className: "".concat(infoCls, "-retry"),
|
|
335
354
|
onClick: e => this.onRetry(e)
|
|
336
355
|
}, locale.retry) : null)), /*#__PURE__*/_react.default.createElement(_index.default, {
|
package/lib/cjs/upload/index.js
CHANGED
|
@@ -233,6 +233,7 @@ class Upload extends _baseComponent.default {
|
|
|
233
233
|
});
|
|
234
234
|
const mainCls = "".concat(prefixCls, "-file-list-main");
|
|
235
235
|
const addContentProps = {
|
|
236
|
+
role: 'button',
|
|
236
237
|
className: uploadAddCls,
|
|
237
238
|
onClick: this.onClick
|
|
238
239
|
};
|
|
@@ -265,7 +266,9 @@ class Upload extends _baseComponent.default {
|
|
|
265
266
|
return /*#__PURE__*/_react.default.createElement(_localeConsumer.default, {
|
|
266
267
|
componentName: "Upload"
|
|
267
268
|
}, locale => /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({}, containerProps), /*#__PURE__*/_react.default.createElement("div", {
|
|
268
|
-
className: mainCls
|
|
269
|
+
className: mainCls,
|
|
270
|
+
role: "list",
|
|
271
|
+
"aria-label": "picture list"
|
|
269
272
|
}, (0, _map.default)(fileList).call(fileList, (file, index) => this.renderFile(file, index, locale)), showAddTriggerInList ? addContent : null)));
|
|
270
273
|
};
|
|
271
274
|
|
|
@@ -299,10 +302,14 @@ class Upload extends _baseComponent.default {
|
|
|
299
302
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
300
303
|
className: "".concat(titleCls, "-choosen")
|
|
301
304
|
}, locale.selectedFiles), showClear ? /*#__PURE__*/_react.default.createElement("span", {
|
|
305
|
+
role: "button",
|
|
306
|
+
tabIndex: 0,
|
|
302
307
|
onClick: this.clear,
|
|
303
308
|
className: "".concat(titleCls, "-clear")
|
|
304
309
|
}, locale.clear) : null) : null, /*#__PURE__*/_react.default.createElement("div", {
|
|
305
|
-
className: mainCls
|
|
310
|
+
className: mainCls,
|
|
311
|
+
role: "list",
|
|
312
|
+
"aria-label": "file list"
|
|
306
313
|
}, (0, _map.default)(fileList).call(fileList, (file, index) => this.renderFile(file, index, locale)))));
|
|
307
314
|
};
|
|
308
315
|
|
|
@@ -327,7 +334,8 @@ class Upload extends _baseComponent.default {
|
|
|
327
334
|
const {
|
|
328
335
|
draggable,
|
|
329
336
|
children,
|
|
330
|
-
listType
|
|
337
|
+
listType,
|
|
338
|
+
disabled
|
|
331
339
|
} = this.props;
|
|
332
340
|
const uploadAddCls = (0, _classnames.default)("".concat(prefixCls, "-add"));
|
|
333
341
|
|
|
@@ -340,6 +348,9 @@ class Upload extends _baseComponent.default {
|
|
|
340
348
|
}
|
|
341
349
|
|
|
342
350
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
351
|
+
role: "button",
|
|
352
|
+
tabIndex: 0,
|
|
353
|
+
"aria-disabled": disabled,
|
|
343
354
|
className: uploadAddCls,
|
|
344
355
|
onClick: this.onClick
|
|
345
356
|
}, children);
|
|
@@ -353,7 +364,8 @@ class Upload extends _baseComponent.default {
|
|
|
353
364
|
children,
|
|
354
365
|
dragIcon,
|
|
355
366
|
dragMainText,
|
|
356
|
-
dragSubText
|
|
367
|
+
dragSubText,
|
|
368
|
+
disabled
|
|
357
369
|
} = this.props;
|
|
358
370
|
const dragAreaBaseCls = "".concat(prefixCls, "-drag-area");
|
|
359
371
|
const dragAreaCls = (0, _classnames.default)(dragAreaBaseCls, {
|
|
@@ -364,6 +376,9 @@ class Upload extends _baseComponent.default {
|
|
|
364
376
|
return /*#__PURE__*/_react.default.createElement(_localeConsumer.default, {
|
|
365
377
|
componentName: "Upload"
|
|
366
378
|
}, locale => /*#__PURE__*/_react.default.createElement("div", {
|
|
379
|
+
role: "button",
|
|
380
|
+
tabIndex: 0,
|
|
381
|
+
"aria-disabled": disabled,
|
|
367
382
|
className: dragAreaCls,
|
|
368
383
|
onDrop: this.onDrop,
|
|
369
384
|
onDragOver: this.onDragOver,
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import _isFunction from "lodash/isFunction";
|
|
2
|
+
import _get from "lodash/get";
|
|
3
|
+
import { useState, useEffect } from 'react';
|
|
4
|
+
import { getActiveElement } from '../index';
|
|
5
|
+
export function usePrevFocus() {
|
|
6
|
+
const [prevFocusElement, setPrevFocus] = useState(getActiveElement());
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
return function cleanup() {
|
|
9
|
+
const blur = _get(prevFocusElement, 'blur');
|
|
10
|
+
|
|
11
|
+
_isFunction(blur) && blur();
|
|
12
|
+
};
|
|
13
|
+
}, [prevFocusElement]);
|
|
14
|
+
return [prevFocusElement, setPrevFocus];
|
|
15
|
+
}
|
package/lib/es/_utils/index.d.ts
CHANGED
package/lib/es/_utils/index.js
CHANGED
|
@@ -165,4 +165,7 @@ export const registerMediaQuery = (media, _ref2) => {
|
|
|
165
165
|
* @returns boolean
|
|
166
166
|
*/
|
|
167
167
|
|
|
168
|
-
export const isSemiIcon = icon => /*#__PURE__*/React.isValidElement(icon) && _get(icon.type, 'elementType') === 'Icon';
|
|
168
|
+
export const isSemiIcon = icon => /*#__PURE__*/React.isValidElement(icon) && _get(icon.type, 'elementType') === 'Icon';
|
|
169
|
+
export function getActiveElement() {
|
|
170
|
+
return document ? document.activeElement : null;
|
|
171
|
+
}
|
package/lib/es/anchor/index.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export interface AnchorProps {
|
|
|
24
24
|
targetOffset?: number;
|
|
25
25
|
onChange?: (currentLink: string, previousLink: string) => void;
|
|
26
26
|
onClick?: (e: React.MouseEvent<HTMLElement>, currentLink: string) => void;
|
|
27
|
+
'aria-label'?: React.AriaAttributes['aria-label'];
|
|
27
28
|
}
|
|
28
29
|
export interface AnchorState {
|
|
29
30
|
activeLink: string;
|
|
@@ -51,6 +52,7 @@ declare class Anchor extends BaseComponent<AnchorProps, AnchorState> {
|
|
|
51
52
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
52
53
|
onClick: PropTypes.Requireable<(...args: any[]) => any>;
|
|
53
54
|
defaultAnchor: PropTypes.Requireable<string>;
|
|
55
|
+
'aria-label': PropTypes.Requireable<string>;
|
|
54
56
|
};
|
|
55
57
|
static defaultProps: {
|
|
56
58
|
size: string;
|
package/lib/es/anchor/index.js
CHANGED
|
@@ -221,6 +221,7 @@ class Anchor extends BaseComponent {
|
|
|
221
221
|
position,
|
|
222
222
|
autoCollapse
|
|
223
223
|
} = this.props;
|
|
224
|
+
const ariaLabel = this.props['aria-label'];
|
|
224
225
|
const {
|
|
225
226
|
activeLink,
|
|
226
227
|
scrollHeight,
|
|
@@ -255,10 +256,13 @@ class Anchor extends BaseComponent {
|
|
|
255
256
|
removeLink: this.removeLink
|
|
256
257
|
}
|
|
257
258
|
}, /*#__PURE__*/React.createElement("div", {
|
|
259
|
+
role: "navigation",
|
|
260
|
+
"aria-label": ariaLabel || 'Side navigation',
|
|
258
261
|
className: wrapperCls,
|
|
259
262
|
style: wrapperStyle,
|
|
260
263
|
id: this.anchorID
|
|
261
264
|
}, /*#__PURE__*/React.createElement("div", {
|
|
265
|
+
"aria-hidden": true,
|
|
262
266
|
className: slideCls,
|
|
263
267
|
style: {
|
|
264
268
|
height: scrollHeight
|
|
@@ -292,7 +296,8 @@ Anchor.PropTypes = {
|
|
|
292
296
|
getContainer: PropTypes.func,
|
|
293
297
|
onChange: PropTypes.func,
|
|
294
298
|
onClick: PropTypes.func,
|
|
295
|
-
defaultAnchor: PropTypes.string
|
|
299
|
+
defaultAnchor: PropTypes.string,
|
|
300
|
+
'aria-label': PropTypes.string
|
|
296
301
|
};
|
|
297
302
|
Anchor.defaultProps = {
|
|
298
303
|
size: 'default',
|
package/lib/es/anchor/link.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import BaseComponent from '../_base/baseComponent';
|
|
4
4
|
import LinkFoundation, { LinkAdapter } from '@douyinfe/semi-foundation/lib/es/anchor/linkFoundation';
|
|
5
|
+
import { AnchorContextType } from './anchor-context';
|
|
5
6
|
export interface LinkProps {
|
|
6
7
|
href?: string;
|
|
7
8
|
title?: string | React.ReactNode;
|
|
@@ -21,13 +22,15 @@ export default class Link extends BaseComponent<LinkProps, {}> {
|
|
|
21
22
|
title: string;
|
|
22
23
|
className: string;
|
|
23
24
|
};
|
|
24
|
-
static contextType: React.Context<
|
|
25
|
+
static contextType: React.Context<AnchorContextType>;
|
|
25
26
|
foundation: LinkFoundation;
|
|
27
|
+
context: AnchorContextType;
|
|
26
28
|
constructor(props: LinkProps);
|
|
27
29
|
get adapter(): LinkAdapter;
|
|
28
30
|
handleAddLink(): void;
|
|
29
31
|
handleRemoveLink(): void;
|
|
30
32
|
handleUpdateLink(href: string, prevHref: string): void;
|
|
33
|
+
handleClick(e: React.KeyboardEvent | React.MouseEvent): void;
|
|
31
34
|
componentDidMount(): void;
|
|
32
35
|
componentDidUpdate(prevProps: LinkProps): void;
|
|
33
36
|
componentWillUnmount(): void;
|
package/lib/es/anchor/link.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
|
|
2
|
+
import _bindInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/bind";
|
|
2
3
|
import React from 'react';
|
|
3
4
|
import cls from 'classnames';
|
|
4
5
|
import PropTypes from 'prop-types';
|
|
@@ -11,6 +12,8 @@ const prefixCls = cssClasses.PREFIX; // eslint-disable-next-line @typescript-esl
|
|
|
11
12
|
|
|
12
13
|
export default class Link extends BaseComponent {
|
|
13
14
|
constructor(props) {
|
|
15
|
+
var _context;
|
|
16
|
+
|
|
14
17
|
super(props);
|
|
15
18
|
|
|
16
19
|
this.renderTitle = () => {
|
|
@@ -69,6 +72,7 @@ export default class Link extends BaseComponent {
|
|
|
69
72
|
};
|
|
70
73
|
|
|
71
74
|
this.foundation = new LinkFoundation(this.adapter);
|
|
75
|
+
this.handleClick = _bindInstanceProperty(_context = this.handleClick).call(_context, this);
|
|
72
76
|
}
|
|
73
77
|
|
|
74
78
|
get adapter() {
|
|
@@ -94,6 +98,17 @@ export default class Link extends BaseComponent {
|
|
|
94
98
|
this.foundation.handleUpdateLink(href, prevHref);
|
|
95
99
|
}
|
|
96
100
|
|
|
101
|
+
handleClick(e) {
|
|
102
|
+
const {
|
|
103
|
+
disabled,
|
|
104
|
+
href
|
|
105
|
+
} = this.props;
|
|
106
|
+
const {
|
|
107
|
+
onClick
|
|
108
|
+
} = this.context;
|
|
109
|
+
!disabled && onClick(e, href);
|
|
110
|
+
}
|
|
111
|
+
|
|
97
112
|
componentDidMount() {
|
|
98
113
|
this.handleAddLink();
|
|
99
114
|
}
|
|
@@ -115,11 +130,12 @@ export default class Link extends BaseComponent {
|
|
|
115
130
|
href,
|
|
116
131
|
className,
|
|
117
132
|
style,
|
|
118
|
-
disabled = false
|
|
133
|
+
disabled = false,
|
|
134
|
+
title
|
|
119
135
|
} = this.props;
|
|
120
136
|
const {
|
|
121
137
|
activeLink,
|
|
122
|
-
|
|
138
|
+
showTooltip
|
|
123
139
|
} = this.context;
|
|
124
140
|
const active = activeLink === href;
|
|
125
141
|
const linkCls = cls("".concat(prefixCls, "-link"), className);
|
|
@@ -127,13 +143,30 @@ export default class Link extends BaseComponent {
|
|
|
127
143
|
["".concat(prefixCls, "-link-title-active")]: active,
|
|
128
144
|
["".concat(prefixCls, "-link-title-disabled")]: disabled
|
|
129
145
|
});
|
|
146
|
+
const ariaProps = {
|
|
147
|
+
'aria-disabled': disabled,
|
|
148
|
+
'aria-label': href
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
if (active) {
|
|
152
|
+
ariaProps['aria-details'] = 'active';
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
if (!showTooltip && typeof title === 'string') {
|
|
156
|
+
ariaProps['title'] = title;
|
|
157
|
+
}
|
|
158
|
+
|
|
130
159
|
return /*#__PURE__*/React.createElement("div", {
|
|
131
160
|
className: linkCls,
|
|
132
161
|
style: style
|
|
133
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
162
|
+
}, /*#__PURE__*/React.createElement("div", _Object$assign({
|
|
163
|
+
role: "link",
|
|
164
|
+
tabIndex: 0
|
|
165
|
+
}, ariaProps, {
|
|
134
166
|
className: linkTitleCls,
|
|
135
|
-
onClick: e =>
|
|
136
|
-
|
|
167
|
+
onClick: e => this.handleClick(e),
|
|
168
|
+
onKeyPress: e => this.handleClick(e)
|
|
169
|
+
}), this.renderTitle()), this.renderChildren());
|
|
137
170
|
}
|
|
138
171
|
|
|
139
172
|
}
|