@pinnacle0/web-ui 0.2.103 → 0.3.2-beta0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/AdminApp/WithErrorBoundary.d.ts +2 -1
- package/admin/AdminApp/WithErrorBoundary.js +1 -1
- package/admin/AdminApp/WithErrorBoundary.js.map +1 -1
- package/core/DocumentTitle.d.ts +1 -1
- package/core/VirtualTable/index.d.ts +40 -0
- package/core/VirtualTable/index.js +123 -0
- package/core/VirtualTable/index.js.map +1 -0
- package/core/VirtualTable/index.less +133 -0
- package/core/VirtualTable/useRowSelection.d.ts +10 -0
- package/core/VirtualTable/useRowSelection.js +57 -0
- package/core/VirtualTable/useRowSelection.js.map +1 -0
- package/core/VirtualTable/useScrollToEdge.d.ts +8 -0
- package/core/VirtualTable/useScrollToEdge.js +41 -0
- package/core/VirtualTable/useScrollToEdge.js.map +1 -0
- package/core/VirtualizedFlatList/CellMeasurer.d.ts +17 -0
- package/core/VirtualizedFlatList/CellMeasurer.js +36 -0
- package/core/VirtualizedFlatList/CellMeasurer.js.map +1 -0
- package/core/VirtualizedFlatList/CellMeasurerCache.d.ts +16 -0
- package/core/VirtualizedFlatList/CellMeasurerCache.js +31 -0
- package/core/VirtualizedFlatList/CellMeasurerCache.js.map +1 -0
- package/core/VirtualizedFlatList/Footer.d.ts +8 -0
- package/core/VirtualizedFlatList/Footer.js +27 -0
- package/core/VirtualizedFlatList/Footer.js.map +1 -0
- package/core/VirtualizedFlatList/ListItem.d.ts +4 -0
- package/core/VirtualizedFlatList/ListItem.js +43 -0
- package/core/VirtualizedFlatList/ListItem.js.map +1 -0
- package/core/VirtualizedFlatList/Loading.d.ts +7 -0
- package/core/VirtualizedFlatList/Loading.js +9 -0
- package/core/VirtualizedFlatList/Loading.js.map +1 -0
- package/core/VirtualizedFlatList/index.d.ts +29 -0
- package/core/VirtualizedFlatList/index.js +182 -0
- package/core/VirtualizedFlatList/index.js.map +1 -0
- package/core/VirtualizedFlatList/index.less +59 -0
- package/core/VirtualizedFlatList/type.d.ts +29 -0
- package/core/VirtualizedFlatList/type.js +2 -0
- package/core/VirtualizedFlatList/type.js.map +1 -0
- package/core/VirtualizedFlatList/useLoadingWithDelay.d.ts +1 -0
- package/core/VirtualizedFlatList/useLoadingWithDelay.js +51 -0
- package/core/VirtualizedFlatList/useLoadingWithDelay.js.map +1 -0
- package/core/WithExplanation/index.d.ts +1 -1
- package/hooks/useSwipe/controller.d.ts +20 -0
- package/hooks/useSwipe/controller.js +126 -0
- package/hooks/useSwipe/controller.js.map +1 -0
- package/hooks/useSwipe/index.d.ts +3 -0
- package/hooks/useSwipe/index.js +9 -0
- package/hooks/useSwipe/index.js.map +1 -0
- package/hooks/useSwipe/type.d.ts +38 -0
- package/hooks/useSwipe/type.js +8 -0
- package/hooks/useSwipe/type.js.map +1 -0
- package/hooks/useTransform.d.ts +18 -0
- package/hooks/useTransform.js +50 -0
- package/hooks/useTransform.js.map +1 -0
- package/internal/ArrayUtil.d.ts +6 -0
- package/internal/ArrayUtil.js +41 -0
- package/internal/ArrayUtil.js.map +1 -1
- package/package.json +19 -12
- package/util/MediaUtil/index.js +7 -5
- package/util/MediaUtil/index.js.map +1 -1
- package/util/SwipeUtil.d.ts +8 -0
- package/util/SwipeUtil.js +26 -0
- package/util/SwipeUtil.js.map +1 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
interface Props {
|
|
3
3
|
onLifecycleError?: (error: unknown, componentStack: string) => void;
|
|
4
|
+
children: React.ReactChild;
|
|
4
5
|
}
|
|
5
6
|
interface State {
|
|
6
7
|
error: Error | null;
|
|
@@ -9,6 +10,6 @@ export declare class WithErrorBoundary extends React.PureComponent<Props, State>
|
|
|
9
10
|
static displayName: string;
|
|
10
11
|
constructor(props: Props);
|
|
11
12
|
componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
|
|
12
|
-
render():
|
|
13
|
+
render(): string | number | JSX.Element;
|
|
13
14
|
}
|
|
14
15
|
export {};
|
|
@@ -30,7 +30,7 @@ var WithErrorBoundary = /** @class */ (function (_super) {
|
|
|
30
30
|
WithErrorBoundary.prototype.render = function () {
|
|
31
31
|
var error = this.state.error;
|
|
32
32
|
return error ? (React.createElement(AdminPage, null,
|
|
33
|
-
React.createElement(AdminPage.Result, { type: "error", title: "Page Script Error", subtitle: error.message }))) : (this.props.children
|
|
33
|
+
React.createElement(AdminPage.Result, { type: "error", title: "Page Script Error", subtitle: error.message }))) : (this.props.children);
|
|
34
34
|
};
|
|
35
35
|
WithErrorBoundary.displayName = "WithErrorBoundary";
|
|
36
36
|
return WithErrorBoundary;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WithErrorBoundary.js","sourceRoot":"","sources":["../../../src/admin/AdminApp/WithErrorBoundary.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"WithErrorBoundary.js","sourceRoot":"","sources":["../../../src/admin/AdminApp/WithErrorBoundary.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAWvC;IAAuC,qCAAiC;IAGpE,2BAAY,KAAY;QAAxB,YACI,kBAAM,KAAK,CAAC,SAEf;QADG,KAAI,CAAC,KAAK,GAAG,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC;;IAC/B,CAAC;IAED,6CAAiB,GAAjB,UAAkB,KAAY,EAAE,SAA0B;;QACtD,IAAI,CAAC,QAAQ,CAAC,EAAC,KAAK,OAAA,EAAC,CAAC,CAAC;QACvB,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,gBAAgB,mDAAG,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACnE,CAAC;IAED,kCAAM,GAAN;QACW,IAAA,KAAK,GAAI,IAAI,CAAC,KAAK,MAAd,CAAe;QAC3B,OAAO,KAAK,CAAC,CAAC,CAAC,CACX,oBAAC,SAAS;YACN,oBAAC,SAAS,CAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,mBAAmB,EAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,GAAI,CAC5E,CACf,CAAC,CAAC,CAAC,CACA,IAAI,CAAC,KAAK,CAAC,QAAQ,CACtB,CAAC;IACN,CAAC;IArBM,6BAAW,GAAG,mBAAmB,CAAC;IAsB7C,wBAAC;CAAA,AAvBD,CAAuC,KAAK,CAAC,aAAa,GAuBzD;SAvBY,iBAAiB"}
|
package/core/DocumentTitle.d.ts
CHANGED
|
@@ -23,6 +23,6 @@ export declare class DocumentTitle extends React.PureComponent<Props> {
|
|
|
23
23
|
componentDidUpdate(prevProps: Readonly<Props>): void;
|
|
24
24
|
componentWillUnmount(): void;
|
|
25
25
|
updateTitle: () => void;
|
|
26
|
-
render(): React.ReactElement<any, string | React.JSXElementConstructor<any
|
|
26
|
+
render(): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
|
|
27
27
|
}
|
|
28
28
|
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { SafeReactChildren, SafeReactChild, StringKey } from "../../internal/type";
|
|
3
|
+
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
|
+
fixed?: boolean;
|
|
9
|
+
disableSelection?: (data: RowType, rowIndex: number) => boolean;
|
|
10
|
+
disableSelectAll?: boolean;
|
|
11
|
+
title?: React.ReactElement | React.ReactChild;
|
|
12
|
+
};
|
|
13
|
+
export declare type VirtualTableColumn<RowType extends object> = {
|
|
14
|
+
title: React.ReactElement | React.ReactChild;
|
|
15
|
+
width: number;
|
|
16
|
+
renderData: (record: RowType, rowIndex: number) => SafeReactChildren | undefined;
|
|
17
|
+
align?: "left" | "right" | "center";
|
|
18
|
+
display?: "default" | "hidden";
|
|
19
|
+
fixed?: "left" | "right";
|
|
20
|
+
colSpan?: (record: RowType, rowIndex: number, colIndex: number) => number;
|
|
21
|
+
};
|
|
22
|
+
export interface VirtualTableProps<RowType extends object> {
|
|
23
|
+
dataSource: RowType[];
|
|
24
|
+
columns: VirtualTableColumn<RowType>[];
|
|
25
|
+
scrollY: number;
|
|
26
|
+
rowHeight: number | ((rowIndex: number) => number);
|
|
27
|
+
className?: string;
|
|
28
|
+
rowClassName?: string;
|
|
29
|
+
scrollX?: number;
|
|
30
|
+
loading?: boolean;
|
|
31
|
+
emptyPlaceholder?: SafeReactChild;
|
|
32
|
+
rowSelection?: VirtualTableRowSelection<RowType>;
|
|
33
|
+
/**
|
|
34
|
+
* Default: index
|
|
35
|
+
*/
|
|
36
|
+
rowKey?: StringKey<RowType> | "index";
|
|
37
|
+
}
|
|
38
|
+
export declare const VirtualTable: (<RowType extends object>({ columns, rowHeight, scrollY, dataSource, className, rowClassName, loading, emptyPlaceholder, rowSelection, scrollX, rowKey, }: VirtualTableProps<RowType>) => JSX.Element) & {
|
|
39
|
+
displayName: string;
|
|
40
|
+
};
|
|
@@ -0,0 +1,123 @@
|
|
|
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
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
13
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
14
|
+
if (!m) return o;
|
|
15
|
+
var i = m.call(o), r, ar = [], e;
|
|
16
|
+
try {
|
|
17
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
18
|
+
}
|
|
19
|
+
catch (error) { e = { error: error }; }
|
|
20
|
+
finally {
|
|
21
|
+
try {
|
|
22
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
23
|
+
}
|
|
24
|
+
finally { if (e) throw e.error; }
|
|
25
|
+
}
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
29
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
30
|
+
if (ar || !(i in from)) {
|
|
31
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
32
|
+
ar[i] = from[i];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
36
|
+
};
|
|
37
|
+
import React from "react";
|
|
38
|
+
import { useVirtual } from "react-virtual";
|
|
39
|
+
import { ArrayUtil } from "../../internal/ArrayUtil";
|
|
40
|
+
import { Spin } from "../Spin";
|
|
41
|
+
import { useRowSelection } from "./useRowSelection";
|
|
42
|
+
import { useScrollToEdge } from "./useScrollToEdge";
|
|
43
|
+
import "./index.less";
|
|
44
|
+
var headerHeight = 50;
|
|
45
|
+
var scrollBarSize = 10;
|
|
46
|
+
export var VirtualTable = Object.assign(function (_a) {
|
|
47
|
+
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, scrollX = _a.scrollX, _b = _a.rowKey, rowKey = _b === void 0 ? "index" : _b;
|
|
48
|
+
var size = dataSource.length;
|
|
49
|
+
var scrollContentRef = React.useRef(null);
|
|
50
|
+
var estimateSize = React.useCallback(function (rowIndex) { return (typeof rowHeight === "function" ? rowHeight(rowIndex) : rowHeight); }, [rowHeight]);
|
|
51
|
+
var transformedColumns = useRowSelection({ columns: columns, dataSource: dataSource, rowSelection: rowSelection, rowKey: rowKey });
|
|
52
|
+
var _c = useVirtual({ size: size, parentRef: scrollContentRef, estimateSize: estimateSize, paddingStart: headerHeight }), virtualItems = _c.virtualItems, totalSize = _c.totalSize;
|
|
53
|
+
var _d = useScrollToEdge(scrollContentRef), onScroll = _d.onScroll, isScrollToLeft = _d.isScrollToLeft, isScrollToRight = _d.isScrollToRight;
|
|
54
|
+
var _e = __read(React.useState([]), 2), colWidths = _e[0], setColWidths = _e[1];
|
|
55
|
+
var headersRef = React.useRef(null);
|
|
56
|
+
var isScrollable = totalSize > scrollY;
|
|
57
|
+
var isReady = colWidths.length > 0;
|
|
58
|
+
var scrollContainerHeight = scrollY + headerHeight + (isScrollable ? scrollBarSize : 0);
|
|
59
|
+
var getColWidths = function () {
|
|
60
|
+
if (headersRef.current) {
|
|
61
|
+
var widths_1 = [];
|
|
62
|
+
var headers = headersRef.current.querySelectorAll(".table-header");
|
|
63
|
+
headers.forEach(function (header) {
|
|
64
|
+
var width = header.getBoundingClientRect().width;
|
|
65
|
+
widths_1.push(width);
|
|
66
|
+
});
|
|
67
|
+
setColWidths(widths_1);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
var stickyPosition = React.useMemo(function () {
|
|
71
|
+
var result = {};
|
|
72
|
+
var left = [];
|
|
73
|
+
var right = [];
|
|
74
|
+
var leftFixedCols = ArrayUtil.compactMap(transformedColumns, function (_, columnIndex) { return (_.fixed === "left" ? { columnIndex: columnIndex, width: colWidths[columnIndex] } : null); });
|
|
75
|
+
var rightFixedCols = ArrayUtil.compactMap(transformedColumns, function (_, columnIndex) { return (_.fixed === "right" ? { columnIndex: columnIndex, width: colWidths[columnIndex] } : null); }).reverse();
|
|
76
|
+
leftFixedCols.forEach(function (column, idx) {
|
|
77
|
+
var stackedPositionValue = left.reduce(function (acc, prev) { return acc + prev; }, 0);
|
|
78
|
+
left.push(column.width);
|
|
79
|
+
result[column.columnIndex] = { value: stackedPositionValue, isLast: idx === leftFixedCols.length - 1 };
|
|
80
|
+
});
|
|
81
|
+
rightFixedCols.forEach(function (column, idx) {
|
|
82
|
+
var stackedPositionValue = right.reduce(function (acc, prev) { return acc + prev; }, 0);
|
|
83
|
+
right.unshift(column.width);
|
|
84
|
+
result[column.columnIndex] = { value: stackedPositionValue, isLast: idx === rightFixedCols.length - 1 };
|
|
85
|
+
});
|
|
86
|
+
return result;
|
|
87
|
+
}, [colWidths, transformedColumns]);
|
|
88
|
+
var getFixedColStyle = function (fixed, columnIndex) {
|
|
89
|
+
return {
|
|
90
|
+
left: fixed === "left" ? stickyPosition[columnIndex].value : undefined,
|
|
91
|
+
right: fixed === "right" ? stickyPosition[columnIndex].value : undefined,
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
var getFixedColClassNames = function (fixed, columnIndex) {
|
|
95
|
+
var isFixedClassName = fixed ? "fixed" : "";
|
|
96
|
+
var isLastFixedClassName = fixed && stickyPosition[columnIndex].isLast ? "last" : "";
|
|
97
|
+
var fixedPositionClassName = fixed;
|
|
98
|
+
var hideShadowClassName = (fixed === "left" && isScrollToLeft) || (fixed === "right" && isScrollToRight) ? "hide-shadow" : "";
|
|
99
|
+
return [isFixedClassName, isLastFixedClassName, fixedPositionClassName, hideShadowClassName];
|
|
100
|
+
};
|
|
101
|
+
// get the correct column width with the occurrence of scroll bar
|
|
102
|
+
React.useEffect(function () {
|
|
103
|
+
getColWidths();
|
|
104
|
+
}, [isScrollable]);
|
|
105
|
+
return (React.createElement("div", { className: ["g-virtual-table", className].join(" "), style: { width: scrollX || "100%" } }, React.createElement("div", { className: "scroll-content", ref: scrollContentRef, style: { height: scrollContainerHeight }, onScroll: onScroll },
|
|
106
|
+
React.createElement("div", { className: "table", style: { height: totalSize } },
|
|
107
|
+
React.createElement("div", { className: "table-headers", ref: headersRef, style: { height: headerHeight, width: isScrollable && !isReady ? "calc(100% - ".concat(scrollBarSize, "px)") : "100%" } }, transformedColumns.map(function (_a, columnIndex) {
|
|
108
|
+
var title = _a.title, width = _a.width, align = _a.align, fixed = _a.fixed, display = _a.display;
|
|
109
|
+
return (React.createElement("div", { className: __spreadArray(["table-header"], __read(getFixedColClassNames(fixed, columnIndex)), false).join(" "), key: columnIndex, style: __assign({ display: display !== "hidden" ? "flex" : "none", flex: "1 0 ".concat(width, "px"), textAlign: align }, getFixedColStyle(fixed, columnIndex)) }, title));
|
|
110
|
+
})),
|
|
111
|
+
React.createElement("div", { className: "table-body", style: { height: "calc(100% - ".concat(headerHeight, "px)") } }, loading ? (React.createElement(Spin, { spinning: loading })) : dataSource.length === 0 ? (emptyPlaceholder || "暂无数据") : (isReady &&
|
|
112
|
+
virtualItems.map(function (virtualItem) {
|
|
113
|
+
var rowIndex = virtualItem.index;
|
|
114
|
+
var currentData = dataSource[rowIndex];
|
|
115
|
+
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)") } }, transformedColumns.map(function (column, columnIndex) {
|
|
116
|
+
var colSpan = column.colSpan ? column.colSpan(currentData, rowIndex, columnIndex) : 1;
|
|
117
|
+
var cellWidth = colSpan > 1 ? colWidths.slice(columnIndex, columnIndex + colSpan).reduce(function (acc, curr) { return acc + curr; }, 0) : colWidths[columnIndex];
|
|
118
|
+
var renderData = column.display !== "hidden" && column.renderData(currentData, rowIndex);
|
|
119
|
+
return (renderData && (React.createElement("div", { className: __spreadArray(["table-cell"], __read(getFixedColClassNames(column.fixed, columnIndex)), false).join(" "), key: columnIndex, style: __assign({ height: "100%", width: cellWidth, textAlign: column.align }, getFixedColStyle(column.fixed, columnIndex)) }, renderData)));
|
|
120
|
+
})));
|
|
121
|
+
})))))));
|
|
122
|
+
}, { displayName: "VirtualTable" });
|
|
123
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/VirtualTable/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
.fixed-column-shadow(@position) {
|
|
2
|
+
content: "";
|
|
3
|
+
position: absolute;
|
|
4
|
+
width: 30px;
|
|
5
|
+
height: 100%;
|
|
6
|
+
pointer-events: none;
|
|
7
|
+
background-color: transparent;
|
|
8
|
+
top: 0;
|
|
9
|
+
bottom: -1px;
|
|
10
|
+
transition: box-shadow 0.3s;
|
|
11
|
+
|
|
12
|
+
& when (@position = "right") {
|
|
13
|
+
left: 0;
|
|
14
|
+
transform: translate(-100%);
|
|
15
|
+
box-shadow: inset -10px 0 8px -8px #00000026;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
& when (@position = "left") {
|
|
19
|
+
right: 0;
|
|
20
|
+
transform: translate(100%);
|
|
21
|
+
box-shadow: inset 10px 0 8px -8px #00000026;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.g-virtual-table {
|
|
26
|
+
position: relative;
|
|
27
|
+
|
|
28
|
+
.scroll-content {
|
|
29
|
+
width: 100%;
|
|
30
|
+
overflow: auto;
|
|
31
|
+
|
|
32
|
+
.table {
|
|
33
|
+
position: relative;
|
|
34
|
+
min-height: 100%;
|
|
35
|
+
|
|
36
|
+
.table-headers {
|
|
37
|
+
display: flex;
|
|
38
|
+
flex-wrap: nowrap;
|
|
39
|
+
position: sticky;
|
|
40
|
+
top: 0;
|
|
41
|
+
z-index: 10;
|
|
42
|
+
|
|
43
|
+
.table-header {
|
|
44
|
+
display: flex;
|
|
45
|
+
justify-content: center;
|
|
46
|
+
align-items: center;
|
|
47
|
+
background-color: #f2f2f2;
|
|
48
|
+
height: 100%;
|
|
49
|
+
position: relative;
|
|
50
|
+
|
|
51
|
+
&:not(:last-of-type)::before {
|
|
52
|
+
background-color: rgb(0 0 0 / 6%);
|
|
53
|
+
content: "";
|
|
54
|
+
height: 60%;
|
|
55
|
+
position: absolute;
|
|
56
|
+
right: 0;
|
|
57
|
+
top: 50%;
|
|
58
|
+
transform: translateY(-50%);
|
|
59
|
+
transition: background-color 0.3s;
|
|
60
|
+
width: 1px;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
&.fixed {
|
|
64
|
+
position: sticky;
|
|
65
|
+
z-index: 5;
|
|
66
|
+
|
|
67
|
+
&.last {
|
|
68
|
+
&.left {
|
|
69
|
+
&::after {
|
|
70
|
+
.fixed-column-shadow("left");
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&.right {
|
|
75
|
+
&::after {
|
|
76
|
+
.fixed-column-shadow("right");
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
&.hide-shadow::after {
|
|
81
|
+
box-shadow: none;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.table-body {
|
|
89
|
+
display: flex;
|
|
90
|
+
justify-content: center;
|
|
91
|
+
align-items: center;
|
|
92
|
+
|
|
93
|
+
.table-row {
|
|
94
|
+
display: flex;
|
|
95
|
+
position: absolute;
|
|
96
|
+
top: 0;
|
|
97
|
+
left: 0;
|
|
98
|
+
|
|
99
|
+
.table-cell {
|
|
100
|
+
display: flex;
|
|
101
|
+
justify-content: center;
|
|
102
|
+
align-items: center;
|
|
103
|
+
background-color: #fff;
|
|
104
|
+
word-break: break-word;
|
|
105
|
+
|
|
106
|
+
&.fixed {
|
|
107
|
+
position: sticky;
|
|
108
|
+
z-index: 5;
|
|
109
|
+
|
|
110
|
+
&.last {
|
|
111
|
+
&.left {
|
|
112
|
+
&::after {
|
|
113
|
+
.fixed-column-shadow("left");
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
&.right {
|
|
118
|
+
&::after {
|
|
119
|
+
.fixed-column-shadow("right");
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
&.hide-shadow::after {
|
|
124
|
+
box-shadow: none;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { VirtualTableRowSelection, VirtualTableColumn } from "./index";
|
|
3
|
+
interface Props<RowType extends object> {
|
|
4
|
+
columns: VirtualTableColumn<RowType>[];
|
|
5
|
+
dataSource: RowType[];
|
|
6
|
+
rowSelection?: VirtualTableRowSelection<RowType>;
|
|
7
|
+
rowKey: "index" | React.Key;
|
|
8
|
+
}
|
|
9
|
+
export declare const useRowSelection: <RowType extends object>({ columns, dataSource, rowSelection, rowKey }: Props<RowType>) => VirtualTableColumn<RowType>[];
|
|
10
|
+
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
|
+
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
|
+
import { Checkbox } from "../Checkbox";
|
|
28
|
+
import { ArrayUtil } from "../../internal/ArrayUtil";
|
|
29
|
+
export var useRowSelection = function (_a) {
|
|
30
|
+
var columns = _a.columns, dataSource = _a.dataSource, rowSelection = _a.rowSelection, rowKey = _a.rowKey;
|
|
31
|
+
var transformedColumns = React.useMemo(function () {
|
|
32
|
+
if (!rowSelection) {
|
|
33
|
+
return __spreadArray([], __read(columns), false);
|
|
34
|
+
}
|
|
35
|
+
var width = rowSelection.width, onChange = rowSelection.onChange, selectedRowKeys = rowSelection.selectedRowKeys, fixed = rowSelection.fixed, disableSelectAll = rowSelection.disableSelectAll, disableSelection = rowSelection.disableSelection, title = rowSelection.title;
|
|
36
|
+
var onSelectAll = function (val) {
|
|
37
|
+
var allSelectedRowKeys = dataSource.map(function (_, idx) { return (rowKey === "index" ? idx : _[rowKey]); });
|
|
38
|
+
val ? onChange(allSelectedRowKeys, dataSource) : onChange([], []);
|
|
39
|
+
};
|
|
40
|
+
var rowSelectionColumn = {
|
|
41
|
+
width: width,
|
|
42
|
+
fixed: fixed ? "left" : undefined,
|
|
43
|
+
title: title || (React.createElement(Checkbox, { disabled: disableSelectAll || dataSource.length === 0, indeterminate: selectedRowKeys.length >= 1 && selectedRowKeys.length !== dataSource.length, onChange: onSelectAll, value: dataSource.length !== 0 && selectedRowKeys ? selectedRowKeys.length === dataSource.length : false })),
|
|
44
|
+
renderData: function (data, rowIndex) {
|
|
45
|
+
var dataKey = rowKey === "index" ? rowIndex : data[rowKey];
|
|
46
|
+
var isChecked = selectedRowKeys.includes(dataKey);
|
|
47
|
+
var toggledSelectedRowKeys = ArrayUtil.toggleElement(selectedRowKeys, dataKey);
|
|
48
|
+
return (React.createElement(Checkbox, { disabled: disableSelection === null || disableSelection === void 0 ? void 0 : disableSelection(data, rowIndex), value: isChecked, onChange: function () {
|
|
49
|
+
return onChange(toggledSelectedRowKeys, dataSource.filter(function (_, idx) { return toggledSelectedRowKeys.includes(rowKey ? _[rowKey] : idx); }));
|
|
50
|
+
} }));
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
return __spreadArray([rowSelectionColumn], __read(columns), false);
|
|
54
|
+
}, [columns, dataSource, rowKey, rowSelection]);
|
|
55
|
+
return transformedColumns;
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=useRowSelection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRowSelection.js","sourceRoot":"","sources":["../../../src/core/VirtualTable/useRowSelection.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
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 useScrollToEdge = function (scrollContentRef) {
|
|
19
|
+
var _a = __read(React.useState(true), 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(true), 2), isScrollToTop = _c[0], setIsScrollToTop = _c[1];
|
|
22
|
+
var _d = __read(React.useState(false), 2), isScrollToBottom = _d[0], setIsScrollToBottom = _d[1];
|
|
23
|
+
var onScroll = React.useCallback(function () {
|
|
24
|
+
var isScrollLeft = scrollContentRef.current ? scrollContentRef.current.scrollLeft <= 1 : false;
|
|
25
|
+
var isScrollRight = scrollContentRef.current ? scrollContentRef.current.scrollLeft >= scrollContentRef.current.scrollWidth - scrollContentRef.current.clientWidth : false;
|
|
26
|
+
var isScrollTop = scrollContentRef.current ? scrollContentRef.current.scrollTop <= 1 : false;
|
|
27
|
+
var isScrollBottom = scrollContentRef.current ? scrollContentRef.current.scrollTop >= scrollContentRef.current.scrollHeight - scrollContentRef.current.clientHeight : false;
|
|
28
|
+
setIsScrollToLeft(isScrollLeft);
|
|
29
|
+
setIsScrollToRight(isScrollRight);
|
|
30
|
+
setIsScrollToTop(isScrollTop);
|
|
31
|
+
setIsScrollToBottom(isScrollBottom);
|
|
32
|
+
}, [scrollContentRef]);
|
|
33
|
+
return {
|
|
34
|
+
onScroll: onScroll,
|
|
35
|
+
isScrollToLeft: isScrollToLeft,
|
|
36
|
+
isScrollToRight: isScrollToRight,
|
|
37
|
+
isScrollToTop: isScrollToTop,
|
|
38
|
+
isScrollToBottom: isScrollToBottom,
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=useScrollToEdge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useScrollToEdge.js","sourceRoot":"","sources":["../../../src/core/VirtualTable/useScrollToEdge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,IAAM,eAAe,GAAG,UAAC,gBAA8C;IACpE,IAAA,KAAA,OAAsC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAA,EAAzD,cAAc,QAAA,EAAE,iBAAiB,QAAwB,CAAC;IAC3D,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,IAAI,CAAC,IAAA,EAAvD,aAAa,QAAA,EAAE,gBAAgB,QAAwB,CAAC;IACzD,IAAA,KAAA,OAA0C,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAA,EAA9D,gBAAgB,QAAA,EAAE,mBAAmB,QAAyB,CAAC;IAEtE,IAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC;QAC/B,IAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACjG,IAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,IAAI,gBAAgB,CAAC,OAAO,CAAC,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;QAE5K,IAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/F,IAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,IAAI,gBAAgB,CAAC,OAAO,CAAC,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9K,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAChC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAClC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC9B,mBAAmB,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,OAAO;QACH,QAAQ,UAAA;QACR,cAAc,gBAAA;QACd,eAAe,iBAAA;QACf,aAAa,eAAA;QACb,gBAAgB,kBAAA;KACnB,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { VariableSizeList } from "react-window";
|
|
3
|
+
import type { CellMeasurerCache } from "./CellMeasurerCache";
|
|
4
|
+
import type { Measure } from "./type";
|
|
5
|
+
export declare type RegisterChild = (instance: HTMLElement | null) => void;
|
|
6
|
+
export interface CellMeasurerChildProps {
|
|
7
|
+
registerChild: RegisterChild;
|
|
8
|
+
measure: Measure;
|
|
9
|
+
}
|
|
10
|
+
interface Props {
|
|
11
|
+
rowIndex: number;
|
|
12
|
+
cache: CellMeasurerCache;
|
|
13
|
+
children: React.FunctionComponent<CellMeasurerChildProps>;
|
|
14
|
+
parent: React.RefObject<VariableSizeList>;
|
|
15
|
+
}
|
|
16
|
+
export declare function CellMeasurer(props: Props): React.ReactElement<any, any> | null;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export function CellMeasurer(props) {
|
|
3
|
+
var cache = props.cache, rowIndex = props.rowIndex, children = props.children, parent = props.parent;
|
|
4
|
+
var childRef = React.useRef();
|
|
5
|
+
var calculateSize = React.useCallback(function (node) {
|
|
6
|
+
var originalStyleHeight = node.style.height;
|
|
7
|
+
node.style.height = "auto";
|
|
8
|
+
var height = node.getBoundingClientRect().height;
|
|
9
|
+
node.style.height = originalStyleHeight;
|
|
10
|
+
return height;
|
|
11
|
+
}, []);
|
|
12
|
+
var measure = React.useCallback(function () {
|
|
13
|
+
var _a;
|
|
14
|
+
if (childRef.current) {
|
|
15
|
+
var height = calculateSize(childRef.current);
|
|
16
|
+
cache.set(height, rowIndex);
|
|
17
|
+
(_a = parent.current) === null || _a === void 0 ? void 0 : _a.resetAfterIndex(rowIndex);
|
|
18
|
+
}
|
|
19
|
+
}, [cache, parent, calculateSize, rowIndex]);
|
|
20
|
+
var registerChild = function (node) {
|
|
21
|
+
var _a;
|
|
22
|
+
if (node) {
|
|
23
|
+
childRef.current = node;
|
|
24
|
+
var height = calculateSize(node);
|
|
25
|
+
if (!cache.has(rowIndex)) {
|
|
26
|
+
cache.set(height, rowIndex);
|
|
27
|
+
(_a = parent.current) === null || _a === void 0 ? void 0 : _a.resetAfterIndex(rowIndex);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
childRef.current = null;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
return children({ registerChild: registerChild, measure: measure });
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=CellMeasurer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CellMeasurer.js","sourceRoot":"","sources":["../../../src/core/VirtualizedFlatList/CellMeasurer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAmB1B,MAAM,UAAU,YAAY,CAAC,KAAY;IAC9B,IAAA,KAAK,GAAgC,KAAK,MAArC,EAAE,QAAQ,GAAsB,KAAK,SAA3B,EAAE,QAAQ,GAAY,KAAK,SAAjB,EAAE,MAAM,GAAI,KAAK,OAAT,CAAU;IAClD,IAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAsB,CAAC;IAEpD,IAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,UAAC,IAAiB;QACtD,IAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACpB,IAAA,MAAM,GAAI,IAAI,CAAC,qBAAqB,EAAE,OAAhC,CAAiC;QAC9C,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC;QACxC,OAAO,MAAM,CAAC;IAClB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,OAAO,GAAY,KAAK,CAAC,WAAW,CAAC;;QACvC,IAAI,QAAQ,CAAC,OAAO,EAAE;YAClB,IAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC/C,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC5B,MAAA,MAAM,CAAC,OAAO,0CAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;SAC7C;IACL,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE7C,IAAM,aAAa,GAAG,UAAC,IAAwB;;QAC3C,IAAI,IAAI,EAAE;YACN,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,IAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBACtB,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC5B,MAAA,MAAM,CAAC,OAAO,0CAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;aAC7C;SACJ;aAAM;YACH,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;SAC3B;IACL,CAAC,CAAC;IAEF,OAAO,QAAQ,CAAC,EAAC,aAAa,eAAA,EAAE,OAAO,SAAA,EAAC,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
interface CellMeasurerCacheOptions {
|
|
2
|
+
defaultHeight: number;
|
|
3
|
+
}
|
|
4
|
+
export declare class CellMeasurerCache {
|
|
5
|
+
private cellHeightCache;
|
|
6
|
+
private defaultHeight;
|
|
7
|
+
constructor(options: CellMeasurerCacheOptions);
|
|
8
|
+
private createCacheKey;
|
|
9
|
+
clearAll(): void;
|
|
10
|
+
has(index: number): boolean;
|
|
11
|
+
set(height: number, index: number): void;
|
|
12
|
+
clear(index: number): void;
|
|
13
|
+
getKey(index: number): string;
|
|
14
|
+
itemSize(index: number): number;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
var CellMeasurerCache = /** @class */ (function () {
|
|
2
|
+
function CellMeasurerCache(options) {
|
|
3
|
+
this.defaultHeight = options.defaultHeight;
|
|
4
|
+
this.cellHeightCache = {};
|
|
5
|
+
}
|
|
6
|
+
CellMeasurerCache.prototype.createCacheKey = function (index) {
|
|
7
|
+
return "key-".concat(index);
|
|
8
|
+
};
|
|
9
|
+
CellMeasurerCache.prototype.clearAll = function () {
|
|
10
|
+
this.cellHeightCache = {};
|
|
11
|
+
};
|
|
12
|
+
CellMeasurerCache.prototype.has = function (index) {
|
|
13
|
+
return this.cellHeightCache[this.createCacheKey(index)] !== undefined;
|
|
14
|
+
};
|
|
15
|
+
CellMeasurerCache.prototype.set = function (height, index) {
|
|
16
|
+
this.cellHeightCache[this.createCacheKey(index)] = height;
|
|
17
|
+
};
|
|
18
|
+
CellMeasurerCache.prototype.clear = function (index) {
|
|
19
|
+
delete this.cellHeightCache[this.createCacheKey(index)];
|
|
20
|
+
};
|
|
21
|
+
CellMeasurerCache.prototype.getKey = function (index) {
|
|
22
|
+
return this.createCacheKey(index);
|
|
23
|
+
};
|
|
24
|
+
CellMeasurerCache.prototype.itemSize = function (index) {
|
|
25
|
+
var cachedHeight = this.cellHeightCache[this.createCacheKey(index)];
|
|
26
|
+
return cachedHeight !== null && cachedHeight !== void 0 ? cachedHeight : this.defaultHeight;
|
|
27
|
+
};
|
|
28
|
+
return CellMeasurerCache;
|
|
29
|
+
}());
|
|
30
|
+
export { CellMeasurerCache };
|
|
31
|
+
//# sourceMappingURL=CellMeasurerCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CellMeasurerCache.js","sourceRoot":"","sources":["../../../src/core/VirtualizedFlatList/CellMeasurerCache.ts"],"names":[],"mappings":"AAIA;IAII,2BAAY,OAAiC;QACzC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;IAC9B,CAAC;IAEO,0CAAc,GAAtB,UAAuB,KAAa;QAChC,OAAO,cAAO,KAAK,CAAE,CAAC;IAC1B,CAAC;IAED,oCAAQ,GAAR;QACI,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED,+BAAG,GAAH,UAAI,KAAa;QACb,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,CAAC;IAC1E,CAAC;IAED,+BAAG,GAAH,UAAI,MAAc,EAAE,KAAa;QAC7B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;IAC9D,CAAC;IAED,iCAAK,GAAL,UAAM,KAAa;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,kCAAM,GAAN,UAAO,KAAa;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,oCAAQ,GAAR,UAAS,KAAa;QAClB,IAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,OAAO,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,IAAI,CAAC,aAAa,CAAC;IAC9C,CAAC;IACL,wBAAC;AAAD,CAAC,AArCD,IAqCC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { FooterData, Measure } from "./type";
|
|
3
|
+
interface Props extends FooterData {
|
|
4
|
+
style: React.CSSProperties;
|
|
5
|
+
measure: Measure;
|
|
6
|
+
}
|
|
7
|
+
export declare const Footer: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
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 { Spin } from "../Spin";
|
|
14
|
+
export var Footer = React.forwardRef(function (props, ref) {
|
|
15
|
+
var loading = props.loading, ended = props.ended, loadingMessage = props.loadingMessage, endMessage = props.endMessage, style = props.style, measure = props.measure;
|
|
16
|
+
var measureRef = React.useRef(measure);
|
|
17
|
+
measureRef.current = measure;
|
|
18
|
+
React.useEffect(function () {
|
|
19
|
+
measureRef.current();
|
|
20
|
+
}, [loading, loadingMessage, endMessage, ended]);
|
|
21
|
+
return (React.createElement("div", { style: __assign({}, style), ref: ref, className: "g-flat-list-footer" },
|
|
22
|
+
loading && (React.createElement("div", null,
|
|
23
|
+
React.createElement(Spin, { spinning: true, size: "small" }),
|
|
24
|
+
React.createElement("div", null, loadingMessage !== null && loadingMessage !== void 0 ? loadingMessage : "loading..."))),
|
|
25
|
+
ended && !loading && (endMessage !== null && endMessage !== void 0 ? endMessage : "All data loaded")));
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=Footer.js.map
|