@kdcloudjs/table 1.0.1 → 1.0.4

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 (207) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +34 -33
  3. package/dist/@kdcloudjs/table.css +1 -1
  4. package/dist/@kdcloudjs/table.css.map +1 -1
  5. package/dist/@kdcloudjs/table.js +6555 -3388
  6. package/dist/@kdcloudjs/table.js.map +1 -1
  7. package/dist/@kdcloudjs/table.min.css +1 -1
  8. package/dist/@kdcloudjs/table.min.js +32 -24
  9. package/dist/@kdcloudjs/table.min.js.map +1 -1
  10. package/es/_utils/hooks.js +1 -2
  11. package/es/_utils/numberUtil.js +3 -4
  12. package/es/locale/locale.js +1 -2
  13. package/es/table/base/calculations.js +3 -4
  14. package/es/table/base/empty.js +2 -2
  15. package/es/table/base/header.d.ts +6 -2
  16. package/es/table/base/header.js +41 -22
  17. package/es/table/base/helpers/SpanManager.js +1 -1
  18. package/es/table/base/helpers/TableDOMUtils.d.ts +3 -0
  19. package/es/table/base/helpers/TableDOMUtils.js +23 -5
  20. package/es/table/base/helpers/getRichVisibleRectsStream.d.ts +23 -0
  21. package/es/table/base/helpers/getRichVisibleRectsStream.js +216 -0
  22. package/es/table/base/html-table.d.ts +3 -1
  23. package/es/table/base/html-table.js +43 -26
  24. package/es/table/base/interfaces.d.ts +1 -0
  25. package/es/table/base/renderTemplates.d.ts +1 -0
  26. package/es/table/base/renderTemplates.js +344 -0
  27. package/es/table/base/styles.d.ts +24 -0
  28. package/es/table/base/styles.js +31 -9
  29. package/es/table/base/table.d.ts +12 -4
  30. package/es/table/base/table.js +183 -136
  31. package/es/table/base/utils.d.ts +6 -3
  32. package/es/table/base/utils.js +27 -6
  33. package/es/table/common-views.js +3 -3
  34. package/es/table/pipeline/features/autoFill.js +7 -1
  35. package/es/table/pipeline/features/columnDrag.js +168 -59
  36. package/es/table/pipeline/features/columnFilter.js +7 -9
  37. package/es/table/pipeline/features/columnResizeWidth.d.ts +3 -0
  38. package/es/table/pipeline/features/columnResizeWidth.js +11 -4
  39. package/es/table/pipeline/features/contextMenu.js +78 -31
  40. package/es/table/pipeline/features/filter/Filter.js +74 -37
  41. package/es/table/pipeline/features/index.d.ts +1 -0
  42. package/es/table/pipeline/features/index.js +2 -1
  43. package/es/table/pipeline/features/multiSelect.js +85 -79
  44. package/es/table/pipeline/features/rangeSelection.d.ts +10 -0
  45. package/es/table/pipeline/features/rangeSelection.js +231 -0
  46. package/es/table/pipeline/features/rowDetail.js +39 -16
  47. package/es/table/pipeline/features/rowGrouping.js +2 -1
  48. package/es/table/pipeline/features/singleSelect.js +4 -1
  49. package/es/table/pipeline/features/sort.js +2 -3
  50. package/es/table/pipeline/features/treeMode.js +4 -4
  51. package/es/table/pipeline/pipeline.d.ts +8 -0
  52. package/es/table/pipeline/pipeline.js +49 -5
  53. package/es/table/pivot/cross-table/buildCrossTable.js +1 -2
  54. package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +1 -2
  55. package/es/table/pivot/pivot-utils/builders.js +1 -2
  56. package/es/table/pivot/pivot-utils/convert-utils.js +5 -4
  57. package/es/table/transforms/autoWidth.js +1 -2
  58. package/es/table/transforms/sort.js +1 -2
  59. package/es/table/transforms/treeMode.js +1 -2
  60. package/es/table/utils/applyTransforms.js +1 -3
  61. package/es/table/utils/browserType.d.ts +6 -0
  62. package/es/table/utils/browserType.js +6 -0
  63. package/es/table/utils/buildTree.js +4 -5
  64. package/es/table/utils/collectNodes.js +1 -2
  65. package/es/table/utils/exportTableAsExcel.js +1 -2
  66. package/es/table/utils/getTreeDepth.js +1 -2
  67. package/es/table/utils/groupBy.js +1 -2
  68. package/es/table/utils/index.d.ts +1 -0
  69. package/es/table/utils/index.js +2 -1
  70. package/es/table/utils/layeredSort.js +5 -2
  71. package/es/table/utils/makeRecursiveMapper.js +4 -5
  72. package/es/table/utils/others.d.ts +1 -1
  73. package/es/table/utils/others.js +20 -14
  74. package/es/table/utils/traverseColumn.js +1 -2
  75. package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +4 -5
  76. package/es/table/utils/tree-data-helpers/TreeDataHelper.js +4 -5
  77. package/lib/_utils/formatUtil.js +1 -1
  78. package/lib/_utils/hooks.js +2 -4
  79. package/lib/_utils/numberUtil.js +7 -9
  80. package/lib/_utils/usePopper.js +9 -1
  81. package/lib/config-provider/configProvider.js +9 -1
  82. package/lib/config-provider/index.js +5 -5
  83. package/lib/locale/index.js +14 -6
  84. package/lib/locale/locale.js +2 -4
  85. package/lib/table/base/calculations.js +4 -6
  86. package/lib/table/base/empty.js +11 -3
  87. package/lib/table/base/header.d.ts +6 -2
  88. package/lib/table/base/header.js +39 -19
  89. package/lib/table/base/helpers/SpanManager.js +1 -1
  90. package/lib/table/base/helpers/TableDOMUtils.d.ts +3 -0
  91. package/lib/table/base/helpers/TableDOMUtils.js +21 -5
  92. package/lib/table/base/helpers/getRichVisibleRectsStream.d.ts +23 -0
  93. package/lib/table/base/helpers/getRichVisibleRectsStream.js +246 -0
  94. package/lib/table/base/html-table.d.ts +3 -1
  95. package/lib/table/base/html-table.js +44 -26
  96. package/lib/table/base/index.js +4 -4
  97. package/lib/table/base/interfaces.d.ts +1 -0
  98. package/lib/table/base/renderTemplates.d.ts +1 -0
  99. package/lib/table/base/renderTemplates.js +370 -0
  100. package/lib/table/base/styles.d.ts +24 -0
  101. package/lib/table/base/styles.js +42 -13
  102. package/lib/table/base/table.d.ts +12 -4
  103. package/lib/table/base/table.js +191 -137
  104. package/lib/table/base/utils.d.ts +6 -3
  105. package/lib/table/base/utils.js +47 -10
  106. package/lib/table/common-views.js +3 -3
  107. package/lib/table/pipeline/features/autoFill.js +9 -2
  108. package/lib/table/pipeline/features/columnDrag.js +168 -59
  109. package/lib/table/pipeline/features/columnFilter.js +6 -9
  110. package/lib/table/pipeline/features/columnResizeWidth.d.ts +3 -0
  111. package/lib/table/pipeline/features/columnResizeWidth.js +21 -5
  112. package/lib/table/pipeline/features/contextMenu.js +89 -32
  113. package/lib/table/pipeline/features/filter/DefaultFilterContent.js +10 -2
  114. package/lib/table/pipeline/features/filter/Filter.js +88 -37
  115. package/lib/table/pipeline/features/filter/FilterPanel.js +10 -2
  116. package/lib/table/pipeline/features/filter/index.js +4 -4
  117. package/lib/table/pipeline/features/index.d.ts +1 -0
  118. package/lib/table/pipeline/features/index.js +37 -27
  119. package/lib/table/pipeline/features/multiSelect.js +81 -75
  120. package/lib/table/pipeline/features/rangeSelection.d.ts +10 -0
  121. package/lib/table/pipeline/features/rangeSelection.js +256 -0
  122. package/lib/table/pipeline/features/rowDetail.js +42 -16
  123. package/lib/table/pipeline/features/rowGrouping.js +3 -1
  124. package/lib/table/pipeline/features/singleSelect.js +4 -1
  125. package/lib/table/pipeline/features/sort.js +2 -4
  126. package/lib/table/pipeline/features/treeMode.js +6 -6
  127. package/lib/table/pipeline/index.js +11 -3
  128. package/lib/table/pipeline/pipeline.d.ts +8 -0
  129. package/lib/table/pipeline/pipeline.js +50 -7
  130. package/lib/table/pivot/cross-table/buildCrossTable.js +1 -3
  131. package/lib/table/pivot/cross-table/index.js +4 -4
  132. package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +1 -3
  133. package/lib/table/pivot/pivot-utils/builders.js +2 -4
  134. package/lib/table/pivot/pivot-utils/convert-utils.js +7 -5
  135. package/lib/table/pivot/pivot-utils/index.js +4 -4
  136. package/lib/table/transforms/autoWidth.js +10 -4
  137. package/lib/table/transforms/columnResize.js +10 -2
  138. package/lib/table/transforms/index.js +32 -32
  139. package/lib/table/transforms/sort.js +10 -4
  140. package/lib/table/transforms/treeMode.js +9 -3
  141. package/lib/table/utils/applyTransforms.js +1 -5
  142. package/lib/table/utils/browserType.d.ts +6 -0
  143. package/lib/table/utils/browserType.js +13 -0
  144. package/lib/table/utils/buildTree.js +1 -3
  145. package/lib/table/utils/collectNodes.js +1 -3
  146. package/lib/table/utils/copyToClipboard.js +1 -1
  147. package/lib/table/utils/element.js +3 -3
  148. package/lib/table/utils/exportTableAsExcel.js +1 -3
  149. package/lib/table/utils/getTreeDepth.js +1 -3
  150. package/lib/table/utils/groupBy.js +1 -3
  151. package/lib/table/utils/index.d.ts +1 -0
  152. package/lib/table/utils/index.js +57 -49
  153. package/lib/table/utils/layeredSort.js +6 -2
  154. package/lib/table/utils/makeRecursiveMapper.js +1 -3
  155. package/lib/table/utils/others.d.ts +1 -1
  156. package/lib/table/utils/others.js +23 -18
  157. package/lib/table/utils/traverseColumn.js +1 -3
  158. package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +5 -7
  159. package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +5 -7
  160. package/package.json +6 -2
  161. package/dist/kd-table.css +0 -422
  162. package/dist/kd-table.css.map +0 -1
  163. package/dist/kd-table.js +0 -38578
  164. package/dist/kd-table.js.map +0 -1
  165. package/dist/kd-table.min.css +0 -9
  166. package/dist/kd-table.min.js +0 -208
  167. package/dist/kd-table.min.js.map +0 -1
  168. package/es/table/base/helpers/__test__/visible-part.test.d.ts +0 -1
  169. package/es/table/base/helpers/__test__/visible-part.test.js +0 -28
  170. package/es/table/base/helpers/visible-part.d.ts +0 -23
  171. package/es/table/base/helpers/visible-part.js +0 -58
  172. package/es/table/pipeline/features/__test__/multiSelect.test.d.ts +0 -1
  173. package/es/table/pipeline/features/__test__/multiSelect.test.js +0 -152
  174. package/es/table/pipeline/features/__test__/rowDetail.test.d.ts +0 -1
  175. package/es/table/pipeline/features/__test__/rowDetail.test.js +0 -223
  176. package/es/table/pipeline/features/__test__/rowGrouping.test.d.ts +0 -1
  177. package/es/table/pipeline/features/__test__/rowGrouping.test.js +0 -120
  178. package/es/table/pipeline/features/__test__/singleSelect.test.d.ts +0 -1
  179. package/es/table/pipeline/features/__test__/singleSelect.test.js +0 -191
  180. package/es/table/pipeline/features/__test__/sort.test.d.ts +0 -1
  181. package/es/table/pipeline/features/__test__/sort.test.js +0 -213
  182. package/es/table/pipeline/features/__test__/tips.test.d.ts +0 -1
  183. package/es/table/pipeline/features/__test__/tips.test.js +0 -123
  184. package/es/table/pipeline/features/__test__/treeMode.test.d.ts +0 -1
  185. package/es/table/pipeline/features/__test__/treeMode.test.js +0 -202
  186. package/es/table/pipeline/features/filter/__test__/Filter.test.d.ts +0 -1
  187. package/es/table/pipeline/features/filter/__test__/Filter.test.js +0 -29
  188. package/lib/table/base/helpers/__test__/visible-part.test.d.ts +0 -1
  189. package/lib/table/base/helpers/__test__/visible-part.test.js +0 -31
  190. package/lib/table/base/helpers/visible-part.d.ts +0 -23
  191. package/lib/table/base/helpers/visible-part.js +0 -72
  192. package/lib/table/pipeline/features/__test__/multiSelect.test.d.ts +0 -1
  193. package/lib/table/pipeline/features/__test__/multiSelect.test.js +0 -163
  194. package/lib/table/pipeline/features/__test__/rowDetail.test.d.ts +0 -1
  195. package/lib/table/pipeline/features/__test__/rowDetail.test.js +0 -230
  196. package/lib/table/pipeline/features/__test__/rowGrouping.test.d.ts +0 -1
  197. package/lib/table/pipeline/features/__test__/rowGrouping.test.js +0 -129
  198. package/lib/table/pipeline/features/__test__/singleSelect.test.d.ts +0 -1
  199. package/lib/table/pipeline/features/__test__/singleSelect.test.js +0 -201
  200. package/lib/table/pipeline/features/__test__/sort.test.d.ts +0 -1
  201. package/lib/table/pipeline/features/__test__/sort.test.js +0 -218
  202. package/lib/table/pipeline/features/__test__/tips.test.d.ts +0 -1
  203. package/lib/table/pipeline/features/__test__/tips.test.js +0 -133
  204. package/lib/table/pipeline/features/__test__/treeMode.test.d.ts +0 -1
  205. package/lib/table/pipeline/features/__test__/treeMode.test.js +0 -206
  206. package/lib/table/pipeline/features/filter/__test__/Filter.test.d.ts +0 -1
  207. package/lib/table/pipeline/features/filter/__test__/Filter.test.js +0 -36
