@kdcloudjs/table 1.2.1-canary.6 → 1.2.1-canary.6-hotfix.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/CHANGELOG.md +0 -0
- package/dist/@kdcloudjs/table.css +1 -1
- package/dist/@kdcloudjs/table.js +4847 -6022
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +16 -24
- 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 +36 -101
- package/es/_utils/hooks.js +21 -45
- 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 +84 -147
- 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 +11 -50
- package/es/table/base/calculations.js +25 -75
- package/es/table/base/colgroup.js +0 -1
- package/es/table/base/empty.js +6 -6
- package/es/table/base/header.js +30 -81
- package/es/table/base/helpers/SpanManager.js +4 -11
- package/es/table/base/helpers/TableDOMUtils.js +9 -34
- package/es/table/base/helpers/__test__/SpanManager.test.js +2 -2
- package/es/table/base/helpers/__test__/TableDOMUtils.test.js +2 -3
- package/es/table/base/helpers/getRichVisibleRectsStream.js +13 -45
- package/es/table/base/helpers/rowHeightManager.js +0 -28
- package/es/table/base/html-table.js +17 -39
- package/es/table/base/loading.js +8 -10
- package/es/table/base/renderTemplates.js +42 -60
- package/es/table/base/styles.js +0 -9
- package/es/table/base/table.js +110 -199
- package/es/table/base/utils.js +17 -57
- package/es/table/common-views.js +0 -7
- package/es/table/interfaces.d.ts +2 -0
- package/es/table/internals.d.ts +2 -1
- 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.js +41 -97
- package/es/table/pipeline/features/columnFilter.js +12 -51
- 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 +13 -39
- package/es/table/pipeline/features/contextMenu.js +22 -95
- package/es/table/pipeline/features/filter/DefaultFilterContent.js +14 -30
- package/es/table/pipeline/features/filter/DefaultFilterIcon.js +1 -1
- package/es/table/pipeline/features/filter/Filter.js +27 -51
- 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 +73 -152
- package/es/table/pipeline/features/rowDetail.js +6 -43
- package/es/table/pipeline/features/rowDrag.js +39 -78
- package/es/table/pipeline/features/rowGrouping.js +10 -42
- package/es/table/pipeline/features/singleSelect.js +0 -24
- package/es/table/pipeline/features/sort.js +37 -90
- package/es/table/pipeline/features/tips.js +4 -10
- package/es/table/pipeline/features/treeMode.js +14 -49
- package/es/table/pipeline/features/treeSelect.js +2 -28
- package/es/table/pipeline/pipeline.js +12 -53
- package/es/table/pivot/cross-table/buildCrossTable.js +21 -72
- package/es/table/pivot/cross-table/cross-table.js +23 -31
- package/es/table/pivot/cross-table/interfaces.d.ts +1 -1
- package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +22 -57
- package/es/table/pivot/cross-tree-table/cross-tree-table.js +36 -61
- package/es/table/pivot/pivot-utils/buildDrillTree.js +10 -23
- package/es/table/pivot/pivot-utils/builders.js +34 -74
- package/es/table/pivot/pivot-utils/convert-utils.js +16 -42
- package/es/table/pivot/pivot-utils/simpleEncode.js +0 -1
- package/es/table/transforms/autoRowSpan.js +1 -15
- package/es/table/transforms/autoWidth.js +13 -35
- 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 +18 -42
- package/es/table/transforms/flatten.js +0 -3
- package/es/table/transforms/orderField.js +0 -3
- package/es/table/transforms/sort.d.ts +1 -0
- package/es/table/transforms/sort.js +42 -96
- package/es/table/transforms/tips.js +5 -10
- package/es/table/transforms/treeMode.js +39 -80
- 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/browserType.js +12 -19
- package/es/table/utils/buildTree.js +7 -22
- package/es/table/utils/collectNodes.js +4 -13
- 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 +7 -43
- package/es/table/utils/getTreeDepth.js +8 -13
- package/es/table/utils/groupBy.js +4 -13
- package/es/table/utils/layeredFilter.js +0 -4
- package/es/table/utils/layeredSort.js +0 -5
- package/es/table/utils/makeRecursiveMapper.js +4 -15
- package/es/table/utils/mergeCellProps.js +6 -14
- package/es/table/utils/others.js +6 -19
- package/es/table/utils/proto.js +2 -30
- package/es/table/utils/smartCompare.js +4 -12
- package/es/table/utils/traverseColumn.js +5 -18
- package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +8 -30
- package/es/table/utils/tree-data-helpers/TreeDataHelper.js +19 -74
- package/es/table/utils/uiDegrade.js +0 -5
- package/lib/_utils/arrayUtil.js +2 -8
- package/lib/_utils/devwarning.js +0 -5
- package/lib/_utils/formatUtil.js +36 -105
- package/lib/_utils/hooks.js +21 -56
- package/lib/_utils/index.js +2 -9
- 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 +3 -11
- package/lib/_utils/usePopper.js +88 -176
- package/lib/config-provider/ConfigContext.js +2 -6
- package/lib/config-provider/compDefaultProps.js +1 -3
- package/lib/config-provider/configProvider.js +5 -22
- package/lib/config-provider/defaultConfig.js +1 -7
- package/lib/config-provider/index.js +1 -8
- package/lib/index.js +2 -8
- package/lib/locale/index.js +2 -11
- package/lib/locale/locale.js +15 -71
- package/lib/locale/zh-CN.js +1 -2
- package/lib/table/base/calculations.js +25 -86
- package/lib/table/base/colgroup.js +0 -5
- package/lib/table/base/empty.js +7 -20
- package/lib/table/base/header.js +30 -91
- package/lib/table/base/helpers/SpanManager.js +6 -16
- package/lib/table/base/helpers/TableDOMUtils.js +9 -37
- package/lib/table/base/helpers/__test__/SpanManager.test.js +2 -4
- package/lib/table/base/helpers/__test__/TableDOMUtils.test.js +2 -7
- package/lib/table/base/helpers/__test__/rowHeightManager.test.js +0 -1
- package/lib/table/base/helpers/getRichVisibleRectsStream.js +14 -65
- package/lib/table/base/helpers/rowHeightManager.js +0 -33
- package/lib/table/base/html-table.js +17 -49
- package/lib/table/base/index.js +0 -2
- package/lib/table/base/loading.js +8 -14
- package/lib/table/base/renderTemplates.js +44 -76
- package/lib/table/base/styles.js +8 -37
- package/lib/table/base/table.js +121 -243
- package/lib/table/base/utils.js +26 -109
- package/lib/table/common-views.js +4 -24
- package/lib/table/index.js +0 -13
- package/lib/table/interfaces.d.ts +2 -0
- package/lib/table/internals.d.ts +2 -1
- package/lib/table/internals.js +2 -17
- package/lib/table/pipeline/features/autoFill.js +14 -53
- 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 +6 -35
- package/lib/table/pipeline/features/columnDrag.js +41 -103
- package/lib/table/pipeline/features/columnFilter.js +12 -65
- 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 +17 -63
- package/lib/table/pipeline/features/contextMenu.js +23 -121
- package/lib/table/pipeline/features/filter/DefaultFilterContent.js +16 -52
- package/lib/table/pipeline/features/filter/DefaultFilterIcon.js +1 -4
- package/lib/table/pipeline/features/filter/Filter.js +29 -77
- package/lib/table/pipeline/features/filter/FilterPanel.js +13 -44
- package/lib/table/pipeline/features/filter/index.js +0 -5
- package/lib/table/pipeline/features/filter/util.js +2 -10
- package/lib/table/pipeline/features/footerDataSource.js +1 -12
- 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 +75 -173
- package/lib/table/pipeline/features/rowDetail.js +6 -67
- package/lib/table/pipeline/features/rowDrag.js +41 -93
- package/lib/table/pipeline/features/rowGrouping.js +10 -62
- package/lib/table/pipeline/features/singleSelect.js +0 -34
- package/lib/table/pipeline/features/sort.js +37 -110
- package/lib/table/pipeline/features/tips.js +4 -19
- package/lib/table/pipeline/features/treeMode.js +15 -72
- package/lib/table/pipeline/features/treeSelect.js +2 -36
- package/lib/table/pipeline/index.js +1 -10
- package/lib/table/pipeline/pipeline.js +13 -64
- package/lib/table/pivot/cross-table/buildCrossTable.js +21 -83
- package/lib/table/pivot/cross-table/constants.js +1 -2
- package/lib/table/pivot/cross-table/cross-table.js +25 -42
- package/lib/table/pivot/cross-table/index.js +0 -4
- package/lib/table/pivot/cross-table/interfaces.d.ts +1 -1
- package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +22 -70
- package/lib/table/pivot/cross-tree-table/cross-tree-table.js +37 -73
- 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 +34 -85
- package/lib/table/pivot/pivot-utils/convert-utils.js +16 -60
- 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 +14 -58
- 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 +19 -63
- 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.d.ts +1 -0
- package/lib/table/transforms/sort.js +43 -122
- package/lib/table/transforms/tips.js +5 -20
- package/lib/table/transforms/treeMode.js +40 -109
- package/lib/table/transforms/visible.js +0 -7
- package/lib/table/transforms/warnTransformsDeprecated.js +0 -4
- package/lib/table/use/useResizeObserver.js +2 -10
- package/lib/table/utils/applyTransforms.js +0 -2
- package/lib/table/utils/browserType.js +14 -23
- package/lib/table/utils/buildTree.js +7 -33
- package/lib/table/utils/collectNodes.js +4 -18
- package/lib/table/utils/console.js +2 -19
- package/lib/table/utils/copyToClipboard.js +1 -8
- package/lib/table/utils/element.js +14 -46
- package/lib/table/utils/exportTableAsExcel.js +7 -52
- package/lib/table/utils/getTreeDepth.js +8 -18
- package/lib/table/utils/groupBy.js +4 -17
- package/lib/table/utils/index.js +0 -22
- package/lib/table/utils/isGroupColumn.js +0 -3
- package/lib/table/utils/isLeafNode.js +0 -1
- package/lib/table/utils/keyCode.js +1 -2
- package/lib/table/utils/layeredFilter.js +0 -10
- package/lib/table/utils/layeredSort.js +0 -10
- package/lib/table/utils/makeRecursiveMapper.js +4 -24
- package/lib/table/utils/mergeCellProps.js +6 -18
- package/lib/table/utils/others.js +7 -36
- package/lib/table/utils/proto.js +3 -35
- package/lib/table/utils/selectColumn.js +2 -5
- package/lib/table/utils/smartCompare.js +4 -13
- package/lib/table/utils/traverseColumn.js +5 -25
- package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +10 -41
- package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +21 -90
- package/lib/table/utils/uiDegrade.js +1 -8
- package/package.json +3 -2
|
@@ -2,6 +2,7 @@ import _toArray from "@babel/runtime-corejs3/helpers/toArray";
|
|
|
2
2
|
import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
|
|
3
3
|
import _extends from "@babel/runtime-corejs3/helpers/extends";
|
|
4
4
|
import _toConsumableArray from "@babel/runtime-corejs3/helpers/toConsumableArray";
|
|
5
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
5
6
|
import _Symbol from "@babel/runtime-corejs3/core-js-stable/symbol";
|
|
6
7
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
7
8
|
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
|
@@ -18,9 +19,7 @@ import { always, flatMap } from '../../utils/others';
|
|
|
18
19
|
import console from '../../utils/console';
|
|
19
20
|
import getTableRenderTemplate from '../../base/renderTemplates';
|
|
20
21
|
import { Classes } from '../../base';
|
|
21
|
-
|
|
22
22
|
var rowDetailSymbol = _Symbol('row-detail');
|
|
23
|
-
|
|
24
23
|
var fallbackRenderDetail = function fallbackRenderDetail() {
|
|
25
24
|
return /*#__PURE__*/React.createElement("div", {
|
|
26
25
|
style: {
|
|
@@ -32,14 +31,11 @@ var fallbackRenderDetail = function fallbackRenderDetail() {
|
|
|
32
31
|
}
|
|
33
32
|
}, "\u8BBE\u7F6E ", /*#__PURE__*/React.createElement("code", null, "rowDetail.renderDetail"), " \u6765\u81EA\u5B9A\u4E49\u8BE6\u60C5\u5185\u5BB9"));
|
|
34
33
|
};
|
|
35
|
-
|
|
36
34
|
export function rowDetail() {
|
|
37
35
|
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
38
36
|
return function rowDetailStep(pipeline) {
|
|
39
37
|
var _context, _context2;
|
|
40
|
-
|
|
41
38
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
42
|
-
|
|
43
39
|
var stateKey = 'rowDetail';
|
|
44
40
|
var rowDetailMetaKey = (_a = opts.rowDetailMetaKey) !== null && _a !== void 0 ? _a : rowDetailSymbol;
|
|
45
41
|
var primaryKey = pipeline.ensurePrimaryKey('rowDetail');
|
|
@@ -54,33 +50,26 @@ export function rowDetail() {
|
|
|
54
50
|
var openKeys = (_h = (_g = (_f = opts.openKeys) !== null && _f !== void 0 ? _f : pipeline.getStateAtKey(stateKey)) !== null && _g !== void 0 ? _g : opts.defaultOpenAll ? _mapInstanceProperty(_context = _filterInstanceProperty(_context2 = pipeline.getDataSource()).call(_context2, hasDetail)).call(_context, function (row, rowIndex) {
|
|
55
51
|
return internals.safeGetRowKey(primaryKey, row, rowIndex);
|
|
56
52
|
}) : opts.defaultOpenKeys) !== null && _h !== void 0 ? _h : [];
|
|
57
|
-
|
|
58
53
|
var onChangeOpenKeys = function onChangeOpenKeys(nextKeys, key, action) {
|
|
59
54
|
var _a;
|
|
60
|
-
|
|
61
55
|
(_a = opts.onChangeOpenKeys) === null || _a === void 0 ? void 0 : _a.call(opts, nextKeys, key, action);
|
|
62
56
|
pipeline.setStateAtKey(stateKey, nextKeys, {
|
|
63
57
|
key: key,
|
|
64
58
|
action: action
|
|
65
59
|
});
|
|
66
60
|
};
|
|
67
|
-
|
|
68
61
|
var openKeySet = new _Set(openKeys);
|
|
69
|
-
|
|
70
62
|
var toggle = function toggle(rowKey) {
|
|
71
63
|
var expanded = openKeySet.has(rowKey);
|
|
72
|
-
|
|
73
64
|
if (expanded) {
|
|
74
65
|
onChangeOpenKeys(_filterInstanceProperty(openKeys).call(openKeys, function (key) {
|
|
75
66
|
return key !== rowKey;
|
|
76
67
|
}), rowKey, 'collapse');
|
|
77
68
|
} else {
|
|
78
69
|
var _context3;
|
|
79
|
-
|
|
80
70
|
onChangeOpenKeys(_concatInstanceProperty(_context3 = []).call(_context3, _toConsumableArray(openKeys), [rowKey]), rowKey, 'expand');
|
|
81
71
|
}
|
|
82
72
|
};
|
|
83
|
-
|
|
84
73
|
var detailPrimaryKey = typeof primaryKey === 'string' ? primaryKey : rowDetailMetaKey.toString() + 'PrimaryKey';
|
|
85
74
|
return pipeline.dataSource(flatMap(pipeline.getDataSource(), function (row, rowIndex) {
|
|
86
75
|
if (openKeySet.has(internals.safeGetRowKey(primaryKey, row, rowIndex))) {
|
|
@@ -96,35 +85,28 @@ export function rowDetail() {
|
|
|
96
85
|
};
|
|
97
86
|
}
|
|
98
87
|
});
|
|
99
|
-
|
|
100
88
|
function processColumns(columns) {
|
|
89
|
+
var _context4;
|
|
101
90
|
if (columns.length === 0) {
|
|
102
91
|
return columns;
|
|
103
92
|
}
|
|
104
|
-
|
|
105
93
|
var expandColumnIndex = 0;
|
|
106
|
-
|
|
107
94
|
if (opts.expandColumnCode) {
|
|
108
95
|
expandColumnIndex = _findIndexInstanceProperty(columns).call(columns, function (col) {
|
|
109
96
|
return col.code === opts.expandColumnCode;
|
|
110
97
|
});
|
|
111
|
-
|
|
112
98
|
if (expandColumnIndex < 0) {
|
|
113
99
|
console.warn('没找到可展开的列,请检查设置的展开列code');
|
|
114
100
|
return columns;
|
|
115
101
|
}
|
|
116
102
|
}
|
|
117
|
-
|
|
118
103
|
var expandCol = columns[expandColumnIndex];
|
|
119
|
-
|
|
120
104
|
var tableColumns = _toConsumableArray(columns);
|
|
121
|
-
|
|
122
105
|
var render = function render(value, row, rowIndex) {
|
|
123
106
|
if (row[rowDetailMetaKey]) {
|
|
124
107
|
// 第一列内容已经渲染
|
|
125
108
|
if (expandColumnIndex !== 0) return;
|
|
126
109
|
var renderRowDetail = getTableRenderTemplate('rowDetail');
|
|
127
|
-
|
|
128
110
|
if (typeof renderRowDetail === 'function') {
|
|
129
111
|
return renderRowDetail({
|
|
130
112
|
row: row,
|
|
@@ -133,12 +115,9 @@ export function rowDetail() {
|
|
|
133
115
|
renderDetail: renderDetail
|
|
134
116
|
});
|
|
135
117
|
}
|
|
136
|
-
|
|
137
118
|
return renderDetail(row, rowIndex);
|
|
138
119
|
}
|
|
139
|
-
|
|
140
120
|
var content = internals.safeRender(expandCol, row, rowIndex);
|
|
141
|
-
|
|
142
121
|
if (!hasDetail(row, rowIndex)) {
|
|
143
122
|
return /*#__PURE__*/React.createElement(InlineFlexCell, {
|
|
144
123
|
style: {
|
|
@@ -146,18 +125,14 @@ export function rowDetail() {
|
|
|
146
125
|
}
|
|
147
126
|
}, content);
|
|
148
127
|
}
|
|
149
|
-
|
|
150
128
|
var rowKey = internals.safeGetRowKey(primaryKey, row, rowIndex);
|
|
151
129
|
var expanded = openKeySet.has(rowKey);
|
|
152
|
-
|
|
153
130
|
var onClick = function onClick(e) {
|
|
154
131
|
if (opts.stopClickEventPropagation) {
|
|
155
132
|
e.stopPropagation();
|
|
156
133
|
}
|
|
157
|
-
|
|
158
134
|
toggle(rowKey);
|
|
159
135
|
};
|
|
160
|
-
|
|
161
136
|
var expandCls = expanded ? Classes.expanded : Classes.collapsed;
|
|
162
137
|
var ExpandIcon = opts.expandIcon;
|
|
163
138
|
return /*#__PURE__*/React.createElement(ExpansionCell, {
|
|
@@ -179,10 +154,8 @@ export function rowDetail() {
|
|
|
179
154
|
onClick: clickArea === 'icon' ? onClick : undefined
|
|
180
155
|
}), content);
|
|
181
156
|
};
|
|
182
|
-
|
|
183
157
|
var getCellProps = function getCellProps(value, row, rowIndex) {
|
|
184
158
|
var _a;
|
|
185
|
-
|
|
186
159
|
if (row[rowDetailMetaKey]) {
|
|
187
160
|
return {
|
|
188
161
|
style: _extends({
|
|
@@ -191,19 +164,15 @@ export function rowDetail() {
|
|
|
191
164
|
}, opts.detailCellStyle)
|
|
192
165
|
};
|
|
193
166
|
}
|
|
194
|
-
|
|
195
167
|
var prevProps = (_a = expandCol.getCellProps) === null || _a === void 0 ? void 0 : _a.call(expandCol, value, row, rowIndex);
|
|
196
|
-
|
|
197
168
|
if (!hasDetail(row, rowIndex)) {
|
|
198
169
|
return prevProps;
|
|
199
170
|
}
|
|
200
|
-
|
|
201
171
|
return mergeCellProps(prevProps, {
|
|
202
172
|
onClick: function onClick(e) {
|
|
203
173
|
if (opts.stopClickEventPropagation) {
|
|
204
174
|
e.stopPropagation();
|
|
205
175
|
}
|
|
206
|
-
|
|
207
176
|
toggle(internals.safeGetRowKey(primaryKey, row, rowIndex));
|
|
208
177
|
},
|
|
209
178
|
style: {
|
|
@@ -211,15 +180,12 @@ export function rowDetail() {
|
|
|
211
180
|
}
|
|
212
181
|
});
|
|
213
182
|
};
|
|
214
|
-
|
|
215
183
|
var _tableColumns = _toArray(tableColumns),
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
184
|
+
firstCol = _tableColumns[0],
|
|
185
|
+
others = _sliceInstanceProperty(_context4 = _arrayLikeToArray(_tableColumns)).call(_context4, 1);
|
|
219
186
|
var firstColRender = function firstColRender(value, row, rowIndex) {
|
|
220
187
|
if (row[rowDetailMetaKey]) {
|
|
221
188
|
var renderRowDetail = getTableRenderTemplate('rowDetail');
|
|
222
|
-
|
|
223
189
|
if (typeof renderRowDetail === 'function') {
|
|
224
190
|
return renderRowDetail({
|
|
225
191
|
row: row,
|
|
@@ -228,14 +194,11 @@ export function rowDetail() {
|
|
|
228
194
|
renderDetail: renderDetail
|
|
229
195
|
});
|
|
230
196
|
}
|
|
231
|
-
|
|
232
197
|
return renderDetail(row, rowIndex);
|
|
233
198
|
}
|
|
234
|
-
|
|
235
199
|
var content = internals.safeRender(firstCol, row, rowIndex);
|
|
236
200
|
return content;
|
|
237
201
|
};
|
|
238
|
-
|
|
239
202
|
tableColumns[0] = _extends(_extends({}, firstCol), {
|
|
240
203
|
render: firstColRender,
|
|
241
204
|
getSpanRect: function getSpanRect(value, row, rowIndex) {
|
|
@@ -251,12 +214,12 @@ export function rowDetail() {
|
|
|
251
214
|
}
|
|
252
215
|
});
|
|
253
216
|
tableColumns[expandColumnIndex] = _extends(_extends({}, expandCol), {
|
|
254
|
-
title: /*#__PURE__*/React.createElement("div", {
|
|
217
|
+
title: (/*#__PURE__*/React.createElement("div", {
|
|
255
218
|
style: {
|
|
256
219
|
display: 'inline-block',
|
|
257
220
|
marginLeft: textOffset
|
|
258
221
|
}
|
|
259
|
-
}, internals.safeRenderHeader(expandCol)),
|
|
222
|
+
}, internals.safeRenderHeader(expandCol))),
|
|
260
223
|
render: render,
|
|
261
224
|
getCellProps: clickArea === 'cell' ? getCellProps : expandCol.getCellProps,
|
|
262
225
|
getSpanRect: function getSpanRect(value, row, rowIndex) {
|
|
@@ -38,43 +38,35 @@ var defaultRowDragColumn = {
|
|
|
38
38
|
export function rowDrag(opt) {
|
|
39
39
|
return function rowDragStep(pipeline) {
|
|
40
40
|
var _context;
|
|
41
|
-
|
|
42
41
|
var tableBody = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.tableBody;
|
|
43
42
|
var artTable = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.artTable;
|
|
44
43
|
if (!tableBody) return pipeline;
|
|
45
44
|
var dataSource = pipeline.getDataSource();
|
|
46
45
|
var rowHeight = (opt === null || opt === void 0 ? void 0 : opt.rowHeight) || 48;
|
|
47
|
-
|
|
48
46
|
var handleDragStrat = function handleDragStrat(event) {
|
|
49
|
-
var _a;
|
|
50
|
-
|
|
51
|
-
|
|
47
|
+
var _a;
|
|
48
|
+
// 开始拖拽
|
|
52
49
|
artTable.classList.add(cx(Classes.rowDragging));
|
|
53
50
|
(_a = opt === null || opt === void 0 ? void 0 : opt.onDragStart) === null || _a === void 0 ? void 0 : _a.call(opt, event);
|
|
54
51
|
};
|
|
55
|
-
|
|
56
52
|
var handleDragMove = function handleDragMove(event) {
|
|
57
53
|
var _a;
|
|
58
|
-
|
|
59
54
|
(_a = opt === null || opt === void 0 ? void 0 : opt.onDragMove) === null || _a === void 0 ? void 0 : _a.call(opt, event);
|
|
60
55
|
pipeline.setStateAtKey(rowDragKey, event);
|
|
61
56
|
};
|
|
62
|
-
|
|
63
57
|
var handleDragEnd = function handleDragEnd(event, isValid) {
|
|
64
58
|
var _a;
|
|
65
|
-
|
|
66
59
|
artTable.classList.remove(cx(Classes.rowDragging));
|
|
67
|
-
pipeline.setStateAtKey(rowDragKey, event);
|
|
68
|
-
|
|
60
|
+
pipeline.setStateAtKey(rowDragKey, event);
|
|
61
|
+
// 超出拖拽范围不触发dragend事件
|
|
69
62
|
if (isValid) {
|
|
70
63
|
(_a = opt === null || opt === void 0 ? void 0 : opt.onDragEnd) === null || _a === void 0 ? void 0 : _a.call(opt, event);
|
|
71
64
|
}
|
|
72
65
|
};
|
|
73
|
-
|
|
74
66
|
var getDragEvent = function getDragEvent(startRowInfo, endRowInfo, _ref) {
|
|
75
67
|
var isFinished = _ref.isFinished,
|
|
76
|
-
|
|
77
|
-
|
|
68
|
+
_ref$dragPosition = _ref.dragPosition,
|
|
69
|
+
dragPosition = _ref$dragPosition === void 0 ? 'bottom' : _ref$dragPosition;
|
|
78
70
|
return {
|
|
79
71
|
startRowIndex: startRowInfo.rowIndex,
|
|
80
72
|
startRow: startRowInfo.row,
|
|
@@ -84,31 +76,26 @@ export function rowDrag(opt) {
|
|
|
84
76
|
isFinished: isFinished
|
|
85
77
|
};
|
|
86
78
|
};
|
|
87
|
-
|
|
88
79
|
var updateScrollPosition = function updateScrollPosition(mouseMoveEvent) {
|
|
89
80
|
if (opt === null || opt === void 0 ? void 0 : opt.suppressScrollMove) return;
|
|
90
81
|
var clientY = mouseMoveEvent.clientY;
|
|
91
82
|
var tableBodyClientRect = tableBody.getBoundingClientRect();
|
|
92
83
|
var top = tableBodyClientRect.top,
|
|
93
|
-
|
|
94
|
-
|
|
84
|
+
height = tableBodyClientRect.height;
|
|
95
85
|
if (clientY + SCROLL_OFFSET >= top + height) {
|
|
96
86
|
pipeline.ref.current.domHelper.tableBody.scrollTop += SCROLL_OFFSET;
|
|
97
87
|
}
|
|
98
|
-
|
|
99
88
|
if (clientY + SCROLL_OFFSET <= top) {
|
|
100
89
|
pipeline.ref.current.domHelper.tableBody.scrollTop -= SCROLL_OFFSET;
|
|
101
90
|
}
|
|
102
91
|
};
|
|
103
|
-
|
|
104
92
|
var onMouseDown = function onMouseDown(mouseDownEvent) {
|
|
105
93
|
var _a;
|
|
106
|
-
|
|
107
94
|
var startRowInfo = getTargetRowInfo(mouseDownEvent.target, tableBody, dataSource);
|
|
108
95
|
var endRowInfo = startRowInfo;
|
|
109
96
|
if (!startRowInfo || startRowInfo.code !== rowDragColumn.code) return;
|
|
110
|
-
if ((_a = opt === null || opt === void 0 ? void 0 : opt.isDisabled) === null || _a === void 0 ? void 0 : _a.call(opt, startRowInfo.row, startRowInfo.rowIndex)) return;
|
|
111
|
-
|
|
97
|
+
if ((_a = opt === null || opt === void 0 ? void 0 : opt.isDisabled) === null || _a === void 0 ? void 0 : _a.call(opt, startRowInfo.row, startRowInfo.rowIndex)) return;
|
|
98
|
+
// 默认拖拽插入的位置是向下
|
|
112
99
|
var dragPosition = 'bottom';
|
|
113
100
|
var isOutOfRange = false;
|
|
114
101
|
var isValidDrag = false;
|
|
@@ -118,12 +105,12 @@ export function rowDrag(opt) {
|
|
|
118
105
|
});
|
|
119
106
|
handleDragStrat(dragStartEvent);
|
|
120
107
|
var tableWidth = tableBody.clientWidth;
|
|
121
|
-
var startRowRects = startRowInfo.cell.getBoundingClientRect();
|
|
122
|
-
|
|
108
|
+
var startRowRects = startRowInfo.cell.getBoundingClientRect();
|
|
109
|
+
// 光标位置距离初始拖拽行的偏移量
|
|
123
110
|
var mouseDownClientY = mouseDownEvent.clientY;
|
|
124
111
|
var startOffset = mouseDownEvent.clientY - startRowRects.top;
|
|
125
|
-
var dragElement = createDragElement(startRowRects, tableWidth, rowHeight);
|
|
126
|
-
|
|
112
|
+
var dragElement = createDragElement(startRowRects, tableWidth, rowHeight);
|
|
113
|
+
// 可拖拽的范围
|
|
127
114
|
var dragRange = getDragRange(tableBody, {
|
|
128
115
|
startOffset: startOffset,
|
|
129
116
|
rowHeight: rowHeight
|
|
@@ -134,7 +121,6 @@ export function rowDrag(opt) {
|
|
|
134
121
|
};
|
|
135
122
|
var mousemove$ = fromEvent(window, 'mousemove');
|
|
136
123
|
var mouseup$ = fromEvent(window, 'mouseup');
|
|
137
|
-
|
|
138
124
|
var scrollCallback = function scrollCallback(event) {
|
|
139
125
|
// 在当前表格内滚动不处理
|
|
140
126
|
if (event.target === tableBody) return;
|
|
@@ -145,27 +131,23 @@ export function rowDrag(opt) {
|
|
|
145
131
|
var isOutOfRange = isOutOfDragRange(mousePosition, dragRange);
|
|
146
132
|
updateCurSorStyle(isOutOfRange);
|
|
147
133
|
};
|
|
148
|
-
|
|
149
134
|
document.addEventListener('scroll', scrollCallback, true);
|
|
150
135
|
var rowDrag$ = mousemove$.pipe(filter(function (mouseMoveEvent) {
|
|
151
|
-
var mouseMoveClientY = mouseMoveEvent.clientY;
|
|
152
|
-
|
|
136
|
+
var mouseMoveClientY = mouseMoveEvent.clientY;
|
|
137
|
+
// 上下移动偏移量大于5才是有效的拖拽
|
|
153
138
|
if (Math.abs(mouseMoveClientY - mouseDownClientY) > 5) {
|
|
154
139
|
isValidDrag = true;
|
|
155
140
|
}
|
|
156
|
-
|
|
157
141
|
return isValidDrag;
|
|
158
142
|
}), map(function (mouseMoveEvent) {
|
|
159
143
|
var clientX = mouseMoveEvent.clientX,
|
|
160
|
-
|
|
144
|
+
clientY = mouseMoveEvent.clientY;
|
|
161
145
|
var tagretRow = getTargetRowInfo(mouseMoveEvent.target, tableBody, dataSource);
|
|
162
|
-
|
|
163
146
|
if (tagretRow) {
|
|
164
147
|
endRowInfo = tagretRow;
|
|
165
148
|
}
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
149
|
+
var targetRowRects = endRowInfo.cell.getBoundingClientRect();
|
|
150
|
+
// 判断拖拽插入的位置,拖拽框上边框位于目标行之上则向上插入,否则向下插入
|
|
169
151
|
var isMoveToTop = clientY - startOffset < targetRowRects.top;
|
|
170
152
|
dragPosition = isMoveToTop ? 'top' : 'bottom';
|
|
171
153
|
isOutOfRange = isOutOfDragRange({
|
|
@@ -177,7 +159,6 @@ export function rowDrag(opt) {
|
|
|
177
159
|
y: clientY
|
|
178
160
|
};
|
|
179
161
|
updateScrollPosition(mouseMoveEvent); // 拖拽到底时让滚动条可以滚动
|
|
180
|
-
|
|
181
162
|
updateDragElementPosition(dragElement, dragRange, {
|
|
182
163
|
x: clientX,
|
|
183
164
|
y: clientY,
|
|
@@ -193,8 +174,8 @@ export function rowDrag(opt) {
|
|
|
193
174
|
rowDrag$.subscribe({
|
|
194
175
|
next: function next(_ref2) {
|
|
195
176
|
var startRowInfo = _ref2.startRowInfo,
|
|
196
|
-
|
|
197
|
-
|
|
177
|
+
endRowInfo = _ref2.endRowInfo,
|
|
178
|
+
dragPosition = _ref2.dragPosition;
|
|
198
179
|
var dragMoveEvent = getDragEvent(startRowInfo, endRowInfo, {
|
|
199
180
|
isFinished: false,
|
|
200
181
|
dragPosition: dragPosition
|
|
@@ -214,28 +195,23 @@ export function rowDrag(opt) {
|
|
|
214
195
|
}
|
|
215
196
|
});
|
|
216
197
|
};
|
|
217
|
-
|
|
218
198
|
var rowDragColumn = (opt === null || opt === void 0 ? void 0 : opt.rowDragColumn) || defaultRowDragColumn;
|
|
219
199
|
pipeline.setFeatureOptions('rowDragColumnKey', rowDragColumn.code);
|
|
220
|
-
|
|
221
200
|
var nextColumns = _sliceInstanceProperty(_context = pipeline.getColumns()).call(_context);
|
|
222
|
-
|
|
223
201
|
nextColumns.unshift(rowDragColumn);
|
|
224
202
|
pipeline.columns(nextColumns);
|
|
225
203
|
pipeline.addTableProps({
|
|
226
204
|
onMouseDown: onMouseDown
|
|
227
205
|
});
|
|
228
206
|
pipeline.appendRowPropsGetter(function (row, rowIndex) {
|
|
229
|
-
var _cx;
|
|
230
|
-
|
|
231
207
|
var rowDragEvent = pipeline.getStateAtKey(rowDragKey) || {};
|
|
232
208
|
var startRowIndex = rowDragEvent.startRowIndex,
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
209
|
+
endRowIndex = rowDragEvent.endRowIndex,
|
|
210
|
+
isFinished = rowDragEvent.isFinished,
|
|
211
|
+
dragPosition = rowDragEvent.dragPosition;
|
|
236
212
|
var isFooterCell = row[pipeline.getFeatureOptions('footerRowMetaKey')];
|
|
237
213
|
if (isFooterCell || isFinished || rowIndex !== startRowIndex && rowIndex !== endRowIndex) return;
|
|
238
|
-
var className = cx((
|
|
214
|
+
var className = cx(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, Classes.rowDragStart, rowIndex === startRowIndex), Classes.rowDragEnd, rowIndex === endRowIndex), Classes.rowDragEndToTop, rowIndex === endRowIndex && dragPosition === 'top'), Classes.rowDragEndToBottom, rowIndex === endRowIndex && dragPosition === 'bottom'));
|
|
239
215
|
return {
|
|
240
216
|
className: className
|
|
241
217
|
};
|
|
@@ -243,7 +219,6 @@ export function rowDrag(opt) {
|
|
|
243
219
|
return pipeline;
|
|
244
220
|
};
|
|
245
221
|
}
|
|
246
|
-
|
|
247
222
|
function getTargetRowInfo(target, tableBody, record) {
|
|
248
223
|
while (target && tableBody.contains(target)) {
|
|
249
224
|
if (target.getAttribute('data-role') === 'table-cell') {
|
|
@@ -259,41 +234,33 @@ function getTargetRowInfo(target, tableBody, record) {
|
|
|
259
234
|
cell: target
|
|
260
235
|
};
|
|
261
236
|
}
|
|
262
|
-
|
|
263
237
|
target = target.parentElement;
|
|
264
238
|
}
|
|
265
|
-
|
|
266
239
|
return null;
|
|
267
240
|
}
|
|
268
|
-
|
|
269
241
|
function isEleInFooter(target) {
|
|
270
242
|
while (target && !target.classList.contains(Classes.artTable)) {
|
|
271
243
|
if (target.classList.contains(Classes.tableFooter)) {
|
|
272
244
|
return true;
|
|
273
245
|
}
|
|
274
|
-
|
|
275
246
|
target = target.parentElement;
|
|
276
247
|
}
|
|
277
|
-
|
|
278
248
|
return false;
|
|
279
249
|
}
|
|
280
|
-
|
|
281
250
|
function createDragElement(rects, tableWidth, rowHeight) {
|
|
282
251
|
var _context2, _context3, _context4;
|
|
283
|
-
|
|
284
252
|
var x = rects.x,
|
|
285
|
-
|
|
253
|
+
y = rects.y;
|
|
286
254
|
var dragMoveElement = document.createElement('div');
|
|
287
255
|
dragMoveElement.className = cx(Classes.rowDragElement);
|
|
288
256
|
dragMoveElement.style.cssText = _concatInstanceProperty(_context2 = _concatInstanceProperty(_context3 = _concatInstanceProperty(_context4 = "position:fixed;z-index:9999;left:".concat(x, "px;top:")).call(_context4, y, "px;pointer-events:none;width:")).call(_context3, tableWidth, "px;height:")).call(_context2, rowHeight, "px;background:var(--primary-color);opacity: 0.1;");
|
|
289
257
|
document.body.appendChild(dragMoveElement);
|
|
290
258
|
return dragMoveElement;
|
|
291
259
|
}
|
|
292
|
-
|
|
293
260
|
function updateDragElementPosition(element, dragRange, _ref3) {
|
|
294
261
|
var x = _ref3.x,
|
|
295
|
-
|
|
296
|
-
|
|
262
|
+
y = _ref3.y,
|
|
263
|
+
startOffset = _ref3.startOffset;
|
|
297
264
|
var validPosition = getValidPosition({
|
|
298
265
|
x: x,
|
|
299
266
|
y: y
|
|
@@ -301,11 +268,9 @@ function updateDragElementPosition(element, dragRange, _ref3) {
|
|
|
301
268
|
element.style.top = validPosition.y - startOffset + 'px';
|
|
302
269
|
return element;
|
|
303
270
|
}
|
|
304
|
-
|
|
305
271
|
function removeDragElement(element) {
|
|
306
272
|
document.body.removeChild(element);
|
|
307
273
|
}
|
|
308
|
-
|
|
309
274
|
function updateCurSorStyle(isOutOfRange) {
|
|
310
275
|
if (isOutOfRange) {
|
|
311
276
|
document.body.style.cursor = 'no-drop';
|
|
@@ -313,19 +278,17 @@ function updateCurSorStyle(isOutOfRange) {
|
|
|
313
278
|
document.body.style.cursor = 'move';
|
|
314
279
|
}
|
|
315
280
|
}
|
|
316
|
-
|
|
317
281
|
function removeCurSorStyle() {
|
|
318
282
|
document.body.style.cursor = 'default';
|
|
319
283
|
}
|
|
320
|
-
|
|
321
284
|
function getDragRange(tableBody, _ref4) {
|
|
322
285
|
var startOffset = _ref4.startOffset,
|
|
323
|
-
|
|
286
|
+
rowHeight = _ref4.rowHeight;
|
|
324
287
|
var tableBodyClientRect = tableBody.getBoundingClientRect();
|
|
325
288
|
var height = tableBodyClientRect.height,
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
289
|
+
width = tableBodyClientRect.width,
|
|
290
|
+
top = tableBodyClientRect.top,
|
|
291
|
+
left = tableBodyClientRect.left;
|
|
329
292
|
return {
|
|
330
293
|
minX: left,
|
|
331
294
|
maxX: left + width,
|
|
@@ -333,14 +296,13 @@ function getDragRange(tableBody, _ref4) {
|
|
|
333
296
|
maxY: top + height + startOffset
|
|
334
297
|
};
|
|
335
298
|
}
|
|
336
|
-
|
|
337
299
|
function getValidPosition(position, dragRange) {
|
|
338
300
|
var x = position.x,
|
|
339
|
-
|
|
301
|
+
y = position.y;
|
|
340
302
|
var minX = dragRange.minX,
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
303
|
+
maxX = dragRange.maxX,
|
|
304
|
+
minY = dragRange.minY,
|
|
305
|
+
maxY = dragRange.maxY;
|
|
344
306
|
var newX = x < minX ? minX : x > maxX ? maxX : x;
|
|
345
307
|
var newY = y < minY ? minY : y > maxY ? maxY : y;
|
|
346
308
|
return {
|
|
@@ -348,13 +310,12 @@ function getValidPosition(position, dragRange) {
|
|
|
348
310
|
y: newY
|
|
349
311
|
};
|
|
350
312
|
}
|
|
351
|
-
|
|
352
313
|
function isOutOfDragRange(position, dragRange) {
|
|
353
314
|
var x = position.x,
|
|
354
|
-
|
|
315
|
+
y = position.y;
|
|
355
316
|
var minX = dragRange.minX,
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
317
|
+
maxX = dragRange.maxX,
|
|
318
|
+
minY = dragRange.minY,
|
|
319
|
+
maxY = dragRange.maxY;
|
|
359
320
|
return x > maxX || x < minX || y > maxY || y < minY;
|
|
360
321
|
}
|