@zhenliang/sheet 0.1.4 → 0.1.7-3.beta.0
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/assets/arrow-mac-down.svg +19 -0
- package/dist/assets/arrow-mac-right.svg +17 -0
- package/dist/assets/arrow-windows-down.svg +17 -0
- package/dist/assets/arrow-windows-right.svg +17 -0
- package/dist/core/config.d.ts +3 -0
- package/dist/core/config.js +4 -1
- package/dist/core/editor/cascaderEditor/index.d.ts +1 -1
- package/dist/core/editor/cascaderEditor/index.js +12 -11
- package/dist/core/editor/cascaderEditor/index.less +15 -7
- package/dist/core/editor/dateEditor/index.js +31 -8
- package/dist/core/editor/dateEditor/index.less +9 -2
- package/dist/core/editor/numberEditor/index.d.ts +3 -1
- package/dist/core/editor/numberEditor/index.js +62 -27
- package/dist/core/editor/numberEditor/index.less +3 -2
- package/dist/core/editor/selectEditor/index.d.ts +1 -1
- package/dist/core/editor/selectEditor/index.js +34 -19
- package/dist/core/editor/selectEditor/index.less +16 -5
- package/dist/core/reducers/index.d.ts +2 -2
- package/dist/core/reducers/index.js +8 -1
- package/dist/core/reducers/keyboardReducer.js +39 -9
- package/dist/core/reducers/mouseReducer.js +115 -11
- package/dist/core/reducers/sideEffectReducer.d.ts +1 -1
- package/dist/core/reducers/sideEffectReducer.js +146 -41
- package/dist/core/reducers/stateReducer.d.ts +1 -0
- package/dist/core/reducers/stateReducer.js +96 -27
- package/dist/core/sheet/Cell.d.ts +1 -1
- package/dist/core/sheet/Cell.js +33 -24
- package/dist/core/sheet/Control.d.ts +21 -0
- package/dist/core/sheet/Control.js +83 -0
- package/dist/core/sheet/DataEditor.js +3 -3
- package/dist/core/sheet/DefaultCell.d.ts +8 -3
- package/dist/core/sheet/DefaultCell.js +12 -8
- package/dist/core/sheet/DefaultRow.js +3 -9
- package/dist/core/sheet/DefaultRowMapper.d.ts +3 -0
- package/dist/core/sheet/DefaultRowMapper.js +22 -6
- package/dist/core/sheet/DefaultShell.js +1 -1
- package/dist/core/sheet/Event.d.ts +1 -1
- package/dist/core/sheet/Event.js +1 -1
- package/dist/core/sheet/Menu.d.ts +6 -0
- package/dist/core/sheet/Menu.js +21 -0
- package/dist/core/sheet/ValueViewer.js +1 -1
- package/dist/core/sheet/index.js +249 -88
- package/dist/core/sheet/index.less +199 -107
- package/dist/core/sheet/searchInput.d.ts +15 -0
- package/dist/core/sheet/searchInput.js +78 -0
- package/dist/core/sheet/useCellEvent.js +1 -1
- package/dist/core/sheet/useContextMenu.d.ts +1 -1
- package/dist/core/sheet/useContextMenu.js +13 -10
- package/dist/core/sheet/useKeyBoardEvent.js +19 -2
- package/dist/core/sheet/useMouseEvent.js +19 -12
- package/dist/core/sheet/useSearchInput.d.ts +11 -0
- package/dist/core/sheet/useSearchInput.js +65 -0
- package/dist/core/sheet/useSelectVisible.d.ts +1 -1
- package/dist/core/sheet/useSelectVisible.js +17 -7
- package/dist/core/sheet/useVirtualList.d.ts +10 -1
- package/dist/core/sheet/useVirtualList.js +44 -28
- package/dist/core/sheet/var.less +41 -34
- package/dist/core/shell/draggableShell/index.d.ts +4 -1
- package/dist/core/shell/draggableShell/index.js +133 -50
- package/dist/core/shell/tableShell.d.ts +4 -1
- package/dist/core/shell/tableShell.js +82 -34
- package/dist/core/table/addButton.d.ts +6 -0
- package/dist/core/table/addButton.js +103 -0
- package/dist/core/table/events.d.ts +1 -3
- package/dist/core/table/events.js +30 -35
- package/dist/core/table/index.js +97 -189
- package/dist/core/table/index.less +12 -0
- package/dist/core/table/useGroupConfig.d.ts +4 -1
- package/dist/core/table/useGroupConfig.js +139 -14
- package/dist/core/table/useRowSelection.d.ts +3 -0
- package/dist/core/table/useRowSelection.js +68 -2
- package/dist/core/util.d.ts +10 -4
- package/dist/core/util.js +121 -69
- package/dist/core/viewer/btnViewer/index.js +3 -3
- package/dist/core/viewer/cascaderViewer/index.js +6 -1
- package/dist/core/viewer/checkViewer/index.js +2 -2
- package/dist/core/viewer/editViewer/index.js +3 -3
- package/dist/core/viewer/groupViewer/index.js +26 -10
- package/dist/core/viewer/selectorViewer/index.js +7 -3
- package/dist/core/viewer/switchViewer/index.js +10 -4
- package/dist/example/antComponent.d.ts +1 -1
- package/dist/example/antComponent.js +63 -37
- package/dist/example/basic.d.ts +1 -1
- package/dist/example/basic.js +20 -14
- package/dist/example/ellipsis.d.ts +1 -1
- package/dist/example/ellipsis.js +3 -2
- package/dist/example/fixed.d.ts +1 -1
- package/dist/example/fixed.js +3 -2
- package/dist/example/group.js +40 -17
- package/dist/example/selection.d.ts +1 -1
- package/dist/example/selection.js +9 -8
- package/dist/example/sheet.d.ts +1 -1
- package/dist/example/sheet.js +21 -22
- package/dist/example/valuationAnalyze.d.ts +1 -0
- package/dist/example/valuationAnalyze.js +3 -4
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/useEventBus.d.ts +1 -0
- package/dist/hooks/useEventBus.js +2 -2
- package/dist/hooks/useGroupConfig.d.ts +4 -0
- package/dist/hooks/useGroupConfig.js +5 -0
- package/dist/hooks/useKeyboard.d.ts +5 -2
- package/dist/hooks/useKeyboard.js +17 -3
- package/dist/hooks/useMiddlewareReducer.d.ts +5 -5
- package/dist/hooks/useMiddlewareReducer.js +3 -3
- package/dist/hooks/useMouse.d.ts +1 -1
- package/dist/hooks/useMouse.js +7 -7
- package/dist/hooks/useSetState.js +7 -7
- package/dist/hooks/useSheetEvent.d.ts +1 -1
- package/dist/hooks/useSheetEvent.js +2 -2
- package/dist/hooks/useWidthConfig.d.ts +3 -3
- package/dist/hooks/useWidthConfig.js +2 -2
- package/dist/standardUtils/index.d.ts +1 -1
- package/dist/standardUtils/index.js +1 -1
- package/dist/type/sheet.d.ts +77 -31
- package/dist/type/sheetTable.d.ts +21 -12
- package/package.json +7 -4
|
@@ -1,11 +1,23 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
3
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
5
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
6
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
7
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
8
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
9
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
10
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
1
11
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
12
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
13
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
14
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
5
|
-
function _iterableToArrayLimit(
|
|
15
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
16
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
-
import { flatten } from 'lodash';
|
|
8
|
-
import { useCallback, useEffect, useMemo, useRef, useState } from
|
|
17
|
+
import { flatten, isNil } from 'lodash';
|
|
18
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "../../../node_modules/@types/react";
|
|
19
|
+
import { groupConfigToGroupMap } from "../util";
|
|
20
|
+
import { GroupViewer } from "../viewer";
|
|
9
21
|
import { dataSourceToRowConfig } from "./util";
|
|
10
22
|
export var useGroupConfig = function useGroupConfig(dataSource, tableGroupConfig, hasChildren) {
|
|
11
23
|
var _useState = useState(),
|
|
@@ -26,26 +38,139 @@ export var useGroupConfig = function useGroupConfig(dataSource, tableGroupConfig
|
|
|
26
38
|
}, [dataSource]);
|
|
27
39
|
useEffect(function () {
|
|
28
40
|
if (!hasChildren) return;
|
|
29
|
-
|
|
30
|
-
var rowConfig =
|
|
41
|
+
var computedRowGroup = dataSourceToRowConfig(dataSource, tableGroupConfig === null || tableGroupConfig === void 0 ? void 0 : tableGroupConfig.defaultOpen);
|
|
42
|
+
var rowConfig = computedRowGroup;
|
|
43
|
+
var _ref = tableGroupConfig || {},
|
|
44
|
+
rowGroup = _ref.rowGroup;
|
|
45
|
+
if (rowGroup) {
|
|
46
|
+
var notEqual = rowGroup.groups.length !== computedRowGroup.groups.length;
|
|
47
|
+
var notSameGroup = notEqual || rowGroup.groups.some(function (group, index) {
|
|
48
|
+
return computedRowGroup.groups[index].groupStart !== group.groupStart || computedRowGroup.groups[index].groupEnd !== group.groupEnd;
|
|
49
|
+
});
|
|
50
|
+
if (!notSameGroup) {
|
|
51
|
+
rowConfig = rowGroup;
|
|
52
|
+
} else {
|
|
53
|
+
var _tableGroupConfig$onC;
|
|
54
|
+
tableGroupConfig === null || tableGroupConfig === void 0 || (_tableGroupConfig$onC = tableGroupConfig.onChange) === null || _tableGroupConfig$onC === void 0 || _tableGroupConfig$onC.call(tableGroupConfig, computedRowGroup);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
31
57
|
if (groupConfigRef.current) {
|
|
32
|
-
|
|
33
|
-
var _groupConfigRef$curre;
|
|
34
|
-
var groupName =
|
|
35
|
-
|
|
58
|
+
rowConfig.groups.forEach(function (_ref2, index) {
|
|
59
|
+
var _groupConfigRef$curre, _groupConfigRef$curre2;
|
|
60
|
+
var groupName = _ref2.groupName,
|
|
61
|
+
newGroupStart = _ref2.groupStart,
|
|
62
|
+
newGroupEnd = _ref2.groupEnd;
|
|
63
|
+
var rowIndex = (_groupConfigRef$curre = (_groupConfigRef$curre2 = groupConfigRef.current) === null || _groupConfigRef$curre2 === void 0 ? void 0 : _groupConfigRef$curre2.groups.findIndex(function (item) {
|
|
36
64
|
return item.groupName === groupName;
|
|
37
|
-
});
|
|
38
|
-
|
|
65
|
+
})) !== null && _groupConfigRef$curre !== void 0 ? _groupConfigRef$curre : -1;
|
|
66
|
+
if (rowIndex >= 0) {
|
|
67
|
+
var _groupConfigRef$curre3, _groupConfigRef$curre4;
|
|
68
|
+
var hasNewLine = false;
|
|
69
|
+
var currentOld = (_groupConfigRef$curre3 = groupConfigRef.current) === null || _groupConfigRef$curre3 === void 0 ? void 0 : _groupConfigRef$curre3.groups[rowIndex];
|
|
70
|
+
if (currentOld && !isNil(currentOld.groupEnd) && !isNil(currentOld.groupStart)) {
|
|
71
|
+
var oldLength = currentOld.groupEnd - currentOld.groupStart;
|
|
72
|
+
var newLength = newGroupEnd - newGroupStart;
|
|
73
|
+
hasNewLine = newLength > oldLength;
|
|
74
|
+
} else {
|
|
75
|
+
hasNewLine = true;
|
|
76
|
+
}
|
|
77
|
+
rowConfig.groupOpen[index] = hasNewLine ? true : (_groupConfigRef$curre4 = groupConfigRef.current) === null || _groupConfigRef$curre4 === void 0 ? void 0 : _groupConfigRef$curre4.groupOpen[rowIndex];
|
|
78
|
+
} else {
|
|
79
|
+
// 新子行
|
|
80
|
+
rowConfig.groupOpen[index] = true;
|
|
81
|
+
}
|
|
39
82
|
});
|
|
40
83
|
}
|
|
41
84
|
setGroupConfig(rowConfig);
|
|
42
|
-
console.log('groupConfigEffect', rowConfig.groups, rowConfig.groupOpen);
|
|
43
85
|
groupConfigRef.current = rowConfig;
|
|
44
86
|
}, [dataSource.length, childrenLength, hasChildren]);
|
|
45
|
-
console.log('groupConfigEffect', dataSource.length, childrenLength);
|
|
46
87
|
var handleGroupChange = useCallback(function (value) {
|
|
88
|
+
var _tableGroupConfig$onC2;
|
|
47
89
|
setGroupConfig(value);
|
|
90
|
+
tableGroupConfig === null || tableGroupConfig === void 0 || (_tableGroupConfig$onC2 = tableGroupConfig.onChange) === null || _tableGroupConfig$onC2 === void 0 || _tableGroupConfig$onC2.call(tableGroupConfig, value);
|
|
48
91
|
groupConfigRef.current = value;
|
|
49
92
|
}, [setGroupConfig]);
|
|
50
|
-
|
|
93
|
+
var memoConfig = useMemo(function () {
|
|
94
|
+
var configMap = groupConfigToGroupMap({
|
|
95
|
+
groups: groupConfig === null || groupConfig === void 0 ? void 0 : groupConfig.groups,
|
|
96
|
+
groupOpen: groupConfig === null || groupConfig === void 0 ? void 0 : groupConfig.groupOpen
|
|
97
|
+
});
|
|
98
|
+
return _objectSpread(_objectSpread({}, groupConfig), {}, {
|
|
99
|
+
configMap: configMap
|
|
100
|
+
});
|
|
101
|
+
}, [groupConfig]);
|
|
102
|
+
return [memoConfig, handleGroupChange];
|
|
103
|
+
};
|
|
104
|
+
export var formatGroupData = function formatGroupData(param) {
|
|
105
|
+
var dataSource = param.dataSource,
|
|
106
|
+
columns = param.columns,
|
|
107
|
+
rowKey = param.rowKey;
|
|
108
|
+
var data = [];
|
|
109
|
+
var currentIndex = 0;
|
|
110
|
+
dataSource.forEach(function (item, row) {
|
|
111
|
+
var groupList = [item];
|
|
112
|
+
if (item.children) {
|
|
113
|
+
groupList = [item].concat(_toConsumableArray(item.children));
|
|
114
|
+
}
|
|
115
|
+
groupList.forEach(function (itemRow) {
|
|
116
|
+
var _columns$, _columns$2, _columns$3, _columns$4;
|
|
117
|
+
var dataRow = [];
|
|
118
|
+
var rowId = itemRow.id || itemRow.key || String(currentIndex);
|
|
119
|
+
if (rowKey) {
|
|
120
|
+
if (rowKey instanceof Function) {
|
|
121
|
+
rowId = rowKey(itemRow, row);
|
|
122
|
+
} else {
|
|
123
|
+
rowId = itemRow[rowKey];
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
dataRow.push({
|
|
127
|
+
id: rowId,
|
|
128
|
+
row: currentIndex,
|
|
129
|
+
col: -2,
|
|
130
|
+
editable: false,
|
|
131
|
+
readonly: true,
|
|
132
|
+
fixed: 'left',
|
|
133
|
+
valueViewer: function valueViewer() {
|
|
134
|
+
return null;
|
|
135
|
+
},
|
|
136
|
+
className: 'sheet-control sheet-row-cursor'
|
|
137
|
+
});
|
|
138
|
+
dataRow.push({
|
|
139
|
+
id: rowId,
|
|
140
|
+
row: currentIndex,
|
|
141
|
+
col: -1,
|
|
142
|
+
editable: !((columns === null || columns === void 0 ? void 0 : columns[0].editable) instanceof Function) ? columns === null || columns === void 0 || (_columns$ = columns[0]) === null || _columns$ === void 0 ? void 0 : _columns$.editable : columns === null || columns === void 0 || (_columns$2 = columns[0]) === null || _columns$2 === void 0 ? void 0 : _columns$2.editable('', itemRow, currentIndex),
|
|
143
|
+
readonly: !((columns === null || columns === void 0 ? void 0 : columns[0].readonly) instanceof Function) ? columns === null || columns === void 0 || (_columns$3 = columns[0]) === null || _columns$3 === void 0 ? void 0 : _columns$3.readonly : columns === null || columns === void 0 || (_columns$4 = columns[0]) === null || _columns$4 === void 0 ? void 0 : _columns$4.readonly('', itemRow, currentIndex),
|
|
144
|
+
align: 'center',
|
|
145
|
+
// fixed: 'unset',
|
|
146
|
+
valueViewer: GroupViewer,
|
|
147
|
+
className: 'sheet-control'
|
|
148
|
+
});
|
|
149
|
+
columns.forEach(function (colInfo, col) {
|
|
150
|
+
var _colInfo$readonly, _colInfo$editable, _colInfo$cellConfig, _colInfo$cellConfig2, _colInfo$cellConfig3;
|
|
151
|
+
var value = itemRow[colInfo.dataIndex || ''];
|
|
152
|
+
dataRow.push({
|
|
153
|
+
id: rowId,
|
|
154
|
+
value: value,
|
|
155
|
+
record: itemRow,
|
|
156
|
+
readonly: !(colInfo.readonly instanceof Function) ? (_colInfo$readonly = colInfo.readonly) !== null && _colInfo$readonly !== void 0 ? _colInfo$readonly : false : colInfo.readonly(value, itemRow, currentIndex, col),
|
|
157
|
+
align: colInfo.align,
|
|
158
|
+
fixed: colInfo.fixed,
|
|
159
|
+
editable: !(colInfo.editable instanceof Function) ? (_colInfo$editable = colInfo.editable) !== null && _colInfo$editable !== void 0 ? _colInfo$editable : true : colInfo.editable(value, itemRow, currentIndex, col),
|
|
160
|
+
valueViewer: colInfo.render ? colInfo.render : undefined,
|
|
161
|
+
dataEditor: colInfo.editor ? colInfo.editor : undefined,
|
|
162
|
+
searchKey: colInfo.searchKey,
|
|
163
|
+
row: currentIndex,
|
|
164
|
+
className: !(((_colInfo$cellConfig = colInfo.cellConfig) === null || _colInfo$cellConfig === void 0 ? void 0 : _colInfo$cellConfig.className) instanceof Function) ? (_colInfo$cellConfig2 = colInfo.cellConfig) === null || _colInfo$cellConfig2 === void 0 ? void 0 : _colInfo$cellConfig2.className : (_colInfo$cellConfig3 = colInfo.cellConfig) === null || _colInfo$cellConfig3 === void 0 ? void 0 : _colInfo$cellConfig3.className(value, itemRow, currentIndex),
|
|
165
|
+
dataIndex: colInfo.dataIndex,
|
|
166
|
+
key: colInfo.key,
|
|
167
|
+
allowClear: colInfo.allowClear,
|
|
168
|
+
col: col
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
data.push(dataRow);
|
|
172
|
+
currentIndex++;
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
return data;
|
|
51
176
|
};
|
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
import { SheetTableType } from "../..";
|
|
2
2
|
export declare const useRowSelection: (dataSource: Record<string, unknown>[], rowSelection?: SheetTableType.TableRowSelection, hasChildren?: boolean) => [boolean[], (value: boolean[]) => void];
|
|
3
|
+
export declare const formatSelectionData: (param: Pick<SheetTableType.TableProps, "columns" | "dataSource" | "rowKey" | "rowSelection"> & {
|
|
4
|
+
checked: boolean[];
|
|
5
|
+
}) => any[][];
|
|
@@ -2,9 +2,10 @@ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArra
|
|
|
2
2
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
3
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
4
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
5
|
-
function _iterableToArrayLimit(
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
6
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
-
import {
|
|
7
|
+
import { CheckViewer } from "../..";
|
|
8
|
+
import { useEffect, useRef, useState } from "../../../node_modules/@types/react";
|
|
8
9
|
export var useRowSelection = function useRowSelection(dataSource, rowSelection, hasChildren) {
|
|
9
10
|
var _dataSource$length;
|
|
10
11
|
var _useState = useState(Array((_dataSource$length = dataSource === null || dataSource === void 0 ? void 0 : dataSource.length) !== null && _dataSource$length !== void 0 ? _dataSource$length : 0).fill(false)),
|
|
@@ -21,4 +22,69 @@ export var useRowSelection = function useRowSelection(dataSource, rowSelection,
|
|
|
21
22
|
checkedRowRef.current = currentEmpty;
|
|
22
23
|
}, [dataSource.length, hasChildren, rowSelection]);
|
|
23
24
|
return [checkedRow, setCheckedRow];
|
|
25
|
+
};
|
|
26
|
+
export var formatSelectionData = function formatSelectionData(param) {
|
|
27
|
+
var dataSource = param.dataSource,
|
|
28
|
+
columns = param.columns,
|
|
29
|
+
checked = param.checked,
|
|
30
|
+
rowKey = param.rowKey,
|
|
31
|
+
rowSelection = param.rowSelection;
|
|
32
|
+
return dataSource.map(function (item, row) {
|
|
33
|
+
var rowId = item.id || item.key || String(row);
|
|
34
|
+
if (rowKey) {
|
|
35
|
+
if (rowKey instanceof Function) {
|
|
36
|
+
rowId = rowKey(item, row);
|
|
37
|
+
} else {
|
|
38
|
+
rowId = item[rowKey];
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
var rows = [];
|
|
42
|
+
rows.push({
|
|
43
|
+
id: rowId,
|
|
44
|
+
row: row,
|
|
45
|
+
col: -2,
|
|
46
|
+
editable: false,
|
|
47
|
+
readonly: true,
|
|
48
|
+
fixed: 'left',
|
|
49
|
+
valueViewer: function valueViewer() {
|
|
50
|
+
return null;
|
|
51
|
+
},
|
|
52
|
+
className: 'sheet-control sheet-row-cursor'
|
|
53
|
+
});
|
|
54
|
+
if (rowSelection) {
|
|
55
|
+
rows.push({
|
|
56
|
+
id: rowId,
|
|
57
|
+
row: row,
|
|
58
|
+
col: -1,
|
|
59
|
+
readonly: true,
|
|
60
|
+
align: 'center',
|
|
61
|
+
value: checked[row],
|
|
62
|
+
valueViewer: CheckViewer,
|
|
63
|
+
className: 'sheet-control'
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
columns.forEach(function (colInfo, col) {
|
|
67
|
+
var _colInfo$readonly, _colInfo$editable, _colInfo$cellConfig, _colInfo$cellConfig2, _colInfo$cellConfig3;
|
|
68
|
+
var value = item[colInfo.dataIndex || ''];
|
|
69
|
+
rows.push({
|
|
70
|
+
id: rowId,
|
|
71
|
+
value: value,
|
|
72
|
+
record: item,
|
|
73
|
+
readonly: !(colInfo.readonly instanceof Function) ? (_colInfo$readonly = colInfo.readonly) !== null && _colInfo$readonly !== void 0 ? _colInfo$readonly : false : colInfo.readonly(value, item, row, col),
|
|
74
|
+
align: colInfo.align,
|
|
75
|
+
fixed: colInfo.fixed,
|
|
76
|
+
editable: !(colInfo.editable instanceof Function) ? (_colInfo$editable = colInfo.editable) !== null && _colInfo$editable !== void 0 ? _colInfo$editable : true : colInfo.editable(value, item, row),
|
|
77
|
+
valueViewer: colInfo.render ? colInfo.render : undefined,
|
|
78
|
+
dataEditor: colInfo.editor ? colInfo.editor : undefined,
|
|
79
|
+
searchKey: colInfo.searchKey,
|
|
80
|
+
className: !(((_colInfo$cellConfig = colInfo.cellConfig) === null || _colInfo$cellConfig === void 0 ? void 0 : _colInfo$cellConfig.className) instanceof Function) ? (_colInfo$cellConfig2 = colInfo.cellConfig) === null || _colInfo$cellConfig2 === void 0 ? void 0 : _colInfo$cellConfig2.className : (_colInfo$cellConfig3 = colInfo.cellConfig) === null || _colInfo$cellConfig3 === void 0 ? void 0 : _colInfo$cellConfig3.className(value, item, row),
|
|
81
|
+
row: row,
|
|
82
|
+
col: col,
|
|
83
|
+
dataIndex: colInfo.dataIndex,
|
|
84
|
+
allowClear: colInfo.allowClear,
|
|
85
|
+
key: colInfo.key
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
return rows;
|
|
89
|
+
});
|
|
24
90
|
};
|
package/dist/core/util.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export declare function flatRowColIndex(start?: SheetType.CellPosition, end?: Sh
|
|
|
14
14
|
export declare function flatRowCol(start?: SheetType.CellPosition, end?: SheetType.CellPosition): string[];
|
|
15
15
|
export declare function isInputKey(keyCode: number): boolean;
|
|
16
16
|
export declare function classNames(...args: (string | null | undefined)[]): string;
|
|
17
|
-
export declare function stringToClipboardData(str: string): void;
|
|
17
|
+
export declare function stringToClipboardData(str: string, count: number): void;
|
|
18
18
|
export declare const defaultParsePaste: (str: string) => string[][];
|
|
19
19
|
export declare function clipboardDataToString(): Promise<string[][]>;
|
|
20
20
|
export declare function formatDataToCell({ start, editing, end, data, pasteData, groupConfig, freePaste, }: Partial<SheetType.UpdateStateType> & {
|
|
@@ -31,9 +31,8 @@ export declare const defaultValueRenderer: (cell: SheetType.Cell) => string | nu
|
|
|
31
31
|
export declare function renderValue(cell: SheetType.Cell): string | number;
|
|
32
32
|
export declare const optionsToValuesFromLabelOrValue: (options: SheetType.OptionsType[], val: string) => string[];
|
|
33
33
|
export declare const optionsTransferToValue: (options: SheetType.OptionsType[], val: string, key?: string) => string[];
|
|
34
|
-
export declare const optionsTransferToValue2: (options?: SheetType.OptionsType[], value?: string, path?: string[]) => string[];
|
|
35
34
|
export declare const valuesTransferToLabel: (options?: SheetType.OptionsType[], value?: string) => string | null;
|
|
36
|
-
export declare const groupConfigToGroupMap: (rowGroupConfig?: SheetType.RowGroupConfig) => Map<number, SheetType.RowGroup & {
|
|
35
|
+
export declare const groupConfigToGroupMap: (rowGroupConfig?: Partial<SheetType.RowGroupConfig>) => Map<number, SheetType.RowGroup & {
|
|
37
36
|
isStart: boolean;
|
|
38
37
|
isOpen: boolean;
|
|
39
38
|
}>;
|
|
@@ -41,7 +40,8 @@ export declare const changeGroupConfig: (rowGroupConfig: SheetType.RowGroupConfi
|
|
|
41
40
|
add?: number | undefined;
|
|
42
41
|
remove?: number | undefined;
|
|
43
42
|
}) => SheetType.RowGroupConfig;
|
|
44
|
-
export declare const rowToActualRow: (row: number, groupConfig?: SheetType.RowGroupConfig) => number;
|
|
43
|
+
export declare const rowToActualRow: (row: number, groupConfig?: SheetType.RowGroupConfig, max?: number) => number;
|
|
44
|
+
export declare const rowToCountRow: (row: number, groupConfig: SheetType.RowGroupConfig, max: number) => number;
|
|
45
45
|
export declare const getRowHeight: (container: HTMLSpanElement) => number;
|
|
46
46
|
export declare const getNextVisibleRow: (row: number, maxRow: number, groupMap?: Map<number, SheetType.RowGroup & {
|
|
47
47
|
isStart: boolean;
|
|
@@ -56,3 +56,9 @@ export declare const calcMenuPosition: ({ tableElement, menuElement, x, y, }: {
|
|
|
56
56
|
top: number;
|
|
57
57
|
left: number;
|
|
58
58
|
};
|
|
59
|
+
export declare const isFreezedCell: (row: number, col: number, data?: SheetType.Cell[][]) => boolean;
|
|
60
|
+
export declare const stripRowIndex: (data: SheetType.Cell[][]) => {
|
|
61
|
+
startIndex: number;
|
|
62
|
+
endIndex: number;
|
|
63
|
+
};
|
|
64
|
+
export declare const ensureFocus: (container?: HTMLElement | null) => void;
|
package/dist/core/util.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
function _typeof(
|
|
2
|
-
function ownKeys(
|
|
3
|
-
function _objectSpread(
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
4
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
-
function _toPropertyKey(
|
|
6
|
-
function _toPrimitive(
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
6
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
7
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
8
8
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
9
9
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
@@ -14,6 +14,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
14
14
|
/* eslint-disable no-param-reassign */
|
|
15
15
|
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
16
16
|
|
|
17
|
+
import { message } from 'antd';
|
|
17
18
|
import { cloneDeep, get, isNil, range } from 'lodash';
|
|
18
19
|
export function findParentTd(el) {
|
|
19
20
|
if (!el) return null;
|
|
@@ -85,16 +86,18 @@ export function classNames() {
|
|
|
85
86
|
}
|
|
86
87
|
return args.filter(Boolean).join(' ');
|
|
87
88
|
}
|
|
88
|
-
export function stringToClipboardData(str) {
|
|
89
|
+
export function stringToClipboardData(str, count) {
|
|
89
90
|
// navigator.clipboard.writeText(str);
|
|
90
91
|
navigator.clipboard.writeText(str).then(function () {
|
|
91
|
-
console.log('复制成功');
|
|
92
|
+
// console.log('复制成功');
|
|
93
|
+
message.success("\u5DF2\u590D\u5236".concat(count, "\u4E2A\u5355\u5143\u683C"));
|
|
92
94
|
}, function () {
|
|
93
|
-
console.error('复制失败');
|
|
95
|
+
// console.error('复制失败');
|
|
96
|
+
message.info("\u590D\u5236\u5931\u8D25");
|
|
94
97
|
});
|
|
95
98
|
}
|
|
96
99
|
export var defaultParsePaste = function defaultParsePaste(str) {
|
|
97
|
-
return str.split(/\r\n|\n|\r/).map(function (row) {
|
|
100
|
+
return str.trimEnd().split(/\r\n|\n|\r/).map(function (row) {
|
|
98
101
|
return row.split('\t');
|
|
99
102
|
});
|
|
100
103
|
};
|
|
@@ -172,8 +175,8 @@ export function formatDataToCell(_ref2) {
|
|
|
172
175
|
value: (_pasteData$i$j = pasteData[i][j]) === null || _pasteData$i$j === void 0 ? void 0 : _pasteData$i$j.trimStart().trimEnd()
|
|
173
176
|
});
|
|
174
177
|
} else {
|
|
175
|
-
var _data,
|
|
176
|
-
if (data !== null && data !== void 0 && (_data = data[row + i]) !== null && _data !== void 0 && (
|
|
178
|
+
var _data, _groupMap$get5, _groupMap$get6, _pasteData$i$j2;
|
|
179
|
+
if (data !== null && data !== void 0 && (_data = data[row + i]) !== null && _data !== void 0 && (_data = _data[col + j]) !== null && _data !== void 0 && _data.readonly) return;
|
|
177
180
|
if (groupMap.get(row + i) && !((_groupMap$get5 = groupMap.get(row + i)) !== null && _groupMap$get5 !== void 0 && _groupMap$get5.isStart) && !((_groupMap$get6 = groupMap.get(row + i)) !== null && _groupMap$get6 !== void 0 && _groupMap$get6.isOpen)) {
|
|
178
181
|
hasStartAndNotOpen = true;
|
|
179
182
|
}
|
|
@@ -186,7 +189,7 @@ export function formatDataToCell(_ref2) {
|
|
|
186
189
|
});
|
|
187
190
|
});
|
|
188
191
|
if (hasStartAndNotOpen) {
|
|
189
|
-
|
|
192
|
+
message.error('有折叠单元格,不可粘贴');
|
|
190
193
|
return {
|
|
191
194
|
changes: [],
|
|
192
195
|
extChanges: []
|
|
@@ -199,6 +202,7 @@ export function formatDataToCell(_ref2) {
|
|
|
199
202
|
} else {
|
|
200
203
|
// 选中多个单元格,粘贴多个数据
|
|
201
204
|
if (actualRowCount !== pasteData.length || cells.length / rowCount * actualRowCount !== pasteData.length * pasteData[0].length) {
|
|
205
|
+
message.warning('选中单元格数量与粘贴数据不匹配');
|
|
202
206
|
// 单元格数量不对
|
|
203
207
|
return;
|
|
204
208
|
}
|
|
@@ -206,7 +210,7 @@ export function formatDataToCell(_ref2) {
|
|
|
206
210
|
var lastRow = cells[0].row;
|
|
207
211
|
var pasteCount = 0;
|
|
208
212
|
cells.forEach(function (_ref4) {
|
|
209
|
-
var _data$row$col, _groupMap$get7, _groupMap$get8, _pasteData$pasteCount
|
|
213
|
+
var _data$row$col, _groupMap$get7, _groupMap$get8, _pasteData$pasteCount;
|
|
210
214
|
var row = _ref4.row,
|
|
211
215
|
col = _ref4.col;
|
|
212
216
|
if ((_data$row$col = data[row][col]) !== null && _data$row$col !== void 0 && _data$row$col.readonly) return;
|
|
@@ -220,7 +224,7 @@ export function formatDataToCell(_ref2) {
|
|
|
220
224
|
changes.push({
|
|
221
225
|
row: row,
|
|
222
226
|
col: col,
|
|
223
|
-
value: pasteData === null || pasteData === void 0
|
|
227
|
+
value: pasteData === null || pasteData === void 0 || (_pasteData$pasteCount = pasteData[pasteCount]) === null || _pasteData$pasteCount === void 0 || (_pasteData$pasteCount = _pasteData$pasteCount[col - baseCol]) === null || _pasteData$pasteCount === void 0 ? void 0 : _pasteData$pasteCount.trimStart().trimEnd()
|
|
224
228
|
});
|
|
225
229
|
});
|
|
226
230
|
return {
|
|
@@ -255,7 +259,6 @@ export var optionsTransferToValue = function optionsTransferToValue(options, val
|
|
|
255
259
|
}
|
|
256
260
|
} else if (get(options[i], key) === val) {
|
|
257
261
|
values.push(value);
|
|
258
|
-
console.log('cascader', get(options[i], key), val, value);
|
|
259
262
|
break;
|
|
260
263
|
} else {
|
|
261
264
|
values = [];
|
|
@@ -263,48 +266,15 @@ export var optionsTransferToValue = function optionsTransferToValue(options, val
|
|
|
263
266
|
}
|
|
264
267
|
return values;
|
|
265
268
|
};
|
|
266
|
-
export var
|
|
267
|
-
|
|
268
|
-
if (!(options !== null && options !== void 0 && options.length) || !value) return _toConsumableArray(path);
|
|
269
|
+
export var valuesTransferToLabel = function valuesTransferToLabel(options, value) {
|
|
270
|
+
if (!(options !== null && options !== void 0 && options.length) || !value) return null;
|
|
269
271
|
var leaveNode = options === null || options === void 0 ? void 0 : options.find(function (item) {
|
|
270
272
|
var _item$children;
|
|
271
273
|
return !((_item$children = item.children) !== null && _item$children !== void 0 && _item$children.length) && value === item.value;
|
|
272
274
|
});
|
|
273
|
-
|
|
274
|
-
return [leaveNode.value];
|
|
275
|
-
}
|
|
276
|
-
var childrenNodes = options === null || options === void 0 ? void 0 : options.filter(function (item) {
|
|
275
|
+
var childrenNode = options === null || options === void 0 ? void 0 : options.filter(function (item) {
|
|
277
276
|
var _item$children2;
|
|
278
277
|
return (_item$children2 = item.children) === null || _item$children2 === void 0 ? void 0 : _item$children2.length;
|
|
279
|
-
});
|
|
280
|
-
if (childrenNodes) {
|
|
281
|
-
var _iterator = _createForOfIteratorHelper(childrenNodes),
|
|
282
|
-
_step;
|
|
283
|
-
try {
|
|
284
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
285
|
-
var childrenNode = _step.value;
|
|
286
|
-
var allPath = optionsTransferToValue(childrenNode.children, value, [].concat(_toConsumableArray(path), [childrenNode.value]));
|
|
287
|
-
if (allPath !== null && allPath !== void 0 && allPath.length) {
|
|
288
|
-
return allPath;
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
} catch (err) {
|
|
292
|
-
_iterator.e(err);
|
|
293
|
-
} finally {
|
|
294
|
-
_iterator.f();
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
return [];
|
|
298
|
-
};
|
|
299
|
-
export var valuesTransferToLabel = function valuesTransferToLabel(options, value) {
|
|
300
|
-
if (!(options !== null && options !== void 0 && options.length) || !value) return null;
|
|
301
|
-
var leaveNode = options === null || options === void 0 ? void 0 : options.find(function (item) {
|
|
302
|
-
var _item$children3;
|
|
303
|
-
return !((_item$children3 = item.children) !== null && _item$children3 !== void 0 && _item$children3.length) && value === item.value;
|
|
304
|
-
});
|
|
305
|
-
var childrenNode = options === null || options === void 0 ? void 0 : options.filter(function (item) {
|
|
306
|
-
var _item$children4;
|
|
307
|
-
return (_item$children4 = item.children) === null || _item$children4 === void 0 ? void 0 : _item$children4.length;
|
|
308
278
|
}).map(function (item) {
|
|
309
279
|
return item.children;
|
|
310
280
|
});
|
|
@@ -312,20 +282,20 @@ export var valuesTransferToLabel = function valuesTransferToLabel(options, value
|
|
|
312
282
|
return leaveNode.label;
|
|
313
283
|
}
|
|
314
284
|
if (childrenNode) {
|
|
315
|
-
var
|
|
316
|
-
|
|
285
|
+
var _iterator = _createForOfIteratorHelper(childrenNode),
|
|
286
|
+
_step;
|
|
317
287
|
try {
|
|
318
|
-
for (
|
|
319
|
-
var children =
|
|
288
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
289
|
+
var children = _step.value;
|
|
320
290
|
var label = valuesTransferToLabel(children, value);
|
|
321
291
|
if (label) {
|
|
322
292
|
return label;
|
|
323
293
|
}
|
|
324
294
|
}
|
|
325
295
|
} catch (err) {
|
|
326
|
-
|
|
296
|
+
_iterator.e(err);
|
|
327
297
|
} finally {
|
|
328
|
-
|
|
298
|
+
_iterator.f();
|
|
329
299
|
}
|
|
330
300
|
}
|
|
331
301
|
return null;
|
|
@@ -335,13 +305,14 @@ export var groupConfigToGroupMap = function groupConfigToGroupMap(rowGroupConfig
|
|
|
335
305
|
var groupMap = new Map();
|
|
336
306
|
if (!rowGroupConfig || !((_rowGroupConfig$group = rowGroupConfig.groups) !== null && _rowGroupConfig$group !== void 0 && _rowGroupConfig$group.length)) return groupMap;
|
|
337
307
|
var groups = rowGroupConfig.groups;
|
|
338
|
-
groups === null || groups === void 0
|
|
308
|
+
groups === null || groups === void 0 || groups.forEach(function (group, index) {
|
|
339
309
|
var groupStart = group.groupStart,
|
|
340
310
|
groupEnd = group.groupEnd;
|
|
341
311
|
for (var i = groupStart; i <= groupEnd; i++) {
|
|
312
|
+
var _rowGroupConfig$group2;
|
|
342
313
|
groupMap.set(i, _objectSpread(_objectSpread({}, group), {}, {
|
|
343
314
|
isStart: i === groupStart,
|
|
344
|
-
isOpen: rowGroupConfig.groupOpen[index]
|
|
315
|
+
isOpen: !!(rowGroupConfig !== null && rowGroupConfig !== void 0 && (_rowGroupConfig$group2 = rowGroupConfig.groupOpen) !== null && _rowGroupConfig$group2 !== void 0 && _rowGroupConfig$group2[index])
|
|
345
316
|
}));
|
|
346
317
|
}
|
|
347
318
|
});
|
|
@@ -385,22 +356,64 @@ export var changeGroupConfig = function changeGroupConfig(rowGroupConfig, change
|
|
|
385
356
|
});
|
|
386
357
|
};
|
|
387
358
|
export var rowToActualRow = function rowToActualRow(row, groupConfig) {
|
|
359
|
+
var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 100000;
|
|
388
360
|
var groupMap = groupConfigToGroupMap(groupConfig);
|
|
389
|
-
if (!groupMap.size) return row;
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
361
|
+
if (!groupMap.size || row < 0) return row;
|
|
362
|
+
var openCount = 0;
|
|
363
|
+
for (var i = 0; i < max; i++) {
|
|
364
|
+
var _groupMap$get9, _groupMap$get10;
|
|
365
|
+
if (groupMap.has(i) && !((_groupMap$get9 = groupMap.get(i)) !== null && _groupMap$get9 !== void 0 && _groupMap$get9.isOpen) && !((_groupMap$get10 = groupMap.get(i)) !== null && _groupMap$get10 !== void 0 && _groupMap$get10.isStart)) {
|
|
366
|
+
continue;
|
|
367
|
+
} else {
|
|
368
|
+
if (i >= row) {
|
|
369
|
+
break;
|
|
370
|
+
}
|
|
371
|
+
openCount++;
|
|
393
372
|
}
|
|
394
|
-
}
|
|
395
|
-
return
|
|
373
|
+
}
|
|
374
|
+
return openCount;
|
|
375
|
+
};
|
|
376
|
+
export var rowToCountRow = function rowToCountRow(row, groupConfig, max) {
|
|
377
|
+
var groupMap = groupConfigToGroupMap(groupConfig);
|
|
378
|
+
if (!groupMap.size || row < 0) return row;
|
|
379
|
+
|
|
380
|
+
// 加法的做法
|
|
381
|
+
var maxCount = 0;
|
|
382
|
+
var maxIndex = max;
|
|
383
|
+
for (var i = 0; i < max; i++) {
|
|
384
|
+
var _groupMap$get11, _groupMap$get12;
|
|
385
|
+
if (groupMap.has(i) && !((_groupMap$get11 = groupMap.get(i)) !== null && _groupMap$get11 !== void 0 && _groupMap$get11.isOpen) && !((_groupMap$get12 = groupMap.get(i)) !== null && _groupMap$get12 !== void 0 && _groupMap$get12.isStart)) {
|
|
386
|
+
continue;
|
|
387
|
+
} else {
|
|
388
|
+
maxCount++;
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
if (row >= maxCount) {
|
|
392
|
+
return maxIndex;
|
|
393
|
+
}
|
|
394
|
+
maxIndex = 0;
|
|
395
|
+
var openCount = 0;
|
|
396
|
+
for (var _i2 = 0; _i2 < max; _i2++) {
|
|
397
|
+
var _groupMap$get13, _groupMap$get14;
|
|
398
|
+
if (groupMap.has(_i2) && !((_groupMap$get13 = groupMap.get(_i2)) !== null && _groupMap$get13 !== void 0 && _groupMap$get13.isOpen) && !((_groupMap$get14 = groupMap.get(_i2)) !== null && _groupMap$get14 !== void 0 && _groupMap$get14.isStart)) {
|
|
399
|
+
continue;
|
|
400
|
+
} else {
|
|
401
|
+
openCount++;
|
|
402
|
+
if (openCount >= row) {
|
|
403
|
+
maxIndex = _i2;
|
|
404
|
+
break;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
return maxIndex;
|
|
396
409
|
};
|
|
397
410
|
export var getRowHeight = function getRowHeight(container) {
|
|
398
|
-
var _container$getElement
|
|
399
|
-
var h = ((_container$getElement = container.getElementsByTagName('td')[0]) === null || _container$getElement === void 0
|
|
411
|
+
var _container$getElement;
|
|
412
|
+
var h = ((_container$getElement = container.getElementsByTagName('td')[0]) === null || _container$getElement === void 0 || (_container$getElement = _container$getElement.parentNode) === null || _container$getElement === void 0 ? void 0 : _container$getElement.clientHeight) || 30;
|
|
400
413
|
return h;
|
|
401
414
|
};
|
|
402
415
|
export var getNextVisibleRow = function getNextVisibleRow(row, maxRow, groupMap) {
|
|
403
|
-
var _groupMap$
|
|
416
|
+
var _groupMap$get15, _groupMap$get16;
|
|
404
417
|
var up = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
405
418
|
if (!(groupMap !== null && groupMap !== void 0 && groupMap.size)) {
|
|
406
419
|
return row;
|
|
@@ -408,7 +421,7 @@ export var getNextVisibleRow = function getNextVisibleRow(row, maxRow, groupMap)
|
|
|
408
421
|
if (row > maxRow) {
|
|
409
422
|
return null;
|
|
410
423
|
}
|
|
411
|
-
if (groupMap.get(row) && !((_groupMap$
|
|
424
|
+
if (groupMap.get(row) && !((_groupMap$get15 = groupMap.get(row)) !== null && _groupMap$get15 !== void 0 && _groupMap$get15.isOpen) && !((_groupMap$get16 = groupMap.get(row)) !== null && _groupMap$get16 !== void 0 && _groupMap$get16.isStart)) {
|
|
412
425
|
return getNextVisibleRow(row + up, maxRow, groupMap);
|
|
413
426
|
}
|
|
414
427
|
return row;
|
|
@@ -443,4 +456,43 @@ export var calcMenuPosition = function calcMenuPosition(_ref5) {
|
|
|
443
456
|
top: top,
|
|
444
457
|
left: left
|
|
445
458
|
};
|
|
459
|
+
};
|
|
460
|
+
export var isFreezedCell = function isFreezedCell(row, col, data) {
|
|
461
|
+
var _data$row$col$classNa;
|
|
462
|
+
var isFreezed = (data === null || data === void 0 ? void 0 : data[row][col].fixed) || (data === null || data === void 0 || (_data$row$col$classNa = data[row][col].className) === null || _data$row$col$classNa === void 0 ? void 0 : _data$row$col$classNa.includes('sheet-control'));
|
|
463
|
+
return !!isFreezed;
|
|
464
|
+
};
|
|
465
|
+
export var stripRowIndex = function stripRowIndex(data) {
|
|
466
|
+
if (!data.length || !data[0].length) return {
|
|
467
|
+
startIndex: 0,
|
|
468
|
+
endIndex: 0
|
|
469
|
+
};
|
|
470
|
+
var rowData = data[0];
|
|
471
|
+
var startIndex = 1,
|
|
472
|
+
endIndex = rowData.length - 1;
|
|
473
|
+
if (!rowData[1].editable) {
|
|
474
|
+
startIndex = 2;
|
|
475
|
+
}
|
|
476
|
+
if (rowData[rowData.length - 1].fixed && !rowData[rowData.length - 1].editable) {
|
|
477
|
+
endIndex = rowData.length - 2;
|
|
478
|
+
}
|
|
479
|
+
return {
|
|
480
|
+
startIndex: startIndex,
|
|
481
|
+
endIndex: endIndex
|
|
482
|
+
};
|
|
483
|
+
};
|
|
484
|
+
var focusInterval;
|
|
485
|
+
export var ensureFocus = function ensureFocus(container) {
|
|
486
|
+
if (!container) return;
|
|
487
|
+
if (focusInterval) {
|
|
488
|
+
clearInterval(focusInterval);
|
|
489
|
+
focusInterval = undefined;
|
|
490
|
+
}
|
|
491
|
+
focusInterval = setInterval(function () {
|
|
492
|
+
container === null || container === void 0 || container.focus();
|
|
493
|
+
}, 100);
|
|
494
|
+
setTimeout(function () {
|
|
495
|
+
clearInterval(focusInterval);
|
|
496
|
+
focusInterval = undefined;
|
|
497
|
+
}, 1000);
|
|
446
498
|
};
|