@zhenliang/sheet 0.1.20 → 0.1.22

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 (137) hide show
  1. package/changes.md +45 -0
  2. package/package.json +1 -1
  3. package/dist/core/config.d.ts +0 -13
  4. package/dist/core/config.js +0 -13
  5. package/dist/core/editor/cascaderEditor/index.d.ts +0 -5
  6. package/dist/core/editor/cascaderEditor/index.js +0 -54
  7. package/dist/core/editor/cascaderEditor/index.less +0 -28
  8. package/dist/core/editor/dateEditor/index.d.ts +0 -5
  9. package/dist/core/editor/dateEditor/index.js +0 -55
  10. package/dist/core/editor/dateEditor/index.less +0 -11
  11. package/dist/core/editor/index.d.ts +0 -4
  12. package/dist/core/editor/index.js +0 -4
  13. package/dist/core/editor/numberEditor/index.d.ts +0 -8
  14. package/dist/core/editor/numberEditor/index.js +0 -107
  15. package/dist/core/editor/numberEditor/index.less +0 -30
  16. package/dist/core/editor/selectEditor/index.d.ts +0 -6
  17. package/dist/core/editor/selectEditor/index.js +0 -96
  18. package/dist/core/editor/selectEditor/index.less +0 -43
  19. package/dist/core/reducers/index.d.ts +0 -9
  20. package/dist/core/reducers/index.js +0 -38
  21. package/dist/core/reducers/keyboardReducer.d.ts +0 -2
  22. package/dist/core/reducers/keyboardReducer.js +0 -93
  23. package/dist/core/reducers/mouseReducer.d.ts +0 -2
  24. package/dist/core/reducers/mouseReducer.js +0 -164
  25. package/dist/core/reducers/sideEffectReducer.d.ts +0 -4
  26. package/dist/core/reducers/sideEffectReducer.js +0 -378
  27. package/dist/core/reducers/stateReducer.d.ts +0 -2
  28. package/dist/core/reducers/stateReducer.js +0 -174
  29. package/dist/core/sheet/Cell.d.ts +0 -4
  30. package/dist/core/sheet/Cell.js +0 -181
  31. package/dist/core/sheet/DataEditor.d.ts +0 -3
  32. package/dist/core/sheet/DataEditor.js +0 -24
  33. package/dist/core/sheet/DefaultCell.d.ts +0 -11
  34. package/dist/core/sheet/DefaultCell.js +0 -31
  35. package/dist/core/sheet/DefaultRow.d.ts +0 -12
  36. package/dist/core/sheet/DefaultRow.js +0 -28
  37. package/dist/core/sheet/DefaultRowMapper.d.ts +0 -8
  38. package/dist/core/sheet/DefaultRowMapper.js +0 -15
  39. package/dist/core/sheet/DefaultShell.d.ts +0 -8
  40. package/dist/core/sheet/DefaultShell.js +0 -12
  41. package/dist/core/sheet/Event.d.ts +0 -5
  42. package/dist/core/sheet/Event.js +0 -17
  43. package/dist/core/sheet/ValueViewer.d.ts +0 -3
  44. package/dist/core/sheet/ValueViewer.js +0 -9
  45. package/dist/core/sheet/index.d.ts +0 -5
  46. package/dist/core/sheet/index.js +0 -265
  47. package/dist/core/sheet/index.less +0 -307
  48. package/dist/core/sheet/useCellEvent.d.ts +0 -3
  49. package/dist/core/sheet/useCellEvent.js +0 -22
  50. package/dist/core/sheet/useContextMenu.d.ts +0 -21
  51. package/dist/core/sheet/useContextMenu.js +0 -86
  52. package/dist/core/sheet/useKeyBoardEvent.d.ts +0 -3
  53. package/dist/core/sheet/useKeyBoardEvent.js +0 -66
  54. package/dist/core/sheet/useMouseEvent.d.ts +0 -3
  55. package/dist/core/sheet/useMouseEvent.js +0 -298
  56. package/dist/core/sheet/useSelectVisible.d.ts +0 -2
  57. package/dist/core/sheet/useSelectVisible.js +0 -57
  58. package/dist/core/sheet/useVirtualList.d.ts +0 -7
  59. package/dist/core/sheet/useVirtualList.js +0 -103
  60. package/dist/core/sheet/var.less +0 -41
  61. package/dist/core/shell/draggableShell/index.d.ts +0 -5
  62. package/dist/core/shell/draggableShell/index.js +0 -197
  63. package/dist/core/shell/draggableShell/index.less +0 -16
  64. package/dist/core/shell/tableShell.d.ts +0 -5
  65. package/dist/core/shell/tableShell.js +0 -109
  66. package/dist/core/table/events.d.ts +0 -15
  67. package/dist/core/table/events.js +0 -95
  68. package/dist/core/table/index.d.ts +0 -4
  69. package/dist/core/table/index.js +0 -313
  70. package/dist/core/table/useGroupConfig.d.ts +0 -2
  71. package/dist/core/table/useGroupConfig.js +0 -65
  72. package/dist/core/table/useRowSelection.d.ts +0 -2
  73. package/dist/core/table/useRowSelection.js +0 -24
  74. package/dist/core/table/util.d.ts +0 -8
  75. package/dist/core/table/util.js +0 -29
  76. package/dist/core/util.d.ts +0 -59
  77. package/dist/core/util.js +0 -490
  78. package/dist/core/viewer/btnViewer/index.d.ts +0 -2
  79. package/dist/core/viewer/btnViewer/index.js +0 -37
  80. package/dist/core/viewer/cascaderViewer/index.d.ts +0 -2
  81. package/dist/core/viewer/cascaderViewer/index.js +0 -11
  82. package/dist/core/viewer/checkViewer/index.d.ts +0 -2
  83. package/dist/core/viewer/checkViewer/index.js +0 -23
  84. package/dist/core/viewer/editViewer/index.d.ts +0 -2
  85. package/dist/core/viewer/editViewer/index.js +0 -31
  86. package/dist/core/viewer/groupViewer/index.d.ts +0 -2
  87. package/dist/core/viewer/groupViewer/index.js +0 -34
  88. package/dist/core/viewer/index.d.ts +0 -7
  89. package/dist/core/viewer/index.js +0 -7
  90. package/dist/core/viewer/selectorViewer/index.d.ts +0 -2
  91. package/dist/core/viewer/selectorViewer/index.js +0 -16
  92. package/dist/core/viewer/switchViewer/index.d.ts +0 -2
  93. package/dist/core/viewer/switchViewer/index.js +0 -22
  94. package/dist/example/antComponent.d.ts +0 -3
  95. package/dist/example/antComponent.js +0 -314
  96. package/dist/example/basic.d.ts +0 -4
  97. package/dist/example/basic.js +0 -121
  98. package/dist/example/ellipsis.d.ts +0 -3
  99. package/dist/example/ellipsis.js +0 -64
  100. package/dist/example/fixed.d.ts +0 -3
  101. package/dist/example/fixed.js +0 -89
  102. package/dist/example/group.d.ts +0 -3
  103. package/dist/example/group.js +0 -123
  104. package/dist/example/index.less +0 -5
  105. package/dist/example/selection.d.ts +0 -4
  106. package/dist/example/selection.js +0 -86
  107. package/dist/example/sheet.d.ts +0 -4
  108. package/dist/example/sheet.js +0 -393
  109. package/dist/example/valuationAnalyze.d.ts +0 -2
  110. package/dist/example/valuationAnalyze.js +0 -227
  111. package/dist/hooks/index.d.ts +0 -8
  112. package/dist/hooks/index.js +0 -7
  113. package/dist/hooks/useEventBus.d.ts +0 -4
  114. package/dist/hooks/useEventBus.js +0 -17
  115. package/dist/hooks/useKeyboard.d.ts +0 -18
  116. package/dist/hooks/useKeyboard.js +0 -108
  117. package/dist/hooks/useMiddlewareReducer.d.ts +0 -12
  118. package/dist/hooks/useMiddlewareReducer.js +0 -47
  119. package/dist/hooks/useMouse.d.ts +0 -11
  120. package/dist/hooks/useMouse.js +0 -68
  121. package/dist/hooks/useSetState.d.ts +0 -2
  122. package/dist/hooks/useSetState.js +0 -27
  123. package/dist/hooks/useSheetEvent.d.ts +0 -5
  124. package/dist/hooks/useSheetEvent.js +0 -5
  125. package/dist/hooks/useWidthConfig.d.ts +0 -4
  126. package/dist/hooks/useWidthConfig.js +0 -5
  127. package/dist/index.d.ts +0 -8
  128. package/dist/index.js +0 -8
  129. package/dist/standardUtils/index.d.ts +0 -9
  130. package/dist/standardUtils/index.js +0 -32
  131. package/dist/type/index.d.ts +0 -2
  132. package/dist/type/index.js +0 -4
  133. package/dist/type/sheet.d.ts +0 -205
  134. package/dist/type/sheet.js +0 -9
  135. package/dist/type/sheetTable.d.ts +0 -89
  136. package/dist/type/sheetTable.js +0 -1
  137. package/dist/typings/index.d.ts +0 -1
