@aloudata/aloudata-design 0.1.0-beta1 → 0.2.0-beta.11
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/index.d.ts +49 -0
- package/es/Button/index.js +107 -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 +29 -18
- package/es/Dropdown/Button.d.ts +69 -0
- package/es/Dropdown/Button.js +39 -0
- package/es/Dropdown/index.d.ts +59 -0
- package/es/Dropdown/index.js +32 -0
- package/es/Dropdown/style/index.d.ts +3 -0
- package/es/Dropdown/style/index.js +3 -0
- package/{src → es}/Dropdown/style/index.less +0 -0
- package/es/Empty/index.d.ts +7 -0
- package/es/Empty/index.js +56 -0
- package/es/Empty/style/index.d.ts +1 -0
- package/es/Empty/style/index.js +1 -0
- package/es/Empty/style/index.less +24 -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 +44 -0
- package/{src → es}/Icon/index.less +3 -3
- package/es/Input/components/Group/index.d.ts +15 -0
- package/es/Input/components/Group/index.js +12 -0
- package/es/Input/components/Input/index.d.ts +61 -0
- package/es/Input/components/Input/index.js +37 -0
- package/es/Input/components/Password/index.d.ts +11 -0
- package/es/Input/components/Password/index.js +21 -0
- package/es/Input/components/TextArea/index.d.ts +58 -0
- package/es/Input/components/TextArea/index.js +24 -0
- package/es/Input/index.d.ts +16 -0
- package/es/Input/index.js +9 -0
- package/es/Input/style/index.d.ts +3 -0
- package/es/Input/style/index.js +3 -0
- package/{src → es}/Input/style/index.less +9 -4
- package/es/Menu/Divider.d.ts +4 -0
- package/es/Menu/Divider.js +14 -0
- package/es/Menu/MenuItem.d.ts +23 -0
- package/es/Menu/MenuItem.js +14 -0
- package/es/Menu/SubMenu.d.ts +25 -0
- package/es/Menu/SubMenu.js +28 -0
- package/es/Menu/index.d.ts +20 -0
- package/es/Menu/index.js +30 -0
- package/es/Menu/style/index.d.ts +3 -0
- package/es/Menu/style/index.js +3 -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/index.d.ts +40 -0
- package/es/Navigator/index.js +44 -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/hooks/useCacheOption.d.ts +9 -0
- package/es/Select/hooks/useCacheOption.js +107 -0
- package/es/Select/index.d.ts +11 -0
- package/es/Select/index.js +8 -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/index.d.ts +4 -0
- package/es/Table/index.js +369 -0
- package/es/Table/interface.d.ts +35 -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 +175 -0
- package/es/Tabs/TabPane.d.ts +21 -0
- package/es/Tabs/TabPane.js +12 -0
- package/es/Tabs/index.d.ts +41 -0
- package/es/Tabs/index.js +43 -0
- package/es/Tabs/style/index.d.ts +3 -0
- package/es/Tabs/style/index.js +3 -0
- package/{src → es}/Tabs/style/index.less +0 -0
- package/es/Tooltip/index.d.ts +63 -0
- package/es/Tooltip/index.js +32 -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/{lib/Button/demo/loading/index.js → es/_utils/hooks/useControlledState.js} +40 -37
- package/es/_utils/hooks/usePrefixCls.d.ts +2 -0
- package/es/_utils/hooks/usePrefixCls.js +14 -0
- package/es/index.d.ts +20 -0
- package/{src/index.ts → es/index.js} +3 -1
- package/es/style/index.d.ts +2 -0
- package/es/style/index.js +2 -0
- package/{src → es}/style/index.less +0 -0
- package/{lib/Button/demo/disable → es/style/mixins}/index.less +0 -0
- package/{src → es}/style/themes/default/index.less +2 -2
- 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/index.d.ts +0 -1
- package/lib/Button/index.js +2 -4
- package/lib/Button/style/index.less +29 -18
- package/lib/Dropdown/Button.d.ts +1 -1
- package/lib/Dropdown/Button.js +2 -2
- package/lib/Dropdown/index.d.ts +1 -1
- package/lib/Dropdown/index.js +0 -2
- package/lib/Dropdown/style/index.d.ts +1 -0
- package/lib/Dropdown/style/index.js +2 -0
- package/lib/Empty/index.d.ts +7 -0
- package/lib/Empty/index.js +69 -0
- package/lib/Empty/style/index.d.ts +1 -0
- package/lib/Empty/style/index.js +3 -0
- package/lib/Empty/style/index.less +24 -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.js +5 -3
- package/lib/Icon/index.less +3 -3
- package/lib/Input/components/Group/index.d.ts +2 -2
- package/lib/Input/components/Input/index.d.ts +61 -0
- package/lib/Input/components/Input/index.js +50 -0
- package/lib/Input/components/Password/index.d.ts +5 -4
- package/lib/Input/components/Password/index.js +10 -8
- package/lib/Input/components/TextArea/index.d.ts +10 -4
- package/lib/Input/components/TextArea/index.js +18 -7
- package/lib/Input/index.d.ts +14 -63
- package/lib/Input/index.js +4 -44
- package/lib/Input/style/index.d.ts +1 -0
- package/lib/Input/style/index.js +2 -0
- package/lib/Input/style/index.less +9 -4
- package/lib/Menu/Divider.d.ts +0 -1
- package/lib/Menu/Divider.js +0 -2
- package/lib/Menu/MenuItem.d.ts +7 -1
- package/lib/Menu/MenuItem.js +0 -2
- package/lib/Menu/SubMenu.d.ts +0 -1
- package/lib/Menu/SubMenu.js +0 -2
- package/lib/Menu/index.d.ts +1 -1
- package/lib/Menu/index.js +0 -2
- package/lib/Menu/style/index.d.ts +1 -0
- package/lib/Menu/style/index.js +2 -0
- 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/index.d.ts +40 -0
- package/lib/Navigator/index.js +62 -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/index.d.ts +0 -1
- package/lib/Select/index.js +0 -2
- package/lib/Select/interface.d.ts +8 -2
- package/lib/Select/style/index.less +3 -10
- package/lib/Table/index.d.ts +4 -0
- package/lib/Table/index.js +394 -0
- package/lib/Table/interface.d.ts +35 -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 +175 -0
- package/lib/Tabs/index.d.ts +1 -1
- package/lib/Tabs/index.js +4 -4
- package/lib/Tabs/style/index.d.ts +1 -0
- package/lib/Tabs/style/index.js +2 -0
- package/lib/Tooltip/index.d.ts +1 -1
- package/lib/Tooltip/index.js +3 -3
- package/lib/index.d.ts +12 -0
- package/lib/index.js +16 -0
- package/lib/style/index.d.ts +1 -1
- package/lib/style/index.js +1 -1
- package/lib/style/themes/default/index.less +2 -2
- 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 +33 -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/lib/Button/demo/Icon/index.d.ts +0 -3
- package/lib/Button/demo/Icon/index.js +0 -82
- package/lib/Button/demo/Icon/index.less +0 -6
- package/lib/Button/demo/basic/index.d.ts +0 -4
- package/lib/Button/demo/basic/index.js +0 -73
- package/lib/Button/demo/basic/index.less +0 -7
- package/lib/Button/demo/disable/index.d.ts +0 -3
- package/lib/Button/demo/disable/index.js +0 -37
- package/lib/Button/demo/href/index.d.ts +0 -2
- package/lib/Button/demo/href/index.js +0 -30
- package/lib/Button/demo/loading/index.d.ts +0 -3
- package/lib/Button/demo/loading/index.less +0 -6
- package/lib/Dropdown/demo/basic/index.d.ts +0 -4
- package/lib/Dropdown/demo/basic/index.js +0 -35
- package/lib/Dropdown/demo/button/index.d.ts +0 -3
- package/lib/Dropdown/demo/button/index.js +0 -182
- package/lib/Dropdown/demo/button/index.less +0 -9
- package/lib/Dropdown/demo/placement/index.d.ts +0 -2
- package/lib/Dropdown/demo/placement/index.js +0 -56
- package/lib/Dropdown/demo/subMenu/index.d.ts +0 -2
- package/lib/Dropdown/demo/subMenu/index.js +0 -59
- package/lib/Dropdown/demo/trigger/index.d.ts +0 -2
- package/lib/Dropdown/demo/trigger/index.js +0 -32
- package/lib/Input/demo/allowClear/index.d.ts +0 -3
- package/lib/Input/demo/allowClear/index.js +0 -25
- package/lib/Input/demo/allowClear/index.less +0 -0
- package/lib/Input/demo/basic/index.d.ts +0 -4
- package/lib/Input/demo/basic/index.js +0 -80
- package/lib/Input/demo/basic/index.less +0 -6
- package/lib/Input/demo/gourp/index.d.ts +0 -2
- package/lib/Input/demo/gourp/index.js +0 -81
- package/lib/Input/demo/password/index.d.ts +0 -3
- package/lib/Input/demo/password/index.js +0 -35
- package/lib/Input/demo/password/index.less +0 -0
- package/lib/Input/demo/prefix/index.d.ts +0 -3
- package/lib/Input/demo/prefix/index.js +0 -32
- package/lib/Input/demo/prefix/index.less +0 -0
- package/lib/Input/demo/showCount/index.d.ts +0 -3
- package/lib/Input/demo/showCount/index.js +0 -31
- package/lib/Input/demo/showCount/index.less +0 -0
- package/lib/Input/demo/textArea/autoSize.d.ts +0 -2
- package/lib/Input/demo/textArea/autoSize.js +0 -63
- package/lib/Select/demo/disabled/index.d.ts +0 -2
- package/lib/Select/demo/disabled/index.js +0 -64
- package/lib/Select/demo/multiple/index.d.ts +0 -2
- package/lib/Select/demo/multiple/index.js +0 -154
- package/lib/Select/demo/options/index.d.ts +0 -2
- package/lib/Select/demo/options/index.js +0 -69
- package/lib/Select/demo/single/index.d.ts +0 -2
- package/lib/Select/demo/single/index.js +0 -99
- package/lib/Tabs/demo/adaptHeight/index.d.ts +0 -3
- package/lib/Tabs/demo/adaptHeight/index.js +0 -34
- package/lib/Tabs/demo/adaptHeight/index.less +0 -3
- package/lib/Tabs/demo/basic/index.d.ts +0 -4
- package/lib/Tabs/demo/basic/index.js +0 -67
- package/lib/Tabs/demo/basic/index.less +0 -5
- package/lib/Tabs/demo/horizontalScroll/index.d.ts +0 -3
- package/lib/Tabs/demo/horizontalScroll/index.js +0 -45
- package/lib/Tabs/demo/horizontalScroll/index.less +0 -3
- package/lib/Tooltip/demo/basic/index.d.ts +0 -2
- package/lib/Tooltip/demo/basic/index.js +0 -20
- package/lib/Tooltip/demo/overflow/index.d.ts +0 -2
- package/lib/Tooltip/demo/overflow/index.js +0 -20
- package/lib/Tooltip/demo/placement/index.d.ts +0 -6
- package/lib/Tooltip/demo/placement/index.js +0 -86
- package/lib/Tooltip/demo/placement/index.less +0 -7
- package/lib/Tooltip/demo/trigger/index.d.ts +0 -3
- package/lib/Tooltip/demo/trigger/index.js +0 -34
- package/lib/Tooltip/demo/trigger/index.less +0 -5
- package/public/favicon.ico +0 -0
- package/src/Button/demo/Icon/index.less +0 -6
- package/src/Button/demo/Icon/index.tsx +0 -41
- package/src/Button/demo/basic/index.less +0 -7
- package/src/Button/demo/basic/index.tsx +0 -26
- package/src/Button/demo/disable/index.less +0 -0
- package/src/Button/demo/disable/index.tsx +0 -16
- package/src/Button/demo/href/index.tsx +0 -14
- package/src/Button/demo/loading/index.less +0 -6
- 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.less +0 -9
- 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.less +0 -0
- 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.less +0 -0
- package/src/Input/demo/password/index.tsx +0 -11
- package/src/Input/demo/prefix/index.less +0 -0
- package/src/Input/demo/prefix/index.tsx +0 -13
- package/src/Input/demo/showCount/index.less +0 -0
- 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.less +0 -3
- package/src/Tabs/demo/adaptHeight/index.tsx +0 -33
- package/src/Tabs/demo/basic/index.less +0 -5
- package/src/Tabs/demo/basic/index.tsx +0 -30
- package/src/Tabs/demo/horizontalScroll/index.less +0 -3
- 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.less +0 -7
- package/src/Tooltip/demo/placement/index.tsx +0 -60
- package/src/Tooltip/demo/trigger/index.less +0 -5
- 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/src/style/index.ts +0 -2
- package/src/style/mixins/index.less +0 -0
- package/tsconfig.json +0 -13
- package/typings.d.ts +0 -3
|
@@ -130,7 +130,8 @@
|
|
|
130
130
|
// box-shadow: 0 0 6px 0 @color-box-shadow-focused;
|
|
131
131
|
|
|
132
132
|
.@{select-prefix-cls-legacy} {
|
|
133
|
-
&-item-all
|
|
133
|
+
&-item-all,
|
|
134
|
+
&-item {
|
|
134
135
|
opacity: 0.5;
|
|
135
136
|
}
|
|
136
137
|
}
|
|
@@ -165,6 +166,7 @@
|
|
|
165
166
|
line-height: 22px;
|
|
166
167
|
white-space: nowrap;
|
|
167
168
|
text-overflow: ellipsis;
|
|
169
|
+
color: @NL0;
|
|
168
170
|
}
|
|
169
171
|
}
|
|
170
172
|
|
|
@@ -351,15 +353,6 @@
|
|
|
351
353
|
}
|
|
352
354
|
}
|
|
353
355
|
|
|
354
|
-
&-single,
|
|
355
|
-
&-focused {
|
|
356
|
-
.@{select-prefix-cls-legacy} {
|
|
357
|
-
&-item {
|
|
358
|
-
opacity: 0.5;
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
|
|
363
356
|
// rc-trigger
|
|
364
357
|
&-dropdown {
|
|
365
358
|
position: absolute;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { IOption } from './interface';
|
|
3
|
+
interface IGroup {
|
|
4
|
+
groupLabel?: string;
|
|
5
|
+
groupValue?: string | number;
|
|
6
|
+
}
|
|
7
|
+
export declare const customOptionKeyPrefix = "select_custom_option_";
|
|
8
|
+
export declare const customOptionKey: string;
|
|
9
|
+
export declare function convertNodeToOption(node: React.ReactElement, group: IGroup): IOption;
|
|
10
|
+
export declare const getFlattenOptions: (data: IOption[], hasGroup: boolean) => IOption[];
|
|
11
|
+
export declare function convertChildrenToData(nodes: React.ReactElement[], group?: {}): IOption[];
|
|
12
|
+
export declare function handleOptions(mergedOptions: IOption[], setCacheOptions: (options: IOption[]) => void, updateGroup: (value: boolean) => void): {
|
|
13
|
+
flattenOptions: IOption[];
|
|
14
|
+
isGroup: boolean;
|
|
15
|
+
};
|
|
16
|
+
export declare const defaultLabelRenderer: (input: string, prefix: string) => (option: IOption, isGroup: boolean) => React.ReactNode;
|
|
17
|
+
export declare const defaultOptionLabelRenderer: (value: string | number, option?: IOption | undefined) => {};
|
|
18
|
+
export declare const defaultSearchPredicate: (input: string) => (o: IOption) => boolean;
|
|
19
|
+
export declare const defaultMatchPredicate: (input: string) => (o: IOption) => boolean;
|
|
20
|
+
export declare const CustomOption: (value: string | number, withGroup?: boolean, id?: string) => IOption;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
var _excluded = ["value", "children"],
|
|
2
|
+
_excluded2 = ["options"];
|
|
3
|
+
|
|
4
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
5
|
+
|
|
6
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
7
|
+
|
|
8
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
9
|
+
|
|
10
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
11
|
+
|
|
12
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
13
|
+
|
|
14
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
15
|
+
|
|
16
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
17
|
+
|
|
18
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
19
|
+
|
|
20
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
21
|
+
|
|
22
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
23
|
+
|
|
24
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
25
|
+
|
|
26
|
+
import React from 'react';
|
|
27
|
+
import { concat, uniqueId } from 'lodash';
|
|
28
|
+
var ZERO_INDEX = 0;
|
|
29
|
+
var ungroupedOptionKeyPrefix = 'select_isungrouped_option_';
|
|
30
|
+
var ungroupedOptionKey = uniqueId(ungroupedOptionKeyPrefix);
|
|
31
|
+
var ungroupedOptionLabel = '未分组';
|
|
32
|
+
export var customOptionKeyPrefix = 'select_custom_option_';
|
|
33
|
+
export var customOptionKey = uniqueId(customOptionKeyPrefix); // ReactNode To Options
|
|
34
|
+
|
|
35
|
+
export function convertNodeToOption(node, group) {
|
|
36
|
+
var _node$props = node.props,
|
|
37
|
+
value = _node$props.value,
|
|
38
|
+
children = _node$props.children,
|
|
39
|
+
restProps = _objectWithoutProperties(_node$props, _excluded);
|
|
40
|
+
|
|
41
|
+
var groupValue = group.groupValue,
|
|
42
|
+
groupLabel = group.groupLabel;
|
|
43
|
+
|
|
44
|
+
if (groupLabel && groupLabel) {
|
|
45
|
+
return _objectSpread({
|
|
46
|
+
value: value,
|
|
47
|
+
label: children !== undefined ? children : value,
|
|
48
|
+
groupValue: groupValue,
|
|
49
|
+
groupLabel: groupLabel
|
|
50
|
+
}, restProps);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return _objectSpread({
|
|
54
|
+
value: value,
|
|
55
|
+
label: children !== undefined ? children : value
|
|
56
|
+
}, restProps);
|
|
57
|
+
}
|
|
58
|
+
export var getFlattenOptions = function getFlattenOptions(data, hasGroup) {
|
|
59
|
+
var groupMap = new Map();
|
|
60
|
+
|
|
61
|
+
if (!hasGroup) {
|
|
62
|
+
return data;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
data === null || data === void 0 ? void 0 : data.map(function (cur) {
|
|
66
|
+
var gValue = groupMap.get(cur.groupValue);
|
|
67
|
+
|
|
68
|
+
if (gValue) {
|
|
69
|
+
var options = gValue.options,
|
|
70
|
+
rest = _objectWithoutProperties(gValue, _excluded2);
|
|
71
|
+
|
|
72
|
+
return groupMap.set(cur.groupValue, _objectSpread({
|
|
73
|
+
options: [].concat(_toConsumableArray(options), [cur])
|
|
74
|
+
}, rest));
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return groupMap.set(cur.groupValue, {
|
|
78
|
+
label: cur.groupLabel,
|
|
79
|
+
value: cur.groupValue,
|
|
80
|
+
isSelectOptGroup: true,
|
|
81
|
+
options: [cur]
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
var flattenOption = [];
|
|
85
|
+
groupMap.forEach(function (value) {
|
|
86
|
+
flattenOption.push(value); // @ts-ignore
|
|
87
|
+
|
|
88
|
+
flattenOption.push.apply(flattenOption, _toConsumableArray(value.options));
|
|
89
|
+
});
|
|
90
|
+
return flattenOption;
|
|
91
|
+
};
|
|
92
|
+
export function convertChildrenToData(nodes) {
|
|
93
|
+
var group = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
94
|
+
var nodeOptions = [];
|
|
95
|
+
React.Children.forEach(nodes, function (node) {
|
|
96
|
+
if (! /*#__PURE__*/React.isValidElement(node)) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
var isSelectOptGroup = node.type.isSelectOptGroup,
|
|
101
|
+
_node$props2 = node.props,
|
|
102
|
+
children = _node$props2.children,
|
|
103
|
+
label = _node$props2.label,
|
|
104
|
+
value = _node$props2.value; // 联合类型
|
|
105
|
+
|
|
106
|
+
if (!isSelectOptGroup) {
|
|
107
|
+
// option
|
|
108
|
+
nodeOptions.push(convertNodeToOption(node, group));
|
|
109
|
+
} else {
|
|
110
|
+
// Group
|
|
111
|
+
nodeOptions = concat(nodeOptions, convertChildrenToData(children, {
|
|
112
|
+
groupLabel: label,
|
|
113
|
+
groupValue: value
|
|
114
|
+
}));
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
return nodeOptions;
|
|
118
|
+
} // optionsMap flattenOptions
|
|
119
|
+
|
|
120
|
+
export function handleOptions(mergedOptions, setCacheOptions, updateGroup) {
|
|
121
|
+
var isGroup = !!mergedOptions.find(function (v) {
|
|
122
|
+
return Object.prototype.hasOwnProperty.call(v, 'groupValue');
|
|
123
|
+
});
|
|
124
|
+
var flattenOptions = [];
|
|
125
|
+
mergedOptions.forEach(function (option) {
|
|
126
|
+
var optionGroupLabel = option.groupLabel,
|
|
127
|
+
optionGroupValue = option.groupValue;
|
|
128
|
+
|
|
129
|
+
if (isGroup && !optionGroupValue && !optionGroupLabel) {
|
|
130
|
+
var ungroupedOption = _objectSpread(_objectSpread({}, option), {}, {
|
|
131
|
+
groupLabel: ungroupedOptionLabel,
|
|
132
|
+
groupValue: ungroupedOptionKey
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
flattenOptions.push(ungroupedOption);
|
|
136
|
+
} else {
|
|
137
|
+
flattenOptions.push(option);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
updateGroup(isGroup);
|
|
141
|
+
setCacheOptions(flattenOptions);
|
|
142
|
+
return {
|
|
143
|
+
flattenOptions: flattenOptions,
|
|
144
|
+
isGroup: isGroup
|
|
145
|
+
};
|
|
146
|
+
} // provide search matching hightlight;
|
|
147
|
+
|
|
148
|
+
export var defaultLabelRenderer = function defaultLabelRenderer(input, prefix) {
|
|
149
|
+
return function (option, isGroup) {
|
|
150
|
+
var title = option.title,
|
|
151
|
+
label = option.label;
|
|
152
|
+
|
|
153
|
+
if (isGroup || typeof label !== 'string') {
|
|
154
|
+
return title || label;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
var index = label.indexOf(input);
|
|
158
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
159
|
+
style: {
|
|
160
|
+
display: 'inline-block',
|
|
161
|
+
lineHeight: '40px'
|
|
162
|
+
}
|
|
163
|
+
}, label.slice(ZERO_INDEX, index), /*#__PURE__*/React.createElement("span", {
|
|
164
|
+
className: "".concat(prefix, "-search-highlight")
|
|
165
|
+
}, label.slice(index, index + input.length)), label.slice(index + input.length));
|
|
166
|
+
};
|
|
167
|
+
};
|
|
168
|
+
export var defaultOptionLabelRenderer = function defaultOptionLabelRenderer(value, option) {
|
|
169
|
+
return (option === null || option === void 0 ? void 0 : option.title) || (option === null || option === void 0 ? void 0 : option.label) || value;
|
|
170
|
+
};
|
|
171
|
+
export var defaultSearchPredicate = function defaultSearchPredicate(input) {
|
|
172
|
+
return function (o) {
|
|
173
|
+
return typeof o.label === 'string' ? o.label.includes(input) : true;
|
|
174
|
+
};
|
|
175
|
+
};
|
|
176
|
+
export var defaultMatchPredicate = function defaultMatchPredicate(input) {
|
|
177
|
+
return function (o) {
|
|
178
|
+
return o.label === input;
|
|
179
|
+
};
|
|
180
|
+
};
|
|
181
|
+
export var CustomOption = function CustomOption(value) {
|
|
182
|
+
var withGroup = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
183
|
+
var id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : customOptionKeyPrefix;
|
|
184
|
+
return withGroup ? {
|
|
185
|
+
value: value,
|
|
186
|
+
label: value.toString(),
|
|
187
|
+
groupValue: id,
|
|
188
|
+
groupLabel: '自由输入'
|
|
189
|
+
} : {
|
|
190
|
+
value: value,
|
|
191
|
+
label: value.toString()
|
|
192
|
+
};
|
|
193
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
import { ITableProps } from './interface';
|
|
3
|
+
declare function Table<T extends Record<string, unknown>>({ columns, data, total, renderHeaderLeft, renderHeaderRight, onRowSelected, loadMore, hasNextPage, loading, sortable, defaultSort, resizeColumn, sortDirections: allSortDirections, showHeader, onChange, }: ITableProps<T>): ReactElement;
|
|
4
|
+
export default Table;
|
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
var _excluded = ["style"],
|
|
2
|
+
_excluded2 = ["style"];
|
|
3
|
+
|
|
4
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
5
|
+
|
|
6
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
7
|
+
|
|
8
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
9
|
+
|
|
10
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
11
|
+
|
|
12
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
+
|
|
14
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
15
|
+
|
|
16
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
17
|
+
|
|
18
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
19
|
+
|
|
20
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
21
|
+
|
|
22
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
23
|
+
|
|
24
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
25
|
+
|
|
26
|
+
/// <reference types ='./react-table-config' />
|
|
27
|
+
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
28
|
+
import { useTable, useBlockLayout, useRowSelect, useSortBy, useResizeColumns } from 'react-table';
|
|
29
|
+
import usePrefixCls from '../_utils/hooks/usePrefixCls';
|
|
30
|
+
import { FixedSizeList } from 'react-window';
|
|
31
|
+
import InfiniteLoader from 'react-window-infinite-loader';
|
|
32
|
+
import classnames from 'classnames';
|
|
33
|
+
import Icon from '../Icon';
|
|
34
|
+
import Empty from '../Empty';
|
|
35
|
+
import _ from 'lodash';
|
|
36
|
+
var DEFAULT_ROW_HEIGHT = 40;
|
|
37
|
+
var ARRAY_FIRST_INDEX = 0;
|
|
38
|
+
var DEFAULT_ROW_WIDTH = 0;
|
|
39
|
+
var DEFAULT_BODY_HEIGHT = 0;
|
|
40
|
+
|
|
41
|
+
function Table(_ref) {
|
|
42
|
+
var columns = _ref.columns,
|
|
43
|
+
data = _ref.data,
|
|
44
|
+
total = _ref.total,
|
|
45
|
+
renderHeaderLeft = _ref.renderHeaderLeft,
|
|
46
|
+
renderHeaderRight = _ref.renderHeaderRight,
|
|
47
|
+
onRowSelected = _ref.onRowSelected,
|
|
48
|
+
_ref$loadMore = _ref.loadMore,
|
|
49
|
+
loadMore = _ref$loadMore === void 0 ? function () {} : _ref$loadMore,
|
|
50
|
+
hasNextPage = _ref.hasNextPage,
|
|
51
|
+
loading = _ref.loading,
|
|
52
|
+
_ref$sortable = _ref.sortable,
|
|
53
|
+
sortable = _ref$sortable === void 0 ? false : _ref$sortable,
|
|
54
|
+
defaultSort = _ref.defaultSort,
|
|
55
|
+
_ref$resizeColumn = _ref.resizeColumn,
|
|
56
|
+
resizeColumn = _ref$resizeColumn === void 0 ? false : _ref$resizeColumn,
|
|
57
|
+
allSortDirections = _ref.sortDirections,
|
|
58
|
+
_ref$showHeader = _ref.showHeader,
|
|
59
|
+
showHeader = _ref$showHeader === void 0 ? true : _ref$showHeader,
|
|
60
|
+
_ref$onChange = _ref.onChange,
|
|
61
|
+
onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange;
|
|
62
|
+
|
|
63
|
+
var _React$useState = React.useState(null),
|
|
64
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
65
|
+
selectedRowId = _React$useState2[0],
|
|
66
|
+
setSelectedRowId = _React$useState2[1];
|
|
67
|
+
|
|
68
|
+
var tableBodyRef = useRef(null);
|
|
69
|
+
|
|
70
|
+
var _useState = useState(DEFAULT_BODY_HEIGHT),
|
|
71
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
72
|
+
bodyClientHeight = _useState2[0],
|
|
73
|
+
setBodyClientHeight = _useState2[1];
|
|
74
|
+
|
|
75
|
+
useEffect(function () {
|
|
76
|
+
if (tableBodyRef.current) {
|
|
77
|
+
setBodyClientHeight(tableBodyRef.current.clientHeight);
|
|
78
|
+
}
|
|
79
|
+
}, []);
|
|
80
|
+
var newColumns = useMemo(function () {
|
|
81
|
+
return columns.map(function (column) {
|
|
82
|
+
return _objectSpread(_objectSpread({}, column), {}, {
|
|
83
|
+
Header: column.title,
|
|
84
|
+
disableSortBy: !sortable || typeof column.sorter === 'boolean',
|
|
85
|
+
accessor: column.dataIndex,
|
|
86
|
+
Cell: function Cell(_ref2) {
|
|
87
|
+
var row = _ref2.row,
|
|
88
|
+
value = _ref2.value;
|
|
89
|
+
return typeof column.render === 'function' ? column.render(value, row.original, row.index) : value;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
}, [columns, sortable]);
|
|
94
|
+
|
|
95
|
+
var getInitialSortDirection = function getInitialSortDirection() {
|
|
96
|
+
if (defaultSort && defaultSort.id) {
|
|
97
|
+
return defaultSort;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (sortable) {
|
|
101
|
+
return {
|
|
102
|
+
id: newColumns[ARRAY_FIRST_INDEX].accessor,
|
|
103
|
+
desc: false
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
return {
|
|
108
|
+
id: '',
|
|
109
|
+
desc: false
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
var _React$useState3 = React.useState(getInitialSortDirection()),
|
|
114
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
115
|
+
sortDirection = _React$useState4[0],
|
|
116
|
+
setSortDirection = _React$useState4[1];
|
|
117
|
+
|
|
118
|
+
var _useTable = useTable({
|
|
119
|
+
columns: newColumns,
|
|
120
|
+
data: data,
|
|
121
|
+
disableMultiSort: true,
|
|
122
|
+
disableSortBy: !sortable,
|
|
123
|
+
initialState: {
|
|
124
|
+
sortBy: sortDirection.id ? [sortDirection] : []
|
|
125
|
+
}
|
|
126
|
+
}, useBlockLayout, useSortBy, useRowSelect, useResizeColumns),
|
|
127
|
+
getTableProps = _useTable.getTableProps,
|
|
128
|
+
getTableBodyProps = _useTable.getTableBodyProps,
|
|
129
|
+
headerGroups = _useTable.headerGroups,
|
|
130
|
+
rows = _useTable.rows,
|
|
131
|
+
prepareRow = _useTable.prepareRow,
|
|
132
|
+
setSortBy = _useTable.setSortBy;
|
|
133
|
+
|
|
134
|
+
var theadRowWidthRef = React.useRef(DEFAULT_ROW_WIDTH);
|
|
135
|
+
var prefixCls = usePrefixCls('block-table');
|
|
136
|
+
var onRowClick = useCallback(function (row) {
|
|
137
|
+
if (!onRowSelected) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
setSelectedRowId(row.id);
|
|
142
|
+
onRowSelected(row.original);
|
|
143
|
+
}, [onRowSelected]);
|
|
144
|
+
var itemCount = hasNextPage ? data.length + 1 : data.length;
|
|
145
|
+
var loadMoreItems = loading ? function () {} : loadMore;
|
|
146
|
+
|
|
147
|
+
var isItemLoaded = function isItemLoaded(index) {
|
|
148
|
+
return !hasNextPage || index < data.length;
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
var RenderRow = function RenderRow(_ref3) {
|
|
152
|
+
var index = _ref3.index,
|
|
153
|
+
style = _ref3.style;
|
|
154
|
+
|
|
155
|
+
if (!isItemLoaded(index)) {
|
|
156
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
157
|
+
style: style,
|
|
158
|
+
className: classnames("".concat(prefixCls, "-loading"))
|
|
159
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
160
|
+
type: "waiting",
|
|
161
|
+
size: 16
|
|
162
|
+
}), "Loading");
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
var row = rows[index];
|
|
166
|
+
prepareRow(row);
|
|
167
|
+
|
|
168
|
+
var _row$getRowProps = row.getRowProps(),
|
|
169
|
+
rowStyle = _row$getRowProps.style,
|
|
170
|
+
rowProps = _objectWithoutProperties(_row$getRowProps, _excluded);
|
|
171
|
+
|
|
172
|
+
return /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, rowProps), {}, {
|
|
173
|
+
style: _objectSpread(_objectSpread(_objectSpread({}, style), rowStyle), {}, {
|
|
174
|
+
width: resizeColumn ? style === null || style === void 0 ? void 0 : style.width : '100%'
|
|
175
|
+
}),
|
|
176
|
+
className: classnames("".concat(prefixCls, "-row"), _defineProperty({}, "".concat(prefixCls, "-row-selected"), row.id === selectedRowId)),
|
|
177
|
+
onClick: function onClick() {
|
|
178
|
+
return onRowClick(row);
|
|
179
|
+
}
|
|
180
|
+
}), row.cells.map(function (cell) {
|
|
181
|
+
return /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, cell.getCellProps()), {}, {
|
|
182
|
+
className: classnames("".concat(prefixCls, "-cell"))
|
|
183
|
+
}), cell.render('Cell'));
|
|
184
|
+
}));
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
var renderHeader = function renderHeader(len) {
|
|
188
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
189
|
+
className: classnames("".concat(prefixCls, "-header"))
|
|
190
|
+
}, renderHeaderLeft ? renderHeaderLeft() : /*#__PURE__*/React.createElement("span", {
|
|
191
|
+
className: classnames("".concat(prefixCls, "-header-left"))
|
|
192
|
+
}, "\u5171\u8BA1", total || len, "\u6761"), /*#__PURE__*/React.createElement("div", {
|
|
193
|
+
className: classnames("".concat(prefixCls, "-header-right"))
|
|
194
|
+
}, renderHeaderRight ? renderHeaderRight() : null));
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
var getNextSortDesc = function getNextSortDesc(currentDesc) {
|
|
198
|
+
var sortDirections = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ['ascend', 'descend'];
|
|
199
|
+
var sortOrder = arguments.length > 2 ? arguments[2] : undefined;
|
|
200
|
+
var descMap = new Map([['ascend', false], ['descend', true]]);
|
|
201
|
+
var directions = allSortDirections || sortDirections;
|
|
202
|
+
|
|
203
|
+
if (sortOrder === 'ascend' || sortOrder === 'descend') {
|
|
204
|
+
return descMap.get(sortOrder);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
if (typeof currentDesc === 'undefined') {
|
|
208
|
+
return descMap.get(directions[ARRAY_FIRST_INDEX]);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
var direction = currentDesc ? 'descend' : 'ascend';
|
|
212
|
+
|
|
213
|
+
var index = _.findIndex(directions, function (item) {
|
|
214
|
+
return item === direction;
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
var nextIndex = index + 1;
|
|
218
|
+
return descMap.get(directions[nextIndex]);
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
var getHeaderProps = function getHeaderProps(column) {
|
|
222
|
+
// @ts-ignore
|
|
223
|
+
var id = column.id,
|
|
224
|
+
isSortedDesc = column.isSortedDesc,
|
|
225
|
+
canSort = column.canSort,
|
|
226
|
+
sorter = column.sorter,
|
|
227
|
+
sortOrder = column.sortOrder,
|
|
228
|
+
sortDirections = column.sortDirections;
|
|
229
|
+
var toggleProps = column.getSortByToggleProps();
|
|
230
|
+
|
|
231
|
+
if (canSort) {
|
|
232
|
+
// client sort
|
|
233
|
+
return _objectSpread(_objectSpread({}, column.getHeaderProps(_objectSpread({}, toggleProps))), {}, {
|
|
234
|
+
onClick: function onClick(e) {
|
|
235
|
+
e.stopPropagation();
|
|
236
|
+
|
|
237
|
+
if (typeof toggleProps.onClick === 'function') {
|
|
238
|
+
// toggleProps.onClick(e);
|
|
239
|
+
var desc = getNextSortDesc(isSortedDesc, sortDirections, sortOrder);
|
|
240
|
+
var sortBy = {
|
|
241
|
+
id: typeof desc === 'undefined' ? '' : id,
|
|
242
|
+
desc: desc
|
|
243
|
+
};
|
|
244
|
+
setSortBy(typeof desc === 'undefined' ? [] : [sortBy]);
|
|
245
|
+
setSortDirection(sortBy);
|
|
246
|
+
onChange(sortBy);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
if (sorter) {
|
|
253
|
+
// server sort
|
|
254
|
+
return _objectSpread(_objectSpread({}, column.getHeaderProps({
|
|
255
|
+
style: {
|
|
256
|
+
cursor: 'pointer'
|
|
257
|
+
}
|
|
258
|
+
})), {}, {
|
|
259
|
+
onClick: function onClick(e) {
|
|
260
|
+
e.stopPropagation(); // 需要触发onChange
|
|
261
|
+
// debugger;
|
|
262
|
+
|
|
263
|
+
var desc = getNextSortDesc(sortDirection.desc, sortDirections, sortOrder);
|
|
264
|
+
var sortBy = {
|
|
265
|
+
id: typeof desc === 'boolean' ? id : '',
|
|
266
|
+
desc: desc
|
|
267
|
+
};
|
|
268
|
+
setSortDirection(sortBy);
|
|
269
|
+
onChange(sortBy);
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
return column.getHeaderProps();
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
var SortIcons = function SortIcons(_ref4) {
|
|
278
|
+
var id = _ref4.id;
|
|
279
|
+
var currentSortId = sortDirection.id,
|
|
280
|
+
desc = sortDirection.desc;
|
|
281
|
+
|
|
282
|
+
if (id !== currentSortId || !sortable) {
|
|
283
|
+
return null;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
return desc ? /*#__PURE__*/React.createElement(Icon, {
|
|
287
|
+
className: "".concat(prefixCls, "-sortIcon"),
|
|
288
|
+
type: "sort_descending",
|
|
289
|
+
size: 12
|
|
290
|
+
}) : /*#__PURE__*/React.createElement(Icon, {
|
|
291
|
+
className: "".concat(prefixCls, "-sortIcon"),
|
|
292
|
+
type: "sort_ascending",
|
|
293
|
+
size: 12
|
|
294
|
+
});
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
var renderTableBody = function renderTableBody() {
|
|
298
|
+
if (!loading && !rows.length) {
|
|
299
|
+
return /*#__PURE__*/React.createElement(Empty, {
|
|
300
|
+
description: "\u5F53\u524D\u65E0\u6570\u636E"
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
if (loadMoreItems) {
|
|
305
|
+
return /*#__PURE__*/React.createElement(InfiniteLoader, {
|
|
306
|
+
isItemLoaded: isItemLoaded,
|
|
307
|
+
itemCount: itemCount,
|
|
308
|
+
loadMoreItems: loadMoreItems
|
|
309
|
+
}, function (_ref5) {
|
|
310
|
+
var onItemsRendered = _ref5.onItemsRendered,
|
|
311
|
+
ref = _ref5.ref;
|
|
312
|
+
return /*#__PURE__*/React.createElement(FixedSizeList, {
|
|
313
|
+
itemCount: itemCount,
|
|
314
|
+
onItemsRendered: onItemsRendered,
|
|
315
|
+
height: bodyClientHeight,
|
|
316
|
+
itemSize: DEFAULT_ROW_HEIGHT,
|
|
317
|
+
width: resizeColumn ? theadRowWidthRef.current : '100%',
|
|
318
|
+
ref: ref,
|
|
319
|
+
className: "".concat(prefixCls, "-list")
|
|
320
|
+
}, RenderRow);
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
return /*#__PURE__*/React.createElement(FixedSizeList, {
|
|
325
|
+
itemCount: itemCount,
|
|
326
|
+
height: bodyClientHeight,
|
|
327
|
+
itemSize: DEFAULT_ROW_HEIGHT,
|
|
328
|
+
width: resizeColumn ? theadRowWidthRef.current : '100%',
|
|
329
|
+
className: "".concat(prefixCls, "-list")
|
|
330
|
+
}, RenderRow);
|
|
331
|
+
};
|
|
332
|
+
|
|
333
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
334
|
+
className: prefixCls
|
|
335
|
+
}, showHeader && renderHeader(data.length), /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, getTableProps()), {}, {
|
|
336
|
+
className: classnames("".concat(prefixCls, "-table-wrap"), _defineProperty({}, "".concat(prefixCls, "-column-resizable"), resizeColumn))
|
|
337
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
338
|
+
className: "".concat(prefixCls, "-thead")
|
|
339
|
+
}, headerGroups.map(function (headerGroup) {
|
|
340
|
+
var _headerGroup$getHeade = headerGroup.getHeaderGroupProps(),
|
|
341
|
+
style = _headerGroup$getHeade.style,
|
|
342
|
+
headerGroupProps = _objectWithoutProperties(_headerGroup$getHeade, _excluded2);
|
|
343
|
+
|
|
344
|
+
theadRowWidthRef.current = (style === null || style === void 0 ? void 0 : style.width) || DEFAULT_ROW_WIDTH;
|
|
345
|
+
return /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, headerGroupProps), {}, {
|
|
346
|
+
style: _objectSpread(_objectSpread({}, style), {}, {
|
|
347
|
+
width: resizeColumn ? style === null || style === void 0 ? void 0 : style.width : '100%'
|
|
348
|
+
}),
|
|
349
|
+
className: "".concat(prefixCls, "-row")
|
|
350
|
+
}), headerGroup.headers.map(function (column) {
|
|
351
|
+
var barPorps = resizeColumn ? column.getResizerProps() : {};
|
|
352
|
+
return /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({
|
|
353
|
+
// {...column.getHeaderProps(column.getSortByToggleProps())}
|
|
354
|
+
className: classnames(_defineProperty({}, "".concat(prefixCls, "-cell-sorting"), column.id === sortDirection.id), "".concat(prefixCls, "-cell"))
|
|
355
|
+
}, getHeaderProps(column)), {}, {
|
|
356
|
+
key: column.id
|
|
357
|
+
}), column.render('Header'), /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, barPorps), {}, {
|
|
358
|
+
className: classnames(_defineProperty({}, "".concat(prefixCls, "-dragBar"), resizeColumn), "".concat(prefixCls, "-bar"))
|
|
359
|
+
})), /*#__PURE__*/React.createElement(SortIcons, {
|
|
360
|
+
id: column.id
|
|
361
|
+
}));
|
|
362
|
+
}));
|
|
363
|
+
})), /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, getTableBodyProps()), {}, {
|
|
364
|
+
className: classnames("".concat(prefixCls, "-tbody")),
|
|
365
|
+
ref: tableBodyRef
|
|
366
|
+
}), renderTableBody())));
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
export default Table;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Row, IdType } from 'react-table';
|
|
3
|
+
export declare type TSortOrder = 'ascend' | 'descend' | false;
|
|
4
|
+
export interface ISort<T> {
|
|
5
|
+
id: IdType<T>;
|
|
6
|
+
desc?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface IColumn<T extends object> {
|
|
9
|
+
title: string;
|
|
10
|
+
dataIndex: string;
|
|
11
|
+
render?: (value: any, row: Record<string, T>, index: number) => React.ReactNode;
|
|
12
|
+
width?: number;
|
|
13
|
+
minWidth?: number;
|
|
14
|
+
sorter?: boolean | 'string' | 'number' | 'basic' | 'datetime' | 'alphanumeric' | ((rowA: Row<T>, rowB: Row<T>, columnId: IdType<T>, desc?: boolean) => number);
|
|
15
|
+
sortOrder?: TSortOrder;
|
|
16
|
+
sortDirections?: Array<'ascend' | 'descend'>;
|
|
17
|
+
selected?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface ITableProps<T extends object> {
|
|
20
|
+
columns: IColumn<T>[];
|
|
21
|
+
data: T[];
|
|
22
|
+
total?: number;
|
|
23
|
+
onRowSelected?: (row: T) => void;
|
|
24
|
+
loadMore?: (startIndex: number, stopIndex: number) => void | Promise<void>;
|
|
25
|
+
hasNextPage?: boolean;
|
|
26
|
+
loading?: boolean;
|
|
27
|
+
renderHeaderLeft?: () => React.ReactNode;
|
|
28
|
+
renderHeaderRight?: () => React.ReactNode;
|
|
29
|
+
sortable?: boolean;
|
|
30
|
+
onChange?: (sort: ISort<T>) => void;
|
|
31
|
+
defaultSort?: ISort<T>;
|
|
32
|
+
sortDirections?: Array<'ascend' | 'descend'>;
|
|
33
|
+
resizeColumn?: boolean;
|
|
34
|
+
showHeader?: boolean;
|
|
35
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|