@pinnacle0/web-ui 0.3.11 → 0.3.14

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.
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ import type { ColumnFixedPosition, VirtualTableColumn } from "./type";
3
+ import type { StickyPosition } from "./useStickyPosition";
4
+ interface Props<RowType extends object> {
5
+ headersRef: React.RefObject<HTMLDivElement>;
6
+ headerHeight: number;
7
+ transformedColumns: VirtualTableColumn<RowType>[];
8
+ stickyPosition: Record<number, StickyPosition>;
9
+ getFixedColumnClassNames: (fixed: ColumnFixedPosition | undefined, columnIndex: number) => (string | undefined)[];
10
+ }
11
+ export declare const TableHeader: (<RowType extends object>({ headersRef, headerHeight, transformedColumns, stickyPosition, getFixedColumnClassNames }: Props<RowType>) => JSX.Element) & {
12
+ displayName: string;
13
+ };
14
+ export {};
@@ -0,0 +1,44 @@
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 TableHeader = Object.assign(function (_a) {
28
+ var headersRef = _a.headersRef, headerHeight = _a.headerHeight, transformedColumns = _a.transformedColumns, stickyPosition = _a.stickyPosition, getFixedColumnClassNames = _a.getFixedColumnClassNames;
29
+ return (React.createElement("div", { className: "table-headers", ref: headersRef, style: { height: headerHeight, width: scrollX || "100%" } }, transformedColumns.map(function (_a, columnIndex) {
30
+ var _b;
31
+ var title = _a.title, width = _a.width, align = _a.align, fixed = _a.fixed, display = _a.display;
32
+ var stickyPositionValue = ((_b = stickyPosition[columnIndex]) === null || _b === void 0 ? void 0 : _b.value) || 0;
33
+ return (React.createElement("div", { className: __spreadArray(["table-header"], __read(getFixedColumnClassNames(fixed, columnIndex)), false).join(" "), key: columnIndex, style: {
34
+ display: display !== "hidden" ? "flex" : "none",
35
+ flex: "1 0 ".concat(width, "px"),
36
+ textAlign: align,
37
+ left: fixed === "left" ? stickyPositionValue : undefined,
38
+ right: fixed === "right" ? stickyPositionValue : undefined,
39
+ } }, title));
40
+ })));
41
+ }, {
42
+ displayName: "TableHeader",
43
+ });
44
+ //# sourceMappingURL=TableHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableHeader.js","sourceRoot":"","sources":["../../../src/core/VirtualTable/TableHeader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,MAAM,CAAC,IAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CACpC,UAAkC,EAAwG;QAAvG,UAAU,gBAAA,EAAE,YAAY,kBAAA,EAAE,kBAAkB,wBAAA,EAAE,cAAc,oBAAA,EAAE,wBAAwB,8BAAA;IACrH,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,kBAAkB,CAAC,GAAG,CAAC,UAAC,EAAqC,EAAE,WAAW;;YAAjD,KAAK,WAAA,EAAE,KAAK,WAAA,EAAE,KAAK,WAAA,EAAE,KAAK,WAAA,EAAE,OAAO,aAAA;QACzD,IAAM,mBAAmB,GAAG,CAAA,MAAA,cAAc,CAAC,WAAW,CAAC,0CAAE,KAAK,KAAI,CAAC,CAAC;QACpE,OAAO,CACH,6BACI,SAAS,EAAE,eAAC,cAAc,UAAK,wBAAwB,CAAC,KAAK,EAAE,WAAW,CAAC,UAAE,IAAI,CAAC,GAAG,CAAC,EACtF,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"}
@@ -0,0 +1,20 @@
1
+ /// <reference types="react" />
2
+ import type { VirtualItem } from "react-virtual";
3
+ import type { ColumnFixedPosition, VirtualTableColumn } from "./type";
4
+ import type { StickyPosition } from "./useStickyPosition";
5
+ interface Props<RowType extends object> {
6
+ dataSource: RowType[];
7
+ transformedColumns: VirtualTableColumn<RowType>[];
8
+ virtualItem: VirtualItem;
9
+ columnWidths: number[];
10
+ lastShownColumnIndex: number;
11
+ scrollBarSize: number;
12
+ stickyPosition: Record<number, StickyPosition>;
13
+ getFixedColumnClassNames: (fixed: ColumnFixedPosition | undefined, columnIndex: number) => (string | undefined)[];
14
+ rowClassName?: string;
15
+ onRowClick?: (record: RowType, rowIndex: number) => number;
16
+ }
17
+ export declare const TableRow: (<RowType extends object>({ virtualItem, getFixedColumnClassNames, dataSource, transformedColumns, columnWidths, scrollBarSize, stickyPosition, lastShownColumnIndex, rowClassName, onRowClick, }: Props<RowType>) => JSX.Element) & {
18
+ displayName: string;
19
+ };
20
+ export {};
@@ -0,0 +1,49 @@
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 TableRow = Object.assign(function (_a) {
28
+ var virtualItem = _a.virtualItem, getFixedColumnClassNames = _a.getFixedColumnClassNames, dataSource = _a.dataSource, transformedColumns = _a.transformedColumns, columnWidths = _a.columnWidths, scrollBarSize = _a.scrollBarSize, stickyPosition = _a.stickyPosition, lastShownColumnIndex = _a.lastShownColumnIndex, rowClassName = _a.rowClassName, onRowClick = _a.onRowClick;
29
+ var rowIndex = virtualItem.index;
30
+ var currentData = dataSource[rowIndex];
31
+ return (React.createElement("div", { key: rowIndex, className: ["table-row", rowClassName, rowIndex % 2 ? "odd" : "even"].join(" "), style: { height: virtualItem.size, transform: "translateY(".concat(virtualItem.start, "px)") }, onClick: function () { return onRowClick === null || onRowClick === void 0 ? void 0 : onRowClick(currentData, rowIndex); } }, transformedColumns.map(function (column, columnIndex) {
32
+ var _a;
33
+ var colSpan = column.colSpan ? column.colSpan(currentData, rowIndex, columnIndex) : 1;
34
+ // handle colspan > 1
35
+ var cellWidth = colSpan > 1 ? columnWidths.slice(columnIndex, columnIndex + colSpan).reduce(function (acc, curr) { return acc + curr; }, 0) : columnWidths[columnIndex] || column.width;
36
+ var renderData = column.display !== "hidden" && column.renderData(currentData, rowIndex);
37
+ // minus the scroll bar size of the last column & minus the scroll bar size in the right sticky value of the right fixed columns
38
+ var isLastShownColumn = lastShownColumnIndex === columnIndex;
39
+ var stickyPositionValue = ((_a = stickyPosition[columnIndex]) === null || _a === void 0 ? void 0 : _a.value) || 0;
40
+ return (renderData && (React.createElement("div", { className: __spreadArray(["table-cell"], __read(getFixedColumnClassNames(column.fixed, columnIndex)), false).join(" "), key: columnIndex, style: {
41
+ height: "100%",
42
+ width: cellWidth - (isLastShownColumn ? scrollBarSize : 0),
43
+ textAlign: column.align,
44
+ left: column.fixed === "left" ? stickyPositionValue : undefined,
45
+ right: column.fixed === "right" ? stickyPositionValue - (isLastShownColumn ? 0 : scrollBarSize) : undefined,
46
+ } }, renderData)));
47
+ })));
48
+ }, { displayName: "TableRow" });
49
+ //# sourceMappingURL=TableRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableRow.js","sourceRoot":"","sources":["../../../src/core/VirtualTable/TableRow.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAkB1B,MAAM,CAAC,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CACjC,UAAkC,EAWjB;QAVb,WAAW,iBAAA,EACX,wBAAwB,8BAAA,EACxB,UAAU,gBAAA,EACV,kBAAkB,wBAAA,EAClB,YAAY,kBAAA,EACZ,aAAa,mBAAA,EACb,cAAc,oBAAA,EACd,oBAAoB,0BAAA,EACpB,YAAY,kBAAA,EACZ,UAAU,gBAAA;IAEV,IAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC;IACnC,IAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,CACH,6BACI,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC/E,KAAK,EAAE,EAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAc,WAAW,CAAC,KAAK,QAAK,EAAC,EAClF,OAAO,EAAE,cAAM,OAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,WAAW,EAAE,QAAQ,CAAC,EAAnC,CAAmC,IAEjD,kBAAkB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,WAAW;;QACxC,IAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,qBAAqB;QACrB,IAAM,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,IAAI,IAAK,OAAA,GAAG,GAAG,IAAI,EAAV,CAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC;QAExK,IAAM,UAAU,GAAG,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC3F,gIAAgI;QAChI,IAAM,iBAAiB,GAAG,oBAAoB,KAAK,WAAW,CAAC;QAC/D,IAAM,mBAAmB,GAAG,CAAA,MAAA,cAAc,CAAC,WAAW,CAAC,0CAAE,KAAK,KAAI,CAAC,CAAC;QAEpE,OAAO,CACH,UAAU,IAAI,CACV,6BACI,SAAS,EAAE,eAAC,YAAY,UAAK,wBAAwB,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,UAAE,IAAI,CAAC,GAAG,CAAC,EAC3F,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE;gBACH,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,SAAS,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1D,SAAS,EAAE,MAAM,CAAC,KAAK;gBACvB,IAAI,EAAE,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;gBAC/D,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;aAC9G,IAEA,UAAU,CACT,CACT,CACJ,CAAC;IACN,CAAC,CAAC,CACA,CACT,CAAC;AACN,CAAC,EACD,EAAC,WAAW,EAAE,UAAU,EAAC,CAC5B,CAAC"}
@@ -1,40 +1,7 @@
1
- import React from "react";
2
- import type { SafeReactChildren, SafeReactChild, StringKey } from "../../internal/type";
1
+ /// <reference types="react" />
2
+ import type { SafeReactChild, StringKey } from "../../internal/type";
3
+ import type { VirtualTableColumn, VirtualTableRowSelection } from "./type";
3
4
  import "./index.less";
