@aloudata/aloudata-design 0.3.2 → 0.3.5

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.
Files changed (205) hide show
  1. package/es/Breadcrumb/index.d.ts +1 -0
  2. package/es/Button/index.js +3 -2
  3. package/es/Button/style/index.less +135 -126
  4. package/es/Button/style/variables.less +53 -53
  5. package/es/Checkbox/index.d.ts +1 -0
  6. package/es/ConfigProvider/defaultRenderEmpty.d.ts +4 -0
  7. package/es/ConfigProvider/defaultRenderEmpty.js +37 -0
  8. package/es/ConfigProvider/sizeContext.d.ts +9 -0
  9. package/es/ConfigProvider/sizeContext.js +12 -0
  10. package/es/Dropdown/Button.js +3 -2
  11. package/es/Empty/image/Authority.d.ts +1 -0
  12. package/es/Empty/image/Dataspace.d.ts +1 -0
  13. package/es/Empty/image/Search.d.ts +1 -0
  14. package/es/Empty/image/Simple.d.ts +1 -0
  15. package/es/Empty/image/Worksheet.d.ts +1 -0
  16. package/es/Empty/image/empty.d.ts +1 -0
  17. package/es/Icon/icons.json +418 -0
  18. package/es/Input/components/Group/index.d.ts +3 -1
  19. package/es/Input/components/Group/index.js +6 -12
  20. package/es/Input/components/Input/index.d.ts +3 -2
  21. package/es/Input/components/Input/index.js +11 -23
  22. package/es/Input/components/Password/index.js +11 -16
  23. package/es/Input/components/TextArea/index.d.ts +8 -1
  24. package/es/Input/components/TextArea/index.js +8 -1
  25. package/es/Input/style/index.less +180 -102
  26. package/es/InputNumber/index.d.ts +1 -0
  27. package/es/InputNumber/style/index.less +69 -69
  28. package/es/Menu/Divider.d.ts +1 -0
  29. package/es/Modal/index.js +4 -7
  30. package/es/Modal/style/index.less +48 -45
  31. package/es/Navigator/components/Header/index.d.ts +1 -0
  32. package/es/Navigator/components/Menu/index.d.ts +1 -0
  33. package/es/PageHeader/index.d.ts +3 -0
  34. package/es/PageHeader/index.js +3 -0
  35. package/es/PageHeader/style/index.d.ts +2 -0
  36. package/es/PageHeader/style/index.js +2 -0
  37. package/es/PageHeader/style/index.less +1 -0
  38. package/es/Popover/index.d.ts +1 -0
  39. package/es/Radio/components/Group/index.d.ts +6 -0
  40. package/es/Radio/components/Group/index.js +74 -0
  41. package/es/Radio/components/Radio/index.d.ts +3 -0
  42. package/es/Radio/components/Radio/index.js +95 -0
  43. package/es/Radio/index.d.ts +9 -2
  44. package/es/Radio/index.js +5 -3
  45. package/es/Radio/interface/radio.d.ts +24 -0
  46. package/es/Radio/interface/radio.js +1 -0
  47. package/es/Radio/interface/radioGroup.d.ts +42 -0
  48. package/es/Radio/interface/radioGroup.js +1 -0
  49. package/es/Radio/style/index.less +348 -0
  50. package/es/Select/index.js +1 -1
  51. package/es/Select/rc-select/OptionList.js +3 -2
  52. package/es/Select/rc-select/hooks/useOptions.d.ts +1 -1
  53. package/es/Select/style/index.less +50 -49
  54. package/es/Select/style/variables.less +45 -45
  55. package/es/Select/utils/iconUtil.d.ts +2 -2
  56. package/es/Select/utils/iconUtil.js +6 -4
  57. package/es/Steps/components/ProcessIcon/index.d.ts +6 -0
  58. package/es/Steps/components/ProcessIcon/index.js +8 -0
  59. package/es/Steps/components/Step/index.d.ts +20 -0
  60. package/es/Steps/components/Step/index.js +45 -0
  61. package/es/Steps/index.d.ts +36 -2
  62. package/es/Steps/index.js +30 -1
  63. package/es/Steps/matchMedia.mock.d.ts +1 -0
  64. package/es/Steps/matchMedia.mock.js +17 -0
  65. package/es/Steps/style/index.less +251 -0
  66. package/es/Switch/index.d.ts +46 -2
  67. package/es/Switch/index.js +71 -1
  68. package/es/Switch/style/index.less +129 -0
  69. package/es/Table/Table.d.ts +2 -1
  70. package/es/Table/Table.js +223 -330
  71. package/es/Table/components/Empty/index.d.ts +3 -0
  72. package/es/Table/components/Empty/index.js +16 -0
  73. package/es/Table/components/Loading/index.d.ts +3 -0
  74. package/es/Table/components/Loading/index.js +18 -0
  75. package/es/Table/components/TableBodyRowList/index.d.ts +13 -0
  76. package/es/Table/components/TableBodyRowList/index.js +91 -0
  77. package/es/Table/components/TableHead/index.d.ts +23 -0
  78. package/es/Table/components/TableHead/index.js +262 -0
  79. package/es/Table/constant.d.ts +1 -0
  80. package/es/Table/constant.js +1 -0
  81. package/es/Table/hooks/useFrame.d.ts +7 -0
  82. package/es/Table/hooks/useFrame.js +90 -0
  83. package/es/Table/hooks/useTableColumn.d.ts +28 -0
  84. package/es/Table/hooks/useTableColumn.js +53 -0
  85. package/es/Table/interface.d.ts +3 -2
  86. package/es/Table/style/index.less +41 -37
  87. package/es/Table/style/index.less.d.ts +126 -0
  88. package/es/Table/style/variable.less +10 -0
  89. package/es/Table/style/variable.less.d.ts +7 -0
  90. package/es/Table/utils.d.ts +15 -0
  91. package/es/Table/utils.js +131 -0
  92. package/es/Tabs/index.js +3 -2
  93. package/es/Tabs/style/index.less +25 -25
  94. package/es/_utils/hooks/useId.d.ts +4 -0
  95. package/es/_utils/hooks/useId.js +23 -0
  96. package/es/index.d.ts +7 -5
  97. package/es/index.js +2 -1
  98. package/es/locale-provider/index.d.ts +5 -1
  99. package/es/style/index.d.ts +0 -1
  100. package/es/style/index.js +0 -1
  101. package/es/style/index.less +2 -2
  102. package/es/style/themes/default/index.less +30 -30
  103. package/lib/Breadcrumb/index.d.ts +1 -0
  104. package/lib/Button/index.js +5 -3
  105. package/lib/Button/style/index.less +135 -126
  106. package/lib/Button/style/variables.less +53 -53
  107. package/lib/Checkbox/index.d.ts +1 -0
  108. package/lib/ConfigProvider/defaultRenderEmpty.d.ts +4 -0
  109. package/lib/ConfigProvider/defaultRenderEmpty.js +55 -0
  110. package/lib/ConfigProvider/sizeContext.d.ts +9 -0
  111. package/lib/ConfigProvider/sizeContext.js +30 -0
  112. package/lib/Dropdown/Button.js +7 -5
  113. package/lib/Empty/image/Authority.d.ts +1 -0
  114. package/lib/Empty/image/Dataspace.d.ts +1 -0
  115. package/lib/Empty/image/Search.d.ts +1 -0
  116. package/lib/Empty/image/Simple.d.ts +1 -0
  117. package/lib/Empty/image/Worksheet.d.ts +1 -0
  118. package/lib/Empty/image/empty.d.ts +1 -0
  119. package/lib/Icon/icons.json +418 -0
  120. package/lib/Input/components/Group/index.d.ts +3 -1
  121. package/lib/Input/components/Group/index.js +7 -12
  122. package/lib/Input/components/Input/index.d.ts +3 -2
  123. package/lib/Input/components/Input/index.js +13 -23
  124. package/lib/Input/components/Password/index.js +13 -17
  125. package/lib/Input/components/TextArea/index.d.ts +8 -1
  126. package/lib/Input/components/TextArea/index.js +10 -1
  127. package/lib/Input/style/index.less +180 -102
  128. package/lib/InputNumber/index.d.ts +1 -0
  129. package/lib/InputNumber/style/index.less +69 -69
  130. package/lib/Menu/Divider.d.ts +1 -0
  131. package/lib/Modal/index.js +8 -10
  132. package/lib/Modal/style/index.less +48 -45
  133. package/lib/Navigator/components/Header/index.d.ts +1 -0
  134. package/lib/Navigator/components/Menu/index.d.ts +1 -0
  135. package/lib/PageHeader/index.d.ts +3 -0
  136. package/lib/PageHeader/index.js +15 -0
  137. package/lib/PageHeader/style/index.d.ts +2 -0
  138. package/lib/PageHeader/style/index.js +5 -0
  139. package/lib/PageHeader/style/index.less +1 -0
  140. package/lib/Popover/index.d.ts +1 -0
  141. package/lib/Radio/components/Group/index.d.ts +6 -0
  142. package/lib/Radio/components/Group/index.js +95 -0
  143. package/lib/Radio/components/Radio/index.d.ts +3 -0
  144. package/lib/Radio/components/Radio/index.js +115 -0
  145. package/lib/Radio/index.d.ts +9 -2
  146. package/lib/Radio/index.js +5 -3
  147. package/lib/Radio/interface/radio.d.ts +24 -0
  148. package/lib/Radio/interface/radio.js +5 -0
  149. package/lib/Radio/interface/radioGroup.d.ts +42 -0
  150. package/lib/Radio/interface/radioGroup.js +5 -0
  151. package/lib/Radio/style/index.less +348 -0
  152. package/lib/Select/index.js +1 -1
  153. package/lib/Select/rc-select/OptionList.js +7 -5
  154. package/lib/Select/rc-select/hooks/useOptions.d.ts +1 -1
  155. package/lib/Select/style/index.less +50 -49
  156. package/lib/Select/style/variables.less +45 -45
  157. package/lib/Select/utils/iconUtil.d.ts +2 -2
  158. package/lib/Select/utils/iconUtil.js +10 -8
  159. package/lib/Steps/components/ProcessIcon/index.d.ts +6 -0
  160. package/lib/Steps/components/ProcessIcon/index.js +19 -0
  161. package/lib/Steps/components/Step/index.d.ts +20 -0
  162. package/lib/Steps/components/Step/index.js +61 -0
  163. package/lib/Steps/index.d.ts +36 -2
  164. package/lib/Steps/index.js +34 -1
  165. package/lib/Steps/matchMedia.mock.d.ts +1 -0
  166. package/lib/Steps/matchMedia.mock.js +17 -0
  167. package/lib/Steps/style/index.less +251 -0
  168. package/lib/Switch/index.d.ts +46 -2
  169. package/lib/Switch/index.js +78 -1
  170. package/lib/Switch/style/index.less +129 -0
  171. package/lib/Table/Table.d.ts +2 -1
  172. package/lib/Table/Table.js +229 -332
  173. package/lib/Table/components/Empty/index.d.ts +3 -0
  174. package/lib/Table/components/Empty/index.js +28 -0
  175. package/lib/Table/components/Loading/index.d.ts +3 -0
  176. package/lib/Table/components/Loading/index.js +31 -0
  177. package/lib/Table/components/TableBodyRowList/index.d.ts +13 -0
  178. package/lib/Table/components/TableBodyRowList/index.js +110 -0
  179. package/lib/Table/components/TableHead/index.d.ts +23 -0
  180. package/lib/Table/components/TableHead/index.js +286 -0
  181. package/lib/Table/constant.d.ts +1 -0
  182. package/lib/Table/constant.js +1 -0
  183. package/lib/Table/hooks/useFrame.d.ts +7 -0
  184. package/lib/Table/hooks/useFrame.js +98 -0
  185. package/lib/Table/hooks/useTableColumn.d.ts +28 -0
  186. package/lib/Table/hooks/useTableColumn.js +66 -0
  187. package/lib/Table/interface.d.ts +3 -2
  188. package/lib/Table/style/index.less +41 -37
  189. package/lib/Table/style/index.less.d.ts +126 -0
  190. package/lib/Table/style/variable.less +10 -0
  191. package/lib/Table/style/variable.less.d.ts +7 -0
  192. package/lib/Table/utils.d.ts +15 -0
  193. package/lib/Table/utils.js +147 -0
  194. package/lib/Tabs/index.js +5 -3
  195. package/lib/Tabs/style/index.less +25 -25
  196. package/lib/_utils/hooks/useId.d.ts +4 -0
  197. package/lib/_utils/hooks/useId.js +36 -0
  198. package/lib/index.d.ts +7 -5
  199. package/lib/index.js +8 -0
  200. package/lib/locale-provider/index.d.ts +5 -1
  201. package/lib/style/index.d.ts +0 -1
  202. package/lib/style/index.js +0 -2
  203. package/lib/style/index.less +2 -2
  204. package/lib/style/themes/default/index.less +30 -30
  205. package/package.json +2 -1
