@kdcloudjs/table 1.1.3-canary.3 → 1.1.3-canary.5

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 (60) hide show
  1. package/CHANGELOG.md +0 -0
  2. package/LICENSE +568 -568
  3. package/README.md +111 -111
  4. package/dist/@kdcloudjs/table.css +1 -1
  5. package/dist/@kdcloudjs/table.js +1193 -1342
  6. package/dist/@kdcloudjs/table.js.map +1 -1
  7. package/dist/@kdcloudjs/table.min.css +1 -1
  8. package/dist/@kdcloudjs/table.min.js +15 -24
  9. package/dist/@kdcloudjs/table.min.js.map +1 -1
  10. package/dist/kd-ui-complete.less +777 -777
  11. package/es/style/color/colors.less +1 -1
  12. package/es/style/core/index.less +1 -1
  13. package/es/style/core/motion/other.less +27 -27
  14. package/es/style/core/motion/slide.less +53 -53
  15. package/es/style/core/motion.less +1 -1
  16. package/es/style/core/reset.less +185 -185
  17. package/es/style/index.less +1 -1
  18. package/es/style/mixins/index.less +18 -18
  19. package/es/style/mixins/overlay.less +21 -21
  20. package/es/style/mixins/reset.less +12 -12
  21. package/es/style/themes/default.less +445 -445
  22. package/es/table/base/helpers/TableDOMUtils.d.ts +2 -0
  23. package/es/table/base/helpers/TableDOMUtils.js +48 -12
  24. package/es/table/base/styles.js +1 -1
  25. package/es/table/base/table.d.ts +0 -1
  26. package/es/table/base/table.js +9 -24
  27. package/es/table/pipeline/features/columnFilter.js +6 -5
  28. package/es/table/pipeline/features/filter/Filter.js +1 -1
  29. package/es/table/pipeline/features/filter/FilterPanel.js +1 -1
  30. package/es/table/pipeline/features/index.d.ts +1 -0
  31. package/es/table/pipeline/features/index.js +2 -1
  32. package/es/table/pipeline/features/mergeCellHover.d.ts +2 -0
  33. package/es/table/pipeline/features/mergeCellHover.js +32 -0
  34. package/es/table/style/index.less +1 -1
  35. package/lib/style/color/colors.less +1 -1
  36. package/lib/style/components.less +1 -1
  37. package/lib/style/core/index.less +1 -1
  38. package/lib/style/core/motion/other.less +27 -27
  39. package/lib/style/core/motion/slide.less +53 -53
  40. package/lib/style/core/motion.less +1 -1
  41. package/lib/style/core/reset.less +185 -185
  42. package/lib/style/index.less +1 -1
  43. package/lib/style/mixins/index.less +18 -18
  44. package/lib/style/mixins/overlay.less +21 -21
  45. package/lib/style/mixins/reset.less +12 -12
  46. package/lib/style/themes/default.less +445 -445
  47. package/lib/table/base/helpers/TableDOMUtils.d.ts +2 -0
  48. package/lib/table/base/helpers/TableDOMUtils.js +51 -12
  49. package/lib/table/base/styles.js +1 -1
  50. package/lib/table/base/table.d.ts +0 -1
  51. package/lib/table/base/table.js +9 -24
  52. package/lib/table/pipeline/features/columnFilter.js +6 -5
  53. package/lib/table/pipeline/features/filter/Filter.js +1 -1
  54. package/lib/table/pipeline/features/filter/FilterPanel.js +1 -1
  55. package/lib/table/pipeline/features/index.d.ts +1 -0
  56. package/lib/table/pipeline/features/index.js +9 -1
  57. package/lib/table/pipeline/features/mergeCellHover.d.ts +2 -0
  58. package/lib/table/pipeline/features/mergeCellHover.js +43 -0
  59. package/lib/table/style/index.less +1 -1
  60. package/package.json +218 -218
@@ -18,4 +18,6 @@ export declare class TableDOMHelper {
18
18
  getRightLockShadow(): HTMLDivElement;
19
19
  getLoadingIndicator(): HTMLDivElement;
20
20
  getRowTop(rowIndex: number): number;
21
+ getRowNodeListByEvent: (e: React.MouseEvent<HTMLTableRowElement, MouseEvent>) => HTMLElement[];
22
+ getInRangeRowByCellEvent: (e: React.MouseEvent<HTMLTableCellElement, MouseEvent>) => unknown[];
21
23
  }
