react-aria-components 1.12.2 → 1.13.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/dist/Autocomplete.main.js +3 -3
- package/dist/Autocomplete.main.js.map +1 -1
- package/dist/Autocomplete.mjs +3 -3
- package/dist/Autocomplete.module.js +3 -3
- package/dist/Autocomplete.module.js.map +1 -1
- package/dist/Button.main.js +5 -11
- package/dist/Button.main.js.map +1 -1
- package/dist/Button.mjs +5 -11
- package/dist/Button.module.js +5 -11
- package/dist/Button.module.js.map +1 -1
- package/dist/DateField.main.js +12 -8
- package/dist/DateField.main.js.map +1 -1
- package/dist/DateField.mjs +12 -8
- package/dist/DateField.module.js +12 -8
- package/dist/DateField.module.js.map +1 -1
- package/dist/DatePicker.main.js +6 -2
- package/dist/DatePicker.main.js.map +1 -1
- package/dist/DatePicker.mjs +6 -2
- package/dist/DatePicker.module.js +6 -2
- package/dist/DatePicker.module.js.map +1 -1
- package/dist/GridList.main.js +24 -21
- package/dist/GridList.main.js.map +1 -1
- package/dist/GridList.mjs +25 -23
- package/dist/GridList.module.js +25 -23
- package/dist/GridList.module.js.map +1 -1
- package/dist/Group.main.js +3 -2
- package/dist/Group.main.js.map +1 -1
- package/dist/Group.mjs +3 -2
- package/dist/Group.module.js +3 -2
- package/dist/Group.module.js.map +1 -1
- package/dist/Input.main.js.map +1 -1
- package/dist/Input.module.js.map +1 -1
- package/dist/ListBox.main.js +14 -4
- package/dist/ListBox.main.js.map +1 -1
- package/dist/ListBox.mjs +14 -4
- package/dist/ListBox.module.js +14 -4
- package/dist/ListBox.module.js.map +1 -1
- package/dist/Menu.main.js +16 -6
- package/dist/Menu.main.js.map +1 -1
- package/dist/Menu.mjs +16 -6
- package/dist/Menu.module.js +16 -6
- package/dist/Menu.module.js.map +1 -1
- package/dist/Modal.main.js +9 -1
- package/dist/Modal.main.js.map +1 -1
- package/dist/Modal.mjs +10 -2
- package/dist/Modal.module.js +10 -2
- package/dist/Modal.module.js.map +1 -1
- package/dist/NumberField.main.js +2 -1
- package/dist/NumberField.main.js.map +1 -1
- package/dist/NumberField.mjs +2 -1
- package/dist/NumberField.module.js +2 -1
- package/dist/NumberField.module.js.map +1 -1
- package/dist/ProgressBar.main.js.map +1 -1
- package/dist/ProgressBar.module.js.map +1 -1
- package/dist/RSPContexts.main.js +4 -0
- package/dist/RSPContexts.main.js.map +1 -1
- package/dist/RSPContexts.mjs +3 -1
- package/dist/RSPContexts.module.js +3 -1
- package/dist/RSPContexts.module.js.map +1 -1
- package/dist/RadioGroup.main.js +10 -2
- package/dist/RadioGroup.main.js.map +1 -1
- package/dist/RadioGroup.mjs +10 -2
- package/dist/RadioGroup.module.js +10 -2
- package/dist/RadioGroup.module.js.map +1 -1
- package/dist/SearchField.main.js +2 -2
- package/dist/SearchField.main.js.map +1 -1
- package/dist/SearchField.mjs +2 -2
- package/dist/SearchField.module.js +2 -2
- package/dist/SearchField.module.js.map +1 -1
- package/dist/Select.main.js +62 -22
- package/dist/Select.main.js.map +1 -1
- package/dist/Select.mjs +65 -25
- package/dist/Select.module.js +65 -25
- package/dist/Select.module.js.map +1 -1
- package/dist/SelectionIndicator.main.js +45 -0
- package/dist/SelectionIndicator.main.js.map +1 -0
- package/dist/SelectionIndicator.mjs +35 -0
- package/dist/SelectionIndicator.module.js +35 -0
- package/dist/SelectionIndicator.module.js.map +1 -0
- package/dist/SharedElementTransition.main.js +139 -0
- package/dist/SharedElementTransition.main.js.map +1 -0
- package/dist/SharedElementTransition.mjs +129 -0
- package/dist/SharedElementTransition.module.js +129 -0
- package/dist/SharedElementTransition.module.js.map +1 -0
- package/dist/Table.main.js +16 -11
- package/dist/Table.main.js.map +1 -1
- package/dist/Table.mjs +17 -12
- package/dist/Table.module.js +17 -12
- package/dist/Table.module.js.map +1 -1
- package/dist/Tabs.main.js +11 -3
- package/dist/Tabs.main.js.map +1 -1
- package/dist/Tabs.mjs +11 -3
- package/dist/Tabs.module.js +11 -3
- package/dist/Tabs.module.js.map +1 -1
- package/dist/TagGroup.main.js +28 -16
- package/dist/TagGroup.main.js.map +1 -1
- package/dist/TagGroup.mjs +28 -16
- package/dist/TagGroup.module.js +28 -16
- package/dist/TagGroup.module.js.map +1 -1
- package/dist/TextField.main.js +2 -2
- package/dist/TextField.main.js.map +1 -1
- package/dist/TextField.mjs +2 -2
- package/dist/TextField.module.js +2 -2
- package/dist/TextField.module.js.map +1 -1
- package/dist/ToggleButton.main.js +7 -1
- package/dist/ToggleButton.main.js.map +1 -1
- package/dist/ToggleButton.mjs +7 -1
- package/dist/ToggleButton.module.js +7 -1
- package/dist/ToggleButton.module.js.map +1 -1
- package/dist/ToggleButtonGroup.main.js +3 -1
- package/dist/ToggleButtonGroup.main.js.map +1 -1
- package/dist/ToggleButtonGroup.mjs +3 -1
- package/dist/ToggleButtonGroup.module.js +3 -1
- package/dist/ToggleButtonGroup.module.js.map +1 -1
- package/dist/Tree.main.js +16 -4
- package/dist/Tree.main.js.map +1 -1
- package/dist/Tree.mjs +16 -4
- package/dist/Tree.module.js +16 -4
- package/dist/Tree.module.js.map +1 -1
- package/dist/import.mjs +10 -4
- package/dist/main.js +18 -3
- package/dist/main.js.map +1 -1
- package/dist/module.js +10 -4
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +99 -24
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.main.js.map +1 -1
- package/dist/utils.module.js.map +1 -1
- package/package.json +23 -23
- package/src/Autocomplete.tsx +1 -1
- package/src/Button.tsx +9 -11
- package/src/DateField.tsx +21 -12
- package/src/DatePicker.tsx +11 -2
- package/src/GridList.tsx +32 -33
- package/src/Group.tsx +5 -2
- package/src/Input.tsx +7 -1
- package/src/ListBox.tsx +12 -7
- package/src/Menu.tsx +11 -6
- package/src/Modal.tsx +11 -2
- package/src/NumberField.tsx +1 -1
- package/src/ProgressBar.tsx +1 -1
- package/src/RSPContexts.ts +19 -0
- package/src/RadioGroup.tsx +8 -2
- package/src/SearchField.tsx +1 -1
- package/src/Select.tsx +75 -34
- package/src/SelectionIndicator.tsx +40 -0
- package/src/SharedElementTransition.tsx +185 -0
- package/src/Table.tsx +17 -16
- package/src/Tabs.tsx +8 -2
- package/src/TagGroup.tsx +31 -24
- package/src/TextField.tsx +1 -1
- package/src/ToggleButton.tsx +6 -1
- package/src/ToggleButtonGroup.tsx +4 -1
- package/src/Tree.tsx +16 -9
- package/src/index.ts +10 -3
- package/src/utils.tsx +1 -1
- package/dist/context.main.js +0 -25
- package/dist/context.main.js.map +0 -1
- package/dist/context.mjs +0 -19
- package/dist/context.module.js +0 -19
- package/dist/context.module.js.map +0 -1
- package/src/context.tsx +0 -34
package/dist/Table.main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/react-aria-components/src/Table.tsx"],"sourcesContent":["import {AriaLabelingProps, GlobalDOMAttributes, HoverEvents, Key, LinkDOMProps, PressEvents, RefObject} from '@react-types/shared';\nimport {BaseCollection, Collection, CollectionBuilder, CollectionNode, createBranchComponent, createLeafComponent, FilterableNode, LoaderNode, useCachedChildren} from '@react-aria/collections';\nimport {buildHeaderRows, TableColumnResizeState} from '@react-stately/table';\nimport {ButtonContext} from './Button';\nimport {CheckboxContext} from './RSPContexts';\nimport {CollectionProps, CollectionRendererContext, DefaultCollectionRenderer, ItemRenderProps} from './Collection';\nimport {ColumnSize, ColumnStaticSize, TableCollection as ITableCollection, TableProps as SharedTableProps} from '@react-types/table';\nimport {ContextValue, DEFAULT_SLOT, DOMProps, Provider, RenderProps, SlotProps, StyleProps, StyleRenderProps, useContextProps, useRenderProps} from './utils';\nimport {DisabledBehavior, DraggableCollectionState, DroppableCollectionState, MultipleSelectionState, Node, SelectionBehavior, SelectionMode, SortDirection, TableState, UNSTABLE_useFilteredTableState, useMultipleSelectionState, useTableColumnResizeState, useTableState} from 'react-stately';\nimport {DragAndDropContext, DropIndicatorContext, DropIndicatorProps, useDndPersistedKeys, useRenderDropIndicator} from './DragAndDrop';\nimport {DragAndDropHooks} from './useDragAndDrop';\nimport {DraggableItemResult, DragPreviewRenderer, DropIndicatorAria, DroppableCollectionResult, FocusScope, ListKeyboardDelegate, mergeProps, useFocusRing, useHover, useLocale, useLocalizedStringFormatter, useTable, useTableCell, useTableColumnHeader, useTableColumnResize, useTableHeaderRow, useTableRow, useTableRowGroup, useTableSelectAllCheckbox, useTableSelectionCheckbox, useVisuallyHidden} from 'react-aria';\nimport {FieldInputContext, SelectableCollectionContext} from './context';\nimport {filterDOMProps, inertValue, isScrollable, LoadMoreSentinelProps, mergeRefs, useLayoutEffect, useLoadMoreSentinel, useObjectRef, useResizeObserver} from '@react-aria/utils';\nimport {GridNode} from '@react-types/grid';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport React, {createContext, ForwardedRef, forwardRef, JSX, ReactElement, ReactNode, useCallback, useContext, useEffect, useMemo, useRef, useState} from 'react';\nimport ReactDOM from 'react-dom';\n\nclass TableCollection<T> extends BaseCollection<T> implements ITableCollection<T> {\n headerRows: GridNode<T>[] = [];\n columns: GridNode<T>[] = [];\n rows: GridNode<T>[] = [];\n rowHeaderColumnKeys: Set<Key> = new Set();\n head = new TableHeaderNode<T>(-1);\n body = new TableBodyNode<T>(-2);\n columnsDirty = true;\n\n addNode(node: CollectionNode<T>) {\n super.addNode(node);\n\n this.columnsDirty ||= node.type === 'column';\n if (node.type === 'tableheader') {\n this.head = node;\n }\n\n if (node.type === 'tablebody') {\n this.body = node;\n }\n }\n\n commit(firstKey: Key, lastKey: Key, isSSR = false) {\n this.updateColumns(isSSR);\n\n this.rows = [];\n for (let row of this.getChildren(this.body.key)) {\n let lastChildKey = (row as CollectionNode<T>).lastChildKey;\n if (lastChildKey != null) {\n let lastCell = this.getItem(lastChildKey) as GridNode<T>;\n let numberOfCellsInRow = (lastCell.colIndex ?? lastCell.index) + (lastCell.colSpan ?? 1);\n if (numberOfCellsInRow !== this.columns.length && !isSSR) {\n throw new Error(`Cell count must match column count. Found ${numberOfCellsInRow} cells and ${this.columns.length} columns.`);\n }\n }\n this.rows.push(row);\n }\n\n super.commit(firstKey, lastKey, isSSR);\n }\n\n private updateColumns(isSSR: boolean) {\n if (!this.columnsDirty) {\n return;\n }\n\n this.rowHeaderColumnKeys = new Set();\n this.columns = [];\n let columnKeyMap = new Map();\n let visit = (node: Node<T>) => {\n switch (node.type) {\n case 'column':\n columnKeyMap.set(node.key, node);\n if (!node.hasChildNodes) {\n node.index = this.columns.length;\n this.columns.push(node);\n\n if (node.props.isRowHeader) {\n this.rowHeaderColumnKeys.add(node.key);\n }\n }\n break;\n }\n for (let child of this.getChildren(node.key)) {\n visit(child);\n }\n };\n\n for (let node of this.getChildren(this.head.key)) {\n visit(node);\n }\n\n this.headerRows = buildHeaderRows(columnKeyMap, this.columns);\n this.columnsDirty = false;\n if (this.rowHeaderColumnKeys.size === 0 && this.columns.length > 0 && !isSSR) {\n throw new Error('A table must have at least one Column with the isRowHeader prop set to true');\n }\n }\n\n get columnCount() {\n return this.columns.length;\n }\n\n *[Symbol.iterator]() {\n // Wait until the collection is initialized.\n if (this.head.key === -1) {\n return;\n }\n yield this.head;\n yield this.body;\n }\n\n getFirstKey() {\n return this.body.firstChildKey;\n }\n\n getLastKey() {\n return this.body.lastChildKey;\n }\n\n getKeyAfter(key: Key) {\n let node = this.getItem(key);\n if (node?.type === 'column') {\n return node.nextKey ?? null;\n }\n\n return super.getKeyAfter(key);\n }\n\n getKeyBefore(key: Key) {\n let node = this.getItem(key);\n if (node?.type === 'column') {\n return node.prevKey ?? null;\n }\n\n let k = super.getKeyBefore(key);\n if (k != null && this.getItem(k)?.type === 'tablebody') {\n return null;\n }\n\n return k;\n }\n\n getChildren(key: Key): Iterable<Node<T>> {\n if (!this.getItem(key)) {\n for (let row of this.headerRows) {\n if (row.key === key) {\n return row.childNodes;\n }\n }\n }\n\n return super.getChildren(key);\n }\n\n clone() {\n let collection = super.clone();\n collection.headerRows = this.headerRows;\n collection.columns = this.columns;\n collection.rowHeaderColumnKeys = this.rowHeaderColumnKeys;\n collection.head = this.head;\n collection.body = this.body;\n return collection;\n }\n\n getTextValue(key: Key): string {\n let row = this.getItem(key);\n if (!row) {\n return '';\n }\n\n // If the row has a textValue, use that.\n if (row.textValue) {\n return row.textValue;\n }\n\n // Otherwise combine the text of each of the row header columns.\n let rowHeaderColumnKeys = this.rowHeaderColumnKeys;\n let text: string[] = [];\n for (let cell of this.getChildren(key)) {\n let column = this.columns[cell.index!];\n if (rowHeaderColumnKeys.has(column.key) && cell.textValue) {\n text.push(cell.textValue);\n }\n\n if (text.length === rowHeaderColumnKeys.size) {\n break;\n }\n }\n\n return text.join(' ');\n }\n}\n\ninterface ResizableTableContainerContextValue {\n tableWidth: number,\n tableRef: RefObject<HTMLTableElement | null>,\n scrollRef: RefObject<HTMLElement | null>,\n // Dependency inject useTableColumnResizeState so it doesn't affect bundle size unless you're using ResizableTableContainer.\n useTableColumnResizeState: typeof useTableColumnResizeState,\n onResizeStart?: (widths: Map<Key, ColumnSize>) => void,\n onResize?: (widths: Map<Key, ColumnSize>) => void,\n onResizeEnd?: (widths: Map<Key, ColumnSize>) => void\n}\n\nconst ResizableTableContainerContext = createContext<ResizableTableContainerContextValue | null>(null);\n\nexport interface ResizableTableContainerProps extends DOMProps, GlobalDOMAttributes<HTMLDivElement> {\n /**\n * Handler that is called when a user starts a column resize.\n */\n onResizeStart?: (widths: Map<Key, ColumnSize>) => void,\n /**\n * Handler that is called when a user performs a column resize.\n * Can be used with the width property on columns to put the column widths into\n * a controlled state.\n */\n onResize?: (widths: Map<Key, ColumnSize>) => void,\n /**\n * Handler that is called after a user performs a column resize.\n * Can be used to store the widths of columns for another future session.\n */\n onResizeEnd?: (widths: Map<Key, ColumnSize>) => void\n}\n\nexport const ResizableTableContainer = forwardRef(function ResizableTableContainer(props: ResizableTableContainerProps, ref: ForwardedRef<HTMLDivElement>) {\n let containerRef = useObjectRef(ref);\n let tableRef = useRef<HTMLTableElement>(null);\n let scrollRef = useRef<HTMLElement | null>(null);\n let [width, setWidth] = useState(0);\n\n useLayoutEffect(() => {\n // Walk up the DOM from the Table to the ResizableTableContainer and stop\n // when we reach the first scrollable element. This is what we'll measure\n // to determine column widths (important due to width of scrollbars).\n // This will usually be the ResizableTableContainer for native tables, and\n // the Table itself for virtualized tables.\n let table = tableRef.current as HTMLElement | null;\n while (table && table !== containerRef.current && !isScrollable(table)) {\n table = table.parentElement;\n }\n scrollRef.current = table;\n }, [containerRef]);\n\n useResizeObserver({\n ref: scrollRef,\n box: 'border-box',\n onResize() {\n setWidth(scrollRef.current?.clientWidth ?? 0);\n }\n });\n\n useLayoutEffect(() => {\n setWidth(scrollRef.current?.clientWidth ?? 0);\n }, []);\n\n let ctx = useMemo(() => ({\n tableRef,\n scrollRef,\n tableWidth: width,\n useTableColumnResizeState,\n onResizeStart: props.onResizeStart,\n onResize: props.onResize,\n onResizeEnd: props.onResizeEnd\n }), [tableRef, width, props.onResizeStart, props.onResize, props.onResizeEnd]);\n\n return (\n <div\n {...filterDOMProps(props, {global: true})}\n ref={containerRef}\n className={props.className || 'react-aria-ResizableTableContainer'}\n style={props.style}\n onScroll={props.onScroll}>\n <ResizableTableContainerContext.Provider value={ctx}>\n {props.children}\n </ResizableTableContainerContext.Provider>\n </div>\n );\n});\n\nexport const TableContext = createContext<ContextValue<TableProps, HTMLTableElement | HTMLDivElement>>(null);\nexport const TableStateContext = createContext<TableState<any> | null>(null);\nexport const TableColumnResizeStateContext = createContext<TableColumnResizeState<unknown> | null>(null);\n\nexport interface TableRenderProps {\n /**\n * Whether the table is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the table is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the table is currently the active drop target.\n * @selector [data-drop-target]\n */\n isDropTarget: boolean,\n /**\n * State of the table.\n */\n state: TableState<unknown>\n}\n\nexport interface TableProps extends Omit<SharedTableProps<any>, 'children'>, StyleRenderProps<TableRenderProps>, SlotProps, AriaLabelingProps, GlobalDOMAttributes<HTMLTableElement> {\n /** The elements that make up the table. Includes the TableHeader, TableBody, Columns, and Rows. */\n children?: ReactNode,\n /**\n * How multiple selection should behave in the collection.\n * @default \"toggle\"\n */\n selectionBehavior?: SelectionBehavior,\n /**\n * Whether `disabledKeys` applies to all interactions, or only selection.\n * @default \"selection\"\n */\n disabledBehavior?: DisabledBehavior,\n /** Handler that is called when a user performs an action on the row. */\n onRowAction?: (key: Key) => void,\n /** The drag and drop hooks returned by `useDragAndDrop` used to enable drag and drop behavior for the Table. */\n dragAndDropHooks?: DragAndDropHooks\n}\n\n/**\n * A table displays data in rows and columns and enables a user to navigate its contents via directional navigation keys,\n * and optionally supports row selection and sorting.\n */\nexport const Table = forwardRef(function Table(props: TableProps, ref: ForwardedRef<HTMLTableElement | HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, TableContext);\n\n // Separate selection state so we have access to it from collection components via useTableOptions.\n let selectionState = useMultipleSelectionState(props);\n let {selectionBehavior, selectionMode, disallowEmptySelection} = selectionState;\n let hasDragHooks = !!props.dragAndDropHooks?.useDraggableCollectionState;\n let ctx = useMemo(() => ({\n selectionBehavior: selectionMode === 'none' ? null : selectionBehavior,\n selectionMode,\n disallowEmptySelection,\n allowsDragging: hasDragHooks\n }), [selectionBehavior, selectionMode, disallowEmptySelection, hasDragHooks]);\n\n let content = (\n <TableOptionsContext.Provider value={ctx}>\n <Collection {...props} />\n </TableOptionsContext.Provider>\n );\n\n return (\n <CollectionBuilder content={content} createCollection={() => new TableCollection<any>()}>\n {collection => <TableInner props={props} forwardedRef={ref as any} selectionState={selectionState} collection={collection} />}\n </CollectionBuilder>\n );\n});\n\ninterface TableInnerProps {\n props: TableProps,\n forwardedRef: ForwardedRef<HTMLTableElement>,\n selectionState: MultipleSelectionState,\n collection: ITableCollection<Node<object>>\n}\n\n\nfunction TableInner({props, forwardedRef: ref, selectionState, collection}: TableInnerProps) {\n let contextProps;\n [contextProps] = useContextProps({}, null, SelectableCollectionContext);\n let {filter, ...collectionProps} = contextProps;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n let {shouldUseVirtualFocus, disallowTypeAhead, ...DOMCollectionProps} = collectionProps || {};\n let tableContainerContext = useContext(ResizableTableContainerContext);\n ref = useObjectRef(useMemo(() => mergeRefs(ref, tableContainerContext?.tableRef), [ref, tableContainerContext?.tableRef]));\n let tableState = useTableState({\n ...props,\n collection,\n children: undefined,\n UNSAFE_selectionState: selectionState\n });\n\n let filteredState = UNSTABLE_useFilteredTableState(tableState, filter);\n let {isVirtualized, layoutDelegate, dropTargetDelegate: ctxDropTargetDelegate, CollectionRoot} = useContext(CollectionRendererContext);\n let {dragAndDropHooks} = props;\n let {gridProps} = useTable({\n ...props,\n ...DOMCollectionProps,\n layoutDelegate,\n isVirtualized\n }, filteredState, ref);\n let selectionManager = filteredState.selectionManager;\n let hasDragHooks = !!dragAndDropHooks?.useDraggableCollectionState;\n let hasDropHooks = !!dragAndDropHooks?.useDroppableCollectionState;\n let dragHooksProvided = useRef(hasDragHooks);\n let dropHooksProvided = useRef(hasDropHooks);\n useEffect(() => {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n if (dragHooksProvided.current !== hasDragHooks) {\n console.warn('Drag hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n if (dropHooksProvided.current !== hasDropHooks) {\n console.warn('Drop hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n }, [hasDragHooks, hasDropHooks]);\n\n let dragState: DraggableCollectionState | undefined = undefined;\n let dropState: DroppableCollectionState | undefined = undefined;\n let droppableCollection: DroppableCollectionResult | undefined = undefined;\n let isRootDropTarget = false;\n let dragPreview: JSX.Element | null = null;\n let preview = useRef<DragPreviewRenderer>(null);\n\n if (hasDragHooks && dragAndDropHooks) {\n dragState = dragAndDropHooks.useDraggableCollectionState!({\n collection: filteredState.collection,\n selectionManager,\n preview: dragAndDropHooks.renderDragPreview ? preview : undefined\n });\n dragAndDropHooks.useDraggableCollection!({}, dragState, ref);\n\n let DragPreview = dragAndDropHooks.DragPreview!;\n dragPreview = dragAndDropHooks.renderDragPreview\n ? <DragPreview ref={preview}>{dragAndDropHooks.renderDragPreview}</DragPreview>\n : null;\n }\n\n if (hasDropHooks && dragAndDropHooks) {\n dropState = dragAndDropHooks.useDroppableCollectionState!({\n collection: filteredState.collection,\n selectionManager\n });\n\n let keyboardDelegate = new ListKeyboardDelegate({\n collection: filteredState.collection,\n disabledKeys: selectionManager.disabledKeys,\n disabledBehavior: selectionManager.disabledBehavior,\n ref,\n layoutDelegate\n });\n let dropTargetDelegate = dragAndDropHooks.dropTargetDelegate || ctxDropTargetDelegate || new dragAndDropHooks.ListDropTargetDelegate(collection.rows, ref);\n droppableCollection = dragAndDropHooks.useDroppableCollection!({\n keyboardDelegate,\n dropTargetDelegate\n }, dropState, ref);\n\n isRootDropTarget = dropState.isDropTarget({type: 'root'});\n }\n\n let {focusProps, isFocused, isFocusVisible} = useFocusRing();\n let renderProps = useRenderProps({\n className: props.className,\n style: props.style,\n defaultClassName: 'react-aria-Table',\n values: {\n isDropTarget: isRootDropTarget,\n isFocused,\n isFocusVisible,\n state: filteredState\n }\n });\n\n let isListDraggable = !!(hasDragHooks && !dragState?.isDisabled);\n\n let style = renderProps.style;\n let layoutState: TableColumnResizeState<unknown> | null = null;\n if (tableContainerContext) {\n layoutState = tableContainerContext.useTableColumnResizeState({\n tableWidth: tableContainerContext.tableWidth\n }, filteredState);\n if (!isVirtualized) {\n style = {\n ...style,\n tableLayout: 'fixed',\n width: 'fit-content'\n };\n }\n }\n\n let ElementType = useElementType('table');\n let DOMProps = filterDOMProps(props, {global: true});\n\n return (\n <Provider\n values={[\n [TableStateContext, filteredState],\n [TableColumnResizeStateContext, layoutState],\n [DragAndDropContext, {dragAndDropHooks, dragState, dropState}],\n [DropIndicatorContext, {render: TableDropIndicatorWrapper}],\n [SelectableCollectionContext, null],\n [FieldInputContext, null]\n ]}>\n <FocusScope>\n <ElementType\n {...mergeProps(DOMProps, renderProps, gridProps, focusProps, droppableCollection?.collectionProps)}\n style={style}\n ref={ref}\n slot={props.slot || undefined}\n onScroll={props.onScroll}\n data-allows-dragging={isListDraggable || undefined}\n data-drop-target={isRootDropTarget || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}>\n <CollectionRoot\n collection={filteredState.collection}\n scrollRef={tableContainerContext?.scrollRef ?? ref}\n persistedKeys={useDndPersistedKeys(selectionManager, dragAndDropHooks, dropState)} />\n </ElementType>\n </FocusScope>\n {dragPreview}\n </Provider>\n );\n}\n\nfunction useElementType<E extends keyof JSX.IntrinsicElements>(element: E): E | 'div' {\n let {isVirtualized} = useContext(CollectionRendererContext);\n return isVirtualized ? 'div' : element;\n}\n\nexport interface TableOptionsContextValue {\n /** The type of selection that is allowed in the table. */\n selectionMode: SelectionMode,\n /** The selection behavior for the table. If selectionMode is `\"none\"`, this will be `null`. */\n selectionBehavior: SelectionBehavior | null,\n /** Whether the table allows empty selection. */\n disallowEmptySelection: boolean,\n /** Whether the table allows rows to be dragged. */\n allowsDragging: boolean\n}\n\nconst TableOptionsContext = createContext<TableOptionsContextValue | null>(null);\n\n/**\n * Returns options from the parent `<Table>` component.\n */\nexport function useTableOptions(): TableOptionsContextValue {\n return useContext(TableOptionsContext)!;\n}\n\nexport interface TableHeaderRenderProps {\n /**\n * Whether the table header is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean\n}\n\nexport interface TableHeaderProps<T> extends StyleRenderProps<TableHeaderRenderProps>, HoverEvents, GlobalDOMAttributes<HTMLTableSectionElement> {\n /** A list of table columns. */\n columns?: Iterable<T>,\n /** A list of `Column(s)` or a function. If the latter, a list of columns must be provided using the `columns` prop. */\n children?: ReactNode | ((item: T) => ReactElement),\n /** Values that should invalidate the column cache when using dynamic collections. */\n dependencies?: ReadonlyArray<any>\n}\n\nclass TableHeaderNode<T> extends CollectionNode<T> {\n static readonly type = 'tableheader';\n}\n\n/**\n * A header within a `<Table>`, containing the table columns.\n */\nexport const TableHeader = /*#__PURE__*/ createBranchComponent(\n TableHeaderNode,\n <T extends object>(props: TableHeaderProps<T>, ref: ForwardedRef<HTMLTableSectionElement | HTMLDivElement>) => {\n let collection = useContext(TableStateContext)!.collection as TableCollection<unknown>;\n let headerRows = useCachedChildren({\n items: collection.headerRows,\n children: useCallback((item: Node<unknown>) => {\n switch (item.type) {\n case 'headerrow':\n return <TableHeaderRow item={item} />;\n default:\n throw new Error('Unsupported node type in TableHeader: ' + item.type);\n }\n }, [])\n });\n\n let THead = useElementType('thead');\n let {rowGroupProps} = useTableRowGroup();\n let {hoverProps, isHovered} = useHover({\n onHoverStart: props.onHoverStart,\n onHoverChange: props.onHoverChange,\n onHoverEnd: props.onHoverEnd\n });\n\n let renderProps = useRenderProps({\n className: props.className,\n style: props.style,\n defaultClassName: 'react-aria-TableHeader',\n values: {\n isHovered\n }\n });\n\n return (\n <THead\n {...mergeProps(filterDOMProps(props, {global: true}), rowGroupProps, hoverProps)}\n {...renderProps}\n ref={ref as any}\n data-hovered={isHovered || undefined}>\n {headerRows}\n </THead>\n );\n },\n props => (\n <Collection dependencies={props.dependencies} items={props.columns}>\n {props.children}\n </Collection>\n )\n);\n\nfunction TableHeaderRow({item}: {item: GridNode<any>}) {\n let ref = useRef<HTMLTableRowElement>(null);\n let state = useContext(TableStateContext)!;\n let {isVirtualized, CollectionBranch} = useContext(CollectionRendererContext);\n let {rowProps} = useTableHeaderRow({node: item, isVirtualized}, state, ref);\n let {checkboxProps} = useTableSelectAllCheckbox(state);\n let TR = useElementType('tr');\n\n return (\n <TR {...rowProps} ref={ref}>\n <Provider\n values={[\n [CheckboxContext, {\n slots: {\n selection: checkboxProps\n }\n }]\n ]}>\n <CollectionBranch collection={state.collection} parent={item} />\n </Provider>\n </TR>\n );\n}\n\nexport interface ColumnRenderProps {\n /**\n * Whether the item is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether the item is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the item is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the column allows sorting.\n * @selector [data-allows-sorting]\n */\n allowsSorting: boolean,\n /**\n * The current sort direction.\n * @selector [data-sort-direction=\"ascending | descending\"]\n */\n sortDirection: SortDirection | undefined,\n /**\n * Whether the column is currently being resized.\n * @selector [data-resizing]\n */\n isResizing: boolean,\n /**\n * Triggers sorting for this column in the given direction.\n */\n sort(direction: SortDirection): void,\n /**\n * Starts column resizing if the table is contained in a `<ResizableTableContainer>` element.\n */\n startResize(): void\n}\n\nexport interface ColumnProps extends RenderProps<ColumnRenderProps>, GlobalDOMAttributes<HTMLTableHeaderCellElement> {\n /** The unique id of the column. */\n id?: Key,\n /** Whether the column allows sorting. */\n allowsSorting?: boolean,\n /** Whether a column is a [row header](https://www.w3.org/TR/wai-aria-1.1/#rowheader) and should be announced by assistive technology during row navigation. */\n isRowHeader?: boolean,\n /** A string representation of the column's contents, used for accessibility announcements. */\n textValue?: string,\n /** The width of the column. This prop only applies when the `<Table>` is wrapped in a `<ResizableTableContainer>`. */\n width?: ColumnSize | null,\n /** The default width of the column. This prop only applies when the `<Table>` is wrapped in a `<ResizableTableContainer>`. */\n defaultWidth?: ColumnSize | null,\n /** The minimum width of the column. This prop only applies when the `<Table>` is wrapped in a `<ResizableTableContainer>`. */\n minWidth?: ColumnStaticSize | null,\n /** The maximum width of the column. This prop only applies when the `<Table>` is wrapped in a `<ResizableTableContainer>`. */\n maxWidth?: ColumnStaticSize | null\n}\n\nclass TableColumnNode extends CollectionNode<unknown> {\n static readonly type = 'column';\n}\n\n/**\n * A column within a `<Table>`.\n */\nexport const Column = /*#__PURE__*/ createLeafComponent(TableColumnNode, (props: ColumnProps, forwardedRef: ForwardedRef<HTMLTableCellElement | HTMLDivElement>, column: GridNode<unknown>) => {\n let ref = useObjectRef<HTMLTableCellElement | HTMLDivElement>(forwardedRef);\n let state = useContext(TableStateContext)!;\n let {isVirtualized} = useContext(CollectionRendererContext);\n let {columnHeaderProps} = useTableColumnHeader(\n {node: column, isVirtualized},\n state,\n ref\n );\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n\n let layoutState = useContext(TableColumnResizeStateContext);\n let isResizing = false;\n if (layoutState) {\n isResizing = layoutState.resizingColumn === column.key;\n } else if (process.env.NODE_ENV !== 'production') {\n for (let prop in ['width', 'defaultWidth', 'minWidth', 'maxWidth']) {\n if (prop in column.props) {\n console.warn(`The ${prop} prop on a <Column> only applies when a <Table> is wrapped in a <ResizableTableContainer>. If you aren't using column resizing, you can set the width of a column with CSS.`);\n }\n }\n }\n\n let {hoverProps, isHovered} = useHover({isDisabled: !props.allowsSorting});\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n children: column.rendered,\n defaultClassName: 'react-aria-Column',\n values: {\n isHovered,\n isFocused,\n isFocusVisible,\n allowsSorting: column.props.allowsSorting,\n sortDirection: state.sortDescriptor?.column === column.key\n ? state.sortDescriptor.direction\n : undefined,\n isResizing,\n startResize: () => {\n if (layoutState) {\n layoutState.startResize(column.key);\n state.setKeyboardNavigationDisabled(true);\n } else {\n throw new Error('Wrap your <Table> in a <ResizableTableContainer> to enable column resizing');\n }\n },\n sort: (direction) => {\n state.sort(column.key, direction);\n }\n }\n });\n\n let style = renderProps.style;\n if (layoutState) {\n style = {...style, width: layoutState.getColumnWidth(column.key)};\n }\n\n let TH = useElementType('th');\n let DOMProps = filterDOMProps(props as any, {global: true});\n delete DOMProps.id;\n\n return (\n <TH\n {...mergeProps(DOMProps, columnHeaderProps, focusProps, hoverProps)}\n {...renderProps}\n style={style}\n ref={ref as any}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-resizing={isResizing || undefined}\n data-allows-sorting={column.props.allowsSorting || undefined}\n data-sort-direction={state.sortDescriptor?.column === column.key ? state.sortDescriptor.direction : undefined}>\n <Provider\n values={[\n [ColumnResizerContext, {column, triggerRef: ref}],\n [CollectionRendererContext, DefaultCollectionRenderer]\n ]}>\n {renderProps.children}\n </Provider>\n </TH>\n );\n});\n\nexport interface ColumnResizerRenderProps {\n /**\n * Whether the resizer is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether the resizer is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the resizer is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the resizer is currently being resized.\n * @selector [data-resizing]\n */\n isResizing: boolean,\n /**\n * The direction that the column is currently resizable.\n * @selector [data-resizable-direction=\"right | left | both\"]\n */\n resizableDirection: 'right' | 'left' | 'both'\n}\n\nexport interface ColumnResizerProps extends HoverEvents, RenderProps<ColumnResizerRenderProps>, GlobalDOMAttributes<HTMLDivElement> {\n /** A custom accessibility label for the resizer. */\n 'aria-label'?: string\n}\n\ninterface ColumnResizerContextValue {\n column: GridNode<unknown>,\n triggerRef: RefObject<HTMLDivElement | null>\n}\n\nconst ColumnResizerContext = createContext<ColumnResizerContextValue | null>(null);\n\nexport const ColumnResizer = forwardRef(function ColumnResizer(props: ColumnResizerProps, ref: ForwardedRef<HTMLDivElement>) {\n let layoutState = useContext(TableColumnResizeStateContext);\n if (!layoutState) {\n throw new Error('Wrap your <Table> in a <ResizableTableContainer> to enable column resizing');\n }\n let stringFormatter = useLocalizedStringFormatter(intlMessages, 'react-aria-components');\n\n let {onResizeStart, onResize, onResizeEnd} = useContext(ResizableTableContainerContext)!;\n let {column, triggerRef} = useContext(ColumnResizerContext)!;\n let inputRef = useRef<HTMLInputElement>(null);\n let {resizerProps, inputProps, isResizing} = useTableColumnResize(\n {\n column,\n 'aria-label': props['aria-label'] || stringFormatter.format('tableResizer'),\n onResizeStart,\n onResize,\n onResizeEnd,\n triggerRef\n },\n layoutState,\n inputRef\n );\n let {focusProps, isFocused, isFocusVisible} = useFocusRing();\n let {hoverProps, isHovered} = useHover(props);\n\n let isEResizable = layoutState.getColumnMinWidth(column.key) >= layoutState.getColumnWidth(column.key);\n let isWResizable = layoutState.getColumnMaxWidth(column.key) <= layoutState.getColumnWidth(column.key);\n let {direction} = useLocale();\n let resizableDirection: ColumnResizerRenderProps['resizableDirection'] = 'both';\n if (isEResizable) {\n resizableDirection = direction === 'rtl' ? 'right' : 'left';\n } else if (isWResizable) {\n resizableDirection = direction === 'rtl' ? 'left' : 'right';\n } else {\n resizableDirection = 'both';\n }\n\n let objectRef = useObjectRef(ref);\n let [cursor, setCursor] = useState('');\n useEffect(() => {\n if (!objectRef.current) {\n return;\n }\n let style = window.getComputedStyle(objectRef.current);\n setCursor(style.cursor);\n }, [objectRef, resizableDirection]);\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-ColumnResizer',\n values: {\n isFocused,\n isFocusVisible,\n isResizing,\n isHovered,\n resizableDirection\n }\n });\n\n let [isMouseDown, setMouseDown] = useState(false);\n let onPointerDown = (e: PointerEvent) => {\n if (e.pointerType === 'mouse') {\n setMouseDown(true);\n }\n };\n\n if (!isResizing && isMouseDown) {\n setMouseDown(false);\n }\n\n let DOMProps = filterDOMProps(props, {global: true});\n\n return (\n <div\n ref={objectRef}\n role=\"presentation\"\n {...mergeProps(DOMProps, renderProps, resizerProps, {onPointerDown}, hoverProps)}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-resizing={isResizing || undefined}\n data-resizable-direction={resizableDirection}>\n {renderProps.children}\n <input\n ref={inputRef}\n {...mergeProps(inputProps, focusProps)} />\n {isResizing && isMouseDown && ReactDOM.createPortal(<div style={{position: 'fixed', top: 0, left: 0, bottom: 0, right: 0, cursor}} />, document.body)}\n </div>\n );\n});\n\nexport interface TableBodyRenderProps {\n /**\n * Whether the table body has no rows and should display its empty state.\n * @selector [data-empty]\n */\n isEmpty: boolean,\n /**\n * Whether the Table is currently the active drop target.\n * @selector [data-drop-target]\n */\n isDropTarget: boolean\n}\n\nexport interface TableBodyProps<T> extends Omit<CollectionProps<T>, 'disabledKeys'>, StyleRenderProps<TableBodyRenderProps>, GlobalDOMAttributes<HTMLTableSectionElement> {\n /** Provides content to display when there are no rows in the table. */\n renderEmptyState?: (props: TableBodyRenderProps) => ReactNode\n}\n\nclass TableBodyNode<T> extends FilterableNode<T> {\n static readonly type = 'tablebody';\n}\n\n/**\n * The body of a `<Table>`, containing the table rows.\n */\nexport const TableBody = /*#__PURE__*/ createBranchComponent(TableBodyNode, <T extends object>(props: TableBodyProps<T>, ref: ForwardedRef<HTMLTableSectionElement | HTMLDivElement>) => {\n let state = useContext(TableStateContext)!;\n let {isVirtualized} = useContext(CollectionRendererContext);\n let collection = state.collection;\n let {CollectionBranch} = useContext(CollectionRendererContext);\n let {dragAndDropHooks, dropState} = useContext(DragAndDropContext);\n let isDroppable = !!dragAndDropHooks?.useDroppableCollectionState && !dropState?.isDisabled;\n let isRootDropTarget = isDroppable && !!dropState && (dropState.isDropTarget({type: 'root'}) ?? false);\n\n let isEmpty = collection.size === 0;\n let renderValues = {\n isDropTarget: isRootDropTarget,\n isEmpty\n };\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n children: undefined,\n defaultClassName: 'react-aria-TableBody',\n values: renderValues\n });\n\n let emptyState;\n let TR = useElementType('tr');\n let TD = useElementType('td');\n let numColumns = collection.columnCount;\n\n if (isEmpty && props.renderEmptyState && state) {\n let rowProps = {};\n let rowHeaderProps = {};\n let style = {};\n if (isVirtualized) {\n rowHeaderProps['aria-colspan'] = numColumns;\n style = {display: 'contents'};\n } else {\n rowHeaderProps['colSpan'] = numColumns;\n }\n\n emptyState = (\n <TR role=\"row\" {...rowProps} style={style}>\n <TD role=\"rowheader\" {...rowHeaderProps} style={style}>\n {props.renderEmptyState(renderValues)}\n </TD>\n </TR>\n );\n }\n\n let {rowGroupProps} = useTableRowGroup();\n let TBody = useElementType('tbody');\n\n let DOMProps = filterDOMProps(props, {global: true});\n\n // TODO: TableBody doesn't support being the scrollable body of the table yet, to revisit if needed. Would need to\n // call useLoadMore here and walk up the DOM to the nearest scrollable element to set scrollRef\n return (\n <TBody\n {...mergeProps(DOMProps, renderProps, rowGroupProps)}\n ref={ref as any}\n data-empty={isEmpty || undefined}>\n {isDroppable && <RootDropIndicator />}\n <CollectionBranch\n collection={collection}\n parent={collection.body}\n renderDropIndicator={useRenderDropIndicator(dragAndDropHooks, dropState)} />\n {emptyState}\n </TBody>\n );\n});\n\nexport interface RowRenderProps extends ItemRenderProps {\n /** Whether the row's children have keyboard focus. */\n isFocusVisibleWithin: boolean,\n /** The unique id of the row. */\n id?: Key\n}\n\nexport interface RowProps<T> extends StyleRenderProps<RowRenderProps>, LinkDOMProps, HoverEvents, PressEvents, Omit<GlobalDOMAttributes<HTMLTableRowElement>, 'onClick'> {\n /** A list of columns used when dynamically rendering cells. */\n columns?: Iterable<T>,\n /** The cells within the row. Supports static items or a function for dynamic rendering. */\n children?: ReactNode | ((item: T) => ReactElement),\n /** The object value that this row represents. When using dynamic collections, this is set automatically. */\n value?: T,\n /** Values that should invalidate the cell cache when using dynamic collections. */\n dependencies?: ReadonlyArray<any>,\n /** A string representation of the row's contents, used for features like typeahead. */\n textValue?: string,\n /** Whether the row is disabled. */\n isDisabled?: boolean,\n /**\n * Handler that is called when a user performs an action on the row. The exact user event depends on\n * the collection's `selectionBehavior` prop and the interaction modality.\n */\n onAction?: () => void,\n /** The unique id of the row. */\n id?: Key\n}\n\nclass TableRowNode<T> extends CollectionNode<T> {\n static readonly type = 'item';\n\n filter(collection: BaseCollection<T>, newCollection: BaseCollection<T>, filterFn: (textValue: string, node: Node<T>) => boolean): TableRowNode<T> | null {\n let cells = collection.getChildren(this.key);\n for (let cell of cells) {\n if (filterFn(cell.textValue, cell)) {\n let clone = this.clone();\n newCollection.addDescendants(clone, collection);\n return clone;\n }\n }\n\n return null;\n }\n}\n\n/**\n * A row within a `<Table>`.\n */\nexport const Row = /*#__PURE__*/ createBranchComponent(\n TableRowNode,\n <T extends object>(props: RowProps<T>, forwardedRef: ForwardedRef<HTMLTableRowElement | HTMLDivElement>, item: GridNode<T>) => {\n let ref = useObjectRef<HTMLTableRowElement | HTMLDivElement>(forwardedRef);\n let state = useContext(TableStateContext)!;\n let {dragAndDropHooks, dragState, dropState} = useContext(DragAndDropContext);\n let {isVirtualized, CollectionBranch} = useContext(CollectionRendererContext);\n let {rowProps, ...states} = useTableRow(\n {\n node: item,\n shouldSelectOnPressUp: !!dragState,\n isVirtualized\n },\n state,\n ref\n );\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let {\n isFocusVisible: isFocusVisibleWithin,\n focusProps: focusWithinProps\n } = useFocusRing({within: true});\n let {hoverProps, isHovered} = useHover({\n isDisabled: !states.allowsSelection && !states.hasAction,\n onHoverStart: props.onHoverStart,\n onHoverChange: props.onHoverChange,\n onHoverEnd: props.onHoverEnd\n });\n\n let {checkboxProps} = useTableSelectionCheckbox(\n {key: item.key},\n state\n );\n\n let draggableItem: DraggableItemResult | undefined = undefined;\n if (dragState && dragAndDropHooks) {\n draggableItem = dragAndDropHooks.useDraggableItem!({key: item.key, hasDragButton: true}, dragState);\n }\n\n let dropIndicator: DropIndicatorAria | undefined = undefined;\n let dropIndicatorRef = useRef<HTMLDivElement>(null);\n let {visuallyHiddenProps} = useVisuallyHidden();\n if (dropState && dragAndDropHooks) {\n dropIndicator = dragAndDropHooks.useDropIndicator!({\n target: {type: 'item', key: item.key, dropPosition: 'on'}\n }, dropState, dropIndicatorRef);\n }\n\n let dragButtonRef = useRef<HTMLButtonElement>(null);\n useEffect(() => {\n if (dragState && !dragButtonRef.current && process.env.NODE_ENV !== 'production') {\n console.warn('Draggable items in a Table must contain a <Button slot=\"drag\"> element so that keyboard and screen reader users can drag them.');\n }\n // eslint-disable-next-line\n }, []);\n\n let isDragging = dragState && dragState.isDragging(item.key);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n let {children: _, ...restProps} = props;\n let renderProps = useRenderProps({\n ...restProps,\n id: undefined,\n defaultClassName: 'react-aria-Row',\n values: {\n ...states,\n isHovered,\n isFocused,\n isFocusVisible,\n selectionMode: state.selectionManager.selectionMode,\n selectionBehavior: state.selectionManager.selectionBehavior,\n isDragging,\n isDropTarget: dropIndicator?.isDropTarget,\n isFocusVisibleWithin,\n id: item.key\n }\n });\n\n let TR = useElementType('tr');\n let TD = useElementType('td');\n let DOMProps = filterDOMProps(props as any, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <>\n {dropIndicator && !dropIndicator.isHidden && (\n <TR role=\"row\" style={{height: 0}}>\n <TD role=\"gridcell\" colSpan={state.collection.columnCount} style={{padding: 0}}>\n <div role=\"button\" {...visuallyHiddenProps} {...dropIndicator.dropIndicatorProps} ref={dropIndicatorRef} />\n </TD>\n </TR>\n )}\n <TR\n {...mergeProps(DOMProps, renderProps, rowProps, focusProps, hoverProps, draggableItem?.dragProps, focusWithinProps)}\n ref={ref as any}\n data-disabled={states.isDisabled || undefined}\n data-selected={states.isSelected || undefined}\n data-hovered={isHovered || undefined}\n data-focused={states.isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-pressed={states.isPressed || undefined}\n data-dragging={isDragging || undefined}\n data-drop-target={dropIndicator?.isDropTarget || undefined}\n data-selection-mode={state.selectionManager.selectionMode === 'none' ? undefined : state.selectionManager.selectionMode}\n data-focus-visible-within={isFocusVisibleWithin || undefined}>\n <Provider\n values={[\n [CheckboxContext, {\n slots: {\n [DEFAULT_SLOT]: {},\n selection: checkboxProps\n }\n }],\n [ButtonContext, {\n slots: {\n [DEFAULT_SLOT]: {},\n drag: {\n ...draggableItem?.dragButtonProps,\n ref: dragButtonRef,\n style: {\n pointerEvents: 'none'\n }\n }\n }\n }]\n ]}>\n <CollectionBranch collection={state.collection} parent={item} />\n </Provider>\n </TR>\n </>\n );\n },\n props => {\n if (props.id == null && typeof props.children === 'function') {\n throw new Error('No id detected for the Row element. The Row element requires a id to be provided to it when the cells are rendered dynamically.');\n }\n\n let dependencies = [props.value].concat(props.dependencies);\n return (\n <Collection dependencies={dependencies} items={props.columns} idScope={props.id}>\n {props.children}\n </Collection>\n );\n }\n);\n\nexport interface CellRenderProps {\n /**\n * Whether the cell is currently in a pressed state.\n * @selector [data-pressed]\n */\n isPressed: boolean,\n /**\n * Whether the cell is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the cell is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the cell is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * The unique id of the cell.\n **/\n id?: Key\n}\n\nexport interface CellProps extends RenderProps<CellRenderProps>, GlobalDOMAttributes<HTMLTableCellElement> {\n /** The unique id of the cell. */\n id?: Key,\n /** A string representation of the cell's contents, used for features like typeahead. */\n textValue?: string,\n /** Indicates how many columns the data cell spans. */\n colSpan?: number\n}\n\nclass TableCellNode extends CollectionNode<unknown> {\n static readonly type = 'cell';\n}\n\n/**\n * A cell within a table row.\n */\nexport const Cell = /*#__PURE__*/ createLeafComponent(TableCellNode, (props: CellProps, forwardedRef: ForwardedRef<HTMLTableCellElement | HTMLDivElement>, cell: GridNode<unknown>) => {\n let ref = useObjectRef<HTMLTableCellElement | HTMLDivElement>(forwardedRef);\n let state = useContext(TableStateContext)!;\n let {dragState} = useContext(DragAndDropContext);\n let {isVirtualized} = useContext(CollectionRendererContext);\n\n cell.column = state.collection.columns[cell.index];\n\n let {gridCellProps, isPressed} = useTableCell({\n node: cell,\n shouldSelectOnPressUp: !!dragState,\n isVirtualized\n }, state, ref);\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let {hoverProps, isHovered} = useHover({});\n\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n defaultClassName: 'react-aria-Cell',\n values: {\n isFocused,\n isFocusVisible,\n isPressed,\n isHovered,\n id: cell.key\n }\n });\n\n let TD = useElementType('td');\n let DOMProps = filterDOMProps(props as any, {global: true});\n delete DOMProps.id;\n\n return (\n <TD\n {...mergeProps(DOMProps, renderProps, gridCellProps, focusProps, hoverProps)}\n ref={ref as any}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-pressed={isPressed || undefined}>\n <CollectionRendererContext.Provider value={DefaultCollectionRenderer}>\n {renderProps.children}\n </CollectionRendererContext.Provider>\n </TD>\n );\n});\n\nfunction TableDropIndicatorWrapper(props: DropIndicatorProps, ref: ForwardedRef<HTMLElement>) {\n ref = useObjectRef(ref);\n let {dragAndDropHooks, dropState} = useContext(DragAndDropContext)!;\n let buttonRef = useRef<HTMLDivElement>(null);\n let {dropIndicatorProps, isHidden, isDropTarget} = dragAndDropHooks!.useDropIndicator!(\n props,\n dropState!,\n buttonRef\n );\n\n if (isHidden) {\n return null;\n }\n\n return (\n <TableDropIndicatorForwardRef {...props} dropIndicatorProps={dropIndicatorProps} isDropTarget={isDropTarget} buttonRef={buttonRef} ref={ref} />\n );\n}\n\ninterface TableDropIndicatorProps extends DropIndicatorProps, GlobalDOMAttributes<HTMLTableRowElement> {\n dropIndicatorProps: React.HTMLAttributes<HTMLElement>,\n isDropTarget: boolean,\n buttonRef: RefObject<HTMLDivElement | null>\n}\n\nfunction TableDropIndicator(props: TableDropIndicatorProps, ref: ForwardedRef<HTMLElement>) {\n let {\n dropIndicatorProps,\n isDropTarget,\n buttonRef,\n ...otherProps\n } = props;\n\n let state = useContext(TableStateContext)!;\n let {visuallyHiddenProps} = useVisuallyHidden();\n let renderProps = useRenderProps({\n ...otherProps,\n defaultClassName: 'react-aria-DropIndicator',\n values: {\n isDropTarget\n }\n });\n\n let TR = useElementType('tr');\n let TD = useElementType('td');\n\n return (\n <TR\n {...filterDOMProps(props as any, {global: true})}\n {...renderProps}\n role=\"row\"\n ref={ref as RefObject<HTMLTableRowElement | null>}\n data-drop-target={isDropTarget || undefined}>\n <TD\n role=\"gridcell\"\n colSpan={state.collection.columnCount}\n style={{padding: 0}}>\n <div {...visuallyHiddenProps} role=\"button\" {...dropIndicatorProps} ref={buttonRef} />\n {renderProps.children}\n </TD>\n </TR>\n );\n}\n\nconst TableDropIndicatorForwardRef = forwardRef(TableDropIndicator);\n\nfunction RootDropIndicator() {\n let state = useContext(TableStateContext)!;\n let {dragAndDropHooks, dropState} = useContext(DragAndDropContext);\n let ref = useRef<HTMLDivElement>(null);\n let {dropIndicatorProps} = dragAndDropHooks!.useDropIndicator!({\n target: {type: 'root'}\n }, dropState!, ref);\n let isDropTarget = dropState!.isDropTarget({type: 'root'});\n let {visuallyHiddenProps} = useVisuallyHidden();\n let TR = useElementType('tr');\n let TD = useElementType('td');\n\n if (!isDropTarget && dropIndicatorProps['aria-hidden']) {\n return null;\n }\n\n return (\n <TR\n role=\"row\"\n aria-hidden={dropIndicatorProps['aria-hidden']}\n style={{height: 0}}>\n <TD\n role=\"gridcell\"\n colSpan={state.collection.columnCount}\n style={{padding: 0}}>\n <div role=\"button\" {...visuallyHiddenProps} {...dropIndicatorProps} ref={ref} />\n </TD>\n </TR>\n );\n}\n\nexport interface TableLoadMoreItemProps extends Omit<LoadMoreSentinelProps, 'collection'>, StyleProps, GlobalDOMAttributes<HTMLTableRowElement> {\n /**\n * The load more spinner to render when loading additional items.\n */\n children?: ReactNode,\n /**\n * Whether or not the loading spinner should be rendered or not.\n */\n isLoading?: boolean\n}\n\nexport const TableLoadMoreItem = createLeafComponent(LoaderNode, function TableLoadingIndicator(props: TableLoadMoreItemProps, ref: ForwardedRef<HTMLTableRowElement>, item: Node<object>) {\n let state = useContext(TableStateContext)!;\n let {isVirtualized} = useContext(CollectionRendererContext);\n let {isLoading, onLoadMore, scrollOffset, ...otherProps} = props;\n let numColumns = state.collection.columns.length;\n\n let sentinelRef = useRef(null);\n let memoedLoadMoreProps = useMemo(() => ({\n onLoadMore,\n collection: state?.collection,\n sentinelRef,\n scrollOffset\n }), [onLoadMore, scrollOffset, state?.collection]);\n useLoadMoreSentinel(memoedLoadMoreProps, sentinelRef);\n\n let renderProps = useRenderProps({\n ...otherProps,\n id: undefined,\n children: item.rendered,\n defaultClassName: 'react-aria-TableLoadingIndicator',\n values: null\n });\n let TR = useElementType('tr');\n let TD = useElementType('td');\n let rowProps = {};\n let rowHeaderProps = {};\n let style = {};\n\n if (isVirtualized) {\n // For now don't include aria-rowindex on loader since they aren't keyboard focusable\n // Arguably shouldn't include them ever since it might be confusing to the user to include the loaders as part of the\n // row count\n rowHeaderProps['aria-colspan'] = numColumns;\n style = {display: 'contents'};\n } else {\n rowHeaderProps['colSpan'] = numColumns;\n }\n\n return (\n <>\n {/* Alway render the sentinel. For now onus is on the user for styling when using flex + gap (this would introduce a gap even though it doesn't take room) */}\n {/* @ts-ignore - compatibility with React < 19 */}\n <TR style={{height: 0}} inert={inertValue(true)}>\n <TD style={{padding: 0, border: 0}}>\n <div data-testid=\"loadMoreSentinel\" ref={sentinelRef} style={{position: 'relative', height: 1, width: 1}} />\n </TD>\n </TR>\n {isLoading && renderProps.children && (\n <TR\n {...mergeProps(filterDOMProps(props, {global: true}), rowProps)}\n {...renderProps}\n role=\"row\"\n ref={ref as ForwardedRef<HTMLTableRowElement>}>\n <TD role=\"rowheader\" {...rowHeaderProps} style={style}>\n {renderProps.children}\n </TD>\n </TR>\n )}\n </>\n );\n});\n"],"names":[],"version":3,"file":"Table.main.js.map"}
|
|
1
|
+
{"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,8CAA2B,CAAA,GAAA,0CAAa;IAS5C,QAAQ,IAAuB,EAAE;QAC/B,KAAK,CAAC,QAAQ;QAEd,IAAI,CAAC,iBAAL,IAAI,CAAC,eAAiB,KAAK,IAAI,KAAK;QACpC,IAAI,KAAK,IAAI,KAAK,eAChB,IAAI,CAAC,IAAI,GAAG;QAGd,IAAI,KAAK,IAAI,KAAK,aAChB,IAAI,CAAC,IAAI,GAAG;IAEhB;IAEA,OAAO,QAAa,EAAE,OAAY,EAAE,QAAQ,KAAK,EAAE;QACjD,IAAI,CAAC,aAAa,CAAC;QAEnB,IAAI,CAAC,IAAI,GAAG,EAAE;QACd,KAAK,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAG;YAC/C,IAAI,eAAe,AAAC,IAA0B,YAAY;YAC1D,IAAI,gBAAgB,MAAM;gBACxB,IAAI,WAAW,IAAI,CAAC,OAAO,CAAC;oBACF,oBAAwC;gBAAlE,IAAI,qBAAqB,AAAC,CAAA,CAAA,qBAAA,SAAS,QAAQ,cAAjB,gCAAA,qBAAqB,SAAS,KAAK,AAAD,IAAM,CAAA,CAAA,oBAAA,SAAS,OAAO,cAAhB,+BAAA,oBAAoB,CAAA;gBACtF,IAAI,uBAAuB,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OACjD,MAAM,IAAI,MAAM,CAAC,0CAA0C,EAAE,mBAAmB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;YAE/H;YACA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACjB;QAEA,KAAK,CAAC,OAAO,UAAU,SAAS;IAClC;IAEQ,cAAc,KAAc,EAAE;QACpC,IAAI,CAAC,IAAI,CAAC,YAAY,EACpB;QAGF,IAAI,CAAC,mBAAmB,GAAG,IAAI;QAC/B,IAAI,CAAC,OAAO,GAAG,EAAE;QACjB,IAAI,eAAe,IAAI;QACvB,IAAI,QAAQ,CAAC;YACX,OAAQ,KAAK,IAAI;gBACf,KAAK;oBACH,aAAa,GAAG,CAAC,KAAK,GAAG,EAAE;oBAC3B,IAAI,CAAC,KAAK,aAAa,EAAE;wBACvB,KAAK,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;wBAChC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;wBAElB,IAAI,KAAK,KAAK,CAAC,WAAW,EACxB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,GAAG;oBAEzC;oBACA;YACJ;YACA,KAAK,IAAI,SAAS,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,EACzC,MAAM;QAEV;QAEA,KAAK,IAAI,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAC7C,MAAM;QAGR,IAAI,CAAC,UAAU,GAAG,CAAA,GAAA,wCAAc,EAAE,cAAc,IAAI,CAAC,OAAO;QAC5D,IAAI,CAAC,YAAY,GAAG;QACpB,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,OACrE,MAAM,IAAI,MAAM;IAEpB;IAEA,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;IAC5B;IAEA,CAAC,CAAC,OAAO,QAAQ,CAAC,GAAG;QACnB,4CAA4C;QAC5C,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,IACpB;QAEF,MAAM,IAAI,CAAC,IAAI;QACf,MAAM,IAAI,CAAC,IAAI;IACjB;IAEA,cAAc;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa;IAChC;IAEA,aAAa;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY;IAC/B;IAEA,YAAY,GAAQ,EAAE;QACpB,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;YAEf;QADT,IAAI,CAAA,iBAAA,2BAAA,KAAM,IAAI,MAAK,UACjB,OAAO,CAAA,gBAAA,KAAK,OAAO,cAAZ,2BAAA,gBAAgB;QAGzB,OAAO,KAAK,CAAC,YAAY;IAC3B;IAEA,aAAa,GAAQ,EAAE;YAOJ;QANjB,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;YAEf;QADT,IAAI,CAAA,iBAAA,2BAAA,KAAM,IAAI,MAAK,UACjB,OAAO,CAAA,gBAAA,KAAK,OAAO,cAAZ,2BAAA,gBAAgB;QAGzB,IAAI,IAAI,KAAK,CAAC,aAAa;QAC3B,IAAI,KAAK,QAAQ,EAAA,gBAAA,IAAI,CAAC,OAAO,CAAC,gBAAb,oCAAA,cAAiB,IAAI,MAAK,aACzC,OAAO;QAGT,OAAO;IACT;IAEA,YAAY,GAAQ,EAAqB;QACvC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAChB,KAAK,IAAI,OAAO,IAAI,CAAC,UAAU,CAAE;YAC/B,IAAI,IAAI,GAAG,KAAK,KACd,OAAO,IAAI,UAAU;QAEzB;QAGF,OAAO,KAAK,CAAC,YAAY;IAC3B;IAEA,QAAQ;QACN,IAAI,aAAa,KAAK,CAAC;QACvB,WAAW,UAAU,GAAG,IAAI,CAAC,UAAU;QACvC,WAAW,OAAO,GAAG,IAAI,CAAC,OAAO;QACjC,WAAW,mBAAmB,GAAG,IAAI,CAAC,mBAAmB;QACzD,WAAW,IAAI,GAAG,IAAI,CAAC,IAAI;QAC3B,WAAW,IAAI,GAAG,IAAI,CAAC,IAAI;QAC3B,OAAO;IACT;IAEA,aAAa,GAAQ,EAAU;QAC7B,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC;QACvB,IAAI,CAAC,KACH,OAAO;QAGT,wCAAwC;QACxC,IAAI,IAAI,SAAS,EACf,OAAO,IAAI,SAAS;QAGtB,gEAAgE;QAChE,IAAI,sBAAsB,IAAI,CAAC,mBAAmB;QAClD,IAAI,OAAiB,EAAE;QACvB,KAAK,IAAI,QAAQ,IAAI,CAAC,WAAW,CAAC,KAAM;YACtC,IAAI,SAAS,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,CAAE;YACtC,IAAI,oBAAoB,GAAG,CAAC,OAAO,GAAG,KAAK,KAAK,SAAS,EACvD,KAAK,IAAI,CAAC,KAAK,SAAS;YAG1B,IAAI,KAAK,MAAM,KAAK,oBAAoB,IAAI,EAC1C;QAEJ;QAEA,OAAO,KAAK,IAAI,CAAC;IACnB;;QA3KF,qBACE,aAA4B,EAAE,OAC9B,UAAyB,EAAE,OAC3B,OAAsB,EAAE,OACxB,sBAAgC,IAAI,YACpC,OAAO,IAAI,sCAAmB,UAC9B,OAAO,IAAI,oCAAiB,UAC5B,eAAe;;AAqKjB;AAaA,MAAM,qEAAiC,CAAA,GAAA,0BAAY,EAA8C;AAoB1F,MAAM,0DAA0B,CAAA,GAAA,uBAAS,EAAE,SAAS,wBAAwB,KAAmC,EAAE,GAAiC;IACvJ,IAAI,eAAe,CAAA,GAAA,kCAAW,EAAE;IAChC,IAAI,WAAW,CAAA,GAAA,mBAAK,EAAoB;IACxC,IAAI,YAAY,CAAA,GAAA,mBAAK,EAAsB;IAC3C,IAAI,CAAC,OAAO,SAAS,GAAG,CAAA,GAAA,qBAAO,EAAE;IAEjC,CAAA,GAAA,qCAAc,EAAE;QACd,yEAAyE;QACzE,yEAAyE;QACzE,qEAAqE;QACrE,0EAA0E;QAC1E,2CAA2C;QAC3C,IAAI,QAAQ,SAAS,OAAO;QAC5B,MAAO,SAAS,UAAU,aAAa,OAAO,IAAI,CAAC,CAAA,GAAA,kCAAW,EAAE,OAC9D,QAAQ,MAAM,aAAa;QAE7B,UAAU,OAAO,GAAG;IACtB,GAAG;QAAC;KAAa;IAEjB,CAAA,GAAA,uCAAgB,EAAE;QAChB,KAAK;QACL,KAAK;QACL;gBACW;gBAAA;YAAT,SAAS,CAAA,kCAAA,qBAAA,UAAU,OAAO,cAAjB,yCAAA,mBAAmB,WAAW,cAA9B,4CAAA,iCAAkC;QAC7C;IACF;IAEA,CAAA,GAAA,qCAAc,EAAE;YACL;YAAA;QAAT,SAAS,CAAA,kCAAA,qBAAA,UAAU,OAAO,cAAjB,yCAAA,mBAAmB,WAAW,cAA9B,4CAAA,iCAAkC;IAC7C,GAAG,EAAE;IAEL,IAAI,MAAM,CAAA,GAAA,oBAAM,EAAE,IAAO,CAAA;sBACvB;uBACA;YACA,YAAY;uCACZ;YACA,eAAe,MAAM,aAAa;YAClC,UAAU,MAAM,QAAQ;YACxB,aAAa,MAAM,WAAW;QAChC,CAAA,GAAI;QAAC;QAAU;QAAO,MAAM,aAAa;QAAE,MAAM,QAAQ;QAAE,MAAM,WAAW;KAAC;IAE7E,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,oCAAa,EAAE,OAAO;YAAC,QAAQ;QAAI,EAAE;QACzC,KAAK;QACL,WAAW,MAAM,SAAS,IAAI;QAC9B,OAAO,MAAM,KAAK;QAClB,UAAU,MAAM,QAAQ;qBACxB,0DAAC,qDAA+B,QAAQ;QAAC,OAAO;OAC7C,MAAM,QAAQ;AAIvB;AAEO,MAAM,0DAAe,CAAA,GAAA,0BAAY,EAA+D;AAChG,MAAM,0DAAoB,CAAA,GAAA,0BAAY,EAA0B;AAChE,MAAM,0DAAgC,CAAA,GAAA,0BAAY,EAA0C;AA+C5F,MAAM,0DAAQ,CAAA,GAAA,uBAAS,EAAE,SAAS,MAAM,KAAiB,EAAE,GAAoD;QAM/F;IALrB,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAE3C,mGAAmG;IACnG,IAAI,iBAAiB,CAAA,GAAA,6CAAwB,EAAE;IAC/C,IAAI,qBAAC,iBAAiB,iBAAE,aAAa,0BAAE,sBAAsB,EAAC,GAAG;IACjE,IAAI,eAAe,CAAC,GAAC,0BAAA,MAAM,gBAAgB,cAAtB,8CAAA,wBAAwB,2BAA2B;IACxE,IAAI,MAAM,CAAA,GAAA,oBAAM,EAAE,IAAO,CAAA;YACvB,mBAAmB,kBAAkB,SAAS,OAAO;2BACrD;oCACA;YACA,gBAAgB;QAClB,CAAA,GAAI;QAAC;QAAmB;QAAe;QAAwB;KAAa;IAE5E,IAAI,wBACF,0DAAC,0CAAoB,QAAQ;QAAC,OAAO;qBACnC,0DAAC,CAAA,GAAA,sCAAS,GAAM;IAIpB,qBACE,0DAAC,CAAA,GAAA,6CAAgB;QAAE,SAAS;QAAS,kBAAkB,IAAM,IAAI;OAC9D,CAAA,2BAAc,0DAAC;YAAW,OAAO;YAAO,cAAc;YAAY,gBAAgB;YAAgB,YAAY;;AAGrH;AAUA,SAAS,iCAAW,SAAC,KAAK,EAAE,cAAc,GAAG,kBAAE,cAAc,cAAE,UAAU,EAAkB;IACzF,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK,CAAA,GAAA,qDAA0B;IACrE,6DAA6D;IAC7D,IAAI,yBAAC,qBAAqB,qBAAE,iBAAiB,UAAE,MAAM,EAAE,GAAG,oBAAmB,GAAG;IAChF,IAAI,wBAAwB,CAAA,GAAA,uBAAS,EAAE;IACvC,MAAM,CAAA,GAAA,kCAAW,EAAE,CAAA,GAAA,oBAAM,EAAE,IAAM,CAAA,GAAA,+BAAQ,EAAE,KAAK,kCAAA,4CAAA,sBAAuB,QAAQ,GAAG;QAAC;QAAK,kCAAA,4CAAA,sBAAuB,QAAQ;KAAC;IACxH,IAAI,aAAa,CAAA,GAAA,iCAAY,EAAE;QAC7B,GAAG,kBAAkB;oBACrB;QACA,UAAU;QACV,uBAAuB;IACzB;IAEA,IAAI,gBAAgB,CAAA,GAAA,kDAA6B,EAAE,YAAY;IAC/D,IAAI,iBAAC,aAAa,kBAAE,cAAc,EAAE,oBAAoB,qBAAqB,kBAAE,cAAc,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,mDAAwB;IACpI,IAAI,oBAAC,gBAAgB,EAAC,GAAG;IACzB,IAAI,aAAC,SAAS,EAAC,GAAG,CAAA,GAAA,yBAAO,EAAE;QACzB,GAAG,kBAAkB;wBACrB;uBACA;IACF,GAAG,eAAe;IAClB,IAAI,mBAAmB,cAAc,gBAAgB;IACrD,IAAI,eAAe,CAAC,EAAC,6BAAA,uCAAA,iBAAkB,2BAA2B;IAClE,IAAI,eAAe,CAAC,EAAC,6BAAA,uCAAA,iBAAkB,2BAA2B;IAClE,IAAI,oBAAoB,CAAA,GAAA,mBAAK,EAAE;IAC/B,IAAI,oBAAoB,CAAA,GAAA,mBAAK,EAAE;IAC/B,CAAA,GAAA,sBAAQ,EAAE;QACR,IAAI,QAAQ,GAAG,CAAC,QAAQ,KAAK,cAC3B;QAEF,IAAI,kBAAkB,OAAO,KAAK,cAChC,QAAQ,IAAI,CAAC;QAEf,IAAI,kBAAkB,OAAO,KAAK,cAChC,QAAQ,IAAI,CAAC;IAEjB,GAAG;QAAC;QAAc;KAAa;IAE/B,IAAI,YAAkD;IACtD,IAAI,YAAkD;IACtD,IAAI,sBAA6D;IACjE,IAAI,mBAAmB;IACvB,IAAI,cAAkC;IACtC,IAAI,UAAU,CAAA,GAAA,mBAAK,EAAuB;IAE1C,IAAI,gBAAgB,kBAAkB;QACpC,YAAY,iBAAiB,2BAA2B,CAAE;YACxD,YAAY,cAAc,UAAU;8BACpC;YACA,SAAS,iBAAiB,iBAAiB,GAAG,UAAU;QAC1D;QACA,iBAAiB,sBAAsB,CAAE,CAAC,GAAG,WAAW;QAExD,IAAI,cAAc,iBAAiB,WAAW;QAC9C,cAAc,iBAAiB,iBAAiB,iBAC5C,0DAAC;YAAY,KAAK;WAAU,iBAAiB,iBAAiB,IAC9D;IACN;IAEA,IAAI,gBAAgB,kBAAkB;QACpC,YAAY,iBAAiB,2BAA2B,CAAE;YACxD,YAAY,cAAc,UAAU;8BACpC;QACF;QAEA,IAAI,mBAAmB,IAAI,CAAA,GAAA,qCAAmB,EAAE;YAC9C,YAAY,cAAc,UAAU;YACpC,cAAc,iBAAiB,YAAY;YAC3C,kBAAkB,iBAAiB,gBAAgB;iBACnD;4BACA;QACF;QACA,IAAI,qBAAqB,iBAAiB,kBAAkB,IAAI,yBAAyB,IAAI,iBAAiB,sBAAsB,CAAC,WAAW,IAAI,EAAE;QACtJ,sBAAsB,iBAAiB,sBAAsB,CAAE;8BAC7D;gCACA;QACF,GAAG,WAAW;QAEd,mBAAmB,UAAU,YAAY,CAAC;YAAC,MAAM;QAAM;IACzD;IAEA,IAAI,cAAC,UAAU,aAAE,SAAS,kBAAE,cAAc,EAAC,GAAG,CAAA,GAAA,6BAAW;IACzD,IAAI,cAAc,CAAA,GAAA,wCAAa,EAAE;QAC/B,WAAW,MAAM,SAAS;QAC1B,OAAO,MAAM,KAAK;QAClB,kBAAkB;QAClB,QAAQ;YACN,cAAc;uBACd;4BACA;YACA,OAAO;QACT;IACF;IAEA,IAAI,kBAAkB,CAAC,CAAE,CAAA,gBAAgB,EAAC,sBAAA,gCAAA,UAAW,UAAU,CAAD;IAE9D,IAAI,QAAQ,YAAY,KAAK;IAC7B,IAAI,cAAsD;IAC1D,IAAI,uBAAuB;QACzB,cAAc,sBAAsB,yBAAyB,CAAC;YAC5D,YAAY,sBAAsB,UAAU;QAC9C,GAAG;QACH,IAAI,CAAC,eACH,QAAQ;YACN,GAAG,KAAK;YACR,aAAa;YACb,OAAO;QACT;IAEJ;IAEA,IAAI,cAAc,qCAAe;IACjC,IAAI,WAAW,CAAA,GAAA,oCAAa,EAAE,OAAO;QAAC,QAAQ;IAAI;QA0B3B;IAxBvB,qBACE,0DAAC,CAAA,GAAA,kCAAO;QACN,QAAQ;YACN;gBAAC;gBAAmB;aAAc;YAClC;gBAAC;gBAA+B;aAAY;YAC5C;gBAAC,CAAA,GAAA,4CAAiB;gBAAG;sCAAC;+BAAkB;+BAAW;gBAAS;aAAE;YAC9D;gBAAC,CAAA,GAAA,8CAAmB;gBAAG;oBAAC,QAAQ;gBAAyB;aAAE;YAC3D;gBAAC,CAAA,GAAA,qDAA0B;gBAAG;aAAK;YACnC;gBAAC,CAAA,GAAA,2CAAgB;gBAAG;aAAK;SAC1B;qBACD,0DAAC,CAAA,GAAA,2BAAS,uBACR,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAS,EAAE,UAAU,aAAa,WAAW,YAAY,gCAAA,0CAAA,oBAAqB,eAAe,CAAC;QAClG,OAAO;QACP,KAAK;QACL,MAAM,MAAM,IAAI,IAAI;QACpB,UAAU,MAAM,QAAQ;QACxB,wBAAsB,mBAAmB;QACzC,oBAAkB,oBAAoB;QACtC,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;qBACtC,0DAAC,CAAA,GAAA,iDAAsB,uBACrB,0DAAC;QACC,YAAY,cAAc,UAAU;QACpC,WAAW,CAAA,mCAAA,kCAAA,4CAAA,sBAAuB,SAAS,cAAhC,8CAAA,mCAAoC;QAC/C,eAAe,CAAA,GAAA,6CAAkB,EAAE,kBAAkB,kBAAkB;WAI9E;AAGP;AAEA,SAAS,qCAAsD,OAAU;IACvE,IAAI,iBAAC,aAAa,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,mDAAwB;IACzD,OAAO,gBAAgB,QAAQ;AACjC;AAaA,MAAM,0DAAsB,CAAA,GAAA,0BAAY,EAAmC;AAKpE,SAAS;IACd,OAAO,CAAA,GAAA,uBAAS,EAAE;AACpB;AAmBA,MAAM,8CAA2B,CAAA,GAAA,0CAAa;AAE9C;AAFM,sCACY,OAAO;AAMlB,MAAM,4CAAe,WAAW,GAAG,CAAA,GAAA,iDAAoB,EAC5D,uCACA,CAAmB,OAA4B;IAC7C,IAAI,aAAa,CAAA,GAAA,uBAAS,EAAE,2CAAoB,UAAU;IAC1D,IAAI,aAAa,CAAA,GAAA,6CAAgB,EAAE;QACjC,OAAO,WAAW,UAAU;QAC5B,UAAU,CAAA,GAAA,wBAAU,EAAE,CAAC;YACrB,OAAQ,KAAK,IAAI;gBACf,KAAK;oBACH,qBAAO,0DAAC;wBAAe,MAAM;;gBAC/B;oBACE,MAAM,IAAI,MAAM,2CAA2C,KAAK,IAAI;YACxE;QACF,GAAG,EAAE;IACP;IAEA,IAAI,QAAQ,qCAAe;IAC3B,IAAI,iBAAC,aAAa,EAAC,GAAG,CAAA,GAAA,iCAAe;IACrC,IAAI,cAAC,UAAU,aAAE,SAAS,EAAC,GAAG,CAAA,GAAA,yBAAO,EAAE;QACrC,cAAc,MAAM,YAAY;QAChC,eAAe,MAAM,aAAa;QAClC,YAAY,MAAM,UAAU;IAC9B;IAEA,IAAI,cAAc,CAAA,GAAA,wCAAa,EAAE;QAC/B,WAAW,MAAM,SAAS;QAC1B,OAAO,MAAM,KAAK;QAClB,kBAAkB;QAClB,QAAQ;uBACN;QACF;IACF;IAEA,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAS,EAAE,CAAA,GAAA,oCAAa,EAAE,OAAO;YAAC,QAAQ;QAAI,IAAI,eAAe,WAAW;QAC/E,GAAG,WAAW;QACf,KAAK;QACL,gBAAc,aAAa;OAC1B;AAGP,GACA,CAAA,sBACE,0DAAC,CAAA,GAAA,sCAAS;QAAE,cAAc,MAAM,YAAY;QAAE,OAAO,MAAM,OAAO;OAC/D,MAAM,QAAQ;AAKrB,SAAS,qCAAe,QAAC,IAAI,EAAwB;IACnD,IAAI,MAAM,CAAA,GAAA,mBAAK,EAAuB;IACtC,IAAI,QAAQ,CAAA,GAAA,uBAAS,EAAE;IACvB,IAAI,iBAAC,aAAa,oBAAE,gBAAgB,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,mDAAwB;IAC3E,IAAI,YAAC,QAAQ,EAAC,GAAG,CAAA,GAAA,kCAAgB,EAAE;QAAC,MAAM;uBAAM;IAAa,GAAG,OAAO;IACvE,IAAI,iBAAC,aAAa,EAAC,GAAG,CAAA,GAAA,0CAAwB,EAAE;IAChD,IAAI,KAAK,qCAAe;IAExB,qBACE,0DAAC;QAAI,GAAG,QAAQ;QAAE,KAAK;qBACrB,0DAAC,CAAA,GAAA,kCAAO;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAc;gBAAG;oBAChB,OAAO;wBACL,WAAW;oBACb;gBACF;aAAE;SACH;qBACD,0DAAC;QAAiB,YAAY,MAAM,UAAU;QAAE,QAAQ;;AAIhE;AA8DA,MAAM,8CAAwB,CAAA,GAAA,0CAAa;AAE3C;AAFM,sCACY,OAAO;AAMlB,MAAM,4CAAS,WAAW,GAAG,CAAA,GAAA,+CAAkB,EAAE,uCAAiB,CAAC,OAAoB,cAAmE;QAkC5I,uBAsCM;IAvEzB,IAAI,MAAM,CAAA,GAAA,kCAAW,EAAyC;IAC9D,IAAI,QAAQ,CAAA,GAAA,uBAAS,EAAE;IACvB,IAAI,iBAAC,aAAa,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,mDAAwB;IACzD,IAAI,qBAAC,iBAAiB,EAAC,GAAG,CAAA,GAAA,qCAAmB,EAC3C;QAAC,MAAM;uBAAQ;IAAa,GAC5B,OACA;IAEF,IAAI,aAAC,SAAS,kBAAE,cAAc,cAAE,UAAU,EAAC,GAAG,CAAA,GAAA,6BAAW;IAEzD,IAAI,cAAc,CAAA,GAAA,uBAAS,EAAE;IAC7B,IAAI,aAAa;IACjB,IAAI,aACF,aAAa,YAAY,cAAc,KAAK,OAAO,GAAG;SACjD,IAAI,QAAQ,GAAG,CAAC,QAAQ,KAAK,cAAc;QAChD,IAAK,IAAI,QAAQ;YAAC;YAAS;YAAgB;YAAY;SAAW,CAChE,IAAI,QAAQ,OAAO,KAAK,EACtB,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,2KAA2K,CAAC;IAG3M;IAEA,IAAI,cAAC,UAAU,aAAE,SAAS,EAAC,GAAG,CAAA,GAAA,yBAAO,EAAE;QAAC,YAAY,CAAC,MAAM,aAAa;IAAA;IACxE,IAAI,cAAc,CAAA,GAAA,wCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,IAAI;QACJ,UAAU,OAAO,QAAQ;QACzB,kBAAkB;QAClB,QAAQ;uBACN;uBACA;4BACA;YACA,eAAe,OAAO,KAAK,CAAC,aAAa;YACzC,eAAe,EAAA,wBAAA,MAAM,cAAc,cAApB,4CAAA,sBAAsB,MAAM,MAAK,OAAO,GAAG,GACtD,MAAM,cAAc,CAAC,SAAS,GAC9B;wBACJ;YACA,aAAa;gBACX,IAAI,aAAa;oBACf,YAAY,WAAW,CAAC,OAAO,GAAG;oBAClC,MAAM,6BAA6B,CAAC;gBACtC,OACE,MAAM,IAAI,MAAM;YAEpB;YACA,MAAM,CAAC;gBACL,MAAM,IAAI,CAAC,OAAO,GAAG,EAAE;YACzB;QACF;IACF;IAEA,IAAI,QAAQ,YAAY,KAAK;IAC7B,IAAI,aACF,QAAQ;QAAC,GAAG,KAAK;QAAE,OAAO,YAAY,cAAc,CAAC,OAAO,GAAG;IAAC;IAGlE,IAAI,KAAK,qCAAe;IACxB,IAAI,WAAW,CAAA,GAAA,oCAAa,EAAE,OAAc;QAAC,QAAQ;IAAI;IACzD,OAAO,SAAS,EAAE;IAElB,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAS,EAAE,UAAU,mBAAmB,YAAY,WAAW;QAClE,GAAG,WAAW;QACf,OAAO;QACP,KAAK;QACL,gBAAc,aAAa;QAC3B,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;QACtC,iBAAe,cAAc;QAC7B,uBAAqB,OAAO,KAAK,CAAC,aAAa,IAAI;QACnD,uBAAqB,EAAA,yBAAA,MAAM,cAAc,cAApB,6CAAA,uBAAsB,MAAM,MAAK,OAAO,GAAG,GAAG,MAAM,cAAc,CAAC,SAAS,GAAG;qBACpG,0DAAC,CAAA,GAAA,kCAAO;QACN,QAAQ;YACN;gBAAC;gBAAsB;4BAAC;oBAAQ,YAAY;gBAAG;aAAE;YACjD;gBAAC,CAAA,GAAA,mDAAwB;gBAAG,CAAA,GAAA,mDAAwB;aAAE;SACvD;OACA,YAAY,QAAQ;AAI7B;AAwCA,MAAM,2DAAuB,CAAA,GAAA,0BAAY,EAAoC;AAEtE,MAAM,0DAAgB,CAAA,GAAA,uBAAS,EAAE,SAAS,cAAc,KAAyB,EAAE,GAAiC;IACzH,IAAI,cAAc,CAAA,GAAA,uBAAS,EAAE;IAC7B,IAAI,CAAC,aACH,MAAM,IAAI,MAAM;IAElB,IAAI,kBAAkB,CAAA,GAAA,4CAA0B,EAAE,CAAA,GAAA,mDAAW,GAAG;IAEhE,IAAI,iBAAC,aAAa,YAAE,QAAQ,eAAE,WAAW,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE;IACxD,IAAI,UAAC,MAAM,cAAE,UAAU,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE;IACtC,IAAI,WAAW,CAAA,GAAA,mBAAK,EAAoB;IACxC,IAAI,gBAAC,YAAY,cAAE,UAAU,cAAE,UAAU,EAAC,GAAG,CAAA,GAAA,qCAAmB,EAC9D;gBACE;QACA,cAAc,KAAK,CAAC,aAAa,IAAI,gBAAgB,MAAM,CAAC;uBAC5D;kBACA;qBACA;oBACA;IACF,GACA,aACA;IAEF,IAAI,cAAC,UAAU,aAAE,SAAS,kBAAE,cAAc,EAAC,GAAG,CAAA,GAAA,6BAAW;IACzD,IAAI,cAAC,UAAU,aAAE,SAAS,EAAC,GAAG,CAAA,GAAA,yBAAO,EAAE;IAEvC,IAAI,eAAe,YAAY,iBAAiB,CAAC,OAAO,GAAG,KAAK,YAAY,cAAc,CAAC,OAAO,GAAG;IACrG,IAAI,eAAe,YAAY,iBAAiB,CAAC,OAAO,GAAG,KAAK,YAAY,cAAc,CAAC,OAAO,GAAG;IACrG,IAAI,aAAC,SAAS,EAAC,GAAG,CAAA,GAAA,0BAAQ;IAC1B,IAAI,qBAAqE;IACzE,IAAI,cACF,qBAAqB,cAAc,QAAQ,UAAU;SAChD,IAAI,cACT,qBAAqB,cAAc,QAAQ,SAAS;SAEpD,qBAAqB;IAGvB,IAAI,YAAY,CAAA,GAAA,kCAAW,EAAE;IAC7B,IAAI,CAAC,QAAQ,UAAU,GAAG,CAAA,GAAA,qBAAO,EAAE;IACnC,CAAA,GAAA,sBAAQ,EAAE;QACR,IAAI,CAAC,UAAU,OAAO,EACpB;QAEF,IAAI,QAAQ,OAAO,gBAAgB,CAAC,UAAU,OAAO;QACrD,UAAU,MAAM,MAAM;IACxB,GAAG;QAAC;QAAW;KAAmB;IAElC,IAAI,cAAc,CAAA,GAAA,wCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,kBAAkB;QAClB,QAAQ;uBACN;4BACA;wBACA;uBACA;gCACA;QACF;IACF;IAEA,IAAI,CAAC,aAAa,aAAa,GAAG,CAAA,GAAA,qBAAO,EAAE;IAC3C,IAAI,gBAAgB,CAAC;QACnB,IAAI,EAAE,WAAW,KAAK,SACpB,aAAa;IAEjB;IAEA,IAAI,CAAC,cAAc,aACjB,aAAa;IAGf,IAAI,WAAW,CAAA,GAAA,oCAAa,EAAE,OAAO;QAAC,QAAQ;IAAI;IAElD,qBACE,0DAAC;QACC,KAAK;QACL,MAAK;QACJ,GAAG,CAAA,GAAA,2BAAS,EAAE,UAAU,aAAa,cAAc;2BAAC;QAAa,GAAG,WAAW;QAChF,gBAAc,aAAa;QAC3B,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;QACtC,iBAAe,cAAc;QAC7B,4BAA0B;OACzB,YAAY,QAAQ,gBACrB,0DAAC;QACC,KAAK;QACJ,GAAG,CAAA,GAAA,2BAAS,EAAE,YAAY,WAAW;QACvC,cAAc,6BAAe,CAAA,GAAA,yCAAO,EAAE,YAAY,eAAC,0DAAC;QAAI,OAAO;YAAC,UAAU;YAAS,KAAK;YAAG,MAAM;YAAG,QAAQ;YAAG,OAAO;oBAAG;QAAM;QAAO,SAAS,IAAI;AAG1J;AAoBA,MAAM,4CAAyB,CAAA,GAAA,0CAAa;AAE5C;AAFM,oCACY,OAAO;AAMlB,MAAM,4CAAY,WAAW,GAAG,CAAA,GAAA,iDAAoB,EAAE,qCAAe,CAAmB,OAA0B;IACvH,IAAI,QAAQ,CAAA,GAAA,uBAAS,EAAE;IACvB,IAAI,iBAAC,aAAa,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,mDAAwB;IACzD,IAAI,aAAa,MAAM,UAAU;IACjC,IAAI,oBAAC,gBAAgB,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,mDAAwB;IAC5D,IAAI,oBAAC,gBAAgB,aAAE,SAAS,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,4CAAiB;IAChE,IAAI,cAAc,CAAC,EAAC,6BAAA,uCAAA,iBAAkB,2BAA2B,KAAI,EAAC,sBAAA,gCAAA,UAAW,UAAU;QACrC;IAAtD,IAAI,mBAAmB,eAAe,CAAC,CAAC,aAAc,CAAA,CAAA,0BAAA,UAAU,YAAY,CAAC;QAAC,MAAM;IAAM,gBAApC,qCAAA,0BAA0C,KAAI;IAEpG,IAAI,UAAU,WAAW,IAAI,KAAK;IAClC,IAAI,eAAe;QACjB,cAAc;iBACd;IACF;IACA,IAAI,cAAc,CAAA,GAAA,wCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,IAAI;QACJ,UAAU;QACV,kBAAkB;QAClB,QAAQ;IACV;IAEA,IAAI;IACJ,IAAI,KAAK,qCAAe;IACxB,IAAI,KAAK,qCAAe;IACxB,IAAI,aAAa,WAAW,WAAW;IAEvC,IAAI,WAAW,MAAM,gBAAgB,IAAI,OAAO;QAC9C,IAAI,WAAW,CAAC;QAChB,IAAI,iBAAiB,CAAC;QACtB,IAAI,QAAQ,CAAC;QACb,IAAI,eAAe;YACjB,cAAc,CAAC,eAAe,GAAG;YACjC,QAAQ;gBAAC,SAAS;YAAU;QAC9B,OACE,cAAc,CAAC,UAAU,GAAG;QAG9B,2BACE,0DAAC;YAAG,MAAK;YAAO,GAAG,QAAQ;YAAE,OAAO;yBAClC,0DAAC;YAAG,MAAK;YAAa,GAAG,cAAc;YAAE,OAAO;WAC7C,MAAM,gBAAgB,CAAC;IAIhC;IAEA,IAAI,iBAAC,aAAa,EAAC,GAAG,CAAA,GAAA,iCAAe;IACrC,IAAI,QAAQ,qCAAe;IAE3B,IAAI,WAAW,CAAA,GAAA,oCAAa,EAAE,OAAO;QAAC,QAAQ;IAAI;IAElD,kHAAkH;IAClH,+FAA+F;IAC/F,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAS,EAAE,UAAU,aAAa,cAAc;QACpD,KAAK;QACL,cAAY,WAAW;OACtB,6BAAe,0DAAC,8DACjB,0DAAC;QACC,YAAY;QACZ,QAAQ,WAAW,IAAI;QACvB,qBAAqB,CAAA,GAAA,gDAAqB,EAAE,kBAAkB;QAC/D;AAGP;AA+BA,MAAM,2CAAwB,CAAA,GAAA,0CAAa;IAGzC,OAAO,UAA6B,EAAE,aAAgC,EAAE,QAAuD,EAA0B;QACvJ,IAAI,QAAQ,WAAW,WAAW,CAAC,IAAI,CAAC,GAAG;QAC3C,KAAK,IAAI,QAAQ,MACf,IAAI,SAAS,KAAK,SAAS,EAAE,OAAO;YAClC,IAAI,QAAQ,IAAI,CAAC,KAAK;YACtB,cAAc,cAAc,CAAC,OAAO;YACpC,OAAO;QACT;QAGF,OAAO;IACT;AACF;AAfM,mCACY,OAAO;AAmBlB,MAAM,4CAAM,WAAW,GAAG,CAAA,GAAA,iDAAoB,EACnD,oCACA,CAAmB,OAAoB,cAAkE;IACvG,IAAI,MAAM,CAAA,GAAA,kCAAW,EAAwC;IAC7D,IAAI,QAAQ,CAAA,GAAA,uBAAS,EAAE;IACvB,IAAI,oBAAC,gBAAgB,aAAE,SAAS,aAAE,SAAS,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,4CAAiB;IAC3E,IAAI,iBAAC,aAAa,oBAAE,gBAAgB,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,mDAAwB;IAC3E,IAAI,YAAC,QAAQ,EAAE,GAAG,QAAO,GAAG,CAAA,GAAA,4BAAU,EACpC;QACE,MAAM;QACN,uBAAuB,CAAC,CAAC;uBACzB;IACF,GACA,OACA;IAEF,IAAI,aAAC,SAAS,kBAAE,cAAc,cAAE,UAAU,EAAC,GAAG,CAAA,GAAA,6BAAW;IACzD,IAAI,EACF,gBAAgB,oBAAoB,EACpC,YAAY,gBAAgB,EAC7B,GAAG,CAAA,GAAA,6BAAW,EAAE;QAAC,QAAQ;IAAI;IAC9B,IAAI,cAAC,UAAU,aAAE,SAAS,EAAC,GAAG,CAAA,GAAA,yBAAO,EAAE;QACrC,YAAY,CAAC,OAAO,eAAe,IAAI,CAAC,OAAO,SAAS;QACxD,cAAc,MAAM,YAAY;QAChC,eAAe,MAAM,aAAa;QAClC,YAAY,MAAM,UAAU;IAC9B;IAEA,IAAI,iBAAC,aAAa,EAAC,GAAG,CAAA,GAAA,0CAAwB,EAC5C;QAAC,KAAK,KAAK,GAAG;IAAA,GACd;IAGF,IAAI,gBAAiD;IACrD,IAAI,aAAa,kBACf,gBAAgB,iBAAiB,gBAAgB,CAAE;QAAC,KAAK,KAAK,GAAG;QAAE,eAAe;IAAI,GAAG;IAG3F,IAAI,gBAA+C;IACnD,IAAI,mBAAmB,CAAA,GAAA,mBAAK,EAAkB;IAC9C,IAAI,uBAAC,mBAAmB,EAAC,GAAG,CAAA,GAAA,kCAAgB;IAC5C,IAAI,aAAa,kBACf,gBAAgB,iBAAiB,gBAAgB,CAAE;QACjD,QAAQ;YAAC,MAAM;YAAQ,KAAK,KAAK,GAAG;YAAE,cAAc;QAAI;IAC1D,GAAG,WAAW;IAGhB,IAAI,gBAAgB,CAAA,GAAA,mBAAK,EAAqB;IAC9C,CAAA,GAAA,sBAAQ,EAAE;QACR,IAAI,aAAa,CAAC,cAAc,OAAO,IAAI,QAAQ,GAAG,CAAC,QAAQ,KAAK,cAClE,QAAQ,IAAI,CAAC;IAEjB,2BAA2B;IAC3B,GAAG,EAAE;IAEL,IAAI,aAAa,aAAa,UAAU,UAAU,CAAC,KAAK,GAAG;IAC3D,6DAA6D;IAC7D,IAAI,EAAC,UAAU,CAAC,EAAE,GAAG,WAAU,GAAG;IAClC,IAAI,cAAc,CAAA,GAAA,wCAAa,EAAE;QAC/B,GAAG,SAAS;QACZ,IAAI;QACJ,kBAAkB;QAClB,QAAQ;YACN,GAAG,MAAM;uBACT;uBACA;4BACA;YACA,eAAe,MAAM,gBAAgB,CAAC,aAAa;YACnD,mBAAmB,MAAM,gBAAgB,CAAC,iBAAiB;wBAC3D;YACA,YAAY,EAAE,0BAAA,oCAAA,cAAe,YAAY;kCACzC;YACA,IAAI,KAAK,GAAG;QACd;IACF;IAEA,IAAI,KAAK,qCAAe;IACxB,IAAI,KAAK,qCAAe;IACxB,IAAI,WAAW,CAAA,GAAA,oCAAa,EAAE,OAAc;QAAC,QAAQ;IAAI;IACzD,OAAO,SAAS,EAAE;IAClB,OAAO,SAAS,OAAO;IAEvB,qBACE,sHACG,iBAAiB,CAAC,cAAc,QAAQ,kBACvC,0DAAC;QAAG,MAAK;QAAM,OAAO;YAAC,QAAQ;QAAC;qBAC9B,0DAAC;QAAG,MAAK;QAAW,SAAS,MAAM,UAAU,CAAC,WAAW;QAAE,OAAO;YAAC,SAAS;QAAC;qBAC3E,0DAAC;QAAI,MAAK;QAAU,GAAG,mBAAmB;QAAG,GAAG,cAAc,kBAAkB;QAAE,KAAK;wBAI7F,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAS,EAAE,UAAU,aAAa,UAAU,YAAY,YAAY,0BAAA,oCAAA,cAAe,SAAS,EAAE,iBAAiB;QACnH,KAAK;QACL,iBAAe,OAAO,UAAU,IAAI;QACpC,iBAAe,OAAO,UAAU,IAAI;QACpC,gBAAc,aAAa;QAC3B,gBAAc,OAAO,SAAS,IAAI;QAClC,sBAAoB,kBAAkB;QACtC,gBAAc,OAAO,SAAS,IAAI;QAClC,iBAAe,cAAc;QAC7B,oBAAkB,CAAA,0BAAA,oCAAA,cAAe,YAAY,KAAI;QACjD,uBAAqB,MAAM,gBAAgB,CAAC,aAAa,KAAK,SAAS,YAAY,MAAM,gBAAgB,CAAC,aAAa;QACvH,6BAA2B,wBAAwB;qBACnD,0DAAC,CAAA,GAAA,kCAAO;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAc;gBAAG;oBAChB,OAAO;wBACL,CAAC,CAAA,GAAA,sCAAW,EAAE,EAAE,CAAC;wBACjB,WAAW;oBACb;gBACF;aAAE;YACF;gBAAC,CAAA,GAAA,uCAAY;gBAAG;oBACd,OAAO;wBACL,CAAC,CAAA,GAAA,sCAAW,EAAE,EAAE,CAAC;wBACjB,MAAM;+BACD,0BAAA,oCAAA,cAAe,eAAe,AAAjC;4BACA,KAAK;4BACL,OAAO;gCACL,eAAe;4BACjB;wBACF;oBACF;gBACF;aAAE;YACF;gBAAC,CAAA,GAAA,mDAAwB;gBAAG;oBAAC,YAAY,OAAO,UAAU;gBAAA;aAAE;SAC7D;qBACD,0DAAC;QAAiB,YAAY,MAAM,UAAU;QAAE,QAAQ;;AAKlE,GACA,CAAA;IACE,IAAI,MAAM,EAAE,IAAI,QAAQ,OAAO,MAAM,QAAQ,KAAK,YAChD,MAAM,IAAI,MAAM;IAGlB,IAAI,eAAe;QAAC,MAAM,KAAK;KAAC,CAAC,MAAM,CAAC,MAAM,YAAY;IAC1D,qBACE,0DAAC,CAAA,GAAA,sCAAS;QAAE,cAAc;QAAc,OAAO,MAAM,OAAO;QAAE,SAAS,MAAM,EAAE;OAC5E,MAAM,QAAQ;AAGrB;AAuCF,MAAM,4CAAsB,CAAA,GAAA,0CAAa;AAEzC;AAFM,oCACY,OAAO;AAMlB,MAAM,4CAAO,WAAW,GAAG,CAAA,GAAA,+CAAkB,EAAE,qCAAe,CAAC,OAAkB,cAAmE;IACzJ,IAAI,MAAM,CAAA,GAAA,kCAAW,EAAyC;IAC9D,IAAI,QAAQ,CAAA,GAAA,uBAAS,EAAE;IACvB,IAAI,aAAC,SAAS,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,4CAAiB;IAC9C,IAAI,iBAAC,aAAa,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,mDAAwB;IAEzD,KAAK,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC;IAElD,IAAI,iBAAC,aAAa,aAAE,SAAS,EAAC,GAAG,CAAA,GAAA,6BAAW,EAAE;QAC5C,MAAM;QACN,uBAAuB,CAAC,CAAC;uBACzB;IACF,GAAG,OAAO;IACV,IAAI,aAAC,SAAS,kBAAE,cAAc,cAAE,UAAU,EAAC,GAAG,CAAA,GAAA,6BAAW;IACzD,IAAI,cAAC,UAAU,aAAE,SAAS,EAAC,GAAG,CAAA,GAAA,yBAAO,EAAE,CAAC;IAExC,IAAI,cAAc,CAAA,GAAA,wCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,IAAI;QACJ,kBAAkB;QAClB,QAAQ;uBACN;4BACA;uBACA;uBACA;YACA,IAAI,KAAK,GAAG;QACd;IACF;IAEA,IAAI,KAAK,qCAAe;IACxB,IAAI,WAAW,CAAA,GAAA,oCAAa,EAAE,OAAc;QAAC,QAAQ;IAAI;IACzD,OAAO,SAAS,EAAE;IAElB,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAS,EAAE,UAAU,aAAa,eAAe,YAAY,WAAW;QAC5E,KAAK;QACL,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;QACtC,gBAAc,aAAa;qBAC3B,0DAAC,CAAA,GAAA,mDAAwB,EAAE,QAAQ;QAAC,OAAO,CAAA,GAAA,mDAAwB;OAChE,YAAY,QAAQ;AAI7B;AAEA,SAAS,gDAA0B,KAAyB,EAAE,GAA8B;IAC1F,MAAM,CAAA,GAAA,kCAAW,EAAE;IACnB,IAAI,oBAAC,gBAAgB,aAAE,SAAS,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,4CAAiB;IAChE,IAAI,YAAY,CAAA,GAAA,mBAAK,EAAkB;IACvC,IAAI,sBAAC,kBAAkB,YAAE,QAAQ,gBAAE,YAAY,EAAC,GAAG,iBAAkB,gBAAgB,CACnF,OACA,WACA;IAGF,IAAI,UACF,OAAO;IAGT,qBACE,0DAAC;QAA8B,GAAG,KAAK;QAAE,oBAAoB;QAAoB,cAAc;QAAc,WAAW;QAAW,KAAK;;AAE5I;AAQA,SAAS,yCAAmB,KAA8B,EAAE,GAA8B;IACxF,IAAI,sBACF,kBAAkB,gBAClB,YAAY,aACZ,SAAS,EACT,GAAG,YACJ,GAAG;IAEJ,IAAI,QAAQ,CAAA,GAAA,uBAAS,EAAE;IACvB,IAAI,uBAAC,mBAAmB,EAAC,GAAG,CAAA,GAAA,kCAAgB;IAC5C,IAAI,cAAc,CAAA,GAAA,wCAAa,EAAE;QAC/B,GAAG,UAAU;QACb,kBAAkB;QAClB,QAAQ;0BACN;QACF;IACF;IAEA,IAAI,KAAK,qCAAe;IACxB,IAAI,KAAK,qCAAe;IAExB,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,oCAAa,EAAE,OAAc;YAAC,QAAQ;QAAI,EAAE;QAC/C,GAAG,WAAW;QACf,MAAK;QACL,KAAK;QACL,oBAAkB,gBAAgB;qBAClC,0DAAC;QACC,MAAK;QACL,SAAS,MAAM,UAAU,CAAC,WAAW;QACrC,OAAO;YAAC,SAAS;QAAC;qBAClB,0DAAC;QAAK,GAAG,mBAAmB;QAAE,MAAK;QAAU,GAAG,kBAAkB;QAAE,KAAK;QACxE,YAAY,QAAQ;AAI7B;AAEA,MAAM,mEAA+B,CAAA,GAAA,uBAAS,EAAE;AAEhD,SAAS;IACP,IAAI,QAAQ,CAAA,GAAA,uBAAS,EAAE;IACvB,IAAI,oBAAC,gBAAgB,aAAE,SAAS,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,4CAAiB;IAChE,IAAI,MAAM,CAAA,GAAA,mBAAK,EAAkB;IACjC,IAAI,sBAAC,kBAAkB,EAAC,GAAG,iBAAkB,gBAAgB,CAAE;QAC7D,QAAQ;YAAC,MAAM;QAAM;IACvB,GAAG,WAAY;IACf,IAAI,eAAe,UAAW,YAAY,CAAC;QAAC,MAAM;IAAM;IACxD,IAAI,uBAAC,mBAAmB,EAAC,GAAG,CAAA,GAAA,kCAAgB;IAC5C,IAAI,KAAK,qCAAe;IACxB,IAAI,KAAK,qCAAe;IAExB,IAAI,CAAC,gBAAgB,kBAAkB,CAAC,cAAc,EACpD,OAAO;IAGT,qBACE,0DAAC;QACC,MAAK;QACL,eAAa,kBAAkB,CAAC,cAAc;QAC9C,OAAO;YAAC,QAAQ;QAAC;qBACjB,0DAAC;QACC,MAAK;QACL,SAAS,MAAM,UAAU,CAAC,WAAW;QACrC,OAAO;YAAC,SAAS;QAAC;qBAClB,0DAAC;QAAI,MAAK;QAAU,GAAG,mBAAmB;QAAG,GAAG,kBAAkB;QAAE,KAAK;;AAIjF;AAaO,MAAM,4CAAoB,CAAA,GAAA,+CAAkB,EAAE,CAAA,GAAA,sCAAS,GAAG,SAAS,sBAAsB,KAA6B,EAAE,GAAsC,EAAE,IAAkB;IACvL,IAAI,QAAQ,CAAA,GAAA,uBAAS,EAAE;IACvB,IAAI,iBAAC,aAAa,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,mDAAwB;IACzD,IAAI,aAAC,SAAS,cAAE,UAAU,gBAAE,YAAY,EAAE,GAAG,YAAW,GAAG;IAC3D,IAAI,aAAa,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM;IAEhD,IAAI,cAAc,CAAA,GAAA,mBAAK,EAAE;IACzB,IAAI,sBAAsB,CAAA,GAAA,oBAAM,EAAE,IAAO,CAAA;wBACvC;YACA,UAAU,EAAE,kBAAA,4BAAA,MAAO,UAAU;yBAC7B;0BACA;QACF,CAAA,GAAI;QAAC;QAAY;QAAc,kBAAA,4BAAA,MAAO,UAAU;KAAC;IACjD,CAAA,GAAA,yCAAkB,EAAE,qBAAqB;IAEzC,IAAI,cAAc,CAAA,GAAA,wCAAa,EAAE;QAC/B,GAAG,UAAU;QACb,IAAI;QACJ,UAAU,KAAK,QAAQ;QACvB,kBAAkB;QAClB,QAAQ;IACV;IACA,IAAI,KAAK,qCAAe;IACxB,IAAI,KAAK,qCAAe;IACxB,IAAI,WAAW,CAAC;IAChB,IAAI,iBAAiB,CAAC;IACtB,IAAI,QAAQ,CAAC;IAEb,IAAI,eAAe;QACjB,qFAAqF;QACrF,qHAAqH;QACrH,YAAY;QACZ,cAAc,CAAC,eAAe,GAAG;QACjC,QAAQ;YAAC,SAAS;QAAU;IAC9B,OACE,cAAc,CAAC,UAAU,GAAG;IAG9B,qBACE,oIAGE,0DAAC;QAAG,OAAO;YAAC,QAAQ;QAAC;QAAG,OAAO,CAAA,GAAA,gCAAS,EAAE;qBACxC,0DAAC;QAAG,OAAO;YAAC,SAAS;YAAG,QAAQ;QAAC;qBAC/B,0DAAC;QAAI,eAAY;QAAmB,KAAK;QAAa,OAAO;YAAC,UAAU;YAAY,QAAQ;YAAG,OAAO;QAAC;UAG1G,aAAa,YAAY,QAAQ,kBAChC,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAS,EAAE,CAAA,GAAA,oCAAa,EAAE,OAAO;YAAC,QAAQ;QAAI,IAAI,SAAS;QAC9D,GAAG,WAAW;QACf,MAAK;QACL,KAAK;qBACL,0DAAC;QAAG,MAAK;QAAa,GAAG,cAAc;QAAE,OAAO;OAC7C,YAAY,QAAQ;AAMjC","sources":["packages/react-aria-components/src/Table.tsx"],"sourcesContent":["import {AriaLabelingProps, GlobalDOMAttributes, HoverEvents, Key, LinkDOMProps, PressEvents, RefObject} from '@react-types/shared';\nimport {BaseCollection, Collection, CollectionBuilder, CollectionNode, createBranchComponent, createLeafComponent, FilterableNode, LoaderNode, useCachedChildren} from '@react-aria/collections';\nimport {buildHeaderRows, TableColumnResizeState} from '@react-stately/table';\nimport {ButtonContext} from './Button';\nimport {CheckboxContext, FieldInputContext, SelectableCollectionContext, SelectableCollectionContextValue} from './RSPContexts';\nimport {CollectionProps, CollectionRendererContext, DefaultCollectionRenderer, ItemRenderProps} from './Collection';\nimport {ColumnSize, ColumnStaticSize, TableCollection as ITableCollection, TableProps as SharedTableProps} from '@react-types/table';\nimport {ContextValue, DEFAULT_SLOT, DOMProps, Provider, RenderProps, SlotProps, StyleProps, StyleRenderProps, useContextProps, useRenderProps} from './utils';\nimport {DisabledBehavior, DraggableCollectionState, DroppableCollectionState, MultipleSelectionState, Node, SelectionBehavior, SelectionMode, SortDirection, TableState, UNSTABLE_useFilteredTableState, useMultipleSelectionState, useTableColumnResizeState, useTableState} from 'react-stately';\nimport {DragAndDropContext, DropIndicatorContext, DropIndicatorProps, useDndPersistedKeys, useRenderDropIndicator} from './DragAndDrop';\nimport {DragAndDropHooks} from './useDragAndDrop';\nimport {DraggableItemResult, DragPreviewRenderer, DropIndicatorAria, DroppableCollectionResult, FocusScope, ListKeyboardDelegate, mergeProps, useFocusRing, useHover, useLocale, useLocalizedStringFormatter, useTable, useTableCell, useTableColumnHeader, useTableColumnResize, useTableHeaderRow, useTableRow, useTableRowGroup, useTableSelectAllCheckbox, useTableSelectionCheckbox, useVisuallyHidden} from 'react-aria';\nimport {filterDOMProps, inertValue, isScrollable, LoadMoreSentinelProps, mergeRefs, useLayoutEffect, useLoadMoreSentinel, useObjectRef, useResizeObserver} from '@react-aria/utils';\nimport {GridNode} from '@react-types/grid';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport React, {createContext, ForwardedRef, forwardRef, JSX, ReactElement, ReactNode, useCallback, useContext, useEffect, useMemo, useRef, useState} from 'react';\nimport ReactDOM from 'react-dom';\nimport {SelectionIndicatorContext} from './SelectionIndicator';\nimport {SharedElementTransition} from './SharedElementTransition';\n\nclass TableCollection<T> extends BaseCollection<T> implements ITableCollection<T> {\n headerRows: GridNode<T>[] = [];\n columns: GridNode<T>[] = [];\n rows: GridNode<T>[] = [];\n rowHeaderColumnKeys: Set<Key> = new Set();\n head = new TableHeaderNode<T>(-1);\n body = new TableBodyNode<T>(-2);\n columnsDirty = true;\n\n addNode(node: CollectionNode<T>) {\n super.addNode(node);\n\n this.columnsDirty ||= node.type === 'column';\n if (node.type === 'tableheader') {\n this.head = node;\n }\n\n if (node.type === 'tablebody') {\n this.body = node;\n }\n }\n\n commit(firstKey: Key, lastKey: Key, isSSR = false) {\n this.updateColumns(isSSR);\n\n this.rows = [];\n for (let row of this.getChildren(this.body.key)) {\n let lastChildKey = (row as CollectionNode<T>).lastChildKey;\n if (lastChildKey != null) {\n let lastCell = this.getItem(lastChildKey) as GridNode<T>;\n let numberOfCellsInRow = (lastCell.colIndex ?? lastCell.index) + (lastCell.colSpan ?? 1);\n if (numberOfCellsInRow !== this.columns.length && !isSSR) {\n throw new Error(`Cell count must match column count. Found ${numberOfCellsInRow} cells and ${this.columns.length} columns.`);\n }\n }\n this.rows.push(row);\n }\n\n super.commit(firstKey, lastKey, isSSR);\n }\n\n private updateColumns(isSSR: boolean) {\n if (!this.columnsDirty) {\n return;\n }\n\n this.rowHeaderColumnKeys = new Set();\n this.columns = [];\n let columnKeyMap = new Map();\n let visit = (node: Node<T>) => {\n switch (node.type) {\n case 'column':\n columnKeyMap.set(node.key, node);\n if (!node.hasChildNodes) {\n node.index = this.columns.length;\n this.columns.push(node);\n\n if (node.props.isRowHeader) {\n this.rowHeaderColumnKeys.add(node.key);\n }\n }\n break;\n }\n for (let child of this.getChildren(node.key)) {\n visit(child);\n }\n };\n\n for (let node of this.getChildren(this.head.key)) {\n visit(node);\n }\n\n this.headerRows = buildHeaderRows(columnKeyMap, this.columns);\n this.columnsDirty = false;\n if (this.rowHeaderColumnKeys.size === 0 && this.columns.length > 0 && !isSSR) {\n throw new Error('A table must have at least one Column with the isRowHeader prop set to true');\n }\n }\n\n get columnCount() {\n return this.columns.length;\n }\n\n *[Symbol.iterator]() {\n // Wait until the collection is initialized.\n if (this.head.key === -1) {\n return;\n }\n yield this.head;\n yield this.body;\n }\n\n getFirstKey() {\n return this.body.firstChildKey;\n }\n\n getLastKey() {\n return this.body.lastChildKey;\n }\n\n getKeyAfter(key: Key) {\n let node = this.getItem(key);\n if (node?.type === 'column') {\n return node.nextKey ?? null;\n }\n\n return super.getKeyAfter(key);\n }\n\n getKeyBefore(key: Key) {\n let node = this.getItem(key);\n if (node?.type === 'column') {\n return node.prevKey ?? null;\n }\n\n let k = super.getKeyBefore(key);\n if (k != null && this.getItem(k)?.type === 'tablebody') {\n return null;\n }\n\n return k;\n }\n\n getChildren(key: Key): Iterable<Node<T>> {\n if (!this.getItem(key)) {\n for (let row of this.headerRows) {\n if (row.key === key) {\n return row.childNodes;\n }\n }\n }\n\n return super.getChildren(key);\n }\n\n clone() {\n let collection = super.clone();\n collection.headerRows = this.headerRows;\n collection.columns = this.columns;\n collection.rowHeaderColumnKeys = this.rowHeaderColumnKeys;\n collection.head = this.head;\n collection.body = this.body;\n return collection;\n }\n\n getTextValue(key: Key): string {\n let row = this.getItem(key);\n if (!row) {\n return '';\n }\n\n // If the row has a textValue, use that.\n if (row.textValue) {\n return row.textValue;\n }\n\n // Otherwise combine the text of each of the row header columns.\n let rowHeaderColumnKeys = this.rowHeaderColumnKeys;\n let text: string[] = [];\n for (let cell of this.getChildren(key)) {\n let column = this.columns[cell.index!];\n if (rowHeaderColumnKeys.has(column.key) && cell.textValue) {\n text.push(cell.textValue);\n }\n\n if (text.length === rowHeaderColumnKeys.size) {\n break;\n }\n }\n\n return text.join(' ');\n }\n}\n\ninterface ResizableTableContainerContextValue {\n tableWidth: number,\n tableRef: RefObject<HTMLTableElement | null>,\n scrollRef: RefObject<HTMLElement | null>,\n // Dependency inject useTableColumnResizeState so it doesn't affect bundle size unless you're using ResizableTableContainer.\n useTableColumnResizeState: typeof useTableColumnResizeState,\n onResizeStart?: (widths: Map<Key, ColumnSize>) => void,\n onResize?: (widths: Map<Key, ColumnSize>) => void,\n onResizeEnd?: (widths: Map<Key, ColumnSize>) => void\n}\n\nconst ResizableTableContainerContext = createContext<ResizableTableContainerContextValue | null>(null);\n\nexport interface ResizableTableContainerProps extends DOMProps, GlobalDOMAttributes<HTMLDivElement> {\n /**\n * Handler that is called when a user starts a column resize.\n */\n onResizeStart?: (widths: Map<Key, ColumnSize>) => void,\n /**\n * Handler that is called when a user performs a column resize.\n * Can be used with the width property on columns to put the column widths into\n * a controlled state.\n */\n onResize?: (widths: Map<Key, ColumnSize>) => void,\n /**\n * Handler that is called after a user performs a column resize.\n * Can be used to store the widths of columns for another future session.\n */\n onResizeEnd?: (widths: Map<Key, ColumnSize>) => void\n}\n\nexport const ResizableTableContainer = forwardRef(function ResizableTableContainer(props: ResizableTableContainerProps, ref: ForwardedRef<HTMLDivElement>) {\n let containerRef = useObjectRef(ref);\n let tableRef = useRef<HTMLTableElement>(null);\n let scrollRef = useRef<HTMLElement | null>(null);\n let [width, setWidth] = useState(0);\n\n useLayoutEffect(() => {\n // Walk up the DOM from the Table to the ResizableTableContainer and stop\n // when we reach the first scrollable element. This is what we'll measure\n // to determine column widths (important due to width of scrollbars).\n // This will usually be the ResizableTableContainer for native tables, and\n // the Table itself for virtualized tables.\n let table = tableRef.current as HTMLElement | null;\n while (table && table !== containerRef.current && !isScrollable(table)) {\n table = table.parentElement;\n }\n scrollRef.current = table;\n }, [containerRef]);\n\n useResizeObserver({\n ref: scrollRef,\n box: 'border-box',\n onResize() {\n setWidth(scrollRef.current?.clientWidth ?? 0);\n }\n });\n\n useLayoutEffect(() => {\n setWidth(scrollRef.current?.clientWidth ?? 0);\n }, []);\n\n let ctx = useMemo(() => ({\n tableRef,\n scrollRef,\n tableWidth: width,\n useTableColumnResizeState,\n onResizeStart: props.onResizeStart,\n onResize: props.onResize,\n onResizeEnd: props.onResizeEnd\n }), [tableRef, width, props.onResizeStart, props.onResize, props.onResizeEnd]);\n\n return (\n <div\n {...filterDOMProps(props, {global: true})}\n ref={containerRef}\n className={props.className || 'react-aria-ResizableTableContainer'}\n style={props.style}\n onScroll={props.onScroll}>\n <ResizableTableContainerContext.Provider value={ctx}>\n {props.children}\n </ResizableTableContainerContext.Provider>\n </div>\n );\n});\n\nexport const TableContext = createContext<ContextValue<TableProps, HTMLTableElement | HTMLDivElement>>(null);\nexport const TableStateContext = createContext<TableState<any> | null>(null);\nexport const TableColumnResizeStateContext = createContext<TableColumnResizeState<unknown> | null>(null);\n\nexport interface TableRenderProps {\n /**\n * Whether the table is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the table is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the table is currently the active drop target.\n * @selector [data-drop-target]\n */\n isDropTarget: boolean,\n /**\n * State of the table.\n */\n state: TableState<unknown>\n}\n\nexport interface TableProps extends Omit<SharedTableProps<any>, 'children'>, StyleRenderProps<TableRenderProps>, SlotProps, AriaLabelingProps, GlobalDOMAttributes<HTMLTableElement> {\n /** The elements that make up the table. Includes the TableHeader, TableBody, Columns, and Rows. */\n children?: ReactNode,\n /**\n * How multiple selection should behave in the collection.\n * @default \"toggle\"\n */\n selectionBehavior?: SelectionBehavior,\n /**\n * Whether `disabledKeys` applies to all interactions, or only selection.\n * @default \"selection\"\n */\n disabledBehavior?: DisabledBehavior,\n /** Handler that is called when a user performs an action on the row. */\n onRowAction?: (key: Key) => void,\n /** The drag and drop hooks returned by `useDragAndDrop` used to enable drag and drop behavior for the Table. */\n dragAndDropHooks?: DragAndDropHooks\n}\n\n/**\n * A table displays data in rows and columns and enables a user to navigate its contents via directional navigation keys,\n * and optionally supports row selection and sorting.\n */\nexport const Table = forwardRef(function Table(props: TableProps, ref: ForwardedRef<HTMLTableElement | HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, TableContext);\n\n // Separate selection state so we have access to it from collection components via useTableOptions.\n let selectionState = useMultipleSelectionState(props);\n let {selectionBehavior, selectionMode, disallowEmptySelection} = selectionState;\n let hasDragHooks = !!props.dragAndDropHooks?.useDraggableCollectionState;\n let ctx = useMemo(() => ({\n selectionBehavior: selectionMode === 'none' ? null : selectionBehavior,\n selectionMode,\n disallowEmptySelection,\n allowsDragging: hasDragHooks\n }), [selectionBehavior, selectionMode, disallowEmptySelection, hasDragHooks]);\n\n let content = (\n <TableOptionsContext.Provider value={ctx}>\n <Collection {...props} />\n </TableOptionsContext.Provider>\n );\n\n return (\n <CollectionBuilder content={content} createCollection={() => new TableCollection<any>()}>\n {collection => <TableInner props={props} forwardedRef={ref as any} selectionState={selectionState} collection={collection} />}\n </CollectionBuilder>\n );\n});\n\ninterface TableInnerProps {\n props: TableProps & SelectableCollectionContextValue<unknown>,\n forwardedRef: ForwardedRef<HTMLElement>,\n selectionState: MultipleSelectionState,\n collection: ITableCollection<Node<object>>\n}\n\n\nfunction TableInner({props, forwardedRef: ref, selectionState, collection}: TableInnerProps) {\n [props, ref] = useContextProps(props, ref, SelectableCollectionContext);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n let {shouldUseVirtualFocus, disallowTypeAhead, filter, ...DOMCollectionProps} = props;\n let tableContainerContext = useContext(ResizableTableContainerContext);\n ref = useObjectRef(useMemo(() => mergeRefs(ref, tableContainerContext?.tableRef), [ref, tableContainerContext?.tableRef]));\n let tableState = useTableState({\n ...DOMCollectionProps,\n collection,\n children: undefined,\n UNSAFE_selectionState: selectionState\n });\n\n let filteredState = UNSTABLE_useFilteredTableState(tableState, filter);\n let {isVirtualized, layoutDelegate, dropTargetDelegate: ctxDropTargetDelegate, CollectionRoot} = useContext(CollectionRendererContext);\n let {dragAndDropHooks} = props;\n let {gridProps} = useTable({\n ...DOMCollectionProps,\n layoutDelegate,\n isVirtualized\n }, filteredState, ref);\n let selectionManager = filteredState.selectionManager;\n let hasDragHooks = !!dragAndDropHooks?.useDraggableCollectionState;\n let hasDropHooks = !!dragAndDropHooks?.useDroppableCollectionState;\n let dragHooksProvided = useRef(hasDragHooks);\n let dropHooksProvided = useRef(hasDropHooks);\n useEffect(() => {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n if (dragHooksProvided.current !== hasDragHooks) {\n console.warn('Drag hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n if (dropHooksProvided.current !== hasDropHooks) {\n console.warn('Drop hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n }, [hasDragHooks, hasDropHooks]);\n\n let dragState: DraggableCollectionState | undefined = undefined;\n let dropState: DroppableCollectionState | undefined = undefined;\n let droppableCollection: DroppableCollectionResult | undefined = undefined;\n let isRootDropTarget = false;\n let dragPreview: JSX.Element | null = null;\n let preview = useRef<DragPreviewRenderer>(null);\n\n if (hasDragHooks && dragAndDropHooks) {\n dragState = dragAndDropHooks.useDraggableCollectionState!({\n collection: filteredState.collection,\n selectionManager,\n preview: dragAndDropHooks.renderDragPreview ? preview : undefined\n });\n dragAndDropHooks.useDraggableCollection!({}, dragState, ref);\n\n let DragPreview = dragAndDropHooks.DragPreview!;\n dragPreview = dragAndDropHooks.renderDragPreview\n ? <DragPreview ref={preview}>{dragAndDropHooks.renderDragPreview}</DragPreview>\n : null;\n }\n\n if (hasDropHooks && dragAndDropHooks) {\n dropState = dragAndDropHooks.useDroppableCollectionState!({\n collection: filteredState.collection,\n selectionManager\n });\n\n let keyboardDelegate = new ListKeyboardDelegate({\n collection: filteredState.collection,\n disabledKeys: selectionManager.disabledKeys,\n disabledBehavior: selectionManager.disabledBehavior,\n ref,\n layoutDelegate\n });\n let dropTargetDelegate = dragAndDropHooks.dropTargetDelegate || ctxDropTargetDelegate || new dragAndDropHooks.ListDropTargetDelegate(collection.rows, ref);\n droppableCollection = dragAndDropHooks.useDroppableCollection!({\n keyboardDelegate,\n dropTargetDelegate\n }, dropState, ref);\n\n isRootDropTarget = dropState.isDropTarget({type: 'root'});\n }\n\n let {focusProps, isFocused, isFocusVisible} = useFocusRing();\n let renderProps = useRenderProps({\n className: props.className,\n style: props.style,\n defaultClassName: 'react-aria-Table',\n values: {\n isDropTarget: isRootDropTarget,\n isFocused,\n isFocusVisible,\n state: filteredState\n }\n });\n\n let isListDraggable = !!(hasDragHooks && !dragState?.isDisabled);\n\n let style = renderProps.style;\n let layoutState: TableColumnResizeState<unknown> | null = null;\n if (tableContainerContext) {\n layoutState = tableContainerContext.useTableColumnResizeState({\n tableWidth: tableContainerContext.tableWidth\n }, filteredState);\n if (!isVirtualized) {\n style = {\n ...style,\n tableLayout: 'fixed',\n width: 'fit-content'\n };\n }\n }\n\n let ElementType = useElementType('table');\n let DOMProps = filterDOMProps(props, {global: true});\n\n return (\n <Provider\n values={[\n [TableStateContext, filteredState],\n [TableColumnResizeStateContext, layoutState],\n [DragAndDropContext, {dragAndDropHooks, dragState, dropState}],\n [DropIndicatorContext, {render: TableDropIndicatorWrapper}],\n [SelectableCollectionContext, null],\n [FieldInputContext, null]\n ]}>\n <FocusScope>\n <ElementType\n {...mergeProps(DOMProps, renderProps, gridProps, focusProps, droppableCollection?.collectionProps)}\n style={style}\n ref={ref as RefObject<HTMLTableElement>}\n slot={props.slot || undefined}\n onScroll={props.onScroll}\n data-allows-dragging={isListDraggable || undefined}\n data-drop-target={isRootDropTarget || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}>\n <SharedElementTransition>\n <CollectionRoot\n collection={filteredState.collection}\n scrollRef={tableContainerContext?.scrollRef ?? ref}\n persistedKeys={useDndPersistedKeys(selectionManager, dragAndDropHooks, dropState)} />\n </SharedElementTransition>\n </ElementType>\n </FocusScope>\n {dragPreview}\n </Provider>\n );\n}\n\nfunction useElementType<E extends keyof JSX.IntrinsicElements>(element: E): E | 'div' {\n let {isVirtualized} = useContext(CollectionRendererContext);\n return isVirtualized ? 'div' : element;\n}\n\nexport interface TableOptionsContextValue {\n /** The type of selection that is allowed in the table. */\n selectionMode: SelectionMode,\n /** The selection behavior for the table. If selectionMode is `\"none\"`, this will be `null`. */\n selectionBehavior: SelectionBehavior | null,\n /** Whether the table allows empty selection. */\n disallowEmptySelection: boolean,\n /** Whether the table allows rows to be dragged. */\n allowsDragging: boolean\n}\n\nconst TableOptionsContext = createContext<TableOptionsContextValue | null>(null);\n\n/**\n * Returns options from the parent `<Table>` component.\n */\nexport function useTableOptions(): TableOptionsContextValue {\n return useContext(TableOptionsContext)!;\n}\n\nexport interface TableHeaderRenderProps {\n /**\n * Whether the table header is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean\n}\n\nexport interface TableHeaderProps<T> extends StyleRenderProps<TableHeaderRenderProps>, HoverEvents, GlobalDOMAttributes<HTMLTableSectionElement> {\n /** A list of table columns. */\n columns?: Iterable<T>,\n /** A list of `Column(s)` or a function. If the latter, a list of columns must be provided using the `columns` prop. */\n children?: ReactNode | ((item: T) => ReactElement),\n /** Values that should invalidate the column cache when using dynamic collections. */\n dependencies?: ReadonlyArray<any>\n}\n\nclass TableHeaderNode<T> extends CollectionNode<T> {\n static readonly type = 'tableheader';\n}\n\n/**\n * A header within a `<Table>`, containing the table columns.\n */\nexport const TableHeader = /*#__PURE__*/ createBranchComponent(\n TableHeaderNode,\n <T extends object>(props: TableHeaderProps<T>, ref: ForwardedRef<HTMLTableSectionElement | HTMLDivElement>) => {\n let collection = useContext(TableStateContext)!.collection as TableCollection<unknown>;\n let headerRows = useCachedChildren({\n items: collection.headerRows,\n children: useCallback((item: Node<unknown>) => {\n switch (item.type) {\n case 'headerrow':\n return <TableHeaderRow item={item} />;\n default:\n throw new Error('Unsupported node type in TableHeader: ' + item.type);\n }\n }, [])\n });\n\n let THead = useElementType('thead');\n let {rowGroupProps} = useTableRowGroup();\n let {hoverProps, isHovered} = useHover({\n onHoverStart: props.onHoverStart,\n onHoverChange: props.onHoverChange,\n onHoverEnd: props.onHoverEnd\n });\n\n let renderProps = useRenderProps({\n className: props.className,\n style: props.style,\n defaultClassName: 'react-aria-TableHeader',\n values: {\n isHovered\n }\n });\n\n return (\n <THead\n {...mergeProps(filterDOMProps(props, {global: true}), rowGroupProps, hoverProps)}\n {...renderProps}\n ref={ref as any}\n data-hovered={isHovered || undefined}>\n {headerRows}\n </THead>\n );\n },\n props => (\n <Collection dependencies={props.dependencies} items={props.columns}>\n {props.children}\n </Collection>\n )\n);\n\nfunction TableHeaderRow({item}: {item: GridNode<any>}) {\n let ref = useRef<HTMLTableRowElement>(null);\n let state = useContext(TableStateContext)!;\n let {isVirtualized, CollectionBranch} = useContext(CollectionRendererContext);\n let {rowProps} = useTableHeaderRow({node: item, isVirtualized}, state, ref);\n let {checkboxProps} = useTableSelectAllCheckbox(state);\n let TR = useElementType('tr');\n\n return (\n <TR {...rowProps} ref={ref}>\n <Provider\n values={[\n [CheckboxContext, {\n slots: {\n selection: checkboxProps\n }\n }]\n ]}>\n <CollectionBranch collection={state.collection} parent={item} />\n </Provider>\n </TR>\n );\n}\n\nexport interface ColumnRenderProps {\n /**\n * Whether the item is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether the item is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the item is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the column allows sorting.\n * @selector [data-allows-sorting]\n */\n allowsSorting: boolean,\n /**\n * The current sort direction.\n * @selector [data-sort-direction=\"ascending | descending\"]\n */\n sortDirection: SortDirection | undefined,\n /**\n * Whether the column is currently being resized.\n * @selector [data-resizing]\n */\n isResizing: boolean,\n /**\n * Triggers sorting for this column in the given direction.\n */\n sort(direction: SortDirection): void,\n /**\n * Starts column resizing if the table is contained in a `<ResizableTableContainer>` element.\n */\n startResize(): void\n}\n\nexport interface ColumnProps extends RenderProps<ColumnRenderProps>, GlobalDOMAttributes<HTMLTableHeaderCellElement> {\n /** The unique id of the column. */\n id?: Key,\n /** Whether the column allows sorting. */\n allowsSorting?: boolean,\n /** Whether a column is a [row header](https://www.w3.org/TR/wai-aria-1.1/#rowheader) and should be announced by assistive technology during row navigation. */\n isRowHeader?: boolean,\n /** A string representation of the column's contents, used for accessibility announcements. */\n textValue?: string,\n /** The width of the column. This prop only applies when the `<Table>` is wrapped in a `<ResizableTableContainer>`. */\n width?: ColumnSize | null,\n /** The default width of the column. This prop only applies when the `<Table>` is wrapped in a `<ResizableTableContainer>`. */\n defaultWidth?: ColumnSize | null,\n /** The minimum width of the column. This prop only applies when the `<Table>` is wrapped in a `<ResizableTableContainer>`. */\n minWidth?: ColumnStaticSize | null,\n /** The maximum width of the column. This prop only applies when the `<Table>` is wrapped in a `<ResizableTableContainer>`. */\n maxWidth?: ColumnStaticSize | null\n}\n\nclass TableColumnNode extends CollectionNode<unknown> {\n static readonly type = 'column';\n}\n\n/**\n * A column within a `<Table>`.\n */\nexport const Column = /*#__PURE__*/ createLeafComponent(TableColumnNode, (props: ColumnProps, forwardedRef: ForwardedRef<HTMLTableCellElement | HTMLDivElement>, column: GridNode<unknown>) => {\n let ref = useObjectRef<HTMLTableCellElement | HTMLDivElement>(forwardedRef);\n let state = useContext(TableStateContext)!;\n let {isVirtualized} = useContext(CollectionRendererContext);\n let {columnHeaderProps} = useTableColumnHeader(\n {node: column, isVirtualized},\n state,\n ref\n );\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n\n let layoutState = useContext(TableColumnResizeStateContext);\n let isResizing = false;\n if (layoutState) {\n isResizing = layoutState.resizingColumn === column.key;\n } else if (process.env.NODE_ENV !== 'production') {\n for (let prop in ['width', 'defaultWidth', 'minWidth', 'maxWidth']) {\n if (prop in column.props) {\n console.warn(`The ${prop} prop on a <Column> only applies when a <Table> is wrapped in a <ResizableTableContainer>. If you aren't using column resizing, you can set the width of a column with CSS.`);\n }\n }\n }\n\n let {hoverProps, isHovered} = useHover({isDisabled: !props.allowsSorting});\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n children: column.rendered,\n defaultClassName: 'react-aria-Column',\n values: {\n isHovered,\n isFocused,\n isFocusVisible,\n allowsSorting: column.props.allowsSorting,\n sortDirection: state.sortDescriptor?.column === column.key\n ? state.sortDescriptor.direction\n : undefined,\n isResizing,\n startResize: () => {\n if (layoutState) {\n layoutState.startResize(column.key);\n state.setKeyboardNavigationDisabled(true);\n } else {\n throw new Error('Wrap your <Table> in a <ResizableTableContainer> to enable column resizing');\n }\n },\n sort: (direction) => {\n state.sort(column.key, direction);\n }\n }\n });\n\n let style = renderProps.style;\n if (layoutState) {\n style = {...style, width: layoutState.getColumnWidth(column.key)};\n }\n\n let TH = useElementType('th');\n let DOMProps = filterDOMProps(props as any, {global: true});\n delete DOMProps.id;\n\n return (\n <TH\n {...mergeProps(DOMProps, columnHeaderProps, focusProps, hoverProps)}\n {...renderProps}\n style={style}\n ref={ref as any}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-resizing={isResizing || undefined}\n data-allows-sorting={column.props.allowsSorting || undefined}\n data-sort-direction={state.sortDescriptor?.column === column.key ? state.sortDescriptor.direction : undefined}>\n <Provider\n values={[\n [ColumnResizerContext, {column, triggerRef: ref}],\n [CollectionRendererContext, DefaultCollectionRenderer]\n ]}>\n {renderProps.children}\n </Provider>\n </TH>\n );\n});\n\nexport interface ColumnResizerRenderProps {\n /**\n * Whether the resizer is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether the resizer is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the resizer is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the resizer is currently being resized.\n * @selector [data-resizing]\n */\n isResizing: boolean,\n /**\n * The direction that the column is currently resizable.\n * @selector [data-resizable-direction=\"right | left | both\"]\n */\n resizableDirection: 'right' | 'left' | 'both'\n}\n\nexport interface ColumnResizerProps extends HoverEvents, RenderProps<ColumnResizerRenderProps>, GlobalDOMAttributes<HTMLDivElement> {\n /** A custom accessibility label for the resizer. */\n 'aria-label'?: string\n}\n\ninterface ColumnResizerContextValue {\n column: GridNode<unknown>,\n triggerRef: RefObject<HTMLDivElement | null>\n}\n\nconst ColumnResizerContext = createContext<ColumnResizerContextValue | null>(null);\n\nexport const ColumnResizer = forwardRef(function ColumnResizer(props: ColumnResizerProps, ref: ForwardedRef<HTMLDivElement>) {\n let layoutState = useContext(TableColumnResizeStateContext);\n if (!layoutState) {\n throw new Error('Wrap your <Table> in a <ResizableTableContainer> to enable column resizing');\n }\n let stringFormatter = useLocalizedStringFormatter(intlMessages, 'react-aria-components');\n\n let {onResizeStart, onResize, onResizeEnd} = useContext(ResizableTableContainerContext)!;\n let {column, triggerRef} = useContext(ColumnResizerContext)!;\n let inputRef = useRef<HTMLInputElement>(null);\n let {resizerProps, inputProps, isResizing} = useTableColumnResize(\n {\n column,\n 'aria-label': props['aria-label'] || stringFormatter.format('tableResizer'),\n onResizeStart,\n onResize,\n onResizeEnd,\n triggerRef\n },\n layoutState,\n inputRef\n );\n let {focusProps, isFocused, isFocusVisible} = useFocusRing();\n let {hoverProps, isHovered} = useHover(props);\n\n let isEResizable = layoutState.getColumnMinWidth(column.key) >= layoutState.getColumnWidth(column.key);\n let isWResizable = layoutState.getColumnMaxWidth(column.key) <= layoutState.getColumnWidth(column.key);\n let {direction} = useLocale();\n let resizableDirection: ColumnResizerRenderProps['resizableDirection'] = 'both';\n if (isEResizable) {\n resizableDirection = direction === 'rtl' ? 'right' : 'left';\n } else if (isWResizable) {\n resizableDirection = direction === 'rtl' ? 'left' : 'right';\n } else {\n resizableDirection = 'both';\n }\n\n let objectRef = useObjectRef(ref);\n let [cursor, setCursor] = useState('');\n useEffect(() => {\n if (!objectRef.current) {\n return;\n }\n let style = window.getComputedStyle(objectRef.current);\n setCursor(style.cursor);\n }, [objectRef, resizableDirection]);\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-ColumnResizer',\n values: {\n isFocused,\n isFocusVisible,\n isResizing,\n isHovered,\n resizableDirection\n }\n });\n\n let [isMouseDown, setMouseDown] = useState(false);\n let onPointerDown = (e: PointerEvent) => {\n if (e.pointerType === 'mouse') {\n setMouseDown(true);\n }\n };\n\n if (!isResizing && isMouseDown) {\n setMouseDown(false);\n }\n\n let DOMProps = filterDOMProps(props, {global: true});\n\n return (\n <div\n ref={objectRef}\n role=\"presentation\"\n {...mergeProps(DOMProps, renderProps, resizerProps, {onPointerDown}, hoverProps)}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-resizing={isResizing || undefined}\n data-resizable-direction={resizableDirection}>\n {renderProps.children}\n <input\n ref={inputRef}\n {...mergeProps(inputProps, focusProps)} />\n {isResizing && isMouseDown && ReactDOM.createPortal(<div style={{position: 'fixed', top: 0, left: 0, bottom: 0, right: 0, cursor}} />, document.body)}\n </div>\n );\n});\n\nexport interface TableBodyRenderProps {\n /**\n * Whether the table body has no rows and should display its empty state.\n * @selector [data-empty]\n */\n isEmpty: boolean,\n /**\n * Whether the Table is currently the active drop target.\n * @selector [data-drop-target]\n */\n isDropTarget: boolean\n}\n\nexport interface TableBodyProps<T> extends Omit<CollectionProps<T>, 'disabledKeys'>, StyleRenderProps<TableBodyRenderProps>, GlobalDOMAttributes<HTMLTableSectionElement> {\n /** Provides content to display when there are no rows in the table. */\n renderEmptyState?: (props: TableBodyRenderProps) => ReactNode\n}\n\nclass TableBodyNode<T> extends FilterableNode<T> {\n static readonly type = 'tablebody';\n}\n\n/**\n * The body of a `<Table>`, containing the table rows.\n */\nexport const TableBody = /*#__PURE__*/ createBranchComponent(TableBodyNode, <T extends object>(props: TableBodyProps<T>, ref: ForwardedRef<HTMLTableSectionElement | HTMLDivElement>) => {\n let state = useContext(TableStateContext)!;\n let {isVirtualized} = useContext(CollectionRendererContext);\n let collection = state.collection;\n let {CollectionBranch} = useContext(CollectionRendererContext);\n let {dragAndDropHooks, dropState} = useContext(DragAndDropContext);\n let isDroppable = !!dragAndDropHooks?.useDroppableCollectionState && !dropState?.isDisabled;\n let isRootDropTarget = isDroppable && !!dropState && (dropState.isDropTarget({type: 'root'}) ?? false);\n\n let isEmpty = collection.size === 0;\n let renderValues = {\n isDropTarget: isRootDropTarget,\n isEmpty\n };\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n children: undefined,\n defaultClassName: 'react-aria-TableBody',\n values: renderValues\n });\n\n let emptyState;\n let TR = useElementType('tr');\n let TD = useElementType('td');\n let numColumns = collection.columnCount;\n\n if (isEmpty && props.renderEmptyState && state) {\n let rowProps = {};\n let rowHeaderProps = {};\n let style = {};\n if (isVirtualized) {\n rowHeaderProps['aria-colspan'] = numColumns;\n style = {display: 'contents'};\n } else {\n rowHeaderProps['colSpan'] = numColumns;\n }\n\n emptyState = (\n <TR role=\"row\" {...rowProps} style={style}>\n <TD role=\"rowheader\" {...rowHeaderProps} style={style}>\n {props.renderEmptyState(renderValues)}\n </TD>\n </TR>\n );\n }\n\n let {rowGroupProps} = useTableRowGroup();\n let TBody = useElementType('tbody');\n\n let DOMProps = filterDOMProps(props, {global: true});\n\n // TODO: TableBody doesn't support being the scrollable body of the table yet, to revisit if needed. Would need to\n // call useLoadMore here and walk up the DOM to the nearest scrollable element to set scrollRef\n return (\n <TBody\n {...mergeProps(DOMProps, renderProps, rowGroupProps)}\n ref={ref as any}\n data-empty={isEmpty || undefined}>\n {isDroppable && <RootDropIndicator />}\n <CollectionBranch\n collection={collection}\n parent={collection.body}\n renderDropIndicator={useRenderDropIndicator(dragAndDropHooks, dropState)} />\n {emptyState}\n </TBody>\n );\n});\n\nexport interface RowRenderProps extends ItemRenderProps {\n /** Whether the row's children have keyboard focus. */\n isFocusVisibleWithin: boolean,\n /** The unique id of the row. */\n id?: Key\n}\n\nexport interface RowProps<T> extends StyleRenderProps<RowRenderProps>, LinkDOMProps, HoverEvents, PressEvents, Omit<GlobalDOMAttributes<HTMLTableRowElement>, 'onClick'> {\n /** A list of columns used when dynamically rendering cells. */\n columns?: Iterable<T>,\n /** The cells within the row. Supports static items or a function for dynamic rendering. */\n children?: ReactNode | ((item: T) => ReactElement),\n /** The object value that this row represents. When using dynamic collections, this is set automatically. */\n value?: T,\n /** Values that should invalidate the cell cache when using dynamic collections. */\n dependencies?: ReadonlyArray<any>,\n /** A string representation of the row's contents, used for features like typeahead. */\n textValue?: string,\n /** Whether the row is disabled. */\n isDisabled?: boolean,\n /**\n * Handler that is called when a user performs an action on the row. The exact user event depends on\n * the collection's `selectionBehavior` prop and the interaction modality.\n */\n onAction?: () => void,\n /** The unique id of the row. */\n id?: Key\n}\n\nclass TableRowNode<T> extends CollectionNode<T> {\n static readonly type = 'item';\n\n filter(collection: BaseCollection<T>, newCollection: BaseCollection<T>, filterFn: (textValue: string, node: Node<T>) => boolean): TableRowNode<T> | null {\n let cells = collection.getChildren(this.key);\n for (let cell of cells) {\n if (filterFn(cell.textValue, cell)) {\n let clone = this.clone();\n newCollection.addDescendants(clone, collection);\n return clone;\n }\n }\n\n return null;\n }\n}\n\n/**\n * A row within a `<Table>`.\n */\nexport const Row = /*#__PURE__*/ createBranchComponent(\n TableRowNode,\n <T extends object>(props: RowProps<T>, forwardedRef: ForwardedRef<HTMLTableRowElement | HTMLDivElement>, item: GridNode<T>) => {\n let ref = useObjectRef<HTMLTableRowElement | HTMLDivElement>(forwardedRef);\n let state = useContext(TableStateContext)!;\n let {dragAndDropHooks, dragState, dropState} = useContext(DragAndDropContext);\n let {isVirtualized, CollectionBranch} = useContext(CollectionRendererContext);\n let {rowProps, ...states} = useTableRow(\n {\n node: item,\n shouldSelectOnPressUp: !!dragState,\n isVirtualized\n },\n state,\n ref\n );\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let {\n isFocusVisible: isFocusVisibleWithin,\n focusProps: focusWithinProps\n } = useFocusRing({within: true});\n let {hoverProps, isHovered} = useHover({\n isDisabled: !states.allowsSelection && !states.hasAction,\n onHoverStart: props.onHoverStart,\n onHoverChange: props.onHoverChange,\n onHoverEnd: props.onHoverEnd\n });\n\n let {checkboxProps} = useTableSelectionCheckbox(\n {key: item.key},\n state\n );\n\n let draggableItem: DraggableItemResult | undefined = undefined;\n if (dragState && dragAndDropHooks) {\n draggableItem = dragAndDropHooks.useDraggableItem!({key: item.key, hasDragButton: true}, dragState);\n }\n\n let dropIndicator: DropIndicatorAria | undefined = undefined;\n let dropIndicatorRef = useRef<HTMLDivElement>(null);\n let {visuallyHiddenProps} = useVisuallyHidden();\n if (dropState && dragAndDropHooks) {\n dropIndicator = dragAndDropHooks.useDropIndicator!({\n target: {type: 'item', key: item.key, dropPosition: 'on'}\n }, dropState, dropIndicatorRef);\n }\n\n let dragButtonRef = useRef<HTMLButtonElement>(null);\n useEffect(() => {\n if (dragState && !dragButtonRef.current && process.env.NODE_ENV !== 'production') {\n console.warn('Draggable items in a Table must contain a <Button slot=\"drag\"> element so that keyboard and screen reader users can drag them.');\n }\n // eslint-disable-next-line\n }, []);\n\n let isDragging = dragState && dragState.isDragging(item.key);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n let {children: _, ...restProps} = props;\n let renderProps = useRenderProps({\n ...restProps,\n id: undefined,\n defaultClassName: 'react-aria-Row',\n values: {\n ...states,\n isHovered,\n isFocused,\n isFocusVisible,\n selectionMode: state.selectionManager.selectionMode,\n selectionBehavior: state.selectionManager.selectionBehavior,\n isDragging,\n isDropTarget: dropIndicator?.isDropTarget,\n isFocusVisibleWithin,\n id: item.key\n }\n });\n\n let TR = useElementType('tr');\n let TD = useElementType('td');\n let DOMProps = filterDOMProps(props as any, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <>\n {dropIndicator && !dropIndicator.isHidden && (\n <TR role=\"row\" style={{height: 0}}>\n <TD role=\"gridcell\" colSpan={state.collection.columnCount} style={{padding: 0}}>\n <div role=\"button\" {...visuallyHiddenProps} {...dropIndicator.dropIndicatorProps} ref={dropIndicatorRef} />\n </TD>\n </TR>\n )}\n <TR\n {...mergeProps(DOMProps, renderProps, rowProps, focusProps, hoverProps, draggableItem?.dragProps, focusWithinProps)}\n ref={ref as any}\n data-disabled={states.isDisabled || undefined}\n data-selected={states.isSelected || undefined}\n data-hovered={isHovered || undefined}\n data-focused={states.isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-pressed={states.isPressed || undefined}\n data-dragging={isDragging || undefined}\n data-drop-target={dropIndicator?.isDropTarget || undefined}\n data-selection-mode={state.selectionManager.selectionMode === 'none' ? undefined : state.selectionManager.selectionMode}\n data-focus-visible-within={isFocusVisibleWithin || undefined}>\n <Provider\n values={[\n [CheckboxContext, {\n slots: {\n [DEFAULT_SLOT]: {},\n selection: checkboxProps\n }\n }],\n [ButtonContext, {\n slots: {\n [DEFAULT_SLOT]: {},\n drag: {\n ...draggableItem?.dragButtonProps,\n ref: dragButtonRef,\n style: {\n pointerEvents: 'none'\n }\n }\n }\n }],\n [SelectionIndicatorContext, {isSelected: states.isSelected}]\n ]}>\n <CollectionBranch collection={state.collection} parent={item} />\n </Provider>\n </TR>\n </>\n );\n },\n props => {\n if (props.id == null && typeof props.children === 'function') {\n throw new Error('No id detected for the Row element. The Row element requires a id to be provided to it when the cells are rendered dynamically.');\n }\n\n let dependencies = [props.value].concat(props.dependencies);\n return (\n <Collection dependencies={dependencies} items={props.columns} idScope={props.id}>\n {props.children}\n </Collection>\n );\n }\n);\n\nexport interface CellRenderProps {\n /**\n * Whether the cell is currently in a pressed state.\n * @selector [data-pressed]\n */\n isPressed: boolean,\n /**\n * Whether the cell is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the cell is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the cell is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * The unique id of the cell.\n **/\n id?: Key\n}\n\nexport interface CellProps extends RenderProps<CellRenderProps>, GlobalDOMAttributes<HTMLTableCellElement> {\n /** The unique id of the cell. */\n id?: Key,\n /** A string representation of the cell's contents, used for features like typeahead. */\n textValue?: string,\n /** Indicates how many columns the data cell spans. */\n colSpan?: number\n}\n\nclass TableCellNode extends CollectionNode<unknown> {\n static readonly type = 'cell';\n}\n\n/**\n * A cell within a table row.\n */\nexport const Cell = /*#__PURE__*/ createLeafComponent(TableCellNode, (props: CellProps, forwardedRef: ForwardedRef<HTMLTableCellElement | HTMLDivElement>, cell: GridNode<unknown>) => {\n let ref = useObjectRef<HTMLTableCellElement | HTMLDivElement>(forwardedRef);\n let state = useContext(TableStateContext)!;\n let {dragState} = useContext(DragAndDropContext);\n let {isVirtualized} = useContext(CollectionRendererContext);\n\n cell.column = state.collection.columns[cell.index];\n\n let {gridCellProps, isPressed} = useTableCell({\n node: cell,\n shouldSelectOnPressUp: !!dragState,\n isVirtualized\n }, state, ref);\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let {hoverProps, isHovered} = useHover({});\n\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n defaultClassName: 'react-aria-Cell',\n values: {\n isFocused,\n isFocusVisible,\n isPressed,\n isHovered,\n id: cell.key\n }\n });\n\n let TD = useElementType('td');\n let DOMProps = filterDOMProps(props as any, {global: true});\n delete DOMProps.id;\n\n return (\n <TD\n {...mergeProps(DOMProps, renderProps, gridCellProps, focusProps, hoverProps)}\n ref={ref as any}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-pressed={isPressed || undefined}>\n <CollectionRendererContext.Provider value={DefaultCollectionRenderer}>\n {renderProps.children}\n </CollectionRendererContext.Provider>\n </TD>\n );\n});\n\nfunction TableDropIndicatorWrapper(props: DropIndicatorProps, ref: ForwardedRef<HTMLElement>) {\n ref = useObjectRef(ref);\n let {dragAndDropHooks, dropState} = useContext(DragAndDropContext)!;\n let buttonRef = useRef<HTMLDivElement>(null);\n let {dropIndicatorProps, isHidden, isDropTarget} = dragAndDropHooks!.useDropIndicator!(\n props,\n dropState!,\n buttonRef\n );\n\n if (isHidden) {\n return null;\n }\n\n return (\n <TableDropIndicatorForwardRef {...props} dropIndicatorProps={dropIndicatorProps} isDropTarget={isDropTarget} buttonRef={buttonRef} ref={ref} />\n );\n}\n\ninterface TableDropIndicatorProps extends DropIndicatorProps, GlobalDOMAttributes<HTMLTableRowElement> {\n dropIndicatorProps: React.HTMLAttributes<HTMLElement>,\n isDropTarget: boolean,\n buttonRef: RefObject<HTMLDivElement | null>\n}\n\nfunction TableDropIndicator(props: TableDropIndicatorProps, ref: ForwardedRef<HTMLElement>) {\n let {\n dropIndicatorProps,\n isDropTarget,\n buttonRef,\n ...otherProps\n } = props;\n\n let state = useContext(TableStateContext)!;\n let {visuallyHiddenProps} = useVisuallyHidden();\n let renderProps = useRenderProps({\n ...otherProps,\n defaultClassName: 'react-aria-DropIndicator',\n values: {\n isDropTarget\n }\n });\n\n let TR = useElementType('tr');\n let TD = useElementType('td');\n\n return (\n <TR\n {...filterDOMProps(props as any, {global: true})}\n {...renderProps}\n role=\"row\"\n ref={ref as RefObject<HTMLTableRowElement | null>}\n data-drop-target={isDropTarget || undefined}>\n <TD\n role=\"gridcell\"\n colSpan={state.collection.columnCount}\n style={{padding: 0}}>\n <div {...visuallyHiddenProps} role=\"button\" {...dropIndicatorProps} ref={buttonRef} />\n {renderProps.children}\n </TD>\n </TR>\n );\n}\n\nconst TableDropIndicatorForwardRef = forwardRef(TableDropIndicator);\n\nfunction RootDropIndicator() {\n let state = useContext(TableStateContext)!;\n let {dragAndDropHooks, dropState} = useContext(DragAndDropContext);\n let ref = useRef<HTMLDivElement>(null);\n let {dropIndicatorProps} = dragAndDropHooks!.useDropIndicator!({\n target: {type: 'root'}\n }, dropState!, ref);\n let isDropTarget = dropState!.isDropTarget({type: 'root'});\n let {visuallyHiddenProps} = useVisuallyHidden();\n let TR = useElementType('tr');\n let TD = useElementType('td');\n\n if (!isDropTarget && dropIndicatorProps['aria-hidden']) {\n return null;\n }\n\n return (\n <TR\n role=\"row\"\n aria-hidden={dropIndicatorProps['aria-hidden']}\n style={{height: 0}}>\n <TD\n role=\"gridcell\"\n colSpan={state.collection.columnCount}\n style={{padding: 0}}>\n <div role=\"button\" {...visuallyHiddenProps} {...dropIndicatorProps} ref={ref} />\n </TD>\n </TR>\n );\n}\n\nexport interface TableLoadMoreItemProps extends Omit<LoadMoreSentinelProps, 'collection'>, StyleProps, GlobalDOMAttributes<HTMLTableRowElement> {\n /**\n * The load more spinner to render when loading additional items.\n */\n children?: ReactNode,\n /**\n * Whether or not the loading spinner should be rendered or not.\n */\n isLoading?: boolean\n}\n\nexport const TableLoadMoreItem = createLeafComponent(LoaderNode, function TableLoadingIndicator(props: TableLoadMoreItemProps, ref: ForwardedRef<HTMLTableRowElement>, item: Node<object>) {\n let state = useContext(TableStateContext)!;\n let {isVirtualized} = useContext(CollectionRendererContext);\n let {isLoading, onLoadMore, scrollOffset, ...otherProps} = props;\n let numColumns = state.collection.columns.length;\n\n let sentinelRef = useRef(null);\n let memoedLoadMoreProps = useMemo(() => ({\n onLoadMore,\n collection: state?.collection,\n sentinelRef,\n scrollOffset\n }), [onLoadMore, scrollOffset, state?.collection]);\n useLoadMoreSentinel(memoedLoadMoreProps, sentinelRef);\n\n let renderProps = useRenderProps({\n ...otherProps,\n id: undefined,\n children: item.rendered,\n defaultClassName: 'react-aria-TableLoadingIndicator',\n values: null\n });\n let TR = useElementType('tr');\n let TD = useElementType('td');\n let rowProps = {};\n let rowHeaderProps = {};\n let style = {};\n\n if (isVirtualized) {\n // For now don't include aria-rowindex on loader since they aren't keyboard focusable\n // Arguably shouldn't include them ever since it might be confusing to the user to include the loaders as part of the\n // row count\n rowHeaderProps['aria-colspan'] = numColumns;\n style = {display: 'contents'};\n } else {\n rowHeaderProps['colSpan'] = numColumns;\n }\n\n return (\n <>\n {/* Alway render the sentinel. For now onus is on the user for styling when using flex + gap (this would introduce a gap even though it doesn't take room) */}\n {/* @ts-ignore - compatibility with React < 19 */}\n <TR style={{height: 0}} inert={inertValue(true)}>\n <TD style={{padding: 0, border: 0}}>\n <div data-testid=\"loadMoreSentinel\" ref={sentinelRef} style={{position: 'relative', height: 1, width: 1}} />\n </TD>\n </TR>\n {isLoading && renderProps.children && (\n <TR\n {...mergeProps(filterDOMProps(props, {global: true}), rowProps)}\n {...renderProps}\n role=\"row\"\n ref={ref as ForwardedRef<HTMLTableRowElement>}>\n <TD role=\"rowheader\" {...rowHeaderProps} style={style}>\n {renderProps.children}\n </TD>\n </TR>\n )}\n </>\n );\n});\n"],"names":[],"version":3,"file":"Table.main.js.map"}
|
package/dist/Table.mjs
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import {ButtonContext as $d2b4bc8c273e7be6$export$24d547caef80ccd1} from "./Button.mjs";
|
|
2
|
-
import {CheckboxContext as $4e85f108e88277b8$export$b085522c77523c51} from "./RSPContexts.mjs";
|
|
2
|
+
import {CheckboxContext as $4e85f108e88277b8$export$b085522c77523c51, FieldInputContext as $4e85f108e88277b8$export$698f465ec27e93df, SelectableCollectionContext as $4e85f108e88277b8$export$b0d3ecf7112093a7} from "./RSPContexts.mjs";
|
|
3
3
|
import {CollectionRendererContext as $7135fc7d473fd974$export$4feb769f8ddf26c5, DefaultCollectionRenderer as $7135fc7d473fd974$export$a164736487e3f0ae} from "./Collection.mjs";
|
|
4
4
|
import {DEFAULT_SLOT as $64fa3d84918910a7$export$c62b8e45d58ddad9, Provider as $64fa3d84918910a7$export$2881499e37b75b9a, useContextProps as $64fa3d84918910a7$export$29f1550f4b0d4415, useRenderProps as $64fa3d84918910a7$export$4d86445c2cf5e3} from "./utils.mjs";
|
|
5
5
|
import {DragAndDropContext as $612b8eb6cb90e02d$export$d188a835a7bc5783, DropIndicatorContext as $612b8eb6cb90e02d$export$f55761759794cf55, useDndPersistedKeys as $612b8eb6cb90e02d$export$d1e8e3fbb7461f6, useRenderDropIndicator as $612b8eb6cb90e02d$export$971707d8a129a1f7} from "./DragAndDrop.mjs";
|
|
6
|
-
import {FieldInputContext as $8e6cc465cc68f603$export$698f465ec27e93df, SelectableCollectionContext as $8e6cc465cc68f603$export$b0d3ecf7112093a7} from "./context.mjs";
|
|
7
6
|
import $dbSRa$intlStringsmodulejs from "./intlStrings.mjs";
|
|
7
|
+
import {SelectionIndicatorContext as $1d5b8b8664671ef2$export$c9549807523555e0} from "./SelectionIndicator.mjs";
|
|
8
|
+
import {SharedElementTransition as $c8a5a149f625efcf$export$758399f318e6385a} from "./SharedElementTransition.mjs";
|
|
8
9
|
import {BaseCollection as $dbSRa$BaseCollection, Collection as $dbSRa$Collection, CollectionBuilder as $dbSRa$CollectionBuilder, CollectionNode as $dbSRa$CollectionNode, createBranchComponent as $dbSRa$createBranchComponent, useCachedChildren as $dbSRa$useCachedChildren, createLeafComponent as $dbSRa$createLeafComponent, FilterableNode as $dbSRa$FilterableNode, LoaderNode as $dbSRa$LoaderNode} from "@react-aria/collections";
|
|
9
10
|
import {buildHeaderRows as $dbSRa$buildHeaderRows} from "@react-stately/table";
|
|
10
11
|
import {useTableColumnResizeState as $dbSRa$useTableColumnResizeState, useMultipleSelectionState as $dbSRa$useMultipleSelectionState, useTableState as $dbSRa$useTableState, UNSTABLE_useFilteredTableState as $dbSRa$UNSTABLE_useFilteredTableState} from "react-stately";
|
|
@@ -31,6 +32,7 @@ function $parcel$interopDefault(a) {
|
|
|
31
32
|
|
|
32
33
|
|
|
33
34
|
|
|
35
|
+
|
|
34
36
|
class $1910c06f0ca9905e$var$TableCollection extends (0, $dbSRa$BaseCollection) {
|
|
35
37
|
addNode(node) {
|
|
36
38
|
super.addNode(node);
|
|
@@ -234,18 +236,16 @@ const $1910c06f0ca9905e$export$54ec01a60f47d33d = /*#__PURE__*/ (0, $dbSRa$forwa
|
|
|
234
236
|
}));
|
|
235
237
|
});
|
|
236
238
|
function $1910c06f0ca9905e$var$TableInner({ props: props, forwardedRef: ref, selectionState: selectionState, collection: collection }) {
|
|
237
|
-
|
|
238
|
-
[contextProps] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)({}, null, (0, $8e6cc465cc68f603$export$b0d3ecf7112093a7));
|
|
239
|
-
let { filter: filter, ...collectionProps } = contextProps;
|
|
239
|
+
[props, ref] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)(props, ref, (0, $4e85f108e88277b8$export$b0d3ecf7112093a7));
|
|
240
240
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
241
|
-
let { shouldUseVirtualFocus: shouldUseVirtualFocus, disallowTypeAhead: disallowTypeAhead, ...DOMCollectionProps } =
|
|
241
|
+
let { shouldUseVirtualFocus: shouldUseVirtualFocus, disallowTypeAhead: disallowTypeAhead, filter: filter, ...DOMCollectionProps } = props;
|
|
242
242
|
let tableContainerContext = (0, $dbSRa$useContext)($1910c06f0ca9905e$var$ResizableTableContainerContext);
|
|
243
243
|
ref = (0, $dbSRa$useObjectRef)((0, $dbSRa$useMemo)(()=>(0, $dbSRa$mergeRefs)(ref, tableContainerContext === null || tableContainerContext === void 0 ? void 0 : tableContainerContext.tableRef), [
|
|
244
244
|
ref,
|
|
245
245
|
tableContainerContext === null || tableContainerContext === void 0 ? void 0 : tableContainerContext.tableRef
|
|
246
246
|
]));
|
|
247
247
|
let tableState = (0, $dbSRa$useTableState)({
|
|
248
|
-
...
|
|
248
|
+
...DOMCollectionProps,
|
|
249
249
|
collection: collection,
|
|
250
250
|
children: undefined,
|
|
251
251
|
UNSAFE_selectionState: selectionState
|
|
@@ -254,7 +254,6 @@ function $1910c06f0ca9905e$var$TableInner({ props: props, forwardedRef: ref, sel
|
|
|
254
254
|
let { isVirtualized: isVirtualized, layoutDelegate: layoutDelegate, dropTargetDelegate: ctxDropTargetDelegate, CollectionRoot: CollectionRoot } = (0, $dbSRa$useContext)((0, $7135fc7d473fd974$export$4feb769f8ddf26c5));
|
|
255
255
|
let { dragAndDropHooks: dragAndDropHooks } = props;
|
|
256
256
|
let { gridProps: gridProps } = (0, $dbSRa$useTable)({
|
|
257
|
-
...props,
|
|
258
257
|
...DOMCollectionProps,
|
|
259
258
|
layoutDelegate: layoutDelegate,
|
|
260
259
|
isVirtualized: isVirtualized
|
|
@@ -366,11 +365,11 @@ function $1910c06f0ca9905e$var$TableInner({ props: props, forwardedRef: ref, sel
|
|
|
366
365
|
}
|
|
367
366
|
],
|
|
368
367
|
[
|
|
369
|
-
(0, $
|
|
368
|
+
(0, $4e85f108e88277b8$export$b0d3ecf7112093a7),
|
|
370
369
|
null
|
|
371
370
|
],
|
|
372
371
|
[
|
|
373
|
-
(0, $
|
|
372
|
+
(0, $4e85f108e88277b8$export$698f465ec27e93df),
|
|
374
373
|
null
|
|
375
374
|
]
|
|
376
375
|
]
|
|
@@ -384,11 +383,11 @@ function $1910c06f0ca9905e$var$TableInner({ props: props, forwardedRef: ref, sel
|
|
|
384
383
|
"data-drop-target": isRootDropTarget || undefined,
|
|
385
384
|
"data-focused": isFocused || undefined,
|
|
386
385
|
"data-focus-visible": isFocusVisible || undefined
|
|
387
|
-
}, /*#__PURE__*/ (0, $dbSRa$react).createElement(CollectionRoot, {
|
|
386
|
+
}, /*#__PURE__*/ (0, $dbSRa$react).createElement((0, $c8a5a149f625efcf$export$758399f318e6385a), null, /*#__PURE__*/ (0, $dbSRa$react).createElement(CollectionRoot, {
|
|
388
387
|
collection: filteredState.collection,
|
|
389
388
|
scrollRef: (_tableContainerContext_scrollRef = tableContainerContext === null || tableContainerContext === void 0 ? void 0 : tableContainerContext.scrollRef) !== null && _tableContainerContext_scrollRef !== void 0 ? _tableContainerContext_scrollRef : ref,
|
|
390
389
|
persistedKeys: (0, $612b8eb6cb90e02d$export$d1e8e3fbb7461f6)(selectionManager, dragAndDropHooks, dropState)
|
|
391
|
-
}))), dragPreview);
|
|
390
|
+
})))), dragPreview);
|
|
392
391
|
}
|
|
393
392
|
function $1910c06f0ca9905e$var$useElementType(element) {
|
|
394
393
|
let { isVirtualized: isVirtualized } = (0, $dbSRa$useContext)((0, $7135fc7d473fd974$export$4feb769f8ddf26c5));
|
|
@@ -841,6 +840,12 @@ const $1910c06f0ca9905e$export$b59bdbef9ce70de2 = /*#__PURE__*/ (0, $dbSRa$creat
|
|
|
841
840
|
}
|
|
842
841
|
}
|
|
843
842
|
}
|
|
843
|
+
],
|
|
844
|
+
[
|
|
845
|
+
(0, $1d5b8b8664671ef2$export$c9549807523555e0),
|
|
846
|
+
{
|
|
847
|
+
isSelected: states.isSelected
|
|
848
|
+
}
|
|
844
849
|
]
|
|
845
850
|
]
|
|
846
851
|
}, /*#__PURE__*/ (0, $dbSRa$react).createElement(CollectionBranch, {
|
package/dist/Table.module.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import {ButtonContext as $d2b4bc8c273e7be6$export$24d547caef80ccd1} from "./Button.module.js";
|
|
2
|
-
import {CheckboxContext as $4e85f108e88277b8$export$b085522c77523c51} from "./RSPContexts.module.js";
|
|
2
|
+
import {CheckboxContext as $4e85f108e88277b8$export$b085522c77523c51, FieldInputContext as $4e85f108e88277b8$export$698f465ec27e93df, SelectableCollectionContext as $4e85f108e88277b8$export$b0d3ecf7112093a7} from "./RSPContexts.module.js";
|
|
3
3
|
import {CollectionRendererContext as $7135fc7d473fd974$export$4feb769f8ddf26c5, DefaultCollectionRenderer as $7135fc7d473fd974$export$a164736487e3f0ae} from "./Collection.module.js";
|
|
4
4
|
import {DEFAULT_SLOT as $64fa3d84918910a7$export$c62b8e45d58ddad9, Provider as $64fa3d84918910a7$export$2881499e37b75b9a, useContextProps as $64fa3d84918910a7$export$29f1550f4b0d4415, useRenderProps as $64fa3d84918910a7$export$4d86445c2cf5e3} from "./utils.module.js";
|
|
5
5
|
import {DragAndDropContext as $612b8eb6cb90e02d$export$d188a835a7bc5783, DropIndicatorContext as $612b8eb6cb90e02d$export$f55761759794cf55, useDndPersistedKeys as $612b8eb6cb90e02d$export$d1e8e3fbb7461f6, useRenderDropIndicator as $612b8eb6cb90e02d$export$971707d8a129a1f7} from "./DragAndDrop.module.js";
|
|
6
|
-
import {FieldInputContext as $8e6cc465cc68f603$export$698f465ec27e93df, SelectableCollectionContext as $8e6cc465cc68f603$export$b0d3ecf7112093a7} from "./context.module.js";
|
|
7
6
|
import $dbSRa$intlStringsmodulejs from "./intlStrings.module.js";
|
|
7
|
+
import {SelectionIndicatorContext as $1d5b8b8664671ef2$export$c9549807523555e0} from "./SelectionIndicator.module.js";
|
|
8
|
+
import {SharedElementTransition as $c8a5a149f625efcf$export$758399f318e6385a} from "./SharedElementTransition.module.js";
|
|
8
9
|
import {BaseCollection as $dbSRa$BaseCollection, Collection as $dbSRa$Collection, CollectionBuilder as $dbSRa$CollectionBuilder, CollectionNode as $dbSRa$CollectionNode, createBranchComponent as $dbSRa$createBranchComponent, useCachedChildren as $dbSRa$useCachedChildren, createLeafComponent as $dbSRa$createLeafComponent, FilterableNode as $dbSRa$FilterableNode, LoaderNode as $dbSRa$LoaderNode} from "@react-aria/collections";
|
|
9
10
|
import {buildHeaderRows as $dbSRa$buildHeaderRows} from "@react-stately/table";
|
|
10
11
|
import {useTableColumnResizeState as $dbSRa$useTableColumnResizeState, useMultipleSelectionState as $dbSRa$useMultipleSelectionState, useTableState as $dbSRa$useTableState, UNSTABLE_useFilteredTableState as $dbSRa$UNSTABLE_useFilteredTableState} from "react-stately";
|
|
@@ -31,6 +32,7 @@ function $parcel$interopDefault(a) {
|
|
|
31
32
|
|
|
32
33
|
|
|
33
34
|
|
|
35
|
+
|
|
34
36
|
class $1910c06f0ca9905e$var$TableCollection extends (0, $dbSRa$BaseCollection) {
|
|
35
37
|
addNode(node) {
|
|
36
38
|
super.addNode(node);
|
|
@@ -234,18 +236,16 @@ const $1910c06f0ca9905e$export$54ec01a60f47d33d = /*#__PURE__*/ (0, $dbSRa$forwa
|
|
|
234
236
|
}));
|
|
235
237
|
});
|
|
236
238
|
function $1910c06f0ca9905e$var$TableInner({ props: props, forwardedRef: ref, selectionState: selectionState, collection: collection }) {
|
|
237
|
-
|
|
238
|
-
[contextProps] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)({}, null, (0, $8e6cc465cc68f603$export$b0d3ecf7112093a7));
|
|
239
|
-
let { filter: filter, ...collectionProps } = contextProps;
|
|
239
|
+
[props, ref] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)(props, ref, (0, $4e85f108e88277b8$export$b0d3ecf7112093a7));
|
|
240
240
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
241
|
-
let { shouldUseVirtualFocus: shouldUseVirtualFocus, disallowTypeAhead: disallowTypeAhead, ...DOMCollectionProps } =
|
|
241
|
+
let { shouldUseVirtualFocus: shouldUseVirtualFocus, disallowTypeAhead: disallowTypeAhead, filter: filter, ...DOMCollectionProps } = props;
|
|
242
242
|
let tableContainerContext = (0, $dbSRa$useContext)($1910c06f0ca9905e$var$ResizableTableContainerContext);
|
|
243
243
|
ref = (0, $dbSRa$useObjectRef)((0, $dbSRa$useMemo)(()=>(0, $dbSRa$mergeRefs)(ref, tableContainerContext === null || tableContainerContext === void 0 ? void 0 : tableContainerContext.tableRef), [
|
|
244
244
|
ref,
|
|
245
245
|
tableContainerContext === null || tableContainerContext === void 0 ? void 0 : tableContainerContext.tableRef
|
|
246
246
|
]));
|
|
247
247
|
let tableState = (0, $dbSRa$useTableState)({
|
|
248
|
-
...
|
|
248
|
+
...DOMCollectionProps,
|
|
249
249
|
collection: collection,
|
|
250
250
|
children: undefined,
|
|
251
251
|
UNSAFE_selectionState: selectionState
|
|
@@ -254,7 +254,6 @@ function $1910c06f0ca9905e$var$TableInner({ props: props, forwardedRef: ref, sel
|
|
|
254
254
|
let { isVirtualized: isVirtualized, layoutDelegate: layoutDelegate, dropTargetDelegate: ctxDropTargetDelegate, CollectionRoot: CollectionRoot } = (0, $dbSRa$useContext)((0, $7135fc7d473fd974$export$4feb769f8ddf26c5));
|
|
255
255
|
let { dragAndDropHooks: dragAndDropHooks } = props;
|
|
256
256
|
let { gridProps: gridProps } = (0, $dbSRa$useTable)({
|
|
257
|
-
...props,
|
|
258
257
|
...DOMCollectionProps,
|
|
259
258
|
layoutDelegate: layoutDelegate,
|
|
260
259
|
isVirtualized: isVirtualized
|
|
@@ -366,11 +365,11 @@ function $1910c06f0ca9905e$var$TableInner({ props: props, forwardedRef: ref, sel
|
|
|
366
365
|
}
|
|
367
366
|
],
|
|
368
367
|
[
|
|
369
|
-
(0, $
|
|
368
|
+
(0, $4e85f108e88277b8$export$b0d3ecf7112093a7),
|
|
370
369
|
null
|
|
371
370
|
],
|
|
372
371
|
[
|
|
373
|
-
(0, $
|
|
372
|
+
(0, $4e85f108e88277b8$export$698f465ec27e93df),
|
|
374
373
|
null
|
|
375
374
|
]
|
|
376
375
|
]
|
|
@@ -384,11 +383,11 @@ function $1910c06f0ca9905e$var$TableInner({ props: props, forwardedRef: ref, sel
|
|
|
384
383
|
"data-drop-target": isRootDropTarget || undefined,
|
|
385
384
|
"data-focused": isFocused || undefined,
|
|
386
385
|
"data-focus-visible": isFocusVisible || undefined
|
|
387
|
-
}, /*#__PURE__*/ (0, $dbSRa$react).createElement(CollectionRoot, {
|
|
386
|
+
}, /*#__PURE__*/ (0, $dbSRa$react).createElement((0, $c8a5a149f625efcf$export$758399f318e6385a), null, /*#__PURE__*/ (0, $dbSRa$react).createElement(CollectionRoot, {
|
|
388
387
|
collection: filteredState.collection,
|
|
389
388
|
scrollRef: (_tableContainerContext_scrollRef = tableContainerContext === null || tableContainerContext === void 0 ? void 0 : tableContainerContext.scrollRef) !== null && _tableContainerContext_scrollRef !== void 0 ? _tableContainerContext_scrollRef : ref,
|
|
390
389
|
persistedKeys: (0, $612b8eb6cb90e02d$export$d1e8e3fbb7461f6)(selectionManager, dragAndDropHooks, dropState)
|
|
391
|
-
}))), dragPreview);
|
|
390
|
+
})))), dragPreview);
|
|
392
391
|
}
|
|
393
392
|
function $1910c06f0ca9905e$var$useElementType(element) {
|
|
394
393
|
let { isVirtualized: isVirtualized } = (0, $dbSRa$useContext)((0, $7135fc7d473fd974$export$4feb769f8ddf26c5));
|
|
@@ -841,6 +840,12 @@ const $1910c06f0ca9905e$export$b59bdbef9ce70de2 = /*#__PURE__*/ (0, $dbSRa$creat
|
|
|
841
840
|
}
|
|
842
841
|
}
|
|
843
842
|
}
|
|
843
|
+
],
|
|
844
|
+
[
|
|
845
|
+
(0, $1d5b8b8664671ef2$export$c9549807523555e0),
|
|
846
|
+
{
|
|
847
|
+
isSelected: states.isSelected
|
|
848
|
+
}
|
|
844
849
|
]
|
|
845
850
|
]
|
|
846
851
|
}, /*#__PURE__*/ (0, $dbSRa$react).createElement(CollectionBranch, {
|