@zhenliang/sheet 0.0.8 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/README.md +3 -2
  2. package/dist/core/config.js +1 -2
  3. package/dist/core/editor/cascaderEditor/index.js +14 -7
  4. package/dist/core/editor/dateEditor/index.d.ts +1 -1
  5. package/dist/core/editor/dateEditor/index.js +2 -3
  6. package/dist/core/editor/index.d.ts +1 -1
  7. package/dist/core/editor/index.js +2 -3
  8. package/dist/core/editor/numberEditor/index.js +50 -6
  9. package/dist/core/editor/numberEditor/index.less +1 -0
  10. package/dist/core/editor/selectEditor/index.d.ts +1 -1
  11. package/dist/core/editor/selectEditor/index.js +23 -5
  12. package/dist/core/reducers/index.d.ts +1 -1
  13. package/dist/core/reducers/index.js +3 -2
  14. package/dist/core/reducers/keyboardReducer.js +2 -3
  15. package/dist/core/reducers/mouseReducer.js +1 -2
  16. package/dist/core/reducers/sideEffectReducer.js +49 -25
  17. package/dist/core/reducers/stateReducer.js +35 -10
  18. package/dist/core/sheet/Cell.js +37 -16
  19. package/dist/core/sheet/DataEditor.js +4 -2
  20. package/dist/core/sheet/DefaultCell.js +1 -2
  21. package/dist/core/sheet/DefaultRow.d.ts +1 -0
  22. package/dist/core/sheet/DefaultRow.js +5 -3
  23. package/dist/core/sheet/DefaultRowMapper.js +1 -2
  24. package/dist/core/sheet/DefaultShell.js +1 -2
  25. package/dist/core/sheet/Event.js +2 -3
  26. package/dist/core/sheet/ValueViewer.js +1 -2
  27. package/dist/core/sheet/index.js +54 -15
  28. package/dist/core/sheet/index.less +20 -11
  29. package/dist/core/sheet/useCellEvent.js +1 -2
  30. package/dist/core/sheet/useContextMenu.d.ts +1 -1
  31. package/dist/core/sheet/useContextMenu.js +2 -3
  32. package/dist/core/sheet/useKeyBoardEvent.js +15 -3
  33. package/dist/core/sheet/useMouseEvent.js +3 -4
  34. package/dist/core/sheet/useSelectVisible.d.ts +2 -0
  35. package/dist/core/sheet/useSelectVisible.js +48 -0
  36. package/dist/core/sheet/useVirtualList.d.ts +1 -1
  37. package/dist/core/sheet/useVirtualList.js +24 -20
  38. package/dist/core/shell/draggableShell/index.js +21 -13
  39. package/dist/core/shell/tableShell.js +9 -6
  40. package/dist/core/table/events.d.ts +15 -0
  41. package/dist/core/table/events.js +94 -0
  42. package/dist/core/table/index.js +91 -112
  43. package/dist/core/table/useGroupConfig.js +24 -7
  44. package/dist/core/table/useRowSelection.d.ts +2 -1
  45. package/dist/core/table/useRowSelection.js +1 -2
  46. package/dist/core/table/util.js +2 -3
  47. package/dist/core/util.d.ts +5 -2
  48. package/dist/core/util.js +97 -16
  49. package/dist/core/viewer/btnViewer/index.js +2 -3
  50. package/dist/core/viewer/cascaderViewer/index.d.ts +2 -0
  51. package/dist/core/viewer/cascaderViewer/index.js +11 -0
  52. package/dist/core/viewer/checkViewer/index.js +2 -3
  53. package/dist/core/viewer/editViewer/index.js +2 -3
  54. package/dist/core/viewer/groupViewer/index.js +5 -3
  55. package/dist/core/viewer/index.d.ts +2 -0
  56. package/dist/core/viewer/index.js +3 -2
  57. package/dist/core/viewer/selectorViewer/index.d.ts +2 -0
  58. package/dist/core/viewer/selectorViewer/index.js +12 -0
  59. package/dist/core/viewer/switchViewer/index.js +2 -3
  60. package/dist/example/antComponent.js +60 -14
  61. package/dist/example/basic.js +2 -3
  62. package/dist/example/ellipsis.js +1 -2
  63. package/dist/example/fixed.js +1 -2
  64. package/dist/example/group.js +42 -4
  65. package/dist/example/selection.js +2 -3
  66. package/dist/example/sheet.js +52 -16
  67. package/dist/example/valuationAnalyze.js +20 -18
  68. package/dist/hooks/index.d.ts +1 -0
  69. package/dist/hooks/index.js +1 -1
  70. package/dist/hooks/useEventBus.js +1 -2
  71. package/dist/hooks/useKeyboard.js +1 -2
  72. package/dist/hooks/useMiddlewareReducer.js +1 -2
  73. package/dist/hooks/useMouse.js +1 -2
  74. package/dist/hooks/useSetState.js +1 -2
  75. package/dist/hooks/useSheetEvent.js +1 -2
  76. package/dist/hooks/useWidthConfig.d.ts +4 -0
  77. package/dist/hooks/useWidthConfig.js +5 -0
  78. package/dist/index.d.ts +4 -0
  79. package/dist/index.js +4 -1
  80. package/dist/standardUtils/index.js +2 -3
  81. package/dist/type/index.js +1 -2
  82. package/dist/type/sheet.d.ts +14 -3
  83. package/dist/type/sheet.js +1 -2
  84. package/dist/type/sheetTable.d.ts +43 -14
  85. package/dist/type/sheetTable.js +1 -2
  86. package/package.json +1 -1
  87. package/dist/core/config.js.map +0 -1
  88. package/dist/core/editor/cascaderEditor/index.js.map +0 -1
  89. package/dist/core/editor/dateEditor/index.js.map +0 -1
  90. package/dist/core/editor/index.js.map +0 -1
  91. package/dist/core/editor/numberEditor/index.js.map +0 -1
  92. package/dist/core/editor/selectEditor/index.js.map +0 -1
  93. package/dist/core/reducers/index.js.map +0 -1
  94. package/dist/core/reducers/keyboardReducer.js.map +0 -1
  95. package/dist/core/reducers/mouseReducer.js.map +0 -1
  96. package/dist/core/reducers/sideEffectReducer.js.map +0 -1
  97. package/dist/core/reducers/stateReducer.js.map +0 -1
  98. package/dist/core/sheet/Cell.js.map +0 -1
  99. package/dist/core/sheet/DataEditor.js.map +0 -1
  100. package/dist/core/sheet/DefaultCell.js.map +0 -1
  101. package/dist/core/sheet/DefaultRow.js.map +0 -1
  102. package/dist/core/sheet/DefaultRowMapper.js.map +0 -1
  103. package/dist/core/sheet/DefaultShell.js.map +0 -1
  104. package/dist/core/sheet/Event.js.map +0 -1
  105. package/dist/core/sheet/ValueViewer.js.map +0 -1
  106. package/dist/core/sheet/index.js.map +0 -1
  107. package/dist/core/sheet/useCellEvent.js.map +0 -1
  108. package/dist/core/sheet/useContextMenu.js.map +0 -1
  109. package/dist/core/sheet/useKeyBoardEvent.js.map +0 -1
  110. package/dist/core/sheet/useMouseEvent.js.map +0 -1
  111. package/dist/core/sheet/useVirtualList.js.map +0 -1
  112. package/dist/core/shell/draggableShell/index.js.map +0 -1
  113. package/dist/core/shell/tableShell.js.map +0 -1
  114. package/dist/core/table/index.js.map +0 -1
  115. package/dist/core/table/useGroupConfig.js.map +0 -1
  116. package/dist/core/table/useRowSelection.js.map +0 -1
  117. package/dist/core/table/util.js.map +0 -1
  118. package/dist/core/util.js.map +0 -1
  119. package/dist/core/viewer/btnViewer/index.js.map +0 -1
  120. package/dist/core/viewer/checkViewer/index.js.map +0 -1
  121. package/dist/core/viewer/editViewer/index.js.map +0 -1
  122. package/dist/core/viewer/groupViewer/index.js.map +0 -1
  123. package/dist/core/viewer/index.js.map +0 -1
  124. package/dist/core/viewer/switchViewer/index.js.map +0 -1
  125. package/dist/example/antComponent.js.map +0 -1
  126. package/dist/example/basic.js.map +0 -1
  127. package/dist/example/ellipsis.js.map +0 -1
  128. package/dist/example/fixed.js.map +0 -1
  129. package/dist/example/group.js.map +0 -1
  130. package/dist/example/selection.js.map +0 -1
  131. package/dist/example/sheet.js.map +0 -1
  132. package/dist/example/valuationAnalyze.js.map +0 -1
  133. package/dist/hooks/index.js.map +0 -1
  134. package/dist/hooks/useEventBus.js.map +0 -1
  135. package/dist/hooks/useKeyboard.js.map +0 -1
  136. package/dist/hooks/useMiddlewareReducer.js.map +0 -1
  137. package/dist/hooks/useMouse.js.map +0 -1
  138. package/dist/hooks/useSetState.js.map +0 -1
  139. package/dist/hooks/useSheetEvent.js.map +0 -1
  140. package/dist/index.js.map +0 -1
  141. package/dist/standardUtils/index.js.map +0 -1
  142. package/dist/type/index.js.map +0 -1
  143. package/dist/type/sheet.js.map +0 -1
  144. 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 virtualized = arguments.length > 2 ? arguments[2] : undefined;
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: start,
44
- virtualEnd: end,
45
- paddingTop: start * itemHeight,
46
- paddingBottom: (data.length - end) * itemHeight
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 ? 25 : _ref$controlWidth;
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
- widths = _useSetState2[0],
35
- setWidth = _useSetState2[1];
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: item.title
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 _widths = _defineProperty({
149
+ var _widths2 = _defineProperty({
141
150
  length: columns.length
142
- }, hasControl ? changeIndex - 1 : changeIndex, "".concat(newWidth, "px"));
143
- setWidth(_widths);
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
+ };
@@ -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 ? 25 : _ref$controlWidth;
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: item.title
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
+ };