@@ -3,16 +3,16 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "Table", {
6
+ Object.defineProperty(exports, "Classes", {
7
7
  enumerable: true,
8
8
  get: function get() {
9
- return _table.BaseTable;
9
+ return _styles.Classes;
10
10
  }
11
11
  });
12
- Object.defineProperty(exports, "Classes", {
12
+ Object.defineProperty(exports, "Table", {
13
13
  enumerable: true,
14
14
  get: function get() {
15
- return _styles.Classes;
15
+ return _table.BaseTable;
16
16
  }
17
17
  });
18
18
 
@@ -16,6 +16,7 @@ export declare type VisibleColumnDescriptor = {
16
16
  type: 'blank';
17
17
  blankSide: 'left' | 'right';
18
18
  width: number;
19
+ isPlacehoder?: boolean;
19
20
  } | {
20
21
  type: 'normal';
21
22
  colIndex: number;
@@ -0,0 +1 @@
1
+ export default function getTableHeaderRenderTemplate(type: string): any;
@@ -0,0 +1,370 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+
5
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
6
+
7
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
8
+
9
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
10
+
11
+ Object.defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ exports.default = getTableHeaderRenderTemplate;
15
+
16
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
17
+
18
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/map"));
19
+
20
+ var _flat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/flat"));
21
+
22
+ var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
23
+
24
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
25
+
26
+ var _react = _interopRequireWildcard(require("react"));
27
+
28
+ var _reactDom = _interopRequireDefault(require("react-dom"));
29
+
30
+ var _classnames = _interopRequireDefault(require("classnames"));
31
+
32
+ var _htmlTable = require("./html-table");
33
+
34
+ var _styles = require("./styles");
35
+
36
+ var _utils = require("./utils");
37
+
38
+ var _utils2 = require("../utils");
39
+
40
+ var _header = _interopRequireDefault(require("./header"));
41
+
42
+ 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); }
43
+
44
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
45
+
46
+ /*
47
+ * @Author: wqhui
48
+ * @Date: 2022-03-14 11:21:12
49
+ * @Description: 不同情况的渲染模板,比如IE下的
50
+ */
51
+ var TEMPLATES = new _map.default();
52
+
53
+ function renderTableHeaderInIE(info, props) {
54
+ var stickyTop = props.stickyTop,
55
+ hasHeader = props.hasHeader;
56
+ var flat = (0, _flat.default)(info),
57
+ nested = info.nested,
58
+ visible = info.visible,
59
+ hasLockColumn = info.hasLockColumn;
60
+ var left = flat.left,
61
+ right = flat.right;
62
+ var leftNested = nested.left,
63
+ rightNested = nested.right,
64
+ full = nested.full;
65
+ var rowCount = (0, _utils2.getTreeDepth)(full) + 1;
66
+ return /*#__PURE__*/_react.default.createElement("div", {
67
+ className: (0, _classnames.default)(_styles.Classes.tableHeader)
68
+ }, /*#__PURE__*/_react.default.createElement("div", {
69
+ className: (0, _classnames.default)(_styles.Classes.tableHeaderMain, 'no-scrollbar'),
70
+ style: {
71
+ top: stickyTop === 0 ? undefined : stickyTop,
72
+ display: hasHeader ? undefined : 'none'
73
+ }
74
+ }, /*#__PURE__*/_react.default.createElement(_header.default, {
75
+ info: info,
76
+ theaderPosition: hasLockColumn ? 'center' : undefined
77
+ })), left.length > 0 ? /*#__PURE__*/_react.default.createElement("div", {
78
+ className: _styles.Classes.fixedLeft
79
+ }, /*#__PURE__*/_react.default.createElement(_header.default, {
80
+ info: (0, _extends2.default)((0, _extends2.default)({}, info), {
81
+ flat: {
82
+ center: left,
83
+ full: left,
84
+ left: [],
85
+ right: []
86
+ },
87
+ nested: {
88
+ center: leftNested,
89
+ full: leftNested,
90
+ left: [],
91
+ right: []
92
+ },
93
+ visible: (0, _slice.default)(visible).call(visible, 0, left.length),
94
+ horizontalRenderRange: {
95
+ leftIndex: 0,
96
+ leftBlank: 0,
97
+ rightIndex: left.length,
98
+ rightBlank: 0
99
+ }
100
+ }),
101
+ theaderPosition: "left",
102
+ rowCount: rowCount
103
+ })) : null, right.length > 0 ? /*#__PURE__*/_react.default.createElement("div", {
104
+ className: _styles.Classes.fixedRight
105
+ }, /*#__PURE__*/_react.default.createElement(_header.default, {
106
+ info: (0, _extends2.default)((0, _extends2.default)({}, info), {
107
+ flat: {
108
+ center: right,
109
+ full: right,
110
+ left: [],
111
+ right: []
112
+ },
113
+ nested: {
114
+ center: rightNested,
115
+ full: rightNested,
116
+ left: [],
117
+ right: []
118
+ },
119
+ visible: (0, _slice.default)(visible).call(visible, visible.length - right.length),
120
+ horizontalRenderRange: {
121
+ leftIndex: 0,
122
+ leftBlank: 0,
123
+ rightIndex: right.length,
124
+ rightBlank: 0
125
+ }
126
+ }),
127
+ theaderPosition: 'right',
128
+ rowCount: rowCount
129
+ })) : null);
130
+ }
131
+
132
+ function renderTableBodyInIE(info, props, extra) {
133
+ var dataSource = props.dataSource,
134
+ getRowProps = props.getRowProps,
135
+ primaryKey = props.primaryKey;
136
+ var _info$verticalRenderR = info.verticalRenderRange,
137
+ topIndex = _info$verticalRenderR.topIndex,
138
+ bottomBlank = _info$verticalRenderR.bottomBlank,
139
+ topBlank = _info$verticalRenderR.topBlank,
140
+ bottomIndex = _info$verticalRenderR.bottomIndex;
141
+ var flat = (0, _flat.default)(info),
142
+ visible = info.visible,
143
+ hasLockColumn = info.hasLockColumn;
144
+ var left = flat.left,
145
+ right = flat.right;
146
+ var verticalRenderInfo = {
147
+ first: 0,
148
+ offset: topIndex,
149
+ limit: bottomIndex,
150
+ last: dataSource.length - 1
151
+ };
152
+ var commonProps = {
153
+ getRowProps: (0, _utils.composeRowPropsGetter)(getRowProps, extra.rowProps),
154
+ primaryKey: primaryKey,
155
+ data: (0, _slice.default)(dataSource).call(dataSource, topIndex, bottomIndex)
156
+ };
157
+ var scrollbarWidth = extra.hasScrollY ? (0, _utils.getScrollbarSize)().width : 0;
158
+ var fixedRightTableStyle = {
159
+ right: -scrollbarWidth
160
+ };
161
+ return /*#__PURE__*/_react.default.createElement("div", {
162
+ className: (0, _classnames.default)(_styles.Classes.tableBody, _styles.Classes.horizontalScrollContainer)
163
+ }, /*#__PURE__*/_react.default.createElement("div", {
164
+ className: _styles.Classes.virtual
165
+ }, topBlank > 0 && /*#__PURE__*/_react.default.createElement("div", {
166
+ key: "top-blank",
167
+ className: (0, _classnames.default)(_styles.Classes.virtualBlank, 'top'),
168
+ style: {
169
+ height: topBlank
170
+ }
171
+ }), /*#__PURE__*/_react.default.createElement(_htmlTable.HtmlTable, (0, _extends2.default)({
172
+ tbodyHtmlTag: "tbody"
173
+ }, commonProps, {
174
+ tbodyPosition: hasLockColumn ? 'center' : undefined,
175
+ horizontalRenderInfo: info,
176
+ verticalRenderInfo: verticalRenderInfo
177
+ })), bottomBlank > 0 && /*#__PURE__*/_react.default.createElement("div", {
178
+ key: "bottom-blank",
179
+ className: (0, _classnames.default)(_styles.Classes.virtualBlank, 'bottom'),
180
+ style: {
181
+ height: bottomBlank
182
+ }
183
+ })), left.length > 0 ? /*#__PURE__*/_react.default.createElement("div", {
184
+ className: _styles.Classes.fixedLeft
185
+ }, topBlank > 0 && /*#__PURE__*/_react.default.createElement("div", {
186
+ key: "top-blank",
187
+ className: (0, _classnames.default)(_styles.Classes.virtualBlank, 'top'),
188
+ style: {
189
+ height: topBlank
190
+ }
191
+ }), /*#__PURE__*/_react.default.createElement(_htmlTable.HtmlTable, (0, _extends2.default)({
192
+ tbodyHtmlTag: "tbody"
193
+ }, commonProps, {
194
+ tbodyPosition: "left",
195
+ horizontalRenderInfo: (0, _extends2.default)((0, _extends2.default)({}, info), {
196
+ flat: {
197
+ center: left,
198
+ full: left,
199
+ left: [],
200
+ right: []
201
+ },
202
+ visible: (0, _slice.default)(visible).call(visible, 0, left.length)
203
+ }),
204
+ verticalRenderInfo: verticalRenderInfo
205
+ })), bottomBlank > 0 && /*#__PURE__*/_react.default.createElement("div", {
206
+ key: "bottom-blank",
207
+ className: (0, _classnames.default)(_styles.Classes.virtualBlank, 'bottom'),
208
+ style: {
209
+ height: bottomBlank
210
+ }
211
+ })) : null, right.length > 0 ? /*#__PURE__*/_react.default.createElement("div", {
212
+ className: _styles.Classes.fixedRight,
213
+ style: fixedRightTableStyle
214
+ }, topBlank > 0 && /*#__PURE__*/_react.default.createElement("div", {
215
+ key: "top-blank",
216
+ className: (0, _classnames.default)(_styles.Classes.virtualBlank, 'top'),
217
+ style: {
218
+ height: topBlank
219
+ }
220
+ }), /*#__PURE__*/_react.default.createElement(_htmlTable.HtmlTable, (0, _extends2.default)({
221
+ tbodyHtmlTag: "tbody"
222
+ }, commonProps, {
223
+ tbodyPosition: "right",
224
+ hasScrollY: extra.hasScrollY,
225
+ horizontalRenderInfo: (0, _extends2.default)((0, _extends2.default)({}, info), {
226
+ flat: {
227
+ center: right,
228
+ full: right,
229
+ left: [],
230
+ right: []
231
+ },
232
+ visible: (0, _slice.default)(visible).call(visible, visible.length - right.length)
233
+ }),
234
+ verticalRenderInfo: verticalRenderInfo
235
+ })), bottomBlank > 0 && /*#__PURE__*/_react.default.createElement("div", {
236
+ key: "bottom-blank",
237
+ className: (0, _classnames.default)(_styles.Classes.virtualBlank, 'bottom'),
238
+ style: {
239
+ height: bottomBlank
240
+ }
241
+ })) : null, /*#__PURE__*/_react.default.createElement("div", {
242
+ className: _styles.Classes.rowDetailContainer
243
+ }));
244
+ }
245
+
246
+ function renderTableFooterInIE(info, props, extra) {
247
+ var _props$footerDataSour = props.footerDataSource,
248
+ footerDataSource = _props$footerDataSour === void 0 ? [] : _props$footerDataSour,
249
+ getRowProps = props.getRowProps,
250
+ primaryKey = props.primaryKey,
251
+ stickyBottom = props.stickyBottom;
252
+
253
+ var _getRowProps = (0, _utils.composeRowPropsGetter)(getRowProps, extra.rowProps);
254
+
255
+ var flat = (0, _flat.default)(info),
256
+ visible = info.visible,
257
+ hasLockColumn = info.hasLockColumn;
258
+ var left = flat.left,
259
+ right = flat.right;
260
+ var verticalRenderInfo = {
261
+ offset: 0,
262
+ first: 0,
263
+ last: footerDataSource.length - 1,
264
+ limit: Infinity
265
+ };
266
+ var commonProps = {
267
+ data: footerDataSource,
268
+ getRowProps: _getRowProps,
269
+ primaryKey: primaryKey,
270
+ verticalRenderInfo: verticalRenderInfo
271
+ };
272
+ return /*#__PURE__*/_react.default.createElement("div", {
273
+ className: (0, _classnames.default)(_styles.Classes.tableFooter),
274
+ style: {
275
+ bottom: stickyBottom === 0 ? undefined : stickyBottom
276
+ }
277
+ }, /*#__PURE__*/_react.default.createElement("div", {
278
+ className: (0, _classnames.default)(_styles.Classes.tableFooterMain, _styles.Classes.horizontalScrollContainer)
279
+ }, /*#__PURE__*/_react.default.createElement(_htmlTable.HtmlTable, (0, _extends2.default)({
280
+ tbodyHtmlTag: "tfoot"
281
+ }, commonProps, {
282
+ tbodyPosition: hasLockColumn ? 'center' : undefined,
283
+ horizontalRenderInfo: info
284
+ }))), left.length > 0 ? /*#__PURE__*/_react.default.createElement("div", {
285
+ className: _styles.Classes.fixedLeft
286
+ }, /*#__PURE__*/_react.default.createElement(_htmlTable.HtmlTable, (0, _extends2.default)({
287
+ tbodyHtmlTag: "tfoot"
288
+ }, commonProps, {
289
+ tbodyPosition: "left",
290
+ horizontalRenderInfo: (0, _extends2.default)((0, _extends2.default)({}, info), {
291
+ flat: {
292
+ center: left,
293
+ full: left,
294
+ left: [],
295
+ right: []
296
+ },
297
+ visible: (0, _slice.default)(visible).call(visible, 0, left.length)
298
+ })
299
+ }))) : null, right.length > 0 ? /*#__PURE__*/_react.default.createElement("div", {
300
+ className: _styles.Classes.fixedRight
301
+ }, /*#__PURE__*/_react.default.createElement(_htmlTable.HtmlTable, (0, _extends2.default)({
302
+ tbodyHtmlTag: "tfoot"
303
+ }, commonProps, {
304
+ tbodyPosition: "right",
305
+ horizontalRenderInfo: (0, _extends2.default)((0, _extends2.default)({}, info), {
306
+ flat: {
307
+ center: right,
308
+ full: right,
309
+ left: [],
310
+ right: []
311
+ },
312
+ visible: (0, _slice.default)(visible).call(visible, visible.length - right.length)
313
+ })
314
+ }))) : null);
315
+ }
316
+
317
+ function renderRowDetailInIE(params) {
318
+ var domHelper = params.domHelper;
319
+ if (!domHelper) return;
320
+ var artTable = domHelper.artTable;
321
+ var rowDetailContainer = artTable && artTable.querySelector(".".concat(_styles.Classes.rowDetailContainer));
322
+ return /*#__PURE__*/_reactDom.default.createPortal( /*#__PURE__*/_react.default.createElement(RowDetail, (0, _extends2.default)({}, params)), rowDetailContainer);
323
+ }
324
+
325
+ function RowDetail(props) {
326
+ var detailRef = (0, _react.useRef)(null);
327
+ var row = props.row,
328
+ rowIndex = props.rowIndex,
329
+ domHelper = props.domHelper,
330
+ renderDetail = props.renderDetail;
331
+ var artTable = domHelper.artTable;
332
+ (0, _react.useEffect)(function () {
333
+ var selector = function selector(position) {
334
+ var _context, _context2;
335
+
336
+ return (0, _concat.default)(_context = (0, _concat.default)(_context2 = ".".concat(position, " .")).call(_context2, _styles.Classes.tableRow, "[data-rowindex=\"")).call(_context, rowIndex, "\"]");
337
+ };
338
+
339
+ var itemRect = detailRef.current && detailRef.current.getBoundingClientRect();
340
+ var targetRow = artTable.querySelector(selector(_styles.Classes.tableBody));
341
+ var targetRowLeft = artTable.querySelector(selector(_styles.Classes.fixedLeft));
342
+ var targetRowRight = artTable.querySelector(selector(_styles.Classes.fixedRight));
343
+
344
+ if (itemRect.height) {
345
+ targetRow && (targetRow.style.height = itemRect.height + 'px');
346
+ targetRowLeft && (targetRowLeft.style.height = itemRect.height + 'px');
347
+ targetRowRight && (targetRowRight.style.height = itemRect.height + 'px');
348
+ }
349
+ }, []);
350
+ (0, _react.useEffect)(function () {
351
+ // 这时候行才渲染完,只能在这里设置偏移量
352
+ var offsetTop = domHelper.getRowTop(rowIndex) || 0;
353
+ detailRef.current.style.transform = "translateY(".concat(offsetTop + 'px', ")");
354
+ });
355
+ return /*#__PURE__*/_react.default.createElement("div", {
356
+ ref: detailRef,
357
+ className: _styles.Classes.rowDetailItem
358
+ }, renderDetail(row, rowIndex));
359
+ }
360
+
361
+ if (_utils2.browserType.isIE) {
362
+ TEMPLATES.set('header', renderTableHeaderInIE);
363
+ TEMPLATES.set('body', renderTableBodyInIE);
364
+ TEMPLATES.set('footer', renderTableFooterInIE);
365
+ TEMPLATES.set('rowDetail', renderRowDetailInIE);
366
+ }
367
+
368
+ function getTableHeaderRenderTemplate(type) {
369
+ return TEMPLATES.get(type);
370
+ }
@@ -3,10 +3,12 @@ export declare const Classes: {
3
3
  /** BaseTable 表格组件的外层包裹 div */
4
4
  readonly artTableWrapper: string;
5
5
  readonly artTable: string;
6
+ readonly tableHeaderMain: string;
6
7
  readonly tableHeader: string;
7
8
  readonly tableBody: string;
8
9
  readonly virtual: string;
9
10
  readonly tableFooter: string;
11
+ readonly tableFooterMain: string;
10
12
  /** 表格行 */
11
13
  readonly tableRow: string;
12
14
  /** 表头行 */
@@ -21,6 +23,7 @@ export declare const Classes: {
21
23
  readonly stickyScroll: string;
22
24
  readonly stickyScrollItem: string;
23
25
  readonly horizontalScrollContainer: string;
26
+ readonly verticalScrollPlaceholder: string;
24
27
  readonly lockShadowMask: string;
25
28
  readonly lockShadow: string;
26
29
  readonly leftLockShadow: string;
@@ -37,12 +40,33 @@ export declare const Classes: {
37
40
  readonly button: string;
38
41
  readonly buttonPrimary: string;
39
42
  readonly filterIcon: string;
43
+ readonly tableCellRangeSelected: string;
44
+ readonly tableCellRangeTop: string;
45
+ readonly tableCellRangeLeft: string;
46
+ readonly tableCellRangeBottom: string;
47
+ readonly tableCellRangeRight: string;
48
+ readonly fixedLeft: string;
49
+ readonly fixedRight: string;
50
+ readonly rowDetailContainer: string;
51
+ readonly rowDetailItem: string;
52
+ readonly emptyColCell: string;
53
+ readonly first: string;
54
+ readonly last: string;
55
+ readonly even: string;
56
+ readonly odd: string;
57
+ readonly lockLeft: string;
58
+ readonly lockRight: string;
59
+ readonly rowSpan: string;
60
+ readonly leaf: string;
61
+ readonly expanded: string;
62
+ readonly collapsed: string;
40
63
  };
41
64
  export declare const MenuClasses: {
42
65
  menu: string;
43
66
  menuList: string;
44
67
  menuOption: string;
45
68
  menuOptionActive: string;
69
+ menuOptionDisable: string;
46
70
  menuOptionText: string;
47
71
  };
48
72
  export declare type BaseTableCSSVariables = Partial<{
@@ -1,15 +1,17 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+
5
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
4
6
 
5
- var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard");
7
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
8
+
9
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
6
10
 
7
11
  Object.defineProperty(exports, "__esModule", {
8
12
  value: true
9
13
  });
10
- exports.ButtonCSS = exports.StyledArtTableWrapper = exports.variableConst = exports.defaultCSSVariables = exports.MenuClasses = exports.Classes = exports.LOCK_SHADOW_PADDING = void 0;
11
-
12
- var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
14
+ exports.variableConst = exports.defaultCSSVariables = exports.StyledArtTableWrapper = exports.MenuClasses = exports.LOCK_SHADOW_PADDING = exports.Classes = exports.ButtonCSS = void 0;
13
15
 
14
16
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
15
17
 
@@ -21,6 +23,10 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
23
 
22
24
  var _templateObject, _templateObject2, _templateObject3;
23
25
 
26
+ 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); }
27
+
28
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+
24
30
  var LOCK_SHADOW_PADDING = 20;
25
31
  exports.LOCK_SHADOW_PADDING = LOCK_SHADOW_PADDING;
26
32
  var prefix = 'kd-';
@@ -28,10 +34,12 @@ var Classes = {
28
34
  /** BaseTable 表格组件的外层包裹 div */
29
35
  artTableWrapper: "".concat(prefix, "table-wrapper"),
30
36
  artTable: "".concat(prefix, "table"),
37
+ tableHeaderMain: "".concat(prefix, "table-header-main"),
31
38
  tableHeader: "".concat(prefix, "table-header"),
32
39
  tableBody: "".concat(prefix, "table-body"),
33
40
  virtual: "".concat(prefix, "virtual"),
34
41
  tableFooter: "".concat(prefix, "table-footer"),
42
+ tableFooterMain: "".concat(prefix, "table-footer-main"),
35
43
 
36
44
  /** 表格行 */
37
45
  tableRow: "".concat(prefix, "table-row"),
@@ -50,6 +58,7 @@ var Classes = {
50
58
  stickyScroll: "".concat(prefix, "sticky-scroll"),
51
59
  stickyScrollItem: "".concat(prefix, "sticky-scroll-item"),
52
60
  horizontalScrollContainer: "".concat(prefix, "horizontal-scroll-container"),
61
+ verticalScrollPlaceholder: "".concat(prefix, "vertical-scroll-placeholder"),
53
62
  lockShadowMask: "".concat(prefix, "lock-shadow-mask"),
54
63
  lockShadow: "".concat(prefix, "lock-shadow"),
55
64
  leftLockShadow: "".concat(prefix, "left-lock-shadow"),
@@ -66,7 +75,27 @@ var Classes = {
66
75
  tableSortIcon: "".concat(prefix, "sort-icon"),
67
76
  button: "".concat(prefix, "btn"),
68
77
  buttonPrimary: "".concat(prefix, "btn-primary"),
69
- filterIcon: "".concat(prefix, "filter-icon")
78
+ filterIcon: "".concat(prefix, "filter-icon"),
79
+ tableCellRangeSelected: "".concat(prefix, "table-cell-range-selected"),
80
+ tableCellRangeTop: "".concat(prefix, "table-cell-range-top"),
81
+ tableCellRangeLeft: "".concat(prefix, "table-cell-range-left"),
82
+ tableCellRangeBottom: "".concat(prefix, "table-cell-range-bottom"),
83
+ tableCellRangeRight: "".concat(prefix, "table-cell-range-right"),
84
+ fixedLeft: "".concat(prefix, "fixed-left"),
85
+ fixedRight: "".concat(prefix, "fixed-right"),
86
+ rowDetailContainer: "".concat(prefix, "row-detail-container"),
87
+ rowDetailItem: "".concat(prefix, "row-detail-item"),
88
+ emptyColCell: "".concat(prefix, "empty-col-cell"),
89
+ first: "".concat(prefix, "first"),
90
+ last: "".concat(prefix, "last"),
91
+ even: "".concat(prefix, "even"),
92
+ odd: "".concat(prefix, "odd"),
93
+ lockLeft: "".concat(prefix, "lock-left"),
94
+ lockRight: "".concat(prefix, "lock-right"),
95
+ rowSpan: "".concat(prefix, "row-span"),
96
+ leaf: "".concat(prefix, "leaf"),
97
+ expanded: "".concat(prefix, "expanded"),
98
+ collapsed: "".concat(prefix, "collapsed")
70
99
  };
71
100
  exports.Classes = Classes;
72
101
  var MenuClasses = {
@@ -74,6 +103,7 @@ var MenuClasses = {
74
103
  menuList: "".concat(prefix, "table-menu-list"),
75
104
  menuOption: "".concat(prefix, "table-menu-option"),
76
105
  menuOptionActive: "".concat(prefix, "table-menu-option-active"),
106
+ menuOptionDisable: "".concat(prefix, "table-menu-option-disable"),
77
107
  menuOptionText: "".concat(prefix, "table-menu-option-text")
78
108
  };
79
109
  exports.MenuClasses = MenuClasses;
@@ -82,10 +112,11 @@ var Z = {
82
112
  header: 15,
83
113
  footer: 10,
84
114
  lockShadow: 20,
115
+ rowDetail: 25,
85
116
  scrollItem: 30,
86
117
  loadingIndicator: 40
87
118
  };
88
- var outerBorderStyleMixin = (0, _styledComponents.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n border-top: 1px solid #cccccc;\n border-right: 1px solid #cccccc;\n border-bottom: 1px solid #cccccc;\n border-left: 1px solid #cccccc;\n\n td.first,\n th.first {\n border-left: none;\n }\n td.last,\n th.last {\n --border-right: none;\n }\n\n thead tr.first th,\n tbody tr.first td {\n border-top: none;\n }\n &.has-footer tfoot tr.last td {\n border-bottom: none;\n }\n &:not(.has-footer) tbody tr.last td {\n border-bottom: none;\n }\n td.row-span:not(.first){\n border-left: var(---cell-border-vertical);\n }\n td.row-span:not(.last){\n border-right: var(---cell-border-vertical);\n }\n"])));
119
+ var outerBorderStyleMixin = (0, _styledComponents.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n border-top: 1px solid #cccccc;\n border-right: 1px solid #cccccc;\n border-bottom: 1px solid #cccccc;\n border-left: 1px solid #cccccc;\n\n td.", ",\n th.", " {\n border-left: none;\n }\n td.", ",\n th.", " {\n --border-right: none;\n }\n\n thead tr.", " th,\n tbody tr.", " td {\n border-top: none;\n }\n &.has-footer tfoot tr.", " td {\n border-bottom: none;\n }\n &:not(.has-footer) tbody tr.", " td {\n border-bottom: none;\n }\n td.", ":not(.", "){\n border-left: var(---cell-border-vertical);\n }\n td.", ":not(.", "){\n border-right: var(---cell-border-vertical);\n }\n"])), Classes.first, Classes.first, Classes.last, Classes.last, Classes.first, Classes.first, Classes.last, Classes.last, Classes.rowSpan, Classes.first, Classes.rowSpan, Classes.last);
89
120
  var defaultCSSVariables = {
90
121
  '--row-height': '48px',
91
122
  '--color': '#333',
@@ -118,19 +149,17 @@ exports.defaultCSSVariables = defaultCSSVariables;
118
149
  var variableConst = getCssVariableText(defaultCSSVariables);
119
150
  exports.variableConst = variableConst;
120
151
 
121
- var StyledArtTableWrapper = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n :root {\n ", "\n }\n ", "\n\n box-sizing: border-box;\n * {\n box-sizing: border-box;\n }\n cursor: default;\n color: var(--color);\n font-size: var(--font-size);\n line-height: var(--line-height);\n position: relative;\n\n // \u8868\u683C\u5916\u8FB9\u6846\u7531 art-table-wrapper \u63D0\u4F9B\uFF0C\u800C\u4E0D\u662F\u7531\u5355\u5143\u683C\u63D0\u4F9B\n &.use-outer-border {\n ", ";\n }\n\n .no-scrollbar {\n ::-webkit-scrollbar {\n display: none;\n }\n }\n\n .", " {\n overflow: auto;\n flex-shrink: 1;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n }\n\n .", " {\n overflow: hidden;\n background: var(--header-bgcolor);\n display: flex;\n flex-shrink: 0;\n border-bottom: var(--header-cell-border-horizontal);\n }\n\n .", " {\n display: flex;\n justify-content: center;\n align-items: center;\n height: inherit;\n }\n\n .", " {\n overflow: hidden;\n flex-shrink: 0;\n flex-grow: 0;\n }\n\n .", " {\n flex: none;\n }\n .", ", .", " {\n background: var(--bgcolor);\n overflow: auto;\n overflow-x: hidden;\n overflow-anchor: none;\n &.empty {\n position: relative;\n }\n }\n\n .", " {\n position: relative;\n transform: translate(0px);\n }\n\n &.sticky-header .", " {\n position: sticky;\n top: 0;\n z-index: ", ";\n }\n\n &.sticky-footer .", " {\n position: sticky;\n bottom: 0;\n z-index: ", ";\n }\n\n table {\n width: 0;\n table-layout: fixed;\n border-collapse: separate;\n border-spacing: 0;\n display: table;\n margin: 0;\n padding: 0;\n flex-shrink: 0;\n flex-grow: 0;\n }\n\n // \u5728 tr \u4E0A\u8BBE\u7F6E .no-hover \u53EF\u4EE5\u7981\u7528\u9F20\u6807\u60AC\u505C\u6548\u679C\n tr:not(.no-hover):hover > td {\n background: var(--hover-bgcolor);\n }\n // \u5728 tr \u8BBE\u7F6E highlight \u53EF\u4EE5\u4E3A\u5E95\u4E0B\u7684 td \u8BBE\u7F6E\u4E3A\u9AD8\u4EAE\u8272\n // \u800C\u8BBE\u7F6E .no-highlight \u7684\u8BDD\u5219\u53EF\u4EE5\u7981\u7528\u9AD8\u4EAE\u6548\u679C\uFF1B\n tr:not(.no-highlight).highlight > td {\n background: var(--highlight-bgcolor);\n }\n\n th {\n font-weight: normal;\n text-align: left;\n padding: var(--cell-padding);\n height: var(--header-row-height);\n color: var(--header-color);\n background: var(--header-bgcolor);\n border: none;\n border-right: var(--header-cell-border-vertical);\n border-bottom: var(--header-cell-border-horizontal);\n position: relative;\n }\n\n th.resizeable{\n border-right:none\n }\n\n th.leaf {\n border-right: none;\n border-bottom: none;\n }\n\n tr.first th {\n border-top: var(--header-cell-border-horizontal);\n }\n th.first {\n border-left: var(--header-cell-border-vertical);\n }\n\n td {\n padding: var(--cell-padding);\n background: var(--bgcolor);\n height: var(--row-height);\n border: none;\n border-right: var(--cell-border-vertical);\n border-bottom: var(--cell-border-horizontal);\n word-break: break-all;\n }\n td.first {\n border-left: var(--cell-border-vertical);\n }\n tr.first td {\n border-top: var(--cell-border-horizontal);\n }\n &.has-header tbody tr.first td {\n border-top: none;\n }\n &.has-footer tbody tr.last td {\n border-bottom: none;\n }\n\n .lock-left,\n .lock-right {\n z-index: ", ";\n }\n\n //#region \u9501\u5217\u9634\u5F71\n .", " {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: ", ";\n pointer-events: none;\n overflow: hidden;\n\n .", " {\n height: 100%;\n }\n\n .", " {\n margin-right: ", "px;\n box-shadow: none;\n\n &.show-shadow {\n box-shadow: var(--lock-shadow);\n border-right: var(--cell-border-vertical);\n }\n }\n\n .", " {\n margin-left: ", "px;\n box-shadow: none;\n\n &.show-shadow {\n box-shadow: var(--lock-shadow);\n border-left: var(--cell-border-vertical);\n }\n }\n }\n //#endregion\n\n //#region \u7A7A\u8868\u683C\u5C55\u73B0\n .", " {\n pointer-events: none;\n color: #99a3b3;\n font-size: 12px;\n text-align: center;\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n\n .empty-image {\n width: 50px;\n height: 50px;\n }\n\n .empty-tips {\n margin-top: 16px;\n line-height: 1.5;\n }\n }\n //#endregion\n\n //#region \u7C98\u6027\u6EDA\u52A8\u6761\n .", " {\n overflow-y: hidden;\n overflow-x: auto;\n z-index: ", ";\n flex-shrink: 0;\n flex-grow: 0;\n }\n\n .", " {\n // \u5FC5\u987B\u6709\u9AD8\u5EA6\u624D\u80FD\u51FA\u73B0\u6EDA\u52A8\u6761\n height: 1px;\n visibility: hidden;\n }\n //#endregion\n\n //#region \u52A0\u8F7D\u6837\u5F0F\n .", " {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: auto;\n\n .", " {\n filter: none;\n width: 100%;\n height: 100%;\n overflow: auto;\n display: flex;\n position: relative;\n flex-direction: column;\n }\n\n .", " {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n pointer-events: none;\n }\n\n .", " {\n position: sticky;\n z-index: ", ";\n transform: translateY(-50%);\n }\n }\n //#endregion\n \n //#region \u8868\u683C\u8FC7\u6EE4\n .", " {\n color:var(--icon-color);\n &.active{\n color:var(--primary-color);\n }\n }\n //#endregion\n\n //#region \u8868\u683C\u6392\u5E8F\n .", " {\n color:var(--icon-color);\n &.active{\n color:var(--primary-color);\n }\n }\n //#endregion\n "])), variableConst, variableConst, outerBorderStyleMixin, Classes.artTable, Classes.tableHeader, Classes.tableHeaderCellContent, Classes.virtual, Classes.tableFooter, Classes.tableBody, Classes.tableFooter, Classes.tableRow, Classes.tableHeader, Z.header, Classes.tableFooter, Z.footer, Z.lock, Classes.lockShadowMask, Z.lockShadow, Classes.lockShadow, Classes.leftLockShadow, LOCK_SHADOW_PADDING, Classes.rightLockShadow, LOCK_SHADOW_PADDING, Classes.emptyWrapper, Classes.stickyScroll, Z.scrollItem, Classes.stickyScrollItem, Classes.loadingWrapper, Classes.loadingContentWrapper, Classes.loadingIndicatorWrapper, Classes.loadingIndicator, Z.loadingIndicator, Classes.tableFilterTrigger, Classes.tableSortIcon);
152
+ var StyledArtTableWrapper = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n :root {\n ", "\n }\n ", "\n\n box-sizing: border-box;\n * {\n box-sizing: border-box;\n }\n cursor: default;\n color: var(--color);\n font-size: var(--font-size);\n line-height: var(--line-height);\n position: relative;\n\n // \u8868\u683C\u5916\u8FB9\u6846\u7531 art-table-wrapper \u63D0\u4F9B\uFF0C\u800C\u4E0D\u662F\u7531\u5355\u5143\u683C\u63D0\u4F9B\n &.use-outer-border {\n ", ";\n }\n\n .no-scrollbar {\n ::-webkit-scrollbar {\n display: none;\n }\n }\n\n .", " {\n overflow: auto;\n flex-shrink: 1;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n user-select:none;\n }\n\n .", " {\n overflow: hidden;\n background: var(--header-bgcolor);\n display: flex;\n flex-shrink: 0;\n border-bottom: var(--header-cell-border-horizontal);\n }\n\n .", " {\n display: flex;\n // justify-content: flex-start;\n align-items: center;\n height: inherit;\n }\n\n .", " {\n overflow-x:auto;\n flex-shrink: 0;\n flex-grow: 0;\n scrollbar-width: none; // \u517C\u5BB9\u706B\u72D0\n & {\n ::-webkit-scrollbar {\n display:none;\n }\n }\n }\n\n .", " {\n display: flex;\n flex: none;\n }\n .", ", .", " {\n background: var(--bgcolor);\n overflow: auto;\n overflow-x: hidden;\n overflow-anchor: none;\n position:relative;\n &.empty {\n position: relative;\n }\n }\n\n .", " {\n position: relative;\n }\n .", " {\n .", "{\n background-color: #e6effb !important;\n }\n .", "{\n border-top: 1px solid #0E5FD8 !important;\n }\n .", "{\n border-left: 1px solid #0E5FD8 !important;\n }\n .", "{\n border-bottom: 1px solid #0E5FD8 !important;\n }\n .", "{\n border-right: 1px solid #0E5FD8 !important;\n }\n }\n \n\n &.sticky-header .", " {\n position: sticky;\n top: 0;\n z-index: ", ";\n }\n\n &.sticky-footer .", " {\n position: sticky;\n bottom: 0;\n z-index: ", ";\n }\n\n table {\n width: 0;\n table-layout: fixed;\n border-collapse: separate;\n border-spacing: 0;\n display: table;\n margin: 0;\n padding: 0;\n flex-shrink: 0;\n flex-grow: 0;\n position:relative;\n }\n\n // \u5728 tr \u4E0A\u8BBE\u7F6E .no-hover \u53EF\u4EE5\u7981\u7528\u9F20\u6807\u60AC\u505C\u6548\u679C\n tr:not(.no-hover):hover > td {\n background: var(--hover-bgcolor);\n }\n // \u5728 tr \u8BBE\u7F6E highlight \u53EF\u4EE5\u4E3A\u5E95\u4E0B\u7684 td \u8BBE\u7F6E\u4E3A\u9AD8\u4EAE\u8272\n // \u800C\u8BBE\u7F6E .no-highlight \u7684\u8BDD\u5219\u53EF\u4EE5\u7981\u7528\u9AD8\u4EAE\u6548\u679C\uFF1B\n tr:not(.no-highlight).highlight > td {\n background: var(--highlight-bgcolor);\n }\n\n th {\n font-weight: normal;\n text-align: left;\n padding: var(--cell-padding);\n height: var(--header-row-height);\n color: var(--header-color);\n background: var(--header-bgcolor);\n border:1px solid transparent;\n border-right: var(--header-cell-border-vertical);\n border-bottom: var(--header-cell-border-horizontal);\n position: relative;\n }\n\n th.resizeable{\n border-right:none\n }\n\n th.", " {\n border-right: none;\n border-bottom: none;\n }\n\n tr.", " th {\n border-top: var(--header-cell-border-horizontal);\n }\n th.", " {\n border-left: var(--header-cell-border-vertical);\n }\n\n td {\n padding: var(--cell-padding);\n background: var(--bgcolor);\n height: var(--row-height);\n border:1px solid transparent;\n border-right: var(--cell-border-vertical);\n border-bottom: var(--cell-border-horizontal);\n word-break: break-all;\n }\n td.", " {\n border-left: var(--cell-border-vertical);\n }\n tr.", " td {\n border-top: var(--cell-border-horizontal);\n }\n &.has-header tbody tr.", " td {\n border-top: none;\n }\n &.has-footer tbody tr.", " td {\n border-bottom: none;\n }\n\n .", ",\n .", " {\n z-index: ", ";\n }\n\n //#region \u9501\u5217\u9634\u5F71\n .", " {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: ", ";\n pointer-events: none;\n overflow: hidden;\n\n .", " {\n height: 100%;\n }\n\n .", " {\n margin-right: ", "px;\n box-shadow: none;\n\n &.show-shadow {\n box-shadow: var(--lock-shadow);\n border-right: var(--cell-border-vertical);\n }\n }\n\n .", " {\n margin-left: ", "px;\n box-shadow: none;\n\n &.show-shadow {\n box-shadow: var(--lock-shadow);\n border-left: var(--cell-border-vertical);\n }\n }\n }\n //#endregion\n\n //#region \u7A7A\u8868\u683C\u5C55\u73B0\n .", " {\n pointer-events: none;\n color: #99a3b3;\n font-size: 12px;\n text-align: center;\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n\n .empty-image {\n width: 50px;\n height: 50px;\n }\n\n .empty-tips {\n margin-top: 16px;\n line-height: 1.5;\n }\n }\n //#endregion\n\n //#region IE\u517C\u5BB9\n &.ie-polyfill-wrapper {\n //\u9501\u5B9A\u5217\u517C\u5BB9 \u4EC5\u5728\u9501\u5B9A\u5217\u7684\u60C5\u51B5\u4E0B\u751F\u6548\n .", " {\n overflow-x: hidden;\n }\n .", ", .", " {\n position:relative;\n }\n .", " {\n overflow: hidden;\n }\n .", " {\n position: relative;\n }\n\n .", " {\n overflow: auto;\n overflow-x: hidden;\n overflow-anchor: none;\n }\n\n .", ", .", "{\n position: absolute;\n z-index: ", ";\n top: 0;\n }\n .", "{\n left:0;\n }\n .", "{\n right:0;\n }\n\n .", "{\n .", "{\n position: absolute;\n top: 0;\n width: 100%;\n z-index: ", ";\n }\n }\n\n tr:not(.no-hover).row-hover > td {\n background: var(--hover-bgcolor);\n }\n }\n //#endregion\n\n //#region \u7C98\u6027\u6EDA\u52A8\u6761\n .", " {\n overflow-y: hidden;\n overflow-x: auto;\n z-index: ", ";\n flex-shrink: 0;\n flex-grow: 0;\n border-top: 1px solid var(--border-color);\n background: var(--bgcolor);\n }\n\n .", " {\n // \u5FC5\u987B\u6709\u9AD8\u5EA6\u624D\u80FD\u51FA\u73B0\u6EDA\u52A8\u6761\n height: 1px;\n visibility: hidden;\n }\n //#endregion\n\n //#region \u52A0\u8F7D\u6837\u5F0F\n .", " {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: auto;\n\n .", " {\n filter: none;\n width: 100%;\n height: 100%;\n overflow: auto;\n display: flex;\n position: relative;\n flex-direction: column;\n }\n\n .", " {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n pointer-events: none;\n }\n\n .", " {\n position: sticky;\n z-index: ", ";\n transform: translateY(-50%);\n }\n }\n //#endregion\n \n //#region \u8868\u683C\u8FC7\u6EE4\n .", " {\n color:var(--icon-color);\n &.active{\n color:var(--primary-color);\n }\n }\n //#endregion\n\n //#region \u8868\u683C\u6392\u5E8F\n .", " {\n color:var(--icon-color);\n &.active{\n color:var(--primary-color);\n }\n }\n //#endregion\n\n //#region \u6EDA\u52A8\u6761\u5360\u4F4D\n .", " {\n visibility: hidden;\n flex-shrink: 0;\n }\n .", " .", " {\n border-top: var(--cell-border-horizontal);\n }\n //#endregion\n "])), variableConst, variableConst, outerBorderStyleMixin, Classes.artTable, Classes.tableHeader, Classes.tableHeaderCellContent, Classes.virtual, Classes.tableFooter, Classes.tableBody, Classes.tableFooter, Classes.tableRow, Classes.tableBody, Classes.tableCellRangeSelected, Classes.tableCellRangeTop, Classes.tableCellRangeLeft, Classes.tableCellRangeBottom, Classes.tableCellRangeRight, Classes.tableHeader, Z.header, Classes.tableFooter, Z.footer, Classes.leaf, Classes.first, Classes.first, Classes.first, Classes.first, Classes.first, Classes.last, Classes.lockLeft, Classes.lockRight, Z.lock, Classes.lockShadowMask, Z.lockShadow, Classes.lockShadow, Classes.leftLockShadow, LOCK_SHADOW_PADDING, Classes.rightLockShadow, LOCK_SHADOW_PADDING, Classes.emptyWrapper, Classes.virtual, Classes.tableBody, Classes.tableFooter, Classes.tableHeaderMain, Classes.tableHeader, Classes.tableFooterMain, Classes.fixedLeft, Classes.fixedRight, Z.lock, Classes.fixedLeft, Classes.fixedRight, Classes.rowDetailContainer, Classes.rowDetailItem, Z.rowDetail, Classes.stickyScroll, Z.scrollItem, Classes.stickyScrollItem, Classes.loadingWrapper, Classes.loadingContentWrapper, Classes.loadingIndicatorWrapper, Classes.loadingIndicator, Z.loadingIndicator, Classes.tableFilterTrigger, Classes.tableSortIcon, Classes.verticalScrollPlaceholder, Classes.tableFooter, Classes.verticalScrollPlaceholder);
122
153
 
123
154
  exports.StyledArtTableWrapper = StyledArtTableWrapper;
124
155
  var ButtonCSS = (0, _styledComponents.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n //#region \u6309\u94AE\n .", "{\n color: var(--color);\n background:#ffffff;\n border:1px solid var(--strong-border-color);\n border-radius: 2px;\n cursor: pointer;\n &:hover{\n color: var(--primary-color);\n border:1px solid var(--primary-color);\n }\n }\n .", " {\n color:#ffffff;\n background-color: var(--primary-color);\n border:none;\n &:hover{\n color:#ffffff;\n background-color: var(--primary-color-level2);\n border:none;\n }\n }\n//#endregion\n"])), variableConst, Classes.button, Classes.buttonPrimary);
125
156
  exports.ButtonCSS = ButtonCSS;
126
157
 
127
158
  function getCssVariableText(obj) {
128
- var _context;
129
-
130
- return (0, _reduce.default)(_context = (0, _keys.default)(obj)).call(_context, function (acc, key) {
131
- var _context2;
159
+ return (0, _keys.default)(obj).reduce(function (acc, key) {
160
+ var _context;
132
161
 
133
- acc += (0, _concat.default)(_context2 = "".concat(key, ":")).call(_context2, obj[key], ";");
162
+ acc += (0, _concat.default)(_context = "".concat(key, ":")).call(_context, obj[key], ";");
134
163
  return acc;
135
164
  }, '');
136
165
  }
@@ -62,12 +62,18 @@ export interface BaseTableProps {
62
62
  };
63
63
  /** 列的默认宽度 */
64
64
  defaultColumnWidth?: number;
65
- /** 表格所处于的块格式化上下文(BFC)
66
- * https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Block_formatting_context */
67
- flowRoot?: 'auto' | 'self' | (() => HTMLElement | typeof window) | HTMLElement | typeof window;
65
+ /**
66
+ * @deprecated
67
+ * flowRoot 在表格 v2.4 后不再需要提供,请移除该属性
68
+ * */
69
+ flowRoot?: never;
70
+ /** 虚拟滚动调试标签,用于表格内部调试使用 */
71
+ virtualDebugLabel?: string;
68
72
  getRowProps?(record: any, rowIndex: number): React.HTMLAttributes<HTMLTableRowElement>;
69
73
  getTableProps?(): React.HTMLAttributes<HTMLTableElement>;
70
74
  setTableWidth?(tableWidth: number): void;
75
+ setTableDomHelper?(domHelper: TableDOMHelper): void;
76
+ clearRangeSelectionStatus?(): void;
71
77
  cssVariables?: {
72
78
  [key: string]: any;
73
79
  };
@@ -107,7 +113,6 @@ export declare class BaseTable extends React.Component<BaseTableProps, BaseTable
107
113
  components: {};
108
114
  getTableProps: typeof noop;
109
115
  getRowProps: typeof noop;
110
- flowRoot: string;
111
116
  dataSource: any[];
112
117
  useOuterBorder: boolean;
113
118
  };
@@ -131,6 +136,9 @@ export declare class BaseTable extends React.Component<BaseTableProps, BaseTable
131
136
  /** 同步横向滚动偏移量 */
132
137
  private syncHorizontalScroll;
133
138
  getVerticalRenderRange(useVirtual: ResolvedUseVirtual): VerticalRenderRange;
139
+ private getRowNodeListByEvent;
140
+ private handleRowMouseEnter;
141
+ private handleRowMouseLeave;
134
142
  private renderTableBody;
135
143
  private renderTableFooter;
136
144
  private renderLockShadows;