@kdcloudjs/table 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/@kdcloudjs/table.css +1 -1
  2. package/dist/@kdcloudjs/table.js +270 -188
  3. package/dist/@kdcloudjs/table.js.map +1 -1
  4. package/dist/@kdcloudjs/table.min.css +1 -1
  5. package/dist/@kdcloudjs/table.min.js +7 -7
  6. package/dist/@kdcloudjs/table.min.js.map +1 -1
  7. package/es/table/base/calculations.js +1 -1
  8. package/es/table/base/empty.js +2 -2
  9. package/es/table/base/header.js +7 -11
  10. package/es/table/base/html-table.js +13 -22
  11. package/es/table/base/styles.d.ts +10 -0
  12. package/es/table/base/styles.js +13 -3
  13. package/es/table/common-views.js +2 -2
  14. package/es/table/pipeline/features/__test__/treeMode.test.js +2 -1
  15. package/es/table/pipeline/features/columnDrag.js +62 -21
  16. package/es/table/pipeline/features/contextMenu.js +37 -22
  17. package/es/table/pipeline/features/multiSelect.js +83 -79
  18. package/es/table/pipeline/features/rowDetail.js +2 -1
  19. package/es/table/pipeline/features/rowGrouping.js +2 -1
  20. package/es/table/pipeline/features/treeMode.js +3 -2
  21. package/es/table/pipeline/pipeline.d.ts +4 -0
  22. package/es/table/pipeline/pipeline.js +17 -0
  23. package/es/table/pivot/pivot-utils/convert-utils.js +4 -2
  24. package/lib/table/base/calculations.js +1 -1
  25. package/lib/table/base/empty.js +2 -2
  26. package/lib/table/base/header.js +8 -11
  27. package/lib/table/base/html-table.js +14 -22
  28. package/lib/table/base/styles.d.ts +10 -0
  29. package/lib/table/base/styles.js +13 -3
  30. package/lib/table/common-views.js +1 -1
  31. package/lib/table/pipeline/features/__test__/treeMode.test.js +3 -1
  32. package/lib/table/pipeline/features/columnDrag.js +63 -22
  33. package/lib/table/pipeline/features/contextMenu.js +37 -22
  34. package/lib/table/pipeline/features/multiSelect.js +79 -75
  35. package/lib/table/pipeline/features/rowDetail.js +3 -1
  36. package/lib/table/pipeline/features/rowGrouping.js +3 -1
  37. package/lib/table/pipeline/features/treeMode.js +4 -2
  38. package/lib/table/pipeline/pipeline.d.ts +4 -0
  39. package/lib/table/pipeline/pipeline.js +17 -0
  40. package/lib/table/pivot/pivot-utils/convert-utils.js +6 -2
  41. package/package.json +1 -1
@@ -9,8 +9,6 @@ import { mergeCellProps } from '../../utils';
9
9
  export function multiSelect() {
10
10
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
11
11
  return function multiSelectStep(pipeline) {
12
- var _context;
13
-
14
12
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
15
13
 
16
14
  var stateKey = 'multiSelect';
@@ -54,94 +52,100 @@ export function multiSelect() {
54
52
  allKeys.push(rowKey);
55
53
  }
56
54
  });
57
- var set = new _Set(value);
58
- var isAllChecked = allKeys.length > 0 && allKeys.every(function (key) {
59
- return set.has(key);
60
- });
61
- var isAnyChecked = allKeys.some(function (key) {
62
- return set.has(key);
63
- });
64
- var defaultCheckboxColumnTitle = /*#__PURE__*/React.createElement(Checkbox, {
65
- checked: isAllChecked,
66
- indeterminate: !isAllChecked && isAnyChecked,
67
- onChange: function onChange(_) {
68
- if (isAllChecked) {
69
- _onChange(arrayUtils.diff(value, allKeys), '', allKeys, 'uncheck-all');
70
- } else {
71
- _onChange(arrayUtils.merge(value, allKeys), '', allKeys, 'check-all');
72
- }
73
- }
74
- });
55
+ var set = new _Set(value); // todo: 暂使用hidden隐藏选择列 后续增加配置
75
56
 
