@pinnacle0/web-ui 0.3.69 → 0.3.71

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 (49) hide show
  1. package/core/ResizeObserverPolyfill.d.ts +1 -0
  2. package/core/ResizeObserverPolyfill.js +53 -0
  3. package/core/ResizeObserverPolyfill.js.map +1 -0
  4. package/core/VirtualList.d.ts +25 -0
  5. package/core/VirtualList.js +49 -0
  6. package/core/VirtualList.js.map +1 -0
  7. package/core/VirtualTable/TableHeader.d.ts +4 -7
  8. package/core/VirtualTable/TableHeader.js +8 -35
  9. package/core/VirtualTable/TableHeader.js.map +1 -1
  10. package/core/VirtualTable/TableRow.d.ts +5 -10
  11. package/core/VirtualTable/TableRow.js +21 -30
  12. package/core/VirtualTable/TableRow.js.map +1 -1
  13. package/core/VirtualTable/hooks/useColumns.d.ts +32 -0
  14. package/core/VirtualTable/hooks/useColumns.js +112 -0
  15. package/core/VirtualTable/hooks/useColumns.js.map +1 -0
  16. package/core/VirtualTable/hooks/useScroll.d.ts +17 -0
  17. package/core/VirtualTable/hooks/useScroll.js +57 -0
  18. package/core/VirtualTable/hooks/useScroll.js.map +1 -0
  19. package/core/VirtualTable/index.d.ts +5 -7
  20. package/core/VirtualTable/index.js +38 -72
  21. package/core/VirtualTable/index.js.map +1 -1
  22. package/core/VirtualTable/index.less +18 -18
  23. package/core/VirtualTable/type.d.ts +0 -13
  24. package/{core/VirtualTable/hooks → hooks}/useDebounce.d.ts +0 -0
  25. package/{core/VirtualTable/hooks → hooks}/useDebounce.js +0 -0
  26. package/hooks/useDebounce.js.map +1 -0
  27. package/package.json +3 -1
  28. package/core/VirtualTable/hooks/useColumnWidths.d.ts +0 -11
  29. package/core/VirtualTable/hooks/useColumnWidths.js +0 -38
  30. package/core/VirtualTable/hooks/useColumnWidths.js.map +0 -1
  31. package/core/VirtualTable/hooks/useDebounce.js.map +0 -1
  32. package/core/VirtualTable/hooks/useLayout.d.ts +0 -17
  33. package/core/VirtualTable/hooks/useLayout.js +0 -44
  34. package/core/VirtualTable/hooks/useLayout.js.map +0 -1
  35. package/core/VirtualTable/hooks/useRowExpand.d.ts +0 -7
  36. package/core/VirtualTable/hooks/useRowExpand.js +0 -20
  37. package/core/VirtualTable/hooks/useRowExpand.js.map +0 -1
  38. package/core/VirtualTable/hooks/useScrollBarSize.d.ts +0 -5
  39. package/core/VirtualTable/hooks/useScrollBarSize.js +0 -36
  40. package/core/VirtualTable/hooks/useScrollBarSize.js.map +0 -1
  41. package/core/VirtualTable/hooks/useScrollToEdge.d.ts +0 -8
  42. package/core/VirtualTable/hooks/useScrollToEdge.js +0 -48
  43. package/core/VirtualTable/hooks/useScrollToEdge.js.map +0 -1
  44. package/core/VirtualTable/hooks/useStickyPosition.d.ts +0 -2
  45. package/core/VirtualTable/hooks/useStickyPosition.js +0 -24
  46. package/core/VirtualTable/hooks/useStickyPosition.js.map +0 -1
  47. package/core/VirtualTable/hooks/useTransformColumn.d.ts +0 -11
  48. package/core/VirtualTable/hooks/useTransformColumn.js +0 -9
  49. package/core/VirtualTable/hooks/useTransformColumn.js.map +0 -1
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,53 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (_) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ (function () { return __awaiter(void 0, void 0, void 0, function () {
38
+ var module_1;
39
+ return __generator(this, function (_a) {
40
+ switch (_a.label) {
41
+ case 0:
42
+ if (!("ResizeObserver" in window === false)) return [3 /*break*/, 2];
43
+ return [4 /*yield*/, import("@juggle/resize-observer")];
44
+ case 1:
45
+ module_1 = _a.sent();
46
+ window.ResizeObserver = module_1.ResizeObserver;
47
+ _a.label = 2;
48
+ case 2: return [2 /*return*/];
49
+ }
50
+ });
51
+ }); })();
52
+ export {};
53
+ //# sourceMappingURL=ResizeObserverPolyfill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResizeObserverPolyfill.js","sourceRoot":"","sources":["../../src/core/ResizeObserverPolyfill.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,CAAC;;;;;qBACO,CAAA,gBAAgB,IAAI,MAAM,KAAK,KAAK,CAAA,EAApC,wBAAoC;gBAErB,qBAAM,MAAM,CAAC,yBAAyB,CAAC,EAAA;;gBAAhD,WAAS,SAAuC;gBACtD,MAAM,CAAC,cAAc,GAAG,QAAM,CAAC,cAAc,CAAC;;;;;KAErD,CAAC,EAAE,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { VirtualizerOptions } from "@tanstack/react-virtual";
2
+ import type { ComponentType } from "react";
3
+ import type { StringKey } from "../internal/type";
4
+ declare type Direction = "horizontal" | "vertical";
5
+ export interface ItemProps<T extends object> {
6
+ index: number;
7
+ data: T;
8
+ measure: (element: HTMLElement | null) => void;
9
+ }
10
+ export interface Props<T extends object> {
11
+ initialRect?: {
12
+ width: number;
13
+ height: number;
14
+ };
15
+ data: T[];
16
+ renderData: ComponentType<ItemProps<T>>;
17
+ rowKey?: StringKey<T> | "index";
18
+ direction?: Direction;
19
+ fixedSize?: (index: number) => number;
20
+ overscan?: number;
21
+ observeElementRect?: VirtualizerOptions<HTMLElement | null, HTMLElement>["observeElementRect"];
22
+ observeElementOffset?: VirtualizerOptions<HTMLElement | null, HTMLElement>["observeElementOffset"];
23
+ }
24
+ export declare function VirtualList<T extends object>({ data, rowKey, direction, renderData, overscan, initialRect, observeElementOffset, fixedSize, observeElementRect, }: Props<T>): JSX.Element;
25
+ export {};
@@ -0,0 +1,49 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import React from "react";
13
+ import { useVirtualizer, observeElementOffset as defaultObserveElementOffset, observeElementRect as defaultObserveElementRect } from "@tanstack/react-virtual";
14
+ var DEFAULT_ITEM_SIZE = 100;
15
+ export function VirtualList(_a) {
16
+ var data = _a.data, _b = _a.rowKey, rowKey = _b === void 0 ? "index" : _b, _c = _a.direction, direction = _c === void 0 ? "vertical" : _c, renderData = _a.renderData, _d = _a.overscan, overscan = _d === void 0 ? 5 : _d, _e = _a.initialRect, initialRect = _e === void 0 ? { width: 0, height: 0 } : _e, observeElementOffset = _a.observeElementOffset, fixedSize = _a.fixedSize, observeElementRect = _a.observeElementRect;
17
+ var Item = renderData;
18
+ var parentRef = React.useRef(null);
19
+ var horizontal = direction === "horizontal";
20
+ var sizeStyle = horizontal ? { height: "100%" } : { width: "100%" };
21
+ var virtualizer = useVirtualizer({
22
+ initialRect: initialRect,
23
+ horizontal: horizontal,
24
+ count: data.length,
25
+ getScrollElement: function () { return parentRef.current; },
26
+ estimateSize: fixedSize !== null && fixedSize !== void 0 ? fixedSize : (function () { return DEFAULT_ITEM_SIZE; }),
27
+ observeElementOffset: observeElementOffset !== null && observeElementOffset !== void 0 ? observeElementOffset : defaultObserveElementOffset,
28
+ observeElementRect: observeElementRect !== null && observeElementRect !== void 0 ? observeElementRect : defaultObserveElementRect,
29
+ overscan: overscan,
30
+ });
31
+ var virtualizerRef = React.useRef(virtualizer);
32
+ virtualizerRef.current = virtualizer;
33
+ // TODO/Alvis: This is temporary fix of issue: https://github.com/TanStack/virtual/issues/363, please remove the code after update
34
+ React.useLayoutEffect(function () {
35
+ var v = virtualizerRef.current;
36
+ v._didMount()();
37
+ v._willUpdate();
38
+ }, [data.length]);
39
+ var getItemKey = function (index) { return (rowKey === "index" ? index : data[index][rowKey]); };
40
+ return (React.createElement("div", { className: "g-virtual-list", ref: parentRef, style: { width: "100%", height: "100%", overflow: "auto" } },
41
+ React.createElement("div", { className: "g-virtual-list-inner", style: {
42
+ height: horizontal ? "100%" : virtualizer.getTotalSize(),
43
+ width: horizontal ? virtualizer.getTotalSize() : "100%",
44
+ position: "relative",
45
+ } }, virtualizer.getVirtualItems().map(function (virtualRow) { return (React.createElement("div", { className: "g-virtual-list-item", key: getItemKey(virtualRow.index), style: __assign({ position: "absolute", top: 0, left: 0, transform: horizontal ? "translateX(".concat(virtualRow.start, "px)") : "translateY(".concat(virtualRow.start, "px)") }, sizeStyle) },
46
+ React.createElement("div", { className: "g-virtual-list-item-wrapper", ref: virtualRow.measureElement, style: __assign({}, sizeStyle) },
47
+ React.createElement(Item, { data: data[virtualRow.index], index: virtualRow.index, measure: virtualRow.measureElement })))); }))));
48
+ }
49
+ //# sourceMappingURL=VirtualList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualList.js","sourceRoot":"","sources":["../../src/core/VirtualList.tsx"],"names":[],"mappings":"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"}
@@ -1,13 +1,10 @@
1
1
  import React from "react";
