@sheinx/hooks 3.4.4-beta.7 → 3.5.0-beta.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.
@@ -10,6 +10,7 @@ interface UseTableVirtualProps {
10
10
  disabled?: boolean;
11
11
  isRtl?: boolean;
12
12
  columns: TableFormatColumn<any>[];
13
+ colgroup: (number | string | undefined)[];
13
14
  }
14
15
  declare const useTableVirtual: (props: UseTableVirtualProps) => {
15
16
  scrollHeight: number;
@@ -27,6 +28,8 @@ declare const useTableVirtual: (props: UseTableVirtualProps) => {
27
28
  setRowHeight: (index: number, height: number) => void;
28
29
  getTranslate: (left?: number, top?: number) => string;
29
30
  scrollToIndex: (index: number, callback?: () => void) => void;
31
+ scrollColumnByLeft: (targetLeft: number) => void;
32
+ scrollColumnIntoView: (colKey: string | number) => void;
30
33
  };
31
34
  export default useTableVirtual;
32
35
  //# sourceMappingURL=use-table-virtual.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-virtual.d.ts","sourceRoot":"","sources":["use-table-virtual.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,UAAU,oBAAoB;IAC5B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;CACnC;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;;oBAqLpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BAzFuB,MAAM,UAAU,MAAM;0BAxBtB,MAAM,QAAQ,MAAM;2BAqJnB,MAAM,aAAa,MAAM,IAAI;CA4FzE,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"use-table-virtual.d.ts","sourceRoot":"","sources":["use-table-virtual.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,UAAU,oBAAoB;IAC5B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;CAC3C;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;;oBAqLpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BAzFuB,MAAM,UAAU,MAAM;0BAxBtB,MAAM,QAAQ,MAAM;2BAqJnB,MAAM,aAAa,MAAM,IAAI;qCAoBnB,MAAM;mCAWR,MAAM,GAAG,MAAM;CAyFnE,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -259,6 +259,33 @@ var useTableVirtual = function useTableVirtual(props) {
259
259
  props.scrollRef.current.scrollTop = beforeHeight;
260
260
  }
261
261
  });
