@are-visual/virtual-table 0.5.2 → 0.7.0
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/index.d.ts +5 -2
- package/index.esm.js +25 -23
- package/index.esm.js.map +1 -1
- package/middleware/column-resize/index.d.ts +2 -1
- package/middleware/empty/index.d.ts +2 -1
- package/middleware/expandable/index.d.ts +3 -2
- package/middleware/horizontal-scroll-bar/index.d.ts +2 -1
- package/middleware/loading/index.js +1 -1
- package/middleware/selection/index.d.ts +3 -2
- package/middleware/summary/index.d.ts +18 -5
- package/middleware/summary/index.js +30 -6
- package/middleware/summary/index.js.map +1 -1
- package/middleware/summary/styles.css +2 -2
- package/middleware/summary/styles.scss +4 -2
- package/package.json +1 -1
|
@@ -16,4 +16,5 @@ interface ResizeOptions<T = any> {
|
|
|
16
16
|
}
|
|
17
17
|
declare const columnResize: <T = any>(args?: ResizeOptions<T> | undefined) => _are_visual_virtual_table.Middleware<T>;
|
|
18
18
|
|
|
19
|
-
export {
|
|
19
|
+
export { columnResize };
|
|
20
|
+
export type { ResizeOptions };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as _are_visual_virtual_table from '@are-visual/virtual-table';
|
|
2
2
|
import { FixedType, ColumnExtra, ColumnType } from '@are-visual/virtual-table';
|
|
3
|
-
import { ReactNode, Key
|
|
3
|
+
import { MouseEvent, ReactNode, Key } from 'react';
|
|
4
4
|
|
|
5
5
|
type TriggerEventHandler<T> = (record: T, event: MouseEvent<HTMLElement>) => void;
|
|
6
6
|
interface RenderExpandIconProps<T> {
|
|
@@ -34,4 +34,5 @@ declare const EXPANSION_COLUMN_KEY = "VirtualTable.EXPANSION_COLUMN";
|
|
|
34
34
|
declare function isExpansionColumn<T = any>(column: ColumnType<T>): boolean;
|
|
35
35
|
declare const tableExpandable: <T = any>(options?: ExpandableConfig<T> | undefined) => _are_visual_virtual_table.Middleware<T>;
|
|
36
36
|
|
|
37
|
-
export { EXPANSION_COLUMN_KEY,
|
|
37
|
+
export { EXPANSION_COLUMN_KEY, isExpansionColumn, tableExpandable };
|
|
38
|
+
export type { ExpandableConfig, ExpandedRowRender, RenderExpandIcon, RenderExpandIconProps, RowClassName };
|
|
@@ -12,4 +12,5 @@ interface ScrollBarProps {
|
|
|
12
12
|
type HorizontalScrollBarOptions = Omit<ScrollBarProps, 'bodyRef'>;
|
|
13
13
|
declare const horizontalScrollBar: <T = any>(options?: HorizontalScrollBarOptions | undefined) => _are_visual_virtual_table.Middleware<T>;
|
|
14
14
|
|
|
15
|
-
export {
|
|
15
|
+
export { horizontalScrollBar };
|
|
16
|
+
export type { HorizontalScrollBarOptions };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { getKey, useTableSticky,
|
|
2
|
+
import { getKey, useTableSticky, isValidFixedRight, isValidFixedLeft, isValidFixed, useTableRowManager, findLastIndex, createMiddleware, onResize } from '@are-visual/virtual-table';
|
|
3
3
|
import { memo, useState, useEffect, useMemo } from 'react';
|
|
4
4
|
import clsx from 'clsx';
|
|
5
5
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as _are_visual_virtual_table from '@are-visual/virtual-table';
|
|
2
2
|
import { ColumnExtra } from '@are-visual/virtual-table';
|
|
3
|
-
import {
|
|
3
|
+
import { ComponentType, Key, ReactNode, HTMLAttributes, TdHTMLAttributes } from 'react';
|
|
4
4
|
|
|
5
5
|
type RowSelectMethod = 'all' | 'none' | 'invert' | 'single' | 'multiple';
|
|
6
6
|
type SelectionSelectFn<T = any> = (record: T, selected: boolean, selectedRows: T[], nativeEvent: Event) => void;
|
|
@@ -45,4 +45,5 @@ declare const SELECTION_COLUMN_KEY = "VirtualTable.SELECTION_COLUMN";
|
|
|
45
45
|
*/
|
|
46
46
|
declare const tableSelection: <T = any>(options?: TableRowSelection<T> | undefined) => _are_visual_virtual_table.Middleware<T>;
|
|
47
47
|
|
|
48
|
-
export {
|
|
48
|
+
export { SELECTION_COLUMN_KEY, tableSelection };
|
|
49
|
+
export type { GetComponentProps, RowSelectMethod, SelectionColumnTitleProps, SelectionProps, SelectionSelectFn, TableRowSelection };
|
|
@@ -1,15 +1,27 @@
|
|
|
1
1
|
import * as _are_visual_virtual_table from '@are-visual/virtual-table';
|
|
2
|
-
import { ColumnType } from '@are-visual/virtual-table';
|
|
2
|
+
import { ColumnType, ColumnDescriptor } from '@are-visual/virtual-table';
|
|
3
3
|
import * as react from 'react';
|
|
4
|
-
import {
|
|
4
|
+
import { DetailedHTMLProps, HTMLAttributes, Key, CSSProperties, ReactNode, MouseEvent, ReactElement } from 'react';
|
|
5
5
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
6
6
|
|
|
7
7
|
type NativeProps = DetailedHTMLProps<HTMLAttributes<HTMLTableCellElement>, HTMLTableCellElement>;
|
|
8
8
|
interface CellProps extends NativeProps, Pick<ColumnType<unknown>, 'align'> {
|
|
9
|
-
columnKey
|
|
9
|
+
columnKey?: Key;
|
|
10
10
|
colSpan?: number;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
+
interface FooterProps {
|
|
14
|
+
className?: string;
|
|
15
|
+
style?: CSSProperties;
|
|
16
|
+
/** Summary 位于底部,且设置 fixed 时生效 */
|
|
17
|
+
zIndex?: number;
|
|
18
|
+
/** Summary 位于底部,且设置 fixed 时生效 */
|
|
19
|
+
bottom?: number | string;
|
|
20
|
+
columns: ColumnDescriptor[];
|
|
21
|
+
fixed?: boolean;
|
|
22
|
+
children?: ReactNode;
|
|
23
|
+
}
|
|
24
|
+
|
|
13
25
|
interface SummaryOutletProps<T> {
|
|
14
26
|
className?: string;
|
|
15
27
|
style?: CSSProperties;
|
|
@@ -44,10 +56,11 @@ declare module '@are-visual/virtual-table' {
|
|
|
44
56
|
summary?: InlineCellProps<T>;
|
|
45
57
|
}
|
|
46
58
|
}
|
|
47
|
-
interface TableSummaryOptions<T = any> {
|
|
59
|
+
interface TableSummaryOptions<T = any> extends Pick<FooterProps, 'bottom' | 'className' | 'style' | 'zIndex'> {
|
|
48
60
|
summary: (data: T[]) => ReactNode;
|
|
49
61
|
}
|
|
50
62
|
|
|
51
63
|
declare const tableSummary: <T = any>(options?: TableSummaryOptions<T> | undefined) => _are_visual_virtual_table.Middleware<T>;
|
|
52
64
|
|
|
53
|
-
export {
|
|
65
|
+
export { Summary, tableSummary };
|
|
66
|
+
export type { InlineCellProps, TableSummaryOptions };
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
2
2
|
import { useHorizontalScrollContext, Colgroup, useTableSticky, isValidFixedLeft, isValidFixedRight, isValidFixed, createMiddleware } from '@are-visual/virtual-table';
|
|
3
|
-
import { createContext, useState, useRef, useEffect, memo, useMemo, useContext, createElement, Fragment, isValidElement, Children } from 'react';
|
|
4
|
-
import { getScrollbarSize } from '@are-visual/virtual-table/middleware/utils/getScrollbarSize';
|
|
5
3
|
import clsx from 'clsx';
|
|
4
|
+
import { createContext, useState, useRef, useEffect, memo, useMemo, useContext, createElement, isValidElement, cloneElement, Fragment, Children } from 'react';
|
|
5
|
+
import { getScrollbarSize } from '@are-visual/virtual-table/middleware/utils/getScrollbarSize';
|
|
6
6
|
|
|
7
7
|
const SummaryContext = /*#__PURE__*/createContext(null);
|
|
8
8
|
|
|
9
9
|
const Footer = props => {
|
|
10
10
|
const {
|
|
11
|
+
className,
|
|
12
|
+
style,
|
|
13
|
+
zIndex,
|
|
14
|
+
bottom,
|
|
11
15
|
columns,
|
|
12
16
|
fixed,
|
|
13
17
|
children
|
|
@@ -38,8 +42,13 @@ const Footer = props => {
|
|
|
38
42
|
};
|
|
39
43
|
}, [listen, notify]);
|
|
40
44
|
return jsx("div", {
|
|
41
|
-
className: clsx('virtual-table-summary-wrapper', fixed && 'virtual-table-summary-sticky-bottom virtual-table-summary-top-border'),
|
|
45
|
+
className: clsx('virtual-table-summary-wrapper', fixed && 'virtual-table-summary-sticky-bottom virtual-table-summary-top-border', className),
|
|
42
46
|
style: {
|
|
47
|
+
...(fixed ? {
|
|
48
|
+
'--virtual-table-summary-z-index': zIndex,
|
|
49
|
+
'--virtual-table-summary-sticky-bottom': Number.isFinite(bottom) ? `${bottom}px` : bottom
|
|
50
|
+
} : {}),
|
|
51
|
+
...style,
|
|
43
52
|
paddingBottom: scrollbarHeight
|
|
44
53
|
},
|
|
45
54
|
ref: wrapperRef,
|
|
@@ -69,7 +78,7 @@ function Cell(props) {
|
|
|
69
78
|
size: stickySizes,
|
|
70
79
|
fixed: columnsFixed
|
|
71
80
|
} = useTableSticky();
|
|
72
|
-
const stickySize = stickySizes.get(columnKey);
|
|
81
|
+
const stickySize = columnKey == null ? 0 : stickySizes.get(columnKey);
|
|
73
82
|
const fixed = columnsFixed.find(x => x.key === columnKey)?.fixed;
|
|
74
83
|
const {
|
|
75
84
|
left: lastFixedLeftColumnKey,
|
|
@@ -158,8 +167,14 @@ const SummaryRow = _ref => {
|
|
|
158
167
|
const {
|
|
159
168
|
column
|
|
160
169
|
} = item;
|
|
170
|
+
let childNode = children(column, key);
|
|
171
|
+
if (/*#__PURE__*/isValidElement(childNode) && childNode.type === Cell$1) {
|
|
172
|
+
childNode = /*#__PURE__*/cloneElement(childNode, {
|
|
173
|
+
columnKey: key
|
|
174
|
+
});
|
|
175
|
+
}
|
|
161
176
|
return jsx(Fragment, {
|
|
162
|
-
children:
|
|
177
|
+
children: childNode
|
|
163
178
|
}, key);
|
|
164
179
|
})
|
|
165
180
|
});
|
|
@@ -184,6 +199,10 @@ Summary.Outlet = SummaryOutlet;
|
|
|
184
199
|
|
|
185
200
|
function useTableSummary(ctx, options) {
|
|
186
201
|
const {
|
|
202
|
+
className,
|
|
203
|
+
style,
|
|
204
|
+
zIndex,
|
|
205
|
+
bottom,
|
|
187
206
|
summary
|
|
188
207
|
} = options ?? {};
|
|
189
208
|
const {
|
|
@@ -242,7 +261,8 @@ function useTableSummary(ctx, options) {
|
|
|
242
261
|
} = _ref;
|
|
243
262
|
return jsxs(Fragment$1, {
|
|
244
263
|
children: [children, jsx("tfoot", {
|
|
245
|
-
className:
|
|
264
|
+
className: clsx('virtual-table-summary-tfoot', className),
|
|
265
|
+
style: style,
|
|
246
266
|
children: jsx(SummaryContext.Provider, {
|
|
247
267
|
value: columnDescriptor,
|
|
248
268
|
children: topNode
|
|
@@ -258,6 +278,10 @@ function useTableSummary(ctx, options) {
|
|
|
258
278
|
} = _ref2;
|
|
259
279
|
return jsxs(Fragment$1, {
|
|
260
280
|
children: [children, jsx(Footer, {
|
|
281
|
+
className: className,
|
|
282
|
+
style: style,
|
|
283
|
+
zIndex: zIndex,
|
|
284
|
+
bottom: bottom,
|
|
261
285
|
fixed: hasFixedBottom,
|
|
262
286
|
columns: columnDescriptor,
|
|
263
287
|
children: jsx(SummaryContext.Provider, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../packages/virtual-table/src/middleware/summary/context/columns.tsx","../../../../packages/virtual-table/src/middleware/summary/footer.tsx","../../../../packages/virtual-table/src/middleware/summary/cell.tsx","../../../../packages/virtual-table/src/middleware/summary/outlet.tsx","../../../../packages/virtual-table/src/middleware/summary/row.tsx","../../../../packages/virtual-table/src/middleware/summary/summary.tsx","../../../../packages/virtual-table/src/middleware/summary/index.tsx"],"sourcesContent":["import type { ColumnDescriptor } from '@are-visual/virtual-table'\nimport { createContext } from 'react'\n\nexport const SummaryContext = createContext<ColumnDescriptor[] | null>(null)\n","import type { ColumnDescriptor } from '@are-visual/virtual-table'\nimport type { FC, ReactNode } from 'react'\nimport { Colgroup, useHorizontalScrollContext } from '@are-visual/virtual-table'\nimport { getScrollbarSize } from '@are-visual/virtual-table/middleware/utils/getScrollbarSize'\nimport clsx from 'clsx'\nimport { useEffect, useRef, useState } from 'react'\n\nexport interface FooterProps {\n columns: ColumnDescriptor[]\n fixed?: boolean\n children?: ReactNode\n}\n\nconst Footer: FC<FooterProps> = (props) => {\n const { columns, fixed, children } = props\n\n const { listen, notify } = useHorizontalScrollContext()\n const [scrollbarHeight] = useState(() => getScrollbarSize().height)\n\n const wrapperRef = useRef<HTMLDivElement>(null)\n useEffect(() => {\n const node = wrapperRef.current\n if (node == null) return\n const key = 'virtual-table-summary'\n const onScroll = () => {\n notify(key, { scrollLeft: () => node.scrollLeft, node })\n }\n const dispose = listen(key, (scrollLeft) => {\n node.scrollLeft = scrollLeft\n })\n node.addEventListener('scroll', onScroll)\n return () => {\n node.removeEventListener('scroll', onScroll)\n dispose()\n }\n }, [listen, notify])\n\n return (\n <div\n className={clsx(\n 'virtual-table-summary-wrapper',\n fixed && 'virtual-table-summary-sticky-bottom virtual-table-summary-top-border',\n )}\n style={{ paddingBottom: scrollbarHeight }}\n ref={wrapperRef}\n >\n <table className=\"virtual-table-summary\">\n <Colgroup columns={columns} />\n <tfoot className=\"virtual-table-summary-tfoot\">{children}</tfoot>\n </table>\n </div>\n )\n}\n\nexport default Footer\n","import type { ColumnType } from '@are-visual/virtual-table'\nimport type { DetailedHTMLProps, HTMLAttributes, Key } from 'react'\nimport { isValidFixed, isValidFixedLeft, isValidFixedRight, useTableSticky } from '@are-visual/virtual-table'\nimport clsx from 'clsx'\nimport { memo, useMemo } from 'react'\n\ntype NativeProps = DetailedHTMLProps<\n HTMLAttributes<HTMLTableCellElement>,\n HTMLTableCellElement\n>\n\nexport interface CellProps extends NativeProps, Pick<ColumnType<unknown>, 'align'> {\n columnKey: Key\n colSpan?: number\n}\n\nfunction Cell(props: CellProps) {\n const {\n className,\n style,\n children,\n align,\n colSpan,\n columnKey,\n ...restProps\n } = props\n\n const { size: stickySizes, fixed: columnsFixed } = useTableSticky()\n\n const stickySize = stickySizes.get(columnKey)\n const fixed = columnsFixed.find((x) => x.key === columnKey)?.fixed\n\n const { left: lastFixedLeftColumnKey, right: firstFixedRightColumnKey } = useMemo(() => {\n const left = columnsFixed.reduce<Key | undefined>((result, x) => {\n if (isValidFixedLeft(x.fixed)) {\n return x.key\n }\n return result\n }, undefined)\n const right = columnsFixed.find((x) => isValidFixedRight(x.fixed))?.key\n return { left, right }\n }, [columnsFixed])\n\n if (colSpan === 0) {\n return null\n }\n\n return (\n <td\n {...restProps}\n colSpan={colSpan}\n className={clsx(\n 'virtual-table-cell virtual-table-summary-cell',\n align != null && `virtual-table-align-${align}`,\n isValidFixed(fixed) && 'virtual-table-sticky-cell',\n lastFixedLeftColumnKey === columnKey && 'virtual-table-cell-fix-left-last',\n firstFixedRightColumnKey === columnKey && 'virtual-table-cell-fix-right-first',\n className,\n )}\n style={{\n ...style,\n left: isValidFixedLeft(fixed) ? stickySize : undefined,\n right: isValidFixedRight(fixed) ? stickySize : undefined,\n }}\n >\n {children}\n </td>\n )\n}\n\nexport default memo(Cell)\n","import type { CSSProperties, MouseEvent } from 'react'\nimport { useContext } from 'react'\n\nimport Cell from './cell'\nimport { SummaryContext } from './context/columns'\n\nexport interface SummaryOutletProps<T> {\n className?: string\n style?: CSSProperties\n dataSource: T[]\n onClick?: (e?: MouseEvent<HTMLElement>) => void\n}\n\nfunction SummaryOutlet<T>(props: SummaryOutletProps<T>) {\n const { dataSource, ...restProps } = props\n const descriptor = useContext(SummaryContext)\n\n if (descriptor == null) {\n throw new Error(\n 'SummaryOutlet is missing the columns context and cannot use children as a function.',\n )\n }\n\n return (\n <tr {...restProps}>\n {descriptor.map((item) => {\n const { key } = item\n if (item.type === 'blank') {\n return <td key={key} />\n }\n const { column } = item\n const { render, ...cellProps } = column.summary ?? {}\n return (\n <Cell {...cellProps} key={key} columnKey={key}>\n {render?.(dataSource)}\n </Cell>\n )\n })}\n </tr>\n )\n}\n\nexport default SummaryOutlet\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { ColumnType } from '@are-visual/virtual-table'\nimport type { CSSProperties, FC, Key, MouseEvent, ReactNode } from 'react'\nimport { Fragment, useContext } from 'react'\nimport { SummaryContext } from './context/columns'\n\nexport interface SummaryRowProps {\n children?: ReactNode | ((column: ColumnType<any>, key: Key) => ReactNode)\n className?: string\n style?: CSSProperties\n onClick?: (e?: MouseEvent<HTMLElement>) => void\n}\n\nconst SummaryRow: FC<SummaryRowProps> = ({ children, ...props }) => {\n const descriptor = useContext(SummaryContext)\n\n if (typeof children === 'function') {\n if (descriptor != null) {\n return (\n <tr {...props}>\n {descriptor.map((item) => {\n const { key } = item\n if (item.type === 'blank') {\n return <td key={key} />\n }\n const { column } = item\n return <Fragment key={key}>{children(column, key)}</Fragment>\n })}\n </tr>\n )\n }\n throw new Error('SummaryRow is missing the columns context and cannot use children as a function.')\n }\n\n return <tr {...props}>{children}</tr>\n}\n\nexport default SummaryRow\n","import type { ReactElement, ReactNode } from 'react'\n\nimport Cell from './cell'\nimport Outlet from './outlet'\nimport Row from './row'\n\nexport interface SummaryProps {\n fixed?: boolean | 'top' | 'bottom'\n children?: ReactNode\n}\n\nfunction Summary({ children }: SummaryProps) {\n return children as ReactElement\n}\n\nSummary.Row = Row\nSummary.Cell = Cell\nSummary.Outlet = Outlet\n\nexport default Summary\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { MiddlewareContext, MiddlewareResult } from '@are-visual/virtual-table'\nimport type { ReactElement, ReactNode } from 'react'\nimport type { CellProps } from './cell'\nimport type { SummaryProps } from './summary'\nimport { createMiddleware } from '@are-visual/virtual-table'\nimport { Children, Fragment, isValidElement } from 'react'\nimport { SummaryContext } from './context/columns'\nimport Footer from './footer'\nimport Summary from './summary'\n\nexport interface InlineCellProps<T> extends Omit<CellProps, 'ref' | 'columnKey' | 'render' | 'children'> {\n render?: (dataSource: T[]) => ReactNode\n}\n\ndeclare module '@are-visual/virtual-table' {\n interface ColumnExtra<T = any> {\n summary?: InlineCellProps<T>\n }\n}\n\nexport interface TableSummaryOptions<T = any> {\n summary: (data: T[]) => ReactNode\n}\n\nfunction useTableSummary<T = any>(\n ctx: MiddlewareContext<T>,\n options?: TableSummaryOptions<T>,\n): MiddlewareResult<T> {\n const { summary } = options ?? {}\n const { dataSource } = ctx\n\n let hasFixedTop = false\n let hasFixedBottom = false\n\n const summaryNode = summary?.(dataSource)\n const topNode: ReactNode[] = []\n const bottomNode: ReactNode[] = []\n\n const handleRowElement = (node: ReactElement<SummaryProps>) => {\n const fixed = node.props.fixed\n if (fixed === 'top') {\n hasFixedTop = true\n topNode.push(node)\n } else {\n if (fixed === 'bottom' || fixed === true) {\n hasFixedBottom = true\n }\n bottomNode.push(node)\n }\n }\n\n if (summary == null) {\n return ctx\n }\n\n if (isValidElement(summaryNode)) {\n if (summaryNode.type === Fragment) {\n const rawChildren = (summaryNode.props as { children?: ReactNode }).children\n // eslint-disable-next-line @eslint-react/no-children-for-each\n Children.forEach(rawChildren, (child) => {\n if (isValidElement(child) && child.type === Summary) {\n handleRowElement(child as ReactElement<SummaryProps>)\n } else {\n if (__DEV__) {\n console.warn(child, 'The summary function does not support components other than Fragment and Summary.')\n }\n }\n })\n } else if (summaryNode.type === Summary) {\n handleRowElement(summaryNode as ReactElement<SummaryProps>)\n } else {\n if (__DEV__) {\n console.error(summaryNode, 'The summary function does not support components other than Fragment and Summary.')\n throw new Error('The summary function does not support components other than Fragment and Summary.')\n }\n }\n } else {\n return ctx\n }\n\n return {\n ...ctx,\n ...(hasFixedTop as boolean\n ? {\n renderHeader: (children, { columnDescriptor }) => {\n return (\n <>\n {children}\n <tfoot className=\"virtual-table-summary-tfoot\">\n <SummaryContext.Provider value={columnDescriptor}>\n {topNode}\n </SummaryContext.Provider>\n </tfoot>\n </>\n )\n },\n }\n : {}),\n ...(hasFixedBottom as boolean\n ? {\n renderContent(children, { columnDescriptor }) {\n return (\n <>\n {children}\n <Footer fixed={hasFixedBottom} columns={columnDescriptor}>\n <SummaryContext.Provider value={columnDescriptor}>\n {bottomNode}\n </SummaryContext.Provider>\n </Footer>\n </>\n )\n },\n }\n : {}),\n }\n}\n\nexport { default as Summary } from './summary'\nexport const tableSummary = createMiddleware(useTableSummary)\n"],"names":["SummaryContext","createContext","Footer","props","columns","fixed","children","listen","notify","useHorizontalScrollContext","scrollbarHeight","useState","getScrollbarSize","height","wrapperRef","useRef","useEffect","node","current","key","onScroll","scrollLeft","dispose","addEventListener","removeEventListener","_jsx","className","clsx","style","paddingBottom","ref","_jsxs","Colgroup","Cell","align","colSpan","columnKey","restProps","size","stickySizes","columnsFixed","useTableSticky","stickySize","get","find","x","left","lastFixedLeftColumnKey","right","firstFixedRightColumnKey","useMemo","reduce","result","isValidFixedLeft","undefined","isValidFixedRight","isValidFixed","memo","SummaryOutlet","dataSource","descriptor","useContext","Error","map","item","type","column","render","cellProps","summary","_createElement","SummaryRow","_ref","Fragment","Summary","Row","Outlet","useTableSummary","ctx","options","hasFixedTop","hasFixedBottom","summaryNode","topNode","bottomNode","handleRowElement","push","isValidElement","rawChildren","Children","forEach","child","__DEV__","console","warn","error","renderHeader","columnDescriptor","Provider","value","renderContent","_ref2","_Fragment","tableSummary","createMiddleware"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../packages/virtual-table/src/middleware/summary/context/columns.tsx","../../../../packages/virtual-table/src/middleware/summary/footer.tsx","../../../../packages/virtual-table/src/middleware/summary/cell.tsx","../../../../packages/virtual-table/src/middleware/summary/outlet.tsx","../../../../packages/virtual-table/src/middleware/summary/row.tsx","../../../../packages/virtual-table/src/middleware/summary/summary.tsx","../../../../packages/virtual-table/src/middleware/summary/index.tsx"],"sourcesContent":["import type { ColumnDescriptor } from '@are-visual/virtual-table'\nimport { createContext } from 'react'\n\nexport const SummaryContext = createContext<ColumnDescriptor[] | null>(null)\n","import type { ColumnDescriptor } from '@are-visual/virtual-table'\nimport type { CSSProperties, FC, ReactNode } from 'react'\nimport { Colgroup, useHorizontalScrollContext } from '@are-visual/virtual-table'\nimport { getScrollbarSize } from '@are-visual/virtual-table/middleware/utils/getScrollbarSize'\nimport clsx from 'clsx'\nimport { useEffect, useRef, useState } from 'react'\n\nexport interface FooterProps {\n className?: string\n style?: CSSProperties\n /** Summary 位于底部,且设置 fixed 时生效 */\n zIndex?: number\n /** Summary 位于底部,且设置 fixed 时生效 */\n bottom?: number | string\n columns: ColumnDescriptor[]\n fixed?: boolean\n children?: ReactNode\n}\n\nconst Footer: FC<FooterProps> = (props) => {\n const { className, style, zIndex, bottom, columns, fixed, children } = props\n\n const { listen, notify } = useHorizontalScrollContext()\n const [scrollbarHeight] = useState(() => getScrollbarSize().height)\n\n const wrapperRef = useRef<HTMLDivElement>(null)\n useEffect(() => {\n const node = wrapperRef.current\n if (node == null) return\n const key = 'virtual-table-summary'\n const onScroll = () => {\n notify(key, { scrollLeft: () => node.scrollLeft, node })\n }\n const dispose = listen(key, (scrollLeft) => {\n node.scrollLeft = scrollLeft\n })\n node.addEventListener('scroll', onScroll)\n return () => {\n node.removeEventListener('scroll', onScroll)\n dispose()\n }\n }, [listen, notify])\n\n return (\n <div\n className={clsx(\n 'virtual-table-summary-wrapper',\n fixed && 'virtual-table-summary-sticky-bottom virtual-table-summary-top-border',\n className,\n )}\n\n style={{\n ...(fixed\n ? {\n '--virtual-table-summary-z-index': zIndex,\n '--virtual-table-summary-sticky-bottom': Number.isFinite(bottom) ? `${bottom}px` : bottom,\n }\n : {}),\n ...style,\n paddingBottom: scrollbarHeight,\n }}\n ref={wrapperRef}\n >\n <table className=\"virtual-table-summary\">\n <Colgroup columns={columns} />\n <tfoot className=\"virtual-table-summary-tfoot\">{children}</tfoot>\n </table>\n </div>\n )\n}\n\nexport default Footer\n","import type { ColumnType } from '@are-visual/virtual-table'\nimport type { DetailedHTMLProps, HTMLAttributes, Key } from 'react'\nimport { isValidFixed, isValidFixedLeft, isValidFixedRight, useTableSticky } from '@are-visual/virtual-table'\nimport clsx from 'clsx'\nimport { memo, useMemo } from 'react'\n\ntype NativeProps = DetailedHTMLProps<\n HTMLAttributes<HTMLTableCellElement>,\n HTMLTableCellElement\n>\n\nexport interface CellProps extends NativeProps, Pick<ColumnType<unknown>, 'align'> {\n columnKey?: Key\n colSpan?: number\n}\n\nfunction Cell(props: CellProps) {\n const {\n className,\n style,\n children,\n align,\n colSpan,\n columnKey,\n ...restProps\n } = props\n\n const { size: stickySizes, fixed: columnsFixed } = useTableSticky()\n\n const stickySize = columnKey == null ? 0 : stickySizes.get(columnKey)\n const fixed = columnsFixed.find((x) => x.key === columnKey)?.fixed\n\n const { left: lastFixedLeftColumnKey, right: firstFixedRightColumnKey } = useMemo(() => {\n const left = columnsFixed.reduce<Key | undefined>((result, x) => {\n if (isValidFixedLeft(x.fixed)) {\n return x.key\n }\n return result\n }, undefined)\n const right = columnsFixed.find((x) => isValidFixedRight(x.fixed))?.key\n return { left, right }\n }, [columnsFixed])\n\n if (colSpan === 0) {\n return null\n }\n\n return (\n <td\n {...restProps}\n colSpan={colSpan}\n className={clsx(\n 'virtual-table-cell virtual-table-summary-cell',\n align != null && `virtual-table-align-${align}`,\n isValidFixed(fixed) && 'virtual-table-sticky-cell',\n lastFixedLeftColumnKey === columnKey && 'virtual-table-cell-fix-left-last',\n firstFixedRightColumnKey === columnKey && 'virtual-table-cell-fix-right-first',\n className,\n )}\n style={{\n ...style,\n left: isValidFixedLeft(fixed) ? stickySize : undefined,\n right: isValidFixedRight(fixed) ? stickySize : undefined,\n }}\n >\n {children}\n </td>\n )\n}\n\nexport default memo(Cell)\n","import type { CSSProperties, MouseEvent } from 'react'\nimport { useContext } from 'react'\n\nimport Cell from './cell'\nimport { SummaryContext } from './context/columns'\n\nexport interface SummaryOutletProps<T> {\n className?: string\n style?: CSSProperties\n dataSource: T[]\n onClick?: (e?: MouseEvent<HTMLElement>) => void\n}\n\nfunction SummaryOutlet<T>(props: SummaryOutletProps<T>) {\n const { dataSource, ...restProps } = props\n const descriptor = useContext(SummaryContext)\n\n if (descriptor == null) {\n throw new Error(\n 'SummaryOutlet is missing the columns context and cannot use children as a function.',\n )\n }\n\n return (\n <tr {...restProps}>\n {descriptor.map((item) => {\n const { key } = item\n if (item.type === 'blank') {\n return <td key={key} />\n }\n const { column } = item\n const { render, ...cellProps } = column.summary ?? {}\n return (\n <Cell {...cellProps} key={key} columnKey={key}>\n {render?.(dataSource)}\n </Cell>\n )\n })}\n </tr>\n )\n}\n\nexport default SummaryOutlet\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { ColumnType } from '@are-visual/virtual-table'\nimport type { CSSProperties, FC, Key, MouseEvent, ReactElement, ReactNode } from 'react'\nimport type { CellProps } from './cell'\nimport { cloneElement, Fragment, isValidElement, useContext } from 'react'\nimport SummaryCell from './cell'\nimport { SummaryContext } from './context/columns'\n\nexport interface SummaryRowProps {\n children?: ReactNode | ((column: ColumnType<any>, key: Key) => ReactNode)\n className?: string\n style?: CSSProperties\n onClick?: (e?: MouseEvent<HTMLElement>) => void\n}\n\nconst SummaryRow: FC<SummaryRowProps> = ({ children, ...props }) => {\n const descriptor = useContext(SummaryContext)\n\n if (typeof children === 'function') {\n if (descriptor != null) {\n return (\n <tr {...props}>\n {descriptor.map((item) => {\n const { key } = item\n if (item.type === 'blank') {\n return <td key={key} />\n }\n const { column } = item\n let childNode = children(column, key)\n if (isValidElement(childNode) && childNode.type === SummaryCell) {\n childNode = cloneElement(childNode as ReactElement<CellProps>, { columnKey: key })\n }\n return <Fragment key={key}>{childNode}</Fragment>\n })}\n </tr>\n )\n }\n throw new Error('SummaryRow is missing the columns context and cannot use children as a function.')\n }\n\n return <tr {...props}>{children}</tr>\n}\n\nexport default SummaryRow\n","import type { ReactElement, ReactNode } from 'react'\n\nimport Cell from './cell'\nimport Outlet from './outlet'\nimport Row from './row'\n\nexport interface SummaryProps {\n fixed?: boolean | 'top' | 'bottom'\n children?: ReactNode\n}\n\nfunction Summary({ children }: SummaryProps) {\n return children as ReactElement\n}\n\nSummary.Row = Row\nSummary.Cell = Cell\nSummary.Outlet = Outlet\n\nexport default Summary\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { MiddlewareContext, MiddlewareResult } from '@are-visual/virtual-table'\nimport type { ReactElement, ReactNode } from 'react'\nimport type { CellProps } from './cell'\nimport type { FooterProps } from './footer'\nimport type { SummaryProps } from './summary'\nimport { createMiddleware } from '@are-visual/virtual-table'\nimport clsx from 'clsx'\nimport { Children, Fragment, isValidElement } from 'react'\nimport { SummaryContext } from './context/columns'\nimport Footer from './footer'\nimport Summary from './summary'\n\nexport interface InlineCellProps<T> extends Omit<CellProps, 'ref' | 'columnKey' | 'render' | 'children'> {\n render?: (dataSource: T[]) => ReactNode\n}\n\ndeclare module '@are-visual/virtual-table' {\n interface ColumnExtra<T = any> {\n summary?: InlineCellProps<T>\n }\n}\n\nexport interface TableSummaryOptions<T = any> extends Pick<FooterProps, 'bottom' | 'className' | 'style' | 'zIndex'> {\n summary: (data: T[]) => ReactNode\n}\n\nfunction useTableSummary<T = any>(\n ctx: MiddlewareContext<T>,\n options?: TableSummaryOptions<T>,\n): MiddlewareResult<T> {\n const { className, style, zIndex, bottom, summary } = options ?? {}\n const { dataSource } = ctx\n\n let hasFixedTop = false\n let hasFixedBottom = false\n\n const summaryNode = summary?.(dataSource)\n const topNode: ReactNode[] = []\n const bottomNode: ReactNode[] = []\n\n const handleRowElement = (node: ReactElement<SummaryProps>) => {\n const fixed = node.props.fixed\n if (fixed === 'top') {\n hasFixedTop = true\n topNode.push(node)\n } else {\n if (fixed === 'bottom' || fixed === true) {\n hasFixedBottom = true\n }\n bottomNode.push(node)\n }\n }\n\n if (summary == null) {\n return ctx\n }\n\n if (isValidElement(summaryNode)) {\n if (summaryNode.type === Fragment) {\n const rawChildren = (summaryNode.props as { children?: ReactNode }).children\n // eslint-disable-next-line @eslint-react/no-children-for-each\n Children.forEach(rawChildren, (child) => {\n if (isValidElement(child) && child.type === Summary) {\n handleRowElement(child as ReactElement<SummaryProps>)\n } else {\n if (__DEV__) {\n console.warn(child, 'The summary function does not support components other than Fragment and Summary.')\n }\n }\n })\n } else if (summaryNode.type === Summary) {\n handleRowElement(summaryNode as ReactElement<SummaryProps>)\n } else {\n if (__DEV__) {\n console.error(summaryNode, 'The summary function does not support components other than Fragment and Summary.')\n throw new Error('The summary function does not support components other than Fragment and Summary.')\n }\n }\n } else {\n return ctx\n }\n\n return {\n ...ctx,\n ...(hasFixedTop as boolean\n ? {\n renderHeader: (children, { columnDescriptor }) => {\n return (\n <>\n {children}\n <tfoot className={clsx('virtual-table-summary-tfoot', className)} style={style}>\n <SummaryContext.Provider value={columnDescriptor}>\n {topNode}\n </SummaryContext.Provider>\n </tfoot>\n </>\n )\n },\n }\n : {}),\n ...(hasFixedBottom as boolean\n ? {\n renderContent(children, { columnDescriptor }) {\n return (\n <>\n {children}\n <Footer\n className={className}\n style={style}\n zIndex={zIndex}\n bottom={bottom}\n fixed={hasFixedBottom}\n columns={columnDescriptor}\n >\n <SummaryContext.Provider value={columnDescriptor}>\n {bottomNode}\n </SummaryContext.Provider>\n </Footer>\n </>\n )\n },\n }\n : {}),\n }\n}\n\nexport { default as Summary } from './summary'\nexport const tableSummary = createMiddleware(useTableSummary)\n"],"names":["SummaryContext","createContext","Footer","props","className","style","zIndex","bottom","columns","fixed","children","listen","notify","useHorizontalScrollContext","scrollbarHeight","useState","getScrollbarSize","height","wrapperRef","useRef","useEffect","node","current","key","onScroll","scrollLeft","dispose","addEventListener","removeEventListener","_jsx","clsx","Number","isFinite","paddingBottom","ref","_jsxs","Colgroup","Cell","align","colSpan","columnKey","restProps","size","stickySizes","columnsFixed","useTableSticky","stickySize","get","find","x","left","lastFixedLeftColumnKey","right","firstFixedRightColumnKey","useMemo","reduce","result","isValidFixedLeft","undefined","isValidFixedRight","isValidFixed","memo","SummaryOutlet","dataSource","descriptor","useContext","Error","map","item","type","column","render","cellProps","summary","_createElement","SummaryRow","_ref","childNode","isValidElement","SummaryCell","cloneElement","Fragment","Summary","Row","Outlet","useTableSummary","ctx","options","hasFixedTop","hasFixedBottom","summaryNode","topNode","bottomNode","handleRowElement","push","rawChildren","Children","forEach","child","__DEV__","console","warn","error","renderHeader","columnDescriptor","_Fragment","Provider","value","renderContent","_ref2","tableSummary","createMiddleware"],"mappings":"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"}
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
}
|
|
20
20
|
.virtual-table-summary-sticky-bottom {
|
|
21
21
|
position: sticky;
|
|
22
|
-
bottom:
|
|
22
|
+
bottom: var(--virtual-table-summary-sticky-bottom, 0px);
|
|
23
23
|
left: 0;
|
|
24
|
-
z-index: 2;
|
|
24
|
+
z-index: var(--virtual-table-summary-sticky-z-index, 2);
|
|
25
25
|
}
|
|
26
26
|
.virtual-table-summary-tfoot {
|
|
27
27
|
background-color: var(--virtual-table-summary-background, #fff);
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
$virtual-table-summary-background: var(--virtual-table-summary-background, #fff);
|
|
2
2
|
$virtual-table-summary-border-color: var(--virtual-table-summary-border-color, var(--virtual-table-border-color, #f0f0f0));
|
|
3
|
+
$virtual-table-summary-sticky-bottom: var(--virtual-table-summary-sticky-bottom, 0px);
|
|
4
|
+
$virtual-table-summary-z-index: var(--virtual-table-summary-sticky-z-index, 2);
|
|
3
5
|
|
|
4
6
|
.virtual-table-summary-wrapper {
|
|
5
7
|
overflow: auto hidden;
|
|
@@ -23,9 +25,9 @@ $virtual-table-summary-border-color: var(--virtual-table-summary-border-color, v
|
|
|
23
25
|
|
|
24
26
|
&-sticky-bottom {
|
|
25
27
|
position: sticky;
|
|
26
|
-
bottom:
|
|
28
|
+
bottom: $virtual-table-summary-sticky-bottom;
|
|
27
29
|
left: 0;
|
|
28
|
-
z-index:
|
|
30
|
+
z-index: $virtual-table-summary-z-index;
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
&-tfoot {
|