2
- import type { ColumnFixedPosition, VirtualTableColumn, StickyPosition } from "./type";
2
+ import type { VirtualTableColumn, StickyPosition } from "./type";
3
3
  interface Props<RowType extends object> {
4
- headersRef: React.RefObject<HTMLDivElement>;
4
+ headerRef: React.MutableRefObject<HTMLDivElement | null>;
5
5
  headerHeight: number;
6
6
  columns: VirtualTableColumn<RowType>[];
7
- stickyPosition: Record<number, StickyPosition>;
8
- getFixedColumnClassNames: (fixed: ColumnFixedPosition | undefined, columnIndex: number) => (string | undefined)[];
7
+ stickyPositionMap: Record<number, StickyPosition>;
9
8
  }
10
- export declare const TableHeader: (<RowType extends object>({ headersRef, headerHeight, columns, stickyPosition, getFixedColumnClassNames }: Props<RowType>) => JSX.Element) & {
11
- displayName: string;
12
- };
9
+ export declare const TableHeader: <RowType extends object>({ headerRef, headerHeight, columns, stickyPositionMap }: Props<RowType>) => JSX.Element;
13
10
  export {};
@@ -1,45 +1,18 @@
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
1
  import React from "react";
2
+ import { ReactUtil } from "../../util/ReactUtil";
27
3
  import { classNames } from "../../util/ClassNames";
