@kdcloudjs/table 1.1.3-canary.9 → 1.1.4-canary.1

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 (45) hide show
  1. package/dist/@kdcloudjs/table.css +1 -1
  2. package/dist/@kdcloudjs/table.js +246 -161
  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 +10 -9
  6. package/dist/@kdcloudjs/table.min.js.map +1 -1
  7. package/es/table/base/styles.d.ts +5 -2
  8. package/es/table/base/styles.js +11 -6
  9. package/es/table/base/table.d.ts +2 -0
  10. package/es/table/base/table.js +27 -50
  11. package/es/table/base/utils.d.ts +7 -0
  12. package/es/table/base/utils.js +29 -1
  13. package/es/table/pipeline/features/columnDrag.js +5 -4
  14. package/es/table/pipeline/features/columnFilter.d.ts +1 -1
  15. package/es/table/pipeline/features/columnResizeWidth.js +1 -1
  16. package/es/table/pipeline/features/filter/DefaultFilterContent.js +22 -2
  17. package/es/table/pipeline/features/filter/DefaultFilterIcon.d.ts +5 -0
  18. package/es/table/pipeline/features/filter/DefaultFilterIcon.js +20 -0
  19. package/es/table/pipeline/features/filter/Filter.d.ts +1 -1
  20. package/es/table/pipeline/features/filter/Filter.js +16 -20
  21. package/es/table/pipeline/features/filter/FilterPanel.js +21 -15
  22. package/es/table/pipeline/pipeline.js +1 -1
  23. package/es/table/utils/keyCode.d.ts +4 -0
  24. package/es/table/utils/keyCode.js +4 -0
  25. package/es/table/utils/mergeCellProps.js +2 -6
  26. package/lib/table/base/styles.d.ts +5 -2
  27. package/lib/table/base/styles.js +11 -6
  28. package/lib/table/base/table.d.ts +2 -0
  29. package/lib/table/base/table.js +27 -50
  30. package/lib/table/base/utils.d.ts +7 -0
  31. package/lib/table/base/utils.js +35 -1
  32. package/lib/table/pipeline/features/columnDrag.js +5 -4
  33. package/lib/table/pipeline/features/columnFilter.d.ts +1 -1
  34. package/lib/table/pipeline/features/columnResizeWidth.js +1 -1
  35. package/lib/table/pipeline/features/filter/DefaultFilterContent.js +23 -1
  36. package/lib/table/pipeline/features/filter/DefaultFilterIcon.d.ts +5 -0
  37. package/lib/table/pipeline/features/filter/DefaultFilterIcon.js +30 -0
  38. package/lib/table/pipeline/features/filter/Filter.d.ts +1 -1
  39. package/lib/table/pipeline/features/filter/Filter.js +17 -20
  40. package/lib/table/pipeline/features/filter/FilterPanel.js +21 -14
  41. package/lib/table/pipeline/pipeline.js +1 -1
  42. package/lib/table/utils/keyCode.d.ts +4 -0
  43. package/lib/table/utils/keyCode.js +11 -0
  44. package/lib/table/utils/mergeCellProps.js +2 -6
  45. package/package.json +1 -1
@@ -4,10 +4,11 @@ import _taggedTemplateLiteral from "@babel/runtime-corejs3/helpers/taggedTemplat
4
4
 
5
5
  var _templateObject;
6
6
 
7
- import React, { useEffect, useState } from 'react';
7
+ import React, { useEffect, useState, useRef } from 'react';
8
8
  import styled from 'styled-components';
9
9
  import { isElementInEventPath, keepWithinBounds } from '../../../utils/';
10
- var FilterPanelStyle = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n max-height: 450px;\n min-width: 160px;\n border-radius: 2px;\n background-color: #fff;\n box-shadow: 0 0 5px 0 rgba(154,154,154,.5);\n cursor: default;\n\n .popup-header {\n display: flex;\n background-color: #ebedf1;\n\n .popup-header-icon {\n color:#666;\n background-color: #fff;\n padding: 6px 16px 6px 16px;\n display: inline-block;\n border-right: 1px solid transparent;\n border-left: 1px solid transparent;\n border-top: 1px solid transparent;\n border-top-right-radius: 2px;\n border-top-left-radius: 2px;\n }\n }\n\n .popup-body {\n display: flex;\n }\n"])));
10
+ import DefaultFilterIcon from './DefaultFilterIcon';
11
+ var FilterPanelStyle = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n max-height: 450px;\n min-width: 160px;\n border-radius: 2px;\n background-color: #fff;\n box-shadow: 0 0 5px 0 rgba(154,154,154,.5);\n cursor: default;\n\n .popup-header {\n display: flex;\n background-color: #ebedf1;\n\n .popup-header-icon {\n display: flex;\n color:#666;\n background-color: #fff;\n padding: 8px 16px 8px 16px;\n border-right: 1px solid transparent;\n border-left: 1px solid transparent;\n border-top: 1px solid transparent;\n border-top-right-radius: 2px;\n border-top-left-radius: 2px;\n }\n }\n\n .popup-body {\n display: flex;\n }\n"])));
11
12
 
