@kdcloudjs/table 1.2.0-canary.8 → 1.2.0
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/dist/@kdcloudjs/table.css +1 -1
- package/dist/@kdcloudjs/table.js +634 -125
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +8 -8
- package/dist/@kdcloudjs/table.min.js.map +1 -1
- package/es/table/base/header.d.ts +2 -1
- package/es/table/base/header.js +4 -2
- package/es/table/base/helpers/TableDOMUtils.js +3 -1
- package/es/table/base/html-table.js +1 -1
- package/es/table/base/renderTemplates.js +24 -10
- package/es/table/base/styles.d.ts +7 -0
- package/es/table/base/styles.js +9 -2
- package/es/table/base/table.d.ts +2 -1
- package/es/table/base/table.js +73 -46
- package/es/table/interfaces.d.ts +2 -0
- package/es/table/pipeline/features/autoFill.js +3 -1
- package/es/table/pipeline/features/columnDrag.js +11 -7
- package/es/table/pipeline/features/columnFilter.js +15 -5
- package/es/table/pipeline/features/index.d.ts +1 -0
- package/es/table/pipeline/features/index.js +2 -1
- package/es/table/pipeline/features/multiSelect.js +18 -35
- package/es/table/pipeline/features/rangeSelection.js +3 -2
- package/es/table/pipeline/features/rowDrag.d.ts +30 -0
- package/es/table/pipeline/features/rowDrag.js +349 -0
- package/es/table/pipeline/features/singleSelect.js +6 -4
- package/es/table/pipeline/features/sort.js +22 -3
- package/es/table/pipeline/features/treeMode.js +6 -0
- package/es/table/pipeline/pipeline.d.ts +2 -0
- package/es/table/pipeline/pipeline.js +9 -1
- package/es/table/utils/index.d.ts +1 -0
- package/es/table/utils/index.js +2 -1
- package/es/table/utils/selectColumn.d.ts +4 -0
- package/es/table/utils/selectColumn.js +6 -0
- package/lib/table/base/header.d.ts +2 -1
- package/lib/table/base/header.js +4 -2
- package/lib/table/base/helpers/TableDOMUtils.js +3 -1
- package/lib/table/base/html-table.js +1 -1
- package/lib/table/base/renderTemplates.js +24 -10
- package/lib/table/base/styles.d.ts +7 -0
- package/lib/table/base/styles.js +9 -2
- package/lib/table/base/table.d.ts +2 -1
- package/lib/table/base/table.js +73 -46
- package/lib/table/interfaces.d.ts +2 -0
- package/lib/table/pipeline/features/autoFill.js +3 -1
- package/lib/table/pipeline/features/columnDrag.js +10 -6
- package/lib/table/pipeline/features/columnFilter.js +16 -6
- package/lib/table/pipeline/features/index.d.ts +1 -0
- package/lib/table/pipeline/features/index.js +9 -1
- package/lib/table/pipeline/features/multiSelect.js +20 -38
- package/lib/table/pipeline/features/rangeSelection.js +3 -2
- package/lib/table/pipeline/features/rowDrag.d.ts +30 -0
- package/lib/table/pipeline/features/rowDrag.js +371 -0
- package/lib/table/pipeline/features/singleSelect.js +8 -5
- package/lib/table/pipeline/features/sort.js +22 -3
- package/lib/table/pipeline/features/treeMode.js +6 -0
- package/lib/table/pipeline/pipeline.d.ts +2 -0
- package/lib/table/pipeline/pipeline.js +9 -1
- package/lib/table/utils/index.d.ts +1 -0
- package/lib/table/utils/index.js +21 -1
- package/lib/table/utils/selectColumn.d.ts +4 -0
- package/lib/table/utils/selectColumn.js +16 -0
- package/package.json +3 -3
|
@@ -4,6 +4,7 @@ interface TableHeaderProps {
|
|
|
4
4
|
info: RenderInfo;
|
|
5
5
|
theaderPosition?: 'left' | 'center' | 'right';
|
|
6
6
|
rowCount?: number;
|
|
7
|
+
stickyRightOffset?: number;
|
|
7
8
|
}
|
|
8
|
-
export default function TableHeader({ info, theaderPosition, rowCount: _rowCount }: TableHeaderProps): JSX.Element;
|
|
9
|
+
export default function TableHeader({ info, theaderPosition, rowCount: _rowCount, stickyRightOffset }: TableHeaderProps): JSX.Element;
|
|
9
10
|
export {};
|
package/es/table/base/header.js
CHANGED
|
@@ -228,7 +228,8 @@ export default function TableHeader(_ref2) {
|
|
|
228
228
|
|
|
229
229
|
var info = _ref2.info,
|
|
230
230
|
theaderPosition = _ref2.theaderPosition,
|
|
231
|
-
_rowCount = _ref2.rowCount
|
|
231
|
+
_rowCount = _ref2.rowCount,
|
|
232
|
+
stickyRightOffset = _ref2.stickyRightOffset;
|
|
232
233
|
|
|
233
234
|
var nested = info.nested,
|
|
234
235
|
flat = _flatInstanceProperty(info),
|
|
@@ -275,7 +276,8 @@ export default function TableHeader(_ref2) {
|
|
|
275
276
|
positionStyle.left = stickyLeftMap.get(colIndex);
|
|
276
277
|
} else if (colIndex >= fullFlatCount - rightFlatCount) {
|
|
277
278
|
positionStyle.position = 'sticky';
|
|
278
|
-
|
|
279
|
+
var stickyRightIndex = colSpan > 1 ? colIndex + colSpan - 1 : colIndex;
|
|
280
|
+
positionStyle.right = stickyRightMap.get(stickyRightIndex) + stickyRightOffset;
|
|
279
281
|
}
|
|
280
282
|
|
|
281
283
|
var justifyContent = col.align === 'right' ? 'flex-end' : col.align === 'center' ? 'center' : 'flex-start';
|
|
@@ -94,7 +94,9 @@ export var TableDOMHelper = /*#__PURE__*/function () {
|
|
|
94
94
|
|
|
95
95
|
var stickyScrollSelector = _concatInstanceProperty(_context2 = _concatInstanceProperty(_context3 = ".".concat(Classes.artTable, " + .")).call(_context3, Classes.horizontalStickyScrollContainer, " .")).call(_context2, Classes.stickyScroll);
|
|
96
96
|
|
|
97
|
-
|
|
97
|
+
var stickyScrolls = artTableWrapper.querySelectorAll(stickyScrollSelector);
|
|
98
|
+
this.stickyScroll = stickyScrolls[stickyScrolls.length - 1]; // 当嵌套多层表格时,需要查找最后一个,否则会查找到父表格内嵌套的子表格的
|
|
99
|
+
|
|
98
100
|
this.stickyScrollItem = this.stickyScroll.querySelector(".".concat(Classes.stickyScrollItem));
|
|
99
101
|
}
|
|
100
102
|
|
|
@@ -124,7 +124,7 @@ export function HtmlTable(_ref) {
|
|
|
124
124
|
positionStyle.left = hozInfo.stickyLeftMap.get(colIndex);
|
|
125
125
|
} else if (colIndex >= fullFlatCount - rightFlatCount) {
|
|
126
126
|
positionStyle.position = 'sticky';
|
|
127
|
-
positionStyle.right = hozInfo.stickyRightMap.get(colIndex)
|
|
127
|
+
positionStyle.right = hozInfo.stickyRightMap.get(colIndex) + (typeof stickyRightOffset === 'number' ? stickyRightOffset : 0);
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
return /*#__PURE__*/React.createElement('td', _extends(_extends(_extends(_extends({
|
|
@@ -19,7 +19,7 @@ import { getTreeDepth, browserType } from '../utils';
|
|
|
19
19
|
import TableHeader from './header';
|
|
20
20
|
var TEMPLATES = new _Map();
|
|
21
21
|
|
|
22
|
-
function renderTableHeaderInIE(info, props) {
|
|
22
|
+
function renderTableHeaderInIE(info, props, extra) {
|
|
23
23
|
var stickyTop = props.stickyTop,
|
|
24
24
|
hasHeader = props.hasHeader;
|
|
25
25
|
|
|
@@ -34,6 +34,9 @@ function renderTableHeaderInIE(info, props) {
|
|
|
34
34
|
rightNested = nested.right,
|
|
35
35
|
full = nested.full;
|
|
36
36
|
var rowCount = getTreeDepth(full) + 1;
|
|
37
|
+
var fixedRightTableStyle = {
|
|
38
|
+
right: (extra === null || extra === void 0 ? void 0 : extra.stickyRightOffset) || 0
|
|
39
|
+
};
|
|
37
40
|
return /*#__PURE__*/React.createElement("div", {
|
|
38
41
|
className: cx(Classes.tableHeader)
|
|
39
42
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -45,6 +48,11 @@ function renderTableHeaderInIE(info, props) {
|
|
|
45
48
|
}, /*#__PURE__*/React.createElement(TableHeader, {
|
|
46
49
|
info: info,
|
|
47
50
|
theaderPosition: hasLockColumn ? 'center' : undefined
|
|
51
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
52
|
+
className: Classes.verticalScrollPlaceholder,
|
|
53
|
+
style: typeof (extra === null || extra === void 0 ? void 0 : extra.stickyRightOffset) === 'number' ? {
|
|
54
|
+
width: extra === null || extra === void 0 ? void 0 : extra.stickyRightOffset
|
|
55
|
+
} : undefined
|
|
48
56
|
})), left.length > 0 ? /*#__PURE__*/React.createElement("div", {
|
|
49
57
|
className: Classes.fixedLeft
|
|
50
58
|
}, /*#__PURE__*/React.createElement(TableHeader, {
|
|
@@ -72,7 +80,8 @@ function renderTableHeaderInIE(info, props) {
|
|
|
72
80
|
theaderPosition: "left",
|
|
73
81
|
rowCount: rowCount
|
|
74
82
|
})) : null, right.length > 0 ? /*#__PURE__*/React.createElement("div", {
|
|
75
|
-
className: Classes.fixedRight
|
|
83
|
+
className: Classes.fixedRight,
|
|
84
|
+
style: fixedRightTableStyle
|
|
76
85
|
}, /*#__PURE__*/React.createElement(TableHeader, {
|
|
77
86
|
info: _extends(_extends({}, info), {
|
|
78
87
|
flat: {
|
|
@@ -127,9 +136,6 @@ function renderTableBodyInIE(info, props, extra) {
|
|
|
127
136
|
primaryKey: primaryKey,
|
|
128
137
|
data: _sliceInstanceProperty(dataSource).call(dataSource, topIndex, bottomIndex)
|
|
129
138
|
};
|
|
130
|
-
var fixedRightTableStyle = {
|
|
131
|
-
right: -extra.stickyRightOffset
|
|
132
|
-
};
|
|
133
139
|
return /*#__PURE__*/React.createElement("div", {
|
|
134
140
|
className: cx(Classes.tableBody, Classes.horizontalScrollContainer)
|
|
135
141
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -182,8 +188,7 @@ function renderTableBodyInIE(info, props, extra) {
|
|
|
182
188
|
height: bottomBlank
|
|
183
189
|
}
|
|
184
190
|
})) : null, right.length > 0 ? /*#__PURE__*/React.createElement("div", {
|
|
185
|
-
className: Classes.fixedRight
|
|
186
|
-
style: fixedRightTableStyle
|
|
191
|
+
className: Classes.fixedRight
|
|
187
192
|
}, topBlank > 0 && /*#__PURE__*/React.createElement("div", {
|
|
188
193
|
key: "top-blank",
|
|
189
194
|
className: cx(Classes.virtualBlank, 'top'),
|
|
@@ -194,7 +199,6 @@ function renderTableBodyInIE(info, props, extra) {
|
|
|
194
199
|
tbodyHtmlTag: "tbody"
|
|
195
200
|
}, commonProps, {
|
|
196
201
|
tbodyPosition: "right",
|
|
197
|
-
stickyRightOffset: extra.stickyRightOffset,
|
|
198
202
|
horizontalRenderInfo: _extends(_extends({}, info), {
|
|
199
203
|
flat: {
|
|
200
204
|
center: right,
|
|
@@ -243,6 +247,9 @@ function renderTableFooterInIE(info, props, extra) {
|
|
|
243
247
|
primaryKey: primaryKey,
|
|
244
248
|
verticalRenderInfo: verticalRenderInfo
|
|
245
249
|
};
|
|
250
|
+
var fixedRightTableStyle = {
|
|
251
|
+
right: (extra === null || extra === void 0 ? void 0 : extra.stickyRightOffset) || 0
|
|
252
|
+
};
|
|
246
253
|
return /*#__PURE__*/React.createElement("div", {
|
|
247
254
|
className: cx(Classes.tableFooter),
|
|
248
255
|
style: {
|
|
@@ -255,7 +262,13 @@ function renderTableFooterInIE(info, props, extra) {
|
|
|
255
262
|
}, commonProps, {
|
|
256
263
|
tbodyPosition: hasLockColumn ? 'center' : undefined,
|
|
257
264
|
horizontalRenderInfo: info
|
|
258
|
-
}))
|
|
265
|
+
})), footerDataSource.length > 0 ? /*#__PURE__*/React.createElement("div", {
|
|
266
|
+
className: Classes.verticalScrollPlaceholder,
|
|
267
|
+
style: typeof (extra === null || extra === void 0 ? void 0 : extra.stickyRightOffset) === 'number' ? {
|
|
268
|
+
width: extra === null || extra === void 0 ? void 0 : extra.stickyRightOffset,
|
|
269
|
+
visibility: 'initial'
|
|
270
|
+
} : undefined
|
|
271
|
+
}) : null), left.length > 0 ? /*#__PURE__*/React.createElement("div", {
|
|
259
272
|
className: Classes.fixedLeft
|
|
260
273
|
}, /*#__PURE__*/React.createElement(HtmlTable, _extends({
|
|
261
274
|
tbodyHtmlTag: "tfoot"
|
|
@@ -271,7 +284,8 @@ function renderTableFooterInIE(info, props, extra) {
|
|
|
271
284
|
visible: _sliceInstanceProperty(visible).call(visible, 0, left.length)
|
|
272
285
|
})
|
|
273
286
|
}))) : null, right.length > 0 ? /*#__PURE__*/React.createElement("div", {
|
|
274
|
-
className: Classes.fixedRight
|
|
287
|
+
className: Classes.fixedRight,
|
|
288
|
+
style: fixedRightTableStyle
|
|
275
289
|
}, /*#__PURE__*/React.createElement(HtmlTable, _extends({
|
|
276
290
|
tbodyHtmlTag: "tfoot"
|
|
277
291
|
}, commonProps, {
|
|
@@ -70,6 +70,13 @@ export declare const Classes: {
|
|
|
70
70
|
readonly popup: string;
|
|
71
71
|
readonly popupHeader: string;
|
|
72
72
|
readonly popupBody: string;
|
|
73
|
+
readonly rowDragging: string;
|
|
74
|
+
readonly rowDragStart: string;
|
|
75
|
+
readonly rowDragEnd: string;
|
|
76
|
+
readonly rowDragEndToTop: string;
|
|
77
|
+
readonly rowDragEndToBottom: string;
|
|
78
|
+
readonly rowDragElement: string;
|
|
79
|
+
readonly rowDragCell: string;
|
|
73
80
|
};
|
|
74
81
|
export declare const MenuClasses: {
|
|
75
82
|
menu: string;
|
package/es/table/base/styles.js
CHANGED
|
@@ -82,7 +82,14 @@ export var Classes = {
|
|
|
82
82
|
collapsed: "".concat(prefix, "collapsed"),
|
|
83
83
|
popup: "".concat(prefix, "popup"),
|
|
84
84
|
popupHeader: "".concat(prefix, "popup-header"),
|
|
85
|
-
popupBody: "".concat(prefix, "popup-body")
|
|
85
|
+
popupBody: "".concat(prefix, "popup-body"),
|
|
86
|
+
rowDragging: "".concat(prefix, "row-dragging"),
|
|
87
|
+
rowDragStart: "".concat(prefix, "row-drag-start"),
|
|
88
|
+
rowDragEnd: "".concat(prefix, "row-drag-end"),
|
|
89
|
+
rowDragEndToTop: "".concat(prefix, "row-drag-end-to-top"),
|
|
90
|
+
rowDragEndToBottom: "".concat(prefix, "row-drag-end-to-bottom"),
|
|
91
|
+
rowDragElement: "".concat(prefix, "row-drag-element"),
|
|
92
|
+
rowDragCell: "".concat(prefix, "row-drag-cell")
|
|
86
93
|
};
|
|
87
94
|
export var MenuClasses = {
|
|
88
95
|
menu: "".concat(prefix, "table-menu"),
|
|
@@ -134,7 +141,7 @@ export var defaultCSSVariables = {
|
|
|
134
141
|
export var variableConst = getCssVariableText(defaultCSSVariables);
|
|
135
142
|
var notBorderedStyleMixin = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n --cell-border-vertical: none;\n --header-cell-border-vertical: none;\n"])));
|
|
136
143
|
var borderedStyleMixin = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n //th\u9690\u85CF\u5217\u5BBD\u62D6\u62FD\u7684\u80CC\u666F\u8272\uFF0C\u4F7F\u7528th\u7684\u53F3\u8FB9\u6846\u4EE3\u66FF\n .", "::after{\n background-color: inherit;\n }\n"])), Classes.tableHeaderCellResize);
|
|
137
|
-
export var StyledArtTableWrapper = styled.div(_templateObject4 || (_templateObject4 = _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 // \u8868\u683C\u4E0D\u542F\u7528\u8FB9\u6846\u7EBF\uFF0C\u9690\u85CFth\u3001td\u7684\u5355\u5143\u683C\u5DE6\u53F3\u8FB9\u6846\u7EBF\n &:not(.", ") {\n ", "\n }\n &.", "{\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: 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 user-select:none;\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 // \u4F7F\u7528 js \u6DFB\u52A0\u60AC\u6D6E\u6548\u679C\n tr:not(.no-hover).row-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: var(--header-cell-border-vertical)\n }\n\n th.", " {\n border-right: var(--header-cell-border-vertical);\n border-bottom: none;\n }\n\n tr.", " th {\n border-top: var(--header-cell-border-horizontal);\n }\n th.", " {\n border-left: var(--header-cell-border-vertical);\n }\n\n td {\n padding: var(--cell-padding);\n background: var(--bgcolor);\n height: var(--row-height);\n border:1px solid transparent;\n border-right: var(--cell-border-vertical);\n border-bottom: var(--cell-border-horizontal);\n word-break: break-all;\n }\n td.", " {\n border-left: var(--cell-border-vertical);\n }\n tr.", " td {\n border-top: var(--cell-border-horizontal);\n }\n &.has-header tbody tr.", " td {\n border-top: none;\n }\n &.has-footer tbody tr.", " td {\n border-bottom: none;\n }\n\n .", ",\n .", " {\n z-index: ", ";\n }\n\n //#region \u9501\u5217\u9634\u5F71\n .", " {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: ", ";\n pointer-events: none;\n overflow: hidden;\n\n .", " {\n height: 100%;\n }\n\n .", " {\n margin-right: ", "px;\n box-shadow: none;\n\n &.show-shadow {\n box-shadow: var(--lock-shadow);\n border-right: var(--cell-border-vertical);\n }\n }\n\n .", " {\n margin-left: ", "px;\n box-shadow: none;\n\n &.show-shadow {\n box-shadow: var(--lock-shadow);\n border-left: var(--cell-border-vertical);\n }\n }\n }\n //#endregion\n\n //#region \u7A7A\u8868\u683C\u5C55\u73B0\n .", " {\n pointer-events: none;\n color: #99a3b3;\n font-size: 12px;\n text-align: center;\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n\n .empty-image {\n width: 50px;\n height: 50px;\n }\n\n .empty-tips {\n margin-top: 16px;\n line-height: 1.5;\n }\n }\n //#endregion\n\n //#region IE\u517C\u5BB9\n &.ie-polyfill-wrapper {\n //\u9501\u5B9A\u5217\u517C\u5BB9 \u4EC5\u5728\u9501\u5B9A\u5217\u7684\u60C5\u51B5\u4E0B\u751F\u6548\n .", " {\n overflow-x: hidden;\n }\n .", ", .", " {\n position:relative;\n }\n .", " {\n overflow: hidden;\n }\n .", " {\n position: relative;\n }\n\n .", " {\n overflow: auto;\n overflow-x: hidden;\n overflow-anchor: none;\n }\n\n .", ", .", "{\n position: absolute;\n z-index: ", ";\n top: 0;\n }\n .", "{\n left:0;\n }\n .", "{\n right:0;\n }\n\n .", "{\n .", "{\n position: absolute;\n top: 0;\n width: 100%;\n z-index: ", ";\n }\n }\n\n tr:not(.no-hover).row-hover > td {\n background: var(--hover-bgcolor);\n }\n }\n //#endregion\n\n //#region \u7C98\u6027\u6EDA\u52A8\u6761\n .", "{\n display:flex;\n background: var(--bgcolor);\n }\n .", "{\n height: 1px;\n flex-shrink: 0;\n border-top: 1px solid var(--border-color);\n }\n\n .", "{\n height: 1px;\n flex-shrink: 0;\n border-top: 1px solid var(--border-color);\n }\n .", " {\n overflow-y: hidden;\n overflow-x: auto;\n z-index: ", ";\n flex-shrink: 1;\n flex-grow: 0;\n border-top: 1px solid var(--border-color);\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: hidden;//\u5217\u5168\u90E8\u56FA\u5B9A\u65F6\uFF0C\u5B58\u5728\u53CC\u6A2A\u5411\u6EDA\u52A8\u6761\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 padding: 6px 4px;\n &:hover{\n background-color: #e5e5e5;\n }\n &:focus {\n outline: none\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 .", " {\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\n //#region \u62D6\u62FD\u5217\u5BBD\u5927\u5C0F\n .", "::after{\n background-color: var(--border-color);\n }\n //\u89E3\u51B3\u90E8\u5206\u6D4F\u89C8\u5668(chrome109)\u6700\u540E\u4E00\u4E2A\u5355\u5143\u683C\u7684\u5217\u5BBD\u62D6\u62FD\u533A\u57DF\u7EDD\u5BF9\u5B9A\u4F4D\u8D85\u51FA\u8868\u683C\uFF0C\u5BFC\u81F4\u8868\u683C\u7AD6\u5206\u5272\u7EBF\u65E0\u6CD5\u5BF9\u9F50\n .", " th.", " .", "{\n right: 0;\n width: 5px;\n &::after{\n left: 4px;\n }\n }\n //#endregion\n\n "])), variableConst, variableConst, outerBorderStyleMixin, Classes.artTableBordered, notBorderedStyleMixin, Classes.artTableBordered, borderedStyleMixin, Classes.artTable, Classes.tableHeader, Classes.tableHeaderCellContent, Classes.virtual, Classes.tableFooter, Classes.tableBody, Classes.tableFooter, Classes.tableRow, Classes.tableBody, Classes.tableFooter, Classes.tableCellRangeSelected, Classes.tableCellRangeTop, Classes.tableCellRangeLeft, Classes.tableCellRangeBottom, Classes.tableCellRangeRight, Classes.rangeSelection, Classes.tableHeader, Z.header, Classes.tableFooter, Z.footer, Classes.leaf, Classes.first, Classes.first, Classes.first, Classes.first, Classes.first, Classes.last, Classes.lockLeft, Classes.lockRight, Z.lock, Classes.lockShadowMask, Z.lockShadow, Classes.lockShadow, Classes.leftLockShadow, LOCK_SHADOW_PADDING, Classes.rightLockShadow, LOCK_SHADOW_PADDING, Classes.emptyWrapper, Classes.virtual, Classes.tableBody, Classes.tableFooter, Classes.tableHeaderMain, Classes.tableHeader, Classes.tableFooterMain, Classes.fixedLeft, Classes.fixedRight, Z.lock, Classes.fixedLeft, Classes.fixedRight, Classes.rowDetailContainer, Classes.rowDetailItem, Z.rowDetail, Classes.horizontalStickyScrollContainer, Classes.horizontalScrollLeftSpacer, Classes.horizontalScrollRightSpacer, Classes.stickyScroll, Z.scrollItem, Classes.stickyScrollItem, Classes.loadingWrapper, Classes.loadingContentWrapper, Classes.loadingIndicatorWrapper, Classes.loadingIndicator, Z.loadingIndicator, Classes.tableFilterTrigger, Classes.tableSortIcon, Classes.tableExtendIcon, Classes.verticalScrollPlaceholder, Classes.tableFooter, Classes.verticalScrollPlaceholder, Classes.tableHeaderCellResize, Classes.tableHeaderRow, Classes.last, Classes.tableHeaderCellResize);
|
|
144
|
+
export var StyledArtTableWrapper = styled.div(_templateObject4 || (_templateObject4 = _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 // \u8868\u683C\u4E0D\u542F\u7528\u8FB9\u6846\u7EBF\uFF0C\u9690\u85CFth\u3001td\u7684\u5355\u5143\u683C\u5DE6\u53F3\u8FB9\u6846\u7EBF\n &:not(.", ") {\n ", "\n }\n &.", "{\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: 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 user-select:none;\n }\n\n .", " {\n user-select:none;\n .", " .", " >td{\n cursor:move;\n }\n\n .", " .", " >td{\n cursor:no-drop;\n }\n \n }\n\n .", "{\n opacity: 0.5;\n }\n\n\n .", " td{\n border-top: 1px solid var(--primary-color) !important;\n }\n\n .", " td{\n border-bottom: 1px solid var(--primary-color) !important;\n \n }\n\n .", " {\n cursor:pointer;\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 // \u4F7F\u7528 js \u6DFB\u52A0\u60AC\u6D6E\u6548\u679C\n tr:not(.no-hover).row-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: var(--header-cell-border-vertical)\n }\n\n th.", " {\n border-right: var(--header-cell-border-vertical);\n border-bottom: none;\n }\n\n tr.", " th {\n border-top: var(--header-cell-border-horizontal);\n }\n th.", " {\n border-left: var(--header-cell-border-vertical);\n }\n\n td {\n padding: var(--cell-padding);\n background: var(--bgcolor);\n height: var(--row-height);\n border:1px solid transparent;\n border-right: var(--cell-border-vertical);\n border-bottom: var(--cell-border-horizontal);\n word-break: break-all;\n }\n td.", " {\n border-left: var(--cell-border-vertical);\n }\n tr.", " td {\n border-top: var(--cell-border-horizontal);\n }\n &.has-header tbody tr.", " td {\n border-top: none;\n }\n &.has-footer tbody tr.", " td {\n border-bottom: none;\n }\n\n .", ",\n .", " {\n z-index: ", ";\n }\n\n //#region \u9501\u5217\u9634\u5F71\n .", " {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: ", ";\n pointer-events: none;\n overflow: hidden;\n\n .", " {\n height: 100%;\n }\n\n .", " {\n margin-right: ", "px;\n box-shadow: none;\n\n &.show-shadow {\n box-shadow: var(--lock-shadow);\n border-right: var(--cell-border-vertical);\n }\n }\n\n .", " {\n margin-left: ", "px;\n box-shadow: none;\n\n &.show-shadow {\n box-shadow: var(--lock-shadow);\n border-left: var(--cell-border-vertical);\n }\n }\n }\n //#endregion\n\n //#region \u7A7A\u8868\u683C\u5C55\u73B0\n .", " {\n pointer-events: none;\n color: #99a3b3;\n font-size: 12px;\n text-align: center;\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n\n .empty-image {\n width: 50px;\n height: 50px;\n }\n\n .empty-tips {\n margin-top: 16px;\n line-height: 1.5;\n }\n }\n //#endregion\n\n //#region IE\u517C\u5BB9\n &.ie-polyfill-wrapper {\n //\u9501\u5B9A\u5217\u517C\u5BB9 \u4EC5\u5728\u9501\u5B9A\u5217\u7684\u60C5\u51B5\u4E0B\u751F\u6548\n .", " {\n overflow-x: hidden;\n }\n .", ", .", " {\n position:relative;\n }\n .", " {\n overflow: hidden;\n display: flex;\n }\n .", " {\n position: relative;\n }\n\n .", " {\n display: flex;\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 display:flex;\n background: var(--bgcolor);\n }\n .", "{\n height: 1px;\n flex-shrink: 0;\n border-top: 1px solid var(--border-color);\n }\n\n .", "{\n height: 1px;\n flex-shrink: 0;\n border-top: 1px solid var(--border-color);\n }\n .", " {\n overflow-y: hidden;\n overflow-x: auto;\n z-index: ", ";\n flex-shrink: 1;\n flex-grow: 0;\n border-top: 1px solid var(--border-color);\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: hidden;//\u5217\u5168\u90E8\u56FA\u5B9A\u65F6\uFF0C\u5B58\u5728\u53CC\u6A2A\u5411\u6EDA\u52A8\u6761\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 padding: 6px 4px;\n &:hover{\n background-color: #e5e5e5;\n }\n &:focus {\n outline: none\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 .", " {\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\n //#region \u62D6\u62FD\u5217\u5BBD\u5927\u5C0F\n .", "::after{\n background-color: var(--border-color);\n }\n //\u89E3\u51B3\u90E8\u5206\u6D4F\u89C8\u5668(chrome109)\u6700\u540E\u4E00\u4E2A\u5355\u5143\u683C\u7684\u5217\u5BBD\u62D6\u62FD\u533A\u57DF\u7EDD\u5BF9\u5B9A\u4F4D\u8D85\u51FA\u8868\u683C\uFF0C\u5BFC\u81F4\u8868\u683C\u7AD6\u5206\u5272\u7EBF\u65E0\u6CD5\u5BF9\u9F50\n .", " th.", " .", "{\n right: 0;\n width: 5px;\n &::after{\n left: 4px;\n }\n }\n //#endregion\n\n "])), variableConst, variableConst, outerBorderStyleMixin, Classes.artTableBordered, notBorderedStyleMixin, Classes.artTableBordered, borderedStyleMixin, Classes.artTable, Classes.tableHeader, Classes.tableHeaderCellContent, Classes.virtual, Classes.tableFooter, Classes.tableBody, Classes.tableFooter, Classes.tableRow, Classes.tableBody, Classes.tableFooter, Classes.tableCellRangeSelected, Classes.tableCellRangeTop, Classes.tableCellRangeLeft, Classes.tableCellRangeBottom, Classes.tableCellRangeRight, Classes.rangeSelection, Classes.rowDragging, Classes.tableBody, Classes.tableRow, Classes.tableFooter, Classes.tableRow, Classes.rowDragStart, Classes.rowDragEndToTop, Classes.rowDragEndToBottom, Classes.rowDragCell, Classes.tableHeader, Z.header, Classes.tableFooter, Z.footer, Classes.leaf, Classes.first, Classes.first, Classes.first, Classes.first, Classes.first, Classes.last, Classes.lockLeft, Classes.lockRight, Z.lock, Classes.lockShadowMask, Z.lockShadow, Classes.lockShadow, Classes.leftLockShadow, LOCK_SHADOW_PADDING, Classes.rightLockShadow, LOCK_SHADOW_PADDING, Classes.emptyWrapper, Classes.virtual, Classes.tableBody, Classes.tableFooter, Classes.tableHeaderMain, Classes.tableHeader, Classes.tableFooterMain, Classes.fixedLeft, Classes.fixedRight, Z.lock, Classes.fixedLeft, Classes.fixedRight, Classes.rowDetailContainer, Classes.rowDetailItem, Z.rowDetail, Classes.horizontalStickyScrollContainer, Classes.horizontalScrollLeftSpacer, Classes.horizontalScrollRightSpacer, Classes.stickyScroll, Z.scrollItem, Classes.stickyScrollItem, Classes.loadingWrapper, Classes.loadingContentWrapper, Classes.loadingIndicatorWrapper, Classes.loadingIndicator, Z.loadingIndicator, Classes.tableFilterTrigger, Classes.tableSortIcon, Classes.tableExtendIcon, Classes.verticalScrollPlaceholder, Classes.tableFooter, Classes.verticalScrollPlaceholder, Classes.tableHeaderCellResize, Classes.tableHeaderRow, Classes.last, Classes.tableHeaderCellResize);
|
|
138
145
|
export var ButtonCSS = css(_templateObject5 || (_templateObject5 = _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);
|
|
139
146
|
|
|
140
147
|
function getCssVariableText(obj) {
|
package/es/table/base/table.d.ts
CHANGED
|
@@ -130,11 +130,11 @@ export declare class BaseTable extends React.Component<BaseTableProps, BaseTable
|
|
|
130
130
|
private artTableWrapperRef;
|
|
131
131
|
private domHelper;
|
|
132
132
|
private rootSubscription;
|
|
133
|
+
private resizeSubject;
|
|
133
134
|
private lastInfo;
|
|
134
135
|
private props$;
|
|
135
136
|
private hasScrollY;
|
|
136
137
|
private resizeObserver?;
|
|
137
|
-
private resizeSubject;
|
|
138
138
|
private offsetY;
|
|
139
139
|
/** @deprecated BaseTable.getDoms() 已经过时,请勿调用 */
|
|
140
140
|
getDoms(): TableDOMHelper;
|
|
@@ -154,6 +154,7 @@ export declare class BaseTable extends React.Component<BaseTableProps, BaseTable
|
|
|
154
154
|
private renderLockShadows;
|
|
155
155
|
private renderStickyScroll;
|
|
156
156
|
private getScrollBarWidth;
|
|
157
|
+
private getStickyScrollContainerStyle;
|
|
157
158
|
render(): JSX.Element;
|
|
158
159
|
componentDidMount(): void;
|
|
159
160
|
componentDidUpdate(prevProps: Readonly<BaseTableProps>, prevState: Readonly<BaseTableState>): void;
|
package/es/table/base/table.js
CHANGED
|
@@ -63,9 +63,7 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
63
63
|
_this = _super.call(this, props);
|
|
64
64
|
_this.rowHeightManager = makeRowHeightManager(_this.props.dataSource.length, _this.props.estimatedRowHeight);
|
|
65
65
|
_this.artTableWrapperRef = /*#__PURE__*/React.createRef();
|
|
66
|
-
_this.rootSubscription = new Subscription();
|
|
67
66
|
_this.hasScrollY = false;
|
|
68
|
-
_this.resizeSubject = new Subject();
|
|
69
67
|
_this.offsetY = 0;
|
|
70
68
|
|
|
71
69
|
_this.handleRowMouseEnter = function (e) {
|
|
@@ -132,7 +130,6 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
132
130
|
bottomBlank = _info$verticalRenderR.bottomBlank,
|
|
133
131
|
topBlank = _info$verticalRenderR.topBlank,
|
|
134
132
|
bottomIndex = _info$verticalRenderR.bottomIndex;
|
|
135
|
-
var stickyRightOffset = _this.hasScrollY ? _this.getScrollBarWidth() : 0;
|
|
136
133
|
var renderBody = getTableRenderTemplate('body');
|
|
137
134
|
|
|
138
135
|
if (typeof renderBody === 'function') {
|
|
@@ -140,8 +137,7 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
140
137
|
rowProps: {
|
|
141
138
|
onMouseEnter: _this.handleRowMouseEnter,
|
|
142
139
|
onMouseLeave: _this.handleRowMouseLeave
|
|
143
|
-
}
|
|
144
|
-
stickyRightOffset: stickyRightOffset
|
|
140
|
+
}
|
|
145
141
|
});
|
|
146
142
|
}
|
|
147
143
|
|
|
@@ -162,7 +158,6 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
162
158
|
getRowProps: getRowProps,
|
|
163
159
|
primaryKey: primaryKey,
|
|
164
160
|
data: _sliceInstanceProperty(dataSource).call(dataSource, topIndex, bottomIndex),
|
|
165
|
-
stickyRightOffset: stickyRightOffset,
|
|
166
161
|
horizontalRenderInfo: info,
|
|
167
162
|
verticalRenderInfo: {
|
|
168
163
|
first: 0,
|
|
@@ -222,6 +217,9 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
222
217
|
var tableBodyHtmlTable = this.domHelper.getTableBodyHtmlTable();
|
|
223
218
|
var innerTableWidth = tableBodyHtmlTable.offsetWidth;
|
|
224
219
|
var artTableWidth = artTable.offsetWidth;
|
|
220
|
+
var artTableHeight = artTable.offsetHeight; // 表格隐藏后,不需要对表格的滚动条做额外的逻辑处理
|
|
221
|
+
|
|
222
|
+
if (artTableWidth === 0 && artTableHeight === 0) return;
|
|
225
223
|
var stickyScrollHeightProp = this.props.stickyScrollHeight;
|
|
226
224
|
var stickyScrollHeight = stickyScrollHeightProp === 'auto' ? this.getScrollBarWidth() : stickyScrollHeightProp; // stickyScroll.style.marginTop = `-${stickyScrollHeight + 1}px`
|
|
227
225
|
// 设置滚动条高度
|
|
@@ -251,10 +249,10 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
251
249
|
// }
|
|
252
250
|
this.hasScrollY = true;
|
|
253
251
|
} else {
|
|
254
|
-
stickyScroll.style.paddingRight =
|
|
252
|
+
// stickyScroll.style.paddingRight = `${stickyScrollHeight}px`
|
|
253
|
+
// this.setState({
|
|
255
254
|
// hasScrollY: false
|
|
256
255
|
// })
|
|
257
|
-
|
|
258
256
|
this.hasScrollY = false;
|
|
259
257
|
}
|
|
260
258
|
|
|
@@ -265,9 +263,10 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
265
263
|
var _this$lastInfo = this.lastInfo,
|
|
266
264
|
leftLockTotalWidth = _this$lastInfo.leftLockTotalWidth,
|
|
267
265
|
rightLockTotalWidth = _this$lastInfo.rightLockTotalWidth;
|
|
268
|
-
var lockTotalWidth = leftLockTotalWidth + rightLockTotalWidth;
|
|
266
|
+
var lockTotalWidth = leftLockTotalWidth + rightLockTotalWidth;
|
|
267
|
+
var stickyRightOffset = this.hasScrollY ? this.getScrollBarWidth() : 0; // 设置子节点宽度
|
|
269
268
|
|
|
270
|
-
stickyScrollItem.style.width = "".concat(innerTableWidth - lockTotalWidth, "px");
|
|
269
|
+
stickyScrollItem.style.width = "".concat(innerTableWidth - lockTotalWidth + stickyRightOffset, "px");
|
|
271
270
|
}
|
|
272
271
|
}, {
|
|
273
272
|
key: "renderTableHeader",
|
|
@@ -276,9 +275,12 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
276
275
|
stickyTop = _this$props3.stickyTop,
|
|
277
276
|
hasHeader = _this$props3.hasHeader;
|
|
278
277
|
var renderHeader = getTableRenderTemplate('header');
|
|
278
|
+
var stickyRightOffset = this.hasScrollY ? this.getScrollBarWidth() : 0;
|
|
279
279
|
|
|
280
280
|
if (typeof renderHeader === 'function') {
|
|
281
|
-
return renderHeader(info, this.props
|
|
281
|
+
return renderHeader(info, this.props, {
|
|
282
|
+
stickyRightOffset: stickyRightOffset
|
|
283
|
+
});
|
|
282
284
|
}
|
|
283
285
|
|
|
284
286
|
return /*#__PURE__*/React.createElement("div", {
|
|
@@ -288,7 +290,8 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
288
290
|
display: hasHeader ? undefined : 'none'
|
|
289
291
|
}
|
|
290
292
|
}, /*#__PURE__*/React.createElement(TableHeader, {
|
|
291
|
-
info: info
|
|
293
|
+
info: info,
|
|
294
|
+
stickyRightOffset: stickyRightOffset
|
|
292
295
|
}), /*#__PURE__*/React.createElement("div", {
|
|
293
296
|
className: Classes.verticalScrollPlaceholder,
|
|
294
297
|
style: this.hasScrollY ? {
|
|
@@ -370,6 +373,7 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
370
373
|
getRowProps = _this$props4.getRowProps,
|
|
371
374
|
primaryKey = _this$props4.primaryKey,
|
|
372
375
|
stickyBottom = _this$props4.stickyBottom;
|
|
376
|
+
var stickyRightOffset = this.hasScrollY ? this.getScrollBarWidth() : 0;
|
|
373
377
|
var renderFooter = getTableRenderTemplate('footer');
|
|
374
378
|
|
|
375
379
|
if (typeof renderFooter === 'function') {
|
|
@@ -377,7 +381,8 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
377
381
|
rowProps: {
|
|
378
382
|
onMouseEnter: this.handleRowMouseEnter,
|
|
379
383
|
onMouseLeave: this.handleRowMouseLeave
|
|
380
|
-
}
|
|
384
|
+
},
|
|
385
|
+
stickyRightOffset: stickyRightOffset
|
|
381
386
|
});
|
|
382
387
|
}
|
|
383
388
|
|
|
@@ -391,6 +396,7 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
391
396
|
data: footerDataSource,
|
|
392
397
|
horizontalRenderInfo: info,
|
|
393
398
|
getRowProps: getRowProps,
|
|
399
|
+
stickyRightOffset: stickyRightOffset,
|
|
394
400
|
primaryKey: primaryKey,
|
|
395
401
|
verticalRenderInfo: {
|
|
396
402
|
offset: 0,
|
|
@@ -409,7 +415,8 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
409
415
|
}, {
|
|
410
416
|
key: "renderLockShadows",
|
|
411
417
|
value: function renderLockShadows(info) {
|
|
412
|
-
// console.log('render LockShadows')
|
|
418
|
+
var stickyRightOffset = this.hasScrollY ? this.getScrollBarWidth() : 0; // console.log('render LockShadows')
|
|
419
|
+
|
|
413
420
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
414
421
|
className: Classes.lockShadowMask,
|
|
415
422
|
style: {
|
|
@@ -422,7 +429,7 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
422
429
|
className: Classes.lockShadowMask,
|
|
423
430
|
style: {
|
|
424
431
|
right: 0,
|
|
425
|
-
width: info.rightLockTotalWidth + LOCK_SHADOW_PADDING
|
|
432
|
+
width: info.rightLockTotalWidth + LOCK_SHADOW_PADDING + stickyRightOffset
|
|
426
433
|
}
|
|
427
434
|
}, /*#__PURE__*/React.createElement("div", {
|
|
428
435
|
className: cx(Classes.lockShadow, Classes.rightLockShadow)
|
|
@@ -436,17 +443,21 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
436
443
|
hasStickyScroll = _this$props5.hasStickyScroll,
|
|
437
444
|
stickyBottom = _this$props5.stickyBottom;
|
|
438
445
|
var hasScroll = this.state.hasScroll;
|
|
446
|
+
var isScroll = hasStickyScroll && hasScroll;
|
|
447
|
+
var stickyScrollContainerStyle = this.getStickyScrollContainerStyle();
|
|
439
448
|
return /*#__PURE__*/React.createElement("div", {
|
|
440
|
-
className: cx(Classes.horizontalScrollContainer, Classes.horizontalStickyScrollContainer)
|
|
449
|
+
className: cx(Classes.horizontalScrollContainer, Classes.horizontalStickyScrollContainer),
|
|
450
|
+
style: stickyScrollContainerStyle
|
|
441
451
|
}, /*#__PURE__*/React.createElement("div", {
|
|
442
452
|
className: cx(Classes.horizontalScrollLeftSpacer),
|
|
443
453
|
style: {
|
|
444
|
-
width: info.leftLockTotalWidth
|
|
454
|
+
width: info.leftLockTotalWidth,
|
|
455
|
+
display: isScroll ? 'block' : 'none'
|
|
445
456
|
}
|
|
446
457
|
}), /*#__PURE__*/React.createElement("div", {
|
|
447
458
|
className: cx(Classes.stickyScroll),
|
|
448
459
|
style: {
|
|
449
|
-
display:
|
|
460
|
+
display: isScroll ? 'block' : 'none',
|
|
450
461
|
bottom: stickyBottom
|
|
451
462
|
}
|
|
452
463
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -454,7 +465,8 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
454
465
|
})), /*#__PURE__*/React.createElement("div", {
|
|
455
466
|
className: cx(Classes.horizontalScrollRightSpacer),
|
|
456
467
|
style: {
|
|
457
|
-
width: info.rightLockTotalWidth
|
|
468
|
+
width: info.rightLockTotalWidth,
|
|
469
|
+
display: isScroll ? 'block' : 'none'
|
|
458
470
|
}
|
|
459
471
|
}));
|
|
460
472
|
}
|
|
@@ -463,6 +475,22 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
463
475
|
value: function getScrollBarWidth() {
|
|
464
476
|
return this.props.scrollbarWidth || getScrollbarSize().width;
|
|
465
477
|
}
|
|
478
|
+
}, {
|
|
479
|
+
key: "getStickyScrollContainerStyle",
|
|
480
|
+
value: function getStickyScrollContainerStyle() {
|
|
481
|
+
var _this$props6 = this.props,
|
|
482
|
+
hasStickyScroll = _this$props6.hasStickyScroll,
|
|
483
|
+
stickyScrollHeight = _this$props6.stickyScrollHeight;
|
|
484
|
+
var hasScroll = this.state.hasScroll;
|
|
485
|
+
var isScroll = hasStickyScroll && hasScroll;
|
|
486
|
+
var height = stickyScrollHeight === 'auto' ? this.getScrollBarWidth() : stickyScrollHeight;
|
|
487
|
+
var stickyHeight = isScroll ? height : 0;
|
|
488
|
+
return {
|
|
489
|
+
height: stickyHeight,
|
|
490
|
+
maxHeight: stickyHeight,
|
|
491
|
+
minHeight: stickyHeight
|
|
492
|
+
};
|
|
493
|
+
}
|
|
466
494
|
}, {
|
|
467
495
|
key: "render",
|
|
468
496
|
value: function render() {
|
|
@@ -471,20 +499,20 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
471
499
|
// console.log('render table')
|
|
472
500
|
var info = calculateRenderInfo(this);
|
|
473
501
|
this.lastInfo = info;
|
|
474
|
-
var _this$
|
|
475
|
-
dataSource = _this$
|
|
476
|
-
className = _this$
|
|
477
|
-
style = _this$
|
|
478
|
-
hasHeader = _this$
|
|
479
|
-
useOuterBorder = _this$
|
|
480
|
-
isStickyHead = _this$
|
|
481
|
-
isStickyHeader = _this$
|
|
482
|
-
isStickyFooter = _this$
|
|
483
|
-
isLoading = _this$
|
|
484
|
-
getTableProps = _this$
|
|
485
|
-
footerDataSource = _this$
|
|
486
|
-
components = _this$
|
|
487
|
-
bordered = _this$
|
|
502
|
+
var _this$props7 = this.props,
|
|
503
|
+
dataSource = _this$props7.dataSource,
|
|
504
|
+
className = _this$props7.className,
|
|
505
|
+
style = _this$props7.style,
|
|
506
|
+
hasHeader = _this$props7.hasHeader,
|
|
507
|
+
useOuterBorder = _this$props7.useOuterBorder,
|
|
508
|
+
isStickyHead = _this$props7.isStickyHead,
|
|
509
|
+
isStickyHeader = _this$props7.isStickyHeader,
|
|
510
|
+
isStickyFooter = _this$props7.isStickyFooter,
|
|
511
|
+
isLoading = _this$props7.isLoading,
|
|
512
|
+
getTableProps = _this$props7.getTableProps,
|
|
513
|
+
footerDataSource = _this$props7.footerDataSource,
|
|
514
|
+
components = _this$props7.components,
|
|
515
|
+
bordered = _this$props7.bordered;
|
|
488
516
|
var artTableWrapperClassName = cx(Classes.artTableWrapper, (_cx = {
|
|
489
517
|
'use-outer-border': useOuterBorder,
|
|
490
518
|
empty: dataSource.length === 0,
|
|
@@ -512,20 +540,19 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
512
540
|
}, {
|
|
513
541
|
key: "componentDidMount",
|
|
514
542
|
value: function componentDidMount() {
|
|
515
|
-
var _a, _b, _c, _d, _e, _f;
|
|
516
|
-
// console.log('update dom helper start')
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
this.updateDOMHelper(); // console.log('update dom helper end')
|
|
543
|
+
var _a, _b, _c, _d, _e, _f;
|
|
520
544
|
|
|
545
|
+
this.rootSubscription = new Subscription();
|
|
546
|
+
this.resizeSubject = new Subject();
|
|
547
|
+
this.updateDOMHelper();
|
|
521
548
|
this.props$ = new BehaviorSubject(this.props);
|
|
522
549
|
this.initSubscriptions();
|
|
523
550
|
this.didMountOrUpdate(); // console.log('did mount end')
|
|
524
551
|
|
|
525
|
-
var _this$
|
|
526
|
-
cssVariables = _this$
|
|
527
|
-
enableCSSVariables = _this$
|
|
528
|
-
bordered = _this$
|
|
552
|
+
var _this$props8 = this.props,
|
|
553
|
+
cssVariables = _this$props8.cssVariables,
|
|
554
|
+
enableCSSVariables = _this$props8.enableCSSVariables,
|
|
555
|
+
bordered = _this$props8.bordered;
|
|
529
556
|
cssPolifill({
|
|
530
557
|
variables: cssVariables || {},
|
|
531
558
|
enableCSSVariables: enableCSSVariables,
|
|
@@ -541,10 +568,10 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
541
568
|
var _a; // console.log('did update start')
|
|
542
569
|
|
|
543
570
|
|
|
544
|
-
var _this$
|
|
545
|
-
cssVariables = _this$
|
|
546
|
-
enableCSSVariables = _this$
|
|
547
|
-
bordered = _this$
|
|
571
|
+
var _this$props9 = this.props,
|
|
572
|
+
cssVariables = _this$props9.cssVariables,
|
|
573
|
+
enableCSSVariables = _this$props9.enableCSSVariables,
|
|
574
|
+
bordered = _this$props9.bordered;
|
|
548
575
|
|
|
549
576
|
if (!shallowEqual(prevProps === null || prevProps === void 0 ? void 0 : prevProps.cssVariables, (_a = this.props) === null || _a === void 0 ? void 0 : _a.cssVariables)) {
|
|
550
577
|
cssPolifill({
|
package/es/table/interfaces.d.ts
CHANGED
|
@@ -133,7 +133,9 @@ function getColumnWidthSum(pipeline) {
|
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
function getTableRemainingWidth(pipeline) {
|
|
136
|
-
var
|
|
136
|
+
var _a, _b;
|
|
137
|
+
|
|
138
|
+
var tableWidth = ((_b = (_a = pipeline.ref.current.domHelper) === null || _a === void 0 ? void 0 : _a.tableBody) === null || _b === void 0 ? void 0 : _b.clientWidth) || pipeline.getStateAtKey(tableWidthKey);
|
|
137
139
|
if (!tableWidth) return;
|
|
138
140
|
var remainingWidth = Math.floor(tableWidth - getColumnWidthSum(pipeline));
|
|
139
141
|
return remainingWidth > 0 ? remainingWidth : 0;
|
|
@@ -2,7 +2,7 @@ import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
|
|
|
2
2
|
import _extends from "@babel/runtime-corejs3/helpers/extends";
|
|
3
3
|
import _toConsumableArray from "@babel/runtime-corejs3/helpers/toConsumableArray";
|
|
4
4
|
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
|
5
|
-
import { makeRecursiveMapper, mergeCellProps, collectNodes, isLeafNode } from '../../utils';
|
|
5
|
+
import { makeRecursiveMapper, mergeCellProps, collectNodes, isLeafNode, isSelectColumn } from '../../utils';
|
|
6
6
|
import { FILL_COLUMN_CODE } from './autoFill';
|
|
7
7
|
var stateKey = 'columnDrag';
|
|
8
8
|
var SCROLL_SIZE = 30;
|
|
@@ -315,9 +315,13 @@ export function columnDrag() {
|
|
|
315
315
|
if (onColumnDragStopped) {
|
|
316
316
|
var _context;
|
|
317
317
|
|
|
318
|
-
var
|
|
319
|
-
var
|
|
320
|
-
return code
|
|
318
|
+
var isRowDragColumn = function isRowDragColumn(code) {
|
|
319
|
+
var rowDragColumnKey = pipeline.getFeatureOptions('rowDragColumnKey');
|
|
320
|
+
return code === rowDragColumnKey;
|
|
321
|
+
};
|
|
322
|
+
|
|
323
|
+
var newColumns = _filterInstanceProperty(_context = sortColumns(columns, cloumnsSortData)).call(_context, function (column) {
|
|
324
|
+
return column.code !== FILL_COLUMN_CODE && !isRowDragColumn(column.code) && !isSelectColumn(column);
|
|
321
325
|
}); // TODO drag需要在resize之后use,否则这里返回的列对应的宽度不是拖拽后的
|
|
322
326
|
|
|
323
327
|
|
|
@@ -343,9 +347,9 @@ export function columnDrag() {
|
|
|
343
347
|
};
|
|
344
348
|
}
|
|
345
349
|
|
|
346
|
-
function enableMove(
|
|
347
|
-
var lock =
|
|
348
|
-
code =
|
|
350
|
+
function enableMove(_ref) {
|
|
351
|
+
var lock = _ref.lock,
|
|
352
|
+
code = _ref.code;
|
|
349
353
|
return code && code !== FILL_COLUMN_CODE && !lock;
|
|
350
354
|
}
|
|
351
355
|
|