262
+ var scrollColumnByLeft = (0, _usePersistFn.usePersistFn)(function (targetLeft) {
263
+ if (targetLeft < 0) return;
264
+ var scrollEl = props.scrollRef.current;
265
+ if (!scrollEl) return;
266
+ // scrollLeft max
267
+ var max = scrollEl.scrollWidth - scrollEl.clientWidth;
268
+ var left = Math.min(targetLeft, max);
269
+ if (left === scrollEl.scrollLeft) return;
270
+ setLeft(left);
271
+ scrollEl.scrollLeft = left;
272
+ });
273
+ var scrollColumnIntoView = (0, _usePersistFn.usePersistFn)(function (colKey) {
274
+ if (colKey === undefined) return;
275
+ var col = props.columns.find(function (col) {
276
+ return col.key === colKey;
277
+ });
278
+ if (!col || col.fixed) return;
279
+ var left = 0;
280
+ for (var i = 0, len = col.index; i < len; i++) {
281
+ if (props.columns[i].fixed) {
282
+ left = 0;
283
+ } else {
284
+ left += props.colgroup[i];
285
+ }
286
+ }
287
+ scrollColumnByLeft(left);
288
+ });
262
289
  (0, _react.useEffect)(function () {
263
290
  var scrollRefHeight = props.scrollRef.current ? props.scrollRef.current.clientHeight : 0;
264
291
  var tableRefHeight = props.innerRef.current ? props.innerRef.current.clientHeight : 0;
@@ -322,7 +349,9 @@ var useTableVirtual = function useTableVirtual(props) {
322
349
  handleScroll: handleScroll,
323
350
  setRowHeight: setRowHeight,
324
351
  getTranslate: getTranslate,
325
- scrollToIndex: scrollToIndex
352
+ scrollToIndex: scrollToIndex,
353
+ scrollColumnByLeft: scrollColumnByLeft,
354
+ scrollColumnIntoView: scrollColumnIntoView
326
355
  };
327
356
  };
328
357
  var _default = exports.default = useTableVirtual;
@@ -1 +1 @@
1
- {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["position.ts"],"names":[],"mappings":"AAiGA,eAAO,MAAM,WAAW,WACd,WAAW,GAAG,IAAI,2EAEpB,SAAS,GAAG,MAAM,GAAG,MAAM,UACzB,WAAW,gKAKpB,CAAC"}
1
+ {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["position.ts"],"names":[],"mappings":"AAkGA,eAAO,MAAM,WAAW,WACd,WAAW,GAAG,IAAI,2EAEpB,SAAS,GAAG,MAAM,GAAG,MAAM,UACzB,WAAW,gKAKpB,CAAC"}
@@ -66,22 +66,23 @@ var getPopoverPosition = function getPopoverPosition(target) {
66
66
  var popupRect = popup === null || popup === void 0 ? void 0 : popup.getBoundingClientRect();
67
67
  if (verticalPoint > windowHeight / 2) position = 'top';else position = 'bottom';
68
68
 
69
+ // TODO: 暂时移除,另考虑方案
69
70
  // 如果渲染了弹出内容,则根据弹出内容宽度计算是否自动调整位置
70
- if (popupRect) {
71
- if ((popupRect === null || popupRect === void 0 ? void 0 : popupRect.width) / 2 > rect.left) {
72
- position += '-left';
73
- }
74
- if ((popupRect === null || popupRect === void 0 ? void 0 : popupRect.width) / 2 > windowWidth - rect.right) {
75
- position += '-right';
76
- }
77
- } else {
78
- // 兜底计算
79
- if (horizontalPoint > windowWidth * 0.6) {
80
- position += '-right';
81
- } else if (horizontalPoint < windowWidth * 0.4) {
82
- position += '-left';
83
- }
71
+ // if (popupRect && popupRect?.width) {
72
+ // if (popupRect?.width / 2 > rect.left) {
73
+ // position += '-left';
74
+ // }
75
+ // if (popupRect?.width / 2 > windowWidth - rect.right) {
76
+ // position += '-right';
77
+ // }
78
+ // } else {
79
+ // 兜底计算
80
+ if (horizontalPoint > windowWidth * 0.6) {
81
+ position += '-right';
82
+ } else if (horizontalPoint < windowWidth * 0.4) {
83
+ position += '-left';
84
84
  }
85
+ // }
85
86
  }
86
87
  return position;
87
88
  };
@@ -10,6 +10,7 @@ interface UseTableVirtualProps {
10
10
  disabled?: boolean;
11
11
  isRtl?: boolean;
12
12
  columns: TableFormatColumn<any>[];
13
+ colgroup: (number | string | undefined)[];
13
14
  }
14
15
  declare const useTableVirtual: (props: UseTableVirtualProps) => {
15
16
  scrollHeight: number;
@@ -27,6 +28,8 @@ declare const useTableVirtual: (props: UseTableVirtualProps) => {
27
28
  setRowHeight: (index: number, height: number) => void;
28
29
  getTranslate: (left?: number, top?: number) => string;
29
30
  scrollToIndex: (index: number, callback?: () => void) => void;
31
+ scrollColumnByLeft: (targetLeft: number) => void;
32
+ scrollColumnIntoView: (colKey: string | number) => void;
30
33
  };
31
34
  export default useTableVirtual;
32
35
  //# sourceMappingURL=use-table-virtual.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-virtual.d.ts","sourceRoot":"","sources":["use-table-virtual.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,UAAU,oBAAoB;IAC5B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;CACnC;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;;oBAqLpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BAzFuB,MAAM,UAAU,MAAM;0BAxBtB,MAAM,QAAQ,MAAM;2BAqJnB,MAAM,aAAa,MAAM,IAAI;CA4FzE,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"use-table-virtual.d.ts","sourceRoot":"","sources":["use-table-virtual.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,UAAU,oBAAoB;IAC5B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;CAC3C;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;;oBAqLpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BAzFuB,MAAM,UAAU,MAAM;0BAxBtB,MAAM,QAAQ,MAAM;2BAqJnB,MAAM,aAAa,MAAM,IAAI;qCAoBnB,MAAM;mCAWR,MAAM,GAAG,MAAM;CAyFnE,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -253,6 +253,33 @@ var useTableVirtual = function useTableVirtual(props) {
253
253
  props.scrollRef.current.scrollTop = beforeHeight;
254
254
  }
255
255
  });