12
13
  var useWindowEvents = function useWindowEvents(func, evens) {
13
14
  React.useEffect(function () {
@@ -49,31 +50,36 @@ function FilterPanel(_ref) {
49
50
  setPerfectPosition(keepWithinBounds(document.body, ref.current, position.x, position.y, true));
50
51
  setVisible(true);
51
52
  }, [position]);
53
+ var hasPopupMouseEvent = useRef(false);
54
+
55
+ var handleMouseEvent = function handleMouseEvent() {
56
+ // 当弹出的过滤面板内部发生鼠标按下、抬起事件时,标记当前事件,并在click捕获期清除标记,用来确定鼠标按下、抬起发生在过滤面板内部
57
+ // 利用了React.createPortal冒泡是根据React Tree的特性:
58
+ // https://jwwnz.medium.com/react-portals-and-event-bubbling-8df3e35ca3f1
59
+ hasPopupMouseEvent.current = true;
60
+ };
61
+
52
62
  useWindowEvents(function (e) {
53
- return !isContainPanel(e) && onClose();
54
- }, ['mousedown']);
63
+ !isContainPanel(e) && !hasPopupMouseEvent.current && onClose();
64
+ hasPopupMouseEvent.current = false;
65
+ }, ['click']);
55
66
  return /*#__PURE__*/React.createElement(FilterPanelStyle, {
56
67
  style: _extends(_extends({}, style), {
57
68
  left: visible ? perfectPosition.x : 0,
58
69
  top: visible ? perfectPosition.y : 0,
59
70
  opacity: visible ? 1 : 0
60
71
  }),
72
+ onMouseDown: handleMouseEvent,
73
+ onMouseUp: handleMouseEvent,
61
74
  ref: ref
62
75
  }, /*#__PURE__*/React.createElement("div", {
63
76
  className: 'popup-header'
64
77
  }, /*#__PURE__*/React.createElement("span", {
65
78
  className: 'popup-header-icon'
66
- }, filterIcon || /*#__PURE__*/React.createElement("svg", {
67
- width: 14,
68
- height: 14,
69
- viewBox: "64 64 896 896",
70
- focusable: "false",
71
- "data-icon": "filter",
72
- fill: "currentColor",
73
- "aria-hidden": "true"
74
- }, /*#__PURE__*/React.createElement("path", {
75
- 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"
76
- })))), /*#__PURE__*/React.createElement("div", {
79
+ }, filterIcon || /*#__PURE__*/React.createElement(DefaultFilterIcon, {
80
+ width: 12,
81
+ height: 12
82
+ }))), /*#__PURE__*/React.createElement("div", {
77
83
  className: "popup-body"
78
84
  }, children));
79
85
  }
@@ -271,7 +271,7 @@ export var TablePipeline = /*#__PURE__*/function () {
271
271
  var preTableWidth = _this2.getStateAtKey(tableWidthKey);
272
272
 
273
273
  if (preTableWidth !== tableWidth) {
274
- _this2.setStateAtKey(tableWidthKey, tableWidth);
274
+ tableWidth && _this2.setStateAtKey(tableWidthKey, tableWidth);
275
275
  }
276
276
  };
277
277
 
@@ -0,0 +1,4 @@
1
+ declare const KeyCode: {
2
+ ENTER: number;
3
+ };
4
+ export default KeyCode;
@@ -0,0 +1,4 @@
1
+ var KeyCode = {
2
+ ENTER: 13
3
+ };
4
+ export default KeyCode;
@@ -5,13 +5,9 @@ import cx from 'classnames';
5
5
 