@@ -7,30 +7,33 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
- var _lodash = _interopRequireDefault(require("lodash"));
10
+ var _classnames4 = _interopRequireDefault(require("classnames"));
11
11
 
12
- var _classnames7 = _interopRequireDefault(require("classnames"));
12
+ var _react = _interopRequireWildcard(require("react"));
13
13
 
14
- var _SortDescendingLine = _interopRequireDefault(require("../Icon/icons/SortDescendingLine"));
14
+ var _usePrefixCls = _interopRequireDefault(require("../_utils/hooks/usePrefixCls"));
15
15
 
16
- var _SortAscendingLine = _interopRequireDefault(require("../Icon/icons/SortAscendingLine"));
16
+ var _rcResizeObserver = _interopRequireDefault(require("rc-resize-observer"));
17
17
 
18
- var _Loading = _interopRequireDefault(require("../Icon/icons/Loading"));
18
+ var _reactTable = require("react-table");
19
19
 
20
- var _react = _interopRequireWildcard(require("react"));
20
+ var _utils = require("./utils");
21
21
 
22
- var _usePrefixCls = _interopRequireDefault(require("../_utils/hooks/usePrefixCls"));
22
+ require("./style/index");
23
23
 
24
- var _reactInfiniteScrollComponent = _interopRequireDefault(require("react-infinite-scroll-component"));
24
+ var _message = _interopRequireDefault(require("../message"));
25
25
 