76
- var checkboxColumn = _extends(_extends({
77
- name: '是否选中',
78
- title: defaultCheckboxColumnTitle,
79
- width: 50,
80
- align: 'center'
81
- }, opts.checkboxColumn), {
82
- getCellProps: function getCellProps(value, row, rowIndex) {
83
- var _a, _b;
84
-
85
- var rowKey = internals.safeGetRowKey(primaryKey, row, rowIndex);
86
- var checkboxCellProps = {};
87
- var preCellProps = (_b = (_a = opts.checkboxColumn) === null || _a === void 0 ? void 0 : _a.getCellProps) === null || _b === void 0 ? void 0 : _b.call(_a, value, row, rowIndex);
88
-
89
- if (fullKeySet.has(rowKey) && clickArea === 'cell') {
90
- var prevChecked = set.has(rowKey);
91
- var disabled = isDisabled(row, rowIndex);
92
- checkboxCellProps = {
93
- style: {
94
- cursor: disabled ? 'not-allowed' : 'pointer'
95
- },
96
- onClick: disabled ? undefined : function (e) {
97
- if (opts.stopClickEventPropagation) {
98
- e.stopPropagation();
99
- }
57
+ if (opts.checkboxColumn && opts.checkboxColumn.hidden !== true) {
58
+ var _context;
100
59
 
101
- onCheckboxChange(prevChecked, rowKey, e.shiftKey);
102
- }
103
- };
60
+ var isAllChecked = allKeys.length > 0 && allKeys.every(function (key) {
61
+ return set.has(key);
62
+ });
63
+ var isAnyChecked = allKeys.some(function (key) {
64
+ return set.has(key);
65
+ });
66
+ var defaultCheckboxColumnTitle = /*#__PURE__*/React.createElement(Checkbox, {
67
+ checked: isAllChecked,
68
+ indeterminate: !isAllChecked && isAnyChecked,
69
+ onChange: function onChange(_) {
70
+ if (isAllChecked) {
71
+ _onChange(arrayUtils.diff(value, allKeys), '', allKeys, 'uncheck-all');
72
+ } else {
73
+ _onChange(arrayUtils.merge(value, allKeys), '', allKeys, 'check-all');
74
+ }
104
75
  }
76
+ });
105
77
 
106
- return mergeCellProps(preCellProps, checkboxCellProps);
107
- },
108
- render: function render(_, row, rowIndex) {
109
- var key = internals.safeGetRowKey(primaryKey, row, rowIndex);
110
- var checked = set.has(key);
111
- return /*#__PURE__*/React.createElement(Checkbox, {
112
- checked: checked,
113
- disabled: isDisabled(row, rowIndex),
114
- onChange: clickArea === 'checkbox' ? function (arg1, arg2) {
115
- var _a; // 这里要同时兼容 antd 和 fusion 的用法
116
- // fusion: arg2?.nativeEvent
117
- // antd: arg1.nativeEvent
118
-
119
-
120
- var nativeEvent = (_a = arg2 === null || arg2 === void 0 ? void 0 : arg2.nativeEvent) !== null && _a !== void 0 ? _a : arg1.nativeEvent;
121
-
122
- if (nativeEvent) {
123
- if (opts.stopClickEventPropagation) {
124
- nativeEvent.stopPropagation();
78
+ var checkboxColumn = _extends(_extends({
79
+ name: '是否选中',
80
+ title: defaultCheckboxColumnTitle,
81
+ width: 50,
82
+ align: 'center'
83
+ }, opts.checkboxColumn), {
84
+ getCellProps: function getCellProps(value, row, rowIndex) {
85
+ var _a, _b;
86
+
87
+ var rowKey = internals.safeGetRowKey(primaryKey, row, rowIndex);
88
+ var checkboxCellProps = {};
89
+ var preCellProps = (_b = (_a = opts.checkboxColumn) === null || _a === void 0 ? void 0 : _a.getCellProps) === null || _b === void 0 ? void 0 : _b.call(_a, value, row, rowIndex);
90
+
91
+ if (fullKeySet.has(rowKey) && clickArea === 'cell') {
92
+ var prevChecked = set.has(rowKey);
93
+ var disabled = isDisabled(row, rowIndex);
94
+ checkboxCellProps = {
95
+ style: {
96
+ cursor: disabled ? 'not-allowed' : 'pointer'
97
+ },
98
+ onClick: disabled ? undefined : function (e) {
99
+ if (opts.stopClickEventPropagation) {
100
+ e.stopPropagation();
101
+ }
102
+
103
+ onCheckboxChange(prevChecked, rowKey, e.shiftKey);
104
+ }
105
+ };
106
+ }
107
+
108
+ return mergeCellProps(preCellProps, checkboxCellProps);
109
+ },
110
+ render: function render(_, row, rowIndex) {
111
+ var key = internals.safeGetRowKey(primaryKey, row, rowIndex);
112
+ var checked = set.has(key);
113
+ return /*#__PURE__*/React.createElement(Checkbox, {
114
+ checked: checked,
115
+ disabled: isDisabled(row, rowIndex),
116
+ onChange: clickArea === 'checkbox' ? function (arg1, arg2) {
117
+ var _a; // 这里要同时兼容 antd 和 fusion 的用法
118
+ // fusion: arg2?.nativeEvent
119
+ // antd: arg1.nativeEvent
120
+
121
+
122
+ var nativeEvent = (_a = arg2 === null || arg2 === void 0 ? void 0 : arg2.nativeEvent) !== null && _a !== void 0 ? _a : arg1.nativeEvent;
123
+
124
+ if (nativeEvent) {
125
+ if (opts.stopClickEventPropagation) {
126
+ nativeEvent.stopPropagation();
127
+ }
128
+
129
+ onCheckboxChange(checked, key, nativeEvent.shiftKey);
125
130
  }
131
+ } : undefined
132
+ });
133
+ }
134
+ });
126
135
 
127
- onCheckboxChange(checked, key, nativeEvent.shiftKey);
128
- }
129
- } : undefined
130
- });
131
- }
132
- });
136
+ var nextColumns = _sliceInstanceProperty(_context = pipeline.getColumns()).call(_context);
133
137
 
134
- var nextColumns = _sliceInstanceProperty(_context = pipeline.getColumns()).call(_context);
138
+ var checkboxPlacement = (_l = opts.checkboxPlacement) !== null && _l !== void 0 ? _l : 'start';
135
139
 
136
- var checkboxPlacement = (_l = opts.checkboxPlacement) !== null && _l !== void 0 ? _l : 'start';
140
+ if (checkboxPlacement === 'start') {
141
+ nextColumns.unshift(checkboxColumn);
142
+ } else {
143
+ nextColumns.push(checkboxColumn);
144
+ }
137
145
 
138
- if (checkboxPlacement === 'start') {
139
- nextColumns.unshift(checkboxColumn);
140
- } else {
141
- nextColumns.push(checkboxColumn);
146
+ pipeline.columns(nextColumns);
142
147
  }
143
148
 
144
- pipeline.columns(nextColumns);
145
149
  pipeline.appendRowPropsGetter(function (row, rowIndex) {
146
150
  var rowKey = internals.safeGetRowKey(primaryKey, row, rowIndex);
147
151
 
@@ -17,6 +17,7 @@ import { collectNodes, mergeCellProps } from '../../utils';
17
17
  import { always, flatMap } from '../../utils/others';
18
18
  import console from '../../utils/console';
19
19
  import getTableRenderTemplate from '../../base/renderTemplates';
20
+ import { Classes } from '../../base';
20
21
 
21
22
  var rowDetailSymbol = _Symbol('row-detail');
22
23
 
@@ -157,7 +158,7 @@ export function rowDetail() {
157
158
  toggle(rowKey);
158
159
  };
159
160
 
160
- var expandCls = expanded ? 'expanded' : 'collapsed';
161
+ var expandCls = expanded ? Classes.expanded : Classes.collapsed;
161
162
  var ExpandIcon = opts.expandIcon;
162
163
  return /*#__PURE__*/React.createElement(ExpansionCell, {
163
164
  className: cx('expansion-cell', expandCls),
@@ -14,6 +14,7 @@ import { ExpansionCell, icons, InlineFlexCell } from '../../common-views';
14
14
  import { internals } from '../../internals';
15
15
  import { collectNodes, isLeafNode, mergeCellProps } from '../../utils';
16
16
  import { flatMap } from '../../utils/others';
17
+ import { Classes } from '../../base';
17
18
 
18
19
  var groupingMetaSymbol = _Symbol('row-grouping-meta');
19
20
 
@@ -122,7 +123,7 @@ export function rowGrouping() {
122
123
  }
123
124
 
124
125
  var expanded = openKeySet.has(row[primaryKey]);
125
- var expandCls = expanded ? 'expanded' : 'collapsed';
126
+ var expandCls = expanded ? Classes.expanded : Classes.collapsed;
126
127
  return /*#__PURE__*/React.createElement(ExpansionCell, {
127
128
  className: cx('expansion-cell', expandCls)
128
129
  }, /*#__PURE__*/React.createElement(icons.CaretRight, {
@@ -21,6 +21,7 @@ import React from 'react';
21
21
  import { ExpansionCell, icons, InlineFlexCell } from '../../common-views';
22
22
  import { internals } from '../../internals';
23
23
  import { isLeafNode as standardIsLeafNode, mergeCellProps } from '../../utils';
24
+ import { Classes } from '../../base/styles';
24
25
  export var treeMetaSymbol = _Symbol('treeMetaSymbol');
25
26
  export function treeMode() {
26
27
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -146,7 +147,7 @@ export function treeMode() {
146
147
 
147
148
  if (isLeaf) {
148
149
  return /*#__PURE__*/React.createElement(InlineFlexCell, {
149
- className: "expansion-cell leaf"
150
+ className: cx('expansion-cell', Classes.leaf)
150
151
  }, /*#__PURE__*/React.createElement("span", {
151
152
  style: {
152
153
  marginLeft: indent + iconWidth + iconGap
@@ -162,7 +163,7 @@ export function treeMode() {
162
163
  toggle(rowKey);
163
164
  };
164
165
 
165
- var expandCls = expanded ? 'expanded' : 'collapsed';
166
+ var expandCls = expanded ? Classes.expanded : Classes.collapsed;
166
167
  return /*#__PURE__*/React.createElement(ExpansionCell, {
167
168
  className: cx('expansion-cell', expandCls),
168
169
  style: {
@@ -36,6 +36,7 @@ export declare class TablePipeline {
36
36
  private _tableProps;
37
37
  private _dataSource;
38
38
  private _columns;
39
+ private _footerDataSource;
39
40
  static defaultIndents: TablePipelineIndentsConfig;
40
41
  readonly ctx: TablePipelineCtx;
41
42
  private readonly state;
@@ -51,6 +52,7 @@ export declare class TablePipeline {
51
52
  addTableProps(props: React.HTMLAttributes<HTMLTableElement>): void;
52
53
  getDataSource(name?: string): any[];
53
54
  getColumns(name?: string): any[];
55
+ getFooterDataSource(): any[];
54
56
  getStateAtKey<T = any>(stateKey: string, defaultValue?: T): T;
55
57
  /** 将 stateKey 对应的状态设置为 partialState */
56
58
  setStateAtKey(stateKey: string, partialState: any, extraInfo?: any): void;
@@ -67,6 +69,8 @@ export declare class TablePipeline {
67
69
  columns(cols: ArtColumn[]): this;
68
70
  /** 设置主键 */
69
71
  primaryKey(key: PrimaryKey): this;
72
+ /** 设置页脚数据 */
73
+ footerDataSource(rows: any[]): this;
70
74
  /** 保存快照 */
71
75
  snapshot(name: string): this;
72
76
  /** @deprecated
@@ -85,6 +85,11 @@ export var TablePipeline = /*#__PURE__*/function () {
85
85
  return this._snapshots[name].columns;
86
86
  }
87
87
  }
88
+ }, {
89
+ key: "getFooterDataSource",
90
+ value: function getFooterDataSource() {
91
+ return this._footerDataSource;
92
+ }
88
93
  }, {
89
94
  key: "getStateAtKey",
90
95
  value: function getStateAtKey(stateKey, defaultValue) {
@@ -157,6 +162,14 @@ export var TablePipeline = /*#__PURE__*/function () {
157
162
  this.ctx.primaryKey = key;
158
163
  return this;
159
164
  }
165
+ /** 设置页脚数据 */
166
+
167
+ }, {
168
+ key: "footerDataSource",
169
+ value: function footerDataSource(rows) {
170
+ this._footerDataSource = rows;
171
+ return this;
172
+ }
160
173
  /** 保存快照 */
161
174
 
162
175
  }, {
@@ -237,6 +250,10 @@ export var TablePipeline = /*#__PURE__*/function () {
237
250
  result.primaryKey = this.ctx.primaryKey;
238
251
  }
239
252
 
253
+ if (this._footerDataSource) {
254
+ result.footerDataSource = this._footerDataSource;
255
+ }
256
+
240
257
  if (this._rowPropsGetters.length > 0) {
241
258
  result.getRowProps = function (row, rowIndex) {
242
259
  return _this2._rowPropsGetters.reduce(function (res, get) {
@@ -20,10 +20,12 @@ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/insta
20
20
  import React from 'react';
21
21
  import { noop } from 'rxjs';
22
22
  import styled from 'styled-components';
23
+ import cx from 'classnames';
23
24
  import { icons } from '../../common-views';
24
25
  import { isLeafNode } from '../../utils';
25
26
  import simpleEncode from './simpleEncode';
26
- var ExpandSpan = styled.span(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: inline-flex;\n align-items: center;\n padding: 2px 8px 2px 0;\n cursor: pointer;\n\n .icon {\n fill: #999;\n margin-right: 4px;\n\n &.expanded {\n transform-origin: center center;\n transform: rotate(90deg);\n }\n }\n"])));
27
+ import { Classes } from '../../base/styles';
28
+ var ExpandSpan = styled.span(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: inline-flex;\n align-items: center;\n padding: 2px 8px 2px 0;\n cursor: pointer;\n\n .icon {\n fill: #999;\n margin-right: 4px;\n\n &.", " {\n transform-origin: center center;\n transform: rotate(90deg);\n }\n }\n"])), Classes.expanded);
27
29
  export function convertDrillTreeToCrossTree(drillTree) {
28
30
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
29
31
  indicators = _ref.indicators,
@@ -115,7 +117,7 @@ export function convertDrillTreeToCrossTree(drillTree) {
115
117
  }), node, 'collapse');
116
118
  }
117
119
  }, /*#__PURE__*/React.createElement(icons.CaretRight, {
118
- className: "icon expanded"
120
+ className: cx('icon', Classes.expanded)
119
121
  }), node.value);
120
122
  crossTreeNode.children = dfs(node.children, depth + 1);
121
123
  } else {
@@ -218,7 +218,7 @@ function getHorizontalRenderRange(_ref) {
218
218
  return {
219
219
  leftIndex: leftIndex,
220
220
  leftBlank: leftBlank,
221
- rightIndex: leftIndex + centerCount + flat.right.length,
221
+ rightIndex: leftIndex + centerCount,
222
222
  rightBlank: rightBlank
223
223
  };
224
224
  } // 一顿计算,将表格本次渲染所需要的数据都给算出来(代码写得有点乱,有较大优化空间)
@@ -47,10 +47,10 @@ function EmptyHtmlTable(_ref) {
47
47
  }, /*#__PURE__*/_react.default.createElement(_colgroup.Colgroup, {
48
48
  descriptors: descriptors
49
49
  }), /*#__PURE__*/_react.default.createElement("tbody", null, /*#__PURE__*/_react.default.createElement("tr", {
50
- className: (0, _classnames.default)(_styles.Classes.tableRow, 'first', 'last', 'no-hover'),
50
+ className: (0, _classnames.default)(_styles.Classes.tableRow, _styles.Classes.first, _styles.Classes.last, 'no-hover'),
51
51
  "data-rowindex": 0
52
52
  }, /*#__PURE__*/_react.default.createElement("td", {
53
- className: (0, _classnames.default)(_styles.Classes.tableCell, 'first', 'last'),
53
+ className: (0, _classnames.default)(_styles.Classes.tableCell, _styles.Classes.first, _styles.Classes.last),
54
54
  colSpan: descriptors.length,
55
55
  style: {
56
56
  height: emptyCellHeight !== null && emptyCellHeight !== void 0 ? emptyCellHeight : 200
@@ -15,6 +15,8 @@ Object.defineProperty(exports, "__esModule", {
15
15
  });
16
16
  exports.default = TableHeader;
17
17
 
18
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
19
+
18
20
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
19
21
 
20
22
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray"));
@@ -258,6 +260,8 @@ function TableHeader(_ref2) {
258
260
  var leftFlatCount = flat.left.length;
259
261
  var rightFlatCount = flat.right.length;
260
262
  var thead = (0, _map.default)(_context4 = headerRenderInfo.leveled).call(_context4, function (wrappedCols, level) {
263
+ var _cx2;
264
+
261
265
  var _wrappedCols = (0, _concat.default)(wrappedCols).call(wrappedCols); // 左中右区域渲染,分组列可能单独位于一个区域,此时其他区域也需要适配分组的高度
262
266
  // rowspan 需要空白的列头去占位, 需要补充额外的空白列头
263
267
 
@@ -275,6 +279,8 @@ function TableHeader(_ref2) {
275
279
  var _a, _b, _c;
276
280
 
277
281
  if (wrapped.type === 'normal') {
282
+ var _cx;
283
+
278
284
  var colIndex = wrapped.colIndex,
279
285
  colSpan = wrapped.colSpan,
280
286
  isLeaf = wrapped.isLeaf,
@@ -295,13 +301,7 @@ function TableHeader(_ref2) {
295
301
  var cell = /*#__PURE__*/_react.default.createElement("th", (0, _extends2.default)({
296
302
  key: colIndex
297
303
  }, headerCellProps, {
298
- className: (0, _classnames.default)(_styles.Classes.tableHeaderCell, headerCellProps.className, {
299
- first: colIndex === 0,
300
- last: colIndex + colSpan === fullFlatCount,
301
- 'lock-left': colIndex < leftFlatCount || theaderPosition === 'left',
302
- 'lock-right': colIndex >= fullFlatCount - rightFlatCount || theaderPosition === 'right',
303
- leaf: wrapped.isLeaf
304
- }),
304
+ className: (0, _classnames.default)(_styles.Classes.tableHeaderCell, headerCellProps.className, (_cx = {}, (0, _defineProperty2.default)(_cx, _styles.Classes.first, colIndex === 0), (0, _defineProperty2.default)(_cx, _styles.Classes.last, colIndex + colSpan === fullFlatCount), (0, _defineProperty2.default)(_cx, _styles.Classes.lockLeft, colIndex < leftFlatCount || theaderPosition === 'left'), (0, _defineProperty2.default)(_cx, _styles.Classes.lockRight, colIndex >= fullFlatCount - rightFlatCount || theaderPosition === 'right'), (0, _defineProperty2.default)(_cx, _styles.Classes.leaf, wrapped.isLeaf), _cx)),
305
305
  colSpan: colSpan,
306
306
  rowSpan: isLeaf ? rowCount - level : undefined,
307
307
  style: (0, _extends2.default)((0, _extends2.default)({
@@ -332,10 +332,7 @@ function TableHeader(_ref2) {
332
332
  });
333
333
  return /*#__PURE__*/_react.default.createElement("tr", {
334
334
  key: level,
335
- className: (0, _classnames.default)(_styles.Classes.tableHeaderRow, {
336
- first: level === 0,
337
- last: level === rowCount - 1
338
- })
335
+ className: (0, _classnames.default)(_styles.Classes.tableHeaderRow, (_cx2 = {}, (0, _defineProperty2.default)(_cx2, _styles.Classes.first, level === 0), (0, _defineProperty2.default)(_cx2, _styles.Classes.last, level === rowCount - 1), _cx2))
339
336
  }, headerCells);
340
337
  });
341
338
  var colgroup = (0, _map.default)(_context5 = (0, _flat.default)(headerRenderInfo)).call(_context5, function (wrapped) {
@@ -9,6 +9,8 @@ exports.HtmlTable = HtmlTable;
9
9
 
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
11
11
 
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
13
+
12
14
  var _flat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/flat"));
13
15
 
14
16
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
@@ -49,17 +51,12 @@ function HtmlTable(_ref) {
49
51
  }), /*#__PURE__*/_react.default.createElement(tbodyHtmlTag, null, (0, _map.default)(data).call(data, renderRow)));
50
52
 
51
53
  function renderRow(record, i) {
52
- var _context;
54
+ var _cx, _context;
53
55
 
54
56
  var rowIndex = verInfo.offset + i;
55
57
  spanManager.stripUpwards(rowIndex);
56
58
  var rowProps = getRowProps(record, rowIndex);
57
- var rowClass = (0, _classnames.default)(_styles.Classes.tableRow, {
58
- first: rowIndex === verInfo.first,
59
- last: rowIndex === verInfo.last,
60
- even: rowIndex % 2 === 0,
61
- odd: rowIndex % 2 === 1
62
- }, rowProps === null || rowProps === void 0 ? void 0 : rowProps.className);
59
+ var rowClass = (0, _classnames.default)(_styles.Classes.tableRow, (_cx = {}, (0, _defineProperty2.default)(_cx, _styles.Classes.first, rowIndex === verInfo.first), (0, _defineProperty2.default)(_cx, _styles.Classes.last, rowIndex === verInfo.last), (0, _defineProperty2.default)(_cx, _styles.Classes.even, rowIndex % 2 === 0), (0, _defineProperty2.default)(_cx, _styles.Classes.odd, rowIndex % 2 === 1), _cx), rowProps === null || rowProps === void 0 ? void 0 : rowProps.className);
63
60
  var visibleColumnDescriptor = (0, _concat.default)(_context = hozInfo.visible).call(_context); // 左中右区域渲染,存在融合单元格时需要适配rowspan属性
64
61
  // 如果固定的列均存在融合单元格,需空白一列做占位,否则融合的单元格不会渲染,导致显示异常
65
62
  // 这里无法区分是否存在融合列,默认左右固定区域均添加占位空白列
@@ -93,6 +90,8 @@ function HtmlTable(_ref) {
93
90
  }
94
91
 
95
92
  function renderBodyCell(record, rowIndex, column, colIndex) {
93
+ var _cx2;
94
+
96
95
  var _a, _b, _c;
97
96
 
98
97
  if (spanManager.testSkip(rowIndex, colIndex)) {
@@ -123,20 +122,20 @@ function HtmlTable(_ref) {
123
122
  if (cellProps.rowSpan != null) {
124
123
  rowSpan = cellProps.rowSpan;
125
124
  }
125
+ }
126
+
127
+ var hasSpan = colSpan > 1 || rowSpan > 1;
128
+
129
+ if (hasSpan) {
130
+ spanManager.add(rowIndex, colIndex, colSpan, rowSpan);
126
131
  } // rowSpan/colSpan 不能过大,避免 rowSpan/colSpan 影响因虚拟滚动而未渲染的单元格
127
132
 
128
133
 
129
134
  rowSpan = Math.min(rowSpan, verInfo.limit - rowIndex);
130
- colSpan = Math.min(colSpan, leftFlatCount + hoz.rightIndex + rightFlatCount - colIndex); // todo: 右侧有列固定的情况下colSpan计算不对,这里先限制一下
135
+ colSpan = Math.min(colSpan, hozInfo.visible.length - colIndex); // todo: 右侧有列固定的情况下colSpan计算不对,这里先限制一下
131
136
 
132
137
  rowSpan = Math.max(rowSpan, 1);
133
138
  colSpan = Math.max(colSpan, 1);
134
- var hasSpan = colSpan > 1 || rowSpan > 1;
135
-
136
- if (hasSpan) {
137
- spanManager.add(rowIndex, colIndex, colSpan, rowSpan);
138
- }
139
-
140
139
  var positionStyle = {};
141
140
  var scrollbarWidth = hasScrollY ? (0, _utils.getScrollbarSize)().width : 0;
142
141
 
@@ -151,14 +150,7 @@ function HtmlTable(_ref) {
151
150
  return /*#__PURE__*/_react.default.createElement('td', (0, _extends2.default)((0, _extends2.default)((0, _extends2.default)((0, _extends2.default)({
152
151
  key: colIndex
153
152
  }, cellProps), {
154
- className: (0, _classnames.default)(_styles.Classes.tableCell, cellProps.className, {
155
- // class
156
- first: colIndex === 0,
157
- last: colIndex + colSpan === fullFlatCount,
158
- 'lock-left': colIndex < leftFlatCount || tbodyPosition === 'left',
159
- 'lock-right': colIndex >= fullFlatCount - rightFlatCount,
160
- 'row-span': rowSpan > 1
161
- })
153
+ className: (0, _classnames.default)(_styles.Classes.tableCell, cellProps.className, (_cx2 = {}, (0, _defineProperty2.default)(_cx2, _styles.Classes.first, colIndex === 0), (0, _defineProperty2.default)(_cx2, _styles.Classes.last, colIndex + colSpan === fullFlatCount), (0, _defineProperty2.default)(_cx2, _styles.Classes.lockLeft, colIndex < leftFlatCount || tbodyPosition === 'left'), (0, _defineProperty2.default)(_cx2, _styles.Classes.lockRight, colIndex >= fullFlatCount - rightFlatCount), (0, _defineProperty2.default)(_cx2, _styles.Classes.rowSpan, rowSpan > 1), _cx2))
162
154
  }), hasSpan ? {
163
155
  colSpan: colSpan,
164
156
  rowSpan: rowSpan
@@ -50,6 +50,16 @@ export declare const Classes: {
50
50
  readonly rowDetailContainer: string;
51
51
  readonly rowDetailItem: string;
52
52
  readonly emptyColCell: string;
53
+ readonly first: string;
54
+ readonly last: string;
55
+ readonly even: string;
56
+ readonly odd: string;
57
+ readonly lockLeft: string;
58
+ readonly lockRight: string;
59
+ readonly rowSpan: string;
60
+ readonly leaf: string;
61
+ readonly expanded: string;
62
+ readonly collapsed: string;
53
63
  };
54
64
  export declare const MenuClasses: {
55
65
  menu: string;
@@ -85,7 +85,17 @@ var Classes = {
85
85
  fixedRight: "".concat(prefix, "fixed-right"),
86
86
  rowDetailContainer: "".concat(prefix, "row-detail-container"),
87
87
  rowDetailItem: "".concat(prefix, "row-detail-item"),
88
- emptyColCell: "".concat(prefix, "empty-col-cell")
88
+ emptyColCell: "".concat(prefix, "empty-col-cell"),
89
+ first: "".concat(prefix, "first"),
90
+ last: "".concat(prefix, "last"),
91
+ even: "".concat(prefix, "even"),
92
+ odd: "".concat(prefix, "odd"),
93
+ lockLeft: "".concat(prefix, "lock-left"),
94
+ lockRight: "".concat(prefix, "lock-right"),
95
+ rowSpan: "".concat(prefix, "row-span"),
96
+ leaf: "".concat(prefix, "leaf"),
97
+ expanded: "".concat(prefix, "expanded"),
98
+ collapsed: "".concat(prefix, "collapsed")
89
99
  };
90
100
  exports.Classes = Classes;
91
101
  var MenuClasses = {
@@ -106,7 +116,7 @@ var Z = {
106
116
  scrollItem: 30,
107
117
  loadingIndicator: 40
108
118
  };
109
- var outerBorderStyleMixin = (0, _styledComponents.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n border-top: 1px solid #cccccc;\n border-right: 1px solid #cccccc;\n border-bottom: 1px solid #cccccc;\n border-left: 1px solid #cccccc;\n\n td.first,\n th.first {\n border-left: none;\n }\n td.last,\n th.last {\n --border-right: none;\n }\n\n thead tr.first th,\n tbody tr.first td {\n border-top: none;\n }\n &.has-footer tfoot tr.last td {\n border-bottom: none;\n }\n &:not(.has-footer) tbody tr.last td {\n border-bottom: none;\n }\n td.row-span:not(.first){\n border-left: var(---cell-border-vertical);\n }\n td.row-span:not(.last){\n border-right: var(---cell-border-vertical);\n }\n"])));
119
+ var outerBorderStyleMixin = (0, _styledComponents.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n border-top: 1px solid #cccccc;\n border-right: 1px solid #cccccc;\n border-bottom: 1px solid #cccccc;\n border-left: 1px solid #cccccc;\n\n td.", ",\n th.", " {\n border-left: none;\n }\n td.", ",\n th.", " {\n --border-right: none;\n }\n\n thead tr.", " th,\n tbody tr.", " td {\n border-top: none;\n }\n &.has-footer tfoot tr.", " td {\n border-bottom: none;\n }\n &:not(.has-footer) tbody tr.", " td {\n border-bottom: none;\n }\n td.", ":not(.", "){\n border-left: var(---cell-border-vertical);\n }\n td.", ":not(.", "){\n border-right: var(---cell-border-vertical);\n }\n"])), Classes.first, Classes.first, Classes.last, Classes.last, Classes.first, Classes.first, Classes.last, Classes.last, Classes.rowSpan, Classes.first, Classes.rowSpan, Classes.last);
110
120
  var defaultCSSVariables = {
111
121
  '--row-height': '48px',
112
122
  '--color': '#333',
@@ -139,7 +149,7 @@ exports.defaultCSSVariables = defaultCSSVariables;
139
149
  var variableConst = getCssVariableText(defaultCSSVariables);
140
150
  exports.variableConst = variableConst;
141
151
 
142
- var StyledArtTableWrapper = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n :root {\n ", "\n }\n ", "\n\n box-sizing: border-box;\n * {\n box-sizing: border-box;\n }\n cursor: default;\n color: var(--color);\n font-size: var(--font-size);\n line-height: var(--line-height);\n position: relative;\n\n // \u8868\u683C\u5916\u8FB9\u6846\u7531 art-table-wrapper \u63D0\u4F9B\uFF0C\u800C\u4E0D\u662F\u7531\u5355\u5143\u683C\u63D0\u4F9B\n &.use-outer-border {\n ", ";\n }\n\n .no-scrollbar {\n ::-webkit-scrollbar {\n display: none;\n }\n }\n\n .", " {\n overflow: auto;\n flex-shrink: 1;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n user-select:none;\n }\n\n .", " {\n overflow: hidden;\n background: var(--header-bgcolor);\n display: flex;\n flex-shrink: 0;\n border-bottom: var(--header-cell-border-horizontal);\n }\n\n .", " {\n display: flex;\n // justify-content: flex-start;\n align-items: center;\n height: inherit;\n }\n\n .", " {\n overflow-x:auto;\n flex-shrink: 0;\n flex-grow: 0;\n scrollbar-width: none; // \u517C\u5BB9\u706B\u72D0\n & {\n ::-webkit-scrollbar {\n display:none;\n }\n }\n }\n\n .", " {\n display: flex;\n flex: none;\n }\n .", ", .", " {\n background: var(--bgcolor);\n overflow: auto;\n overflow-x: hidden;\n overflow-anchor: none;\n position:relative;\n &.empty {\n position: relative;\n }\n }\n\n .", " {\n position: relative;\n }\n .", " {\n .", "{\n background-color: #e6effb !important;\n }\n .", "{\n border-top: 1px solid #0E5FD8 !important;\n }\n .", "{\n border-left: 1px solid #0E5FD8 !important;\n }\n .", "{\n border-bottom: 1px solid #0E5FD8 !important;\n }\n .", "{\n border-right: 1px solid #0E5FD8 !important;\n }\n }\n \n\n &.sticky-header .", " {\n position: sticky;\n top: 0;\n z-index: ", ";\n }\n\n &.sticky-footer .", " {\n position: sticky;\n bottom: 0;\n z-index: ", ";\n }\n\n table {\n width: 0;\n table-layout: fixed;\n border-collapse: separate;\n border-spacing: 0;\n display: table;\n margin: 0;\n padding: 0;\n flex-shrink: 0;\n flex-grow: 0;\n position:relative;\n }\n\n // \u5728 tr \u4E0A\u8BBE\u7F6E .no-hover \u53EF\u4EE5\u7981\u7528\u9F20\u6807\u60AC\u505C\u6548\u679C\n tr:not(.no-hover):hover > td {\n background: var(--hover-bgcolor);\n }\n // \u5728 tr \u8BBE\u7F6E highlight \u53EF\u4EE5\u4E3A\u5E95\u4E0B\u7684 td \u8BBE\u7F6E\u4E3A\u9AD8\u4EAE\u8272\n // \u800C\u8BBE\u7F6E .no-highlight \u7684\u8BDD\u5219\u53EF\u4EE5\u7981\u7528\u9AD8\u4EAE\u6548\u679C\uFF1B\n tr:not(.no-highlight).highlight > td {\n background: var(--highlight-bgcolor);\n }\n\n th {\n font-weight: normal;\n text-align: left;\n padding: var(--cell-padding);\n height: var(--header-row-height);\n color: var(--header-color);\n background: var(--header-bgcolor);\n border:1px solid transparent;\n border-right: var(--header-cell-border-vertical);\n border-bottom: var(--header-cell-border-horizontal);\n position: relative;\n }\n\n th.resizeable{\n border-right:none\n }\n\n th.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);
152
+ var StyledArtTableWrapper = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n :root {\n ", "\n }\n ", "\n\n box-sizing: border-box;\n * {\n box-sizing: border-box;\n }\n cursor: default;\n color: var(--color);\n font-size: var(--font-size);\n line-height: var(--line-height);\n position: relative;\n\n // \u8868\u683C\u5916\u8FB9\u6846\u7531 art-table-wrapper \u63D0\u4F9B\uFF0C\u800C\u4E0D\u662F\u7531\u5355\u5143\u683C\u63D0\u4F9B\n &.use-outer-border {\n ", ";\n }\n\n .no-scrollbar {\n ::-webkit-scrollbar {\n display: none;\n }\n }\n\n .", " {\n overflow: auto;\n flex-shrink: 1;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n user-select:none;\n }\n\n .", " {\n overflow: hidden;\n background: var(--header-bgcolor);\n display: flex;\n flex-shrink: 0;\n border-bottom: var(--header-cell-border-horizontal);\n }\n\n .", " {\n display: flex;\n // justify-content: flex-start;\n align-items: center;\n height: inherit;\n }\n\n .", " {\n overflow-x:auto;\n flex-shrink: 0;\n flex-grow: 0;\n scrollbar-width: none; // \u517C\u5BB9\u706B\u72D0\n & {\n ::-webkit-scrollbar {\n display:none;\n }\n }\n }\n\n .", " {\n display: flex;\n flex: none;\n }\n .", ", .", " {\n background: var(--bgcolor);\n overflow: auto;\n overflow-x: hidden;\n overflow-anchor: none;\n position:relative;\n &.empty {\n position: relative;\n }\n }\n\n .", " {\n position: relative;\n }\n .", " {\n .", "{\n background-color: #e6effb !important;\n }\n .", "{\n border-top: 1px solid #0E5FD8 !important;\n }\n .", "{\n border-left: 1px solid #0E5FD8 !important;\n }\n .", "{\n border-bottom: 1px solid #0E5FD8 !important;\n }\n .", "{\n border-right: 1px solid #0E5FD8 !important;\n }\n }\n \n\n &.sticky-header .", " {\n position: sticky;\n top: 0;\n z-index: ", ";\n }\n\n &.sticky-footer .", " {\n position: sticky;\n bottom: 0;\n z-index: ", ";\n }\n\n table {\n width: 0;\n table-layout: fixed;\n border-collapse: separate;\n border-spacing: 0;\n display: table;\n margin: 0;\n padding: 0;\n flex-shrink: 0;\n flex-grow: 0;\n position:relative;\n }\n\n // \u5728 tr \u4E0A\u8BBE\u7F6E .no-hover \u53EF\u4EE5\u7981\u7528\u9F20\u6807\u60AC\u505C\u6548\u679C\n tr:not(.no-hover):hover > td {\n background: var(--hover-bgcolor);\n }\n // \u5728 tr \u8BBE\u7F6E highlight \u53EF\u4EE5\u4E3A\u5E95\u4E0B\u7684 td \u8BBE\u7F6E\u4E3A\u9AD8\u4EAE\u8272\n // \u800C\u8BBE\u7F6E .no-highlight \u7684\u8BDD\u5219\u53EF\u4EE5\u7981\u7528\u9AD8\u4EAE\u6548\u679C\uFF1B\n tr:not(.no-highlight).highlight > td {\n background: var(--highlight-bgcolor);\n }\n\n th {\n font-weight: normal;\n text-align: left;\n padding: var(--cell-padding);\n height: var(--header-row-height);\n color: var(--header-color);\n background: var(--header-bgcolor);\n border:1px solid transparent;\n border-right: var(--header-cell-border-vertical);\n border-bottom: var(--header-cell-border-horizontal);\n position: relative;\n }\n\n th.resizeable{\n border-right:none\n }\n\n th.", " {\n border-right: none;\n border-bottom: none;\n }\n\n tr.", " th {\n border-top: var(--header-cell-border-horizontal);\n }\n th.", " {\n border-left: var(--header-cell-border-vertical);\n }\n\n td {\n padding: var(--cell-padding);\n background: var(--bgcolor);\n height: var(--row-height);\n border:1px solid transparent;\n border-right: var(--cell-border-vertical);\n border-bottom: var(--cell-border-horizontal);\n word-break: break-all;\n }\n td.", " {\n border-left: var(--cell-border-vertical);\n }\n tr.", " td {\n border-top: var(--cell-border-horizontal);\n }\n &.has-header tbody tr.", " td {\n border-top: none;\n }\n &.has-footer tbody tr.", " td {\n border-bottom: none;\n }\n\n .", ",\n .", " {\n z-index: ", ";\n }\n\n //#region \u9501\u5217\u9634\u5F71\n .", " {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: ", ";\n pointer-events: none;\n overflow: hidden;\n\n .", " {\n height: 100%;\n }\n\n .", " {\n margin-right: ", "px;\n box-shadow: none;\n\n &.show-shadow {\n box-shadow: var(--lock-shadow);\n border-right: var(--cell-border-vertical);\n }\n }\n\n .", " {\n margin-left: ", "px;\n box-shadow: none;\n\n &.show-shadow {\n box-shadow: var(--lock-shadow);\n border-left: var(--cell-border-vertical);\n }\n }\n }\n //#endregion\n\n //#region \u7A7A\u8868\u683C\u5C55\u73B0\n .", " {\n pointer-events: none;\n color: #99a3b3;\n font-size: 12px;\n text-align: center;\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n\n .empty-image {\n width: 50px;\n height: 50px;\n }\n\n .empty-tips {\n margin-top: 16px;\n line-height: 1.5;\n }\n }\n //#endregion\n\n //#region IE\u517C\u5BB9\n &.ie-polyfill-wrapper {\n //\u9501\u5B9A\u5217\u517C\u5BB9 \u4EC5\u5728\u9501\u5B9A\u5217\u7684\u60C5\u51B5\u4E0B\u751F\u6548\n .", " {\n overflow-x: hidden;\n }\n .", ", .", " {\n position:relative;\n }\n .", " {\n overflow: hidden;\n }\n .", " {\n position: relative;\n }\n\n .", " {\n overflow: auto;\n overflow-x: hidden;\n overflow-anchor: none;\n }\n\n .", ", .", "{\n position: absolute;\n z-index: ", ";\n top: 0;\n }\n .", "{\n left:0;\n }\n .", "{\n right:0;\n }\n\n .", "{\n .", "{\n position: absolute;\n top: 0;\n width: 100%;\n z-index: ", ";\n }\n }\n\n tr:not(.no-hover).row-hover > td {\n background: var(--hover-bgcolor);\n }\n }\n //#endregion\n\n //#region \u7C98\u6027\u6EDA\u52A8\u6761\n .", " {\n overflow-y: hidden;\n overflow-x: auto;\n z-index: ", ";\n flex-shrink: 0;\n flex-grow: 0;\n border-top: 1px solid var(--border-color);\n background: var(--bgcolor);\n }\n\n .", " {\n // \u5FC5\u987B\u6709\u9AD8\u5EA6\u624D\u80FD\u51FA\u73B0\u6EDA\u52A8\u6761\n height: 1px;\n visibility: hidden;\n }\n //#endregion\n\n //#region \u52A0\u8F7D\u6837\u5F0F\n .", " {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: auto;\n\n .", " {\n filter: none;\n width: 100%;\n height: 100%;\n overflow: auto;\n display: flex;\n position: relative;\n flex-direction: column;\n }\n\n .", " {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n pointer-events: none;\n }\n\n .", " {\n position: sticky;\n z-index: ", ";\n transform: translateY(-50%);\n }\n }\n //#endregion\n \n //#region \u8868\u683C\u8FC7\u6EE4\n .", " {\n color:var(--icon-color);\n &.active{\n color:var(--primary-color);\n }\n }\n //#endregion\n\n //#region \u8868\u683C\u6392\u5E8F\n .", " {\n color:var(--icon-color);\n &.active{\n color:var(--primary-color);\n }\n }\n //#endregion\n\n //#region \u6EDA\u52A8\u6761\u5360\u4F4D\n .", " {\n visibility: hidden;\n flex-shrink: 0;\n }\n .", " .", " {\n border-top: var(--cell-border-horizontal);\n }\n //#endregion\n "])), variableConst, variableConst, outerBorderStyleMixin, Classes.artTable, Classes.tableHeader, Classes.tableHeaderCellContent, Classes.virtual, Classes.tableFooter, Classes.tableBody, Classes.tableFooter, Classes.tableRow, Classes.tableBody, Classes.tableCellRangeSelected, Classes.tableCellRangeTop, Classes.tableCellRangeLeft, Classes.tableCellRangeBottom, Classes.tableCellRangeRight, Classes.tableHeader, Z.header, Classes.tableFooter, Z.footer, Classes.leaf, Classes.first, Classes.first, Classes.first, Classes.first, Classes.first, Classes.last, Classes.lockLeft, Classes.lockRight, Z.lock, Classes.lockShadowMask, Z.lockShadow, Classes.lockShadow, Classes.leftLockShadow, LOCK_SHADOW_PADDING, Classes.rightLockShadow, LOCK_SHADOW_PADDING, Classes.emptyWrapper, Classes.virtual, Classes.tableBody, Classes.tableFooter, Classes.tableHeaderMain, Classes.tableHeader, Classes.tableFooterMain, Classes.fixedLeft, Classes.fixedRight, Z.lock, Classes.fixedLeft, Classes.fixedRight, Classes.rowDetailContainer, Classes.rowDetailItem, Z.rowDetail, Classes.stickyScroll, Z.scrollItem, Classes.stickyScrollItem, Classes.loadingWrapper, Classes.loadingContentWrapper, Classes.loadingIndicatorWrapper, Classes.loadingIndicator, Z.loadingIndicator, Classes.tableFilterTrigger, Classes.tableSortIcon, Classes.verticalScrollPlaceholder, Classes.tableFooter, Classes.verticalScrollPlaceholder);
143
153
 
144
154
  exports.StyledArtTableWrapper = StyledArtTableWrapper;
145
155
  var ButtonCSS = (0, _styledComponents.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n //#region \u6309\u94AE\n .", "{\n color: var(--color);\n background:#ffffff;\n border:1px solid var(--strong-border-color);\n border-radius: 2px;\n cursor: pointer;\n &:hover{\n color: var(--primary-color);\n border:1px solid var(--primary-color);\n }\n }\n .", " {\n color:#ffffff;\n background-color: var(--primary-color);\n border:none;\n &:hover{\n color:#ffffff;\n background-color: var(--primary-color-level2);\n border:none;\n }\n }\n//#endregion\n"])), variableConst, Classes.button, Classes.buttonPrimary);
@@ -22,7 +22,7 @@ var _templateObject, _templateObject2, _templateObject3;
22
22
  var InlineFlexCell = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: inline-flex;\n align-items: center;\n"])));
23
23
 
24
24
  exports.InlineFlexCell = InlineFlexCell;
25
- var ExpansionCell = (0, _styledComponents.default)(InlineFlexCell)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n &.leaf {\n cursor: default;\n }\n\n .expansion-icon {\n fill: #999;\n flex: 0 0 16px;\n transition: transform 200ms;\n\n &.expanded {\n transform-origin: center center;\n transform: rotate(90deg);\n }\n }\n"])));
25
+ var ExpansionCell = (0, _styledComponents.default)(InlineFlexCell)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n &.", " {\n cursor: default;\n }\n\n .expansion-icon {\n fill: #999;\n flex: 0 0 16px;\n transition: transform 200ms;\n\n &.", " {\n transform-origin: center center;\n transform: rotate(90deg);\n }\n }\n"])), _styles.Classes.leaf, _styles.Classes.expanded);
26
26
  exports.ExpansionCell = ExpansionCell;
27
27
 
28
28
  function CaretDownIcon(props) {
@@ -12,6 +12,8 @@ var _enzyme = require("enzyme");
12
12
 
13
13
  var _reactHooks = require("@testing-library/react-hooks");
14
14
 
15
+ var _styles = require("../../../base/styles");
16
+
15
17
  function makeChildren(prefix) {
16
18
  return [{
17
19
  id: "".concat(prefix, "-1"),
@@ -164,7 +166,7 @@ describe('treeMode 单元测试', function () {
164
166
  expect(opts.onChangeOpenKeys).toBeCalledWith(['4-2'], '4', 'collapse'); // 叶子节点渲染
165
167
 
166
168
  var leafWrapper = (0, _enzyme.mount)(col[0].render('一级标题', newPipeline.getDataSource()[9], 9));
167
- expect((0, _find.default)(leafWrapper).call(leafWrapper, '.expansion-cell.leaf').length).toBe(2);
169
+ expect((0, _find.default)(leafWrapper).call(leafWrapper, ".expansion-cell.".concat(_styles.Classes.leaf)).length).toBe(2);
168
170
  });
169
171
  it('getCellProps', function () {
170
172
  var col = newPipeline.getColumns(); // clickArea: 'content' 取默认的cellProps