react-aria-components 1.10.0 → 1.11.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/Breadcrumbs.main.js +9 -2
- package/dist/Breadcrumbs.main.js.map +1 -1
- package/dist/Breadcrumbs.mjs +10 -3
- package/dist/Breadcrumbs.module.js +10 -3
- package/dist/Breadcrumbs.module.js.map +1 -1
- package/dist/Button.main.js +7 -17
- package/dist/Button.main.js.map +1 -1
- package/dist/Button.mjs +7 -17
- package/dist/Button.module.js +7 -17
- package/dist/Button.module.js.map +1 -1
- package/dist/Calendar.main.js +36 -14
- package/dist/Calendar.main.js.map +1 -1
- package/dist/Calendar.mjs +38 -16
- package/dist/Calendar.module.js +38 -16
- package/dist/Calendar.module.js.map +1 -1
- package/dist/Checkbox.main.js +8 -3
- package/dist/Checkbox.main.js.map +1 -1
- package/dist/Checkbox.mjs +10 -5
- package/dist/Checkbox.module.js +10 -5
- package/dist/Checkbox.module.js.map +1 -1
- package/dist/Collection.main.js.map +1 -1
- package/dist/Collection.module.js.map +1 -1
- package/dist/ColorArea.main.js +4 -4
- package/dist/ColorArea.main.js.map +1 -1
- package/dist/ColorArea.mjs +5 -5
- package/dist/ColorArea.module.js +5 -5
- package/dist/ColorArea.module.js.map +1 -1
- package/dist/ColorField.main.js +14 -1
- package/dist/ColorField.main.js.map +1 -1
- package/dist/ColorField.mjs +14 -1
- package/dist/ColorField.module.js +14 -1
- package/dist/ColorField.module.js.map +1 -1
- package/dist/ColorSlider.main.js +3 -1
- package/dist/ColorSlider.main.js.map +1 -1
- package/dist/ColorSlider.mjs +3 -1
- package/dist/ColorSlider.module.js +3 -1
- package/dist/ColorSlider.module.js.map +1 -1
- package/dist/ColorSwatch.main.js +6 -2
- package/dist/ColorSwatch.main.js.map +1 -1
- package/dist/ColorSwatch.mjs +6 -2
- package/dist/ColorSwatch.module.js +6 -2
- package/dist/ColorSwatch.module.js.map +1 -1
- package/dist/ColorSwatchPicker.main.js.map +1 -1
- package/dist/ColorSwatchPicker.module.js.map +1 -1
- package/dist/ColorThumb.main.js +3 -1
- package/dist/ColorThumb.main.js.map +1 -1
- package/dist/ColorThumb.mjs +3 -1
- package/dist/ColorThumb.module.js +3 -1
- package/dist/ColorThumb.module.js.map +1 -1
- package/dist/ColorWheel.main.js +3 -1
- package/dist/ColorWheel.main.js.map +1 -1
- package/dist/ColorWheel.mjs +3 -1
- package/dist/ColorWheel.module.js +3 -1
- package/dist/ColorWheel.module.js.map +1 -1
- package/dist/ComboBox.main.js +4 -1
- package/dist/ComboBox.main.js.map +1 -1
- package/dist/ComboBox.mjs +4 -1
- package/dist/ComboBox.module.js +4 -1
- package/dist/ComboBox.module.js.map +1 -1
- package/dist/DateField.main.js +16 -3
- package/dist/DateField.main.js.map +1 -1
- package/dist/DateField.mjs +16 -3
- package/dist/DateField.module.js +16 -3
- package/dist/DateField.module.js.map +1 -1
- package/dist/DatePicker.main.js +15 -8
- package/dist/DatePicker.main.js.map +1 -1
- package/dist/DatePicker.mjs +16 -9
- package/dist/DatePicker.module.js +16 -9
- package/dist/DatePicker.module.js.map +1 -1
- package/dist/Dialog.main.js +4 -3
- package/dist/Dialog.main.js.map +1 -1
- package/dist/Dialog.mjs +5 -4
- package/dist/Dialog.module.js +5 -4
- package/dist/Dialog.module.js.map +1 -1
- package/dist/Disclosure.main.js +12 -10
- package/dist/Disclosure.main.js.map +1 -1
- package/dist/Disclosure.mjs +13 -11
- package/dist/Disclosure.module.js +13 -11
- package/dist/Disclosure.module.js.map +1 -1
- package/dist/DragAndDrop.main.js +31 -3
- package/dist/DragAndDrop.main.js.map +1 -1
- package/dist/DragAndDrop.mjs +31 -3
- package/dist/DragAndDrop.module.js +31 -3
- package/dist/DragAndDrop.module.js.map +1 -1
- package/dist/DropZone.main.js +4 -3
- package/dist/DropZone.main.js.map +1 -1
- package/dist/DropZone.mjs +4 -3
- package/dist/DropZone.module.js +4 -3
- package/dist/DropZone.module.js.map +1 -1
- package/dist/FieldError.main.js +3 -1
- package/dist/FieldError.main.js.map +1 -1
- package/dist/FieldError.mjs +3 -1
- package/dist/FieldError.module.js +3 -1
- package/dist/FieldError.module.js.map +1 -1
- package/dist/FileTrigger.main.js +3 -1
- package/dist/FileTrigger.main.js.map +1 -1
- package/dist/FileTrigger.mjs +3 -1
- package/dist/FileTrigger.module.js +3 -1
- package/dist/FileTrigger.module.js.map +1 -1
- package/dist/Form.main.js.map +1 -1
- package/dist/Form.module.js.map +1 -1
- package/dist/GridList.main.js +20 -13
- package/dist/GridList.main.js.map +1 -1
- package/dist/GridList.mjs +21 -14
- package/dist/GridList.module.js +21 -14
- package/dist/GridList.module.js.map +1 -1
- package/dist/HiddenDateInput.main.js +118 -0
- package/dist/HiddenDateInput.main.js.map +1 -0
- package/dist/HiddenDateInput.mjs +109 -0
- package/dist/HiddenDateInput.module.js +109 -0
- package/dist/HiddenDateInput.module.js.map +1 -0
- package/dist/Link.main.js +7 -1
- package/dist/Link.main.js.map +1 -1
- package/dist/Link.mjs +7 -1
- package/dist/Link.module.js +7 -1
- package/dist/Link.module.js.map +1 -1
- package/dist/ListBox.main.js +22 -19
- package/dist/ListBox.main.js.map +1 -1
- package/dist/ListBox.mjs +23 -20
- package/dist/ListBox.module.js +23 -20
- package/dist/ListBox.module.js.map +1 -1
- package/dist/Menu.main.js +15 -8
- package/dist/Menu.main.js.map +1 -1
- package/dist/Menu.mjs +16 -9
- package/dist/Menu.module.js +16 -9
- package/dist/Menu.module.js.map +1 -1
- package/dist/Meter.main.js +6 -2
- package/dist/Meter.main.js.map +1 -1
- package/dist/Meter.mjs +6 -2
- package/dist/Meter.module.js +6 -2
- package/dist/Meter.module.js.map +1 -1
- package/dist/Modal.main.js +31 -6
- package/dist/Modal.main.js.map +1 -1
- package/dist/Modal.mjs +31 -6
- package/dist/Modal.module.js +31 -6
- package/dist/Modal.module.js.map +1 -1
- package/dist/NumberField.main.js +4 -1
- package/dist/NumberField.main.js.map +1 -1
- package/dist/NumberField.mjs +4 -1
- package/dist/NumberField.module.js +4 -1
- package/dist/NumberField.module.js.map +1 -1
- package/dist/Popover.main.js +3 -1
- package/dist/Popover.main.js.map +1 -1
- package/dist/Popover.mjs +3 -1
- package/dist/Popover.module.js +3 -1
- package/dist/Popover.module.js.map +1 -1
- package/dist/ProgressBar.main.js +6 -2
- package/dist/ProgressBar.main.js.map +1 -1
- package/dist/ProgressBar.mjs +6 -2
- package/dist/ProgressBar.module.js +6 -2
- package/dist/ProgressBar.module.js.map +1 -1
- package/dist/RadioGroup.main.js +8 -3
- package/dist/RadioGroup.main.js.map +1 -1
- package/dist/RadioGroup.mjs +9 -4
- package/dist/RadioGroup.module.js +9 -4
- package/dist/RadioGroup.module.js.map +1 -1
- package/dist/SearchField.main.js +3 -1
- package/dist/SearchField.main.js.map +1 -1
- package/dist/SearchField.mjs +3 -1
- package/dist/SearchField.module.js +3 -1
- package/dist/SearchField.module.js.map +1 -1
- package/dist/Select.main.js +12 -14
- package/dist/Select.main.js.map +1 -1
- package/dist/Select.mjs +13 -15
- package/dist/Select.module.js +13 -15
- package/dist/Select.module.js.map +1 -1
- package/dist/Separator.main.js +4 -2
- package/dist/Separator.main.js.map +1 -1
- package/dist/Separator.mjs +5 -3
- package/dist/Separator.module.js +5 -3
- package/dist/Separator.module.js.map +1 -1
- package/dist/Slider.main.js +7 -5
- package/dist/Slider.main.js.map +1 -1
- package/dist/Slider.mjs +8 -6
- package/dist/Slider.module.js +8 -6
- package/dist/Slider.module.js.map +1 -1
- package/dist/Switch.main.js +4 -1
- package/dist/Switch.main.js.map +1 -1
- package/dist/Switch.mjs +4 -1
- package/dist/Switch.module.js +4 -1
- package/dist/Switch.module.js.map +1 -1
- package/dist/Table.main.js +47 -26
- package/dist/Table.main.js.map +1 -1
- package/dist/Table.mjs +48 -27
- package/dist/Table.module.js +48 -27
- package/dist/Table.module.js.map +1 -1
- package/dist/Tabs.main.js +22 -11
- package/dist/Tabs.main.js.map +1 -1
- package/dist/Tabs.mjs +23 -12
- package/dist/Tabs.module.js +23 -12
- package/dist/Tabs.module.js.map +1 -1
- package/dist/TagGroup.main.js +14 -8
- package/dist/TagGroup.main.js.map +1 -1
- package/dist/TagGroup.mjs +14 -8
- package/dist/TagGroup.module.js +14 -8
- package/dist/TagGroup.module.js.map +1 -1
- package/dist/TextField.main.js +13 -1
- package/dist/TextField.main.js.map +1 -1
- package/dist/TextField.mjs +13 -1
- package/dist/TextField.module.js +13 -1
- package/dist/TextField.module.js.map +1 -1
- package/dist/Toast.main.js +9 -5
- package/dist/Toast.main.js.map +1 -1
- package/dist/Toast.mjs +9 -5
- package/dist/Toast.module.js +9 -5
- package/dist/Toast.module.js.map +1 -1
- package/dist/ToggleButton.main.js +8 -2
- package/dist/ToggleButton.main.js.map +1 -1
- package/dist/ToggleButton.mjs +8 -2
- package/dist/ToggleButton.module.js +8 -2
- package/dist/ToggleButton.module.js.map +1 -1
- package/dist/ToggleButtonGroup.main.js +6 -2
- package/dist/ToggleButtonGroup.main.js.map +1 -1
- package/dist/ToggleButtonGroup.mjs +6 -2
- package/dist/ToggleButtonGroup.module.js +6 -2
- package/dist/ToggleButtonGroup.module.js.map +1 -1
- package/dist/Toolbar.main.js +4 -3
- package/dist/Toolbar.main.js.map +1 -1
- package/dist/Toolbar.mjs +4 -3
- package/dist/Toolbar.module.js +4 -3
- package/dist/Toolbar.module.js.map +1 -1
- package/dist/Tooltip.main.js +5 -3
- package/dist/Tooltip.main.js.map +1 -1
- package/dist/Tooltip.mjs +5 -3
- package/dist/Tooltip.module.js +5 -3
- package/dist/Tooltip.module.js.map +1 -1
- package/dist/Tree.main.js +73 -26
- package/dist/Tree.main.js.map +1 -1
- package/dist/Tree.mjs +74 -27
- package/dist/Tree.module.js +74 -27
- package/dist/Tree.module.js.map +1 -1
- package/dist/TreeDropTargetDelegate.main.js +8 -5
- package/dist/TreeDropTargetDelegate.main.js.map +1 -1
- package/dist/TreeDropTargetDelegate.mjs +8 -5
- package/dist/TreeDropTargetDelegate.module.js +8 -5
- package/dist/TreeDropTargetDelegate.module.js.map +1 -1
- package/dist/import.mjs +5 -5
- package/dist/main.js +4 -4
- package/dist/main.js.map +1 -1
- package/dist/module.js +5 -5
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +212 -203
- package/dist/types.d.ts.map +1 -1
- package/dist/useDragAndDrop.main.js.map +1 -1
- package/dist/useDragAndDrop.module.js.map +1 -1
- package/dist/utils.main.js.map +1 -1
- package/dist/utils.module.js.map +1 -1
- package/i18n/de-DE.js +1 -1
- package/i18n/de-DE.mjs +1 -1
- package/package.json +25 -25
- package/src/Breadcrumbs.tsx +10 -6
- package/src/Button.tsx +8 -30
- package/src/Calendar.tsx +41 -24
- package/src/Checkbox.tsx +8 -6
- package/src/Collection.tsx +2 -2
- package/src/ColorArea.tsx +5 -6
- package/src/ColorField.tsx +6 -4
- package/src/ColorSlider.tsx +3 -2
- package/src/ColorSwatch.tsx +6 -3
- package/src/ColorSwatchPicker.tsx +3 -3
- package/src/ColorThumb.tsx +3 -3
- package/src/ColorWheel.tsx +6 -5
- package/src/ComboBox.tsx +4 -4
- package/src/DateField.tsx +15 -10
- package/src/DatePicker.tsx +14 -12
- package/src/Dialog.tsx +6 -6
- package/src/Disclosure.tsx +10 -14
- package/src/DragAndDrop.tsx +31 -1
- package/src/DropZone.tsx +4 -5
- package/src/FieldError.tsx +3 -3
- package/src/FileTrigger.tsx +4 -3
- package/src/Form.tsx +2 -1
- package/src/GridList.tsx +25 -18
- package/src/HiddenDateInput.tsx +142 -0
- package/src/Link.tsx +7 -3
- package/src/ListBox.tsx +30 -26
- package/src/Menu.tsx +15 -12
- package/src/Meter.tsx +6 -3
- package/src/Modal.tsx +16 -5
- package/src/NumberField.tsx +4 -4
- package/src/Popover.tsx +3 -3
- package/src/ProgressBar.tsx +6 -2
- package/src/RadioGroup.tsx +8 -6
- package/src/SearchField.tsx +3 -2
- package/src/Select.tsx +13 -16
- package/src/Separator.tsx +6 -4
- package/src/Slider.tsx +9 -11
- package/src/Switch.tsx +4 -3
- package/src/Table.tsx +58 -56
- package/src/Tabs.tsx +20 -16
- package/src/TagGroup.tsx +13 -12
- package/src/TextField.tsx +5 -2
- package/src/Toast.tsx +10 -8
- package/src/ToggleButton.tsx +8 -4
- package/src/ToggleButtonGroup.tsx +6 -4
- package/src/Toolbar.tsx +4 -5
- package/src/Tooltip.tsx +6 -5
- package/src/Tree.tsx +90 -42
- package/src/TreeDropTargetDelegate.ts +5 -1
- package/src/index.ts +8 -8
- package/src/useDragAndDrop.tsx +2 -2
- package/src/utils.tsx +9 -9
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, HoverEvents, Key, LinkDOMProps, RefObject} from '@react-types/shared';\nimport {BaseCollection, Collection, CollectionBuilder, CollectionNode, createBranchComponent, createLeafComponent, 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, ScrollableProps, SlotProps, StyleProps, StyleRenderProps, useContextProps, useRenderProps} from './utils';\nimport {DisabledBehavior, DraggableCollectionState, DroppableCollectionState, MultipleSelectionState, Node, SelectionBehavior, SelectionMode, SortDirection, TableState, 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, UNSTABLE_useLoadMoreSentinel, useLayoutEffect, 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: CollectionNode<T> = new CollectionNode('tableheader', -1);\n body: CollectionNode<T> = new CollectionNode('tablebody', -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\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 get size() {\n return this.rows.length;\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, ScrollableProps<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 as any)}\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>>(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, ScrollableProps<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>) {\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} 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 tableContainerContext = useContext(ResizableTableContainerContext);\n ref = useObjectRef(useMemo(() => mergeRefs(ref, tableContainerContext?.tableRef), [ref, tableContainerContext?.tableRef]));\n let state = useTableState({\n ...props,\n collection,\n children: undefined,\n UNSAFE_selectionState: selectionState\n });\n\n let {isVirtualized, layoutDelegate, dropTargetDelegate: ctxDropTargetDelegate, CollectionRoot} = useContext(CollectionRendererContext);\n let {dragAndDropHooks} = props;\n let {gridProps} = useTable({\n ...props,\n layoutDelegate,\n isVirtualized\n }, state, ref);\n let selectionManager = state.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,\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,\n selectionManager\n });\n\n let keyboardDelegate = new ListKeyboardDelegate({\n 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\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 }, state);\n if (!isVirtualized) {\n style = {\n ...style,\n tableLayout: 'fixed',\n width: 'fit-content'\n };\n }\n }\n\n let ElementType = useElementType('table');\n\n return (\n <Provider\n values={[\n [TableStateContext, state],\n [TableColumnResizeStateContext, layoutState],\n [DragAndDropContext, {dragAndDropHooks, dragState, dropState}],\n [DropIndicatorContext, {render: TableDropIndicatorWrapper}]\n ]}>\n <FocusScope>\n <ElementType\n {...filterDOMProps(props)}\n {...renderProps}\n {...mergeProps(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={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 {\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\n/**\n * A header within a `<Table>`, containing the table columns.\n */\nexport const TableHeader = /*#__PURE__*/ createBranchComponent(\n 'tableheader',\n <T extends object>(props: TableHeaderProps<T>, ref: ForwardedRef<HTMLTableSectionElement>) => {\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 as any), rowGroupProps, hoverProps)}\n {...renderProps}\n ref={ref}\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> {\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\n/**\n * A column within a `<Table>`.\n */\nexport const Column = /*#__PURE__*/ createLeafComponent('column', (props: ColumnProps, forwardedRef: ForwardedRef<HTMLTableCellElement>, column: GridNode<unknown>) => {\n let ref = useObjectRef<HTMLTableHeaderCellElement>(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\n return (\n <TH\n {...mergeProps(filterDOMProps(props as any), columnHeaderProps, focusProps, hoverProps)}\n {...renderProps}\n style={style}\n ref={ref}\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> {\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 return (\n <div\n ref={objectRef}\n role=\"presentation\"\n {...filterDOMProps(props as any)}\n {...renderProps}\n {...mergeProps(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> {\n /** Provides content to display when there are no rows in the table. */\n renderEmptyState?: (props: TableBodyRenderProps) => ReactNode\n}\n/**\n * The body of a `<Table>`, containing the table rows.\n */\nexport const TableBody = /*#__PURE__*/ createBranchComponent('tablebody', <T extends object>(props: TableBodyProps<T>, ref: ForwardedRef<HTMLTableSectionElement>) => {\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 || (collection.rows.length === 1 && collection.rows[0].type === 'loader');\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 rowProps['aria-rowindex'] = collection.headerRows.length + 1;\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 // 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(filterDOMProps(props as any), rowGroupProps)}\n {...renderProps}\n ref={ref}\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 {\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\n/**\n * A row within a `<Table>`.\n */\nexport const Row = /*#__PURE__*/ createBranchComponent(\n 'item',\n <T extends object>(props: RowProps<T>, forwardedRef: ForwardedRef<HTMLTableRowElement>, item: GridNode<T>) => {\n let ref = useObjectRef<HTMLTableRowElement>(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\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(filterDOMProps(props as any), rowProps, focusProps, hoverProps, draggableItem?.dragProps, focusWithinProps)}\n {...renderProps}\n ref={ref}\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> {\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\n/**\n * A cell within a table row.\n */\nexport const Cell = /*#__PURE__*/ createLeafComponent('cell', (props: CellProps, forwardedRef: ForwardedRef<HTMLTableCellElement>, cell: GridNode<unknown>) => {\n let ref = useObjectRef<HTMLTableCellElement>(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\n return (\n <TD\n {...mergeProps(filterDOMProps(props as any), gridCellProps, focusProps, hoverProps)}\n {...renderProps}\n ref={ref}\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 {\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)}\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 TableLoadingSentinelProps extends Omit<LoadMoreSentinelProps, 'collection'>, StyleProps {\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 UNSTABLE_TableLoadingSentinel = createLeafComponent('loader', function TableLoadingIndicator<T extends object>(props: TableLoadingSentinelProps, ref: ForwardedRef<HTMLTableRowElement>, item: Node<T>) {\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 UNSTABLE_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 rowProps['aria-rowindex'] = item.index + 1 + state.collection.headerRows.length;\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 as any), rowProps)}\n {...renderProps}\n role=\"row\"\n ref={ref}>\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":"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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, 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, 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';\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: CollectionNode<T> = new CollectionNode('tableheader', -1);\n body: CollectionNode<T> = new CollectionNode('tablebody', -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\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 tableContainerContext = useContext(ResizableTableContainerContext);\n ref = useObjectRef(useMemo(() => mergeRefs(ref, tableContainerContext?.tableRef), [ref, tableContainerContext?.tableRef]));\n let state = useTableState({\n ...props,\n collection,\n children: undefined,\n UNSAFE_selectionState: selectionState\n });\n\n let {isVirtualized, layoutDelegate, dropTargetDelegate: ctxDropTargetDelegate, CollectionRoot} = useContext(CollectionRendererContext);\n let {dragAndDropHooks} = props;\n let {gridProps} = useTable({\n ...props,\n layoutDelegate,\n isVirtualized\n }, state, ref);\n let selectionManager = state.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,\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,\n selectionManager\n });\n\n let keyboardDelegate = new ListKeyboardDelegate({\n 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\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 }, state);\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, state],\n [TableColumnResizeStateContext, layoutState],\n [DragAndDropContext, {dragAndDropHooks, dragState, dropState}],\n [DropIndicatorContext, {render: TableDropIndicatorWrapper}]\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={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\n/**\n * A header within a `<Table>`, containing the table columns.\n */\nexport const TableHeader = /*#__PURE__*/ createBranchComponent(\n 'tableheader',\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\n/**\n * A column within a `<Table>`.\n */\nexport const Column = /*#__PURE__*/ createLeafComponent('column', (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/**\n * The body of a `<Table>`, containing the table rows.\n */\nexport const TableBody = /*#__PURE__*/ createBranchComponent('tablebody', <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\n/**\n * A row within a `<Table>`.\n */\nexport const Row = /*#__PURE__*/ createBranchComponent(\n 'item',\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\n/**\n * A cell within a table row.\n */\nexport const Cell = /*#__PURE__*/ createLeafComponent('cell', (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('loader', 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
|
@@ -8,7 +8,7 @@ import {CollectionNode as $dbSRa$CollectionNode, BaseCollection as $dbSRa$BaseCo
|
|
|
8
8
|
import {buildHeaderRows as $dbSRa$buildHeaderRows} from "@react-stately/table";
|
|
9
9
|
import {useTableColumnResizeState as $dbSRa$useTableColumnResizeState, useMultipleSelectionState as $dbSRa$useMultipleSelectionState, useTableState as $dbSRa$useTableState} from "react-stately";
|
|
10
10
|
import {useTable as $dbSRa$useTable, ListKeyboardDelegate as $dbSRa$ListKeyboardDelegate, useFocusRing as $dbSRa$useFocusRing, FocusScope as $dbSRa$FocusScope, mergeProps as $dbSRa$mergeProps, useTableRowGroup as $dbSRa$useTableRowGroup, useHover as $dbSRa$useHover, useTableHeaderRow as $dbSRa$useTableHeaderRow, useTableSelectAllCheckbox as $dbSRa$useTableSelectAllCheckbox, useTableColumnHeader as $dbSRa$useTableColumnHeader, useLocalizedStringFormatter as $dbSRa$useLocalizedStringFormatter, useTableColumnResize as $dbSRa$useTableColumnResize, useLocale as $dbSRa$useLocale, useTableRow as $dbSRa$useTableRow, useTableSelectionCheckbox as $dbSRa$useTableSelectionCheckbox, useVisuallyHidden as $dbSRa$useVisuallyHidden, useTableCell as $dbSRa$useTableCell} from "react-aria";
|
|
11
|
-
import {useObjectRef as $dbSRa$useObjectRef, useLayoutEffect as $dbSRa$useLayoutEffect, isScrollable as $dbSRa$isScrollable, useResizeObserver as $dbSRa$useResizeObserver, filterDOMProps as $dbSRa$filterDOMProps, mergeRefs as $dbSRa$mergeRefs,
|
|
11
|
+
import {useObjectRef as $dbSRa$useObjectRef, useLayoutEffect as $dbSRa$useLayoutEffect, isScrollable as $dbSRa$isScrollable, useResizeObserver as $dbSRa$useResizeObserver, filterDOMProps as $dbSRa$filterDOMProps, mergeRefs as $dbSRa$mergeRefs, useLoadMoreSentinel as $dbSRa$useLoadMoreSentinel, inertValue as $dbSRa$inertValue} from "@react-aria/utils";
|
|
12
12
|
import $dbSRa$react, {createContext as $dbSRa$createContext, forwardRef as $dbSRa$forwardRef, useRef as $dbSRa$useRef, useState as $dbSRa$useState, useMemo as $dbSRa$useMemo, useContext as $dbSRa$useContext, useEffect as $dbSRa$useEffect, useCallback as $dbSRa$useCallback} from "react";
|
|
13
13
|
import $dbSRa$reactdom from "react-dom";
|
|
14
14
|
|
|
@@ -83,9 +83,6 @@ class $1910c06f0ca9905e$var$TableCollection extends (0, $dbSRa$BaseCollection) {
|
|
|
83
83
|
yield this.head;
|
|
84
84
|
yield this.body;
|
|
85
85
|
}
|
|
86
|
-
get size() {
|
|
87
|
-
return this.rows.length;
|
|
88
|
-
}
|
|
89
86
|
getFirstKey() {
|
|
90
87
|
return this.body.firstChildKey;
|
|
91
88
|
}
|
|
@@ -189,7 +186,9 @@ const $1910c06f0ca9905e$export$7063e69b8a954175 = /*#__PURE__*/ (0, $dbSRa$forwa
|
|
|
189
186
|
props.onResizeEnd
|
|
190
187
|
]);
|
|
191
188
|
return /*#__PURE__*/ (0, $dbSRa$react).createElement("div", {
|
|
192
|
-
...(0, $dbSRa$filterDOMProps)(props
|
|
189
|
+
...(0, $dbSRa$filterDOMProps)(props, {
|
|
190
|
+
global: true
|
|
191
|
+
}),
|
|
193
192
|
ref: containerRef,
|
|
194
193
|
className: props.className || 'react-aria-ResizableTableContainer',
|
|
195
194
|
style: props.style,
|
|
@@ -329,6 +328,9 @@ function $1910c06f0ca9905e$var$TableInner({ props: props, forwardedRef: ref, sel
|
|
|
329
328
|
};
|
|
330
329
|
}
|
|
331
330
|
let ElementType = $1910c06f0ca9905e$var$useElementType('table');
|
|
331
|
+
let DOMProps = (0, $dbSRa$filterDOMProps)(props, {
|
|
332
|
+
global: true
|
|
333
|
+
});
|
|
332
334
|
var _tableContainerContext_scrollRef;
|
|
333
335
|
return /*#__PURE__*/ (0, $dbSRa$react).createElement((0, $64fa3d84918910a7$export$2881499e37b75b9a), {
|
|
334
336
|
values: [
|
|
@@ -356,9 +358,7 @@ function $1910c06f0ca9905e$var$TableInner({ props: props, forwardedRef: ref, sel
|
|
|
356
358
|
]
|
|
357
359
|
]
|
|
358
360
|
}, /*#__PURE__*/ (0, $dbSRa$react).createElement((0, $dbSRa$FocusScope), null, /*#__PURE__*/ (0, $dbSRa$react).createElement(ElementType, {
|
|
359
|
-
...(0, $dbSRa$
|
|
360
|
-
...renderProps,
|
|
361
|
-
...(0, $dbSRa$mergeProps)(gridProps, focusProps, droppableCollection === null || droppableCollection === void 0 ? void 0 : droppableCollection.collectionProps),
|
|
361
|
+
...(0, $dbSRa$mergeProps)(DOMProps, renderProps, gridProps, focusProps, droppableCollection === null || droppableCollection === void 0 ? void 0 : droppableCollection.collectionProps),
|
|
362
362
|
style: style,
|
|
363
363
|
ref: ref,
|
|
364
364
|
slot: props.slot || undefined,
|
|
@@ -412,7 +412,9 @@ const $1910c06f0ca9905e$export$f850895b287ef28e = /*#__PURE__*/ (0, $dbSRa$creat
|
|
|
412
412
|
}
|
|
413
413
|
});
|
|
414
414
|
return /*#__PURE__*/ (0, $dbSRa$react).createElement(THead, {
|
|
415
|
-
...(0, $dbSRa$mergeProps)((0, $dbSRa$filterDOMProps)(props
|
|
415
|
+
...(0, $dbSRa$mergeProps)((0, $dbSRa$filterDOMProps)(props, {
|
|
416
|
+
global: true
|
|
417
|
+
}), rowGroupProps, hoverProps),
|
|
416
418
|
...renderProps,
|
|
417
419
|
ref: ref,
|
|
418
420
|
"data-hovered": isHovered || undefined
|
|
@@ -503,8 +505,12 @@ const $1910c06f0ca9905e$export$816b5d811295e6bc = /*#__PURE__*/ (0, $dbSRa$creat
|
|
|
503
505
|
width: layoutState.getColumnWidth(column.key)
|
|
504
506
|
};
|
|
505
507
|
let TH = $1910c06f0ca9905e$var$useElementType('th');
|
|
508
|
+
let DOMProps = (0, $dbSRa$filterDOMProps)(props, {
|
|
509
|
+
global: true
|
|
510
|
+
});
|
|
511
|
+
delete DOMProps.id;
|
|
506
512
|
return /*#__PURE__*/ (0, $dbSRa$react).createElement(TH, {
|
|
507
|
-
...(0, $dbSRa$mergeProps)(
|
|
513
|
+
...(0, $dbSRa$mergeProps)(DOMProps, columnHeaderProps, focusProps, hoverProps),
|
|
508
514
|
...renderProps,
|
|
509
515
|
style: style,
|
|
510
516
|
ref: ref,
|
|
@@ -581,12 +587,13 @@ const $1910c06f0ca9905e$export$ee689e97a7664bfd = /*#__PURE__*/ (0, $dbSRa$forwa
|
|
|
581
587
|
if (e.pointerType === 'mouse') setMouseDown(true);
|
|
582
588
|
};
|
|
583
589
|
if (!isResizing && isMouseDown) setMouseDown(false);
|
|
590
|
+
let DOMProps = (0, $dbSRa$filterDOMProps)(props, {
|
|
591
|
+
global: true
|
|
592
|
+
});
|
|
584
593
|
return /*#__PURE__*/ (0, $dbSRa$react).createElement("div", {
|
|
585
594
|
ref: objectRef,
|
|
586
595
|
role: "presentation",
|
|
587
|
-
...(0, $dbSRa$
|
|
588
|
-
...renderProps,
|
|
589
|
-
...(0, $dbSRa$mergeProps)(resizerProps, {
|
|
596
|
+
...(0, $dbSRa$mergeProps)(DOMProps, renderProps, resizerProps, {
|
|
590
597
|
onPointerDown: onPointerDown
|
|
591
598
|
}, hoverProps),
|
|
592
599
|
"data-hovered": isHovered || undefined,
|
|
@@ -619,7 +626,7 @@ const $1910c06f0ca9905e$export$76ccd210b9029917 = /*#__PURE__*/ (0, $dbSRa$creat
|
|
|
619
626
|
let isRootDropTarget = isDroppable && !!dropState && ((_dropState_isDropTarget = dropState.isDropTarget({
|
|
620
627
|
type: 'root'
|
|
621
628
|
})) !== null && _dropState_isDropTarget !== void 0 ? _dropState_isDropTarget : false);
|
|
622
|
-
let isEmpty = collection.size === 0
|
|
629
|
+
let isEmpty = collection.size === 0;
|
|
623
630
|
let renderValues = {
|
|
624
631
|
isDropTarget: isRootDropTarget,
|
|
625
632
|
isEmpty: isEmpty
|
|
@@ -640,7 +647,6 @@ const $1910c06f0ca9905e$export$76ccd210b9029917 = /*#__PURE__*/ (0, $dbSRa$creat
|
|
|
640
647
|
let rowHeaderProps = {};
|
|
641
648
|
let style = {};
|
|
642
649
|
if (isVirtualized) {
|
|
643
|
-
rowProps['aria-rowindex'] = collection.headerRows.length + 1;
|
|
644
650
|
rowHeaderProps['aria-colspan'] = numColumns;
|
|
645
651
|
style = {
|
|
646
652
|
display: 'contents'
|
|
@@ -658,11 +664,13 @@ const $1910c06f0ca9905e$export$76ccd210b9029917 = /*#__PURE__*/ (0, $dbSRa$creat
|
|
|
658
664
|
}
|
|
659
665
|
let { rowGroupProps: rowGroupProps } = (0, $dbSRa$useTableRowGroup)();
|
|
660
666
|
let TBody = $1910c06f0ca9905e$var$useElementType('tbody');
|
|
667
|
+
let DOMProps = (0, $dbSRa$filterDOMProps)(props, {
|
|
668
|
+
global: true
|
|
669
|
+
});
|
|
661
670
|
// TODO: TableBody doesn't support being the scrollable body of the table yet, to revisit if needed. Would need to
|
|
662
671
|
// call useLoadMore here and walk up the DOM to the nearest scrollable element to set scrollRef
|
|
663
672
|
return /*#__PURE__*/ (0, $dbSRa$react).createElement(TBody, {
|
|
664
|
-
...(0, $dbSRa$mergeProps)(
|
|
665
|
-
...renderProps,
|
|
673
|
+
...(0, $dbSRa$mergeProps)(DOMProps, renderProps, rowGroupProps),
|
|
666
674
|
ref: ref,
|
|
667
675
|
"data-empty": isEmpty || undefined
|
|
668
676
|
}, isDroppable && /*#__PURE__*/ (0, $dbSRa$react).createElement($1910c06f0ca9905e$var$RootDropIndicator, null), /*#__PURE__*/ (0, $dbSRa$react).createElement(CollectionBranch, {
|
|
@@ -736,6 +744,11 @@ const $1910c06f0ca9905e$export$b59bdbef9ce70de2 = /*#__PURE__*/ (0, $dbSRa$creat
|
|
|
736
744
|
});
|
|
737
745
|
let TR = $1910c06f0ca9905e$var$useElementType('tr');
|
|
738
746
|
let TD = $1910c06f0ca9905e$var$useElementType('td');
|
|
747
|
+
let DOMProps = (0, $dbSRa$filterDOMProps)(props, {
|
|
748
|
+
global: true
|
|
749
|
+
});
|
|
750
|
+
delete DOMProps.id;
|
|
751
|
+
delete DOMProps.onClick;
|
|
739
752
|
return /*#__PURE__*/ (0, $dbSRa$react).createElement((0, $dbSRa$react).Fragment, null, dropIndicator && !dropIndicator.isHidden && /*#__PURE__*/ (0, $dbSRa$react).createElement(TR, {
|
|
740
753
|
role: "row",
|
|
741
754
|
style: {
|
|
@@ -753,8 +766,7 @@ const $1910c06f0ca9905e$export$b59bdbef9ce70de2 = /*#__PURE__*/ (0, $dbSRa$creat
|
|
|
753
766
|
...dropIndicator.dropIndicatorProps,
|
|
754
767
|
ref: dropIndicatorRef
|
|
755
768
|
}))), /*#__PURE__*/ (0, $dbSRa$react).createElement(TR, {
|
|
756
|
-
...(0, $dbSRa$mergeProps)(
|
|
757
|
-
...renderProps,
|
|
769
|
+
...(0, $dbSRa$mergeProps)(DOMProps, renderProps, rowProps, focusProps, hoverProps, draggableItem === null || draggableItem === void 0 ? void 0 : draggableItem.dragProps, focusWithinProps),
|
|
758
770
|
ref: ref,
|
|
759
771
|
"data-disabled": states.isDisabled || undefined,
|
|
760
772
|
"data-selected": states.isSelected || undefined,
|
|
@@ -834,9 +846,12 @@ const $1910c06f0ca9905e$export$f6f0c3fe4ec306ea = /*#__PURE__*/ (0, $dbSRa$creat
|
|
|
834
846
|
}
|
|
835
847
|
});
|
|
836
848
|
let TD = $1910c06f0ca9905e$var$useElementType('td');
|
|
849
|
+
let DOMProps = (0, $dbSRa$filterDOMProps)(props, {
|
|
850
|
+
global: true
|
|
851
|
+
});
|
|
852
|
+
delete DOMProps.id;
|
|
837
853
|
return /*#__PURE__*/ (0, $dbSRa$react).createElement(TD, {
|
|
838
|
-
...(0, $dbSRa$mergeProps)(
|
|
839
|
-
...renderProps,
|
|
854
|
+
...(0, $dbSRa$mergeProps)(DOMProps, renderProps, gridCellProps, focusProps, hoverProps),
|
|
840
855
|
ref: ref,
|
|
841
856
|
"data-focused": isFocused || undefined,
|
|
842
857
|
"data-focus-visible": isFocusVisible || undefined,
|
|
@@ -873,7 +888,9 @@ function $1910c06f0ca9905e$var$TableDropIndicator(props, ref) {
|
|
|
873
888
|
let TR = $1910c06f0ca9905e$var$useElementType('tr');
|
|
874
889
|
let TD = $1910c06f0ca9905e$var$useElementType('td');
|
|
875
890
|
return /*#__PURE__*/ (0, $dbSRa$react).createElement(TR, {
|
|
876
|
-
...(0, $dbSRa$filterDOMProps)(props
|
|
891
|
+
...(0, $dbSRa$filterDOMProps)(props, {
|
|
892
|
+
global: true
|
|
893
|
+
}),
|
|
877
894
|
...renderProps,
|
|
878
895
|
role: "row",
|
|
879
896
|
ref: ref,
|
|
@@ -927,7 +944,7 @@ function $1910c06f0ca9905e$var$RootDropIndicator() {
|
|
|
927
944
|
ref: ref
|
|
928
945
|
})));
|
|
929
946
|
}
|
|
930
|
-
const $1910c06f0ca9905e$export$
|
|
947
|
+
const $1910c06f0ca9905e$export$8f5bea0338ed243c = (0, $dbSRa$createLeafComponent)('loader', function TableLoadingIndicator(props, ref, item) {
|
|
931
948
|
let state = (0, $dbSRa$useContext)($1910c06f0ca9905e$export$38de1cb0526c21fb);
|
|
932
949
|
let { isVirtualized: isVirtualized } = (0, $dbSRa$useContext)((0, $7135fc7d473fd974$export$4feb769f8ddf26c5));
|
|
933
950
|
let { isLoading: isLoading, onLoadMore: onLoadMore, scrollOffset: scrollOffset, ...otherProps } = props;
|
|
@@ -943,7 +960,7 @@ const $1910c06f0ca9905e$export$92aad1076056e17a = (0, $dbSRa$createLeafComponent
|
|
|
943
960
|
scrollOffset,
|
|
944
961
|
state === null || state === void 0 ? void 0 : state.collection
|
|
945
962
|
]);
|
|
946
|
-
(0, $dbSRa$
|
|
963
|
+
(0, $dbSRa$useLoadMoreSentinel)(memoedLoadMoreProps, sentinelRef);
|
|
947
964
|
let renderProps = (0, $64fa3d84918910a7$export$4d86445c2cf5e3)({
|
|
948
965
|
...otherProps,
|
|
949
966
|
id: undefined,
|
|
@@ -957,7 +974,9 @@ const $1910c06f0ca9905e$export$92aad1076056e17a = (0, $dbSRa$createLeafComponent
|
|
|
957
974
|
let rowHeaderProps = {};
|
|
958
975
|
let style = {};
|
|
959
976
|
if (isVirtualized) {
|
|
960
|
-
|
|
977
|
+
// For now don't include aria-rowindex on loader since they aren't keyboard focusable
|
|
978
|
+
// Arguably shouldn't include them ever since it might be confusing to the user to include the loaders as part of the
|
|
979
|
+
// row count
|
|
961
980
|
rowHeaderProps['aria-colspan'] = numColumns;
|
|
962
981
|
style = {
|
|
963
982
|
display: 'contents'
|
|
@@ -982,7 +1001,9 @@ const $1910c06f0ca9905e$export$92aad1076056e17a = (0, $dbSRa$createLeafComponent
|
|
|
982
1001
|
width: 1
|
|
983
1002
|
}
|
|
984
1003
|
}))), isLoading && renderProps.children && /*#__PURE__*/ (0, $dbSRa$react).createElement(TR, {
|
|
985
|
-
...(0, $dbSRa$mergeProps)((0, $dbSRa$filterDOMProps)(props
|
|
1004
|
+
...(0, $dbSRa$mergeProps)((0, $dbSRa$filterDOMProps)(props, {
|
|
1005
|
+
global: true
|
|
1006
|
+
}), rowProps),
|
|
986
1007
|
...renderProps,
|
|
987
1008
|
role: "row",
|
|
988
1009
|
ref: ref
|
|
@@ -994,5 +1015,5 @@ const $1910c06f0ca9905e$export$92aad1076056e17a = (0, $dbSRa$createLeafComponent
|
|
|
994
1015
|
});
|
|
995
1016
|
|
|
996
1017
|
|
|
997
|
-
export {$1910c06f0ca9905e$export$7063e69b8a954175 as ResizableTableContainer, $1910c06f0ca9905e$export$93e4b0b2cc49b648 as TableContext, $1910c06f0ca9905e$export$38de1cb0526c21fb as TableStateContext, $1910c06f0ca9905e$export$a2680a798823803c as TableColumnResizeStateContext, $1910c06f0ca9905e$export$54ec01a60f47d33d as Table, $1910c06f0ca9905e$export$fddc468cd8cb4db9 as useTableOptions, $1910c06f0ca9905e$export$f850895b287ef28e as TableHeader, $1910c06f0ca9905e$export$816b5d811295e6bc as Column, $1910c06f0ca9905e$export$ee689e97a7664bfd as ColumnResizer, $1910c06f0ca9905e$export$76ccd210b9029917 as TableBody, $1910c06f0ca9905e$export$b59bdbef9ce70de2 as Row, $1910c06f0ca9905e$export$f6f0c3fe4ec306ea as Cell, $1910c06f0ca9905e$export$
|
|
1018
|
+
export {$1910c06f0ca9905e$export$7063e69b8a954175 as ResizableTableContainer, $1910c06f0ca9905e$export$93e4b0b2cc49b648 as TableContext, $1910c06f0ca9905e$export$38de1cb0526c21fb as TableStateContext, $1910c06f0ca9905e$export$a2680a798823803c as TableColumnResizeStateContext, $1910c06f0ca9905e$export$54ec01a60f47d33d as Table, $1910c06f0ca9905e$export$fddc468cd8cb4db9 as useTableOptions, $1910c06f0ca9905e$export$f850895b287ef28e as TableHeader, $1910c06f0ca9905e$export$816b5d811295e6bc as Column, $1910c06f0ca9905e$export$ee689e97a7664bfd as ColumnResizer, $1910c06f0ca9905e$export$76ccd210b9029917 as TableBody, $1910c06f0ca9905e$export$b59bdbef9ce70de2 as Row, $1910c06f0ca9905e$export$f6f0c3fe4ec306ea as Cell, $1910c06f0ca9905e$export$8f5bea0338ed243c as TableLoadMoreItem};
|
|
998
1019
|
//# sourceMappingURL=Table.module.js.map
|