@sheinx/hooks 3.9.0-beta.2 → 3.9.0-beta.20

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 (65) hide show
  1. package/cjs/common/use-filter/use-filter.type.d.ts +1 -1
  2. package/cjs/common/use-filter/use-filter.type.d.ts.map +1 -1
  3. package/cjs/components/use-button/use-button.d.ts +2 -2
  4. package/cjs/components/use-carousel/use-carousel.d.ts +12 -0
  5. package/cjs/components/use-carousel/use-carousel.d.ts.map +1 -1
  6. package/cjs/components/use-carousel/use-carousel.js +67 -17
  7. package/cjs/components/use-form/use-form.type.d.ts +1 -1
  8. package/cjs/components/use-form/use-form.type.d.ts.map +1 -1
  9. package/cjs/components/use-input/use-input-format.d.ts +1 -1
  10. package/cjs/components/use-input/use-input-number.d.ts +1 -1
  11. package/cjs/components/use-table/use-table-columns.d.ts +8 -1
  12. package/cjs/components/use-table/use-table-columns.d.ts.map +1 -1
  13. package/cjs/components/use-table/use-table-columns.js +90 -1
  14. package/cjs/components/use-table/use-table-filter.d.ts +2 -2
  15. package/cjs/components/use-table/use-table-filter.d.ts.map +1 -1
  16. package/cjs/components/use-table/use-table-filter.js +11 -5
  17. package/cjs/components/use-table/use-table-virtual.d.ts +2 -0
  18. package/cjs/components/use-table/use-table-virtual.d.ts.map +1 -1
  19. package/cjs/components/use-table/use-table-virtual.js +44 -10
  20. package/cjs/components/use-tree/use-tree.d.ts +0 -1
  21. package/cjs/components/use-tree/use-tree.d.ts.map +1 -1
  22. package/cjs/components/use-tree/use-tree.js +3 -11
  23. package/cjs/utils/dom/get-dataset.d.ts +4 -0
  24. package/cjs/utils/dom/get-dataset.d.ts.map +1 -0
  25. package/cjs/utils/dom/get-dataset.js +18 -0
  26. package/cjs/utils/dom/index.d.ts +1 -0
  27. package/cjs/utils/dom/index.d.ts.map +1 -1
  28. package/cjs/utils/dom/index.js +12 -0
  29. package/cjs/utils/rule/regexp.d.ts +1 -1
  30. package/cjs/utils/rule/required.d.ts.map +1 -1
  31. package/cjs/utils/rule/required.js +3 -1
  32. package/cjs/utils/validate/get-rule.js +1 -1
  33. package/esm/common/use-filter/use-filter.type.d.ts +1 -1
  34. package/esm/common/use-filter/use-filter.type.d.ts.map +1 -1
  35. package/esm/components/use-button/use-button.d.ts +2 -2
  36. package/esm/components/use-carousel/use-carousel.d.ts +12 -0
  37. package/esm/components/use-carousel/use-carousel.d.ts.map +1 -1
  38. package/esm/components/use-carousel/use-carousel.js +67 -17
  39. package/esm/components/use-form/use-form.type.d.ts +1 -1
  40. package/esm/components/use-form/use-form.type.d.ts.map +1 -1
  41. package/esm/components/use-input/use-input-format.d.ts +1 -1
  42. package/esm/components/use-input/use-input-number.d.ts +1 -1
  43. package/esm/components/use-table/use-table-columns.d.ts +8 -1
  44. package/esm/components/use-table/use-table-columns.d.ts.map +1 -1
  45. package/esm/components/use-table/use-table-columns.js +91 -2
  46. package/esm/components/use-table/use-table-filter.d.ts +2 -2
  47. package/esm/components/use-table/use-table-filter.d.ts.map +1 -1
  48. package/esm/components/use-table/use-table-filter.js +11 -5
  49. package/esm/components/use-table/use-table-virtual.d.ts +2 -0
  50. package/esm/components/use-table/use-table-virtual.d.ts.map +1 -1
  51. package/esm/components/use-table/use-table-virtual.js +44 -10
  52. package/esm/components/use-tree/use-tree.d.ts +0 -1
  53. package/esm/components/use-tree/use-tree.d.ts.map +1 -1
  54. package/esm/components/use-tree/use-tree.js +3 -11
  55. package/esm/utils/dom/get-dataset.d.ts +4 -0
  56. package/esm/utils/dom/get-dataset.d.ts.map +1 -0
  57. package/esm/utils/dom/get-dataset.js +12 -0
  58. package/esm/utils/dom/index.d.ts +1 -0
  59. package/esm/utils/dom/index.d.ts.map +1 -1
  60. package/esm/utils/dom/index.js +1 -0
  61. package/esm/utils/rule/regexp.d.ts +1 -1
  62. package/esm/utils/rule/required.d.ts.map +1 -1
  63. package/esm/utils/rule/required.js +3 -1
  64. package/esm/utils/validate/get-rule.js +1 -1
  65. package/package.json +2 -2
