@kdcloudjs/table 1.2.0-canary.16 → 1.2.0-canary.16-hotfix
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 +2047 -3489
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +16 -16
- package/dist/@kdcloudjs/table.min.js.map +1 -1
- package/es/_utils/arrayUtil.js +0 -3
- package/es/_utils/devwarning.js +0 -1
- package/es/_utils/formatUtil.js +35 -96
- package/es/_utils/hooks.js +18 -42
- package/es/_utils/index.js +0 -2
- package/es/_utils/numberUtil.js +32 -55
- package/es/_utils/omit.js +0 -2
- package/es/_utils/type.js +0 -2
- package/es/_utils/usePopper.js +74 -137
- package/es/config-provider/compDefaultProps.js +0 -1
- package/es/config-provider/configProvider.js +2 -7
- package/es/config-provider/defaultConfig.js +0 -1
- package/es/index.js +0 -2
- package/es/locale/locale.js +5 -43
- package/es/table/base/calculations.js +22 -72
- package/es/table/base/colgroup.js +0 -1
- package/es/table/base/empty.js +4 -4
- package/es/table/base/header.js +14 -67
- package/es/table/base/helpers/SpanManager.js +3 -9
- package/es/table/base/helpers/TableDOMUtils.js +4 -27
- package/es/table/base/helpers/__test__/SpanManager.test.js +2 -2
- package/es/table/base/helpers/__test__/TableDOMUtils.test.js +0 -1
- package/es/table/base/helpers/getRichVisibleRectsStream.js +11 -44
- package/es/table/base/helpers/rowHeightManager.js +0 -28
- package/es/table/base/html-table.js +14 -35
- package/es/table/base/loading.js +6 -8
- package/es/table/base/renderTemplates.js +26 -44
- package/es/table/base/styles.js +0 -9
- package/es/table/base/table.js +95 -181
- package/es/table/base/utils.js +14 -54
- package/es/table/common-views.js +0 -7
- package/es/table/internals.js +0 -13
- package/es/table/pipeline/features/autoFill.js +11 -40
- package/es/table/pipeline/features/autoRowSpan.js +1 -14
- package/es/table/pipeline/features/colGroupExtendable.js +4 -19
- package/es/table/pipeline/features/columnDrag.d.ts +1 -0
- package/es/table/pipeline/features/columnDrag.js +236 -303
- package/es/table/pipeline/features/columnFilter.js +11 -48
- package/es/table/pipeline/features/columnHover.js +1 -7
- package/es/table/pipeline/features/columnRangeHover.js +1 -8
- package/es/table/pipeline/features/columnResizeWidth.js +51 -42
- package/es/table/pipeline/features/contextMenu.js +18 -89
- package/es/table/pipeline/features/filter/DefaultFilterContent.js +10 -25
- package/es/table/pipeline/features/filter/DefaultFilterIcon.js +1 -1
- package/es/table/pipeline/features/filter/Filter.js +25 -48
- package/es/table/pipeline/features/filter/FilterPanel.js +11 -25
- package/es/table/pipeline/features/filter/util.js +0 -4
- package/es/table/pipeline/features/footerDataSource.js +0 -3
- package/es/table/pipeline/features/mergeCellHover.js +0 -1
- package/es/table/pipeline/features/multiSelect.js +15 -57
- package/es/table/pipeline/features/rangeSelection.js +63 -142
- package/es/table/pipeline/features/rowDetail.js +2 -41
- package/es/table/pipeline/features/rowDrag.js +36 -71
- package/es/table/pipeline/features/rowGrouping.js +2 -35
- package/es/table/pipeline/features/singleSelect.js +0 -24
- package/es/table/pipeline/features/sort.js +31 -83
- package/es/table/pipeline/features/tips.js +0 -6
- package/es/table/pipeline/features/treeMode.js +9 -44
- package/es/table/pipeline/features/treeSelect.js +0 -26
- package/es/table/pipeline/features/utils/touchEventUtils.d.ts +15 -0
- package/es/table/pipeline/features/utils/touchEventUtils.js +65 -0
- package/es/table/pipeline/pipeline.js +11 -51
- package/es/table/pivot/cross-table/buildCrossTable.js +15 -64
- package/es/table/pivot/cross-table/cross-table.js +22 -28
- package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +14 -47
- package/es/table/pivot/cross-tree-table/cross-tree-table.js +28 -50
- package/es/table/pivot/pivot-utils/buildDrillTree.js +10 -23
- package/es/table/pivot/pivot-utils/builders.js +31 -71
- package/es/table/pivot/pivot-utils/convert-utils.js +13 -39
- package/es/table/pivot/pivot-utils/simpleEncode.js +0 -1
- package/es/table/transforms/autoRowSpan.js +1 -15
- package/es/table/transforms/autoWidth.js +10 -32
- package/es/table/transforms/buildTree.js +1 -2
- package/es/table/transforms/columnHover.js +9 -15
- package/es/table/transforms/columnRangeHover.js +12 -19
- package/es/table/transforms/columnResize.js +15 -37
- package/es/table/transforms/flatten.js +0 -3
- package/es/table/transforms/orderField.js +0 -3
- package/es/table/transforms/sort.js +36 -88
- package/es/table/transforms/tips.js +1 -6
- package/es/table/transforms/treeMode.js +30 -69
- package/es/table/transforms/visible.js +0 -2
- package/es/table/use/useResizeObserver.js +1 -4
- package/es/table/utils/applyTransforms.js +0 -1
- package/es/table/utils/buildTree.js +4 -19
- package/es/table/utils/collectNodes.js +1 -10
- package/es/table/utils/console.js +0 -14
- package/es/table/utils/copyToClipboard.js +0 -4
- package/es/table/utils/element.js +14 -41
- package/es/table/utils/exportTableAsExcel.js +4 -40
- package/es/table/utils/getTreeDepth.js +1 -9
- package/es/table/utils/groupBy.js +1 -10
- package/es/table/utils/layeredFilter.js +0 -4
- package/es/table/utils/layeredSort.js +0 -5
- package/es/table/utils/makeRecursiveMapper.js +1 -12
- package/es/table/utils/mergeCellProps.js +6 -13
- package/es/table/utils/others.js +3 -16
- package/es/table/utils/proto.js +2 -30
- package/es/table/utils/smartCompare.js +4 -12
- package/es/table/utils/traverseColumn.js +2 -15
- package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +1 -22
- package/es/table/utils/tree-data-helpers/TreeDataHelper.js +15 -69
- package/lib/_utils/arrayUtil.js +0 -5
- package/lib/_utils/devwarning.js +0 -5
- package/lib/_utils/formatUtil.js +35 -100
- package/lib/_utils/hooks.js +18 -53
- package/lib/_utils/index.js +0 -6
- package/lib/_utils/numberUtil.js +32 -63
- package/lib/_utils/omit.js +0 -5
- package/lib/_utils/react-children.js +0 -5
- package/lib/_utils/type.js +0 -6
- package/lib/_utils/usePopper.js +74 -158
- package/lib/config-provider/ConfigContext.js +1 -4
- package/lib/config-provider/compDefaultProps.js +0 -1
- package/lib/config-provider/configProvider.js +3 -18
- package/lib/config-provider/defaultConfig.js +0 -5
- package/lib/config-provider/index.js +0 -6
- package/lib/index.js +2 -8
- package/lib/locale/index.js +0 -7
- package/lib/locale/locale.js +5 -57
- package/lib/table/base/calculations.js +22 -83
- package/lib/table/base/colgroup.js +0 -5
- package/lib/table/base/empty.js +4 -16
- package/lib/table/base/header.js +14 -77
- package/lib/table/base/helpers/SpanManager.js +3 -11
- package/lib/table/base/helpers/TableDOMUtils.js +2 -27
- package/lib/table/base/helpers/__test__/SpanManager.test.js +2 -4
- package/lib/table/base/helpers/__test__/TableDOMUtils.test.js +0 -5
- package/lib/table/base/helpers/__test__/rowHeightManager.test.js +0 -1
- package/lib/table/base/helpers/getRichVisibleRectsStream.js +11 -62
- package/lib/table/base/helpers/rowHeightManager.js +0 -33
- package/lib/table/base/html-table.js +14 -45
- package/lib/table/base/index.js +0 -2
- package/lib/table/base/loading.js +6 -12
- package/lib/table/base/renderTemplates.js +27 -58
- package/lib/table/base/styles.js +0 -21
- package/lib/table/base/table.js +95 -214
- package/lib/table/base/utils.js +14 -89
- package/lib/table/common-views.js +0 -16
- package/lib/table/index.js +0 -13
- package/lib/table/internals.js +0 -14
- package/lib/table/pipeline/features/autoFill.js +11 -47
- package/lib/table/pipeline/features/autoRowSpan.js +1 -19
- package/lib/table/pipeline/features/buildTree.js +0 -2
- package/lib/table/pipeline/features/colGroupExtendable.js +4 -32
- package/lib/table/pipeline/features/columnDrag.d.ts +1 -0
- package/lib/table/pipeline/features/columnDrag.js +236 -309
- package/lib/table/pipeline/features/columnFilter.js +11 -62
- package/lib/table/pipeline/features/columnHover.js +1 -11
- package/lib/table/pipeline/features/columnRangeHover.js +1 -13
- package/lib/table/pipeline/features/columnResizeWidth.js +51 -58
- package/lib/table/pipeline/features/contextMenu.js +18 -113
- package/lib/table/pipeline/features/filter/DefaultFilterContent.js +10 -43
- package/lib/table/pipeline/features/filter/DefaultFilterIcon.js +1 -4
- package/lib/table/pipeline/features/filter/Filter.js +25 -70
- package/lib/table/pipeline/features/filter/FilterPanel.js +11 -40
- package/lib/table/pipeline/features/filter/index.js +0 -5
- package/lib/table/pipeline/features/filter/util.js +0 -7
- package/lib/table/pipeline/features/footerDataSource.js +0 -10
- package/lib/table/pipeline/features/index.js +0 -23
- package/lib/table/pipeline/features/mergeCellHover.js +0 -5
- package/lib/table/pipeline/features/multiSelect.js +15 -71
- package/lib/table/pipeline/features/rangeSelection.js +63 -159
- package/lib/table/pipeline/features/rowDetail.js +2 -65
- package/lib/table/pipeline/features/rowDrag.js +36 -81
- package/lib/table/pipeline/features/rowGrouping.js +2 -55
- package/lib/table/pipeline/features/singleSelect.js +0 -34
- package/lib/table/pipeline/features/sort.js +31 -103
- package/lib/table/pipeline/features/tips.js +0 -15
- package/lib/table/pipeline/features/treeMode.js +9 -65
- package/lib/table/pipeline/features/treeSelect.js +0 -34
- package/lib/table/pipeline/features/utils/touchEventUtils.d.ts +15 -0
- package/lib/table/pipeline/features/utils/touchEventUtils.js +76 -0
- package/lib/table/pipeline/index.js +0 -8
- package/lib/table/pipeline/pipeline.js +11 -60
- package/lib/table/pivot/cross-table/buildCrossTable.js +15 -75
- package/lib/table/pivot/cross-table/cross-table.js +22 -36
- package/lib/table/pivot/cross-table/index.js +0 -4
- package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +14 -60
- package/lib/table/pivot/cross-tree-table/cross-tree-table.js +28 -60
- package/lib/table/pivot/cross-tree-table/index.js +0 -3
- package/lib/table/pivot/pivot-utils/buildDrillTree.js +10 -29
- package/lib/table/pivot/pivot-utils/builders.js +31 -82
- package/lib/table/pivot/pivot-utils/convert-utils.js +13 -57
- package/lib/table/pivot/pivot-utils/index.js +0 -7
- package/lib/table/pivot/pivot-utils/simpleEncode.js +0 -2
- package/lib/table/style/css.js +0 -1
- package/lib/table/style/index.js +0 -1
- package/lib/table/transforms/autoRowSpan.js +1 -21
- package/lib/table/transforms/autoWidth.js +10 -53
- package/lib/table/transforms/buildTree.js +1 -4
- package/lib/table/transforms/columnHover.js +9 -22
- package/lib/table/transforms/columnRangeHover.js +12 -27
- package/lib/table/transforms/columnResize.js +15 -56
- package/lib/table/transforms/flatten.js +0 -5
- package/lib/table/transforms/index.js +0 -12
- package/lib/table/transforms/orderField.js +0 -7
- package/lib/table/transforms/sort.js +36 -112
- package/lib/table/transforms/tips.js +1 -16
- package/lib/table/transforms/treeMode.js +30 -96
- package/lib/table/transforms/visible.js +0 -7
- package/lib/table/transforms/warnTransformsDeprecated.js +0 -4
- package/lib/table/use/useResizeObserver.js +1 -8
- package/lib/table/utils/applyTransforms.js +0 -2
- package/lib/table/utils/buildTree.js +4 -30
- package/lib/table/utils/collectNodes.js +1 -15
- package/lib/table/utils/console.js +0 -16
- package/lib/table/utils/copyToClipboard.js +0 -6
- package/lib/table/utils/element.js +14 -46
- package/lib/table/utils/exportTableAsExcel.js +4 -49
- package/lib/table/utils/getTreeDepth.js +1 -14
- package/lib/table/utils/groupBy.js +1 -14
- package/lib/table/utils/index.js +0 -21
- package/lib/table/utils/isGroupColumn.js +0 -3
- package/lib/table/utils/isLeafNode.js +0 -1
- package/lib/table/utils/layeredFilter.js +0 -10
- package/lib/table/utils/layeredSort.js +0 -10
- package/lib/table/utils/makeRecursiveMapper.js +1 -21
- package/lib/table/utils/mergeCellProps.js +6 -17
- package/lib/table/utils/others.js +3 -31
- package/lib/table/utils/proto.js +2 -33
- package/lib/table/utils/selectColumn.js +0 -1
- package/lib/table/utils/smartCompare.js +4 -13
- package/lib/table/utils/traverseColumn.js +2 -22
- package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +1 -30
- package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +15 -82
- package/package.json +2 -1
|
@@ -19,63 +19,50 @@ export function filter() {
|
|
|
19
19
|
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
20
20
|
return function step(pipeline) {
|
|
21
21
|
var _a, _b;
|
|
22
|
-
|
|
23
22
|
var dataSource = pipeline.getDataSource();
|
|
24
23
|
var columns = pipeline.getColumns();
|
|
25
24
|
var filters = opts.filters,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
25
|
+
defaultFilters = opts.defaultFilters,
|
|
26
|
+
onChangeFilters = opts.onChangeFilters,
|
|
27
|
+
keepDataSource = opts.keepDataSource,
|
|
28
|
+
mode = opts.mode,
|
|
29
|
+
filterIcon = opts.filterIcon,
|
|
30
|
+
stopClickEventPropagation = opts.stopClickEventPropagation,
|
|
31
|
+
stopESCKeyDownEventPropagation = opts.stopESCKeyDownEventPropagation,
|
|
32
|
+
hideFilterPopupHeader = opts.hideFilterPopupHeader,
|
|
33
|
+
getPopupParent = opts.getPopupParent;
|
|
35
34
|
var inputFilters = (_b = (_a = filters !== null && filters !== void 0 ? filters : pipeline.getStateAtKey(stateKey)) !== null && _a !== void 0 ? _a : defaultFilters) !== null && _b !== void 0 ? _b : [];
|
|
36
35
|
inputFilters = mode === 'single' ? _sliceInstanceProperty(inputFilters).call(inputFilters, 0, 1) : inputFilters;
|
|
37
36
|
var inputFiltersMap = new _Map(_mapInstanceProperty(inputFilters).call(inputFilters, function (filterItem) {
|
|
38
37
|
return [filterItem.code, _extends({}, filterItem)];
|
|
39
38
|
}));
|
|
40
39
|
var localeText = pipeline.ctx.localeText;
|
|
41
|
-
|
|
42
40
|
function processColumns(columns) {
|
|
43
41
|
return _mapInstanceProperty(columns).call(columns, dfs);
|
|
44
|
-
|
|
45
42
|
function dfs(col) {
|
|
46
43
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
47
|
-
|
|
48
44
|
var result = _extends({}, col);
|
|
49
|
-
|
|
50
45
|
var filterable = col.code && ((_a = col.features) === null || _a === void 0 ? void 0 : _a.filterable);
|
|
51
46
|
var filterActive = filterable && ((_c = (_b = inputFiltersMap === null || inputFiltersMap === void 0 ? void 0 : inputFiltersMap.get(col.code)) === null || _b === void 0 ? void 0 : _filterInstanceProperty(_b)) === null || _c === void 0 ? void 0 : _c.length) > 0;
|
|
52
|
-
|
|
53
47
|
if (filterable) {
|
|
54
48
|
var _cx;
|
|
55
|
-
|
|
56
49
|
var handleFilterChanged = function handleFilterChanged(filterItem) {
|
|
57
50
|
var nextFiltersMap = new _Map(inputFiltersMap);
|
|
58
|
-
|
|
59
51
|
var currentFilter = _extends({
|
|
60
52
|
code: col.code
|
|
61
53
|
}, filterItem);
|
|
62
|
-
|
|
63
54
|
if (filterItem == null) {
|
|
64
55
|
nextFiltersMap.delete(col.code);
|
|
65
56
|
} else {
|
|
66
57
|
if (mode === 'single') {
|
|
67
58
|
nextFiltersMap.clear();
|
|
68
59
|
}
|
|
69
|
-
|
|
70
60
|
nextFiltersMap.set(col.code, currentFilter);
|
|
71
61
|
}
|
|
72
|
-
|
|
73
62
|
var nextFilters = _Array$from(_valuesInstanceProperty(nextFiltersMap).call(nextFiltersMap));
|
|
74
|
-
|
|
75
63
|
onChangeFilters === null || onChangeFilters === void 0 ? void 0 : onChangeFilters(nextFilters, currentFilter);
|
|
76
64
|
pipeline.setStateAtKey(stateKey, nextFilters);
|
|
77
65
|
};
|
|
78
|
-
|
|
79
66
|
var setFilter = function setFilter(filter, filterCondition) {
|
|
80
67
|
handleFilterChanged(!filter ? undefined : {
|
|
81
68
|
code: col.code,
|
|
@@ -83,10 +70,8 @@ export function filter() {
|
|
|
83
70
|
filterCondition: filterCondition
|
|
84
71
|
});
|
|
85
72
|
};
|
|
86
|
-
|
|
87
73
|
var filterPanel = (_d = col.features) === null || _d === void 0 ? void 0 : _d.filterPanel;
|
|
88
74
|
var colFilterIcon = (_f = (_e = col.features) === null || _e === void 0 ? void 0 : _e.filterIcon) !== null && _f !== void 0 ? _f : filterIcon;
|
|
89
|
-
|
|
90
75
|
var _Filter = /*#__PURE__*/React.createElement(Filter, {
|
|
91
76
|
key: "".concat(col.code, "_filter"),
|
|
92
77
|
FilterPanelContent: filterPanel,
|
|
@@ -102,47 +87,38 @@ export function filter() {
|
|
|
102
87
|
getPopupParent: getPopupParent,
|
|
103
88
|
localeText: localeText
|
|
104
89
|
});
|
|
105
|
-
|
|
106
90
|
if (col.renderHeader) {
|
|
107
91
|
result.title = col.renderHeader(result.title, _Filter);
|
|
108
92
|
} else {
|
|
109
93
|
var _context, _context2;
|
|
110
|
-
|
|
111
94
|
result.title = _concatInstanceProperty(_context = []).call(_context, _toConsumableArray(_concatInstanceProperty(_context2 = []).call(_context2, (_g = result.title) !== null && _g !== void 0 ? _g : [internals.safeRenderHeader(_extends({}, col))])), [_Filter]);
|
|
112
|
-
}
|
|
95
|
+
}
|
|
96
|
+
// result.headerCellProps = mergeCellProps(col.headerCellProps, {
|
|
113
97
|
// style: {
|
|
114
98
|
// paddingRight: '18px'
|
|
115
99
|
// }
|
|
116
100
|
// })
|
|
117
|
-
|
|
118
101
|
}
|
|
119
102
|
|
|
120
103
|
if (!isLeafNode(col)) {
|
|
121
104
|
var _context3;
|
|
122
|
-
|
|
123
105
|
result.children = _mapInstanceProperty(_context3 = col.children).call(_context3, dfs);
|
|
124
106
|
}
|
|
125
|
-
|
|
126
107
|
return result;
|
|
127
108
|
}
|
|
128
109
|
}
|
|
129
|
-
|
|
130
110
|
function processDataSource(dataSource) {
|
|
131
111
|
var _context4, _context5;
|
|
132
|
-
|
|
133
112
|
var filtersKeys = [];
|
|
134
113
|
inputFiltersMap.forEach(function (value, key) {
|
|
135
114
|
filtersKeys.push(key);
|
|
136
115
|
});
|
|
137
|
-
|
|
138
116
|
if (keepDataSource || filtersKeys.length <= 0) {
|
|
139
117
|
return dataSource;
|
|
140
118
|
}
|
|
141
|
-
|
|
142
119
|
var columns = pipeline.getColumns();
|
|
143
120
|
var columnsMap = new _Map(_mapInstanceProperty(_context4 = _filterInstanceProperty(_context5 = collectNodes(columns, 'leaf-only')).call(_context5, function (col) {
|
|
144
121
|
var _a, _b;
|
|
145
|
-
|
|
146
122
|
return ((_a = col.features) === null || _a === void 0 ? void 0 : _a.filterable) !== false && ((_b = col.features) === null || _b === void 0 ? void 0 : _b.filterable) != null;
|
|
147
123
|
})).call(_context4, function (col) {
|
|
148
124
|
return [col.code, col];
|
|
@@ -150,15 +126,12 @@ export function filter() {
|
|
|
150
126
|
var defaultFilterOptionsMap = new _Map(_mapInstanceProperty(DEFAULT_FILTER_OPTIONS).call(DEFAULT_FILTER_OPTIONS, function (item) {
|
|
151
127
|
return [item.key, _extends({}, item)];
|
|
152
128
|
}));
|
|
153
|
-
|
|
154
129
|
function isMatchedFilterCondition(record) {
|
|
155
130
|
return filtersKeys.every(function (key) {
|
|
156
131
|
var _a, _b;
|
|
157
|
-
|
|
158
132
|
var filterItem = inputFiltersMap.get(key);
|
|
159
133
|
var filterable = (_b = (_a = columnsMap.get(key)) === null || _a === void 0 ? void 0 : _a.features) === null || _b === void 0 ? void 0 : _b.filterable;
|
|
160
134
|
var comparisonFn;
|
|
161
|
-
|
|
162
135
|
if (typeof filterable === 'function') {
|
|
163
136
|
comparisonFn = filterable;
|
|
164
137
|
} else if (defaultFilterOptionsMap.get(filterItem.filterCondition)) {
|
|
@@ -167,40 +140,30 @@ export function filter() {
|
|
|
167
140
|
console.warn("\u5217[".concat(key, "]\u672A\u914D\u7F6E\u7B5B\u9009\u51FD\u6570\uFF0C\u8BF7\u8BBE\u7F6E column.features.filterable \u6765\u4F5C\u4E3A\u8BE5\u5217\u7684\u7B5B\u9009\u51FD\u6570, \u76EE\u524D\u4F7F\u7528\u9ED8\u8BA4\u5305\u542B\u7B5B\u9009\u51FD\u6570"));
|
|
168
141
|
comparisonFn = _filterInstanceProperty(defaultFilterOptionsMap.get('contain'));
|
|
169
142
|
}
|
|
170
|
-
|
|
171
143
|
return comparisonFn(_filterInstanceProperty(filterItem), filterItem)(internals.safeGetValue(columnsMap.get(key), record, -1), record);
|
|
172
144
|
});
|
|
173
145
|
}
|
|
174
|
-
|
|
175
146
|
return layeredFilter(dataSource, isMatchedFilterCondition);
|
|
176
147
|
}
|
|
177
|
-
|
|
178
148
|
pipeline.dataSource(processDataSource(dataSource));
|
|
179
149
|
pipeline.columns(processColumns(columns));
|
|
180
150
|
return pipeline;
|
|
181
151
|
};
|
|
182
152
|
}
|
|
183
|
-
|
|
184
153
|
function layeredFilter(array, matchFn) {
|
|
185
154
|
return dfs(array);
|
|
186
|
-
|
|
187
155
|
function dfs(rows) {
|
|
188
156
|
var _context6;
|
|
189
|
-
|
|
190
157
|
var parentMatched = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
191
158
|
return _filterInstanceProperty(_context6 = _mapInstanceProperty(rows).call(rows, function (row) {
|
|
192
159
|
var currentMatched = matchFn(row);
|
|
193
|
-
|
|
194
160
|
if (isLeafNode(row)) {
|
|
195
161
|
return (parentMatched || currentMatched) && _extends({}, row);
|
|
196
162
|
}
|
|
197
|
-
|
|
198
163
|
var children = row.children;
|
|
199
|
-
|
|
200
164
|
var rowAfterFilterChildren = _extends(_extends({}, row), {
|
|
201
165
|
children: dfs(children, parentMatched || currentMatched)
|
|
202
166
|
});
|
|
203
|
-
|
|
204
167
|
var matchedByChildren = !isLeafNode(rowAfterFilterChildren);
|
|
205
168
|
return (parentMatched || currentMatched || matchedByChildren) && rowAfterFilterChildren;
|
|
206
169
|
})).call(_context6, Boolean);
|
|
@@ -5,29 +5,23 @@ export function columnHover() {
|
|
|
5
5
|
var stateKey = 'columnHover';
|
|
6
6
|
return function (pipeline) {
|
|
7
7
|
var _a, _b, _c, _d;
|
|
8
|
-
|
|
9
8
|
var hoverColor = (_a = opts.hoverColor) !== null && _a !== void 0 ? _a : 'var(--hover-bgcolor)';
|
|
10
9
|
var hoverColIndex = (_d = (_c = (_b = opts.hoverColIndex) !== null && _b !== void 0 ? _b : pipeline.getStateAtKey(stateKey)) !== null && _c !== void 0 ? _c : opts.defaultHoverColIndex) !== null && _d !== void 0 ? _d : -1;
|
|
11
|
-
|
|
12
10
|
var onChangeHoverColIndex = function onChangeHoverColIndex(nextColIndex) {
|
|
13
11
|
var _a;
|
|
14
|
-
|
|
15
12
|
pipeline.setStateAtKey(stateKey, nextColIndex);
|
|
16
13
|
(_a = opts.onChangeHoverColIndex) === null || _a === void 0 ? void 0 : _a.call(opts, nextColIndex);
|
|
17
14
|
};
|
|
18
|
-
|
|
19
15
|
return pipeline.mapColumns(makeRecursiveMapper(function (col, _ref) {
|
|
20
16
|
var startIndex = _ref.startIndex,
|
|
21
|
-
|
|
17
|
+
endIndex = _ref.endIndex;
|
|
22
18
|
var range = {
|
|
23
19
|
start: startIndex,
|
|
24
20
|
end: endIndex
|
|
25
21
|
};
|
|
26
|
-
|
|
27
22
|
if (!isLeafNode(col)) {
|
|
28
23
|
return col;
|
|
29
24
|
}
|
|
30
|
-
|
|
31
25
|
var colIndexMatched = range.start <= hoverColIndex && hoverColIndex < range.end;
|
|
32
26
|
var prevGetCellProps = col.getCellProps;
|
|
33
27
|
return _extends(_extends({}, col), {
|
|
@@ -9,32 +9,26 @@ export function columnRangeHover() {
|
|
|
9
9
|
var stateKey = 'columnHover';
|
|
10
10
|
return function columnRangeHoverStep(pipeline) {
|
|
11
11
|
var _a, _b, _c, _d, _e;
|
|
12
|
-
|
|
13
12
|
var hoverRange = (_c = (_b = (_a = opts.hoverRange) !== null && _a !== void 0 ? _a : pipeline.getStateAtKey(stateKey)) !== null && _b !== void 0 ? _b : opts.defaultHoverRange) !== null && _c !== void 0 ? _c : EMPTY_RANGE;
|
|
14
13
|
var hoverColor = (_d = opts.hoverColor) !== null && _d !== void 0 ? _d : 'var(--hover-bgcolor)';
|
|
15
14
|
var headerHoverColor = (_e = opts.headerHoverColor) !== null && _e !== void 0 ? _e : 'var(--header-hover-bgcolor)';
|
|
16
|
-
|
|
17
15
|
var onChangeHoverRange = function onChangeHoverRange(nextColIndexRange) {
|
|
18
16
|
var _a;
|
|
19
|
-
|
|
20
17
|
pipeline.setStateAtKey(stateKey, nextColIndexRange);
|
|
21
18
|
(_a = opts.onChangeHoverRange) === null || _a === void 0 ? void 0 : _a.call(opts, nextColIndexRange);
|
|
22
19
|
};
|
|
23
|
-
|
|
24
20
|
return pipeline.mapColumns(makeRecursiveMapper(function (col, _ref) {
|
|
25
21
|
var startIndex = _ref.startIndex,
|
|
26
|
-
|
|
22
|
+
endIndex = _ref.endIndex;
|
|
27
23
|
var colRange = {
|
|
28
24
|
start: startIndex,
|
|
29
25
|
end: endIndex
|
|
30
26
|
};
|
|
31
27
|
var match = colRange.end > hoverRange.start && hoverRange.end > colRange.start;
|
|
32
|
-
|
|
33
28
|
if (!isLeafNode(col)) {
|
|
34
29
|
if (headerHoverColor == null) {
|
|
35
30
|
return col;
|
|
36
31
|
}
|
|
37
|
-
|
|
38
32
|
return _extends(_extends({}, col), {
|
|
39
33
|
headerCellProps: mergeCellProps(col.headerCellProps, {
|
|
40
34
|
onMouseEnter: function onMouseEnter() {
|
|
@@ -49,7 +43,6 @@ export function columnRangeHover() {
|
|
|
49
43
|
})
|
|
50
44
|
});
|
|
51
45
|
}
|
|
52
|
-
|
|
53
46
|
var prevGetCellProps = col.getCellProps;
|
|
54
47
|
return _extends(_extends({}, col), {
|
|
55
48
|
headerCellProps: mergeCellProps(col.headerCellProps, {
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime-corejs3/helpers/extends";
|
|
2
2
|
import _taggedTemplateLiteral from "@babel/runtime-corejs3/helpers/taggedTemplateLiteral";
|
|
3
|
-
|
|
4
3
|
var _templateObject, _templateObject2;
|
|
5
|
-
|
|
6
4
|
import _Set from "@babel/runtime-corejs3/core-js-stable/set";
|
|
7
5
|
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
|
8
6
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
@@ -13,40 +11,34 @@ import * as op from 'rxjs/operators';
|
|
|
13
11
|
import { mergeCellProps, collectNodes, makeRecursiveMapper, isGroupColumn } from '../../utils';
|
|
14
12
|
import { internals } from '../../internals';
|
|
15
13
|
import { Classes } from '../../base/styles';
|
|
14
|
+
import { getEventCoordinates } from './utils/touchEventUtils';
|
|
16
15
|
var TableHeaderCellResize = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\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"])));
|
|
17
16
|
var TableHeaderGroupCellResize = styled(function (props) {
|
|
18
17
|
return /*#__PURE__*/React.createElement(TableHeaderCellResize, _extends({}, props));
|
|
19
18
|
})(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n &:after {\n height: 100%;\n top: 0;\n }\n"])));
|
|
20
|
-
|
|
21
19
|
function clamp(min, x, max) {
|
|
22
20
|
return Math.max(min, Math.min(max, x));
|
|
23
21
|
}
|
|
24
|
-
|
|
25
22
|
function disableSelect(event) {
|
|
26
23
|
event.preventDefault();
|
|
27
24
|
}
|
|
28
|
-
|
|
29
25
|
var stateKey = 'columnResize';
|
|
30
26
|
export var COLUMN_SIZE_KEY = 'columnResize';
|
|
31
27
|
export var RESIZED_COLUMN_KEY = 'resizedColumn';
|
|
32
28
|
export var LAST_RESIZED_COLUMN_KEY = 'lastResizedColumn';
|
|
33
29
|
export function columnResize() {
|
|
34
30
|
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
35
|
-
|
|
36
31
|
var _a, _b, _c;
|
|
37
|
-
|
|
38
32
|
var minSize = (_a = opts.minSize) !== null && _a !== void 0 ? _a : 60;
|
|
39
33
|
var fallbackSize = (_b = opts.fallbackSize) !== null && _b !== void 0 ? _b : 150;
|
|
40
34
|
var maxSize = (_c = opts.maxSize) !== null && _c !== void 0 ? _c : 1000;
|
|
41
35
|
return function columnResizeFeature(pipeline) {
|
|
42
36
|
var _a, _b;
|
|
43
|
-
|
|
44
37
|
var columnSize = (_b = (_a = opts.columnSize) !== null && _a !== void 0 ? _a : pipeline.getStateAtKey(stateKey)) !== null && _b !== void 0 ? _b : {};
|
|
45
38
|
var leafColumns = collectNodes(pipeline.getColumns(), 'leaf-only');
|
|
46
39
|
leafColumns.forEach(function (_ref) {
|
|
47
40
|
var code = _ref.code,
|
|
48
|
-
|
|
49
|
-
|
|
41
|
+
width = _ref.width;
|
|
50
42
|
if (columnSize[code] === undefined) {
|
|
51
43
|
if (typeof width === 'number') {
|
|
52
44
|
columnSize[code] = width;
|
|
@@ -54,49 +46,56 @@ export function columnResize() {
|
|
|
54
46
|
columnSize[code] = fallbackSize;
|
|
55
47
|
}
|
|
56
48
|
}
|
|
57
|
-
});
|
|
49
|
+
});
|
|
50
|
+
// 实时存储一份最新的columnSize,与autoFill共用一份数据
|
|
58
51
|
// 存在state里可能存到取不到最新的
|
|
59
|
-
|
|
60
52
|
pipeline.setFeatureOptions(COLUMN_SIZE_KEY, columnSize);
|
|
61
|
-
|
|
62
53
|
var onChangeSize = function onChangeSize(nextColumnSize) {
|
|
63
54
|
window.requestAnimationFrame(function () {
|
|
64
55
|
var _a;
|
|
65
|
-
|
|
66
56
|
pipeline.setStateAtKey(stateKey, nextColumnSize);
|
|
67
57
|
(_a = opts === null || opts === void 0 ? void 0 : opts.onChangeSize) === null || _a === void 0 ? void 0 : _a.call(opts, nextColumnSize);
|
|
68
58
|
});
|
|
69
59
|
};
|
|
70
|
-
|
|
71
60
|
var handleDoubleClick = function handleDoubleClick(e, col) {
|
|
72
61
|
var _a;
|
|
73
|
-
|
|
74
62
|
(_a = opts.doubleClickCallback) === null || _a === void 0 ? void 0 : _a.call(opts, e, col);
|
|
75
63
|
};
|
|
76
|
-
|
|
77
|
-
var
|
|
64
|
+
// 通用的拖拽处理逻辑
|
|
65
|
+
var handleResize = function handleResize(startEvent, col, eventType) {
|
|
78
66
|
window.addEventListener('selectstart', disableSelect);
|
|
79
67
|
var changedColumnSize = {};
|
|
80
|
-
var
|
|
68
|
+
var startCoordinates = getEventCoordinates(startEvent);
|
|
69
|
+
var startX = startCoordinates.clientX;
|
|
81
70
|
var children = col.children,
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
71
|
+
code = col.code,
|
|
72
|
+
_col$features = col.features,
|
|
73
|
+
features = _col$features === void 0 ? {} : _col$features;
|
|
85
74
|
var minWidth = features.minWidth,
|
|
86
|
-
|
|
75
|
+
maxWidth = features.maxWidth;
|
|
87
76
|
var realMinSize = typeof minWidth === 'number' ? minWidth : minSize;
|
|
88
77
|
var realMaxSize = typeof maxWidth === 'number' ? maxWidth : maxSize;
|
|
89
78
|
var columnSize = pipeline.getFeatureOptions(COLUMN_SIZE_KEY);
|
|
90
79
|
var recordColumnSize = columnSize;
|
|
91
|
-
|
|
92
|
-
var
|
|
93
|
-
|
|
94
|
-
|
|
80
|
+
// 根据事件类型选择不同的事件监听器
|
|
81
|
+
var moveEventName = eventType === 'mouse' ? 'mousemove' : 'touchmove';
|
|
82
|
+
var endEventName = eventType === 'mouse' ? 'mouseup' : 'touchend';
|
|
83
|
+
var moveEventOptions = eventType === 'touch' ? {
|
|
84
|
+
passive: false
|
|
85
|
+
} : undefined;
|
|
86
|
+
var endEventOptions = eventType === 'touch' ? {
|
|
87
|
+
passive: false
|
|
88
|
+
} : undefined;
|
|
89
|
+
var nextSize$ = fromEvent(window, moveEventName, moveEventOptions).pipe(op.takeUntil(fromEvent(window, endEventName, endEventOptions)), op.map(function (e) {
|
|
90
|
+
// 触摸事件需要阻止默认行为,防止页面滚动
|
|
91
|
+
if (eventType === 'touch' && e.cancelable) {
|
|
92
|
+
e.preventDefault();
|
|
93
|
+
}
|
|
94
|
+
var coordinates = getEventCoordinates(e);
|
|
95
|
+
var movingX = coordinates.clientX;
|
|
95
96
|
var nextColumnSize = _extends({}, columnSize);
|
|
96
|
-
|
|
97
97
|
var deltaSum = movingX - startX;
|
|
98
98
|
var deltaRemaining = deltaSum;
|
|
99
|
-
|
|
100
99
|
if ((children === null || children === void 0 ? void 0 : children.length) > 0) {
|
|
101
100
|
var leafChildColumns = collectNodes(children, 'leaf-only');
|
|
102
101
|
var childrenWidthSum = leafChildColumns.reduce(function (sum, _ref2) {
|
|
@@ -107,7 +106,6 @@ export function columnResize() {
|
|
|
107
106
|
var code = _ref3.code;
|
|
108
107
|
var startSize = columnSize[code];
|
|
109
108
|
var currentDeltaWidth = Math.round(deltaSum * startSize / childrenWidthSum);
|
|
110
|
-
|
|
111
109
|
if (index < leafChildColumns.length - 1) {
|
|
112
110
|
nextColumnSize[code] = clamp(realMinSize, startSize + currentDeltaWidth, realMaxSize);
|
|
113
111
|
changedColumnSize[code] = nextColumnSize[code];
|
|
@@ -122,51 +120,56 @@ export function columnResize() {
|
|
|
122
120
|
nextColumnSize[code] = clamp(realMinSize, startSize + deltaSum, realMaxSize);
|
|
123
121
|
changedColumnSize[code] = nextColumnSize[code];
|
|
124
122
|
}
|
|
125
|
-
|
|
126
123
|
recordColumnSize = nextColumnSize;
|
|
127
124
|
return nextColumnSize;
|
|
128
125
|
}));
|
|
129
126
|
nextSize$.subscribe({
|
|
130
127
|
next: function next(nextColumnSize) {
|
|
131
|
-
onChangeSize(nextColumnSize);
|
|
132
|
-
|
|
128
|
+
onChangeSize(nextColumnSize);
|
|
129
|
+
// 由于COLUMN_RESIZE_KEY记录的是全量的列宽,此处记录被改变过的列宽
|
|
133
130
|
var resizedColumnSet = pipeline.getFeatureOptions(RESIZED_COLUMN_KEY) || new _Set();
|
|
134
|
-
|
|
135
131
|
_Object$keys(changedColumnSize).forEach(function (code) {
|
|
136
132
|
resizedColumnSet.add(code, changedColumnSize[code]);
|
|
137
133
|
});
|
|
138
|
-
|
|
139
134
|
pipeline.setFeatureOptions(RESIZED_COLUMN_KEY, resizedColumnSet);
|
|
140
135
|
pipeline.setFeatureOptions(LAST_RESIZED_COLUMN_KEY, code);
|
|
141
136
|
},
|
|
142
137
|
complete: function complete() {
|
|
143
138
|
var _context;
|
|
144
|
-
|
|
145
139
|
var changedColumnSizes = _mapInstanceProperty(_context = _Object$keys(changedColumnSize)).call(_context, function (code) {
|
|
146
140
|
return {
|
|
147
141
|
code: code,
|
|
148
142
|
width: changedColumnSize[code]
|
|
149
143
|
};
|
|
150
144
|
});
|
|
151
|
-
|
|
152
145
|
window.requestAnimationFrame(function () {
|
|
153
146
|
var _a;
|
|
154
|
-
|
|
155
147
|
(_a = opts === null || opts === void 0 ? void 0 : opts.afterChangeSize) === null || _a === void 0 ? void 0 : _a.call(opts, recordColumnSize, changedColumnSizes);
|
|
156
148
|
});
|
|
157
149
|
window.removeEventListener('selectstart', disableSelect);
|
|
158
150
|
}
|
|
159
151
|
});
|
|
160
152
|
};
|
|
161
|
-
|
|
153
|
+
var handleMouseDown = function handleMouseDown(e, col) {
|
|
154
|
+
e.stopPropagation();
|
|
155
|
+
handleResize(e.nativeEvent, col, 'mouse');
|
|
156
|
+
};
|
|
157
|
+
// 触摸事件处理函数
|
|
158
|
+
var handleTouchStart = function handleTouchStart(e, col) {
|
|
159
|
+
// 阻止触摸事件的默认行为
|
|
160
|
+
if (e.cancelable) {
|
|
161
|
+
e.preventDefault();
|
|
162
|
+
}
|
|
163
|
+
e.stopPropagation();
|
|
164
|
+
handleResize(e.nativeEvent, col, 'touch');
|
|
165
|
+
};
|
|
162
166
|
var isGroup = isGroupColumn(pipeline.getColumns());
|
|
163
167
|
return pipeline.mapColumns(makeRecursiveMapper(function (col) {
|
|
164
168
|
var _a;
|
|
165
|
-
|
|
166
169
|
var prevTitle = internals.safeRenderHeader(col);
|
|
167
170
|
var code = col.code,
|
|
168
|
-
|
|
169
|
-
|
|
171
|
+
features = col.features,
|
|
172
|
+
width = col.width;
|
|
170
173
|
return _extends(_extends({}, col), {
|
|
171
174
|
width: (_a = columnSize[code]) !== null && _a !== void 0 ? _a : width,
|
|
172
175
|
title: /*#__PURE__*/React.createElement(React.Fragment, null, prevTitle, (features === null || features === void 0 ? void 0 : features.resizeable) !== false && (isGroup ? /*#__PURE__*/React.createElement(TableHeaderGroupCellResize, {
|
|
@@ -176,6 +179,9 @@ export function columnResize() {
|
|
|
176
179
|
},
|
|
177
180
|
onMouseDown: function onMouseDown(e) {
|
|
178
181
|
return handleMouseDown(e, col);
|
|
182
|
+
},
|
|
183
|
+
onTouchStart: function onTouchStart(e) {
|
|
184
|
+
return handleTouchStart(e, col);
|
|
179
185
|
}
|
|
180
186
|
}) : /*#__PURE__*/React.createElement(TableHeaderCellResize, {
|
|
181
187
|
className: Classes.tableHeaderCellResize,
|
|
@@ -184,6 +190,9 @@ export function columnResize() {
|
|
|
184
190
|
},
|
|
185
191
|
onMouseDown: function onMouseDown(e) {
|
|
186
192
|
return handleMouseDown(e, col);
|
|
193
|
+
},
|
|
194
|
+
onTouchStart: function onTouchStart(e) {
|
|
195
|
+
return handleTouchStart(e, col);
|
|
187
196
|
}
|
|
188
197
|
}))),
|
|
189
198
|
headerCellProps: mergeCellProps(col.headerCellProps, {
|