@kdcloudjs/table 1.2.0-canary.6 → 1.2.0-canary.6-hotfix.2

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 (254) hide show
  1. package/LICENSE +568 -568
  2. package/README.md +111 -111
  3. package/dist/@kdcloudjs/table.css +1 -1
  4. package/dist/@kdcloudjs/table.js +1877 -3363
  5. package/dist/@kdcloudjs/table.js.map +1 -1
  6. package/dist/@kdcloudjs/table.min.css +1 -1
  7. package/dist/@kdcloudjs/table.min.js +16 -16
  8. package/dist/@kdcloudjs/table.min.js.map +1 -1
  9. package/dist/kd-ui-complete.less +777 -777
  10. package/es/_utils/arrayUtil.js +0 -3
  11. package/es/_utils/devwarning.js +0 -1
  12. package/es/_utils/formatUtil.js +35 -96
  13. package/es/_utils/hooks.js +18 -42
  14. package/es/_utils/index.js +0 -2
  15. package/es/_utils/numberUtil.js +32 -55
  16. package/es/_utils/omit.js +0 -2
  17. package/es/_utils/type.js +0 -2
  18. package/es/_utils/usePopper.js +74 -137
  19. package/es/config-provider/compDefaultProps.js +0 -1
  20. package/es/config-provider/configProvider.js +2 -7
  21. package/es/config-provider/defaultConfig.js +0 -1
  22. package/es/index.js +0 -2
  23. package/es/locale/locale.js +5 -43
  24. package/es/style/color/colors.less +1 -1
  25. package/es/style/core/index.less +1 -1
  26. package/es/style/core/motion/other.less +27 -27
  27. package/es/style/core/motion/slide.less +53 -53
  28. package/es/style/core/motion.less +1 -1
  29. package/es/style/core/reset.less +185 -185
  30. package/es/style/index.less +1 -1
  31. package/es/style/mixins/index.less +18 -18
  32. package/es/style/mixins/overlay.less +21 -21
  33. package/es/style/mixins/reset.less +12 -12
  34. package/es/style/themes/default.less +445 -445
  35. package/es/table/base/calculations.js +22 -72
  36. package/es/table/base/colgroup.js +0 -1
  37. package/es/table/base/empty.js +4 -4
  38. package/es/table/base/header.d.ts +2 -1
  39. package/es/table/base/header.js +17 -68
  40. package/es/table/base/helpers/SpanManager.js +3 -9
  41. package/es/table/base/helpers/TableDOMUtils.js +3 -26
  42. package/es/table/base/helpers/__test__/SpanManager.test.js +2 -2
  43. package/es/table/base/helpers/__test__/TableDOMUtils.test.js +0 -1
  44. package/es/table/base/helpers/getRichVisibleRectsStream.js +11 -44
  45. package/es/table/base/helpers/rowHeightManager.js +0 -28
  46. package/es/table/base/html-table.js +15 -36
  47. package/es/table/base/loading.js +6 -8
  48. package/es/table/base/renderTemplates.js +50 -54
  49. package/es/table/base/styles.js +1 -10
  50. package/es/table/base/table.js +116 -189
  51. package/es/table/base/utils.js +14 -54
  52. package/es/table/common-views.js +0 -7
  53. package/es/table/internals.js +0 -13
  54. package/es/table/pipeline/features/autoFill.js +11 -38
  55. package/es/table/pipeline/features/autoRowSpan.js +1 -14
  56. package/es/table/pipeline/features/colGroupExtendable.js +4 -19
  57. package/es/table/pipeline/features/columnDrag.js +41 -95
  58. package/es/table/pipeline/features/columnFilter.js +11 -44
  59. package/es/table/pipeline/features/columnHover.js +1 -7
  60. package/es/table/pipeline/features/columnRangeHover.js +1 -8
  61. package/es/table/pipeline/features/columnResizeWidth.js +11 -37
  62. package/es/table/pipeline/features/contextMenu.js +18 -89
  63. package/es/table/pipeline/features/filter/DefaultFilterContent.js +10 -25
  64. package/es/table/pipeline/features/filter/DefaultFilterIcon.js +1 -1
  65. package/es/table/pipeline/features/filter/Filter.js +25 -48
  66. package/es/table/pipeline/features/filter/FilterPanel.js +11 -25
  67. package/es/table/pipeline/features/filter/util.js +0 -4
  68. package/es/table/pipeline/features/footerDataSource.js +0 -3
  69. package/es/table/pipeline/features/mergeCellHover.js +0 -1
  70. package/es/table/pipeline/features/multiSelect.js +15 -57
  71. package/es/table/pipeline/features/rangeSelection.js +63 -142
  72. package/es/table/pipeline/features/rowDetail.js +2 -41
  73. package/es/table/pipeline/features/rowGrouping.js +2 -35
  74. package/es/table/pipeline/features/singleSelect.js +0 -24
  75. package/es/table/pipeline/features/sort.js +29 -79
  76. package/es/table/pipeline/features/tips.js +0 -6
  77. package/es/table/pipeline/features/treeMode.js +9 -43
  78. package/es/table/pipeline/features/treeSelect.js +0 -26
  79. package/es/table/pipeline/pipeline.js +9 -49
  80. package/es/table/pivot/cross-table/buildCrossTable.js +15 -64
  81. package/es/table/pivot/cross-table/cross-table.js +22 -28
  82. package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +14 -47
  83. package/es/table/pivot/cross-tree-table/cross-tree-table.js +28 -50
  84. package/es/table/pivot/pivot-utils/buildDrillTree.js +10 -23
  85. package/es/table/pivot/pivot-utils/builders.js +31 -71
  86. package/es/table/pivot/pivot-utils/convert-utils.js +13 -39
  87. package/es/table/pivot/pivot-utils/simpleEncode.js +0 -1
  88. package/es/table/style/index.less +1 -1
  89. package/es/table/transforms/autoRowSpan.js +1 -15
  90. package/es/table/transforms/autoWidth.js +10 -32
  91. package/es/table/transforms/buildTree.js +1 -2
  92. package/es/table/transforms/columnHover.js +9 -15
  93. package/es/table/transforms/columnRangeHover.js +12 -19
  94. package/es/table/transforms/columnResize.js +15 -37
  95. package/es/table/transforms/flatten.js +0 -3
  96. package/es/table/transforms/orderField.js +0 -3
  97. package/es/table/transforms/sort.js +36 -88
  98. package/es/table/transforms/tips.js +1 -6
  99. package/es/table/transforms/treeMode.js +30 -69
  100. package/es/table/transforms/visible.js +0 -2
  101. package/es/table/use/useResizeObserver.js +1 -4
  102. package/es/table/utils/applyTransforms.js +0 -1
  103. package/es/table/utils/buildTree.js +4 -19
  104. package/es/table/utils/collectNodes.js +1 -10
  105. package/es/table/utils/console.js +0 -14
  106. package/es/table/utils/copyToClipboard.js +0 -4
  107. package/es/table/utils/element.js +14 -41
  108. package/es/table/utils/exportTableAsExcel.js +4 -40
  109. package/es/table/utils/getTreeDepth.js +1 -9
  110. package/es/table/utils/groupBy.js +1 -10
  111. package/es/table/utils/layeredFilter.js +0 -4
  112. package/es/table/utils/layeredSort.js +0 -5
  113. package/es/table/utils/makeRecursiveMapper.js +1 -12
  114. package/es/table/utils/mergeCellProps.js +6 -13
  115. package/es/table/utils/others.js +3 -16
  116. package/es/table/utils/proto.js +2 -30
  117. package/es/table/utils/smartCompare.js +4 -12
  118. package/es/table/utils/traverseColumn.js +2 -15
  119. package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +1 -22
  120. package/es/table/utils/tree-data-helpers/TreeDataHelper.js +15 -69
  121. package/lib/_utils/arrayUtil.js +0 -5
  122. package/lib/_utils/devwarning.js +0 -5
  123. package/lib/_utils/formatUtil.js +35 -100
  124. package/lib/_utils/hooks.js +18 -53
  125. package/lib/_utils/index.js +0 -6
  126. package/lib/_utils/numberUtil.js +32 -63
  127. package/lib/_utils/omit.js +0 -5
  128. package/lib/_utils/react-children.js +0 -5
  129. package/lib/_utils/type.js +0 -6
  130. package/lib/_utils/usePopper.js +74 -158
  131. package/lib/config-provider/ConfigContext.js +1 -4
  132. package/lib/config-provider/compDefaultProps.js +0 -1
  133. package/lib/config-provider/configProvider.js +3 -18
  134. package/lib/config-provider/defaultConfig.js +0 -5
  135. package/lib/config-provider/index.js +0 -6
  136. package/lib/index.js +2 -8
  137. package/lib/locale/index.js +0 -7
  138. package/lib/locale/locale.js +5 -57
  139. package/lib/style/color/colors.less +1 -1
  140. package/lib/style/components.less +1 -1
  141. package/lib/style/core/index.less +1 -1
  142. package/lib/style/core/motion/other.less +27 -27
  143. package/lib/style/core/motion/slide.less +53 -53
  144. package/lib/style/core/motion.less +1 -1
  145. package/lib/style/core/reset.less +185 -185
  146. package/lib/style/index.less +1 -1
  147. package/lib/style/mixins/index.less +18 -18
  148. package/lib/style/mixins/overlay.less +21 -21
  149. package/lib/style/mixins/reset.less +12 -12
  150. package/lib/style/themes/default.less +445 -445
  151. package/lib/table/base/calculations.js +22 -83
  152. package/lib/table/base/colgroup.js +0 -5
  153. package/lib/table/base/empty.js +4 -16
  154. package/lib/table/base/header.d.ts +2 -1
  155. package/lib/table/base/header.js +17 -78
  156. package/lib/table/base/helpers/SpanManager.js +3 -11
  157. package/lib/table/base/helpers/TableDOMUtils.js +1 -26
  158. package/lib/table/base/helpers/__test__/SpanManager.test.js +2 -4
  159. package/lib/table/base/helpers/__test__/TableDOMUtils.test.js +0 -5
  160. package/lib/table/base/helpers/__test__/rowHeightManager.test.js +0 -1
  161. package/lib/table/base/helpers/getRichVisibleRectsStream.js +11 -62
  162. package/lib/table/base/helpers/rowHeightManager.js +0 -33
  163. package/lib/table/base/html-table.js +15 -46
  164. package/lib/table/base/index.js +0 -2
  165. package/lib/table/base/loading.js +6 -12
  166. package/lib/table/base/renderTemplates.js +51 -68
  167. package/lib/table/base/styles.js +1 -22
  168. package/lib/table/base/table.js +116 -222
  169. package/lib/table/base/utils.js +14 -89
  170. package/lib/table/common-views.js +0 -16
  171. package/lib/table/index.js +0 -13
  172. package/lib/table/internals.js +0 -14
  173. package/lib/table/pipeline/features/autoFill.js +11 -45
  174. package/lib/table/pipeline/features/autoRowSpan.js +1 -19
  175. package/lib/table/pipeline/features/buildTree.js +0 -2
  176. package/lib/table/pipeline/features/colGroupExtendable.js +4 -32
  177. package/lib/table/pipeline/features/columnDrag.js +41 -101
  178. package/lib/table/pipeline/features/columnFilter.js +11 -58
  179. package/lib/table/pipeline/features/columnHover.js +1 -11
  180. package/lib/table/pipeline/features/columnRangeHover.js +1 -13
  181. package/lib/table/pipeline/features/columnResizeWidth.js +11 -53
  182. package/lib/table/pipeline/features/contextMenu.js +18 -113
  183. package/lib/table/pipeline/features/filter/DefaultFilterContent.js +10 -43
  184. package/lib/table/pipeline/features/filter/DefaultFilterIcon.js +1 -4
  185. package/lib/table/pipeline/features/filter/Filter.js +25 -70
  186. package/lib/table/pipeline/features/filter/FilterPanel.js +11 -40
  187. package/lib/table/pipeline/features/filter/index.js +0 -5
  188. package/lib/table/pipeline/features/filter/util.js +0 -7
  189. package/lib/table/pipeline/features/footerDataSource.js +0 -10
  190. package/lib/table/pipeline/features/index.js +0 -22
  191. package/lib/table/pipeline/features/mergeCellHover.js +0 -5
  192. package/lib/table/pipeline/features/multiSelect.js +15 -70
  193. package/lib/table/pipeline/features/rangeSelection.js +63 -159
  194. package/lib/table/pipeline/features/rowDetail.js +2 -65
  195. package/lib/table/pipeline/features/rowGrouping.js +2 -55
  196. package/lib/table/pipeline/features/singleSelect.js +0 -33
  197. package/lib/table/pipeline/features/sort.js +29 -99
  198. package/lib/table/pipeline/features/tips.js +0 -15
  199. package/lib/table/pipeline/features/treeMode.js +9 -64
  200. package/lib/table/pipeline/features/treeSelect.js +0 -34
  201. package/lib/table/pipeline/index.js +0 -8
  202. package/lib/table/pipeline/pipeline.js +9 -58
  203. package/lib/table/pivot/cross-table/buildCrossTable.js +15 -75
  204. package/lib/table/pivot/cross-table/cross-table.js +22 -36
  205. package/lib/table/pivot/cross-table/index.js +0 -4
  206. package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +14 -60
  207. package/lib/table/pivot/cross-tree-table/cross-tree-table.js +28 -60
  208. package/lib/table/pivot/cross-tree-table/index.js +0 -3
  209. package/lib/table/pivot/pivot-utils/buildDrillTree.js +10 -29
  210. package/lib/table/pivot/pivot-utils/builders.js +31 -82
  211. package/lib/table/pivot/pivot-utils/convert-utils.js +13 -57
  212. package/lib/table/pivot/pivot-utils/index.js +0 -7
  213. package/lib/table/pivot/pivot-utils/simpleEncode.js +0 -2
  214. package/lib/table/style/css.js +0 -1
  215. package/lib/table/style/index.js +0 -1
  216. package/lib/table/style/index.less +1 -1
  217. package/lib/table/transforms/autoRowSpan.js +1 -21
  218. package/lib/table/transforms/autoWidth.js +10 -53
  219. package/lib/table/transforms/buildTree.js +1 -4
  220. package/lib/table/transforms/columnHover.js +9 -22
  221. package/lib/table/transforms/columnRangeHover.js +12 -27
  222. package/lib/table/transforms/columnResize.js +15 -56
  223. package/lib/table/transforms/flatten.js +0 -5
  224. package/lib/table/transforms/index.js +0 -12
  225. package/lib/table/transforms/orderField.js +0 -7
  226. package/lib/table/transforms/sort.js +36 -112
  227. package/lib/table/transforms/tips.js +1 -16
  228. package/lib/table/transforms/treeMode.js +30 -96
  229. package/lib/table/transforms/visible.js +0 -7
  230. package/lib/table/transforms/warnTransformsDeprecated.js +0 -4
  231. package/lib/table/use/useResizeObserver.js +1 -8
  232. package/lib/table/utils/applyTransforms.js +0 -2
  233. package/lib/table/utils/buildTree.js +4 -30
  234. package/lib/table/utils/collectNodes.js +1 -15
  235. package/lib/table/utils/console.js +0 -16
  236. package/lib/table/utils/copyToClipboard.js +0 -6
  237. package/lib/table/utils/element.js +14 -46
  238. package/lib/table/utils/exportTableAsExcel.js +4 -49
  239. package/lib/table/utils/getTreeDepth.js +1 -14
  240. package/lib/table/utils/groupBy.js +1 -14
  241. package/lib/table/utils/index.js +0 -20
  242. package/lib/table/utils/isGroupColumn.js +0 -3
  243. package/lib/table/utils/isLeafNode.js +0 -1
  244. package/lib/table/utils/layeredFilter.js +0 -10
  245. package/lib/table/utils/layeredSort.js +0 -10
  246. package/lib/table/utils/makeRecursiveMapper.js +1 -21
  247. package/lib/table/utils/mergeCellProps.js +6 -17
  248. package/lib/table/utils/others.js +3 -31
  249. package/lib/table/utils/proto.js +2 -33
  250. package/lib/table/utils/smartCompare.js +4 -13
  251. package/lib/table/utils/traverseColumn.js +2 -22
  252. package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +1 -30
  253. package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +15 -82
  254. package/package.json +219 -218
