@zhenliang/sheet 0.0.8 → 0.1.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/README.md +3 -2
- package/dist/core/config.js +1 -2
- package/dist/core/editor/cascaderEditor/index.js +14 -7
- package/dist/core/editor/dateEditor/index.d.ts +1 -1
- package/dist/core/editor/dateEditor/index.js +2 -3
- package/dist/core/editor/index.d.ts +1 -1
- package/dist/core/editor/index.js +2 -3
- package/dist/core/editor/numberEditor/index.js +50 -6
- package/dist/core/editor/numberEditor/index.less +1 -0
- package/dist/core/editor/selectEditor/index.d.ts +1 -1
- package/dist/core/editor/selectEditor/index.js +23 -5
- package/dist/core/reducers/index.d.ts +1 -1
- package/dist/core/reducers/index.js +3 -2
- package/dist/core/reducers/keyboardReducer.js +2 -3
- package/dist/core/reducers/mouseReducer.js +1 -2
- package/dist/core/reducers/sideEffectReducer.js +49 -25
- package/dist/core/reducers/stateReducer.js +35 -10
- package/dist/core/sheet/Cell.js +37 -16
- package/dist/core/sheet/DataEditor.js +4 -2
- package/dist/core/sheet/DefaultCell.js +1 -2
- package/dist/core/sheet/DefaultRow.d.ts +1 -0
- package/dist/core/sheet/DefaultRow.js +5 -3
- package/dist/core/sheet/DefaultRowMapper.js +1 -2
- package/dist/core/sheet/DefaultShell.js +1 -2
- package/dist/core/sheet/Event.js +2 -3
- package/dist/core/sheet/ValueViewer.js +1 -2
- package/dist/core/sheet/index.js +54 -15
- package/dist/core/sheet/index.less +20 -11
- package/dist/core/sheet/useCellEvent.js +1 -2
- package/dist/core/sheet/useContextMenu.d.ts +1 -1
- package/dist/core/sheet/useContextMenu.js +2 -3
- package/dist/core/sheet/useKeyBoardEvent.js +15 -3
- package/dist/core/sheet/useMouseEvent.js +3 -4
- package/dist/core/sheet/useSelectVisible.d.ts +2 -0
- package/dist/core/sheet/useSelectVisible.js +48 -0
- package/dist/core/sheet/useVirtualList.d.ts +1 -1
- package/dist/core/sheet/useVirtualList.js +24 -20
- package/dist/core/shell/draggableShell/index.d.ts +0 -1
- package/dist/core/shell/draggableShell/index.js +21 -13
- package/dist/core/shell/tableShell.d.ts +0 -1
- package/dist/core/shell/tableShell.js +9 -6
- package/dist/core/table/events.d.ts +15 -0
- package/dist/core/table/events.js +94 -0
- package/dist/core/table/index.js +91 -112
- package/dist/core/table/useGroupConfig.js +24 -7
- package/dist/core/table/useRowSelection.d.ts +2 -1
- package/dist/core/table/useRowSelection.js +1 -2
- package/dist/core/table/util.js +2 -3
- package/dist/core/util.d.ts +5 -2
- package/dist/core/util.js +97 -16
- package/dist/core/viewer/btnViewer/index.js +2 -3
- package/dist/core/viewer/cascaderViewer/index.d.ts +2 -0
- package/dist/core/viewer/cascaderViewer/index.js +11 -0
- package/dist/core/viewer/checkViewer/index.js +2 -3
- package/dist/core/viewer/editViewer/index.js +2 -3
- package/dist/core/viewer/groupViewer/index.js +5 -3
- package/dist/core/viewer/index.d.ts +1 -0
- package/dist/core/viewer/index.js +2 -2
- package/dist/core/viewer/selectorViewer/index.d.ts +2 -0
- package/dist/core/viewer/selectorViewer/index.js +12 -0
- package/dist/core/viewer/switchViewer/index.js +2 -3
- package/dist/example/antComponent.js +60 -14
- package/dist/example/basic.js +2 -3
- package/dist/example/ellipsis.js +1 -2
- package/dist/example/fixed.js +1 -2
- package/dist/example/group.js +42 -4
- package/dist/example/selection.js +2 -3
- package/dist/example/sheet.js +52 -16
- package/dist/example/valuationAnalyze.js +20 -18
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/useEventBus.d.ts +0 -1
- package/dist/hooks/useEventBus.js +1 -2
- package/dist/hooks/useKeyboard.js +1 -2
- package/dist/hooks/useMiddlewareReducer.js +1 -2
- package/dist/hooks/useMouse.js +1 -2
- package/dist/hooks/useSetState.js +1 -2
- package/dist/hooks/useSheetEvent.js +1 -2
- package/dist/hooks/useWidthConfig.d.ts +4 -0
- package/dist/hooks/useWidthConfig.js +5 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -1
- package/dist/standardUtils/index.js +2 -3
- package/dist/type/index.js +1 -2
- package/dist/type/sheet.d.ts +14 -3
- package/dist/type/sheet.js +1 -2
- package/dist/type/sheetTable.d.ts +43 -14
- package/dist/type/sheetTable.js +1 -2
- package/package.json +1 -1
- package/dist/core/config.js.map +0 -1
- package/dist/core/editor/cascaderEditor/index.js.map +0 -1
- package/dist/core/editor/dateEditor/index.js.map +0 -1
- package/dist/core/editor/index.js.map +0 -1
- package/dist/core/editor/numberEditor/index.js.map +0 -1
- package/dist/core/editor/selectEditor/index.js.map +0 -1
- package/dist/core/reducers/index.js.map +0 -1
- package/dist/core/reducers/keyboardReducer.js.map +0 -1
- package/dist/core/reducers/mouseReducer.js.map +0 -1
- package/dist/core/reducers/sideEffectReducer.js.map +0 -1
- package/dist/core/reducers/stateReducer.js.map +0 -1
- package/dist/core/sheet/Cell.js.map +0 -1
- package/dist/core/sheet/DataEditor.js.map +0 -1
- package/dist/core/sheet/DefaultCell.js.map +0 -1
- package/dist/core/sheet/DefaultRow.js.map +0 -1
- package/dist/core/sheet/DefaultRowMapper.js.map +0 -1
- package/dist/core/sheet/DefaultShell.js.map +0 -1
- package/dist/core/sheet/Event.js.map +0 -1
- package/dist/core/sheet/ValueViewer.js.map +0 -1
- package/dist/core/sheet/index.js.map +0 -1
- package/dist/core/sheet/useCellEvent.js.map +0 -1
- package/dist/core/sheet/useContextMenu.js.map +0 -1
- package/dist/core/sheet/useKeyBoardEvent.js.map +0 -1
- package/dist/core/sheet/useMouseEvent.js.map +0 -1
- package/dist/core/sheet/useVirtualList.js.map +0 -1
- package/dist/core/shell/draggableShell/index.js.map +0 -1
- package/dist/core/shell/tableShell.js.map +0 -1
- package/dist/core/table/index.js.map +0 -1
- package/dist/core/table/useGroupConfig.js.map +0 -1
- package/dist/core/table/useRowSelection.js.map +0 -1
- package/dist/core/table/util.js.map +0 -1
- package/dist/core/util.js.map +0 -1
- package/dist/core/viewer/btnViewer/index.js.map +0 -1
- package/dist/core/viewer/checkViewer/index.js.map +0 -1
- package/dist/core/viewer/editViewer/index.js.map +0 -1
- package/dist/core/viewer/groupViewer/index.js.map +0 -1
- package/dist/core/viewer/index.js.map +0 -1
- package/dist/core/viewer/switchViewer/index.js.map +0 -1
- package/dist/example/antComponent.js.map +0 -1
- package/dist/example/basic.js.map +0 -1
- package/dist/example/ellipsis.js.map +0 -1
- package/dist/example/fixed.js.map +0 -1
- package/dist/example/group.js.map +0 -1
- package/dist/example/selection.js.map +0 -1
- package/dist/example/sheet.js.map +0 -1
- package/dist/example/valuationAnalyze.js.map +0 -1
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/useEventBus.js.map +0 -1
- package/dist/hooks/useKeyboard.js.map +0 -1
- package/dist/hooks/useMiddlewareReducer.js.map +0 -1
- package/dist/hooks/useMouse.js.map +0 -1
- package/dist/hooks/useSetState.js.map +0 -1
- package/dist/hooks/useSheetEvent.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/standardUtils/index.js.map +0 -1
- package/dist/type/index.js.map +0 -1
- package/dist/type/sheet.js.map +0 -1
- package/dist/type/sheetTable.js.map +0 -1
|
@@ -6,15 +6,16 @@ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefine
|
|
|
6
6
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
7
|
import { isEqual, throttle } from 'lodash';
|
|
8
8
|
import { useEffect, useRef, useState } from 'react';
|
|
9
|
-
import { getRowHeight } from "../util";
|
|
9
|
+
import { getRowHeight, rowToActualRow } from "../util";
|
|
10
10
|
var extra = 20;
|
|
11
11
|
// 虚拟列表
|
|
12
12
|
export var useVirtualList = function useVirtualList(elementRef) {
|
|
13
13
|
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
14
|
-
var
|
|
14
|
+
var groupConfig = arguments.length > 2 ? arguments[2] : undefined;
|
|
15
|
+
var virtualized = arguments.length > 3 ? arguments[3] : undefined;
|
|
15
16
|
var _useState = useState({
|
|
16
17
|
virtualStart: 0,
|
|
17
|
-
virtualEnd: data.length - 1,
|
|
18
|
+
virtualEnd: virtualized ? Math.min(data.length - 1, 2 * extra) : data.length - 1,
|
|
18
19
|
paddingTop: 0,
|
|
19
20
|
paddingBottom: 0
|
|
20
21
|
}),
|
|
@@ -26,24 +27,34 @@ export var useVirtualList = function useVirtualList(elementRef) {
|
|
|
26
27
|
paddingTop = state.paddingTop,
|
|
27
28
|
paddingBottom = state.paddingBottom;
|
|
28
29
|
var virtualRef = useRef();
|
|
30
|
+
var groupConfigRef = useRef(groupConfig);
|
|
31
|
+
useEffect(function () {
|
|
32
|
+
groupConfigRef.current = groupConfig;
|
|
33
|
+
}, [groupConfig]);
|
|
29
34
|
useEffect(function () {
|
|
30
35
|
if (!elementRef.current) return;
|
|
31
36
|
|
|
32
37
|
// 当前位定高的表格,所以可以直接获取第一行的高度
|
|
33
|
-
|
|
34
38
|
var rowHeight = getRowHeight(elementRef.current);
|
|
39
|
+
var itemHeight = rowHeight || 30;
|
|
35
40
|
var handleScroll = throttle(function () {
|
|
36
41
|
var _ref = elementRef.current,
|
|
37
42
|
scrollTop = _ref.scrollTop,
|
|
38
43
|
clientHeight = _ref.clientHeight;
|
|
39
|
-
var itemHeight = rowHeight || 30;
|
|
40
44
|
var start = Math.floor(scrollTop / itemHeight) - extra;
|
|
41
45
|
var end = Math.ceil((scrollTop + clientHeight) / itemHeight) + extra;
|
|
46
|
+
|
|
47
|
+
// todo 加入分组之后的 虚拟列表计算
|
|
48
|
+
var actualStart = groupConfigRef.current ? rowToActualRow(start, groupConfigRef.current) : start;
|
|
49
|
+
var actualEnd = groupConfigRef.current ? rowToActualRow(end, groupConfigRef.current) : end;
|
|
50
|
+
|
|
51
|
+
// const minStart = start - (actualStart - start)
|
|
52
|
+
var maxEnd = end - (actualEnd - end);
|
|
42
53
|
var updateVirtualConfig = {
|
|
43
|
-
virtualStart:
|
|
44
|
-
virtualEnd:
|
|
45
|
-
paddingTop:
|
|
46
|
-
paddingBottom: (data.length -
|
|
54
|
+
virtualStart: actualStart,
|
|
55
|
+
virtualEnd: maxEnd,
|
|
56
|
+
paddingTop: actualStart * itemHeight,
|
|
57
|
+
paddingBottom: (data.length - maxEnd) * itemHeight
|
|
47
58
|
};
|
|
48
59
|
if (isEqual(updateVirtualConfig, virtualRef.current)) {
|
|
49
60
|
return;
|
|
@@ -51,20 +62,14 @@ export var useVirtualList = function useVirtualList(elementRef) {
|
|
|
51
62
|
setState(updateVirtualConfig);
|
|
52
63
|
virtualRef.current = updateVirtualConfig;
|
|
53
64
|
}, 50);
|
|
65
|
+
// data.length change 的时候用 handleScroll 重设 virtual params
|
|
66
|
+
handleScroll();
|
|
54
67
|
elementRef.current.addEventListener('scroll', handleScroll);
|
|
55
68
|
return function () {
|
|
56
69
|
var _elementRef$current;
|
|
57
70
|
(_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.removeEventListener('scroll', handleScroll);
|
|
58
71
|
};
|
|
59
|
-
}, [elementRef.current]);
|
|
60
|
-
useEffect(function () {
|
|
61
|
-
setState({
|
|
62
|
-
virtualStart: 0,
|
|
63
|
-
virtualEnd: Math.min(data.length - 1, 2 * extra),
|
|
64
|
-
paddingTop: 0,
|
|
65
|
-
paddingBottom: 0
|
|
66
|
-
});
|
|
67
|
-
}, [data]);
|
|
72
|
+
}, [elementRef.current, data.length]);
|
|
68
73
|
if (!virtualized) {
|
|
69
74
|
return {
|
|
70
75
|
virtualStart: 0,
|
|
@@ -79,5 +84,4 @@ export var useVirtualList = function useVirtualList(elementRef) {
|
|
|
79
84
|
paddingTop: Math.max(0, paddingTop),
|
|
80
85
|
paddingBottom: data.length - 1 <= virtualEnd ? 0 : paddingBottom
|
|
81
86
|
};
|
|
82
|
-
};
|
|
83
|
-
//# sourceMappingURL=useVirtualList.js.map
|
|
87
|
+
};
|
|
@@ -9,7 +9,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
9
9
|
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
10
10
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
11
11
|
import { useEffect, useMemo, useRef } from 'react';
|
|
12
|
-
import { useSetState } from "../../../hooks";
|
|
12
|
+
import { useSetState, useWidth } from "../../../hooks";
|
|
13
13
|
import { classNames } from "../../util";
|
|
14
14
|
import { CheckViewer } from "../../viewer/checkViewer";
|
|
15
15
|
import { GroupViewer } from "../../viewer/groupViewer";
|
|
@@ -24,15 +24,20 @@ export var DraggableShell = function DraggableShell(_ref) {
|
|
|
24
24
|
showSelect = _ref.showSelect,
|
|
25
25
|
controlProps = _ref.controlProps,
|
|
26
26
|
_ref$controlWidth = _ref.controlWidth,
|
|
27
|
-
controlWidth = _ref$controlWidth === void 0 ?
|
|
27
|
+
controlWidth = _ref$controlWidth === void 0 ? 30 : _ref$controlWidth;
|
|
28
28
|
var TableShell = function TableShell(_ref2) {
|
|
29
29
|
var children = _ref2.children;
|
|
30
30
|
var headRef = useRef(null);
|
|
31
31
|
var downRef = useRef(null);
|
|
32
32
|
var _useSetState = useSetState({}),
|
|
33
33
|
_useSetState2 = _slicedToArray(_useSetState, 2),
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
_widths = _useSetState2[0],
|
|
35
|
+
_setWidth = _useSetState2[1];
|
|
36
|
+
var _useWidth = useWidth(),
|
|
37
|
+
contextWidths = _useWidth.widths,
|
|
38
|
+
contextSetWidth = _useWidth.onChange;
|
|
39
|
+
var setWidth = contextSetWidth || _setWidth;
|
|
40
|
+
var widths = contextWidths || _widths;
|
|
36
41
|
var hasControl = showGroup || showSelect;
|
|
37
42
|
var thItems = useMemo(function () {
|
|
38
43
|
var ths = [];
|
|
@@ -61,9 +66,10 @@ export var DraggableShell = function DraggableShell(_ref) {
|
|
|
61
66
|
}, "-1"));
|
|
62
67
|
}
|
|
63
68
|
columns.forEach(function (item, index) {
|
|
64
|
-
var _item$dataIndex, _ref3;
|
|
65
|
-
ths.push( /*#__PURE__*/_jsx("th", {
|
|
66
|
-
className: classNames('cell', 'cell-title', 'read-only', item.fixed && 'fixed', item.fixed && "fixed-".concat(item.fixed)),
|
|
69
|
+
var _item$titleConfig, _item$titleConfig2, _item$titleConfig3, _item$dataIndex, _ref3;
|
|
70
|
+
((_item$titleConfig = item.titleConfig) === null || _item$titleConfig === void 0 ? void 0 : _item$titleConfig.colSpan) !== 0 && ths.push( /*#__PURE__*/_jsx("th", {
|
|
71
|
+
className: classNames('cell', 'cell-title', 'read-only', item.fixed && 'fixed', item.fixed && "fixed-".concat(item.fixed), (_item$titleConfig2 = item.titleConfig) === null || _item$titleConfig2 === void 0 ? void 0 : _item$titleConfig2.className),
|
|
72
|
+
colSpan: (_item$titleConfig3 = item.titleConfig) === null || _item$titleConfig3 === void 0 ? void 0 : _item$titleConfig3.colSpan,
|
|
67
73
|
style: {
|
|
68
74
|
textAlign: (_ref3 = item.align) !== null && _ref3 !== void 0 ? _ref3 : 'unset',
|
|
69
75
|
left: item.fixed === 'left' ? 0 : 'unset',
|
|
@@ -91,7 +97,10 @@ export var DraggableShell = function DraggableShell(_ref) {
|
|
|
91
97
|
if (downRef.current === undefined) downRef.current = target;
|
|
92
98
|
//调整宽度
|
|
93
99
|
},
|
|
94
|
-
children:
|
|
100
|
+
children: /*#__PURE__*/_jsx("span", {
|
|
101
|
+
className: "value-viewer",
|
|
102
|
+
children: item.title
|
|
103
|
+
})
|
|
95
104
|
}, (_item$dataIndex = item.dataIndex) !== null && _item$dataIndex !== void 0 ? _item$dataIndex : index));
|
|
96
105
|
});
|
|
97
106
|
return ths;
|
|
@@ -137,10 +146,10 @@ export var DraggableShell = function DraggableShell(_ref) {
|
|
|
137
146
|
var cellList = [].slice.call((_headRef$current = headRef.current) === null || _headRef$current === void 0 ? void 0 : _headRef$current.cells);
|
|
138
147
|
var changeIndex = cellList.indexOf(downRef.current);
|
|
139
148
|
//调整该列中的每个Cell
|
|
140
|
-
var
|
|
149
|
+
var _widths2 = _defineProperty({
|
|
141
150
|
length: columns.length
|
|
142
|
-
}, hasControl ? changeIndex - 1 : changeIndex,
|
|
143
|
-
setWidth(
|
|
151
|
+
}, hasControl ? changeIndex - 1 : changeIndex, newWidth);
|
|
152
|
+
setWidth(_widths2);
|
|
144
153
|
}
|
|
145
154
|
}
|
|
146
155
|
};
|
|
@@ -179,5 +188,4 @@ export var DraggableShell = function DraggableShell(_ref) {
|
|
|
179
188
|
});
|
|
180
189
|
};
|
|
181
190
|
return TableShell;
|
|
182
|
-
};
|
|
183
|
-
//# sourceMappingURL=index.js.map
|
|
191
|
+
};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import type { SheetType } from "../../type";
|
|
3
2
|
import './draggableShell/index.less';
|
|
4
3
|
export declare const TableShell: ({ columns, className, showGroup, showSelect, controlProps, controlWidth, }: SheetType.SheetShell) => import("react").FC<{
|
|
@@ -13,7 +13,7 @@ export var TableShell = function TableShell(_ref) {
|
|
|
13
13
|
showSelect = _ref.showSelect,
|
|
14
14
|
controlProps = _ref.controlProps,
|
|
15
15
|
_ref$controlWidth = _ref.controlWidth,
|
|
16
|
-
controlWidth = _ref$controlWidth === void 0 ?
|
|
16
|
+
controlWidth = _ref$controlWidth === void 0 ? 30 : _ref$controlWidth;
|
|
17
17
|
var TableShell = function TableShell(_ref2) {
|
|
18
18
|
var children = _ref2.children;
|
|
19
19
|
var thItems = useMemo(function () {
|
|
@@ -43,15 +43,19 @@ export var TableShell = function TableShell(_ref) {
|
|
|
43
43
|
}, "-1"));
|
|
44
44
|
}
|
|
45
45
|
columns.forEach(function (item, index) {
|
|
46
|
-
var _ref3;
|
|
47
|
-
ths.push( /*#__PURE__*/_jsx("th", {
|
|
46
|
+
var _item$titleConfig, _item$titleConfig2, _ref3;
|
|
47
|
+
((_item$titleConfig = item.titleConfig) === null || _item$titleConfig === void 0 ? void 0 : _item$titleConfig.colSpan) !== 0 && ths.push( /*#__PURE__*/_jsx("th", {
|
|
48
48
|
className: classNames('cell', 'cell-title', 'read-only', item.fixed && 'fixed', item.fixed && "fixed-".concat(item.fixed)),
|
|
49
|
+
colSpan: (_item$titleConfig2 = item.titleConfig) === null || _item$titleConfig2 === void 0 ? void 0 : _item$titleConfig2.colSpan,
|
|
49
50
|
style: {
|
|
50
51
|
textAlign: (_ref3 = item.align) !== null && _ref3 !== void 0 ? _ref3 : 'unset',
|
|
51
52
|
left: item.fixed === 'left' ? 0 : 'unset',
|
|
52
53
|
right: item.fixed === 'right' ? 0 : 'unset'
|
|
53
54
|
},
|
|
54
|
-
children:
|
|
55
|
+
children: /*#__PURE__*/_jsx("span", {
|
|
56
|
+
className: "value-viewer",
|
|
57
|
+
children: item.title
|
|
58
|
+
})
|
|
55
59
|
}, item.dataIndex || index));
|
|
56
60
|
});
|
|
57
61
|
return ths;
|
|
@@ -102,5 +106,4 @@ export var TableShell = function TableShell(_ref) {
|
|
|
102
106
|
});
|
|
103
107
|
};
|
|
104
108
|
return TableShell;
|
|
105
|
-
};
|
|
106
|
-
//# sourceMappingURL=tableShell.js.map
|
|
109
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SheetTableType, SheetType } from "../../type";
|
|
2
|
+
import { FC } from 'react';
|
|
3
|
+
export declare const SelectionEvent: FC<{
|
|
4
|
+
hasChildren: boolean;
|
|
5
|
+
rowSelection?: SheetTableType.TableRowSelection;
|
|
6
|
+
onChange: (value: unknown) => void;
|
|
7
|
+
}>;
|
|
8
|
+
export declare const GroupEvent: FC<{
|
|
9
|
+
hasChildren: boolean;
|
|
10
|
+
rowGroupConfig: SheetType.RowGroupConfig;
|
|
11
|
+
data: SheetType.Cell[][];
|
|
12
|
+
sheetInstance: SheetType.SheetInstance | null;
|
|
13
|
+
onGroupChange: (value: SheetType.RowGroupConfig) => void;
|
|
14
|
+
onGridChange: (value: SheetType.Cell[][]) => void;
|
|
15
|
+
}>;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
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(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
6
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
7
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
8
|
+
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."); }
|
|
9
|
+
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); }
|
|
10
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
11
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
12
|
+
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; }
|
|
13
|
+
import { SheetEvent } from "../sheet/Event";
|
|
14
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
16
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
+
export var SelectionEvent = function SelectionEvent(props) {
|
|
18
|
+
var hasChildren = props.hasChildren,
|
|
19
|
+
rowSelection = props.rowSelection,
|
|
20
|
+
onChange = props.onChange;
|
|
21
|
+
if (hasChildren || !rowSelection) return null;
|
|
22
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
23
|
+
children: [/*#__PURE__*/_jsx(SheetEvent, {
|
|
24
|
+
name: "row-select",
|
|
25
|
+
handler: onChange
|
|
26
|
+
}, "row-select"), /*#__PURE__*/_jsx(SheetEvent, {
|
|
27
|
+
name: "row-select-title",
|
|
28
|
+
handler: onChange
|
|
29
|
+
}, "row-select-title"), ","]
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
export var GroupEvent = function GroupEvent(props) {
|
|
33
|
+
var hasChildren = props.hasChildren,
|
|
34
|
+
rowGroupConfig = props.rowGroupConfig,
|
|
35
|
+
data = props.data,
|
|
36
|
+
sheetInstance = props.sheetInstance,
|
|
37
|
+
onGroupChange = props.onGroupChange,
|
|
38
|
+
onGridChange = props.onGridChange;
|
|
39
|
+
if (!hasChildren) return null;
|
|
40
|
+
var _ref = rowGroupConfig || {},
|
|
41
|
+
groups = _ref.groups;
|
|
42
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
43
|
+
children: [/*#__PURE__*/_jsx(SheetEvent, {
|
|
44
|
+
name: "group-open",
|
|
45
|
+
handler: function handler(e) {
|
|
46
|
+
var _ref2 = e,
|
|
47
|
+
row = _ref2.row;
|
|
48
|
+
var index = groups.findIndex(function (item) {
|
|
49
|
+
return item.groupStart === row;
|
|
50
|
+
});
|
|
51
|
+
if (index >= 0) {
|
|
52
|
+
var groupOpen = _toConsumableArray(rowGroupConfig.groupOpen);
|
|
53
|
+
groupOpen[index] = !rowGroupConfig.groupOpen[index];
|
|
54
|
+
onGroupChange && onGroupChange(_objectSpread(_objectSpread({}, rowGroupConfig), {}, {
|
|
55
|
+
groupOpen: groupOpen
|
|
56
|
+
}));
|
|
57
|
+
var newGrid = _toConsumableArray(data);
|
|
58
|
+
newGrid[row] = _toConsumableArray(newGrid[row]);
|
|
59
|
+
newGrid[row][0] = _objectSpread(_objectSpread({}, newGrid[row][0]), {}, {
|
|
60
|
+
record: {
|
|
61
|
+
open: !!groupOpen[index]
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
onGridChange && onGridChange(newGrid);
|
|
65
|
+
sheetInstance === null || sheetInstance === void 0 ? void 0 : sheetInstance.pushToHistory({
|
|
66
|
+
type: 'Custom',
|
|
67
|
+
changes: [],
|
|
68
|
+
extraInfo: {
|
|
69
|
+
extraType: 'group',
|
|
70
|
+
groupConfig: rowGroupConfig,
|
|
71
|
+
data: data
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}, "group-open"), /*#__PURE__*/_jsx(SheetEvent, {
|
|
77
|
+
name: "group-open-title",
|
|
78
|
+
handler: function handler(value) {
|
|
79
|
+
onGroupChange && onGroupChange(_objectSpread(_objectSpread({}, rowGroupConfig), {}, {
|
|
80
|
+
groupOpen: Array(rowGroupConfig.groupOpen.length).fill(value)
|
|
81
|
+
}));
|
|
82
|
+
sheetInstance === null || sheetInstance === void 0 ? void 0 : sheetInstance.pushToHistory({
|
|
83
|
+
type: 'Custom',
|
|
84
|
+
changes: [],
|
|
85
|
+
extraInfo: {
|
|
86
|
+
extraType: 'group',
|
|
87
|
+
groupConfig: rowGroupConfig,
|
|
88
|
+
data: data
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}, "group-open-title")]
|
|
93
|
+
});
|
|
94
|
+
};
|