@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
@@ -1,87 +1,53 @@
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";
27
- import { useVirtual } from "react-virtual";
2
+ import { useVirtualizer, observeElementRect } from "@tanstack/react-virtual";
28
3
  import { classNames } from "../../util/ClassNames";
29
4
  import { Spin } from "../Spin";
30
- import { useLayout } from "./hooks/useLayout";
31
- import { useTransformColumn } from "./hooks/useTransformColumn";
32
5
  import { TableRow } from "./TableRow";
33
6
  import { TableHeader } from "./TableHeader";
7
+ import { useRowSelection } from "./hooks/useRowSelection";
8
+ import { useColumns } from "./hooks/useColumns";
9
+ import { useScroll } from "./hooks/useScroll";
34
10
  import "./index.less";
35
- var HORIZONTAL_SCROLL_BAR_HEIGHT = 20;
11
+ var HORIZONTAL_SCROLL_BAR_HEIGHT = 15;
36
12
  export var VirtualTable = Object.assign(function (_a) {
37
- 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;
38
- var size = dataSource.length;
13
+ var columns = _a.columns, rowHeight = _a.rowHeight, dataSource = _a.dataSource, className = _a.className, rowClassName = _a.rowClassName, loading = _a.loading, emptyPlaceholder = _a.emptyPlaceholder, onRowClick = _a.onRowClick, scrollY = _a.scrollY, scrollX = _a.scrollX, rowSelection = _a.rowSelection, _b = _a.headerHeight, headerHeight = _b === void 0 ? 50 : _b, _c = _a.rowKey, rowKey = _c === void 0 ? "index" : _c;
14
+ var count = dataSource.length;
39
15
  var scrollContentRef = React.useRef(null);
40
- var headersRef = React.useRef(null);
41
- var estimateSize = React.useCallback(function () { return rowHeight; }, [rowHeight]);
42
- var overscan = rowExpand ? Math.floor(scrollY / rowHeight) : 1;
43
- var _d = useVirtual({
44
- size: size,
45
- parentRef: scrollContentRef,
46
- estimateSize: estimateSize,
47
- overscan: overscan,
48
- }), virtualItems = _d.virtualItems, totalSize = _d.totalSize;
49
- var transformedColumns = useTransformColumn({ columns: columns, dataSource: dataSource, rowSelection: rowSelection, rowKey: rowKey, rowExpand: rowExpand });
50
- var isScrollable = totalSize > scrollY;
51
- 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;
52
- var isHorizontalScrollable = React.useMemo(function () { return (scrollContentRef.current ? columnWidths.reduce(function (acc, curr) { return acc + curr; }, 0) > scrollContentRef.current.offsetWidth : false); }, [columnWidths]);
53
- var tableHeight = scrollY + headerHeight + (isHorizontalScrollable ? HORIZONTAL_SCROLL_BAR_HEIGHT : 0);
54
- var tableBodyHeight = scrollY + (isHorizontalScrollable ? HORIZONTAL_SCROLL_BAR_HEIGHT : 0);
16
+ var totalSize = count * rowHeight;
17
+ var isVerticalScrollable = scrollContentRef.current ? totalSize > scrollContentRef.current.clientHeight : false;
18
+ var isHorizontalScrollable = scrollContentRef.current ? scrollContentRef.current.scrollWidth > scrollContentRef.current.offsetWidth : false;
19
+ var containerHeight = scrollY ? scrollY + headerHeight + (isHorizontalScrollable ? HORIZONTAL_SCROLL_BAR_HEIGHT : 0) : "100%";
55
20
  var emptyElement = emptyPlaceholder || "暂无数据";
56
- var lastShownColumnIndex = React.useMemo(function () { return transformedColumns.length - 1 - __spreadArray([], __read(transformedColumns), false).reverse().findIndex(function (_) { return _.display !== "hidden"; }); }, [transformedColumns]);
57
- // handle the edge position & shadow of the fixed columns
58
- var getFixedColumnClassNames = React.useCallback(function (fixed, columnIndex) {
59
- var _a;
60
- var isFixedClassName = fixed ? "fixed" : "";
61
- var isLastFixedClassName = fixed && ((_a = stickyPosition[columnIndex]) === null || _a === void 0 ? void 0 : _a.isLast) ? "last" : "";
62
- var fixedPositionClassName = fixed;
63
- var hideShadowClassName = (fixed === "left" && isScrollToLeft) || (fixed === "right" && isScrollToRight) ? "hide-shadow" : "";
64
- return [isFixedClassName, isLastFixedClassName, fixedPositionClassName, hideShadowClassName];
65
- }, [isScrollToLeft, isScrollToRight, stickyPosition]);
66
- var onScroll = React.useCallback(function () {
67
- requestAnimationFrame(function () {
68
- // only trigger in horizontal direction
69
- if (!scrollContentRef.current || !headersRef.current || scrollContentRef.current.scrollLeft === headersRef.current.scrollLeft)
70
- return;
71
- isScrollToEdge();
72
- // sync scrolling in header
73
- headersRef.current.scrollLeft = scrollContentRef.current.scrollLeft;
74
- });
75
- }, [isScrollToEdge]);
76
- return (React.createElement("div", { className: classNames("g-virtual-table", className), style: { width: scrollX || "100%", height: tableHeight } },
21
+ var transformedColumns = useRowSelection({ columns: columns, dataSource: dataSource, rowKey: rowKey, rowSelection: rowSelection });
22
+ var rowVirtualizer = useVirtualizer({
23
+ count: count,
24
+ getScrollElement: function () { return scrollContentRef.current; },
25
+ estimateSize: function () { return rowHeight; },
26
+ observeElementRect: function (instance, cb) {
27
+ observeElementRect(instance, cb);
28
+ getColumnWidths();
29
+ },
30
+ });
31
+ var _d = useColumns({ columns: transformedColumns, scrollContentRef: scrollContentRef, isScrollable: isVerticalScrollable }), headerRef = _d.headerRef, columnWidths = _d.columnWidths, getColumnWidths = _d.getColumnWidths, stickyPositionMap = _d.stickyPositionMap, scrollBarSize = _d.scrollBarSize;
32
+ var _e = useScroll({ scrollContentRef: scrollContentRef, headerRef: headerRef }), isScrollToLeft = _e.isScrollToLeft, isScrollToRight = _e.isScrollToRight, onScroll = _e.onScroll, tableBodyRef = _e.tableBodyRef;
33
+ // TODO/David: This is temporary fix of issue: https://github.com/TanStack/virtual/issues/363, please remove the code after update
34
+ var virtualizerRef = React.useRef(rowVirtualizer);
35
+ virtualizerRef.current = rowVirtualizer;
36
+ React.useLayoutEffect(function () {
37
+ var v = virtualizerRef.current;
38
+ v._didMount()();
39
+ v._willUpdate();
40
+ }, [dataSource.length]);
41
+ return (React.createElement("div", { className: classNames("g-virtual-table", className), style: { width: scrollX || "100%", height: containerHeight } },
77
42
  loading && (React.createElement("div", { className: "mask" },
78
43
  React.createElement(Spin, { spinning: loading }))),
79
- React.createElement("div", { className: "scroll-content", ref: scrollContentRef, style: { height: tableBodyHeight, top: headerHeight }, onScroll: onScroll },
44
+ React.createElement("div", { className: classNames("scroll-content", { "scroll-to-left": isScrollToLeft, "scroll-to-right": isScrollToRight }), ref: scrollContentRef, style: { height: "calc(100% - ".concat(headerHeight, "px)"), top: headerHeight }, onScroll: onScroll },
80
45
  React.createElement("div", { className: "table", style: { height: totalSize } },
81
- React.createElement(TableHeader, { headersRef: headersRef, headerHeight: headerHeight, columns: transformedColumns, stickyPosition: stickyPosition, getFixedColumnClassNames: getFixedColumnClassNames }),
82
- React.createElement("div", { className: "table-body" }, dataSource.length === 0
46
+ React.createElement(TableHeader, { headerRef: headerRef, headerHeight: headerHeight, columns: transformedColumns, stickyPositionMap: stickyPositionMap }),
47
+ columnWidths.length > 0 && (React.createElement("div", { className: "table-body", ref: tableBodyRef }, dataSource.length === 0
83
48
  ? emptyElement
84
- : columnWidths.length > 0 &&
85
- 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 })); }))))));
49
+ : rowVirtualizer
50
+ .getVirtualItems()
51
+ .map(function (virtualItem) { return (React.createElement(TableRow, { key: virtualItem.key, rowHeight: rowHeight, onRowClick: onRowClick, virtualItem: virtualItem, data: dataSource[virtualItem.index], columns: transformedColumns, columnWidths: columnWidths, scrollBarSize: scrollBarSize, stickyPositionMap: stickyPositionMap, rowClassName: rowClassName })); })))))));
86
52
  }, { displayName: "VirtualTable" });
