@kdcloudjs/table 1.2.0-canary.16 → 1.2.0-canary.17-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/LICENSE +568 -568
- package/README.md +111 -111
- package/dist/@kdcloudjs/table.css +1 -1
- package/dist/@kdcloudjs/table.js +4596 -5714
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +18 -16
- package/dist/@kdcloudjs/table.min.js.map +1 -1
- package/dist/kd-ui-complete.less +777 -777
- 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 +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 +9 -48
- package/es/style/color/colors.less +1 -1
- package/es/style/core/index.less +1 -1
- package/es/style/core/motion/other.less +27 -27
- package/es/style/core/motion/slide.less +53 -53
- package/es/style/core/motion.less +1 -1
- package/es/style/core/reset.less +185 -185
- package/es/style/index.less +1 -1
- package/es/style/mixins/index.less +18 -18
- package/es/style/mixins/overlay.less +21 -21
- package/es/style/mixins/reset.less +12 -12
- package/es/style/themes/default.less +445 -445
- 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 +19 -74
- package/es/table/base/helpers/SpanManager.js +4 -11
- package/es/table/base/helpers/TableDOMUtils.js +7 -30
- 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 +17 -39
- package/es/table/base/loading.js +8 -10
- package/es/table/base/renderTemplates.js +41 -59
- 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/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 +18 -91
- 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 +26 -50
- 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 +74 -154
- package/es/table/pipeline/features/rowDetail.js +4 -43
- package/es/table/pipeline/features/rowDrag.js +64 -80
- package/es/table/pipeline/features/rowGrouping.js +4 -37
- 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-tree-table/buildCrossTreeTable.js +22 -57
- package/es/table/pivot/cross-tree-table/cross-tree-table.js +35 -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/style/index.less +1 -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.js +42 -96
- package/es/table/transforms/tips.js +5 -10
- package/es/table/transforms/treeMode.js +36 -77
- 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 +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 +4 -12
- 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 +5 -27
- package/es/table/utils/tree-data-helpers/TreeDataHelper.js +19 -74
- 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 +79 -166
- package/lib/config-provider/ConfigContext.js +2 -6
- package/lib/config-provider/compDefaultProps.js +1 -3
- package/lib/config-provider/configProvider.js +6 -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 +3 -11
- package/lib/locale/locale.js +13 -69
- package/lib/locale/zh-CN.js +1 -2
- package/lib/style/color/colors.less +1 -1
- package/lib/style/components.less +1 -1
- package/lib/style/core/index.less +1 -1
- package/lib/style/core/motion/other.less +27 -27
- package/lib/style/core/motion/slide.less +53 -53
- package/lib/style/core/motion.less +1 -1
- package/lib/style/core/reset.less +185 -185
- package/lib/style/index.less +1 -1
- package/lib/style/mixins/index.less +18 -18
- package/lib/style/mixins/overlay.less +21 -21
- package/lib/style/mixins/reset.less +12 -12
- package/lib/style/themes/default.less +445 -445
- package/lib/table/base/calculations.js +25 -86
- package/lib/table/base/colgroup.js +0 -5
- package/lib/table/base/empty.js +8 -20
- package/lib/table/base/header.js +19 -84
- package/lib/table/base/helpers/SpanManager.js +6 -16
- package/lib/table/base/helpers/TableDOMUtils.js +7 -33
- 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 +13 -64
- 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 -75
- package/lib/table/base/styles.js +9 -37
- package/lib/table/base/table.js +122 -243
- package/lib/table/base/utils.js +27 -109
- package/lib/table/common-views.js +4 -24
- package/lib/table/index.js +0 -13
- 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 +18 -63
- package/lib/table/pipeline/features/contextMenu.js +20 -117
- package/lib/table/pipeline/features/filter/DefaultFilterContent.js +17 -52
- package/lib/table/pipeline/features/filter/DefaultFilterIcon.js +1 -4
- package/lib/table/pipeline/features/filter/Filter.js +29 -76
- package/lib/table/pipeline/features/filter/FilterPanel.js +14 -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 +76 -175
- package/lib/table/pipeline/features/rowDetail.js +4 -67
- package/lib/table/pipeline/features/rowDrag.js +66 -94
- package/lib/table/pipeline/features/rowGrouping.js +4 -57
- 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 +2 -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-tree-table/buildCrossTreeTable.js +22 -70
- package/lib/table/pivot/cross-tree-table/cross-tree-table.js +36 -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/style/index.less +1 -1
- package/lib/table/transforms/autoRowSpan.js +1 -21
- package/lib/table/transforms/autoWidth.js +15 -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 +20 -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.js +44 -122
- package/lib/table/transforms/tips.js +5 -20
- package/lib/table/transforms/treeMode.js +38 -106
- 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 +2 -3
- 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 +4 -17
- package/lib/table/utils/groupBy.js +4 -17
- 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/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 +7 -38
- package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +21 -90
- package/package.json +219 -218
|
@@ -18,9 +18,7 @@ import { always, flatMap } from '../../utils/others';
|
|
|
18
18
|
import console from '../../utils/console';
|
|
19
19
|
import getTableRenderTemplate from '../../base/renderTemplates';
|
|
20
20
|
import { Classes } from '../../base';
|
|
21
|
-
|
|
22
21
|
var rowDetailSymbol = _Symbol('row-detail');
|
|
23
|
-
|
|
24
22
|
var fallbackRenderDetail = function fallbackRenderDetail() {
|
|
25
23
|
return /*#__PURE__*/React.createElement("div", {
|
|
26
24
|
style: {
|
|
@@ -32,14 +30,11 @@ var fallbackRenderDetail = function fallbackRenderDetail() {
|
|
|
32
30
|
}
|
|
33
31
|
}, "\u8BBE\u7F6E ", /*#__PURE__*/React.createElement("code", null, "rowDetail.renderDetail"), " \u6765\u81EA\u5B9A\u4E49\u8BE6\u60C5\u5185\u5BB9"));
|
|
34
32
|
};
|
|
35
|
-
|
|
36
33
|
export function rowDetail() {
|
|
37
34
|
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
38
35
|
return function rowDetailStep(pipeline) {
|
|
39
36
|
var _context, _context2;
|
|
40
|
-
|
|
41
37
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
42
|
-
|
|
43
38
|
var stateKey = 'rowDetail';
|
|
44
39
|
var rowDetailMetaKey = (_a = opts.rowDetailMetaKey) !== null && _a !== void 0 ? _a : rowDetailSymbol;
|
|
45
40
|
var primaryKey = pipeline.ensurePrimaryKey('rowDetail');
|
|
@@ -54,33 +49,26 @@ export function rowDetail() {
|
|
|
54
49
|
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
50
|
return internals.safeGetRowKey(primaryKey, row, rowIndex);
|
|
56
51
|
}) : opts.defaultOpenKeys) !== null && _h !== void 0 ? _h : [];
|
|
57
|
-
|
|
58
52
|
var onChangeOpenKeys = function onChangeOpenKeys(nextKeys, key, action) {
|
|
59
53
|
var _a;
|
|
60
|
-
|
|
61
54
|
(_a = opts.onChangeOpenKeys) === null || _a === void 0 ? void 0 : _a.call(opts, nextKeys, key, action);
|
|
62
55
|
pipeline.setStateAtKey(stateKey, nextKeys, {
|
|
63
56
|
key: key,
|
|
64
57
|
action: action
|
|
65
58
|
});
|
|
66
59
|
};
|
|
67
|
-
|
|
68
60
|
var openKeySet = new _Set(openKeys);
|
|
69
|
-
|
|
70
61
|
var toggle = function toggle(rowKey) {
|
|
71
62
|
var expanded = openKeySet.has(rowKey);
|
|
72
|
-
|
|
73
63
|
if (expanded) {
|
|
74
64
|
onChangeOpenKeys(_filterInstanceProperty(openKeys).call(openKeys, function (key) {
|
|
75
65
|
return key !== rowKey;
|
|
76
66
|
}), rowKey, 'collapse');
|
|
77
67
|
} else {
|
|
78
68
|
var _context3;
|
|
79
|
-
|
|
80
69
|
onChangeOpenKeys(_concatInstanceProperty(_context3 = []).call(_context3, _toConsumableArray(openKeys), [rowKey]), rowKey, 'expand');
|
|
81
70
|
}
|
|
82
71
|
};
|
|
83
|
-
|
|
84
72
|
var detailPrimaryKey = typeof primaryKey === 'string' ? primaryKey : rowDetailMetaKey.toString() + 'PrimaryKey';
|
|
85
73
|
return pipeline.dataSource(flatMap(pipeline.getDataSource(), function (row, rowIndex) {
|
|
86
74
|
if (openKeySet.has(internals.safeGetRowKey(primaryKey, row, rowIndex))) {
|
|
@@ -96,35 +84,27 @@ export function rowDetail() {
|
|
|
96
84
|
};
|
|
97
85
|
}
|
|
98
86
|
});
|
|
99
|
-
|
|
100
87
|
function processColumns(columns) {
|
|
101
88
|
if (columns.length === 0) {
|
|
102
89
|
return columns;
|
|
103
90
|
}
|
|
104
|
-
|
|
105
91
|
var expandColumnIndex = 0;
|
|
106
|
-
|
|
107
92
|
if (opts.expandColumnCode) {
|
|
108
93
|
expandColumnIndex = _findIndexInstanceProperty(columns).call(columns, function (col) {
|
|
109
94
|
return col.code === opts.expandColumnCode;
|
|
110
95
|
});
|
|
111
|
-
|
|
112
96
|
if (expandColumnIndex < 0) {
|
|
113
97
|
console.warn('没找到可展开的列,请检查设置的展开列code');
|
|
114
98
|
return columns;
|
|
115
99
|
}
|
|
116
100
|
}
|
|
117
|
-
|
|
118
101
|
var expandCol = columns[expandColumnIndex];
|
|
119
|
-
|
|
120
102
|
var tableColumns = _toConsumableArray(columns);
|
|
121
|
-
|
|
122
103
|
var render = function render(value, row, rowIndex) {
|
|
123
104
|
if (row[rowDetailMetaKey]) {
|
|
124
105
|
// 第一列内容已经渲染
|
|
125
106
|
if (expandColumnIndex !== 0) return;
|
|
126
107
|
var renderRowDetail = getTableRenderTemplate('rowDetail');
|
|
127
|
-
|
|
128
108
|
if (typeof renderRowDetail === 'function') {
|
|
129
109
|
return renderRowDetail({
|
|
130
110
|
row: row,
|
|
@@ -133,12 +113,9 @@ export function rowDetail() {
|
|
|
133
113
|
renderDetail: renderDetail
|
|
134
114
|
});
|
|
135
115
|
}
|
|
136
|
-
|
|
137
116
|
return renderDetail(row, rowIndex);
|
|
138
117
|
}
|
|
139
|
-
|
|
140
118
|
var content = internals.safeRender(expandCol, row, rowIndex);
|
|
141
|
-
|
|
142
119
|
if (!hasDetail(row, rowIndex)) {
|
|
143
120
|
return /*#__PURE__*/React.createElement(InlineFlexCell, {
|
|
144
121
|
style: {
|
|
@@ -146,18 +123,14 @@ export function rowDetail() {
|
|
|
146
123
|
}
|
|
147
124
|
}, content);
|
|
148
125
|
}
|
|
149
|
-
|
|
150
126
|
var rowKey = internals.safeGetRowKey(primaryKey, row, rowIndex);
|
|
151
127
|
var expanded = openKeySet.has(rowKey);
|
|
152
|
-
|
|
153
128
|
var onClick = function onClick(e) {
|
|
154
129
|
if (opts.stopClickEventPropagation) {
|
|
155
130
|
e.stopPropagation();
|
|
156
131
|
}
|
|
157
|
-
|
|
158
132
|
toggle(rowKey);
|
|
159
133
|
};
|
|
160
|
-
|
|
161
134
|
var expandCls = expanded ? Classes.expanded : Classes.collapsed;
|
|
162
135
|
var ExpandIcon = opts.expandIcon;
|
|
163
136
|
return /*#__PURE__*/React.createElement(ExpansionCell, {
|
|
@@ -179,10 +152,8 @@ export function rowDetail() {
|
|
|
179
152
|
onClick: clickArea === 'icon' ? onClick : undefined
|
|
180
153
|
}), content);
|
|
181
154
|
};
|
|
182
|
-
|
|
183
155
|
var getCellProps = function getCellProps(value, row, rowIndex) {
|
|
184
156
|
var _a;
|
|
185
|
-
|
|
186
157
|
if (row[rowDetailMetaKey]) {
|
|
187
158
|
return {
|
|
188
159
|
style: _extends({
|
|
@@ -191,19 +162,15 @@ export function rowDetail() {
|
|
|
191
162
|
}, opts.detailCellStyle)
|
|
192
163
|
};
|
|
193
164
|
}
|
|
194
|
-
|
|
195
165
|
var prevProps = (_a = expandCol.getCellProps) === null || _a === void 0 ? void 0 : _a.call(expandCol, value, row, rowIndex);
|
|
196
|
-
|
|
197
166
|
if (!hasDetail(row, rowIndex)) {
|
|
198
167
|
return prevProps;
|
|
199
168
|
}
|
|
200
|
-
|
|
201
169
|
return mergeCellProps(prevProps, {
|
|
202
170
|
onClick: function onClick(e) {
|
|
203
171
|
if (opts.stopClickEventPropagation) {
|
|
204
172
|
e.stopPropagation();
|
|
205
173
|
}
|
|
206
|
-
|
|
207
174
|
toggle(internals.safeGetRowKey(primaryKey, row, rowIndex));
|
|
208
175
|
},
|
|
209
176
|
style: {
|
|
@@ -211,15 +178,12 @@ export function rowDetail() {
|
|
|
211
178
|
}
|
|
212
179
|
});
|
|
213
180
|
};
|
|
214
|
-
|
|
215
181
|
var _tableColumns = _toArray(tableColumns),
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
182
|
+
firstCol = _tableColumns[0],
|
|
183
|
+
others = _sliceInstanceProperty(_tableColumns).call(_tableColumns, 1);
|
|
219
184
|
var firstColRender = function firstColRender(value, row, rowIndex) {
|
|
220
185
|
if (row[rowDetailMetaKey]) {
|
|
221
186
|
var renderRowDetail = getTableRenderTemplate('rowDetail');
|
|
222
|
-
|
|
223
187
|
if (typeof renderRowDetail === 'function') {
|
|
224
188
|
return renderRowDetail({
|
|
225
189
|
row: row,
|
|
@@ -228,14 +192,11 @@ export function rowDetail() {
|
|
|
228
192
|
renderDetail: renderDetail
|
|
229
193
|
});
|
|
230
194
|
}
|
|
231
|
-
|
|
232
195
|
return renderDetail(row, rowIndex);
|
|
233
196
|
}
|
|
234
|
-
|
|
235
197
|
var content = internals.safeRender(firstCol, row, rowIndex);
|
|
236
198
|
return content;
|
|
237
199
|
};
|
|
238
|
-
|
|
239
200
|
tableColumns[0] = _extends(_extends({}, firstCol), {
|
|
240
201
|
render: firstColRender,
|
|
241
202
|
getSpanRect: function getSpanRect(value, row, rowIndex) {
|
|
@@ -251,12 +212,12 @@ export function rowDetail() {
|
|
|
251
212
|
}
|
|
252
213
|
});
|
|
253
214
|
tableColumns[expandColumnIndex] = _extends(_extends({}, expandCol), {
|
|
254
|
-
title: /*#__PURE__*/React.createElement("div", {
|
|
215
|
+
title: ( /*#__PURE__*/React.createElement("div", {
|
|
255
216
|
style: {
|
|
256
217
|
display: 'inline-block',
|
|
257
218
|
marginLeft: textOffset
|
|
258
219
|
}
|
|
259
|
-
}, internals.safeRenderHeader(expandCol)),
|
|
220
|
+
}, internals.safeRenderHeader(expandCol))),
|
|
260
221
|
render: render,
|
|
261
222
|
getCellProps: clickArea === 'cell' ? getCellProps : expandCol.getCellProps,
|
|
262
223
|
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, isOutOfRange) {
|
|
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 (!isOutOfRange) {
|
|
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 dragStartEvent = getDragEvent(startRowInfo, endRowInfo, {
|
|
@@ -117,36 +104,52 @@ export function rowDrag(opt) {
|
|
|
117
104
|
});
|
|
118
105
|
handleDragStrat(dragStartEvent);
|
|
119
106
|
var tableWidth = tableBody.clientWidth;
|
|
120
|
-
var startRowRects = startRowInfo.cell.getBoundingClientRect();
|
|
121
|
-
|
|
122
|
-
var startOffset = mouseDownEvent.clientY - startRowRects.
|
|
123
|
-
var dragElement = createDragElement(startRowRects, tableWidth, rowHeight);
|
|
124
|
-
|
|
107
|
+
var startRowRects = startRowInfo.cell.getBoundingClientRect();
|
|
108
|
+
// 光标位置距离初始拖拽行的偏移量
|
|
109
|
+
var startOffset = mouseDownEvent.clientY - startRowRects.top;
|
|
110
|
+
var dragElement = createDragElement(startRowRects, tableWidth, rowHeight);
|
|
111
|
+
// 可拖拽的范围
|
|
125
112
|
var dragRange = getDragRange(tableBody, {
|
|
126
113
|
startOffset: startOffset,
|
|
127
|
-
rowHeight:
|
|
114
|
+
rowHeight: rowHeight
|
|
128
115
|
});
|
|
116
|
+
var mousePosition = {
|
|
117
|
+
x: mouseDownEvent.clientX,
|
|
118
|
+
y: mouseDownEvent.clientY
|
|
119
|
+
};
|
|
129
120
|
var mousemove$ = fromEvent(window, 'mousemove');
|
|
130
121
|
var mouseup$ = fromEvent(window, 'mouseup');
|
|
122
|
+
var scrollCallback = function scrollCallback(event) {
|
|
123
|
+
// 在当前表格内滚动不处理
|
|
124
|
+
if (event.target === tableBody) return;
|
|
125
|
+
dragRange = getDragRange(tableBody, {
|
|
126
|
+
startOffset: startOffset,
|
|
127
|
+
rowHeight: rowHeight
|
|
128
|
+
});
|
|
129
|
+
var isOutOfRange = isOutOfDragRange(mousePosition, dragRange);
|
|
130
|
+
updateCurSorStyle(isOutOfRange);
|
|
131
|
+
};
|
|
132
|
+
document.addEventListener('scroll', scrollCallback, true);
|
|
131
133
|
var rowDrag$ = mousemove$.pipe(map(function (mouseMoveEvent) {
|
|
132
134
|
var clientX = mouseMoveEvent.clientX,
|
|
133
|
-
|
|
135
|
+
clientY = mouseMoveEvent.clientY;
|
|
134
136
|
var tagretRow = getTargetRowInfo(mouseMoveEvent.target, tableBody, dataSource);
|
|
135
|
-
|
|
136
137
|
if (tagretRow) {
|
|
137
138
|
endRowInfo = tagretRow;
|
|
138
139
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
var isMoveToTop = clientY - startOffset < targetRowRects.y;
|
|
140
|
+
var targetRowRects = endRowInfo.cell.getBoundingClientRect();
|
|
141
|
+
// 判断拖拽插入的位置,拖拽框上边框位于目标行之上则向上插入,否则向下插入
|
|
142
|
+
var isMoveToTop = clientY - startOffset < targetRowRects.top;
|
|
143
143
|
dragPosition = isMoveToTop ? 'top' : 'bottom';
|
|
144
144
|
isOutOfRange = isOutOfDragRange({
|
|
145
145
|
x: clientX,
|
|
146
146
|
y: clientY
|
|
147
147
|
}, dragRange);
|
|
148
|
+
mousePosition = {
|
|
149
|
+
x: clientX,
|
|
150
|
+
y: clientY
|
|
151
|
+
};
|
|
148
152
|
updateScrollPosition(mouseMoveEvent); // 拖拽到底时让滚动条可以滚动
|
|
149
|
-
|
|
150
153
|
updateDragElementPosition(dragElement, dragRange, {
|
|
151
154
|
x: clientX,
|
|
152
155
|
y: clientY,
|
|
@@ -162,8 +165,8 @@ export function rowDrag(opt) {
|
|
|
162
165
|
rowDrag$.subscribe({
|
|
163
166
|
next: function next(_ref2) {
|
|
164
167
|
var startRowInfo = _ref2.startRowInfo,
|
|
165
|
-
|
|
166
|
-
|
|
168
|
+
endRowInfo = _ref2.endRowInfo,
|
|
169
|
+
dragPosition = _ref2.dragPosition;
|
|
167
170
|
var dragMoveEvent = getDragEvent(startRowInfo, endRowInfo, {
|
|
168
171
|
isFinished: false,
|
|
169
172
|
dragPosition: dragPosition
|
|
@@ -178,31 +181,27 @@ export function rowDrag(opt) {
|
|
|
178
181
|
handleDragEnd(dragEndEvent, isOutOfRange);
|
|
179
182
|
removeDragElement(dragElement);
|
|
180
183
|
removeCurSorStyle();
|
|
184
|
+
document.removeEventListener('scroll', scrollCallback, true);
|
|
181
185
|
}
|
|
182
186
|
});
|
|
183
187
|
};
|
|
184
|
-
|
|
185
188
|
var rowDragColumn = (opt === null || opt === void 0 ? void 0 : opt.rowDragColumn) || defaultRowDragColumn;
|
|
186
189
|
pipeline.setFeatureOptions('rowDragColumnKey', rowDragColumn.code);
|
|
187
|
-
|
|
188
190
|
var nextColumns = _sliceInstanceProperty(_context = pipeline.getColumns()).call(_context);
|
|
189
|
-
|
|
190
191
|
nextColumns.unshift(rowDragColumn);
|
|
191
192
|
pipeline.columns(nextColumns);
|
|
192
193
|
pipeline.addTableProps({
|
|
193
194
|
onMouseDown: onMouseDown
|
|
194
195
|
});
|
|
195
196
|
pipeline.appendRowPropsGetter(function (row, rowIndex) {
|
|
196
|
-
var _cx;
|
|
197
|
-
|
|
198
197
|
var rowDragEvent = pipeline.getStateAtKey(rowDragKey) || {};
|
|
199
198
|
var startRowIndex = rowDragEvent.startRowIndex,
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
199
|
+
endRowIndex = rowDragEvent.endRowIndex,
|
|
200
|
+
isFinished = rowDragEvent.isFinished,
|
|
201
|
+
dragPosition = rowDragEvent.dragPosition;
|
|
203
202
|
var isFooterCell = row[pipeline.getFeatureOptions('footerRowMetaKey')];
|
|
204
203
|
if (isFooterCell || isFinished || rowIndex !== startRowIndex && rowIndex !== endRowIndex) return;
|
|
205
|
-
var className = cx((
|
|
204
|
+
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'));
|
|
206
205
|
return {
|
|
207
206
|
className: className
|
|
208
207
|
};
|
|
@@ -210,7 +209,6 @@ export function rowDrag(opt) {
|
|
|
210
209
|
return pipeline;
|
|
211
210
|
};
|
|
212
211
|
}
|
|
213
|
-
|
|
214
212
|
function getTargetRowInfo(target, tableBody, record) {
|
|
215
213
|
while (target && tableBody.contains(target)) {
|
|
216
214
|
if (target.getAttribute('data-role') === 'table-cell') {
|
|
@@ -226,41 +224,33 @@ function getTargetRowInfo(target, tableBody, record) {
|
|
|
226
224
|
cell: target
|
|
227
225
|
};
|
|
228
226
|
}
|
|
229
|
-
|
|
230
227
|
target = target.parentElement;
|
|
231
228
|
}
|
|
232
|
-
|
|
233
229
|
return null;
|
|
234
230
|
}
|
|
235
|
-
|
|
236
231
|
function isEleInFooter(target) {
|
|
237
232
|
while (target && !target.classList.contains(Classes.artTable)) {
|
|
238
233
|
if (target.classList.contains(Classes.tableFooter)) {
|
|
239
234
|
return true;
|
|
240
235
|
}
|
|
241
|
-
|
|
242
236
|
target = target.parentElement;
|
|
243
237
|
}
|
|
244
|
-
|
|
245
238
|
return false;
|
|
246
239
|
}
|
|
247
|
-
|
|
248
240
|
function createDragElement(rects, tableWidth, rowHeight) {
|
|
249
241
|
var _context2, _context3, _context4;
|
|
250
|
-
|
|
251
242
|
var x = rects.x,
|
|
252
|
-
|
|
243
|
+
y = rects.y;
|
|
253
244
|
var dragMoveElement = document.createElement('div');
|
|
254
245
|
dragMoveElement.className = cx(Classes.rowDragElement);
|
|
255
246
|
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;");
|
|
256
247
|
document.body.appendChild(dragMoveElement);
|
|
257
248
|
return dragMoveElement;
|
|
258
249
|
}
|
|
259
|
-
|
|
260
250
|
function updateDragElementPosition(element, dragRange, _ref3) {
|
|
261
251
|
var x = _ref3.x,
|
|
262
|
-
|
|
263
|
-
|
|
252
|
+
y = _ref3.y,
|
|
253
|
+
startOffset = _ref3.startOffset;
|
|
264
254
|
var validPosition = getValidPosition({
|
|
265
255
|
x: x,
|
|
266
256
|
y: y
|
|
@@ -268,11 +258,9 @@ function updateDragElementPosition(element, dragRange, _ref3) {
|
|
|
268
258
|
element.style.top = validPosition.y - startOffset + 'px';
|
|
269
259
|
return element;
|
|
270
260
|
}
|
|
271
|
-
|
|
272
261
|
function removeDragElement(element) {
|
|
273
262
|
document.body.removeChild(element);
|
|
274
263
|
}
|
|
275
|
-
|
|
276
264
|
function updateCurSorStyle(isOutOfRange) {
|
|
277
265
|
if (isOutOfRange) {
|
|
278
266
|
document.body.style.cursor = 'no-drop';
|
|
@@ -280,34 +268,31 @@ function updateCurSorStyle(isOutOfRange) {
|
|
|
280
268
|
document.body.style.cursor = 'move';
|
|
281
269
|
}
|
|
282
270
|
}
|
|
283
|
-
|
|
284
271
|
function removeCurSorStyle() {
|
|
285
272
|
document.body.style.cursor = 'default';
|
|
286
273
|
}
|
|
287
|
-
|
|
288
274
|
function getDragRange(tableBody, _ref4) {
|
|
289
275
|
var startOffset = _ref4.startOffset,
|
|
290
|
-
|
|
276
|
+
rowHeight = _ref4.rowHeight;
|
|
291
277
|
var tableBodyClientRect = tableBody.getBoundingClientRect();
|
|
292
278
|
var height = tableBodyClientRect.height,
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
279
|
+
width = tableBodyClientRect.width,
|
|
280
|
+
top = tableBodyClientRect.top,
|
|
281
|
+
left = tableBodyClientRect.left;
|
|
296
282
|
return {
|
|
297
|
-
minX:
|
|
298
|
-
maxX:
|
|
299
|
-
minY:
|
|
300
|
-
maxY:
|
|
283
|
+
minX: left,
|
|
284
|
+
maxX: left + width,
|
|
285
|
+
minY: top - rowHeight + startOffset,
|
|
286
|
+
maxY: top + height + startOffset
|
|
301
287
|
};
|
|
302
288
|
}
|
|
303
|
-
|
|
304
289
|
function getValidPosition(position, dragRange) {
|
|
305
290
|
var x = position.x,
|
|
306
|
-
|
|
291
|
+
y = position.y;
|
|
307
292
|
var minX = dragRange.minX,
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
293
|
+
maxX = dragRange.maxX,
|
|
294
|
+
minY = dragRange.minY,
|
|
295
|
+
maxY = dragRange.maxY;
|
|
311
296
|
var newX = x < minX ? minX : x > maxX ? maxX : x;
|
|
312
297
|
var newY = y < minY ? minY : y > maxY ? maxY : y;
|
|
313
298
|
return {
|
|
@@ -315,13 +300,12 @@ function getValidPosition(position, dragRange) {
|
|
|
315
300
|
y: newY
|
|
316
301
|
};
|
|
317
302
|
}
|
|
318
|
-
|
|
319
303
|
function isOutOfDragRange(position, dragRange) {
|
|
320
304
|
var x = position.x,
|
|
321
|
-
|
|
305
|
+
y = position.y;
|
|
322
306
|
var minX = dragRange.minX,
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
307
|
+
maxX = dragRange.maxX,
|
|
308
|
+
minY = dragRange.minY,
|
|
309
|
+
maxY = dragRange.maxY;
|
|
326
310
|
return x > maxX || x < minX || y > maxY || y < minY;
|
|
327
311
|
}
|