@@ -7,6 +7,10 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.TableDOMHelper = void 0;
9
9
 
10
+ var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
11
+
12
+ var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
13
+
10
14
  var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
11
15
 
12
16
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
@@ -54,9 +58,44 @@ var _styles = require("../styles");
54
58
  // 表格 DOM 结构辅助工具
55
59
  var TableDOMHelper = /*#__PURE__*/function () {
56
60
  function TableDOMHelper(artTableWrapper) {
57
- var _context;
61
+ var _this = this,
62
+ _context2;
58
63
 
59
64
  (0, _classCallCheck2.default)(this, TableDOMHelper);
65
+
66
+ this.getRowNodeListByEvent = function (e) {
67
+ var nodeList = null;
68
+ var rowIndex = e.currentTarget.dataset.rowindex;
69
+
70
+ if (rowIndex !== undefined) {
71
+ var targetParent = _this.tableBody.contains(e.currentTarget) ? _this.tableBody : _this.tableFooter;
72
+ nodeList = targetParent.querySelectorAll("tr[data-rowindex=\"".concat(rowIndex, "\"]"));
73
+ }
74
+
75
+ return nodeList;
76
+ };
77
+
78
+ this.getInRangeRowByCellEvent = function (e) {
79
+ var _context;
80
+
81
+ var _a;
82
+
83
+ var getParentNode = function getParentNode(ele, target) {
84
+ if (ele.parentNode.nodeName === target) {
85
+ return ele.parentNode;
86
+ }
87
+
88
+ return getParentNode(ele.parentNode, target);
89
+ };
90
+
91
+ e = e instanceof Array ? e[0] : e;
92
+ var curCell = e === null || e === void 0 ? void 0 : e.currentTarget;
93
+ var curRow = getParentNode(curCell, 'TR');
94
+ var curRowSpan = parseInt(e.currentTarget.getAttribute('rowspan')) || 1;
95
+ var rows = (_a = getParentNode(curCell, 'TABLE')) === null || _a === void 0 ? void 0 : _a.rows;
96
+ return (0, _slice.default)(_context = (0, _from.default)(rows)).call(_context, curRow.rowIndex, curRow.rowIndex + curRowSpan);
97
+ };
98
+
60
99
  this.artTableWrapper = artTableWrapper;
61
100
  this.artTable = artTableWrapper.querySelector(".".concat(_styles.Classes.artTable));
62
101
  this.tableHeader = this.artTable.querySelector(".".concat(_styles.Classes.tableHeader));
@@ -66,7 +105,7 @@ var TableDOMHelper = /*#__PURE__*/function () {
66
105
  this.tableElement = this.artTable.querySelector(".".concat(_styles.Classes.tableBody, " table"));
67
106
  this.tableFooter = this.artTable.querySelector(".".concat(_styles.Classes.tableFooter));
68
107
  this.tableFooterMain = this.artTable.querySelector(".".concat(_styles.Classes.tableFooterMain));
69
- var stickyScrollSelector = (0, _concat.default)(_context = ".".concat(_styles.Classes.artTable, " + .")).call(_context, _styles.Classes.stickyScroll);
108
+ var stickyScrollSelector = (0, _concat.default)(_context2 = ".".concat(_styles.Classes.artTable, " + .")).call(_context2, _styles.Classes.stickyScroll);
70
109
  this.stickyScroll = artTableWrapper.querySelector(stickyScrollSelector);
71
110
  this.stickyScrollItem = this.stickyScroll.querySelector(".".concat(_styles.Classes.stickyScrollItem));
72
111
  }
@@ -79,32 +118,32 @@ var TableDOMHelper = /*#__PURE__*/function () {
79
118
  }, {
80
119
  key: "getTableRows",
81
120
  value: function getTableRows() {
82
- var _context2;
121
+ var _context3;
83
122
 
84
- var tbody = this.artTable.querySelector((0, _concat.default)(_context2 = ".".concat(_styles.Classes.tableBody, " .")).call(_context2, _styles.Classes.virtual, " table tbody"));
123
+ var tbody = this.artTable.querySelector((0, _concat.default)(_context3 = ".".concat(_styles.Classes.tableBody, " .")).call(_context3, _styles.Classes.virtual, " table tbody"));
85
124
  return tbody.childNodes;
86
125
  }
87
126
  }, {
88
127
  key: "getTableBodyHtmlTable",
89
128
  value: function getTableBodyHtmlTable() {
90
- var _context3;
129
+ var _context4;
91
130
 
92
- return this.artTable.querySelector((0, _concat.default)(_context3 = ".".concat(_styles.Classes.tableBody, " .")).call(_context3, _styles.Classes.virtual, " table"));
131
+ return this.artTable.querySelector((0, _concat.default)(_context4 = ".".concat(_styles.Classes.tableBody, " .")).call(_context4, _styles.Classes.virtual, " table"));
93
132
  }
94
133
  }, {
95
134
  key: "getLeftLockShadow",
96
135
  value: function getLeftLockShadow() {
97
- var _context4;
136
+ var _context5;
98
137
 
99
- var selector = (0, _concat.default)(_context4 = ".".concat(_styles.Classes.lockShadowMask, " .")).call(_context4, _styles.Classes.leftLockShadow);
138
+ var selector = (0, _concat.default)(_context5 = ".".concat(_styles.Classes.lockShadowMask, " .")).call(_context5, _styles.Classes.leftLockShadow);
100
139
  return this.artTable.querySelector(selector);
101
140
  }
102
141
  }, {
103
142
  key: "getRightLockShadow",
104
143
  value: function getRightLockShadow() {
105
- var _context5;
144
+ var _context6;
106
145
 
107
- var selector = (0, _concat.default)(_context5 = ".".concat(_styles.Classes.lockShadowMask, " .")).call(_context5, _styles.Classes.rightLockShadow);
146
+ var selector = (0, _concat.default)(_context6 = ".".concat(_styles.Classes.lockShadowMask, " .")).call(_context6, _styles.Classes.rightLockShadow);
108
147
  return this.artTable.querySelector(selector);
109
148
  }
110
149
  }, {
@@ -115,10 +154,10 @@ var TableDOMHelper = /*#__PURE__*/function () {
115
154
  }, {
116
155
  key: "getRowTop",
117
156
  value: function getRowTop(rowIndex) {
118
- var _context6, _context7;
157
+ var _context7, _context8;
119
158
 
120
159
  if (rowIndex === 0) return 0;
121
- var selector = (0, _concat.default)(_context6 = (0, _concat.default)(_context7 = ".".concat(_styles.Classes.tableBody, " .")).call(_context7, _styles.Classes.tableRow, "[data-rowindex=\"")).call(_context6, rowIndex, "\"]");
160
+ var selector = (0, _concat.default)(_context7 = (0, _concat.default)(_context8 = ".".concat(_styles.Classes.tableBody, " .")).call(_context8, _styles.Classes.tableRow, "[data-rowindex=\"")).call(_context7, rowIndex, "\"]");
122
161
  var row = this.artTable.querySelector(selector);
123
162
  var rowOffsetTop = row && row.offsetTop || 0;
124
163
  var tableOffsetTop = this.tableElement.offsetTop || 0;
@@ -148,7 +148,7 @@ exports.defaultCSSVariables = defaultCSSVariables;
148
148
  var variableConst = getCssVariableText(defaultCSSVariables);
149
149
  exports.variableConst = variableConst;
150
150
 
151
- 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);
151
+ 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 // \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: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);
152
152
 
153
153
  exports.StyledArtTableWrapper = StyledArtTableWrapper;
154
154
  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);
@@ -145,7 +145,6 @@ export declare class BaseTable extends React.Component<BaseTableProps, BaseTable
145
145
  /** 同步横向滚动偏移量 */
146
146
  private syncHorizontalScroll;
147
147
  getVerticalRenderRange(useVirtual: ResolvedUseVirtual): VerticalRenderRange;
148
- private getRowNodeListByEvent;
149
148
  private handleRowMouseEnter;
150
149
  private handleRowMouseLeave;
151
150
  private renderTableBody;
@@ -145,23 +145,8 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
145
145
  _this.resizeSubject = new _rxjs.Subject();
146
146
  _this.offsetY = 0;
147
147
 
148
- _this.getRowNodeListByEvent = function (e) {
149
- var nodeList = null;
150
- var rowIndex = e.currentTarget.dataset.rowindex;
151
-
152
- if (rowIndex !== undefined) {
153
- var _this$domHelper = _this.domHelper,
154
- tableBody = _this$domHelper.tableBody,
155
- tableFooter = _this$domHelper.tableFooter;
156
- var targetParent = tableBody.contains(e.currentTarget) ? tableBody : tableFooter;
157
- nodeList = targetParent.querySelectorAll("tr[data-rowindex=\"".concat(rowIndex, "\"]"));
158
- }
159
-
160
- return nodeList;
161
- };
162
-
163
148
  _this.handleRowMouseEnter = function (e) {
164
- var nodeList = _this.getRowNodeListByEvent(e);
149
+ var nodeList = _this.domHelper.getRowNodeListByEvent(e);
165
150
 
166
151
  nodeList && nodeList.forEach(function (node) {
167
152
  node.classList.add('row-hover');
@@ -169,7 +154,7 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
169
154
  };
170
155
 
171
156
  _this.handleRowMouseLeave = function (e) {
172
- var nodeList = _this.getRowNodeListByEvent(e);
157
+ var nodeList = _this.domHelper.getRowNodeListByEvent(e);
173
158
 
174
159
  nodeList && nodeList.forEach(function (node) {
175
160
  node.classList.remove('row-hover');
@@ -302,10 +287,10 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
302
287
  value: function updateStickyScroll() {
303
288
  var _a, _b;
304
289
 
305
- var _this$domHelper2 = this.domHelper,
306
- stickyScroll = _this$domHelper2.stickyScroll,
307
- artTable = _this$domHelper2.artTable,
308
- stickyScrollItem = _this$domHelper2.stickyScrollItem;
290
+ var _this$domHelper = this.domHelper,
291
+ stickyScroll = _this$domHelper.stickyScroll,
292
+ artTable = _this$domHelper.artTable,
293
+ stickyScrollItem = _this$domHelper.stickyScrollItem;
309
294
  var _lastHasScrollY = this.hasScrollY;
310
295
 
311
296
  if (!artTable) {
@@ -642,9 +627,9 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
642
627
  value: function initSubscriptions() {
643
628
  var _this2 = this;
644
629
 
645
- var _this$domHelper3 = this.domHelper,
646
- virtual = _this$domHelper3.virtual,
647
- stickyScroll = _this$domHelper3.stickyScroll;
630
+ var _this$domHelper2 = this.domHelper,
631
+ virtual = _this$domHelper2.virtual,
632
+ stickyScroll = _this$domHelper2.stickyScroll;
648
633
  this.rootSubscription.add(_utils.throttledWindowResize$.subscribe(function () {
649
634
  _this2.updateStickyScroll();
650
635
 
@@ -157,7 +157,7 @@ function filter() {
157
157
  return [item.key, (0, _extends2.default)({}, item)];
158
158
  }));
159
159
 
160
- function isMatchedFilterCondition(record) {
160
+ function isMatchedFilterCondition(record, rowIndex) {
161
161
  return !filtersKeys.some(function (key) {
162
162
  var _a, _b;
163
163
 
@@ -172,14 +172,15 @@ function filter() {
172
172
  } else {
173
173
  console.warn("\u5217[".concat(key, "]\u672A\u914D\u7F6E\u7B5B\u9009\u51FD\u6570\uFF0C\u8BF7\u8BBE\u7F6E column.features.filterable \u6765\u4F5C\u4E3A\u8BE5\u5217\u7684\u7B5B\u9009\u51FD\u6570, \u76EE\u524D\u4F7F\u7528\u9ED8\u8BA4\u5305\u542B\u7B5B\u9009\u51FD\u6570"));
174
174
  comparisonFn = (0, _filter.default)(defaultFilterOptionsMap.get('contain'));
175
- }
175
+ } // 不符合过滤条件,退出循环
176
176
 
177
- return !comparisonFn((0, _filter.default)(filterItem))(record[key]); //不符合过滤条件,退出循环
177
+
178
+ return !comparisonFn((0, _filter.default)(filterItem), filterItem)(_internals.internals.safeGetValue(columnsMap.get(key), record, rowIndex), record);
178
179
  });
179
180
  }
180
181
 
181
- return dataSource.reduce(function (pre, record) {
182
- if (isMatchedFilterCondition(record)) {
182
+ return dataSource.reduce(function (pre, record, rowIndex) {
183
+ if (isMatchedFilterCondition(record, rowIndex)) {
183
184
  return (0, _concat.default)(pre).call(pre, [record]);
184
185
  }
185
186
 
@@ -167,7 +167,7 @@ function Filter(_ref2) {
167
167
  fill: "currentColor",
168
168
  "aria-hidden": "true"
169
169
  }, /*#__PURE__*/_react.default.createElement("path", {
170
- d: "M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3\n 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5\n 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z"
170
+ d: "M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3\r\n 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5\r\n 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z"
171
171
  }))), showPanel && /*#__PURE__*/(0, _reactDom.createPortal)( /*#__PURE__*/_react.default.createElement(Panel, {
172
172
  ele: iconRef.current,
173
173
  filterIcon: filterIcon,
@@ -96,7 +96,7 @@ function FilterPanel(_ref) {
96
96
  fill: "currentColor",
97
97
  "aria-hidden": "true"
98
98
  }, /*#__PURE__*/_react.default.createElement("path", {
99
- d: "M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3\n 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5\n 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z"
99
+ d: "M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3\r\n 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5\r\n 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z"
100
100
  })))), /*#__PURE__*/_react.default.createElement("div", {
101
101
  className: "popup-body"
102
102
  }, children));
@@ -15,3 +15,4 @@ export { columnResize, ColumnResizeOptions } from './columnResizeWidth';
15
15
  export { contextMenu, ContextMenuFeatureOptions } from './contextMenu';
16
16
  export { filter, FilterFeatureOptions } from './columnFilter';
17
17
  export { rangeSelection, RangeSelectionFeatureOptions } from './rangeSelection';
18
+ export { mergeCellHover } from './mergeCellHover';
@@ -55,6 +55,12 @@ Object.defineProperty(exports, "filter", {
55
55
  return _filterInstanceProperty(_columnFilter);
56
56
  }
57
57
  });
58
+ Object.defineProperty(exports, "mergeCellHover", {
59
+ enumerable: true,
60
+ get: function get() {
61
+ return _mergeCellHover.mergeCellHover;
62
+ }
63
+ });
58
64
  Object.defineProperty(exports, "multiSelect", {
59
65
  enumerable: true,
60
66
  get: function get() {
@@ -148,4 +154,6 @@ var _contextMenu = require("./contextMenu");
148
154
 
149
155
  var _columnFilter = require("./columnFilter");
150
156
 
151
- var _rangeSelection = require("./rangeSelection");
157
+ var _rangeSelection = require("./rangeSelection");
158
+
159
+ var _mergeCellHover = require("./mergeCellHover");
@@ -0,0 +1,2 @@
1
+ import { TablePipeline } from '../pipeline';
2
+ export declare function mergeCellHover(): (pipeline: TablePipeline) => TablePipeline;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.mergeCellHover = mergeCellHover;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
11
+
12
+ var _utils = require("../../utils");
13
+
14
+ function mergeCellHover() {
15
+ return function (pipeline) {
16
+ return pipeline.mapColumns((0, _utils.makeRecursiveMapper)(function (col) {
17
+ if (!(0, _utils.isLeafNode)(col)) {
18
+ return col;
19
+ }
20
+
21
+ var prevGetCellProps = col.getCellProps;
22
+ return (0, _extends2.default)((0, _extends2.default)({}, col), {
23
+ getCellProps: function getCellProps(value, record, rowIndex) {
24
+ var prevCellProps = prevGetCellProps === null || prevGetCellProps === void 0 ? void 0 : prevGetCellProps(value, record, rowIndex);
25
+ return (0, _utils.mergeCellProps)(prevCellProps, {
26
+ onMouseEnter: function onMouseEnter(e) {
27
+ var InRangeRow = pipeline.ref.current.domHelper.getInRangeRowByCellEvent(e);
28
+ InRangeRow.forEach(function (row) {
29
+ row.classList.add('row-hover');
30
+ });
31
+ },
32
+ onMouseLeave: function onMouseLeave(e) {
33
+ var InRangeRow = pipeline.ref.current.domHelper.getInRangeRowByCellEvent(e);
34
+ InRangeRow.forEach(function (row) {
35
+ row.classList.remove('row-hover');
36
+ });
37
+ }
38
+ });
39
+ }
40
+ });
41
+ }));
42
+ };
43
+ }
@@ -1 +1 @@
1
-
1
+