87
53
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/VirtualTable/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/VirtualTable/index.tsx"],"names":[],"mappings":"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"}
@@ -44,6 +44,24 @@
44
44
  overflow: auto;
45
45
  scrollbar-width: thin;
46
46
 
47
+ &.scroll-to-left {
48
+ .table-header.fixed,
49
+ .table-cell.fixed {
50
+ &.last.left::after {
51
+ box-shadow: none !important;
52
+ }
53
+ }
54
+ }
55
+
56
+ &.scroll-to-right {
57
+ .table-header.fixed,
58
+ .table-cell.fixed {
59
+ &.last.right::after {
60
+ box-shadow: none !important;
61
+ }
62
+ }
63
+ }
64
+
47
65
  .table {
48
66
  min-height: 100%;
49
67
 
@@ -92,10 +110,6 @@
92
110
  .fixed-column-shadow("right");
93
111
  }
94
112
  }
95
-
96
- &.hide-shadow::after {
97
- box-shadow: none;
98
- }
99
113
  }
100
114
  }
101
115
  }
@@ -138,23 +152,9 @@
138
152
  .fixed-column-shadow("right");
139
153
  }
140
154
  }
141
-
142
- &.hide-shadow::after {
143
- box-shadow: none;
144
- }
145
155
  }
146
156
  }