26
- var _rcResizeObserver = _interopRequireDefault(require("rc-resize-observer"));
26
+ var _Loading = _interopRequireDefault(require("./components/Loading"));
27
27
 
28
- var _Empty = _interopRequireDefault(require("../Empty"));
28
+ var _Empty = _interopRequireDefault(require("./components/Empty"));
29
29
 
30
- var _reactTable = require("react-table");
30
+ var _TableHead = _interopRequireDefault(require("./components/TableHead"));
31
+
32
+ var _TableBodyRowList = _interopRequireDefault(require("./components/TableBodyRowList"));
31
33
 
32
- var _excluded = ["style"],
33
- _excluded2 = ["style"];
34
+ var _useFrame = require("./hooks/useFrame");
35
+
36
+ var _variable = _interopRequireDefault(require("./style/variable.less"));
34
37
 
35
38
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
36
39
 
@@ -38,10 +41,6 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
38
41
 
39
42
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
40
43
 
41
- 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; }
42
-
43
- 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; }
44
-
45
44
  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; }
46
45
 
47
46
  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; }
@@ -60,11 +59,8 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
60
59
 
61
60
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
62
61
 
63
- // import './style/index';
64
- var ARRAY_FIRST_INDEX = 0;
65
- var DEFAULT_ROW_WIDTH = 0;
66
- var DEFAULT_BODY_HEIGHT = 0;
67
- var EMPTY_LENGTH = 0; // eslint-disable-next-line @typescript-eslint/no-explicit-any
62
+ var SCROLLBAR_SIZE = 15;
63
+ var ZERO = 0;
68
64
 