@@ -1,18 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
11
-
12
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
13
-
14
10
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
15
-
16
11
  /** 在表格的单元格的渲染过程中,先渲染的单元格的 colSpan/rowSpan 会影响到后续单元格是否被渲染
17
12
  * `SpanManager` 会在内部维护一份状态来记录最近渲染单元格的 colSpan/rowSpan,
18
13
  * 方便后续的单元格快速判断 "是否需要跳过渲染" */
@@ -21,15 +16,14 @@ var SpanManager = /*#__PURE__*/function () {
21
16
  (0, _classCallCheck2.default)(this, SpanManager);
22
17
  this.rects = [];
23
18
  }
24
-
25
19
  (0, _createClass2.default)(SpanManager, [{
26
20
  key: "testSkip",
27
21
  value: function testSkip(rowIndex, colIndex) {
28
22
  return this.rects.some(function (_ref) {
29
23
  var left = _ref.left,
30
- right = _ref.right,
31
- top = _ref.top,
32
- bottom = _ref.bottom;
24
+ right = _ref.right,
25
+ top = _ref.top,
26
+ bottom = _ref.bottom;
33
27
  return left <= colIndex && colIndex < right && top <= rowIndex && rowIndex < bottom;
34
28
  });
35
29
  }
@@ -37,7 +31,6 @@ var SpanManager = /*#__PURE__*/function () {
37
31
  key: "stripUpwards",
38
32
  value: function stripUpwards(rowIndex) {
39
33
  var _context;
40
-
41
34
  this.rects = (0, _filter.default)(_context = this.rects).call(_context, function (rect) {
42
35
  return rect.bottom > rowIndex;
43
36
  });
@@ -55,5 +48,4 @@ var SpanManager = /*#__PURE__*/function () {
55
48
  }]);
56
49
  return SpanManager;
57
50
  }();
58
-
59
51
  exports.default = SpanManager;
@@ -1,24 +1,16 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.TableDOMHelper = void 0;
9
-
10
8
  var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
11
-
12
9
  var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
13
-
14
10
  var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
15
-
16
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
17
-
18
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
19
-
20
13
  var _styles = require("../styles");
21
-
22
14
  // 表格 DOM 结构
23
15
  // div.art-table-wrapper
24
16
  // └── div.art-loading-wrapper
@@ -59,35 +51,26 @@ var _styles = require("../styles");
59
51
  var TableDOMHelper = /*#__PURE__*/function () {
60
52
  function TableDOMHelper(artTableWrapper) {
61
53
  var _this = this,
62
- _context2;
63
-
54
+ _context2;
64
55
  (0, _classCallCheck2.default)(this, TableDOMHelper);
65
-
66
56
  this.getRowNodeListByEvent = function (e) {
67
57
  var nodeList = null;
68
58
  var rowIndex = e.currentTarget.dataset.rowindex;
69
-
70
59
  if (rowIndex !== undefined) {
71
60
  var targetParent = _this.tableBody.contains(e.currentTarget) ? _this.tableBody : _this.tableFooter;
72
61
  nodeList = targetParent.querySelectorAll("tr[data-rowindex=\"".concat(rowIndex, "\"]"));
73
62
  }
74
-
75
63
  return nodeList;
76
64
  };
77
-
78
65
  this.getInRangeRowByCellEvent = function (e) {
79
66
  var _context;
80
-
81
67
  var _a;
82
-
83
68
  var getParentNode = function getParentNode(ele, target) {
84
69
  if (ele.parentNode.nodeName === target) {
85
70
  return ele.parentNode;
86
71
  }
87
-
88
72
  return getParentNode(ele.parentNode, target);
89
73
  };
90
-
91
74
  e = e instanceof Array ? e[0] : e;
92
75
  var curCell = e === null || e === void 0 ? void 0 : e.currentTarget;
93
76
  var curRow = getParentNode(curCell, 'TR');
@@ -95,7 +78,6 @@ var TableDOMHelper = /*#__PURE__*/function () {
95
78
  var rows = (_a = getParentNode(curCell, 'TABLE')) === null || _a === void 0 ? void 0 : _a.rows;
96
79
  return (0, _slice.default)(_context = (0, _from.default)(rows)).call(_context, curRow.rowIndex, curRow.rowIndex + curRowSpan);
97
80
  };
98
-
99
81
  this.artTableWrapper = artTableWrapper;
100
82
  this.artTable = artTableWrapper.querySelector(".".concat(_styles.Classes.artTable));
101
83
  this.tableHeader = this.artTable.querySelector(".".concat(_styles.Classes.tableHeader));
@@ -109,7 +91,6 @@ var TableDOMHelper = /*#__PURE__*/function () {
109
91
  this.stickyScroll = artTableWrapper.querySelector(stickyScrollSelector);
110
92
  this.stickyScrollItem = this.stickyScroll.querySelector(".".concat(_styles.Classes.stickyScrollItem));
111
93
  }
112
-
113
94
  (0, _createClass2.default)(TableDOMHelper, [{
114
95
  key: "getVirtualTop",
115
96
  value: function getVirtualTop() {
@@ -119,7 +100,6 @@ var TableDOMHelper = /*#__PURE__*/function () {
119
100
  key: "getTableRows",
120
101
  value: function getTableRows() {
121
102
  var _context3;
122
-
123
103
  var tbody = this.artTable.querySelector((0, _concat.default)(_context3 = ".".concat(_styles.Classes.tableBody, " .")).call(_context3, _styles.Classes.virtual, " table tbody"));
124
104
  return tbody.childNodes;
125
105
  }
@@ -127,14 +107,12 @@ var TableDOMHelper = /*#__PURE__*/function () {
127
107
  key: "getTableBodyHtmlTable",
128
108
  value: function getTableBodyHtmlTable() {
129
109
  var _context4;
130
-
131
110
  return this.artTable.querySelector((0, _concat.default)(_context4 = ".".concat(_styles.Classes.tableBody, " .")).call(_context4, _styles.Classes.virtual, " table"));
132
111
  }
133
112
  }, {
134
113
  key: "getLeftLockShadow",
135
114
  value: function getLeftLockShadow() {
136
115
  var _context5;
137
-
138
116
  var selector = (0, _concat.default)(_context5 = ".".concat(_styles.Classes.lockShadowMask, " .")).call(_context5, _styles.Classes.leftLockShadow);
139
117
  var allLeftLockShadow = this.artTable.querySelectorAll(selector);
140
118
  return allLeftLockShadow[allLeftLockShadow.length - 1]; // 当table-body、table-footer嵌套多层表格时,需要查找最后一个,否则会查找到嵌套表格的
@@ -143,7 +121,6 @@ var TableDOMHelper = /*#__PURE__*/function () {
143
121
  key: "getRightLockShadow",
144
122
  value: function getRightLockShadow() {
145
123
  var _context6;
146
-
147
124
  var selector = (0, _concat.default)(_context6 = ".".concat(_styles.Classes.lockShadowMask, " .")).call(_context6, _styles.Classes.rightLockShadow);
148
125
  var allRightLockShadow = this.artTable.querySelectorAll(selector);
149
126
  return allRightLockShadow[allRightLockShadow.length - 1]; // 当table-body、table-footer嵌套多层表格时,需要查找最后一个,否则会查找到嵌套表格的
@@ -157,7 +134,6 @@ var TableDOMHelper = /*#__PURE__*/function () {
157
134
  key: "getRowTop",
158
135
  value: function getRowTop(rowIndex) {
159
136
  var _context7, _context8;
160
-
161
137
  if (rowIndex === 0) return 0;
162
138
  var selector = (0, _concat.default)(_context7 = (0, _concat.default)(_context8 = ".".concat(_styles.Classes.tableBody, " .")).call(_context8, _styles.Classes.tableRow, "[data-rowindex=\"")).call(_context7, rowIndex, "\"]");
163
139
  var row = this.artTable.querySelector(selector);
@@ -168,5 +144,4 @@ var TableDOMHelper = /*#__PURE__*/function () {
168
144
  }]);
169
145
  return TableDOMHelper;
170
146
  }();
171
-
172
147
  exports.TableDOMHelper = TableDOMHelper;
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
-
5
4
  var _SpanManager = _interopRequireDefault(require("../SpanManager"));
6
-
7
5
  var NAME = 'SpanManager';
8
6
  describe("".concat(NAME), function () {
9
7
  var spanManager = new _SpanManager.default();
@@ -13,8 +11,8 @@ describe("".concat(NAME), function () {
13
11
  });
14
12
  it('test skip', function () {
15
13
  // 第二行,第一列跳过渲染
16
- expect(spanManager.testSkip(1, 0)).toBe(true); // 第四行,第一列不跳过渲染
17
-
14
+ expect(spanManager.testSkip(1, 0)).toBe(true);
15
+ // 第四行,第一列不跳过渲染
18
16
  expect(spanManager.testSkip(3, 0)).toBe(false);
19
17
  });
20
18
  it('strip upwards span info', function () {
@@ -1,20 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
-
5
4
  var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
6
-
7
5
  var _styles = require("../../styles");
8
-
9
6
  var _TableDOMUtils = require("../TableDOMUtils");
10
-
11
7
  var NAME = 'TableDOMUtils';
12
8
  describe("".concat(NAME), function () {
13
9
  var tableDOMHelper;
14
10
  var container;
15
11
  beforeAll(function () {
16
12
  var _context, _context2, _context3, _context4, _context5, _context6, _context7, _context8, _context9, _context10, _context11, _context12, _context13, _context14, _context15, _context16, _context17;
17
-
18
13
  container = document.createElement('div');
19
14
  container.innerHTML = (0, _concat.default)(_context = (0, _concat.default)(_context2 = (0, _concat.default)(_context3 = (0, _concat.default)(_context4 = (0, _concat.default)(_context5 = (0, _concat.default)(_context6 = (0, _concat.default)(_context7 = (0, _concat.default)(_context8 = (0, _concat.default)(_context9 = (0, _concat.default)(_context10 = (0, _concat.default)(_context11 = (0, _concat.default)(_context12 = (0, _concat.default)(_context13 = (0, _concat.default)(_context14 = (0, _concat.default)(_context15 = (0, _concat.default)(_context16 = (0, _concat.default)(_context17 = "<div class='".concat(_styles.Classes.artTableWrapper, "'>\n <div class='")).call(_context17, _styles.Classes.loadingWrapper, "'>\n <div class='")).call(_context16, _styles.Classes.loadingIndicatorWrapper, "'>\n <div class='")).call(_context15, _styles.Classes.loadingIndicator, "'></div>\n </div> \n <div class='")).call(_context14, _styles.Classes.loadingContentWrapper, "'>\n <div class='")).call(_context13, _styles.Classes.artTable, "'>\n <div class='")).call(_context12, _styles.Classes.tableHeader, "'>\n \n </div>\n <div class='")).call(_context11, _styles.Classes.tableBody, "'>\n <div class='")).call(_context10, _styles.Classes.virtual, "'>\n <div class='")).call(_context9, _styles.Classes.virtualBlank, " top'></div>\n <table></table>\n <div class='")).call(_context8, _styles.Classes.virtualBlank, " bottom'></div>\n </div> \n </div>\n <div class='")).call(_context7, _styles.Classes.tableFooter, "'>\n </div>\n <div class='")).call(_context6, _styles.Classes.lockShadowMask, "'>\n <div class='")).call(_context5, _styles.Classes.leftLockShadow, "'></div>\n </div>\n <div class='")).call(_context4, _styles.Classes.lockShadowMask, "'>\n <div class='")).call(_context3, _styles.Classes.rightLockShadow, "'></div>\n </div>\n </div>\n <div class='")).call(_context2, _styles.Classes.stickyScroll, "'>\n <div class='")).call(_context, _styles.Classes.stickyScrollItem, "'></div>\n </div>\n </div> \n </div> \n </div>");
20
15
  tableDOMHelper = new _TableDOMUtils.TableDOMHelper(container.querySelector(".".concat(_styles.Classes.artTableWrapper)));
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _rowHeightManager = require("../rowHeightManager");
4
-
5
4
  var NAME = 'rowHeightManager';
6
5
  describe("".concat(NAME), function () {
7
6
  it('getFullRenderRange', function () {
@@ -1,90 +1,60 @@
1
1
  "use strict";
2
2
 
3
3
  var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
-
5
4
  var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
6
-
7
5
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
8
-
9
6
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
10
-
11
7
  Object.defineProperty(exports, "__esModule", {
12
8
  value: true
13
9
  });
14
10
  exports.getRichVisibleRectsStream = getRichVisibleRectsStream;
15
-
16
11
  var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
17
-
18
12
  var _getNodeName = _interopRequireDefault(require("@popperjs/core/lib/dom-utils/getNodeName"));
19
-
20
13
  var _getOffsetParent = _interopRequireDefault(require("@popperjs/core/lib/dom-utils/getOffsetParent"));
21
-
22
14
  var _getParentNode = _interopRequireDefault(require("@popperjs/core/lib/dom-utils/getParentNode"));
23
-
24
15
  var _getWindow = _interopRequireDefault(require("@popperjs/core/lib/dom-utils/getWindow"));
25
-
26
16
  var _getWindowScroll = _interopRequireDefault(require("@popperjs/core/lib/dom-utils/getWindowScroll"));
27
-
28
17
  var _instanceOf = require("@popperjs/core/lib/dom-utils/instanceOf");
29
-
30
18
  var _isScrollParent = _interopRequireDefault(require("@popperjs/core/lib/dom-utils/isScrollParent"));
31
-
32
19
  var _resizeObserverPolyfill = _interopRequireDefault(require("resize-observer-polyfill"));
33
-
34
20
  var _rxjs = require("rxjs");
35
-
36
21
  var op = _interopRequireWildcard(require("rxjs/operators"));
37
-
38
22
  var _utils = require("../utils");
39
-
40
23
  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); }
41
-
42
24
  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; }
43
-
44
25
  function isWindow(arg) {
45
26
  return arg.toString() === '[object Window]' || arg.toString() === '[object global]';
46
27
  }
47
-
48
28
  function isBody(arg) {
49
29
  return (0, _getNodeName.default)(arg) === 'body';
50
30
  }
51
-
52
31
  function isHtml(arg) {
53
32
  return (0, _getNodeName.default)(arg) === 'html';
54
33
  }
55
-
56
34
  function isHtmlOrBody(arg) {
57
35
  return isHtml(arg) || isBody(arg);
58
- } // 计算从 start(子元素)到 stop(祖先元素)之间所有元素的 scrollTop 或 scrollLeft 的和
36
+ }
37
+ // 计算从 start(子元素)到 stop(祖先元素)之间所有元素的 scrollTop 或 scrollLeft 的和
59
38
  // 注意 start 和 stop 都是 INCLUSIVE 的,即两者的 scrollTop 或 scrollLeft 都会统计在内
60
-
61
-
62
39
  function accumulateScrollOffset(start, stop, scrollOffsetKey) {
63
40
  var result = 0;
64
41
  var elem = start;
65
-
66
42
  while (elem != null) {
67
43
  result += elem[scrollOffsetKey];
68
-
69
44
  if (elem === stop || isWindow(stop) && isHtmlOrBody(elem)) {
70
45
  break;
71
46
  }
72
-
73
47
  elem = elem.parentElement;
74
48
  }
75
-
76
49
  if (isWindow(stop)) {
77
50
  result += (0, _getWindowScroll.default)(elem)[scrollOffsetKey];
78
51
  }
79
-
80
52
  return result;
81
53
  }
82
54
  /**
83
55
  * 获取 target 相对于 base 的布局大小和相对位置。
84
56
  * 注意该方法会考虑滚动所带来的影响
85
57
  */
86
-
87
-
88
58
  function getRelativeLayoutRect(base, target) {
89
59
  if (isWindow(target) || isHtmlOrBody(target)) {
90
60
  return {
@@ -94,27 +64,22 @@ function getRelativeLayoutRect(base, target) {
94
64
  bottom: window.innerHeight
95
65
  };
96
66
  }
97
-
98
67
  var deltaX = 0;
99
68
  var deltaY = 0;
100
69
  var elem = target;
101
-
102
70
  while (elem != null && elem != base) {
103
71
  deltaY += elem.offsetTop;
104
72
  deltaX += elem.offsetLeft;
105
73
  var offsetParent = (0, _getOffsetParent.default)(elem);
106
74
  deltaY -= accumulateScrollOffset(elem.parentElement, offsetParent, 'scrollTop');
107
75
  deltaX -= accumulateScrollOffset(elem.parentElement, offsetParent, 'scrollLeft');
108
-
109
76
  if (isWindow(offsetParent)) {
110
77
  break;
111
78
  }
112
-
113
79
  deltaY += offsetParent.clientTop;
114
80
  deltaX += offsetParent.clientLeft;
115
81
  elem = offsetParent;
116
82
  }
117
-
118
83
  return {
119
84
  top: deltaY,
120
85
  bottom: deltaY + target.offsetHeight,
@@ -122,51 +87,40 @@ function getRelativeLayoutRect(base, target) {
122
87
  right: deltaX + target.offsetWidth
123
88
  };
124
89
  }
125
-
126
90
  function findCommonOffsetAncestor(target, scrollParent) {
127
91
  if (isWindow(scrollParent)) {
128
92
  return scrollParent;
129
93
  }
130
-
131
94
  var offsetParents = listOffsetParents(target);
132
-
133
95
  if ((0, _includes.default)(offsetParents).call(offsetParents, scrollParent)) {
134
96
  return scrollParent;
135
97
  }
136
-
137
98
  return (0, _getOffsetParent.default)(scrollParent);
138
- } // 列出 target 元素上层的所有 offset parents
139
-
140
-
99
+ }
100
+ // 列出 target 元素上层的所有 offset parents
141
101
  function listOffsetParents(target) {
142
102
  var result = [];
143
103
  var elem = target;
144
-
145
104
  while (true) {
146
105
  if (isWindow(elem)) {
147
106
  break;
148
107
  }
149
-
150
108
  elem = (0, _getOffsetParent.default)(elem);
151
109
  result.push(elem);
152
110
  }
153
-
154
111
  return result;
155
112
  }
156
-
157
113
  function fromScrollEvent(element) {
158
114
  return (0, _rxjs.fromEvent)(element, 'scroll', {
159
115
  passive: true
160
116
  });
161
117
  }
162
-
163
118
  function fromResizeEvent(element) {
164
119
  if (isWindow(element)) {
165
120
  return (0, _rxjs.fromEvent)(element, 'resize', {
166
121
  passive: true
167
122
  });
168
123
  }
169
-
170
124
  return new _rxjs.Observable(function (subscriber) {
171
125
  var resizeObserver = new _resizeObserverPolyfill.default(function (entries) {
172
126
  subscriber.next(entries);
@@ -177,29 +131,24 @@ function fromResizeEvent(element) {
177
131
  };
178
132
  });
179
133
  }
180
-
181
134
  function getScrollParent(elem) {
182
135
  var _context;
183
-
184
136
  if ((0, _includes.default)(_context = ['html', 'body', '#document']).call(_context, (0, _getNodeName.default)(elem))) {
185
137
  return (0, _getWindow.default)(elem);
186
138
  }
187
-
188
139
  if ((0, _instanceOf.isHTMLElement)(elem) && (0, _isScrollParent.default)(elem)) {
189
140
  return elem;
190
141
  }
191
-
192
142
  return getScrollParent((0, _getParentNode.default)(elem));
193
- } // 获取 target 相对于「它的滚动父元素」的可见部分的大小与位置
194
-
195
-
143
+ }
144
+ // 获取 target 相对于「它的滚动父元素」的可见部分的大小与位置
196
145
  function getRichVisibleRectsStream(target, structureMayChange$, virtualDebugLabel) {
197
146
  return structureMayChange$.pipe(op.startWith('init'), op.map(function () {
198
147
  // target 的第一个滚动父元素,我们认为这就是虚拟滚动发生的地方
199
148
  // 即虚拟滚动不考虑「更上层元素发生滚动」的情况
200
149
  // 直接从父元素开始查找,防止自身设置overflow属性导致是同一个元素
201
- var scrollParent = getScrollParent((0, _getParentNode.default)(target)); // target 和 scrollParent 的共同 offset 祖先,作为布局尺寸计算时的参照元素
202
-
150
+ var scrollParent = getScrollParent((0, _getParentNode.default)(target));
151
+ // target 和 scrollParent 的共同 offset 祖先,作为布局尺寸计算时的参照元素
203
152
  var commonOffsetAncestor = findCommonOffsetAncestor(target, scrollParent);
204
153
  return {
205
154
  scrollParent: scrollParent,
@@ -211,7 +160,7 @@ function getRichVisibleRectsStream(target, structureMayChange$, virtualDebugLabe
211
160
  }
212
161
  }), op.switchMap(function (_ref) {
213
162
  var scrollParent = _ref.scrollParent,
214
- commonOffsetAncestor = _ref.commonOffsetAncestor;
163
+ commonOffsetAncestor = _ref.commonOffsetAncestor;
215
164
  var events$ = (0, _rxjs.merge)(fromScrollEvent(scrollParent), fromResizeEvent(scrollParent), fromResizeEvent(target));
216
165
  return events$.pipe(op.map(function (event) {
217
166
  return {
@@ -221,8 +170,8 @@ function getRichVisibleRectsStream(target, structureMayChange$, virtualDebugLabe
221
170
  };
222
171
  }), op.map(function (_ref2) {
223
172
  var event = _ref2.event,
224
- scrollParentRect = _ref2.scrollParentRect,
225
- targetRect = _ref2.targetRect;
173
+ scrollParentRect = _ref2.scrollParentRect,
174
+ targetRect = _ref2.targetRect;
226
175
  return {
227
176
  event: event,
228
177
  targetRect: targetRect,
@@ -1,19 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.getFullRenderRange = getFullRenderRange;
9
8
  exports.makeRowHeightManager = makeRowHeightManager;
10
-
11
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
12
-
13
10
  var _fill = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/fill"));
14
-
15
11
  var _utils = require("../utils");
16
-
17
12
  function getFullRenderRange(rowCount) {
18
13
  return {
19
14
  topIndex: 0,
@@ -22,17 +17,13 @@ function getFullRenderRange(rowCount) {
22
17
  bottomBlank: 0
23
18
  };
24
19
  }
25
-
26
20
  function makeRowHeightManager(initRowCount, estimatedRowHeight) {
27
21
  var _context;
28
-
29
22
  var cache = (0, _fill.default)(_context = new Array(initRowCount)).call(_context, estimatedRowHeight);
30
-
31
23
  function getRenderRange(offset, maxRenderHeight, rowCount) {
32
24
  if (cache.length !== rowCount) {
33
25
  setRowCount(rowCount);
34
26
  }
35
-
36
27
  if (maxRenderHeight <= 0) {
37
28
  // maxRenderHeight <= 0 说明表格目前在 viewport 之外
38
29
  if (offset <= 0) {
@@ -46,7 +37,6 @@ function makeRowHeightManager(initRowCount, estimatedRowHeight) {
46
37
  // 表格与 viewport 相交
47
38
  return getRenderRangeWhenInView();
48
39
  }
49
-
50
40
  function getRenderRangeWhenBelowView() {
51
41
  var start = {
52
42
  topIndex: 0,
@@ -55,22 +45,18 @@ function makeRowHeightManager(initRowCount, estimatedRowHeight) {
55
45
  var end = getEnd(0, start);
56
46
  return (0, _extends2.default)((0, _extends2.default)({}, start), end);
57
47
  }
58
-
59
48
  function getRenderRangeWhenAboveView() {
60
49
  var totalSize = getEstimatedTotalSize(rowCount);
61
50
  var start = getStart(totalSize);
62
51
  var end = getEnd(totalSize, start);
63
52
  return (0, _extends2.default)((0, _extends2.default)({}, start), end);
64
53
  }
65
-
66
54
  function getRenderRangeWhenInView() {
67
55
  var start = getStart(offset);
68
56
  var end = getEnd(offset + maxRenderHeight, start);
69
57
  return (0, _extends2.default)((0, _extends2.default)({}, start), end);
70
58
  }
71
59
  /** 获取虚拟滚动在 开始位置上的信息 */
72
-
73
-
74
60
  function getStart(offset) {
75
61
  if (cache.length === 0) {
76
62
  return {
@@ -78,73 +64,56 @@ function makeRowHeightManager(initRowCount, estimatedRowHeight) {
78
64
  topBlank: 0
79
65
  };
80
66
  }
81
-
82
67
  var topIndex = 0;
83
68
  var topBlank = 0;
84
-
85
69
  while (topIndex < cache.length) {
86
70
  var h = cache[topIndex];
87
-
88
71
  if (topBlank + h >= offset) {
89
72
  break;
90
73
  }
91
-
92
74
  topBlank += h;
93
75
  topIndex += 1;
94
76
  }
95
-
96
77
  return overscanUpwards(topIndex, topBlank);
97
78
  }
98
-
99
79
  function overscanUpwards(topIndex, topBlank) {
100
80
  var overscanSize = 0;
101
81
  var overscanCount = 0;
102
-
103
82
  while (overscanCount < topIndex && overscanSize < _utils.OVERSCAN_SIZE) {
104
83
  overscanCount += 1;
105
84
  overscanSize += cache[topIndex - overscanCount];
106
85
  }
107
-
108
86
  return {
109
87
  topIndex: topIndex - overscanCount,
110
88
  topBlank: topBlank - overscanSize
111
89
  };
112
90
  }
113
91
  /** 获取虚拟滚动 在结束位置上的信息 */
114
-
115
-
116
92
  function getEnd(endOffset, startInfo) {
117
93
  var bottomIndex = startInfo.topIndex;
118
94
  var offset = startInfo.topBlank;
119
-
120
95
  while (bottomIndex < rowCount && offset < endOffset) {
121
96
  offset += cache[bottomIndex];
122
97
  bottomIndex += 1;
123
98
  }
124
-
125
99
  var bottomBlank = getEstimatedTotalSize(rowCount) - offset;
126
100
  return overscanDownwards(bottomIndex, bottomBlank);
127
101
  }
128
-
129
102
  function overscanDownwards(bottomIndex, bottomBlank) {
130
103
  var overscanSize = 0;
131
104
  var overscanCount = 0;
132
-
133
105
  while (overscanCount < rowCount - bottomIndex && overscanSize < _utils.OVERSCAN_SIZE) {
134
106
  overscanSize += cache[bottomIndex + overscanCount];
135
107
  overscanCount += 1;
136
108
  }
137
-
138
109
  return {
139
110
  bottomIndex: bottomIndex + overscanCount,
140
111
  bottomBlank: bottomBlank - overscanSize
141
112
  };
142
113
  }
143
-
144
114
  function getEstimatedTotalSize(rowCount) {
145
115
  return (0, _utils.sum)(cache) + (rowCount - cache.length) * estimatedRowHeight;
146
116
  }
147
-
148
117
  function setRowCount(count) {
149
118
  // 将 cache 的长度设置为 count
150
119
  if (count < cache.length) {
@@ -156,11 +125,9 @@ function makeRowHeightManager(initRowCount, estimatedRowHeight) {
156
125
  }
157
126
  }
158
127
  }
159
-
160
128
  function updateRow(index, offset, size) {
161
129
  cache[index] = size;
162
130
  }
163
-
164
131
  return {
165
132
  getRenderRange: getRenderRange,
166
133
  updateRow: updateRow,