147
157
  }
148
-
149
- .expand-row {
150
- display: block;
151
- width: 100%;
152
- max-height: 0;
153
-
154
- &.expanded {
155
- max-height: 400px;
156
- }
157
- }
158
158
  }
159
159
  }
160
160
  }
@@ -24,19 +24,6 @@ export declare type VirtualTableRowSelection<RowType extends object> = {
24
24
  */
25
25
  title?: SafeReactChild;
26
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
- };
40
27
  export declare type VirtualTableColumn<RowType extends object> = {
41
28
  title: SafeReactChild;
42
29
  width: number;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebounce.js","sourceRoot":"","sources":["../../src/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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pinnacle0/web-ui",
3
- "version": "0.3.69",
3
+ "version": "0.3.71",
4
4
  "author": "Pinnacle",
5
5
  "license": "MIT",
6
6
  "sideEffects": [
@@ -17,6 +17,8 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "@ant-design/icons": "4.7.0",
20
+ "@juggle/resize-observer": "3.4.0",
21
+ "@tanstack/react-virtual": "3.0.0-beta.18",
20
22
  "antd": "4.23.6",
21
23
  "classnames": "2.3.2",
22
24
  "moment": "2.29.4",
@@ -1,11 +0,0 @@
1
- import React from "react";
2
- /**
3
- *
4
- * If the Virtual Table is render inside a container with open animation e.g. <Modal />,
5
- * the colWidths may be calculated during the transition and get the wrong width with useState & useEffect
6
- * useLayoutEffect will be trigged in the transition process and get the final correct column widths
7
- */
8
- export declare const useColumnWidths: (headersRef: React.RefObject<HTMLDivElement>) => {
9
- columnWidths: number[];
10
- calculateColWidths: () => void;
11
- };
@@ -1,38 +0,0 @@
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
- /**
19
- *
20
- * If the Virtual Table is render inside a container with open animation e.g. <Modal />,
21
- * the colWidths may be calculated during the transition and get the wrong width with useState & useEffect
22
- * useLayoutEffect will be trigged in the transition process and get the final correct column widths
23
- */
24
- export var useColumnWidths = function (headersRef) {
25
- var _a = __read(React.useState([]), 2), colWidths = _a[0], setColWidths = _a[1];
26
- var calculateColWidths = React.useCallback(function () {
27
- if (!headersRef.current)
28
- return;
29
- var headers = headersRef.current.querySelectorAll(".table-header");
30
- var widths = Array.prototype.slice.call(headers).map(function (header) {
31
- var width = header.getBoundingClientRect().width;
32
- return width;
33
- });
34
- setColWidths(widths);
35
- }, [headersRef]);
36
- return { columnWidths: colWidths, calculateColWidths: calculateColWidths };
37
- };
38
- //# sourceMappingURL=useColumnWidths.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useColumnWidths.js","sourceRoot":"","sources":["../../../../src/core/VirtualTable/hooks/useColumnWidths.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;GAKG;AAEH,MAAM,CAAC,IAAM,eAAe,GAAG,UAAC,UAA2C;IACjE,IAAA,KAAA,OAA4B,KAAK,CAAC,QAAQ,CAAW,EAAE,CAAC,IAAA,EAAvD,SAAS,QAAA,EAAE,YAAY,QAAgC,CAAC;IAE/D,IAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,OAAO;YAAE,OAAO;QAChC,IAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QACrE,IAAM,MAAM,GAAa,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAA,MAAM;YAC5D,IAAA,KAAK,GAAI,MAAM,CAAC,qBAAqB,EAAE,MAAlC,CAAmC;YAC/C,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,YAAY,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,OAAO,EAAC,YAAY,EAAE,SAAS,EAAE,kBAAkB,oBAAA,EAAC,CAAC;AACzD,CAAC,CAAC"}
@@ -1 +0,0 @@
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"}
@@ -1,17 +0,0 @@
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 {};
@@ -1,44 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,7 +0,0 @@
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 {};
@@ -1,20 +0,0 @@
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
@@ -1 +0,0 @@
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 +0,0 @@
1
- import React from "react";
2
- export declare const useScrollBarSize: (scrollContentRef: React.RefObject<HTMLDivElement>, isScrollable: boolean) => {
3
- calculateScrollBarSize: () => void;
4
- scrollBarSize: number;
5
- };
@@ -1,36 +0,0 @@
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 useScrollBarSize = function (scrollContentRef, isScrollable) {
19
- var _a = __read(React.useState(0), 2), scrollBarSize = _a[0], setScrollBarSize = _a[1];
20
- var calculateScrollBarSize = React.useCallback(function () {
21
- if (scrollContentRef.current) {
22
- var _a = scrollContentRef.current, clientWidth = _a.clientWidth, offsetWidth = _a.offsetWidth;
23
- setScrollBarSize(offsetWidth - clientWidth);
24
- }
25
- }, [scrollContentRef, setScrollBarSize]);
26
- React.useEffect(function () {
27
- if (isScrollable && !scrollBarSize) {
28
- calculateScrollBarSize();
29
- }
30
- }, [calculateScrollBarSize, isScrollable, scrollBarSize]);
31
- return {
32
- calculateScrollBarSize: calculateScrollBarSize,
33
- scrollBarSize: scrollBarSize,
34
- };
35
- };
36
- //# sourceMappingURL=useScrollBarSize.js.map
@@ -1 +0,0 @@
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"}
@@ -1,8 +0,0 @@
1
- import React from "react";
2
- export declare const useScrollToEdge: (scrollContentRef: React.RefObject<HTMLElement>) => {
3
- isScrollToEdge: () => void;
4
- isScrollToLeft: boolean;
5
- isScrollToRight: boolean;
6
- isScrollToTop: boolean;
7
- isScrollToBottom: boolean;
8
- };
@@ -1,48 +0,0 @@
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, { useEffect } from "react";
18
- export var useScrollToEdge = function (scrollContentRef) {
19
- var _a = __read(React.useState(false), 2), isScrollToLeft = _a[0], setIsScrollToLeft = _a[1];
20
- var _b = __read(React.useState(false), 2), isScrollToRight = _b[0], setIsScrollToRight = _b[1];
21
- var _c = __read(React.useState(false), 2), isScrollToTop = _c[0], setIsScrollToTop = _c[1];
22
- var _d = __read(React.useState(false), 2), isScrollToBottom = _d[0], setIsScrollToBottom = _d[1];
23
- var isScrollToEdge = React.useCallback(function () {
24
- if (scrollContentRef.current) {
25
- var _a = scrollContentRef.current, scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth, scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;
26
- var isScrollLeft = scrollLeft <= 1;
27
- var isScrollRight = scrollLeft >= scrollWidth - clientWidth;
28
- var isScrollTop = scrollTop <= 1;
29
- var isScrollBottom = scrollTop >= scrollHeight - clientHeight;
30
- setIsScrollToLeft(isScrollLeft);
31
- setIsScrollToRight(isScrollRight);
32
- setIsScrollToTop(isScrollTop);
33
- setIsScrollToBottom(isScrollBottom);
34
- }
35
- }, [scrollContentRef]);
36
- // initialize
37
- useEffect(function () {
38
- isScrollToEdge();
39
- }, [isScrollToEdge]);
40
- return {
41
- isScrollToEdge: isScrollToEdge,
42
- isScrollToLeft: isScrollToLeft,
43
- isScrollToRight: isScrollToRight,
44
- isScrollToTop: isScrollToTop,
45
- isScrollToBottom: isScrollToBottom,
46
- };
47
- };
48
- //# sourceMappingURL=useScrollToEdge.js.map
@@ -1 +0,0 @@
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,2 +0,0 @@
1
- import type { VirtualTableColumn, StickyPosition } from "../type";
2
- export declare const useStickyPosition: <RowType extends object>(columns: VirtualTableColumn<RowType>[], columnWidths: number[]) => Record<number, StickyPosition>;
@@ -1,24 +0,0 @@
1
- import React from "react";
2
- import { ArrayUtil } from "../../../internal/ArrayUtil";
3
- export var useStickyPosition = function (columns, columnWidths) {
4
- return React.useMemo(function () {
5
- var result = {};
6
- var left = [];
7
- var right = [];
8
- var leftFixedCols = ArrayUtil.compactMap(columns, function (_, columnIndex) { return (_.fixed === "left" ? { columnIndex: columnIndex, width: columnWidths[columnIndex] } : null); });
9
- // the right sticky value stack in reverse direction
10
- var rightFixedCols = ArrayUtil.compactMap(columns, function (_, columnIndex) { return (_.fixed === "right" ? { columnIndex: columnIndex, width: columnWidths[columnIndex] } : null); }).reverse();
11
- leftFixedCols.forEach(function (column, idx) {
12
- var stackedPositionValue = left.reduce(function (acc, prev) { return acc + prev; }, 0);
13
- left.push(column.width);
14
- result[column.columnIndex] = { value: stackedPositionValue, isLast: idx === leftFixedCols.length - 1 };
15
- });
16
- rightFixedCols.forEach(function (column, idx) {
17
- var stackedPositionValue = right.reduce(function (acc, prev) { return acc + prev; }, 0);
18
- right.unshift(column.width);
19
- result[column.columnIndex] = { value: stackedPositionValue, isLast: idx === rightFixedCols.length - 1 };
20
- });
21
- return result;
22
- }, [columnWidths, columns]);
23
- };
24
- //# sourceMappingURL=useStickyPosition.js.map
@@ -1 +0,0 @@
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"}
@@ -1,11 +0,0 @@
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 {};
@@ -1,9 +0,0 @@
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
@@ -1 +0,0 @@
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"}