@@ -1,86 +0,0 @@
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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
- 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."); }
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 _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; }
11
- 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; } }
12
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
- import { useSetState } from "../..";
14
- import { useEffect } from 'react';
15
- import { calcMenuPosition, extractDataRowAndCol, findParentTd } from "../util";
16
- export var useContextMenu = function useContextMenu(dispatch, elementRef) {
17
- var enableContextMenu = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
18
- var contextMenuRef = arguments.length > 3 ? arguments[3] : undefined;
19
- var _useSetState = useSetState({
20
- showMenu: false,
21
- position: {
22
- top: 0,
23
- left: 0
24
- },
25
- cellPosition: {
26
- row: 0,
27
- col: 0
28
- }
29
- }),
30
- _useSetState2 = _slicedToArray(_useSetState, 2),
31
- menuEvent = _useSetState2[0],
32
- setMenuEvent = _useSetState2[1];
33
- var handleContextMenu = function handleContextMenu(e) {
34
- var _contextMenuRef$curre;
35
- e.preventDefault();
36
- var currentCell = findParentTd(e.target);
37
- if (!currentCell) return;
38
- var currentPos = extractDataRowAndCol(currentCell);
39
- dispatch({
40
- type: 'mouseDown',
41
- payload: {
42
- pos: currentPos,
43
- shiftKey: e.shiftKey
44
- }
45
- });
46
- var _calcMenuPosition = calcMenuPosition({
47
- tableElement: elementRef.current,
48
- menuElement: (_contextMenuRef$curre = contextMenuRef.current) === null || _contextMenuRef$curre === void 0 ? void 0 : _contextMenuRef$curre.firstElementChild,
49
- x: e.clientX,
50
- y: e.clientY
51
- }),
52
- top = _calcMenuPosition.top,
53
- left = _calcMenuPosition.left;
54
- setMenuEvent({
55
- showMenu: true,
56
- position: {
57
- top: top,
58
- left: left
59
- },
60
- cellPosition: currentPos
61
- });
62
- };
63
- useEffect(function () {
64
- var _contextMenuRef$curre2, _contextMenuRef$curre3;
65
- if (!elementRef.current || !enableContextMenu) return;
66
- // 添加统一规范
67
- (_contextMenuRef$curre2 = contextMenuRef.current) === null || _contextMenuRef$curre2 === void 0 ? void 0 : (_contextMenuRef$curre3 = _contextMenuRef$curre2.firstElementChild) === null || _contextMenuRef$curre3 === void 0 ? void 0 : _contextMenuRef$curre3.setAttribute('style', 'z-index: 5;word-break: keep-all;');
68
- var handleClose = function handleClose() {
69
- setMenuEvent({
70
- showMenu: false
71
- });
72
- };
73
- elementRef.current.addEventListener('contextmenu', handleContextMenu);
74
- document.addEventListener('click', handleClose);
75
- document.addEventListener('scroll', function () {
76
- setMenuEvent({
77
- showMenu: false
78
- });
79
- }, true);
80
- return function () {
81
- document.removeEventListener('contextmenu', handleContextMenu);
82
- document.removeEventListener('click', handleClose);
83
- };
84
- }, [elementRef.current, enableContextMenu]);
85
- return _objectSpread({}, menuEvent);
86
- };
@@ -1,3 +0,0 @@
1
- import { Dispatch } from "../../hooks/useMiddlewareReducer";
2
- import type { SheetType } from "../../type";
3
- export declare const useKeyBoardEvent: (dispatch: Dispatch, elementRef: React.RefObject<SheetType.refAssertion>) => void;
@@ -1,66 +0,0 @@
1
- import { useKeyBoard } from "../..";
2
- import { sideEffectReducer } from "../reducers/sideEffectReducer";
3
- import { getRowHeight } from "../util";
4
- export var useKeyBoardEvent = function useKeyBoardEvent(dispatch, elementRef) {
5
- useKeyBoard({
6
- move: function move(e, value) {
7
- e.preventDefault();
8
- dispatch({
9
- type: 'move',
10
- payload: value
11
- });
12
- // todo 横向滚动的处理
13
- var _ref = value,
14
- row = _ref.row;
15
- if (Math.abs(row) !== 0) {
16
- var _elementRef$current;
17
- var rowHeight = getRowHeight(elementRef.current);
18
- var itemHeight = rowHeight || 30;
19
- elementRef === null || elementRef === void 0 ? void 0 : (_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.scrollBy({
20
- top: itemHeight * row
21
- });
22
- }
23
- },
24
- escape: function escape() {
25
- dispatch({
26
- type: 'escape'
27
- });
28
- },
29
- reverse: function reverse() {
30
- dispatch(sideEffectReducer.reverse);
31
- },
32
- delete: function _delete() {
33
- dispatch(sideEffectReducer.delete);
34
- },
35
- enter: function enter() {
36
- dispatch({
37
- type: 'enter'
38
- });
39
- },
40
- otherInput: function otherInput(e, value) {
41
- dispatch(function (d, getState) {
42
- var _getState = getState(),
43
- editing = _getState.editing;
44
- if (editing) {
45
- return;
46
- } else {
47
- e.preventDefault();
48
- dispatch({
49
- type: 'otherInput',
50
- payload: value
51
- });
52
- }
53
- });
54
- },
55
- copy: function copy() {
56
- dispatch(sideEffectReducer.copy);
57
- },
58
- paste: function paste() {
59
- dispatch(sideEffectReducer.paste);
60
- },
61
- cut: function cut() {
62
- dispatch(sideEffectReducer.copy);
63
- dispatch(sideEffectReducer.delete);
64
- }
65
- }, elementRef.current);
66
- };
@@ -1,3 +0,0 @@
1
- import { Dispatch } from "../../hooks/useMiddlewareReducer";
2
- import type { SheetType } from "../../type";
3
- export declare const useMouseEvent: (dispatch: Dispatch, elementRef: React.RefObject<SheetType.refAssertion>) => void;
@@ -1,298 +0,0 @@
1
- import { useMouse } from "../..";
2
- import { useCallback, useRef } from 'react';
3
- import { extractDataRowAndCol, findParentTd } from "../util";
4
- var rowCount = 10; //每秒10行
5
- var colCount = 5; //每秒5列
6
-
7
- export var useMouseEvent = function useMouseEvent(dispatch, elementRef) {
8
- var animateRef = useRef(false);
9
- // const animateScrollCalled = useRef<number>(0);
10
- var rowHeightRef = useRef(40);
11
- var colWidthRef = useRef(100);
12
- var resetInterval = useCallback(function () {
13
- if (animateRef.current) {
14
- animateRef.current = false;
15
- // animateScrollCalled.current -= 1;
16
- }
17
- }, []);
18
- var scrollTo = useCallback(function (type) {
19
- if (!elementRef.current) return;
20
- // 当前滚动高度
21
- var _ref = elementRef.current || {},
22
- scrollTop = _ref.scrollTop,
23
- scrollLeft = _ref.scrollLeft,
24
- scrollHeight = _ref.scrollHeight,
25
- scrollWidth = _ref.scrollWidth;
26
- var destination = {
27
- y: scrollTop,
28
- x: scrollLeft
29
- };
30
- var called = 0;
31
- var rowCalled = 0;
32
- var colCalled = 0;
33
- var step = function step() {
34
- var _elementRef$current;
35
- (_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.style.setProperty('scroll-behavior', 'auto');
36
- var position = {
37
- x: destination.x,
38
- y: destination.y
39
- };
40
- if (type === 'bottom') {
41
- position.y = scrollHeight;
42
- if (Math.round(called / 60 * rowCount) - rowCalled > 1) {
43
- rowCalled++;
44
- dispatch({
45
- type: 'rowMove',
46
- payload: 1
47
- });
48
- }
49
- }
50
- if (type === 'right') {
51
- position.x = scrollWidth;
52
- if (Math.round(called / 60 * colCount) - colCalled > 1) {
53
- colCalled++;
54
- dispatch({
55
- type: 'colMove',
56
- payload: 1
57
- });
58
- }
59
- }
60
- if (type === 'left') {
61
- position.x = 0;
62
- if (Math.round(called / 60 * colCount) - colCalled > 1) {
63
- colCalled++;
64
- dispatch({
65
- type: 'colMove',
66
- payload: -1
67
- });
68
- }
69
- }
70
- if (type === 'top') {
71
- position.y = 0;
72
- if (Math.round(called / 60 * rowCount) - rowCalled > 1) {
73
- rowCalled++;
74
- dispatch({
75
- type: 'rowMove',
76
- payload: -1
77
- });
78
- }
79
- }
80
-
81
- // 距离目标滚动距离
82
- var distance = {
83
- x: position.x - destination.x,
84
- // x: 0,
85
- y: position.y - destination.y
86
- };
87
- // 目标滚动位置
88
- destination = {
89
- x: destination.x + (distance.x !== 0 ? distance.x * colWidthRef.current * colCount / 60 / Math.abs(distance.x) : 0),
90
- // x: 0,
91
- y: destination.y + (distance.y !== 0 ? distance.y * rowHeightRef.current * rowCount / 60 / Math.abs(distance.y) : 0)
92
- };
93
- if (!animateRef.current) return;
94
- if (Math.abs(distance.x) + Math.abs(distance.y) < 2) {
95
- var _elementRef$current2;
96
- (_elementRef$current2 = elementRef.current) === null || _elementRef$current2 === void 0 ? void 0 : _elementRef$current2.scrollTo(destination.x, destination.y);
97
- resetInterval();
98
- } else {
99
- var _elementRef$current3;
100
- (_elementRef$current3 = elementRef.current) === null || _elementRef$current3 === void 0 ? void 0 : _elementRef$current3.scrollTo(destination.x, destination.y);
101
- requestAnimationFrame(step);
102
- called++;
103
- }
104
- };
105
- step();
106
- }, []);
107
- var mouseDown = useCallback(function (e) {
108
- var _elementRef$current4;
109
- if (e.button !== 0) return;
110
- e.preventDefault();
111
- if (!((_elementRef$current4 = elementRef.current) !== null && _elementRef$current4 !== void 0 && _elementRef$current4.contains(e.target))) {
112
- dispatch({
113
- type: 'loseFocus'
114
- });
115
- }
116
- var currentCell = findParentTd(e.target);
117
- if (!currentCell) {
118
- return;
119
- }
120
- var currentPos = extractDataRowAndCol(currentCell);
121
- dispatch({
122
- type: 'mouseDown',
123
- payload: {
124
- pos: currentPos,
125
- shiftKey: e.shiftKey
126
- }
127
- });
128
- }, []);
129
- var mouseOver = useCallback(function (e) {
130
- var _elementRef$current5, _elementRef$current6;
131
- e.preventDefault();
132
- if (!((_elementRef$current5 = elementRef.current) !== null && _elementRef$current5 !== void 0 && _elementRef$current5.contains(e.target))) return;
133
- var currentCell = findParentTd(e.target);
134
- if (!currentCell || currentCell.classList.contains('fixed')) return;
135
- (_elementRef$current6 = elementRef.current) === null || _elementRef$current6 === void 0 ? void 0 : _elementRef$current6.style.setProperty('scroll-behavior', 'smooth');
136
- var currentPos = extractDataRowAndCol(currentCell);
137
- dispatch({
138
- type: 'mouseOver',
139
- payload: currentPos
140
- });
141
- dispatch(function (d, getState) {
142
- var _elementRef$current7;
143
- var _getState = getState(),
144
- mouseDown = _getState.mouseDown;
145
- if (!mouseDown || !elementRef.current) return;
146
- var cellBounding = currentCell.getBoundingClientRect();
147
- var parentBounding = (_elementRef$current7 = elementRef.current) === null || _elementRef$current7 === void 0 ? void 0 : _elementRef$current7.getBoundingClientRect();
148
- var left = cellBounding.left,
149
- top = cellBounding.top,
150
- bottom = cellBounding.bottom,
151
- right = cellBounding.right;
152
- var parentLeft = parentBounding.left,
153
- parentTop = parentBounding.top,
154
- parentBottom = parentBounding.bottom,
155
- parentRight = parentBounding.right;
156
- var dBottom = bottom - parentBottom;
157
- var dTop = top - parentTop;
158
- var dLeft = left - parentLeft;
159
- var dRight = right - parentRight;
160
- var cellHeight = currentCell.clientHeight;
161
- var cellWidth = currentCell.clientWidth;
162
- rowHeightRef.current = cellHeight;
163
- colWidthRef.current = cellWidth;
164
- var isElementEdge = dBottom > -40 || dTop < 40 || dLeft < 40 || dRight > -40;
165
- if (isElementEdge) {
166
- if (animateRef.current === true) return;
167
- animateRef.current = true;
168
- // animateScrollCalled.current += 1;
169
- } else {
170
- resetInterval();
171
- }
172
- if (dBottom > -40) {
173
- scrollTo('bottom');
174
- // elementRef.current.scrollTop += cellHeight;
175
- }
176
-
177
- if (dTop < 40) {
178
- scrollTo('top');
179
- // elementRef.current.scrollTop -= cellHeight;
180
- }
181
-
182
- if (dLeft < 40) {
183
- scrollTo('left');
184
- // elementRef.current.scrollLeft -= cellWidth;
185
- }
186
-
187
- if (dRight > -40) {
188
- scrollTo('right');
189
- // elementRef.current.scrollLeft += cellWidth;
190
- }
191
- });
192
- }, []);
193
- var mouseUp = useCallback(function (e) {
194
- e.preventDefault();
195
- resetInterval();
196
- var currentCell = findParentTd(e.target);
197
- if (!currentCell || currentCell.classList.contains('fixed')) {
198
- dispatch({
199
- type: 'changes',
200
- payload: {
201
- mouseDown: false
202
- }
203
- });
204
- return;
205
- }
206
- var currentPos = extractDataRowAndCol(currentCell);
207
- dispatch({
208
- type: 'mouseUp',
209
- payload: currentPos
210
- });
211
- }, []);
212
- var mouseLeave = useCallback(function (e) {
213
- dispatch(function (d, getState) {
214
- var _getState2 = getState(),
215
- mouseDown = _getState2.mouseDown;
216
- if (mouseDown && elementRef.current) {
217
- var _elementRef$current8;
218
- var parentBounding = (_elementRef$current8 = elementRef.current) === null || _elementRef$current8 === void 0 ? void 0 : _elementRef$current8.getBoundingClientRect();
219
- var left = parentBounding.left,
220
- top = parentBounding.top,
221
- right = parentBounding.right,
222
- bottom = parentBounding.bottom;
223
- var x = e.x,
224
- y = e.y;
225
- resetInterval();
226
- if (animateRef.current === true) return;
227
- animateRef.current = true;
228
-
229
- // animateScrollCalled.current += 1;
230
- if (y > bottom) {
231
- scrollTo('bottom');
232
- }
233
- if (y < top) {
234
- scrollTo('top');
235
- }
236
- if (x < left) {
237
- scrollTo('left');
238
- }
239
- if (x > right) {
240
- scrollTo('right');
241
- }
242
- } else {
243
- mouseDown && dispatch({
244
- type: 'changes',
245
- payload: {
246
- mouseDown: false
247
- }
248
- });
249
- }
250
- });
251
- }, []);
252
- var doubleClick = useCallback(function (e) {
253
- var _elementRef$current9;
254
- if (!((_elementRef$current9 = elementRef.current) !== null && _elementRef$current9 !== void 0 && _elementRef$current9.contains(e.target))) {
255
- return;
256
- }
257
- e.preventDefault();
258
- var currentCell = findParentTd(e.target);
259
- if (!(currentCell !== null && currentCell !== void 0 && currentCell.classList) || currentCell.classList.contains('read-only')) {
260
- // 只读
261
- return;
262
- }
263
- var currentPos = extractDataRowAndCol(currentCell);
264
- dispatch({
265
- type: 'doubleClick',
266
- payload: currentPos
267
- });
268
- }, []);
269
- var loseFocus = useCallback(function (e) {
270
- var _elementRef$current10, _elementRef$current11;
271
- if (!((_elementRef$current10 = elementRef.current) !== null && _elementRef$current10 !== void 0 && (_elementRef$current11 = _elementRef$current10.parentElement) !== null && _elementRef$current11 !== void 0 && _elementRef$current11.contains(e.target))) {
272
- dispatch({
273
- type: 'loseFocus'
274
- });
275
- return;
276
- }
277
- e.preventDefault();
278
- var currentCell = findParentTd(e.target);
279
- if (!(currentCell !== null && currentCell !== void 0 && currentCell.classList) || currentCell.classList.contains('read-only')) {
280
- // 只读
281
- return;
282
- }
283
- var currentPos = extractDataRowAndCol(currentCell);
284
- dispatch({
285
- type: 'doubleClick',
286
- payload: currentPos
287
- });
288
- }, []);
289
- useMouse({
290
- mouseDown: mouseDown,
291
- mouseOver: mouseOver,
292
- mouseUp: mouseUp,
293
- mouseLeave: mouseLeave,
294
- mouseEnter: resetInterval,
295
- doubleClick: doubleClick,
296
- loseFocus: loseFocus
297
- }, elementRef.current);
298
- };
@@ -1,2 +0,0 @@
1
- import { SheetType } from "../../type";
2
- export declare const useSelectVisible: (sheetWrapper: React.RefObject<SheetType.refAssertion>, start?: SheetType.CellPosition) => [boolean, 'up' | 'down'];
@@ -1,57 +0,0 @@
1
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
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
- 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
- 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(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; } }
6
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
- import { throttle } from 'lodash';
8
- import { useEffect, useState } from 'react';
9
- export var useSelectVisible = function useSelectVisible(sheetWrapper, start) {
10
- var _useState = useState(true),
11
- _useState2 = _slicedToArray(_useState, 2),
12
- startVisible = _useState2[0],
13
- setStartVisible = _useState2[1];
14
- var _useState3 = useState('up'),
15
- _useState4 = _slicedToArray(_useState3, 2),
16
- backDirection = _useState4[0],
17
- setBackDirection = _useState4[1];
18
- useEffect(function () {
19
- var _sheetWrapper$current3;
20
- var handleScroll = throttle(function () {
21
- var _sheetWrapper$current, _sheetWrapper$current2;
22
- if (!start) {
23
- return;
24
- }
25
- var startCell = (_sheetWrapper$current = sheetWrapper.current) === null || _sheetWrapper$current === void 0 ? void 0 : _sheetWrapper$current.querySelector("td.cell[data-row='".concat(start.row, "']"));
26
- if (!startCell) {
27
- // 找不到说明已经不在可视区域了
28
- setStartVisible(false);
29
- return;
30
- }
31
- var _ref = ((_sheetWrapper$current2 = sheetWrapper.current) === null || _sheetWrapper$current2 === void 0 ? void 0 : _sheetWrapper$current2.getBoundingClientRect()) || {},
32
- _ref$top = _ref.top,
33
- top = _ref$top === void 0 ? 0 : _ref$top,
34
- _ref$bottom = _ref.bottom,
35
- bottom = _ref$bottom === void 0 ? 0 : _ref$bottom;
36
- var _ref2 = (startCell === null || startCell === void 0 ? void 0 : startCell.getBoundingClientRect()) || {},
37
- cellTop = _ref2.top,
38
- cellBottom = _ref2.bottom;
39
- if (top < cellTop && bottom > cellBottom) {
40
- setStartVisible(true);
41
- } else {
42
- setStartVisible(false);
43
- setBackDirection(top < cellTop ? 'down' : 'up');
44
- }
45
- }, 100);
46
- handleScroll();
47
- (_sheetWrapper$current3 = sheetWrapper.current) === null || _sheetWrapper$current3 === void 0 ? void 0 : _sheetWrapper$current3.addEventListener('scroll', handleScroll);
48
- return function () {
49
- var _sheetWrapper$current4;
50
- (_sheetWrapper$current4 = sheetWrapper.current) === null || _sheetWrapper$current4 === void 0 ? void 0 : _sheetWrapper$current4.removeEventListener('scroll', handleScroll);
51
- };
52
- }, [sheetWrapper.current, start]);
53
- if (!start) {
54
- return [true, 'up'];
55
- }
56
- return [startVisible, backDirection];
57
- };
@@ -1,7 +0,0 @@
1
- import type { SheetType } from "../../type";
2
- export declare const useVirtualList: (elementRef: React.RefObject<SheetType.refAssertion>, data?: SheetType.Cell[][], groupConfig?: SheetType.RowGroupConfig, virtualized?: boolean) => {
3
- virtualStart: number;
4
- virtualEnd: number;
5
- paddingTop: number;
6
- paddingBottom: number;
7
- };
@@ -1,103 +0,0 @@
1
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
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
- 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
- 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(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; } }
6
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
- import { isEqual, throttle } from 'lodash';
8
- import { useEffect, useRef, useState } from 'react';
9
- import { getRowHeight, rowToActualRow, rowToCountRow } from "../util";
10
- var extra = 20;
11
- // 虚拟列表
12
- export var useVirtualList = function useVirtualList(elementRef) {
13
- var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
14
- var groupConfig = arguments.length > 2 ? arguments[2] : undefined;
15
- var virtualized = arguments.length > 3 ? arguments[3] : undefined;
16
- var _useState = useState({
17
- virtualStart: 0,
18
- virtualEnd: virtualized ? Math.min(data.length - 1, 2 * extra) : data.length - 1,
19
- paddingTop: 0,
20
- paddingBottom: 0
21
- }),
22
- _useState2 = _slicedToArray(_useState, 2),
23
- state = _useState2[0],
24
- setState = _useState2[1];
25
- var virtualStart = state.virtualStart,
26
- virtualEnd = state.virtualEnd,
27
- paddingTop = state.paddingTop,
28
- paddingBottom = state.paddingBottom;
29
- var virtualRef = useRef();
30
- var groupConfigRef = useRef(groupConfig);
31
- useEffect(function () {
32
- var _elementRef$current;
33
- groupConfigRef.current = groupConfig;
34
- (_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.scrollBy({
35
- top: 1
36
- });
37
- }, [groupConfig]);
38
- useEffect(function () {
39
- if (!elementRef.current) return;
40
-
41
- // 当前位定高的表格,所以可以直接获取第一行的高度
42
- var rowHeight = getRowHeight(elementRef.current);
43
- var itemHeight = rowHeight || 30;
44
- var handleScroll = throttle(function () {
45
- var _ref = elementRef.current,
46
- scrollTop = _ref.scrollTop,
47
- clientHeight = _ref.clientHeight;
48
- var start = Math.floor(scrollTop / itemHeight) - extra;
49
- var end = Math.ceil((scrollTop + clientHeight) / itemHeight) + extra;
50
- if (!groupConfigRef.current) {
51
- var newConfig = {
52
- virtualStart: start,
53
- virtualEnd: end,
54
- paddingTop: start * itemHeight,
55
- paddingBottom: (data.length - end) * itemHeight
56
- };
57
- if (isEqual(newConfig, virtualRef.current)) {
58
- return;
59
- }
60
- virtualRef.current = newConfig;
61
- setState(newConfig);
62
- return;
63
- }
64
- var actualStart = rowToCountRow(start, groupConfigRef.current, data.length);
65
- var actualEnd = rowToCountRow(end, groupConfigRef.current, data.length);
66
- var maxEnd = rowToActualRow(data.length, groupConfigRef.current, data.length);
67
- var invisibleTop = rowToActualRow(actualStart, groupConfigRef.current, data.length);
68
- var invisibleBottom = maxEnd > end ? maxEnd - end : 0;
69
- var updateVirtualConfig = {
70
- virtualStart: actualStart,
71
- virtualEnd: actualEnd,
72
- paddingTop: invisibleTop * itemHeight,
73
- paddingBottom: invisibleBottom * itemHeight
74
- };
75
- if (isEqual(updateVirtualConfig, virtualRef.current)) {
76
- return;
77
- }
78
- setState(updateVirtualConfig);
79
- virtualRef.current = updateVirtualConfig;
80
- }, 50);
81
- // data.length change 的时候用 handleScroll 重设 virtual params
82
- handleScroll();
83
- elementRef.current.addEventListener('scroll', handleScroll);
84
- return function () {
85
- var _elementRef$current2;
86
- (_elementRef$current2 = elementRef.current) === null || _elementRef$current2 === void 0 ? void 0 : _elementRef$current2.removeEventListener('scroll', handleScroll);
87
- };
88
- }, [elementRef.current, data.length]);
89
- if (!virtualized) {
90
- return {
91
- virtualStart: 0,
92
- virtualEnd: data.length,
93
- paddingTop: 0,
94
- paddingBottom: 0
95
- };
96
- }
97
- return {
98
- virtualStart: Math.max(0, virtualStart),
99
- virtualEnd: Math.min(data.length, virtualEnd),
100
- paddingTop: Math.max(0, paddingTop),
101
- paddingBottom: data.length - 1 <= virtualEnd ? 0 : paddingBottom
102
- };
103
- };
@@ -1,41 +0,0 @@
1
- .harvest{
2
- --row-height:40px;
3
- --cell-font-size:12px;
4
- --cell-title-font-size:12px;
5
- --cell-line-height:40px;
6
- --cell-inner-height:39px;
7
- --cell-padding-vertical:0;
8
- --cell-padding-horizontal:5px;
9
- --cell-border-color: #DDD;
10
- --cell-background-color:white;
11
- --cell-title-background-color:#f7f9fc;
12
- --cell-read-only-background-color:#f7f9fc;
13
- --cell-hover:white;
14
- --cell-box-shadow:inset 0 -100px 0 rgba(33, 133, 208, 15%);;
15
- --cell-fixed-box-shadow-left:inset 10px 0 8px -8px rgba(5, 5, 5,6%);
16
- --cell-fixed-box-shadow-right:inset -10px 0 8px -8px rgba(5, 5, 5,6%);
17
- --resizer: #2185d0;
18
- --color:black;
19
- --title-color:#999;
20
- --read-color:#999;
21
- }
22
-
23
- .ali-devops{
24
- --row-height:40px;
25
- --cell-font-size:14px;
26
- --cell-line-height:20px;
27
- --cell-padding-vertical:12px;
28
- --cell-padding-horizontal:12px;
29
- --cell-border-color: #e5e5e5;
30
- --cell-background-color:white;
31
- --cell-title-background-color:white;
32
- --cell-read-only-background-color:white;
33
- --cell-fixed-box-shadow:inset -10px 0 8px -8px rgba(5, 5, 5,6%);
34
- --cell-hover:#f7f7f7;
35
- --cell-fixed-box-shadow-left:inset 10px 0 8px -8px rgba(5, 5, 5,6%);
36
- --cell-fixed-box-shadow-right:inset -10px 0 8px -8px rgba(5, 5, 5,6%);
37
- --resizer: #1b9aee;
38
- --color:#262626;
39
- --title-color:#8c8c8c;
40
- --read-color:#8c8c8c;
41
- }