@pinnacle0/web-ui 0.3.15 → 0.3.18-beta0
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.
- package/core/FlatList/VirtualFlatList/Item.d.ts +17 -0
- package/core/FlatList/VirtualFlatList/Item.js +26 -0
- package/core/FlatList/VirtualFlatList/Item.js.map +1 -0
- package/core/FlatList/VirtualFlatList/index.d.ts +30 -0
- package/core/FlatList/VirtualFlatList/index.js +80 -0
- package/core/FlatList/VirtualFlatList/index.js.map +1 -0
- package/core/FlatList/VirtualFlatList/index.less +22 -0
- package/core/FlatList/VirtualFlatList/type.d.ts +17 -0
- package/core/FlatList/VirtualFlatList/type.js +2 -0
- package/core/FlatList/VirtualFlatList/type.js.map +1 -0
- package/core/FlatList/index.d.ts +3 -0
- package/core/FlatList/index.js +33 -0
- package/core/FlatList/index.js.map +1 -0
- package/core/FlatList/shared/Footer/index.d.ts +8 -0
- package/core/FlatList/shared/Footer/index.js +13 -0
- package/core/FlatList/shared/Footer/index.js.map +1 -0
- package/core/FlatList/shared/Footer/index.less +8 -0
- package/core/FlatList/shared/Spinner/index.d.ts +8 -0
- package/core/FlatList/shared/Spinner/index.js +10 -0
- package/core/FlatList/shared/Spinner/index.js.map +1 -0
- package/core/FlatList/shared/Spinner/index.less +13 -0
- package/core/FlatList/shared/Wrapper/Loading.d.ts +7 -0
- package/core/FlatList/shared/Wrapper/Loading.js +8 -0
- package/core/FlatList/shared/Wrapper/Loading.js.map +1 -0
- package/core/FlatList/shared/Wrapper/index.d.ts +12 -0
- package/core/FlatList/shared/Wrapper/index.js +111 -0
- package/core/FlatList/shared/Wrapper/index.js.map +1 -0
- package/core/FlatList/shared/Wrapper/index.less +28 -0
- package/core/FlatList/shared/hooks/useBounceSwipe.d.ts +22 -0
- package/core/FlatList/shared/hooks/useBounceSwipe.js +111 -0
- package/core/FlatList/shared/hooks/useBounceSwipe.js.map +1 -0
- package/core/FlatList/shared/hooks/useElementScrollState.d.ts +8 -0
- package/core/FlatList/shared/hooks/useElementScrollState.js +38 -0
- package/core/FlatList/shared/hooks/useElementScrollState.js.map +1 -0
- package/core/FlatList/shared/hooks/useFlatList.d.ts +14 -0
- package/core/FlatList/shared/hooks/useFlatList.js +86 -0
- package/core/FlatList/shared/hooks/useFlatList.js.map +1 -0
- package/core/FlatList/shared/hooks/useLoadingWithDelay.d.ts +9 -0
- package/core/FlatList/shared/hooks/useLoadingWithDelay.js +52 -0
- package/core/FlatList/shared/hooks/useLoadingWithDelay.js.map +1 -0
- package/core/FlatList/type.d.ts +34 -0
- package/core/FlatList/type.js +2 -0
- package/core/FlatList/type.js.map +1 -0
- package/core/VirtualTable/TableHeader.d.ts +4 -5
- package/core/VirtualTable/TableHeader.js +3 -3
- package/core/VirtualTable/TableHeader.js.map +1 -1
- package/core/VirtualTable/TableRow.d.ts +10 -9
- package/core/VirtualTable/TableRow.js +28 -19
- package/core/VirtualTable/TableRow.js.map +1 -1
- package/core/VirtualTable/{useColumnWidths.d.ts → hooks/useColumnWidths.d.ts} +4 -1
- package/core/VirtualTable/hooks/useColumnWidths.js +38 -0
- package/core/VirtualTable/hooks/useColumnWidths.js.map +1 -0
- package/core/VirtualTable/hooks/useDebounce.d.ts +1 -0
- package/core/VirtualTable/hooks/useDebounce.js +45 -0
- package/core/VirtualTable/hooks/useDebounce.js.map +1 -0
- package/core/VirtualTable/hooks/useLayout.d.ts +17 -0
- package/core/VirtualTable/hooks/useLayout.js +44 -0
- package/core/VirtualTable/hooks/useLayout.js.map +1 -0
- package/core/VirtualTable/hooks/useRowExpand.d.ts +7 -0
- package/core/VirtualTable/hooks/useRowExpand.js +20 -0
- package/core/VirtualTable/hooks/useRowExpand.js.map +1 -0
- package/core/VirtualTable/{useRowSelection.d.ts → hooks/useRowSelection.d.ts} +1 -1
- package/core/VirtualTable/{useRowSelection.js → hooks/useRowSelection.js} +2 -2
- package/core/VirtualTable/hooks/useRowSelection.js.map +1 -0
- package/core/VirtualTable/hooks/useScrollBarSize.d.ts +5 -0
- package/core/VirtualTable/{useScrollBarSize.js → hooks/useScrollBarSize.js} +4 -1
- package/core/VirtualTable/hooks/useScrollBarSize.js.map +1 -0
- package/core/VirtualTable/{useScrollToEdge.d.ts → hooks/useScrollToEdge.d.ts} +1 -1
- package/core/VirtualTable/{useScrollToEdge.js → hooks/useScrollToEdge.js} +1 -1
- package/core/VirtualTable/hooks/useScrollToEdge.js.map +1 -0
- package/core/VirtualTable/hooks/useStickyPosition.d.ts +2 -0
- package/core/VirtualTable/{useStickyPosition.js → hooks/useStickyPosition.js} +7 -9
- package/core/VirtualTable/hooks/useStickyPosition.js.map +1 -0
- package/core/VirtualTable/hooks/useTransformColumn.d.ts +11 -0
- package/core/VirtualTable/hooks/useTransformColumn.js +9 -0
- package/core/VirtualTable/hooks/useTransformColumn.js.map +1 -0
- package/core/VirtualTable/index.d.ts +5 -4
- package/core/VirtualTable/index.js +17 -17
- package/core/VirtualTable/index.js.map +1 -1
- package/core/VirtualTable/index.less +14 -2
- package/core/VirtualTable/type.d.ts +17 -0
- package/hooks/useSwipe/controller.d.ts +20 -0
- package/hooks/useSwipe/controller.js +126 -0
- package/hooks/useSwipe/controller.js.map +1 -0
- package/hooks/useSwipe/index.d.ts +3 -0
- package/hooks/useSwipe/index.js +9 -0
- package/hooks/useSwipe/index.js.map +1 -0
- package/hooks/useSwipe/type.d.ts +38 -0
- package/hooks/useSwipe/type.js +8 -0
- package/hooks/useSwipe/type.js.map +1 -0
- package/hooks/useTransform.d.ts +18 -0
- package/hooks/useTransform.js +50 -0
- package/hooks/useTransform.js.map +1 -0
- package/package.json +5 -1
- package/util/SwipeUtil.d.ts +8 -0
- package/util/SwipeUtil.js +26 -0
- package/util/SwipeUtil.js.map +1 -0
- package/core/VirtualTable/useColumnWidths.js +0 -23
- package/core/VirtualTable/useColumnWidths.js.map +0 -1
- package/core/VirtualTable/useRowSelection.js.map +0 -1
- package/core/VirtualTable/useScrollBarSize.d.ts +0 -2
- package/core/VirtualTable/useScrollBarSize.js.map +0 -1
- package/core/VirtualTable/useScrollToEdge.js.map +0 -1
- package/core/VirtualTable/useStickyPosition.d.ts +0 -7
- package/core/VirtualTable/useStickyPosition.js.map +0 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
2
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
3
|
+
if (!m) return o;
|
|
4
|
+
var i = m.call(o), r, ar = [], e;
|
|
5
|
+
try {
|
|
6
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
7
|
+
}
|
|
8
|
+
catch (error) { e = { error: error }; }
|
|
9
|
+
finally {
|
|
10
|
+
try {
|
|
11
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
12
|
+
}
|
|
13
|
+
finally { if (e) throw e.error; }
|
|
14
|
+
}
|
|
15
|
+
return ar;
|
|
16
|
+
};
|
|
17
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
18
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
19
|
+
if (ar || !(i in from)) {
|
|
20
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
21
|
+
ar[i] = from[i];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
25
|
+
};
|
|
26
|
+
import React from "react";
|
|
27
|
+
export var useDebounce = function (callback) {
|
|
28
|
+
var idRef = React.useRef();
|
|
29
|
+
var debounce = function () {
|
|
30
|
+
return function () {
|
|
31
|
+
var args = [];
|
|
32
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
33
|
+
args[_i] = arguments[_i];
|
|
34
|
+
}
|
|
35
|
+
clearTimeout(idRef.current);
|
|
36
|
+
idRef.current = window.setTimeout(function () {
|
|
37
|
+
callback.apply(void 0, __spreadArray([], __read(args), false));
|
|
38
|
+
}, 100);
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
React.useEffect(function () { return function () { return clearTimeout(idRef.current); }; }, []);
|
|
42
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps -- callback is not allow to changed
|
|
43
|
+
return React.useMemo(function () { return debounce(); }, []);
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=useDebounce.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDebounce.js","sourceRoot":"","sources":["../../../../src/core/VirtualTable/hooks/useDebounce.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,IAAM,WAAW,GAAG,UAA+B,QAAkC;IACxF,IAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAU,CAAC;IAErC,IAAM,QAAQ,GAAG;QACb,OAAO;YAAU,cAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,yBAAc;;YAC3B,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;gBAC9B,QAAQ,wCAAI,IAAI,WAAE;YACtB,CAAC,EAAE,GAAG,CAAC,CAAC;QACZ,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,cAAM,OAAA,cAAM,OAAA,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,EAA3B,CAA2B,EAAjC,CAAiC,EAAE,EAAE,CAAC,CAAC;IAC7D,2FAA2F;IAC3F,OAAO,KAAK,CAAC,OAAO,CAAC,cAAM,OAAA,QAAQ,EAAE,EAAV,CAAU,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { VirtualTableColumn } from "../type";
|
|
3
|
+
interface Props<RowType extends object> {
|
|
4
|
+
headersRef: React.RefObject<HTMLDivElement>;
|
|
5
|
+
scrollContentRef: React.RefObject<HTMLDivElement>;
|
|
6
|
+
isScrollable: boolean;
|
|
7
|
+
columns: VirtualTableColumn<RowType>[];
|
|
8
|
+
}
|
|
9
|
+
export declare const useLayout: <RowType extends object>({ headersRef, scrollContentRef, isScrollable, columns }: Props<RowType>) => {
|
|
10
|
+
columnWidths: number[];
|
|
11
|
+
scrollBarSize: number;
|
|
12
|
+
stickyPosition: Record<number, import("../type").StickyPosition>;
|
|
13
|
+
isScrollToEdge: () => void;
|
|
14
|
+
isScrollToLeft: boolean;
|
|
15
|
+
isScrollToRight: boolean;
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { useDebounce } from "./useDebounce";
|
|
3
|
+
import { useScrollBarSize } from "./useScrollBarSize";
|
|
4
|
+
import { useColumnWidths } from "./useColumnWidths";
|
|
5
|
+
import { useStickyPosition } from "./useStickyPosition";
|
|
6
|
+
import { useScrollToEdge } from "./useScrollToEdge";
|
|
7
|
+
export var useLayout = function (_a) {
|
|
8
|
+
var headersRef = _a.headersRef, scrollContentRef = _a.scrollContentRef, isScrollable = _a.isScrollable, columns = _a.columns;
|
|
9
|
+
var _b = useColumnWidths(headersRef), calculateColWidths = _b.calculateColWidths, columnWidths = _b.columnWidths;
|
|
10
|
+
var _c = useScrollBarSize(scrollContentRef, isScrollable), calculateScrollBarSize = _c.calculateScrollBarSize, scrollBarSize = _c.scrollBarSize;
|
|
11
|
+
var _d = useScrollToEdge(scrollContentRef), isScrollToEdge = _d.isScrollToEdge, isScrollToLeft = _d.isScrollToLeft, isScrollToRight = _d.isScrollToRight;
|
|
12
|
+
var stickyPosition = useStickyPosition(columns, columnWidths);
|
|
13
|
+
var debouncedCalculateColWidths = useDebounce(calculateColWidths);
|
|
14
|
+
var debouncedCalculateScrollBarSize = useDebounce(calculateScrollBarSize);
|
|
15
|
+
var debouncedIsScrollToEdge = useDebounce(isScrollToEdge);
|
|
16
|
+
var handler = React.useCallback(function (event) {
|
|
17
|
+
if (event.currentTarget && "querySelector" in event.currentTarget && headersRef.current) {
|
|
18
|
+
var element = event.currentTarget;
|
|
19
|
+
var result = element.querySelector(".g-virtual-table");
|
|
20
|
+
if (result) {
|
|
21
|
+
debouncedCalculateColWidths();
|
|
22
|
+
debouncedCalculateScrollBarSize();
|
|
23
|
+
debouncedIsScrollToEdge();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}, [debouncedCalculateColWidths, debouncedCalculateScrollBarSize, headersRef, debouncedIsScrollToEdge]);
|
|
27
|
+
React.useEffect(function () {
|
|
28
|
+
document.body.addEventListener("transitionend", handler);
|
|
29
|
+
document.body.addEventListener("animationend", handler);
|
|
30
|
+
return function () {
|
|
31
|
+
document.body.removeEventListener("transitionend", handler);
|
|
32
|
+
document.body.removeEventListener("animationend", handler);
|
|
33
|
+
};
|
|
34
|
+
}, [handler]);
|
|
35
|
+
return {
|
|
36
|
+
columnWidths: columnWidths,
|
|
37
|
+
scrollBarSize: scrollBarSize,
|
|
38
|
+
stickyPosition: stickyPosition,
|
|
39
|
+
isScrollToEdge: isScrollToEdge,
|
|
40
|
+
isScrollToLeft: isScrollToLeft,
|
|
41
|
+
isScrollToRight: isScrollToRight,
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=useLayout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLayout.js","sourceRoot":"","sources":["../../../../src/core/VirtualTable/hooks/useLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAUlD,MAAM,CAAC,IAAM,SAAS,GAAG,UAAkC,EAAqE;QAApE,UAAU,gBAAA,EAAE,gBAAgB,sBAAA,EAAE,YAAY,kBAAA,EAAE,OAAO,aAAA;IACrG,IAAA,KAAqC,eAAe,CAAC,UAAU,CAAC,EAA/D,kBAAkB,wBAAA,EAAE,YAAY,kBAA+B,CAAC;IACjE,IAAA,KAA0C,gBAAgB,CAAC,gBAAgB,EAAE,YAAY,CAAC,EAAzF,sBAAsB,4BAAA,EAAE,aAAa,mBAAoD,CAAC;IAC3F,IAAA,KAAoD,eAAe,CAAC,gBAAgB,CAAC,EAApF,cAAc,oBAAA,EAAE,cAAc,oBAAA,EAAE,eAAe,qBAAqC,CAAC;IAC5F,IAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAEhE,IAAM,2BAA2B,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACpE,IAAM,+BAA+B,GAAG,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAC5E,IAAM,uBAAuB,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;IAE5D,IAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAC7B,UAAC,KAAuC;QACpC,IAAI,KAAK,CAAC,aAAa,IAAI,eAAe,IAAI,KAAK,CAAC,aAAa,IAAI,UAAU,CAAC,OAAO,EAAE;YACrF,IAAM,OAAO,GAAG,KAAK,CAAC,aAA4B,CAAC;YACnD,IAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;YACzD,IAAI,MAAM,EAAE;gBACR,2BAA2B,EAAE,CAAC;gBAC9B,+BAA+B,EAAE,CAAC;gBAClC,uBAAuB,EAAE,CAAC;aAC7B;SACJ;IACL,CAAC,EACD,CAAC,2BAA2B,EAAE,+BAA+B,EAAE,UAAU,EAAE,uBAAuB,CAAC,CACtG,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC;QACZ,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACzD,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO;YACH,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YAC5D,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC/D,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO;QACH,YAAY,cAAA;QACZ,aAAa,eAAA;QACb,cAAc,gBAAA;QACd,cAAc,gBAAA;QACd,cAAc,gBAAA;QACd,eAAe,iBAAA;KAClB,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { VirtualTableRowExpand, VirtualTableColumn } from "../type";
|
|
2
|
+
interface Props<RowType extends object> {
|
|
3
|
+
columns: VirtualTableColumn<RowType>[];
|
|
4
|
+
rowExpand?: VirtualTableRowExpand<RowType>;
|
|
5
|
+
}
|
|
6
|
+
export declare const useRowExpand: <RowType extends object>({ columns, rowExpand }: Props<RowType>) => VirtualTableColumn<RowType>[];
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export var useRowExpand = function (_a) {
|
|
3
|
+
var columns = _a.columns, rowExpand = _a.rowExpand;
|
|
4
|
+
var transformedColumns = React.useMemo(function () {
|
|
5
|
+
var resultColumns = columns;
|
|
6
|
+
if (rowExpand) {
|
|
7
|
+
var width = rowExpand.width, fixed = rowExpand.fixed, title = rowExpand.title;
|
|
8
|
+
var rowExpandColumn = {
|
|
9
|
+
width: width,
|
|
10
|
+
title: title || "",
|
|
11
|
+
fixed: fixed ? "right" : undefined,
|
|
12
|
+
renderData: function () { return null; },
|
|
13
|
+
};
|
|
14
|
+
resultColumns.push(rowExpandColumn);
|
|
15
|
+
}
|
|
16
|
+
return resultColumns;
|
|
17
|
+
}, [columns, rowExpand]);
|
|
18
|
+
return transformedColumns;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=useRowExpand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRowExpand.js","sourceRoot":"","sources":["../../../../src/core/VirtualTable/hooks/useRowExpand.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,MAAM,CAAC,IAAM,YAAY,GAAG,UAAkC,EAAoC;QAAnC,OAAO,aAAA,EAAE,SAAS,eAAA;IAC7E,IAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC;QACrC,IAAM,aAAa,GAAG,OAAO,CAAC;QAC9B,IAAI,SAAS,EAAE;YACJ,IAAA,KAAK,GAAkB,SAAS,MAA3B,EAAE,KAAK,GAAW,SAAS,MAApB,EAAE,KAAK,GAAI,SAAS,MAAb,CAAc;YAExC,IAAM,eAAe,GAAgC;gBACjD,KAAK,OAAA;gBACL,KAAK,EAAE,KAAK,IAAI,EAAE;gBAClB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;gBAClC,UAAU,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI;aACzB,CAAC;YACF,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACvC;QACD,OAAO,aAAa,CAAC;IACzB,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAEzB,OAAO,kBAAkB,CAAC;AAC9B,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type { VirtualTableColumn, VirtualTableRowSelection } from "
|
|
2
|
+
import type { VirtualTableColumn, VirtualTableRowSelection } from "../type";
|
|
3
3
|
interface Props<RowType extends object> {
|
|
4
4
|
columns: VirtualTableColumn<RowType>[];
|
|
5
5
|
dataSource: RowType[];
|
|
@@ -24,8 +24,8 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
24
24
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
25
25
|
};
|
|
26
26
|
import React from "react";
|
|
27
|
-
import { Checkbox } from "
|
|
28
|
-
import { ArrayUtil } from "
|
|
27
|
+
import { Checkbox } from "../../Checkbox";
|
|
28
|
+
import { ArrayUtil } from "../../../internal/ArrayUtil";
|
|
29
29
|
export var useRowSelection = function (_a) {
|
|
30
30
|
var columns = _a.columns, dataSource = _a.dataSource, rowSelection = _a.rowSelection, rowKey = _a.rowKey;
|
|
31
31
|
var transformedColumns = React.useMemo(function () {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRowSelection.js","sourceRoot":"","sources":["../../../../src/core/VirtualTable/hooks/useRowSelection.tsx"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,9 @@ export var useScrollBarSize = function (scrollContentRef, isScrollable) {
|
|
|
28
28
|
calculateScrollBarSize();
|
|
29
29
|
}
|
|
30
30
|
}, [calculateScrollBarSize, isScrollable, scrollBarSize]);
|
|
31
|
-
return
|
|
31
|
+
return {
|
|
32
|
+
calculateScrollBarSize: calculateScrollBarSize,
|
|
33
|
+
scrollBarSize: scrollBarSize,
|
|
34
|
+
};
|
|
32
35
|
};
|
|
33
36
|
//# sourceMappingURL=useScrollBarSize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useScrollBarSize.js","sourceRoot":"","sources":["../../../../src/core/VirtualTable/hooks/useScrollBarSize.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAAC,gBAAiD,EAAE,YAAqB;IAC/F,IAAA,KAAA,OAAoC,KAAK,CAAC,QAAQ,CAAS,CAAC,CAAC,IAAA,EAA5D,aAAa,QAAA,EAAE,gBAAgB,QAA6B,CAAC;IAEpE,IAAM,sBAAsB,GAAG,KAAK,CAAC,WAAW,CAAC;QAC7C,IAAI,gBAAgB,CAAC,OAAO,EAAE;YACpB,IAAA,KAA6B,gBAAgB,CAAC,OAAO,EAApD,WAAW,iBAAA,EAAE,WAAW,iBAA4B,CAAC;YAC5D,gBAAgB,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC;SAC/C;IACL,CAAC,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEzC,KAAK,CAAC,SAAS,CAAC;QACZ,IAAI,YAAY,IAAI,CAAC,aAAa,EAAE;YAChC,sBAAsB,EAAE,CAAC;SAC5B;IACL,CAAC,EAAE,CAAC,sBAAsB,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;IAE1D,OAAO;QACH,sBAAsB,wBAAA;QACtB,aAAa,eAAA;KAChB,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -38,7 +38,7 @@ export var useScrollToEdge = function (scrollContentRef) {
|
|
|
38
38
|
isScrollToEdge();
|
|
39
39
|
}, [isScrollToEdge]);
|
|
40
40
|
return {
|
|
41
|
-
|
|
41
|
+
isScrollToEdge: isScrollToEdge,
|
|
42
42
|
isScrollToLeft: isScrollToLeft,
|
|
43
43
|
isScrollToRight: isScrollToRight,
|
|
44
44
|
isScrollToTop: isScrollToTop,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useScrollToEdge.js","sourceRoot":"","sources":["../../../../src/core/VirtualTable/hooks/useScrollToEdge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAEvC,MAAM,CAAC,IAAM,eAAe,GAAG,UAAC,gBAA8C;IACpE,IAAA,KAAA,OAAsC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAA,EAA1D,cAAc,QAAA,EAAE,iBAAiB,QAAyB,CAAC;IAC5D,IAAA,KAAA,OAAwC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAA,EAA5D,eAAe,QAAA,EAAE,kBAAkB,QAAyB,CAAC;IAC9D,IAAA,KAAA,OAAoC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAA,EAAxD,aAAa,QAAA,EAAE,gBAAgB,QAAyB,CAAC;IAC1D,IAAA,KAAA,OAA0C,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAA,EAA9D,gBAAgB,QAAA,EAAE,mBAAmB,QAAyB,CAAC;IAEtE,IAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC;QACrC,IAAI,gBAAgB,CAAC,OAAO,EAAE;YACpB,IAAA,KAAgF,gBAAgB,CAAC,OAAO,EAAvG,UAAU,gBAAA,EAAE,WAAW,iBAAA,EAAE,WAAW,iBAAA,EAAE,SAAS,eAAA,EAAE,YAAY,kBAAA,EAAE,YAAY,kBAA4B,CAAC;YAC/G,IAAM,YAAY,GAAG,UAAU,IAAI,CAAC,CAAC;YACrC,IAAM,aAAa,GAAG,UAAU,IAAI,WAAW,GAAG,WAAW,CAAC;YAE9D,IAAM,WAAW,GAAG,SAAS,IAAI,CAAC,CAAC;YACnC,IAAM,cAAc,GAAG,SAAS,IAAI,YAAY,GAAG,YAAY,CAAC;YAChE,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAChC,kBAAkB,CAAC,aAAa,CAAC,CAAC;YAClC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAC9B,mBAAmB,CAAC,cAAc,CAAC,CAAC;SACvC;IACL,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,aAAa;IACb,SAAS,CAAC;QACN,cAAc,EAAE,CAAC;IACrB,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,OAAO;QACH,cAAc,gBAAA;QACd,cAAc,gBAAA;QACd,eAAe,iBAAA;QACf,aAAa,eAAA;QACb,gBAAgB,kBAAA;KACnB,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { ArrayUtil } from "
|
|
3
|
-
export var useStickyPosition = function (
|
|
4
|
-
|
|
5
|
-
React.useLayoutEffect(function () {
|
|
2
|
+
import { ArrayUtil } from "../../../internal/ArrayUtil";
|
|
3
|
+
export var useStickyPosition = function (columns, columnWidths) {
|
|
4
|
+
return React.useMemo(function () {
|
|
6
5
|
var result = {};
|
|
7
6
|
var left = [];
|
|
8
7
|
var right = [];
|
|
9
|
-
var leftFixedCols = ArrayUtil.compactMap(
|
|
8
|
+
var leftFixedCols = ArrayUtil.compactMap(columns, function (_, columnIndex) { return (_.fixed === "left" ? { columnIndex: columnIndex, width: columnWidths[columnIndex] } : null); });
|
|
10
9
|
// the right sticky value stack in reverse direction
|
|
11
|
-
var rightFixedCols = ArrayUtil.compactMap(
|
|
10
|
+
var rightFixedCols = ArrayUtil.compactMap(columns, function (_, columnIndex) { return (_.fixed === "right" ? { columnIndex: columnIndex, width: columnWidths[columnIndex] } : null); }).reverse();
|
|
12
11
|
leftFixedCols.forEach(function (column, idx) {
|
|
13
12
|
var stackedPositionValue = left.reduce(function (acc, prev) { return acc + prev; }, 0);
|
|
14
13
|
left.push(column.width);
|
|
@@ -19,8 +18,7 @@ export var useStickyPosition = function (transformedColumns, columnWidths) {
|
|
|
19
18
|
right.unshift(column.width);
|
|
20
19
|
result[column.columnIndex] = { value: stackedPositionValue, isLast: idx === rightFixedCols.length - 1 };
|
|
21
20
|
});
|
|
22
|
-
|
|
23
|
-
});
|
|
24
|
-
return stickyPosition;
|
|
21
|
+
return result;
|
|
22
|
+
}, [columnWidths, columns]);
|
|
25
23
|
};
|
|
26
24
|
//# sourceMappingURL=useStickyPosition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useStickyPosition.js","sourceRoot":"","sources":["../../../../src/core/VirtualTable/hooks/useStickyPosition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,SAAS,EAAC,MAAM,6BAA6B,CAAC;AAGtD,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAyB,OAAsC,EAAE,YAAsB;IACpH,OAAO,KAAK,CAAC,OAAO,CAAC;QACjB,IAAM,MAAM,GAAmC,EAAE,CAAC;QAClD,IAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,IAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,UAAC,CAAC,EAAE,WAAW,IAAK,OAAA,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,EAAC,WAAW,aAAA,EAAE,KAAK,EAAE,YAAY,CAAC,WAAW,CAAC,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAA7E,CAA6E,CAAC,CAAC;QACvJ,oDAAoD;QACpD,IAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,UAAC,CAAC,EAAE,WAAW,IAAK,OAAA,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,EAAC,WAAW,aAAA,EAAE,KAAK,EAAE,YAAY,CAAC,WAAW,CAAC,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAA9E,CAA8E,CAAC,CAAC,OAAO,EAAE,CAAC;QAEnK,aAAa,CAAC,OAAO,CAAC,UAAC,MAAM,EAAE,GAAG;YAC9B,IAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,IAAI,IAAK,OAAA,GAAG,GAAG,IAAI,EAAV,CAAU,EAAE,CAAC,CAAC,CAAC;YACvE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAC,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,GAAG,KAAK,aAAa,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;QACzG,CAAC,CAAC,CAAC;QAEH,cAAc,CAAC,OAAO,CAAC,UAAC,MAAM,EAAE,GAAG;YAC/B,IAAM,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,IAAI,IAAK,OAAA,GAAG,GAAG,IAAI,EAAV,CAAU,EAAE,CAAC,CAAC,CAAC;YACxE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAC,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,GAAG,KAAK,cAAc,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;QAC1G,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type React from "react";
|
|
2
|
+
import type { VirtualTableColumn, VirtualTableRowExpand, VirtualTableRowSelection } from "../type";
|
|
3
|
+
interface Props<RowType extends object> {
|
|
4
|
+
columns: VirtualTableColumn<RowType>[];
|
|
5
|
+
dataSource: RowType[];
|
|
6
|
+
rowKey: "index" | React.Key;
|
|
7
|
+
rowSelection?: VirtualTableRowSelection<RowType>;
|
|
8
|
+
rowExpand?: VirtualTableRowExpand<RowType>;
|
|
9
|
+
}
|
|
10
|
+
export declare const useTransformColumn: <RowType extends object>({ columns, dataSource, rowKey, rowExpand, rowSelection }: Props<RowType>) => VirtualTableColumn<RowType>[];
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { useRowExpand } from "./useRowExpand";
|
|
2
|
+
import { useRowSelection } from "./useRowSelection";
|
|
3
|
+
export var useTransformColumn = function (_a) {
|
|
4
|
+
var columns = _a.columns, dataSource = _a.dataSource, rowKey = _a.rowKey, rowExpand = _a.rowExpand, rowSelection = _a.rowSelection;
|
|
5
|
+
var columnsWithRowSelection = useRowSelection({ columns: columns, dataSource: dataSource, rowSelection: rowSelection, rowKey: rowKey });
|
|
6
|
+
var transformedColumns = useRowExpand({ columns: columnsWithRowSelection, rowExpand: rowExpand });
|
|
7
|
+
return transformedColumns;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=useTransformColumn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTransformColumn.js","sourceRoot":"","sources":["../../../../src/core/VirtualTable/hooks/useTransformColumn.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAWlD,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAAkC,EAAsE;QAArE,OAAO,aAAA,EAAE,UAAU,gBAAA,EAAE,MAAM,YAAA,EAAE,SAAS,eAAA,EAAE,YAAY,kBAAA;IACrH,IAAM,uBAAuB,GAAG,eAAe,CAAC,EAAC,OAAO,SAAA,EAAE,UAAU,YAAA,EAAE,YAAY,cAAA,EAAE,MAAM,QAAA,EAAC,CAAC,CAAC;IAC7F,IAAM,kBAAkB,GAAG,YAAY,CAAC,EAAC,OAAO,EAAE,uBAAuB,EAAE,SAAS,WAAA,EAAC,CAAC,CAAC;IAEvF,OAAO,kBAAkB,CAAC;AAC9B,CAAC,CAAC"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { SafeReactChild, StringKey } from "../../internal/type";
|
|
3
|
-
import type { VirtualTableColumn, VirtualTableRowSelection } from "./type";
|
|
3
|
+
import type { VirtualTableColumn, VirtualTableRowExpand, VirtualTableRowSelection } from "./type";
|
|
4
4
|
import "./index.less";
|
|
5
5
|
export interface VirtualTableProps<RowType extends object> {
|
|
6
6
|
dataSource: RowType[];
|
|
7
7
|
columns: VirtualTableColumn<RowType>[];
|
|
8
8
|
scrollY: number;
|
|
9
|
-
rowHeight: number
|
|
10
|
-
onRowClick?: (record: RowType, rowIndex: number) => number;
|
|
9
|
+
rowHeight: number;
|
|
11
10
|
className?: string;
|
|
12
11
|
rowClassName?: string;
|
|
13
12
|
/**
|
|
@@ -18,12 +17,14 @@ export interface VirtualTableProps<RowType extends object> {
|
|
|
18
17
|
loading?: boolean;
|
|
19
18
|
emptyPlaceholder?: SafeReactChild;
|
|
20
19
|
rowSelection?: VirtualTableRowSelection<RowType>;
|
|
20
|
+
onRowClick?: (record: RowType, rowIndex: number) => void;
|
|
21
21
|
/**
|
|
22
22
|
* Default: index
|
|
23
23
|
*/
|
|
24
24
|
rowKey?: StringKey<RowType> | "index";
|
|
25
25
|
headerHeight?: number;
|
|
26
|
+
rowExpand?: VirtualTableRowExpand<RowType>;
|
|
26
27
|
}
|
|
27
|
-
export declare const VirtualTable: (<RowType extends object>({ columns, rowHeight, scrollY, dataSource, className, rowClassName, loading, emptyPlaceholder, rowSelection, onRowClick, scrollX, rowKey, headerHeight, }: VirtualTableProps<RowType>) => JSX.Element) & {
|
|
28
|
+
export declare const VirtualTable: (<RowType extends object>({ columns, rowHeight, scrollY, dataSource, className, rowClassName, loading, emptyPlaceholder, rowSelection, onRowClick, scrollX, rowExpand, rowKey, headerHeight, }: VirtualTableProps<RowType>) => JSX.Element) & {
|
|
28
29
|
displayName: string;
|
|
29
30
|
};
|
|
@@ -26,36 +26,36 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
26
26
|
import React from "react";
|
|
27
27
|
import { useVirtual } from "react-virtual";
|
|
28
28
|
import { Spin } from "../Spin";
|
|
29
|
-
import {
|
|
30
|
-
import { useScrollToEdge } from "./useScrollToEdge";
|
|
31
|
-
import { useScrollBarSize } from "./useScrollBarSize";
|
|
32
|
-
import { useColumnWidths } from "./useColumnWidths";
|
|
33
|
-
import { useStickyPosition } from "./useStickyPosition";
|
|
29
|
+
import { useLayout } from "./hooks/useLayout";
|
|
34
30
|
import { TableRow } from "./TableRow";
|
|
35
31
|
import { TableHeader } from "./TableHeader";
|
|
36
32
|
import "./index.less";
|
|
33
|
+
import { useTransformColumn } from "./hooks/useTransformColumn";
|
|
37
34
|
export var VirtualTable = Object.assign(function (_a) {
|
|
38
|
-
var columns = _a.columns, rowHeight = _a.rowHeight, scrollY = _a.scrollY, dataSource = _a.dataSource, className = _a.className, rowClassName = _a.rowClassName, loading = _a.loading, emptyPlaceholder = _a.emptyPlaceholder, rowSelection = _a.rowSelection, onRowClick = _a.onRowClick, scrollX = _a.scrollX, _b = _a.rowKey, rowKey = _b === void 0 ? "index" : _b, _c = _a.headerHeight, headerHeight = _c === void 0 ? 50 : _c;
|
|
35
|
+
var columns = _a.columns, rowHeight = _a.rowHeight, scrollY = _a.scrollY, dataSource = _a.dataSource, className = _a.className, rowClassName = _a.rowClassName, loading = _a.loading, emptyPlaceholder = _a.emptyPlaceholder, rowSelection = _a.rowSelection, onRowClick = _a.onRowClick, scrollX = _a.scrollX, rowExpand = _a.rowExpand, _b = _a.rowKey, rowKey = _b === void 0 ? "index" : _b, _c = _a.headerHeight, headerHeight = _c === void 0 ? 50 : _c;
|
|
39
36
|
var size = dataSource.length;
|
|
40
37
|
var scrollContentRef = React.useRef(null);
|
|
41
38
|
var headersRef = React.useRef(null);
|
|
42
|
-
var
|
|
43
|
-
var
|
|
44
|
-
var _d = useVirtual({
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
var estimateSize = React.useCallback(function () { return rowHeight; }, [rowHeight]);
|
|
40
|
+
var overscan = rowExpand ? Math.floor(scrollY / rowHeight) : 1;
|
|
41
|
+
var _d = useVirtual({
|
|
42
|
+
size: size,
|
|
43
|
+
parentRef: scrollContentRef,
|
|
44
|
+
estimateSize: estimateSize,
|
|
45
|
+
overscan: overscan,
|
|
46
|
+
}), virtualItems = _d.virtualItems, totalSize = _d.totalSize;
|
|
47
|
+
var transformedColumns = useTransformColumn({ columns: columns, dataSource: dataSource, rowSelection: rowSelection, rowKey: rowKey, rowExpand: rowExpand });
|
|
47
48
|
var isScrollable = totalSize > scrollY;
|
|
48
49
|
var tableHeight = scrollY + headerHeight;
|
|
49
50
|
var tableBodyHeight = scrollY;
|
|
50
51
|
var emptyElement = emptyPlaceholder || "暂无数据";
|
|
51
|
-
var
|
|
52
|
-
var
|
|
53
|
-
var lastShownColumnIndex = React.useMemo(function () { return columns.length - 1 - __spreadArray([], __read(columns), false).reverse().findIndex(function (_) { return _.display !== "hidden"; }); }, [columns]);
|
|
52
|
+
var _e = useLayout({ headersRef: headersRef, scrollContentRef: scrollContentRef, isScrollable: isScrollable, columns: transformedColumns }), scrollBarSize = _e.scrollBarSize, stickyPosition = _e.stickyPosition, columnWidths = _e.columnWidths, isScrollToEdge = _e.isScrollToEdge, isScrollToLeft = _e.isScrollToLeft, isScrollToRight = _e.isScrollToRight;
|
|
53
|
+
var lastShownColumnIndex = React.useMemo(function () { return transformedColumns.length - 1 - __spreadArray([], __read(transformedColumns), false).reverse().findIndex(function (_) { return _.display !== "hidden"; }); }, [transformedColumns]);
|
|
54
54
|
// handle the edge position & shadow of the fixed columns
|
|
55
55
|
var getFixedColumnClassNames = React.useCallback(function (fixed, columnIndex) {
|
|
56
56
|
var _a;
|
|
57
57
|
var isFixedClassName = fixed ? "fixed" : "";
|
|
58
|
-
var isLastFixedClassName = fixed && ((_a = stickyPosition
|
|
58
|
+
var isLastFixedClassName = fixed && ((_a = stickyPosition[columnIndex]) === null || _a === void 0 ? void 0 : _a.isLast) ? "last" : "";
|
|
59
59
|
var fixedPositionClassName = fixed;
|
|
60
60
|
var hideShadowClassName = (fixed === "left" && isScrollToLeft) || (fixed === "right" && isScrollToRight) ? "hide-shadow" : "";
|
|
61
61
|
return [isFixedClassName, isLastFixedClassName, fixedPositionClassName, hideShadowClassName];
|
|
@@ -75,9 +75,9 @@ export var VirtualTable = Object.assign(function (_a) {
|
|
|
75
75
|
React.createElement(Spin, { spinning: loading }))),
|
|
76
76
|
React.createElement("div", { className: "scroll-content", ref: scrollContentRef, style: { height: tableBodyHeight, top: headerHeight }, onScroll: onScroll },
|
|
77
77
|
React.createElement("div", { className: "table", style: { height: totalSize } },
|
|
78
|
-
React.createElement(TableHeader, { headersRef: headersRef, headerHeight: headerHeight,
|
|
78
|
+
React.createElement(TableHeader, { headersRef: headersRef, headerHeight: headerHeight, columns: transformedColumns, stickyPosition: stickyPosition, getFixedColumnClassNames: getFixedColumnClassNames }),
|
|
79
79
|
React.createElement("div", { className: "table-body" }, dataSource.length === 0
|
|
80
80
|
? emptyElement
|
|
81
|
-
: virtualItems.map(function (virtualItem
|
|
81
|
+
: virtualItems.map(function (virtualItem) { return (React.createElement(TableRow, { key: virtualItem.index, rowHeight: rowHeight, onRowClick: onRowClick, virtualItem: virtualItem, data: dataSource[virtualItem.index], columns: transformedColumns, columnWidths: columnWidths, scrollBarSize: scrollBarSize, stickyPosition: stickyPosition, lastShownColumnIndex: lastShownColumnIndex, rowClassName: rowClassName, getFixedColumnClassNames: getFixedColumnClassNames, rowExpand: rowExpand })); }))))));
|
|
82
82
|
}, { displayName: "VirtualTable" });
|
|
83
83
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/VirtualTable/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/VirtualTable/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAE7B,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,cAAc,CAAC;AACtB,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AA0B9D,MAAM,CAAC,IAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CACrC,UAAkC,EAeL;QAdzB,OAAO,aAAA,EACP,SAAS,eAAA,EACT,OAAO,aAAA,EACP,UAAU,gBAAA,EACV,SAAS,eAAA,EACT,YAAY,kBAAA,EACZ,OAAO,aAAA,EACP,gBAAgB,sBAAA,EAChB,YAAY,kBAAA,EACZ,UAAU,gBAAA,EACV,OAAO,aAAA,EACP,SAAS,eAAA,EACT,cAAgB,EAAhB,MAAM,mBAAG,OAAO,KAAA,EAChB,oBAAiB,EAAjB,YAAY,mBAAG,EAAE,KAAA;IAEjB,IAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,IAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC5D,IAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IACtD,IAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,cAAM,OAAA,SAAS,EAAT,CAAS,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACrE,IAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3D,IAAA,KAA4B,UAAU,CAAC;QACzC,IAAI,MAAA;QACJ,SAAS,EAAE,gBAAgB;QAC3B,YAAY,cAAA;QACZ,QAAQ,UAAA;KACX,CAAC,EALK,YAAY,kBAAA,EAAE,SAAS,eAK5B,CAAC;IACH,IAAM,kBAAkB,GAAG,kBAAkB,CAAC,EAAC,OAAO,SAAA,EAAE,UAAU,YAAA,EAAE,YAAY,cAAA,EAAE,MAAM,QAAA,EAAE,SAAS,WAAA,EAAC,CAAC,CAAC;IAEtG,IAAM,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;IACzC,IAAM,WAAW,GAAG,OAAO,GAAG,YAAY,CAAC;IAC3C,IAAM,eAAe,GAAG,OAAO,CAAC;IAChC,IAAM,YAAY,GAAG,gBAAgB,IAAI,MAAM,CAAC;IAC1C,IAAA,KAAiG,SAAS,CAAC,EAAC,UAAU,YAAA,EAAE,gBAAgB,kBAAA,EAAE,YAAY,cAAA,EAAE,OAAO,EAAE,kBAAkB,EAAC,CAAC,EAApL,aAAa,mBAAA,EAAE,cAAc,oBAAA,EAAE,YAAY,kBAAA,EAAE,cAAc,oBAAA,EAAE,cAAc,oBAAA,EAAE,eAAe,qBAAwF,CAAC;IAE5L,IAAM,oBAAoB,GAAW,KAAK,CAAC,OAAO,CAAC,cAAM,OAAA,kBAAkB,CAAC,MAAM,GAAG,CAAC,GAAG,yBAAI,kBAAkB,UAAE,OAAO,EAAE,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAtB,CAAsB,CAAC,EAAxG,CAAwG,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzL,yDAAyD;IACzD,IAAM,wBAAwB,GAAG,KAAK,CAAC,WAAW,CAC9C,UAAC,KAAsC,EAAE,WAAmB;;QACxD,IAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,IAAM,oBAAoB,GAAG,KAAK,KAAI,MAAA,cAAc,CAAC,WAAW,CAAC,0CAAE,MAAM,CAAA,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,IAAM,sBAAsB,GAAG,KAAK,CAAC;QACrC,IAAM,mBAAmB,GAAG,CAAC,KAAK,KAAK,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QAChI,OAAO,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,mBAAmB,CAAC,CAAC;IACjG,CAAC,EACD,CAAC,cAAc,EAAE,eAAe,EAAE,cAAc,CAAC,CACpD,CAAC;IAEF,IAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC;QAC/B,qBAAqB,CAAC;YAClB,uCAAuC;YACvC,IAAI,CAAC,gBAAgB,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO,CAAC,UAAU;gBAAE,OAAO;YAEtI,cAAc,EAAE,CAAC;YACjB,2BAA2B;YAC3B,UAAU,CAAC,OAAO,CAAC,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC;QACxE,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,OAAO,CACH,6BAAK,SAAS,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAC,KAAK,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,EAAE,WAAW,EAAC;QAC3G,OAAO,IAAI,CACR,6BAAK,SAAS,EAAC,MAAM;YACjB,oBAAC,IAAI,IAAC,QAAQ,EAAE,OAAO,GAAI,CACzB,CACT;QACD,6BAAK,SAAS,EAAC,gBAAgB,EAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,EAAC,EAAE,QAAQ,EAAE,QAAQ;YAC1H,6BAAK,SAAS,EAAC,OAAO,EAAC,KAAK,EAAE,EAAC,MAAM,EAAE,SAAS,EAAC;gBAC7C,oBAAC,WAAW,IACR,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,kBAAkB,EAC3B,cAAc,EAAE,cAAc,EAC9B,wBAAwB,EAAE,wBAAwB,GACpD;gBACF,6BAAK,SAAS,EAAC,YAAY,IACtB,UAAU,CAAC,MAAM,KAAK,CAAC;oBACpB,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,UAAA,WAAW,IAAI,OAAA,CAC5B,oBAAC,QAAQ,IACL,GAAG,EAAE,WAAW,CAAC,KAAK,EACtB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,EACnC,OAAO,EAAE,kBAAkB,EAC3B,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAC9B,oBAAoB,EAAE,oBAAoB,EAC1C,YAAY,EAAE,YAAY,EAC1B,wBAAwB,EAAE,wBAAwB,EAClD,SAAS,EAAE,SAAS,GACtB,CACL,EAhB+B,CAgB/B,CAAC,CACN,CACJ,CACJ,CACJ,CACT,CAAC;AACN,CAAC,EACD,EAAC,WAAW,EAAE,cAAc,EAAC,CAChC,CAAC"}
|
|
@@ -108,17 +108,19 @@
|
|
|
108
108
|
height: 100%;
|
|
109
109
|
|
|
110
110
|
.table-row {
|
|
111
|
-
|
|
111
|
+
width: max-content;
|
|
112
112
|
position: absolute;
|
|
113
113
|
top: 0;
|
|
114
114
|
left: 0;
|
|
115
|
+
transition: transform 0.3s;
|
|
115
116
|
|
|
116
117
|
.table-cell {
|
|
117
|
-
display: flex;
|
|
118
|
+
display: inline-flex;
|
|
118
119
|
justify-content: center;
|
|
119
120
|
align-items: center;
|
|
120
121
|
background-color: #fff;
|
|
121
122
|
word-break: break-word;
|
|
123
|
+
vertical-align: bottom;
|
|
122
124
|
|
|
123
125
|
&.fixed {
|
|
124
126
|
position: sticky;
|
|
@@ -143,6 +145,16 @@
|
|
|
143
145
|
}
|
|
144
146
|
}
|
|
145
147
|
}
|
|
148
|
+
|
|
149
|
+
.expand-row {
|
|
150
|
+
display: block;
|
|
151
|
+
width: 100%;
|
|
152
|
+
max-height: 0;
|
|
153
|
+
|
|
154
|
+
&.expanded {
|
|
155
|
+
max-height: 400px;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
146
158
|
}
|
|
147
159
|
}
|
|
148
160
|
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { SafeReactChild, SafeReactChildren } from "../../internal/type";
|
|
3
3
|
export declare type ColumnFixedPosition = "left" | "right";
|
|
4
|
+
export interface StickyPosition {
|
|
5
|
+
value: number;
|
|
6
|
+
isLast: boolean;
|
|
7
|
+
}
|
|
4
8
|
/**
|
|
5
9
|
* Similar usage of Antd Table but only support partial features: fixed columns, row selection, on row click
|
|
6
10
|
*/
|
|
@@ -20,6 +24,19 @@ export declare type VirtualTableRowSelection<RowType extends object> = {
|
|
|
20
24
|
*/
|
|
21
25
|
title?: SafeReactChild;
|
|
22
26
|
};
|
|
27
|
+
export declare type VirtualTableRowExpand<RowType extends object> = {
|
|
28
|
+
width: number;
|
|
29
|
+
renderExpandRow: (record: RowType, rowIndex: number) => SafeReactChild;
|
|
30
|
+
ExpandButton: React.ComponentType<{
|
|
31
|
+
onClick: () => void;
|
|
32
|
+
}>;
|
|
33
|
+
title?: SafeReactChild;
|
|
34
|
+
/**
|
|
35
|
+
* Can only sticky in right
|
|
36
|
+
*/
|
|
37
|
+
fixed?: boolean;
|
|
38
|
+
isDefaultExpanded?: boolean;
|
|
39
|
+
};
|
|
23
40
|
export declare type VirtualTableColumn<RowType extends object> = {
|
|
24
41
|
title: SafeReactChild;
|
|
25
42
|
width: number;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { SwipeHookConfig, SwipeHookHandlers, SwipeHookResult } from "./type";
|
|
2
|
+
export declare class Controller {
|
|
3
|
+
private startTime;
|
|
4
|
+
private startTouch;
|
|
5
|
+
private started;
|
|
6
|
+
private handlers;
|
|
7
|
+
private config;
|
|
8
|
+
constructor();
|
|
9
|
+
private onTouchStart;
|
|
10
|
+
private onTouchMove;
|
|
11
|
+
private onTouchEnd;
|
|
12
|
+
private onTouchCancel;
|
|
13
|
+
private testThreshold;
|
|
14
|
+
private cancel;
|
|
15
|
+
private computeEvent;
|
|
16
|
+
private matchTouches;
|
|
17
|
+
private reset;
|
|
18
|
+
update(handlers: SwipeHookHandlers, config?: SwipeHookConfig): void;
|
|
19
|
+
createHandlers(): SwipeHookResult;
|
|
20
|
+
}
|