@aloudata/aloudata-design 0.1.0-beta1 → 0.2.0-beta.3
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/README.md +22 -13
- package/es/Button/demo/Icon/index.d.ts +3 -0
- package/es/Button/demo/Icon/index.js +67 -0
- package/{src → es}/Button/demo/Icon/index.less +0 -0
- package/es/Button/demo/basic/index.d.ts +4 -0
- package/es/Button/demo/basic/index.js +57 -0
- package/{src → es}/Button/demo/basic/index.less +0 -1
- package/es/Button/demo/disable/index.d.ts +3 -0
- package/es/Button/demo/disable/index.js +23 -0
- package/{src → es}/Button/demo/disable/index.less +0 -0
- package/es/Button/demo/href/index.d.ts +2 -0
- package/es/Button/demo/href/index.js +17 -0
- package/es/Button/demo/loading/index.d.ts +3 -0
- package/es/Button/demo/loading/index.js +37 -0
- package/{src → es}/Button/demo/loading/index.less +0 -0
- package/es/Button/index.d.ts +50 -0
- package/es/Button/index.js +108 -0
- package/es/Button/style/index.d.ts +2 -0
- package/es/Button/style/index.js +2 -0
- package/{src → es}/Button/style/index.less +5 -5
- package/es/Dropdown/Button.d.ts +69 -0
- package/es/Dropdown/Button.js +39 -0
- package/es/Dropdown/demo/basic/index.d.ts +4 -0
- package/es/Dropdown/demo/basic/index.js +18 -0
- package/es/Dropdown/demo/button/index.d.ts +3 -0
- package/es/Dropdown/demo/button/index.js +159 -0
- package/{src → es}/Dropdown/demo/button/index.less +0 -0
- package/es/Dropdown/demo/placement/index.d.ts +2 -0
- package/es/Dropdown/demo/placement/index.js +40 -0
- package/es/Dropdown/demo/subMenu/index.d.ts +2 -0
- package/es/Dropdown/demo/subMenu/index.js +42 -0
- package/es/Dropdown/demo/trigger/index.d.ts +2 -0
- package/es/Dropdown/demo/trigger/index.js +17 -0
- package/es/Dropdown/index.d.ts +59 -0
- package/es/Dropdown/index.js +33 -0
- package/es/Dropdown/style/index.d.ts +2 -0
- package/es/Dropdown/style/index.js +2 -0
- package/{src → es}/Dropdown/style/index.less +0 -0
- package/es/Empty/index.d.ts +8 -0
- package/es/Empty/index.js +57 -0
- package/es/Empty/style/index.d.ts +1 -0
- package/es/Empty/style/index.js +1 -0
- package/es/Empty/style/index.less +23 -0
- package/{src → es}/Icon/iconfont/demo.css +0 -0
- package/{src → es}/Icon/iconfont/demo_index.html +95 -3
- package/es/Icon/iconfont/iconfont.css +109 -0
- package/es/Icon/iconfont/iconfont.js +46 -0
- package/{src → es}/Icon/iconfont/iconfont.json +28 -0
- package/es/Icon/iconfont/iconfont.ttf +0 -0
- package/es/Icon/iconfont/iconfont.woff +0 -0
- package/es/Icon/iconfont/iconfont.woff2 +0 -0
- package/es/Icon/index.d.ts +11 -0
- package/es/Icon/index.js +42 -0
- package/{src → es}/Icon/index.less +3 -3
- package/es/Input/components/Group/index.d.ts +14 -0
- package/es/Input/components/Group/index.js +12 -0
- package/es/Input/components/Password/index.d.ts +10 -0
- package/es/Input/components/Password/index.js +20 -0
- package/es/Input/components/TextArea/index.d.ts +52 -0
- package/es/Input/components/TextArea/index.js +14 -0
- package/es/Input/demo/allowClear/index.d.ts +3 -0
- package/es/Input/demo/allowClear/index.js +11 -0
- package/{src → es}/Input/demo/allowClear/index.less +0 -0
- package/es/Input/demo/basic/index.d.ts +4 -0
- package/es/Input/demo/basic/index.js +65 -0
- package/es/Input/demo/basic/index.less +14 -0
- package/es/Input/demo/gourp/index.d.ts +2 -0
- package/es/Input/demo/gourp/index.js +67 -0
- package/es/Input/demo/password/index.d.ts +3 -0
- package/es/Input/demo/password/index.js +21 -0
- package/{src → es}/Input/demo/password/index.less +0 -0
- package/es/Input/demo/prefix/index.d.ts +3 -0
- package/es/Input/demo/prefix/index.js +17 -0
- package/{src → es}/Input/demo/prefix/index.less +0 -0
- package/es/Input/demo/showCount/index.d.ts +3 -0
- package/es/Input/demo/showCount/index.js +17 -0
- package/{src → es}/Input/demo/showCount/index.less +0 -0
- package/es/Input/demo/textArea/autoSize.d.ts +2 -0
- package/es/Input/demo/textArea/autoSize.js +50 -0
- package/es/Input/index.d.ts +65 -0
- package/es/Input/index.js +46 -0
- package/es/Input/style/index.d.ts +2 -0
- package/es/Input/style/index.js +2 -0
- package/{src → es}/Input/style/index.less +4 -1
- package/es/Menu/Divider.d.ts +4 -0
- package/es/Menu/Divider.js +15 -0
- package/es/Menu/MenuItem.d.ts +17 -0
- package/es/Menu/MenuItem.js +15 -0
- package/es/Menu/SubMenu.d.ts +26 -0
- package/es/Menu/SubMenu.js +29 -0
- package/es/Menu/index.d.ts +20 -0
- package/es/Menu/index.js +31 -0
- package/es/Menu/style/index.d.ts +2 -0
- package/es/Menu/style/index.js +2 -0
- package/{src → es}/Menu/style/index.less +4 -0
- package/es/Navigator/components/Menu/index.d.ts +19 -0
- package/es/Navigator/components/Menu/index.js +187 -0
- package/es/Navigator/demo/basic/index.d.ts +4 -0
- package/es/Navigator/demo/basic/index.js +45 -0
- package/es/Navigator/demo/basic/index.less +3 -0
- package/es/Navigator/demo/example/index.d.ts +4 -0
- package/es/Navigator/demo/example/index.js +153 -0
- package/es/Navigator/demo/example/index.less +10 -0
- package/es/Navigator/demo/logo.png +0 -0
- package/es/Navigator/demo/menuWithFooter/index.d.ts +4 -0
- package/es/Navigator/demo/menuWithFooter/index.js +73 -0
- package/es/Navigator/demo/menuWithFooter/index.less +3 -0
- package/es/Navigator/demo/subMenu/index.d.ts +4 -0
- package/es/Navigator/demo/subMenu/index.js +71 -0
- package/es/Navigator/demo/subMenu/index.less +3 -0
- package/es/Navigator/index.d.ts +41 -0
- package/es/Navigator/index.js +45 -0
- package/es/Navigator/style/index.d.ts +2 -0
- package/es/Navigator/style/index.js +2 -0
- package/es/Navigator/style/index.less +228 -0
- package/es/Select/BaseSelect.d.ts +5 -0
- package/es/Select/BaseSelect.js +400 -0
- package/{src/Select/OptionsList/OptGroup.tsx → es/Select/OptionsList/OptGroup.d.ts} +2 -4
- package/es/Select/OptionsList/OptGroup.js +6 -0
- package/es/Select/OptionsList/OptionItem/RenderGroup.d.ts +9 -0
- package/es/Select/OptionsList/OptionItem/RenderGroup.js +16 -0
- package/es/Select/OptionsList/OptionItem/RenderLabelIcon.d.ts +8 -0
- package/es/Select/OptionsList/OptionItem/RenderLabelIcon.js +44 -0
- package/es/Select/OptionsList/OptionItem/RenderOption.d.ts +16 -0
- package/es/Select/OptionsList/OptionItem/RenderOption.js +79 -0
- package/es/Select/OptionsList/OptionItem/RenderTooltip.d.ts +8 -0
- package/es/Select/OptionsList/OptionItem/RenderTooltip.js +25 -0
- package/es/Select/OptionsList/OptionItem.d.ts +4 -0
- package/es/Select/OptionsList/OptionItem.js +4 -0
- package/es/Select/OptionsList/Options.d.ts +7 -0
- package/es/Select/OptionsList/Options.js +6 -0
- package/es/Select/OptionsList/index.d.ts +4 -0
- package/es/Select/OptionsList/index.js +187 -0
- package/es/Select/Selector/index.d.ts +4 -0
- package/es/Select/Selector/index.js +252 -0
- package/es/Select/VirtualList.d.ts +5 -0
- package/es/Select/VirtualList.js +29 -0
- package/es/Select/demo/disabled/index.d.ts +2 -0
- package/es/Select/demo/disabled/index.js +50 -0
- package/es/Select/demo/multiple/index.d.ts +2 -0
- package/es/Select/demo/multiple/index.js +140 -0
- package/es/Select/demo/options/index.d.ts +2 -0
- package/es/Select/demo/options/index.js +55 -0
- package/es/Select/demo/single/index.d.ts +3 -0
- package/es/Select/demo/single/index.js +89 -0
- package/es/Select/demo/single/index.less +5 -0
- package/es/Select/hooks/useCacheOption.d.ts +9 -0
- package/es/Select/hooks/useCacheOption.js +107 -0
- package/es/Select/index.d.ts +12 -0
- package/es/Select/index.js +9 -0
- package/es/Select/interface.d.ts +227 -0
- package/es/Select/interface.js +1 -0
- package/es/Select/style/index.d.ts +2 -0
- package/es/Select/style/index.js +2 -0
- package/{src → es}/Select/style/index.less +3 -10
- package/es/Select/utils.d.ts +21 -0
- package/es/Select/utils.js +193 -0
- package/es/Table/demo/basic/createData.d.ts +10 -0
- package/es/Table/demo/basic/createData.js +18 -0
- package/es/Table/demo/basic/index.d.ts +2 -0
- package/es/Table/demo/basic/index.js +64 -0
- package/es/Table/demo/editCell/index.d.ts +2 -0
- package/es/Table/demo/editCell/index.js +39 -0
- package/es/Table/demo/renderHeaderRight/index.d.ts +2 -0
- package/es/Table/demo/renderHeaderRight/index.js +37 -0
- package/es/Table/demo/resizeColumn/index.d.ts +2 -0
- package/es/Table/demo/resizeColumn/index.js +32 -0
- package/es/Table/demo/rowSelect/index.d.ts +2 -0
- package/es/Table/demo/rowSelect/index.js +35 -0
- package/es/Table/demo/sort/index.d.ts +2 -0
- package/es/Table/demo/sort/index.js +43 -0
- package/es/Table/demo/virtualList/index.d.ts +2 -0
- package/es/Table/demo/virtualList/index.js +88 -0
- package/es/Table/index.d.ts +5 -0
- package/es/Table/index.js +336 -0
- package/es/Table/interface.d.ts +34 -0
- package/es/Table/interface.js +1 -0
- package/es/Table/react-table-config.d.ts +122 -0
- package/es/Table/style/index.d.ts +2 -0
- package/es/Table/style/index.js +2 -0
- package/es/Table/style/index.less +141 -0
- package/es/Tabs/TabPane.d.ts +21 -0
- package/es/Tabs/TabPane.js +12 -0
- package/es/Tabs/demo/adaptHeight/index.d.ts +3 -0
- package/es/Tabs/demo/adaptHeight/index.js +19 -0
- package/{src → es}/Tabs/demo/adaptHeight/index.less +0 -0
- package/es/Tabs/demo/basic/index.d.ts +4 -0
- package/es/Tabs/demo/basic/index.js +44 -0
- package/{src → es}/Tabs/demo/basic/index.less +0 -0
- package/es/Tabs/demo/horizontalScroll/index.d.ts +3 -0
- package/es/Tabs/demo/horizontalScroll/index.js +30 -0
- package/{src → es}/Tabs/demo/horizontalScroll/index.less +0 -0
- package/es/Tabs/index.d.ts +41 -0
- package/es/Tabs/index.js +42 -0
- package/es/Tabs/style/index.d.ts +2 -0
- package/es/Tabs/style/index.js +2 -0
- package/{src → es}/Tabs/style/index.less +0 -0
- package/es/Tooltip/demo/basic/index.d.ts +2 -0
- package/es/Tooltip/demo/basic/index.js +7 -0
- package/es/Tooltip/demo/overflow/index.d.ts +2 -0
- package/es/Tooltip/demo/overflow/index.js +7 -0
- package/es/Tooltip/demo/placement/index.d.ts +6 -0
- package/es/Tooltip/demo/placement/index.js +70 -0
- package/{src → es}/Tooltip/demo/placement/index.less +0 -0
- package/es/Tooltip/demo/trigger/index.d.ts +3 -0
- package/es/Tooltip/demo/trigger/index.js +20 -0
- package/{src → es}/Tooltip/demo/trigger/index.less +0 -0
- package/es/Tooltip/index.d.ts +64 -0
- package/es/Tooltip/index.js +33 -0
- package/es/Tooltip/style/index.d.ts +2 -0
- package/es/Tooltip/style/index.js +2 -0
- package/{src → es}/Tooltip/style/index.less +0 -0
- package/es/_utils/hooks/useControlledState.d.ts +2 -0
- package/es/_utils/hooks/useControlledState.js +54 -0
- package/es/_utils/hooks/usePrefixCls.d.ts +2 -0
- package/es/_utils/hooks/usePrefixCls.js +14 -0
- package/es/index.d.ts +11 -0
- package/{src/index.ts → es/index.js} +3 -1
- package/es/style/index.d.ts +2 -0
- package/{src/style/index.ts → es/style/index.js} +0 -0
- package/{src → es}/style/index.less +0 -0
- package/{src → es}/style/mixins/index.less +0 -0
- package/{src → es}/style/themes/default/index.less +1 -1
- package/{lib/style/themes/default/themeColor.less → es/style/themes/default/themeColor.module.less} +0 -0
- package/es/style/themes/default/themeColor.module.less.d.ts +108 -0
- package/lib/Button/demo/basic/index.less +0 -1
- package/lib/Button/index.js +2 -2
- package/lib/Button/style/index.less +5 -5
- package/lib/Dropdown/demo/button/index.js +1 -1
- package/lib/Empty/index.d.ts +8 -0
- package/lib/Empty/index.js +71 -0
- package/lib/Empty/style/index.d.ts +1 -0
- package/lib/Empty/style/index.js +3 -0
- package/lib/Empty/style/index.less +23 -0
- package/lib/Icon/iconfont/demo_index.html +95 -3
- package/lib/Icon/iconfont/iconfont.css +19 -3
- package/lib/Icon/iconfont/iconfont.js +5 -5
- package/lib/Icon/iconfont/iconfont.json +28 -0
- package/lib/Icon/iconfont/iconfont.ttf +0 -0
- package/lib/Icon/iconfont/iconfont.woff +0 -0
- package/lib/Icon/iconfont/iconfont.woff2 +0 -0
- package/lib/Icon/index.less +3 -3
- package/lib/Input/components/Group/index.d.ts +0 -1
- package/lib/Input/components/Password/index.d.ts +3 -3
- package/lib/Input/components/Password/index.js +2 -2
- package/lib/Input/demo/basic/index.less +9 -1
- package/lib/Input/style/index.less +4 -1
- package/lib/Menu/Divider.d.ts +0 -1
- package/lib/Menu/style/index.less +4 -0
- package/lib/Navigator/components/Menu/index.d.ts +19 -0
- package/lib/Navigator/components/Menu/index.js +205 -0
- package/lib/Navigator/demo/basic/index.d.ts +4 -0
- package/lib/Navigator/demo/basic/index.js +62 -0
- package/lib/Navigator/demo/basic/index.less +3 -0
- package/lib/Navigator/demo/example/index.d.ts +4 -0
- package/lib/Navigator/demo/example/index.js +179 -0
- package/lib/Navigator/demo/example/index.less +10 -0
- package/lib/Navigator/demo/logo.png +0 -0
- package/lib/Navigator/demo/menuWithFooter/index.d.ts +4 -0
- package/lib/Navigator/demo/menuWithFooter/index.js +92 -0
- package/lib/Navigator/demo/menuWithFooter/index.less +3 -0
- package/lib/Navigator/demo/subMenu/index.d.ts +4 -0
- package/lib/Navigator/demo/subMenu/index.js +88 -0
- package/lib/Navigator/demo/subMenu/index.less +3 -0
- package/lib/Navigator/index.d.ts +41 -0
- package/lib/Navigator/index.js +64 -0
- package/lib/Navigator/style/index.d.ts +2 -0
- package/lib/Navigator/style/index.js +5 -0
- package/lib/Navigator/style/index.less +228 -0
- package/lib/Select/OptionsList/OptionItem/RenderGroup.d.ts +9 -0
- package/lib/Select/OptionsList/OptionItem/RenderGroup.js +27 -0
- package/lib/Select/OptionsList/OptionItem/RenderLabelIcon.d.ts +8 -0
- package/lib/Select/OptionsList/OptionItem/RenderLabelIcon.js +58 -0
- package/lib/Select/OptionsList/OptionItem/RenderOption.d.ts +16 -0
- package/lib/Select/OptionsList/OptionItem/RenderOption.js +94 -0
- package/lib/Select/OptionsList/OptionItem/RenderTooltip.d.ts +8 -0
- package/lib/Select/OptionsList/OptionItem/RenderTooltip.js +37 -0
- package/lib/Select/OptionsList/OptionItem.d.ts +4 -35
- package/lib/Select/OptionsList/OptionItem.js +26 -172
- package/lib/Select/OptionsList/Options.d.ts +2 -2
- package/lib/Select/OptionsList/index.js +1 -1
- package/lib/Select/Selector/index.d.ts +2 -2
- package/lib/Select/Selector/index.js +13 -10
- package/lib/Select/demo/single/index.d.ts +1 -0
- package/lib/Select/demo/single/index.js +5 -1
- package/lib/Select/demo/single/index.less +5 -0
- package/lib/Select/interface.d.ts +8 -2
- package/lib/Select/style/index.less +3 -10
- package/lib/Table/demo/basic/createData.d.ts +10 -0
- package/lib/Table/demo/basic/createData.js +23 -0
- package/lib/Table/demo/basic/index.d.ts +2 -0
- package/lib/Table/demo/basic/index.js +80 -0
- package/lib/Table/demo/editCell/index.d.ts +2 -0
- package/lib/Table/demo/editCell/index.js +54 -0
- package/lib/Table/demo/renderHeaderRight/index.d.ts +2 -0
- package/lib/Table/demo/renderHeaderRight/index.js +52 -0
- package/lib/Table/demo/resizeColumn/index.d.ts +2 -0
- package/lib/Table/demo/resizeColumn/index.js +47 -0
- package/lib/Table/demo/rowSelect/index.d.ts +2 -0
- package/lib/Table/demo/rowSelect/index.js +50 -0
- package/lib/Table/demo/sort/index.d.ts +2 -0
- package/lib/Table/demo/sort/index.js +58 -0
- package/lib/Table/demo/virtualList/index.d.ts +2 -0
- package/lib/Table/demo/virtualList/index.js +103 -0
- package/lib/Table/index.d.ts +5 -0
- package/lib/Table/index.js +362 -0
- package/lib/Table/interface.d.ts +34 -0
- package/lib/Table/interface.js +5 -0
- package/lib/Table/react-table-config.d.ts +122 -0
- package/lib/Table/style/index.d.ts +2 -0
- package/lib/Table/style/index.js +5 -0
- package/lib/Table/style/index.less +141 -0
- package/lib/Tooltip/index.d.ts +1 -0
- package/lib/Tooltip/index.js +3 -1
- package/lib/index.d.ts +3 -0
- package/lib/index.js +16 -0
- package/lib/style/themes/default/index.less +1 -1
- package/{src/style/themes/default/themeColor.less → lib/style/themes/default/themeColor.module.less} +0 -0
- package/lib/style/themes/default/themeColor.module.less.d.ts +108 -0
- package/package.json +24 -8
- package/.editorconfig +0 -16
- package/.eslintrc.js +0 -43
- package/.fatherrc.ts +0 -16
- package/.prettierignore +0 -7
- package/.prettierrc.js +0 -1
- package/.stylelintrc.json +0 -36
- package/.umirc.ts +0 -15
- package/commitlint.config.js +0 -21
- package/docs/index.md +0 -21
- package/jest/setupTests.js +0 -1
- package/public/favicon.ico +0 -0
- package/src/Button/demo/Icon/index.tsx +0 -41
- package/src/Button/demo/basic/index.tsx +0 -26
- package/src/Button/demo/disable/index.tsx +0 -16
- package/src/Button/demo/href/index.tsx +0 -14
- package/src/Button/demo/loading/index.tsx +0 -21
- package/src/Button/index.md +0 -25
- package/src/Button/index.test.tsx +0 -58
- package/src/Button/index.tsx +0 -136
- package/src/Button/style/index.ts +0 -2
- package/src/Dropdown/Button.tsx +0 -93
- package/src/Dropdown/demo/basic/index.tsx +0 -20
- package/src/Dropdown/demo/button/index.tsx +0 -98
- package/src/Dropdown/demo/placement/index.tsx +0 -47
- package/src/Dropdown/demo/subMenu/index.tsx +0 -35
- package/src/Dropdown/demo/trigger/index.tsx +0 -19
- package/src/Dropdown/index.md +0 -35
- package/src/Dropdown/index.test.tsx +0 -185
- package/src/Dropdown/index.tsx +0 -71
- package/src/Dropdown/style/index.ts +0 -2
- package/src/Icon/iconfont/iconfont.css +0 -93
- package/src/Icon/iconfont/iconfont.js +0 -1
- package/src/Icon/iconfont/iconfont.ttf +0 -0
- package/src/Icon/iconfont/iconfont.woff +0 -0
- package/src/Icon/iconfont/iconfont.woff2 +0 -0
- package/src/Icon/index.tsx +0 -38
- package/src/Input/components/Group/index.tsx +0 -21
- package/src/Input/components/Password/index.tsx +0 -23
- package/src/Input/components/TextArea/index.tsx +0 -57
- package/src/Input/demo/allowClear/index.tsx +0 -10
- package/src/Input/demo/basic/index.less +0 -6
- package/src/Input/demo/basic/index.tsx +0 -25
- package/src/Input/demo/gourp/index.tsx +0 -30
- package/src/Input/demo/password/index.tsx +0 -11
- package/src/Input/demo/prefix/index.tsx +0 -13
- package/src/Input/demo/showCount/index.tsx +0 -16
- package/src/Input/demo/textArea/autoSize.tsx +0 -21
- package/src/Input/index.md +0 -37
- package/src/Input/index.test.tsx +0 -78
- package/src/Input/index.tsx +0 -91
- package/src/Input/style/index.ts +0 -2
- package/src/Menu/Divider.tsx +0 -12
- package/src/Menu/MenuItem.tsx +0 -24
- package/src/Menu/SubMenu.tsx +0 -37
- package/src/Menu/index.md +0 -36
- package/src/Menu/index.test.tsx +0 -144
- package/src/Menu/index.tsx +0 -27
- package/src/Menu/style/index.ts +0 -2
- package/src/Select/BaseSelect.tsx +0 -321
- package/src/Select/OptionsList/OptionItem.tsx +0 -151
- package/src/Select/OptionsList/Options.tsx +0 -11
- package/src/Select/OptionsList/index.tsx +0 -169
- package/src/Select/Selector/index.tsx +0 -211
- package/src/Select/VirtualList.tsx +0 -36
- package/src/Select/demo/disabled/index.tsx +0 -44
- package/src/Select/demo/multiple/index.tsx +0 -77
- package/src/Select/demo/options/index.tsx +0 -63
- package/src/Select/demo/single/index.tsx +0 -50
- package/src/Select/hooks/useCacheOption.ts +0 -67
- package/src/Select/index.md +0 -72
- package/src/Select/index.tsx +0 -23
- package/src/Select/interface.ts +0 -231
- package/src/Select/style/index.ts +0 -2
- package/src/Select/utils.tsx +0 -133
- package/src/Tabs/TabPane.tsx +0 -28
- package/src/Tabs/demo/adaptHeight/index.tsx +0 -33
- package/src/Tabs/demo/basic/index.tsx +0 -30
- package/src/Tabs/demo/horizontalScroll/index.tsx +0 -36
- package/src/Tabs/index.md +0 -30
- package/src/Tabs/index.test.tsx +0 -100
- package/src/Tabs/index.tsx +0 -64
- package/src/Tabs/style/index.ts +0 -2
- package/src/Tooltip/demo/basic/index.tsx +0 -10
- package/src/Tooltip/demo/overflow/index.tsx +0 -10
- package/src/Tooltip/demo/placement/index.tsx +0 -60
- package/src/Tooltip/demo/trigger/index.tsx +0 -22
- package/src/Tooltip/index.md +0 -28
- package/src/Tooltip/index.test.tsx +0 -152
- package/src/Tooltip/index.tsx +0 -113
- package/src/Tooltip/style/index.ts +0 -2
- package/src/_utils/hooks/useControlledState.ts +0 -39
- package/src/_utils/hooks/usePrefixCls.ts +0 -11
- package/tsconfig.json +0 -13
- package/typings.d.ts +0 -3
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import message from 'antd/lib/message';
|
|
3
|
-
import { Input } from '@aloudata/aloudata-design';
|
|
4
|
-
import '../../style'
|
|
5
|
-
import './index.less';
|
|
6
|
-
export default () => {
|
|
7
|
-
const [value, setValue] = React.useState('');
|
|
8
|
-
|
|
9
|
-
const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {
|
|
10
|
-
setValue(e.target.value);
|
|
11
|
-
};
|
|
12
|
-
return (
|
|
13
|
-
<div className='ald-input-demo'>
|
|
14
|
-
<Input style={{width: 240}} className="ald-input" size="small" placeholder="small" />
|
|
15
|
-
<br />
|
|
16
|
-
<Input style={{width: 240}} className="ald-input" placeholder="default" />
|
|
17
|
-
<br/>
|
|
18
|
-
<Input value={value} style={{width: 240}} className="ald-input" size="large" onChange={onChange} placeholder="large" />
|
|
19
|
-
<br />
|
|
20
|
-
<Input style={{width: 240}} size="large" className="ald-input" defaultValue='Input large size with value' />
|
|
21
|
-
<br />
|
|
22
|
-
<Input style={{width: 240}} disabled value="disabled" />
|
|
23
|
-
</div>
|
|
24
|
-
)
|
|
25
|
-
};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Input } from '@aloudata/aloudata-design';
|
|
3
|
-
import { Radio } from 'antd';
|
|
4
|
-
export default () => {
|
|
5
|
-
const [size, setSize] = React.useState('large');
|
|
6
|
-
const [compact, setCompact] = React.useState(false);
|
|
7
|
-
const handleSizeChange = (e: any) => {
|
|
8
|
-
setSize(e.target.value);
|
|
9
|
-
};
|
|
10
|
-
const handleCompactChange = (e: any) => {
|
|
11
|
-
setCompact(e.target.value);
|
|
12
|
-
};
|
|
13
|
-
return (
|
|
14
|
-
<div className="ald-input-demo">
|
|
15
|
-
<Radio.Group value={size} onChange={handleSizeChange}>
|
|
16
|
-
<Radio.Button value="large">Large</Radio.Button>
|
|
17
|
-
<Radio.Button>Default</Radio.Button>
|
|
18
|
-
<Radio.Button value="small">Small</Radio.Button>
|
|
19
|
-
</Radio.Group>
|
|
20
|
-
<Radio.Group value={compact} onChange={handleCompactChange}>
|
|
21
|
-
<Radio.Button value={true}>compact紧凑模式</Radio.Button>
|
|
22
|
-
<Radio.Button value={false}>正常模式</Radio.Button>
|
|
23
|
-
</Radio.Group>
|
|
24
|
-
<Input.Group size={size} compact={compact}>
|
|
25
|
-
<Input style={{ width:'10%' }} defaultValue="+80"/>
|
|
26
|
-
<Input style={{ width: '40%' }} defaultValue="13389898989"/>
|
|
27
|
-
</Input.Group>
|
|
28
|
-
</div>
|
|
29
|
-
);
|
|
30
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Input } from '@aloudata/aloudata-design';
|
|
3
|
-
import './index.less';
|
|
4
|
-
export default () => {
|
|
5
|
-
return (
|
|
6
|
-
<div className="ald-input-demo">
|
|
7
|
-
<Input.Password className="ald-input" style={{ width: 240 }} size="small" placeholder="123" />
|
|
8
|
-
<Input.Password style={{ width: 240 }} size="large" placeholder="123" />
|
|
9
|
-
</div>
|
|
10
|
-
);
|
|
11
|
-
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import {Input} from '@aloudata/aloudata-design';
|
|
3
|
-
import './index.less';
|
|
4
|
-
import Icon from '../../../Icon';
|
|
5
|
-
|
|
6
|
-
export default () => {
|
|
7
|
-
return(
|
|
8
|
-
<div className="ald-input-demo">
|
|
9
|
-
<Input prefix={<span>prefix</span>} placeholder="placeholder" />
|
|
10
|
-
<Input prefix={<Icon type="Groupby_flash_on_line"/>} placeholder="placeholder" />
|
|
11
|
-
</div>
|
|
12
|
-
)
|
|
13
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Input } from '@aloudata/aloudata-design';
|
|
3
|
-
import './index.less';
|
|
4
|
-
|
|
5
|
-
export default () => {
|
|
6
|
-
return (
|
|
7
|
-
<div className="ald-input-demo">
|
|
8
|
-
<Input showCount={{
|
|
9
|
-
formatter: (info:{ count: number, maxLength?: number }) => {
|
|
10
|
-
const { count, maxLength } = info;
|
|
11
|
-
return `当前长度为:${count},最大长度为:${maxLength}`;
|
|
12
|
-
},
|
|
13
|
-
}} maxLength={10} />
|
|
14
|
-
</div>
|
|
15
|
-
)
|
|
16
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Input,Button } from '@aloudata/aloudata-design';
|
|
3
|
-
|
|
4
|
-
export default () => {
|
|
5
|
-
const [maxRow, setMaxRow] = React.useState(1);
|
|
6
|
-
const onClick = () => {
|
|
7
|
-
setMaxRow(maxRow + 1);
|
|
8
|
-
};
|
|
9
|
-
const showCount = (args: { count: number, maxLength: number }) => {
|
|
10
|
-
const { count, maxLength } = args;
|
|
11
|
-
return `当前长度为:${count},最大长度为:${maxLength}`;
|
|
12
|
-
};
|
|
13
|
-
return (
|
|
14
|
-
<div className="ald-input-demo">
|
|
15
|
-
<span>autoSize属性自动调整高度,不可拖拽调高,当前最高{maxRow}行</span><Button size="small" onClick={onClick}>增加最大行数</Button>
|
|
16
|
-
<Input.TextArea id="ald-input-textArea" maxLength={20} autoSize={{ minRows: 1, maxRows: maxRow }} />
|
|
17
|
-
<span>带展示字数提示</span>
|
|
18
|
-
<Input.TextArea id="ald-input-textArea" showCount={{formatter:showCount}} maxLength={20} />
|
|
19
|
-
</div>
|
|
20
|
-
)
|
|
21
|
-
}
|
package/src/Input/index.md
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
# nav:
|
|
3
|
-
# title: 组件
|
|
4
|
-
# path: /components
|
|
5
|
-
title: Input 输入框
|
|
6
|
-
group:
|
|
7
|
-
title: 组件
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## Input 输入框
|
|
11
|
-
|
|
12
|
-
通过鼠标或键盘输入内容,是最基础的表单域的包装。
|
|
13
|
-
|
|
14
|
-
## 代码演示
|
|
15
|
-
|
|
16
|
-
<code src="./demo/basic" title="基本使用" description="基本使用,默认宽度100%">
|
|
17
|
-
<code src="./demo/password" title="密码框" description="密码框">
|
|
18
|
-
<code src="./demo/allowClear" title="清除内容" description="显示删除icon,点击清除内容">
|
|
19
|
-
<code src="./demo/prefix" title="前置内容" description="前置内容为ReactNode 可自定义">
|
|
20
|
-
<code src="./demo/showCount" title="显示字数" description="默认不显示,可自定义格式">
|
|
21
|
-
<code src="./demo/textArea/autoSize.tsx" title="TextArea" description="可调整">
|
|
22
|
-
<code src="./demo/gourp" title="group" description="Group 模式">
|
|
23
|
-
|
|
24
|
-
## API
|
|
25
|
-
### Input
|
|
26
|
-
|
|
27
|
-
<API hideTitle src="./index.tsx" hideTitle />
|
|
28
|
-
支持原生 input 的其他所有属性。
|
|
29
|
-
|
|
30
|
-
### Input.TextArea
|
|
31
|
-
|
|
32
|
-
<API src="./components/TextArea/index.tsx" hideTitle>
|
|
33
|
-
Input.TextArea 的其他属性和浏览器自带的 textarea 一致。
|
|
34
|
-
|
|
35
|
-
### Input.Group
|
|
36
|
-
|
|
37
|
-
<API src="./components/Group/index.tsx" hideTitle>
|
package/src/Input/index.test.tsx
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import '@testing-library/jest-dom';
|
|
3
|
-
import { render, screen, fireEvent } from '@testing-library/react';
|
|
4
|
-
import Input from './index';
|
|
5
|
-
import _ from 'lodash';
|
|
6
|
-
|
|
7
|
-
describe('Input', () => {
|
|
8
|
-
it('Input large size with value', () => {
|
|
9
|
-
const text = 'Input large size with value';
|
|
10
|
-
render(<Input className="ald-input" size="large" value={text} />);
|
|
11
|
-
expect(document.querySelector('.ald-input')).not.toBeNull();
|
|
12
|
-
expect(document.querySelector('.ald-input')).toHaveClass('ant-input-lg');
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
it('Input native default props placeholder', () => {
|
|
16
|
-
render(<Input placeholder="placeholder" />);
|
|
17
|
-
expect(screen.queryByPlaceholderText('placeholder')).not.toBeNull();
|
|
18
|
-
});
|
|
19
|
-
it('input disable', () => {
|
|
20
|
-
render(<Input disabled />);
|
|
21
|
-
expect(screen.queryByRole('textbox')).toHaveAttribute('disabled');
|
|
22
|
-
});
|
|
23
|
-
it('input allowClear', () => {
|
|
24
|
-
render(<Input allowClear />);
|
|
25
|
-
expect(screen.queryByRole('button', { name: /close-circle/i })).not.toBeNull();
|
|
26
|
-
});
|
|
27
|
-
it('input prefix', () => {
|
|
28
|
-
render(<Input prefix={<span>prefix</span>} />);
|
|
29
|
-
expect(screen.queryByText('prefix')).not.toBeNull();
|
|
30
|
-
});
|
|
31
|
-
it('input showCount', () => {
|
|
32
|
-
const maxLength = 10;
|
|
33
|
-
const collection = ['abc', 'a', 'bcd'];
|
|
34
|
-
const value = _.sample(collection);
|
|
35
|
-
render(<Input showCount maxLength={maxLength} value={value} />);
|
|
36
|
-
expect(screen.queryByText(`${value.length} / ${maxLength}`)).not.toBeNull();
|
|
37
|
-
render(<Input
|
|
38
|
-
showCount={{ formatter: ({ count: number }) => {
|
|
39
|
-
return `长度为:${number}`;
|
|
40
|
-
} }}
|
|
41
|
-
value={value}
|
|
42
|
-
/>);
|
|
43
|
-
expect(screen.queryByText(`长度为:${value.length}`)).not.toBeNull();
|
|
44
|
-
});
|
|
45
|
-
it('input onChange', () => {
|
|
46
|
-
const onChange = jest.fn();
|
|
47
|
-
render(<Input onChange={onChange} />);
|
|
48
|
-
const input = screen.queryByRole('textbox');
|
|
49
|
-
fireEvent.change(input!, { target: { value: 'change' } });
|
|
50
|
-
expect(onChange).toBeCalled();
|
|
51
|
-
});
|
|
52
|
-
it('input onPressEnter', () => {
|
|
53
|
-
const onPressEnter = jest.fn();
|
|
54
|
-
render(<Input onPressEnter={onPressEnter} />);
|
|
55
|
-
const input = screen.queryByRole('textbox');
|
|
56
|
-
fireEvent.keyDown(input!, { key: 'Enter', keyCode: 13, which: 13 });
|
|
57
|
-
expect(onPressEnter).toBeCalled();
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
describe('Input.textArea', () => {
|
|
61
|
-
it('Input.textArea showCount', () => {
|
|
62
|
-
const maxLength = 10;
|
|
63
|
-
render(<Input.TextArea showCount maxLength={maxLength} />);
|
|
64
|
-
const textArea = screen.queryByRole('textbox');
|
|
65
|
-
const textAreaParent = textArea!.parentElement;
|
|
66
|
-
expect(textAreaParent).toHaveAttribute('data-count');
|
|
67
|
-
});
|
|
68
|
-
it('Input.textArea onPressEnter', () => {
|
|
69
|
-
const onPressEnter = jest.fn();
|
|
70
|
-
render(<Input.TextArea onPressEnter={onPressEnter} />);
|
|
71
|
-
const textArea = screen.queryByRole('textbox');
|
|
72
|
-
fireEvent.keyDown(textArea!, { key: 'Enter', keyCode: 13, which: 13 });
|
|
73
|
-
expect(onPressEnter).toBeCalled();
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
describe('Input.group', () => {
|
|
77
|
-
it('', () => {});
|
|
78
|
-
});
|
package/src/Input/index.tsx
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import React, { ReactNode } from 'react';
|
|
2
|
-
import {Input as AntdInput} from 'antd';
|
|
3
|
-
import type { ShowCountProps, InputProps } from 'antd/lib/input/Input';
|
|
4
|
-
import { SizeType } from 'antd/lib/config-provider/SizeContext';
|
|
5
|
-
import TextArea from './components/TextArea';
|
|
6
|
-
import Password from './components/Password';
|
|
7
|
-
import Group from './components/Group';
|
|
8
|
-
import './style';
|
|
9
|
-
type TSize = 'small' | 'default' | 'large';
|
|
10
|
-
|
|
11
|
-
type ChangeEventHandler = (e: React.ChangeEvent<HTMLInputElement>) => void;
|
|
12
|
-
export interface IInputProps extends Omit<InputProps, 'size' | 'id' | 'prefix' | 'allowClear' |
|
|
13
|
-
'disabled' | 'showCount' | 'maxLength' |
|
|
14
|
-
'value' | 'defaultValue' | 'onPressEnter' | 'onChange'> {
|
|
15
|
-
/**
|
|
16
|
-
* @description 输入框尺寸
|
|
17
|
-
* @default default
|
|
18
|
-
* @type 'small' | 'default' | 'large';
|
|
19
|
-
*/
|
|
20
|
-
size?: TSize;
|
|
21
|
-
/**
|
|
22
|
-
* @description 输入框id
|
|
23
|
-
*/
|
|
24
|
-
id?: string;
|
|
25
|
-
/**
|
|
26
|
-
* @description 提示文字
|
|
27
|
-
*/
|
|
28
|
-
prefix?: ReactNode;
|
|
29
|
-
/**
|
|
30
|
-
* @description 带标签的 input,设置前置标签
|
|
31
|
-
*/
|
|
32
|
-
allowClear?: boolean;
|
|
33
|
-
/**
|
|
34
|
-
* @description 可以点击清除图标删除内容
|
|
35
|
-
* @default true
|
|
36
|
-
*/
|
|
37
|
-
disabled?: boolean;
|
|
38
|
-
/**
|
|
39
|
-
* @description 提示文字
|
|
40
|
-
* @default false
|
|
41
|
-
* @type boolean | { formatter: (args: { count: number; maxLength?: number; }) => string; };
|
|
42
|
-
*/
|
|
43
|
-
showCount?: boolean | ShowCountProps;
|
|
44
|
-
/**
|
|
45
|
-
* @description 最大长度
|
|
46
|
-
*/
|
|
47
|
-
maxLength?: number;
|
|
48
|
-
/**
|
|
49
|
-
* @description 输入框内容
|
|
50
|
-
*/
|
|
51
|
-
value?: string;
|
|
52
|
-
/**
|
|
53
|
-
* @description 输入框默认内容
|
|
54
|
-
*/
|
|
55
|
-
defaultValue?: string;
|
|
56
|
-
/**
|
|
57
|
-
* @description 按下回车的回调
|
|
58
|
-
* @type (e) => void
|
|
59
|
-
*/
|
|
60
|
-
onPressEnter?: React.KeyboardEventHandler<HTMLInputElement>;
|
|
61
|
-
/**
|
|
62
|
-
* @description 输入框内容变化时的回调
|
|
63
|
-
* @type (e: React.ChangeEvent<HTMLInputElement>) => void;
|
|
64
|
-
*/
|
|
65
|
-
onChange?: ChangeEventHandler;
|
|
66
|
-
}
|
|
67
|
-
// IInputProps 和 InputProps 类型合并,并去除InputProps中的重复属性
|
|
68
|
-
function Input(props: IInputProps) {
|
|
69
|
-
const { size = 'default', ...rest } = props;
|
|
70
|
-
const getInputSize = (inputSize: TSize): SizeType => {
|
|
71
|
-
if (inputSize === 'small' || inputSize === 'large') {
|
|
72
|
-
return inputSize;
|
|
73
|
-
}
|
|
74
|
-
return 'middle';
|
|
75
|
-
};
|
|
76
|
-
return (
|
|
77
|
-
<AntdInput
|
|
78
|
-
{...rest}
|
|
79
|
-
size={getInputSize(size)}
|
|
80
|
-
bordered
|
|
81
|
-
addonAfter={null}
|
|
82
|
-
addonBefore={null}
|
|
83
|
-
suffix={null}
|
|
84
|
-
/>
|
|
85
|
-
);
|
|
86
|
-
}
|
|
87
|
-
Input.TextArea = TextArea;
|
|
88
|
-
Input.Group = Group;
|
|
89
|
-
Input.Password = Password;
|
|
90
|
-
|
|
91
|
-
export default Input;
|
package/src/Input/style/index.ts
DELETED
package/src/Menu/Divider.tsx
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Menu as AntdMenu } from 'antd';
|
|
3
|
-
import './style';
|
|
4
|
-
|
|
5
|
-
export interface IMenuDividerProps {
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
const AntdMenuDivider = AntdMenu.Divider;
|
|
9
|
-
|
|
10
|
-
export default function Menu(props: IMenuDividerProps) {
|
|
11
|
-
return <AntdMenuDivider {...props} />;
|
|
12
|
-
}
|
package/src/Menu/MenuItem.tsx
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Menu as AntdMenu } from 'antd';
|
|
3
|
-
import './style';
|
|
4
|
-
|
|
5
|
-
export interface IMenuItemProps {
|
|
6
|
-
/**
|
|
7
|
-
* @description 唯一标志
|
|
8
|
-
* @type string | number
|
|
9
|
-
* @default -
|
|
10
|
-
*/
|
|
11
|
-
key: React.Key;
|
|
12
|
-
/**
|
|
13
|
-
* @description 是否禁用
|
|
14
|
-
* @default false
|
|
15
|
-
*/
|
|
16
|
-
disabled?: boolean;
|
|
17
|
-
children?: React.ReactNode;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const AntdMenuItem = AntdMenu.Item;
|
|
21
|
-
|
|
22
|
-
export default function Menu(props: IMenuItemProps) {
|
|
23
|
-
return <AntdMenuItem {...props} />;
|
|
24
|
-
}
|
package/src/Menu/SubMenu.tsx
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import classNames from 'classnames';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { Menu as AntdMenu } from 'antd';
|
|
4
|
-
import './style';
|
|
5
|
-
|
|
6
|
-
export interface ISubMenuProps {
|
|
7
|
-
/**
|
|
8
|
-
* @description 唯一标志
|
|
9
|
-
* @type string | number
|
|
10
|
-
* @default -
|
|
11
|
-
*/
|
|
12
|
-
key: React.Key;
|
|
13
|
-
/**
|
|
14
|
-
* @description 是否禁用
|
|
15
|
-
* @default false
|
|
16
|
-
*/
|
|
17
|
-
disabled?: boolean;
|
|
18
|
-
/**
|
|
19
|
-
* @description 子菜单样式
|
|
20
|
-
* @default -
|
|
21
|
-
*/
|
|
22
|
-
popupClassName?: string;
|
|
23
|
-
/**
|
|
24
|
-
* @description 子菜单项值
|
|
25
|
-
*/
|
|
26
|
-
title?: React.ReactNode;
|
|
27
|
-
children?: React.ReactNode | React.ReactNode[];
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
const AntdSubMenu = AntdMenu.SubMenu;
|
|
31
|
-
|
|
32
|
-
export default function SubMenu(props: ISubMenuProps) {
|
|
33
|
-
const { popupClassName, ...otherProps } = props;
|
|
34
|
-
const OFFSET_WIDTH = 4;
|
|
35
|
-
const OFFSET_HEIGHT = 0;
|
|
36
|
-
return <AntdSubMenu popupClassName={classNames(popupClassName, 'ald-submenu')} popupOffset={[OFFSET_WIDTH, OFFSET_HEIGHT]} {...otherProps} />;
|
|
37
|
-
}
|
package/src/Menu/index.md
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
# nav:
|
|
3
|
-
# title: 组件
|
|
4
|
-
# path: /components
|
|
5
|
-
title: Menu 导航菜单
|
|
6
|
-
group:
|
|
7
|
-
title: 组件
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## Menu 导航菜单
|
|
11
|
-
|
|
12
|
-
导航的菜单列表
|
|
13
|
-
|
|
14
|
-
## 代码演示
|
|
15
|
-
|
|
16
|
-
<code src="../Dropdown/demo/subMenu" title="下拉多级菜单" description="传入的菜单有多个层级">
|
|
17
|
-
|
|
18
|
-
## API
|
|
19
|
-
|
|
20
|
-
### Menu
|
|
21
|
-
|
|
22
|
-
<API exports='["default"]' hideTitle />
|
|
23
|
-
|
|
24
|
-
### Menu.Item
|
|
25
|
-
|
|
26
|
-
<API exports='["default.Item"]' hideTitle />
|
|
27
|
-
|
|
28
|
-
### Menu.SubMenu
|
|
29
|
-
|
|
30
|
-
<API exports='["default.SubMenu"]' hideTitle />
|
|
31
|
-
|
|
32
|
-
## 注意
|
|
33
|
-
|
|
34
|
-
* Menu 元素为 ul,因而仅支持 li 以及 script-supporting 子元素。因而你的子节点元素应该都在 Menu.Item 内使用。
|
|
35
|
-
|
|
36
|
-
* Menu 需要计算节点结构,因而其子元素仅支持 Menu.* 以及对此进行封装的 HOC 组件。
|
package/src/Menu/index.test.tsx
DELETED
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import '@testing-library/jest-dom';
|
|
2
|
-
import { render, screen, fireEvent, waitFor } from '@testing-library/react';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import { act } from 'react-dom/test-utils';
|
|
5
|
-
import Dropdown from '../Dropdown';
|
|
6
|
-
import Menu from './index';
|
|
7
|
-
|
|
8
|
-
describe('Menu', () => {
|
|
9
|
-
it('onClick', async () => {
|
|
10
|
-
let testKey = '';
|
|
11
|
-
const onClick = ({ key }: { key: string }) => { testKey = key; };
|
|
12
|
-
const menuItemText = '1st menu item';
|
|
13
|
-
const menu = (
|
|
14
|
-
<Menu onClick={onClick}>
|
|
15
|
-
<Menu.Item key="1"><span>{menuItemText}</span></Menu.Item>
|
|
16
|
-
<Menu.Item key="2">2st menu item</Menu.Item>
|
|
17
|
-
</Menu>
|
|
18
|
-
);
|
|
19
|
-
|
|
20
|
-
await act(async () => {
|
|
21
|
-
render(<Dropdown overlay={menu} visible><span>trigger</span></Dropdown>);
|
|
22
|
-
await waitFor(() => {
|
|
23
|
-
return screen.getByText(menuItemText);
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
fireEvent.click(screen.getByText(menuItemText));
|
|
28
|
-
expect(testKey).toEqual('1');
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
it('MenuItem.disabled', async () => {
|
|
32
|
-
const onClick = jest.fn();
|
|
33
|
-
const menuItemText = '1st menu item';
|
|
34
|
-
const menu = (
|
|
35
|
-
<Menu onClick={onClick}>
|
|
36
|
-
<Menu.Item key="1" disabled><span>{menuItemText}</span></Menu.Item>
|
|
37
|
-
<Menu.Item key="2">2st menu item</Menu.Item>
|
|
38
|
-
</Menu>
|
|
39
|
-
);
|
|
40
|
-
|
|
41
|
-
await act(async () => {
|
|
42
|
-
render(<Dropdown overlay={menu} visible><span>trigger</span></Dropdown>);
|
|
43
|
-
await waitFor(() => {
|
|
44
|
-
return screen.getByText(menuItemText);
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
fireEvent.click(screen.getByText(menuItemText));
|
|
49
|
-
expect(onClick).not.toBeCalled();
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
it('SubMenu hover', async () => {
|
|
53
|
-
const subMenuTitle = 'subMenuTitle';
|
|
54
|
-
const menuItemText = '1st menu item';
|
|
55
|
-
const menu = (
|
|
56
|
-
<Menu>
|
|
57
|
-
<Menu.SubMenu key="0" title={subMenuTitle}>
|
|
58
|
-
<Menu.Item key="1"><span>{menuItemText}</span></Menu.Item>
|
|
59
|
-
<Menu.Item key="2">2st menu item</Menu.Item>
|
|
60
|
-
</Menu.SubMenu>
|
|
61
|
-
</Menu>
|
|
62
|
-
);
|
|
63
|
-
|
|
64
|
-
await act(async () => {
|
|
65
|
-
render(<Dropdown overlay={menu} visible><span>trigger</span></Dropdown>);
|
|
66
|
-
await waitFor(() => {
|
|
67
|
-
return screen.getByText(subMenuTitle);
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
await act(async () => {
|
|
72
|
-
fireEvent.mouseEnter(screen.getByText(subMenuTitle));
|
|
73
|
-
await waitFor(() => {
|
|
74
|
-
return screen.getByText(menuItemText);
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
expect(screen.getByText(menuItemText)).not.toBeNull();
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
it('SubMenu disabled', async () => {
|
|
81
|
-
jest.useFakeTimers();
|
|
82
|
-
|
|
83
|
-
const subMenuTitle = 'subMenuTitle';
|
|
84
|
-
const menuItemText = '1st menu item';
|
|
85
|
-
const menu = (
|
|
86
|
-
<Menu>
|
|
87
|
-
<Menu.SubMenu key="0" title={subMenuTitle} disabled>
|
|
88
|
-
<Menu.Item key="1"><span>{menuItemText}</span></Menu.Item>
|
|
89
|
-
<Menu.Item key="2">2st menu item</Menu.Item>
|
|
90
|
-
</Menu.SubMenu>
|
|
91
|
-
</Menu>
|
|
92
|
-
);
|
|
93
|
-
|
|
94
|
-
await act(async () => {
|
|
95
|
-
render(<Dropdown overlay={menu} visible><span>trigger</span></Dropdown>);
|
|
96
|
-
await waitFor(() => {
|
|
97
|
-
return screen.getByText(subMenuTitle);
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
act(() => {
|
|
102
|
-
fireEvent.mouseEnter(screen.getByText(subMenuTitle));
|
|
103
|
-
});
|
|
104
|
-
// 等待一段时间,确保 mouseEnterDelay 时间过去
|
|
105
|
-
const DELAY_TIME = 1000;
|
|
106
|
-
jest.advanceTimersByTime(DELAY_TIME);
|
|
107
|
-
|
|
108
|
-
// 期待二级子菜单不出现
|
|
109
|
-
expect(screen.queryByText(menuItemText)).toBeNull();
|
|
110
|
-
|
|
111
|
-
jest.runOnlyPendingTimers();
|
|
112
|
-
jest.useRealTimers();
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
it('SubMenu popupClassName', async () => {
|
|
116
|
-
const subMenuTitle = 'subMenuTitle';
|
|
117
|
-
const menuItemText = '1st menu item';
|
|
118
|
-
const popupClassName = 'popupClassName';
|
|
119
|
-
const menu = (
|
|
120
|
-
<Menu>
|
|
121
|
-
<Menu.SubMenu key="0" title={subMenuTitle} popupClassName={popupClassName}>
|
|
122
|
-
<Menu.Item key="1"><span>{menuItemText}</span></Menu.Item>
|
|
123
|
-
<Menu.Item key="2">2st menu item</Menu.Item>
|
|
124
|
-
</Menu.SubMenu>
|
|
125
|
-
</Menu>
|
|
126
|
-
);
|
|
127
|
-
|
|
128
|
-
await act(async () => {
|
|
129
|
-
render(<Dropdown overlay={menu} visible><span>trigger</span></Dropdown>);
|
|
130
|
-
await waitFor(() => {
|
|
131
|
-
return screen.getByText(subMenuTitle);
|
|
132
|
-
});
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
await act(async () => {
|
|
136
|
-
fireEvent.mouseEnter(screen.getByText(subMenuTitle));
|
|
137
|
-
await waitFor(() => {
|
|
138
|
-
return screen.getByText(menuItemText);
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
|
|
142
|
-
expect(document.querySelector(`.${popupClassName}`)).not.toBeNull();
|
|
143
|
-
});
|
|
144
|
-
});
|
package/src/Menu/index.tsx
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import classNames from 'classnames';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { Menu as AntdMenu} from 'antd';
|
|
4
|
-
import MenuItem from './MenuItem';
|
|
5
|
-
import Divider from './Divider';
|
|
6
|
-
import SubMenu from './SubMenu';
|
|
7
|
-
import type { MenuClickEventHandler } from 'rc-menu/lib/interface';
|
|
8
|
-
import './style';
|
|
9
|
-
|
|
10
|
-
export interface IMenuProps {
|
|
11
|
-
/**
|
|
12
|
-
* @description 点击 MenuItem 调用此函数
|
|
13
|
-
* @default -
|
|
14
|
-
*/
|
|
15
|
-
onClick?: MenuClickEventHandler;
|
|
16
|
-
className?: string;
|
|
17
|
-
children?: React.ReactNode | React.ReactNode[];
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export default function Menu(props: IMenuProps) {
|
|
21
|
-
const { className, ...otherProps } = props;
|
|
22
|
-
return <AntdMenu className={classNames(className, 'ald-menu')} {...otherProps} />;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
Menu.Item = MenuItem;
|
|
26
|
-
Menu.Divider = Divider;
|
|
27
|
-
Menu.SubMenu = SubMenu;
|
package/src/Menu/style/index.ts
DELETED