@sheinx/hooks 3.4.4-beta.7 → 3.5.0-beta.1
Sign up to get free protection for your applications and to get access to all the features.
- package/cjs/components/use-table/use-table-virtual.d.ts +3 -0
- package/cjs/components/use-table/use-table-virtual.d.ts.map +1 -1
- package/cjs/components/use-table/use-table-virtual.js +30 -1
- package/cjs/utils/position.d.ts.map +1 -1
- package/cjs/utils/position.js +15 -14
- package/esm/components/use-table/use-table-virtual.d.ts +3 -0
- package/esm/components/use-table/use-table-virtual.d.ts.map +1 -1
- package/esm/components/use-table/use-table-virtual.js +30 -1
- package/esm/utils/position.d.ts.map +1 -1
- package/esm/utils/position.js +15 -14
- package/package.json +1 -1
@@ -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;
|
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":"
|
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"}
|
package/cjs/utils/position.js
CHANGED
@@ -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
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
} else {
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
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;
|
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":"
|
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"}
|
package/esm/utils/position.js
CHANGED
@@ -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
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
} else {
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
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
|
};
|