@are-visual/virtual-table 0.2.0 → 0.2.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.
|
@@ -37,7 +37,7 @@ declare namespace Summary {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
interface InlineCellProps<T> extends Omit<CellProps, 'ref' | 'columnKey' | 'render' | 'children'> {
|
|
40
|
-
render
|
|
40
|
+
render?: (dataSource: T[]) => ReactNode;
|
|
41
41
|
}
|
|
42
42
|
declare module '@are-visual/virtual-table' {
|
|
43
43
|
interface ColumnExtra<T = any> {
|
|
@@ -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 throw new Error('The summary function does not support components other than Fragment and Summary.')\n }\n }\n } else {\n if (__DEV__) {\n throw new Error('The summary function does not support components other than Fragment and Summary.')\n }\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","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 { 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 throw new Error('The summary function does not support components other than Fragment and Summary.')\n }\n }\n } else {\n if (__DEV__) {\n throw new Error('The summary function does not support components other than Fragment and Summary.')\n }\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","renderHeader","columnDescriptor","Provider","value","renderContent","_ref2","_Fragment","tableSummary","createMiddleware"],"mappings":"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"}
|