@react-spectrum/table 3.12.11-nightly.4685 → 3.12.11-nightly.4691

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.
@@ -8,6 +8,7 @@ require("./vars.42570ef3.css");
8
8
  var $982885d0a34882ea$exports = require("./table_vars_css.main.js");
9
9
  require("./table.b13eee90.css");
10
10
  var $4afcd54cfd94dbb9$exports = require("./table_css.main.js");
11
+ var $2b402d473779c595$exports = require("./TableViewLayout.main.js");
11
12
  var $idLTj$spectrumiconsuiArrowDownSmall = require("@spectrum-icons/ui/ArrowDownSmall");
12
13
  var $idLTj$reactspectrumcheckbox = require("@react-spectrum/checkbox");
13
14
  var $idLTj$spectrumiconsuiChevronDownMedium = require("@spectrum-icons/ui/ChevronDownMedium");
@@ -24,7 +25,6 @@ var $idLTj$spectrumiconsuiListGripper = require("@spectrum-icons/ui/ListGripper"
24
25
  var $idLTj$reactariaselection = require("@react-aria/selection");
25
26
  var $idLTj$reactspectrumprogress = require("@react-spectrum/progress");
26
27
  var $idLTj$react = require("react");
27
- var $idLTj$reactstatelylayout = require("@react-stately/layout");
28
28
  var $idLTj$reactstatelytable = require("@react-stately/table");
29
29
  var $idLTj$reactspectrumtooltip = require("@react-spectrum/tooltip");
30
30
  var $idLTj$reactariabutton = require("@react-aria/button");
@@ -159,14 +159,12 @@ function $e39c6de4eb69450d$var$TableViewBase(props, ref) {
159
159
  let headerRef = (0, $idLTj$react.useRef)(undefined);
160
160
  let bodyRef = (0, $idLTj$react.useRef)(undefined);
161
161
  let density = props.density || 'regular';
162
- let layout = (0, $idLTj$react.useMemo)(()=>new (0, $idLTj$reactstatelylayout.TableLayout)({
162
+ let layout = (0, $idLTj$react.useMemo)(()=>new (0, $2b402d473779c595$exports.TableViewLayout)({
163
163
  // If props.rowHeight is auto, then use estimated heights based on scale, otherwise use fixed heights.
164
164
  rowHeight: props.overflowMode === 'wrap' ? null : $e39c6de4eb69450d$var$ROW_HEIGHTS[density][scale],
165
165
  estimatedRowHeight: props.overflowMode === 'wrap' ? $e39c6de4eb69450d$var$ROW_HEIGHTS[density][scale] : null,
166
166
  headingHeight: props.overflowMode === 'wrap' ? null : $e39c6de4eb69450d$var$DEFAULT_HEADER_HEIGHT[scale],
167
- estimatedHeadingHeight: props.overflowMode === 'wrap' ? $e39c6de4eb69450d$var$DEFAULT_HEADER_HEIGHT[scale] : null,
168
- scrollContainer: 'body',
169
- enableEmptyState: true
167
+ estimatedHeadingHeight: props.overflowMode === 'wrap' ? $e39c6de4eb69450d$var$DEFAULT_HEADER_HEIGHT[scale] : null
170
168
  }), // don't recompute when state.collection changes, only used for initial value
171
169
  // eslint-disable-next-line react-hooks/exhaustive-deps
172
170
  [
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/table/src/TableViewBase.tsx"],"sourcesContent":["/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport ArrowDownSmall from '@spectrum-icons/ui/ArrowDownSmall';\nimport {Checkbox} from '@react-spectrum/checkbox';\nimport ChevronDownMedium from '@spectrum-icons/ui/ChevronDownMedium';\nimport ChevronLeftMedium from '@spectrum-icons/ui/ChevronLeftMedium';\nimport ChevronRightMedium from '@spectrum-icons/ui/ChevronRightMedium';\nimport {\n classNames,\n useDOMRef,\n useFocusableRef,\n useStyleProps,\n useUnwrapDOMRef\n} from '@react-spectrum/utils';\nimport {ColumnSize, SpectrumColumnProps, TableCollection} from '@react-types/table';\nimport {DOMRef, DropTarget, FocusableElement, FocusableRef, Key} from '@react-types/shared';\nimport type {DragAndDropHooks} from '@react-spectrum/dnd';\nimport type {DraggableCollectionState, DroppableCollectionState} from '@react-stately/dnd';\nimport type {DraggableItemResult, DropIndicatorAria, DroppableCollectionResult, DroppableItemResult} from '@react-aria/dnd';\nimport {FocusRing, FocusScope, useFocusRing} from '@react-aria/focus';\nimport {getInteractionModality, isFocusVisible, useHover, usePress} from '@react-aria/interactions';\nimport {GridNode} from '@react-types/grid';\nimport {InsertionIndicator} from './InsertionIndicator';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {isAndroid, mergeProps, scrollIntoView, scrollIntoViewport} from '@react-aria/utils';\nimport {Item, Menu, MenuTrigger} from '@react-spectrum/menu';\nimport {LayoutInfo, Rect, ReusableView, useVirtualizerState} from '@react-stately/virtualizer';\nimport {layoutInfoToStyle, ScrollView, setScrollLeft, useVirtualizer, VirtualizerItem} from '@react-aria/virtualizer';\nimport ListGripper from '@spectrum-icons/ui/ListGripper';\nimport {ListKeyboardDelegate} from '@react-aria/selection';\nimport {Nubbin} from './Nubbin';\nimport {ProgressCircle} from '@react-spectrum/progress';\nimport React, {DOMAttributes, HTMLAttributes, ReactElement, ReactNode, RefObject, useCallback, useContext, useEffect, useMemo, useRef, useState} from 'react';\nimport {Resizer, ResizeStateContext} from './Resizer';\nimport {RootDropIndicator} from './RootDropIndicator';\nimport {DragPreview as SpectrumDragPreview} from './DragPreview';\nimport {SpectrumTableProps} from './TableViewWrapper';\nimport styles from '@adobe/spectrum-css-temp/components/table/vars.css';\nimport stylesOverrides from './table.css';\nimport {TableLayout} from '@react-stately/layout';\nimport {TableState, TreeGridState, useTableColumnResizeState} from '@react-stately/table';\nimport {Tooltip, TooltipTrigger} from '@react-spectrum/tooltip';\nimport {useButton} from '@react-aria/button';\nimport {useLocale, useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useProvider, useProviderProps} from '@react-spectrum/provider';\nimport {\n useTable,\n useTableCell,\n useTableColumnHeader,\n useTableHeaderRow,\n useTableRow,\n useTableRowGroup,\n useTableSelectAllCheckbox,\n useTableSelectionCheckbox\n} from '@react-aria/table';\nimport {useVisuallyHidden, VisuallyHidden} from '@react-aria/visually-hidden';\n\nconst DEFAULT_HEADER_HEIGHT = {\n medium: 34,\n large: 40\n};\n\nconst DEFAULT_HIDE_HEADER_CELL_WIDTH = {\n medium: 38,\n large: 46\n};\n\nconst ROW_HEIGHTS = {\n compact: {\n medium: 32,\n large: 40\n },\n regular: {\n medium: 40,\n large: 50\n },\n spacious: {\n medium: 48,\n large: 60\n }\n};\n\nconst SELECTION_CELL_DEFAULT_WIDTH = {\n medium: 38,\n large: 48\n};\n\nconst DRAG_BUTTON_CELL_DEFAULT_WIDTH = {\n medium: 16,\n large: 20\n};\n\nconst LEVEL_OFFSET_WIDTH = {\n medium: 16,\n large: 20\n};\n\nexport interface TableContextValue<T> {\n state: TableState<T> | TreeGridState<T>,\n dragState: DraggableCollectionState,\n dropState: DroppableCollectionState,\n dragAndDropHooks: DragAndDropHooks['dragAndDropHooks'],\n isTableDraggable: boolean,\n isTableDroppable: boolean,\n layout: TableLayout<T>,\n headerRowHovered: boolean,\n isInResizeMode: boolean,\n setIsInResizeMode: (val: boolean) => void,\n isEmpty: boolean,\n onFocusedResizer: () => void,\n onResizeStart: (widths: Map<Key, ColumnSize>) => void,\n onResize: (widths: Map<Key, ColumnSize>) => void,\n onResizeEnd: (widths: Map<Key, ColumnSize>) => void,\n headerMenuOpen: boolean,\n setHeaderMenuOpen: (val: boolean) => void,\n renderEmptyState?: () => ReactElement\n}\n\nexport const TableContext = React.createContext<TableContextValue<unknown>>(null);\nexport function useTableContext() {\n return useContext(TableContext);\n}\n\nexport const VirtualizerContext = React.createContext(null);\nexport function useVirtualizerContext() {\n return useContext(VirtualizerContext);\n}\n\ninterface TableBaseProps<T> extends SpectrumTableProps<T> {\n state: TableState<T> | TreeGridState<T>\n}\n\ntype View = ReusableView<GridNode<unknown>, ReactNode>;\n\nfunction TableViewBase<T extends object>(props: TableBaseProps<T>, ref: DOMRef<HTMLDivElement>) {\n props = useProviderProps(props);\n let {\n isQuiet,\n onAction,\n onResizeStart: propsOnResizeStart,\n onResizeEnd: propsOnResizeEnd,\n dragAndDropHooks,\n state\n } = props;\n let isTableDraggable = !!dragAndDropHooks?.useDraggableCollectionState;\n let isTableDroppable = !!dragAndDropHooks?.useDroppableCollectionState;\n let dragHooksProvided = useRef(isTableDraggable);\n let dropHooksProvided = useRef(isTableDroppable);\n useEffect(() => {\n if (dragHooksProvided.current !== isTableDraggable) {\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 !== isTableDroppable) {\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 if ('expandedKeys' in state && (isTableDraggable || isTableDroppable)) {\n console.warn('Drag and drop is not yet fully supported with expandable rows and may produce unexpected results.');\n }\n }, [isTableDraggable, isTableDroppable, state]);\n\n let {styleProps} = useStyleProps(props);\n let {scale} = useProvider();\n\n // Starts when the user selects resize from the menu, ends when resizing ends\n // used to control the visibility of the resizer Nubbin\n let [isInResizeMode, setIsInResizeMode] = useState(false);\n // Starts when the resizer is actually moved\n // entering resizing/exiting resizing doesn't trigger a render\n // with table layout, so we need to track it here\n let [, setIsResizing] = useState(false);\n\n let domRef = useDOMRef(ref);\n let headerRef = useRef<HTMLDivElement>(undefined);\n let bodyRef = useRef<HTMLDivElement>(undefined);\n\n let density = props.density || 'regular';\n let layout = useMemo(() => new TableLayout({\n // If props.rowHeight is auto, then use estimated heights based on scale, otherwise use fixed heights.\n rowHeight: props.overflowMode === 'wrap'\n ? null\n : ROW_HEIGHTS[density][scale],\n estimatedRowHeight: props.overflowMode === 'wrap'\n ? ROW_HEIGHTS[density][scale]\n : null,\n headingHeight: props.overflowMode === 'wrap'\n ? null\n : DEFAULT_HEADER_HEIGHT[scale],\n estimatedHeadingHeight: props.overflowMode === 'wrap'\n ? DEFAULT_HEADER_HEIGHT[scale]\n : null,\n scrollContainer: 'body',\n enableEmptyState: true\n }),\n // don't recompute when state.collection changes, only used for initial value\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [props.overflowMode, scale, density]\n );\n\n let dragState: DraggableCollectionState;\n let preview = useRef(null);\n if (isTableDraggable) {\n dragState = dragAndDropHooks.useDraggableCollectionState({\n collection: state.collection,\n selectionManager: state.selectionManager,\n preview\n });\n dragAndDropHooks.useDraggableCollection({}, dragState, domRef);\n }\n\n let DragPreview = dragAndDropHooks?.DragPreview;\n let dropState: DroppableCollectionState;\n let droppableCollection: DroppableCollectionResult;\n let isRootDropTarget: boolean;\n if (isTableDroppable) {\n dropState = dragAndDropHooks.useDroppableCollectionState({\n collection: state.collection,\n selectionManager: state.selectionManager\n });\n droppableCollection = dragAndDropHooks.useDroppableCollection({\n keyboardDelegate: new ListKeyboardDelegate({\n collection: state.collection,\n disabledKeys: state.selectionManager.disabledKeys,\n ref: domRef,\n layoutDelegate: layout\n }),\n dropTargetDelegate: layout\n }, dropState, domRef);\n\n isRootDropTarget = dropState.isDropTarget({type: 'root'});\n }\n\n let {gridProps} = useTable({\n ...props,\n isVirtualized: true,\n layoutDelegate: layout,\n onRowAction: onAction,\n scrollRef: bodyRef\n }, state, domRef);\n let [headerMenuOpen, setHeaderMenuOpen] = useState(false);\n let [headerRowHovered, setHeaderRowHovered] = useState(false);\n\n // This overrides collection view's renderWrapper to support DOM hierarchy.\n let renderWrapper = useCallback((parent: View, reusableView: View, children: View[], renderChildren: (views: View[]) => ReactElement[]) => {\n if (reusableView.viewType === 'rowgroup') {\n return (\n <TableRowGroup\n key={reusableView.key}\n layoutInfo={reusableView.layoutInfo}\n parent={parent?.layoutInfo}\n // Override the default role=\"rowgroup\" with role=\"presentation\",\n // in favor or adding role=\"rowgroup\" to the ScrollView with\n // ref={bodyRef} in the TableVirtualizer below.\n role=\"presentation\">\n {renderChildren(children)}\n </TableRowGroup>\n );\n }\n\n if (reusableView.viewType === 'header') {\n return (\n <TableHeader\n key={reusableView.key}\n layoutInfo={reusableView.layoutInfo}\n parent={parent?.layoutInfo}>\n {renderChildren(children)}\n </TableHeader>\n );\n }\n\n if (reusableView.viewType === 'row') {\n return (\n <TableRow\n key={reusableView.key}\n item={reusableView.content}\n layoutInfo={reusableView.layoutInfo}\n parent={parent?.layoutInfo}>\n {renderChildren(children)}\n </TableRow>\n );\n }\n\n if (reusableView.viewType === 'headerrow') {\n return (\n <TableHeaderRow\n onHoverChange={setHeaderRowHovered}\n key={reusableView.key}\n layoutInfo={reusableView.layoutInfo}\n parent={parent?.layoutInfo}\n item={reusableView.content}>\n {renderChildren(children)}\n </TableHeaderRow>\n );\n }\n\n return (\n <TableCellWrapper\n key={reusableView.key}\n layoutInfo={reusableView.layoutInfo}\n virtualizer={reusableView.virtualizer}\n parent={parent}>\n {reusableView.rendered}\n </TableCellWrapper>\n );\n }, []);\n\n let renderView = useCallback((type: string, item: GridNode<T>) => {\n switch (type) {\n case 'header':\n case 'rowgroup':\n case 'section':\n case 'row':\n case 'headerrow':\n return null;\n case 'cell': {\n if (item.props.isSelectionCell) {\n return <TableCheckboxCell cell={item} />;\n }\n\n if (item.props.isDragButtonCell) {\n return <TableDragCell cell={item} />;\n }\n\n return <TableCell cell={item} />;\n }\n case 'placeholder':\n // TODO: move to react-aria?\n return (\n <div\n role=\"gridcell\"\n aria-colindex={item.index + 1}\n aria-colspan={item.colspan > 1 ? item.colspan : null} />\n );\n case 'column':\n if (item.props.isSelectionCell) {\n return <TableSelectAllCell column={item} />;\n }\n\n if (item.props.isDragButtonCell) {\n return <TableDragHeaderCell column={item} />;\n }\n\n // TODO: consider this case, what if we have hidden headers and a empty table\n if (item.props.hideHeader) {\n return (\n <TooltipTrigger placement=\"top\" trigger=\"focus\">\n <TableColumnHeader column={item} />\n <Tooltip placement=\"top\">{item.rendered}</Tooltip>\n </TooltipTrigger>\n );\n }\n\n if (item.props.allowsResizing && !item.hasChildNodes) {\n return <ResizableTableColumnHeader column={item} />;\n }\n\n return (\n <TableColumnHeader column={item} />\n );\n case 'loader':\n return <LoadingState />;\n case 'empty': {\n return <EmptyState />;\n }\n }\n }, []);\n\n let [isVerticalScrollbarVisible, setVerticalScollbarVisible] = useState(false);\n let [isHorizontalScrollbarVisible, setHorizontalScollbarVisible] = useState(false);\n let viewport = useRef({x: 0, y: 0, width: 0, height: 0});\n let onVisibleRectChange = useCallback((e) => {\n if (viewport.current.width === e.width && viewport.current.height === e.height) {\n return;\n }\n viewport.current = e;\n if (bodyRef.current) {\n setVerticalScollbarVisible(bodyRef.current.clientWidth + 2 < bodyRef.current.offsetWidth);\n setHorizontalScollbarVisible(bodyRef.current.clientHeight + 2 < bodyRef.current.offsetHeight);\n }\n }, []);\n let {isFocusVisible, focusProps} = useFocusRing();\n let isEmpty = state.collection.size === 0;\n\n let onFocusedResizer = () => {\n bodyRef.current.scrollLeft = headerRef.current.scrollLeft;\n };\n\n let onResizeStart = useCallback((widths) => {\n setIsResizing(true);\n propsOnResizeStart?.(widths);\n }, [setIsResizing, propsOnResizeStart]);\n let onResizeEnd = useCallback((widths) => {\n setIsInResizeMode(false);\n setIsResizing(false);\n propsOnResizeEnd?.(widths);\n }, [propsOnResizeEnd, setIsInResizeMode, setIsResizing]);\n\n let focusedKey = state.selectionManager.focusedKey;\n if (dropState?.target?.type === 'item') {\n focusedKey = dropState.target.key;\n }\n\n let mergedProps = mergeProps(\n isTableDroppable && droppableCollection?.collectionProps,\n gridProps,\n focusProps,\n dragAndDropHooks?.isVirtualDragging() && {tabIndex: null}\n );\n\n return (\n <TableContext.Provider\n value={{\n state,\n dragState,\n dropState,\n dragAndDropHooks,\n isTableDraggable,\n isTableDroppable,\n layout,\n onResizeStart,\n onResize: props.onResize,\n onResizeEnd,\n headerRowHovered,\n isInResizeMode,\n setIsInResizeMode,\n isEmpty,\n onFocusedResizer,\n headerMenuOpen,\n setHeaderMenuOpen,\n renderEmptyState: props.renderEmptyState\n }}>\n <TableVirtualizer\n {...mergedProps}\n {...styleProps}\n className={\n classNames(\n styles,\n 'spectrum-Table',\n `spectrum-Table--${density}`,\n {\n 'spectrum-Table--quiet': isQuiet,\n 'spectrum-Table--wrap': props.overflowMode === 'wrap',\n 'spectrum-Table--loadingMore': state.collection.body.props.loadingState === 'loadingMore',\n 'spectrum-Table--isVerticalScrollbarVisible': isVerticalScrollbarVisible,\n 'spectrum-Table--isHorizontalScrollbarVisible': isHorizontalScrollbarVisible\n },\n classNames(\n stylesOverrides,\n 'react-spectrum-Table'\n ),\n styleProps.className\n )\n }\n tableState={state}\n layout={layout}\n collection={state.collection}\n focusedKey={focusedKey}\n renderView={renderView}\n renderWrapper={renderWrapper}\n onVisibleRectChange={onVisibleRectChange}\n domRef={domRef}\n headerRef={headerRef}\n bodyRef={bodyRef}\n isFocusVisible={isFocusVisible}\n isVirtualDragging={dragAndDropHooks?.isVirtualDragging()}\n isRootDropTarget={isRootDropTarget} />\n {DragPreview && isTableDraggable &&\n <DragPreview ref={preview}>\n {() => {\n if (dragAndDropHooks.renderPreview) {\n return dragAndDropHooks.renderPreview(dragState.draggingKeys, dragState.draggedKey);\n }\n let itemCount = dragState.draggingKeys.size;\n let maxWidth = bodyRef.current.getBoundingClientRect().width;\n let height = ROW_HEIGHTS[density][scale];\n let itemText = state.collection.getTextValue(dragState.draggedKey);\n return <SpectrumDragPreview itemText={itemText} itemCount={itemCount} height={height} maxWidth={maxWidth} />;\n }}\n </DragPreview>\n }\n </TableContext.Provider>\n );\n}\n\ninterface TableVirtualizerProps<T> extends HTMLAttributes<HTMLElement> {\n tableState: TableState<T>,\n layout: TableLayout<T>,\n collection: TableCollection<T>,\n focusedKey: Key | null,\n renderView: (type: string, content: GridNode<T>) => ReactElement,\n renderWrapper?: (\n parent: View | null,\n reusableView: View,\n children: View[],\n renderChildren: (views: View[]) => ReactElement[]\n ) => ReactElement,\n domRef: RefObject<HTMLDivElement>,\n bodyRef: RefObject<HTMLDivElement>,\n headerRef: RefObject<HTMLDivElement>,\n onVisibleRectChange: (rect: Rect) => void,\n isFocusVisible: boolean,\n isVirtualDragging: boolean,\n isRootDropTarget: boolean\n}\n\n// This is a custom Virtualizer that also has a header that syncs its scroll position with the body.\nfunction TableVirtualizer<T>(props: TableVirtualizerProps<T>) {\n let {tableState, layout, collection, focusedKey, renderView, renderWrapper, domRef, bodyRef, headerRef, onVisibleRectChange: onVisibleRectChangeProp, isFocusVisible, isVirtualDragging, isRootDropTarget, ...otherProps} = props;\n let {direction} = useLocale();\n let loadingState = collection.body.props.loadingState;\n let isLoading = loadingState === 'loading' || loadingState === 'loadingMore';\n let onLoadMore = collection.body.props.onLoadMore;\n let [tableWidth, setTableWidth] = useState(0);\n let {scale} = useProvider();\n\n const getDefaultWidth = useCallback(({props: {hideHeader, isSelectionCell, showDivider, isDragButtonCell}}: GridNode<T>): ColumnSize | null | undefined => {\n if (hideHeader) {\n let width = DEFAULT_HIDE_HEADER_CELL_WIDTH[scale];\n return showDivider ? width + 1 : width;\n } else if (isSelectionCell) {\n return SELECTION_CELL_DEFAULT_WIDTH[scale];\n } else if (isDragButtonCell) {\n return DRAG_BUTTON_CELL_DEFAULT_WIDTH[scale];\n }\n }, [scale]);\n\n const getDefaultMinWidth = useCallback(({props: {hideHeader, isSelectionCell, showDivider, isDragButtonCell}}: GridNode<T>): ColumnSize | null | undefined => {\n if (hideHeader) {\n let width = DEFAULT_HIDE_HEADER_CELL_WIDTH[scale];\n return showDivider ? width + 1 : width;\n } else if (isSelectionCell) {\n return SELECTION_CELL_DEFAULT_WIDTH[scale];\n } else if (isDragButtonCell) {\n return DRAG_BUTTON_CELL_DEFAULT_WIDTH[scale];\n }\n return 75;\n }, [scale]);\n\n let columnResizeState = useTableColumnResizeState({\n tableWidth,\n getDefaultWidth,\n getDefaultMinWidth\n }, tableState);\n\n let state = useVirtualizerState<object, ReactNode, ReactNode>({\n layout,\n collection,\n renderView,\n renderWrapper,\n onVisibleRectChange(rect) {\n bodyRef.current.scrollTop = rect.y;\n setScrollLeft(bodyRef.current, direction, rect.x);\n },\n persistedKeys: useMemo(() => focusedKey ? new Set([focusedKey]) : new Set(), [focusedKey]),\n layoutOptions: useMemo(() => ({\n columnWidths: columnResizeState.columnWidths\n }), [columnResizeState.columnWidths])\n });\n\n let memoedVirtualizerProps = useMemo(() => ({\n tabIndex: otherProps.tabIndex,\n focusedKey,\n isLoading,\n onLoadMore\n }), [otherProps.tabIndex, focusedKey, isLoading, onLoadMore]);\n\n let {virtualizerProps, scrollViewProps: {onVisibleRectChange}} = useVirtualizer(memoedVirtualizerProps, state, domRef);\n let onVisibleRectChangeMemo = useCallback(rect => {\n setTableWidth(rect.width);\n onVisibleRectChange(rect);\n onVisibleRectChangeProp(rect);\n }, [onVisibleRectChange, onVisibleRectChangeProp]);\n\n // this effect runs whenever the contentSize changes, it doesn't matter what the content size is\n // only that it changes in a resize, and when that happens, we want to sync the body to the\n // header scroll position\n useEffect(() => {\n if (getInteractionModality() === 'keyboard' && headerRef.current.contains(document.activeElement)) {\n scrollIntoView(headerRef.current, document.activeElement as HTMLElement);\n scrollIntoViewport(document.activeElement, {containingElement: domRef.current});\n bodyRef.current.scrollLeft = headerRef.current.scrollLeft;\n }\n }, [state.contentSize, headerRef, bodyRef, domRef]);\n\n let headerHeight = layout.getLayoutInfo('header')?.rect.height || 0;\n\n // Sync the scroll position from the table body to the header container.\n let onScroll = useCallback(() => {\n headerRef.current.scrollLeft = bodyRef.current.scrollLeft;\n }, [bodyRef, headerRef]);\n\n let resizerPosition = columnResizeState.resizingColumn != null ? layout.getLayoutInfo(columnResizeState.resizingColumn).rect.maxX - 2 : 0;\n\n let resizerAtEdge = resizerPosition > Math.max(state.virtualizer.contentSize.width, state.virtualizer.visibleRect.width) - 3;\n // this should be fine, every movement of the resizer causes a rerender\n // scrolling can cause it to lag for a moment, but it's always updated\n let resizerInVisibleRegion = resizerPosition < state.virtualizer.visibleRect.maxX;\n let shouldHardCornerResizeCorner = resizerAtEdge && resizerInVisibleRegion;\n\n // minimize re-render caused on Resizers by memoing this\n let resizingColumnWidth = columnResizeState.resizingColumn != null ? columnResizeState.getColumnWidth(columnResizeState.resizingColumn) : 0;\n let resizingColumn = useMemo(() => ({\n width: resizingColumnWidth,\n key: columnResizeState.resizingColumn\n }), [resizingColumnWidth, columnResizeState.resizingColumn]);\n let mergedProps = mergeProps(\n otherProps,\n virtualizerProps,\n isVirtualDragging && {tabIndex: null}\n );\n\n let firstColumn = collection.columns[0];\n let scrollPadding = 0;\n if (firstColumn.props.isSelectionCell || firstColumn.props.isDragButtonCell) {\n scrollPadding = columnResizeState.getColumnWidth(firstColumn.key);\n }\n\n return (\n <VirtualizerContext.Provider value={resizingColumn}>\n <FocusScope>\n <div\n {...mergedProps}\n ref={domRef}>\n <div\n role=\"presentation\"\n className={classNames(styles, 'spectrum-Table-headWrapper')}\n style={{\n height: headerHeight,\n overflow: 'hidden',\n position: 'relative',\n willChange: state.isScrolling ? 'scroll-position' : undefined,\n scrollPaddingInlineStart: scrollPadding\n }}\n ref={headerRef}>\n <ResizeStateContext.Provider value={columnResizeState}>\n {state.visibleViews[0]}\n </ResizeStateContext.Provider>\n </div>\n <ScrollView\n className={\n classNames(\n styles,\n 'spectrum-Table-body',\n {\n 'focus-ring': isFocusVisible,\n 'spectrum-Table-body--resizerAtTableEdge': shouldHardCornerResizeCorner\n },\n classNames(\n stylesOverrides,\n 'react-spectrum-Table-body',\n {\n 'react-spectrum-Table-body--dropTarget': !!isRootDropTarget\n }\n )\n )\n }\n // Firefox and Chrome make generic elements using CSS overflow 'scroll' or 'auto' tabbable,\n // including them within the accessibility tree, which breaks the table structure in Firefox.\n // Using tabIndex={-1} prevents the ScrollView from being tabbable, and using role=\"rowgroup\"\n // here and role=\"presentation\" on the table body content fixes the table structure.\n role=\"rowgroup\"\n tabIndex={isVirtualDragging ? null : -1}\n style={{\n flex: 1,\n scrollPaddingInlineStart: scrollPadding\n }}\n innerStyle={{overflow: 'visible'}}\n ref={bodyRef}\n contentSize={state.contentSize}\n onVisibleRectChange={onVisibleRectChangeMemo}\n onScrollStart={state.startScrolling}\n onScrollEnd={state.endScrolling}\n onScroll={onScroll}>\n {state.visibleViews[1]}\n <div\n className={classNames(styles, 'spectrum-Table-bodyResizeIndicator')}\n style={{[direction === 'ltr' ? 'left' : 'right']: `${resizerPosition}px`, height: `${Math.max(state.virtualizer.contentSize.height, state.virtualizer.visibleRect.height)}px`, display: columnResizeState.resizingColumn ? 'block' : 'none'}} />\n </ScrollView>\n </div>\n </FocusScope>\n </VirtualizerContext.Provider>\n );\n}\n\nfunction useStyle(layoutInfo: LayoutInfo, parent: LayoutInfo | null) {\n let {direction} = useLocale();\n let style = layoutInfoToStyle(layoutInfo, direction, parent);\n if (style.overflow === 'hidden') {\n style.overflow = 'visible'; // needed to support position: sticky\n }\n return style;\n}\n\nfunction TableHeader({children, layoutInfo, parent, ...otherProps}) {\n let {rowGroupProps} = useTableRowGroup();\n let style = useStyle(layoutInfo, parent);\n\n return (\n <div {...rowGroupProps} {...otherProps} className={classNames(styles, 'spectrum-Table-head')} style={style}>\n {children}\n </div>\n );\n}\n\nfunction TableColumnHeader(props) {\n let {column} = props;\n let ref = useRef<HTMLDivElement>(null);\n let {state, isEmpty} = useTableContext();\n let {pressProps, isPressed} = usePress({isDisabled: isEmpty});\n let columnProps = column.props as SpectrumColumnProps<unknown>;\n useEffect(() => {\n if (column.hasChildNodes && columnProps.allowsResizing) {\n console.warn(`Column key: ${column.key}. Columns with child columns don't allow resizing.`);\n }\n }, [column.hasChildNodes, column.key, columnProps.allowsResizing]);\n\n let {columnHeaderProps} = useTableColumnHeader({\n node: column,\n isVirtualized: true\n }, state, ref);\n\n let {hoverProps, isHovered} = useHover({...props, isDisabled: isEmpty});\n\n const allProps = [columnHeaderProps, hoverProps, pressProps];\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...mergeProps(...allProps)}\n ref={ref}\n className={\n classNames(\n styles,\n 'spectrum-Table-headCell',\n {\n 'is-active': isPressed,\n 'is-sortable': columnProps.allowsSorting,\n 'is-sorted-desc': state.sortDescriptor?.column === column.key && state.sortDescriptor?.direction === 'descending',\n 'is-sorted-asc': state.sortDescriptor?.column === column.key && state.sortDescriptor?.direction === 'ascending',\n 'is-hovered': isHovered,\n 'spectrum-Table-cell--hideHeader': columnProps.hideHeader\n },\n classNames(\n stylesOverrides,\n 'react-spectrum-Table-cell',\n {\n 'react-spectrum-Table-cell--alignCenter': columnProps.align === 'center' || column.colspan > 1,\n 'react-spectrum-Table-cell--alignEnd': columnProps.align === 'end'\n }\n )\n )\n }>\n {columnProps.allowsSorting &&\n <ArrowDownSmall UNSAFE_className={classNames(styles, 'spectrum-Table-sortedIcon')} />\n }\n {columnProps.hideHeader ?\n <VisuallyHidden>{column.rendered}</VisuallyHidden> :\n <div className={classNames(styles, 'spectrum-Table-headCellContents')}>{column.rendered}</div>\n }\n </div>\n </FocusRing>\n );\n}\n\nlet _TableColumnHeaderButton = (props, ref: FocusableRef<HTMLDivElement>) => {\n let {focusProps, alignment, ...otherProps} = props;\n let {isEmpty} = useTableContext();\n let domRef = useFocusableRef(ref);\n let {buttonProps} = useButton({...otherProps, elementType: 'div', isDisabled: isEmpty}, domRef);\n let {hoverProps, isHovered} = useHover({...otherProps, isDisabled: isEmpty});\n\n return (\n <div\n className={\n classNames(\n styles,\n 'spectrum-Table-headCellContents',\n {\n 'is-hovered': isHovered\n }\n )\n }\n {...hoverProps}>\n <div\n className={\n classNames(\n styles,\n 'spectrum-Table-headCellButton',\n {\n 'spectrum-Table-headCellButton--alignStart': alignment === 'start',\n 'spectrum-Table-headCellButton--alignCenter': alignment === 'center',\n 'spectrum-Table-headCellButton--alignEnd': alignment === 'end'\n }\n )\n }\n {...mergeProps(buttonProps, focusProps)}\n ref={domRef}>\n {props.children}\n </div>\n </div>\n );\n};\nlet TableColumnHeaderButton = React.forwardRef(_TableColumnHeaderButton);\n\nfunction ResizableTableColumnHeader(props) {\n let {column} = props;\n let ref = useRef(null);\n let triggerRef = useRef(null);\n let resizingRef = useRef(null);\n let {\n state,\n onResizeStart,\n onResize,\n onResizeEnd,\n headerRowHovered,\n setIsInResizeMode,\n isEmpty,\n isInResizeMode,\n headerMenuOpen,\n setHeaderMenuOpen\n } = useTableContext();\n let columnResizeState = useContext(ResizeStateContext);\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/table');\n let {pressProps, isPressed} = usePress({isDisabled: isEmpty});\n let {columnHeaderProps} = useTableColumnHeader({\n node: column,\n isVirtualized: true\n }, state, ref);\n\n let {hoverProps, isHovered} = useHover({...props, isDisabled: isEmpty || headerMenuOpen});\n\n const allProps = [columnHeaderProps, pressProps, hoverProps];\n\n let columnProps = column.props as SpectrumColumnProps<unknown>;\n\n let {isFocusVisible, focusProps} = useFocusRing();\n\n const onMenuSelect = (key) => {\n switch (key) {\n case 'sort-asc':\n state.sort(column.key, 'ascending');\n break;\n case 'sort-desc':\n state.sort(column.key, 'descending');\n break;\n case 'resize':\n columnResizeState.startResize(column.key);\n setIsInResizeMode(true);\n state.setKeyboardNavigationDisabled(true);\n break;\n }\n };\n let allowsSorting = column.props?.allowsSorting;\n let items = useMemo(() => {\n let options = [\n allowsSorting ? {\n label: stringFormatter.format('sortAscending'),\n id: 'sort-asc'\n } : undefined,\n allowsSorting ? {\n label: stringFormatter.format('sortDescending'),\n id: 'sort-desc'\n } : undefined,\n {\n label: stringFormatter.format('resizeColumn'),\n id: 'resize'\n }\n ];\n return options;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [allowsSorting]);\n\n let resizingColumn = columnResizeState.resizingColumn;\n let showResizer = !isEmpty && ((headerRowHovered && getInteractionModality() !== 'keyboard') || resizingColumn != null);\n let alignment = 'start';\n let menuAlign = 'start' as 'start' | 'end';\n if (columnProps.align === 'center' || column.colspan > 1) {\n alignment = 'center';\n } else if (columnProps.align === 'end') {\n alignment = 'end';\n menuAlign = 'end';\n }\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...mergeProps(...allProps)}\n ref={ref}\n className={\n classNames(\n styles,\n 'spectrum-Table-headCell',\n {\n 'is-active': isPressed,\n 'is-resizable': columnProps.allowsResizing,\n 'is-sortable': columnProps.allowsSorting,\n 'is-sorted-desc': state.sortDescriptor?.column === column.key && state.sortDescriptor?.direction === 'descending',\n 'is-sorted-asc': state.sortDescriptor?.column === column.key && state.sortDescriptor?.direction === 'ascending',\n 'is-hovered': isHovered,\n 'focus-ring': isFocusVisible,\n 'spectrum-Table-cell--hideHeader': columnProps.hideHeader\n },\n classNames(\n stylesOverrides,\n 'react-spectrum-Table-cell',\n {\n 'react-spectrum-Table-cell--alignCenter': alignment === 'center',\n 'react-spectrum-Table-cell--alignEnd': alignment === 'end'\n }\n )\n )\n }>\n <MenuTrigger onOpenChange={setHeaderMenuOpen} align={menuAlign}>\n <TableColumnHeaderButton alignment={alignment} ref={triggerRef} focusProps={focusProps}>\n {columnProps.allowsSorting &&\n <ArrowDownSmall UNSAFE_className={classNames(styles, 'spectrum-Table-sortedIcon')} />\n }\n {columnProps.hideHeader ?\n <VisuallyHidden>{column.rendered}</VisuallyHidden> :\n <div className={classNames(styles, 'spectrum-Table-headerCellText')}>{column.rendered}</div>\n }\n {\n columnProps.allowsResizing && <ChevronDownMedium UNSAFE_className={classNames(styles, 'spectrum-Table-menuChevron')} />\n }\n </TableColumnHeaderButton>\n <Menu onAction={onMenuSelect} minWidth=\"size-2000\" items={items}>\n {(item) => (\n <Item>\n {item.label}\n </Item>\n )}\n </Menu>\n </MenuTrigger>\n <Resizer\n ref={resizingRef}\n column={column}\n showResizer={showResizer}\n onResizeStart={onResizeStart}\n onResize={onResize}\n onResizeEnd={onResizeEnd}\n triggerRef={useUnwrapDOMRef(triggerRef)} />\n <div\n aria-hidden\n className={classNames(\n styles,\n 'spectrum-Table-colResizeIndicator',\n {\n 'spectrum-Table-colResizeIndicator--visible': resizingColumn != null,\n 'spectrum-Table-colResizeIndicator--resizing': resizingColumn === column.key\n }\n )}>\n <div\n className={classNames(\n styles,\n 'spectrum-Table-colResizeNubbin',\n {\n 'spectrum-Table-colResizeNubbin--visible': isInResizeMode && resizingColumn === column.key\n }\n )}>\n <Nubbin />\n </div>\n </div>\n </div>\n </FocusRing>\n );\n}\n\nfunction TableSelectAllCell({column}) {\n let ref = useRef(undefined);\n let {state} = useTableContext();\n let isSingleSelectionMode = state.selectionManager.selectionMode === 'single';\n let {columnHeaderProps} = useTableColumnHeader({\n node: column,\n isVirtualized: true\n }, state, ref);\n\n let {checkboxProps} = useTableSelectAllCheckbox(state);\n let {hoverProps, isHovered} = useHover({});\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...mergeProps(columnHeaderProps, hoverProps)}\n ref={ref}\n className={\n classNames(\n styles,\n 'spectrum-Table-headCell',\n 'spectrum-Table-checkboxCell',\n {\n 'is-hovered': isHovered\n }\n )\n }>\n {\n /*\n In single selection mode, the checkbox will be hidden.\n So to avoid leaving a column header with no accessible content,\n we use a VisuallyHidden component to include the aria-label from the checkbox,\n which for single selection will be \"Select.\"\n */\n isSingleSelectionMode &&\n <VisuallyHidden>{checkboxProps['aria-label']}</VisuallyHidden>\n }\n <Checkbox\n {...checkboxProps}\n isEmphasized\n UNSAFE_style={isSingleSelectionMode ? {visibility: 'hidden'} : undefined}\n UNSAFE_className={classNames(styles, 'spectrum-Table-checkbox')} />\n </div>\n </FocusRing>\n );\n}\n\nfunction TableDragHeaderCell({column}) {\n let ref = useRef(undefined);\n let {state} = useTableContext();\n let {columnHeaderProps} = useTableColumnHeader({\n node: column,\n isVirtualized: true\n }, state, ref);\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/table');\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...columnHeaderProps}\n ref={ref}\n className={\n classNames(\n styles,\n 'spectrum-Table-headCell',\n classNames(\n stylesOverrides,\n 'react-spectrum-Table-headCell',\n 'react-spectrum-Table-dragButtonHeadCell'\n )\n )\n }>\n <VisuallyHidden>{stringFormatter.format('drag')}</VisuallyHidden>\n </div>\n </FocusRing>\n );\n}\n\nfunction TableRowGroup({children, layoutInfo, parent, ...otherProps}) {\n let {rowGroupProps} = useTableRowGroup();\n let {isTableDroppable} = useContext(TableContext);\n let style = useStyle(layoutInfo, parent);\n\n return (\n <div {...rowGroupProps} style={style} {...otherProps}>\n {isTableDroppable &&\n <RootDropIndicator key=\"root\" />\n }\n {children}\n </div>\n );\n}\n\nfunction DragButton() {\n let {dragButtonProps, dragButtonRef, isFocusVisibleWithin} = useTableRowContext();\n let {visuallyHiddenProps} = useVisuallyHidden();\n return (\n <FocusRing focusRingClass={classNames(stylesOverrides, 'focus-ring')}>\n <div\n {...dragButtonProps as React.HTMLAttributes<HTMLElement>}\n className={\n classNames(\n stylesOverrides,\n 'react-spectrum-Table-dragButton'\n )\n }\n style={!isFocusVisibleWithin ? {...visuallyHiddenProps.style} : {}}\n ref={dragButtonRef}\n draggable=\"true\">\n <ListGripper UNSAFE_className={classNames(stylesOverrides)} />\n </div>\n </FocusRing>\n );\n}\n\ninterface TableRowContextValue {\n dragButtonProps: React.HTMLAttributes<HTMLDivElement>,\n dragButtonRef: React.MutableRefObject<undefined>,\n isFocusVisibleWithin: boolean\n}\n\n\nconst TableRowContext = React.createContext<TableRowContextValue>(null);\nexport function useTableRowContext() {\n return useContext(TableRowContext);\n}\n\nfunction TableRow({item, children, layoutInfo, parent, ...otherProps}) {\n let ref = useRef(undefined);\n let {state, layout, dragAndDropHooks, isTableDraggable, isTableDroppable, dragState, dropState} = useTableContext();\n let isSelected = state.selectionManager.isSelected(item.key);\n let {rowProps, hasAction, allowsSelection} = useTableRow({\n node: item,\n isVirtualized: true,\n shouldSelectOnPressUp: isTableDraggable\n }, state, ref);\n\n let isDisabled = !allowsSelection && !hasAction;\n let isDroppable = isTableDroppable && !isDisabled;\n let {pressProps, isPressed} = usePress({isDisabled});\n\n // The row should show the focus background style when any cell inside it is focused.\n // If the row itself is focused, then it should have a blue focus indicator on the left.\n let {\n isFocusVisible: isFocusVisibleWithin,\n focusProps: focusWithinProps\n } = useFocusRing({within: true});\n let {isFocusVisible, focusProps} = useFocusRing();\n let {hoverProps, isHovered} = useHover({isDisabled});\n let isFirstRow = state.collection.rows.find(row => row.level === 1)?.key === item.key;\n let isLastRow = item.nextKey == null;\n // Figure out if the TableView content is equal or greater in height to the container. If so, we'll need to round the bottom\n // border corners of the last row when selected.\n let isFlushWithContainerBottom = false;\n if (isLastRow) {\n if (layout.getContentSize()?.height >= layout.virtualizer?.visibleRect.height) {\n isFlushWithContainerBottom = true;\n }\n }\n\n let draggableItem: DraggableItemResult;\n if (isTableDraggable) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n draggableItem = dragAndDropHooks.useDraggableItem({key: item.key, hasDragButton: true}, dragState);\n if (isDisabled) {\n draggableItem = null;\n }\n }\n let droppableItem: DroppableItemResult;\n let isDropTarget: boolean;\n let dropIndicator: DropIndicatorAria;\n let dropIndicatorRef = useRef(undefined);\n if (isTableDroppable) {\n let target = {type: 'item', key: item.key, dropPosition: 'on'} as DropTarget;\n isDropTarget = dropState.isDropTarget(target);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n dropIndicator = dragAndDropHooks.useDropIndicator({target}, dropState, dropIndicatorRef);\n }\n\n let dragButtonRef = React.useRef(undefined);\n let {buttonProps: dragButtonProps} = useButton({\n ...draggableItem?.dragButtonProps,\n elementType: 'div'\n }, dragButtonRef);\n\n let style = useStyle(layoutInfo, parent);\n\n let props = mergeProps(\n rowProps,\n otherProps,\n {style},\n focusWithinProps,\n focusProps,\n hoverProps,\n pressProps,\n draggableItem?.dragProps,\n // Remove tab index from list row if performing a screenreader drag. This prevents TalkBack from focusing the row,\n // allowing for single swipe navigation between row drop indicator\n dragAndDropHooks?.isVirtualDragging() && {tabIndex: null}\n ) as HTMLAttributes<HTMLElement> & DOMAttributes<FocusableElement>;\n\n let dropProps = isDroppable ? droppableItem?.dropProps : {'aria-hidden': droppableItem?.dropProps['aria-hidden']};\n let {visuallyHiddenProps} = useVisuallyHidden();\n\n return (\n <TableRowContext.Provider value={{dragButtonProps, dragButtonRef, isFocusVisibleWithin}}>\n {isTableDroppable && isFirstRow &&\n <InsertionIndicator\n rowProps={props}\n key={`${item.key}-before`}\n target={{key: item.key, type: 'item', dropPosition: 'before'}} />\n }\n {isTableDroppable && !dropIndicator?.isHidden &&\n <div role=\"row\" {...visuallyHiddenProps}>\n <div role=\"gridcell\">\n <div role=\"button\" {...dropIndicator?.dropIndicatorProps} ref={dropIndicatorRef} />\n </div>\n </div>\n }\n <div\n {...mergeProps(props, dropProps)}\n ref={ref}\n className={\n classNames(\n styles,\n 'spectrum-Table-row',\n {\n 'is-active': isPressed,\n 'is-selected': isSelected,\n 'spectrum-Table-row--highlightSelection': state.selectionManager.selectionBehavior === 'replace',\n 'is-next-selected': state.selectionManager.isSelected(item.nextKey),\n 'is-focused': isFocusVisibleWithin,\n 'focus-ring': isFocusVisible,\n 'is-hovered': isHovered,\n 'is-disabled': isDisabled,\n 'spectrum-Table-row--firstRow': isFirstRow,\n 'spectrum-Table-row--lastRow': isLastRow,\n 'spectrum-Table-row--isFlushBottom': isFlushWithContainerBottom\n },\n classNames(\n stylesOverrides,\n 'react-spectrum-Table-row',\n {'react-spectrum-Table-row--dropTarget': isDropTarget}\n )\n )\n }>\n {children}\n </div>\n {isTableDroppable &&\n <InsertionIndicator\n rowProps={props}\n key={`${item.key}-after`}\n target={{key: item.key, type: 'item', dropPosition: 'after'}} />\n }\n </TableRowContext.Provider>\n );\n}\n\nfunction TableHeaderRow({item, children, layoutInfo, parent, ...props}) {\n let {state, headerMenuOpen} = useTableContext();\n let ref = useRef(undefined);\n let {rowProps} = useTableHeaderRow({node: item, isVirtualized: true}, state, ref);\n let {hoverProps} = useHover({...props, isDisabled: headerMenuOpen});\n let style = useStyle(layoutInfo, parent);\n\n return (\n <div {...mergeProps(rowProps, hoverProps)} ref={ref} style={style}>\n {children}\n </div>\n );\n}\n\nfunction TableDragCell({cell}) {\n let ref = useRef(undefined);\n let {state, isTableDraggable} = useTableContext();\n let isDisabled = state.disabledKeys.has(cell.parentKey);\n let {gridCellProps} = useTableCell({\n node: cell,\n isVirtualized: true\n }, state, ref);\n\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...gridCellProps}\n ref={ref}\n className={\n classNames(\n styles,\n 'spectrum-Table-cell',\n {\n 'is-disabled': isDisabled\n },\n classNames(\n stylesOverrides,\n 'react-spectrum-Table-cell',\n 'react-spectrum-Table-dragButtonCell'\n )\n )\n }>\n {isTableDraggable && !isDisabled && <DragButton />}\n </div>\n </FocusRing>\n );\n}\n\nfunction TableCheckboxCell({cell}) {\n let ref = useRef(undefined);\n let {state} = useTableContext();\n let isDisabled = state.disabledKeys.has(cell.parentKey);\n let {gridCellProps} = useTableCell({\n node: cell,\n isVirtualized: true\n }, state, ref);\n\n let {checkboxProps} = useTableSelectionCheckbox({key: cell.parentKey}, state);\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...gridCellProps}\n ref={ref}\n className={\n classNames(\n styles,\n 'spectrum-Table-cell',\n 'spectrum-Table-checkboxCell',\n {\n 'is-disabled': isDisabled\n },\n classNames(\n stylesOverrides,\n 'react-spectrum-Table-cell'\n )\n )\n }>\n {state.selectionManager.selectionMode !== 'none' &&\n <Checkbox\n {...checkboxProps}\n isEmphasized\n isDisabled={isDisabled}\n UNSAFE_className={classNames(styles, 'spectrum-Table-checkbox')} />\n }\n </div>\n </FocusRing>\n );\n}\n\nfunction TableCell({cell}) {\n let {scale} = useProvider();\n let {state} = useTableContext();\n let isExpandableTable = 'expandedKeys' in state;\n let ref = useRef(undefined);\n let columnProps = cell.column.props as SpectrumColumnProps<unknown>;\n let isDisabled = state.disabledKeys.has(cell.parentKey);\n let {gridCellProps} = useTableCell({\n node: cell,\n isVirtualized: true\n }, state, ref);\n let {id, ...otherGridCellProps} = gridCellProps;\n let isFirstRowHeaderCell = state.collection.rowHeaderColumnKeys.keys().next().value === cell.column.key;\n let isRowExpandable = false;\n let showExpandCollapseButton = false;\n let levelOffset = 0;\n\n if ('expandedKeys' in state) {\n isRowExpandable = state.keyMap.get(cell.parentKey)?.props.UNSTABLE_childItems?.length > 0 || state.keyMap.get(cell.parentKey)?.props?.children?.length > state.userColumnCount;\n showExpandCollapseButton = isFirstRowHeaderCell && isRowExpandable;\n // Offset based on level, and add additional offset if there is no expand/collapse button on a row\n levelOffset = (cell.level - 2) * LEVEL_OFFSET_WIDTH[scale] + (!showExpandCollapseButton ? LEVEL_OFFSET_WIDTH[scale] * 2 : 0);\n }\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...otherGridCellProps}\n aria-labelledby={id}\n ref={ref}\n style={isExpandableTable && isFirstRowHeaderCell ? {paddingInlineStart: levelOffset} : {}}\n className={\n classNames(\n styles,\n 'spectrum-Table-cell',\n {\n 'spectrum-Table-cell--divider': columnProps.showDivider && cell.column.nextKey !== null,\n 'spectrum-Table-cell--hideHeader': columnProps.hideHeader,\n 'spectrum-Table-cell--hasExpandCollapseButton': showExpandCollapseButton,\n 'is-disabled': isDisabled\n },\n classNames(\n stylesOverrides,\n 'react-spectrum-Table-cell',\n {\n 'react-spectrum-Table-cell--alignStart': columnProps.align === 'start',\n 'react-spectrum-Table-cell--alignCenter': columnProps.align === 'center',\n 'react-spectrum-Table-cell--alignEnd': columnProps.align === 'end'\n }\n )\n )\n }>\n {showExpandCollapseButton && <ExpandableRowChevron cell={cell} />}\n <span\n id={id}\n className={\n classNames(\n styles,\n 'spectrum-Table-cellContents'\n )\n }>\n {cell.rendered}\n </span>\n </div>\n </FocusRing>\n );\n}\n\nfunction TableCellWrapper({layoutInfo, virtualizer, parent, children}) {\n let {isTableDroppable, dropState} = useContext(TableContext);\n let isDropTarget: boolean;\n let isRootDroptarget: boolean;\n if (isTableDroppable) {\n if (parent.content) {\n isDropTarget = dropState.isDropTarget({type: 'item', dropPosition: 'on', key: parent.content.key});\n }\n isRootDroptarget = dropState.isDropTarget({type: 'root'});\n }\n\n return (\n <VirtualizerItem\n layoutInfo={layoutInfo}\n virtualizer={virtualizer}\n parent={parent?.layoutInfo}\n className={\n useMemo(() => classNames(\n styles,\n 'spectrum-Table-cellWrapper',\n classNames(\n stylesOverrides,\n {\n 'react-spectrum-Table-cellWrapper': !layoutInfo.estimatedSize,\n 'react-spectrum-Table-cellWrapper--dropTarget': isDropTarget || isRootDroptarget\n }\n )\n ), [layoutInfo.estimatedSize, isDropTarget, isRootDroptarget])\n }>\n {children}\n </VirtualizerItem>\n );\n}\n\nfunction ExpandableRowChevron({cell}) {\n // TODO: move some/all of the chevron button setup into a separate hook?\n let {direction} = useLocale();\n let {state} = useTableContext();\n let expandButtonRef = useRef(undefined);\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/table');\n let isExpanded;\n\n if ('expandedKeys' in state) {\n isExpanded = state.expandedKeys === 'all' || state.expandedKeys.has(cell.parentKey);\n }\n\n // Will need to keep the chevron as a button for iOS VO at all times since VO doesn't focus the cell. Also keep as button if cellAction is defined by the user in the future\n let {buttonProps} = useButton({\n // Desktop and mobile both toggle expansion of a native expandable row on mouse/touch up\n onPress: () => {\n (state as TreeGridState<unknown>).toggleKey(cell.parentKey);\n if (!isFocusVisible()) {\n state.selectionManager.setFocused(true);\n state.selectionManager.setFocusedKey(cell.parentKey);\n }\n },\n elementType: 'span',\n 'aria-label': isExpanded ? stringFormatter.format('collapse') : stringFormatter.format('expand')\n }, expandButtonRef);\n\n return (\n <span\n {...buttonProps}\n ref={expandButtonRef}\n // Override tabindex so that grid keyboard nav skips over it. Needs -1 so android talkback can actually \"focus\" it\n tabIndex={isAndroid() ? -1 : undefined}\n className={\n classNames(\n styles,\n 'spectrum-Table-expandButton',\n {\n 'is-open': isExpanded\n }\n )\n }>\n {direction === 'ltr' ? <ChevronRightMedium /> : <ChevronLeftMedium />}\n </span>\n );\n}\n\nfunction LoadingState() {\n let {state} = useContext(TableContext);\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/table');\n return (\n <CenteredWrapper>\n <ProgressCircle\n isIndeterminate\n aria-label={state.collection.size > 0 ? stringFormatter.format('loadingMore') : stringFormatter.format('loading')} />\n </CenteredWrapper>\n );\n}\n\nfunction EmptyState() {\n let {renderEmptyState} = useContext(TableContext);\n let emptyState = renderEmptyState ? renderEmptyState() : null;\n if (emptyState == null) {\n return null;\n }\n\n return (\n <CenteredWrapper>\n {emptyState}\n </CenteredWrapper>\n );\n}\n\nfunction CenteredWrapper({children}) {\n let {state} = useTableContext();\n let rowProps;\n\n if ('expandedKeys' in state) {\n let topLevelRowCount = [...state.keyMap.get(state.collection.body.key).childNodes].length;\n rowProps = {\n 'aria-level': 1,\n 'aria-posinset': topLevelRowCount + 1,\n 'aria-setsize': topLevelRowCount + 1\n };\n } else {\n rowProps = {\n 'aria-rowindex': state.collection.headerRows.length + state.collection.size + 1\n };\n }\n\n return (\n <div\n role=\"row\"\n {...rowProps}\n className={classNames(stylesOverrides, 'react-spectrum-Table-centeredWrapper')}>\n <div role=\"rowheader\" aria-colspan={state.collection.columns.length}>\n {children}\n </div>\n </div>\n );\n}\n\nconst _TableViewBase = React.forwardRef(TableViewBase) as <T>(props: TableBaseProps<T> & {ref?: DOMRef<HTMLDivElement>}) => ReactElement;\n\nexport {_TableViewBase as TableViewBase};\n"],"names":[],"version":3,"file":"TableViewBase.main.js.map"}
1
+ {"mappings":"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","sources":["packages/@react-spectrum/table/src/TableViewBase.tsx"],"sourcesContent":["/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport ArrowDownSmall from '@spectrum-icons/ui/ArrowDownSmall';\nimport {Checkbox} from '@react-spectrum/checkbox';\nimport ChevronDownMedium from '@spectrum-icons/ui/ChevronDownMedium';\nimport ChevronLeftMedium from '@spectrum-icons/ui/ChevronLeftMedium';\nimport ChevronRightMedium from '@spectrum-icons/ui/ChevronRightMedium';\nimport {\n classNames,\n useDOMRef,\n useFocusableRef,\n useStyleProps,\n useUnwrapDOMRef\n} from '@react-spectrum/utils';\nimport {ColumnSize, SpectrumColumnProps, TableCollection} from '@react-types/table';\nimport {DOMRef, DropTarget, FocusableElement, FocusableRef, Key} from '@react-types/shared';\nimport type {DragAndDropHooks} from '@react-spectrum/dnd';\nimport type {DraggableCollectionState, DroppableCollectionState} from '@react-stately/dnd';\nimport type {DraggableItemResult, DropIndicatorAria, DroppableCollectionResult, DroppableItemResult} from '@react-aria/dnd';\nimport {FocusRing, FocusScope, useFocusRing} from '@react-aria/focus';\nimport {getInteractionModality, isFocusVisible, useHover, usePress} from '@react-aria/interactions';\nimport {GridNode} from '@react-types/grid';\nimport {InsertionIndicator} from './InsertionIndicator';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {isAndroid, mergeProps, scrollIntoView, scrollIntoViewport} from '@react-aria/utils';\nimport {Item, Menu, MenuTrigger} from '@react-spectrum/menu';\nimport {LayoutInfo, Rect, ReusableView, useVirtualizerState} from '@react-stately/virtualizer';\nimport {layoutInfoToStyle, ScrollView, setScrollLeft, useVirtualizer, VirtualizerItem} from '@react-aria/virtualizer';\nimport ListGripper from '@spectrum-icons/ui/ListGripper';\nimport {ListKeyboardDelegate} from '@react-aria/selection';\nimport {Nubbin} from './Nubbin';\nimport {ProgressCircle} from '@react-spectrum/progress';\nimport React, {DOMAttributes, HTMLAttributes, ReactElement, ReactNode, RefObject, useCallback, useContext, useEffect, useMemo, useRef, useState} from 'react';\nimport {Resizer, ResizeStateContext} from './Resizer';\nimport {RootDropIndicator} from './RootDropIndicator';\nimport {DragPreview as SpectrumDragPreview} from './DragPreview';\nimport {SpectrumTableProps} from './TableViewWrapper';\nimport styles from '@adobe/spectrum-css-temp/components/table/vars.css';\nimport stylesOverrides from './table.css';\nimport {TableState, TreeGridState, useTableColumnResizeState} from '@react-stately/table';\nimport {TableViewLayout} from './TableViewLayout';\nimport {Tooltip, TooltipTrigger} from '@react-spectrum/tooltip';\nimport {useButton} from '@react-aria/button';\nimport {useLocale, useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useProvider, useProviderProps} from '@react-spectrum/provider';\nimport {\n useTable,\n useTableCell,\n useTableColumnHeader,\n useTableHeaderRow,\n useTableRow,\n useTableRowGroup,\n useTableSelectAllCheckbox,\n useTableSelectionCheckbox\n} from '@react-aria/table';\nimport {useVisuallyHidden, VisuallyHidden} from '@react-aria/visually-hidden';\n\nconst DEFAULT_HEADER_HEIGHT = {\n medium: 34,\n large: 40\n};\n\nconst DEFAULT_HIDE_HEADER_CELL_WIDTH = {\n medium: 38,\n large: 46\n};\n\nconst ROW_HEIGHTS = {\n compact: {\n medium: 32,\n large: 40\n },\n regular: {\n medium: 40,\n large: 50\n },\n spacious: {\n medium: 48,\n large: 60\n }\n};\n\nconst SELECTION_CELL_DEFAULT_WIDTH = {\n medium: 38,\n large: 48\n};\n\nconst DRAG_BUTTON_CELL_DEFAULT_WIDTH = {\n medium: 16,\n large: 20\n};\n\nconst LEVEL_OFFSET_WIDTH = {\n medium: 16,\n large: 20\n};\n\nexport interface TableContextValue<T> {\n state: TableState<T> | TreeGridState<T>,\n dragState: DraggableCollectionState,\n dropState: DroppableCollectionState,\n dragAndDropHooks: DragAndDropHooks['dragAndDropHooks'],\n isTableDraggable: boolean,\n isTableDroppable: boolean,\n layout: TableViewLayout<T>,\n headerRowHovered: boolean,\n isInResizeMode: boolean,\n setIsInResizeMode: (val: boolean) => void,\n isEmpty: boolean,\n onFocusedResizer: () => void,\n onResizeStart: (widths: Map<Key, ColumnSize>) => void,\n onResize: (widths: Map<Key, ColumnSize>) => void,\n onResizeEnd: (widths: Map<Key, ColumnSize>) => void,\n headerMenuOpen: boolean,\n setHeaderMenuOpen: (val: boolean) => void,\n renderEmptyState?: () => ReactElement\n}\n\nexport const TableContext = React.createContext<TableContextValue<unknown>>(null);\nexport function useTableContext() {\n return useContext(TableContext);\n}\n\nexport const VirtualizerContext = React.createContext(null);\nexport function useVirtualizerContext() {\n return useContext(VirtualizerContext);\n}\n\ninterface TableBaseProps<T> extends SpectrumTableProps<T> {\n state: TableState<T> | TreeGridState<T>\n}\n\ntype View = ReusableView<GridNode<unknown>, ReactNode>;\n\nfunction TableViewBase<T extends object>(props: TableBaseProps<T>, ref: DOMRef<HTMLDivElement>) {\n props = useProviderProps(props);\n let {\n isQuiet,\n onAction,\n onResizeStart: propsOnResizeStart,\n onResizeEnd: propsOnResizeEnd,\n dragAndDropHooks,\n state\n } = props;\n let isTableDraggable = !!dragAndDropHooks?.useDraggableCollectionState;\n let isTableDroppable = !!dragAndDropHooks?.useDroppableCollectionState;\n let dragHooksProvided = useRef(isTableDraggable);\n let dropHooksProvided = useRef(isTableDroppable);\n useEffect(() => {\n if (dragHooksProvided.current !== isTableDraggable) {\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 !== isTableDroppable) {\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 if ('expandedKeys' in state && (isTableDraggable || isTableDroppable)) {\n console.warn('Drag and drop is not yet fully supported with expandable rows and may produce unexpected results.');\n }\n }, [isTableDraggable, isTableDroppable, state]);\n\n let {styleProps} = useStyleProps(props);\n let {scale} = useProvider();\n\n // Starts when the user selects resize from the menu, ends when resizing ends\n // used to control the visibility of the resizer Nubbin\n let [isInResizeMode, setIsInResizeMode] = useState(false);\n // Starts when the resizer is actually moved\n // entering resizing/exiting resizing doesn't trigger a render\n // with table layout, so we need to track it here\n let [, setIsResizing] = useState(false);\n\n let domRef = useDOMRef(ref);\n let headerRef = useRef<HTMLDivElement>(undefined);\n let bodyRef = useRef<HTMLDivElement>(undefined);\n\n let density = props.density || 'regular';\n let layout = useMemo(() => new TableViewLayout({\n // If props.rowHeight is auto, then use estimated heights based on scale, otherwise use fixed heights.\n rowHeight: props.overflowMode === 'wrap'\n ? null\n : ROW_HEIGHTS[density][scale],\n estimatedRowHeight: props.overflowMode === 'wrap'\n ? ROW_HEIGHTS[density][scale]\n : null,\n headingHeight: props.overflowMode === 'wrap'\n ? null\n : DEFAULT_HEADER_HEIGHT[scale],\n estimatedHeadingHeight: props.overflowMode === 'wrap'\n ? DEFAULT_HEADER_HEIGHT[scale]\n : null\n }),\n // don't recompute when state.collection changes, only used for initial value\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [props.overflowMode, scale, density]\n );\n\n let dragState: DraggableCollectionState;\n let preview = useRef(null);\n if (isTableDraggable) {\n dragState = dragAndDropHooks.useDraggableCollectionState({\n collection: state.collection,\n selectionManager: state.selectionManager,\n preview\n });\n dragAndDropHooks.useDraggableCollection({}, dragState, domRef);\n }\n\n let DragPreview = dragAndDropHooks?.DragPreview;\n let dropState: DroppableCollectionState;\n let droppableCollection: DroppableCollectionResult;\n let isRootDropTarget: boolean;\n if (isTableDroppable) {\n dropState = dragAndDropHooks.useDroppableCollectionState({\n collection: state.collection,\n selectionManager: state.selectionManager\n });\n droppableCollection = dragAndDropHooks.useDroppableCollection({\n keyboardDelegate: new ListKeyboardDelegate({\n collection: state.collection,\n disabledKeys: state.selectionManager.disabledKeys,\n ref: domRef,\n layoutDelegate: layout\n }),\n dropTargetDelegate: layout\n }, dropState, domRef);\n\n isRootDropTarget = dropState.isDropTarget({type: 'root'});\n }\n\n let {gridProps} = useTable({\n ...props,\n isVirtualized: true,\n layoutDelegate: layout,\n onRowAction: onAction,\n scrollRef: bodyRef\n }, state, domRef);\n let [headerMenuOpen, setHeaderMenuOpen] = useState(false);\n let [headerRowHovered, setHeaderRowHovered] = useState(false);\n\n // This overrides collection view's renderWrapper to support DOM hierarchy.\n let renderWrapper = useCallback((parent: View, reusableView: View, children: View[], renderChildren: (views: View[]) => ReactElement[]) => {\n if (reusableView.viewType === 'rowgroup') {\n return (\n <TableRowGroup\n key={reusableView.key}\n layoutInfo={reusableView.layoutInfo}\n parent={parent?.layoutInfo}\n // Override the default role=\"rowgroup\" with role=\"presentation\",\n // in favor or adding role=\"rowgroup\" to the ScrollView with\n // ref={bodyRef} in the TableVirtualizer below.\n role=\"presentation\">\n {renderChildren(children)}\n </TableRowGroup>\n );\n }\n\n if (reusableView.viewType === 'header') {\n return (\n <TableHeader\n key={reusableView.key}\n layoutInfo={reusableView.layoutInfo}\n parent={parent?.layoutInfo}>\n {renderChildren(children)}\n </TableHeader>\n );\n }\n\n if (reusableView.viewType === 'row') {\n return (\n <TableRow\n key={reusableView.key}\n item={reusableView.content}\n layoutInfo={reusableView.layoutInfo}\n parent={parent?.layoutInfo}>\n {renderChildren(children)}\n </TableRow>\n );\n }\n\n if (reusableView.viewType === 'headerrow') {\n return (\n <TableHeaderRow\n onHoverChange={setHeaderRowHovered}\n key={reusableView.key}\n layoutInfo={reusableView.layoutInfo}\n parent={parent?.layoutInfo}\n item={reusableView.content}>\n {renderChildren(children)}\n </TableHeaderRow>\n );\n }\n\n return (\n <TableCellWrapper\n key={reusableView.key}\n layoutInfo={reusableView.layoutInfo}\n virtualizer={reusableView.virtualizer}\n parent={parent}>\n {reusableView.rendered}\n </TableCellWrapper>\n );\n }, []);\n\n let renderView = useCallback((type: string, item: GridNode<T>) => {\n switch (type) {\n case 'header':\n case 'rowgroup':\n case 'section':\n case 'row':\n case 'headerrow':\n return null;\n case 'cell': {\n if (item.props.isSelectionCell) {\n return <TableCheckboxCell cell={item} />;\n }\n\n if (item.props.isDragButtonCell) {\n return <TableDragCell cell={item} />;\n }\n\n return <TableCell cell={item} />;\n }\n case 'placeholder':\n // TODO: move to react-aria?\n return (\n <div\n role=\"gridcell\"\n aria-colindex={item.index + 1}\n aria-colspan={item.colspan > 1 ? item.colspan : null} />\n );\n case 'column':\n if (item.props.isSelectionCell) {\n return <TableSelectAllCell column={item} />;\n }\n\n if (item.props.isDragButtonCell) {\n return <TableDragHeaderCell column={item} />;\n }\n\n // TODO: consider this case, what if we have hidden headers and a empty table\n if (item.props.hideHeader) {\n return (\n <TooltipTrigger placement=\"top\" trigger=\"focus\">\n <TableColumnHeader column={item} />\n <Tooltip placement=\"top\">{item.rendered}</Tooltip>\n </TooltipTrigger>\n );\n }\n\n if (item.props.allowsResizing && !item.hasChildNodes) {\n return <ResizableTableColumnHeader column={item} />;\n }\n\n return (\n <TableColumnHeader column={item} />\n );\n case 'loader':\n return <LoadingState />;\n case 'empty': {\n return <EmptyState />;\n }\n }\n }, []);\n\n let [isVerticalScrollbarVisible, setVerticalScollbarVisible] = useState(false);\n let [isHorizontalScrollbarVisible, setHorizontalScollbarVisible] = useState(false);\n let viewport = useRef({x: 0, y: 0, width: 0, height: 0});\n let onVisibleRectChange = useCallback((e) => {\n if (viewport.current.width === e.width && viewport.current.height === e.height) {\n return;\n }\n viewport.current = e;\n if (bodyRef.current) {\n setVerticalScollbarVisible(bodyRef.current.clientWidth + 2 < bodyRef.current.offsetWidth);\n setHorizontalScollbarVisible(bodyRef.current.clientHeight + 2 < bodyRef.current.offsetHeight);\n }\n }, []);\n let {isFocusVisible, focusProps} = useFocusRing();\n let isEmpty = state.collection.size === 0;\n\n let onFocusedResizer = () => {\n bodyRef.current.scrollLeft = headerRef.current.scrollLeft;\n };\n\n let onResizeStart = useCallback((widths) => {\n setIsResizing(true);\n propsOnResizeStart?.(widths);\n }, [setIsResizing, propsOnResizeStart]);\n let onResizeEnd = useCallback((widths) => {\n setIsInResizeMode(false);\n setIsResizing(false);\n propsOnResizeEnd?.(widths);\n }, [propsOnResizeEnd, setIsInResizeMode, setIsResizing]);\n\n let focusedKey = state.selectionManager.focusedKey;\n if (dropState?.target?.type === 'item') {\n focusedKey = dropState.target.key;\n }\n\n let mergedProps = mergeProps(\n isTableDroppable && droppableCollection?.collectionProps,\n gridProps,\n focusProps,\n dragAndDropHooks?.isVirtualDragging() && {tabIndex: null}\n );\n\n return (\n <TableContext.Provider\n value={{\n state,\n dragState,\n dropState,\n dragAndDropHooks,\n isTableDraggable,\n isTableDroppable,\n layout,\n onResizeStart,\n onResize: props.onResize,\n onResizeEnd,\n headerRowHovered,\n isInResizeMode,\n setIsInResizeMode,\n isEmpty,\n onFocusedResizer,\n headerMenuOpen,\n setHeaderMenuOpen,\n renderEmptyState: props.renderEmptyState\n }}>\n <TableVirtualizer\n {...mergedProps}\n {...styleProps}\n className={\n classNames(\n styles,\n 'spectrum-Table',\n `spectrum-Table--${density}`,\n {\n 'spectrum-Table--quiet': isQuiet,\n 'spectrum-Table--wrap': props.overflowMode === 'wrap',\n 'spectrum-Table--loadingMore': state.collection.body.props.loadingState === 'loadingMore',\n 'spectrum-Table--isVerticalScrollbarVisible': isVerticalScrollbarVisible,\n 'spectrum-Table--isHorizontalScrollbarVisible': isHorizontalScrollbarVisible\n },\n classNames(\n stylesOverrides,\n 'react-spectrum-Table'\n ),\n styleProps.className\n )\n }\n tableState={state}\n layout={layout}\n collection={state.collection}\n focusedKey={focusedKey}\n renderView={renderView}\n renderWrapper={renderWrapper}\n onVisibleRectChange={onVisibleRectChange}\n domRef={domRef}\n headerRef={headerRef}\n bodyRef={bodyRef}\n isFocusVisible={isFocusVisible}\n isVirtualDragging={dragAndDropHooks?.isVirtualDragging()}\n isRootDropTarget={isRootDropTarget} />\n {DragPreview && isTableDraggable &&\n <DragPreview ref={preview}>\n {() => {\n if (dragAndDropHooks.renderPreview) {\n return dragAndDropHooks.renderPreview(dragState.draggingKeys, dragState.draggedKey);\n }\n let itemCount = dragState.draggingKeys.size;\n let maxWidth = bodyRef.current.getBoundingClientRect().width;\n let height = ROW_HEIGHTS[density][scale];\n let itemText = state.collection.getTextValue(dragState.draggedKey);\n return <SpectrumDragPreview itemText={itemText} itemCount={itemCount} height={height} maxWidth={maxWidth} />;\n }}\n </DragPreview>\n }\n </TableContext.Provider>\n );\n}\n\ninterface TableVirtualizerProps<T> extends HTMLAttributes<HTMLElement> {\n tableState: TableState<T>,\n layout: TableViewLayout<T>,\n collection: TableCollection<T>,\n focusedKey: Key | null,\n renderView: (type: string, content: GridNode<T>) => ReactElement,\n renderWrapper?: (\n parent: View | null,\n reusableView: View,\n children: View[],\n renderChildren: (views: View[]) => ReactElement[]\n ) => ReactElement,\n domRef: RefObject<HTMLDivElement>,\n bodyRef: RefObject<HTMLDivElement>,\n headerRef: RefObject<HTMLDivElement>,\n onVisibleRectChange: (rect: Rect) => void,\n isFocusVisible: boolean,\n isVirtualDragging: boolean,\n isRootDropTarget: boolean\n}\n\n// This is a custom Virtualizer that also has a header that syncs its scroll position with the body.\nfunction TableVirtualizer<T>(props: TableVirtualizerProps<T>) {\n let {tableState, layout, collection, focusedKey, renderView, renderWrapper, domRef, bodyRef, headerRef, onVisibleRectChange: onVisibleRectChangeProp, isFocusVisible, isVirtualDragging, isRootDropTarget, ...otherProps} = props;\n let {direction} = useLocale();\n let loadingState = collection.body.props.loadingState;\n let isLoading = loadingState === 'loading' || loadingState === 'loadingMore';\n let onLoadMore = collection.body.props.onLoadMore;\n let [tableWidth, setTableWidth] = useState(0);\n let {scale} = useProvider();\n\n const getDefaultWidth = useCallback(({props: {hideHeader, isSelectionCell, showDivider, isDragButtonCell}}: GridNode<T>): ColumnSize | null | undefined => {\n if (hideHeader) {\n let width = DEFAULT_HIDE_HEADER_CELL_WIDTH[scale];\n return showDivider ? width + 1 : width;\n } else if (isSelectionCell) {\n return SELECTION_CELL_DEFAULT_WIDTH[scale];\n } else if (isDragButtonCell) {\n return DRAG_BUTTON_CELL_DEFAULT_WIDTH[scale];\n }\n }, [scale]);\n\n const getDefaultMinWidth = useCallback(({props: {hideHeader, isSelectionCell, showDivider, isDragButtonCell}}: GridNode<T>): ColumnSize | null | undefined => {\n if (hideHeader) {\n let width = DEFAULT_HIDE_HEADER_CELL_WIDTH[scale];\n return showDivider ? width + 1 : width;\n } else if (isSelectionCell) {\n return SELECTION_CELL_DEFAULT_WIDTH[scale];\n } else if (isDragButtonCell) {\n return DRAG_BUTTON_CELL_DEFAULT_WIDTH[scale];\n }\n return 75;\n }, [scale]);\n\n let columnResizeState = useTableColumnResizeState({\n tableWidth,\n getDefaultWidth,\n getDefaultMinWidth\n }, tableState);\n\n let state = useVirtualizerState<object, ReactNode, ReactNode>({\n layout,\n collection,\n renderView,\n renderWrapper,\n onVisibleRectChange(rect) {\n bodyRef.current.scrollTop = rect.y;\n setScrollLeft(bodyRef.current, direction, rect.x);\n },\n persistedKeys: useMemo(() => focusedKey ? new Set([focusedKey]) : new Set(), [focusedKey]),\n layoutOptions: useMemo(() => ({\n columnWidths: columnResizeState.columnWidths\n }), [columnResizeState.columnWidths])\n });\n\n let memoedVirtualizerProps = useMemo(() => ({\n tabIndex: otherProps.tabIndex,\n focusedKey,\n isLoading,\n onLoadMore\n }), [otherProps.tabIndex, focusedKey, isLoading, onLoadMore]);\n\n let {virtualizerProps, scrollViewProps: {onVisibleRectChange}} = useVirtualizer(memoedVirtualizerProps, state, domRef);\n let onVisibleRectChangeMemo = useCallback(rect => {\n setTableWidth(rect.width);\n onVisibleRectChange(rect);\n onVisibleRectChangeProp(rect);\n }, [onVisibleRectChange, onVisibleRectChangeProp]);\n\n // this effect runs whenever the contentSize changes, it doesn't matter what the content size is\n // only that it changes in a resize, and when that happens, we want to sync the body to the\n // header scroll position\n useEffect(() => {\n if (getInteractionModality() === 'keyboard' && headerRef.current.contains(document.activeElement)) {\n scrollIntoView(headerRef.current, document.activeElement as HTMLElement);\n scrollIntoViewport(document.activeElement, {containingElement: domRef.current});\n bodyRef.current.scrollLeft = headerRef.current.scrollLeft;\n }\n }, [state.contentSize, headerRef, bodyRef, domRef]);\n\n let headerHeight = layout.getLayoutInfo('header')?.rect.height || 0;\n\n // Sync the scroll position from the table body to the header container.\n let onScroll = useCallback(() => {\n headerRef.current.scrollLeft = bodyRef.current.scrollLeft;\n }, [bodyRef, headerRef]);\n\n let resizerPosition = columnResizeState.resizingColumn != null ? layout.getLayoutInfo(columnResizeState.resizingColumn).rect.maxX - 2 : 0;\n\n let resizerAtEdge = resizerPosition > Math.max(state.virtualizer.contentSize.width, state.virtualizer.visibleRect.width) - 3;\n // this should be fine, every movement of the resizer causes a rerender\n // scrolling can cause it to lag for a moment, but it's always updated\n let resizerInVisibleRegion = resizerPosition < state.virtualizer.visibleRect.maxX;\n let shouldHardCornerResizeCorner = resizerAtEdge && resizerInVisibleRegion;\n\n // minimize re-render caused on Resizers by memoing this\n let resizingColumnWidth = columnResizeState.resizingColumn != null ? columnResizeState.getColumnWidth(columnResizeState.resizingColumn) : 0;\n let resizingColumn = useMemo(() => ({\n width: resizingColumnWidth,\n key: columnResizeState.resizingColumn\n }), [resizingColumnWidth, columnResizeState.resizingColumn]);\n let mergedProps = mergeProps(\n otherProps,\n virtualizerProps,\n isVirtualDragging && {tabIndex: null}\n );\n\n let firstColumn = collection.columns[0];\n let scrollPadding = 0;\n if (firstColumn.props.isSelectionCell || firstColumn.props.isDragButtonCell) {\n scrollPadding = columnResizeState.getColumnWidth(firstColumn.key);\n }\n\n return (\n <VirtualizerContext.Provider value={resizingColumn}>\n <FocusScope>\n <div\n {...mergedProps}\n ref={domRef}>\n <div\n role=\"presentation\"\n className={classNames(styles, 'spectrum-Table-headWrapper')}\n style={{\n height: headerHeight,\n overflow: 'hidden',\n position: 'relative',\n willChange: state.isScrolling ? 'scroll-position' : undefined,\n scrollPaddingInlineStart: scrollPadding\n }}\n ref={headerRef}>\n <ResizeStateContext.Provider value={columnResizeState}>\n {state.visibleViews[0]}\n </ResizeStateContext.Provider>\n </div>\n <ScrollView\n className={\n classNames(\n styles,\n 'spectrum-Table-body',\n {\n 'focus-ring': isFocusVisible,\n 'spectrum-Table-body--resizerAtTableEdge': shouldHardCornerResizeCorner\n },\n classNames(\n stylesOverrides,\n 'react-spectrum-Table-body',\n {\n 'react-spectrum-Table-body--dropTarget': !!isRootDropTarget\n }\n )\n )\n }\n // Firefox and Chrome make generic elements using CSS overflow 'scroll' or 'auto' tabbable,\n // including them within the accessibility tree, which breaks the table structure in Firefox.\n // Using tabIndex={-1} prevents the ScrollView from being tabbable, and using role=\"rowgroup\"\n // here and role=\"presentation\" on the table body content fixes the table structure.\n role=\"rowgroup\"\n tabIndex={isVirtualDragging ? null : -1}\n style={{\n flex: 1,\n scrollPaddingInlineStart: scrollPadding\n }}\n innerStyle={{overflow: 'visible'}}\n ref={bodyRef}\n contentSize={state.contentSize}\n onVisibleRectChange={onVisibleRectChangeMemo}\n onScrollStart={state.startScrolling}\n onScrollEnd={state.endScrolling}\n onScroll={onScroll}>\n {state.visibleViews[1]}\n <div\n className={classNames(styles, 'spectrum-Table-bodyResizeIndicator')}\n style={{[direction === 'ltr' ? 'left' : 'right']: `${resizerPosition}px`, height: `${Math.max(state.virtualizer.contentSize.height, state.virtualizer.visibleRect.height)}px`, display: columnResizeState.resizingColumn ? 'block' : 'none'}} />\n </ScrollView>\n </div>\n </FocusScope>\n </VirtualizerContext.Provider>\n );\n}\n\nfunction useStyle(layoutInfo: LayoutInfo, parent: LayoutInfo | null) {\n let {direction} = useLocale();\n let style = layoutInfoToStyle(layoutInfo, direction, parent);\n if (style.overflow === 'hidden') {\n style.overflow = 'visible'; // needed to support position: sticky\n }\n return style;\n}\n\nfunction TableHeader({children, layoutInfo, parent, ...otherProps}) {\n let {rowGroupProps} = useTableRowGroup();\n let style = useStyle(layoutInfo, parent);\n\n return (\n <div {...rowGroupProps} {...otherProps} className={classNames(styles, 'spectrum-Table-head')} style={style}>\n {children}\n </div>\n );\n}\n\nfunction TableColumnHeader(props) {\n let {column} = props;\n let ref = useRef<HTMLDivElement>(null);\n let {state, isEmpty} = useTableContext();\n let {pressProps, isPressed} = usePress({isDisabled: isEmpty});\n let columnProps = column.props as SpectrumColumnProps<unknown>;\n useEffect(() => {\n if (column.hasChildNodes && columnProps.allowsResizing) {\n console.warn(`Column key: ${column.key}. Columns with child columns don't allow resizing.`);\n }\n }, [column.hasChildNodes, column.key, columnProps.allowsResizing]);\n\n let {columnHeaderProps} = useTableColumnHeader({\n node: column,\n isVirtualized: true\n }, state, ref);\n\n let {hoverProps, isHovered} = useHover({...props, isDisabled: isEmpty});\n\n const allProps = [columnHeaderProps, hoverProps, pressProps];\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...mergeProps(...allProps)}\n ref={ref}\n className={\n classNames(\n styles,\n 'spectrum-Table-headCell',\n {\n 'is-active': isPressed,\n 'is-sortable': columnProps.allowsSorting,\n 'is-sorted-desc': state.sortDescriptor?.column === column.key && state.sortDescriptor?.direction === 'descending',\n 'is-sorted-asc': state.sortDescriptor?.column === column.key && state.sortDescriptor?.direction === 'ascending',\n 'is-hovered': isHovered,\n 'spectrum-Table-cell--hideHeader': columnProps.hideHeader\n },\n classNames(\n stylesOverrides,\n 'react-spectrum-Table-cell',\n {\n 'react-spectrum-Table-cell--alignCenter': columnProps.align === 'center' || column.colspan > 1,\n 'react-spectrum-Table-cell--alignEnd': columnProps.align === 'end'\n }\n )\n )\n }>\n {columnProps.allowsSorting &&\n <ArrowDownSmall UNSAFE_className={classNames(styles, 'spectrum-Table-sortedIcon')} />\n }\n {columnProps.hideHeader ?\n <VisuallyHidden>{column.rendered}</VisuallyHidden> :\n <div className={classNames(styles, 'spectrum-Table-headCellContents')}>{column.rendered}</div>\n }\n </div>\n </FocusRing>\n );\n}\n\nlet _TableColumnHeaderButton = (props, ref: FocusableRef<HTMLDivElement>) => {\n let {focusProps, alignment, ...otherProps} = props;\n let {isEmpty} = useTableContext();\n let domRef = useFocusableRef(ref);\n let {buttonProps} = useButton({...otherProps, elementType: 'div', isDisabled: isEmpty}, domRef);\n let {hoverProps, isHovered} = useHover({...otherProps, isDisabled: isEmpty});\n\n return (\n <div\n className={\n classNames(\n styles,\n 'spectrum-Table-headCellContents',\n {\n 'is-hovered': isHovered\n }\n )\n }\n {...hoverProps}>\n <div\n className={\n classNames(\n styles,\n 'spectrum-Table-headCellButton',\n {\n 'spectrum-Table-headCellButton--alignStart': alignment === 'start',\n 'spectrum-Table-headCellButton--alignCenter': alignment === 'center',\n 'spectrum-Table-headCellButton--alignEnd': alignment === 'end'\n }\n )\n }\n {...mergeProps(buttonProps, focusProps)}\n ref={domRef}>\n {props.children}\n </div>\n </div>\n );\n};\nlet TableColumnHeaderButton = React.forwardRef(_TableColumnHeaderButton);\n\nfunction ResizableTableColumnHeader(props) {\n let {column} = props;\n let ref = useRef(null);\n let triggerRef = useRef(null);\n let resizingRef = useRef(null);\n let {\n state,\n onResizeStart,\n onResize,\n onResizeEnd,\n headerRowHovered,\n setIsInResizeMode,\n isEmpty,\n isInResizeMode,\n headerMenuOpen,\n setHeaderMenuOpen\n } = useTableContext();\n let columnResizeState = useContext(ResizeStateContext);\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/table');\n let {pressProps, isPressed} = usePress({isDisabled: isEmpty});\n let {columnHeaderProps} = useTableColumnHeader({\n node: column,\n isVirtualized: true\n }, state, ref);\n\n let {hoverProps, isHovered} = useHover({...props, isDisabled: isEmpty || headerMenuOpen});\n\n const allProps = [columnHeaderProps, pressProps, hoverProps];\n\n let columnProps = column.props as SpectrumColumnProps<unknown>;\n\n let {isFocusVisible, focusProps} = useFocusRing();\n\n const onMenuSelect = (key) => {\n switch (key) {\n case 'sort-asc':\n state.sort(column.key, 'ascending');\n break;\n case 'sort-desc':\n state.sort(column.key, 'descending');\n break;\n case 'resize':\n columnResizeState.startResize(column.key);\n setIsInResizeMode(true);\n state.setKeyboardNavigationDisabled(true);\n break;\n }\n };\n let allowsSorting = column.props?.allowsSorting;\n let items = useMemo(() => {\n let options = [\n allowsSorting ? {\n label: stringFormatter.format('sortAscending'),\n id: 'sort-asc'\n } : undefined,\n allowsSorting ? {\n label: stringFormatter.format('sortDescending'),\n id: 'sort-desc'\n } : undefined,\n {\n label: stringFormatter.format('resizeColumn'),\n id: 'resize'\n }\n ];\n return options;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [allowsSorting]);\n\n let resizingColumn = columnResizeState.resizingColumn;\n let showResizer = !isEmpty && ((headerRowHovered && getInteractionModality() !== 'keyboard') || resizingColumn != null);\n let alignment = 'start';\n let menuAlign = 'start' as 'start' | 'end';\n if (columnProps.align === 'center' || column.colspan > 1) {\n alignment = 'center';\n } else if (columnProps.align === 'end') {\n alignment = 'end';\n menuAlign = 'end';\n }\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...mergeProps(...allProps)}\n ref={ref}\n className={\n classNames(\n styles,\n 'spectrum-Table-headCell',\n {\n 'is-active': isPressed,\n 'is-resizable': columnProps.allowsResizing,\n 'is-sortable': columnProps.allowsSorting,\n 'is-sorted-desc': state.sortDescriptor?.column === column.key && state.sortDescriptor?.direction === 'descending',\n 'is-sorted-asc': state.sortDescriptor?.column === column.key && state.sortDescriptor?.direction === 'ascending',\n 'is-hovered': isHovered,\n 'focus-ring': isFocusVisible,\n 'spectrum-Table-cell--hideHeader': columnProps.hideHeader\n },\n classNames(\n stylesOverrides,\n 'react-spectrum-Table-cell',\n {\n 'react-spectrum-Table-cell--alignCenter': alignment === 'center',\n 'react-spectrum-Table-cell--alignEnd': alignment === 'end'\n }\n )\n )\n }>\n <MenuTrigger onOpenChange={setHeaderMenuOpen} align={menuAlign}>\n <TableColumnHeaderButton alignment={alignment} ref={triggerRef} focusProps={focusProps}>\n {columnProps.allowsSorting &&\n <ArrowDownSmall UNSAFE_className={classNames(styles, 'spectrum-Table-sortedIcon')} />\n }\n {columnProps.hideHeader ?\n <VisuallyHidden>{column.rendered}</VisuallyHidden> :\n <div className={classNames(styles, 'spectrum-Table-headerCellText')}>{column.rendered}</div>\n }\n {\n columnProps.allowsResizing && <ChevronDownMedium UNSAFE_className={classNames(styles, 'spectrum-Table-menuChevron')} />\n }\n </TableColumnHeaderButton>\n <Menu onAction={onMenuSelect} minWidth=\"size-2000\" items={items}>\n {(item) => (\n <Item>\n {item.label}\n </Item>\n )}\n </Menu>\n </MenuTrigger>\n <Resizer\n ref={resizingRef}\n column={column}\n showResizer={showResizer}\n onResizeStart={onResizeStart}\n onResize={onResize}\n onResizeEnd={onResizeEnd}\n triggerRef={useUnwrapDOMRef(triggerRef)} />\n <div\n aria-hidden\n className={classNames(\n styles,\n 'spectrum-Table-colResizeIndicator',\n {\n 'spectrum-Table-colResizeIndicator--visible': resizingColumn != null,\n 'spectrum-Table-colResizeIndicator--resizing': resizingColumn === column.key\n }\n )}>\n <div\n className={classNames(\n styles,\n 'spectrum-Table-colResizeNubbin',\n {\n 'spectrum-Table-colResizeNubbin--visible': isInResizeMode && resizingColumn === column.key\n }\n )}>\n <Nubbin />\n </div>\n </div>\n </div>\n </FocusRing>\n );\n}\n\nfunction TableSelectAllCell({column}) {\n let ref = useRef(undefined);\n let {state} = useTableContext();\n let isSingleSelectionMode = state.selectionManager.selectionMode === 'single';\n let {columnHeaderProps} = useTableColumnHeader({\n node: column,\n isVirtualized: true\n }, state, ref);\n\n let {checkboxProps} = useTableSelectAllCheckbox(state);\n let {hoverProps, isHovered} = useHover({});\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...mergeProps(columnHeaderProps, hoverProps)}\n ref={ref}\n className={\n classNames(\n styles,\n 'spectrum-Table-headCell',\n 'spectrum-Table-checkboxCell',\n {\n 'is-hovered': isHovered\n }\n )\n }>\n {\n /*\n In single selection mode, the checkbox will be hidden.\n So to avoid leaving a column header with no accessible content,\n we use a VisuallyHidden component to include the aria-label from the checkbox,\n which for single selection will be \"Select.\"\n */\n isSingleSelectionMode &&\n <VisuallyHidden>{checkboxProps['aria-label']}</VisuallyHidden>\n }\n <Checkbox\n {...checkboxProps}\n isEmphasized\n UNSAFE_style={isSingleSelectionMode ? {visibility: 'hidden'} : undefined}\n UNSAFE_className={classNames(styles, 'spectrum-Table-checkbox')} />\n </div>\n </FocusRing>\n );\n}\n\nfunction TableDragHeaderCell({column}) {\n let ref = useRef(undefined);\n let {state} = useTableContext();\n let {columnHeaderProps} = useTableColumnHeader({\n node: column,\n isVirtualized: true\n }, state, ref);\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/table');\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...columnHeaderProps}\n ref={ref}\n className={\n classNames(\n styles,\n 'spectrum-Table-headCell',\n classNames(\n stylesOverrides,\n 'react-spectrum-Table-headCell',\n 'react-spectrum-Table-dragButtonHeadCell'\n )\n )\n }>\n <VisuallyHidden>{stringFormatter.format('drag')}</VisuallyHidden>\n </div>\n </FocusRing>\n );\n}\n\nfunction TableRowGroup({children, layoutInfo, parent, ...otherProps}) {\n let {rowGroupProps} = useTableRowGroup();\n let {isTableDroppable} = useContext(TableContext);\n let style = useStyle(layoutInfo, parent);\n\n return (\n <div {...rowGroupProps} style={style} {...otherProps}>\n {isTableDroppable &&\n <RootDropIndicator key=\"root\" />\n }\n {children}\n </div>\n );\n}\n\nfunction DragButton() {\n let {dragButtonProps, dragButtonRef, isFocusVisibleWithin} = useTableRowContext();\n let {visuallyHiddenProps} = useVisuallyHidden();\n return (\n <FocusRing focusRingClass={classNames(stylesOverrides, 'focus-ring')}>\n <div\n {...dragButtonProps as React.HTMLAttributes<HTMLElement>}\n className={\n classNames(\n stylesOverrides,\n 'react-spectrum-Table-dragButton'\n )\n }\n style={!isFocusVisibleWithin ? {...visuallyHiddenProps.style} : {}}\n ref={dragButtonRef}\n draggable=\"true\">\n <ListGripper UNSAFE_className={classNames(stylesOverrides)} />\n </div>\n </FocusRing>\n );\n}\n\ninterface TableRowContextValue {\n dragButtonProps: React.HTMLAttributes<HTMLDivElement>,\n dragButtonRef: React.MutableRefObject<undefined>,\n isFocusVisibleWithin: boolean\n}\n\n\nconst TableRowContext = React.createContext<TableRowContextValue>(null);\nexport function useTableRowContext() {\n return useContext(TableRowContext);\n}\n\nfunction TableRow({item, children, layoutInfo, parent, ...otherProps}) {\n let ref = useRef(undefined);\n let {state, layout, dragAndDropHooks, isTableDraggable, isTableDroppable, dragState, dropState} = useTableContext();\n let isSelected = state.selectionManager.isSelected(item.key);\n let {rowProps, hasAction, allowsSelection} = useTableRow({\n node: item,\n isVirtualized: true,\n shouldSelectOnPressUp: isTableDraggable\n }, state, ref);\n\n let isDisabled = !allowsSelection && !hasAction;\n let isDroppable = isTableDroppable && !isDisabled;\n let {pressProps, isPressed} = usePress({isDisabled});\n\n // The row should show the focus background style when any cell inside it is focused.\n // If the row itself is focused, then it should have a blue focus indicator on the left.\n let {\n isFocusVisible: isFocusVisibleWithin,\n focusProps: focusWithinProps\n } = useFocusRing({within: true});\n let {isFocusVisible, focusProps} = useFocusRing();\n let {hoverProps, isHovered} = useHover({isDisabled});\n let isFirstRow = state.collection.rows.find(row => row.level === 1)?.key === item.key;\n let isLastRow = item.nextKey == null;\n // Figure out if the TableView content is equal or greater in height to the container. If so, we'll need to round the bottom\n // border corners of the last row when selected.\n let isFlushWithContainerBottom = false;\n if (isLastRow) {\n if (layout.getContentSize()?.height >= layout.virtualizer?.visibleRect.height) {\n isFlushWithContainerBottom = true;\n }\n }\n\n let draggableItem: DraggableItemResult;\n if (isTableDraggable) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n draggableItem = dragAndDropHooks.useDraggableItem({key: item.key, hasDragButton: true}, dragState);\n if (isDisabled) {\n draggableItem = null;\n }\n }\n let droppableItem: DroppableItemResult;\n let isDropTarget: boolean;\n let dropIndicator: DropIndicatorAria;\n let dropIndicatorRef = useRef(undefined);\n if (isTableDroppable) {\n let target = {type: 'item', key: item.key, dropPosition: 'on'} as DropTarget;\n isDropTarget = dropState.isDropTarget(target);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n dropIndicator = dragAndDropHooks.useDropIndicator({target}, dropState, dropIndicatorRef);\n }\n\n let dragButtonRef = React.useRef(undefined);\n let {buttonProps: dragButtonProps} = useButton({\n ...draggableItem?.dragButtonProps,\n elementType: 'div'\n }, dragButtonRef);\n\n let style = useStyle(layoutInfo, parent);\n\n let props = mergeProps(\n rowProps,\n otherProps,\n {style},\n focusWithinProps,\n focusProps,\n hoverProps,\n pressProps,\n draggableItem?.dragProps,\n // Remove tab index from list row if performing a screenreader drag. This prevents TalkBack from focusing the row,\n // allowing for single swipe navigation between row drop indicator\n dragAndDropHooks?.isVirtualDragging() && {tabIndex: null}\n ) as HTMLAttributes<HTMLElement> & DOMAttributes<FocusableElement>;\n\n let dropProps = isDroppable ? droppableItem?.dropProps : {'aria-hidden': droppableItem?.dropProps['aria-hidden']};\n let {visuallyHiddenProps} = useVisuallyHidden();\n\n return (\n <TableRowContext.Provider value={{dragButtonProps, dragButtonRef, isFocusVisibleWithin}}>\n {isTableDroppable && isFirstRow &&\n <InsertionIndicator\n rowProps={props}\n key={`${item.key}-before`}\n target={{key: item.key, type: 'item', dropPosition: 'before'}} />\n }\n {isTableDroppable && !dropIndicator?.isHidden &&\n <div role=\"row\" {...visuallyHiddenProps}>\n <div role=\"gridcell\">\n <div role=\"button\" {...dropIndicator?.dropIndicatorProps} ref={dropIndicatorRef} />\n </div>\n </div>\n }\n <div\n {...mergeProps(props, dropProps)}\n ref={ref}\n className={\n classNames(\n styles,\n 'spectrum-Table-row',\n {\n 'is-active': isPressed,\n 'is-selected': isSelected,\n 'spectrum-Table-row--highlightSelection': state.selectionManager.selectionBehavior === 'replace',\n 'is-next-selected': state.selectionManager.isSelected(item.nextKey),\n 'is-focused': isFocusVisibleWithin,\n 'focus-ring': isFocusVisible,\n 'is-hovered': isHovered,\n 'is-disabled': isDisabled,\n 'spectrum-Table-row--firstRow': isFirstRow,\n 'spectrum-Table-row--lastRow': isLastRow,\n 'spectrum-Table-row--isFlushBottom': isFlushWithContainerBottom\n },\n classNames(\n stylesOverrides,\n 'react-spectrum-Table-row',\n {'react-spectrum-Table-row--dropTarget': isDropTarget}\n )\n )\n }>\n {children}\n </div>\n {isTableDroppable &&\n <InsertionIndicator\n rowProps={props}\n key={`${item.key}-after`}\n target={{key: item.key, type: 'item', dropPosition: 'after'}} />\n }\n </TableRowContext.Provider>\n );\n}\n\nfunction TableHeaderRow({item, children, layoutInfo, parent, ...props}) {\n let {state, headerMenuOpen} = useTableContext();\n let ref = useRef(undefined);\n let {rowProps} = useTableHeaderRow({node: item, isVirtualized: true}, state, ref);\n let {hoverProps} = useHover({...props, isDisabled: headerMenuOpen});\n let style = useStyle(layoutInfo, parent);\n\n return (\n <div {...mergeProps(rowProps, hoverProps)} ref={ref} style={style}>\n {children}\n </div>\n );\n}\n\nfunction TableDragCell({cell}) {\n let ref = useRef(undefined);\n let {state, isTableDraggable} = useTableContext();\n let isDisabled = state.disabledKeys.has(cell.parentKey);\n let {gridCellProps} = useTableCell({\n node: cell,\n isVirtualized: true\n }, state, ref);\n\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...gridCellProps}\n ref={ref}\n className={\n classNames(\n styles,\n 'spectrum-Table-cell',\n {\n 'is-disabled': isDisabled\n },\n classNames(\n stylesOverrides,\n 'react-spectrum-Table-cell',\n 'react-spectrum-Table-dragButtonCell'\n )\n )\n }>\n {isTableDraggable && !isDisabled && <DragButton />}\n </div>\n </FocusRing>\n );\n}\n\nfunction TableCheckboxCell({cell}) {\n let ref = useRef(undefined);\n let {state} = useTableContext();\n let isDisabled = state.disabledKeys.has(cell.parentKey);\n let {gridCellProps} = useTableCell({\n node: cell,\n isVirtualized: true\n }, state, ref);\n\n let {checkboxProps} = useTableSelectionCheckbox({key: cell.parentKey}, state);\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...gridCellProps}\n ref={ref}\n className={\n classNames(\n styles,\n 'spectrum-Table-cell',\n 'spectrum-Table-checkboxCell',\n {\n 'is-disabled': isDisabled\n },\n classNames(\n stylesOverrides,\n 'react-spectrum-Table-cell'\n )\n )\n }>\n {state.selectionManager.selectionMode !== 'none' &&\n <Checkbox\n {...checkboxProps}\n isEmphasized\n isDisabled={isDisabled}\n UNSAFE_className={classNames(styles, 'spectrum-Table-checkbox')} />\n }\n </div>\n </FocusRing>\n );\n}\n\nfunction TableCell({cell}) {\n let {scale} = useProvider();\n let {state} = useTableContext();\n let isExpandableTable = 'expandedKeys' in state;\n let ref = useRef(undefined);\n let columnProps = cell.column.props as SpectrumColumnProps<unknown>;\n let isDisabled = state.disabledKeys.has(cell.parentKey);\n let {gridCellProps} = useTableCell({\n node: cell,\n isVirtualized: true\n }, state, ref);\n let {id, ...otherGridCellProps} = gridCellProps;\n let isFirstRowHeaderCell = state.collection.rowHeaderColumnKeys.keys().next().value === cell.column.key;\n let isRowExpandable = false;\n let showExpandCollapseButton = false;\n let levelOffset = 0;\n\n if ('expandedKeys' in state) {\n isRowExpandable = state.keyMap.get(cell.parentKey)?.props.UNSTABLE_childItems?.length > 0 || state.keyMap.get(cell.parentKey)?.props?.children?.length > state.userColumnCount;\n showExpandCollapseButton = isFirstRowHeaderCell && isRowExpandable;\n // Offset based on level, and add additional offset if there is no expand/collapse button on a row\n levelOffset = (cell.level - 2) * LEVEL_OFFSET_WIDTH[scale] + (!showExpandCollapseButton ? LEVEL_OFFSET_WIDTH[scale] * 2 : 0);\n }\n\n return (\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...otherGridCellProps}\n aria-labelledby={id}\n ref={ref}\n style={isExpandableTable && isFirstRowHeaderCell ? {paddingInlineStart: levelOffset} : {}}\n className={\n classNames(\n styles,\n 'spectrum-Table-cell',\n {\n 'spectrum-Table-cell--divider': columnProps.showDivider && cell.column.nextKey !== null,\n 'spectrum-Table-cell--hideHeader': columnProps.hideHeader,\n 'spectrum-Table-cell--hasExpandCollapseButton': showExpandCollapseButton,\n 'is-disabled': isDisabled\n },\n classNames(\n stylesOverrides,\n 'react-spectrum-Table-cell',\n {\n 'react-spectrum-Table-cell--alignStart': columnProps.align === 'start',\n 'react-spectrum-Table-cell--alignCenter': columnProps.align === 'center',\n 'react-spectrum-Table-cell--alignEnd': columnProps.align === 'end'\n }\n )\n )\n }>\n {showExpandCollapseButton && <ExpandableRowChevron cell={cell} />}\n <span\n id={id}\n className={\n classNames(\n styles,\n 'spectrum-Table-cellContents'\n )\n }>\n {cell.rendered}\n </span>\n </div>\n </FocusRing>\n );\n}\n\nfunction TableCellWrapper({layoutInfo, virtualizer, parent, children}) {\n let {isTableDroppable, dropState} = useContext(TableContext);\n let isDropTarget: boolean;\n let isRootDroptarget: boolean;\n if (isTableDroppable) {\n if (parent.content) {\n isDropTarget = dropState.isDropTarget({type: 'item', dropPosition: 'on', key: parent.content.key});\n }\n isRootDroptarget = dropState.isDropTarget({type: 'root'});\n }\n\n return (\n <VirtualizerItem\n layoutInfo={layoutInfo}\n virtualizer={virtualizer}\n parent={parent?.layoutInfo}\n className={\n useMemo(() => classNames(\n styles,\n 'spectrum-Table-cellWrapper',\n classNames(\n stylesOverrides,\n {\n 'react-spectrum-Table-cellWrapper': !layoutInfo.estimatedSize,\n 'react-spectrum-Table-cellWrapper--dropTarget': isDropTarget || isRootDroptarget\n }\n )\n ), [layoutInfo.estimatedSize, isDropTarget, isRootDroptarget])\n }>\n {children}\n </VirtualizerItem>\n );\n}\n\nfunction ExpandableRowChevron({cell}) {\n // TODO: move some/all of the chevron button setup into a separate hook?\n let {direction} = useLocale();\n let {state} = useTableContext();\n let expandButtonRef = useRef(undefined);\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/table');\n let isExpanded;\n\n if ('expandedKeys' in state) {\n isExpanded = state.expandedKeys === 'all' || state.expandedKeys.has(cell.parentKey);\n }\n\n // Will need to keep the chevron as a button for iOS VO at all times since VO doesn't focus the cell. Also keep as button if cellAction is defined by the user in the future\n let {buttonProps} = useButton({\n // Desktop and mobile both toggle expansion of a native expandable row on mouse/touch up\n onPress: () => {\n (state as TreeGridState<unknown>).toggleKey(cell.parentKey);\n if (!isFocusVisible()) {\n state.selectionManager.setFocused(true);\n state.selectionManager.setFocusedKey(cell.parentKey);\n }\n },\n elementType: 'span',\n 'aria-label': isExpanded ? stringFormatter.format('collapse') : stringFormatter.format('expand')\n }, expandButtonRef);\n\n return (\n <span\n {...buttonProps}\n ref={expandButtonRef}\n // Override tabindex so that grid keyboard nav skips over it. Needs -1 so android talkback can actually \"focus\" it\n tabIndex={isAndroid() ? -1 : undefined}\n className={\n classNames(\n styles,\n 'spectrum-Table-expandButton',\n {\n 'is-open': isExpanded\n }\n )\n }>\n {direction === 'ltr' ? <ChevronRightMedium /> : <ChevronLeftMedium />}\n </span>\n );\n}\n\nfunction LoadingState() {\n let {state} = useContext(TableContext);\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/table');\n return (\n <CenteredWrapper>\n <ProgressCircle\n isIndeterminate\n aria-label={state.collection.size > 0 ? stringFormatter.format('loadingMore') : stringFormatter.format('loading')} />\n </CenteredWrapper>\n );\n}\n\nfunction EmptyState() {\n let {renderEmptyState} = useContext(TableContext);\n let emptyState = renderEmptyState ? renderEmptyState() : null;\n if (emptyState == null) {\n return null;\n }\n\n return (\n <CenteredWrapper>\n {emptyState}\n </CenteredWrapper>\n );\n}\n\nfunction CenteredWrapper({children}) {\n let {state} = useTableContext();\n let rowProps;\n\n if ('expandedKeys' in state) {\n let topLevelRowCount = [...state.keyMap.get(state.collection.body.key).childNodes].length;\n rowProps = {\n 'aria-level': 1,\n 'aria-posinset': topLevelRowCount + 1,\n 'aria-setsize': topLevelRowCount + 1\n };\n } else {\n rowProps = {\n 'aria-rowindex': state.collection.headerRows.length + state.collection.size + 1\n };\n }\n\n return (\n <div\n role=\"row\"\n {...rowProps}\n className={classNames(stylesOverrides, 'react-spectrum-Table-centeredWrapper')}>\n <div role=\"rowheader\" aria-colspan={state.collection.columns.length}>\n {children}\n </div>\n </div>\n );\n}\n\nconst _TableViewBase = React.forwardRef(TableViewBase) as <T>(props: TableBaseProps<T> & {ref?: DOMRef<HTMLDivElement>}) => ReactElement;\n\nexport {_TableViewBase as TableViewBase};\n"],"names":[],"version":3,"file":"TableViewBase.main.js.map"}
@@ -8,6 +8,7 @@ import "./vars.42570ef3.css";
8
8
  import $7lS7h$table_vars_cssmodulejs from "./table_vars_css.mjs";
9
9
  import "./table.b13eee90.css";
10
10
  import $7lS7h$table_cssmodulejs from "./table_css.mjs";
11
+ import {TableViewLayout as $5fb43af69b290859$export$725d101278f5a47b} from "./TableViewLayout.mjs";
11
12
  import $7lS7h$spectrumiconsuiArrowDownSmall from "@spectrum-icons/ui/ArrowDownSmall";
12
13
  import {Checkbox as $7lS7h$Checkbox} from "@react-spectrum/checkbox";
13
14
  import $7lS7h$spectrumiconsuiChevronDownMedium from "@spectrum-icons/ui/ChevronDownMedium";
@@ -24,7 +25,6 @@ import $7lS7h$spectrumiconsuiListGripper from "@spectrum-icons/ui/ListGripper";
24
25
  import {ListKeyboardDelegate as $7lS7h$ListKeyboardDelegate} from "@react-aria/selection";
25
26
  import {ProgressCircle as $7lS7h$ProgressCircle} from "@react-spectrum/progress";
26
27
  import $7lS7h$react, {useContext as $7lS7h$useContext, useRef as $7lS7h$useRef, useEffect as $7lS7h$useEffect, useState as $7lS7h$useState, useMemo as $7lS7h$useMemo, useCallback as $7lS7h$useCallback} from "react";
27
- import {TableLayout as $7lS7h$TableLayout} from "@react-stately/layout";
28
28
  import {useTableColumnResizeState as $7lS7h$useTableColumnResizeState} from "@react-stately/table";
29
29
  import {TooltipTrigger as $7lS7h$TooltipTrigger, Tooltip as $7lS7h$Tooltip} from "@react-spectrum/tooltip";
30
30
  import {useButton as $7lS7h$useButton} from "@react-aria/button";
@@ -151,14 +151,12 @@ function $bd013581c0a4b065$var$TableViewBase(props, ref) {
151
151
  let headerRef = (0, $7lS7h$useRef)(undefined);
152
152
  let bodyRef = (0, $7lS7h$useRef)(undefined);
153
153
  let density = props.density || 'regular';
154
- let layout = (0, $7lS7h$useMemo)(()=>new (0, $7lS7h$TableLayout)({
154
+ let layout = (0, $7lS7h$useMemo)(()=>new (0, $5fb43af69b290859$export$725d101278f5a47b)({
155
155
  // If props.rowHeight is auto, then use estimated heights based on scale, otherwise use fixed heights.
156
156
  rowHeight: props.overflowMode === 'wrap' ? null : $bd013581c0a4b065$var$ROW_HEIGHTS[density][scale],
157
157
  estimatedRowHeight: props.overflowMode === 'wrap' ? $bd013581c0a4b065$var$ROW_HEIGHTS[density][scale] : null,
158
158
  headingHeight: props.overflowMode === 'wrap' ? null : $bd013581c0a4b065$var$DEFAULT_HEADER_HEIGHT[scale],
159
- estimatedHeadingHeight: props.overflowMode === 'wrap' ? $bd013581c0a4b065$var$DEFAULT_HEADER_HEIGHT[scale] : null,
160
- scrollContainer: 'body',
161
- enableEmptyState: true
159
+ estimatedHeadingHeight: props.overflowMode === 'wrap' ? $bd013581c0a4b065$var$DEFAULT_HEADER_HEIGHT[scale] : null
162
160
  }), // don't recompute when state.collection changes, only used for initial value
163
161
  // eslint-disable-next-line react-hooks/exhaustive-deps
164
162
  [
@@ -8,6 +8,7 @@ import "./vars.42570ef3.css";
8
8
  import $7lS7h$table_vars_cssmodulejs from "./table_vars_css.module.js";
9
9
  import "./table.b13eee90.css";
10
10
  import $7lS7h$table_cssmodulejs from "./table_css.module.js";
11
+ import {TableViewLayout as $5fb43af69b290859$export$725d101278f5a47b} from "./TableViewLayout.module.js";
11
12
  import $7lS7h$spectrumiconsuiArrowDownSmall from "@spectrum-icons/ui/ArrowDownSmall";
12
13
  import {Checkbox as $7lS7h$Checkbox} from "@react-spectrum/checkbox";
13
14
  import $7lS7h$spectrumiconsuiChevronDownMedium from "@spectrum-icons/ui/ChevronDownMedium";
@@ -24,7 +25,6 @@ import $7lS7h$spectrumiconsuiListGripper from "@spectrum-icons/ui/ListGripper";
24
25
  import {ListKeyboardDelegate as $7lS7h$ListKeyboardDelegate} from "@react-aria/selection";
25
26
  import {ProgressCircle as $7lS7h$ProgressCircle} from "@react-spectrum/progress";
26
27
  import $7lS7h$react, {useContext as $7lS7h$useContext, useRef as $7lS7h$useRef, useEffect as $7lS7h$useEffect, useState as $7lS7h$useState, useMemo as $7lS7h$useMemo, useCallback as $7lS7h$useCallback} from "react";
27
- import {TableLayout as $7lS7h$TableLayout} from "@react-stately/layout";
28
28
  import {useTableColumnResizeState as $7lS7h$useTableColumnResizeState} from "@react-stately/table";
29
29
  import {TooltipTrigger as $7lS7h$TooltipTrigger, Tooltip as $7lS7h$Tooltip} from "@react-spectrum/tooltip";
30
30
  import {useButton as $7lS7h$useButton} from "@react-aria/button";
@@ -151,14 +151,12 @@ function $bd013581c0a4b065$var$TableViewBase(props, ref) {
151
151
  let headerRef = (0, $7lS7h$useRef)(undefined);
152
152
  let bodyRef = (0, $7lS7h$useRef)(undefined);
153
153
  let density = props.density || 'regular';
154
- let layout = (0, $7lS7h$useMemo)(()=>new (0, $7lS7h$TableLayout)({
154
+ let layout = (0, $7lS7h$useMemo)(()=>new (0, $5fb43af69b290859$export$725d101278f5a47b)({
155
155
  // If props.rowHeight is auto, then use estimated heights based on scale, otherwise use fixed heights.
156
156
  rowHeight: props.overflowMode === 'wrap' ? null : $bd013581c0a4b065$var$ROW_HEIGHTS[density][scale],
157
157
  estimatedRowHeight: props.overflowMode === 'wrap' ? $bd013581c0a4b065$var$ROW_HEIGHTS[density][scale] : null,
158
158
  headingHeight: props.overflowMode === 'wrap' ? null : $bd013581c0a4b065$var$DEFAULT_HEADER_HEIGHT[scale],
159
- estimatedHeadingHeight: props.overflowMode === 'wrap' ? $bd013581c0a4b065$var$DEFAULT_HEADER_HEIGHT[scale] : null,
160
- scrollContainer: 'body',
161
- enableEmptyState: true
159
+ estimatedHeadingHeight: props.overflowMode === 'wrap' ? $bd013581c0a4b065$var$DEFAULT_HEADER_HEIGHT[scale] : null
162
160
  }), // don't recompute when state.collection changes, only used for initial value
163
161
  // eslint-disable-next-line react-hooks/exhaustive-deps
164
162
  [