@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.
- package/LICENSE +568 -568
- package/README.md +111 -111
- package/dist/@kdcloudjs/table.css +1 -1
- package/dist/@kdcloudjs/table.js +1877 -3363
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +16 -16
- package/dist/@kdcloudjs/table.min.js.map +1 -1
- package/dist/kd-ui-complete.less +777 -777
- package/es/_utils/arrayUtil.js +0 -3
- package/es/_utils/devwarning.js +0 -1
- package/es/_utils/formatUtil.js +35 -96
- package/es/_utils/hooks.js +18 -42
- package/es/_utils/index.js +0 -2
- package/es/_utils/numberUtil.js +32 -55
- package/es/_utils/omit.js +0 -2
- package/es/_utils/type.js +0 -2
- package/es/_utils/usePopper.js +74 -137
- package/es/config-provider/compDefaultProps.js +0 -1
- package/es/config-provider/configProvider.js +2 -7
- package/es/config-provider/defaultConfig.js +0 -1
- package/es/index.js +0 -2
- package/es/locale/locale.js +5 -43
- package/es/style/color/colors.less +1 -1
- package/es/style/core/index.less +1 -1
- package/es/style/core/motion/other.less +27 -27
- package/es/style/core/motion/slide.less +53 -53
- package/es/style/core/motion.less +1 -1
- package/es/style/core/reset.less +185 -185
- package/es/style/index.less +1 -1
- package/es/style/mixins/index.less +18 -18
- package/es/style/mixins/overlay.less +21 -21
- package/es/style/mixins/reset.less +12 -12
- package/es/style/themes/default.less +445 -445
- package/es/table/base/calculations.js +22 -72
- package/es/table/base/colgroup.js +0 -1
- package/es/table/base/empty.js +4 -4
- package/es/table/base/header.d.ts +2 -1
- package/es/table/base/header.js +17 -68
- package/es/table/base/helpers/SpanManager.js +3 -9
- package/es/table/base/helpers/TableDOMUtils.js +3 -26
- package/es/table/base/helpers/__test__/SpanManager.test.js +2 -2
- package/es/table/base/helpers/__test__/TableDOMUtils.test.js +0 -1
- package/es/table/base/helpers/getRichVisibleRectsStream.js +11 -44
- package/es/table/base/helpers/rowHeightManager.js +0 -28
- package/es/table/base/html-table.js +15 -36
- package/es/table/base/loading.js +6 -8
- package/es/table/base/renderTemplates.js +50 -54
- package/es/table/base/styles.js +1 -10
- package/es/table/base/table.js +116 -189
- package/es/table/base/utils.js +14 -54
- package/es/table/common-views.js +0 -7
- package/es/table/internals.js +0 -13
- package/es/table/pipeline/features/autoFill.js +11 -38
- package/es/table/pipeline/features/autoRowSpan.js +1 -14
- package/es/table/pipeline/features/colGroupExtendable.js +4 -19
- package/es/table/pipeline/features/columnDrag.js +41 -95
- package/es/table/pipeline/features/columnFilter.js +11 -44
- package/es/table/pipeline/features/columnHover.js +1 -7
- package/es/table/pipeline/features/columnRangeHover.js +1 -8
- package/es/table/pipeline/features/columnResizeWidth.js +11 -37
- package/es/table/pipeline/features/contextMenu.js +18 -89
- package/es/table/pipeline/features/filter/DefaultFilterContent.js +10 -25
- package/es/table/pipeline/features/filter/DefaultFilterIcon.js +1 -1
- package/es/table/pipeline/features/filter/Filter.js +25 -48
- package/es/table/pipeline/features/filter/FilterPanel.js +11 -25
- package/es/table/pipeline/features/filter/util.js +0 -4
- package/es/table/pipeline/features/footerDataSource.js +0 -3
- package/es/table/pipeline/features/mergeCellHover.js +0 -1
- package/es/table/pipeline/features/multiSelect.js +15 -57
- package/es/table/pipeline/features/rangeSelection.js +63 -142
- package/es/table/pipeline/features/rowDetail.js +2 -41
- package/es/table/pipeline/features/rowGrouping.js +2 -35
- package/es/table/pipeline/features/singleSelect.js +0 -24
- package/es/table/pipeline/features/sort.js +29 -79
- package/es/table/pipeline/features/tips.js +0 -6
- package/es/table/pipeline/features/treeMode.js +9 -43
- package/es/table/pipeline/features/treeSelect.js +0 -26
- package/es/table/pipeline/pipeline.js +9 -49
- package/es/table/pivot/cross-table/buildCrossTable.js +15 -64
- package/es/table/pivot/cross-table/cross-table.js +22 -28
- package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +14 -47
- package/es/table/pivot/cross-tree-table/cross-tree-table.js +28 -50
- package/es/table/pivot/pivot-utils/buildDrillTree.js +10 -23
- package/es/table/pivot/pivot-utils/builders.js +31 -71
- package/es/table/pivot/pivot-utils/convert-utils.js +13 -39
- package/es/table/pivot/pivot-utils/simpleEncode.js +0 -1
- package/es/table/style/index.less +1 -1
- package/es/table/transforms/autoRowSpan.js +1 -15
- package/es/table/transforms/autoWidth.js +10 -32
- package/es/table/transforms/buildTree.js +1 -2
- package/es/table/transforms/columnHover.js +9 -15
- package/es/table/transforms/columnRangeHover.js +12 -19
- package/es/table/transforms/columnResize.js +15 -37
- package/es/table/transforms/flatten.js +0 -3
- package/es/table/transforms/orderField.js +0 -3
- package/es/table/transforms/sort.js +36 -88
- package/es/table/transforms/tips.js +1 -6
- package/es/table/transforms/treeMode.js +30 -69
- package/es/table/transforms/visible.js +0 -2
- package/es/table/use/useResizeObserver.js +1 -4
- package/es/table/utils/applyTransforms.js +0 -1
- package/es/table/utils/buildTree.js +4 -19
- package/es/table/utils/collectNodes.js +1 -10
- package/es/table/utils/console.js +0 -14
- package/es/table/utils/copyToClipboard.js +0 -4
- package/es/table/utils/element.js +14 -41
- package/es/table/utils/exportTableAsExcel.js +4 -40
- package/es/table/utils/getTreeDepth.js +1 -9
- package/es/table/utils/groupBy.js +1 -10
- package/es/table/utils/layeredFilter.js +0 -4
- package/es/table/utils/layeredSort.js +0 -5
- package/es/table/utils/makeRecursiveMapper.js +1 -12
- package/es/table/utils/mergeCellProps.js +6 -13
- package/es/table/utils/others.js +3 -16
- package/es/table/utils/proto.js +2 -30
- package/es/table/utils/smartCompare.js +4 -12
- package/es/table/utils/traverseColumn.js +2 -15
- package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +1 -22
- package/es/table/utils/tree-data-helpers/TreeDataHelper.js +15 -69
- package/lib/_utils/arrayUtil.js +0 -5
- package/lib/_utils/devwarning.js +0 -5
- package/lib/_utils/formatUtil.js +35 -100
- package/lib/_utils/hooks.js +18 -53
- package/lib/_utils/index.js +0 -6
- package/lib/_utils/numberUtil.js +32 -63
- package/lib/_utils/omit.js +0 -5
- package/lib/_utils/react-children.js +0 -5
- package/lib/_utils/type.js +0 -6
- package/lib/_utils/usePopper.js +74 -158
- package/lib/config-provider/ConfigContext.js +1 -4
- package/lib/config-provider/compDefaultProps.js +0 -1
- package/lib/config-provider/configProvider.js +3 -18
- package/lib/config-provider/defaultConfig.js +0 -5
- package/lib/config-provider/index.js +0 -6
- package/lib/index.js +2 -8
- package/lib/locale/index.js +0 -7
- package/lib/locale/locale.js +5 -57
- package/lib/style/color/colors.less +1 -1
- package/lib/style/components.less +1 -1
- package/lib/style/core/index.less +1 -1
- package/lib/style/core/motion/other.less +27 -27
- package/lib/style/core/motion/slide.less +53 -53
- package/lib/style/core/motion.less +1 -1
- package/lib/style/core/reset.less +185 -185
- package/lib/style/index.less +1 -1
- package/lib/style/mixins/index.less +18 -18
- package/lib/style/mixins/overlay.less +21 -21
- package/lib/style/mixins/reset.less +12 -12
- package/lib/style/themes/default.less +445 -445
- package/lib/table/base/calculations.js +22 -83
- package/lib/table/base/colgroup.js +0 -5
- package/lib/table/base/empty.js +4 -16
- package/lib/table/base/header.d.ts +2 -1
- package/lib/table/base/header.js +17 -78
- package/lib/table/base/helpers/SpanManager.js +3 -11
- package/lib/table/base/helpers/TableDOMUtils.js +1 -26
- package/lib/table/base/helpers/__test__/SpanManager.test.js +2 -4
- package/lib/table/base/helpers/__test__/TableDOMUtils.test.js +0 -5
- package/lib/table/base/helpers/__test__/rowHeightManager.test.js +0 -1
- package/lib/table/base/helpers/getRichVisibleRectsStream.js +11 -62
- package/lib/table/base/helpers/rowHeightManager.js +0 -33
- package/lib/table/base/html-table.js +15 -46
- package/lib/table/base/index.js +0 -2
- package/lib/table/base/loading.js +6 -12
- package/lib/table/base/renderTemplates.js +51 -68
- package/lib/table/base/styles.js +1 -22
- package/lib/table/base/table.js +116 -222
- package/lib/table/base/utils.js +14 -89
- package/lib/table/common-views.js +0 -16
- package/lib/table/index.js +0 -13
- package/lib/table/internals.js +0 -14
- package/lib/table/pipeline/features/autoFill.js +11 -45
- package/lib/table/pipeline/features/autoRowSpan.js +1 -19
- package/lib/table/pipeline/features/buildTree.js +0 -2
- package/lib/table/pipeline/features/colGroupExtendable.js +4 -32
- package/lib/table/pipeline/features/columnDrag.js +41 -101
- package/lib/table/pipeline/features/columnFilter.js +11 -58
- package/lib/table/pipeline/features/columnHover.js +1 -11
- package/lib/table/pipeline/features/columnRangeHover.js +1 -13
- package/lib/table/pipeline/features/columnResizeWidth.js +11 -53
- package/lib/table/pipeline/features/contextMenu.js +18 -113
- package/lib/table/pipeline/features/filter/DefaultFilterContent.js +10 -43
- package/lib/table/pipeline/features/filter/DefaultFilterIcon.js +1 -4
- package/lib/table/pipeline/features/filter/Filter.js +25 -70
- package/lib/table/pipeline/features/filter/FilterPanel.js +11 -40
- package/lib/table/pipeline/features/filter/index.js +0 -5
- package/lib/table/pipeline/features/filter/util.js +0 -7
- package/lib/table/pipeline/features/footerDataSource.js +0 -10
- package/lib/table/pipeline/features/index.js +0 -22
- package/lib/table/pipeline/features/mergeCellHover.js +0 -5
- package/lib/table/pipeline/features/multiSelect.js +15 -70
- package/lib/table/pipeline/features/rangeSelection.js +63 -159
- package/lib/table/pipeline/features/rowDetail.js +2 -65
- package/lib/table/pipeline/features/rowGrouping.js +2 -55
- package/lib/table/pipeline/features/singleSelect.js +0 -33
- package/lib/table/pipeline/features/sort.js +29 -99
- package/lib/table/pipeline/features/tips.js +0 -15
- package/lib/table/pipeline/features/treeMode.js +9 -64
- package/lib/table/pipeline/features/treeSelect.js +0 -34
- package/lib/table/pipeline/index.js +0 -8
- package/lib/table/pipeline/pipeline.js +9 -58
- package/lib/table/pivot/cross-table/buildCrossTable.js +15 -75
- package/lib/table/pivot/cross-table/cross-table.js +22 -36
- package/lib/table/pivot/cross-table/index.js +0 -4
- package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +14 -60
- package/lib/table/pivot/cross-tree-table/cross-tree-table.js +28 -60
- package/lib/table/pivot/cross-tree-table/index.js +0 -3
- package/lib/table/pivot/pivot-utils/buildDrillTree.js +10 -29
- package/lib/table/pivot/pivot-utils/builders.js +31 -82
- package/lib/table/pivot/pivot-utils/convert-utils.js +13 -57
- package/lib/table/pivot/pivot-utils/index.js +0 -7
- package/lib/table/pivot/pivot-utils/simpleEncode.js +0 -2
- package/lib/table/style/css.js +0 -1
- package/lib/table/style/index.js +0 -1
- package/lib/table/style/index.less +1 -1
- package/lib/table/transforms/autoRowSpan.js +1 -21
- package/lib/table/transforms/autoWidth.js +10 -53
- package/lib/table/transforms/buildTree.js +1 -4
- package/lib/table/transforms/columnHover.js +9 -22
- package/lib/table/transforms/columnRangeHover.js +12 -27
- package/lib/table/transforms/columnResize.js +15 -56
- package/lib/table/transforms/flatten.js +0 -5
- package/lib/table/transforms/index.js +0 -12
- package/lib/table/transforms/orderField.js +0 -7
- package/lib/table/transforms/sort.js +36 -112
- package/lib/table/transforms/tips.js +1 -16
- package/lib/table/transforms/treeMode.js +30 -96
- package/lib/table/transforms/visible.js +0 -7
- package/lib/table/transforms/warnTransformsDeprecated.js +0 -4
- package/lib/table/use/useResizeObserver.js +1 -8
- package/lib/table/utils/applyTransforms.js +0 -2
- package/lib/table/utils/buildTree.js +4 -30
- package/lib/table/utils/collectNodes.js +1 -15
- package/lib/table/utils/console.js +0 -16
- package/lib/table/utils/copyToClipboard.js +0 -6
- package/lib/table/utils/element.js +14 -46
- package/lib/table/utils/exportTableAsExcel.js +4 -49
- package/lib/table/utils/getTreeDepth.js +1 -14
- package/lib/table/utils/groupBy.js +1 -14
- package/lib/table/utils/index.js +0 -20
- package/lib/table/utils/isGroupColumn.js +0 -3
- package/lib/table/utils/isLeafNode.js +0 -1
- package/lib/table/utils/layeredFilter.js +0 -10
- package/lib/table/utils/layeredSort.js +0 -10
- package/lib/table/utils/makeRecursiveMapper.js +1 -21
- package/lib/table/utils/mergeCellProps.js +6 -17
- package/lib/table/utils/others.js +3 -31
- package/lib/table/utils/proto.js +2 -33
- package/lib/table/utils/smartCompare.js +4 -13
- package/lib/table/utils/traverseColumn.js +2 -22
- package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +1 -30
- package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +15 -82
- package/package.json +219 -218
|
@@ -3,7 +3,8 @@ import _createClass from "@babel/runtime-corejs3/helpers/createClass";
|
|
|
3
3
|
import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/slice";
|
|
4
4
|
import _Array$from from "@babel/runtime-corejs3/core-js-stable/array/from";
|
|
5
5
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
|
6
|
-
import { Classes } from '../styles';
|
|
6
|
+
import { Classes } from '../styles';
|
|
7
|
+
// 表格 DOM 结构
|
|
7
8
|
// div.art-table-wrapper
|
|
8
9
|
// └── div.art-loading-wrapper
|
|
9
10
|
// ├── div.art-loading-indicator-wrapper
|
|
@@ -40,39 +41,29 @@ import { Classes } from '../styles'; // 表格 DOM 结构
|
|
|
40
41
|
// 在「可能存在嵌套表格」的情况下,我们可以采用以下的方式来避免「querySelector 不小心获取到了的嵌套表格上的元素」:
|
|
41
42
|
// artTable.querySelector('.art-lock-shadow-mask .art-left-lock-shadow')
|
|
42
43
|
// 表格 DOM 结构辅助工具
|
|
43
|
-
|
|
44
44
|
export var TableDOMHelper = /*#__PURE__*/function () {
|
|
45
45
|
function TableDOMHelper(artTableWrapper) {
|
|
46
46
|
var _this = this,
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
_context2;
|
|
49
48
|
_classCallCheck(this, TableDOMHelper);
|
|
50
|
-
|
|
51
49
|
this.getRowNodeListByEvent = function (e) {
|
|
52
50
|
var nodeList = null;
|
|
53
51
|
var rowIndex = e.currentTarget.dataset.rowindex;
|
|
54
|
-
|
|
55
52
|
if (rowIndex !== undefined) {
|
|
56
53
|
var targetParent = _this.tableBody.contains(e.currentTarget) ? _this.tableBody : _this.tableFooter;
|
|
57
54
|
nodeList = targetParent.querySelectorAll("tr[data-rowindex=\"".concat(rowIndex, "\"]"));
|
|
58
55
|
}
|
|
59
|
-
|
|
60
56
|
return nodeList;
|
|
61
57
|
};
|
|
62
|
-
|
|
63
58
|
this.getInRangeRowByCellEvent = function (e) {
|
|
64
59
|
var _context;
|
|
65
|
-
|
|
66
60
|
var _a;
|
|
67
|
-
|
|
68
61
|
var getParentNode = function getParentNode(ele, target) {
|
|
69
62
|
if (ele.parentNode.nodeName === target) {
|
|
70
63
|
return ele.parentNode;
|
|
71
64
|
}
|
|
72
|
-
|
|
73
65
|
return getParentNode(ele.parentNode, target);
|
|
74
66
|
};
|
|
75
|
-
|
|
76
67
|
e = e instanceof Array ? e[0] : e;
|
|
77
68
|
var curCell = e === null || e === void 0 ? void 0 : e.currentTarget;
|
|
78
69
|
var curRow = getParentNode(curCell, 'TR');
|
|
@@ -80,7 +71,6 @@ export var TableDOMHelper = /*#__PURE__*/function () {
|
|
|
80
71
|
var rows = (_a = getParentNode(curCell, 'TABLE')) === null || _a === void 0 ? void 0 : _a.rows;
|
|
81
72
|
return _sliceInstanceProperty(_context = _Array$from(rows)).call(_context, curRow.rowIndex, curRow.rowIndex + curRowSpan);
|
|
82
73
|
};
|
|
83
|
-
|
|
84
74
|
this.artTableWrapper = artTableWrapper;
|
|
85
75
|
this.artTable = artTableWrapper.querySelector(".".concat(Classes.artTable));
|
|
86
76
|
this.tableHeader = this.artTable.querySelector(".".concat(Classes.tableHeader));
|
|
@@ -90,13 +80,10 @@ export var TableDOMHelper = /*#__PURE__*/function () {
|
|
|
90
80
|
this.tableElement = this.artTable.querySelector(".".concat(Classes.tableBody, " table"));
|
|
91
81
|
this.tableFooter = this.artTable.querySelector(".".concat(Classes.tableFooter));
|
|
92
82
|
this.tableFooterMain = this.artTable.querySelector(".".concat(Classes.tableFooterMain));
|
|
93
|
-
|
|
94
83
|
var stickyScrollSelector = _concatInstanceProperty(_context2 = ".".concat(Classes.artTable, " + .")).call(_context2, Classes.stickyScroll);
|
|
95
|
-
|
|
96
84
|
this.stickyScroll = artTableWrapper.querySelector(stickyScrollSelector);
|
|
97
85
|
this.stickyScrollItem = this.stickyScroll.querySelector(".".concat(Classes.stickyScrollItem));
|
|
98
86
|
}
|
|
99
|
-
|
|
100
87
|
_createClass(TableDOMHelper, [{
|
|
101
88
|
key: "getVirtualTop",
|
|
102
89
|
value: function getVirtualTop() {
|
|
@@ -106,7 +93,6 @@ export var TableDOMHelper = /*#__PURE__*/function () {
|
|
|
106
93
|
key: "getTableRows",
|
|
107
94
|
value: function getTableRows() {
|
|
108
95
|
var _context3;
|
|
109
|
-
|
|
110
96
|
var tbody = this.artTable.querySelector(_concatInstanceProperty(_context3 = ".".concat(Classes.tableBody, " .")).call(_context3, Classes.virtual, " table tbody"));
|
|
111
97
|
return tbody.childNodes;
|
|
112
98
|
}
|
|
@@ -114,16 +100,13 @@ export var TableDOMHelper = /*#__PURE__*/function () {
|
|
|
114
100
|
key: "getTableBodyHtmlTable",
|
|
115
101
|
value: function getTableBodyHtmlTable() {
|
|
116
102
|
var _context4;
|
|
117
|
-
|
|
118
103
|
return this.artTable.querySelector(_concatInstanceProperty(_context4 = ".".concat(Classes.tableBody, " .")).call(_context4, Classes.virtual, " table"));
|
|
119
104
|
}
|
|
120
105
|
}, {
|
|
121
106
|
key: "getLeftLockShadow",
|
|
122
107
|
value: function getLeftLockShadow() {
|
|
123
108
|
var _context5;
|
|
124
|
-
|
|
125
109
|
var selector = _concatInstanceProperty(_context5 = ".".concat(Classes.lockShadowMask, " .")).call(_context5, Classes.leftLockShadow);
|
|
126
|
-
|
|
127
110
|
var allLeftLockShadow = this.artTable.querySelectorAll(selector);
|
|
128
111
|
return allLeftLockShadow[allLeftLockShadow.length - 1]; // 当table-body、table-footer嵌套多层表格时,需要查找最后一个,否则会查找到嵌套表格的
|
|
129
112
|
}
|
|
@@ -131,9 +114,7 @@ export var TableDOMHelper = /*#__PURE__*/function () {
|
|
|
131
114
|
key: "getRightLockShadow",
|
|
132
115
|
value: function getRightLockShadow() {
|
|
133
116
|
var _context6;
|
|
134
|
-
|
|
135
117
|
var selector = _concatInstanceProperty(_context6 = ".".concat(Classes.lockShadowMask, " .")).call(_context6, Classes.rightLockShadow);
|
|
136
|
-
|
|
137
118
|
var allRightLockShadow = this.artTable.querySelectorAll(selector);
|
|
138
119
|
return allRightLockShadow[allRightLockShadow.length - 1]; // 当table-body、table-footer嵌套多层表格时,需要查找最后一个,否则会查找到嵌套表格的
|
|
139
120
|
}
|
|
@@ -146,17 +127,13 @@ export var TableDOMHelper = /*#__PURE__*/function () {
|
|
|
146
127
|
key: "getRowTop",
|
|
147
128
|
value: function getRowTop(rowIndex) {
|
|
148
129
|
var _context7, _context8;
|
|
149
|
-
|
|
150
130
|
if (rowIndex === 0) return 0;
|
|
151
|
-
|
|
152
131
|
var selector = _concatInstanceProperty(_context7 = _concatInstanceProperty(_context8 = ".".concat(Classes.tableBody, " .")).call(_context8, Classes.tableRow, "[data-rowindex=\"")).call(_context7, rowIndex, "\"]");
|
|
153
|
-
|
|
154
132
|
var row = this.artTable.querySelector(selector);
|
|
155
133
|
var rowOffsetTop = row && row.offsetTop || 0;
|
|
156
134
|
var tableOffsetTop = this.tableElement.offsetTop || 0;
|
|
157
135
|
return rowOffsetTop + tableOffsetTop;
|
|
158
136
|
}
|
|
159
137
|
}]);
|
|
160
|
-
|
|
161
138
|
return TableDOMHelper;
|
|
162
139
|
}();
|
|
@@ -8,8 +8,8 @@ describe("".concat(NAME), function () {
|
|
|
8
8
|
});
|
|
9
9
|
it('test skip', function () {
|
|
10
10
|
// 第二行,第一列跳过渲染
|
|
11
|
-
expect(spanManager.testSkip(1, 0)).toBe(true);
|
|
12
|
-
|
|
11
|
+
expect(spanManager.testSkip(1, 0)).toBe(true);
|
|
12
|
+
// 第四行,第一列不跳过渲染
|
|
13
13
|
expect(spanManager.testSkip(3, 0)).toBe(false);
|
|
14
14
|
});
|
|
15
15
|
it('strip upwards span info', function () {
|
|
@@ -7,7 +7,6 @@ describe("".concat(NAME), function () {
|
|
|
7
7
|
var container;
|
|
8
8
|
beforeAll(function () {
|
|
9
9
|
var _context, _context2, _context3, _context4, _context5, _context6, _context7, _context8, _context9, _context10, _context11, _context12, _context13, _context14, _context15, _context16, _context17;
|
|
10
|
-
|
|
11
10
|
container = document.createElement('div');
|
|
12
11
|
container.innerHTML = _concatInstanceProperty(_context = _concatInstanceProperty(_context2 = _concatInstanceProperty(_context3 = _concatInstanceProperty(_context4 = _concatInstanceProperty(_context5 = _concatInstanceProperty(_context6 = _concatInstanceProperty(_context7 = _concatInstanceProperty(_context8 = _concatInstanceProperty(_context9 = _concatInstanceProperty(_context10 = _concatInstanceProperty(_context11 = _concatInstanceProperty(_context12 = _concatInstanceProperty(_context13 = _concatInstanceProperty(_context14 = _concatInstanceProperty(_context15 = _concatInstanceProperty(_context16 = _concatInstanceProperty(_context17 = "<div class='".concat(Classes.artTableWrapper, "'>\n <div class='")).call(_context17, Classes.loadingWrapper, "'>\n <div class='")).call(_context16, Classes.loadingIndicatorWrapper, "'>\n <div class='")).call(_context15, Classes.loadingIndicator, "'></div>\n </div> \n <div class='")).call(_context14, Classes.loadingContentWrapper, "'>\n <div class='")).call(_context13, Classes.artTable, "'>\n <div class='")).call(_context12, Classes.tableHeader, "'>\n \n </div>\n <div class='")).call(_context11, Classes.tableBody, "'>\n <div class='")).call(_context10, Classes.virtual, "'>\n <div class='")).call(_context9, Classes.virtualBlank, " top'></div>\n <table></table>\n <div class='")).call(_context8, Classes.virtualBlank, " bottom'></div>\n </div> \n </div>\n <div class='")).call(_context7, Classes.tableFooter, "'>\n </div>\n <div class='")).call(_context6, Classes.lockShadowMask, "'>\n <div class='")).call(_context5, Classes.leftLockShadow, "'></div>\n </div>\n <div class='")).call(_context4, Classes.lockShadowMask, "'>\n <div class='")).call(_context3, Classes.rightLockShadow, "'></div>\n </div>\n </div>\n <div class='")).call(_context2, Classes.stickyScroll, "'>\n <div class='")).call(_context, Classes.stickyScrollItem, "'></div>\n </div>\n </div> \n </div> \n </div>");
|
|
13
12
|
tableDOMHelper = new TableDOMHelper(container.querySelector(".".concat(Classes.artTableWrapper)));
|
|
@@ -10,51 +10,39 @@ import ResizeObserver from 'resize-observer-polyfill';
|
|
|
10
10
|
import { fromEvent, merge, Observable } from 'rxjs';
|
|
11
11
|
import * as op from 'rxjs/operators';
|
|
12
12
|
import { shallowEqual } from '../utils';
|
|
13
|
-
|
|
14
13
|
function isWindow(arg) {
|
|
15
14
|
return arg.toString() === '[object Window]' || arg.toString() === '[object global]';
|
|
16
15
|
}
|
|
17
|
-
|
|
18
16
|
function isBody(arg) {
|
|
19
17
|
return getNodeName(arg) === 'body';
|
|
20
18
|
}
|
|
21
|
-
|
|
22
19
|
function isHtml(arg) {
|
|
23
20
|
return getNodeName(arg) === 'html';
|
|
24
21
|
}
|
|
25
|
-
|
|
26
22
|
function isHtmlOrBody(arg) {
|
|
27
23
|
return isHtml(arg) || isBody(arg);
|
|
28
|
-
}
|
|
24
|
+
}
|
|
25
|
+
// 计算从 start(子元素)到 stop(祖先元素)之间所有元素的 scrollTop 或 scrollLeft 的和
|
|
29
26
|
// 注意 start 和 stop 都是 INCLUSIVE 的,即两者的 scrollTop 或 scrollLeft 都会统计在内
|
|
30
|
-
|
|
31
|
-
|
|
32
27
|
function accumulateScrollOffset(start, stop, scrollOffsetKey) {
|
|
33
28
|
var result = 0;
|
|
34
29
|
var elem = start;
|
|
35
|
-
|
|
36
30
|
while (elem != null) {
|
|
37
31
|
result += elem[scrollOffsetKey];
|
|
38
|
-
|
|
39
32
|
if (elem === stop || isWindow(stop) && isHtmlOrBody(elem)) {
|
|
40
33
|
break;
|
|
41
34
|
}
|
|
42
|
-
|
|
43
35
|
elem = elem.parentElement;
|
|
44
36
|
}
|
|
45
|
-
|
|
46
37
|
if (isWindow(stop)) {
|
|
47
38
|
result += getWindowScroll(elem)[scrollOffsetKey];
|
|
48
39
|
}
|
|
49
|
-
|
|
50
40
|
return result;
|
|
51
41
|
}
|
|
52
42
|
/**
|
|
53
43
|
* 获取 target 相对于 base 的布局大小和相对位置。
|
|
54
44
|
* 注意该方法会考虑滚动所带来的影响
|
|
55
45
|
*/
|
|
56
|
-
|
|
57
|
-
|
|
58
46
|
function getRelativeLayoutRect(base, target) {
|
|
59
47
|
if (isWindow(target) || isHtmlOrBody(target)) {
|
|
60
48
|
return {
|
|
@@ -64,27 +52,22 @@ function getRelativeLayoutRect(base, target) {
|
|
|
64
52
|
bottom: window.innerHeight
|
|
65
53
|
};
|
|
66
54
|
}
|
|
67
|
-
|
|
68
55
|
var deltaX = 0;
|
|
69
56
|
var deltaY = 0;
|
|
70
57
|
var elem = target;
|
|
71
|
-
|
|
72
58
|
while (elem != null && elem != base) {
|
|
73
59
|
deltaY += elem.offsetTop;
|
|
74
60
|
deltaX += elem.offsetLeft;
|
|
75
61
|
var offsetParent = getOffsetParent(elem);
|
|
76
62
|
deltaY -= accumulateScrollOffset(elem.parentElement, offsetParent, 'scrollTop');
|
|
77
63
|
deltaX -= accumulateScrollOffset(elem.parentElement, offsetParent, 'scrollLeft');
|
|
78
|
-
|
|
79
64
|
if (isWindow(offsetParent)) {
|
|
80
65
|
break;
|
|
81
66
|
}
|
|
82
|
-
|
|
83
67
|
deltaY += offsetParent.clientTop;
|
|
84
68
|
deltaX += offsetParent.clientLeft;
|
|
85
69
|
elem = offsetParent;
|
|
86
70
|
}
|
|
87
|
-
|
|
88
71
|
return {
|
|
89
72
|
top: deltaY,
|
|
90
73
|
bottom: deltaY + target.offsetHeight,
|
|
@@ -92,51 +75,40 @@ function getRelativeLayoutRect(base, target) {
|
|
|
92
75
|
right: deltaX + target.offsetWidth
|
|
93
76
|
};
|
|
94
77
|
}
|
|
95
|
-
|
|
96
78
|
function findCommonOffsetAncestor(target, scrollParent) {
|
|
97
79
|
if (isWindow(scrollParent)) {
|
|
98
80
|
return scrollParent;
|
|
99
81
|
}
|
|
100
|
-
|
|
101
82
|
var offsetParents = listOffsetParents(target);
|
|
102
|
-
|
|
103
83
|
if (_includesInstanceProperty(offsetParents).call(offsetParents, scrollParent)) {
|
|
104
84
|
return scrollParent;
|
|
105
85
|
}
|
|
106
|
-
|
|
107
86
|
return getOffsetParent(scrollParent);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
|
|
87
|
+
}
|
|
88
|
+
// 列出 target 元素上层的所有 offset parents
|
|
111
89
|
function listOffsetParents(target) {
|
|
112
90
|
var result = [];
|
|
113
91
|
var elem = target;
|
|
114
|
-
|
|
115
92
|
while (true) {
|
|
116
93
|
if (isWindow(elem)) {
|
|
117
94
|
break;
|
|
118
95
|
}
|
|
119
|
-
|
|
120
96
|
elem = getOffsetParent(elem);
|
|
121
97
|
result.push(elem);
|
|
122
98
|
}
|
|
123
|
-
|
|
124
99
|
return result;
|
|
125
100
|
}
|
|
126
|
-
|
|
127
101
|
function fromScrollEvent(element) {
|
|
128
102
|
return fromEvent(element, 'scroll', {
|
|
129
103
|
passive: true
|
|
130
104
|
});
|
|
131
105
|
}
|
|
132
|
-
|
|
133
106
|
function fromResizeEvent(element) {
|
|
134
107
|
if (isWindow(element)) {
|
|
135
108
|
return fromEvent(element, 'resize', {
|
|
136
109
|
passive: true
|
|
137
110
|
});
|
|
138
111
|
}
|
|
139
|
-
|
|
140
112
|
return new Observable(function (subscriber) {
|
|
141
113
|
var resizeObserver = new ResizeObserver(function (entries) {
|
|
142
114
|
subscriber.next(entries);
|
|
@@ -147,29 +119,24 @@ function fromResizeEvent(element) {
|
|
|
147
119
|
};
|
|
148
120
|
});
|
|
149
121
|
}
|
|
150
|
-
|
|
151
122
|
function getScrollParent(elem) {
|
|
152
123
|
var _context;
|
|
153
|
-
|
|
154
124
|
if (_includesInstanceProperty(_context = ['html', 'body', '#document']).call(_context, getNodeName(elem))) {
|
|
155
125
|
return getWindow(elem);
|
|
156
126
|
}
|
|
157
|
-
|
|
158
127
|
if (isHTMLElement(elem) && isScrollParent(elem)) {
|
|
159
128
|
return elem;
|
|
160
129
|
}
|
|
161
|
-
|
|
162
130
|
return getScrollParent(getParentNode(elem));
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
|
|
131
|
+
}
|
|
132
|
+
// 获取 target 相对于「它的滚动父元素」的可见部分的大小与位置
|
|
166
133
|
export function getRichVisibleRectsStream(target, structureMayChange$, virtualDebugLabel) {
|
|
167
134
|
return structureMayChange$.pipe(op.startWith('init'), op.map(function () {
|
|
168
135
|
// target 的第一个滚动父元素,我们认为这就是虚拟滚动发生的地方
|
|
169
136
|
// 即虚拟滚动不考虑「更上层元素发生滚动」的情况
|
|
170
137
|
// 直接从父元素开始查找,防止自身设置overflow属性导致是同一个元素
|
|
171
|
-
var scrollParent = getScrollParent(getParentNode(target));
|
|
172
|
-
|
|
138
|
+
var scrollParent = getScrollParent(getParentNode(target));
|
|
139
|
+
// target 和 scrollParent 的共同 offset 祖先,作为布局尺寸计算时的参照元素
|
|
173
140
|
var commonOffsetAncestor = findCommonOffsetAncestor(target, scrollParent);
|
|
174
141
|
return {
|
|
175
142
|
scrollParent: scrollParent,
|
|
@@ -181,7 +148,7 @@ export function getRichVisibleRectsStream(target, structureMayChange$, virtualDe
|
|
|
181
148
|
}
|
|
182
149
|
}), op.switchMap(function (_ref) {
|
|
183
150
|
var scrollParent = _ref.scrollParent,
|
|
184
|
-
|
|
151
|
+
commonOffsetAncestor = _ref.commonOffsetAncestor;
|
|
185
152
|
var events$ = merge(fromScrollEvent(scrollParent), fromResizeEvent(scrollParent), fromResizeEvent(target));
|
|
186
153
|
return events$.pipe(op.map(function (event) {
|
|
187
154
|
return {
|
|
@@ -191,8 +158,8 @@ export function getRichVisibleRectsStream(target, structureMayChange$, virtualDe
|
|
|
191
158
|
};
|
|
192
159
|
}), op.map(function (_ref2) {
|
|
193
160
|
var event = _ref2.event,
|
|
194
|
-
|
|
195
|
-
|
|
161
|
+
scrollParentRect = _ref2.scrollParentRect,
|
|
162
|
+
targetRect = _ref2.targetRect;
|
|
196
163
|
return {
|
|
197
164
|
event: event,
|
|
198
165
|
targetRect: targetRect,
|
|
@@ -11,14 +11,11 @@ export function getFullRenderRange(rowCount) {
|
|
|
11
11
|
}
|
|
12
12
|
export function makeRowHeightManager(initRowCount, estimatedRowHeight) {
|
|
13
13
|
var _context;
|
|
14
|
-
|
|
15
14
|
var cache = _fillInstanceProperty(_context = new Array(initRowCount)).call(_context, estimatedRowHeight);
|
|
16
|
-
|
|
17
15
|
function getRenderRange(offset, maxRenderHeight, rowCount) {
|
|
18
16
|
if (cache.length !== rowCount) {
|
|
19
17
|
setRowCount(rowCount);
|
|
20
18
|
}
|
|
21
|
-
|
|
22
19
|
if (maxRenderHeight <= 0) {
|
|
23
20
|
// maxRenderHeight <= 0 说明表格目前在 viewport 之外
|
|
24
21
|
if (offset <= 0) {
|
|
@@ -32,7 +29,6 @@ export function makeRowHeightManager(initRowCount, estimatedRowHeight) {
|
|
|
32
29
|
// 表格与 viewport 相交
|
|
33
30
|
return getRenderRangeWhenInView();
|
|
34
31
|
}
|
|
35
|
-
|
|
36
32
|
function getRenderRangeWhenBelowView() {
|
|
37
33
|
var start = {
|
|
38
34
|
topIndex: 0,
|
|
@@ -41,22 +37,18 @@ export function makeRowHeightManager(initRowCount, estimatedRowHeight) {
|
|
|
41
37
|
var end = getEnd(0, start);
|
|
42
38
|
return _extends(_extends({}, start), end);
|
|
43
39
|
}
|
|
44
|
-
|
|
45
40
|
function getRenderRangeWhenAboveView() {
|
|
46
41
|
var totalSize = getEstimatedTotalSize(rowCount);
|
|
47
42
|
var start = getStart(totalSize);
|
|
48
43
|
var end = getEnd(totalSize, start);
|
|
49
44
|
return _extends(_extends({}, start), end);
|
|
50
45
|
}
|
|
51
|
-
|
|
52
46
|
function getRenderRangeWhenInView() {
|
|
53
47
|
var start = getStart(offset);
|
|
54
48
|
var end = getEnd(offset + maxRenderHeight, start);
|
|
55
49
|
return _extends(_extends({}, start), end);
|
|
56
50
|
}
|
|
57
51
|
/** 获取虚拟滚动在 开始位置上的信息 */
|
|
58
|
-
|
|
59
|
-
|
|
60
52
|
function getStart(offset) {
|
|
61
53
|
if (cache.length === 0) {
|
|
62
54
|
return {
|
|
@@ -64,73 +56,56 @@ export function makeRowHeightManager(initRowCount, estimatedRowHeight) {
|
|
|
64
56
|
topBlank: 0
|
|
65
57
|
};
|
|
66
58
|
}
|
|
67
|
-
|
|
68
59
|
var topIndex = 0;
|
|
69
60
|
var topBlank = 0;
|
|
70
|
-
|
|
71
61
|
while (topIndex < cache.length) {
|
|
72
62
|
var h = cache[topIndex];
|
|
73
|
-
|
|
74
63
|
if (topBlank + h >= offset) {
|
|
75
64
|
break;
|
|
76
65
|
}
|
|
77
|
-
|
|
78
66
|
topBlank += h;
|
|
79
67
|
topIndex += 1;
|
|
80
68
|
}
|
|
81
|
-
|
|
82
69
|
return overscanUpwards(topIndex, topBlank);
|
|
83
70
|
}
|
|
84
|
-
|
|
85
71
|
function overscanUpwards(topIndex, topBlank) {
|
|
86
72
|
var overscanSize = 0;
|
|
87
73
|
var overscanCount = 0;
|
|
88
|
-
|
|
89
74
|
while (overscanCount < topIndex && overscanSize < OVERSCAN_SIZE) {
|
|
90
75
|
overscanCount += 1;
|
|
91
76
|
overscanSize += cache[topIndex - overscanCount];
|
|
92
77
|
}
|
|
93
|
-
|
|
94
78
|
return {
|
|
95
79
|
topIndex: topIndex - overscanCount,
|
|
96
80
|
topBlank: topBlank - overscanSize
|
|
97
81
|
};
|
|
98
82
|
}
|
|
99
83
|
/** 获取虚拟滚动 在结束位置上的信息 */
|
|
100
|
-
|
|
101
|
-
|
|
102
84
|
function getEnd(endOffset, startInfo) {
|
|
103
85
|
var bottomIndex = startInfo.topIndex;
|
|
104
86
|
var offset = startInfo.topBlank;
|
|
105
|
-
|
|
106
87
|
while (bottomIndex < rowCount && offset < endOffset) {
|
|
107
88
|
offset += cache[bottomIndex];
|
|
108
89
|
bottomIndex += 1;
|
|
109
90
|
}
|
|
110
|
-
|
|
111
91
|
var bottomBlank = getEstimatedTotalSize(rowCount) - offset;
|
|
112
92
|
return overscanDownwards(bottomIndex, bottomBlank);
|
|
113
93
|
}
|
|
114
|
-
|
|
115
94
|
function overscanDownwards(bottomIndex, bottomBlank) {
|
|
116
95
|
var overscanSize = 0;
|
|
117
96
|
var overscanCount = 0;
|
|
118
|
-
|
|
119
97
|
while (overscanCount < rowCount - bottomIndex && overscanSize < OVERSCAN_SIZE) {
|
|
120
98
|
overscanSize += cache[bottomIndex + overscanCount];
|
|
121
99
|
overscanCount += 1;
|
|
122
100
|
}
|
|
123
|
-
|
|
124
101
|
return {
|
|
125
102
|
bottomIndex: bottomIndex + overscanCount,
|
|
126
103
|
bottomBlank: bottomBlank - overscanSize
|
|
127
104
|
};
|
|
128
105
|
}
|
|
129
|
-
|
|
130
106
|
function getEstimatedTotalSize(rowCount) {
|
|
131
107
|
return sum(cache) + (rowCount - cache.length) * estimatedRowHeight;
|
|
132
108
|
}
|
|
133
|
-
|
|
134
109
|
function setRowCount(count) {
|
|
135
110
|
// 将 cache 的长度设置为 count
|
|
136
111
|
if (count < cache.length) {
|
|
@@ -138,16 +113,13 @@ export function makeRowHeightManager(initRowCount, estimatedRowHeight) {
|
|
|
138
113
|
} else {
|
|
139
114
|
var prevSize = cache.length;
|
|
140
115
|
cache.length = count;
|
|
141
|
-
|
|
142
116
|
_fillInstanceProperty(cache).call(cache, estimatedRowHeight, prevSize);
|
|
143
117
|
}
|
|
144
118
|
}
|
|
145
119
|
}
|
|
146
|
-
|
|
147
120
|
function updateRow(index, offset, size) {
|
|
148
121
|
cache[index] = size;
|
|
149
122
|
}
|
|
150
|
-
|
|
151
123
|
return {
|
|
152
124
|
getRenderRange: getRenderRange,
|
|
153
125
|
updateRow: updateRow,
|
|
@@ -11,17 +11,15 @@ import SpanManager from './helpers/SpanManager';
|
|
|
11
11
|
import { Classes } from './styles';
|
|
12
12
|
export function HtmlTable(_ref) {
|
|
13
13
|
var tbodyHtmlTag = _ref.tbodyHtmlTag,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
14
|
+
getRowProps = _ref.getRowProps,
|
|
15
|
+
primaryKey = _ref.primaryKey,
|
|
16
|
+
stickyRightOffset = _ref.stickyRightOffset,
|
|
17
|
+
data = _ref.data,
|
|
18
|
+
verInfo = _ref.verticalRenderInfo,
|
|
19
|
+
hozInfo = _ref.horizontalRenderInfo,
|
|
20
|
+
tbodyPosition = _ref.tbodyPosition;
|
|
22
21
|
var flat = _flatInstanceProperty(hozInfo),
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
hoz = hozInfo.horizontalRenderRange;
|
|
25
23
|
var spanManager = new SpanManager();
|
|
26
24
|
var fullFlatCount = flat.full.length;
|
|
27
25
|
var leftFlatCount = flat.left.length;
|
|
@@ -29,20 +27,16 @@ export function HtmlTable(_ref) {
|
|
|
29
27
|
return /*#__PURE__*/React.createElement("table", null, /*#__PURE__*/React.createElement(Colgroup, {
|
|
30
28
|
descriptors: hozInfo.visible
|
|
31
29
|
}), /*#__PURE__*/React.createElement(tbodyHtmlTag, null, _mapInstanceProperty(data).call(data, renderRow)));
|
|
32
|
-
|
|
33
30
|
function renderRow(record, i) {
|
|
34
31
|
var _cx, _context;
|
|
35
|
-
|
|
36
32
|
var rowIndex = verInfo.offset + i;
|
|
37
33
|
spanManager.stripUpwards(rowIndex);
|
|
38
34
|
var rowProps = getRowProps(record, rowIndex);
|
|
39
35
|
var rowClass = cx(Classes.tableRow, (_cx = {}, _defineProperty(_cx, Classes.first, rowIndex === verInfo.first), _defineProperty(_cx, Classes.last, rowIndex === verInfo.last), _defineProperty(_cx, Classes.even, rowIndex % 2 === 0), _defineProperty(_cx, Classes.odd, rowIndex % 2 === 1), _cx), rowProps === null || rowProps === void 0 ? void 0 : rowProps.className);
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
var visibleColumnDescriptor = _concatInstanceProperty(_context = hozInfo.visible).call(_context);
|
|
37
|
+
// 左中右区域渲染,存在融合单元格时需要适配rowspan属性
|
|
42
38
|
// 如果固定的列均存在融合单元格,需空白一列做占位,否则融合的单元格不会渲染,导致显示异常
|
|
43
39
|
// 这里无法区分是否存在融合列,默认左右固定区域均添加占位空白列
|
|
44
|
-
|
|
45
|
-
|
|
46
40
|
if (['left', 'right'].indexOf(tbodyPosition) > -1) {
|
|
47
41
|
visibleColumnDescriptor.push({
|
|
48
42
|
type: 'blank',
|
|
@@ -51,7 +45,6 @@ export function HtmlTable(_ref) {
|
|
|
51
45
|
isPlacehoder: true
|
|
52
46
|
});
|
|
53
47
|
}
|
|
54
|
-
|
|
55
48
|
return /*#__PURE__*/React.createElement("tr", _extends({}, rowProps, {
|
|
56
49
|
className: rowClass,
|
|
57
50
|
key: (rowProps === null || rowProps === void 0 ? void 0 : rowProps['data-row-detail-key']) ? rowProps['data-row-detail-key'] : internals.safeGetRowKey(primaryKey, record, rowIndex),
|
|
@@ -66,31 +59,23 @@ export function HtmlTable(_ref) {
|
|
|
66
59
|
}
|
|
67
60
|
});
|
|
68
61
|
}
|
|
69
|
-
|
|
70
62
|
return renderBodyCell(record, rowIndex, descriptor.col, descriptor.colIndex);
|
|
71
63
|
}));
|
|
72
64
|
}
|
|
73
|
-
|
|
74
65
|
function renderBodyCell(record, rowIndex, column, colIndex) {
|
|
75
66
|
var _cx2;
|
|
76
|
-
|
|
77
67
|
var _a, _b, _c;
|
|
78
|
-
|
|
79
68
|
if (spanManager.testSkip(rowIndex, colIndex)) {
|
|
80
69
|
return null;
|
|
81
70
|
}
|
|
82
|
-
|
|
83
71
|
var value = internals.safeGetValue(column, record, rowIndex);
|
|
84
72
|
var cellProps = (_b = (_a = column.getCellProps) === null || _a === void 0 ? void 0 : _a.call(column, value, record, rowIndex)) !== null && _b !== void 0 ? _b : {};
|
|
85
73
|
var cellContent = value;
|
|
86
|
-
|
|
87
74
|
if (column.render) {
|
|
88
75
|
cellContent = column.render(value, record, rowIndex);
|
|
89
76
|
}
|
|
90
|
-
|
|
91
77
|
var colSpan = 1;
|
|
92
78
|
var rowSpan = 1;
|
|
93
|
-
|
|
94
79
|
if (column.getSpanRect) {
|
|
95
80
|
var spanRect = column.getSpanRect(value, record, rowIndex);
|
|
96
81
|
colSpan = spanRect == null ? 1 : spanRect.right - colIndex;
|
|
@@ -99,34 +84,28 @@ export function HtmlTable(_ref) {
|
|
|
99
84
|
if (cellProps.colSpan != null) {
|
|
100
85
|
colSpan = cellProps.colSpan;
|
|
101
86
|
}
|
|
102
|
-
|
|
103
87
|
if (cellProps.rowSpan != null) {
|
|
104
88
|
rowSpan = cellProps.rowSpan;
|
|
105
89
|
}
|
|
106
90
|
}
|
|
107
|
-
|
|
108
91
|
var hasSpan = colSpan > 1 || rowSpan > 1;
|
|
109
|
-
|
|
110
92
|
if (hasSpan) {
|
|
111
93
|
spanManager.add(rowIndex, colIndex, colSpan, rowSpan);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
|
|
94
|
+
}
|
|
95
|
+
// rowSpan/colSpan 不能过大,避免 rowSpan/colSpan 影响因虚拟滚动而未渲染的单元格
|
|
115
96
|
rowSpan = Math.min(rowSpan, verInfo.limit - rowIndex);
|
|
116
|
-
colSpan = Math.min(colSpan, hozInfo.visible.length - colIndex);
|
|
117
|
-
|
|
97
|
+
colSpan = Math.min(colSpan, hozInfo.visible.length - colIndex);
|
|
98
|
+
// todo: 右侧有列固定的情况下colSpan计算不对,这里先限制一下
|
|
118
99
|
rowSpan = Math.max(rowSpan, 1);
|
|
119
100
|
colSpan = Math.max(colSpan, 1);
|
|
120
101
|
var positionStyle = {};
|
|
121
|
-
|
|
122
102
|
if (colIndex < leftFlatCount) {
|
|
123
103
|
positionStyle.position = 'sticky';
|
|
124
104
|
positionStyle.left = hozInfo.stickyLeftMap.get(colIndex);
|
|
125
105
|
} else if (colIndex >= fullFlatCount - rightFlatCount) {
|
|
126
106
|
positionStyle.position = 'sticky';
|
|
127
|
-
positionStyle.right = hozInfo.stickyRightMap.get(colIndex)
|
|
107
|
+
positionStyle.right = hozInfo.stickyRightMap.get(colIndex) + (typeof stickyRightOffset === 'number' ? stickyRightOffset : 0);
|
|
128
108
|
}
|
|
129
|
-
|
|
130
109
|
return /*#__PURE__*/React.createElement('td', _extends(_extends(_extends(_extends({
|
|
131
110
|
key: colIndex
|
|
132
111
|
}, cellProps), {
|
package/es/table/base/loading.js
CHANGED
|
@@ -28,10 +28,9 @@ var DefaultLoadingIcon = /*#__PURE__*/React.memo(function () {
|
|
|
28
28
|
values: "0 50 50;360 50 50"
|
|
29
29
|
})));
|
|
30
30
|
});
|
|
31
|
-
|
|
32
31
|
function DefaultLoadingContentWrapper(_ref) {
|
|
33
32
|
var children = _ref.children,
|
|
34
|
-
|
|
33
|
+
visible = _ref.visible;
|
|
35
34
|
return /*#__PURE__*/React.createElement("div", {
|
|
36
35
|
className: Classes.loadingContentWrapper,
|
|
37
36
|
style: {
|
|
@@ -39,14 +38,13 @@ function DefaultLoadingContentWrapper(_ref) {
|
|
|
39
38
|
}
|
|
40
39
|
}, children);
|
|
41
40
|
}
|
|
42
|
-
|
|
43
41
|
export default function Loading(_ref2) {
|
|
44
42
|
var visible = _ref2.visible,
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
43
|
+
children = _ref2.children,
|
|
44
|
+
_ref2$LoadingContentW = _ref2.LoadingContentWrapper,
|
|
45
|
+
LoadingContentWrapper = _ref2$LoadingContentW === void 0 ? DefaultLoadingContentWrapper : _ref2$LoadingContentW,
|
|
46
|
+
_ref2$LoadingIcon = _ref2.LoadingIcon,
|
|
47
|
+
LoadingIcon = _ref2$LoadingIcon === void 0 ? DefaultLoadingIcon : _ref2$LoadingIcon;
|
|
50
48
|
return /*#__PURE__*/React.createElement("div", {
|
|
51
49
|
className: Classes.loadingWrapper
|
|
52
50
|
}, visible && /*#__PURE__*/React.createElement("div", {
|