@pinnacle0/web-ui 0.2.102 → 0.3.1

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.
@@ -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(): {} | null;
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 || null);
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;AAUvC;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,IAAI,IAAI,CAC9B,CAAC;IACN,CAAC;IArBM,6BAAW,GAAG,mBAAmB,CAAC;IAsB7C,wBAAC;CAAA,AAvBD,CAAuC,KAAK,CAAC,aAAa,GAuBzD;SAvBY,iBAAiB"}
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"}
@@ -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>> & React.ReactNode;
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAElD,OAAO,cAAc,CAAC;AA4CtB,IAAM,YAAY,GAAG,EAAE,CAAC;AACxB,IAAM,aAAa,GAAG,EAAE,CAAC;AAEzB,MAAM,CAAC,IAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CACrC,UAAkC,EAYL;QAXzB,OAAO,aAAA,EACP,SAAS,eAAA,EACT,OAAO,aAAA,EACP,UAAU,gBAAA,EACV,SAAS,eAAA,EACT,YAAY,kBAAA,EACZ,OAAO,aAAA,EACP,gBAAgB,sBAAA,EAChB,YAAY,kBAAA,EACZ,OAAO,aAAA,EACP,cAAgB,EAAhB,MAAM,mBAAG,OAAO,KAAA;IAEhB,IAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,IAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC5D,IAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,UAAC,QAAgB,IAAK,OAAA,CAAC,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAnE,CAAmE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/I,IAAM,kBAAkB,GAAG,eAAe,CAAC,EAAC,OAAO,SAAA,EAAE,UAAU,YAAA,EAAE,YAAY,cAAA,EAAE,MAAM,QAAA,EAAC,CAAC,CAAC;IAClF,IAAA,KAA4B,UAAU,CAAC,EAAC,IAAI,MAAA,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,cAAA,EAAE,YAAY,EAAE,YAAY,EAAC,CAAC,EAApH,YAAY,kBAAA,EAAE,SAAS,eAA6F,CAAC;IACtH,IAAA,KAA8C,eAAe,CAAC,gBAAgB,CAAC,EAA9E,QAAQ,cAAA,EAAE,cAAc,oBAAA,EAAE,eAAe,qBAAqC,CAAC;IAEhF,IAAA,KAAA,OAA4B,KAAK,CAAC,QAAQ,CAAW,EAAE,CAAC,IAAA,EAAvD,SAAS,QAAA,EAAE,YAAY,QAAgC,CAAC;IAC/D,IAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEtD,IAAM,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;IACzC,IAAM,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAErC,IAAM,qBAAqB,GAAG,OAAO,GAAG,YAAY,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1F,IAAM,YAAY,GAAG;QACjB,IAAI,UAAU,CAAC,OAAO,EAAE;YACpB,IAAM,QAAM,GAAa,EAAE,CAAC;YAC5B,IAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;YACrE,OAAO,CAAC,OAAO,CAAC,UAAA,MAAM;gBACX,IAAA,KAAK,GAAI,MAAM,CAAC,qBAAqB,EAAE,MAAlC,CAAmC;gBAC/C,QAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,YAAY,CAAC,QAAM,CAAC,CAAC;SACxB;IACL,CAAC,CAAC;IAEF,IAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;QACjC,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,SAAS,CAAC,WAAW,CAAC,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAA1E,CAA0E,CAAC,CAAC;QAC/J,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,SAAS,CAAC,WAAW,CAAC,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAA3E,CAA2E,CAAC,CAAC,OAAO,EAAE,CAAC;QAE3K,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,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAEpC,IAAM,gBAAgB,GAAG,UAAC,KAAmC,EAAE,WAAmB;QAC9E,OAAO;YACH,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACtE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SAC3E,CAAC;IACN,CAAC,CAAC;IAEF,IAAM,qBAAqB,GAAG,UAAC,KAAmC,EAAE,WAAmB;QACnF,IAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,IAAM,oBAAoB,GAAG,KAAK,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,IAAM,sBAAsB,GAAG,KAAK,CAAC;QACrC,IAAM,mBAAmB,GAAG,CAAC,KAAK,KAAK,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QAChI,OAAO,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,mBAAmB,CAAC,CAAC;IACjG,CAAC,CAAC;IAEF,iEAAiE;IACjE,KAAK,CAAC,SAAS,CAAC;QACZ,YAAY,EAAE,CAAC;IACnB,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,OAAO,CACH,6BAAK,SAAS,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAC,KAAK,EAAE,OAAO,IAAI,MAAM,EAAC,IAEnF,6BAAK,SAAS,EAAC,gBAAgB,EAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,qBAAqB,EAAC,EAAE,QAAQ,EAAE,QAAQ;QAC7G,6BAAK,SAAS,EAAC,OAAO,EAAC,KAAK,EAAE,EAAC,MAAM,EAAE,SAAS,EAAC;YAC7C,6BAAK,SAAS,EAAC,eAAe,EAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAe,aAAa,QAAK,CAAC,CAAC,CAAC,MAAM,EAAC,IACtJ,kBAAkB,CAAC,GAAG,CAAC,UAAC,EAAqC,EAAE,WAAW;oBAAjD,KAAK,WAAA,EAAE,KAAK,WAAA,EAAE,KAAK,WAAA,EAAE,KAAK,WAAA,EAAE,OAAO,aAAA;gBACzD,OAAO,CACH,6BACI,SAAS,EAAE,eAAC,cAAc,UAAK,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,UAAE,IAAI,CAAC,GAAG,CAAC,EACnF,GAAG,EAAE,WAAW,EAChB,KAAK,aAAG,OAAO,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,cAAO,KAAK,OAAI,EAAE,SAAS,EAAE,KAAK,IAAK,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,KAEzI,KAAK,CACJ,CACT,CAAC;YACN,CAAC,CAAC,CACA;YACN,6BAAK,SAAS,EAAC,YAAY,EAAC,KAAK,EAAE,EAAC,MAAM,EAAE,sBAAe,YAAY,QAAK,EAAC,IACxE,OAAO,CAAC,CAAC,CAAC,CACP,oBAAC,IAAI,IAAC,QAAQ,EAAE,OAAO,GAAI,CAC9B,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC1B,gBAAgB,IAAI,MAAM,CAC7B,CAAC,CAAC,CAAC,CACA,OAAO;gBACP,YAAY,CAAC,GAAG,CAAC,UAAA,WAAW;oBACxB,IAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC;oBACnC,IAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACzC,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,IAEjF,kBAAkB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,WAAW;wBACxC,IAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACxF,IAAM,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,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,SAAS,CAAC,WAAW,CAAC,CAAC;wBAClJ,IAAM,UAAU,GAAG,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;wBAC3F,OAAO,CACH,UAAU,IAAI,CACV,6BACI,SAAS,EAAE,eAAC,YAAY,UAAK,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,UAAE,IAAI,CAAC,GAAG,CAAC,EACxF,GAAG,EAAE,WAAW,EAChB,KAAK,aACD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,MAAM,CAAC,KAAK,IACpB,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,KAGjD,UAAU,CACT,CACT,CACJ,CAAC;oBACN,CAAC,CAAC,CACA,CACT,CAAC;gBACN,CAAC,CAAC,CACL,CACC,CACJ,CACJ,CAER,CACT,CAAC;AACN,CAAC,EACD,EAAC,WAAW,EAAE,cAAc,EAAC,CAChC,CAAC"}
@@ -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,8 @@
1
+ import React from "react";
2
+ export declare const useScrollToEdge: (scrollContentRef: React.RefObject<HTMLElement>) => {
3
+ onScroll: () => void;
4
+ isScrollToLeft: boolean;
5
+ isScrollToRight: boolean;
6
+ isScrollToTop: boolean;
7
+ isScrollToBottom: boolean;
8
+ };
@@ -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"}
@@ -17,5 +17,5 @@ export interface Props {
17
17
  export declare class WithExplanation extends React.PureComponent<Props> {
18
18
  static displayName: string;
19
19
  static defaultProps: PickOptional<Props>;
20
- render(): string | number | true | JSX.Element | import("../../internal/type").SafeReactChild[] | (false & {});
20
+ render(): string | number | true | JSX.Element | import("../../internal/type").SafeReactChild[];
21
21
  }
@@ -15,9 +15,15 @@ declare function toObject<T, V>(array: ReadonlyArray<T>, mapperCallback: (item:
15
15
  * @param callback Callback to transform item
16
16
  */
17
17
  declare function compactMap<T, V>(array: ReadonlyArray<T>, callback: (item: T, index: number) => V): Array<NonNullable<V>>;
18
+ /**
19
+ * If element exists in array, it will return a new array without this element.
20
+ * If element not exists in array, it will return a new array with this element in the last.
21
+ */
22
+ declare function toggleElement<T>(array: ReadonlyArray<T>, element: T): T[];
18
23
  export declare const ArrayUtil: Readonly<{
19
24
  intersectionPercentage: typeof intersectionPercentage;
20
25
  toObject: typeof toObject;
21
26
  compactMap: typeof compactMap;
27
+ toggleElement: typeof toggleElement;
22
28
  }>;
23
29
  export {};
@@ -1,3 +1,28 @@
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
+ };
1
26
  /**
2
27
  * Return b's the occurrence percentage in a.
3
28
  * The ordering of a & b matters.
@@ -27,9 +52,25 @@ function toObject(array, mapperCallback) {
27
52
  function compactMap(array, callback) {
28
53
  return array.map(callback).filter(function (_) { return _ !== null && _ !== undefined && (typeof _ !== "number" || !Number.isNaN(_)); });
29
54
  }
55
+ /**
56
+ * If element exists in array, it will return a new array without this element.
57
+ * If element not exists in array, it will return a new array with this element in the last.
58
+ */
59
+ function toggleElement(array, element) {
60
+ var index = array.indexOf(element);
61
+ if (index >= 0) {
62
+ var clonedArray = __spreadArray([], __read(array), false);
63
+ clonedArray.splice(index, 1);
64
+ return clonedArray;
65
+ }
66
+ else {
67
+ return __spreadArray(__spreadArray([], __read(array), false), [element], false);
68
+ }
69
+ }
30
70
  export var ArrayUtil = Object.freeze({
31
71
  intersectionPercentage: intersectionPercentage,
32
72
  toObject: toObject,
33
73
  compactMap: compactMap,
74
+ toggleElement: toggleElement,
34
75
  });
35
76
  //# sourceMappingURL=ArrayUtil.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayUtil.js","sourceRoot":"","sources":["../../src/internal/ArrayUtil.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,SAAS,sBAAsB,CAAI,CAAM,EAAE,CAAM;IAC7C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QAChB,OAAO,CAAC,CAAC;KACZ;IACD,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAb,CAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;AAClE,CAAC;AAED,SAAS,QAAQ,CAAO,KAAuB,EAAE,cAAuD;IACpG,IAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;QACtB,IAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,UAAU,CAAO,KAAuB,EAAE,QAAuC;IACtF,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAA5E,CAA4E,CAA0B,CAAC;AAClJ,CAAC;AAED,MAAM,CAAC,IAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,sBAAsB,wBAAA;IACtB,QAAQ,UAAA;IACR,UAAU,YAAA;CACb,CAAC,CAAC"}
1
+ {"version":3,"file":"ArrayUtil.js","sourceRoot":"","sources":["../../src/internal/ArrayUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;GAGG;AACH,SAAS,sBAAsB,CAAI,CAAM,EAAE,CAAM;IAC7C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QAChB,OAAO,CAAC,CAAC;KACZ;IACD,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAb,CAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;AAClE,CAAC;AAED,SAAS,QAAQ,CAAO,KAAuB,EAAE,cAAuD;IACpG,IAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;QACtB,IAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,UAAU,CAAO,KAAuB,EAAE,QAAuC;IACtF,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAA5E,CAA4E,CAA0B,CAAC;AAClJ,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAI,KAAuB,EAAE,OAAU;IACzD,IAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,KAAK,IAAI,CAAC,EAAE;QACZ,IAAM,WAAW,4BAAO,KAAK,SAAC,CAAC;QAC/B,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7B,OAAO,WAAW,CAAC;KACtB;SAAM;QACH,8CAAW,KAAK,YAAE,OAAO,UAAE;KAC9B;AACL,CAAC;AAED,MAAM,CAAC,IAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,sBAAsB,wBAAA;IACtB,QAAQ,UAAA;IACR,UAAU,YAAA;IACV,aAAa,eAAA;CAChB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pinnacle0/web-ui",
3
- "version": "0.2.102",
3
+ "version": "0.3.1",
4
4
  "author": "Pinnacle",
5
5
  "license": "MIT",
6
6
  "sideEffects": [
@@ -24,9 +24,10 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "@ant-design/icons": "4.7.0",
27
- "antd": "4.19.4",
27
+ "antd": "4.20.1",
28
28
  "braft-editor": "2.3.9",
29
- "moment": "2.29.1"
29
+ "moment": "2.29.3",
30
+ "react-virtual": "2.10.4"
30
31
  },
31
32
  "peerDependencies": {
32
33
  "@babel/runtime": ">=7.12.1",
@@ -37,18 +38,18 @@
37
38
  "devDependencies": {
38
39
  "@babel/core": "7.17.8",
39
40
  "@babel/runtime": "7.17.8",
40
- "@testing-library/dom": "8.12.0",
41
- "@testing-library/jest-dom": "5.16.3",
42
- "@testing-library/react": "12.1.4",
43
- "@testing-library/user-event": "13.5.0",
41
+ "@testing-library/dom": "8.13.0",
42
+ "@testing-library/jest-dom": "5.16.4",
43
+ "@testing-library/react": "13.1.1",
44
+ "@testing-library/user-event": "14.1.1",
44
45
  "@types/draft-js": "0.11.9",
45
46
  "@types/history": "4.7.11",
46
- "@types/react": "17.0.43",
47
+ "@types/react": "18.0.8",
47
48
  "@types/react-dom": "17.0.14",
48
49
  "@types/react-router-dom": "5.3.2",
49
50
  "less": "4.1.2",
50
- "react": "17.0.2",
51
- "react-dom": "17.0.2",
51
+ "react": "18.1.0",
52
+ "react-dom": "18.1.0",
52
53
  "react-router-dom": "5.3.0"
53
54
  }
54
55
  }
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import ReactDOM from "react-dom";
2
+ import ReactDOM from "react-dom/client";
3
3
  import CloseOutlined from "@ant-design/icons/CloseOutlined";
4
4
  import "./index.less";
5
5
  function openImage(url) {
@@ -10,9 +10,10 @@ function openImage(url) {
10
10
  bodyElement.removeChild(divElement);
11
11
  resolve();
12
12
  };
13
- ReactDOM.render(React.createElement("div", { onClick: closeModal, className: "g-media-modal" },
13
+ bodyElement.appendChild(divElement);
14
+ ReactDOM.createRoot(divElement).render(React.createElement("div", { onClick: closeModal, className: "g-media-modal" },
14
15
  React.createElement("img", { src: url }),
15
- React.createElement(CloseOutlined, null)), divElement, function () { return bodyElement.appendChild(divElement); });
16
+ React.createElement(CloseOutlined, null)));
16
17
  });
17
18
  }
18
19
  function openVideo(url) {
@@ -23,9 +24,10 @@ function openVideo(url) {
23
24
  bodyElement.removeChild(divElement);
24
25
  resolve();
25
26
  };
26
- ReactDOM.render(React.createElement("div", { onClick: closeModal, className: "g-media-modal" },
27
+ ReactDOM.createRoot(divElement).render(React.createElement("div", { onClick: closeModal, className: "g-media-modal" },
27
28
  React.createElement("video", { src: url, autoPlay: true, controls: true, controlsList: "nodownload", muted: true }),
28
- React.createElement(CloseOutlined, null)), divElement, function () { return bodyElement.appendChild(divElement); });
29
+ React.createElement(CloseOutlined, null)));
30
+ bodyElement.appendChild(divElement);
29
31
  });
30
32
  }
