@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/cjs/tooltip/index.js
CHANGED
|
@@ -22,6 +22,8 @@ var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-s
|
|
|
22
22
|
|
|
23
23
|
var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign"));
|
|
24
24
|
|
|
25
|
+
var _setTimeout2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set-timeout"));
|
|
26
|
+
|
|
25
27
|
var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
|
|
26
28
|
|
|
27
29
|
var _each2 = _interopRequireDefault(require("lodash/each"));
|
|
@@ -54,6 +56,8 @@ var _foundation = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/
|
|
|
54
56
|
|
|
55
57
|
var _constants2 = require("@douyinfe/semi-foundation/lib/cjs/tooltip/constants");
|
|
56
58
|
|
|
59
|
+
var _uuid = require("@douyinfe/semi-foundation/lib/cjs/utils/uuid");
|
|
60
|
+
|
|
57
61
|
require("@douyinfe/semi-foundation/lib/cjs/tooltip/tooltip.css");
|
|
58
62
|
|
|
59
63
|
var _baseComponent = _interopRequireDefault(require("../_base/baseComponent"));
|
|
@@ -127,18 +131,11 @@ class Tooltip extends _baseComponent.default {
|
|
|
127
131
|
}
|
|
128
132
|
|
|
129
133
|
return false;
|
|
130
|
-
};
|
|
134
|
+
}; // willEnter = () => {
|
|
135
|
+
// this.foundation.calcPosition();
|
|
136
|
+
// this.setState({ visible: true });
|
|
137
|
+
// };
|
|
131
138
|
|
|
132
|
-
this.willEnter = () => {
|
|
133
|
-
this.foundation.calcPosition();
|
|
134
|
-
/**
|
|
135
|
-
* Dangerous: remove setState in motion fix #1379
|
|
136
|
-
* because togglePortalVisible callback function will use visible state to notifyVisibleChange
|
|
137
|
-
* if visible state is old value, then notifyVisibleChange function will not be called
|
|
138
|
-
* we should ensure that after calling togglePortalVisible, callback function can get right visible value
|
|
139
|
-
*/
|
|
140
|
-
// this.setState({ visible: true });
|
|
141
|
-
};
|
|
142
139
|
|
|
143
140
|
this.didLeave = () => {
|
|
144
141
|
this.adapter.unregisterClickOutsideHandler();
|
|
@@ -194,7 +191,9 @@ class Tooltip extends _baseComponent.default {
|
|
|
194
191
|
visible,
|
|
195
192
|
portalEventSet,
|
|
196
193
|
placement,
|
|
197
|
-
transitionState
|
|
194
|
+
transitionState,
|
|
195
|
+
id,
|
|
196
|
+
isPositionUpdated
|
|
198
197
|
} = this.state;
|
|
199
198
|
const {
|
|
200
199
|
prefixCls,
|
|
@@ -202,6 +201,7 @@ class Tooltip extends _baseComponent.default {
|
|
|
202
201
|
showArrow,
|
|
203
202
|
style,
|
|
204
203
|
motion,
|
|
204
|
+
role,
|
|
205
205
|
zIndex
|
|
206
206
|
} = this.props;
|
|
207
207
|
const {
|
|
@@ -217,9 +217,8 @@ class Tooltip extends _baseComponent.default {
|
|
|
217
217
|
const icon = this.renderIcon();
|
|
218
218
|
const portalInnerStyle = (0, _omit2.default)(containerStyle, motion ? ['transformOrigin'] : undefined);
|
|
219
219
|
const transformOrigin = (0, _get2.default)(containerStyle, 'transformOrigin');
|
|
220
|
-
const inner = motion ? /*#__PURE__*/_react.default.createElement(_TooltipStyledTransition.default, {
|
|
220
|
+
const inner = motion && isPositionUpdated ? /*#__PURE__*/_react.default.createElement(_TooltipStyledTransition.default, {
|
|
221
221
|
position: placement,
|
|
222
|
-
willEnter: this.willEnter,
|
|
223
222
|
didLeave: this.didLeave,
|
|
224
223
|
motion: motion
|
|
225
224
|
}, transitionState === 'enter' ? _ref => {
|
|
@@ -230,13 +229,13 @@ class Tooltip extends _baseComponent.default {
|
|
|
230
229
|
} = _ref;
|
|
231
230
|
return /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
|
|
232
231
|
className: (0, _classnames.default)(className, animateCls),
|
|
233
|
-
style: (0, _assign.default)((0, _assign.default)((0, _assign.default)({
|
|
234
|
-
visibility: 'visible'
|
|
235
|
-
}, animateStyle), {
|
|
232
|
+
style: (0, _assign.default)((0, _assign.default)((0, _assign.default)({}, animateStyle), {
|
|
236
233
|
transformOrigin
|
|
237
234
|
}), style)
|
|
238
235
|
}, portalEventSet, animateEvents, {
|
|
239
|
-
|
|
236
|
+
role: role,
|
|
237
|
+
"x-placement": placement,
|
|
238
|
+
id: id
|
|
240
239
|
}), content, icon);
|
|
241
240
|
} : null) : /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
|
|
242
241
|
className: className
|
|
@@ -307,7 +306,10 @@ class Tooltip extends _baseComponent.default {
|
|
|
307
306
|
},
|
|
308
307
|
isInsert: false,
|
|
309
308
|
placement: props.position || 'top',
|
|
310
|
-
transitionStyle: {}
|
|
309
|
+
transitionStyle: {},
|
|
310
|
+
isPositionUpdated: false,
|
|
311
|
+
id: (0, _uuid.getUuidShort)() // auto generate id, will be used by children.aria-describedby & content.id, improve a11y
|
|
312
|
+
|
|
311
313
|
};
|
|
312
314
|
this.foundation = new _foundation.default(this.adapter);
|
|
313
315
|
this.eventManager = new _Event.default();
|
|
@@ -345,18 +347,16 @@ class Tooltip extends _baseComponent.default {
|
|
|
345
347
|
transitionState: 'enter',
|
|
346
348
|
containerStyle: (0, _assign.default)((0, _assign.default)({}, this.state.containerStyle), containerStyle)
|
|
347
349
|
}, () => {
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
* then portal can't hide because _togglePortalVisible(false) will found isVisible=false and nowVisible=false(bug here)
|
|
353
|
-
*/
|
|
354
|
-
this.eventManager.emit('portalInserted');
|
|
350
|
+
(0, _setTimeout2.default)(() => {
|
|
351
|
+
// waiting child component mounted
|
|
352
|
+
this.eventManager.emit('portalInserted');
|
|
353
|
+
}, 0);
|
|
355
354
|
});
|
|
356
355
|
},
|
|
357
356
|
removePortal: () => {
|
|
358
357
|
this.setState({
|
|
359
|
-
isInsert: false
|
|
358
|
+
isInsert: false,
|
|
359
|
+
isPositionUpdated: false
|
|
360
360
|
});
|
|
361
361
|
},
|
|
362
362
|
getEventName: () => ({
|
|
@@ -438,7 +438,8 @@ class Tooltip extends _baseComponent.default {
|
|
|
438
438
|
|
|
439
439
|
this.setState({
|
|
440
440
|
containerStyle: (0, _assign.default)((0, _assign.default)({}, this.state.containerStyle), style),
|
|
441
|
-
placement: position
|
|
441
|
+
placement: position,
|
|
442
|
+
isPositionUpdated: true
|
|
442
443
|
}, () => {
|
|
443
444
|
this.eventManager.emit('positionUpdated');
|
|
444
445
|
});
|
|
@@ -596,10 +597,13 @@ class Tooltip extends _baseComponent.default {
|
|
|
596
597
|
render() {
|
|
597
598
|
const {
|
|
598
599
|
isInsert,
|
|
599
|
-
triggerEventSet
|
|
600
|
+
triggerEventSet,
|
|
601
|
+
visible,
|
|
602
|
+
id
|
|
600
603
|
} = this.state;
|
|
601
604
|
const {
|
|
602
|
-
wrapWhenSpecial
|
|
605
|
+
wrapWhenSpecial,
|
|
606
|
+
role
|
|
603
607
|
} = this.props;
|
|
604
608
|
let {
|
|
605
609
|
children
|
|
@@ -626,13 +630,23 @@ class Tooltip extends _baseComponent.default {
|
|
|
626
630
|
children = this.wrapSpan(children);
|
|
627
631
|
this.isWrapped = true;
|
|
628
632
|
}
|
|
633
|
+
} // eslint-disable-next-line prefer-const
|
|
634
|
+
|
|
635
|
+
|
|
636
|
+
let ariaAttribute = {}; // Take effect when used by Popover component
|
|
637
|
+
|
|
638
|
+
if (role === 'dialog') {
|
|
639
|
+
ariaAttribute['aria-expanded'] = visible ? 'true' : 'false';
|
|
640
|
+
ariaAttribute['aria-haspopup'] = 'dialog';
|
|
641
|
+
ariaAttribute['aria-controls'] = id;
|
|
642
|
+
} else {
|
|
643
|
+
ariaAttribute['aria-describedby'] = id;
|
|
629
644
|
} // The incoming children is a single valid element, otherwise wrap a layer with span
|
|
630
645
|
|
|
631
646
|
|
|
632
|
-
const newChild = /*#__PURE__*/_react.default.cloneElement(children, (0, _assign.default)((0, _assign.default)((0, _assign.default)({}, children.props), this.mergeEvents(children.props, triggerEventSet)), {
|
|
647
|
+
const newChild = /*#__PURE__*/_react.default.cloneElement(children, (0, _assign.default)((0, _assign.default)((0, _assign.default)((0, _assign.default)({}, ariaAttribute), children.props), this.mergeEvents(children.props, triggerEventSet)), {
|
|
633
648
|
style: (0, _assign.default)((0, _assign.default)({}, (0, _get2.default)(children, 'props.style')), extraStyle),
|
|
634
|
-
className: (0, _classnames.default)((0, _get2.default)(children, 'props.className')
|
|
635
|
-
),
|
|
649
|
+
className: (0, _classnames.default)((0, _get2.default)(children, 'props.className')),
|
|
636
650
|
// to maintain refs with callback
|
|
637
651
|
ref: node => {
|
|
638
652
|
// Keep your own reference
|
|
@@ -688,24 +702,26 @@ Tooltip.propTypes = {
|
|
|
688
702
|
arrowPointAtCenter: _propTypes.default.bool,
|
|
689
703
|
stopPropagation: _propTypes.default.bool,
|
|
690
704
|
// private
|
|
705
|
+
role: _propTypes.default.string,
|
|
691
706
|
wrapWhenSpecial: _propTypes.default.bool // when trigger has special status such as "disabled" or "loading", wrap span
|
|
692
707
|
|
|
693
708
|
};
|
|
694
709
|
Tooltip.defaultProps = {
|
|
695
|
-
|
|
710
|
+
arrowBounding: _constants2.numbers.ARROW_BOUNDING,
|
|
711
|
+
autoAdjustOverflow: true,
|
|
696
712
|
arrowPointAtCenter: true,
|
|
697
|
-
wrapWhenSpecial: true,
|
|
698
|
-
motion: true,
|
|
699
|
-
zIndex: _constants2.numbers.DEFAULT_Z_INDEX,
|
|
700
713
|
trigger: 'hover',
|
|
714
|
+
transformFromCenter: true,
|
|
701
715
|
position: 'top',
|
|
702
716
|
prefixCls: prefix,
|
|
703
|
-
|
|
717
|
+
role: 'tooltip',
|
|
704
718
|
mouseEnterDelay: _constants2.numbers.MOUSE_ENTER_DELAY,
|
|
705
719
|
mouseLeaveDelay: _constants2.numbers.MOUSE_LEAVE_DELAY,
|
|
720
|
+
motion: true,
|
|
706
721
|
onVisibleChange: _noop2.default,
|
|
707
722
|
onClickOutSide: _noop2.default,
|
|
708
723
|
spacing: _constants2.numbers.SPACING,
|
|
709
724
|
showArrow: true,
|
|
710
|
-
|
|
725
|
+
wrapWhenSpecial: true,
|
|
726
|
+
zIndex: _constants2.numbers.DEFAULT_Z_INDEX
|
|
711
727
|
};
|
|
@@ -209,6 +209,8 @@ class Transfer extends _baseComponent.default {
|
|
|
209
209
|
}
|
|
210
210
|
|
|
211
211
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
212
|
+
role: "search",
|
|
213
|
+
"aria-label": "Transfer filter",
|
|
212
214
|
className: "".concat(prefixcls, "-filter")
|
|
213
215
|
}, /*#__PURE__*/_react.default.createElement(_index2.default, (0, _assign.default)({
|
|
214
216
|
prefix: /*#__PURE__*/_react.default.createElement(_semiIcons.IconSearch, null),
|
|
@@ -276,6 +278,7 @@ class Transfer extends _baseComponent.default {
|
|
|
276
278
|
disabled: item.disabled || disabled,
|
|
277
279
|
className: leftItemCls,
|
|
278
280
|
checked: checked,
|
|
281
|
+
role: "listitem",
|
|
279
282
|
onChange: () => this.onSelectOrRemove(item)
|
|
280
283
|
}, item.label);
|
|
281
284
|
}
|
|
@@ -441,7 +444,9 @@ class Transfer extends _baseComponent.default {
|
|
|
441
444
|
}
|
|
442
445
|
});
|
|
443
446
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
444
|
-
className: "".concat(prefixcls, "-left-list")
|
|
447
|
+
className: "".concat(prefixcls, "-left-list"),
|
|
448
|
+
role: "list",
|
|
449
|
+
"aria-label": "Option list"
|
|
445
450
|
}, content);
|
|
446
451
|
}
|
|
447
452
|
|
|
@@ -479,19 +484,27 @@ class Transfer extends _baseComponent.default {
|
|
|
479
484
|
}
|
|
480
485
|
|
|
481
486
|
const DragHandle = (0, _reactSortableHoc.SortableHandle)(() => /*#__PURE__*/_react.default.createElement(_semiIcons.IconHandle, {
|
|
487
|
+
role: "button",
|
|
488
|
+
"aria-label": "Drag and sort",
|
|
482
489
|
className: "".concat(prefixcls, "-right-item-drag-handler")
|
|
483
490
|
}));
|
|
484
|
-
return
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
})
|
|
494
|
-
|
|
491
|
+
return (
|
|
492
|
+
/*#__PURE__*/
|
|
493
|
+
// https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex
|
|
494
|
+
_react.default.createElement("div", {
|
|
495
|
+
role: "listitem",
|
|
496
|
+
className: rightItemCls,
|
|
497
|
+
key: newItem.key
|
|
498
|
+
}, draggable ? /*#__PURE__*/_react.default.createElement(DragHandle, null) : null, /*#__PURE__*/_react.default.createElement("div", {
|
|
499
|
+
className: "".concat(prefixcls, "-right-item-text")
|
|
500
|
+
}, label), /*#__PURE__*/_react.default.createElement(_semiIcons.IconClose, {
|
|
501
|
+
onClick: onRemove,
|
|
502
|
+
"aria-disabled": item.disabled,
|
|
503
|
+
className: (0, _classnames.default)("".concat(prefixcls, "-item-close-icon"), {
|
|
504
|
+
["".concat(prefixcls, "-item-close-icon-disabled")]: item.disabled
|
|
505
|
+
})
|
|
506
|
+
}))
|
|
507
|
+
);
|
|
495
508
|
}
|
|
496
509
|
|
|
497
510
|
renderEmpty(type, emptyText) {
|
|
@@ -501,6 +514,7 @@ class Transfer extends _baseComponent.default {
|
|
|
501
514
|
["".concat(prefixcls, "-left-empty")]: type === 'left'
|
|
502
515
|
});
|
|
503
516
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
517
|
+
"aria-label": "empty",
|
|
504
518
|
className: emptyCls
|
|
505
519
|
}, emptyText);
|
|
506
520
|
}
|
|
@@ -513,7 +527,9 @@ class Transfer extends _baseComponent.default {
|
|
|
513
527
|
items
|
|
514
528
|
} = _ref;
|
|
515
529
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
516
|
-
className: "".concat(prefixcls, "-right-list")
|
|
530
|
+
className: "".concat(prefixcls, "-right-list"),
|
|
531
|
+
role: "list",
|
|
532
|
+
"aria-label": "Selected list"
|
|
517
533
|
}, (0, _map2.default)(items).call(items, (item, index) =>
|
|
518
534
|
/*#__PURE__*/
|
|
519
535
|
// sortableElement will take over the property 'key', so use another '_optionKey' to pass
|
|
@@ -583,7 +599,9 @@ class Transfer extends _baseComponent.default {
|
|
|
583
599
|
|
|
584
600
|
case selectedData.length && !draggable:
|
|
585
601
|
const list = /*#__PURE__*/_react.default.createElement("div", {
|
|
586
|
-
className: "".concat(prefixcls, "-right-list")
|
|
602
|
+
className: "".concat(prefixcls, "-right-list"),
|
|
603
|
+
role: "list",
|
|
604
|
+
"aria-label": "Selected list"
|
|
587
605
|
}, (0, _map2.default)(selectedData).call(selectedData, item => this.renderRightItem((0, _assign.default)({}, item))));
|
|
588
606
|
|
|
589
607
|
content = list;
|
package/lib/cjs/tree/index.d.ts
CHANGED
|
@@ -70,6 +70,7 @@ declare class Tree extends BaseComponent<TreeProps, TreeState> {
|
|
|
70
70
|
onDragStart: PropTypes.Requireable<(...args: any[]) => any>;
|
|
71
71
|
onDrop: PropTypes.Requireable<(...args: any[]) => any>;
|
|
72
72
|
labelEllipsis: PropTypes.Requireable<boolean>;
|
|
73
|
+
'aria-label': PropTypes.Requireable<string>;
|
|
73
74
|
};
|
|
74
75
|
static defaultProps: {
|
|
75
76
|
showClear: boolean;
|
package/lib/cjs/tree/index.js
CHANGED
|
@@ -563,6 +563,7 @@ class Tree extends _baseComponent.default {
|
|
|
563
563
|
}
|
|
564
564
|
|
|
565
565
|
return /*#__PURE__*/_react.default.createElement(_index.default, (0, _assign.default)({
|
|
566
|
+
"aria-label": 'Filter Tree',
|
|
566
567
|
ref: this.inputRef
|
|
567
568
|
}, inputProps));
|
|
568
569
|
}));
|
|
@@ -665,6 +666,14 @@ class Tree extends _baseComponent.default {
|
|
|
665
666
|
});
|
|
666
667
|
const searchNoRes = Boolean(inputValue) && !filteredKeys.size;
|
|
667
668
|
const noData = (0, _isEmpty2.default)(keyEntities) || showFilteredOnly && searchNoRes;
|
|
669
|
+
const ariaAttr = {
|
|
670
|
+
role: noData ? 'none' : 'tree'
|
|
671
|
+
};
|
|
672
|
+
|
|
673
|
+
if (ariaAttr.role === 'tree') {
|
|
674
|
+
ariaAttr['aria-multiselectable'] = multiple ? true : false;
|
|
675
|
+
}
|
|
676
|
+
|
|
668
677
|
return /*#__PURE__*/_react.default.createElement(_treeContext.default.Provider, {
|
|
669
678
|
value: {
|
|
670
679
|
treeDisabled: disabled,
|
|
@@ -702,13 +711,12 @@ class Tree extends _baseComponent.default {
|
|
|
702
711
|
labelEllipsis: typeof labelEllipsis === 'undefined' ? virtualize : labelEllipsis
|
|
703
712
|
}
|
|
704
713
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
714
|
+
"aria-label": this.props['aria-label'],
|
|
705
715
|
className: wrapperCls,
|
|
706
|
-
role: "list-box",
|
|
707
716
|
style: style
|
|
708
|
-
}, filterTreeNode ? this.renderInput() : null, /*#__PURE__*/_react.default.createElement("div", {
|
|
709
|
-
className: listCls
|
|
710
|
-
|
|
711
|
-
}, noData ? this.renderEmpty() : this.renderNodeList())));
|
|
717
|
+
}, filterTreeNode ? this.renderInput() : null, /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
|
|
718
|
+
className: listCls
|
|
719
|
+
}, ariaAttr), noData ? this.renderEmpty() : this.renderNodeList())));
|
|
712
720
|
}
|
|
713
721
|
|
|
714
722
|
}
|
|
@@ -773,7 +781,8 @@ Tree.propTypes = {
|
|
|
773
781
|
onDragOver: _propTypes.default.func,
|
|
774
782
|
onDragStart: _propTypes.default.func,
|
|
775
783
|
onDrop: _propTypes.default.func,
|
|
776
|
-
labelEllipsis: _propTypes.default.bool
|
|
784
|
+
labelEllipsis: _propTypes.default.bool,
|
|
785
|
+
'aria-label': _propTypes.default.string
|
|
777
786
|
};
|
|
778
787
|
Tree.defaultProps = {
|
|
779
788
|
showClear: true,
|
|
@@ -29,11 +29,19 @@ export default class TreeNode extends PureComponent<TreeNodeProps, TreeNodeState
|
|
|
29
29
|
debounceSelect: any;
|
|
30
30
|
refNode: HTMLElement;
|
|
31
31
|
constructor(props: TreeNodeProps);
|
|
32
|
-
onSelect: (e: React.MouseEvent) => void;
|
|
33
|
-
onExpand: (e: React.MouseEvent) => void;
|
|
34
|
-
onCheck: (e: React.MouseEvent) => void;
|
|
32
|
+
onSelect: (e: React.MouseEvent | React.KeyboardEvent) => void;
|
|
33
|
+
onExpand: (e: React.MouseEvent | React.KeyboardEvent) => void;
|
|
34
|
+
onCheck: (e: React.MouseEvent | React.KeyboardEvent) => void;
|
|
35
|
+
/**
|
|
36
|
+
* A11y: simulate checkbox click
|
|
37
|
+
*/
|
|
38
|
+
handleCheckEnterPress: (e: React.KeyboardEvent) => void;
|
|
35
39
|
onContextMenu: (e: React.MouseEvent) => void;
|
|
36
|
-
onClick: (e: React.MouseEvent) => void;
|
|
40
|
+
onClick: (e: React.MouseEvent | React.KeyboardEvent) => void;
|
|
41
|
+
/**
|
|
42
|
+
* A11y: simulate li click
|
|
43
|
+
*/
|
|
44
|
+
handleliEnterPress: (e: React.KeyboardEvent) => void;
|
|
37
45
|
onDoubleClick: (e: React.MouseEvent) => void;
|
|
38
46
|
onDragStart: (e: React.DragEvent) => void;
|
|
39
47
|
onDragEnter: (e: React.DragEvent) => void;
|
package/lib/cjs/tree/treeNode.js
CHANGED
|
@@ -24,6 +24,10 @@ var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-st
|
|
|
24
24
|
|
|
25
25
|
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
|
26
26
|
|
|
27
|
+
var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
|
|
28
|
+
|
|
29
|
+
var _get2 = _interopRequireDefault(require("lodash/get"));
|
|
30
|
+
|
|
27
31
|
var _isString2 = _interopRequireDefault(require("lodash/isString"));
|
|
28
32
|
|
|
29
33
|
var _isFunction2 = _interopRequireDefault(require("lodash/isFunction"));
|
|
@@ -38,6 +42,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
38
42
|
|
|
39
43
|
var _constants = require("@douyinfe/semi-foundation/lib/cjs/tree/constants");
|
|
40
44
|
|
|
45
|
+
var _isEnterPress = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs/utils/isEnterPress"));
|
|
46
|
+
|
|
41
47
|
var _semiIcons = require("@douyinfe/semi-icons");
|
|
42
48
|
|
|
43
49
|
var _checkbox = require("../checkbox");
|
|
@@ -95,6 +101,16 @@ class TreeNode extends _react.PureComponent {
|
|
|
95
101
|
e.nativeEvent.stopImmediatePropagation();
|
|
96
102
|
onNodeCheck(e, this.props);
|
|
97
103
|
};
|
|
104
|
+
/**
|
|
105
|
+
* A11y: simulate checkbox click
|
|
106
|
+
*/
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
this.handleCheckEnterPress = e => {
|
|
110
|
+
if ((0, _isEnterPress.default)(e)) {
|
|
111
|
+
this.onCheck(e);
|
|
112
|
+
}
|
|
113
|
+
};
|
|
98
114
|
|
|
99
115
|
this.onContextMenu = e => {
|
|
100
116
|
const {
|
|
@@ -119,6 +135,16 @@ class TreeNode extends _react.PureComponent {
|
|
|
119
135
|
this.onExpand(e);
|
|
120
136
|
}
|
|
121
137
|
};
|
|
138
|
+
/**
|
|
139
|
+
* A11y: simulate li click
|
|
140
|
+
*/
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
this.handleliEnterPress = e => {
|
|
144
|
+
if ((0, _isEnterPress.default)(e)) {
|
|
145
|
+
this.onClick(e);
|
|
146
|
+
}
|
|
147
|
+
};
|
|
122
148
|
|
|
123
149
|
this.onDoubleClick = e => {
|
|
124
150
|
const {
|
|
@@ -294,7 +320,8 @@ class TreeNode extends _react.PureComponent {
|
|
|
294
320
|
renderArrow() {
|
|
295
321
|
const showIcon = !this.isLeaf();
|
|
296
322
|
const {
|
|
297
|
-
loading
|
|
323
|
+
loading,
|
|
324
|
+
expanded
|
|
298
325
|
} = this.props;
|
|
299
326
|
|
|
300
327
|
if (loading) {
|
|
@@ -305,6 +332,8 @@ class TreeNode extends _react.PureComponent {
|
|
|
305
332
|
|
|
306
333
|
if (showIcon) {
|
|
307
334
|
return /*#__PURE__*/_react.default.createElement(_semiIcons.IconTreeTriangleDown, {
|
|
335
|
+
role: 'button',
|
|
336
|
+
"aria-label": "".concat(expanded ? 'Expand' : 'Collapse', " the tree item"),
|
|
308
337
|
className: "".concat(prefixcls, "-expand-icon"),
|
|
309
338
|
size: "small",
|
|
310
339
|
onClick: this.onExpand
|
|
@@ -323,8 +352,11 @@ class TreeNode extends _react.PureComponent {
|
|
|
323
352
|
} = this.props;
|
|
324
353
|
const disabled = this.isDisabled();
|
|
325
354
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
326
|
-
|
|
355
|
+
role: 'none',
|
|
356
|
+
onClick: this.onCheck,
|
|
357
|
+
onKeyPress: this.handleCheckEnterPress
|
|
327
358
|
}, /*#__PURE__*/_react.default.createElement(_checkbox.Checkbox, {
|
|
359
|
+
"aria-label": 'Toggle the checked state of checkbox',
|
|
328
360
|
indeterminate: halfChecked,
|
|
329
361
|
checked: checked,
|
|
330
362
|
disabled: Boolean(disabled)
|
|
@@ -377,7 +409,7 @@ class TreeNode extends _react.PureComponent {
|
|
|
377
409
|
});
|
|
378
410
|
return /*#__PURE__*/_react.default.createElement("ul", {
|
|
379
411
|
className: wrapperCls
|
|
380
|
-
}, /*#__PURE__*/_react.default.createElement("
|
|
412
|
+
}, /*#__PURE__*/_react.default.createElement("li", {
|
|
381
413
|
className: (0, _concat.default)(_context2 = "".concat(prefixcls, "-label ")).call(_context2, prefixcls, "-label-empty")
|
|
382
414
|
}, emptyContent));
|
|
383
415
|
} // eslint-disable-next-line max-lines-per-function
|
|
@@ -476,7 +508,14 @@ class TreeNode extends _react.PureComponent {
|
|
|
476
508
|
ref: this.setRef
|
|
477
509
|
}, dragProps));
|
|
478
510
|
} else {
|
|
479
|
-
|
|
511
|
+
if ((0, _isEmpty2.default)(style)) {
|
|
512
|
+
return customLabel;
|
|
513
|
+
} else {
|
|
514
|
+
// In virtualization, props.style will contain location information
|
|
515
|
+
return /*#__PURE__*/_react.default.cloneElement(customLabel, {
|
|
516
|
+
style: (0, _assign.default)((0, _assign.default)({}, (0, _get2.default)(customLabel, ['props', 'style'])), style)
|
|
517
|
+
});
|
|
518
|
+
}
|
|
480
519
|
}
|
|
481
520
|
}
|
|
482
521
|
|
|
@@ -484,11 +523,21 @@ class TreeNode extends _react.PureComponent {
|
|
|
484
523
|
["".concat(prefixcls, "-drag-over-gap-top")]: !disabled && dragOverGapTop,
|
|
485
524
|
["".concat(prefixcls, "-drag-over-gap-bottom")]: !disabled && dragOverGapBottom
|
|
486
525
|
});
|
|
526
|
+
const setsize = (0, _get2.default)(rest, ['data', 'children', 'length']);
|
|
527
|
+
const posinset = (0, _isString2.default)(rest.pos) ? Number(rest.pos.split('-')[level + 1]) + 1 : 1;
|
|
487
528
|
return /*#__PURE__*/_react.default.createElement("li", (0, _assign.default)({
|
|
488
529
|
className: nodeCls,
|
|
489
|
-
role: "
|
|
530
|
+
role: "treeitem",
|
|
531
|
+
"aria-disabled": disabled,
|
|
532
|
+
"aria-checked": checked,
|
|
533
|
+
"aria-selected": selected,
|
|
534
|
+
"aria-setsize": setsize,
|
|
535
|
+
"aria-posinset": posinset,
|
|
536
|
+
"aria-expanded": expanded,
|
|
537
|
+
"aria-level": level + 1,
|
|
490
538
|
"data-key": eventKey,
|
|
491
539
|
onClick: this.onClick,
|
|
540
|
+
onKeyPress: this.handleliEnterPress,
|
|
492
541
|
onContextMenu: this.onContextMenu,
|
|
493
542
|
onDoubleClick: this.onDoubleClick,
|
|
494
543
|
ref: this.setRef,
|
|
@@ -34,6 +34,11 @@ export declare type OverrideCommonProps = 'renderFullLabel' | 'renderLabel' | 'd
|
|
|
34
34
|
* TreeSelectProps inherits some properties from BasicTreeSelectProps (from foundation) and TreeProps (from semi-ui-react).
|
|
35
35
|
*/
|
|
36
36
|
export interface TreeSelectProps extends Omit<BasicTreeSelectProps, OverrideCommonProps | 'validateStatus' | 'searchRender'>, Pick<TreeProps, OverrideCommonProps> {
|
|
37
|
+
'aria-describedby'?: React.AriaAttributes['aria-describedby'];
|
|
38
|
+
'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
|
|
39
|
+
'aria-invalid'?: React.AriaAttributes['aria-invalid'];
|
|
40
|
+
'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
|
|
41
|
+
'aria-required'?: React.AriaAttributes['aria-required'];
|
|
37
42
|
motion?: Motion;
|
|
38
43
|
mouseEnterDelay?: number;
|
|
39
44
|
mouseLeaveDelay?: number;
|
|
@@ -45,6 +50,7 @@ export interface TreeSelectProps extends Omit<BasicTreeSelectProps, OverrideComm
|
|
|
45
50
|
dropdownMatchSelectWidth?: boolean;
|
|
46
51
|
dropdownStyle?: React.CSSProperties;
|
|
47
52
|
insetLabel?: React.ReactNode;
|
|
53
|
+
insetLabelId?: string;
|
|
48
54
|
maxTagCount?: number;
|
|
49
55
|
motionExpand?: boolean;
|
|
50
56
|
optionListStyle?: React.CSSProperties;
|
|
@@ -85,6 +91,11 @@ export interface TreeSelectState extends Omit<BasicTreeSelectInnerData, Override
|
|
|
85
91
|
declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState> {
|
|
86
92
|
static contextType: React.Context<import("../configProvider/context").ContextValue>;
|
|
87
93
|
static propTypes: {
|
|
94
|
+
'aria-describedby': PropTypes.Requireable<string>;
|
|
95
|
+
'aria-errormessage': PropTypes.Requireable<string>;
|
|
96
|
+
'aria-invalid': PropTypes.Requireable<boolean>;
|
|
97
|
+
'aria-labelledby': PropTypes.Requireable<string>;
|
|
98
|
+
'aria-required': PropTypes.Requireable<boolean>;
|
|
88
99
|
loadedKeys: PropTypes.Requireable<string[]>;
|
|
89
100
|
loadData: PropTypes.Requireable<(...args: any[]) => any>;
|
|
90
101
|
onLoad: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -136,6 +147,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
|
|
|
136
147
|
suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
137
148
|
prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
138
149
|
insetLabel: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
150
|
+
insetLabelId: PropTypes.Requireable<string>;
|
|
139
151
|
zIndex: PropTypes.Requireable<number>;
|
|
140
152
|
getPopupContainer: PropTypes.Requireable<(...args: any[]) => any>;
|
|
141
153
|
dropdownMatchSelectWidth: PropTypes.Requireable<boolean>;
|
|
@@ -156,6 +168,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
|
|
|
156
168
|
optionListStyle: PropTypes.Requireable<object>;
|
|
157
169
|
searchRender: PropTypes.Requireable<boolean | ((...args: any[]) => any)>;
|
|
158
170
|
renderSelectedItem: PropTypes.Requireable<(...args: any[]) => any>;
|
|
171
|
+
'aria-label': PropTypes.Requireable<string>;
|
|
159
172
|
};
|
|
160
173
|
static defaultProps: Partial<TreeSelectProps>;
|
|
161
174
|
inputRef: React.RefObject<typeof Input>;
|
|
@@ -167,6 +180,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
|
|
|
167
180
|
onNodeClick: any;
|
|
168
181
|
onNodeDoubleClick: any;
|
|
169
182
|
onMotionEnd: any;
|
|
183
|
+
treeSelectID: string;
|
|
170
184
|
constructor(props: TreeSelectProps);
|
|
171
185
|
static getDerivedStateFromProps(props: TreeSelectProps, prevState: TreeSelectState): Partial<TreeSelectState>;
|
|
172
186
|
get adapter(): TreeSelectAdapter<TreeSelectProps, TreeSelectState>;
|
|
@@ -177,6 +191,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
|
|
|
177
191
|
renderContent: () => JSX.Element;
|
|
178
192
|
removeTag: (removedKey: TreeNodeData['key']) => void;
|
|
179
193
|
handleClick: (e: React.MouseEvent) => void;
|
|
194
|
+
handleSelectionEnterPress: (e: React.KeyboardEvent<HTMLDivElement>) => void;
|
|
180
195
|
showClearBtn: () => boolean;
|
|
181
196
|
renderTagList: () => React.ReactNode[];
|
|
182
197
|
/**
|
|
@@ -189,6 +204,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
|
|
|
189
204
|
renderSingleTriggerSearch: () => JSX.Element;
|
|
190
205
|
renderSelectContent: () => JSX.Element;
|
|
191
206
|
handleClear: (e: React.MouseEvent) => void;
|
|
207
|
+
handleClearEnterPress: (e: React.KeyboardEvent<HTMLDivElement>) => void;
|
|
192
208
|
handleMouseOver: (e: React.MouseEvent) => void;
|
|
193
209
|
handleMouseLeave: (e: React.MouseEvent) => void;
|
|
194
210
|
search: (value: string) => void;
|