@kdcloudjs/table 1.0.1 → 1.0.2
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/LICENSE +1 -1
- package/README.md +34 -33
- package/dist/@kdcloudjs/table.css +1 -1
- package/dist/@kdcloudjs/table.css.map +1 -1
- package/dist/@kdcloudjs/table.js +6323 -3240
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +32 -24
- package/dist/@kdcloudjs/table.min.js.map +1 -1
- package/es/_utils/hooks.js +1 -2
- package/es/_utils/numberUtil.js +3 -4
- package/es/locale/locale.js +1 -2
- package/es/table/base/calculations.js +2 -3
- package/es/table/base/header.d.ts +6 -2
- package/es/table/base/header.js +36 -13
- package/es/table/base/helpers/SpanManager.js +1 -1
- package/es/table/base/helpers/TableDOMUtils.d.ts +3 -0
- package/es/table/base/helpers/TableDOMUtils.js +23 -5
- package/es/table/base/helpers/getRichVisibleRectsStream.d.ts +23 -0
- package/es/table/base/helpers/getRichVisibleRectsStream.js +216 -0
- package/es/table/base/html-table.d.ts +3 -1
- package/es/table/base/html-table.js +34 -8
- package/es/table/base/interfaces.d.ts +1 -0
- package/es/table/base/renderTemplates.d.ts +1 -0
- package/es/table/base/renderTemplates.js +344 -0
- package/es/table/base/styles.d.ts +14 -0
- package/es/table/base/styles.js +20 -8
- package/es/table/base/table.d.ts +12 -4
- package/es/table/base/table.js +183 -136
- package/es/table/base/utils.d.ts +6 -3
- package/es/table/base/utils.js +27 -6
- package/es/table/common-views.js +1 -1
- package/es/table/pipeline/features/autoFill.js +7 -1
- package/es/table/pipeline/features/columnDrag.js +109 -41
- package/es/table/pipeline/features/columnFilter.js +7 -9
- package/es/table/pipeline/features/columnResizeWidth.d.ts +3 -0
- package/es/table/pipeline/features/columnResizeWidth.js +11 -4
- package/es/table/pipeline/features/contextMenu.js +42 -10
- package/es/table/pipeline/features/filter/Filter.js +74 -37
- package/es/table/pipeline/features/index.d.ts +1 -0
- package/es/table/pipeline/features/index.js +2 -1
- package/es/table/pipeline/features/rangeSelection.d.ts +10 -0
- package/es/table/pipeline/features/rangeSelection.js +231 -0
- package/es/table/pipeline/features/rowDetail.js +37 -15
- package/es/table/pipeline/features/singleSelect.js +4 -1
- package/es/table/pipeline/features/sort.js +2 -3
- package/es/table/pipeline/features/treeMode.js +1 -2
- package/es/table/pipeline/pipeline.d.ts +4 -0
- package/es/table/pipeline/pipeline.js +32 -5
- package/es/table/pivot/cross-table/buildCrossTable.js +1 -2
- package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +1 -2
- package/es/table/pivot/pivot-utils/builders.js +1 -2
- package/es/table/pivot/pivot-utils/convert-utils.js +1 -2
- package/es/table/transforms/autoWidth.js +1 -2
- package/es/table/transforms/sort.js +1 -2
- package/es/table/transforms/treeMode.js +1 -2
- package/es/table/utils/applyTransforms.js +1 -3
- package/es/table/utils/browserType.d.ts +6 -0
- package/es/table/utils/browserType.js +6 -0
- package/es/table/utils/buildTree.js +4 -5
- package/es/table/utils/collectNodes.js +1 -2
- package/es/table/utils/exportTableAsExcel.js +1 -2
- package/es/table/utils/getTreeDepth.js +1 -2
- package/es/table/utils/groupBy.js +1 -2
- package/es/table/utils/index.d.ts +1 -0
- package/es/table/utils/index.js +2 -1
- package/es/table/utils/layeredSort.js +5 -2
- package/es/table/utils/makeRecursiveMapper.js +4 -5
- package/es/table/utils/others.d.ts +1 -1
- package/es/table/utils/others.js +20 -14
- package/es/table/utils/traverseColumn.js +1 -2
- package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +4 -5
- package/es/table/utils/tree-data-helpers/TreeDataHelper.js +4 -5
- package/lib/_utils/formatUtil.js +1 -1
- package/lib/_utils/hooks.js +2 -4
- package/lib/_utils/numberUtil.js +7 -9
- package/lib/_utils/usePopper.js +9 -1
- package/lib/config-provider/configProvider.js +9 -1
- package/lib/config-provider/index.js +5 -5
- package/lib/locale/index.js +14 -6
- package/lib/locale/locale.js +2 -4
- package/lib/table/base/calculations.js +3 -5
- package/lib/table/base/empty.js +9 -1
- package/lib/table/base/header.d.ts +6 -2
- package/lib/table/base/header.js +33 -10
- package/lib/table/base/helpers/SpanManager.js +1 -1
- package/lib/table/base/helpers/TableDOMUtils.d.ts +3 -0
- package/lib/table/base/helpers/TableDOMUtils.js +21 -5
- package/lib/table/base/helpers/getRichVisibleRectsStream.d.ts +23 -0
- package/lib/table/base/helpers/getRichVisibleRectsStream.js +246 -0
- package/lib/table/base/html-table.d.ts +3 -1
- package/lib/table/base/html-table.js +34 -8
- package/lib/table/base/index.js +4 -4
- package/lib/table/base/interfaces.d.ts +1 -0
- package/lib/table/base/renderTemplates.d.ts +1 -0
- package/lib/table/base/renderTemplates.js +370 -0
- package/lib/table/base/styles.d.ts +14 -0
- package/lib/table/base/styles.js +31 -12
- package/lib/table/base/table.d.ts +12 -4
- package/lib/table/base/table.js +191 -137
- package/lib/table/base/utils.d.ts +6 -3
- package/lib/table/base/utils.js +47 -10
- package/lib/table/common-views.js +2 -2
- package/lib/table/pipeline/features/__test__/sort.test.js +5 -3
- package/lib/table/pipeline/features/autoFill.js +9 -2
- package/lib/table/pipeline/features/columnDrag.js +108 -40
- package/lib/table/pipeline/features/columnFilter.js +6 -9
- package/lib/table/pipeline/features/columnResizeWidth.d.ts +3 -0
- package/lib/table/pipeline/features/columnResizeWidth.js +21 -5
- package/lib/table/pipeline/features/contextMenu.js +53 -11
- package/lib/table/pipeline/features/filter/DefaultFilterContent.js +10 -2
- package/lib/table/pipeline/features/filter/Filter.js +88 -37
- package/lib/table/pipeline/features/filter/FilterPanel.js +10 -2
- package/lib/table/pipeline/features/filter/index.js +4 -4
- package/lib/table/pipeline/features/index.d.ts +1 -0
- package/lib/table/pipeline/features/index.js +37 -27
- package/lib/table/pipeline/features/rangeSelection.d.ts +10 -0
- package/lib/table/pipeline/features/rangeSelection.js +256 -0
- package/lib/table/pipeline/features/rowDetail.js +39 -15
- package/lib/table/pipeline/features/singleSelect.js +4 -1
- package/lib/table/pipeline/features/sort.js +2 -4
- package/lib/table/pipeline/features/treeMode.js +2 -4
- package/lib/table/pipeline/index.js +11 -3
- package/lib/table/pipeline/pipeline.d.ts +4 -0
- package/lib/table/pipeline/pipeline.js +33 -7
- package/lib/table/pivot/cross-table/buildCrossTable.js +1 -3
- package/lib/table/pivot/cross-table/index.js +4 -4
- package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +1 -3
- package/lib/table/pivot/pivot-utils/builders.js +2 -4
- package/lib/table/pivot/pivot-utils/convert-utils.js +1 -3
- package/lib/table/pivot/pivot-utils/index.js +4 -4
- package/lib/table/transforms/autoWidth.js +10 -4
- package/lib/table/transforms/columnResize.js +10 -2
- package/lib/table/transforms/index.js +32 -32
- package/lib/table/transforms/sort.js +10 -4
- package/lib/table/transforms/treeMode.js +9 -3
- package/lib/table/utils/applyTransforms.js +1 -5
- package/lib/table/utils/browserType.d.ts +6 -0
- package/lib/table/utils/browserType.js +13 -0
- package/lib/table/utils/buildTree.js +1 -3
- package/lib/table/utils/collectNodes.js +1 -3
- package/lib/table/utils/copyToClipboard.js +1 -1
- package/lib/table/utils/element.js +3 -3
- package/lib/table/utils/exportTableAsExcel.js +1 -3
- package/lib/table/utils/getTreeDepth.js +1 -3
- package/lib/table/utils/groupBy.js +1 -3
- package/lib/table/utils/index.d.ts +1 -0
- package/lib/table/utils/index.js +57 -49
- package/lib/table/utils/layeredSort.js +6 -2
- package/lib/table/utils/makeRecursiveMapper.js +1 -3
- package/lib/table/utils/others.d.ts +1 -1
- package/lib/table/utils/others.js +23 -18
- package/lib/table/utils/traverseColumn.js +1 -3
- package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +5 -7
- package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +5 -7
- package/package.json +6 -2
- package/dist/kd-table.css +0 -422
- package/dist/kd-table.css.map +0 -1
- package/dist/kd-table.js +0 -38578
- package/dist/kd-table.js.map +0 -1
- package/dist/kd-table.min.css +0 -9
- package/dist/kd-table.min.js +0 -208
- package/dist/kd-table.min.js.map +0 -1
- package/es/table/base/helpers/__test__/visible-part.test.d.ts +0 -1
- package/es/table/base/helpers/__test__/visible-part.test.js +0 -28
- package/es/table/base/helpers/visible-part.d.ts +0 -23
- package/es/table/base/helpers/visible-part.js +0 -58
- package/lib/table/base/helpers/__test__/visible-part.test.d.ts +0 -1
- package/lib/table/base/helpers/__test__/visible-part.test.js +0 -31
- package/lib/table/base/helpers/visible-part.d.ts +0 -23
- package/lib/table/base/helpers/visible-part.js +0 -72
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
|
4
|
+
|
|
5
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
|
6
|
+
|
|
7
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
|
8
|
+
|
|
3
9
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
10
|
|
|
5
11
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -7,11 +13,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
13
|
});
|
|
8
14
|
exports.default = void 0;
|
|
9
15
|
|
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
17
|
+
|
|
10
18
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
|
11
19
|
|
|
12
20
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/taggedTemplateLiteral"));
|
|
13
21
|
|
|
14
|
-
var _react =
|
|
22
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
23
|
|
|
16
24
|
var _reactDom = require("react-dom");
|
|
17
25
|
|
|
@@ -25,31 +33,85 @@ var _DefaultFilterContent = _interopRequireDefault(require("./DefaultFilterConte
|
|
|
25
33
|
|
|
26
34
|
var _utils = require("../../../utils");
|
|
27
35
|
|
|
36
|
+
var _utils2 = require("../../../base/utils");
|
|
37
|
+
|
|
38
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
39
|
+
|
|
28
40
|
var _templateObject;
|
|
29
41
|
|
|
30
|
-
var
|
|
42
|
+
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); }
|
|
43
|
+
|
|
44
|
+
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; }
|
|
31
45
|
|
|
32
|
-
var
|
|
46
|
+
var HEADER_ICON_OFFSET_Y = 6 + 1; // padding-top + border
|
|
33
47
|
|
|
34
|
-
var
|
|
48
|
+
var HEADER_ICON_OFFSET_X = 16 + 1; // padding-left+ border
|
|
35
49
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
className = _ref.className,
|
|
41
|
-
FilterPanelContent = _ref.FilterPanelContent,
|
|
50
|
+
var FilterIconSpanStyle = _styledComponents.default.span(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n // position: absolute;\n // right: 4px;\n // cursor: pointer;\n // transform: translateY(-50%);\n // top: 50%;\n // height: 12px; \n"])));
|
|
51
|
+
|
|
52
|
+
function Panel(_ref) {
|
|
53
|
+
var ele = _ref.ele,
|
|
42
54
|
filterIcon = _ref.filterIcon,
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
stopClickEventPropagation = _ref.stopClickEventPropagation;
|
|
55
|
+
hidePanel = _ref.hidePanel,
|
|
56
|
+
renderPanelContent = _ref.renderPanelContent;
|
|
57
|
+
|
|
58
|
+
var filterPanelRef = _react.default.useRef(null);
|
|
48
59
|
|
|
49
|
-
var _React$useState = _react.default.useState(
|
|
60
|
+
var _React$useState = _react.default.useState((0, _utils.calculatePopupRelative)(ele, document.body, {
|
|
61
|
+
x: HEADER_ICON_OFFSET_X,
|
|
62
|
+
y: HEADER_ICON_OFFSET_Y
|
|
63
|
+
})),
|
|
50
64
|
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
|
|
51
|
-
|
|
52
|
-
|
|
65
|
+
position = _React$useState2[0],
|
|
66
|
+
setPosition = _React$useState2[1];
|
|
67
|
+
|
|
68
|
+
var style = {
|
|
69
|
+
position: 'absolute',
|
|
70
|
+
zIndex: 1050
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
var handleFilterPanelResize = function handleFilterPanelResize(resize) {
|
|
74
|
+
setPosition((0, _utils.calculatePopupRelative)(ele, document.body, {
|
|
75
|
+
x: HEADER_ICON_OFFSET_X,
|
|
76
|
+
y: HEADER_ICON_OFFSET_Y
|
|
77
|
+
}));
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
(0, _react.useEffect)(function () {
|
|
81
|
+
var resizeObserver = (0, _utils2.addResizeObserver)(filterPanelRef.current.children[0], handleFilterPanelResize);
|
|
82
|
+
return function () {
|
|
83
|
+
resizeObserver && resizeObserver.disconnect();
|
|
84
|
+
};
|
|
85
|
+
}, []);
|
|
86
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
87
|
+
ref: filterPanelRef
|
|
88
|
+
}, /*#__PURE__*/_react.default.createElement(_FilterPanel.default, {
|
|
89
|
+
style: style,
|
|
90
|
+
onClose: hidePanel,
|
|
91
|
+
position: position,
|
|
92
|
+
filterIcon: filterIcon
|
|
93
|
+
}, renderPanelContent()));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function Filter(_ref2) {
|
|
97
|
+
var _cx;
|
|
98
|
+
|
|
99
|
+
var _ref2$size = _ref2.size,
|
|
100
|
+
size = _ref2$size === void 0 ? 12 : _ref2$size,
|
|
101
|
+
style = _ref2.style,
|
|
102
|
+
className = _ref2.className,
|
|
103
|
+
FilterPanelContent = _ref2.FilterPanelContent,
|
|
104
|
+
filterIcon = _ref2.filterIcon,
|
|
105
|
+
setFilter = _ref2.setFilter,
|
|
106
|
+
setFilterModel = _ref2.setFilterModel,
|
|
107
|
+
filterModel = _ref2.filterModel,
|
|
108
|
+
isFilterActive = _ref2.isFilterActive,
|
|
109
|
+
stopClickEventPropagation = _ref2.stopClickEventPropagation;
|
|
110
|
+
|
|
111
|
+
var _React$useState3 = _react.default.useState(false),
|
|
112
|
+
_React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
|
|
113
|
+
showPanel = _React$useState4[0],
|
|
114
|
+
setShowPanel = _React$useState4[1];
|
|
53
115
|
|
|
54
116
|
var iconRef = _react.default.useRef(null);
|
|
55
117
|
|
|
@@ -79,23 +141,6 @@ function Filter(_ref) {
|
|
|
79
141
|
}
|
|
80
142
|
};
|
|
81
143
|
|
|
82
|
-
var renderPanel = function renderPanel(ele) {
|
|
83
|
-
var position = (0, _utils.calculatePopupRelative)(ele, document.body, {
|
|
84
|
-
x: HEADER_ICON_OFFSET_X,
|
|
85
|
-
y: HEADER_ICON_OFFSET_Y
|
|
86
|
-
});
|
|
87
|
-
var style = {
|
|
88
|
-
position: 'absolute',
|
|
89
|
-
zIndex: 1050
|
|
90
|
-
};
|
|
91
|
-
return /*#__PURE__*/_react.default.createElement(_FilterPanel.default, {
|
|
92
|
-
style: style,
|
|
93
|
-
onClose: hidePanel,
|
|
94
|
-
position: position,
|
|
95
|
-
filterIcon: filterIcon
|
|
96
|
-
}, renderPanelContent());
|
|
97
|
-
};
|
|
98
|
-
|
|
99
144
|
var handleIconClick = function handleIconClick(e) {
|
|
100
145
|
if (stopClickEventPropagation) {
|
|
101
146
|
e.stopPropagation();
|
|
@@ -104,9 +149,10 @@ function Filter(_ref) {
|
|
|
104
149
|
setShowPanel(true);
|
|
105
150
|
};
|
|
106
151
|
|
|
152
|
+
var iconClassName = (0, _classnames.default)((_cx = {}, (0, _defineProperty2.default)(_cx, className, true), (0, _defineProperty2.default)(_cx, 'filter-panel-open', showPanel), _cx));
|
|
107
153
|
return /*#__PURE__*/_react.default.createElement(FilterIconSpanStyle, {
|
|
108
154
|
style: style,
|
|
109
|
-
className:
|
|
155
|
+
className: iconClassName,
|
|
110
156
|
onMouseDown: handleMouseDown,
|
|
111
157
|
ref: iconRef
|
|
112
158
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
@@ -122,7 +168,12 @@ function Filter(_ref) {
|
|
|
122
168
|
"aria-hidden": "true"
|
|
123
169
|
}, /*#__PURE__*/_react.default.createElement("path", {
|
|
124
170
|
d: "M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3\n 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5\n 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z"
|
|
125
|
-
}))), showPanel && /*#__PURE__*/(0, _reactDom.createPortal)(
|
|
171
|
+
}))), showPanel && /*#__PURE__*/(0, _reactDom.createPortal)( /*#__PURE__*/_react.default.createElement(Panel, {
|
|
172
|
+
ele: iconRef.current,
|
|
173
|
+
filterIcon: filterIcon,
|
|
174
|
+
hidePanel: hidePanel,
|
|
175
|
+
renderPanelContent: renderPanelContent
|
|
176
|
+
}), document.body));
|
|
126
177
|
}
|
|
127
178
|
|
|
128
179
|
var _default = Filter;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
|
4
|
+
|
|
5
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
|
6
|
+
|
|
7
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
|
4
8
|
|
|
5
|
-
var
|
|
9
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
6
10
|
|
|
7
11
|
Object.defineProperty(exports, "__esModule", {
|
|
8
12
|
value: true
|
|
@@ -23,6 +27,10 @@ var _utils = require("../../../utils/");
|
|
|
23
27
|
|
|
24
28
|
var _templateObject;
|
|
25
29
|
|
|
30
|
+
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); }
|
|
31
|
+
|
|
32
|
+
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; }
|
|
33
|
+
|
|
26
34
|
var FilterPanelStyle = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\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"])));
|
|
27
35
|
|
|
28
36
|
var useWindowEvents = function useWindowEvents(func, evens) {
|
|
@@ -5,10 +5,10 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
Object.defineProperty(exports, "
|
|
8
|
+
Object.defineProperty(exports, "DEFAULT_FILTER_OPTIONS", {
|
|
9
9
|
enumerable: true,
|
|
10
10
|
get: function get() {
|
|
11
|
-
return
|
|
11
|
+
return _util.DEFAULT_FILTER_OPTIONS;
|
|
12
12
|
}
|
|
13
13
|
});
|
|
14
14
|
Object.defineProperty(exports, "DefaultFilterContent", {
|
|
@@ -23,10 +23,10 @@ Object.defineProperty(exports, "Filter", {
|
|
|
23
23
|
return _Filter.default;
|
|
24
24
|
}
|
|
25
25
|
});
|
|
26
|
-
Object.defineProperty(exports, "
|
|
26
|
+
Object.defineProperty(exports, "FilterPanel", {
|
|
27
27
|
enumerable: true,
|
|
28
28
|
get: function get() {
|
|
29
|
-
return
|
|
29
|
+
return _FilterPanel.default;
|
|
30
30
|
}
|
|
31
31
|
});
|
|
32
32
|
|
|
@@ -14,3 +14,4 @@ export { columnDrag, ColumnDragOptions } from './columnDrag';
|
|
|
14
14
|
export { columnResize, ColumnResizeOptions } from './columnResizeWidth';
|
|
15
15
|
export { contextMenu, ContextMenuFeatureOptions } from './contextMenu';
|
|
16
16
|
export { filter, FilterFeatureOptions } from './columnFilter';
|
|
17
|
+
export { rangeSelection, RangeSelectionFeatureOptions } from './rangeSelection';
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
|
|
4
4
|
|
|
5
|
+
var _sortInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/sort");
|
|
6
|
+
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
7
9
|
});
|
|
@@ -17,6 +19,12 @@ Object.defineProperty(exports, "buildTree", {
|
|
|
17
19
|
return _buildTree.buildTree;
|
|
18
20
|
}
|
|
19
21
|
});
|
|
22
|
+
Object.defineProperty(exports, "columnDrag", {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
get: function get() {
|
|
25
|
+
return _columnDrag.columnDrag;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
20
28
|
Object.defineProperty(exports, "columnHover", {
|
|
21
29
|
enumerable: true,
|
|
22
30
|
get: function get() {
|
|
@@ -29,82 +37,82 @@ Object.defineProperty(exports, "columnRangeHover", {
|
|
|
29
37
|
return _columnRangeHover.columnRangeHover;
|
|
30
38
|
}
|
|
31
39
|
});
|
|
32
|
-
Object.defineProperty(exports, "
|
|
40
|
+
Object.defineProperty(exports, "columnResize", {
|
|
33
41
|
enumerable: true,
|
|
34
42
|
get: function get() {
|
|
35
|
-
return
|
|
43
|
+
return _columnResizeWidth.columnResize;
|
|
36
44
|
}
|
|
37
45
|
});
|
|
38
|
-
Object.defineProperty(exports, "
|
|
46
|
+
Object.defineProperty(exports, "contextMenu", {
|
|
39
47
|
enumerable: true,
|
|
40
48
|
get: function get() {
|
|
41
|
-
return
|
|
49
|
+
return _contextMenu.contextMenu;
|
|
42
50
|
}
|
|
43
51
|
});
|
|
44
|
-
Object.defineProperty(exports, "
|
|
52
|
+
Object.defineProperty(exports, "filter", {
|
|
45
53
|
enumerable: true,
|
|
46
54
|
get: function get() {
|
|
47
|
-
return
|
|
55
|
+
return _filterInstanceProperty(_columnFilter);
|
|
48
56
|
}
|
|
49
57
|
});
|
|
50
|
-
Object.defineProperty(exports, "
|
|
58
|
+
Object.defineProperty(exports, "multiSelect", {
|
|
51
59
|
enumerable: true,
|
|
52
60
|
get: function get() {
|
|
53
|
-
return
|
|
61
|
+
return _multiSelect.multiSelect;
|
|
54
62
|
}
|
|
55
63
|
});
|
|
56
|
-
Object.defineProperty(exports, "
|
|
64
|
+
Object.defineProperty(exports, "rangeSelection", {
|
|
57
65
|
enumerable: true,
|
|
58
66
|
get: function get() {
|
|
59
|
-
return
|
|
67
|
+
return _rangeSelection.rangeSelection;
|
|
60
68
|
}
|
|
61
69
|
});
|
|
62
|
-
Object.defineProperty(exports, "
|
|
70
|
+
Object.defineProperty(exports, "rowDetail", {
|
|
63
71
|
enumerable: true,
|
|
64
72
|
get: function get() {
|
|
65
|
-
return
|
|
73
|
+
return _rowDetail.rowDetail;
|
|
66
74
|
}
|
|
67
75
|
});
|
|
68
|
-
Object.defineProperty(exports, "
|
|
76
|
+
Object.defineProperty(exports, "rowGrouping", {
|
|
69
77
|
enumerable: true,
|
|
70
78
|
get: function get() {
|
|
71
|
-
return
|
|
79
|
+
return _rowGrouping.rowGrouping;
|
|
72
80
|
}
|
|
73
81
|
});
|
|
74
|
-
Object.defineProperty(exports, "
|
|
82
|
+
Object.defineProperty(exports, "singleSelect", {
|
|
75
83
|
enumerable: true,
|
|
76
84
|
get: function get() {
|
|
77
|
-
return
|
|
85
|
+
return _singleSelect.singleSelect;
|
|
78
86
|
}
|
|
79
87
|
});
|
|
80
|
-
Object.defineProperty(exports, "
|
|
88
|
+
Object.defineProperty(exports, "sort", {
|
|
81
89
|
enumerable: true,
|
|
82
90
|
get: function get() {
|
|
83
|
-
return
|
|
91
|
+
return _sortInstanceProperty(_sort);
|
|
84
92
|
}
|
|
85
93
|
});
|
|
86
|
-
Object.defineProperty(exports, "
|
|
94
|
+
Object.defineProperty(exports, "tips", {
|
|
87
95
|
enumerable: true,
|
|
88
96
|
get: function get() {
|
|
89
|
-
return
|
|
97
|
+
return _tips.tips;
|
|
90
98
|
}
|
|
91
99
|
});
|
|
92
|
-
Object.defineProperty(exports, "
|
|
100
|
+
Object.defineProperty(exports, "treeMetaSymbol", {
|
|
93
101
|
enumerable: true,
|
|
94
102
|
get: function get() {
|
|
95
|
-
return
|
|
103
|
+
return _treeMode.treeMetaSymbol;
|
|
96
104
|
}
|
|
97
105
|
});
|
|
98
|
-
Object.defineProperty(exports, "
|
|
106
|
+
Object.defineProperty(exports, "treeMode", {
|
|
99
107
|
enumerable: true,
|
|
100
108
|
get: function get() {
|
|
101
|
-
return
|
|
109
|
+
return _treeMode.treeMode;
|
|
102
110
|
}
|
|
103
111
|
});
|
|
104
|
-
Object.defineProperty(exports, "
|
|
112
|
+
Object.defineProperty(exports, "treeSelect", {
|
|
105
113
|
enumerable: true,
|
|
106
114
|
get: function get() {
|
|
107
|
-
return
|
|
115
|
+
return _treeSelect.treeSelect;
|
|
108
116
|
}
|
|
109
117
|
});
|
|
110
118
|
|
|
@@ -138,4 +146,6 @@ var _columnResizeWidth = require("./columnResizeWidth");
|
|
|
138
146
|
|
|
139
147
|
var _contextMenu = require("./contextMenu");
|
|
140
148
|
|
|
141
|
-
var _columnFilter = require("./columnFilter");
|
|
149
|
+
var _columnFilter = require("./columnFilter");
|
|
150
|
+
|
|
151
|
+
var _rangeSelection = require("./rangeSelection");
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TablePipeline } from '../pipeline';
|
|
2
|
+
export interface RangeSelectionFeatureOptions {
|
|
3
|
+
/** 范围选中回调函数 */
|
|
4
|
+
rangeSelectedChange?(params: any): void;
|
|
5
|
+
/** 是否阻止keydown的默认行为 */
|
|
6
|
+
preventkDefaultOfKeyDownEvent?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const rangeSelectionKey = "rangeSelection";
|
|
9
|
+
export declare const lastClickCell = "lastClickCell";
|
|
10
|
+
export declare function rangeSelection(opts: RangeSelectionFeatureOptions): (pipeline: TablePipeline) => TablePipeline;
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _mapInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/map");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.lastClickCell = void 0;
|
|
11
|
+
exports.rangeSelection = rangeSelection;
|
|
12
|
+
exports.rangeSelectionKey = void 0;
|
|
13
|
+
|
|
14
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/typeof"));
|
|
15
|
+
|
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
17
|
+
|
|
18
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
19
|
+
|
|
20
|
+
var _findIndex = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find-index"));
|
|
21
|
+
|
|
22
|
+
var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
|
|
23
|
+
|
|
24
|
+
var _utils = require("../../utils");
|
|
25
|
+
|
|
26
|
+
var _others = require("../../utils/others");
|
|
27
|
+
|
|
28
|
+
var _rxjs = require("rxjs");
|
|
29
|
+
|
|
30
|
+
var _operators = require("rxjs/operators");
|
|
31
|
+
|
|
32
|
+
var _styles = require("../../base/styles");
|
|
33
|
+
|
|
34
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
35
|
+
|
|
36
|
+
var rangeSelectionKey = 'rangeSelection';
|
|
37
|
+
exports.rangeSelectionKey = rangeSelectionKey;
|
|
38
|
+
var lastClickCell = 'lastClickCell';
|
|
39
|
+
exports.lastClickCell = lastClickCell;
|
|
40
|
+
|
|
41
|
+
function rangeSelection(opts) {
|
|
42
|
+
return function step(pipeline) {
|
|
43
|
+
var SCROLL_SIZE = 30;
|
|
44
|
+
var tableBody = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.tableBody;
|
|
45
|
+
|
|
46
|
+
if (!tableBody) {
|
|
47
|
+
return pipeline;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
var columns = pipeline.getColumns();
|
|
51
|
+
|
|
52
|
+
var rangeSelectedChange = function rangeSelectedChange(rangeSelection) {
|
|
53
|
+
var _a;
|
|
54
|
+
|
|
55
|
+
pipeline.setStateAtKey(rangeSelectionKey, rangeSelection);
|
|
56
|
+
(_a = opts === null || opts === void 0 ? void 0 : opts.rangeSelectedChange) === null || _a === void 0 ? void 0 : _a.call(opts, rangeSelection);
|
|
57
|
+
}; // if (!pipeline.getFeatureOptions(rangeSelectionKey)) {
|
|
58
|
+
// pipeline.setFeatureOptions(rangeSelectionKey, {
|
|
59
|
+
// optionKey: rangeSelectionKey,
|
|
60
|
+
// rangeSelectedChange: rangeSelectedChange
|
|
61
|
+
// })
|
|
62
|
+
// }
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
var setRangeSelection = function setRangeSelection(startDragCell, draggingCell) {
|
|
66
|
+
if (!startDragCell || !draggingCell || isSameCell(startDragCell, draggingCell)) return;
|
|
67
|
+
var rangeColumns = getRangeColumns(startDragCell, draggingCell, columns);
|
|
68
|
+
var isTopToBottom = startDragCell.rowIndex <= draggingCell.rowIndex;
|
|
69
|
+
var rangeSelection = {
|
|
70
|
+
startRow: isTopToBottom ? startDragCell.rowIndex : startDragCell.rowIndex + startDragCell.rowSpan - 1,
|
|
71
|
+
endRow: isTopToBottom ? draggingCell.rowIndex + draggingCell.rowSpan - 1 : draggingCell.rowIndex,
|
|
72
|
+
columns: rangeColumns,
|
|
73
|
+
startColumn: startDragCell.column
|
|
74
|
+
};
|
|
75
|
+
rangeSelectedChange(rangeSelection);
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
var shiftKeySelect = function shiftKeySelect(event) {
|
|
79
|
+
var target = event.target;
|
|
80
|
+
var clickCell = getTargetCell(target, columns);
|
|
81
|
+
|
|
82
|
+
if (clickCell) {
|
|
83
|
+
if (event.shiftKey) {
|
|
84
|
+
var _lastClickCell = pipeline.getStateAtKey(lastClickCell);
|
|
85
|
+
|
|
86
|
+
if (_lastClickCell) {
|
|
87
|
+
setRangeSelection(_lastClickCell, clickCell);
|
|
88
|
+
} else {
|
|
89
|
+
// 第一次进来就按住shift键,这时候要记住点击的单元格
|
|
90
|
+
pipeline.setStateAtKey(lastClickCell, clickCell);
|
|
91
|
+
}
|
|
92
|
+
} else {
|
|
93
|
+
pipeline.setStateAtKey(lastClickCell, clickCell);
|
|
94
|
+
rangeSelectedChange(null);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
var onMouseDown = function onMouseDown(mouseDownEvent) {
|
|
100
|
+
if (mouseDownEvent.button !== 0 || !(0, _utils.isElementInEventPath)(tableBody, mouseDownEvent.nativeEvent)) return; // mouseDownEvent.preventDefault()
|
|
101
|
+
// shift + 点击选中
|
|
102
|
+
|
|
103
|
+
shiftKeySelect(mouseDownEvent);
|
|
104
|
+
var target = mouseDownEvent.target;
|
|
105
|
+
var startDragCell = getTargetCell(target, columns);
|
|
106
|
+
var mousemove$ = (0, _rxjs.fromEvent)(window, 'mousemove');
|
|
107
|
+
var mouseup$ = (0, _rxjs.fromEvent)(window, 'mouseup');
|
|
108
|
+
var tableBodyClientRect = tableBody.getBoundingClientRect();
|
|
109
|
+
|
|
110
|
+
var updateScrollPosition = function updateScrollPosition(client) {
|
|
111
|
+
var clientX = client.clientX,
|
|
112
|
+
clientY = client.clientY;
|
|
113
|
+
var left = tableBodyClientRect.left,
|
|
114
|
+
top = tableBodyClientRect.top,
|
|
115
|
+
height = tableBodyClientRect.height,
|
|
116
|
+
width = tableBodyClientRect.width;
|
|
117
|
+
|
|
118
|
+
if (clientX + SCROLL_SIZE >= left + width) {
|
|
119
|
+
pipeline.ref.current.domHelper.virtual.scrollLeft += SCROLL_SIZE;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (clientX - SCROLL_SIZE <= left) {
|
|
123
|
+
pipeline.ref.current.domHelper.virtual.scrollLeft -= SCROLL_SIZE;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
if (clientY + SCROLL_SIZE >= top + height) {
|
|
127
|
+
pipeline.ref.current.domHelper.tableBody.scrollTop += SCROLL_SIZE;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (clientY + SCROLL_SIZE <= top) {
|
|
131
|
+
pipeline.ref.current.domHelper.tableBody.scrollTop -= SCROLL_SIZE;
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
var rangeSelected$ = mousemove$.pipe((0, _mapInstanceProperty(_operators))(function (mouseMoveEvent) {
|
|
136
|
+
var target = mouseMoveEvent.target || mouseMoveEvent.srcElement;
|
|
137
|
+
var draggingCell = getTargetCell(target, columns);
|
|
138
|
+
var client = {
|
|
139
|
+
clientX: mouseMoveEvent.clientX,
|
|
140
|
+
clientY: mouseMoveEvent.clientY
|
|
141
|
+
};
|
|
142
|
+
updateScrollPosition(client);
|
|
143
|
+
return {
|
|
144
|
+
startDragCell: startDragCell,
|
|
145
|
+
draggingCell: draggingCell
|
|
146
|
+
};
|
|
147
|
+
}), (0, _operators.takeUntil)(mouseup$));
|
|
148
|
+
rangeSelected$.subscribe(function (_ref) {
|
|
149
|
+
var startDragCell = _ref.startDragCell,
|
|
150
|
+
draggingCell = _ref.draggingCell;
|
|
151
|
+
setRangeSelection(startDragCell, draggingCell);
|
|
152
|
+
});
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
var onKeyDown = function onKeyDown(e) {
|
|
156
|
+
if ((e.ctrlKey || e.metaKey) && e.key === 'a') {
|
|
157
|
+
var rowLen = pipeline.getDataSource().length;
|
|
158
|
+
|
|
159
|
+
if (columns.length && rowLen) {
|
|
160
|
+
opts.preventkDefaultOfKeyDownEvent !== false && e.preventDefault();
|
|
161
|
+
rangeSelectedChange({
|
|
162
|
+
startRow: 0,
|
|
163
|
+
endRow: rowLen - 1,
|
|
164
|
+
columns: columns,
|
|
165
|
+
startColumn: columns[0]
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
pipeline.addTableProps({
|
|
172
|
+
onMouseDown: onMouseDown,
|
|
173
|
+
onKeyDown: onKeyDown,
|
|
174
|
+
tabIndex: -1
|
|
175
|
+
}); // todo: 后面可以把mousedown放到一个流里面
|
|
176
|
+
|
|
177
|
+
return pipeline.mapColumns((0, _utils.makeRecursiveMapper)(function (col) {
|
|
178
|
+
var _context;
|
|
179
|
+
|
|
180
|
+
var rangeSelection = pipeline.getStateAtKey(rangeSelectionKey);
|
|
181
|
+
if (!rangeSelection || (0, _findIndex.default)(_context = rangeSelection.columns).call(_context, function (selectedCol) {
|
|
182
|
+
return selectedCol.code === col.code;
|
|
183
|
+
}) === -1) return col;
|
|
184
|
+
var prevGetCellProps = col.getCellProps;
|
|
185
|
+
return (0, _extends2.default)((0, _extends2.default)({}, col), {
|
|
186
|
+
getCellProps: function getCellProps(value, record, rowIndex) {
|
|
187
|
+
var _cx;
|
|
188
|
+
|
|
189
|
+
var prevCellProps = prevGetCellProps === null || prevGetCellProps === void 0 ? void 0 : prevGetCellProps(value, record, rowIndex);
|
|
190
|
+
var startRow = rangeSelection.startRow,
|
|
191
|
+
endRow = rangeSelection.endRow,
|
|
192
|
+
columns = rangeSelection.columns;
|
|
193
|
+
var startIndex = startRow < endRow ? startRow : endRow;
|
|
194
|
+
var endIndex = startRow < endRow ? endRow : startRow;
|
|
195
|
+
var startCol = columns[0];
|
|
196
|
+
var endCol = columns[columns.length - 1];
|
|
197
|
+
var match = rowIndex >= startIndex && rowIndex <= endIndex;
|
|
198
|
+
var className = (0, _classnames.default)((_cx = {}, (0, _defineProperty2.default)(_cx, _styles.Classes.tableCellRangeSelected, match), (0, _defineProperty2.default)(_cx, _styles.Classes.tableCellRangeTop, rowIndex === startIndex), (0, _defineProperty2.default)(_cx, _styles.Classes.tableCellRangeLeft, col.code === startCol.code && match), (0, _defineProperty2.default)(_cx, _styles.Classes.tableCellRangeBottom, rowIndex === endIndex), (0, _defineProperty2.default)(_cx, _styles.Classes.tableCellRangeRight, col.code === endCol.code && match), _cx));
|
|
199
|
+
return (0, _utils.mergeCellProps)(prevCellProps, {
|
|
200
|
+
className: className
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
}));
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
function getTargetCell(target, columns) {
|
|
209
|
+
while (target) {
|
|
210
|
+
if (target.getAttribute('data-role') === 'table-cell') {
|
|
211
|
+
var _ret = function () {
|
|
212
|
+
var columnCode = target.getAttribute('data-code');
|
|
213
|
+
var column = (0, _others.findByTree)(columns, function (item, index) {
|
|
214
|
+
return item.code === columnCode;
|
|
215
|
+
});
|
|
216
|
+
if (!column) return {
|
|
217
|
+
v: null
|
|
218
|
+
};
|
|
219
|
+
return {
|
|
220
|
+
v: {
|
|
221
|
+
rowIndex: parseInt(target.getAttribute('data-rowindex')),
|
|
222
|
+
rowSpan: parseInt(target.getAttribute('rowspan') || 1),
|
|
223
|
+
code: columnCode,
|
|
224
|
+
column: column
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
}();
|
|
228
|
+
|
|
229
|
+
if ((0, _typeof2.default)(_ret) === "object") return _ret.v;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
target = target.parentElement;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
function isSameCell(cell1, cell2) {
|
|
239
|
+
return cell1.rowIndex === cell2.rowIndex && cell1.code === cell2.code;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
function getRangeColumns(startCell, endCell, columns) {
|
|
243
|
+
var flatColumns = (0, _utils.collectNodes)(columns, 'leaf-only');
|
|
244
|
+
var startIndex = (0, _findIndex.default)(flatColumns).call(flatColumns, function (col) {
|
|
245
|
+
return col.code === startCell.code;
|
|
246
|
+
});
|
|
247
|
+
var endIndex = (0, _findIndex.default)(flatColumns).call(flatColumns, function (col) {
|
|
248
|
+
return col.code === endCell.code;
|
|
249
|
+
});
|
|
250
|
+
|
|
251
|
+
if (startIndex < endIndex) {
|
|
252
|
+
return (0, _slice.default)(flatColumns).call(flatColumns, startIndex, endIndex + 1);
|
|
253
|
+
} else {
|
|
254
|
+
return (0, _slice.default)(flatColumns).call(flatColumns, endIndex, startIndex + 1);
|
|
255
|
+
}
|
|
256
|
+
}
|