4
- export declare type VirtualTableRowSelection<RowType extends object> = {
5
- width: number;
6
- selectedRowKeys: React.Key[];
7
- onChange: (selectedRowKeys: React.Key[], selectedRows: RowType[]) => void;
8
- /**
9
- * Can only sticky in left
10
- */
11
- fixed?: boolean;
12
- isDisabled?: (data: RowType, rowIndex: number) => boolean;
13
- isSelectAllDisabled?: boolean;
14
- /**
15
- * Attention:
16
- * If title is provided, the select all checkbox wil be overridden
17
- */
18
- title?: SafeReactChild;
19
- };
20
- export declare type VirtualTableColumn<RowType extends object> = {
21
- title: SafeReactChild;
22
- width: number;
23
- /**
24
- * Attention:
25
- * If renderData return null, the corresponding table cell will not render
26
- */
27
- renderData: (record: RowType, rowIndex: number) => SafeReactChildren | undefined;
28
- align?: "left" | "right" | "center";
29
- display?: "default" | "hidden";
30
- fixed?: "left" | "right";
31
- /**
32
- * Attention:
33
- * The overridden cell should return null in renderData props:
34
- * e.g. [{colSpan: 3, renderData: () => <div />}, {renderData: () => null}], {renderData: () => null}
35
- */
36
- colSpan?: (record: RowType, rowIndex: number, colIndex: number) => number;
37
- };
38
5
  export interface VirtualTableProps<RowType extends object> {
39
6
  dataSource: RowType[];
40
7
  columns: VirtualTableColumn<RowType>[];
@@ -55,7 +22,8 @@ export interface VirtualTableProps<RowType extends object> {
55
22
  * Default: index
56
23
  */
57
24
  rowKey?: StringKey<RowType> | "index";
25
+ headerHeight?: number;
58
26
  }
59
- export declare const VirtualTable: (<RowType extends object>({ columns, rowHeight, scrollY, dataSource, className, rowClassName, loading, emptyPlaceholder, rowSelection, onRowClick, scrollX, rowKey, }: VirtualTableProps<RowType>) => JSX.Element) & {
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) & {
60
28
  displayName: string;
61
29
  };
@@ -1,151 +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
- 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
2
  import { useVirtual } from "react-virtual";
28
- import { ArrayUtil } from "../../internal/ArrayUtil";
29
3
  import { Spin } from "../Spin";
30
4
  import { useRowSelection } from "./useRowSelection";
31
5
  import { useScrollToEdge } from "./useScrollToEdge";
6
+ import { useScrollBarSize } from "./useScrollBarSize";
7
+ import { useColumnWidths } from "./useColumnWidths";
8
+ import { useStickyPosition } from "./useStickyPosition";
32
9
  import "./index.less";
10
+ import { TableRow } from "./TableRow";
11
+ import { TableHeader } from "./TableHeader";
33
12
  export var VirtualTable = Object.assign(function (_a) {
34
- 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;
13
+ 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
14
  var size = dataSource.length;
36
15
  var scrollContentRef = React.useRef(null);
37
16
  var headersRef = React.useRef(null);
38
17
  var estimateSize = React.useCallback(function (rowIndex) { return (typeof rowHeight === "function" ? rowHeight(rowIndex) : rowHeight); }, [rowHeight]);
39
- var _c = __read(React.useState([]), 2), colWidths = _c[0], setColWidths = _c[1];
40
- var _d = __read(React.useState(0), 2), scrollBarSize = _d[0], setScrollBarSize = _d[1];
41
- var _e = useVirtual({ size: size, parentRef: scrollContentRef, estimateSize: estimateSize }), virtualItems = _e.virtualItems, totalSize = _e.totalSize;
42
- var _f = useScrollToEdge(scrollContentRef), isScrollToEdge = _f.onScroll, isScrollToLeft = _f.isScrollToLeft, isScrollToRight = _f.isScrollToRight;
18
+ var _d = useVirtual({ size: size, parentRef: scrollContentRef, estimateSize: estimateSize }), virtualItems = _d.virtualItems, totalSize = _d.totalSize;
19
+ var _e = useScrollToEdge(scrollContentRef), isScrollToEdge = _e.onScroll, isScrollToLeft = _e.isScrollToLeft, isScrollToRight = _e.isScrollToRight;
43
20
  var transformedColumns = useRowSelection({ columns: columns, dataSource: dataSource, rowSelection: rowSelection, rowKey: rowKey });
44
21
  var isScrollable = totalSize > scrollY;
45
- var headerHeight = 50;
46
22
  var tableHeight = scrollY + headerHeight;
47
23
  var tableBodyHeight = scrollY;
48
24
  var emptyElement = emptyPlaceholder || "暂无数据";
49
- var getScrollBarSize = function () {
50
- if (scrollContentRef.current) {
51
- var _a = scrollContentRef.current, clientWidth = _a.clientWidth, offsetWidth = _a.offsetWidth;
52
- setScrollBarSize(offsetWidth - clientWidth);
53
- }
54
- };
55
- var getColWidths = function () {
56
- if (headersRef.current) {
57
- var widths_1 = [];
58
- var headers = headersRef.current.querySelectorAll(".table-header");
59
- headers.forEach(function (header) {
60
- var width = header.getBoundingClientRect().width;
61
- widths_1.push(width);
62
- });
63
- setColWidths(widths_1);
64
- }
65
- };
66
- var stickyPosition = React.useMemo(function () {
67
- var result = {};
68
- var left = [];
69
- var right = [];
70
- var leftFixedCols = ArrayUtil.compactMap(transformedColumns, function (_, columnIndex) { return (_.fixed === "left" ? { columnIndex: columnIndex, width: colWidths[columnIndex] } : null); });
71
- // the right sticky value stack in reverse direction
72
- var rightFixedCols = ArrayUtil.compactMap(transformedColumns, function (_, columnIndex) { return (_.fixed === "right" ? { columnIndex: columnIndex, width: colWidths[columnIndex] } : null); }).reverse();
73
- leftFixedCols.forEach(function (column, idx) {
74
- var stackedPositionValue = left.reduce(function (acc, prev) { return acc + prev; }, 0);
75
- left.push(column.width);
76
- result[column.columnIndex] = { value: stackedPositionValue, isLast: idx === leftFixedCols.length - 1 };
77
- });
78
- rightFixedCols.forEach(function (column, idx) {
79
- var stackedPositionValue = right.reduce(function (acc, prev) { return acc + prev; }, 0);
80
- right.unshift(column.width);
81
- result[column.columnIndex] = { value: stackedPositionValue, isLast: idx === rightFixedCols.length - 1 };
82
- });
83
- return result;
84
- }, [colWidths, transformedColumns]);
25
+ var scrollBarSize = useScrollBarSize(scrollContentRef, isScrollable);
26
+ var columnWidths = useColumnWidths(headersRef);
27
+ var stickyPosition = useStickyPosition(transformedColumns, columnWidths);
28
+ var lastShownColumnIndex = React.useMemo(function () { return columns.length - 1 - columns.reverse().findIndex(function (_) { return _.display !== "hidden"; }); }, [columns]);
85
29
  // handle the edge position & shadow of the fixed columns
86
- var getFixedColClassNames = function (fixed, columnIndex) {
30
+ var getFixedColumnClassNames = React.useCallback(function (fixed, columnIndex) {
87
31
  var isFixedClassName = fixed ? "fixed" : "";
88
32
  var isLastFixedClassName = fixed && stickyPosition[columnIndex].isLast ? "last" : "";
89
33
  var fixedPositionClassName = fixed;
90
34
  var hideShadowClassName = (fixed === "left" && isScrollToLeft) || (fixed === "right" && isScrollToRight) ? "hide-shadow" : "";
91
35
  return [isFixedClassName, isLastFixedClassName, fixedPositionClassName, hideShadowClassName];
92
- };
36
+ }, [isScrollToLeft, isScrollToRight, stickyPosition]);
93
37
  var onScroll = React.useCallback(function () {
94
38
  requestAnimationFrame(function () {
95
39
  // only trigger in horizontal direction
96
- if (scrollContentRef.current && headersRef.current && scrollContentRef.current.scrollLeft !== headersRef.current.scrollLeft) {
97
- isScrollToEdge();
98
- // sync scrolling in header
99
- headersRef.current.scrollLeft = scrollContentRef.current.scrollLeft;
100
- }
40
+ if (!scrollContentRef.current || !headersRef.current || scrollContentRef.current.scrollLeft === headersRef.current.scrollLeft)
41
+ return;
42
+ isScrollToEdge();
43
+ // sync scrolling in header
44
+ headersRef.current.scrollLeft = scrollContentRef.current.scrollLeft;
101
45
  });
102
46
  }, [isScrollToEdge]);
103
- React.useEffect(function () {
104
- isScrollable && !scrollBarSize && getScrollBarSize();
105
- }, [isScrollable, scrollBarSize]);
106
- React.useEffect(function () {
107
- getColWidths();
108
- }, []);
109
47
  return (React.createElement("div", { className: ["g-virtual-table", className].join(" "), style: { width: scrollX || "100%", height: tableHeight } },
110
48
  loading && (React.createElement("div", { className: "mask" },
111
49
  React.createElement(Spin, { spinning: loading }))),
112
50
  React.createElement("div", { className: "scroll-content", ref: scrollContentRef, style: { height: tableBodyHeight, top: headerHeight }, onScroll: onScroll },
113
51
  React.createElement("div", { className: "table", style: { height: totalSize } },
114
- React.createElement("div", { className: "table-headers", ref: headersRef, style: { height: headerHeight, width: scrollX || "100%" } }, transformedColumns.map(function (_a, columnIndex) {
115
- var _b;
116
- var title = _a.title, width = _a.width, align = _a.align, fixed = _a.fixed, display = _a.display;
117
- var stickyPositionValue = ((_b = stickyPosition[columnIndex]) === null || _b === void 0 ? void 0 : _b.value) || 0;
118
- var headerStyle = {
119
- display: display !== "hidden" ? "flex" : "none",
120
- flex: "1 0 ".concat(width, "px"),
121
- textAlign: align,
122
- left: fixed === "left" ? stickyPositionValue : undefined,
123
- right: fixed === "right" ? stickyPositionValue : undefined,
124
- };
125
- return (React.createElement("div", { className: __spreadArray(["table-header"], __read(getFixedColClassNames(fixed, columnIndex)), false).join(" "), key: columnIndex, style: headerStyle }, title));
126
- })),
52
+ React.createElement(TableHeader, { headersRef: headersRef, headerHeight: headerHeight, transformedColumns: transformedColumns, stickyPosition: stickyPosition, getFixedColumnClassNames: getFixedColumnClassNames }),
127
53
  React.createElement("div", { className: "table-body" }, dataSource.length === 0
128
54
  ? emptyElement
129
- : virtualItems.map(function (virtualItem) {
130
- var rowIndex = virtualItem.index;
131
- var currentData = dataSource[rowIndex];
132
- return (React.createElement("div", { key: rowIndex, className: ["table-row", rowClassName, rowIndex % 2 ? "odd" : "even"].join(" "), style: { height: virtualItem.size, transform: "translateY(".concat(virtualItem.start, "px)") }, onClick: function () { return onRowClick === null || onRowClick === void 0 ? void 0 : onRowClick(currentData, rowIndex); } }, transformedColumns.map(function (column, columnIndex) {
133
- var _a;
134
- var colSpan = column.colSpan ? column.colSpan(currentData, rowIndex, columnIndex) : 1;
135
- // handle colspan > 1
136
- var cellWidth = colSpan > 1 ? colWidths.slice(columnIndex, columnIndex + colSpan).reduce(function (acc, curr) { return acc + curr; }, 0) : colWidths[columnIndex] || column.width;
137
- var renderData = column.display !== "hidden" && column.renderData(currentData, rowIndex);
138
- // minus the scroll bar size of the last column & minus the scroll bar size in the right sticky value of the right fixed columns
139
- var isLastColumn = columnIndex === transformedColumns.length - 1;
140
- var stickyPositionValue = ((_a = stickyPosition[columnIndex]) === null || _a === void 0 ? void 0 : _a.value) || 0;
141
- return (renderData && (React.createElement("div", { className: __spreadArray(["table-cell"], __read(getFixedColClassNames(column.fixed, columnIndex)), false).join(" "), key: columnIndex, style: {
142
- height: "100%",
143
- width: cellWidth - (isLastColumn ? scrollBarSize : 0),
144
- textAlign: column.align,
145
- left: column.fixed === "left" ? stickyPositionValue : undefined,
146
- right: column.fixed === "right" ? stickyPositionValue - (isLastColumn ? 0 : scrollBarSize) : undefined,
147
- } }, renderData)));
148
- })));
149
- }))))));
55
+ : virtualItems.map(function (virtualItem, columnIndex) { return (React.createElement(TableRow, { key: columnIndex, onRowClick: onRowClick, virtualItem: virtualItem, dataSource: dataSource, transformedColumns: transformedColumns, columnWidths: columnWidths, scrollBarSize: scrollBarSize, stickyPosition: stickyPosition, lastShownColumnIndex: lastShownColumnIndex, rowClassName: rowClassName, getFixedColumnClassNames: getFixedColumnClassNames })); }))))));
150
56
  }, { displayName: "VirtualTable" });