6
6
  function composeEventHandler(handler1, handler2) {
7
7
  return function () {
8
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
9
- args[_key] = arguments[_key];
10
- }
11
-
12
8
  // 先执行原有的事件回调函数
13
- handler1(args);
14
- handler2(args); // 事件回调函数没有返回值,故这里不进行 return
9
+ handler1.apply(void 0, arguments);
10
+ handler2.apply(void 0, arguments); // 事件回调函数没有返回值,故这里不进行 return
15
11
  };
16
12
  }
17
13
  /** 合并两个 cellProps(单元格属性)对象,返回一个合并后的全新对象。
@@ -2,6 +2,7 @@ export declare const LOCK_SHADOW_PADDING = 20;
2
2
  export declare const Classes: {
3
3
  /** BaseTable 表格组件的外层包裹 div */
4
4
  readonly artTableWrapper: string;
5
+ readonly artTableBordered: string;
5
6
  readonly artTable: string;
6
7
  readonly tableHeaderMain: string;
7
8
  readonly tableHeader: string;
@@ -114,13 +115,13 @@ export declare type BaseTableCSSVariables = Partial<{
114
115
  '--border-color': string;
115
116
  /** 单元格边框,默认为 1px solid #dfe3e8 */
116
117
  '--cell-border': string;
117
- /** 单元格上下边框,默认为 #dfe3e8 */
118
+ /** 单元格上下边框,默认为 none ,默认值为 1px solid #dfe3e8 */
118
119
  '--cell-border-horizontal': string;
119
120
  /** 单元格左右边框,默认为 #dfe3e8 */
120
121
  '--cell-border-vertical': string;
121
122
  /** 表头单元格边框,默认为 1px solid #dfe3e8 */
122
123
  '--header-cell-border': string;
123
- /** 表头单元格上下边框,默认为 1px solid #dfe3e8 */
124
+ /** 表头单元格上下边框,默认为 none ,默认值为 1px solid #dfe3e8 */
124
125
  '--header-cell-border-horizontal': string;
125
126
  /** 表头单元格左右边框,默认为 1px solid #dfe3e8 */
126
127
  '--header-cell-border-vertical': string;
@@ -150,7 +151,9 @@ export declare const defaultCSSVariables: {
150
151
  '--cell-border-horizontal': string;
151
152
  '---cell-border-vertical': string;
152
153
  '--header-cell-border': string;
154
+ '--cell-border-vertical': string;
153
155
  '--header-cell-border-horizontal': string;
156
+ '--header-cell-border-vertical': string;
154
157
  };
155
158
  export declare const variableConst: string;
156
159
  export declare const StyledArtTableWrapper: any;
@@ -21,7 +21,7 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime-cor
21
21
 
22
22
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
23
 
24
- var _templateObject, _templateObject2, _templateObject3;
24
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
25
25
 
26
26
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
27
 
@@ -33,6 +33,7 @@ var prefix = 'kd-';
33
33
  var Classes = {
34
34
  /** BaseTable 表格组件的外层包裹 div */
35
35
  artTableWrapper: "".concat(prefix, "table-wrapper"),
36
+ artTableBordered: "".concat(prefix, "table-bordered"),
36
37
  artTable: "".concat(prefix, "table"),
37
38
  tableHeaderMain: "".concat(prefix, "table-header-main"),
38
39
  tableHeader: "".concat(prefix, "table-header"),
@@ -118,7 +119,7 @@ var Z = {
118
119
  scrollItem: 30,
119
120
  loadingIndicator: 40
120
121
  };
121
- 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);
122
+ 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);
122
123
  var defaultCSSVariables = {
123
124
  '--row-height': '48px',
124
125
  '--color': '#333',
@@ -128,7 +129,7 @@ var defaultCSSVariables = {
128
129
  '--primary-color': '#5582F3',
129
130
  '--primary-color-level1': 'rgb(242, 248, 255)',
130
131
  '--primary-color-level2': 'rgb(135, 173, 255)',
131
- '--icon-color': '#bfbfbf',
132
+ '--icon-color': '#666666',
132
133
  '--strong-border-color': '#d9d9d9',
133
134
  '--header-row-height': '32px',
134
135
  '--header-color': '#333',
@@ -144,16 +145,20 @@ var defaultCSSVariables = {
144
145
  '--cell-border-horizontal': '1px solid #dfe3e8',
145
146
  '---cell-border-vertical': '1px solid #dfe3e8',
146
147
  '--header-cell-border': '1px solid #dfe3e8',
147
- '--header-cell-border-horizontal': '1px solid #dfe3e8'
148
+ '--cell-border-vertical': '1px solid #dfe3e8',
149
+ '--header-cell-border-horizontal': '1px solid #dfe3e8',
150
+ '--header-cell-border-vertical': '1px solid #dfe3e8'
148
151
  };
149
152
  exports.defaultCSSVariables = defaultCSSVariables;
150
153
  var variableConst = getCssVariableText(defaultCSSVariables);
151
154
  exports.variableConst = variableConst;
155
+ var notBorderedStyleMixin = (0, _styledComponents.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n --cell-border-vertical: none;\n --header-cell-border-vertical: none;\n"])));
156
+ var borderedStyleMixin = (0, _styledComponents.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\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);
152
157
 
153
- 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 }\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: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: 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 }\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.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.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);
158
+ var StyledArtTableWrapper = _styledComponents.default.div(_templateObject4 || (_templateObject4 = (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 // \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 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: 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 }\n .", " {\n display: flex\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 \n //#region \u62D6\u62FD\u5217\u5BBD\u5927\u5C0F\n .", "::after{\n background-color: var(--border-color);\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.stickyScroll, Z.scrollItem, Classes.stickyScrollItem, Classes.loadingWrapper, Classes.loadingContentWrapper, Classes.loadingIndicatorWrapper, Classes.loadingIndicator, Z.loadingIndicator, Classes.tableFilterTrigger, Classes.filterIcon, Classes.tableSortIcon, Classes.verticalScrollPlaceholder, Classes.tableFooter, Classes.verticalScrollPlaceholder, Classes.tableHeaderCellResize);
154
159
 
155
160
  exports.StyledArtTableWrapper = StyledArtTableWrapper;
156
- 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);
161
+ var ButtonCSS = (0, _styledComponents.css)(_templateObject5 || (_templateObject5 = (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);
157
162
  exports.ButtonCSS = ButtonCSS;
158
163
 
159
164
  function getCssVariableText(obj) {
@@ -47,6 +47,8 @@ export interface BaseTableProps {
47
47
  scrollbarWidth?: number;
48
48
  /** 使用来自外层 div 的边框代替单元格的外边框 */
49
49
  useOuterBorder?: boolean;
50
+ /** 显示表格单元格边框线 */
51
+ bordered?: boolean;
50
52
  /** 表格是否在加载中 */
51
53
  isLoading?: boolean;
52
54
  /** 数据为空时,单元格的高度 */
@@ -31,6 +31,8 @@ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable
31
31
 
32
32
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
33
33
 
34
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
35
+
34
36
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
35
37
 
36
38
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
@@ -43,8 +45,6 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
43
45
 
44
46
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/getPrototypeOf"));
45
47
 
46
- var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
47
-
48
48
  var _classnames = _interopRequireDefault(require("classnames"));
49
49
 
50
50
  var _react = _interopRequireDefault(require("react"));
@@ -73,8 +73,6 @@ var _styles = require("./styles");
73
73
 
74
74
  var _utils = require("./utils");
75
75
 
76
- var _cssVarsPonyfill = _interopRequireDefault(require("css-vars-ponyfill"));
77
-
78
76
  var _utils2 = require("../utils");
79
77
 
80
78
  var _renderTemplates = _interopRequireDefault(require("./renderTemplates"));
@@ -93,31 +91,6 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
93
91
 
94
92
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
95
93
 
96
- var cssPolifill = function cssPolifill(_ref) {
97
- var variables = _ref.variables,
98
- enableCSSVariables = _ref.enableCSSVariables;
99
-
100
- // const style = document.createElement('style')
101
- // style.type = 'text/css'
102
- // style.innerHTML = '.aaa{ --color: red; }'
103
- // document.getElementsByTagName('head').item(0).appendChild(style)
104
- // const variableNames = variableConst.match(/--.*?(?=:)/g)
105
- // variables = variableNames.map((name) => rootElement.style[name])
106
- if (enableCSSVariables === false) {
107
- return;
108
- }
109
-
110
- (0, _cssVarsPonyfill.default)({
111
- // exclude: 'link[href*="semantic-ui"]',
112
- // onlyLegacy: false,
113
- // rootElement: rootElement,
114
- include: 'style[data-styled]',
115
- variables: (0, _extends2.default)({}, _styles.defaultCSSVariables, variables),
116
- watch: true,
117
- silent: true
118
- });
119
- };
120
-
121
94
  var propsDotEmptyContentDeprecatedWarned = false;
122
95
 
123
96
  function warnPropsDotEmptyContentIsDeprecated() {
@@ -526,6 +499,8 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
526
499
  }, {
527
500
  key: "render",
528
501
  value: function render() {
502
+ var _cx;
503
+
529
504
  // console.log('render table')
530
505
  var info = (0, _calculations.calculateRenderInfo)(this);
531
506
  this.lastInfo = info;
@@ -541,17 +516,17 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
541
516
  isLoading = _this$props6.isLoading,
542
517
  getTableProps = _this$props6.getTableProps,
543
518
  footerDataSource = _this$props6.footerDataSource,
544
- components = _this$props6.components;
545
- var artTableWrapperClassName = (0, _classnames.default)(_styles.Classes.artTableWrapper, {
519
+ components = _this$props6.components,
520
+ bordered = _this$props6.bordered;
521
+ var artTableWrapperClassName = (0, _classnames.default)(_styles.Classes.artTableWrapper, (_cx = {
546
522
  'use-outer-border': useOuterBorder,
547
523
  empty: dataSource.length === 0,
548
524
  lock: info.hasLockColumn,
549
525
  'has-header': hasHeader,
550
526
  'sticky-header': isStickyHeader !== null && isStickyHeader !== void 0 ? isStickyHeader : isStickyHead,
551
527
  'has-footer': footerDataSource.length > 0,
552
- 'sticky-footer': isStickyFooter,
553
- 'ie-polyfill-wrapper': _utils2.browserType.isIE
554
- }, className);
528
+ 'sticky-footer': isStickyFooter
529
+ }, (0, _defineProperty2.default)(_cx, _styles.Classes.artTableBordered, bordered), (0, _defineProperty2.default)(_cx, 'ie-polyfill-wrapper', _utils2.browserType.isIE), _cx), className);
555
530
  var artTableWrapperProps = (0, _defineProperty2.default)({
556
531
  className: artTableWrapperClassName,
557
532
  style: style
@@ -580,10 +555,12 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
580
555
 
581
556
  var _this$props7 = this.props,
582
557
  cssVariables = _this$props7.cssVariables,
583
- enableCSSVariables = _this$props7.enableCSSVariables;
584
- cssPolifill({
558
+ enableCSSVariables = _this$props7.enableCSSVariables,
559
+ bordered = _this$props7.bordered;
560
+ (0, _utils.cssPolifill)({
585
561
  variables: cssVariables || {},
586
- enableCSSVariables: enableCSSVariables
562
+ enableCSSVariables: enableCSSVariables,
563
+ bordered: bordered
587
564
  });
588
565
  (_b = (_a = this.props).setTableWidth) === null || _b === void 0 ? void 0 : _b.call(_a, this.domHelper.tableBody.clientWidth);
589
566
  (_d = (_c = this.props).setTableDomHelper) === null || _d === void 0 ? void 0 : _d.call(_c, this.domHelper);
@@ -655,15 +632,15 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
655
632
 
656
633
  this.rootSubscription.add((0, _rxjs.combineLatest)([richVisibleRects$.pipe(op.map(function (p) {
657
634
  return p.clipRect;
658
- }), op.distinctUntilChanged(_utils.shallowEqual)), this.props$.pipe(op.startWith(null), op.pairwise(), op.filter(function (_ref2) {
659
- var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
660
- prevProps = _ref3[0],
661
- props = _ref3[1];
635
+ }), op.distinctUntilChanged(_utils.shallowEqual)), this.props$.pipe(op.startWith(null), op.pairwise(), op.filter(function (_ref) {
636
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
637
+ prevProps = _ref2[0],
638
+ props = _ref2[1];
662
639
 
663
640
  return prevProps == null || !prevProps.isLoading && props.isLoading;
664
- }))]).subscribe(function (_ref4) {
665
- var _ref5 = (0, _slicedToArray2.default)(_ref4, 1),
666
- clipRect = _ref5[0];
641
+ }))]).subscribe(function (_ref3) {
642
+ var _ref4 = (0, _slicedToArray2.default)(_ref3, 1),
643
+ clipRect = _ref4[0];
667
644
 
668
645
  var loadingIndicator = _this2.domHelper.getLoadingIndicator();
669
646
 
@@ -682,9 +659,9 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
682
659
  horizontal = _this2$lastInfo$useVi.horizontal,
683
660
  vertical = _this2$lastInfo$useVi.vertical;
684
661
  return horizontal || vertical;
685
- }), op.map(function (_ref6) {
686
- var clipRect = _ref6.clipRect,
687
- offsetY = _ref6.offsetY;
662
+ }), op.map(function (_ref5) {
663
+ var clipRect = _ref5.clipRect,
664
+ offsetY = _ref5.offsetY;
688
665
  return {
689
666
  maxRenderHeight: clipRect.bottom - clipRect.top,
690
667
  maxRenderWidth: clipRect.right - clipRect.left,
@@ -701,9 +678,9 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
701
678
  })).subscribe(function (sizeAndOffset) {
702
679
  _this2.setState(sizeAndOffset);
703
680
  }));
704
- this.rootSubscription.add(richVisibleRects$.pipe(op.map(function (_ref7) {
705
- var clipRect = _ref7.clipRect,
706
- offsetY = _ref7.offsetY;
681
+ this.rootSubscription.add(richVisibleRects$.pipe(op.map(function (_ref6) {
682
+ var clipRect = _ref6.clipRect,
683
+ offsetY = _ref6.offsetY;
707
684
  return {
708
685
  maxRenderHeight: clipRect.bottom - clipRect.top,
709
686
  maxRenderWidth: clipRect.right - clipRect.left,
@@ -36,4 +36,11 @@ export declare function shallowEqual<T>(objA: T, objB: T): boolean;
36
36
  export declare function composeRowPropsGetter(getRowProps: (record: any, rowIndex: number) => React.HTMLAttributes<HTMLTableRowElement>, pendingRowProps?: React.HTMLAttributes<HTMLTableRowElement>): (record: any, rowIndex: number) => React.HTMLAttributes<HTMLTableRowElement>;
37
37
  export declare function getTableScrollHeaderDOM(domHelper: TableDOMHelper): HTMLDivElement;
38
38
  export declare function getTableScrollFooterDOM(domHelper: TableDOMHelper): HTMLDivElement;
39
+ export declare const cssPolifill: ({ variables, enableCSSVariables, bordered }: {
40
+ variables: {
41
+ [key: string]: any;
42
+ };
43
+ enableCSSVariables?: boolean;
44
+ bordered?: boolean;
45
+ }) => void;
39
46
  export {};
@@ -23,6 +23,7 @@ Object.defineProperty(exports, "__esModule", {
23
23
  });
24
24
  exports.addResizeObserver = exports.STYLED_VERSION = exports.STYLED_REF_PROP = exports.OVERSCAN_SIZE = exports.AUTO_VIRTUAL_THRESHOLD = void 0;
25
25
  exports.composeRowPropsGetter = composeRowPropsGetter;
26
+ exports.cssPolifill = void 0;
26
27
  exports.getScrollbarSize = getScrollbarSize;
27
28
  exports.getTableScrollFooterDOM = getTableScrollFooterDOM;
28
29
  exports.getTableScrollHeaderDOM = getTableScrollHeaderDOM;
@@ -49,10 +50,14 @@ var _resizeObserverPolyfill = _interopRequireDefault(require("resize-observer-po
49
50
 
50
51
  var styledComponents = _interopRequireWildcard(require("styled-components"));
51
52
 
53
+ var _cssVarsPonyfill = _interopRequireDefault(require("css-vars-ponyfill"));
54
+
52
55
  var _mergeCellProps = _interopRequireDefault(require("../utils/mergeCellProps"));
53
56
 
54
57
  var _utils = require("../utils");
55
58
 
59
+ var _styles = require("./styles");
60
+
56
61
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
57
62
 
58
63
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -268,4 +273,33 @@ function getTableScrollHeaderDOM(domHelper) {
268
273
 
269
274
  function getTableScrollFooterDOM(domHelper) {
270
275
  return _utils.browserType.isIE ? domHelper.tableFooterMain : domHelper.tableFooter;
271
- }
276
+ }
277
+
278
+ var cssPolifill = function cssPolifill(_ref) {
279
+ var variables = _ref.variables,
280
+ enableCSSVariables = _ref.enableCSSVariables,
281
+ bordered = _ref.bordered;
282
+
283
+ if (enableCSSVariables === false) {
284
+ return;
285
+ }
286
+
287
+ var conditionCSSVariables = {}; // 默认情况下存在td、th无左右边框,开启`bordered`属性后才开启,否则隐藏这两种属性
288
+
289
+ if (!bordered) {
290
+ conditionCSSVariables['--cell-border-vertical'] = 'none';
291
+ conditionCSSVariables['--header-cell-border-vertical'] = 'none';
292
+ }
293
+
294
+ (0, _cssVarsPonyfill.default)({
295
+ // exclude: 'link[href*="semantic-ui"]',
296
+ // onlyLegacy: false,
297
+ // rootElement: rootElement,
298
+ include: 'style[data-styled]',
299
+ variables: (0, _extends2.default)({}, _styles.defaultCSSVariables, variables, conditionCSSVariables),
300
+ watch: true,
301
+ silent: true
302
+ });
303
+ };
304
+
305
+ exports.cssPolifill = cssPolifill;
@@ -79,7 +79,7 @@ function columnDrag() {
79
79
  },
80
80
  headerCellProps: (0, _utils.mergeCellProps)(col.headerCellProps, {
81
81
  onMouseDown: !isLeaf || path.length > 1 ? undefined : function (e) {
82
- if (e.button !== 0) {
82
+ if (e.button !== 0 || !e.currentTarget.contains(e.target)) {
83
83
  return;
84
84
  }
85
85
 
@@ -255,13 +255,14 @@ function columnDrag() {
255
255
  }
256
256
 
257
257
  function handleMouseUp(e) {
258
- e.stopPropagation();
259
258
  document.body.removeEventListener('mousemove', handleMouseMove);
260
259
  document.body.removeEventListener('mouseup', handleMouseUp);
261
- window.removeEventListener('selectstart', disableSelect); // 阻止列头点击事件,防止拖动后触发列头过滤事件
260
+ window.removeEventListener('selectstart', disableSelect);
262
261
 
263
262
  if (_isMoveWhenClicking(mouseDownClientX, mouseDownClientY, e.clientX, e.clientY)) {
264
- currentTarget.addEventListener('click', stopClickPropagation);
263
+ e.stopPropagation(); // 存在移动就阻止冒泡
264
+
265
+ currentTarget.addEventListener('click', stopClickPropagation); // 阻止列头点击事件,防止拖动后触发列头过滤事件
265
266
  }
266
267
 
267
268
  window.requestAnimationFrame(function () {
@@ -13,7 +13,7 @@ export interface FilterFeatureOptions {
13
13
  /** 过滤模式。单列过滤 single,多列过滤 multiple,默认为多选 */
14
14
  mode?: 'single' | 'multiple';
15
15
  /** 过滤图标 */
16
- filterIcon?: ReactNode;
16
+ filterIcon?: ReactNode | ((filtered: boolean) => ReactNode);
17
17
  /** 是否对触发弹出过滤面板 的 click 事件调用 event.stopPropagation() */
18
18
  stopClickEventPropagation?: boolean;
19
19
  }
@@ -41,7 +41,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "functi
41
41
 
42
42
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
43
43
 
44
- var TableHeaderCellResize = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n position: absolute;\n top: 0;\n right: -5px;\n height: 100%;\n width: 10px;\n cursor: ew-resize;\n display: flex;\n flex-direction: column;\n align-items: center;\n z-index:1;\n\n &:after {\n content: \"\";\n position: absolute;\n display: block;\n left: calc(50% - 1px);\n width: 1px;\n height: calc(100% - 14px);\n top: 7px;\n background-color: var(--border-color);\n }\n"])));
44
+ var TableHeaderCellResize = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n position: absolute;\n top: 0;\n right: -5px;\n height: 100%;\n width: 10px;\n cursor: ew-resize;\n display: flex;\n flex-direction: column;\n align-items: center;\n z-index:1;\n\n &:after {\n content: \"\";\n position: absolute;\n display: block;\n left: calc(50% - 1px);\n width: 1px;\n height: calc(100% - 14px);\n top: 7px;\n }\n"])));
45
45
 
46
46
  var TableHeaderGroupCellResize = (0, _styledComponents.default)(TableHeaderCellResize)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n &:after {\n height: 100%;\n top: 0;\n }\n"])));
47
47
 
@@ -33,6 +33,8 @@ var _util = require("./util");
33
33
 
34
34
  var _styles = require("../../../base/styles");
35
35
 
36
+ var _keyCode = _interopRequireDefault(require("../../../utils/keyCode"));
37
+
36
38
  var _templateObject;
37
39
 
38
40
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -58,6 +60,8 @@ function DefaultFilterContent(_ref) {
58
60
  innerValue = _React$useState4[0],
59
61
  setInnerValue = _React$useState4[1];
60
62
 
63
+ var inputRef = (0, _react.useRef)();
64
+
61
65
  var handleClick = _react.default.useCallback(function (option) {
62
66
  setSelectedValue(option.key);
63
67
  }, []);
@@ -75,10 +79,26 @@ function DefaultFilterContent(_ref) {
75
79
  });
76
80
  };
77
81
 
82
+ var handleKeyDown = function handleKeyDown(e) {
83
+ if (e.keyCode === _keyCode.default.ENTER) {
84
+ confirm();
85
+ }
86
+ };
87
+
78
88
  (0, _react.useEffect)(function () {
79
89
  setSelectedValue((filterModel === null || filterModel === void 0 ? void 0 : filterModel.filterCondition) || 'contain');
80
90
  setInnerValue((filterModel === null || filterModel === void 0 ? void 0 : (0, _filter.default)(filterModel)) || '');
81
91
  }, [filterModel]);
92
+ (0, _react.useEffect)(function () {
93
+ // 兼容设置焦点后发生滚动
94
+ setTimeout(function () {
95
+ var _a;
96
+
97
+ (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus({
98
+ preventScroll: true
99
+ });
100
+ });
101
+ }, []);
82
102
  return /*#__PURE__*/_react.default.createElement(DefaultFilterContentStyle, null, /*#__PURE__*/_react.default.createElement("div", {
83
103
  className: 'filter-option-list'
84
104
  }, /*#__PURE__*/_react.default.createElement("ul", null, (0, _map.default)(_util.DEFAULT_FILTER_OPTIONS).call(_util.DEFAULT_FILTER_OPTIONS, function (option, index) {
@@ -100,7 +120,9 @@ function DefaultFilterContent(_ref) {
100
120
  value: innerValue,
101
121
  onChange: function onChange(e) {
102
122
  setInnerValue(e.target.value);
103
- }
123
+ },
124
+ onKeyDown: handleKeyDown,
125
+ ref: inputRef
104
126
  })), /*#__PURE__*/_react.default.createElement("div", {
105
127
  className: 'filter-footer'
106
128
  }, /*#__PURE__*/_react.default.createElement("button", {
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ export default function DefaultFilterIcon({ width, height }: {
3
+ width: string | number;
4
+ height: string | number;
5
+ }): JSX.Element;
@@ -0,0 +1,30 @@
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.default = DefaultFilterIcon;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ function DefaultFilterIcon(_ref) {
13
+ var width = _ref.width,
14
+ height = _ref.height;
15
+ return /*#__PURE__*/_react.default.createElement("svg", {
16
+ width: width,
17
+ height: height,
18
+ style: {
19
+ verticalAlign: 'middle'
20
+ },
21
+ viewBox: "0 0 1024 1024",
22
+ focusable: "false",
23
+ "data-icon": "filter",
24
+ fill: "currentColor",
25
+ version: "1.1",
26
+ xmlns: "http://www.w3.org/2000/svg"
27
+ }, /*#__PURE__*/_react.default.createElement("path", {
28
+ d: "M891.448889 159.573333L626.460444 460.231111v443.221333c0 32.881778-25.429333 63.658667-55.864888 63.658667l-170.268445-172.942222V456.419556L132.266667 159.857778A59.619556 59.619556 0 0 1 173.511111 56.888889h676.977778c32.995556 0 59.733333 26.680889 59.733333 59.562667 0 17.066667-7.224889 32.312889-18.773333 43.121777z"
29
+ }));
30
+ }
@@ -6,7 +6,7 @@ interface FilterProps {
6
6
  size?: number;
7
7
  isFilterActive: boolean;
8
8
  FilterPanelContent?: FilterPanelType;
9
- filterIcon?: ReactNode;
9
+ filterIcon?: ReactNode | ((filtered: boolean) => ReactNode);
10
10
  setFilterModel: DefaultFilterPanelProps['setFilterModel'];
11
11
  filterModel: DefaultFilterPanelProps['filterModel'];
12
12
  setFilter: CustomeFilterPanelProps['setFilter'];