31
33
  function playAudio(url, amplitude) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/MediaUtil/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,aAAa,MAAM,iCAAiC,CAAC;AAC5D,OAAO,cAAc,CAAC;AAEtB,SAAS,SAAS,CAAC,GAAW;IAC1B,OAAO,IAAI,OAAO,CAAO,UAAA,OAAO;QAC5B,IAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;QAClC,IAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,IAAM,UAAU,GAAG;YACf,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACpC,OAAO,EAAE,CAAC;QACd,CAAC,CAAC;QAEF,QAAQ,CAAC,MAAM,CACX,6BAAK,OAAO,EAAE,UAAU,EAAE,SAAS,EAAC,eAAe;YAC/C,6BAAK,GAAG,EAAE,GAAG,GAAI;YACjB,oBAAC,aAAa,OAAG,CACf,EACN,UAAU,EACV,cAAM,OAAA,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,EAAnC,CAAmC,CAC5C,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC1B,OAAO,IAAI,OAAO,CAAO,UAAA,OAAO;QAC5B,IAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;QAClC,IAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,IAAM,UAAU,GAAG;YACf,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACpC,OAAO,EAAE,CAAC;QACd,CAAC,CAAC;QAEF,QAAQ,CAAC,MAAM,CACX,6BAAK,OAAO,EAAE,UAAU,EAAE,SAAS,EAAC,eAAe;YAC/C,+BAAO,GAAG,EAAE,GAAG,EAAE,QAAQ,QAAC,QAAQ,QAAC,YAAY,EAAC,YAAY,EAAC,KAAK,SAAG;YACrE,oBAAC,aAAa,OAAG,CACf,EACN,UAAU,EACV,cAAM,OAAA,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,EAAnC,CAAmC,CAC5C,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,SAAqB;IAArB,0BAAA,EAAA,aAAqB;IACjD,IAAI;QACA;;;;WAIG;QACH,IAAM,aAAa,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,aAAa,CAAC,WAAW,GAAG,WAAW,CAAC;QACxC,IAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QACpC,IAAM,MAAM,GAAG,QAAQ,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;QAChE,IAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzB,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACvC,aAAa,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,cAAO,CAAC,CAAC,CAAC;KACxC;IAAC,OAAO,CAAC,EAAE;QACR,aAAa;KAChB;AACL,CAAC;AAED,MAAM,CAAC,IAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,SAAS,WAAA;IACT,SAAS,WAAA;IACT,SAAS,WAAA;CACZ,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/MediaUtil/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,aAAa,MAAM,iCAAiC,CAAC;AAC5D,OAAO,cAAc,CAAC;AAEtB,SAAS,SAAS,CAAC,GAAW;IAC1B,OAAO,IAAI,OAAO,CAAO,UAAA,OAAO;QAC5B,IAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;QAClC,IAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,IAAM,UAAU,GAAG;YACf,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACpC,OAAO,EAAE,CAAC;QACd,CAAC,CAAC;QAEF,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACpC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,MAAM,CAClC,6BAAK,OAAO,EAAE,UAAU,EAAE,SAAS,EAAC,eAAe;YAC/C,6BAAK,GAAG,EAAE,GAAG,GAAI;YACjB,oBAAC,aAAa,OAAG,CACf,CACT,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC1B,OAAO,IAAI,OAAO,CAAO,UAAA,OAAO;QAC5B,IAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;QAClC,IAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,IAAM,UAAU,GAAG;YACf,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACpC,OAAO,EAAE,CAAC;QACd,CAAC,CAAC;QAEF,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,MAAM,CAClC,6BAAK,OAAO,EAAE,UAAU,EAAE,SAAS,EAAC,eAAe;YAC/C,+BAAO,GAAG,EAAE,GAAG,EAAE,QAAQ,QAAC,QAAQ,QAAC,YAAY,EAAC,YAAY,EAAC,KAAK,SAAG;YACrE,oBAAC,aAAa,OAAG,CACf,CACT,CAAC;QACF,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,SAAqB;IAArB,0BAAA,EAAA,aAAqB;IACjD,IAAI;QACA;;;;WAIG;QACH,IAAM,aAAa,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,aAAa,CAAC,WAAW,GAAG,WAAW,CAAC;QACxC,IAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QACpC,IAAM,MAAM,GAAG,QAAQ,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;QAChE,IAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzB,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACvC,aAAa,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,cAAO,CAAC,CAAC,CAAC;KACxC;IAAC,OAAO,CAAC,EAAE;QACR,aAAa;KAChB;AACL,CAAC;AAED,MAAM,CAAC,IAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,SAAS,WAAA;IACT,SAAS,WAAA;IACT,SAAS,WAAA;CACZ,CAAC,CAAC"}