28
- export var TableHeader = Object.assign(function (_a) {
29
- var headersRef = _a.headersRef, headerHeight = _a.headerHeight, columns = _a.columns, stickyPosition = _a.stickyPosition, getFixedColumnClassNames = _a.getFixedColumnClassNames;
30
- return (React.createElement("div", { className: "table-headers", ref: headersRef, style: { height: headerHeight, width: scrollX || "100%" } }, columns.map(function (_a, columnIndex) {
31
- var _b;
4
+ export var TableHeader = ReactUtil.memo("TableHeader", function (_a) {
5
+ var headerRef = _a.headerRef, headerHeight = _a.headerHeight, columns = _a.columns, stickyPositionMap = _a.stickyPositionMap;
6
+ return (React.createElement("div", { className: "table-headers", ref: headerRef, style: { height: headerHeight, width: scrollX || "100%" } }, columns.map(function (_a, columnIndex) {
32
7
  var title = _a.title, width = _a.width, align = _a.align, fixed = _a.fixed, display = _a.display;
33
- var stickyPositionValue = ((_b = stickyPosition[columnIndex]) === null || _b === void 0 ? void 0 : _b.value) || 0;
34
- return (React.createElement("div", { className: classNames.apply(void 0, __spreadArray(["table-header"], __read(getFixedColumnClassNames(fixed, columnIndex)), false)), key: columnIndex, style: {
8
+ var stickyPosition = stickyPositionMap[columnIndex];
9
+ return (React.createElement("div", { className: classNames("table-header", { fixed: fixed, left: fixed === "left", right: fixed === "right", last: stickyPosition === null || stickyPosition === void 0 ? void 0 : stickyPosition.isLast }), key: columnIndex, style: {
35
10
  display: display !== "hidden" ? "flex" : "none",
36
11
  flex: "1 0 ".concat(width, "px"),
37
12
  textAlign: align,
38
- left: fixed === "left" ? stickyPositionValue : undefined,
39
- right: fixed === "right" ? stickyPositionValue : undefined,
13
+ left: fixed === "left" ? stickyPosition === null || stickyPosition === void 0 ? void 0 : stickyPosition.value : undefined,
14
+ right: fixed === "right" ? stickyPosition === null || stickyPosition === void 0 ? void 0 : stickyPosition.value : undefined,
40
15
  } }, title));
41
16
  })));
42
- }, {
43
- displayName: "TableHeader",
44
17
  });
45
18
  //# sourceMappingURL=TableHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeader.js","sourceRoot":"","sources":["../../../src/core/VirtualTable/TableHeader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAWjD,MAAM,CAAC,IAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CACpC,UAAkC,EAA6F;QAA5F,UAAU,gBAAA,EAAE,YAAY,kBAAA,EAAE,OAAO,aAAA,EAAE,cAAc,oBAAA,EAAE,wBAAwB,8BAAA;IAC1G,OAAO,CACH,6BAAK,SAAS,EAAC,eAAe,EAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,IAAI,MAAM,EAAC,IAClG,OAAO,CAAC,GAAG,CAAC,UAAC,EAAqC,EAAE,WAAW;;YAAjD,KAAK,WAAA,EAAE,KAAK,WAAA,EAAE,KAAK,WAAA,EAAE,KAAK,WAAA,EAAE,OAAO,aAAA;QAC9C,IAAM,mBAAmB,GAAG,CAAA,MAAA,cAAc,CAAC,WAAW,CAAC,0CAAE,KAAK,KAAI,CAAC,CAAC;QACpE,OAAO,CACH,6BACI,SAAS,EAAE,UAAU,8BAAC,cAAc,UAAK,wBAAwB,CAAC,KAAK,EAAE,WAAW,CAAC,YACrF,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE;gBACH,OAAO,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;gBAC/C,IAAI,EAAE,cAAO,KAAK,OAAI;gBACtB,SAAS,EAAE,KAAK;gBAChB,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;gBACxD,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;aAC7D,IAEA,KAAK,CACJ,CACT,CAAC;IACN,CAAC,CAAC,CACA,CACT,CAAC;AACN,CAAC,EACD;IACI,WAAW,EAAE,aAAa;CAC7B,CACJ,CAAC"}
1
+ {"version":3,"file":"TableHeader.js","sourceRoot":"","sources":["../../../src/core/VirtualTable/TableHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAUjD,MAAM,CAAC,IAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,UAAkC,EAAqE;QAApE,SAAS,eAAA,EAAE,YAAY,kBAAA,EAAE,OAAO,aAAA,EAAE,iBAAiB,uBAAA;IAC3I,OAAO,CACH,6BAAK,SAAS,EAAC,eAAe,EAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,IAAI,MAAM,EAAC,IACjG,OAAO,CAAC,GAAG,CAAC,UAAC,EAAqC,EAAE,WAAW;YAAjD,KAAK,WAAA,EAAE,KAAK,WAAA,EAAE,KAAK,WAAA,EAAE,KAAK,WAAA,EAAE,OAAO,aAAA;QAC9C,IAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACtD,OAAO,CACH,6BACI,SAAS,EAAE,UAAU,CAAC,cAAc,EAAE,EAAC,KAAK,OAAA,EAAE,IAAI,EAAE,KAAK,KAAK,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,EAAE,IAAI,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,EAAC,CAAC,EAC9H,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE;gBACH,OAAO,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;gBAC/C,IAAI,EAAE,cAAO,KAAK,OAAI;gBACtB,SAAS,EAAE,KAAK;gBAChB,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,CAAC,CAAC,CAAC,SAAS;gBAC1D,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,CAAC,CAAC,CAAC,SAAS;aAC/D,IAEA,KAAK,CACJ,CACT,CAAC;IACN,CAAC,CAAC,CACA,CACT,CAAC;AACN,CAAC,CAAC,CAAC"}
@@ -1,21 +1,16 @@
1
1
  /// <reference types="react" />
2
- import type { VirtualItem } from "react-virtual";
3
- import type { ColumnFixedPosition, VirtualTableColumn, VirtualTableRowExpand, StickyPosition } from "./type";
2
+ import type { VirtualItem } from "@tanstack/react-virtual";
3
+ import type { VirtualTableColumn, StickyPosition } from "./type";
4
4
  interface Props<RowType extends object> {
5
5
  data: RowType;
6
6
  columns: VirtualTableColumn<RowType>[];
7
- virtualItem: VirtualItem;
7
+ virtualItem: VirtualItem<HTMLDivElement>;
8
8
  columnWidths: number[];
9
9
  rowHeight: number;
10
- lastShownColumnIndex: number;
11
10
  scrollBarSize: number;
12
- stickyPosition: Record<number, StickyPosition>;
13
- getFixedColumnClassNames: (fixed: ColumnFixedPosition | undefined, columnIndex: number) => (string | undefined)[];
11
+ stickyPositionMap: Record<number, StickyPosition>;
14
12
  rowClassName?: string;
15
13
  onRowClick?: (record: RowType, rowIndex: number) => void;
16
- rowExpand?: VirtualTableRowExpand<RowType>;
17
14
  }
18
- export declare const TableRow: (<RowType extends object>({ virtualItem, getFixedColumnClassNames, data, columns, columnWidths, rowHeight, scrollBarSize, stickyPosition, lastShownColumnIndex, rowClassName, onRowClick, rowExpand, }: Props<RowType>) => JSX.Element) & {
19
- displayName: string;
20
- };
15
+ export declare const TableRow: <RowType extends object>({ virtualItem, data, columns, columnWidths, rowHeight, scrollBarSize, stickyPositionMap, rowClassName, onRowClick }: Props<RowType>) => JSX.Element;
21
16
  export {};
@@ -24,36 +24,27 @@ 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 { ReactUtil } from "../../util/ReactUtil";
27
28
  import { classNames } from "../../util/ClassNames";
28
- export var TableRow = Object.assign(function (_a) {
29
- var virtualItem = _a.virtualItem, getFixedColumnClassNames = _a.getFixedColumnClassNames, data = _a.data, columns = _a.columns, columnWidths = _a.columnWidths, rowHeight = _a.rowHeight, scrollBarSize = _a.scrollBarSize, stickyPosition = _a.stickyPosition, lastShownColumnIndex = _a.lastShownColumnIndex, rowClassName = _a.rowClassName, onRowClick = _a.onRowClick, rowExpand = _a.rowExpand;
30
- var rowRef = React.useRef(null);
31
- var _b = __read(React.useState((rowExpand === null || rowExpand === void 0 ? void 0 : rowExpand.isDefaultExpanded) || false), 2), isExpanded = _b[0], setIsExpanded = _b[1];
29
+ export var TableRow = ReactUtil.memo("TableRow", function (_a) {
30
+ var virtualItem = _a.virtualItem, data = _a.data, columns = _a.columns, columnWidths = _a.columnWidths, rowHeight = _a.rowHeight, scrollBarSize = _a.scrollBarSize, stickyPositionMap = _a.stickyPositionMap, rowClassName = _a.rowClassName, onRowClick = _a.onRowClick;
32
31
  var rowIndex = virtualItem.index;
33
- var toggleExpendRow = React.useCallback(function () { return setIsExpanded(!isExpanded); }, [isExpanded]);
34
- React.useEffect(function () {
35
- if (rowRef.current) {
36
- virtualItem.measureRef(rowRef.current);
37
- }
38
- }, [isExpanded, virtualItem]);
39
- return (React.createElement("div", { ref: rowRef, key: rowIndex, className: classNames("table-row", rowClassName, rowIndex % 2 ? "odd" : "even"), style: { transform: "translateY(".concat(virtualItem.start, "px)") }, onClick: function () { return onRowClick === null || onRowClick === void 0 ? void 0 : onRowClick(data, rowIndex); } },
40
- columns.map(function (column, columnIndex) {
41
- var _a;
42
- var colSpan = column.colSpan ? column.colSpan(data, rowIndex, columnIndex) : 1;
43
- // handle colspan > 1
44
- var cellWidth = colSpan > 1 ? columnWidths.slice(columnIndex, columnIndex + colSpan).reduce(function (acc, curr) { return acc + curr; }, 0) : columnWidths[columnIndex] || column.width;
45
- var renderData = column.display !== "hidden" && (rowExpand && columnIndex === columns.length - 1 ? React.createElement(rowExpand.ExpandButton, { onClick: toggleExpendRow }) : column.renderData(data, rowIndex));
46
- // minus the scroll bar size of the last column & minus the scroll bar size in the right sticky value of the right fixed columns
47
- var isLastShownColumn = lastShownColumnIndex === columnIndex;
48
- var stickyPositionValue = ((_a = stickyPosition[columnIndex]) === null || _a === void 0 ? void 0 : _a.value) || 0;
49
- return (renderData && (React.createElement("div", { className: classNames.apply(void 0, __spreadArray(["table-cell"], __read(getFixedColumnClassNames(column.fixed, columnIndex)), false)), key: columnIndex, style: {
50
- height: rowHeight,
51
- width: cellWidth - (isLastShownColumn ? scrollBarSize : 0),
52
- textAlign: column.align,
53
- left: column.fixed === "left" ? stickyPositionValue : undefined,
54
- right: column.fixed === "right" ? stickyPositionValue - (isLastShownColumn ? 0 : scrollBarSize) : undefined,
55
- } }, renderData)));
56
- }),
57
- rowExpand && React.createElement("div", { className: classNames("expand-row", { expanded: isExpanded }) }, rowExpand.renderExpandRow(data, rowIndex))));
58
- }, { displayName: "TableRow" });
32
+ var lastShownColumnIndex = React.useMemo(function () { return columns.length - 1 - __spreadArray([], __read(columns), false).reverse().findIndex(function (_) { return _.display !== "hidden"; }); }, [columns]);
33
+ return (React.createElement("div", { key: rowIndex, className: classNames("table-row", rowClassName, rowIndex % 2 ? "odd" : "even"), style: { transform: "translateY(".concat(virtualItem.start, "px)") }, onClick: function () { return onRowClick === null || onRowClick === void 0 ? void 0 : onRowClick(data, rowIndex); } }, columns.map(function (column, columnIndex) {
34
+ var colSpan = column.colSpan ? column.colSpan(data, rowIndex, columnIndex) : 1;
35
+ // handle colspan > 1
36
+ var cellWidth = colSpan > 1 ? columnWidths.slice(columnIndex, columnIndex + colSpan).reduce(function (acc, curr) { return acc + curr; }, 0) : columnWidths[columnIndex] || column.width;
37
+ var renderData = column.display !== "hidden" && column.renderData(data, rowIndex);
38
+ // minus the scroll bar size of the last column & minus the scroll bar size in the right sticky value of the right fixed columns
39
+ var isLastShownColumn = lastShownColumnIndex === columnIndex;
40
+ var stickyPosition = stickyPositionMap[columnIndex];
41
+ return (renderData && (React.createElement("div", { className: classNames("table-cell", { fixed: column.fixed, left: column.fixed === "left", right: column.fixed === "right", last: stickyPosition === null || stickyPosition === void 0 ? void 0 : stickyPosition.isLast }), key: columnIndex, style: {
42
+ height: rowHeight,
43
+ width: cellWidth - (isLastShownColumn ? scrollBarSize : 0),
44
+ textAlign: column.align,
45
+ left: column.fixed === "left" ? stickyPosition === null || stickyPosition === void 0 ? void 0 : stickyPosition.value : undefined,
46
+ right: column.fixed === "right" ? (stickyPosition === null || stickyPosition === void 0 ? void 0 : stickyPosition.value) - (isLastShownColumn ? 0 : scrollBarSize) : undefined,
47
+ } }, renderData)));
48
+ })));
49
+ });
59
50
  //# sourceMappingURL=TableRow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableRow.js","sourceRoot":"","sources":["../../../src/core/VirtualTable/TableRow.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TableRow.js","sourceRoot":"","sources":["../../../src/core/VirtualTable/TableRow.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import React from "react";
2
+ import type { VirtualTableColumn, StickyPosition } from "../type";
3
+ interface Props<RowType extends object> {
4
+ columns: VirtualTableColumn<RowType>[];
5
+ scrollContentRef: React.RefObject<HTMLDivElement>;
6
+ isScrollable: boolean;
7
+ }
8
+ export declare function useColumns<RowType extends object>({ columns, scrollContentRef, isScrollable }: Props<RowType>): {
9
+ columnWidths: number[];
10
+ getColumnWidths: () => void;
11
+ stickyPositionMap: Record<number, StickyPosition>;
12
+ scrollBarSize: number;
13
+ headerRef: React.MutableRefObject<HTMLDivElement | null>;
14
+ };
15
+ /**
16
+ *
17
+ * If the Virtual Table is render inside a container with open animation e.g. <Modal />,
18
+ * the colWidths may be calculated during the transition and get the wrong width with useState & useEffect
19
+ * useLayoutEffect will be trigged in the transition process and get the final correct column widths
20
+ *
21
+ */
22
+ export declare const useColumnWidths: () => {
23
+ columnWidths: number[];
24
+ getColumnWidths: () => void;
25
+ headerRef: React.MutableRefObject<HTMLDivElement | null>;
26
+ };
27
+ export declare const useStickyPosition: <RowType extends object>(columns: VirtualTableColumn<RowType>[], columnWidths: number[]) => Record<number, StickyPosition>;
28
+ export declare const useScrollBar: (scrollContentRef: React.RefObject<HTMLDivElement>) => {
29
+ scrollBarSize: number;
30
+ calculateScrollBarSize: () => void;
31
+ };
32
+ export {};
@@ -0,0 +1,112 @@
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
+ import React from "react";
18
+ import { useDebounce } from "../../../hooks/useDebounce";
19
+ import { ArrayUtil } from "../../../internal/ArrayUtil";
20
+ export function useColumns(_a) {
21
+ var columns = _a.columns, scrollContentRef = _a.scrollContentRef, isScrollable = _a.isScrollable;
22
+ var _b = useColumnWidths(), columnWidths = _b.columnWidths, headerRef = _b.headerRef, getColumnWidths = _b.getColumnWidths;
23
+ var stickyPositionMap = useStickyPosition(columns, columnWidths);
24
+ var _c = useScrollBar(scrollContentRef), scrollBarSize = _c.scrollBarSize, calculateScrollBarSize = _c.calculateScrollBarSize;
25
+ var debouncedGetColumnWidths = useDebounce(getColumnWidths);
26
+ var debouncedCalculateScrollBarSize = useDebounce(calculateScrollBarSize);
27
+ var handler = React.useCallback(function (event) {
28
+ if (event.currentTarget && "querySelector" in event.currentTarget && headerRef.current) {
29
+ var element = event.currentTarget;
30
+ var result = element.querySelector(".g-virtual-table");
31
+ if (result) {
32
+ debouncedGetColumnWidths();
33
+ debouncedCalculateScrollBarSize();
34
+ }
35
+ }
36
+ }, [headerRef, debouncedGetColumnWidths, debouncedCalculateScrollBarSize]);
37
+ React.useEffect(function () {
38
+ document.body.addEventListener("transitionend", handler);
39
+ document.body.addEventListener("animationend", handler);
40
+ return function () {
41
+ document.body.removeEventListener("transitionend", handler);
42
+ document.body.removeEventListener("animationend", handler);
43
+ };
44
+ }, [handler]);
45
+ React.useEffect(function () {
46
+ calculateScrollBarSize();
47
+ }, [isScrollable, columnWidths, calculateScrollBarSize]);
48
+ return {
49
+ columnWidths: columnWidths,
50
+ getColumnWidths: getColumnWidths,
51
+ stickyPositionMap: stickyPositionMap,
52
+ scrollBarSize: scrollBarSize,
53
+ headerRef: headerRef,
54
+ };
55
+ }
56
+ /**
57
+ *
58
+ * If the Virtual Table is render inside a container with open animation e.g. <Modal />,
59
+ * the colWidths may be calculated during the transition and get the wrong width with useState & useEffect
60
+ * useLayoutEffect will be trigged in the transition process and get the final correct column widths
61
+ *
62
+ */
63
+ export var useColumnWidths = function () {
64
+ var headerRef = React.useRef(null);
65
+ var _a = __read(React.useState([]), 2), columnWidths = _a[0], setColumnWidths = _a[1];
66
+ var getColumnWidths = React.useCallback(function () {
67
+ if (!headerRef.current)
68
+ return;
69
+ var headers = headerRef.current.querySelectorAll(".table-header");
70
+ var widths = Array.prototype.slice.call(headers).map(function (header) {
71
+ var width = header.getBoundingClientRect().width;
72
+ return width;
73
+ });
74
+ setColumnWidths(widths);
75
+ }, [headerRef]);
76
+ return { columnWidths: columnWidths, getColumnWidths: getColumnWidths, headerRef: headerRef };
77
+ };
78
+ export var useStickyPosition = function (columns, columnWidths) {
79
+ return React.useMemo(function () {
80
+ var stickyPositionMap = {};
81
+ var left = [];
82
+ var right = [];
83
+ var leftFixedCols = ArrayUtil.compactMap(columns, function (_, columnIndex) { return (_.fixed === "left" ? { columnIndex: columnIndex, width: columnWidths[columnIndex] || 0 } : null); });
84
+ // the right sticky value stack in reverse direction
85
+ var rightFixedCols = ArrayUtil.compactMap(columns, function (_, columnIndex) { return (_.fixed === "right" ? { columnIndex: columnIndex, width: columnWidths[columnIndex] || 0 } : null); }).reverse();
86
+ leftFixedCols.forEach(function (column, idx) {
87
+ var stackedPositionValue = left.reduce(function (acc, prev) { return acc + prev; }, 0);
88
+ left.push(column.width);
89
+ stickyPositionMap[column.columnIndex] = { value: stackedPositionValue, isLast: idx === leftFixedCols.length - 1 };
90
+ });
91
+ rightFixedCols.forEach(function (column, idx) {
92
+ var stackedPositionValue = right.reduce(function (acc, prev) { return acc + prev; }, 0);
93
+ right.unshift(column.width);
94
+ stickyPositionMap[column.columnIndex] = { value: stackedPositionValue, isLast: idx === rightFixedCols.length - 1 };
95
+ });
96
+ return stickyPositionMap;
97
+ }, [columnWidths, columns]);
98
+ };
99
+ export var useScrollBar = function (scrollContentRef) {
100
+ var _a = __read(React.useState(0), 2), scrollBarSize = _a[0], setScrollBarSize = _a[1];
101
+ var calculateScrollBarSize = React.useCallback(function () {
102
+ if (scrollContentRef.current) {
103
+ var _a = scrollContentRef.current, clientWidth = _a.clientWidth, offsetWidth = _a.offsetWidth;
104
+ setScrollBarSize(offsetWidth - clientWidth);
105
+ }
106
+ }, [scrollContentRef, setScrollBarSize]);
107
+ return {
108
+ scrollBarSize: scrollBarSize,
109
+ calculateScrollBarSize: calculateScrollBarSize,
110
+ };
111
+ };
112
+ //# sourceMappingURL=useColumns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useColumns.js","sourceRoot":"","sources":["../../../../src/core/VirtualTable/hooks/useColumns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+ interface Props {
3
+ scrollContentRef: React.RefObject<HTMLDivElement>;
4
+ headerRef: React.RefObject<HTMLDivElement>;
5
+ }
6
+ export declare const useScroll: ({ scrollContentRef, headerRef }: Props) => {
7
+ onScroll: () => void;
8
+ isScrollToLeft: boolean;
9
+ isScrollToRight: boolean;
10
+ tableBodyRef: (node: HTMLDivElement) => void;
11
+ };
12
+ export declare const useScrollToEdge: (scrollContentRef: React.RefObject<HTMLDivElement>) => {
13
+ isScrollToLeft: boolean;
14
+ isScrollToRight: boolean;
15
+ checkIsScrollToEdge: () => void;
16
+ };
17
+ export {};
@@ -0,0 +1,57 @@
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
+ import React from "react";
18
+ export var useScroll = function (_a) {
19
+ var scrollContentRef = _a.scrollContentRef, headerRef = _a.headerRef;
20
+ var tableBodyRef = function (node) {
21
+ if (node) {
22
+ checkIsScrollToEdge();
23
+ }
24
+ };
25
+ var _b = useScrollToEdge(scrollContentRef), isScrollToLeft = _b.isScrollToLeft, isScrollToRight = _b.isScrollToRight, checkIsScrollToEdge = _b.checkIsScrollToEdge;
26
+ var onScroll = React.useCallback(function () {
27
+ requestAnimationFrame(function () {
28
+ if (scrollContentRef.current && headerRef.current && scrollContentRef.current.scrollLeft !== headerRef.current.scrollLeft) {
29
+ headerRef.current.scrollLeft = scrollContentRef.current.scrollLeft;
30
+ checkIsScrollToEdge();
31
+ }
32
+ });
33
+ }, [scrollContentRef, headerRef, checkIsScrollToEdge]);
34
+ return {
35
+ onScroll: onScroll,
36
+ isScrollToLeft: isScrollToLeft,
37
+ isScrollToRight: isScrollToRight,
38
+ tableBodyRef: tableBodyRef,
39
+ };
40
+ };
41
+ export var useScrollToEdge = function (scrollContentRef) {
42
+ var _a = __read(React.useState(false), 2), isScrollToLeft = _a[0], setIsScrollToLeft = _a[1];
43
+ var _b = __read(React.useState(false), 2), isScrollToRight = _b[0], setIsScrollToRight = _b[1];
44
+ var checkIsScrollToEdge = React.useCallback(function () {
45
+ if (scrollContentRef.current) {
46
+ var _a = scrollContentRef.current, scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, offsetWidth = _a.offsetWidth;
47
+ setIsScrollToLeft(scrollLeft <= 1);
48
+ setIsScrollToRight(scrollLeft >= scrollWidth - offsetWidth);
49
+ }
50
+ }, [scrollContentRef]);
51
+ return {
52
+ isScrollToLeft: isScrollToLeft,
53
+ isScrollToRight: isScrollToRight,
54
+ checkIsScrollToEdge: checkIsScrollToEdge,
55
+ };
56
+ };
57
+ //# sourceMappingURL=useScroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useScroll.js","sourceRoot":"","sources":["../../../../src/core/VirtualTable/hooks/useScroll.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,CAAC,IAAM,SAAS,GAAG,UAAC,EAAoC;QAAnC,gBAAgB,sBAAA,EAAE,SAAS,eAAA;IAClD,IAAM,YAAY,GAAG,UAAC,IAAoB;QACtC,IAAI,IAAI,EAAE;YACN,mBAAmB,EAAE,CAAC;SACzB;IACL,CAAC,CAAC;IACI,IAAA,KAAyD,eAAe,CAAC,gBAAgB,CAAC,EAAzF,cAAc,oBAAA,EAAE,eAAe,qBAAA,EAAE,mBAAmB,yBAAqC,CAAC;IACjG,IAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC;QAC/B,qBAAqB,CAAC;YAClB,IAAI,gBAAgB,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE;gBACvH,SAAS,CAAC,OAAO,CAAC,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC;gBACnE,mBAAmB,EAAE,CAAC;aACzB;QACL,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,gBAAgB,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEvD,OAAO;QACH,QAAQ,UAAA;QACR,cAAc,gBAAA;QACd,eAAe,iBAAA;QACf,YAAY,cAAA;KACf,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,eAAe,GAAG,UAAC,gBAAiD;IACvE,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;IAEpE,IAAM,mBAAmB,GAAG,KAAK,CAAC,WAAW,CAAC;QAC1C,IAAI,gBAAgB,CAAC,OAAO,EAAE;YACpB,IAAA,KAAyC,gBAAgB,CAAC,OAAO,EAAhE,UAAU,gBAAA,EAAE,WAAW,iBAAA,EAAE,WAAW,iBAA4B,CAAC;YACxE,iBAAiB,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;YACnC,kBAAkB,CAAC,UAAU,IAAI,WAAW,GAAG,WAAW,CAAC,CAAC;SAC/D;IACL,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,OAAO;QACH,cAAc,gBAAA;QACd,eAAe,iBAAA;QACf,mBAAmB,qBAAA;KACtB,CAAC;AACN,CAAC,CAAC"}
@@ -1,30 +1,28 @@
1
1
  /// <reference types="react" />
2
2
  import type { SafeReactChild, StringKey } from "../../internal/type";
3
- import type { VirtualTableColumn, VirtualTableRowExpand, VirtualTableRowSelection } from "./type";
3
+ import type { VirtualTableColumn, 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
- scrollY: number;
9
8
  rowHeight: number;
10
9
  className?: string;
11
10
  rowClassName?: string;
12
11
  /**
13
- * if scrollX is not provided, width: 100% will be used
14
- * if width: 100% is used, please wrap the table with a container
12
+ * if scrollX and scrollY is not provided, height: 100% and width: 100% will be used and please wrap the table with a container
15
13
  */
14
+ scrollY?: number;
16
15
  scrollX?: number;
17
16
  loading?: boolean;
18
17
  emptyPlaceholder?: SafeReactChild;
19
- rowSelection?: VirtualTableRowSelection<RowType>;
20
18
  onRowClick?: (record: RowType, rowIndex: number) => void;
21
19
  /**
22
20
  * Default: index
23
21
  */
24
22
  rowKey?: StringKey<RowType> | "index";
25
23
  headerHeight?: number;
26
- rowExpand?: VirtualTableRowExpand<RowType>;
24
+ rowSelection?: VirtualTableRowSelection<RowType>;
27
25
  }
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) & {
26
+ export declare const VirtualTable: (<RowType extends object>({ columns, rowHeight, dataSource, className, rowClassName, loading, emptyPlaceholder, onRowClick, scrollY, scrollX, rowSelection, headerHeight, rowKey, }: VirtualTableProps<RowType>) => JSX.Element) & {
29
27
  displayName: string;
30
28
  };