@@ -13,7 +13,7 @@ export interface UseFilterProps<DataItem> {
13
13
  firstMatch?: boolean;
14
14
  onFilter?: (text: string, from?: string) => void | ((data: DataItem) => boolean);
15
15
  onFilterWidthCreate?: (data: DataItem, createdData: DataItem, key: string | number) => boolean;
16
- onCreate?: ((input: string | DataItem) => DataItem | string) | boolean;
16
+ onCreate?: ((input: string) => DataItem | string) | boolean;
17
17
  filterDelay?: number;
18
18
  }
19
19
  //# sourceMappingURL=use-filter.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-filter.type.d.ts","sourceRoot":"","sources":["use-filter.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,cAAc,CAAC,QAAQ;IACtC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAE1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IACjF,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC;IAC/F,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,KAAK,QAAQ,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"use-filter.type.d.ts","sourceRoot":"","sources":["use-filter.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,cAAc,CAAC,QAAQ;IACtC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAE1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IACjF,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC;IAC/F,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,QAAQ,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -8,7 +8,7 @@ declare const useButton: (props?: BaseButtonProps) => {
8
8
  text?: boolean | undefined;
9
9
  outline?: boolean | undefined;
10
10
  type?: import("./use-button.type").ButtonType | undefined;
11
- size?: "small" | "default" | "large" | undefined;
11
+ size?: "small" | "large" | "default" | undefined;
12
12
  space?: boolean | undefined;
13
13
  shape?: import("./use-button.type").ButtonShape | undefined;
14
14
  buttonRef?: React.Ref<HTMLButtonElement> | undefined;
