@zhenliang/sheet 0.1.72-beta.2 → 0.1.72-beta.3

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.
@@ -1,3 +1,4 @@
1
+ import { CellPosition } from "../../type/sheet";
1
2
  import React, { CSSProperties } from 'react';
2
3
  interface ControlProps {
3
4
  startRowVisible: boolean;
@@ -8,8 +9,13 @@ interface ControlProps {
8
9
  toTop: () => void;
9
10
  toBottom: () => void;
10
11
  backEditStyle?: Partial<CSSProperties>;
11
- ControlContainer?: React.FC;
12
+ ControlContainer?: React.FC<any>;
12
13
  showBackEdit?: boolean;
14
+ selectInfo?: {
15
+ start?: CellPosition;
16
+ end?: CellPosition;
17
+ selecting?: boolean;
18
+ };
13
19
  }
14
20
  export declare const Control: React.FC<ControlProps>;
15
21
  export {};
@@ -12,6 +12,7 @@ export var Control = function Control(props) {
12
12
  startRowVisible = props.startRowVisible,
13
13
  firstRowVisible = props.firstRowVisible,
14
14
  lastRowVisible = props.lastRowVisible,
15
+ selectInfo = props.selectInfo,
15
16
  toTop = props.toTop,
16
17
  toBottom = props.toBottom,
17
18
  backToEditRow = props.backToEditRow,
@@ -53,7 +54,9 @@ export var Control = function Control(props) {
53
54
  }, [firstRowVisible, showQuickLocationBtn, lastRowVisible, startRowVisible, showBackEdit]);
54
55
  if (!showBackEdit && !showQuickLocationBtn) return null;
55
56
  if (ControlContainer) {
56
- return /*#__PURE__*/_jsx(ControlContainer, {});
57
+ return /*#__PURE__*/_jsx(ControlContainer, {
58
+ selectInfo: selectInfo
59
+ });
57
60
  }
58
61
  return /*#__PURE__*/_jsx("div", {
59
62
  className: "control",
@@ -124,6 +124,22 @@ var Sheet = function Sheet(props) {
124
124
  }
125
125
  });
126
126
  },
127
+ goTo: function goTo(row, col) {
128
+ dispatch(function (d, getState) {
129
+ var _sheetWrapperRef$curr4;
130
+ var _getState2 = getState(),
131
+ groupConfig = _getState2.groupConfig,
132
+ data = _getState2.data;
133
+ var container = sheetWrapperRef.current;
134
+ if (isNil(row) || isNil(col)) return;
135
+ var actual = rowToActualRow(row, groupConfig, data.length);
136
+ var rowHeight = getRowHeight(container);
137
+ var firstRowCell = container.querySelector("td.cell[data-col='".concat(col, "']"));
138
+ var colPosition = firstRowCell ? firstRowCell.offsetLeft - firstRowCell.clientWidth : 0;
139
+ var scrollHeight = actual * rowHeight;
140
+ (_sheetWrapperRef$curr4 = sheetWrapperRef.current) === null || _sheetWrapperRef$curr4 === void 0 || _sheetWrapperRef$curr4.scrollTo(colPosition, scrollHeight);
141
+ });
142
+ },
127
143
  pushToHistory: function pushToHistory(config) {
128
144
  dispatch({
129
145
  type: 'pushHistory',
@@ -188,9 +204,9 @@ var Sheet = function Sheet(props) {
188
204
  useEffect(function () {
189
205
  if (!state.editing && state.start) {
190
206
  setTimeout(function () {
191
- var _sheetWrapperRef$curr4;
207
+ var _sheetWrapperRef$curr5;
192
208
  // 表格获取焦点 + 接收keyboard event
193
- (_sheetWrapperRef$curr4 = sheetWrapperRef.current) === null || _sheetWrapperRef$curr4 === void 0 || _sheetWrapperRef$curr4.focus({
209
+ (_sheetWrapperRef$curr5 = sheetWrapperRef.current) === null || _sheetWrapperRef$curr5 === void 0 || _sheetWrapperRef$curr5.focus({
194
210
  preventScroll: true
195
211
  });
196
212
  }, 1);
@@ -350,7 +366,12 @@ var Sheet = function Sheet(props) {
350
366
  return sheetInstance === null || sheetInstance === void 0 || (_sheetInstance$curren3 = sheetInstance.current) === null || _sheetInstance$curren3 === void 0 ? void 0 : _sheetInstance$curren3.zoomTo(((_data$length = data === null || data === void 0 ? void 0 : data.length) !== null && _data$length !== void 0 ? _data$length : 1) - 1);
351
367
  },
352
368
  showQuickLocationBtn: showQuickLocationBtn,
353
- ControlContainer: ControlContainer
369
+ ControlContainer: ControlContainer,
370
+ selectInfo: {
371
+ start: state.start,
372
+ end: state.end,
373
+ selecting: state.selecting
374
+ }
354
375
  }), children]
355
376
  })]
356
377
  }), /*#__PURE__*/_jsx(SearchInput, {
@@ -95,6 +95,7 @@ export type MenuRenderProps = {
95
95
  };
96
96
  export type SheetInstance = {
97
97
  zoomTo: (row?: number) => void;
98
+ goTo: (row: number, col: number) => void;
98
99
  pushToHistory: (value: OperateHistory) => void;
99
100
  selectRow: (row?: number) => void;
100
101
  select: (props: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhenliang/sheet",
3
- "version": "0.1.72-beta.2",
3
+ "version": "0.1.72-beta.3",
4
4
  "description": "A react library developed with dumi",
5
5
  "license": "MIT",
6
6
  "module": "dist/index.js",
@@ -8,7 +8,6 @@
8
8
  "files": [
9
9
  "dist"
10
10
  ],
11
- "preid": "beta",
12
11
  "scripts": {
13
12
  "build": "father build",
14
13
  "build:watch": "father dev",
@@ -79,5 +78,6 @@
79
78
  },
80
79
  "authors": [
81
80
  "fizz.zhou@ap.jll.com"
82
- ]
83
- }
81
+ ],
82
+ "preid": "beta"
83
+ }