69
65
  function Table(props, ref) {
70
66
  var _classnames3;
@@ -83,79 +79,78 @@ function Table(props, ref) {
83
79
  allSortDirections = props.sortDirections,
84
80
  _props$onChange = props.onChange,
85
81
  onChange = _props$onChange === void 0 ? function () {} : _props$onChange,
86
- _props$innerScroll = props.innerScroll,
87
- innerScroll = _props$innerScroll === void 0 ? false : _props$innerScroll,
88
82
  _props$scrollThreshol = props.scrollThreshold,
89
83
  scrollThreshold = _props$scrollThreshol === void 0 ? '150px' : _props$scrollThreshol,
90
84
  _props$rowClassName = props.rowClassName,
91
85
  rowClassName = _props$rowClassName === void 0 ? '' : _props$rowClassName,
92
86
  _props$ellipsis = props.ellipsis,
93
87
  ellipsis = _props$ellipsis === void 0 ? true : _props$ellipsis,
94
- rowKey = props.rowKey;
95
-
96
- var _React$useState = _react.default.useState(null),
97
- _React$useState2 = _slicedToArray(_React$useState, 2),
98
- selectedRowId = _React$useState2[0],
99
- setSelectedRowId = _React$useState2[1];
88
+ rowKey = props.rowKey,
89
+ height = props.height;
100
90
 
101
- var tableBodyListRef = (0, _react.useRef)(null);
102
- var tableRef = (0, _react.useRef)(null);
103
-
104
- var _useState = (0, _react.useState)(DEFAULT_BODY_HEIGHT),
91
+ var _useState = (0, _react.useState)(ZERO),
105
92
  _useState2 = _slicedToArray(_useState, 2),
106
93
  tableClientWidth = _useState2[0],
107
94
  setTableClientWidth = _useState2[1];
108
95
 
109
- var RANDOM_ID = "INNER_SCROLL_ID_".concat(Math.random());
110
-
111
- var _useState3 = (0, _react.useState)(DEFAULT_ROW_WIDTH),
96
+ var _useState3 = (0, _react.useState)(ZERO),
112
97
  _useState4 = _slicedToArray(_useState3, 2),
113
- width = _useState4[0],
114
- setWidth = _useState4[1]; // 如果页面整体宽度变化则重新计算
98
+ tableClientHeight = _useState4[0],
99
+ setTableClientHeight = _useState4[1];
100
+
101
+ var prefixCls = (0, _usePrefixCls.default)('', 'ald-table');
102
+ var tableRef = (0, _react.useRef)(null);
103
+ var tableHeadRef = (0, _react.useRef)(null);
104
+ var tableBodyRef = (0, _react.useRef)(null);
105
+ var columnsRef = (0, _react.useRef)([]);
106
+ var columnsWidthMapRef = (0, _react.useRef)();
107
+ var columnsTotalWidthRef = (0, _react.useRef)(ZERO);
108
+
109
+ var _useState5 = (0, _react.useState)(false),
110
+ _useState6 = _slicedToArray(_useState5, 2),
111
+ loadMoreLoading = _useState6[0],
112
+ setLoadMoreLoading = _useState6[1];
113
+
114
+ var lastOffsetLeftRef = (0, _react.useRef)(ZERO);
115
+ var lastOffsetTopRef = (0, _react.useRef)(ZERO);
116
+
117
+ var _useTimeoutLock = (0, _useFrame.useTimeoutLock)(),
118
+ _useTimeoutLock2 = _slicedToArray(_useTimeoutLock, 2),
119
+ setScrollTarget = _useTimeoutLock2[0],
120
+ getScrollTarget = _useTimeoutLock2[1]; // 记录初始columns, 后续更改不响应
121
+
122
+
123
+ if (columns && columnsRef.current.length === ZERO) {
124
+ columnsRef.current = columns;
125
+ } // 初始化进入时 渲染表格容器宽度
115
126
 
116
127
 
117
128
  (0, _react.useEffect)(function () {
118
129
  if (tableRef.current) {
119
130
  setTableClientWidth(tableRef.current.clientWidth);
120
131
  }
121
- }, [width]);
122
- var initialColumnsWidthMap = (0, _react.useMemo)(function () {
123
- var map = new Map();
124
-
125
- if (tableClientWidth !== DEFAULT_BODY_HEIGHT) {
126
- var noGivenColumns = 0;
127
- var givenColumnsTotalWidth = 0;
128
- columns.forEach(function (column) {
129
- if (column.width) {
130
- map.set(column.dataIndex, column.width);
131
- givenColumnsTotalWidth += column.width;
132
- } else {
133
- noGivenColumns += 1;
134
- }
135
- });
136
- var averageWidth = (tableClientWidth - givenColumnsTotalWidth) / noGivenColumns;
137
- return {
138
- columnMap: map,
139
- averageWidth: averageWidth
140
- };
141
- }
132
+ }, []); // 转换外部传入的columns
142
133
 
143
- columns.forEach(function (column) {
144
- if (column.width) {
145
- map.set(column.dataIndex, column.width);
146
- }
147
- });
148
- return {
149
- columnMap: map,
150
- averageWidth: DEFAULT_ROW_WIDTH
151
- };
152
- }, [columns, tableClientWidth]);
153
134
  var newColumns = (0, _react.useMemo)(function () {
154
- return columns.map(function (column) {
135
+ var _getColumnsWidthMap = (0, _utils.getColumnsWidthMap)(columnsRef.current, tableClientWidth, columnsWidthMapRef.current),
136
+ columnsWidthMap = _getColumnsWidthMap.columnsWidthMap,
137
+ totalColumnWidth = _getColumnsWidthMap.totalColumnWidth;
138
+
139
+ columnsWidthMapRef.current = columnsWidthMap;
140
+ columnsTotalWidthRef.current = totalColumnWidth;
141
+ return columnsRef.current.map(function (column, index) {
142
+ var _columnsWidthMapRef$c, _columnsWidthMapRef$c2;
143
+
144
+ var key = index.toString(); // 不设置dataIndex同时进行排序 则报错
145
+
146
+ if (!column.dataIndex === undefined && sortable) {
147
+ _message.default.error('不支持未设置dataIndex时进行排序设置');
148
+ }
149
+
155
150
  return _objectSpread(_objectSpread({}, column), {}, {
156
- width: initialColumnsWidthMap.columnMap.get(column.dataIndex) || initialColumnsWidthMap.averageWidth,
151
+ width: (_columnsWidthMapRef$c = columnsWidthMapRef.current) === null || _columnsWidthMapRef$c === void 0 ? void 0 : (_columnsWidthMapRef$c2 = _columnsWidthMapRef$c.get(key)) === null || _columnsWidthMapRef$c2 === void 0 ? void 0 : _columnsWidthMapRef$c2.width,
157
152
  Header: column.title ? column.title : function () {
158
- return null;
153
+ return /*#__PURE__*/_react.default.createElement("span", null, "\xA0");
159
154
  },
160
155
  disableSortBy: !sortable || typeof column.sorter === 'boolean',
161
156
  accessor: column.dataIndex,
@@ -166,51 +161,10 @@ function Table(props, ref) {
166
161
  }
167
162
  });
168
163
  });
169
- }, [columns, sortable, initialColumnsWidthMap]); // 默认排序的对象
170
-
171
- var defaultSortObject = {
172
- id: newColumns[ARRAY_FIRST_INDEX].accessor,
173
- desc: newColumns[ARRAY_FIRST_INDEX].sortOrder && newColumns[ARRAY_FIRST_INDEX].sortOrder === 'descend' ? true : false
174
- }; // 如果支持排序 但是没有默认排序 则默认按第一列倒叙排序
175
-
176
- var getInitialSortDirection = function getInitialSortDirection() {
177
- if (defaultSort && defaultSort.id) {
178
- return defaultSort;
179
- }
180
-
181
- if (sortable) {
182
- return defaultSortObject;
183
- }
184
-
185
- return {
186
- id: '',
187
- desc: false
188
- };
189
- };
190
-
191
- var _React$useState3 = _react.default.useState(getInitialSortDirection()),
192
- _React$useState4 = _slicedToArray(_React$useState3, 2),
193
- sortDirection = _React$useState4[0],
194
- setSortDirection = _React$useState4[1];
195
-
196
- var getInitSortBy = function getInitSortBy() {
197
- if (!(sortDirection === null || sortDirection === void 0 ? void 0 : sortDirection.id)) {
198
- return [];
199
- }
200
-
201
- var sortColumn = newColumns.find(function (column) {
202
- return column.accessor === sortDirection.id;
203
- });
204
-
205
- if (sortColumn === null || sortColumn === void 0 ? void 0 : sortColumn.sorter) {
206
- return [];
207
- }
164
+ }, [sortable, tableClientWidth]); // 将rowId转为React Table支持的值
165
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
208
166
 
209
- return [sortDirection];
210
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
211
-
212
-
213
- var getRowIdFn = function getRowIdFn(row, relativeIndex, parent) {
167
+ var transformRowId = function transformRowId(row, relativeIndex, parent) {
214
168
  if (rowKey && parent) {
215
169
  if (typeof rowKey === 'string') {
216
170
  return [rowKey, relativeIndex].join('.');
@@ -222,6 +176,24 @@ function Table(props, ref) {
222
176
  }
223
177
 
224
178
  return relativeIndex.toString();
179
+ }; // 计算初始传递给 React Table的排序字段
180
+
181
+
182
+ var getTableInitSort = function getTableInitSort() {
183
+ if (defaultSort && defaultSort.id) {
184
+ return [defaultSort];
185
+ }
186
+
187
+ var firstColumnSortData = {
188
+ id: newColumns[ZERO].accessor,
189
+ desc: !!(newColumns[ZERO].sortOrder && newColumns[ZERO].sortOrder === 'descend')
190
+ };
191
+
192
+ if (firstColumnSortData.id) {
193
+ return [firstColumnSortData];
194
+ }
195
+
196
+ return [];
225
197
  };
226
198
 
227
199
  var _useTable = (0, _reactTable.useTable)({
@@ -229,9 +201,9 @@ function Table(props, ref) {
229
201
  data: data,
230
202
  disableMultiSort: true,
231
203
  disableSortBy: !sortable,
232
- getRowId: getRowIdFn,
204
+ getRowId: transformRowId,
233
205
  initialState: {
234
- sortBy: getInitSortBy()
206
+ sortBy: getTableInitSort()
235
207
  }
236
208
  }, _reactTable.useBlockLayout, _reactTable.useSortBy, _reactTable.useRowSelect, _reactTable.useResizeColumns),
237
209
  getTableProps = _useTable.getTableProps,
@@ -239,261 +211,186 @@ function Table(props, ref) {
239
211
  headerGroups = _useTable.headerGroups,
240
212
  rows = _useTable.rows,
241
213
  prepareRow = _useTable.prepareRow,
242
- setSortBy = _useTable.setSortBy,
243
- totalColumnsWidth = _useTable.totalColumnsWidth;
214
+ setSortBy = _useTable.setSortBy;
244
215
 
245
- var theadRowWidthRef = _react.default.useRef(DEFAULT_ROW_WIDTH);
216
+ var scrollToTop = function scrollToTop() {
217
+ var INITIAL_OFFSET_TOP = 0;
246
218
 
247
- var prefixCls = (0, _usePrefixCls.default)('', 'ald-table');
248
- var onRowClick = (0, _react.useCallback)(function (row) {
249
- if (!onRowSelected) {
250
- return;
219
+ if (tableBodyRef && tableBodyRef.current) {
220
+ tableBodyRef.current.scrollTop = INITIAL_OFFSET_TOP;
251
221
  }
222
+ };
252
223
 
253
- setSelectedRowId(row.id);
254
- onRowSelected(row.original);
255
- }, [onRowSelected]); // 排序的方向 倒叙{ id: 'xx', desc: true }、正序{ id: 'xx', desc: false }、无序 { id: '', desc: undefined }
256
- // 获取排序方向以及排序的id
257
-
258
- var getSortBy = function getSortBy(id) {
259
- var sortDirections = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ['ascend', 'descend'];
260
- var // 如果传了sortDirections,则使用传入的,否则使用默认的
261
- sortOrder = arguments.length > 2 ? arguments[2] : undefined;
262
- var res = {
263
- id: id,
264
- desc: undefined
265
- };
266
- var isSameCol = sortDirection.id === id;
267
- var descMap = new Map([['ascend', false], ['descend', true]]);
268
- var directions = allSortDirections || sortDirections; // 如果不是同一列 则返回默认排序 或者排序顺序的第一个
269
-
270
- if (!isSameCol) {
271
- if (sortOrder === 'ascend' || sortOrder === 'descend') {
272
- res.desc = descMap.get(sortOrder);
273
- } else {
274
- res.desc = sortOrder ? sortOrder : descMap.get(directions[ARRAY_FIRST_INDEX]);
224
+ _react.default.useImperativeHandle(ref, function () {
225
+ return {
226
+ backToTop: function backToTop() {
227
+ scrollToTop();
275
228
  }
229
+ };
230
+ });
276
231
 
277
- return res;
278
- } // 如果是同一列
279
- // 如果列给了默认的sortOrder则不在变化
280
-
281
-
282
- if (sortOrder === 'ascend' || sortOrder === 'descend') {
283
- res.desc = descMap.get(sortOrder);
284
- return res;
285
- } // 在所有方向上 往后取一个
232
+ var tableHeadNode = /*#__PURE__*/_react.default.createElement(_TableHead.default, {
233
+ canResizeColumn: resizeColumn,
234
+ headerGroups: headerGroups,
235
+ tableContentWidth: columnsTotalWidthRef.current,
236
+ defaultSort: defaultSort,
237
+ sortable: sortable,
238
+ columns: newColumns,
239
+ sortDirections: allSortDirections,
240
+ setSortBy: setSortBy,
241
+ onChange: onChange,
242
+ columnsWidthMapRef: columnsWidthMapRef,
243
+ columnsTotalWidthRef: columnsTotalWidthRef
244
+ });
286
245
 
246
+ var tableRowListNode = /*#__PURE__*/_react.default.createElement(_TableBodyRowList.default, {
247
+ data: data,
248
+ rows: rows,
249
+ prepareRow: prepareRow,
250
+ columnsTotalWidthRef: columnsTotalWidthRef,
251
+ rowClassName: rowClassName,
252
+ ellipsis: ellipsis,
253
+ onRowSelected: onRowSelected
254
+ }); // 渲染没有设置高度的表格
255
+
256
+
257
+ var renderTableWithoutHeight = function renderTableWithoutHeight() {
258
+ var renderNoHeightTableBody = function renderNoHeightTableBody() {
259
+ if (loading && !rows.length) {
260
+ return /*#__PURE__*/_react.default.createElement(_Loading.default, null);
261
+ }
287
262
 
288
- var lastSortDirection = sortDirection.desc ? 'descend' : 'ascend';
263
+ if (!loading && !rows.length) {
264
+ return /*#__PURE__*/_react.default.createElement(_Empty.default, null);
265
+ }
289
266
 
290
- var index = _lodash.default.findIndex(directions, function (item) {
291
- return item === lastSortDirection;
292
- });
267
+ return /*#__PURE__*/_react.default.createElement("div", {
268
+ className: "".concat(prefixCls, "-list")
269
+ }, tableRowListNode);
270
+ };
293
271
 
294
- var nextIndex = index + 1;
295
- res.desc = descMap.get(directions[nextIndex]); // 如果没有排序方向,则返回默认排序对象
272
+ return /*#__PURE__*/_react.default.createElement("div", {
273
+ className: (0, _classnames4.default)("".concat(prefixCls, "-inner-wrap"))
274
+ }, tableHeadNode, /*#__PURE__*/_react.default.createElement("div", Object.assign({}, getTableBodyProps(), {
275
+ className: (0, _classnames4.default)("".concat(prefixCls, "-tbody")),
276
+ style: {
277
+ width: columnsTotalWidthRef.current
278
+ }
279
+ }), renderNoHeightTableBody()));
280
+ };
296
281
 
297
- if (res.desc === undefined) {
298
- res.id = '';
282
+ var forceScroll = (0, _react.useCallback)(function (scrollLeftNum, target) {
283
+ if (!target) {
284
+ return;
299
285
  }
300
286
 
301
- return res;
302
- };
287
+ if (typeof target === 'function') {
288
+ target(scrollLeftNum);
289
+ } else if (target.scrollLeft !== scrollLeftNum) {
290
+ // eslint-disable-next-line no-param-reassign
291
+ target.scrollLeft = scrollLeftNum;
292
+ }
293
+ }, []); // 内部滚动时 纵向的滚动
303
294
 
304
- var getHeaderProps = function getHeaderProps(column) {
305
- // @ts-ignore
306
- var id = column.id,
307
- canSort = column.canSort,
308
- sorter = column.sorter,
309
- sortOrder = column.sortOrder,
310
- sortDirections = column.sortDirections;
311
- var toggleProps = column.getSortByToggleProps(); // 仅在Table设置sortable时,所有列的canSort为true,此时为前端排序
312
-
313
- if (canSort) {
314
- // client sort
315
- return _objectSpread(_objectSpread({}, column.getHeaderProps(_objectSpread({}, toggleProps))), {}, {
316
- onClick: function onClick(e) {
317
- e.stopPropagation();
318
-
319
- if (typeof toggleProps.onClick === 'function') {
320
- var sortBy = getSortBy(id, sortDirections, sortOrder);
321
- setSortBy(sortBy.desc === undefined ? [defaultSortObject] : [sortBy]); // 客户端排序时 需要重新设置排序
322
-
323
- setSortDirection(sortBy);
324
- onChange(sortBy);
325
- }
326
- }
327
- });
328
- } // 当列设置sorter属性时,则为服务端排序
295
+ var onBodyVerticalScroll = (0, _react.useCallback)(function (target) {
296
+ var scrollHeight = target.scrollHeight,
297
+ clientHeight = target.clientHeight,
298
+ scrollTop = target.scrollTop;
299
+ var currentPosToBottomGap = scrollHeight - clientHeight - scrollTop;
300
+ var scrollThresholdValue = (0, _utils.getValidScrollThreshold)(scrollThreshold, tableClientHeight);
329
301
 
302
+ if (currentPosToBottomGap < scrollThresholdValue && hasNextPage && !loadMoreLoading) {
303
+ var _loadMore;
330
304
 
331
- if (sorter) {
332
- // server sort
333
- return _objectSpread(_objectSpread({}, column.getHeaderProps({
334
- style: {
335
- cursor: 'pointer'
336
- }
337
- })), {}, {
338
- onClick: function onClick(e) {
339
- e.stopPropagation();
340
- var sortBy = getSortBy(id, sortDirections, sortOrder);
341
- setSortDirection(sortBy);
342
- onChange(sortBy);
343
- }
305
+ setLoadMoreLoading(true);
306
+ (_loadMore = loadMore()) === null || _loadMore === void 0 ? void 0 : _loadMore.then(function () {
307
+ setLoadMoreLoading(false);
344
308
  });
345
309
  }
346
310
 
347
- return column.getHeaderProps();
348
- };
311
+ lastOffsetTopRef.current = scrollTop;
312
+ }, [hasNextPage, loadMore, loadMoreLoading, scrollThreshold, tableClientHeight]); // 内部滚动 对于滚动的处理
349
313
 
350
- var SortIcons = function SortIcons(_ref2) {
351
- var id = _ref2.id;
352
- var currentSortId = sortDirection.id,
353
- desc = sortDirection.desc;
314
+ var onBodyScroll = (0, _react.useCallback)(function (e) {
315
+ var currentTarget = e.target;
354
316
 
355
- if (id !== currentSortId || !sortable) {
356
- return null;
317
+ if (!currentTarget) {
318
+ return;
357
319
  }
358
320
 
359
- return desc ? /*#__PURE__*/_react.default.createElement(_SortDescendingLine.default, {
360
- className: "".concat(prefixCls, "-sortIcon"),
361
- fill: "currentColor",
362
- size: 12
363
- }) : /*#__PURE__*/_react.default.createElement(_SortAscendingLine.default, {
364
- className: "".concat(prefixCls, "-sortIcon"),
365
- fill: "currentColor",
366
- size: 12
367
- });
368
- };
321
+ var scrollLeftNum = currentTarget.scrollLeft;
322
+ var scrollTopNum = currentTarget.scrollTop; // 纵向滚动
369
323
 
370
- var scrollToTop = function scrollToTop() {
371
- var INITIAL_OFFSET_TOP = 0;
324
+ if (scrollTopNum !== lastOffsetLeftRef.current) {
325
+ onBodyVerticalScroll(currentTarget);
326
+ }
372
327
 
373
- if (tableBodyListRef && tableBodyListRef.current) {
374
- tableBodyListRef.current.scrollTop = INITIAL_OFFSET_TOP;
328
+ if (scrollLeftNum === lastOffsetLeftRef.current) {
329
+ return;
375
330
  }
376
- };
377
331
 
378
- _react.default.useImperativeHandle(ref, function () {
379
- return {
380
- backToTop: function backToTop() {
381
- scrollToTop();
382
- }
383
- };
384
- });
332
+ var compareTarget = currentTarget; // 横向滚动
385
333
 
386
- var LoadingNode = /*#__PURE__*/_react.default.createElement("div", {
387
- className: (0, _classnames7.default)("".concat(prefixCls, "-loading"))
388
- }, /*#__PURE__*/_react.default.createElement(_Loading.default, {
389
- size: 16,
390
- fill: "currentColor",
391
- spin: true,
392
- className: (0, _classnames7.default)("".concat(prefixCls, "-loading-icon"))
393
- }), "Loading");
394
-
395
- var renderTableBody = function renderTableBody() {
396
- if (loading && !rows.length) {
397
- return LoadingNode;
334
+ if (!getScrollTarget() || getScrollTarget() === compareTarget) {
335
+ setScrollTarget(compareTarget);
336
+ forceScroll(scrollLeftNum, tableBodyRef.current);
337
+ forceScroll(scrollLeftNum, tableHeadRef.current);
338
+ lastOffsetLeftRef.current = scrollLeftNum;
398
339
  }
399
-
400
- if (!loading && !rows.length) {
401
- return /*#__PURE__*/_react.default.createElement("div", {
402
- className: (0, _classnames7.default)("".concat(prefixCls, "-empty-icon"))
403
- }, /*#__PURE__*/_react.default.createElement(_Empty.default, {
404
- title: "No Data",
405
- size: "large",
406
- image: _Empty.default.PRESENTED_IMAGE_SIMPLE
407
- }));
340
+ }, [forceScroll, getScrollTarget, onBodyVerticalScroll, setScrollTarget]);
341
+ (0, _react.useEffect)(function () {
342
+ if (!hasNextPage) {
343
+ setLoadMoreLoading(false);
408
344
  }
345
+ }, [hasNextPage]); // 渲染有设置高度的表格
409
346
 
410
- var renderRowList = function renderRowList() {
411
- return data.map(function (item, index) {
412
- var _classnames;
413
-
414
- var row = rows[index];
415
- prepareRow(row);
416
-
417
- var _row$getRowProps = row.getRowProps(),
418
- rowStyle = _row$getRowProps.style,
419
- rowProps = _objectWithoutProperties(_row$getRowProps, _excluded);
420
-
421
- return /*#__PURE__*/_react.default.createElement("div", Object.assign({}, rowProps, {
422
- style: _objectSpread({}, rowStyle),
423
- className: (0, _classnames7.default)("".concat(prefixCls, "-row"), (_classnames = {}, _defineProperty(_classnames, "".concat(prefixCls, "-row-selected"), row.id === selectedRowId), _defineProperty(_classnames, rowClassName, rowClassName), _defineProperty(_classnames, "".concat(prefixCls, "-row-ellipsis"), ellipsis), _classnames)),
424
- onClick: function onClick() {
425
- return onRowClick(row);
426
- },
427
- key: row.id
428
- }), row.cells.map(function (cell) {
429
- return /*#__PURE__*/_react.default.createElement("div", Object.assign({}, cell.getCellProps(), {
430
- className: (0, _classnames7.default)("".concat(prefixCls, "-cell"))
431
- }), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, cell.render('Cell')));
432
- }));
433
- });
347
+ var renderTableWithHeight = function renderTableWithHeight() {
348
+ var renderNoHeightTableBody = function renderNoHeightTableBody() {
349
+ if (loading && !rows.length) {
350
+ return /*#__PURE__*/_react.default.createElement(_Loading.default, null);
351
+ }
352
+
353
+ if (!loading && !rows.length) {
354
+ return /*#__PURE__*/_react.default.createElement(_Empty.default, null);
355
+ }
356
+
357
+ return /*#__PURE__*/_react.default.createElement("div", {
358
+ style: {
359
+ overflow: 'overlay',
360
+ overflowX: tableClientWidth + SCROLLBAR_SIZE > columnsTotalWidthRef.current ? 'hidden' : 'unset',
361
+ height: tableClientHeight - _variable.default.TableHeadRowHeight
362
+ },
363
+ ref: tableBodyRef,
364
+ onScroll: onBodyScroll
365
+ }, tableRowListNode, loadMoreLoading && /*#__PURE__*/_react.default.createElement(_Loading.default, null));
434
366
  };
435
367
 
436
368
  return /*#__PURE__*/_react.default.createElement("div", {
437
- className: (0, _classnames7.default)("".concat(prefixCls, "-list"), _defineProperty({}, "".concat(prefixCls, "-innerScroll"), innerScroll)),
438
- id: RANDOM_ID,
439
- ref: tableBodyListRef
440
- }, innerScroll ? /*#__PURE__*/_react.default.createElement(_reactInfiniteScrollComponent.default, {
441
- dataLength: rows.length,
442
- next: loadMore,
443
- hasMore: !!hasNextPage,
444
- loader: LoadingNode,
445
- scrollableTarget: RANDOM_ID,
446
- scrollThreshold: scrollThreshold
447
- }, renderRowList()) : renderRowList());
369
+ className: (0, _classnames4.default)("".concat(prefixCls, "-inner-wrap"), _defineProperty({}, "".concat(prefixCls, "-innerScroll"), height))
370
+ }, /*#__PURE__*/_react.default.createElement("div", {
371
+ ref: tableHeadRef,
372
+ className: "".concat(prefixCls, "-tableHeadScrollWrap")
373
+ }, tableHeadNode), /*#__PURE__*/_react.default.createElement("div", Object.assign({}, getTableBodyProps(), {
374
+ className: (0, _classnames4.default)("".concat(prefixCls, "-tbody"), _defineProperty({}, "".concat(prefixCls, "-tbody-innerScroll"), height))
375
+ }), renderNoHeightTableBody()));
448
376
  };
449
377
 
450
378
  return /*#__PURE__*/_react.default.createElement(_rcResizeObserver.default, {
451
- onResize: function onResize(_ref3) {
452
- var domWidth = _ref3.width;
453
- setWidth(domWidth);
379
+ onResize: function onResize(_ref2) {
380
+ var clientWidth = _ref2.width,
381
+ clientHeight = _ref2.height;
382
+ setTableClientWidth(clientWidth);
383
+ setTableClientHeight(clientHeight);
454
384
  }
455
385
  }, /*#__PURE__*/_react.default.createElement("div", {
456
386
  className: prefixCls,
457
- ref: tableRef
458
- }, /*#__PURE__*/_react.default.createElement("div", Object.assign({}, getTableProps(), {
459
- className: (0, _classnames7.default)("".concat(prefixCls, "-table-wrap"), (_classnames3 = {}, _defineProperty(_classnames3, "".concat(prefixCls, "-column-resizable"), resizeColumn), _defineProperty(_classnames3, "".concat(prefixCls, "-init-loading"), data.length === EMPTY_LENGTH && loading), _defineProperty(_classnames3, "".concat(prefixCls, "-empty"), data.length === EMPTY_LENGTH && loading), _classnames3))
460
- }), /*#__PURE__*/_react.default.createElement("div", {
461
- className: "".concat(prefixCls, "-thead")
462
- }, headerGroups.map(function (headerGroup) {
463
- var _headerGroup$getHeade = headerGroup.getHeaderGroupProps(),
464
- style = _headerGroup$getHeade.style,
465
- headerGroupProps = _objectWithoutProperties(_headerGroup$getHeade, _excluded2);
466
-
467
- theadRowWidthRef.current = (style === null || style === void 0 ? void 0 : style.width) || DEFAULT_ROW_WIDTH;
468
- return /*#__PURE__*/_react.default.createElement("div", Object.assign({}, headerGroupProps, {
469
- style: _objectSpread(_objectSpread({}, style), {}, {
470
- width: resizeColumn ? style === null || style === void 0 ? void 0 : style.width : '100%'
471
- }),
472
- className: "".concat(prefixCls, "-row")
473
- }), headerGroup.headers.map(function (column) {
474
- var barPorps = resizeColumn ? column.getResizerProps() : {};
475
- return /*#__PURE__*/_react.default.createElement("div", {
476
- className: (0, _classnames7.default)(_defineProperty({}, "".concat(prefixCls, "-cell-sorting"), column.id === sortDirection.id), "".concat(prefixCls, "-cell")),
477
- style: getHeaderProps(column).style,
478
- key: column.id
479
- }, /*#__PURE__*/_react.default.createElement("div", Object.assign({
480
- className: "".concat(prefixCls, "-cell-content")
481
- }, getHeaderProps(column), {
482
- style: {
483
- width: '100%'
484
- }
485
- }), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, column.render('Header'), /*#__PURE__*/_react.default.createElement(SortIcons, {
486
- id: column.id
487
- }))), /*#__PURE__*/_react.default.createElement("div", Object.assign({}, barPorps, {
488
- className: (0, _classnames7.default)(_defineProperty({}, "".concat(prefixCls, "-dragBar"), resizeColumn), "".concat(prefixCls, "-bar"))
489
- })));
490
- }));
491
- })), /*#__PURE__*/_react.default.createElement("div", Object.assign({}, getTableBodyProps(), {
492
- className: (0, _classnames7.default)("".concat(prefixCls, "-tbody"), _defineProperty({}, "".concat(prefixCls, "-innerScroll"), innerScroll)),
387
+ ref: tableRef,
493
388
  style: {
494
- width: totalColumnsWidth
389
+ height: !height ? 'unset' : height
495
390
  }
496
- }), renderTableBody()))));
391
+ }, /*#__PURE__*/_react.default.createElement("div", Object.assign({}, getTableProps(), {
392
+ className: (0, _classnames4.default)("".concat(prefixCls, "-table-wrap"), (_classnames3 = {}, _defineProperty(_classnames3, "".concat(prefixCls, "-init-loading"), data.length === ZERO && loading), _defineProperty(_classnames3, "".concat(prefixCls, "-empty"), data.length === ZERO && loading), _classnames3))
393
+ }), height ? renderTableWithHeight() : renderTableWithoutHeight())));
497
394
  }
498
395
 
499
396
  var _default = /*#__PURE__*/_react.default.forwardRef(Table);