@@ -22,7 +22,7 @@ declare const useButton: (props?: BaseButtonProps) => {
22
22
  text?: boolean | undefined;
23
23
  outline?: boolean | undefined;
24
24
  type?: import("./use-button.type").ButtonType | undefined;
25
- size?: "small" | "default" | "large" | undefined;
25
+ size?: "small" | "large" | "default" | undefined;
26
26
  space?: boolean | undefined;
27
27
  shape?: import("./use-button.type").ButtonShape | undefined;
28
28
  buttonRef?: React.Ref<HTMLButtonElement> | undefined;
@@ -4,6 +4,18 @@ export interface UseCarouselProps {
4
4
  * 自动播放间隔时间, 等于0 不自动播放
5
5
  */
6
6
  interval?: number;
7
+ /**
8
+ * 默认当前索引(非受控模式)
9
+ */
10
+ defaultValue?: number;
11
+ /**
12
+ * 当前索引(受控模式)
13
+ */
14
+ value?: number;
15
+ /**
16
+ * 当前索引变化回调
17
+ */
18
+ onChange?: (current: number) => void;
7
19
  onMove?: (current: number, extra: {
8
20
  prev: number;
9
21
  direction: 'forward' | 'backward';
@@ -1 +1 @@
1
- {"version":3,"file":"use-carousel.d.ts","sourceRoot":"","sources":["use-carousel.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,CACP,OAAO,EAAE,MAAM,EACf,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;QAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,KACtF,IAAI,CAAC;CACX;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAE5D,QAAA,MAAM,WAAW,UAAW,gBAAgB;;;;;;;;;oBAcV,MAAM;;CAmEvC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"use-carousel.d.ts","sourceRoot":"","sources":["use-carousel.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,MAAM,CAAC,EAAE,CACP,OAAO,EAAE,MAAM,EACf,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;QAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,KACtF,IAAI,CAAC;CACX;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAE5D,QAAA,MAAM,WAAW,UAAW,gBAAgB;;;;;;;;;oBAyCV,MAAM;;CA4FvC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -17,9 +17,21 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
17
  var useCarousel = function useCarousel(props) {
18
18
  var total = props.total,
19
19
  _props$interval = props.interval,
20
- interval = _props$interval === void 0 ? 0 : _props$interval;
20
+ interval = _props$interval === void 0 ? 0 : _props$interval,
21
+ _props$defaultValue = props.defaultValue,
22
+ defaultValue = _props$defaultValue === void 0 ? 0 : _props$defaultValue,
23
+ valueProp = props.value,
24
+ onChange = props.onChange;
25
+
26
+ // 规范化初始值,确保在有效范围内
27
+ var normalizeIndex = function normalizeIndex(index) {
28
+ if (index < 0) return 0;
29
+ if (index >= total) return Math.max(0, total - 1);
30
+ return index;
31
+ };
32
+ var initialValue = normalizeIndex(valueProp !== undefined ? valueProp : defaultValue);
21
33
  var _useState = (0, _react.useState)({
22
- current: 0,
34
+ current: initialValue,
23
35
  pre: -1,
24
36
  direction: 'stop'
25
37
  }),
@@ -32,14 +44,32 @@ var useCarousel = function useCarousel(props) {
32
44
  var _useRef = (0, _react.useRef)({
33
45
  timer: null,
34
46
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
35
- setNext: function setNext(next) {}
47
+ setNext: function setNext(next) {},
48
+ prevValue: initialValue // 用于追踪上一次的值
36
49
  }),
37
50
  context = _useRef.current;
51
+
52
+ // 判断是否为受控模式
53
+ var isControlled = valueProp !== undefined;
54
+ // 获取实际使用的 current 值
55
+ var actualCurrent = isControlled ? normalizeIndex(valueProp) : current;
56
+
57
+ // 在受控模式下,计算 direction 和 pre
58
+ var actualPre = pre;
59
+ var actualDirection = direction;
60
+ if (isControlled) {
61
+ if (actualCurrent !== context.prevValue) {
62
+ actualPre = context.prevValue;
63
+ actualDirection = actualCurrent > context.prevValue ? 'forward' : 'backward';
64
+ context.prevValue = actualCurrent;
65
+ }
66
+ }
38
67
  var autoPlay = interval > 0 && total > 1;
39
68
  var moveTo = (0, _usePersistFn.usePersistFn)(function (i) {
40
69
  var next = i;
41
- if (next === current) return;
42
- var dir = next > current ? 'forward' : 'backward';
70
+ var prevCurrent = actualCurrent;
71
+ if (next === prevCurrent) return;
72
+ var dir = next > prevCurrent ? 'forward' : 'backward';
43
73
  if (next >= total) {
44
74
  dir = 'forward';
45
75
  next = 0;
@@ -47,14 +77,26 @@ var useCarousel = function useCarousel(props) {
47
77
  dir = 'backward';
48
78
  next = total - 1;
49
79
  }
50
- setState({
51
- current: next,
52
- pre: current,
53
- direction: dir
54
- });
80
+
81
+ // 非受控模式下更新内部状态
82
+ if (!isControlled) {
83
+ setState({
84
+ current: next,
85
+ pre: prevCurrent,
86
+ direction: dir
87
+ });
88
+ }
89
+ // 受控模式下不更新内部状态,由外部 value 控制
90
+
91
+ // 触发 onChange 回调
92
+ if (onChange) {
93
+ onChange(next);
94
+ }
95
+
96
+ // 触发 onMove 回调(向后兼容)
55
97
  if (props.onMove) {
56
98
  props.onMove(next, {
57
- prev: current,
99
+ prev: prevCurrent,
58
100
  direction: dir,
59
101
  moveTo: moveTo
60
102
  });
@@ -76,13 +118,13 @@ var useCarousel = function useCarousel(props) {
76
118
  });
77
119
  context.setNext = setNext;
78
120
  var start = (0, _usePersistFn.usePersistFn)(function () {
79
- setNext(current + 1);
121
+ setNext(actualCurrent + 1);
80
122
  });
81
123
  var forward = (0, _usePersistFn.usePersistFn)(function () {
82
- moveTo(current + 1);
124
+ moveTo(actualCurrent + 1);
83
125
  });
84
126
  var backward = (0, _usePersistFn.usePersistFn)(function () {
85
- moveTo(current - 1);
127
+ moveTo(actualCurrent - 1);
86
128
  });
87
129
  var func = (0, _useLatestObj.default)({
88
130
  start: start,
@@ -96,10 +138,18 @@ var useCarousel = function useCarousel(props) {
96
138
  start();
97
139
  }
98
140
  }, []);
141
+
142
+ // 受控模式下,当外部 value 变化时,重置自动轮播定时器
143
+ (0, _react.useEffect)(function () {
144
+ if (isControlled && autoPlay && valueProp !== undefined) {
145
+ stop();
146
+ context.setNext(actualCurrent + 1);
147
+ }
148
+ }, [valueProp]);
99
149
  return {
100
- current: current,
101
- pre: pre,
102
- direction: direction,
150
+ current: actualCurrent,
151
+ pre: actualPre,
152
+ direction: actualDirection,
103
153
  func: func
104
154
  };
105
155
  };
@@ -136,7 +136,7 @@ export interface BaseFormProps<T> extends Omit<FormCommonConfig, 'formName'> {
136
136
  * @en Initial value of the form in uncontrolled mode. Only effective when the component is first rendered, subsequent modifications will not affect the internal data of the form. Suitable for scenarios where form data is managed internally by the component, such as creating new forms, standalone forms, etc.
137
137
  * @cn 非受控模式下的表单初始值。仅在组件首次渲染时生效,后续修改不会影响表单内部数据。适用于表单数据由组件内部管理的场景,如新建表单、独立表单等
138
138
  */
139
- defaultValue?: T;
139
+ defaultValue?: Partial<T>;
140
140
  /**
141
141
  * @en When the form value changes, whether to automatically trigger validation. When enabled, validation results can be displayed in real time when data changes, suitable for scenarios that require immediate feedback. Note: Only effective in controlled mode
142
142
  * @cn 当表单 value 发生变化时,是否自动触发校验。开启后可以在数据变化时实时显示校验结果,适用于需要即时反馈的场景。注意:仅在受控模式下有效
@@ -1 +1 @@
1
- {"version":3,"file":"use-form.type.d.ts","sourceRoot":"","sources":["use-form.type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-form.type.d.ts","sourceRoot":"","sources":["use-form.type.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ declare const useInputFormat: (props: InputFormatProps) => {
5
5
  onBlur: (e: React.FocusEvent<HTMLInputElement>) => void;
6
6
  onFocus: (e: React.FocusEvent<HTMLInputElement>) => void;
7
7
  value: string | undefined;
8
- type: "search" | (string & {}) | "color" | "button" | "time" | "reset" | "submit" | "email" | "url" | "range" | "tel" | "hidden" | "checkbox" | "date" | "datetime-local" | "file" | "image" | "month" | "password" | "radio" | "text" | "week" | undefined;
8
+ type: "search" | (string & {}) | "color" | "button" | "time" | "reset" | "submit" | "email" | "url" | "range" | "tel" | "hidden" | "image" | "checkbox" | "radio" | "text" | "date" | "datetime-local" | "file" | "month" | "password" | "week" | undefined;
9
9
  };
10
10
  export default useInputFormat;
11
11
  //# sourceMappingURL=use-input-format.d.ts.map
@@ -7,7 +7,7 @@ declare const useNumberFormat: (props: InputNumberProps) => {
7
7
  onBlur: (e: React.FocusEvent<HTMLInputElement, Element>) => void;
8
8
  onFocus: (e: React.FocusEvent<HTMLInputElement, Element>) => void;
9
9
  value: string | undefined;
10
- type: "search" | (string & {}) | "color" | "button" | "time" | "reset" | "submit" | "email" | "url" | "range" | "tel" | "hidden" | "checkbox" | "date" | "datetime-local" | "file" | "image" | "month" | "password" | "radio" | "text" | "week" | undefined;
10
+ type: "search" | (string & {}) | "color" | "button" | "time" | "reset" | "submit" | "email" | "url" | "range" | "tel" | "hidden" | "image" | "checkbox" | "radio" | "text" | "date" | "datetime-local" | "file" | "month" | "password" | "week" | undefined;
11
11
  };
12
12
  export default useNumberFormat;
13
13
  //# sourceMappingURL=use-input-number.d.ts.map
@@ -1,8 +1,10 @@
1
- /// <reference types="react" />
2
1
  import { TableColumnItem, TableFormatColumn } from './use-table.type';
2
+ import React from 'react';
3
3
  export interface UseColumnsProps<Data> {
4
4
  columns?: TableColumnItem<Data>[];
5
5
  showCheckbox?: boolean;
6
+ virtualColumn?: boolean;
7
+ scrollRef: React.RefObject<HTMLElement>;
6
8
  }
7
9
  export type RxpandHideColType = {
8
10
  hide?: boolean;
@@ -12,6 +14,11 @@ export type RxpandHideColType = {
12
14
  } | null;
13
15
  declare const useColumns: <Data>(props: UseColumnsProps<Data>) => {
14
16
  columns: TableFormatColumn<Data>[];
17
+ columnInfo: {
18
+ handleScroll: (scrollInfo: {
19
+ scrollLeft: number;
20
+ }) => void;
21
+ };
15
22
  expandHideCol: RxpandHideColType;
16
23
  };
17
24
  export default useColumns;
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-columns.d.ts","sourceRoot":"","sources":["use-table-columns.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAItE,MAAM,WAAW,eAAe,CAAC,IAAI;IACnC,OAAO,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAYD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAC3E,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD,GAAG,IAAI,CAAC;AAET,QAAA,MAAM,UAAU;;;CAgEf,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"use-table-columns.d.ts","sourceRoot":"","sources":["use-table-columns.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,MAAM,WAAW,eAAe,CAAC,IAAI;IACnC,OAAO,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;CACzC;AAYD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAC3E,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD,GAAG,IAAI,CAAC;AAKT,QAAA,MAAM,UAAU;;;;wBAiEkC,MAAM;;;;CA8DvD,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -8,7 +8,18 @@ var _immer = require("../../utils/immer");
8
8
  var _react = require("react");
9
9
  var _usePersistFn = _interopRequireDefault(require("../../common/use-persist-fn"));
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
+ 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; }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
15
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
11
16
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
17
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
18
+ 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."); }
19
+ 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); }
20
+ 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; }
21
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
22
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
23
  var getHideExpandCol = function getHideExpandCol() {
13
24
  var cols = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
14
25
  var expandCol = cols.find(function (col) {
@@ -19,7 +30,17 @@ var getHideExpandCol = function getHideExpandCol() {
19
30
  }
20
31
  return null;
21
32
  };
33
+ // 缓冲区列数:左右各2列
34
+ var BUFFER_COUNT = 2;
22
35
  var useColumns = function useColumns(props) {
36
+ var _useState = (0, _react.useState)(0),
37
+ _useState2 = _slicedToArray(_useState, 2),
38
+ startIndex = _useState2[0],
39
+ setStartIndex = _useState2[1];
40
+ var _useState3 = (0, _react.useState)(20),
41
+ _useState4 = _slicedToArray(_useState3, 2),
42
+ renderedCount = _useState4[0],
43
+ setRenderedCount = _useState4[1];
23
44
  var _props$columns = props.columns,
24
45
  propsColumns = _props$columns === void 0 ? [] : _props$columns;
25
46
  var _useRef = (0, _react.useRef)({
@@ -74,8 +95,76 @@ var useColumns = function useColumns(props) {
74
95
  return context.cachedColumns;
75
96
  });
76
97
  var columns = getColumns(propsColumns) || [];
98
+ var leftFixedColumns = columns.filter(function (col) {
99
+ return col.fixed === 'left';
100
+ });
101
+ var middleColumns = columns.filter(function (col) {
102
+ return !col.fixed;
103
+ });
104
+ var handleScroll = function handleScroll(scrollInfo) {
105
+ var scrollLeft = scrollInfo.scrollLeft;
106
+ var sum = 0;
107
+ var currentIndex = 0;
108
+ for (var i = 0, len = middleColumns.length - 1; i < len; i++) {
109
+ var curCol = middleColumns[i];
110
+ sum += curCol.width || 100;
111
+ if (scrollLeft < sum) {
112
+ // 计算可视区域内需要渲染的列数
113
+ for (var j = i + 1; j < len; j++) {
114
+ var _props$scrollRef$curr;
115
+ var nextCol = middleColumns[j];
116
+ sum += nextCol.width || 100;
117
+ if (props.scrollRef.current && sum - scrollLeft >= ((_props$scrollRef$curr = props.scrollRef.current) === null || _props$scrollRef$curr === void 0 ? void 0 : _props$scrollRef$curr.clientWidth)) {
118
+ // 在原有基础上,右侧增加缓冲列
119
+ var visibleCount = j - i;
120
+ setRenderedCount(Math.min(visibleCount + BUFFER_COUNT * 2, len));
121
+ break;
122
+ }
123
+ }
124
+
125
+ // 左侧也增加缓冲列,但不能小于0
126
+ var bufferedStartIndex = Math.max(0, i - BUFFER_COUNT);
127
+ currentIndex = bufferedStartIndex + leftFixedColumns.length;
128
+ break;
129
+ }
130
+ }
131
+ setStartIndex(currentIndex);
132
+ };
133
+ (0, _react.useEffect)(function () {
134
+ if (!props.virtualColumn) return;
135
+ handleScroll({
136
+ scrollLeft: 0
137
+ });
138
+ }, []);
77
139
  return {
78
- columns: columns,
140
+ columns: props.virtualColumn ? columns.map(function (col, index) {
141
+ if (col.fixed) {
142
+ return col;
143
+ }
144
+ if (index < startIndex || index > startIndex + renderedCount) {
145
+ var colSpan;
146
+ if (index > startIndex + renderedCount && index === startIndex + renderedCount + 1) {
147
+ colSpan = function colSpan() {
148
+ return middleColumns.length - (startIndex + renderedCount) + 1;
149
+ };
150
+ } else if (index < startIndex && index === leftFixedColumns.length && startIndex > 0) {
151
+ colSpan = function colSpan() {
152
+ return startIndex;
153
+ };
154
+ }
155
+ return _objectSpread(_objectSpread({}, col), {}, {
156
+ colSpan: colSpan,
157
+ render: function render() {
158
+ return null;
159
+ },
160
+ title: null
161
+ });
162
+ }
163
+ return col;
164
+ }) : columns,
165
+ columnInfo: {
166
+ handleScroll: handleScroll
167
+ },
79
168
  expandHideCol: context.expandHideCol
80
169
  };
81
170
  };
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { TableColumnItem, BaseTableProps } from './use-table.type';
3
3
  import { KeygenResult } from '../../common/type';
4
- export interface UseTableFilterProps<Item = any> extends Pick<BaseTableProps<Item>, 'onSortCancel' | 'sorter' | 'data'> {
4
+ export interface UseTableFilterProps<Item = any> extends Pick<BaseTableProps<Item>, 'onSortCancel' | 'sorter' | 'data' | 'keygen'> {
5
5
  columns?: TableColumnItem<Item>[];
6
6
  }
7
7
  export interface FilterInfo<T> {
@@ -12,7 +12,7 @@ export type FilterMap<T> = Map<KeygenResult, FilterInfo<T>>;
12
12
  declare const useTableFilter: <Item = any>(props: UseTableFilterProps<Item>) => {
13
13
  filterInfo: FilterMap<Item>;
14
14
  setFilterInfo: import("react").Dispatch<import("react").SetStateAction<FilterMap<Item>>>;
15
- filteredData: Item[] | undefined;
15
+ filteredData: Item[];
16
16
  onFilterChange: (columnKey: KeygenResult, value: any) => void;
17
17
  };
18
18
  export default useTableFilter;
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-filter.d.ts","sourceRoot":"","sources":["use-table-filter.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,mBAAmB,CAAC,IAAI,GAAG,GAAG,CAC7C,SAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtE,OAAO,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;CACnC;AACD,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;CAC5C;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5D,QAAA,MAAM,cAAc;;;;gCA8BH,YAAY,SAAS,GAAG;CAyDxC,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"use-table-filter.d.ts","sourceRoot":"","sources":["use-table-filter.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGnE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,mBAAmB,CAAC,IAAI,GAAG,GAAG,CAC7C,SAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IACjF,OAAO,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;CACnC;AACD,MAAM,WAAW,UAAU,CAAC,CAAC;IAE3B,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;CAC5C;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5D,QAAA,MAAM,cAAc;;;;gCA+BH,YAAY,SAAS,GAAG;CAyDxC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -8,6 +8,7 @@ exports.default = void 0;
8
8
  var _react = require("react");
9
9
  var _usePersistFn = _interopRequireDefault(require("../../common/use-persist-fn"));
10
10
  var _is = require("../../utils/is");
11
+ var _utils = require("../../utils");
11
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
13
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
14
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -32,10 +33,13 @@ var useTableFilter = function useTableFilter(props) {
32
33
  });
33
34
  }, [filterInfo]);
34
35
  var filteredData = (0, _react.useMemo)(function () {
35
- var _props$data;
36
+ var _props$columns;
36
37
  // why use slice: props.data引用不改变会导致后续的useMemo无法重新计算
37
38
  if (activeFilters.length === 0) return (props.data || []).slice();
38
- return (_props$data = props.data) === null || _props$data === void 0 ? void 0 : _props$data.filter(function (item) {
39
+ var columnHasChildren = (_props$columns = props.columns) === null || _props$columns === void 0 ? void 0 : _props$columns.find(function (col) {
40
+ return col.treeColumnsName;
41
+ });
42
+ return (0, _utils.getFilterTree)(props.data, function (item) {
39
43
  return activeFilters.every(function (key) {
40
44
  var filter = filterInfo.get(key);
41
45
  if ((filter === null || filter === void 0 ? void 0 : filter.value) === undefined) return true;
@@ -45,7 +49,9 @@ var useTableFilter = function useTableFilter(props) {
45
49
  }
46
50
  return true;
47
51
  });
48
- });
52
+ }, undefined, function (node) {
53
+ return (0, _utils.getKey)(props.keygen, node);
54
+ }, columnHasChildren === null || columnHasChildren === void 0 ? void 0 : columnHasChildren.treeColumnsName, false);
49
55
  }, [activeFilters, props.data]);
50
56
  var onFilterChange = (0, _usePersistFn.default)(function (columnKey, value) {
51
57
  // TODO: 暂未开放reset全部筛选条件
@@ -75,8 +81,8 @@ var useTableFilter = function useTableFilter(props) {
75
81
  // 根据columns生成filterInfo
76
82
  (0, _react.useEffect)(function () {
77
83
  setFilterInfo(function (prev) {
78
- var _props$columns;
79
- var _filterInfo = props === null || props === void 0 || (_props$columns = props.columns) === null || _props$columns === void 0 ? void 0 : _props$columns.reduce(function (acc, column, index) {
84
+ var _props$columns2;
85
+ var _filterInfo = props === null || props === void 0 || (_props$columns2 = props.columns) === null || _props$columns2 === void 0 ? void 0 : _props$columns2.reduce(function (acc, column, index) {
80
86
  var _prev$get2, _column$filter;
81
87
  if (!column.filter) return acc;
82
88
  var columnKey = typeof column.render === 'string' ? column.render : String(index);
@@ -1,9 +1,11 @@
1
1
  /// <reference types="react" />
2
2
  import { TableFormatColumn } from './use-table.type';
3
3
  interface UseTableVirtualProps {
4
+ virtual?: boolean | 'lazy';
4
5
  data: any[];
5
6
  rowsInView: number;
6
7
  rowHeight: number;
8
+ strictRowHeight?: number;
7
9
  scrollRef: React.RefObject<HTMLDivElement>;
8
10
  innerRef: React.RefObject<HTMLDivElement>;
9
11
  scrollLeft?: number;
@@ -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;AAWrD,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;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;oBAqLpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BAnGuB,MAAM,UAAU,MAAM;2BAsIrB,MAAM,aAAa,MAAM,IAAI;qCAoBnB,MAAM;mCAUR,MAAM,GAAG,MAAM;;;;;CA2GnE,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;AAWrD,UAAU,oBAAoB;IAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,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;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;oBAoNpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BArHuB,MAAM,UAAU,MAAM;2BAwJrB,MAAM,aAAa,MAAM,IAAI;qCAoBnB,MAAM;mCAUR,MAAM,GAAG,MAAM;;;;;CA4GnE,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -35,11 +35,14 @@ function getMaxRowSpanLength(input) {
35
35
  return Math.max.apply(Math, _toConsumableArray(Array.from(map.values())));
36
36
  }
37
37
  var useTableVirtual = function useTableVirtual(props) {
38
+ var _props$scrollRef$curr;
38
39
  var _useState = (0, _react.useState)(0),
39
40
  _useState2 = _slicedToArray(_useState, 2),
40
41
  innerTop = _useState2[0],
41
42
  setTop = _useState2[1];
42
- var _useState3 = (0, _react.useState)(props.data.length * props.rowHeight),
43
+ var strictRowHeight = props.strictRowHeight ? props.strictRowHeight : 0;
44
+ var defaultScrollHeight = strictRowHeight ? props.data.length * strictRowHeight : props.data.length * props.rowHeight;
45
+ var _useState3 = (0, _react.useState)(defaultScrollHeight),
43
46
  _useState4 = _slicedToArray(_useState3, 2),
44
47
  scrollHeight = _useState4[0],
45
48
  setHeight = _useState4[1];
@@ -51,6 +54,15 @@ var useTableVirtual = function useTableVirtual(props) {
51
54
  _useState8 = _slicedToArray(_useState7, 2),
52
55
  offsetY = _useState8[0],
53
56
  setOffsetY = _useState8[1];
57
+
58
+ // TODO: 尝试垂直滚动采用延迟销毁 + 操作dom transform方案提升性能?
59
+ // const setTop = (v: number) => {
60
+ // if (props.virtual === 'lazy') {
61
+ // props.innerRef.current && (props.innerRef.current.style.transform = `translate3d(0, ${-v}px, 0)`);
62
+ // } else {
63
+ // }
64
+ // _setTop(v);
65
+ // }
54
66
  var rowsInView = props.rowsInView === 0 ? props.data.length : props.rowsInView;
55
67
  var rowSpanInfo = (0, _react.useMemo)(function () {
56
68
  var rowSpanColumns = props.columns.filter(function (col) {
@@ -125,6 +137,9 @@ var useTableVirtual = function useTableVirtual(props) {
125
137
  context = _useRef.current;
126
138
  var getContentHeight = function getContentHeight(index) {
127
139
  if (props.disabled) return 0;
140
+ if (strictRowHeight) {
141
+ return strictRowHeight * (index + 1) + props.theadHeight + props.tfootHeight;
142
+ }
128
143
  var sum = 0;
129
144
  for (var i = 0; i <= index; i++) {
130
145
  sum += context.cachedHeight[i] || props.rowHeight;
@@ -150,17 +165,26 @@ var useTableVirtual = function useTableVirtual(props) {
150
165
  });
151
166
  }
152
167
  });
168
+
169
+ // const setStartIndex2 = (index:number) => {
170
+ // let sum = 0;
171
+ // for (let i = 0; i < index; i++) {
172
+ // sum += context.cachedHeight[i] || props.rowHeight;
173
+ // }
174
+ // props.innerRef.current && (props.innerRef.current.style.transform = `translate3d(0, ${-innerTop + sum}px, 0)`);
175
+ // setStartIndex(index);
176
+ // }
177
+
178
+ var maxIndex = Math.max(props.data.length - rowsInView, 0);
179
+ var scrollContainerHeight = Math.max(((_props$scrollRef$curr = props.scrollRef.current) === null || _props$scrollRef$curr === void 0 ? void 0 : _props$scrollRef$curr.clientHeight) || 0, 200);
153
180
  var updateIndexAndTopFromTop = function updateIndexAndTopFromTop(scrollTop, fromDrag) {
154
- var _props$scrollRef$curr;
155
181
  if (props.disabled) return;
156
182
  var sum = 0;
157
183
  var currentIndex = 0;
158
184
  var top = 0;
159
- var maxIndex = Math.max(props.data.length - rowsInView, 0);
160
- var scrollContainerHeight = Math.max(((_props$scrollRef$curr = props.scrollRef.current) === null || _props$scrollRef$curr === void 0 ? void 0 : _props$scrollRef$curr.clientHeight) || 0, 200);
161
185
  for (var i = 0; i <= maxIndex; i++) {
162
186
  context.rowSpanRows = 0;
163
- var currentRowHeight = context.cachedHeight[i] || props.rowHeight;
187
+ var currentRowHeight = strictRowHeight || context.cachedHeight[i] || props.rowHeight;
164
188
  sum += currentRowHeight;
165
189
  var rowSpanHeight = 0;
166
190
  if (rowSpanInfo) {
@@ -175,17 +199,26 @@ var useTableVirtual = function useTableVirtual(props) {
175
199
  if (rowSpanHeight < scrollContainerHeight) {
176
200
  var index = siblingsIndexs[j];
177
201
  context.rowSpanRows += 1;
178
- rowSpanHeight += context.cachedHeight[index] || props.rowHeight;
202
+ rowSpanHeight += strictRowHeight || context.cachedHeight[index] || props.rowHeight;
179
203
  }
180
204
  }
181
205
  }
182
206
  if (scrollTop < sum + rowSpanHeight || i === maxIndex) {
183
207
  currentIndex = i;
184
- var beforeHeight = i === 0 ? 0 : sum - (context.cachedHeight[i] || props.rowHeight);
208
+ var beforeHeight = i === 0 ? 0 : sum - (strictRowHeight || context.cachedHeight[i] || props.rowHeight);
185
209
  top = scrollTop - beforeHeight;
186
210
  break;
187
211
  }
188
212
  }
213
+ // if (props.virtual === 'lazy') {
214
+ // setTop(scrollTop);
215
+ // context.autoAddRows = currentIndex
216
+ // setTimeout(() => {
217
+ // setStartIndex2(currentIndex);
218
+ // context.autoAddRows = 0
219
+ // }, 300);
220
+ // return;
221
+ // }
189
222
  if (currentIndex !== startIndex) {
190
223
  setStartIndex(currentIndex);
191
224
 
@@ -314,16 +347,16 @@ var useTableVirtual = function useTableVirtual(props) {
314
347
  var addonHeight = 0;
315
348
  var addonCount = 0;
316
349
  for (var i = startIndex + rowsInView; i < props.data.length; i++) {
317
- var height = context.cachedHeight[i] || props.rowHeight;
350
+ var height = strictRowHeight || context.cachedHeight[i] || props.rowHeight;
318
351
  addonHeight += height;
319
352
  addonCount += 1;
320
- if (addonHeight >= remainHeight + context.cachedHeight[0]) break;
353
+ if (addonHeight >= remainHeight + (strictRowHeight || context.cachedHeight[0])) break;
321
354
  }
322
355
  if (addonCount > 0) {
323
356
  context.autoAddRows = addonCount;
324
357
  }
325
358
  }
326
- }, []);
359
+ }, [props.data.length]);
327
360
  (0, _react.useEffect)(function () {
328
361
  // 记录preIndex
329
362
  context.preIndex = startIndex;
@@ -366,6 +399,7 @@ var useTableVirtual = function useTableVirtual(props) {
366
399
  return _toConsumableArray(props.data).slice(startIndex, startIndex + finalRowsInView);
367
400
  }, [props.data, props.disabled, startIndex, finalRowsInView]);
368
401
  var translateStyle = (0, _react.useMemo)(function () {
402
+ // if (props.virtual === 'lazy') return 'translate3d(0, 0, 0)';
369
403
  var t = innerTop + offsetY;
370
404
  if (t < 0) {
371
405
  t = 0;
@@ -23,7 +23,6 @@ export declare const MODE: {
23
23
  MODE_4: number;
24
24
  };
25
25
  declare const useTree: <DataItem>(props: BaseTreeProps<DataItem>) => {
26
- inited: boolean;
27
26
  datum: TreeDatum<DataItem>;
28
27
  expanded: KeygenResult[] | undefined;
29
28
  onExpand: (value: KeygenResult[]) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"use-tree.d.ts","sourceRoot":"","sources":["use-tree.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EAKb,SAAS,EAIV,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAiBjD,eAAO,MAAM,IAAI;IACf;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEJ,CAAC;AAEF,QAAA,MAAM,OAAO;;;;;CAotBZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"use-tree.d.ts","sourceRoot":"","sources":["use-tree.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EAKb,SAAS,EAIV,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAiBjD,eAAO,MAAM,IAAI;IACf;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEJ,CAAC;AAEF,QAAA,MAAM,OAAO;;;;CA+sBZ,CAAC;AAEF,eAAe,OAAO,CAAC"}