256
+ var scrollColumnByLeft = usePersistFn(function (targetLeft) {
257
+ if (targetLeft < 0) return;
258
+ var scrollEl = props.scrollRef.current;
259
+ if (!scrollEl) return;
260
+ // scrollLeft max
261
+ var max = scrollEl.scrollWidth - scrollEl.clientWidth;
262
+ var left = Math.min(targetLeft, max);
263
+ if (left === scrollEl.scrollLeft) return;
264
+ setLeft(left);
265
+ scrollEl.scrollLeft = left;
266
+ });
267
+ var scrollColumnIntoView = usePersistFn(function (colKey) {
268
+ if (colKey === undefined) return;
269
+ var col = props.columns.find(function (col) {
270
+ return col.key === colKey;
271
+ });
272
+ if (!col || col.fixed) return;
273
+ var left = 0;
274
+ for (var i = 0, len = col.index; i < len; i++) {
275
+ if (props.columns[i].fixed) {
276
+ left = 0;
277
+ } else {
278
+ left += props.colgroup[i];
279
+ }
280
+ }
281
+ scrollColumnByLeft(left);
282
+ });
256
283
  useEffect(function () {
257
284
  var scrollRefHeight = props.scrollRef.current ? props.scrollRef.current.clientHeight : 0;
258
285
  var tableRefHeight = props.innerRef.current ? props.innerRef.current.clientHeight : 0;
@@ -316,7 +343,9 @@ var useTableVirtual = function useTableVirtual(props) {
316
343
  handleScroll: handleScroll,
317
344
  setRowHeight: setRowHeight,
318
345
  getTranslate: getTranslate,
319
- scrollToIndex: scrollToIndex
346
+ scrollToIndex: scrollToIndex,
347
+ scrollColumnByLeft: scrollColumnByLeft,
348
+ scrollColumnIntoView: scrollColumnIntoView
320
349
  };
321
350
  };
322
351
  export default useTableVirtual;
@@ -1 +1 @@
1
- {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["position.ts"],"names":[],"mappings":"AAiGA,eAAO,MAAM,WAAW,WACd,WAAW,GAAG,IAAI,2EAEpB,SAAS,GAAG,MAAM,GAAG,MAAM,UACzB,WAAW,gKAKpB,CAAC"}
1
+ {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["position.ts"],"names":[],"mappings":"AAkGA,eAAO,MAAM,WAAW,WACd,WAAW,GAAG,IAAI,2EAEpB,SAAS,GAAG,MAAM,GAAG,MAAM,UACzB,WAAW,gKAKpB,CAAC"}
@@ -60,22 +60,23 @@ var getPopoverPosition = function getPopoverPosition(target) {
60
60
  var popupRect = popup === null || popup === void 0 ? void 0 : popup.getBoundingClientRect();
61
61
  if (verticalPoint > windowHeight / 2) position = 'top';else position = 'bottom';
62
62
 
63
+ // TODO: 暂时移除,另考虑方案
63
64
  // 如果渲染了弹出内容,则根据弹出内容宽度计算是否自动调整位置
64
- if (popupRect) {
65
- if ((popupRect === null || popupRect === void 0 ? void 0 : popupRect.width) / 2 > rect.left) {
66
- position += '-left';
67
- }
68
- if ((popupRect === null || popupRect === void 0 ? void 0 : popupRect.width) / 2 > windowWidth - rect.right) {
69
- position += '-right';
70
- }
71
- } else {
72
- // 兜底计算
73
- if (horizontalPoint > windowWidth * 0.6) {
74
- position += '-right';
75
- } else if (horizontalPoint < windowWidth * 0.4) {
76
- position += '-left';
77
- }
65
+ // if (popupRect && popupRect?.width) {
66
+ // if (popupRect?.width / 2 > rect.left) {
67
+ // position += '-left';
68
+ // }
69
+ // if (popupRect?.width / 2 > windowWidth - rect.right) {
70
+ // position += '-right';
71
+ // }
72
+ // } else {
73
+ // 兜底计算
74
+ if (horizontalPoint > windowWidth * 0.6) {
75
+ position += '-right';
76
+ } else if (horizontalPoint < windowWidth * 0.4) {
77
+ position += '-left';
78
78
  }
79
+ // }
79
80
  }
80
81
  return position;
81
82
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sheinx/hooks",
3
- "version": "3.4.4-beta.7",
3
+ "version": "3.5.0-beta.1",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",