151
57
  //# 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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"}
@@ -0,0 +1,40 @@
1
+ /// <reference types="react" />
2
+ import type { SafeReactChild, SafeReactChildren } from "../../internal/type";
3
+ export declare type ColumnFixedPosition = "left" | "right";
4
+ /**
5
+ * Similar usage of Antd Table but only support partial features: fixed columns, row selection, on row click
6
+ */
7
+ export declare type VirtualTableRowSelection<RowType extends object> = {
8
+ width: number;
9
+ selectedRowKeys: React.Key[];
10
+ onChange: (selectedRowKeys: React.Key[], selectedRows: RowType[]) => void;
11
+ /**
12
+ * Can only sticky in left
13
+ */
14
+ fixed?: boolean;
15
+ isDisabled?: (data: RowType, rowIndex: number) => boolean;
16
+ isSelectAllDisabled?: boolean;
17
+ /**
18
+ * Attention:
19
+ * If title is provided, the select all checkbox wil be overridden
20
+ */
21
+ title?: SafeReactChild;
22
+ };
23
+ export declare type VirtualTableColumn<RowType extends object> = {
24
+ title: SafeReactChild;
25
+ width: number;
26
+ /**
27
+ * Attention:
28
+ * If renderData return null, the corresponding table cell will not render
29
+ */
30
+ renderData: (record: RowType, rowIndex: number) => SafeReactChildren | undefined;
31
+ align?: "left" | "right" | "center";
32
+ display?: "default" | "hidden";
33
+ fixed?: "left" | "right";
34
+ /**
35
+ * Attention:
36
+ * The overridden cell should return null in renderData props:
37
+ * e.g. [{colSpan: 3, renderData: () => <div />}, {renderData: () => null}], {renderData: () => null}
38
+ */
39
+ colSpan?: (record: RowType, rowIndex: number, colIndex: number) => number;
40
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../src/core/VirtualTable/type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const useColumnWidths: (headersRef: React.RefObject<HTMLDivElement>) => number[];
@@ -0,0 +1,32 @@
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 useColumnWidths = function (headersRef) {
19
+ var _a = __read(React.useState([]), 2), colWidths = _a[0], setColWidths = _a[1];
20
+ React.useEffect(function () {
21
+ if (!headersRef.current)
22
+ return;
23
+ var headers = headersRef.current.querySelectorAll(".table-header");
24
+ var widths = Array.prototype.slice.call(headers).map(function (header) {
25
+ var width = header.getBoundingClientRect().width;
26
+ return width;
27
+ });
28
+ setColWidths(widths);
29
+ }, [headersRef, setColWidths]);
30
+ return colWidths;
31
+ };
32
+ //# sourceMappingURL=useColumnWidths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useColumnWidths.js","sourceRoot":"","sources":["../../../src/core/VirtualTable/useColumnWidths.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,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,KAAK,CAAC,SAAS,CAAC;QACZ,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,EAAE,YAAY,CAAC,CAAC,CAAC;IAE/B,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import type { VirtualTableRowSelection, VirtualTableColumn } from "./index";
2
+ import type { VirtualTableColumn, VirtualTableRowSelection } from "./type";
3
3
  interface Props<RowType extends object> {
4
4
  columns: VirtualTableColumn<RowType>[];
5
5
  dataSource: RowType[];
@@ -1,14 +1,3 @@
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
1
  var __read = (this && this.__read) || function (o, n) {
13
2
  var m = typeof Symbol === "function" && o[Symbol.iterator];
14
3
  if (!m) return o;
@@ -36,107 +25,59 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
36
25
  };
37
26
  import React from "react";
38
27
  import { Checkbox } from "../Checkbox";
28
+ import { ArrayUtil } from "../../internal/ArrayUtil";
39
29
  export var useRowSelection = function (_a) {
40
30
  var columns = _a.columns, dataSource = _a.dataSource, rowSelection = _a.rowSelection, rowKey = _a.rowKey;
41
- var onChangeRef = React.useRef(rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.onChange);
42
- var _b = __read(React.useState(function () {
43
- var result = {};
44
- if (rowSelection) {
45
- var selectedRowKeys_1 = rowSelection.selectedRowKeys, isDisabled_1 = rowSelection.isDisabled;
46
- dataSource.forEach(function (data, rowIndex) {
47
- var key = rowKey === "index" ? rowIndex : data[rowKey];
48
- var isChecked = selectedRowKeys_1.findIndex(function (_) { return _ === key; }) !== -1;
49
- var isDisabledRow = (isDisabled_1 === null || isDisabled_1 === void 0 ? void 0 : isDisabled_1(data, rowIndex)) || false;
50
- result[key] = {
51
- isChecked: isChecked,
52
- isDisabled: isDisabledRow,
53
- data: data,
54
- };
55
- });
31
+ var transformedColumns = React.useMemo(function () {
32
+ if (!rowSelection) {
33
+ return __spreadArray([], __read(columns), false);
56
34
  }
57
- return result;
58
- }), 2), rowStatus = _b[0], setRowStatus = _b[1];
59
- var onRowSelectClick = React.useCallback(function (rowKey) {
60
- setRowStatus(function (rowStatus) {
61
- var _a;
62
- return (__assign(__assign({}, rowStatus), (_a = {}, _a[rowKey] = __assign(__assign({}, rowStatus[rowKey]), { isChecked: !rowStatus[rowKey].isChecked }), _a)));
63
- });
64
- }, []);
65
- var onAllSelectClick = React.useCallback(function (val) {
66
- setRowStatus(function (rowStatus) {
67
- var newStatus = {};
68
- Object.entries(rowStatus).forEach(function (_a) {
69
- var _b = __read(_a, 2), rowKey = _b[0], status = _b[1];
70
- newStatus[rowKey] = __assign(__assign({}, status), { isChecked: val ? status.isChecked || !status.isDisabled : status.isChecked && status.isDisabled });
71
- });
72
- return newStatus;
73
- });
74
- }, []);
75
- var selectionAllStatus = React.useMemo(function () {
35
+ var width = rowSelection.width, onChange = rowSelection.onChange, selectedRowKeys = rowSelection.selectedRowKeys, fixed = rowSelection.fixed, isDisabled = rowSelection.isDisabled, isSelectAllDisabled = rowSelection.isSelectAllDisabled, title = rowSelection.title;
76
36
  var allSelectionRowKeys = [];
77
37
  var allSelectionRows = [];
78
38
  var unAllSelectionRowKeys = [];
79
39
  var unAllSelectionRows = [];
80
40
  var enabledRowKeys = [];
81
41
  var enabledCheckedRowKeys = [];
82
- Object.entries(rowStatus).forEach(function (_a) {
83
- var _b = __read(_a, 2), rowKey = _b[0], _c = _b[1], isChecked = _c.isChecked, isDisabled = _c.isDisabled, data = _c.data;
84
- if (isDisabled) {
85
- if (isChecked) {
86
- allSelectionRowKeys.push(rowKey);
87
- allSelectionRows.push(data);
88
- unAllSelectionRowKeys.push(rowKey);
89
- unAllSelectionRows.push(data);
42
+ dataSource.forEach(function (data, rowIndex) {
43
+ var key = rowKey === "index" ? rowIndex : data[rowKey];
44
+ var isSelected = selectedRowKeys.findIndex(function (_) { return _ === key; }) !== -1;
45
+ var isDisabledRow = (isDisabled === null || isDisabled === void 0 ? void 0 : isDisabled(data, rowIndex)) || false;
46
+ if (isDisabledRow) {
47
+ if (isSelected) {
48
+ allSelectionRowKeys.push(key);
49
+ allSelectionRows.push(data[rowIndex]);
50
+ unAllSelectionRowKeys.push(key);
51
+ unAllSelectionRows.push(data[rowIndex]);
90
52
  }
91
53
  }
92
54
  else {
93
- enabledRowKeys.push(rowKey);
94
- isChecked && enabledCheckedRowKeys.push(rowKey);
95
- allSelectionRowKeys.push(rowKey);
96
- allSelectionRows.push(data);
55
+ enabledRowKeys.push(key);
56
+ isSelected && enabledCheckedRowKeys.push(key);
57
+ allSelectionRowKeys.push(key);
58
+ allSelectionRows.push(data[rowIndex]);
97
59
  }
98
60
  });
99
- var isAllSelectionDisabled = (rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.isSelectAllDisabled) || enabledRowKeys.length === 0;
100
- var isAllSelected = enabledRowKeys.length === enabledCheckedRowKeys.length;
101
- var isIndeterminate = enabledCheckedRowKeys.length > 0 && !isAllSelected;
102
- return {
103
- isDisabled: isAllSelectionDisabled,
104
- isSelected: isAllSelected,
105
- isIndeterminate: isIndeterminate,
61
+ var onSelectAll = function (val) {
62
+ return val ? onChange(allSelectionRowKeys, allSelectionRows) : onChange(unAllSelectionRowKeys, unAllSelectionRows);
106
63
  };
107
- }, [rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.isSelectAllDisabled, rowStatus]);
108
- var transformedColumns = React.useMemo(function () {
109
- if (!rowSelection) {
110
- return __spreadArray([], __read(columns), false);
111
- }
112
- var width = rowSelection.width, fixed = rowSelection.fixed, isDisabled = rowSelection.isDisabled, title = rowSelection.title;
64
+ var isAllSelectionDisabled = isSelectAllDisabled || enabledRowKeys.length === 0;
65
+ var isAllSelected = enabledCheckedRowKeys.length > 0 && enabledRowKeys.length === enabledCheckedRowKeys.length;
66
+ var isIndeterminate = enabledCheckedRowKeys.length > 0 && !isAllSelected;
113
67
  var rowSelectionColumn = {
114
68
  width: width,
115
69
  fixed: fixed ? "left" : undefined,
116
- title: title || React.createElement(Checkbox, { disabled: selectionAllStatus.isDisabled, indeterminate: selectionAllStatus.isIndeterminate, onChange: onAllSelectClick, value: selectionAllStatus.isSelected }),
70
+ title: title || React.createElement(Checkbox, { disabled: isAllSelectionDisabled, indeterminate: isIndeterminate, onChange: onSelectAll, value: isAllSelected }),
117
71
  renderData: function (data, rowIndex) {
118
72
  var key = rowKey === "index" ? rowIndex : data[rowKey];
119
- var status = rowStatus[key];
120
- var isChecked = (status === null || status === void 0 ? void 0 : status.isChecked) || false;
121
- return React.createElement(Checkbox, { disabled: isDisabled === null || isDisabled === void 0 ? void 0 : isDisabled(data, rowIndex), value: isChecked, onChange: function () { return onRowSelectClick(key); } });
73
+ var toggledSelectedRowKeys = ArrayUtil.toggleElement(selectedRowKeys, key);
74
+ var toggledSelectedRow = ArrayUtil.toggleElement(dataSource, data);
75
+ var isChecked = selectedRowKeys.findIndex(function (_) { return _ === key; }) !== -1;
76
+ return React.createElement(Checkbox, { disabled: isDisabled === null || isDisabled === void 0 ? void 0 : isDisabled(data, rowIndex), value: isChecked, onChange: function () { return onChange(toggledSelectedRowKeys, toggledSelectedRow); } });
122
77
  },
123
78
  };
124
79
  return __spreadArray([rowSelectionColumn], __read(columns), false);
125
- }, [columns, onAllSelectClick, onRowSelectClick, rowKey, rowSelection, rowStatus, selectionAllStatus]);
126
- React.useEffect(function () {
127
- if (onChangeRef.current && Object.values(rowStatus).length > 0) {
128
- var rowKeys_1 = [];
129
- var rows_1 = [];
130
- Object.entries(rowStatus).forEach(function (_a) {
131
- var _b = __read(_a, 2), rowKey = _b[0], status = _b[1];
132
- if (status.isChecked) {
133
- rowKeys_1.push(rowKey);
134
- rows_1.push(status.data);
135
- }
136
- });
137
- onChangeRef.current(rowKeys_1, rows_1);
138
- }
139
- }, [rowStatus, onChangeRef]);
80
+ }, [columns, dataSource, rowKey, rowSelection]);
140
81
  return transformedColumns;
141
82
  };
142
83
  //# sourceMappingURL=useRowSelection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRowSelection.js","sourceRoot":"","sources":["../../../src/core/VirtualTable/useRowSelection.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAgBrC,MAAM,CAAC,IAAM,eAAe,GAAG,UAAkC,EAA2D;QAA1D,OAAO,aAAA,EAAE,UAAU,gBAAA,EAAE,YAAY,kBAAA,EAAE,MAAM,YAAA;IACvG,IAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,CAAC,CAAC;IACnD,IAAA,KAAA,OAA4B,KAAK,CAAC,QAAQ,CAAwC;QACpF,IAAM,MAAM,GAA0C,EAAE,CAAC;QACzD,IAAI,YAAY,EAAE;YACP,IAAA,iBAAe,GAAgB,YAAY,gBAA5B,EAAE,YAAU,GAAI,YAAY,WAAhB,CAAiB;YAEnD,UAAU,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,QAAQ;gBAC9B,IAAM,GAAG,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzD,IAAM,SAAS,GAAG,iBAAe,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,GAAG,EAAT,CAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnE,IAAM,aAAa,GAAG,CAAA,YAAU,aAAV,YAAU,uBAAV,YAAU,CAAG,IAAI,EAAE,QAAQ,CAAC,KAAI,KAAK,CAAC;gBAE5D,MAAM,CAAC,GAAG,CAAC,GAAG;oBACV,SAAS,WAAA;oBACT,UAAU,EAAE,aAAa;oBACzB,IAAI,MAAA;iBACP,CAAC;YACN,CAAC,CAAC,CAAC;SACN;QACD,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC,IAAA,EAlBK,SAAS,QAAA,EAAE,YAAY,QAkB5B,CAAC;IAEH,IAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,UAAC,MAAiB;QACzD,YAAY,CAAC,UAAA,SAAS;;YAAI,OAAA,uBACnB,SAAS,gBACX,MAAM,0BACA,SAAS,CAAC,MAAM,CAAC,KACpB,SAAS,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,UAE7C;QANwB,CAMxB,CAAC,CAAC;IACR,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,UAAC,GAAY;QACpD,YAAY,CAAC,UAAA,SAAS;YAClB,IAAM,SAAS,GAA0C,EAAE,CAAC;YAC5D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAC,EAAgB;oBAAhB,KAAA,aAAgB,EAAf,MAAM,QAAA,EAAE,MAAM,QAAA;gBAC9C,SAAS,CAAC,MAAM,CAAC,yBACV,MAAM,KACT,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,GAClG,CAAC;YACN,CAAC,CAAC,CAAC;YACH,OAAO,SAAS,CAAC;QACrB,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC;QACrC,IAAM,mBAAmB,GAAgB,EAAE,CAAC;QAC5C,IAAM,gBAAgB,GAAc,EAAE,CAAC;QACvC,IAAM,qBAAqB,GAAgB,EAAE,CAAC;QAC9C,IAAM,kBAAkB,GAAc,EAAE,CAAC;QACzC,IAAM,cAAc,GAAgB,EAAE,CAAC;QACvC,IAAM,qBAAqB,GAAgB,EAAE,CAAC;QAE9C,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAC,EAAuC;gBAAvC,KAAA,aAAuC,EAAtC,MAAM,QAAA,EAAE,UAA6B,EAA5B,SAAS,eAAA,EAAE,UAAU,gBAAA,EAAE,IAAI,UAAA;YACpE,IAAI,UAAU,EAAE;gBACZ,IAAI,SAAS,EAAE;oBACX,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACjC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC5B,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACnC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACjC;aACJ;iBAAM;gBACH,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC5B,SAAS,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChD,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC/B;QACL,CAAC,CAAC,CAAC;QAEH,IAAM,sBAAsB,GAAG,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,mBAAmB,KAAI,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC;QAChG,IAAM,aAAa,GAAG,cAAc,CAAC,MAAM,KAAK,qBAAqB,CAAC,MAAM,CAAC;QAC7E,IAAM,eAAe,GAAG,qBAAqB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;QAE3E,OAAO;YACH,UAAU,EAAE,sBAAsB;YAClC,UAAU,EAAE,aAAa;YACzB,eAAe,iBAAA;SAClB,CAAC;IACN,CAAC,EAAE,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC,CAAC;IAEnD,IAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,YAAY,EAAE;YACf,gCAAW,OAAO,UAAE;SACvB;QAEM,IAAA,KAAK,GAA8B,YAAY,MAA1C,EAAE,KAAK,GAAuB,YAAY,MAAnC,EAAE,UAAU,GAAW,YAAY,WAAvB,EAAE,KAAK,GAAI,YAAY,MAAhB,CAAiB;QAEvD,IAAM,kBAAkB,GAAgC;YACpD,KAAK,OAAA;YACL,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACjC,KAAK,EAAE,KAAK,IAAI,oBAAC,QAAQ,IAAC,QAAQ,EAAE,kBAAkB,CAAC,UAAU,EAAE,aAAa,EAAE,kBAAkB,CAAC,eAAe,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,CAAC,UAAU,GAAI;YAC1L,UAAU,EAAE,UAAC,IAAI,EAAE,QAAQ;gBACvB,IAAM,GAAG,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzD,IAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC9B,IAAM,SAAS,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,KAAI,KAAK,CAAC;gBAC7C,OAAO,oBAAC,QAAQ,IAAC,QAAQ,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAM,OAAA,gBAAgB,CAAC,GAAG,CAAC,EAArB,CAAqB,GAAI,CAAC;YACzH,CAAC;SACJ,CAAC;QAEF,sBAAQ,kBAAkB,UAAK,OAAO,UAAE;IAC5C,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAEvG,KAAK,CAAC,SAAS,CAAC;QACZ,IAAI,WAAW,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5D,IAAM,SAAO,GAAgB,EAAE,CAAC;YAChC,IAAM,MAAI,GAAc,EAAE,CAAC;YAC3B,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAC,EAAgB;oBAAhB,KAAA,aAAgB,EAAf,MAAM,QAAA,EAAE,MAAM,QAAA;gBAC9C,IAAI,MAAM,CAAC,SAAS,EAAE;oBAClB,SAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACrB,MAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAC1B;YACL,CAAC,CAAC,CAAC;YACH,WAAW,CAAC,OAAO,CAAC,SAAO,EAAE,MAAI,CAAC,CAAC;SACtC;IACL,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAE7B,OAAO,kBAAkB,CAAC;AAC9B,CAAC,CAAC"}
1
+ {"version":3,"file":"useRowSelection.js","sourceRoot":"","sources":["../../../src/core/VirtualTable/useRowSelection.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const useScrollBarSize: (scrollContentRef: React.RefObject<HTMLDivElement>, isScrollable: boolean) => number;
@@ -0,0 +1,33 @@
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 scrollBarSize;
32
+ };
33
+ //# sourceMappingURL=useScrollBarSize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useScrollBarSize.js","sourceRoot":"","sources":["../../../src/core/VirtualTable/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,aAAa,CAAC;AACzB,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { VirtualTableColumn } from "./type";
2
+ export interface StickyPosition {
3
+ value: number;
4
+ isLast: boolean;
5
+ }
6
+ export declare const useStickyPosition: <RowType extends object>(transformedColumns: VirtualTableColumn<RowType>[], columnWidths: number[]) => Record<number, StickyPosition>;
@@ -0,0 +1,24 @@
1
+ import React from "react";
2
+ import { ArrayUtil } from "../../internal/ArrayUtil";
3
+ export var useStickyPosition = function (transformedColumns, columnWidths) {
4
+ return React.useMemo(function () {
5
+ var result = {};
6
+ var left = [];
7
+ var right = [];
8
+ var leftFixedCols = ArrayUtil.compactMap(transformedColumns, 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(transformedColumns, 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, transformedColumns]);
23
+ };
24
+ //# sourceMappingURL=useStickyPosition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStickyPosition.js","sourceRoot":"","sources":["../../../src/core/VirtualTable/useStickyPosition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAQnD,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAyB,kBAAiD,EAAE,YAAsB;IAC/H,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,kBAAkB,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;QAClK,oDAAoD;QACpD,IAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,kBAAkB,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;QAE9K,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;QAEH,OAAO,MAAM,CAAC;IAClB,CAAC,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pinnacle0/web-ui",
3
- "version": "0.3.11",
3
+ "version": "0.3.14",
4
4
  "author": "Pinnacle",
5
5
  "license": "MIT",
6
6
  "sideEffects": [