@kdcloudjs/table 1.0.1 → 1.0.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 +1 -1
- package/README.md +34 -33
- package/dist/@kdcloudjs/table.css +1 -1
- package/dist/@kdcloudjs/table.css.map +1 -1
- package/dist/@kdcloudjs/table.js +6323 -3240
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +32 -24
- package/dist/@kdcloudjs/table.min.js.map +1 -1
- package/es/_utils/hooks.js +1 -2
- package/es/_utils/numberUtil.js +3 -4
- package/es/locale/locale.js +1 -2
- package/es/table/base/calculations.js +2 -3
- package/es/table/base/header.d.ts +6 -2
- package/es/table/base/header.js +36 -13
- package/es/table/base/helpers/SpanManager.js +1 -1
- package/es/table/base/helpers/TableDOMUtils.d.ts +3 -0
- package/es/table/base/helpers/TableDOMUtils.js +23 -5
- package/es/table/base/helpers/getRichVisibleRectsStream.d.ts +23 -0
- package/es/table/base/helpers/getRichVisibleRectsStream.js +216 -0
- package/es/table/base/html-table.d.ts +3 -1
- package/es/table/base/html-table.js +34 -8
- package/es/table/base/interfaces.d.ts +1 -0
- package/es/table/base/renderTemplates.d.ts +1 -0
- package/es/table/base/renderTemplates.js +344 -0
- package/es/table/base/styles.d.ts +14 -0
- package/es/table/base/styles.js +20 -8
- package/es/table/base/table.d.ts +12 -4
- package/es/table/base/table.js +183 -136
- package/es/table/base/utils.d.ts +6 -3
- package/es/table/base/utils.js +27 -6
- package/es/table/common-views.js +1 -1
- package/es/table/pipeline/features/autoFill.js +7 -1
- package/es/table/pipeline/features/columnDrag.js +109 -41
- package/es/table/pipeline/features/columnFilter.js +7 -9
- package/es/table/pipeline/features/columnResizeWidth.d.ts +3 -0
- package/es/table/pipeline/features/columnResizeWidth.js +11 -4
- package/es/table/pipeline/features/contextMenu.js +42 -10
- package/es/table/pipeline/features/filter/Filter.js +74 -37
- package/es/table/pipeline/features/index.d.ts +1 -0
- package/es/table/pipeline/features/index.js +2 -1
- package/es/table/pipeline/features/rangeSelection.d.ts +10 -0
- package/es/table/pipeline/features/rangeSelection.js +231 -0
- package/es/table/pipeline/features/rowDetail.js +37 -15
- package/es/table/pipeline/features/singleSelect.js +4 -1
- package/es/table/pipeline/features/sort.js +2 -3
- package/es/table/pipeline/features/treeMode.js +1 -2
- package/es/table/pipeline/pipeline.d.ts +4 -0
- package/es/table/pipeline/pipeline.js +32 -5
- package/es/table/pivot/cross-table/buildCrossTable.js +1 -2
- package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +1 -2
- package/es/table/pivot/pivot-utils/builders.js +1 -2
- package/es/table/pivot/pivot-utils/convert-utils.js +1 -2
- package/es/table/transforms/autoWidth.js +1 -2
- package/es/table/transforms/sort.js +1 -2
- package/es/table/transforms/treeMode.js +1 -2
- package/es/table/utils/applyTransforms.js +1 -3
- package/es/table/utils/browserType.d.ts +6 -0
- package/es/table/utils/browserType.js +6 -0
- package/es/table/utils/buildTree.js +4 -5
- package/es/table/utils/collectNodes.js +1 -2
- package/es/table/utils/exportTableAsExcel.js +1 -2
- package/es/table/utils/getTreeDepth.js +1 -2
- package/es/table/utils/groupBy.js +1 -2
- package/es/table/utils/index.d.ts +1 -0
- package/es/table/utils/index.js +2 -1
- package/es/table/utils/layeredSort.js +5 -2
- package/es/table/utils/makeRecursiveMapper.js +4 -5
- package/es/table/utils/others.d.ts +1 -1
- package/es/table/utils/others.js +20 -14
- package/es/table/utils/traverseColumn.js +1 -2
- package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +4 -5
- package/es/table/utils/tree-data-helpers/TreeDataHelper.js +4 -5
- package/lib/_utils/formatUtil.js +1 -1
- package/lib/_utils/hooks.js +2 -4
- package/lib/_utils/numberUtil.js +7 -9
- package/lib/_utils/usePopper.js +9 -1
- package/lib/config-provider/configProvider.js +9 -1
- package/lib/config-provider/index.js +5 -5
- package/lib/locale/index.js +14 -6
- package/lib/locale/locale.js +2 -4
- package/lib/table/base/calculations.js +3 -5
- package/lib/table/base/empty.js +9 -1
- package/lib/table/base/header.d.ts +6 -2
- package/lib/table/base/header.js +33 -10
- package/lib/table/base/helpers/SpanManager.js +1 -1
- package/lib/table/base/helpers/TableDOMUtils.d.ts +3 -0
- package/lib/table/base/helpers/TableDOMUtils.js +21 -5
- package/lib/table/base/helpers/getRichVisibleRectsStream.d.ts +23 -0
- package/lib/table/base/helpers/getRichVisibleRectsStream.js +246 -0
- package/lib/table/base/html-table.d.ts +3 -1
- package/lib/table/base/html-table.js +34 -8
- package/lib/table/base/index.js +4 -4
- package/lib/table/base/interfaces.d.ts +1 -0
- package/lib/table/base/renderTemplates.d.ts +1 -0
- package/lib/table/base/renderTemplates.js +370 -0
- package/lib/table/base/styles.d.ts +14 -0
- package/lib/table/base/styles.js +31 -12
- package/lib/table/base/table.d.ts +12 -4
- package/lib/table/base/table.js +191 -137
- package/lib/table/base/utils.d.ts +6 -3
- package/lib/table/base/utils.js +47 -10
- package/lib/table/common-views.js +2 -2
- package/lib/table/pipeline/features/__test__/sort.test.js +5 -3
- package/lib/table/pipeline/features/autoFill.js +9 -2
- package/lib/table/pipeline/features/columnDrag.js +108 -40
- package/lib/table/pipeline/features/columnFilter.js +6 -9
- package/lib/table/pipeline/features/columnResizeWidth.d.ts +3 -0
- package/lib/table/pipeline/features/columnResizeWidth.js +21 -5
- package/lib/table/pipeline/features/contextMenu.js +53 -11
- package/lib/table/pipeline/features/filter/DefaultFilterContent.js +10 -2
- package/lib/table/pipeline/features/filter/Filter.js +88 -37
- package/lib/table/pipeline/features/filter/FilterPanel.js +10 -2
- package/lib/table/pipeline/features/filter/index.js +4 -4
- package/lib/table/pipeline/features/index.d.ts +1 -0
- package/lib/table/pipeline/features/index.js +37 -27
- package/lib/table/pipeline/features/rangeSelection.d.ts +10 -0
- package/lib/table/pipeline/features/rangeSelection.js +256 -0
- package/lib/table/pipeline/features/rowDetail.js +39 -15
- package/lib/table/pipeline/features/singleSelect.js +4 -1
- package/lib/table/pipeline/features/sort.js +2 -4
- package/lib/table/pipeline/features/treeMode.js +2 -4
- package/lib/table/pipeline/index.js +11 -3
- package/lib/table/pipeline/pipeline.d.ts +4 -0
- package/lib/table/pipeline/pipeline.js +33 -7
- package/lib/table/pivot/cross-table/buildCrossTable.js +1 -3
- package/lib/table/pivot/cross-table/index.js +4 -4
- package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +1 -3
- package/lib/table/pivot/pivot-utils/builders.js +2 -4
- package/lib/table/pivot/pivot-utils/convert-utils.js +1 -3
- package/lib/table/pivot/pivot-utils/index.js +4 -4
- package/lib/table/transforms/autoWidth.js +10 -4
- package/lib/table/transforms/columnResize.js +10 -2
- package/lib/table/transforms/index.js +32 -32
- package/lib/table/transforms/sort.js +10 -4
- package/lib/table/transforms/treeMode.js +9 -3
- package/lib/table/utils/applyTransforms.js +1 -5
- package/lib/table/utils/browserType.d.ts +6 -0
- package/lib/table/utils/browserType.js +13 -0
- package/lib/table/utils/buildTree.js +1 -3
- package/lib/table/utils/collectNodes.js +1 -3
- package/lib/table/utils/copyToClipboard.js +1 -1
- package/lib/table/utils/element.js +3 -3
- package/lib/table/utils/exportTableAsExcel.js +1 -3
- package/lib/table/utils/getTreeDepth.js +1 -3
- package/lib/table/utils/groupBy.js +1 -3
- package/lib/table/utils/index.d.ts +1 -0
- package/lib/table/utils/index.js +57 -49
- package/lib/table/utils/layeredSort.js +6 -2
- package/lib/table/utils/makeRecursiveMapper.js +1 -3
- package/lib/table/utils/others.d.ts +1 -1
- package/lib/table/utils/others.js +23 -18
- package/lib/table/utils/traverseColumn.js +1 -3
- package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +5 -7
- package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +5 -7
- package/package.json +6 -2
- package/dist/kd-table.css +0 -422
- package/dist/kd-table.css.map +0 -1
- package/dist/kd-table.js +0 -38578
- package/dist/kd-table.js.map +0 -1
- package/dist/kd-table.min.css +0 -9
- package/dist/kd-table.min.js +0 -208
- package/dist/kd-table.min.js.map +0 -1
- package/es/table/base/helpers/__test__/visible-part.test.d.ts +0 -1
- package/es/table/base/helpers/__test__/visible-part.test.js +0 -28
- package/es/table/base/helpers/visible-part.d.ts +0 -23
- package/es/table/base/helpers/visible-part.js +0 -58
- package/lib/table/base/helpers/__test__/visible-part.test.d.ts +0 -1
- package/lib/table/base/helpers/__test__/visible-part.test.js +0 -31
- package/lib/table/base/helpers/visible-part.d.ts +0 -23
- package/lib/table/base/helpers/visible-part.js +0 -72
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
import _extends from "@babel/runtime-corejs3/helpers/extends";
|
|
2
2
|
import _flatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/flat";
|
|
3
3
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
4
|
+
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
|
4
5
|
import cx from 'classnames';
|
|
5
6
|
import React from 'react';
|
|
6
7
|
import { internals } from '../internals';
|
|
7
8
|
import { Colgroup } from './colgroup';
|
|
8
9
|
import SpanManager from './helpers/SpanManager';
|
|
9
10
|
import { Classes } from './styles';
|
|
11
|
+
import { getScrollbarSize } from './utils';
|
|
10
12
|
export function HtmlTable(_ref) {
|
|
11
13
|
var tbodyHtmlTag = _ref.tbodyHtmlTag,
|
|
12
14
|
getRowProps = _ref.getRowProps,
|
|
13
15
|
primaryKey = _ref.primaryKey,
|
|
16
|
+
hasScrollY = _ref.hasScrollY,
|
|
14
17
|
data = _ref.data,
|
|
15
18
|
verInfo = _ref.verticalRenderInfo,
|
|
16
|
-
hozInfo = _ref.horizontalRenderInfo
|
|
19
|
+
hozInfo = _ref.horizontalRenderInfo,
|
|
20
|
+
tbodyPosition = _ref.tbodyPosition;
|
|
17
21
|
|
|
18
22
|
var flat = _flatInstanceProperty(hozInfo),
|
|
19
23
|
hoz = hozInfo.horizontalRenderRange;
|
|
@@ -38,15 +42,33 @@ export function HtmlTable(_ref) {
|
|
|
38
42
|
even: rowIndex % 2 === 0,
|
|
39
43
|
odd: rowIndex % 2 === 1
|
|
40
44
|
}, rowProps === null || rowProps === void 0 ? void 0 : rowProps.className);
|
|
45
|
+
|
|
46
|
+
var visibleColumnDescriptor = _concatInstanceProperty(_context = hozInfo.visible).call(_context); // 左中右区域渲染,存在融合单元格时需要适配rowspan属性
|
|
47
|
+
// 如果固定的列均存在融合单元格,需空白一列做占位,否则融合的单元格不会渲染,导致显示异常
|
|
48
|
+
// 这里无法区分是否存在融合列,默认左右固定区域均添加占位空白列
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
if (['left', 'right'].indexOf(tbodyPosition) > -1) {
|
|
52
|
+
visibleColumnDescriptor.push({
|
|
53
|
+
type: 'blank',
|
|
54
|
+
blankSide: 'left',
|
|
55
|
+
width: 0,
|
|
56
|
+
isPlacehoder: true
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
41
60
|
return /*#__PURE__*/React.createElement("tr", _extends({}, rowProps, {
|
|
42
61
|
className: rowClass,
|
|
43
|
-
key: internals.safeGetRowKey(primaryKey, record, rowIndex),
|
|
62
|
+
key: (rowProps === null || rowProps === void 0 ? void 0 : rowProps['data-row-detail-key']) ? rowProps['data-row-detail-key'] : internals.safeGetRowKey(primaryKey, record, rowIndex),
|
|
44
63
|
"data-rowindex": rowIndex,
|
|
45
64
|
"data-role": 'table-row'
|
|
46
|
-
}), _mapInstanceProperty(
|
|
65
|
+
}), _mapInstanceProperty(visibleColumnDescriptor).call(visibleColumnDescriptor, function (descriptor) {
|
|
47
66
|
if (descriptor.type === 'blank') {
|
|
48
67
|
return /*#__PURE__*/React.createElement("td", {
|
|
49
|
-
key: descriptor.blankSide
|
|
68
|
+
key: descriptor.blankSide,
|
|
69
|
+
style: {
|
|
70
|
+
visibility: descriptor.isPlacehoder ? 'hidden' : undefined
|
|
71
|
+
}
|
|
50
72
|
});
|
|
51
73
|
}
|
|
52
74
|
|
|
@@ -88,7 +110,10 @@ export function HtmlTable(_ref) {
|
|
|
88
110
|
|
|
89
111
|
|
|
90
112
|
rowSpan = Math.min(rowSpan, verInfo.limit - rowIndex);
|
|
91
|
-
colSpan = Math.min(colSpan, leftFlatCount + hoz.rightIndex - colIndex);
|
|
113
|
+
colSpan = Math.min(colSpan, leftFlatCount + hoz.rightIndex + rightFlatCount - colIndex); // todo: 右侧有列固定的情况下colSpan计算不对,这里先限制一下
|
|
114
|
+
|
|
115
|
+
rowSpan = Math.max(rowSpan, 1);
|
|
116
|
+
colSpan = Math.max(colSpan, 1);
|
|
92
117
|
var hasSpan = colSpan > 1 || rowSpan > 1;
|
|
93
118
|
|
|
94
119
|
if (hasSpan) {
|
|
@@ -96,13 +121,14 @@ export function HtmlTable(_ref) {
|
|
|
96
121
|
}
|
|
97
122
|
|
|
98
123
|
var positionStyle = {};
|
|
124
|
+
var scrollbarWidth = hasScrollY ? getScrollbarSize().width : 0;
|
|
99
125
|
|
|
100
126
|
if (colIndex < leftFlatCount) {
|
|
101
127
|
positionStyle.position = 'sticky';
|
|
102
128
|
positionStyle.left = hozInfo.stickyLeftMap.get(colIndex);
|
|
103
129
|
} else if (colIndex >= fullFlatCount - rightFlatCount) {
|
|
104
130
|
positionStyle.position = 'sticky';
|
|
105
|
-
positionStyle.right = hozInfo.stickyRightMap.get(colIndex);
|
|
131
|
+
positionStyle.right = hozInfo.stickyRightMap.get(colIndex) - scrollbarWidth;
|
|
106
132
|
}
|
|
107
133
|
|
|
108
134
|
return /*#__PURE__*/React.createElement('td', _extends(_extends(_extends(_extends({
|
|
@@ -112,7 +138,7 @@ export function HtmlTable(_ref) {
|
|
|
112
138
|
// class
|
|
113
139
|
first: colIndex === 0,
|
|
114
140
|
last: colIndex + colSpan === fullFlatCount,
|
|
115
|
-
'lock-left': colIndex < leftFlatCount,
|
|
141
|
+
'lock-left': colIndex < leftFlatCount || tbodyPosition === 'left',
|
|
116
142
|
'lock-right': colIndex >= fullFlatCount - rightFlatCount,
|
|
117
143
|
'row-span': rowSpan > 1
|
|
118
144
|
})
|
|
@@ -127,6 +153,6 @@ export function HtmlTable(_ref) {
|
|
|
127
153
|
'data-role': 'table-cell',
|
|
128
154
|
'data-rowindex': rowIndex,
|
|
129
155
|
'data-code': column.code
|
|
130
|
-
}), cellContent);
|
|
156
|
+
}), tbodyPosition === 'center' && positionStyle.position === 'sticky' ? null : cellContent);
|
|
131
157
|
}
|
|
132
158
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function getTableHeaderRenderTemplate(type: string): any;
|
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
import _extends from "@babel/runtime-corejs3/helpers/extends";
|
|
2
|
+
import _Map from "@babel/runtime-corejs3/core-js-stable/map";
|
|
3
|
+
import _flatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/flat";
|
|
4
|
+
import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/slice";
|
|
5
|
+
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
|
6
|
+
|
|
7
|
+
/*
|
|
8
|
+
* @Author: wqhui
|
|
9
|
+
* @Date: 2022-03-14 11:21:12
|
|
10
|
+
* @Description: 不同情况的渲染模板,比如IE下的
|
|
11
|
+
*/
|
|
12
|
+
import React, { useEffect, useRef } from 'react';
|
|
13
|
+
import ReactDom from 'react-dom';
|
|
14
|
+
import cx from 'classnames';
|
|
15
|
+
import { HtmlTable } from './html-table';
|
|
16
|
+
import { Classes } from './styles';
|
|
17
|
+
import { composeRowPropsGetter, getScrollbarSize } from './utils';
|
|
18
|
+
import { getTreeDepth, browserType } from '../utils';
|
|
19
|
+
import TableHeader from './header';
|
|
20
|
+
var TEMPLATES = new _Map();
|
|
21
|
+
|
|
22
|
+
function renderTableHeaderInIE(info, props) {
|
|
23
|
+
var stickyTop = props.stickyTop,
|
|
24
|
+
hasHeader = props.hasHeader;
|
|
25
|
+
|
|
26
|
+
var flat = _flatInstanceProperty(info),
|
|
27
|
+
nested = info.nested,
|
|
28
|
+
visible = info.visible,
|
|
29
|
+
hasLockColumn = info.hasLockColumn;
|
|
30
|
+
|
|
31
|
+
var left = flat.left,
|
|
32
|
+
right = flat.right;
|
|
33
|
+
var leftNested = nested.left,
|
|
34
|
+
rightNested = nested.right,
|
|
35
|
+
full = nested.full;
|
|
36
|
+
var rowCount = getTreeDepth(full) + 1;
|
|
37
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
38
|
+
className: cx(Classes.tableHeader)
|
|
39
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
40
|
+
className: cx(Classes.tableHeaderMain, 'no-scrollbar'),
|
|
41
|
+
style: {
|
|
42
|
+
top: stickyTop === 0 ? undefined : stickyTop,
|
|
43
|
+
display: hasHeader ? undefined : 'none'
|
|
44
|
+
}
|
|
45
|
+
}, /*#__PURE__*/React.createElement(TableHeader, {
|
|
46
|
+
info: info,
|
|
47
|
+
theaderPosition: hasLockColumn ? 'center' : undefined
|
|
48
|
+
})), left.length > 0 ? /*#__PURE__*/React.createElement("div", {
|
|
49
|
+
className: Classes.fixedLeft
|
|
50
|
+
}, /*#__PURE__*/React.createElement(TableHeader, {
|
|
51
|
+
info: _extends(_extends({}, info), {
|
|
52
|
+
flat: {
|
|
53
|
+
center: left,
|
|
54
|
+
full: left,
|
|
55
|
+
left: [],
|
|
56
|
+
right: []
|
|
57
|
+
},
|
|
58
|
+
nested: {
|
|
59
|
+
center: leftNested,
|
|
60
|
+
full: leftNested,
|
|
61
|
+
left: [],
|
|
62
|
+
right: []
|
|
63
|
+
},
|
|
64
|
+
visible: _sliceInstanceProperty(visible).call(visible, 0, left.length),
|
|
65
|
+
horizontalRenderRange: {
|
|
66
|
+
leftIndex: 0,
|
|
67
|
+
leftBlank: 0,
|
|
68
|
+
rightIndex: left.length,
|
|
69
|
+
rightBlank: 0
|
|
70
|
+
}
|
|
71
|
+
}),
|
|
72
|
+
theaderPosition: "left",
|
|
73
|
+
rowCount: rowCount
|
|
74
|
+
})) : null, right.length > 0 ? /*#__PURE__*/React.createElement("div", {
|
|
75
|
+
className: Classes.fixedRight
|
|
76
|
+
}, /*#__PURE__*/React.createElement(TableHeader, {
|
|
77
|
+
info: _extends(_extends({}, info), {
|
|
78
|
+
flat: {
|
|
79
|
+
center: right,
|
|
80
|
+
full: right,
|
|
81
|
+
left: [],
|
|
82
|
+
right: []
|
|
83
|
+
},
|
|
84
|
+
nested: {
|
|
85
|
+
center: rightNested,
|
|
86
|
+
full: rightNested,
|
|
87
|
+
left: [],
|
|
88
|
+
right: []
|
|
89
|
+
},
|
|
90
|
+
visible: _sliceInstanceProperty(visible).call(visible, visible.length - right.length),
|
|
91
|
+
horizontalRenderRange: {
|
|
92
|
+
leftIndex: 0,
|
|
93
|
+
leftBlank: 0,
|
|
94
|
+
rightIndex: right.length,
|
|
95
|
+
rightBlank: 0
|
|
96
|
+
}
|
|
97
|
+
}),
|
|
98
|
+
theaderPosition: 'right',
|
|
99
|
+
rowCount: rowCount
|
|
100
|
+
})) : null);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function renderTableBodyInIE(info, props, extra) {
|
|
104
|
+
var dataSource = props.dataSource,
|
|
105
|
+
getRowProps = props.getRowProps,
|
|
106
|
+
primaryKey = props.primaryKey;
|
|
107
|
+
var _info$verticalRenderR = info.verticalRenderRange,
|
|
108
|
+
topIndex = _info$verticalRenderR.topIndex,
|
|
109
|
+
bottomBlank = _info$verticalRenderR.bottomBlank,
|
|
110
|
+
topBlank = _info$verticalRenderR.topBlank,
|
|
111
|
+
bottomIndex = _info$verticalRenderR.bottomIndex;
|
|
112
|
+
|
|
113
|
+
var flat = _flatInstanceProperty(info),
|
|
114
|
+
visible = info.visible,
|
|
115
|
+
hasLockColumn = info.hasLockColumn;
|
|
116
|
+
|
|
117
|
+
var left = flat.left,
|
|
118
|
+
right = flat.right;
|
|
119
|
+
var verticalRenderInfo = {
|
|
120
|
+
first: 0,
|
|
121
|
+
offset: topIndex,
|
|
122
|
+
limit: bottomIndex,
|
|
123
|
+
last: dataSource.length - 1
|
|
124
|
+
};
|
|
125
|
+
var commonProps = {
|
|
126
|
+
getRowProps: composeRowPropsGetter(getRowProps, extra.rowProps),
|
|
127
|
+
primaryKey: primaryKey,
|
|
128
|
+
data: _sliceInstanceProperty(dataSource).call(dataSource, topIndex, bottomIndex)
|
|
129
|
+
};
|
|
130
|
+
var scrollbarWidth = extra.hasScrollY ? getScrollbarSize().width : 0;
|
|
131
|
+
var fixedRightTableStyle = {
|
|
132
|
+
right: -scrollbarWidth
|
|
133
|
+
};
|
|
134
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
135
|
+
className: cx(Classes.tableBody, Classes.horizontalScrollContainer)
|
|
136
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
137
|
+
className: Classes.virtual
|
|
138
|
+
}, topBlank > 0 && /*#__PURE__*/React.createElement("div", {
|
|
139
|
+
key: "top-blank",
|
|
140
|
+
className: cx(Classes.virtualBlank, 'top'),
|
|
141
|
+
style: {
|
|
142
|
+
height: topBlank
|
|
143
|
+
}
|
|
144
|
+
}), /*#__PURE__*/React.createElement(HtmlTable, _extends({
|
|
145
|
+
tbodyHtmlTag: "tbody"
|
|
146
|
+
}, commonProps, {
|
|
147
|
+
tbodyPosition: hasLockColumn ? 'center' : undefined,
|
|
148
|
+
horizontalRenderInfo: info,
|
|
149
|
+
verticalRenderInfo: verticalRenderInfo
|
|
150
|
+
})), bottomBlank > 0 && /*#__PURE__*/React.createElement("div", {
|
|
151
|
+
key: "bottom-blank",
|
|
152
|
+
className: cx(Classes.virtualBlank, 'bottom'),
|
|
153
|
+
style: {
|
|
154
|
+
height: bottomBlank
|
|
155
|
+
}
|
|
156
|
+
})), left.length > 0 ? /*#__PURE__*/React.createElement("div", {
|
|
157
|
+
className: Classes.fixedLeft
|
|
158
|
+
}, topBlank > 0 && /*#__PURE__*/React.createElement("div", {
|
|
159
|
+
key: "top-blank",
|
|
160
|
+
className: cx(Classes.virtualBlank, 'top'),
|
|
161
|
+
style: {
|
|
162
|
+
height: topBlank
|
|
163
|
+
}
|
|
164
|
+
}), /*#__PURE__*/React.createElement(HtmlTable, _extends({
|
|
165
|
+
tbodyHtmlTag: "tbody"
|
|
166
|
+
}, commonProps, {
|
|
167
|
+
tbodyPosition: "left",
|
|
168
|
+
horizontalRenderInfo: _extends(_extends({}, info), {
|
|
169
|
+
flat: {
|
|
170
|
+
center: left,
|
|
171
|
+
full: left,
|
|
172
|
+
left: [],
|
|
173
|
+
right: []
|
|
174
|
+
},
|
|
175
|
+
visible: _sliceInstanceProperty(visible).call(visible, 0, left.length)
|
|
176
|
+
}),
|
|
177
|
+
verticalRenderInfo: verticalRenderInfo
|
|
178
|
+
})), bottomBlank > 0 && /*#__PURE__*/React.createElement("div", {
|
|
179
|
+
key: "bottom-blank",
|
|
180
|
+
className: cx(Classes.virtualBlank, 'bottom'),
|
|
181
|
+
style: {
|
|
182
|
+
height: bottomBlank
|
|
183
|
+
}
|
|
184
|
+
})) : null, right.length > 0 ? /*#__PURE__*/React.createElement("div", {
|
|
185
|
+
className: Classes.fixedRight,
|
|
186
|
+
style: fixedRightTableStyle
|
|
187
|
+
}, topBlank > 0 && /*#__PURE__*/React.createElement("div", {
|
|
188
|
+
key: "top-blank",
|
|
189
|
+
className: cx(Classes.virtualBlank, 'top'),
|
|
190
|
+
style: {
|
|
191
|
+
height: topBlank
|
|
192
|
+
}
|
|
193
|
+
}), /*#__PURE__*/React.createElement(HtmlTable, _extends({
|
|
194
|
+
tbodyHtmlTag: "tbody"
|
|
195
|
+
}, commonProps, {
|
|
196
|
+
tbodyPosition: "right",
|
|
197
|
+
hasScrollY: extra.hasScrollY,
|
|
198
|
+
horizontalRenderInfo: _extends(_extends({}, info), {
|
|
199
|
+
flat: {
|
|
200
|
+
center: right,
|
|
201
|
+
full: right,
|
|
202
|
+
left: [],
|
|
203
|
+
right: []
|
|
204
|
+
},
|
|
205
|
+
visible: _sliceInstanceProperty(visible).call(visible, visible.length - right.length)
|
|
206
|
+
}),
|
|
207
|
+
verticalRenderInfo: verticalRenderInfo
|
|
208
|
+
})), bottomBlank > 0 && /*#__PURE__*/React.createElement("div", {
|
|
209
|
+
key: "bottom-blank",
|
|
210
|
+
className: cx(Classes.virtualBlank, 'bottom'),
|
|
211
|
+
style: {
|
|
212
|
+
height: bottomBlank
|
|
213
|
+
}
|
|
214
|
+
})) : null, /*#__PURE__*/React.createElement("div", {
|
|
215
|
+
className: Classes.rowDetailContainer
|
|
216
|
+
}));
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
function renderTableFooterInIE(info, props, extra) {
|
|
220
|
+
var _props$footerDataSour = props.footerDataSource,
|
|
221
|
+
footerDataSource = _props$footerDataSour === void 0 ? [] : _props$footerDataSour,
|
|
222
|
+
getRowProps = props.getRowProps,
|
|
223
|
+
primaryKey = props.primaryKey,
|
|
224
|
+
stickyBottom = props.stickyBottom;
|
|
225
|
+
|
|
226
|
+
var _getRowProps = composeRowPropsGetter(getRowProps, extra.rowProps);
|
|
227
|
+
|
|
228
|
+
var flat = _flatInstanceProperty(info),
|
|
229
|
+
visible = info.visible,
|
|
230
|
+
hasLockColumn = info.hasLockColumn;
|
|
231
|
+
|
|
232
|
+
var left = flat.left,
|
|
233
|
+
right = flat.right;
|
|
234
|
+
var verticalRenderInfo = {
|
|
235
|
+
offset: 0,
|
|
236
|
+
first: 0,
|
|
237
|
+
last: footerDataSource.length - 1,
|
|
238
|
+
limit: Infinity
|
|
239
|
+
};
|
|
240
|
+
var commonProps = {
|
|
241
|
+
data: footerDataSource,
|
|
242
|
+
getRowProps: _getRowProps,
|
|
243
|
+
primaryKey: primaryKey,
|
|
244
|
+
verticalRenderInfo: verticalRenderInfo
|
|
245
|
+
};
|
|
246
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
247
|
+
className: cx(Classes.tableFooter),
|
|
248
|
+
style: {
|
|
249
|
+
bottom: stickyBottom === 0 ? undefined : stickyBottom
|
|
250
|
+
}
|
|
251
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
252
|
+
className: cx(Classes.tableFooterMain, Classes.horizontalScrollContainer)
|
|
253
|
+
}, /*#__PURE__*/React.createElement(HtmlTable, _extends({
|
|
254
|
+
tbodyHtmlTag: "tfoot"
|
|
255
|
+
}, commonProps, {
|
|
256
|
+
tbodyPosition: hasLockColumn ? 'center' : undefined,
|
|
257
|
+
horizontalRenderInfo: info
|
|
258
|
+
}))), left.length > 0 ? /*#__PURE__*/React.createElement("div", {
|
|
259
|
+
className: Classes.fixedLeft
|
|
260
|
+
}, /*#__PURE__*/React.createElement(HtmlTable, _extends({
|
|
261
|
+
tbodyHtmlTag: "tfoot"
|
|
262
|
+
}, commonProps, {
|
|
263
|
+
tbodyPosition: "left",
|
|
264
|
+
horizontalRenderInfo: _extends(_extends({}, info), {
|
|
265
|
+
flat: {
|
|
266
|
+
center: left,
|
|
267
|
+
full: left,
|
|
268
|
+
left: [],
|
|
269
|
+
right: []
|
|
270
|
+
},
|
|
271
|
+
visible: _sliceInstanceProperty(visible).call(visible, 0, left.length)
|
|
272
|
+
})
|
|
273
|
+
}))) : null, right.length > 0 ? /*#__PURE__*/React.createElement("div", {
|
|
274
|
+
className: Classes.fixedRight
|
|
275
|
+
}, /*#__PURE__*/React.createElement(HtmlTable, _extends({
|
|
276
|
+
tbodyHtmlTag: "tfoot"
|
|
277
|
+
}, commonProps, {
|
|
278
|
+
tbodyPosition: "right",
|
|
279
|
+
horizontalRenderInfo: _extends(_extends({}, info), {
|
|
280
|
+
flat: {
|
|
281
|
+
center: right,
|
|
282
|
+
full: right,
|
|
283
|
+
left: [],
|
|
284
|
+
right: []
|
|
285
|
+
},
|
|
286
|
+
visible: _sliceInstanceProperty(visible).call(visible, visible.length - right.length)
|
|
287
|
+
})
|
|
288
|
+
}))) : null);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
function renderRowDetailInIE(params) {
|
|
292
|
+
var domHelper = params.domHelper;
|
|
293
|
+
if (!domHelper) return;
|
|
294
|
+
var artTable = domHelper.artTable;
|
|
295
|
+
var rowDetailContainer = artTable && artTable.querySelector(".".concat(Classes.rowDetailContainer));
|
|
296
|
+
return /*#__PURE__*/ReactDom.createPortal( /*#__PURE__*/React.createElement(RowDetail, _extends({}, params)), rowDetailContainer);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
function RowDetail(props) {
|
|
300
|
+
var detailRef = useRef(null);
|
|
301
|
+
var row = props.row,
|
|
302
|
+
rowIndex = props.rowIndex,
|
|
303
|
+
domHelper = props.domHelper,
|
|
304
|
+
renderDetail = props.renderDetail;
|
|
305
|
+
var artTable = domHelper.artTable;
|
|
306
|
+
useEffect(function () {
|
|
307
|
+
var selector = function selector(position) {
|
|
308
|
+
var _context, _context2;
|
|
309
|
+
|
|
310
|
+
return _concatInstanceProperty(_context = _concatInstanceProperty(_context2 = ".".concat(position, " .")).call(_context2, Classes.tableRow, "[data-rowindex=\"")).call(_context, rowIndex, "\"]");
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
var itemRect = detailRef.current && detailRef.current.getBoundingClientRect();
|
|
314
|
+
var targetRow = artTable.querySelector(selector(Classes.tableBody));
|
|
315
|
+
var targetRowLeft = artTable.querySelector(selector(Classes.fixedLeft));
|
|
316
|
+
var targetRowRight = artTable.querySelector(selector(Classes.fixedRight));
|
|
317
|
+
|
|
318
|
+
if (itemRect.height) {
|
|
319
|
+
targetRow && (targetRow.style.height = itemRect.height + 'px');
|
|
320
|
+
targetRowLeft && (targetRowLeft.style.height = itemRect.height + 'px');
|
|
321
|
+
targetRowRight && (targetRowRight.style.height = itemRect.height + 'px');
|
|
322
|
+
}
|
|
323
|
+
}, []);
|
|
324
|
+
useEffect(function () {
|
|
325
|
+
// 这时候行才渲染完,只能在这里设置偏移量
|
|
326
|
+
var offsetTop = domHelper.getRowTop(rowIndex) || 0;
|
|
327
|
+
detailRef.current.style.transform = "translateY(".concat(offsetTop + 'px', ")");
|
|
328
|
+
});
|
|
329
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
330
|
+
ref: detailRef,
|
|
331
|
+
className: Classes.rowDetailItem
|
|
332
|
+
}, renderDetail(row, rowIndex));
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
if (browserType.isIE) {
|
|
336
|
+
TEMPLATES.set('header', renderTableHeaderInIE);
|
|
337
|
+
TEMPLATES.set('body', renderTableBodyInIE);
|
|
338
|
+
TEMPLATES.set('footer', renderTableFooterInIE);
|
|
339
|
+
TEMPLATES.set('rowDetail', renderRowDetailInIE);
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
export default function getTableHeaderRenderTemplate(type) {
|
|
343
|
+
return TEMPLATES.get(type);
|
|
344
|
+
}
|
|
@@ -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,23 @@ 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;
|
|
40
53
|
};
|
|
41
54
|
export declare const MenuClasses: {
|
|
42
55
|
menu: string;
|
|
43
56
|
menuList: string;
|
|
44
57
|
menuOption: string;
|
|
45
58
|
menuOptionActive: string;
|
|
59
|
+
menuOptionDisable: string;
|
|
46
60
|
menuOptionText: string;
|
|
47
61
|
};
|
|
48
62
|
export declare type BaseTableCSSVariables = Partial<{
|
package/es/table/base/styles.js
CHANGED
|
@@ -2,7 +2,6 @@ import _taggedTemplateLiteral from "@babel/runtime-corejs3/helpers/taggedTemplat
|
|
|
2
2
|
|
|
3
3
|
var _templateObject, _templateObject2, _templateObject3;
|
|
4
4
|
|
|
5
|
-
import _reduceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/reduce";
|
|
6
5
|
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
|
7
6
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
|
8
7
|
import styled, { css } from 'styled-components';
|
|
@@ -12,10 +11,12 @@ export var Classes = {
|
|
|
12
11
|
/** BaseTable 表格组件的外层包裹 div */
|
|
13
12
|
artTableWrapper: "".concat(prefix, "table-wrapper"),
|
|
14
13
|
artTable: "".concat(prefix, "table"),
|
|
14
|
+
tableHeaderMain: "".concat(prefix, "table-header-main"),
|
|
15
15
|
tableHeader: "".concat(prefix, "table-header"),
|
|
16
16
|
tableBody: "".concat(prefix, "table-body"),
|
|
17
17
|
virtual: "".concat(prefix, "virtual"),
|
|
18
18
|
tableFooter: "".concat(prefix, "table-footer"),
|
|
19
|
+
tableFooterMain: "".concat(prefix, "table-footer-main"),
|
|
19
20
|
|
|
20
21
|
/** 表格行 */
|
|
21
22
|
tableRow: "".concat(prefix, "table-row"),
|
|
@@ -34,6 +35,7 @@ export var Classes = {
|
|
|
34
35
|
stickyScroll: "".concat(prefix, "sticky-scroll"),
|
|
35
36
|
stickyScrollItem: "".concat(prefix, "sticky-scroll-item"),
|
|
36
37
|
horizontalScrollContainer: "".concat(prefix, "horizontal-scroll-container"),
|
|
38
|
+
verticalScrollPlaceholder: "".concat(prefix, "vertical-scroll-placeholder"),
|
|
37
39
|
lockShadowMask: "".concat(prefix, "lock-shadow-mask"),
|
|
38
40
|
lockShadow: "".concat(prefix, "lock-shadow"),
|
|
39
41
|
leftLockShadow: "".concat(prefix, "left-lock-shadow"),
|
|
@@ -50,13 +52,24 @@ export var Classes = {
|
|
|
50
52
|
tableSortIcon: "".concat(prefix, "sort-icon"),
|
|
51
53
|
button: "".concat(prefix, "btn"),
|
|
52
54
|
buttonPrimary: "".concat(prefix, "btn-primary"),
|
|
53
|
-
filterIcon: "".concat(prefix, "filter-icon")
|
|
55
|
+
filterIcon: "".concat(prefix, "filter-icon"),
|
|
56
|
+
tableCellRangeSelected: "".concat(prefix, "table-cell-range-selected"),
|
|
57
|
+
tableCellRangeTop: "".concat(prefix, "table-cell-range-top"),
|
|
58
|
+
tableCellRangeLeft: "".concat(prefix, "table-cell-range-left"),
|
|
59
|
+
tableCellRangeBottom: "".concat(prefix, "table-cell-range-bottom"),
|
|
60
|
+
tableCellRangeRight: "".concat(prefix, "table-cell-range-right"),
|
|
61
|
+
fixedLeft: "".concat(prefix, "fixed-left"),
|
|
62
|
+
fixedRight: "".concat(prefix, "fixed-right"),
|
|
63
|
+
rowDetailContainer: "".concat(prefix, "row-detail-container"),
|
|
64
|
+
rowDetailItem: "".concat(prefix, "row-detail-item"),
|
|
65
|
+
emptyColCell: "".concat(prefix, "empty-col-cell")
|
|
54
66
|
};
|
|
55
67
|
export var MenuClasses = {
|
|
56
68
|
menu: "".concat(prefix, "table-menu"),
|
|
57
69
|
menuList: "".concat(prefix, "table-menu-list"),
|
|
58
70
|
menuOption: "".concat(prefix, "table-menu-option"),
|
|
59
71
|
menuOptionActive: "".concat(prefix, "table-menu-option-active"),
|
|
72
|
+
menuOptionDisable: "".concat(prefix, "table-menu-option-disable"),
|
|
60
73
|
menuOptionText: "".concat(prefix, "table-menu-option-text")
|
|
61
74
|
};
|
|
62
75
|
var Z = {
|
|
@@ -64,6 +77,7 @@ var Z = {
|
|
|
64
77
|
header: 15,
|
|
65
78
|
footer: 10,
|
|
66
79
|
lockShadow: 20,
|
|
80
|
+
rowDetail: 25,
|
|
67
81
|
scrollItem: 30,
|
|
68
82
|
loadingIndicator: 40
|
|
69
83
|
};
|
|
@@ -97,16 +111,14 @@ export var defaultCSSVariables = {
|
|
|
97
111
|
'--header-cell-border-vertical': '1px solid #dfe3e8'
|
|
98
112
|
};
|
|
99
113
|
export var variableConst = getCssVariableText(defaultCSSVariables);
|
|
100
|
-
export var StyledArtTableWrapper = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\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:
|
|
114
|
+
export var StyledArtTableWrapper = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\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.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: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.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 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, 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);
|
|
101
115
|
export var ButtonCSS = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\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);
|
|
102
116
|
|
|
103
117
|
function getCssVariableText(obj) {
|
|
104
|
-
|
|
118
|
+
return _Object$keys(obj).reduce(function (acc, key) {
|
|
119
|
+
var _context;
|
|
105
120
|
|
|
106
|
-
|
|
107
|
-
var _context2;
|
|
108
|
-
|
|
109
|
-
acc += _concatInstanceProperty(_context2 = "".concat(key, ":")).call(_context2, obj[key], ";");
|
|
121
|
+
acc += _concatInstanceProperty(_context = "".concat(key, ":")).call(_context, obj[key], ";");
|
|
110
122
|
return acc;
|
|
111
123
|
}, '');
|
|
112
124
|
}
|
package/es/table/base/table.d.ts
CHANGED
|
@@ -62,12 +62,18 @@ export interface BaseTableProps {
|
|
|
62
62
|
};
|
|
63
63
|
/** 列的默认宽度 */
|
|
64
64
|
defaultColumnWidth?: number;
|
|
65
|
-
/**
|
|
66
|
-
*
|
|
67
|
-
|
|
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;
|