@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.
- package/dist/@kdcloudjs/table.css +1 -1
- package/dist/@kdcloudjs/table.js +246 -161
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +10 -9
- package/dist/@kdcloudjs/table.min.js.map +1 -1
- package/es/table/base/styles.d.ts +5 -2
- package/es/table/base/styles.js +11 -6
- package/es/table/base/table.d.ts +2 -0
- package/es/table/base/table.js +27 -50
- package/es/table/base/utils.d.ts +7 -0
- package/es/table/base/utils.js +29 -1
- package/es/table/pipeline/features/columnDrag.js +5 -4
- package/es/table/pipeline/features/columnFilter.d.ts +1 -1
- package/es/table/pipeline/features/columnResizeWidth.js +1 -1
- package/es/table/pipeline/features/filter/DefaultFilterContent.js +22 -2
- package/es/table/pipeline/features/filter/DefaultFilterIcon.d.ts +5 -0
- package/es/table/pipeline/features/filter/DefaultFilterIcon.js +20 -0
- package/es/table/pipeline/features/filter/Filter.d.ts +1 -1
- package/es/table/pipeline/features/filter/Filter.js +16 -20
- package/es/table/pipeline/features/filter/FilterPanel.js +21 -15
- package/es/table/pipeline/pipeline.js +1 -1
- package/es/table/utils/keyCode.d.ts +4 -0
- package/es/table/utils/keyCode.js +4 -0
- package/es/table/utils/mergeCellProps.js +2 -6
- package/lib/table/base/styles.d.ts +5 -2
- package/lib/table/base/styles.js +11 -6
- package/lib/table/base/table.d.ts +2 -0
- package/lib/table/base/table.js +27 -50
- package/lib/table/base/utils.d.ts +7 -0
- package/lib/table/base/utils.js +35 -1
- package/lib/table/pipeline/features/columnDrag.js +5 -4
- package/lib/table/pipeline/features/columnFilter.d.ts +1 -1
- package/lib/table/pipeline/features/columnResizeWidth.js +1 -1
- package/lib/table/pipeline/features/filter/DefaultFilterContent.js +23 -1
- package/lib/table/pipeline/features/filter/DefaultFilterIcon.d.ts +5 -0
- package/lib/table/pipeline/features/filter/DefaultFilterIcon.js +30 -0
- package/lib/table/pipeline/features/filter/Filter.d.ts +1 -1
- package/lib/table/pipeline/features/filter/Filter.js +17 -20
- package/lib/table/pipeline/features/filter/FilterPanel.js +21 -14
- package/lib/table/pipeline/pipeline.js +1 -1
- package/lib/table/utils/keyCode.d.ts +4 -0
- package/lib/table/utils/keyCode.js +11 -0
- package/lib/table/utils/mergeCellProps.js +2 -6
- 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
|
-
|
|
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
|
-
|
|
54
|
-
|
|
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(
|
|
67
|
-
width:
|
|
68
|
-
height:
|
|
69
|
-
|
|
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
|
|
|
@@ -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(
|
|
14
|
-
handler2(
|
|
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;
|
package/lib/table/base/styles.js
CHANGED
|
@@ -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
|
|
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': '#
|
|
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
|
-
'--
|
|
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(
|
|
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)(
|
|
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) {
|
package/lib/table/base/table.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 (
|
|
659
|
-
var
|
|
660
|
-
prevProps =
|
|
661
|
-
props =
|
|
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 (
|
|
665
|
-
var
|
|
666
|
-
clipRect =
|
|
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 (
|
|
686
|
-
var clipRect =
|
|
687
|
-
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 (
|
|
705
|
-
var clipRect =
|
|
706
|
-
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 {};
|
package/lib/table/base/utils.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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,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'];
|