@react-stately/table 3.2.1-nightly.3349 → 3.2.1-nightly.3353

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js CHANGED
@@ -108,8 +108,9 @@ function $3122b463430f41b1$export$a870e6692ac5ccb2(dynamicColumns, availableSpac
108
108
 
109
109
 
110
110
 
111
- function $7aa22d80cd4ca621$export$cb895dcf85db1319(props) {
112
- const { columns: columns1 , getDefaultWidth: getDefaultWidth , tableWidth: defaultTableWidth = null } = props;
111
+ function $7aa22d80cd4ca621$export$cb895dcf85db1319(props, state) {
112
+ const { getDefaultWidth: getDefaultWidth , tableWidth: defaultTableWidth = null } = props;
113
+ const { columns: columns1 } = state;
113
114
  const columnsRef = $56JBj$react.useRef([]);
114
115
  const tableWidth = $56JBj$react.useRef(defaultTableWidth);
115
116
  const isResizing = $56JBj$react.useRef(null);
@@ -123,6 +124,7 @@ function $7aa22d80cd4ca621$export$cb895dcf85db1319(props) {
123
124
  const affectedColumnWidthsRef = $56JBj$react.useRef([]);
124
125
  const [resizedColumns, setResizedColumns] = $56JBj$react.useState(new Set());
125
126
  const resizedColumnsRef = $56JBj$react.useRef(resizedColumns);
127
+ const [currentlyResizingColumn, setCurrentlyResizingColumn] = $56JBj$react.useState(null);
126
128
  function setColumnWidthsForRef(newWidths) {
127
129
  columnWidthsRef.current = newWidths;
128
130
  // new map so that change detection is triggered
@@ -201,7 +203,8 @@ function $7aa22d80cd4ca621$export$cb895dcf85db1319(props) {
201
203
  }
202
204
  }
203
205
  }
204
- function onColumnResizeStart() {
206
+ function onColumnResizeStart(column) {
207
+ setCurrentlyResizingColumn(column.key);
205
208
  isResizing.current = true;
206
209
  startResizeContentWidth.current = $3122b463430f41b1$export$f61abf052f87399f(columnWidthsRef.current);
207
210
  }
@@ -210,7 +213,9 @@ function $7aa22d80cd4ca621$export$cb895dcf85db1319(props) {
210
213
  affectedColumnWidthsRef.current = widthsObj;
211
214
  props.onColumnResize && props.onColumnResize(affectedColumnWidthsRef.current);
212
215
  }
213
- function onColumnResizeEnd() {
216
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
217
+ function onColumnResizeEnd(column) {
218
+ setCurrentlyResizingColumn(null);
214
219
  isResizing.current = false;
215
220
  props.onColumnResizeEnd && props.onColumnResizeEnd(affectedColumnWidthsRef.current);
216
221
  affectedColumnWidthsRef.current = [];
@@ -290,7 +295,7 @@ function $7aa22d80cd4ca621$export$cb895dcf85db1319(props) {
290
295
  getColumnWidth: getColumnWidth,
291
296
  getColumnMinWidth: getColumnMinWidth,
292
297
  getColumnMaxWidth: getColumnMaxWidth,
293
- isResizingColumn: isResizing.current
298
+ currentlyResizingColumn: currentlyResizingColumn
294
299
  };
295
300
  }
296
301
 
@@ -533,6 +538,7 @@ const $e3f7784147dde23d$var$OPPOSITE_SORT_DIRECTION = {
533
538
  descending: 'ascending'
534
539
  };
535
540
  function $e3f7784147dde23d$export$907bcc6c48325fd6(props) {
541
+ let [isKeyboardNavigationDisabled, setKeyboardNavigationDisabled] = $56JBj$react.useState(false);
536
542
  let { selectionMode: selectionMode = 'none' } = props;
537
543
  let context = $56JBj$react.useMemo(()=>({
538
544
  showSelectionCheckboxes: props.showSelectionCheckboxes && selectionMode !== 'none',
@@ -556,6 +562,8 @@ function $e3f7784147dde23d$export$907bcc6c48325fd6(props) {
556
562
  selectionManager: selectionManager,
557
563
  showSelectionCheckboxes: props.showSelectionCheckboxes || false,
558
564
  sortDescriptor: props.sortDescriptor,
565
+ isKeyboardNavigationDisabled: isKeyboardNavigationDisabled,
566
+ setKeyboardNavigationDisabled: setKeyboardNavigationDisabled,
559
567
  sort (columnKey, direction) {
560
568
  var ref;
561
569
  props.onSortChange({
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-stately/table/src/index.ts","packages/@react-stately/table/src/useTableColumnResizeState.ts","packages/@react-stately/table/src/utils.ts","packages/@react-stately/table/src/useTableState.ts","packages/@react-stately/table/src/TableCollection.ts","packages/@react-stately/table/src/TableHeader.ts","packages/@react-stately/table/src/TableBody.ts","packages/@react-stately/table/src/Column.ts","packages/@react-stately/table/src/Row.ts","packages/@react-stately/table/src/Cell.ts"],"sourcesContent":["/*\n * Copyright 2020 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\nexport * from './useTableColumnResizeState';\nexport * from './utils';\nexport * from './useTableState';\nexport * from './TableHeader';\nexport * from './TableBody';\nexport * from './Column';\nexport * from './Row';\nexport * from './Cell';\nexport {Section} from '@react-stately/collections';\n","\nimport {ColumnProps} from '@react-types/table';\nimport {getContentWidth, getDynamicColumnWidths, getMaxWidth, getMinWidth, isStatic, parseStaticWidth} from './utils';\nimport {GridNode} from '@react-types/grid';\nimport {Key, MutableRefObject, useCallback, useRef, useState} from 'react';\n\nexport interface AffectedColumnWidth {\n /** The column key. */\n key: Key,\n /** The column width. */\n width: number\n}\nexport interface AffectedColumnWidths extends Array<AffectedColumnWidth> {}\n\nexport interface ColumnResizeState<T> {\n /** A ref whose current value is the state of all the column widths. */\n columnWidths: MutableRefObject<Map<Key, number>>,\n /** Setter for the table width. */\n setTableWidth: (width: number) => void,\n /** Trigger a resize and recalc. */\n onColumnResize: (column: GridNode<T>, width: number) => void,\n /** Callback for when onColumnResize has started. */\n onColumnResizeStart: () => void,\n /** Callback for when onColumnResize has ended. */\n onColumnResizeEnd: () => void,\n /** Getter for column width. */\n getColumnWidth(key: Key): number,\n /** Getter for column min width. */\n getColumnMinWidth(key: Key): number,\n /** Getter for column max widths. */\n getColumnMaxWidth(key: Key): number,\n /** Boolean for if a column is being resized. */\n isResizingColumn: boolean\n}\n\nexport interface ColumnResizeStateProps<T> {\n /** Collection of existing columns. */\n columns: GridNode<T>[],\n /** Callback to determine what the default width of a column should be. */\n getDefaultWidth?: (props) => string | number,\n /** Callback that is invoked during the entirety of the resize event. */\n onColumnResize?: (affectedColumnWidths: AffectedColumnWidths) => void,\n /** Callback that is invoked when the resize event is ended. */\n onColumnResizeEnd?: (affectedColumnWidths: AffectedColumnWidths) => void,\n /** The default table width. */\n tableWidth?: number\n}\n\nexport function useTableColumnResizeState<T>(props: ColumnResizeStateProps<T>): ColumnResizeState<T> {\n const {columns, getDefaultWidth, tableWidth: defaultTableWidth = null} = props;\n const columnsRef = useRef<GridNode<T>[]>([]);\n const tableWidth = useRef<number>(defaultTableWidth);\n const isResizing = useRef<boolean>(null);\n const startResizeContentWidth = useRef<number>();\n\n const [columnWidths, setColumnWidths] = useState<Map<Key, number>>(new Map(columns.map(col => [col.key, 0])));\n const columnWidthsRef = useRef<Map<Key, number>>(columnWidths);\n const affectedColumnWidthsRef = useRef<AffectedColumnWidths>([]);\n const [resizedColumns, setResizedColumns] = useState<Set<Key>>(new Set());\n const resizedColumnsRef = useRef<Set<Key>>(resizedColumns);\n\n function setColumnWidthsForRef(newWidths: Map<Key, number>) {\n columnWidthsRef.current = newWidths;\n // new map so that change detection is triggered\n setColumnWidths(newWidths);\n }\n /*\n returns the resolved column width in this order:\n previously calculated width -> controlled width prop -> uncontrolled defaultWidth prop -> dev assigned width -> default dynamic width\n */\n let getResolvedColumnWidth = useCallback((column: GridNode<T>): (number | string) => {\n let columnProps = column.props as ColumnProps<T>;\n return resizedColumns?.has(column.key) ? columnWidthsRef.current.get(column.key) : columnProps.width ?? columnProps.defaultWidth ?? getDefaultWidth?.(column.props) ?? '1fr';\n }, [getDefaultWidth, resizedColumns]);\n\n let getStaticAndDynamicColumns = useCallback((columns: GridNode<T>[]) : { staticColumns: GridNode<T>[], dynamicColumns: GridNode<T>[] } => columns.reduce((acc, column) => {\n let width = getResolvedColumnWidth(column);\n return isStatic(width) ? {...acc, staticColumns: [...acc.staticColumns, column]} : {...acc, dynamicColumns: [...acc.dynamicColumns, column]};\n }, {staticColumns: [], dynamicColumns: []}), [getResolvedColumnWidth]);\n\n let buildColumnWidths = useCallback((affectedColumns: GridNode<T>[], availableSpace: number): Map<Key, number> => {\n const widths = new Map<Key, number>();\n let remainingSpace = availableSpace;\n\n const {staticColumns, dynamicColumns} = getStaticAndDynamicColumns(affectedColumns);\n\n staticColumns.forEach(column => {\n let width = getResolvedColumnWidth(column);\n let w = parseStaticWidth(width, tableWidth.current);\n widths.set(column.key, w);\n remainingSpace -= w;\n });\n\n // dynamic columns\n if (dynamicColumns.length > 0) {\n const newColumnWidths = getDynamicColumnWidths(dynamicColumns, remainingSpace, tableWidth.current);\n for (let column of newColumnWidths) {\n widths.set(column.key, column.calculatedWidth);\n }\n }\n\n return widths;\n }, [getStaticAndDynamicColumns, getResolvedColumnWidth]);\n\n\n const prevColKeys = columnsRef.current.map(col => col.key);\n const colKeys = columns.map(col => col.key);\n // if the columns change, need to rebuild widths.\n if (prevColKeys.length !== colKeys.length || !colKeys.every((col, i) => col === prevColKeys[i])) {\n columnsRef.current = columns;\n const widths = buildColumnWidths(columns, tableWidth.current);\n setColumnWidthsForRef(widths);\n }\n\n function setTableWidth(width: number) {\n if (width && width !== tableWidth.current) {\n tableWidth.current = width;\n if (!isResizing.current) {\n const widths = buildColumnWidths(columns, width);\n setColumnWidthsForRef(widths);\n }\n }\n }\n\n function onColumnResizeStart() {\n isResizing.current = true;\n startResizeContentWidth.current = getContentWidth(columnWidthsRef.current);\n }\n\n function onColumnResize(column: GridNode<T>, width: number) {\n let widthsObj = resizeColumn(column, width);\n affectedColumnWidthsRef.current = widthsObj;\n props.onColumnResize && props.onColumnResize(affectedColumnWidthsRef.current);\n }\n\n function onColumnResizeEnd() {\n isResizing.current = false;\n props.onColumnResizeEnd && props.onColumnResizeEnd(affectedColumnWidthsRef.current);\n affectedColumnWidthsRef.current = [];\n\n let widths = new Map<Key, number>(columnWidthsRef.current);\n setColumnWidthsForRef(widths);\n }\n\n function resizeColumn(column: GridNode<T>, newWidth: number) : AffectedColumnWidths {\n let boundedWidth = Math.max(\n getMinWidth(column.props.minWidth, tableWidth.current),\n Math.min(Math.floor(newWidth), getMaxWidth(column.props.maxWidth, tableWidth.current)));\n\n // copy the columnWidths map and set the new width for the column being resized\n let widths = new Map<Key, number>(columnWidthsRef.current);\n widths.set(column.key, boundedWidth);\n\n // keep track of all columns that have been sized\n resizedColumnsRef.current.add(column.key);\n setResizedColumns(resizedColumnsRef.current);\n\n // get the columns affected by resize and remaining space\n const resizeIndex = columnsRef.current.findIndex(col => col.key === column.key);\n let affectedColumns = columnsRef.current.slice(resizeIndex + 1);\n\n // we only care about the columns that CAN be resized, we ignore static columns.\n let {dynamicColumns} = getStaticAndDynamicColumns(affectedColumns);\n\n // available space for affected columns\n let availableSpace = columnsRef.current.reduce((acc, column, index) => {\n if (index <= resizeIndex || isStatic(getResolvedColumnWidth(column))) {\n return acc - widths.get(column.key);\n }\n return acc;\n }, tableWidth.current);\n\n // merge the unaffected column widths and the recalculated column widths\n let recalculatedColumnWidths = buildColumnWidths(dynamicColumns, availableSpace);\n widths = new Map<Key, number>([...widths, ...recalculatedColumnWidths]);\n\n setColumnWidthsForRef(widths);\n\n /*\n when getting recalculated columns above, the column being resized is not considered \"recalculated\"\n so we need to add it to the list of affected columns\n */\n let allAffectedColumns = ([[column.key, boundedWidth], ...recalculatedColumnWidths] as [Key, number][]).map(([key, width]) => ({key, width}));\n return allAffectedColumns;\n }\n\n // This function is regenerated whenever columnWidthsRef.current changes in order to get the new correct ref value.\n let getColumnWidth = useCallback((key: Key): number => columnWidthsRef.current.get(key) ?? 0, [columnWidthsRef.current]);\n\n let getColumnMinWidth = useCallback((key: Key) => {\n const columnIndex = columns.findIndex(col => col.key === key);\n if (columnIndex === -1) {\n return;\n }\n return getMinWidth(columns[columnIndex].props.minWidth, tableWidth.current);\n }, [columns]);\n\n let getColumnMaxWidth = useCallback((key: Key) => {\n const columnIndex = columns.findIndex(col => col.key === key);\n if (columnIndex === -1) {\n return;\n }\n return getMaxWidth(columns[columnIndex].props.maxWidth, tableWidth.current);\n }, [columns]);\n\n return {\n columnWidths: columnWidthsRef,\n setTableWidth,\n onColumnResize,\n onColumnResizeStart,\n onColumnResizeEnd,\n getColumnWidth,\n getColumnMinWidth,\n getColumnMaxWidth,\n isResizingColumn: isResizing.current\n };\n}\n","import {GridNode} from '@react-types/grid';\nimport {Key} from 'react';\n\ntype mappedColumn<T> = GridNode<T> & {\n index: number,\n delta: number,\n calculatedWidth?: number\n};\n\nexport function getContentWidth(widths: Map<Key, number>): number {\n return Array.from(widths).map(e => e[1]).reduce((acc, cur) => acc + cur, 0);\n}\n\n// numbers and percents are considered static. *fr units or a lack of units are considered dynamic.\nexport function isStatic(width: number | string): boolean {\n return width != null && (!isNaN(width as number) || (String(width)).match(/^(\\d+)(?=%$)/) !== null);\n} \n\nfunction parseFractionalUnit(width: string): number {\n if (!width) {\n return 1;\n } \n let match = width.match(/^(\\d+)(?=fr$)/);\n // if width is the incorrect format, just deafult it to a 1fr\n if (!match) {\n console.warn(`width: ${width} is not a supported format, width should be a number (ex. 150), percentage (ex. '50%') or fr unit (ex. '2fr')`, \n 'defaulting to \\'1fr\\'');\n return 1;\n }\n return parseInt(match[0], 10);\n}\n\nexport function parseStaticWidth(width: number | string, tableWidth: number): number {\n if (typeof width === 'string') {\n let match = width.match(/^(\\d+)(?=%$)/);\n if (!match) {\n throw new Error('Only percentages or numbers are supported for static column widths');\n }\n return tableWidth * (parseInt(match[0], 10) / 100);\n }\n return width;\n}\n \n \nexport function getMaxWidth(maxWidth: number | string, tableWidth: number): number {\n return maxWidth != null\n ? parseStaticWidth(maxWidth, tableWidth)\n : Infinity;\n}\n\nexport function getMinWidth(minWidth: number | string, tableWidth: number): number {\n return minWidth != null\n ? parseStaticWidth(minWidth, tableWidth)\n : 75;\n}\n\nfunction mapDynamicColumns<T>(dynamicColumns: GridNode<T>[], availableSpace: number, tableWidth: number): mappedColumn<T>[] {\n let fractions = dynamicColumns.reduce(\n (sum, column) => sum + parseFractionalUnit(column.props.defaultWidth),\n 0\n );\n \n let columns = dynamicColumns.map((column, index) => {\n const targetWidth =\n (parseFractionalUnit(column.props.defaultWidth) * availableSpace) / fractions;\n const delta = Math.max(\n getMinWidth(column.props.minWidth, tableWidth) - targetWidth,\n targetWidth - getMaxWidth(column.props.maxWidth, tableWidth)\n );\n\n return {\n ...column,\n index,\n delta \n };\n });\n \n return columns;\n}\n\nfunction findDynamicColumnWidths<T>(dynamicColumns: mappedColumn<T>[], availableSpace: number, tableWidth: number): mappedColumn<T>[] {\n let fractions = dynamicColumns.reduce(\n (sum, col) => sum + parseFractionalUnit(col.props.defaultWidth),\n 0\n );\n\n const columns = dynamicColumns.map((column) => {\n const targetWidth =\n (parseFractionalUnit(column.props.defaultWidth) * availableSpace) / fractions;\n let width = Math.max(\n getMinWidth(column.props.minWidth, tableWidth),\n Math.min(Math.floor(targetWidth), getMaxWidth(column.props.maxWidth, tableWidth))\n );\n column.calculatedWidth = width;\n availableSpace -= width;\n fractions -= parseFractionalUnit(column.props.defaultWidth);\n return column;\n });\n\n return columns;\n} \n \nexport function getDynamicColumnWidths<T>(dynamicColumns: GridNode<T>[], availableSpace: number, tableWidth: number) {\n let columns = mapDynamicColumns(dynamicColumns, availableSpace, tableWidth);\n \n columns.sort((a, b) => b.delta - a.delta);\n columns = findDynamicColumnWidths(columns, availableSpace, tableWidth);\n columns.sort((a, b) => a.index - b.index);\n \n return columns;\n}\n","/*\n * Copyright 2020 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 {CollectionBase, Node, SelectionMode, Sortable, SortDescriptor, SortDirection} from '@react-types/shared';\nimport {GridState, useGridState} from '@react-stately/grid';\nimport {TableCollection as ITableCollection} from '@react-types/table';\nimport {Key, useMemo} from 'react';\nimport {MultipleSelectionStateProps} from '@react-stately/selection';\nimport {TableCollection} from './TableCollection';\nimport {useCollection} from '@react-stately/collections';\n\nexport interface TableState<T> extends GridState<T, ITableCollection<T>> {\n /** A collection of rows and columns in the table. */\n collection: ITableCollection<T>,\n /** Whether the row selection checkboxes should be displayed. */\n showSelectionCheckboxes: boolean,\n /** The current sorted column and direction. */\n sortDescriptor: SortDescriptor,\n /** Calls the provided onSortChange handler with the provided column key and sort direction. */\n sort(columnKey: Key, direction?: 'ascending' | 'descending'): void\n}\n\nexport interface CollectionBuilderContext<T> {\n showSelectionCheckboxes: boolean,\n selectionMode: SelectionMode,\n columns: Node<T>[]\n}\n\nexport interface TableStateProps<T> extends CollectionBase<T>, MultipleSelectionStateProps, Sortable {\n /** Whether the row selection checkboxes should be displayed. */\n showSelectionCheckboxes?: boolean\n}\n\nconst OPPOSITE_SORT_DIRECTION = {\n ascending: 'descending' as SortDirection,\n descending: 'ascending' as SortDirection\n};\n\n/**\n * Provides state management for a table component. Handles building a collection\n * of columns and rows from props. In addition, it tracks row selection and manages sort order changes.\n */\nexport function useTableState<T extends object>(props: TableStateProps<T>): TableState<T> {\n let {selectionMode = 'none'} = props;\n\n let context = useMemo(() => ({\n showSelectionCheckboxes: props.showSelectionCheckboxes && selectionMode !== 'none',\n selectionMode,\n columns: []\n }), [props.children, props.showSelectionCheckboxes, selectionMode]);\n\n let collection = useCollection<T, TableCollection<T>>(\n props,\n (nodes, prev) => new TableCollection(nodes, prev, context),\n context\n );\n let {disabledKeys, selectionManager} = useGridState({...props, collection});\n\n return {\n collection,\n disabledKeys,\n selectionManager,\n showSelectionCheckboxes: props.showSelectionCheckboxes || false,\n sortDescriptor: props.sortDescriptor,\n sort(columnKey: Key, direction?: 'ascending' | 'descending') {\n props.onSortChange({\n column: columnKey,\n direction: direction ?? (props.sortDescriptor?.column === columnKey\n ? OPPOSITE_SORT_DIRECTION[props.sortDescriptor.direction]\n : 'ascending')\n });\n }\n };\n}\n","/*\n * Copyright 2020 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 */\nimport {GridCollection} from '@react-stately/grid';\nimport {GridNode} from '@react-types/grid';\nimport {Key} from 'react';\n\ninterface GridCollectionOptions {\n showSelectionCheckboxes?: boolean\n}\n\nconst ROW_HEADER_COLUMN_KEY = 'row-header-column-' + Math.random().toString(36).slice(2);\n\nfunction buildHeaderRows<T>(keyMap: Map<Key, GridNode<T>>, columnNodes: GridNode<T>[]): GridNode<T>[] {\n let columns = [];\n let seen = new Map();\n for (let column of columnNodes) {\n let parentKey = column.parentKey;\n let col = [column];\n\n while (parentKey) {\n let parent: GridNode<T> = keyMap.get(parentKey);\n\n // If we've already seen this parent, than it is shared\n // with a previous column. If the current column is taller\n // than the previous column, than we need to shift the parent\n // in the previous column so it's level with the current column.\n if (seen.has(parent)) {\n parent.colspan++;\n\n let {column, index} = seen.get(parent);\n if (index > col.length) {\n break;\n }\n\n for (let i = index; i < col.length; i++) {\n column.splice(i, 0, null);\n }\n\n // Adjust shifted indices\n for (let i = col.length; i < column.length; i++) {\n if (column[i] && seen.has(column[i])) {\n seen.get(column[i]).index = i;\n }\n }\n } else {\n parent.colspan = 1;\n col.push(parent);\n seen.set(parent, {column: col, index: col.length - 1});\n }\n\n parentKey = parent.parentKey;\n }\n\n columns.push(col);\n column.index = columns.length - 1;\n }\n\n let maxLength = Math.max(...columns.map(c => c.length));\n let headerRows = Array(maxLength).fill(0).map(() => []);\n\n // Convert columns into rows.\n let colIndex = 0;\n for (let column of columns) {\n let i = maxLength - 1;\n for (let item of column) {\n if (item) {\n // Fill the space up until the current column with a placeholder\n let row = headerRows[i];\n let rowLength = row.reduce((p, c) => p + c.colspan, 0);\n if (rowLength < colIndex) {\n let placeholder: GridNode<T> = {\n type: 'placeholder',\n key: 'placeholder-' + item.key,\n colspan: colIndex - rowLength,\n index: rowLength,\n value: null,\n rendered: null,\n level: i,\n hasChildNodes: false,\n childNodes: [],\n textValue: null\n };\n\n if (row.length > 0) {\n row[row.length - 1].nextKey = placeholder.key;\n placeholder.prevKey = row[row.length - 1].key;\n }\n\n row.push(placeholder);\n }\n\n if (row.length > 0) {\n row[row.length - 1].nextKey = item.key;\n item.prevKey = row[row.length - 1].key;\n }\n\n item.level = i;\n item.index = colIndex;\n row.push(item);\n }\n\n i--;\n }\n\n colIndex++;\n }\n\n // Add placeholders at the end of each row that is shorter than the maximum\n let i = 0;\n for (let row of headerRows) {\n let rowLength = row.reduce((p, c) => p + c.colspan, 0);\n if (rowLength < columnNodes.length) {\n let placeholder: GridNode<T> = {\n type: 'placeholder',\n key: 'placeholder-' + row[row.length - 1].key,\n colspan: columnNodes.length - rowLength,\n index: rowLength,\n value: null,\n rendered: null,\n level: i,\n hasChildNodes: false,\n childNodes: [],\n textValue: null,\n prevKey: row[row.length - 1].key\n };\n\n row.push(placeholder);\n }\n\n i++;\n }\n\n return headerRows.map((childNodes, index) => {\n let row: GridNode<T> = {\n type: 'headerrow',\n key: 'headerrow-' + index,\n index,\n value: null,\n rendered: null,\n level: 0,\n hasChildNodes: true,\n childNodes,\n textValue: null\n };\n\n return row;\n });\n}\n\nexport class TableCollection<T> extends GridCollection<T> {\n headerRows: GridNode<T>[];\n columns: GridNode<T>[];\n rowHeaderColumnKeys: Set<Key>;\n body: GridNode<T>;\n\n constructor(nodes: Iterable<GridNode<T>>, prev?: TableCollection<T>, opts?: GridCollectionOptions) {\n let rowHeaderColumnKeys: Set<Key> = new Set();\n let body: GridNode<T>;\n let columns = [];\n\n // Add cell for selection checkboxes if needed.\n if (opts?.showSelectionCheckboxes) {\n let rowHeaderColumn: GridNode<T> = {\n type: 'column',\n key: ROW_HEADER_COLUMN_KEY,\n value: null,\n textValue: '',\n level: 0,\n index: 0,\n hasChildNodes: false,\n rendered: null,\n childNodes: [],\n props: {\n isSelectionCell: true\n }\n };\n\n columns.unshift(rowHeaderColumn);\n }\n\n let rows = [];\n let columnKeyMap = new Map();\n let visit = (node: GridNode<T>) => {\n switch (node.type) {\n case 'body':\n body = node;\n break;\n case 'column':\n columnKeyMap.set(node.key, node);\n if (!node.hasChildNodes) {\n columns.push(node);\n\n if (node.props.isRowHeader) {\n rowHeaderColumnKeys.add(node.key);\n }\n }\n break;\n case 'item':\n rows.push(node);\n return; // do not go into childNodes\n }\n for (let child of node.childNodes) {\n visit(child);\n }\n };\n\n for (let node of nodes) {\n visit(node);\n }\n\n let headerRows = buildHeaderRows(columnKeyMap, columns) as GridNode<T>[];\n headerRows.forEach((row, i) => rows.splice(i, 0, row));\n\n super({\n columnCount: columns.length,\n items: rows,\n visitNode: node => {\n node.column = columns[node.index];\n return node;\n }\n });\n this.columns = columns;\n this.rowHeaderColumnKeys = rowHeaderColumnKeys;\n this.body = body;\n this.headerRows = headerRows;\n\n // Default row header column to the first one.\n if (this.rowHeaderColumnKeys.size === 0) {\n this.rowHeaderColumnKeys.add(this.columns[opts?.showSelectionCheckboxes ? 1 : 0].key);\n }\n }\n\n *[Symbol.iterator]() {\n yield* this.body.childNodes;\n }\n\n get size() {\n return [...this.body.childNodes].length;\n }\n\n getKeys() {\n return this.keyMap.keys();\n }\n\n getKeyBefore(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.prevKey : null;\n }\n\n getKeyAfter(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.nextKey : null;\n }\n\n getFirstKey() {\n return [...this.body.childNodes][0]?.key;\n }\n\n getLastKey() {\n let rows = [...this.body.childNodes];\n return rows[rows.length - 1]?.key;\n }\n\n getItem(key: Key) {\n return this.keyMap.get(key);\n }\n\n at(idx: number) {\n const keys = [...this.getKeys()];\n return this.getItem(keys[idx]);\n }\n}\n","/*\n * Copyright 2020 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 {PartialNode} from '@react-stately/collections';\nimport React, {ReactElement} from 'react';\nimport {TableHeaderProps} from '@react-types/table';\n\nfunction TableHeader<T>(props: TableHeaderProps<T>): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nTableHeader.getCollectionNode = function* getCollectionNode<T>(props: TableHeaderProps<T>): Generator<PartialNode<T>, void, any> {\n let {children, columns} = props;\n if (typeof children === 'function') {\n if (!columns) {\n throw new Error('props.children was a function but props.columns is missing');\n }\n\n for (let column of columns) {\n yield {\n type: 'column',\n value: column,\n renderer: children\n };\n }\n } else {\n let columns: PartialNode<T>[] = [];\n React.Children.forEach(children, column => {\n columns.push({\n type: 'column',\n element: column\n });\n });\n\n yield* columns;\n }\n};\n\n/**\n * A TableHeader is a container for the Column elements in a Table. Columns can be statically defined\n * as children, or generated dynamically using a function based on the data passed to the `columns` prop.\n */\n// We don't want getCollectionNode to show up in the type definition\nlet _TableHeader = TableHeader as <T>(props: TableHeaderProps<T>) => JSX.Element;\nexport {_TableHeader as TableHeader};\n","/*\n * Copyright 2020 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 {PartialNode} from '@react-stately/collections';\nimport React, {ReactElement} from 'react';\nimport {TableBodyProps} from '@react-types/table';\n\nfunction TableBody<T>(props: TableBodyProps<T>): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nTableBody.getCollectionNode = function* getCollectionNode<T>(props: TableBodyProps<T>): Generator<PartialNode<T>> {\n let {children, items} = props;\n yield {\n type: 'body',\n hasChildNodes: true,\n props,\n *childNodes() {\n if (typeof children === 'function') {\n if (!items) {\n throw new Error('props.children was a function but props.items is missing');\n }\n\n for (let item of items) {\n yield {\n type: 'item',\n value: item,\n renderer: children\n };\n }\n } else {\n let items: PartialNode<T>[] = [];\n React.Children.forEach(children, item => {\n items.push({\n type: 'item',\n element: item\n });\n });\n\n yield* items;\n }\n }\n };\n};\n\n/**\n * A TableBody is a container for the Row elements of a Table. Rows can be statically defined\n * as children, or generated dynamically using a function based on the data passed to the `items` prop.\n */\n// We don't want getCollectionNode to show up in the type definition\nlet _TableBody = TableBody as <T>(props: TableBodyProps<T>) => JSX.Element;\nexport {_TableBody as TableBody};\n","/*\n * Copyright 2020 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 {CollectionBuilderContext} from './useTableState';\nimport {ColumnProps} from '@react-types/table';\nimport {GridNode} from '@react-types/grid';\nimport {PartialNode} from '@react-stately/collections';\nimport React, {ReactElement} from 'react';\n\nfunction Column<T>(props: ColumnProps<T>): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nColumn.getCollectionNode = function* getCollectionNode<T>(props: ColumnProps<T>, context: CollectionBuilderContext<T>): Generator<PartialNode<T>, void, GridNode<T>[]> {\n let {title, children, childColumns} = props;\n\n let rendered = title || children;\n let textValue = props.textValue || (typeof rendered === 'string' ? rendered : '') || props['aria-label'];\n\n let fullNodes = yield {\n type: 'column',\n hasChildNodes: !!childColumns || (title && React.Children.count(children) > 0),\n rendered,\n textValue,\n props,\n *childNodes() {\n if (childColumns) {\n for (let child of childColumns) {\n yield {\n type: 'column',\n value: child\n };\n }\n } else if (title) {\n let childColumns: PartialNode<T>[] = [];\n React.Children.forEach(children, child => {\n childColumns.push({\n type: 'column',\n element: child as ReactElement<ColumnProps<T>>\n });\n });\n\n yield* childColumns;\n }\n },\n shouldInvalidate(newContext: CollectionBuilderContext<T>) {\n // This is a bit of a hack, but it works.\n // If this method is called, then there's a cached version of this node available.\n // But, we need to keep the list of columns in the new context up to date.\n updateContext(newContext);\n return false;\n }\n };\n\n let updateContext = (context: CollectionBuilderContext<T>) => {\n // register leaf columns on the context so that <Row> can access them\n for (let node of fullNodes) {\n if (!node.hasChildNodes) {\n context.columns.push(node);\n }\n }\n };\n\n updateContext(context);\n};\n\n/**\n * A Column represents a field of each item within a Table. Columns may also contain nested\n * Column elements to represent column groups. Nested columns can be statically defined as\n * children, or dynamically generated using a function based on the `childColumns` prop.\n */\n// We don't want getCollectionNode to show up in the type definition\nlet _Column = Column as <T>(props: ColumnProps<T>) => JSX.Element;\nexport {_Column as Column};\n","/*\n * Copyright 2020 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 {CollectionBuilderContext} from './useTableState';\nimport {PartialNode} from '@react-stately/collections';\nimport React, {ReactElement} from 'react';\nimport {RowProps} from '@react-types/table';\n\nfunction Row(props: RowProps): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nRow.getCollectionNode = function* getCollectionNode<T>(props: RowProps, context: CollectionBuilderContext<T>): Generator<PartialNode<T>> {\n let {children, textValue} = props;\n\n yield {\n type: 'item',\n props: props,\n textValue,\n 'aria-label': props['aria-label'],\n hasChildNodes: true,\n *childNodes() {\n // Process cells first\n if (context.showSelectionCheckboxes && context.selectionMode !== 'none') {\n yield {\n type: 'cell',\n key: 'header', // this is combined with the row key by CollectionBuilder\n props: {\n isSelectionCell: true\n }\n };\n }\n\n if (typeof children === 'function') {\n for (let column of context.columns) {\n yield {\n type: 'cell',\n element: children(column.key),\n key: column.key // this is combined with the row key by CollectionBuilder\n };\n }\n } else {\n let cells: PartialNode<T>[] = [];\n React.Children.forEach(children, cell => {\n cells.push({\n type: 'cell',\n element: cell\n });\n });\n\n if (cells.length !== context.columns.length) {\n throw new Error(`Cell count must match column count. Found ${cells.length} cells and ${context.columns.length} columns.`);\n }\n\n yield* cells;\n }\n },\n shouldInvalidate(newContext: CollectionBuilderContext<T>) {\n // Invalidate all rows if the columns changed.\n return newContext.columns.length !== context.columns.length ||\n newContext.columns.some((c, i) => c.key !== context.columns[i].key) ||\n newContext.showSelectionCheckboxes !== context.showSelectionCheckboxes ||\n newContext.selectionMode !== context.selectionMode;\n }\n };\n};\n\n/**\n * A Row represents a single item in a Table and contains Cell elements for each column.\n * Cells can be statically defined as children, or generated dynamically using a function\n * based on the columns defined in the TableHeader.\n */\n// We don't want getCollectionNode to show up in the type definition\nlet _Row = Row as (props: RowProps) => JSX.Element;\nexport {_Row as Row};\n","/*\n * Copyright 2020 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 {CellProps} from '@react-types/table';\nimport {PartialNode} from '@react-stately/collections';\nimport {ReactElement} from 'react';\n\nfunction Cell(props: CellProps): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nCell.getCollectionNode = function* getCollectionNode<T>(props: CellProps): Generator<PartialNode<T>> {\n let {children} = props;\n\n let textValue = props.textValue || (typeof children === 'string' ? children : '') || props['aria-label'] || '';\n yield {\n type: 'cell',\n props: props,\n rendered: children,\n textValue,\n 'aria-label': props['aria-label'],\n hasChildNodes: false\n };\n};\n\n/**\n * A Cell represents the value of a single Column within a Table Row.\n */\n// We don't want getCollectionNode to show up in the type definition\nlet _Cell = Cell as (props: CellProps) => JSX.Element;\nexport {_Cell as Cell};\n"],"names":[],"version":3,"file":"main.js.map"}
1
+ {"mappings":"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","sources":["packages/@react-stately/table/src/index.ts","packages/@react-stately/table/src/useTableColumnResizeState.ts","packages/@react-stately/table/src/utils.ts","packages/@react-stately/table/src/useTableState.ts","packages/@react-stately/table/src/TableCollection.ts","packages/@react-stately/table/src/TableHeader.ts","packages/@react-stately/table/src/TableBody.ts","packages/@react-stately/table/src/Column.ts","packages/@react-stately/table/src/Row.ts","packages/@react-stately/table/src/Cell.ts"],"sourcesContent":["/*\n * Copyright 2020 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\nexport * from './useTableColumnResizeState';\nexport * from './utils';\nexport * from './useTableState';\nexport * from './TableHeader';\nexport * from './TableBody';\nexport * from './Column';\nexport * from './Row';\nexport * from './Cell';\nexport {Section} from '@react-stately/collections';\n","\nimport {ColumnProps} from '@react-types/table';\nimport {getContentWidth, getDynamicColumnWidths, getMaxWidth, getMinWidth, isStatic, parseStaticWidth} from './utils';\nimport {GridNode} from '@react-types/grid';\nimport {Key, MutableRefObject, useCallback, useRef, useState} from 'react';\n\nexport interface AffectedColumnWidth {\n /** The column key. */\n key: Key,\n /** The column width. */\n width: number\n}\nexport interface AffectedColumnWidths extends Array<AffectedColumnWidth> {}\n\nexport interface ColumnResizeState<T> {\n /** A ref whose current value is the state of all the column widths. */\n columnWidths: MutableRefObject<Map<Key, number>>,\n /** Setter for the table width. */\n setTableWidth: (width: number) => void,\n /** Trigger a resize and recalculation. */\n onColumnResize: (column: GridNode<T>, width: number) => void,\n /** Callback for when onColumnResize has started. */\n onColumnResizeStart: (column: GridNode<T>) => void,\n /** Callback for when onColumnResize has ended. */\n onColumnResizeEnd: (column: GridNode<T>) => void,\n /** Getter for column width. */\n getColumnWidth: (key: Key) => number,\n /** Getter for column min width. */\n getColumnMinWidth: (key: Key) => number,\n /** Getter for column max widths. */\n getColumnMaxWidth: (key: Key) => number,\n /** Key of column currently being resized. */\n currentlyResizingColumn: Key | null\n}\n\nexport interface ColumnResizeStateProps {\n /** Callback to determine what the default width of a column should be. */\n getDefaultWidth?: (props) => string | number,\n /** Callback that is invoked during the entirety of the resize event. */\n onColumnResize?: (affectedColumnWidths: AffectedColumnWidths) => void,\n /** Callback that is invoked when the resize event is ended. */\n onColumnResizeEnd?: (affectedColumnWidths: AffectedColumnWidths) => void,\n /** The default table width. */\n tableWidth?: number\n}\n\ninterface ColumnState<T> {\n columns: GridNode<T>[]\n}\n\nexport function useTableColumnResizeState<T>(props: ColumnResizeStateProps, state: ColumnState<T>): ColumnResizeState<T> {\n const {getDefaultWidth, tableWidth: defaultTableWidth = null} = props;\n const {columns} = state;\n const columnsRef = useRef<GridNode<T>[]>([]);\n const tableWidth = useRef<number>(defaultTableWidth);\n const isResizing = useRef<boolean>(null);\n const startResizeContentWidth = useRef<number>();\n\n const [columnWidths, setColumnWidths] = useState<Map<Key, number>>(new Map(columns.map(col => [col.key, 0])));\n const columnWidthsRef = useRef<Map<Key, number>>(columnWidths);\n const affectedColumnWidthsRef = useRef<AffectedColumnWidths>([]);\n const [resizedColumns, setResizedColumns] = useState<Set<Key>>(new Set());\n const resizedColumnsRef = useRef<Set<Key>>(resizedColumns);\n\n const [currentlyResizingColumn, setCurrentlyResizingColumn] = useState<Key>(null);\n\n function setColumnWidthsForRef(newWidths: Map<Key, number>) {\n columnWidthsRef.current = newWidths;\n // new map so that change detection is triggered\n setColumnWidths(newWidths);\n }\n /*\n returns the resolved column width in this order:\n previously calculated width -> controlled width prop -> uncontrolled defaultWidth prop -> dev assigned width -> default dynamic width\n */\n let getResolvedColumnWidth = useCallback((column: GridNode<T>): (number | string) => {\n let columnProps = column.props as ColumnProps<T>;\n return resizedColumns?.has(column.key) ? columnWidthsRef.current.get(column.key) : columnProps.width ?? columnProps.defaultWidth ?? getDefaultWidth?.(column.props) ?? '1fr';\n }, [getDefaultWidth, resizedColumns]);\n\n let getStaticAndDynamicColumns = useCallback((columns: GridNode<T>[]) : { staticColumns: GridNode<T>[], dynamicColumns: GridNode<T>[] } => columns.reduce((acc, column) => {\n let width = getResolvedColumnWidth(column);\n return isStatic(width) ? {...acc, staticColumns: [...acc.staticColumns, column]} : {...acc, dynamicColumns: [...acc.dynamicColumns, column]};\n }, {staticColumns: [], dynamicColumns: []}), [getResolvedColumnWidth]);\n\n let buildColumnWidths = useCallback((affectedColumns: GridNode<T>[], availableSpace: number): Map<Key, number> => {\n const widths = new Map<Key, number>();\n let remainingSpace = availableSpace;\n\n const {staticColumns, dynamicColumns} = getStaticAndDynamicColumns(affectedColumns);\n\n staticColumns.forEach(column => {\n let width = getResolvedColumnWidth(column);\n let w = parseStaticWidth(width, tableWidth.current);\n widths.set(column.key, w);\n remainingSpace -= w;\n });\n\n // dynamic columns\n if (dynamicColumns.length > 0) {\n const newColumnWidths = getDynamicColumnWidths(dynamicColumns, remainingSpace, tableWidth.current);\n for (let column of newColumnWidths) {\n widths.set(column.key, column.calculatedWidth);\n }\n }\n\n return widths;\n }, [getStaticAndDynamicColumns, getResolvedColumnWidth]);\n\n\n const prevColKeys = columnsRef.current.map(col => col.key);\n const colKeys = columns.map(col => col.key);\n // if the columns change, need to rebuild widths.\n if (prevColKeys.length !== colKeys.length || !colKeys.every((col, i) => col === prevColKeys[i])) {\n columnsRef.current = columns;\n const widths = buildColumnWidths(columns, tableWidth.current);\n setColumnWidthsForRef(widths);\n }\n\n function setTableWidth(width: number) {\n if (width && width !== tableWidth.current) {\n tableWidth.current = width;\n if (!isResizing.current) {\n const widths = buildColumnWidths(columns, width);\n setColumnWidthsForRef(widths);\n }\n }\n }\n\n function onColumnResizeStart(column: GridNode<T>) {\n setCurrentlyResizingColumn(column.key);\n isResizing.current = true;\n startResizeContentWidth.current = getContentWidth(columnWidthsRef.current);\n }\n\n function onColumnResize(column: GridNode<T>, width: number) {\n let widthsObj = resizeColumn(column, width);\n affectedColumnWidthsRef.current = widthsObj;\n props.onColumnResize && props.onColumnResize(affectedColumnWidthsRef.current);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function onColumnResizeEnd(column: GridNode<T>) {\n setCurrentlyResizingColumn(null);\n isResizing.current = false;\n props.onColumnResizeEnd && props.onColumnResizeEnd(affectedColumnWidthsRef.current);\n affectedColumnWidthsRef.current = [];\n\n let widths = new Map<Key, number>(columnWidthsRef.current);\n setColumnWidthsForRef(widths);\n }\n\n function resizeColumn(column: GridNode<T>, newWidth: number) : AffectedColumnWidths {\n let boundedWidth = Math.max(\n getMinWidth(column.props.minWidth, tableWidth.current),\n Math.min(Math.floor(newWidth), getMaxWidth(column.props.maxWidth, tableWidth.current)));\n\n // copy the columnWidths map and set the new width for the column being resized\n let widths = new Map<Key, number>(columnWidthsRef.current);\n widths.set(column.key, boundedWidth);\n\n // keep track of all columns that have been sized\n resizedColumnsRef.current.add(column.key);\n setResizedColumns(resizedColumnsRef.current);\n\n // get the columns affected by resize and remaining space\n const resizeIndex = columnsRef.current.findIndex(col => col.key === column.key);\n let affectedColumns = columnsRef.current.slice(resizeIndex + 1);\n\n // we only care about the columns that CAN be resized, we ignore static columns.\n let {dynamicColumns} = getStaticAndDynamicColumns(affectedColumns);\n\n // available space for affected columns\n let availableSpace = columnsRef.current.reduce((acc, column, index) => {\n if (index <= resizeIndex || isStatic(getResolvedColumnWidth(column))) {\n return acc - widths.get(column.key);\n }\n return acc;\n }, tableWidth.current);\n\n // merge the unaffected column widths and the recalculated column widths\n let recalculatedColumnWidths = buildColumnWidths(dynamicColumns, availableSpace);\n widths = new Map<Key, number>([...widths, ...recalculatedColumnWidths]);\n\n setColumnWidthsForRef(widths);\n\n /*\n when getting recalculated columns above, the column being resized is not considered \"recalculated\"\n so we need to add it to the list of affected columns\n */\n let allAffectedColumns = ([[column.key, boundedWidth], ...recalculatedColumnWidths] as [Key, number][]).map(([key, width]) => ({key, width}));\n return allAffectedColumns;\n }\n\n // This function is regenerated whenever columnWidthsRef.current changes in order to get the new correct ref value.\n let getColumnWidth = useCallback((key: Key): number => columnWidthsRef.current.get(key) ?? 0, [columnWidthsRef.current]);\n\n let getColumnMinWidth = useCallback((key: Key) => {\n const columnIndex = columns.findIndex(col => col.key === key);\n if (columnIndex === -1) {\n return;\n }\n return getMinWidth(columns[columnIndex].props.minWidth, tableWidth.current);\n }, [columns]);\n\n let getColumnMaxWidth = useCallback((key: Key) => {\n const columnIndex = columns.findIndex(col => col.key === key);\n if (columnIndex === -1) {\n return;\n }\n return getMaxWidth(columns[columnIndex].props.maxWidth, tableWidth.current);\n }, [columns]);\n\n return {\n columnWidths: columnWidthsRef,\n setTableWidth,\n onColumnResize,\n onColumnResizeStart,\n onColumnResizeEnd,\n getColumnWidth,\n getColumnMinWidth,\n getColumnMaxWidth,\n currentlyResizingColumn\n };\n}\n","import {GridNode} from '@react-types/grid';\nimport {Key} from 'react';\n\ntype mappedColumn<T> = GridNode<T> & {\n index: number,\n delta: number,\n calculatedWidth?: number\n};\n\nexport function getContentWidth(widths: Map<Key, number>): number {\n return Array.from(widths).map(e => e[1]).reduce((acc, cur) => acc + cur, 0);\n}\n\n// numbers and percents are considered static. *fr units or a lack of units are considered dynamic.\nexport function isStatic(width: number | string): boolean {\n return width != null && (!isNaN(width as number) || (String(width)).match(/^(\\d+)(?=%$)/) !== null);\n} \n\nfunction parseFractionalUnit(width: string): number {\n if (!width) {\n return 1;\n } \n let match = width.match(/^(\\d+)(?=fr$)/);\n // if width is the incorrect format, just deafult it to a 1fr\n if (!match) {\n console.warn(`width: ${width} is not a supported format, width should be a number (ex. 150), percentage (ex. '50%') or fr unit (ex. '2fr')`, \n 'defaulting to \\'1fr\\'');\n return 1;\n }\n return parseInt(match[0], 10);\n}\n\nexport function parseStaticWidth(width: number | string, tableWidth: number): number {\n if (typeof width === 'string') {\n let match = width.match(/^(\\d+)(?=%$)/);\n if (!match) {\n throw new Error('Only percentages or numbers are supported for static column widths');\n }\n return tableWidth * (parseInt(match[0], 10) / 100);\n }\n return width;\n}\n \n \nexport function getMaxWidth(maxWidth: number | string, tableWidth: number): number {\n return maxWidth != null\n ? parseStaticWidth(maxWidth, tableWidth)\n : Infinity;\n}\n\nexport function getMinWidth(minWidth: number | string, tableWidth: number): number {\n return minWidth != null\n ? parseStaticWidth(minWidth, tableWidth)\n : 75;\n}\n\nfunction mapDynamicColumns<T>(dynamicColumns: GridNode<T>[], availableSpace: number, tableWidth: number): mappedColumn<T>[] {\n let fractions = dynamicColumns.reduce(\n (sum, column) => sum + parseFractionalUnit(column.props.defaultWidth),\n 0\n );\n \n let columns = dynamicColumns.map((column, index) => {\n const targetWidth =\n (parseFractionalUnit(column.props.defaultWidth) * availableSpace) / fractions;\n const delta = Math.max(\n getMinWidth(column.props.minWidth, tableWidth) - targetWidth,\n targetWidth - getMaxWidth(column.props.maxWidth, tableWidth)\n );\n\n return {\n ...column,\n index,\n delta \n };\n });\n \n return columns;\n}\n\nfunction findDynamicColumnWidths<T>(dynamicColumns: mappedColumn<T>[], availableSpace: number, tableWidth: number): mappedColumn<T>[] {\n let fractions = dynamicColumns.reduce(\n (sum, col) => sum + parseFractionalUnit(col.props.defaultWidth),\n 0\n );\n\n const columns = dynamicColumns.map((column) => {\n const targetWidth =\n (parseFractionalUnit(column.props.defaultWidth) * availableSpace) / fractions;\n let width = Math.max(\n getMinWidth(column.props.minWidth, tableWidth),\n Math.min(Math.floor(targetWidth), getMaxWidth(column.props.maxWidth, tableWidth))\n );\n column.calculatedWidth = width;\n availableSpace -= width;\n fractions -= parseFractionalUnit(column.props.defaultWidth);\n return column;\n });\n\n return columns;\n} \n \nexport function getDynamicColumnWidths<T>(dynamicColumns: GridNode<T>[], availableSpace: number, tableWidth: number) {\n let columns = mapDynamicColumns(dynamicColumns, availableSpace, tableWidth);\n \n columns.sort((a, b) => b.delta - a.delta);\n columns = findDynamicColumnWidths(columns, availableSpace, tableWidth);\n columns.sort((a, b) => a.index - b.index);\n \n return columns;\n}\n","/*\n * Copyright 2020 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 {CollectionBase, Node, SelectionMode, Sortable, SortDescriptor, SortDirection} from '@react-types/shared';\nimport {GridState, useGridState} from '@react-stately/grid';\nimport {TableCollection as ITableCollection} from '@react-types/table';\nimport {Key, useMemo, useState} from 'react';\nimport {MultipleSelectionStateProps} from '@react-stately/selection';\nimport {TableCollection} from './TableCollection';\nimport {useCollection} from '@react-stately/collections';\n\nexport interface TableState<T> extends GridState<T, ITableCollection<T>> {\n /** A collection of rows and columns in the table. */\n collection: ITableCollection<T>,\n /** Whether the row selection checkboxes should be displayed. */\n showSelectionCheckboxes: boolean,\n /** The current sorted column and direction. */\n sortDescriptor: SortDescriptor,\n /** Calls the provided onSortChange handler with the provided column key and sort direction. */\n sort(columnKey: Key, direction?: 'ascending' | 'descending'): void,\n /** Whether keyboard navigation is disabled, such as when the arrow keys should be handled by a component within a cell. */\n isKeyboardNavigationDisabled: boolean,\n /** Set whether keyboard navigation is disabled, such as when the arrow keys should be handled by a component within a cell. */\n setKeyboardNavigationDisabled: (val: boolean) => void\n}\n\nexport interface CollectionBuilderContext<T> {\n showSelectionCheckboxes: boolean,\n selectionMode: SelectionMode,\n columns: Node<T>[]\n}\n\nexport interface TableStateProps<T> extends CollectionBase<T>, MultipleSelectionStateProps, Sortable {\n /** Whether the row selection checkboxes should be displayed. */\n showSelectionCheckboxes?: boolean\n}\n\nconst OPPOSITE_SORT_DIRECTION = {\n ascending: 'descending' as SortDirection,\n descending: 'ascending' as SortDirection\n};\n\n/**\n * Provides state management for a table component. Handles building a collection\n * of columns and rows from props. In addition, it tracks row selection and manages sort order changes.\n */\nexport function useTableState<T extends object>(props: TableStateProps<T>): TableState<T> {\n let [isKeyboardNavigationDisabled, setKeyboardNavigationDisabled] = useState(false);\n let {selectionMode = 'none'} = props;\n\n let context = useMemo(() => ({\n showSelectionCheckboxes: props.showSelectionCheckboxes && selectionMode !== 'none',\n selectionMode,\n columns: []\n }), [props.children, props.showSelectionCheckboxes, selectionMode]);\n\n let collection = useCollection<T, TableCollection<T>>(\n props,\n (nodes, prev) => new TableCollection(nodes, prev, context),\n context\n );\n let {disabledKeys, selectionManager} = useGridState({...props, collection});\n\n return {\n collection,\n disabledKeys,\n selectionManager,\n showSelectionCheckboxes: props.showSelectionCheckboxes || false,\n sortDescriptor: props.sortDescriptor,\n isKeyboardNavigationDisabled,\n setKeyboardNavigationDisabled,\n sort(columnKey: Key, direction?: 'ascending' | 'descending') {\n props.onSortChange({\n column: columnKey,\n direction: direction ?? (props.sortDescriptor?.column === columnKey\n ? OPPOSITE_SORT_DIRECTION[props.sortDescriptor.direction]\n : 'ascending')\n });\n }\n };\n}\n","/*\n * Copyright 2020 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 */\nimport {GridCollection} from '@react-stately/grid';\nimport {GridNode} from '@react-types/grid';\nimport {Key} from 'react';\n\ninterface GridCollectionOptions {\n showSelectionCheckboxes?: boolean\n}\n\nconst ROW_HEADER_COLUMN_KEY = 'row-header-column-' + Math.random().toString(36).slice(2);\n\nfunction buildHeaderRows<T>(keyMap: Map<Key, GridNode<T>>, columnNodes: GridNode<T>[]): GridNode<T>[] {\n let columns = [];\n let seen = new Map();\n for (let column of columnNodes) {\n let parentKey = column.parentKey;\n let col = [column];\n\n while (parentKey) {\n let parent: GridNode<T> = keyMap.get(parentKey);\n\n // If we've already seen this parent, than it is shared\n // with a previous column. If the current column is taller\n // than the previous column, than we need to shift the parent\n // in the previous column so it's level with the current column.\n if (seen.has(parent)) {\n parent.colspan++;\n\n let {column, index} = seen.get(parent);\n if (index > col.length) {\n break;\n }\n\n for (let i = index; i < col.length; i++) {\n column.splice(i, 0, null);\n }\n\n // Adjust shifted indices\n for (let i = col.length; i < column.length; i++) {\n if (column[i] && seen.has(column[i])) {\n seen.get(column[i]).index = i;\n }\n }\n } else {\n parent.colspan = 1;\n col.push(parent);\n seen.set(parent, {column: col, index: col.length - 1});\n }\n\n parentKey = parent.parentKey;\n }\n\n columns.push(col);\n column.index = columns.length - 1;\n }\n\n let maxLength = Math.max(...columns.map(c => c.length));\n let headerRows = Array(maxLength).fill(0).map(() => []);\n\n // Convert columns into rows.\n let colIndex = 0;\n for (let column of columns) {\n let i = maxLength - 1;\n for (let item of column) {\n if (item) {\n // Fill the space up until the current column with a placeholder\n let row = headerRows[i];\n let rowLength = row.reduce((p, c) => p + c.colspan, 0);\n if (rowLength < colIndex) {\n let placeholder: GridNode<T> = {\n type: 'placeholder',\n key: 'placeholder-' + item.key,\n colspan: colIndex - rowLength,\n index: rowLength,\n value: null,\n rendered: null,\n level: i,\n hasChildNodes: false,\n childNodes: [],\n textValue: null\n };\n\n if (row.length > 0) {\n row[row.length - 1].nextKey = placeholder.key;\n placeholder.prevKey = row[row.length - 1].key;\n }\n\n row.push(placeholder);\n }\n\n if (row.length > 0) {\n row[row.length - 1].nextKey = item.key;\n item.prevKey = row[row.length - 1].key;\n }\n\n item.level = i;\n item.index = colIndex;\n row.push(item);\n }\n\n i--;\n }\n\n colIndex++;\n }\n\n // Add placeholders at the end of each row that is shorter than the maximum\n let i = 0;\n for (let row of headerRows) {\n let rowLength = row.reduce((p, c) => p + c.colspan, 0);\n if (rowLength < columnNodes.length) {\n let placeholder: GridNode<T> = {\n type: 'placeholder',\n key: 'placeholder-' + row[row.length - 1].key,\n colspan: columnNodes.length - rowLength,\n index: rowLength,\n value: null,\n rendered: null,\n level: i,\n hasChildNodes: false,\n childNodes: [],\n textValue: null,\n prevKey: row[row.length - 1].key\n };\n\n row.push(placeholder);\n }\n\n i++;\n }\n\n return headerRows.map((childNodes, index) => {\n let row: GridNode<T> = {\n type: 'headerrow',\n key: 'headerrow-' + index,\n index,\n value: null,\n rendered: null,\n level: 0,\n hasChildNodes: true,\n childNodes,\n textValue: null\n };\n\n return row;\n });\n}\n\nexport class TableCollection<T> extends GridCollection<T> {\n headerRows: GridNode<T>[];\n columns: GridNode<T>[];\n rowHeaderColumnKeys: Set<Key>;\n body: GridNode<T>;\n\n constructor(nodes: Iterable<GridNode<T>>, prev?: TableCollection<T>, opts?: GridCollectionOptions) {\n let rowHeaderColumnKeys: Set<Key> = new Set();\n let body: GridNode<T>;\n let columns = [];\n\n // Add cell for selection checkboxes if needed.\n if (opts?.showSelectionCheckboxes) {\n let rowHeaderColumn: GridNode<T> = {\n type: 'column',\n key: ROW_HEADER_COLUMN_KEY,\n value: null,\n textValue: '',\n level: 0,\n index: 0,\n hasChildNodes: false,\n rendered: null,\n childNodes: [],\n props: {\n isSelectionCell: true\n }\n };\n\n columns.unshift(rowHeaderColumn);\n }\n\n let rows = [];\n let columnKeyMap = new Map();\n let visit = (node: GridNode<T>) => {\n switch (node.type) {\n case 'body':\n body = node;\n break;\n case 'column':\n columnKeyMap.set(node.key, node);\n if (!node.hasChildNodes) {\n columns.push(node);\n\n if (node.props.isRowHeader) {\n rowHeaderColumnKeys.add(node.key);\n }\n }\n break;\n case 'item':\n rows.push(node);\n return; // do not go into childNodes\n }\n for (let child of node.childNodes) {\n visit(child);\n }\n };\n\n for (let node of nodes) {\n visit(node);\n }\n\n let headerRows = buildHeaderRows(columnKeyMap, columns) as GridNode<T>[];\n headerRows.forEach((row, i) => rows.splice(i, 0, row));\n\n super({\n columnCount: columns.length,\n items: rows,\n visitNode: node => {\n node.column = columns[node.index];\n return node;\n }\n });\n this.columns = columns;\n this.rowHeaderColumnKeys = rowHeaderColumnKeys;\n this.body = body;\n this.headerRows = headerRows;\n\n // Default row header column to the first one.\n if (this.rowHeaderColumnKeys.size === 0) {\n this.rowHeaderColumnKeys.add(this.columns[opts?.showSelectionCheckboxes ? 1 : 0].key);\n }\n }\n\n *[Symbol.iterator]() {\n yield* this.body.childNodes;\n }\n\n get size() {\n return [...this.body.childNodes].length;\n }\n\n getKeys() {\n return this.keyMap.keys();\n }\n\n getKeyBefore(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.prevKey : null;\n }\n\n getKeyAfter(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.nextKey : null;\n }\n\n getFirstKey() {\n return [...this.body.childNodes][0]?.key;\n }\n\n getLastKey() {\n let rows = [...this.body.childNodes];\n return rows[rows.length - 1]?.key;\n }\n\n getItem(key: Key) {\n return this.keyMap.get(key);\n }\n\n at(idx: number) {\n const keys = [...this.getKeys()];\n return this.getItem(keys[idx]);\n }\n}\n","/*\n * Copyright 2020 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 {PartialNode} from '@react-stately/collections';\nimport React, {ReactElement} from 'react';\nimport {TableHeaderProps} from '@react-types/table';\n\nfunction TableHeader<T>(props: TableHeaderProps<T>): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nTableHeader.getCollectionNode = function* getCollectionNode<T>(props: TableHeaderProps<T>): Generator<PartialNode<T>, void, any> {\n let {children, columns} = props;\n if (typeof children === 'function') {\n if (!columns) {\n throw new Error('props.children was a function but props.columns is missing');\n }\n\n for (let column of columns) {\n yield {\n type: 'column',\n value: column,\n renderer: children\n };\n }\n } else {\n let columns: PartialNode<T>[] = [];\n React.Children.forEach(children, column => {\n columns.push({\n type: 'column',\n element: column\n });\n });\n\n yield* columns;\n }\n};\n\n/**\n * A TableHeader is a container for the Column elements in a Table. Columns can be statically defined\n * as children, or generated dynamically using a function based on the data passed to the `columns` prop.\n */\n// We don't want getCollectionNode to show up in the type definition\nlet _TableHeader = TableHeader as <T>(props: TableHeaderProps<T>) => JSX.Element;\nexport {_TableHeader as TableHeader};\n","/*\n * Copyright 2020 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 {PartialNode} from '@react-stately/collections';\nimport React, {ReactElement} from 'react';\nimport {TableBodyProps} from '@react-types/table';\n\nfunction TableBody<T>(props: TableBodyProps<T>): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nTableBody.getCollectionNode = function* getCollectionNode<T>(props: TableBodyProps<T>): Generator<PartialNode<T>> {\n let {children, items} = props;\n yield {\n type: 'body',\n hasChildNodes: true,\n props,\n *childNodes() {\n if (typeof children === 'function') {\n if (!items) {\n throw new Error('props.children was a function but props.items is missing');\n }\n\n for (let item of items) {\n yield {\n type: 'item',\n value: item,\n renderer: children\n };\n }\n } else {\n let items: PartialNode<T>[] = [];\n React.Children.forEach(children, item => {\n items.push({\n type: 'item',\n element: item\n });\n });\n\n yield* items;\n }\n }\n };\n};\n\n/**\n * A TableBody is a container for the Row elements of a Table. Rows can be statically defined\n * as children, or generated dynamically using a function based on the data passed to the `items` prop.\n */\n// We don't want getCollectionNode to show up in the type definition\nlet _TableBody = TableBody as <T>(props: TableBodyProps<T>) => JSX.Element;\nexport {_TableBody as TableBody};\n","/*\n * Copyright 2020 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 {CollectionBuilderContext} from './useTableState';\nimport {ColumnProps} from '@react-types/table';\nimport {GridNode} from '@react-types/grid';\nimport {PartialNode} from '@react-stately/collections';\nimport React, {ReactElement} from 'react';\n\nfunction Column<T>(props: ColumnProps<T>): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nColumn.getCollectionNode = function* getCollectionNode<T>(props: ColumnProps<T>, context: CollectionBuilderContext<T>): Generator<PartialNode<T>, void, GridNode<T>[]> {\n let {title, children, childColumns} = props;\n\n let rendered = title || children;\n let textValue = props.textValue || (typeof rendered === 'string' ? rendered : '') || props['aria-label'];\n\n let fullNodes = yield {\n type: 'column',\n hasChildNodes: !!childColumns || (title && React.Children.count(children) > 0),\n rendered,\n textValue,\n props,\n *childNodes() {\n if (childColumns) {\n for (let child of childColumns) {\n yield {\n type: 'column',\n value: child\n };\n }\n } else if (title) {\n let childColumns: PartialNode<T>[] = [];\n React.Children.forEach(children, child => {\n childColumns.push({\n type: 'column',\n element: child as ReactElement<ColumnProps<T>>\n });\n });\n\n yield* childColumns;\n }\n },\n shouldInvalidate(newContext: CollectionBuilderContext<T>) {\n // This is a bit of a hack, but it works.\n // If this method is called, then there's a cached version of this node available.\n // But, we need to keep the list of columns in the new context up to date.\n updateContext(newContext);\n return false;\n }\n };\n\n let updateContext = (context: CollectionBuilderContext<T>) => {\n // register leaf columns on the context so that <Row> can access them\n for (let node of fullNodes) {\n if (!node.hasChildNodes) {\n context.columns.push(node);\n }\n }\n };\n\n updateContext(context);\n};\n\n/**\n * A Column represents a field of each item within a Table. Columns may also contain nested\n * Column elements to represent column groups. Nested columns can be statically defined as\n * children, or dynamically generated using a function based on the `childColumns` prop.\n */\n// We don't want getCollectionNode to show up in the type definition\nlet _Column = Column as <T>(props: ColumnProps<T>) => JSX.Element;\nexport {_Column as Column};\n","/*\n * Copyright 2020 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 {CollectionBuilderContext} from './useTableState';\nimport {PartialNode} from '@react-stately/collections';\nimport React, {ReactElement} from 'react';\nimport {RowProps} from '@react-types/table';\n\nfunction Row(props: RowProps): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nRow.getCollectionNode = function* getCollectionNode<T>(props: RowProps, context: CollectionBuilderContext<T>): Generator<PartialNode<T>> {\n let {children, textValue} = props;\n\n yield {\n type: 'item',\n props: props,\n textValue,\n 'aria-label': props['aria-label'],\n hasChildNodes: true,\n *childNodes() {\n // Process cells first\n if (context.showSelectionCheckboxes && context.selectionMode !== 'none') {\n yield {\n type: 'cell',\n key: 'header', // this is combined with the row key by CollectionBuilder\n props: {\n isSelectionCell: true\n }\n };\n }\n\n if (typeof children === 'function') {\n for (let column of context.columns) {\n yield {\n type: 'cell',\n element: children(column.key),\n key: column.key // this is combined with the row key by CollectionBuilder\n };\n }\n } else {\n let cells: PartialNode<T>[] = [];\n React.Children.forEach(children, cell => {\n cells.push({\n type: 'cell',\n element: cell\n });\n });\n\n if (cells.length !== context.columns.length) {\n throw new Error(`Cell count must match column count. Found ${cells.length} cells and ${context.columns.length} columns.`);\n }\n\n yield* cells;\n }\n },\n shouldInvalidate(newContext: CollectionBuilderContext<T>) {\n // Invalidate all rows if the columns changed.\n return newContext.columns.length !== context.columns.length ||\n newContext.columns.some((c, i) => c.key !== context.columns[i].key) ||\n newContext.showSelectionCheckboxes !== context.showSelectionCheckboxes ||\n newContext.selectionMode !== context.selectionMode;\n }\n };\n};\n\n/**\n * A Row represents a single item in a Table and contains Cell elements for each column.\n * Cells can be statically defined as children, or generated dynamically using a function\n * based on the columns defined in the TableHeader.\n */\n// We don't want getCollectionNode to show up in the type definition\nlet _Row = Row as (props: RowProps) => JSX.Element;\nexport {_Row as Row};\n","/*\n * Copyright 2020 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 {CellProps} from '@react-types/table';\nimport {PartialNode} from '@react-stately/collections';\nimport {ReactElement} from 'react';\n\nfunction Cell(props: CellProps): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nCell.getCollectionNode = function* getCollectionNode<T>(props: CellProps): Generator<PartialNode<T>> {\n let {children} = props;\n\n let textValue = props.textValue || (typeof children === 'string' ? children : '') || props['aria-label'] || '';\n yield {\n type: 'cell',\n props: props,\n rendered: children,\n textValue,\n 'aria-label': props['aria-label'],\n hasChildNodes: false\n };\n};\n\n/**\n * A Cell represents the value of a single Column within a Table Row.\n */\n// We don't want getCollectionNode to show up in the type definition\nlet _Cell = Cell as (props: CellProps) => JSX.Element;\nexport {_Cell as Cell};\n"],"names":[],"version":3,"file":"main.js.map"}
package/dist/module.js CHANGED
@@ -87,8 +87,9 @@ function $30561577df230a30$export$a870e6692ac5ccb2(dynamicColumns, availableSpac
87
87
 
88
88
 
89
89
 
90
- function $292bc4e09cd0eb62$export$cb895dcf85db1319(props) {
91
- const { columns: columns1 , getDefaultWidth: getDefaultWidth , tableWidth: defaultTableWidth = null } = props;
90
+ function $292bc4e09cd0eb62$export$cb895dcf85db1319(props, state) {
91
+ const { getDefaultWidth: getDefaultWidth , tableWidth: defaultTableWidth = null } = props;
92
+ const { columns: columns1 } = state;
92
93
  const columnsRef = $1BfjW$useRef([]);
93
94
  const tableWidth = $1BfjW$useRef(defaultTableWidth);
94
95
  const isResizing = $1BfjW$useRef(null);
@@ -102,6 +103,7 @@ function $292bc4e09cd0eb62$export$cb895dcf85db1319(props) {
102
103
  const affectedColumnWidthsRef = $1BfjW$useRef([]);
103
104
  const [resizedColumns, setResizedColumns] = $1BfjW$useState(new Set());
104
105
  const resizedColumnsRef = $1BfjW$useRef(resizedColumns);
106
+ const [currentlyResizingColumn, setCurrentlyResizingColumn] = $1BfjW$useState(null);
105
107
  function setColumnWidthsForRef(newWidths) {
106
108
  columnWidthsRef.current = newWidths;
107
109
  // new map so that change detection is triggered
@@ -180,7 +182,8 @@ function $292bc4e09cd0eb62$export$cb895dcf85db1319(props) {
180
182
  }
181
183
  }
182
184
  }
183
- function onColumnResizeStart() {
185
+ function onColumnResizeStart(column) {
186
+ setCurrentlyResizingColumn(column.key);
184
187
  isResizing.current = true;
185
188
  startResizeContentWidth.current = $30561577df230a30$export$f61abf052f87399f(columnWidthsRef.current);
186
189
  }
@@ -189,7 +192,9 @@ function $292bc4e09cd0eb62$export$cb895dcf85db1319(props) {
189
192
  affectedColumnWidthsRef.current = widthsObj;
190
193
  props.onColumnResize && props.onColumnResize(affectedColumnWidthsRef.current);
191
194
  }
192
- function onColumnResizeEnd() {
195
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
196
+ function onColumnResizeEnd(column) {
197
+ setCurrentlyResizingColumn(null);
193
198
  isResizing.current = false;
194
199
  props.onColumnResizeEnd && props.onColumnResizeEnd(affectedColumnWidthsRef.current);
195
200
  affectedColumnWidthsRef.current = [];
@@ -269,7 +274,7 @@ function $292bc4e09cd0eb62$export$cb895dcf85db1319(props) {
269
274
  getColumnWidth: getColumnWidth,
270
275
  getColumnMinWidth: getColumnMinWidth,
271
276
  getColumnMaxWidth: getColumnMaxWidth,
272
- isResizingColumn: isResizing.current
277
+ currentlyResizingColumn: currentlyResizingColumn
273
278
  };
274
279
  }
275
280
 
@@ -512,6 +517,7 @@ const $4a0dd036d492cee4$var$OPPOSITE_SORT_DIRECTION = {
512
517
  descending: 'ascending'
513
518
  };
514
519
  function $4a0dd036d492cee4$export$907bcc6c48325fd6(props) {
520
+ let [isKeyboardNavigationDisabled, setKeyboardNavigationDisabled] = $1BfjW$useState(false);
515
521
  let { selectionMode: selectionMode = 'none' } = props;
516
522
  let context = $1BfjW$useMemo(()=>({
517
523
  showSelectionCheckboxes: props.showSelectionCheckboxes && selectionMode !== 'none',
@@ -535,6 +541,8 @@ function $4a0dd036d492cee4$export$907bcc6c48325fd6(props) {
535
541
  selectionManager: selectionManager,
536
542
  showSelectionCheckboxes: props.showSelectionCheckboxes || false,
537
543
  sortDescriptor: props.sortDescriptor,
544
+ isKeyboardNavigationDisabled: isKeyboardNavigationDisabled,
545
+ setKeyboardNavigationDisabled: setKeyboardNavigationDisabled,
538
546
  sort (columnKey, direction) {
539
547
  var ref;
540
548
  props.onSortChange({
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-stately/table/src/index.ts","packages/@react-stately/table/src/useTableColumnResizeState.ts","packages/@react-stately/table/src/utils.ts","packages/@react-stately/table/src/useTableState.ts","packages/@react-stately/table/src/TableCollection.ts","packages/@react-stately/table/src/TableHeader.ts","packages/@react-stately/table/src/TableBody.ts","packages/@react-stately/table/src/Column.ts","packages/@react-stately/table/src/Row.ts","packages/@react-stately/table/src/Cell.ts"],"sourcesContent":["/*\n * Copyright 2020 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\nexport * from './useTableColumnResizeState';\nexport * from './utils';\nexport * from './useTableState';\nexport * from './TableHeader';\nexport * from './TableBody';\nexport * from './Column';\nexport * from './Row';\nexport * from './Cell';\nexport {Section} from '@react-stately/collections';\n","\nimport {ColumnProps} from '@react-types/table';\nimport {getContentWidth, getDynamicColumnWidths, getMaxWidth, getMinWidth, isStatic, parseStaticWidth} from './utils';\nimport {GridNode} from '@react-types/grid';\nimport {Key, MutableRefObject, useCallback, useRef, useState} from 'react';\n\nexport interface AffectedColumnWidth {\n /** The column key. */\n key: Key,\n /** The column width. */\n width: number\n}\nexport interface AffectedColumnWidths extends Array<AffectedColumnWidth> {}\n\nexport interface ColumnResizeState<T> {\n /** A ref whose current value is the state of all the column widths. */\n columnWidths: MutableRefObject<Map<Key, number>>,\n /** Setter for the table width. */\n setTableWidth: (width: number) => void,\n /** Trigger a resize and recalc. */\n onColumnResize: (column: GridNode<T>, width: number) => void,\n /** Callback for when onColumnResize has started. */\n onColumnResizeStart: () => void,\n /** Callback for when onColumnResize has ended. */\n onColumnResizeEnd: () => void,\n /** Getter for column width. */\n getColumnWidth(key: Key): number,\n /** Getter for column min width. */\n getColumnMinWidth(key: Key): number,\n /** Getter for column max widths. */\n getColumnMaxWidth(key: Key): number,\n /** Boolean for if a column is being resized. */\n isResizingColumn: boolean\n}\n\nexport interface ColumnResizeStateProps<T> {\n /** Collection of existing columns. */\n columns: GridNode<T>[],\n /** Callback to determine what the default width of a column should be. */\n getDefaultWidth?: (props) => string | number,\n /** Callback that is invoked during the entirety of the resize event. */\n onColumnResize?: (affectedColumnWidths: AffectedColumnWidths) => void,\n /** Callback that is invoked when the resize event is ended. */\n onColumnResizeEnd?: (affectedColumnWidths: AffectedColumnWidths) => void,\n /** The default table width. */\n tableWidth?: number\n}\n\nexport function useTableColumnResizeState<T>(props: ColumnResizeStateProps<T>): ColumnResizeState<T> {\n const {columns, getDefaultWidth, tableWidth: defaultTableWidth = null} = props;\n const columnsRef = useRef<GridNode<T>[]>([]);\n const tableWidth = useRef<number>(defaultTableWidth);\n const isResizing = useRef<boolean>(null);\n const startResizeContentWidth = useRef<number>();\n\n const [columnWidths, setColumnWidths] = useState<Map<Key, number>>(new Map(columns.map(col => [col.key, 0])));\n const columnWidthsRef = useRef<Map<Key, number>>(columnWidths);\n const affectedColumnWidthsRef = useRef<AffectedColumnWidths>([]);\n const [resizedColumns, setResizedColumns] = useState<Set<Key>>(new Set());\n const resizedColumnsRef = useRef<Set<Key>>(resizedColumns);\n\n function setColumnWidthsForRef(newWidths: Map<Key, number>) {\n columnWidthsRef.current = newWidths;\n // new map so that change detection is triggered\n setColumnWidths(newWidths);\n }\n /*\n returns the resolved column width in this order:\n previously calculated width -> controlled width prop -> uncontrolled defaultWidth prop -> dev assigned width -> default dynamic width\n */\n let getResolvedColumnWidth = useCallback((column: GridNode<T>): (number | string) => {\n let columnProps = column.props as ColumnProps<T>;\n return resizedColumns?.has(column.key) ? columnWidthsRef.current.get(column.key) : columnProps.width ?? columnProps.defaultWidth ?? getDefaultWidth?.(column.props) ?? '1fr';\n }, [getDefaultWidth, resizedColumns]);\n\n let getStaticAndDynamicColumns = useCallback((columns: GridNode<T>[]) : { staticColumns: GridNode<T>[], dynamicColumns: GridNode<T>[] } => columns.reduce((acc, column) => {\n let width = getResolvedColumnWidth(column);\n return isStatic(width) ? {...acc, staticColumns: [...acc.staticColumns, column]} : {...acc, dynamicColumns: [...acc.dynamicColumns, column]};\n }, {staticColumns: [], dynamicColumns: []}), [getResolvedColumnWidth]);\n\n let buildColumnWidths = useCallback((affectedColumns: GridNode<T>[], availableSpace: number): Map<Key, number> => {\n const widths = new Map<Key, number>();\n let remainingSpace = availableSpace;\n\n const {staticColumns, dynamicColumns} = getStaticAndDynamicColumns(affectedColumns);\n\n staticColumns.forEach(column => {\n let width = getResolvedColumnWidth(column);\n let w = parseStaticWidth(width, tableWidth.current);\n widths.set(column.key, w);\n remainingSpace -= w;\n });\n\n // dynamic columns\n if (dynamicColumns.length > 0) {\n const newColumnWidths = getDynamicColumnWidths(dynamicColumns, remainingSpace, tableWidth.current);\n for (let column of newColumnWidths) {\n widths.set(column.key, column.calculatedWidth);\n }\n }\n\n return widths;\n }, [getStaticAndDynamicColumns, getResolvedColumnWidth]);\n\n\n const prevColKeys = columnsRef.current.map(col => col.key);\n const colKeys = columns.map(col => col.key);\n // if the columns change, need to rebuild widths.\n if (prevColKeys.length !== colKeys.length || !colKeys.every((col, i) => col === prevColKeys[i])) {\n columnsRef.current = columns;\n const widths = buildColumnWidths(columns, tableWidth.current);\n setColumnWidthsForRef(widths);\n }\n\n function setTableWidth(width: number) {\n if (width && width !== tableWidth.current) {\n tableWidth.current = width;\n if (!isResizing.current) {\n const widths = buildColumnWidths(columns, width);\n setColumnWidthsForRef(widths);\n }\n }\n }\n\n function onColumnResizeStart() {\n isResizing.current = true;\n startResizeContentWidth.current = getContentWidth(columnWidthsRef.current);\n }\n\n function onColumnResize(column: GridNode<T>, width: number) {\n let widthsObj = resizeColumn(column, width);\n affectedColumnWidthsRef.current = widthsObj;\n props.onColumnResize && props.onColumnResize(affectedColumnWidthsRef.current);\n }\n\n function onColumnResizeEnd() {\n isResizing.current = false;\n props.onColumnResizeEnd && props.onColumnResizeEnd(affectedColumnWidthsRef.current);\n affectedColumnWidthsRef.current = [];\n\n let widths = new Map<Key, number>(columnWidthsRef.current);\n setColumnWidthsForRef(widths);\n }\n\n function resizeColumn(column: GridNode<T>, newWidth: number) : AffectedColumnWidths {\n let boundedWidth = Math.max(\n getMinWidth(column.props.minWidth, tableWidth.current),\n Math.min(Math.floor(newWidth), getMaxWidth(column.props.maxWidth, tableWidth.current)));\n\n // copy the columnWidths map and set the new width for the column being resized\n let widths = new Map<Key, number>(columnWidthsRef.current);\n widths.set(column.key, boundedWidth);\n\n // keep track of all columns that have been sized\n resizedColumnsRef.current.add(column.key);\n setResizedColumns(resizedColumnsRef.current);\n\n // get the columns affected by resize and remaining space\n const resizeIndex = columnsRef.current.findIndex(col => col.key === column.key);\n let affectedColumns = columnsRef.current.slice(resizeIndex + 1);\n\n // we only care about the columns that CAN be resized, we ignore static columns.\n let {dynamicColumns} = getStaticAndDynamicColumns(affectedColumns);\n\n // available space for affected columns\n let availableSpace = columnsRef.current.reduce((acc, column, index) => {\n if (index <= resizeIndex || isStatic(getResolvedColumnWidth(column))) {\n return acc - widths.get(column.key);\n }\n return acc;\n }, tableWidth.current);\n\n // merge the unaffected column widths and the recalculated column widths\n let recalculatedColumnWidths = buildColumnWidths(dynamicColumns, availableSpace);\n widths = new Map<Key, number>([...widths, ...recalculatedColumnWidths]);\n\n setColumnWidthsForRef(widths);\n\n /*\n when getting recalculated columns above, the column being resized is not considered \"recalculated\"\n so we need to add it to the list of affected columns\n */\n let allAffectedColumns = ([[column.key, boundedWidth], ...recalculatedColumnWidths] as [Key, number][]).map(([key, width]) => ({key, width}));\n return allAffectedColumns;\n }\n\n // This function is regenerated whenever columnWidthsRef.current changes in order to get the new correct ref value.\n let getColumnWidth = useCallback((key: Key): number => columnWidthsRef.current.get(key) ?? 0, [columnWidthsRef.current]);\n\n let getColumnMinWidth = useCallback((key: Key) => {\n const columnIndex = columns.findIndex(col => col.key === key);\n if (columnIndex === -1) {\n return;\n }\n return getMinWidth(columns[columnIndex].props.minWidth, tableWidth.current);\n }, [columns]);\n\n let getColumnMaxWidth = useCallback((key: Key) => {\n const columnIndex = columns.findIndex(col => col.key === key);\n if (columnIndex === -1) {\n return;\n }\n return getMaxWidth(columns[columnIndex].props.maxWidth, tableWidth.current);\n }, [columns]);\n\n return {\n columnWidths: columnWidthsRef,\n setTableWidth,\n onColumnResize,\n onColumnResizeStart,\n onColumnResizeEnd,\n getColumnWidth,\n getColumnMinWidth,\n getColumnMaxWidth,\n isResizingColumn: isResizing.current\n };\n}\n","import {GridNode} from '@react-types/grid';\nimport {Key} from 'react';\n\ntype mappedColumn<T> = GridNode<T> & {\n index: number,\n delta: number,\n calculatedWidth?: number\n};\n\nexport function getContentWidth(widths: Map<Key, number>): number {\n return Array.from(widths).map(e => e[1]).reduce((acc, cur) => acc + cur, 0);\n}\n\n// numbers and percents are considered static. *fr units or a lack of units are considered dynamic.\nexport function isStatic(width: number | string): boolean {\n return width != null && (!isNaN(width as number) || (String(width)).match(/^(\\d+)(?=%$)/) !== null);\n} \n\nfunction parseFractionalUnit(width: string): number {\n if (!width) {\n return 1;\n } \n let match = width.match(/^(\\d+)(?=fr$)/);\n // if width is the incorrect format, just deafult it to a 1fr\n if (!match) {\n console.warn(`width: ${width} is not a supported format, width should be a number (ex. 150), percentage (ex. '50%') or fr unit (ex. '2fr')`, \n 'defaulting to \\'1fr\\'');\n return 1;\n }\n return parseInt(match[0], 10);\n}\n\nexport function parseStaticWidth(width: number | string, tableWidth: number): number {\n if (typeof width === 'string') {\n let match = width.match(/^(\\d+)(?=%$)/);\n if (!match) {\n throw new Error('Only percentages or numbers are supported for static column widths');\n }\n return tableWidth * (parseInt(match[0], 10) / 100);\n }\n return width;\n}\n \n \nexport function getMaxWidth(maxWidth: number | string, tableWidth: number): number {\n return maxWidth != null\n ? parseStaticWidth(maxWidth, tableWidth)\n : Infinity;\n}\n\nexport function getMinWidth(minWidth: number | string, tableWidth: number): number {\n return minWidth != null\n ? parseStaticWidth(minWidth, tableWidth)\n : 75;\n}\n\nfunction mapDynamicColumns<T>(dynamicColumns: GridNode<T>[], availableSpace: number, tableWidth: number): mappedColumn<T>[] {\n let fractions = dynamicColumns.reduce(\n (sum, column) => sum + parseFractionalUnit(column.props.defaultWidth),\n 0\n );\n \n let columns = dynamicColumns.map((column, index) => {\n const targetWidth =\n (parseFractionalUnit(column.props.defaultWidth) * availableSpace) / fractions;\n const delta = Math.max(\n getMinWidth(column.props.minWidth, tableWidth) - targetWidth,\n targetWidth - getMaxWidth(column.props.maxWidth, tableWidth)\n );\n\n return {\n ...column,\n index,\n delta \n };\n });\n \n return columns;\n}\n\nfunction findDynamicColumnWidths<T>(dynamicColumns: mappedColumn<T>[], availableSpace: number, tableWidth: number): mappedColumn<T>[] {\n let fractions = dynamicColumns.reduce(\n (sum, col) => sum + parseFractionalUnit(col.props.defaultWidth),\n 0\n );\n\n const columns = dynamicColumns.map((column) => {\n const targetWidth =\n (parseFractionalUnit(column.props.defaultWidth) * availableSpace) / fractions;\n let width = Math.max(\n getMinWidth(column.props.minWidth, tableWidth),\n Math.min(Math.floor(targetWidth), getMaxWidth(column.props.maxWidth, tableWidth))\n );\n column.calculatedWidth = width;\n availableSpace -= width;\n fractions -= parseFractionalUnit(column.props.defaultWidth);\n return column;\n });\n\n return columns;\n} \n \nexport function getDynamicColumnWidths<T>(dynamicColumns: GridNode<T>[], availableSpace: number, tableWidth: number) {\n let columns = mapDynamicColumns(dynamicColumns, availableSpace, tableWidth);\n \n columns.sort((a, b) => b.delta - a.delta);\n columns = findDynamicColumnWidths(columns, availableSpace, tableWidth);\n columns.sort((a, b) => a.index - b.index);\n \n return columns;\n}\n","/*\n * Copyright 2020 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 {CollectionBase, Node, SelectionMode, Sortable, SortDescriptor, SortDirection} from '@react-types/shared';\nimport {GridState, useGridState} from '@react-stately/grid';\nimport {TableCollection as ITableCollection} from '@react-types/table';\nimport {Key, useMemo} from 'react';\nimport {MultipleSelectionStateProps} from '@react-stately/selection';\nimport {TableCollection} from './TableCollection';\nimport {useCollection} from '@react-stately/collections';\n\nexport interface TableState<T> extends GridState<T, ITableCollection<T>> {\n /** A collection of rows and columns in the table. */\n collection: ITableCollection<T>,\n /** Whether the row selection checkboxes should be displayed. */\n showSelectionCheckboxes: boolean,\n /** The current sorted column and direction. */\n sortDescriptor: SortDescriptor,\n /** Calls the provided onSortChange handler with the provided column key and sort direction. */\n sort(columnKey: Key, direction?: 'ascending' | 'descending'): void\n}\n\nexport interface CollectionBuilderContext<T> {\n showSelectionCheckboxes: boolean,\n selectionMode: SelectionMode,\n columns: Node<T>[]\n}\n\nexport interface TableStateProps<T> extends CollectionBase<T>, MultipleSelectionStateProps, Sortable {\n /** Whether the row selection checkboxes should be displayed. */\n showSelectionCheckboxes?: boolean\n}\n\nconst OPPOSITE_SORT_DIRECTION = {\n ascending: 'descending' as SortDirection,\n descending: 'ascending' as SortDirection\n};\n\n/**\n * Provides state management for a table component. Handles building a collection\n * of columns and rows from props. In addition, it tracks row selection and manages sort order changes.\n */\nexport function useTableState<T extends object>(props: TableStateProps<T>): TableState<T> {\n let {selectionMode = 'none'} = props;\n\n let context = useMemo(() => ({\n showSelectionCheckboxes: props.showSelectionCheckboxes && selectionMode !== 'none',\n selectionMode,\n columns: []\n }), [props.children, props.showSelectionCheckboxes, selectionMode]);\n\n let collection = useCollection<T, TableCollection<T>>(\n props,\n (nodes, prev) => new TableCollection(nodes, prev, context),\n context\n );\n let {disabledKeys, selectionManager} = useGridState({...props, collection});\n\n return {\n collection,\n disabledKeys,\n selectionManager,\n showSelectionCheckboxes: props.showSelectionCheckboxes || false,\n sortDescriptor: props.sortDescriptor,\n sort(columnKey: Key, direction?: 'ascending' | 'descending') {\n props.onSortChange({\n column: columnKey,\n direction: direction ?? (props.sortDescriptor?.column === columnKey\n ? OPPOSITE_SORT_DIRECTION[props.sortDescriptor.direction]\n : 'ascending')\n });\n }\n };\n}\n","/*\n * Copyright 2020 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 */\nimport {GridCollection} from '@react-stately/grid';\nimport {GridNode} from '@react-types/grid';\nimport {Key} from 'react';\n\ninterface GridCollectionOptions {\n showSelectionCheckboxes?: boolean\n}\n\nconst ROW_HEADER_COLUMN_KEY = 'row-header-column-' + Math.random().toString(36).slice(2);\n\nfunction buildHeaderRows<T>(keyMap: Map<Key, GridNode<T>>, columnNodes: GridNode<T>[]): GridNode<T>[] {\n let columns = [];\n let seen = new Map();\n for (let column of columnNodes) {\n let parentKey = column.parentKey;\n let col = [column];\n\n while (parentKey) {\n let parent: GridNode<T> = keyMap.get(parentKey);\n\n // If we've already seen this parent, than it is shared\n // with a previous column. If the current column is taller\n // than the previous column, than we need to shift the parent\n // in the previous column so it's level with the current column.\n if (seen.has(parent)) {\n parent.colspan++;\n\n let {column, index} = seen.get(parent);\n if (index > col.length) {\n break;\n }\n\n for (let i = index; i < col.length; i++) {\n column.splice(i, 0, null);\n }\n\n // Adjust shifted indices\n for (let i = col.length; i < column.length; i++) {\n if (column[i] && seen.has(column[i])) {\n seen.get(column[i]).index = i;\n }\n }\n } else {\n parent.colspan = 1;\n col.push(parent);\n seen.set(parent, {column: col, index: col.length - 1});\n }\n\n parentKey = parent.parentKey;\n }\n\n columns.push(col);\n column.index = columns.length - 1;\n }\n\n let maxLength = Math.max(...columns.map(c => c.length));\n let headerRows = Array(maxLength).fill(0).map(() => []);\n\n // Convert columns into rows.\n let colIndex = 0;\n for (let column of columns) {\n let i = maxLength - 1;\n for (let item of column) {\n if (item) {\n // Fill the space up until the current column with a placeholder\n let row = headerRows[i];\n let rowLength = row.reduce((p, c) => p + c.colspan, 0);\n if (rowLength < colIndex) {\n let placeholder: GridNode<T> = {\n type: 'placeholder',\n key: 'placeholder-' + item.key,\n colspan: colIndex - rowLength,\n index: rowLength,\n value: null,\n rendered: null,\n level: i,\n hasChildNodes: false,\n childNodes: [],\n textValue: null\n };\n\n if (row.length > 0) {\n row[row.length - 1].nextKey = placeholder.key;\n placeholder.prevKey = row[row.length - 1].key;\n }\n\n row.push(placeholder);\n }\n\n if (row.length > 0) {\n row[row.length - 1].nextKey = item.key;\n item.prevKey = row[row.length - 1].key;\n }\n\n item.level = i;\n item.index = colIndex;\n row.push(item);\n }\n\n i--;\n }\n\n colIndex++;\n }\n\n // Add placeholders at the end of each row that is shorter than the maximum\n let i = 0;\n for (let row of headerRows) {\n let rowLength = row.reduce((p, c) => p + c.colspan, 0);\n if (rowLength < columnNodes.length) {\n let placeholder: GridNode<T> = {\n type: 'placeholder',\n key: 'placeholder-' + row[row.length - 1].key,\n colspan: columnNodes.length - rowLength,\n index: rowLength,\n value: null,\n rendered: null,\n level: i,\n hasChildNodes: false,\n childNodes: [],\n textValue: null,\n prevKey: row[row.length - 1].key\n };\n\n row.push(placeholder);\n }\n\n i++;\n }\n\n return headerRows.map((childNodes, index) => {\n let row: GridNode<T> = {\n type: 'headerrow',\n key: 'headerrow-' + index,\n index,\n value: null,\n rendered: null,\n level: 0,\n hasChildNodes: true,\n childNodes,\n textValue: null\n };\n\n return row;\n });\n}\n\nexport class TableCollection<T> extends GridCollection<T> {\n headerRows: GridNode<T>[];\n columns: GridNode<T>[];\n rowHeaderColumnKeys: Set<Key>;\n body: GridNode<T>;\n\n constructor(nodes: Iterable<GridNode<T>>, prev?: TableCollection<T>, opts?: GridCollectionOptions) {\n let rowHeaderColumnKeys: Set<Key> = new Set();\n let body: GridNode<T>;\n let columns = [];\n\n // Add cell for selection checkboxes if needed.\n if (opts?.showSelectionCheckboxes) {\n let rowHeaderColumn: GridNode<T> = {\n type: 'column',\n key: ROW_HEADER_COLUMN_KEY,\n value: null,\n textValue: '',\n level: 0,\n index: 0,\n hasChildNodes: false,\n rendered: null,\n childNodes: [],\n props: {\n isSelectionCell: true\n }\n };\n\n columns.unshift(rowHeaderColumn);\n }\n\n let rows = [];\n let columnKeyMap = new Map();\n let visit = (node: GridNode<T>) => {\n switch (node.type) {\n case 'body':\n body = node;\n break;\n case 'column':\n columnKeyMap.set(node.key, node);\n if (!node.hasChildNodes) {\n columns.push(node);\n\n if (node.props.isRowHeader) {\n rowHeaderColumnKeys.add(node.key);\n }\n }\n break;\n case 'item':\n rows.push(node);\n return; // do not go into childNodes\n }\n for (let child of node.childNodes) {\n visit(child);\n }\n };\n\n for (let node of nodes) {\n visit(node);\n }\n\n let headerRows = buildHeaderRows(columnKeyMap, columns) as GridNode<T>[];\n headerRows.forEach((row, i) => rows.splice(i, 0, row));\n\n super({\n columnCount: columns.length,\n items: rows,\n visitNode: node => {\n node.column = columns[node.index];\n return node;\n }\n });\n this.columns = columns;\n this.rowHeaderColumnKeys = rowHeaderColumnKeys;\n this.body = body;\n this.headerRows = headerRows;\n\n // Default row header column to the first one.\n if (this.rowHeaderColumnKeys.size === 0) {\n this.rowHeaderColumnKeys.add(this.columns[opts?.showSelectionCheckboxes ? 1 : 0].key);\n }\n }\n\n *[Symbol.iterator]() {\n yield* this.body.childNodes;\n }\n\n get size() {\n return [...this.body.childNodes].length;\n }\n\n getKeys() {\n return this.keyMap.keys();\n }\n\n getKeyBefore(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.prevKey : null;\n }\n\n getKeyAfter(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.nextKey : null;\n }\n\n getFirstKey() {\n return [...this.body.childNodes][0]?.key;\n }\n\n getLastKey() {\n let rows = [...this.body.childNodes];\n return rows[rows.length - 1]?.key;\n }\n\n getItem(key: Key) {\n return this.keyMap.get(key);\n }\n\n at(idx: number) {\n const keys = [...this.getKeys()];\n return this.getItem(keys[idx]);\n }\n}\n","/*\n * Copyright 2020 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 {PartialNode} from '@react-stately/collections';\nimport React, {ReactElement} from 'react';\nimport {TableHeaderProps} from '@react-types/table';\n\nfunction TableHeader<T>(props: TableHeaderProps<T>): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nTableHeader.getCollectionNode = function* getCollectionNode<T>(props: TableHeaderProps<T>): Generator<PartialNode<T>, void, any> {\n let {children, columns} = props;\n if (typeof children === 'function') {\n if (!columns) {\n throw new Error('props.children was a function but props.columns is missing');\n }\n\n for (let column of columns) {\n yield {\n type: 'column',\n value: column,\n renderer: children\n };\n }\n } else {\n let columns: PartialNode<T>[] = [];\n React.Children.forEach(children, column => {\n columns.push({\n type: 'column',\n element: column\n });\n });\n\n yield* columns;\n }\n};\n\n/**\n * A TableHeader is a container for the Column elements in a Table. Columns can be statically defined\n * as children, or generated dynamically using a function based on the data passed to the `columns` prop.\n */\n// We don't want getCollectionNode to show up in the type definition\nlet _TableHeader = TableHeader as <T>(props: TableHeaderProps<T>) => JSX.Element;\nexport {_TableHeader as TableHeader};\n","/*\n * Copyright 2020 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 {PartialNode} from '@react-stately/collections';\nimport React, {ReactElement} from 'react';\nimport {TableBodyProps} from '@react-types/table';\n\nfunction TableBody<T>(props: TableBodyProps<T>): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nTableBody.getCollectionNode = function* getCollectionNode<T>(props: TableBodyProps<T>): Generator<PartialNode<T>> {\n let {children, items} = props;\n yield {\n type: 'body',\n hasChildNodes: true,\n props,\n *childNodes() {\n if (typeof children === 'function') {\n if (!items) {\n throw new Error('props.children was a function but props.items is missing');\n }\n\n for (let item of items) {\n yield {\n type: 'item',\n value: item,\n renderer: children\n };\n }\n } else {\n let items: PartialNode<T>[] = [];\n React.Children.forEach(children, item => {\n items.push({\n type: 'item',\n element: item\n });\n });\n\n yield* items;\n }\n }\n };\n};\n\n/**\n * A TableBody is a container for the Row elements of a Table. Rows can be statically defined\n * as children, or generated dynamically using a function based on the data passed to the `items` prop.\n */\n// We don't want getCollectionNode to show up in the type definition\nlet _TableBody = TableBody as <T>(props: TableBodyProps<T>) => JSX.Element;\nexport {_TableBody as TableBody};\n","/*\n * Copyright 2020 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 {CollectionBuilderContext} from './useTableState';\nimport {ColumnProps} from '@react-types/table';\nimport {GridNode} from '@react-types/grid';\nimport {PartialNode} from '@react-stately/collections';\nimport React, {ReactElement} from 'react';\n\nfunction Column<T>(props: ColumnProps<T>): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nColumn.getCollectionNode = function* getCollectionNode<T>(props: ColumnProps<T>, context: CollectionBuilderContext<T>): Generator<PartialNode<T>, void, GridNode<T>[]> {\n let {title, children, childColumns} = props;\n\n let rendered = title || children;\n let textValue = props.textValue || (typeof rendered === 'string' ? rendered : '') || props['aria-label'];\n\n let fullNodes = yield {\n type: 'column',\n hasChildNodes: !!childColumns || (title && React.Children.count(children) > 0),\n rendered,\n textValue,\n props,\n *childNodes() {\n if (childColumns) {\n for (let child of childColumns) {\n yield {\n type: 'column',\n value: child\n };\n }\n } else if (title) {\n let childColumns: PartialNode<T>[] = [];\n React.Children.forEach(children, child => {\n childColumns.push({\n type: 'column',\n element: child as ReactElement<ColumnProps<T>>\n });\n });\n\n yield* childColumns;\n }\n },\n shouldInvalidate(newContext: CollectionBuilderContext<T>) {\n // This is a bit of a hack, but it works.\n // If this method is called, then there's a cached version of this node available.\n // But, we need to keep the list of columns in the new context up to date.\n updateContext(newContext);\n return false;\n }\n };\n\n let updateContext = (context: CollectionBuilderContext<T>) => {\n // register leaf columns on the context so that <Row> can access them\n for (let node of fullNodes) {\n if (!node.hasChildNodes) {\n context.columns.push(node);\n }\n }\n };\n\n updateContext(context);\n};\n\n/**\n * A Column represents a field of each item within a Table. Columns may also contain nested\n * Column elements to represent column groups. Nested columns can be statically defined as\n * children, or dynamically generated using a function based on the `childColumns` prop.\n */\n// We don't want getCollectionNode to show up in the type definition\nlet _Column = Column as <T>(props: ColumnProps<T>) => JSX.Element;\nexport {_Column as Column};\n","/*\n * Copyright 2020 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 {CollectionBuilderContext} from './useTableState';\nimport {PartialNode} from '@react-stately/collections';\nimport React, {ReactElement} from 'react';\nimport {RowProps} from '@react-types/table';\n\nfunction Row(props: RowProps): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nRow.getCollectionNode = function* getCollectionNode<T>(props: RowProps, context: CollectionBuilderContext<T>): Generator<PartialNode<T>> {\n let {children, textValue} = props;\n\n yield {\n type: 'item',\n props: props,\n textValue,\n 'aria-label': props['aria-label'],\n hasChildNodes: true,\n *childNodes() {\n // Process cells first\n if (context.showSelectionCheckboxes && context.selectionMode !== 'none') {\n yield {\n type: 'cell',\n key: 'header', // this is combined with the row key by CollectionBuilder\n props: {\n isSelectionCell: true\n }\n };\n }\n\n if (typeof children === 'function') {\n for (let column of context.columns) {\n yield {\n type: 'cell',\n element: children(column.key),\n key: column.key // this is combined with the row key by CollectionBuilder\n };\n }\n } else {\n let cells: PartialNode<T>[] = [];\n React.Children.forEach(children, cell => {\n cells.push({\n type: 'cell',\n element: cell\n });\n });\n\n if (cells.length !== context.columns.length) {\n throw new Error(`Cell count must match column count. Found ${cells.length} cells and ${context.columns.length} columns.`);\n }\n\n yield* cells;\n }\n },\n shouldInvalidate(newContext: CollectionBuilderContext<T>) {\n // Invalidate all rows if the columns changed.\n return newContext.columns.length !== context.columns.length ||\n newContext.columns.some((c, i) => c.key !== context.columns[i].key) ||\n newContext.showSelectionCheckboxes !== context.showSelectionCheckboxes ||\n newContext.selectionMode !== context.selectionMode;\n }\n };\n};\n\n/**\n * A Row represents a single item in a Table and contains Cell elements for each column.\n * Cells can be statically defined as children, or generated dynamically using a function\n * based on the columns defined in the TableHeader.\n */\n// We don't want getCollectionNode to show up in the type definition\nlet _Row = Row as (props: RowProps) => JSX.Element;\nexport {_Row as Row};\n","/*\n * Copyright 2020 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 {CellProps} from '@react-types/table';\nimport {PartialNode} from '@react-stately/collections';\nimport {ReactElement} from 'react';\n\nfunction Cell(props: CellProps): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nCell.getCollectionNode = function* getCollectionNode<T>(props: CellProps): Generator<PartialNode<T>> {\n let {children} = props;\n\n let textValue = props.textValue || (typeof children === 'string' ? children : '') || props['aria-label'] || '';\n yield {\n type: 'cell',\n props: props,\n rendered: children,\n textValue,\n 'aria-label': props['aria-label'],\n hasChildNodes: false\n };\n};\n\n/**\n * A Cell represents the value of a single Column within a Table Row.\n */\n// We don't want getCollectionNode to show up in the type definition\nlet _Cell = Cell as (props: CellProps) => JSX.Element;\nexport {_Cell as Cell};\n"],"names":[],"version":3,"file":"module.js.map"}
1
+ {"mappings":"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","sources":["packages/@react-stately/table/src/index.ts","packages/@react-stately/table/src/useTableColumnResizeState.ts","packages/@react-stately/table/src/utils.ts","packages/@react-stately/table/src/useTableState.ts","packages/@react-stately/table/src/TableCollection.ts","packages/@react-stately/table/src/TableHeader.ts","packages/@react-stately/table/src/TableBody.ts","packages/@react-stately/table/src/Column.ts","packages/@react-stately/table/src/Row.ts","packages/@react-stately/table/src/Cell.ts"],"sourcesContent":["/*\n * Copyright 2020 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\nexport * from './useTableColumnResizeState';\nexport * from './utils';\nexport * from './useTableState';\nexport * from './TableHeader';\nexport * from './TableBody';\nexport * from './Column';\nexport * from './Row';\nexport * from './Cell';\nexport {Section} from '@react-stately/collections';\n","\nimport {ColumnProps} from '@react-types/table';\nimport {getContentWidth, getDynamicColumnWidths, getMaxWidth, getMinWidth, isStatic, parseStaticWidth} from './utils';\nimport {GridNode} from '@react-types/grid';\nimport {Key, MutableRefObject, useCallback, useRef, useState} from 'react';\n\nexport interface AffectedColumnWidth {\n /** The column key. */\n key: Key,\n /** The column width. */\n width: number\n}\nexport interface AffectedColumnWidths extends Array<AffectedColumnWidth> {}\n\nexport interface ColumnResizeState<T> {\n /** A ref whose current value is the state of all the column widths. */\n columnWidths: MutableRefObject<Map<Key, number>>,\n /** Setter for the table width. */\n setTableWidth: (width: number) => void,\n /** Trigger a resize and recalculation. */\n onColumnResize: (column: GridNode<T>, width: number) => void,\n /** Callback for when onColumnResize has started. */\n onColumnResizeStart: (column: GridNode<T>) => void,\n /** Callback for when onColumnResize has ended. */\n onColumnResizeEnd: (column: GridNode<T>) => void,\n /** Getter for column width. */\n getColumnWidth: (key: Key) => number,\n /** Getter for column min width. */\n getColumnMinWidth: (key: Key) => number,\n /** Getter for column max widths. */\n getColumnMaxWidth: (key: Key) => number,\n /** Key of column currently being resized. */\n currentlyResizingColumn: Key | null\n}\n\nexport interface ColumnResizeStateProps {\n /** Callback to determine what the default width of a column should be. */\n getDefaultWidth?: (props) => string | number,\n /** Callback that is invoked during the entirety of the resize event. */\n onColumnResize?: (affectedColumnWidths: AffectedColumnWidths) => void,\n /** Callback that is invoked when the resize event is ended. */\n onColumnResizeEnd?: (affectedColumnWidths: AffectedColumnWidths) => void,\n /** The default table width. */\n tableWidth?: number\n}\n\ninterface ColumnState<T> {\n columns: GridNode<T>[]\n}\n\nexport function useTableColumnResizeState<T>(props: ColumnResizeStateProps, state: ColumnState<T>): ColumnResizeState<T> {\n const {getDefaultWidth, tableWidth: defaultTableWidth = null} = props;\n const {columns} = state;\n const columnsRef = useRef<GridNode<T>[]>([]);\n const tableWidth = useRef<number>(defaultTableWidth);\n const isResizing = useRef<boolean>(null);\n const startResizeContentWidth = useRef<number>();\n\n const [columnWidths, setColumnWidths] = useState<Map<Key, number>>(new Map(columns.map(col => [col.key, 0])));\n const columnWidthsRef = useRef<Map<Key, number>>(columnWidths);\n const affectedColumnWidthsRef = useRef<AffectedColumnWidths>([]);\n const [resizedColumns, setResizedColumns] = useState<Set<Key>>(new Set());\n const resizedColumnsRef = useRef<Set<Key>>(resizedColumns);\n\n const [currentlyResizingColumn, setCurrentlyResizingColumn] = useState<Key>(null);\n\n function setColumnWidthsForRef(newWidths: Map<Key, number>) {\n columnWidthsRef.current = newWidths;\n // new map so that change detection is triggered\n setColumnWidths(newWidths);\n }\n /*\n returns the resolved column width in this order:\n previously calculated width -> controlled width prop -> uncontrolled defaultWidth prop -> dev assigned width -> default dynamic width\n */\n let getResolvedColumnWidth = useCallback((column: GridNode<T>): (number | string) => {\n let columnProps = column.props as ColumnProps<T>;\n return resizedColumns?.has(column.key) ? columnWidthsRef.current.get(column.key) : columnProps.width ?? columnProps.defaultWidth ?? getDefaultWidth?.(column.props) ?? '1fr';\n }, [getDefaultWidth, resizedColumns]);\n\n let getStaticAndDynamicColumns = useCallback((columns: GridNode<T>[]) : { staticColumns: GridNode<T>[], dynamicColumns: GridNode<T>[] } => columns.reduce((acc, column) => {\n let width = getResolvedColumnWidth(column);\n return isStatic(width) ? {...acc, staticColumns: [...acc.staticColumns, column]} : {...acc, dynamicColumns: [...acc.dynamicColumns, column]};\n }, {staticColumns: [], dynamicColumns: []}), [getResolvedColumnWidth]);\n\n let buildColumnWidths = useCallback((affectedColumns: GridNode<T>[], availableSpace: number): Map<Key, number> => {\n const widths = new Map<Key, number>();\n let remainingSpace = availableSpace;\n\n const {staticColumns, dynamicColumns} = getStaticAndDynamicColumns(affectedColumns);\n\n staticColumns.forEach(column => {\n let width = getResolvedColumnWidth(column);\n let w = parseStaticWidth(width, tableWidth.current);\n widths.set(column.key, w);\n remainingSpace -= w;\n });\n\n // dynamic columns\n if (dynamicColumns.length > 0) {\n const newColumnWidths = getDynamicColumnWidths(dynamicColumns, remainingSpace, tableWidth.current);\n for (let column of newColumnWidths) {\n widths.set(column.key, column.calculatedWidth);\n }\n }\n\n return widths;\n }, [getStaticAndDynamicColumns, getResolvedColumnWidth]);\n\n\n const prevColKeys = columnsRef.current.map(col => col.key);\n const colKeys = columns.map(col => col.key);\n // if the columns change, need to rebuild widths.\n if (prevColKeys.length !== colKeys.length || !colKeys.every((col, i) => col === prevColKeys[i])) {\n columnsRef.current = columns;\n const widths = buildColumnWidths(columns, tableWidth.current);\n setColumnWidthsForRef(widths);\n }\n\n function setTableWidth(width: number) {\n if (width && width !== tableWidth.current) {\n tableWidth.current = width;\n if (!isResizing.current) {\n const widths = buildColumnWidths(columns, width);\n setColumnWidthsForRef(widths);\n }\n }\n }\n\n function onColumnResizeStart(column: GridNode<T>) {\n setCurrentlyResizingColumn(column.key);\n isResizing.current = true;\n startResizeContentWidth.current = getContentWidth(columnWidthsRef.current);\n }\n\n function onColumnResize(column: GridNode<T>, width: number) {\n let widthsObj = resizeColumn(column, width);\n affectedColumnWidthsRef.current = widthsObj;\n props.onColumnResize && props.onColumnResize(affectedColumnWidthsRef.current);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function onColumnResizeEnd(column: GridNode<T>) {\n setCurrentlyResizingColumn(null);\n isResizing.current = false;\n props.onColumnResizeEnd && props.onColumnResizeEnd(affectedColumnWidthsRef.current);\n affectedColumnWidthsRef.current = [];\n\n let widths = new Map<Key, number>(columnWidthsRef.current);\n setColumnWidthsForRef(widths);\n }\n\n function resizeColumn(column: GridNode<T>, newWidth: number) : AffectedColumnWidths {\n let boundedWidth = Math.max(\n getMinWidth(column.props.minWidth, tableWidth.current),\n Math.min(Math.floor(newWidth), getMaxWidth(column.props.maxWidth, tableWidth.current)));\n\n // copy the columnWidths map and set the new width for the column being resized\n let widths = new Map<Key, number>(columnWidthsRef.current);\n widths.set(column.key, boundedWidth);\n\n // keep track of all columns that have been sized\n resizedColumnsRef.current.add(column.key);\n setResizedColumns(resizedColumnsRef.current);\n\n // get the columns affected by resize and remaining space\n const resizeIndex = columnsRef.current.findIndex(col => col.key === column.key);\n let affectedColumns = columnsRef.current.slice(resizeIndex + 1);\n\n // we only care about the columns that CAN be resized, we ignore static columns.\n let {dynamicColumns} = getStaticAndDynamicColumns(affectedColumns);\n\n // available space for affected columns\n let availableSpace = columnsRef.current.reduce((acc, column, index) => {\n if (index <= resizeIndex || isStatic(getResolvedColumnWidth(column))) {\n return acc - widths.get(column.key);\n }\n return acc;\n }, tableWidth.current);\n\n // merge the unaffected column widths and the recalculated column widths\n let recalculatedColumnWidths = buildColumnWidths(dynamicColumns, availableSpace);\n widths = new Map<Key, number>([...widths, ...recalculatedColumnWidths]);\n\n setColumnWidthsForRef(widths);\n\n /*\n when getting recalculated columns above, the column being resized is not considered \"recalculated\"\n so we need to add it to the list of affected columns\n */\n let allAffectedColumns = ([[column.key, boundedWidth], ...recalculatedColumnWidths] as [Key, number][]).map(([key, width]) => ({key, width}));\n return allAffectedColumns;\n }\n\n // This function is regenerated whenever columnWidthsRef.current changes in order to get the new correct ref value.\n let getColumnWidth = useCallback((key: Key): number => columnWidthsRef.current.get(key) ?? 0, [columnWidthsRef.current]);\n\n let getColumnMinWidth = useCallback((key: Key) => {\n const columnIndex = columns.findIndex(col => col.key === key);\n if (columnIndex === -1) {\n return;\n }\n return getMinWidth(columns[columnIndex].props.minWidth, tableWidth.current);\n }, [columns]);\n\n let getColumnMaxWidth = useCallback((key: Key) => {\n const columnIndex = columns.findIndex(col => col.key === key);\n if (columnIndex === -1) {\n return;\n }\n return getMaxWidth(columns[columnIndex].props.maxWidth, tableWidth.current);\n }, [columns]);\n\n return {\n columnWidths: columnWidthsRef,\n setTableWidth,\n onColumnResize,\n onColumnResizeStart,\n onColumnResizeEnd,\n getColumnWidth,\n getColumnMinWidth,\n getColumnMaxWidth,\n currentlyResizingColumn\n };\n}\n","import {GridNode} from '@react-types/grid';\nimport {Key} from 'react';\n\ntype mappedColumn<T> = GridNode<T> & {\n index: number,\n delta: number,\n calculatedWidth?: number\n};\n\nexport function getContentWidth(widths: Map<Key, number>): number {\n return Array.from(widths).map(e => e[1]).reduce((acc, cur) => acc + cur, 0);\n}\n\n// numbers and percents are considered static. *fr units or a lack of units are considered dynamic.\nexport function isStatic(width: number | string): boolean {\n return width != null && (!isNaN(width as number) || (String(width)).match(/^(\\d+)(?=%$)/) !== null);\n} \n\nfunction parseFractionalUnit(width: string): number {\n if (!width) {\n return 1;\n } \n let match = width.match(/^(\\d+)(?=fr$)/);\n // if width is the incorrect format, just deafult it to a 1fr\n if (!match) {\n console.warn(`width: ${width} is not a supported format, width should be a number (ex. 150), percentage (ex. '50%') or fr unit (ex. '2fr')`, \n 'defaulting to \\'1fr\\'');\n return 1;\n }\n return parseInt(match[0], 10);\n}\n\nexport function parseStaticWidth(width: number | string, tableWidth: number): number {\n if (typeof width === 'string') {\n let match = width.match(/^(\\d+)(?=%$)/);\n if (!match) {\n throw new Error('Only percentages or numbers are supported for static column widths');\n }\n return tableWidth * (parseInt(match[0], 10) / 100);\n }\n return width;\n}\n \n \nexport function getMaxWidth(maxWidth: number | string, tableWidth: number): number {\n return maxWidth != null\n ? parseStaticWidth(maxWidth, tableWidth)\n : Infinity;\n}\n\nexport function getMinWidth(minWidth: number | string, tableWidth: number): number {\n return minWidth != null\n ? parseStaticWidth(minWidth, tableWidth)\n : 75;\n}\n\nfunction mapDynamicColumns<T>(dynamicColumns: GridNode<T>[], availableSpace: number, tableWidth: number): mappedColumn<T>[] {\n let fractions = dynamicColumns.reduce(\n (sum, column) => sum + parseFractionalUnit(column.props.defaultWidth),\n 0\n );\n \n let columns = dynamicColumns.map((column, index) => {\n const targetWidth =\n (parseFractionalUnit(column.props.defaultWidth) * availableSpace) / fractions;\n const delta = Math.max(\n getMinWidth(column.props.minWidth, tableWidth) - targetWidth,\n targetWidth - getMaxWidth(column.props.maxWidth, tableWidth)\n );\n\n return {\n ...column,\n index,\n delta \n };\n });\n \n return columns;\n}\n\nfunction findDynamicColumnWidths<T>(dynamicColumns: mappedColumn<T>[], availableSpace: number, tableWidth: number): mappedColumn<T>[] {\n let fractions = dynamicColumns.reduce(\n (sum, col) => sum + parseFractionalUnit(col.props.defaultWidth),\n 0\n );\n\n const columns = dynamicColumns.map((column) => {\n const targetWidth =\n (parseFractionalUnit(column.props.defaultWidth) * availableSpace) / fractions;\n let width = Math.max(\n getMinWidth(column.props.minWidth, tableWidth),\n Math.min(Math.floor(targetWidth), getMaxWidth(column.props.maxWidth, tableWidth))\n );\n column.calculatedWidth = width;\n availableSpace -= width;\n fractions -= parseFractionalUnit(column.props.defaultWidth);\n return column;\n });\n\n return columns;\n} \n \nexport function getDynamicColumnWidths<T>(dynamicColumns: GridNode<T>[], availableSpace: number, tableWidth: number) {\n let columns = mapDynamicColumns(dynamicColumns, availableSpace, tableWidth);\n \n columns.sort((a, b) => b.delta - a.delta);\n columns = findDynamicColumnWidths(columns, availableSpace, tableWidth);\n columns.sort((a, b) => a.index - b.index);\n \n return columns;\n}\n","/*\n * Copyright 2020 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 {CollectionBase, Node, SelectionMode, Sortable, SortDescriptor, SortDirection} from '@react-types/shared';\nimport {GridState, useGridState} from '@react-stately/grid';\nimport {TableCollection as ITableCollection} from '@react-types/table';\nimport {Key, useMemo, useState} from 'react';\nimport {MultipleSelectionStateProps} from '@react-stately/selection';\nimport {TableCollection} from './TableCollection';\nimport {useCollection} from '@react-stately/collections';\n\nexport interface TableState<T> extends GridState<T, ITableCollection<T>> {\n /** A collection of rows and columns in the table. */\n collection: ITableCollection<T>,\n /** Whether the row selection checkboxes should be displayed. */\n showSelectionCheckboxes: boolean,\n /** The current sorted column and direction. */\n sortDescriptor: SortDescriptor,\n /** Calls the provided onSortChange handler with the provided column key and sort direction. */\n sort(columnKey: Key, direction?: 'ascending' | 'descending'): void,\n /** Whether keyboard navigation is disabled, such as when the arrow keys should be handled by a component within a cell. */\n isKeyboardNavigationDisabled: boolean,\n /** Set whether keyboard navigation is disabled, such as when the arrow keys should be handled by a component within a cell. */\n setKeyboardNavigationDisabled: (val: boolean) => void\n}\n\nexport interface CollectionBuilderContext<T> {\n showSelectionCheckboxes: boolean,\n selectionMode: SelectionMode,\n columns: Node<T>[]\n}\n\nexport interface TableStateProps<T> extends CollectionBase<T>, MultipleSelectionStateProps, Sortable {\n /** Whether the row selection checkboxes should be displayed. */\n showSelectionCheckboxes?: boolean\n}\n\nconst OPPOSITE_SORT_DIRECTION = {\n ascending: 'descending' as SortDirection,\n descending: 'ascending' as SortDirection\n};\n\n/**\n * Provides state management for a table component. Handles building a collection\n * of columns and rows from props. In addition, it tracks row selection and manages sort order changes.\n */\nexport function useTableState<T extends object>(props: TableStateProps<T>): TableState<T> {\n let [isKeyboardNavigationDisabled, setKeyboardNavigationDisabled] = useState(false);\n let {selectionMode = 'none'} = props;\n\n let context = useMemo(() => ({\n showSelectionCheckboxes: props.showSelectionCheckboxes && selectionMode !== 'none',\n selectionMode,\n columns: []\n }), [props.children, props.showSelectionCheckboxes, selectionMode]);\n\n let collection = useCollection<T, TableCollection<T>>(\n props,\n (nodes, prev) => new TableCollection(nodes, prev, context),\n context\n );\n let {disabledKeys, selectionManager} = useGridState({...props, collection});\n\n return {\n collection,\n disabledKeys,\n selectionManager,\n showSelectionCheckboxes: props.showSelectionCheckboxes || false,\n sortDescriptor: props.sortDescriptor,\n isKeyboardNavigationDisabled,\n setKeyboardNavigationDisabled,\n sort(columnKey: Key, direction?: 'ascending' | 'descending') {\n props.onSortChange({\n column: columnKey,\n direction: direction ?? (props.sortDescriptor?.column === columnKey\n ? OPPOSITE_SORT_DIRECTION[props.sortDescriptor.direction]\n : 'ascending')\n });\n }\n };\n}\n","/*\n * Copyright 2020 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 */\nimport {GridCollection} from '@react-stately/grid';\nimport {GridNode} from '@react-types/grid';\nimport {Key} from 'react';\n\ninterface GridCollectionOptions {\n showSelectionCheckboxes?: boolean\n}\n\nconst ROW_HEADER_COLUMN_KEY = 'row-header-column-' + Math.random().toString(36).slice(2);\n\nfunction buildHeaderRows<T>(keyMap: Map<Key, GridNode<T>>, columnNodes: GridNode<T>[]): GridNode<T>[] {\n let columns = [];\n let seen = new Map();\n for (let column of columnNodes) {\n let parentKey = column.parentKey;\n let col = [column];\n\n while (parentKey) {\n let parent: GridNode<T> = keyMap.get(parentKey);\n\n // If we've already seen this parent, than it is shared\n // with a previous column. If the current column is taller\n // than the previous column, than we need to shift the parent\n // in the previous column so it's level with the current column.\n if (seen.has(parent)) {\n parent.colspan++;\n\n let {column, index} = seen.get(parent);\n if (index > col.length) {\n break;\n }\n\n for (let i = index; i < col.length; i++) {\n column.splice(i, 0, null);\n }\n\n // Adjust shifted indices\n for (let i = col.length; i < column.length; i++) {\n if (column[i] && seen.has(column[i])) {\n seen.get(column[i]).index = i;\n }\n }\n } else {\n parent.colspan = 1;\n col.push(parent);\n seen.set(parent, {column: col, index: col.length - 1});\n }\n\n parentKey = parent.parentKey;\n }\n\n columns.push(col);\n column.index = columns.length - 1;\n }\n\n let maxLength = Math.max(...columns.map(c => c.length));\n let headerRows = Array(maxLength).fill(0).map(() => []);\n\n // Convert columns into rows.\n let colIndex = 0;\n for (let column of columns) {\n let i = maxLength - 1;\n for (let item of column) {\n if (item) {\n // Fill the space up until the current column with a placeholder\n let row = headerRows[i];\n let rowLength = row.reduce((p, c) => p + c.colspan, 0);\n if (rowLength < colIndex) {\n let placeholder: GridNode<T> = {\n type: 'placeholder',\n key: 'placeholder-' + item.key,\n colspan: colIndex - rowLength,\n index: rowLength,\n value: null,\n rendered: null,\n level: i,\n hasChildNodes: false,\n childNodes: [],\n textValue: null\n };\n\n if (row.length > 0) {\n row[row.length - 1].nextKey = placeholder.key;\n placeholder.prevKey = row[row.length - 1].key;\n }\n\n row.push(placeholder);\n }\n\n if (row.length > 0) {\n row[row.length - 1].nextKey = item.key;\n item.prevKey = row[row.length - 1].key;\n }\n\n item.level = i;\n item.index = colIndex;\n row.push(item);\n }\n\n i--;\n }\n\n colIndex++;\n }\n\n // Add placeholders at the end of each row that is shorter than the maximum\n let i = 0;\n for (let row of headerRows) {\n let rowLength = row.reduce((p, c) => p + c.colspan, 0);\n if (rowLength < columnNodes.length) {\n let placeholder: GridNode<T> = {\n type: 'placeholder',\n key: 'placeholder-' + row[row.length - 1].key,\n colspan: columnNodes.length - rowLength,\n index: rowLength,\n value: null,\n rendered: null,\n level: i,\n hasChildNodes: false,\n childNodes: [],\n textValue: null,\n prevKey: row[row.length - 1].key\n };\n\n row.push(placeholder);\n }\n\n i++;\n }\n\n return headerRows.map((childNodes, index) => {\n let row: GridNode<T> = {\n type: 'headerrow',\n key: 'headerrow-' + index,\n index,\n value: null,\n rendered: null,\n level: 0,\n hasChildNodes: true,\n childNodes,\n textValue: null\n };\n\n return row;\n });\n}\n\nexport class TableCollection<T> extends GridCollection<T> {\n headerRows: GridNode<T>[];\n columns: GridNode<T>[];\n rowHeaderColumnKeys: Set<Key>;\n body: GridNode<T>;\n\n constructor(nodes: Iterable<GridNode<T>>, prev?: TableCollection<T>, opts?: GridCollectionOptions) {\n let rowHeaderColumnKeys: Set<Key> = new Set();\n let body: GridNode<T>;\n let columns = [];\n\n // Add cell for selection checkboxes if needed.\n if (opts?.showSelectionCheckboxes) {\n let rowHeaderColumn: GridNode<T> = {\n type: 'column',\n key: ROW_HEADER_COLUMN_KEY,\n value: null,\n textValue: '',\n level: 0,\n index: 0,\n hasChildNodes: false,\n rendered: null,\n childNodes: [],\n props: {\n isSelectionCell: true\n }\n };\n\n columns.unshift(rowHeaderColumn);\n }\n\n let rows = [];\n let columnKeyMap = new Map();\n let visit = (node: GridNode<T>) => {\n switch (node.type) {\n case 'body':\n body = node;\n break;\n case 'column':\n columnKeyMap.set(node.key, node);\n if (!node.hasChildNodes) {\n columns.push(node);\n\n if (node.props.isRowHeader) {\n rowHeaderColumnKeys.add(node.key);\n }\n }\n break;\n case 'item':\n rows.push(node);\n return; // do not go into childNodes\n }\n for (let child of node.childNodes) {\n visit(child);\n }\n };\n\n for (let node of nodes) {\n visit(node);\n }\n\n let headerRows = buildHeaderRows(columnKeyMap, columns) as GridNode<T>[];\n headerRows.forEach((row, i) => rows.splice(i, 0, row));\n\n super({\n columnCount: columns.length,\n items: rows,\n visitNode: node => {\n node.column = columns[node.index];\n return node;\n }\n });\n this.columns = columns;\n this.rowHeaderColumnKeys = rowHeaderColumnKeys;\n this.body = body;\n this.headerRows = headerRows;\n\n // Default row header column to the first one.\n if (this.rowHeaderColumnKeys.size === 0) {\n this.rowHeaderColumnKeys.add(this.columns[opts?.showSelectionCheckboxes ? 1 : 0].key);\n }\n }\n\n *[Symbol.iterator]() {\n yield* this.body.childNodes;\n }\n\n get size() {\n return [...this.body.childNodes].length;\n }\n\n getKeys() {\n return this.keyMap.keys();\n }\n\n getKeyBefore(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.prevKey : null;\n }\n\n getKeyAfter(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.nextKey : null;\n }\n\n getFirstKey() {\n return [...this.body.childNodes][0]?.key;\n }\n\n getLastKey() {\n let rows = [...this.body.childNodes];\n return rows[rows.length - 1]?.key;\n }\n\n getItem(key: Key) {\n return this.keyMap.get(key);\n }\n\n at(idx: number) {\n const keys = [...this.getKeys()];\n return this.getItem(keys[idx]);\n }\n}\n","/*\n * Copyright 2020 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 {PartialNode} from '@react-stately/collections';\nimport React, {ReactElement} from 'react';\nimport {TableHeaderProps} from '@react-types/table';\n\nfunction TableHeader<T>(props: TableHeaderProps<T>): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nTableHeader.getCollectionNode = function* getCollectionNode<T>(props: TableHeaderProps<T>): Generator<PartialNode<T>, void, any> {\n let {children, columns} = props;\n if (typeof children === 'function') {\n if (!columns) {\n throw new Error('props.children was a function but props.columns is missing');\n }\n\n for (let column of columns) {\n yield {\n type: 'column',\n value: column,\n renderer: children\n };\n }\n } else {\n let columns: PartialNode<T>[] = [];\n React.Children.forEach(children, column => {\n columns.push({\n type: 'column',\n element: column\n });\n });\n\n yield* columns;\n }\n};\n\n/**\n * A TableHeader is a container for the Column elements in a Table. Columns can be statically defined\n * as children, or generated dynamically using a function based on the data passed to the `columns` prop.\n */\n// We don't want getCollectionNode to show up in the type definition\nlet _TableHeader = TableHeader as <T>(props: TableHeaderProps<T>) => JSX.Element;\nexport {_TableHeader as TableHeader};\n","/*\n * Copyright 2020 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 {PartialNode} from '@react-stately/collections';\nimport React, {ReactElement} from 'react';\nimport {TableBodyProps} from '@react-types/table';\n\nfunction TableBody<T>(props: TableBodyProps<T>): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nTableBody.getCollectionNode = function* getCollectionNode<T>(props: TableBodyProps<T>): Generator<PartialNode<T>> {\n let {children, items} = props;\n yield {\n type: 'body',\n hasChildNodes: true,\n props,\n *childNodes() {\n if (typeof children === 'function') {\n if (!items) {\n throw new Error('props.children was a function but props.items is missing');\n }\n\n for (let item of items) {\n yield {\n type: 'item',\n value: item,\n renderer: children\n };\n }\n } else {\n let items: PartialNode<T>[] = [];\n React.Children.forEach(children, item => {\n items.push({\n type: 'item',\n element: item\n });\n });\n\n yield* items;\n }\n }\n };\n};\n\n/**\n * A TableBody is a container for the Row elements of a Table. Rows can be statically defined\n * as children, or generated dynamically using a function based on the data passed to the `items` prop.\n */\n// We don't want getCollectionNode to show up in the type definition\nlet _TableBody = TableBody as <T>(props: TableBodyProps<T>) => JSX.Element;\nexport {_TableBody as TableBody};\n","/*\n * Copyright 2020 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 {CollectionBuilderContext} from './useTableState';\nimport {ColumnProps} from '@react-types/table';\nimport {GridNode} from '@react-types/grid';\nimport {PartialNode} from '@react-stately/collections';\nimport React, {ReactElement} from 'react';\n\nfunction Column<T>(props: ColumnProps<T>): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nColumn.getCollectionNode = function* getCollectionNode<T>(props: ColumnProps<T>, context: CollectionBuilderContext<T>): Generator<PartialNode<T>, void, GridNode<T>[]> {\n let {title, children, childColumns} = props;\n\n let rendered = title || children;\n let textValue = props.textValue || (typeof rendered === 'string' ? rendered : '') || props['aria-label'];\n\n let fullNodes = yield {\n type: 'column',\n hasChildNodes: !!childColumns || (title && React.Children.count(children) > 0),\n rendered,\n textValue,\n props,\n *childNodes() {\n if (childColumns) {\n for (let child of childColumns) {\n yield {\n type: 'column',\n value: child\n };\n }\n } else if (title) {\n let childColumns: PartialNode<T>[] = [];\n React.Children.forEach(children, child => {\n childColumns.push({\n type: 'column',\n element: child as ReactElement<ColumnProps<T>>\n });\n });\n\n yield* childColumns;\n }\n },\n shouldInvalidate(newContext: CollectionBuilderContext<T>) {\n // This is a bit of a hack, but it works.\n // If this method is called, then there's a cached version of this node available.\n // But, we need to keep the list of columns in the new context up to date.\n updateContext(newContext);\n return false;\n }\n };\n\n let updateContext = (context: CollectionBuilderContext<T>) => {\n // register leaf columns on the context so that <Row> can access them\n for (let node of fullNodes) {\n if (!node.hasChildNodes) {\n context.columns.push(node);\n }\n }\n };\n\n updateContext(context);\n};\n\n/**\n * A Column represents a field of each item within a Table. Columns may also contain nested\n * Column elements to represent column groups. Nested columns can be statically defined as\n * children, or dynamically generated using a function based on the `childColumns` prop.\n */\n// We don't want getCollectionNode to show up in the type definition\nlet _Column = Column as <T>(props: ColumnProps<T>) => JSX.Element;\nexport {_Column as Column};\n","/*\n * Copyright 2020 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 {CollectionBuilderContext} from './useTableState';\nimport {PartialNode} from '@react-stately/collections';\nimport React, {ReactElement} from 'react';\nimport {RowProps} from '@react-types/table';\n\nfunction Row(props: RowProps): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nRow.getCollectionNode = function* getCollectionNode<T>(props: RowProps, context: CollectionBuilderContext<T>): Generator<PartialNode<T>> {\n let {children, textValue} = props;\n\n yield {\n type: 'item',\n props: props,\n textValue,\n 'aria-label': props['aria-label'],\n hasChildNodes: true,\n *childNodes() {\n // Process cells first\n if (context.showSelectionCheckboxes && context.selectionMode !== 'none') {\n yield {\n type: 'cell',\n key: 'header', // this is combined with the row key by CollectionBuilder\n props: {\n isSelectionCell: true\n }\n };\n }\n\n if (typeof children === 'function') {\n for (let column of context.columns) {\n yield {\n type: 'cell',\n element: children(column.key),\n key: column.key // this is combined with the row key by CollectionBuilder\n };\n }\n } else {\n let cells: PartialNode<T>[] = [];\n React.Children.forEach(children, cell => {\n cells.push({\n type: 'cell',\n element: cell\n });\n });\n\n if (cells.length !== context.columns.length) {\n throw new Error(`Cell count must match column count. Found ${cells.length} cells and ${context.columns.length} columns.`);\n }\n\n yield* cells;\n }\n },\n shouldInvalidate(newContext: CollectionBuilderContext<T>) {\n // Invalidate all rows if the columns changed.\n return newContext.columns.length !== context.columns.length ||\n newContext.columns.some((c, i) => c.key !== context.columns[i].key) ||\n newContext.showSelectionCheckboxes !== context.showSelectionCheckboxes ||\n newContext.selectionMode !== context.selectionMode;\n }\n };\n};\n\n/**\n * A Row represents a single item in a Table and contains Cell elements for each column.\n * Cells can be statically defined as children, or generated dynamically using a function\n * based on the columns defined in the TableHeader.\n */\n// We don't want getCollectionNode to show up in the type definition\nlet _Row = Row as (props: RowProps) => JSX.Element;\nexport {_Row as Row};\n","/*\n * Copyright 2020 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 {CellProps} from '@react-types/table';\nimport {PartialNode} from '@react-stately/collections';\nimport {ReactElement} from 'react';\n\nfunction Cell(props: CellProps): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nCell.getCollectionNode = function* getCollectionNode<T>(props: CellProps): Generator<PartialNode<T>> {\n let {children} = props;\n\n let textValue = props.textValue || (typeof children === 'string' ? children : '') || props['aria-label'] || '';\n yield {\n type: 'cell',\n props: props,\n rendered: children,\n textValue,\n 'aria-label': props['aria-label'],\n hasChildNodes: false\n };\n};\n\n/**\n * A Cell represents the value of a single Column within a Table Row.\n */\n// We don't want getCollectionNode to show up in the type definition\nlet _Cell = Cell as (props: CellProps) => JSX.Element;\nexport {_Cell as Cell};\n"],"names":[],"version":3,"file":"module.js.map"}
package/dist/types.d.ts CHANGED
@@ -28,24 +28,22 @@ export interface ColumnResizeState<T> {
28
28
  columnWidths: MutableRefObject<Map<Key, number>>;
29
29
  /** Setter for the table width. */
30
30
  setTableWidth: (width: number) => void;
31
- /** Trigger a resize and recalc. */
31
+ /** Trigger a resize and recalculation. */
32
32
  onColumnResize: (column: GridNode<T>, width: number) => void;
33
33
  /** Callback for when onColumnResize has started. */
34
- onColumnResizeStart: () => void;
34
+ onColumnResizeStart: (column: GridNode<T>) => void;
35
35
  /** Callback for when onColumnResize has ended. */
36
- onColumnResizeEnd: () => void;
36
+ onColumnResizeEnd: (column: GridNode<T>) => void;
37
37
  /** Getter for column width. */
38
- getColumnWidth(key: Key): number;
38
+ getColumnWidth: (key: Key) => number;
39
39
  /** Getter for column min width. */
40
- getColumnMinWidth(key: Key): number;
40
+ getColumnMinWidth: (key: Key) => number;
41
41
  /** Getter for column max widths. */
42
- getColumnMaxWidth(key: Key): number;
43
- /** Boolean for if a column is being resized. */
44
- isResizingColumn: boolean;
42
+ getColumnMaxWidth: (key: Key) => number;
43
+ /** Key of column currently being resized. */
44
+ currentlyResizingColumn: Key | null;
45
45
  }
46
- export interface ColumnResizeStateProps<T> {
47
- /** Collection of existing columns. */
48
- columns: GridNode<T>[];
46
+ export interface ColumnResizeStateProps {
49
47
  /** Callback to determine what the default width of a column should be. */
50
48
  getDefaultWidth?: (props: any) => string | number;
51
49
  /** Callback that is invoked during the entirety of the resize event. */
@@ -55,7 +53,10 @@ export interface ColumnResizeStateProps<T> {
55
53
  /** The default table width. */
56
54
  tableWidth?: number;
57
55
  }
58
- export function useTableColumnResizeState<T>(props: ColumnResizeStateProps<T>): ColumnResizeState<T>;
56
+ interface ColumnState<T> {
57
+ columns: GridNode<T>[];
58
+ }
59
+ export function useTableColumnResizeState<T>(props: ColumnResizeStateProps, state: ColumnState<T>): ColumnResizeState<T>;
59
60
  export interface TableState<T> extends GridState<T, TableCollection<T>> {
60
61
  /** A collection of rows and columns in the table. */
61
62
  collection: TableCollection<T>;
@@ -65,6 +66,10 @@ export interface TableState<T> extends GridState<T, TableCollection<T>> {
65
66
  sortDescriptor: SortDescriptor;
66
67
  /** Calls the provided onSortChange handler with the provided column key and sort direction. */
67
68
  sort(columnKey: Key, direction?: 'ascending' | 'descending'): void;
69
+ /** Whether keyboard navigation is disabled, such as when the arrow keys should be handled by a component within a cell. */
70
+ isKeyboardNavigationDisabled: boolean;
71
+ /** Set whether keyboard navigation is disabled, such as when the arrow keys should be handled by a component within a cell. */
72
+ setKeyboardNavigationDisabled: (val: boolean) => void;
68
73
  }
69
74
  export interface CollectionBuilderContext<T> {
70
75
  showSelectionCheckboxes: boolean;
@@ -1 +1 @@
1
- {"mappings":";;;;;;AAGA,kBAAkB,CAAC,IAAI,SAAS,CAAC,CAAC,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAC;AAEF,gCAAgC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,MAAM,CAEhE;AAGD,yBAAyB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAExD;AAgBD,iCAAiC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CASnF;AAGD,4BAA4B,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAIjF;AAED,4BAA4B,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAIjF;AAgDD,uCAAuC,CAAC,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAQlH;ACxGD;IACE,sBAAsB;IACtB,GAAG,EAAE,GAAG,CAAC;IACT,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAA;CACd;AACD,qCAAsC,SAAQ,KAAK,CAAC,mBAAmB,CAAC;CAAG;AAE3E,mCAAmC,CAAC;IAClC,uEAAuE;IACvE,YAAY,EAAE,iBAAiB,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,kCAAkC;IAClC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,mCAAmC;IACnC,cAAc,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,oDAAoD;IACpD,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAC9B,kDAAkD;IACpD,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,+BAA+B;IAC/B,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC;IAC/B,mCAAmC;IACrC,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC;IAClC,oCAAoC;IACtC,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC;IACpC,gDAAgD;IAChD,gBAAgB,EAAE,OAAO,CAAA;CAC1B;AAED,wCAAwC,CAAC;IACvC,sCAAsC;IACtC,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;IACvB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,CAAC,KAAK,KAAA,KAAK,MAAM,GAAG,MAAM,CAAC;IAC7C,wEAAwE;IACxE,cAAc,CAAC,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACtE,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACzE,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,0CAA0C,CAAC,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAwKnG;AEpMD,4BAA4B,CAAC,CAAE,SAAQ,UAAU,CAAC,EAAE,gBAAiB,CAAC,CAAC,CAAC;IACtE,qDAAqD;IACrD,UAAU,EAAE,gBAAiB,CAAC,CAAC,CAAC;IAChC,gEAAgE;IAChE,uBAAuB,EAAE,OAAO,CAAC;IACjC,+CAA+C;IAC/C,cAAc,EAAE,cAAc,CAAC;IAC/B,+FAA+F;IAC/F,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,WAAW,GAAG,YAAY,GAAG,IAAI,CAAA;CACnE;AAED,0CAA0C,CAAC;IACzC,uBAAuB,EAAE,OAAO,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,CAAA;CACnB;AAED,iCAAiC,CAAC,CAAE,SAAQ,eAAe,CAAC,CAAC,EAAE,2BAA2B,EAAE,QAAQ;IAClG,gEAAgE;IAChE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAClC;AAOD;;;GAGG;AACH,8BAA8B,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CA+BxF;ACnCD;;;GAGG;AAEH,OAAA,IAAI,gDAAiE,WAAW,CAAC;ACEjF;;;GAGG;AAEH,OAAA,IAAI,4CAA2D,WAAW,CAAC;ACgB3E;;;;GAIG;AAEH,OAAA,IAAI,sCAAkD,WAAW,CAAC;ACLlE;;;;GAIG;AAEH,OAAA,IAAI,aAAsB,QAAQ,KAAK,WAAW,CAAC;AChDnD;;GAEG;AAEH,OAAA,IAAI,cAAwB,SAAS,KAAK,WAAW,CAAC;AClBtD,OAAO,EAAC,OAAO,EAAC,MAAM,4BAA4B,CAAC","sources":["packages/@react-stately/table/src/packages/@react-stately/table/src/utils.ts","packages/@react-stately/table/src/packages/@react-stately/table/src/useTableColumnResizeState.ts","packages/@react-stately/table/src/packages/@react-stately/table/src/TableCollection.ts","packages/@react-stately/table/src/packages/@react-stately/table/src/useTableState.ts","packages/@react-stately/table/src/packages/@react-stately/table/src/TableHeader.ts","packages/@react-stately/table/src/packages/@react-stately/table/src/TableBody.ts","packages/@react-stately/table/src/packages/@react-stately/table/src/Column.ts","packages/@react-stately/table/src/packages/@react-stately/table/src/Row.ts","packages/@react-stately/table/src/packages/@react-stately/table/src/Cell.ts","packages/@react-stately/table/src/packages/@react-stately/table/src/index.ts","packages/@react-stately/table/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,"/*\n * Copyright 2020 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\nexport * from './useTableColumnResizeState';\nexport * from './utils';\nexport * from './useTableState';\nexport * from './TableHeader';\nexport * from './TableBody';\nexport * from './Column';\nexport * from './Row';\nexport * from './Cell';\nexport {Section} from '@react-stately/collections';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
1
+ {"mappings":"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","sources":["packages/@react-stately/table/src/packages/@react-stately/table/src/utils.ts","packages/@react-stately/table/src/packages/@react-stately/table/src/useTableColumnResizeState.ts","packages/@react-stately/table/src/packages/@react-stately/table/src/TableCollection.ts","packages/@react-stately/table/src/packages/@react-stately/table/src/useTableState.ts","packages/@react-stately/table/src/packages/@react-stately/table/src/TableHeader.ts","packages/@react-stately/table/src/packages/@react-stately/table/src/TableBody.ts","packages/@react-stately/table/src/packages/@react-stately/table/src/Column.ts","packages/@react-stately/table/src/packages/@react-stately/table/src/Row.ts","packages/@react-stately/table/src/packages/@react-stately/table/src/Cell.ts","packages/@react-stately/table/src/packages/@react-stately/table/src/index.ts","packages/@react-stately/table/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,"/*\n * Copyright 2020 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\nexport * from './useTableColumnResizeState';\nexport * from './utils';\nexport * from './useTableState';\nexport * from './TableHeader';\nexport * from './TableBody';\nexport * from './Column';\nexport * from './Row';\nexport * from './Cell';\nexport {Section} from '@react-stately/collections';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-stately/table",
3
- "version": "3.2.1-nightly.3349+9fbc8ad80",
3
+ "version": "3.2.1-nightly.3353+700ad3b9b",
4
4
  "description": "Spectrum UI components in React",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/main.js",
@@ -18,12 +18,12 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "@babel/runtime": "^7.6.2",
21
- "@react-stately/collections": "3.0.0-nightly.1649+9fbc8ad80",
22
- "@react-stately/grid": "3.2.2-nightly.3349+9fbc8ad80",
23
- "@react-stately/selection": "3.0.0-nightly.1649+9fbc8ad80",
24
- "@react-types/grid": "3.1.2-nightly.3349+9fbc8ad80",
25
- "@react-types/shared": "3.0.0-nightly.1649+9fbc8ad80",
26
- "@react-types/table": "3.2.1-nightly.3349+9fbc8ad80"
21
+ "@react-stately/collections": "3.0.0-nightly.1653+700ad3b9b",
22
+ "@react-stately/grid": "3.2.2-nightly.3353+700ad3b9b",
23
+ "@react-stately/selection": "3.0.0-nightly.1653+700ad3b9b",
24
+ "@react-types/grid": "3.1.2-nightly.3353+700ad3b9b",
25
+ "@react-types/shared": "3.0.0-nightly.1653+700ad3b9b",
26
+ "@react-types/table": "3.2.1-nightly.3353+700ad3b9b"
27
27
  },
28
28
  "peerDependencies": {
29
29
  "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
@@ -31,5 +31,5 @@
31
31
  "publishConfig": {
32
32
  "access": "public"
33
33
  },
34
- "gitHead": "9fbc8ad8014f5489659ae4ebbb8a60e117adb8c3"
34
+ "gitHead": "700ad3b9b6d663863f275aaf0a2b68eb9ad8e11e"
35
35
  }
@@ -17,25 +17,23 @@ export interface ColumnResizeState<T> {
17
17
  columnWidths: MutableRefObject<Map<Key, number>>,
18
18
  /** Setter for the table width. */
19
19
  setTableWidth: (width: number) => void,
20
- /** Trigger a resize and recalc. */
20
+ /** Trigger a resize and recalculation. */
21
21
  onColumnResize: (column: GridNode<T>, width: number) => void,
22
22
  /** Callback for when onColumnResize has started. */
23
- onColumnResizeStart: () => void,
24
- /** Callback for when onColumnResize has ended. */
25
- onColumnResizeEnd: () => void,
23
+ onColumnResizeStart: (column: GridNode<T>) => void,
24
+ /** Callback for when onColumnResize has ended. */
25
+ onColumnResizeEnd: (column: GridNode<T>) => void,
26
26
  /** Getter for column width. */
27
- getColumnWidth(key: Key): number,
28
- /** Getter for column min width. */
29
- getColumnMinWidth(key: Key): number,
30
- /** Getter for column max widths. */
31
- getColumnMaxWidth(key: Key): number,
32
- /** Boolean for if a column is being resized. */
33
- isResizingColumn: boolean
27
+ getColumnWidth: (key: Key) => number,
28
+ /** Getter for column min width. */
29
+ getColumnMinWidth: (key: Key) => number,
30
+ /** Getter for column max widths. */
31
+ getColumnMaxWidth: (key: Key) => number,
32
+ /** Key of column currently being resized. */
33
+ currentlyResizingColumn: Key | null
34
34
  }
35
35
 
36
- export interface ColumnResizeStateProps<T> {
37
- /** Collection of existing columns. */
38
- columns: GridNode<T>[],
36
+ export interface ColumnResizeStateProps {
39
37
  /** Callback to determine what the default width of a column should be. */
40
38
  getDefaultWidth?: (props) => string | number,
41
39
  /** Callback that is invoked during the entirety of the resize event. */
@@ -46,8 +44,13 @@ export interface ColumnResizeStateProps<T> {
46
44
  tableWidth?: number
47
45
  }
48
46
 
49
- export function useTableColumnResizeState<T>(props: ColumnResizeStateProps<T>): ColumnResizeState<T> {
50
- const {columns, getDefaultWidth, tableWidth: defaultTableWidth = null} = props;
47
+ interface ColumnState<T> {
48
+ columns: GridNode<T>[]
49
+ }
50
+
51
+ export function useTableColumnResizeState<T>(props: ColumnResizeStateProps, state: ColumnState<T>): ColumnResizeState<T> {
52
+ const {getDefaultWidth, tableWidth: defaultTableWidth = null} = props;
53
+ const {columns} = state;
51
54
  const columnsRef = useRef<GridNode<T>[]>([]);
52
55
  const tableWidth = useRef<number>(defaultTableWidth);
53
56
  const isResizing = useRef<boolean>(null);
@@ -59,6 +62,8 @@ export function useTableColumnResizeState<T>(props: ColumnResizeStateProps<T>):
59
62
  const [resizedColumns, setResizedColumns] = useState<Set<Key>>(new Set());
60
63
  const resizedColumnsRef = useRef<Set<Key>>(resizedColumns);
61
64
 
65
+ const [currentlyResizingColumn, setCurrentlyResizingColumn] = useState<Key>(null);
66
+
62
67
  function setColumnWidthsForRef(newWidths: Map<Key, number>) {
63
68
  columnWidthsRef.current = newWidths;
64
69
  // new map so that change detection is triggered
@@ -122,7 +127,8 @@ export function useTableColumnResizeState<T>(props: ColumnResizeStateProps<T>):
122
127
  }
123
128
  }
124
129
 
125
- function onColumnResizeStart() {
130
+ function onColumnResizeStart(column: GridNode<T>) {
131
+ setCurrentlyResizingColumn(column.key);
126
132
  isResizing.current = true;
127
133
  startResizeContentWidth.current = getContentWidth(columnWidthsRef.current);
128
134
  }
@@ -133,7 +139,9 @@ export function useTableColumnResizeState<T>(props: ColumnResizeStateProps<T>):
133
139
  props.onColumnResize && props.onColumnResize(affectedColumnWidthsRef.current);
134
140
  }
135
141
 
136
- function onColumnResizeEnd() {
142
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
143
+ function onColumnResizeEnd(column: GridNode<T>) {
144
+ setCurrentlyResizingColumn(null);
137
145
  isResizing.current = false;
138
146
  props.onColumnResizeEnd && props.onColumnResizeEnd(affectedColumnWidthsRef.current);
139
147
  affectedColumnWidthsRef.current = [];
@@ -212,6 +220,6 @@ export function useTableColumnResizeState<T>(props: ColumnResizeStateProps<T>):
212
220
  getColumnWidth,
213
221
  getColumnMinWidth,
214
222
  getColumnMaxWidth,
215
- isResizingColumn: isResizing.current
223
+ currentlyResizingColumn
216
224
  };
217
225
  }
@@ -13,7 +13,7 @@
13
13
  import {CollectionBase, Node, SelectionMode, Sortable, SortDescriptor, SortDirection} from '@react-types/shared';
14
14
  import {GridState, useGridState} from '@react-stately/grid';
15
15
  import {TableCollection as ITableCollection} from '@react-types/table';
16
- import {Key, useMemo} from 'react';
16
+ import {Key, useMemo, useState} from 'react';
17
17
  import {MultipleSelectionStateProps} from '@react-stately/selection';
18
18
  import {TableCollection} from './TableCollection';
19
19
  import {useCollection} from '@react-stately/collections';
@@ -26,7 +26,11 @@ export interface TableState<T> extends GridState<T, ITableCollection<T>> {
26
26
  /** The current sorted column and direction. */
27
27
  sortDescriptor: SortDescriptor,
28
28
  /** Calls the provided onSortChange handler with the provided column key and sort direction. */
29
- sort(columnKey: Key, direction?: 'ascending' | 'descending'): void
29
+ sort(columnKey: Key, direction?: 'ascending' | 'descending'): void,
30
+ /** Whether keyboard navigation is disabled, such as when the arrow keys should be handled by a component within a cell. */
31
+ isKeyboardNavigationDisabled: boolean,
32
+ /** Set whether keyboard navigation is disabled, such as when the arrow keys should be handled by a component within a cell. */
33
+ setKeyboardNavigationDisabled: (val: boolean) => void
30
34
  }
31
35
 
32
36
  export interface CollectionBuilderContext<T> {
@@ -50,6 +54,7 @@ const OPPOSITE_SORT_DIRECTION = {
50
54
  * of columns and rows from props. In addition, it tracks row selection and manages sort order changes.
51
55
  */
52
56
  export function useTableState<T extends object>(props: TableStateProps<T>): TableState<T> {
57
+ let [isKeyboardNavigationDisabled, setKeyboardNavigationDisabled] = useState(false);
53
58
  let {selectionMode = 'none'} = props;
54
59
 
55
60
  let context = useMemo(() => ({
@@ -71,6 +76,8 @@ export function useTableState<T extends object>(props: TableStateProps<T>): Tabl
71
76
  selectionManager,
72
77
  showSelectionCheckboxes: props.showSelectionCheckboxes || false,
73
78
  sortDescriptor: props.sortDescriptor,
79
+ isKeyboardNavigationDisabled,
80
+ setKeyboardNavigationDisabled,
74
81
  sort(columnKey: Key, direction?: 'ascending' | 'descending') {
75
82
  props.onSortChange({
76
83
  column: columnKey,