@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.
@@ -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 { type ResizeOptions, columnResize };
19
+ export { columnResize };
20
+ export type { ResizeOptions };
@@ -7,4 +7,5 @@ interface EmptyOptions {
7
7
  }
8
8
  declare const tableEmpty: <T = any>(args: EmptyOptions) => _are_visual_virtual_table.Middleware<T>;
9
9
 
10
- export { type EmptyOptions, tableEmpty };
10
+ export { tableEmpty };
11
+ export type { EmptyOptions };
@@ -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, MouseEvent } from 'react';
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, type ExpandableConfig, type ExpandedRowRender, type RenderExpandIcon, type RenderExpandIconProps, type RowClassName, isExpansionColumn, tableExpandable };
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 { type HorizontalScrollBarOptions, horizontalScrollBar };
15
+ export { horizontalScrollBar };
16
+ export type { HorizontalScrollBarOptions };
@@ -1,5 +1,5 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { getKey, useTableSticky, isValidFixed, isValidFixedLeft, isValidFixedRight, useTableRowManager, findLastIndex, createMiddleware, onResize } from '@are-visual/virtual-table';
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 { HTMLAttributes, TdHTMLAttributes, Key, ComponentType, ReactNode } from 'react';
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 { type GetComponentProps, type RowSelectMethod, SELECTION_COLUMN_KEY, type SelectionColumnTitleProps, type SelectionProps, type SelectionSelectFn, type TableRowSelection, tableSelection };
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 { Key, DetailedHTMLProps, HTMLAttributes, CSSProperties, MouseEvent, ReactNode, ReactElement } from 'react';
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: Key;
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 { type InlineCellProps, Summary, type TableSummaryOptions, tableSummary };
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: children(column, key)
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: "virtual-table-summary-tfoot",
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: 0;
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: 0;
28
+ bottom: $virtual-table-summary-sticky-bottom;
27
29
  left: 0;
28
- z-index: 2;
30
+ z-index: $virtual-table-summary-z-index;
29
31
  }
30
32
 
31
33
  &-tfoot {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@are-visual/virtual-table",
3
- "version": "0.5.2",
3
+ "version": "0.7.0",
4
4
  "main": "./index.esm.js",
5
5
  "types": "./index.d.ts",
6
6
  "sideEffects": false,