@react-stately/layout 3.4.6-nightly.3224 → 3.4.6-nightly.3236

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
@@ -225,7 +225,7 @@ class $fe69e47e38ed0ac4$export$cacbb3924155d68e extends $cMJQZ$reactstatelyvirtu
225
225
  key = collection.getKeyBefore(key);
226
226
  while(key != null){
227
227
  let item = collection.getItem(key);
228
- if (item.type === 'item' && !this.disabledKeys.has(item.key)) return key;
228
+ if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) return key;
229
229
  key = collection.getKeyBefore(key);
230
230
  }
231
231
  }
@@ -234,10 +234,16 @@ class $fe69e47e38ed0ac4$export$cacbb3924155d68e extends $cMJQZ$reactstatelyvirtu
234
234
  key = collection.getKeyAfter(key);
235
235
  while(key != null){
236
236
  let item = collection.getItem(key);
237
- if (item.type === 'item' && !this.disabledKeys.has(item.key)) return key;
237
+ if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) return key;
238
238
  key = collection.getKeyAfter(key);
239
239
  }
240
240
  }
241
+ getKeyLeftOf(key) {
242
+ return key;
243
+ }
244
+ getKeyRightOf(key) {
245
+ return key;
246
+ }
241
247
  getKeyPageAbove(key) {
242
248
  let layoutInfo = this.getLayoutInfo(key);
243
249
  if (layoutInfo) {
@@ -267,7 +273,7 @@ class $fe69e47e38ed0ac4$export$cacbb3924155d68e extends $cMJQZ$reactstatelyvirtu
267
273
  let key = collection.getFirstKey();
268
274
  while(key != null){
269
275
  let item = collection.getItem(key);
270
- if (item.type === 'item' && !this.disabledKeys.has(item.key)) return key;
276
+ if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) return key;
271
277
  key = collection.getKeyAfter(key);
272
278
  }
273
279
  }
@@ -276,7 +282,7 @@ class $fe69e47e38ed0ac4$export$cacbb3924155d68e extends $cMJQZ$reactstatelyvirtu
276
282
  let key = collection.getLastKey();
277
283
  while(key != null){
278
284
  let item = collection.getItem(key);
279
- if (item.type === 'item' && !this.disabledKeys.has(item.key)) return key;
285
+ if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) return key;
280
286
  key = collection.getKeyBefore(key);
281
287
  }
282
288
  }
@@ -331,6 +337,7 @@ class $fe69e47e38ed0ac4$export$cacbb3924155d68e extends $cMJQZ$reactstatelyvirtu
331
337
  }){
332
338
  super();
333
339
  this.disabledKeys = new Set();
340
+ this.allowDisabledKeyFocus = false;
334
341
  this.rowHeight = options.rowHeight;
335
342
  this.estimatedRowHeight = options.estimatedRowHeight;
336
343
  this.headingHeight = options.headingHeight;
@@ -345,6 +352,7 @@ class $fe69e47e38ed0ac4$export$cacbb3924155d68e extends $cMJQZ$reactstatelyvirtu
345
352
  this.rootNodes = [];
346
353
  this.lastWidth = 0;
347
354
  this.lastCollection = null;
355
+ this.allowDisabledKeyFocus = options.allowDisabledKeyFocus;
348
356
  }
349
357
  }
350
358
 
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-stately/layout/src/index.ts","packages/@react-stately/layout/src/ListLayout.ts","packages/@react-stately/layout/src/TableLayout.ts","packages/@react-stately/layout/src/TableLayout_DEPRECATED.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 './ListLayout';\nexport * from './TableLayout';\nexport * from './TableLayout_DEPRECATED';\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 {Collection, KeyboardDelegate, Node} from '@react-types/shared';\nimport {InvalidationContext, Layout, LayoutInfo, Rect, Size} from '@react-stately/virtualizer';\nimport {Key} from 'react';\n// import { DragTarget, DropTarget, DropPosition } from '@react-types/shared';\n\nexport type ListLayoutOptions<T> = {\n /** The height of a row in px. */\n rowHeight?: number,\n estimatedRowHeight?: number,\n headingHeight?: number,\n estimatedHeadingHeight?: number,\n padding?: number,\n indentationForItem?: (collection: Collection<Node<T>>, key: Key) => number,\n collator?: Intl.Collator,\n loaderHeight?: number,\n placeholderHeight?: number\n};\n\n// A wrapper around LayoutInfo that supports hierarchy\nexport interface LayoutNode {\n node?: Node<unknown>,\n layoutInfo: LayoutInfo,\n header?: LayoutInfo,\n children?: LayoutNode[]\n}\n\nconst DEFAULT_HEIGHT = 48;\n\n/**\n * The ListLayout class is an implementation of a collection view {@link Layout}\n * it is used for creating lists and lists with indented sub-lists.\n *\n * To configure a ListLayout, you can use the properties to define the\n * layouts and/or use the method for defining indentation.\n * The {@link ListKeyboardDelegate} extends the existing collection view\n * delegate with an additional method to do this (it uses the same delegate object as\n * the collection view itself).\n */\nexport class ListLayout<T> extends Layout<Node<T>> implements KeyboardDelegate {\n protected rowHeight: number;\n protected estimatedRowHeight: number;\n protected headingHeight: number;\n protected estimatedHeadingHeight: number;\n protected padding: number;\n protected indentationForItem?: (collection: Collection<Node<T>>, key: Key) => number;\n protected layoutInfos: Map<Key, LayoutInfo>;\n protected layoutNodes: Map<Key, LayoutNode>;\n protected contentSize: Size;\n collection: Collection<Node<T>>;\n disabledKeys: Set<Key> = new Set();\n isLoading: boolean;\n protected lastWidth: number;\n protected lastCollection: Collection<Node<T>>;\n protected rootNodes: LayoutNode[];\n protected collator: Intl.Collator;\n protected invalidateEverything: boolean;\n protected loaderHeight: number;\n protected placeholderHeight: number;\n\n /**\n * Creates a new ListLayout with options. See the list of properties below for a description\n * of the options that can be provided.\n */\n constructor(options: ListLayoutOptions<T> = {}) {\n super();\n this.rowHeight = options.rowHeight;\n this.estimatedRowHeight = options.estimatedRowHeight;\n this.headingHeight = options.headingHeight;\n this.estimatedHeadingHeight = options.estimatedHeadingHeight;\n this.padding = options.padding || 0;\n this.indentationForItem = options.indentationForItem;\n this.collator = options.collator;\n this.loaderHeight = options.loaderHeight;\n this.placeholderHeight = options.placeholderHeight;\n this.layoutInfos = new Map();\n this.layoutNodes = new Map();\n this.rootNodes = [];\n this.lastWidth = 0;\n this.lastCollection = null;\n }\n\n getLayoutInfo(key: Key) {\n return this.layoutInfos.get(key);\n }\n\n getVisibleLayoutInfos(rect: Rect) {\n let res: LayoutInfo[] = [];\n\n let addNodes = (nodes: LayoutNode[]) => {\n for (let node of nodes) {\n if (this.isVisible(node, rect)) {\n res.push(node.layoutInfo);\n if (node.header) {\n res.push(node.header);\n }\n\n if (node.children) {\n addNodes(node.children);\n }\n }\n }\n };\n\n addNodes(this.rootNodes);\n return res;\n }\n\n isVisible(node: LayoutNode, rect: Rect) {\n return node.layoutInfo.rect.intersects(rect) || node.layoutInfo.isSticky;\n }\n\n validate(invalidationContext: InvalidationContext<Node<T>, unknown>) {\n // Invalidate cache if the size of the collection changed.\n // In this case, we need to recalculate the entire layout.\n this.invalidateEverything = invalidationContext.sizeChanged;\n\n this.collection = this.virtualizer.collection;\n this.rootNodes = this.buildCollection();\n\n // Remove deleted layout nodes\n if (this.lastCollection) {\n for (let key of this.lastCollection.getKeys()) {\n if (!this.collection.getItem(key)) {\n let layoutNode = this.layoutNodes.get(key);\n if (layoutNode) {\n this.layoutInfos.delete(layoutNode.layoutInfo.key);\n this.layoutInfos.delete(layoutNode.header?.key);\n this.layoutNodes.delete(key);\n }\n }\n }\n }\n\n this.lastWidth = this.virtualizer.visibleRect.width;\n this.lastCollection = this.collection;\n }\n\n buildCollection(): LayoutNode[] {\n let y = this.padding;\n let nodes = [];\n for (let node of this.collection) {\n let layoutNode = this.buildChild(node, 0, y);\n y = layoutNode.layoutInfo.rect.maxY;\n nodes.push(layoutNode);\n }\n\n if (this.isLoading) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width,\n this.loaderHeight ?? this.virtualizer.visibleRect.height);\n let loader = new LayoutInfo('loader', 'loader', rect);\n this.layoutInfos.set('loader', loader);\n nodes.push({layoutInfo: loader});\n y = loader.rect.maxY;\n }\n\n if (nodes.length === 0) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width,\n this.placeholderHeight ?? this.virtualizer.visibleRect.height);\n let placeholder = new LayoutInfo('placeholder', 'placeholder', rect);\n this.layoutInfos.set('placeholder', placeholder);\n nodes.push({layoutInfo: placeholder});\n y = placeholder.rect.maxY;\n }\n\n this.contentSize = new Size(this.virtualizer.visibleRect.width, y + this.padding);\n return nodes;\n }\n\n buildChild(node: Node<T>, x: number, y: number): LayoutNode {\n let cached = this.layoutNodes.get(node.key);\n if (!this.invalidateEverything && cached && cached.node === node && y === (cached.header || cached.layoutInfo).rect.y) {\n return cached;\n }\n\n let layoutNode = this.buildNode(node, x, y);\n layoutNode.node = node;\n\n layoutNode.layoutInfo.parentKey = node.parentKey ?? null;\n this.layoutInfos.set(layoutNode.layoutInfo.key, layoutNode.layoutInfo);\n if (layoutNode.header) {\n this.layoutInfos.set(layoutNode.header.key, layoutNode.header);\n }\n\n this.layoutNodes.set(node.key, layoutNode);\n return layoutNode;\n }\n\n buildNode(node: Node<T>, x: number, y: number): LayoutNode {\n switch (node.type) {\n case 'section':\n return this.buildSection(node, x, y);\n case 'item':\n return this.buildItem(node, x, y);\n }\n }\n\n buildSection(node: Node<T>, x: number, y: number): LayoutNode {\n let width = this.virtualizer.visibleRect.width;\n let rectHeight = this.headingHeight;\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (rectHeight == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode && previousLayoutNode.header) {\n let curNode = this.collection.getItem(node.key);\n let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;\n rectHeight = previousLayoutNode.header.rect.height;\n isEstimated = width !== this.lastWidth || curNode !== lastNode || previousLayoutNode.header.estimatedSize;\n } else {\n rectHeight = (node.rendered ? this.estimatedHeadingHeight : 0);\n isEstimated = true;\n }\n }\n\n if (rectHeight == null) {\n rectHeight = DEFAULT_HEIGHT;\n }\n\n let headerRect = new Rect(0, y, width, rectHeight);\n let header = new LayoutInfo('header', node.key + ':header', headerRect);\n header.estimatedSize = isEstimated;\n header.parentKey = node.key;\n y += header.rect.height;\n\n let rect = new Rect(0, y, width, 0);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n\n let startY = y;\n let children = [];\n for (let child of node.childNodes) {\n let layoutNode = this.buildChild(child, x, y);\n y = layoutNode.layoutInfo.rect.maxY;\n children.push(layoutNode);\n }\n\n rect.height = y - startY;\n\n return {\n header,\n layoutInfo,\n children\n };\n }\n\n buildItem(node: Node<T>, x: number, y: number): LayoutNode {\n let width = this.virtualizer.visibleRect.width;\n let rectHeight = this.rowHeight;\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (rectHeight == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode) {\n let curNode = this.collection.getItem(node.key);\n let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;\n rectHeight = previousLayoutNode.layoutInfo.rect.height;\n isEstimated = width !== this.lastWidth || curNode !== lastNode || previousLayoutNode.layoutInfo.estimatedSize;\n } else {\n rectHeight = this.estimatedRowHeight;\n isEstimated = true;\n }\n }\n\n if (rectHeight == null) {\n rectHeight = DEFAULT_HEIGHT;\n }\n\n if (typeof this.indentationForItem === 'function') {\n x += this.indentationForItem(this.collection, node.key) || 0;\n }\n\n let rect = new Rect(x, y, width - x, rectHeight);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n layoutInfo.estimatedSize = isEstimated;\n return {\n layoutInfo\n };\n }\n\n updateItemSize(key: Key, size: Size) {\n let layoutInfo = this.layoutInfos.get(key);\n // If no layoutInfo, item has been deleted/removed.\n if (!layoutInfo) {\n return false;\n }\n\n layoutInfo.estimatedSize = false;\n if (layoutInfo.rect.height !== size.height) {\n // Copy layout info rather than mutating so that later caches are invalidated.\n let newLayoutInfo = layoutInfo.copy();\n newLayoutInfo.rect.height = size.height;\n this.layoutInfos.set(key, newLayoutInfo);\n\n // Invalidate layout for this layout node and all parents\n this.updateLayoutNode(key, layoutInfo, newLayoutInfo);\n\n let node = this.collection.getItem(layoutInfo.parentKey);\n while (node) {\n this.updateLayoutNode(node.key, layoutInfo, newLayoutInfo);\n node = this.collection.getItem(node.parentKey);\n }\n\n return true;\n }\n\n return false;\n }\n\n updateLayoutNode(key: Key, oldLayoutInfo: LayoutInfo, newLayoutInfo: LayoutInfo) {\n let n = this.layoutNodes.get(key);\n if (n) {\n // Invalidate by clearing node.\n n.node = null;\n\n // Replace layout info in LayoutNode\n if (n.header === oldLayoutInfo) {\n n.header = newLayoutInfo;\n } else if (n.layoutInfo === oldLayoutInfo) {\n n.layoutInfo = newLayoutInfo;\n }\n }\n }\n\n getContentSize() {\n return this.contentSize;\n }\n\n getKeyAbove(key: Key) {\n let collection = this.collection;\n\n key = collection.getKeyBefore(key);\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && !this.disabledKeys.has(item.key)) {\n return key;\n }\n\n key = collection.getKeyBefore(key);\n }\n }\n\n getKeyBelow(key: Key) {\n let collection = this.collection;\n\n key = collection.getKeyAfter(key);\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && !this.disabledKeys.has(item.key)) {\n return key;\n }\n\n key = collection.getKeyAfter(key);\n }\n }\n\n getKeyPageAbove(key: Key) {\n let layoutInfo = this.getLayoutInfo(key);\n\n if (layoutInfo) {\n let pageY = Math.max(0, layoutInfo.rect.y + layoutInfo.rect.height - this.virtualizer.visibleRect.height);\n while (layoutInfo && layoutInfo.rect.y > pageY) {\n let keyAbove = this.getKeyAbove(layoutInfo.key);\n layoutInfo = this.getLayoutInfo(keyAbove);\n }\n\n if (layoutInfo) {\n return layoutInfo.key;\n }\n }\n\n return this.getFirstKey();\n }\n\n getKeyPageBelow(key: Key) {\n let layoutInfo = this.getLayoutInfo(key != null ? key : this.getFirstKey());\n\n if (layoutInfo) {\n let pageY = Math.min(this.virtualizer.contentSize.height, layoutInfo.rect.y - layoutInfo.rect.height + this.virtualizer.visibleRect.height);\n while (layoutInfo && layoutInfo.rect.y < pageY) {\n let keyBelow = this.getKeyBelow(layoutInfo.key);\n layoutInfo = this.getLayoutInfo(keyBelow);\n }\n\n if (layoutInfo) {\n return layoutInfo.key;\n }\n }\n\n return this.getLastKey();\n }\n\n getFirstKey() {\n let collection = this.collection;\n let key = collection.getFirstKey();\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && !this.disabledKeys.has(item.key)) {\n return key;\n }\n\n key = collection.getKeyAfter(key);\n }\n }\n\n getLastKey() {\n let collection = this.collection;\n let key = collection.getLastKey();\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && !this.disabledKeys.has(item.key)) {\n return key;\n }\n\n key = collection.getKeyBefore(key);\n }\n }\n\n getKeyForSearch(search: string, fromKey?: Key) {\n if (!this.collator) {\n return null;\n }\n\n let collection = this.collection;\n let key = fromKey || this.getFirstKey();\n while (key != null) {\n let item = collection.getItem(key);\n let substring = item.textValue.slice(0, search.length);\n if (item.textValue && this.collator.compare(substring, search) === 0) {\n return key;\n }\n\n key = this.getKeyBelow(key);\n }\n\n return null;\n }\n\n // getDragTarget(point: Point): DragTarget {\n // let visible = this.getVisibleLayoutInfos(new Rect(point.x, point.y, 1, 1));\n // if (visible.length > 0) {\n // visible = visible.sort((a, b) => b.zIndex - a.zIndex);\n // return {\n // type: 'item',\n // key: visible[0].key\n // };\n // }\n\n // return null;\n // }\n\n // getDropTarget(point: Point): DropTarget {\n // let key = this.virtualizer.keyAtPoint(point);\n // if (key) {\n // return {\n // type: 'item',\n // key,\n // dropPosition: DropPosition.ON\n // };\n // }\n\n // return null;\n // }\n\n getInitialLayoutInfo(layoutInfo: LayoutInfo) {\n layoutInfo.opacity = 0;\n layoutInfo.transform = 'scale3d(0.8, 0.8, 0.8)';\n return layoutInfo;\n }\n\n getFinalLayoutInfo(layoutInfo: LayoutInfo) {\n layoutInfo.opacity = 0;\n layoutInfo.transform = 'scale3d(0.8, 0.8, 0.8)';\n return layoutInfo;\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 {GridNode} from '@react-types/grid';\nimport {Key} from 'react';\nimport {LayoutInfo, Point, Rect, Size} from '@react-stately/virtualizer';\nimport {LayoutNode, ListLayout, ListLayoutOptions} from './ListLayout';\nimport {TableCollection} from '@react-types/table';\n\n\nexport class TableLayout<T> extends ListLayout<T> {\n collection: TableCollection<T>;\n lastCollection: TableCollection<T>;\n getColumnWidth: (key: Key) => number;\n stickyColumnIndices: number[];\n wasLoading = false;\n isLoading = false;\n\n constructor(options: ListLayoutOptions<T>) {\n super(options);\n this.stickyColumnIndices = [];\n }\n\n\n buildCollection(): LayoutNode[] {\n // If columns changed, clear layout cache.\n if (\n !this.lastCollection ||\n this.collection.columns.length !== this.lastCollection.columns.length ||\n this.collection.columns.some((c, i) => c.key !== this.lastCollection.columns[i].key)\n ) {\n // Invalidate everything in this layout pass. Will be reset in ListLayout on the next pass.\n this.invalidateEverything = true;\n }\n\n // Track whether we were previously loading. This is used to adjust the animations of async loading vs inserts.\n let loadingState = this.collection.body.props.loadingState;\n this.wasLoading = this.isLoading;\n this.isLoading = loadingState === 'loading' || loadingState === 'loadingMore';\n\n let header = this.buildHeader();\n let body = this.buildBody(0);\n this.stickyColumnIndices = this.collection.columns.filter(c => c.props.isSelectionCell || this.collection.rowHeaderColumnKeys.has(c.key)).map(c => c.index);\n\n body.layoutInfo.rect.width = Math.max(header.layoutInfo.rect.width, body.layoutInfo.rect.width);\n this.contentSize = new Size(body.layoutInfo.rect.width, body.layoutInfo.rect.maxY);\n return [\n header,\n body\n ];\n }\n\n buildHeader(): LayoutNode {\n let rect = new Rect(0, 0, 0, 0);\n let layoutInfo = new LayoutInfo('header', 'header', rect);\n\n let y = 0;\n let width = 0;\n let children: LayoutNode[] = [];\n for (let headerRow of this.collection.headerRows) {\n let layoutNode = this.buildChild(headerRow, 0, y);\n layoutNode.layoutInfo.parentKey = 'header';\n y = layoutNode.layoutInfo.rect.maxY;\n width = Math.max(width, layoutNode.layoutInfo.rect.width);\n children.push(layoutNode);\n }\n\n rect.width = width;\n rect.height = y;\n\n this.layoutInfos.set('header', layoutInfo);\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildHeaderRow(headerRow: GridNode<T>, x: number, y: number) {\n let rect = new Rect(0, y, 0, 0);\n let row = new LayoutInfo('headerrow', headerRow.key, rect);\n\n let height = 0;\n let columns: LayoutNode[] = [];\n for (let cell of headerRow.childNodes) {\n let layoutNode = this.buildChild(cell, x, y);\n layoutNode.layoutInfo.parentKey = row.key;\n x = layoutNode.layoutInfo.rect.maxX;\n height = Math.max(height, layoutNode.layoutInfo.rect.height);\n columns.push(layoutNode);\n }\n\n this.setChildHeights(columns, height);\n\n rect.height = height;\n rect.width = x;\n\n return {\n layoutInfo: row,\n children: columns\n };\n }\n\n setChildHeights(children: LayoutNode[], height: number) {\n for (let child of children) {\n if (child.layoutInfo.rect.height !== height) {\n // Need to copy the layout info before we mutate it.\n child.layoutInfo = child.layoutInfo.copy();\n this.layoutInfos.set(child.layoutInfo.key, child.layoutInfo);\n\n child.layoutInfo.rect.height = height;\n }\n }\n }\n\n // used to get the column widths when rendering to the DOM\n getColumnWidth_(node: GridNode<T>) {\n let colspan = node.colspan ?? 1;\n let width = 0;\n for (let i = node.index; i < node.index + colspan; i++) {\n let column = this.collection.columns[i];\n width += this.getColumnWidth(column.key);\n }\n\n return width;\n }\n\n getEstimatedHeight(node: GridNode<T>, width: number, height: number, estimatedHeight: number) {\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (height == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode) {\n let curNode = this.collection.getItem(node.key);\n let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;\n height = previousLayoutNode.layoutInfo.rect.height;\n isEstimated = curNode !== lastNode || width !== previousLayoutNode.layoutInfo.rect.width || previousLayoutNode.layoutInfo.estimatedSize;\n } else {\n height = estimatedHeight;\n isEstimated = true;\n }\n }\n\n return {height, isEstimated};\n }\n\n buildColumn(node: GridNode<T>, x: number, y: number): LayoutNode {\n let width = this.getColumnWidth_(node);\n let {height, isEstimated} = this.getEstimatedHeight(node, width, this.headingHeight, this.estimatedHeadingHeight);\n let rect = new Rect(x, y, width, height);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n layoutInfo.isSticky = node.props?.isSelectionCell;\n layoutInfo.zIndex = layoutInfo.isSticky ? 2 : 1;\n layoutInfo.estimatedSize = isEstimated;\n\n return {\n layoutInfo\n };\n }\n\n buildBody(y: number): LayoutNode {\n let rect = new Rect(0, y, 0, 0);\n let layoutInfo = new LayoutInfo('rowgroup', 'body', rect);\n\n let startY = y;\n let width = 0;\n let children: LayoutNode[] = [];\n for (let node of this.collection.body.childNodes) {\n let layoutNode = this.buildChild(node, 0, y);\n layoutNode.layoutInfo.parentKey = 'body';\n y = layoutNode.layoutInfo.rect.maxY;\n width = Math.max(width, layoutNode.layoutInfo.rect.width);\n children.push(layoutNode);\n }\n\n if (this.isLoading) {\n let rect = new Rect(0, y, width || this.virtualizer.visibleRect.width, children.length === 0 ? this.virtualizer.visibleRect.height : 60);\n let loader = new LayoutInfo('loader', 'loader', rect);\n loader.parentKey = 'body';\n loader.isSticky = children.length === 0;\n this.layoutInfos.set('loader', loader);\n children.push({layoutInfo: loader});\n y = loader.rect.maxY;\n width = Math.max(width, rect.width);\n } else if (children.length === 0) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width, this.virtualizer.visibleRect.height);\n let empty = new LayoutInfo('empty', 'empty', rect);\n empty.parentKey = 'body';\n empty.isSticky = true;\n this.layoutInfos.set('empty', empty);\n children.push({layoutInfo: empty});\n y = empty.rect.maxY;\n width = Math.max(width, rect.width);\n }\n\n rect.width = width;\n rect.height = y - startY;\n\n this.layoutInfos.set('body', layoutInfo);\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildNode(node: GridNode<T>, x: number, y: number): LayoutNode {\n switch (node.type) {\n case 'headerrow':\n return this.buildHeaderRow(node, x, y);\n case 'item':\n return this.buildRow(node, x, y);\n case 'column':\n case 'placeholder':\n return this.buildColumn(node, x, y);\n case 'cell':\n return this.buildCell(node, x, y);\n default:\n throw new Error('Unknown node type ' + node.type);\n }\n }\n\n buildRow(node: GridNode<T>, x: number, y: number): LayoutNode {\n let rect = new Rect(x, y, 0, 0);\n let layoutInfo = new LayoutInfo('row', node.key, rect);\n\n let children: LayoutNode[] = [];\n let height = 0;\n for (let child of node.childNodes) {\n let layoutNode = this.buildChild(child, x, y);\n x = layoutNode.layoutInfo.rect.maxX;\n height = Math.max(height, layoutNode.layoutInfo.rect.height);\n children.push(layoutNode);\n }\n\n this.setChildHeights(children, height);\n\n rect.width = x;\n rect.height = height + 1; // +1 for bottom border\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildCell(node: GridNode<T>, x: number, y: number): LayoutNode {\n let width = this.getColumnWidth_(node);\n let {height, isEstimated} = this.getEstimatedHeight(node, width, this.rowHeight, this.estimatedRowHeight);\n let rect = new Rect(x, y, width, height);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n layoutInfo.isSticky = node.props?.isSelectionCell;\n layoutInfo.zIndex = layoutInfo.isSticky ? 2 : 1;\n layoutInfo.estimatedSize = isEstimated;\n\n return {\n layoutInfo\n };\n }\n\n getVisibleLayoutInfos(rect: Rect) {\n let res: LayoutInfo[] = [];\n\n for (let node of this.rootNodes) {\n res.push(node.layoutInfo);\n this.addVisibleLayoutInfos(res, node, rect);\n }\n\n return res;\n }\n\n addVisibleLayoutInfos(res: LayoutInfo[], node: LayoutNode, rect: Rect) {\n if (!node.children || node.children.length === 0) {\n return;\n }\n\n switch (node.layoutInfo.type) {\n case 'header': {\n for (let child of node.children) {\n res.push(child.layoutInfo);\n this.addVisibleLayoutInfos(res, child, rect);\n }\n break;\n }\n case 'rowgroup': {\n let firstVisibleRow = this.binarySearch(node.children, rect.topLeft, 'y');\n let lastVisibleRow = this.binarySearch(node.children, rect.bottomRight, 'y');\n for (let i = firstVisibleRow; i <= lastVisibleRow; i++) {\n res.push(node.children[i].layoutInfo);\n this.addVisibleLayoutInfos(res, node.children[i], rect);\n }\n break;\n }\n case 'headerrow':\n case 'row': {\n let firstVisibleCell = this.binarySearch(node.children, rect.topLeft, 'x');\n let lastVisibleCell = this.binarySearch(node.children, rect.topRight, 'x');\n let stickyIndex = 0;\n for (let i = firstVisibleCell; i <= lastVisibleCell; i++) {\n // Sticky columns and row headers are always in the DOM. Interleave these\n // with the visible range so that they are in the right order.\n if (stickyIndex < this.stickyColumnIndices.length) {\n let idx = this.stickyColumnIndices[stickyIndex];\n while (idx < i) {\n res.push(node.children[idx].layoutInfo);\n idx = this.stickyColumnIndices[stickyIndex++];\n }\n }\n\n res.push(node.children[i].layoutInfo);\n }\n\n while (stickyIndex < this.stickyColumnIndices.length) {\n let idx = this.stickyColumnIndices[stickyIndex++];\n res.push(node.children[idx].layoutInfo);\n }\n break;\n }\n default:\n throw new Error('Unknown node type ' + node.layoutInfo.type);\n }\n }\n\n binarySearch(items: LayoutNode[], point: Point, axis: 'x' | 'y') {\n let low = 0;\n let high = items.length - 1;\n while (low <= high) {\n let mid = (low + high) >> 1;\n let item = items[mid];\n\n if ((axis === 'x' && item.layoutInfo.rect.maxX < point.x) || (axis === 'y' && item.layoutInfo.rect.maxY < point.y)) {\n low = mid + 1;\n } else if ((axis === 'x' && item.layoutInfo.rect.x > point.x) || (axis === 'y' && item.layoutInfo.rect.y > point.y)) {\n high = mid - 1;\n } else {\n return mid;\n }\n }\n\n return Math.max(0, Math.min(items.length - 1, low));\n }\n\n getInitialLayoutInfo(layoutInfo: LayoutInfo) {\n let res = super.getInitialLayoutInfo(layoutInfo);\n\n // If this insert was the result of async loading, remove the zoom effect and just keep the fade in.\n if (this.wasLoading) {\n res.transform = null;\n }\n\n return res;\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 {ColumnProps, TableCollection} from '@react-types/table';\nimport {GridNode} from '@react-types/grid';\nimport {Key} from 'react';\nimport {LayoutInfo, Point, Rect, Size} from '@react-stately/virtualizer';\nimport {LayoutNode, ListLayout, ListLayoutOptions} from './ListLayout';\n\n\ntype TableLayoutOptions<T> = ListLayoutOptions<T> & {\n getDefaultWidth: (props) => string | number\n}\n\nexport class TableLayout_DEPRECATED<T> extends ListLayout<T> {\n collection: TableCollection<T>;\n lastCollection: TableCollection<T>;\n columnWidths: Map<Key, number>;\n stickyColumnIndices: number[];\n getDefaultWidth: (props) => string | number;\n wasLoading = false;\n isLoading = false;\n\n constructor(options: TableLayoutOptions<T>) {\n super(options);\n this.getDefaultWidth = options.getDefaultWidth;\n }\n\n\n buildCollection(): LayoutNode[] {\n // If columns changed, clear layout cache.\n if (\n !this.lastCollection ||\n this.collection.columns.length !== this.lastCollection.columns.length ||\n this.collection.columns.some((c, i) => c.key !== this.lastCollection.columns[i].key)\n ) {\n // Invalidate everything in this layout pass. Will be reset in ListLayout on the next pass.\n this.invalidateEverything = true;\n }\n\n // Track whether we were previously loading. This is used to adjust the animations of async loading vs inserts.\n let loadingState = this.collection.body.props.loadingState;\n this.wasLoading = this.isLoading;\n this.isLoading = loadingState === 'loading' || loadingState === 'loadingMore';\n\n this.buildColumnWidths();\n let header = this.buildHeader();\n let body = this.buildBody(0);\n body.layoutInfo.rect.width = Math.max(header.layoutInfo.rect.width, body.layoutInfo.rect.width);\n this.contentSize = new Size(body.layoutInfo.rect.width, body.layoutInfo.rect.maxY);\n return [\n header,\n body\n ];\n }\n\n buildColumnWidths() {\n this.columnWidths = new Map();\n this.stickyColumnIndices = [];\n\n // Pass 1: set widths for all explicitly defined columns.\n let remainingColumns = new Set<GridNode<T>>();\n let remainingSpace = this.virtualizer.visibleRect.width;\n for (let column of this.collection.columns) {\n let props = column.props as ColumnProps<T>;\n let width = props.width ?? this.getDefaultWidth(props);\n if (width != null) {\n let w = this.parseWidth(width);\n this.columnWidths.set(column.key, w);\n remainingSpace -= w;\n } else {\n remainingColumns.add(column);\n }\n\n // The selection cell and any other sticky columns always need to be visible.\n // In addition, row headers need to be in the DOM for accessibility labeling.\n if (column.props.isSelectionCell || this.collection.rowHeaderColumnKeys.has(column.key)) {\n this.stickyColumnIndices.push(column.index);\n }\n }\n\n // Pass 2: if there are remaining columns, then distribute the remaining space evenly.\n if (remainingColumns.size > 0) {\n let columnWidth = remainingSpace / (this.collection.columns.length - this.columnWidths.size);\n\n for (let column of remainingColumns) {\n let props = column.props as ColumnProps<T>;\n let minWidth = props.minWidth != null ? this.parseWidth(props.minWidth) : 75;\n let maxWidth = props.maxWidth != null ? this.parseWidth(props.maxWidth) : Infinity;\n let width = Math.floor(Math.max(minWidth, Math.min(maxWidth, columnWidth)));\n\n this.columnWidths.set(column.key, width);\n remainingSpace -= width;\n if (width !== columnWidth) {\n columnWidth = remainingSpace / (this.collection.columns.length - this.columnWidths.size);\n }\n }\n }\n }\n\n parseWidth(width: number | string): number {\n if (typeof width === 'string') {\n let match = width.match(/^(\\d+)%$/);\n if (!match) {\n throw new Error('Only percentages are supported as column widths');\n }\n\n return this.virtualizer.visibleRect.width * (parseInt(match[1], 10) / 100);\n }\n\n return width;\n }\n\n buildHeader(): LayoutNode {\n let rect = new Rect(0, 0, 0, 0);\n let layoutInfo = new LayoutInfo('header', 'header', rect);\n\n let y = 0;\n let width = 0;\n let children: LayoutNode[] = [];\n for (let headerRow of this.collection.headerRows) {\n let layoutNode = this.buildChild(headerRow, 0, y);\n layoutNode.layoutInfo.parentKey = 'header';\n y = layoutNode.layoutInfo.rect.maxY;\n width = Math.max(width, layoutNode.layoutInfo.rect.width);\n children.push(layoutNode);\n }\n\n rect.width = width;\n rect.height = y;\n\n this.layoutInfos.set('header', layoutInfo);\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildHeaderRow(headerRow: GridNode<T>, x: number, y: number) {\n let rect = new Rect(0, y, 0, 0);\n let row = new LayoutInfo('headerrow', headerRow.key, rect);\n\n let height = 0;\n let columns: LayoutNode[] = [];\n for (let cell of headerRow.childNodes) {\n let layoutNode = this.buildChild(cell, x, y);\n layoutNode.layoutInfo.parentKey = row.key;\n x = layoutNode.layoutInfo.rect.maxX;\n height = Math.max(height, layoutNode.layoutInfo.rect.height);\n columns.push(layoutNode);\n }\n\n this.setChildHeights(columns, height);\n\n rect.height = height;\n rect.width = x;\n\n return {\n layoutInfo: row,\n children: columns\n };\n }\n\n setChildHeights(children: LayoutNode[], height: number) {\n for (let child of children) {\n if (child.layoutInfo.rect.height !== height) {\n // Need to copy the layout info before we mutate it.\n child.layoutInfo = child.layoutInfo.copy();\n this.layoutInfos.set(child.layoutInfo.key, child.layoutInfo);\n\n child.layoutInfo.rect.height = height;\n }\n }\n }\n\n getColumnWidth(node: GridNode<T>) {\n let colspan = node.colspan ?? 1;\n let width = 0;\n for (let i = 0; i < colspan; i++) {\n let column = this.collection.columns[node.index + i];\n width += this.columnWidths.get(column.key);\n }\n\n return width;\n }\n\n getEstimatedHeight(node: GridNode<T>, width: number, height: number, estimatedHeight: number) {\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (height == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode) {\n let curNode = this.collection.getItem(node.key);\n let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;\n height = previousLayoutNode.layoutInfo.rect.height;\n isEstimated = curNode !== lastNode || width !== previousLayoutNode.layoutInfo.rect.width || previousLayoutNode.layoutInfo.estimatedSize;\n } else {\n height = estimatedHeight;\n isEstimated = true;\n }\n }\n\n return {height, isEstimated};\n }\n\n buildColumn(node: GridNode<T>, x: number, y: number): LayoutNode {\n let width = this.getColumnWidth(node);\n let {height, isEstimated} = this.getEstimatedHeight(node, width, this.headingHeight, this.estimatedHeadingHeight);\n let rect = new Rect(x, y, width, height);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n layoutInfo.isSticky = node.props?.isSelectionCell;\n layoutInfo.zIndex = layoutInfo.isSticky ? 2 : 1;\n layoutInfo.estimatedSize = isEstimated;\n\n return {\n layoutInfo\n };\n }\n\n buildBody(y: number): LayoutNode {\n let rect = new Rect(0, y, 0, 0);\n let layoutInfo = new LayoutInfo('rowgroup', 'body', rect);\n\n let startY = y;\n let width = 0;\n let children: LayoutNode[] = [];\n for (let node of this.collection.body.childNodes) {\n let layoutNode = this.buildChild(node, 0, y);\n layoutNode.layoutInfo.parentKey = 'body';\n y = layoutNode.layoutInfo.rect.maxY;\n width = Math.max(width, layoutNode.layoutInfo.rect.width);\n children.push(layoutNode);\n }\n\n if (this.isLoading) {\n let rect = new Rect(0, y, width || this.virtualizer.visibleRect.width, children.length === 0 ? this.virtualizer.visibleRect.height : 60);\n let loader = new LayoutInfo('loader', 'loader', rect);\n loader.parentKey = 'body';\n loader.isSticky = children.length === 0;\n this.layoutInfos.set('loader', loader);\n children.push({layoutInfo: loader});\n y = loader.rect.maxY;\n width = Math.max(width, rect.width);\n } else if (children.length === 0) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width, this.virtualizer.visibleRect.height);\n let empty = new LayoutInfo('empty', 'empty', rect);\n empty.parentKey = 'body';\n empty.isSticky = true;\n this.layoutInfos.set('empty', empty);\n children.push({layoutInfo: empty});\n y = empty.rect.maxY;\n width = Math.max(width, rect.width);\n }\n\n rect.width = width;\n rect.height = y - startY;\n\n this.layoutInfos.set('body', layoutInfo);\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildNode(node: GridNode<T>, x: number, y: number): LayoutNode {\n switch (node.type) {\n case 'headerrow':\n return this.buildHeaderRow(node, x, y);\n case 'item':\n return this.buildRow(node, x, y);\n case 'column':\n case 'placeholder':\n return this.buildColumn(node, x, y);\n case 'cell':\n return this.buildCell(node, x, y);\n default:\n throw new Error('Unknown node type ' + node.type);\n }\n }\n\n buildRow(node: GridNode<T>, x: number, y: number): LayoutNode {\n let rect = new Rect(x, y, 0, 0);\n let layoutInfo = new LayoutInfo('row', node.key, rect);\n\n let children: LayoutNode[] = [];\n let height = 0;\n for (let child of node.childNodes) {\n let layoutNode = this.buildChild(child, x, y);\n x = layoutNode.layoutInfo.rect.maxX;\n height = Math.max(height, layoutNode.layoutInfo.rect.height);\n children.push(layoutNode);\n }\n\n this.setChildHeights(children, height);\n\n rect.width = x;\n rect.height = height + 1; // +1 for bottom border\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildCell(node: GridNode<T>, x: number, y: number): LayoutNode {\n let width = this.getColumnWidth(node);\n let {height, isEstimated} = this.getEstimatedHeight(node, width, this.rowHeight, this.estimatedRowHeight);\n let rect = new Rect(x, y, width, height);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n layoutInfo.isSticky = node.props?.isSelectionCell;\n layoutInfo.zIndex = layoutInfo.isSticky ? 2 : 1;\n layoutInfo.estimatedSize = isEstimated;\n\n return {\n layoutInfo\n };\n }\n\n getVisibleLayoutInfos(rect: Rect) {\n let res: LayoutInfo[] = [];\n\n for (let node of this.rootNodes) {\n res.push(node.layoutInfo);\n this.addVisibleLayoutInfos(res, node, rect);\n }\n\n return res;\n }\n\n addVisibleLayoutInfos(res: LayoutInfo[], node: LayoutNode, rect: Rect) {\n if (!node.children || node.children.length === 0) {\n return;\n }\n\n switch (node.layoutInfo.type) {\n case 'header': {\n for (let child of node.children) {\n res.push(child.layoutInfo);\n this.addVisibleLayoutInfos(res, child, rect);\n }\n break;\n }\n case 'rowgroup': {\n let firstVisibleRow = this.binarySearch(node.children, rect.topLeft, 'y');\n let lastVisibleRow = this.binarySearch(node.children, rect.bottomRight, 'y');\n for (let i = firstVisibleRow; i <= lastVisibleRow; i++) {\n res.push(node.children[i].layoutInfo);\n this.addVisibleLayoutInfos(res, node.children[i], rect);\n }\n break;\n }\n case 'headerrow':\n case 'row': {\n let firstVisibleCell = this.binarySearch(node.children, rect.topLeft, 'x');\n let lastVisibleCell = this.binarySearch(node.children, rect.topRight, 'x');\n let stickyIndex = 0;\n for (let i = firstVisibleCell; i <= lastVisibleCell; i++) {\n // Sticky columns and row headers are always in the DOM. Interleave these\n // with the visible range so that they are in the right order.\n if (stickyIndex < this.stickyColumnIndices.length) {\n let idx = this.stickyColumnIndices[stickyIndex];\n while (idx < i) {\n res.push(node.children[idx].layoutInfo);\n idx = this.stickyColumnIndices[stickyIndex++];\n }\n }\n\n res.push(node.children[i].layoutInfo);\n }\n\n while (stickyIndex < this.stickyColumnIndices.length) {\n let idx = this.stickyColumnIndices[stickyIndex++];\n res.push(node.children[idx].layoutInfo);\n }\n break;\n }\n default:\n throw new Error('Unknown node type ' + node.layoutInfo.type);\n }\n }\n\n binarySearch(items: LayoutNode[], point: Point, axis: 'x' | 'y') {\n let low = 0;\n let high = items.length - 1;\n while (low <= high) {\n let mid = (low + high) >> 1;\n let item = items[mid];\n\n if ((axis === 'x' && item.layoutInfo.rect.maxX < point.x) || (axis === 'y' && item.layoutInfo.rect.maxY < point.y)) {\n low = mid + 1;\n } else if ((axis === 'x' && item.layoutInfo.rect.x > point.x) || (axis === 'y' && item.layoutInfo.rect.y > point.y)) {\n high = mid - 1;\n } else {\n return mid;\n }\n }\n\n return Math.max(0, Math.min(items.length - 1, low));\n }\n\n getInitialLayoutInfo(layoutInfo: LayoutInfo) {\n let res = super.getInitialLayoutInfo(layoutInfo);\n\n // If this insert was the result of async loading, remove the zoom effect and just keep the fade in.\n if (this.wasLoading) {\n res.transform = null;\n }\n\n return res;\n }\n}\n"],"names":[],"version":3,"file":"main.js.map"}
1
+ {"mappings":"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","sources":["packages/@react-stately/layout/src/index.ts","packages/@react-stately/layout/src/ListLayout.ts","packages/@react-stately/layout/src/TableLayout.ts","packages/@react-stately/layout/src/TableLayout_DEPRECATED.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 './ListLayout';\nexport * from './TableLayout';\nexport * from './TableLayout_DEPRECATED';\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 {Collection, KeyboardDelegate, Node} from '@react-types/shared';\nimport {InvalidationContext, Layout, LayoutInfo, Rect, Size} from '@react-stately/virtualizer';\nimport {Key} from 'react';\n// import { DragTarget, DropTarget, DropPosition } from '@react-types/shared';\n\nexport type ListLayoutOptions<T> = {\n /** The height of a row in px. */\n rowHeight?: number,\n estimatedRowHeight?: number,\n headingHeight?: number,\n estimatedHeadingHeight?: number,\n padding?: number,\n indentationForItem?: (collection: Collection<Node<T>>, key: Key) => number,\n collator?: Intl.Collator,\n loaderHeight?: number,\n placeholderHeight?: number,\n allowDisabledKeyFocus?: boolean\n};\n\n// A wrapper around LayoutInfo that supports hierarchy\nexport interface LayoutNode {\n node?: Node<unknown>,\n layoutInfo: LayoutInfo,\n header?: LayoutInfo,\n children?: LayoutNode[]\n}\n\nconst DEFAULT_HEIGHT = 48;\n\n/**\n * The ListLayout class is an implementation of a collection view {@link Layout}\n * it is used for creating lists and lists with indented sub-lists.\n *\n * To configure a ListLayout, you can use the properties to define the\n * layouts and/or use the method for defining indentation.\n * The {@link ListKeyboardDelegate} extends the existing collection view\n * delegate with an additional method to do this (it uses the same delegate object as\n * the collection view itself).\n */\nexport class ListLayout<T> extends Layout<Node<T>> implements KeyboardDelegate {\n protected rowHeight: number;\n protected estimatedRowHeight: number;\n protected headingHeight: number;\n protected estimatedHeadingHeight: number;\n protected padding: number;\n protected indentationForItem?: (collection: Collection<Node<T>>, key: Key) => number;\n protected layoutInfos: Map<Key, LayoutInfo>;\n protected layoutNodes: Map<Key, LayoutNode>;\n protected contentSize: Size;\n collection: Collection<Node<T>>;\n disabledKeys: Set<Key> = new Set();\n allowDisabledKeyFocus: boolean = false;\n isLoading: boolean;\n protected lastWidth: number;\n protected lastCollection: Collection<Node<T>>;\n protected rootNodes: LayoutNode[];\n protected collator: Intl.Collator;\n protected invalidateEverything: boolean;\n protected loaderHeight: number;\n protected placeholderHeight: number;\n\n /**\n * Creates a new ListLayout with options. See the list of properties below for a description\n * of the options that can be provided.\n */\n constructor(options: ListLayoutOptions<T> = {}) {\n super();\n this.rowHeight = options.rowHeight;\n this.estimatedRowHeight = options.estimatedRowHeight;\n this.headingHeight = options.headingHeight;\n this.estimatedHeadingHeight = options.estimatedHeadingHeight;\n this.padding = options.padding || 0;\n this.indentationForItem = options.indentationForItem;\n this.collator = options.collator;\n this.loaderHeight = options.loaderHeight;\n this.placeholderHeight = options.placeholderHeight;\n this.layoutInfos = new Map();\n this.layoutNodes = new Map();\n this.rootNodes = [];\n this.lastWidth = 0;\n this.lastCollection = null;\n this.allowDisabledKeyFocus = options.allowDisabledKeyFocus;\n }\n\n getLayoutInfo(key: Key) {\n return this.layoutInfos.get(key);\n }\n\n getVisibleLayoutInfos(rect: Rect) {\n let res: LayoutInfo[] = [];\n\n let addNodes = (nodes: LayoutNode[]) => {\n for (let node of nodes) {\n if (this.isVisible(node, rect)) {\n res.push(node.layoutInfo);\n if (node.header) {\n res.push(node.header);\n }\n\n if (node.children) {\n addNodes(node.children);\n }\n }\n }\n };\n\n addNodes(this.rootNodes);\n return res;\n }\n\n isVisible(node: LayoutNode, rect: Rect) {\n return node.layoutInfo.rect.intersects(rect) || node.layoutInfo.isSticky;\n }\n\n validate(invalidationContext: InvalidationContext<Node<T>, unknown>) {\n // Invalidate cache if the size of the collection changed.\n // In this case, we need to recalculate the entire layout.\n this.invalidateEverything = invalidationContext.sizeChanged;\n\n this.collection = this.virtualizer.collection;\n this.rootNodes = this.buildCollection();\n\n // Remove deleted layout nodes\n if (this.lastCollection) {\n for (let key of this.lastCollection.getKeys()) {\n if (!this.collection.getItem(key)) {\n let layoutNode = this.layoutNodes.get(key);\n if (layoutNode) {\n this.layoutInfos.delete(layoutNode.layoutInfo.key);\n this.layoutInfos.delete(layoutNode.header?.key);\n this.layoutNodes.delete(key);\n }\n }\n }\n }\n\n this.lastWidth = this.virtualizer.visibleRect.width;\n this.lastCollection = this.collection;\n }\n\n buildCollection(): LayoutNode[] {\n let y = this.padding;\n let nodes = [];\n for (let node of this.collection) {\n let layoutNode = this.buildChild(node, 0, y);\n y = layoutNode.layoutInfo.rect.maxY;\n nodes.push(layoutNode);\n }\n\n if (this.isLoading) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width,\n this.loaderHeight ?? this.virtualizer.visibleRect.height);\n let loader = new LayoutInfo('loader', 'loader', rect);\n this.layoutInfos.set('loader', loader);\n nodes.push({layoutInfo: loader});\n y = loader.rect.maxY;\n }\n\n if (nodes.length === 0) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width,\n this.placeholderHeight ?? this.virtualizer.visibleRect.height);\n let placeholder = new LayoutInfo('placeholder', 'placeholder', rect);\n this.layoutInfos.set('placeholder', placeholder);\n nodes.push({layoutInfo: placeholder});\n y = placeholder.rect.maxY;\n }\n\n this.contentSize = new Size(this.virtualizer.visibleRect.width, y + this.padding);\n return nodes;\n }\n\n buildChild(node: Node<T>, x: number, y: number): LayoutNode {\n let cached = this.layoutNodes.get(node.key);\n if (!this.invalidateEverything && cached && cached.node === node && y === (cached.header || cached.layoutInfo).rect.y) {\n return cached;\n }\n\n let layoutNode = this.buildNode(node, x, y);\n layoutNode.node = node;\n\n layoutNode.layoutInfo.parentKey = node.parentKey ?? null;\n this.layoutInfos.set(layoutNode.layoutInfo.key, layoutNode.layoutInfo);\n if (layoutNode.header) {\n this.layoutInfos.set(layoutNode.header.key, layoutNode.header);\n }\n\n this.layoutNodes.set(node.key, layoutNode);\n return layoutNode;\n }\n\n buildNode(node: Node<T>, x: number, y: number): LayoutNode {\n switch (node.type) {\n case 'section':\n return this.buildSection(node, x, y);\n case 'item':\n return this.buildItem(node, x, y);\n }\n }\n\n buildSection(node: Node<T>, x: number, y: number): LayoutNode {\n let width = this.virtualizer.visibleRect.width;\n let rectHeight = this.headingHeight;\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (rectHeight == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode && previousLayoutNode.header) {\n let curNode = this.collection.getItem(node.key);\n let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;\n rectHeight = previousLayoutNode.header.rect.height;\n isEstimated = width !== this.lastWidth || curNode !== lastNode || previousLayoutNode.header.estimatedSize;\n } else {\n rectHeight = (node.rendered ? this.estimatedHeadingHeight : 0);\n isEstimated = true;\n }\n }\n\n if (rectHeight == null) {\n rectHeight = DEFAULT_HEIGHT;\n }\n\n let headerRect = new Rect(0, y, width, rectHeight);\n let header = new LayoutInfo('header', node.key + ':header', headerRect);\n header.estimatedSize = isEstimated;\n header.parentKey = node.key;\n y += header.rect.height;\n\n let rect = new Rect(0, y, width, 0);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n\n let startY = y;\n let children = [];\n for (let child of node.childNodes) {\n let layoutNode = this.buildChild(child, x, y);\n y = layoutNode.layoutInfo.rect.maxY;\n children.push(layoutNode);\n }\n\n rect.height = y - startY;\n\n return {\n header,\n layoutInfo,\n children\n };\n }\n\n buildItem(node: Node<T>, x: number, y: number): LayoutNode {\n let width = this.virtualizer.visibleRect.width;\n let rectHeight = this.rowHeight;\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (rectHeight == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode) {\n let curNode = this.collection.getItem(node.key);\n let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;\n rectHeight = previousLayoutNode.layoutInfo.rect.height;\n isEstimated = width !== this.lastWidth || curNode !== lastNode || previousLayoutNode.layoutInfo.estimatedSize;\n } else {\n rectHeight = this.estimatedRowHeight;\n isEstimated = true;\n }\n }\n\n if (rectHeight == null) {\n rectHeight = DEFAULT_HEIGHT;\n }\n\n if (typeof this.indentationForItem === 'function') {\n x += this.indentationForItem(this.collection, node.key) || 0;\n }\n\n let rect = new Rect(x, y, width - x, rectHeight);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n layoutInfo.estimatedSize = isEstimated;\n return {\n layoutInfo\n };\n }\n\n updateItemSize(key: Key, size: Size) {\n let layoutInfo = this.layoutInfos.get(key);\n // If no layoutInfo, item has been deleted/removed.\n if (!layoutInfo) {\n return false;\n }\n\n layoutInfo.estimatedSize = false;\n if (layoutInfo.rect.height !== size.height) {\n // Copy layout info rather than mutating so that later caches are invalidated.\n let newLayoutInfo = layoutInfo.copy();\n newLayoutInfo.rect.height = size.height;\n this.layoutInfos.set(key, newLayoutInfo);\n\n // Invalidate layout for this layout node and all parents\n this.updateLayoutNode(key, layoutInfo, newLayoutInfo);\n\n let node = this.collection.getItem(layoutInfo.parentKey);\n while (node) {\n this.updateLayoutNode(node.key, layoutInfo, newLayoutInfo);\n node = this.collection.getItem(node.parentKey);\n }\n\n return true;\n }\n\n return false;\n }\n\n updateLayoutNode(key: Key, oldLayoutInfo: LayoutInfo, newLayoutInfo: LayoutInfo) {\n let n = this.layoutNodes.get(key);\n if (n) {\n // Invalidate by clearing node.\n n.node = null;\n\n // Replace layout info in LayoutNode\n if (n.header === oldLayoutInfo) {\n n.header = newLayoutInfo;\n } else if (n.layoutInfo === oldLayoutInfo) {\n n.layoutInfo = newLayoutInfo;\n }\n }\n }\n\n getContentSize() {\n return this.contentSize;\n }\n\n getKeyAbove(key: Key) {\n let collection = this.collection;\n\n key = collection.getKeyBefore(key);\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyBefore(key);\n }\n }\n\n getKeyBelow(key: Key) {\n let collection = this.collection;\n\n key = collection.getKeyAfter(key);\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyAfter(key);\n }\n }\n\n getKeyLeftOf(key: Key): Key {\n return key;\n }\n\n getKeyRightOf(key: Key): Key {\n return key;\n }\n\n getKeyPageAbove(key: Key) {\n let layoutInfo = this.getLayoutInfo(key);\n\n if (layoutInfo) {\n let pageY = Math.max(0, layoutInfo.rect.y + layoutInfo.rect.height - this.virtualizer.visibleRect.height);\n while (layoutInfo && layoutInfo.rect.y > pageY) {\n let keyAbove = this.getKeyAbove(layoutInfo.key);\n layoutInfo = this.getLayoutInfo(keyAbove);\n }\n\n if (layoutInfo) {\n return layoutInfo.key;\n }\n }\n\n return this.getFirstKey();\n }\n\n getKeyPageBelow(key: Key) {\n let layoutInfo = this.getLayoutInfo(key != null ? key : this.getFirstKey());\n\n if (layoutInfo) {\n let pageY = Math.min(this.virtualizer.contentSize.height, layoutInfo.rect.y - layoutInfo.rect.height + this.virtualizer.visibleRect.height);\n while (layoutInfo && layoutInfo.rect.y < pageY) {\n let keyBelow = this.getKeyBelow(layoutInfo.key);\n layoutInfo = this.getLayoutInfo(keyBelow);\n }\n\n if (layoutInfo) {\n return layoutInfo.key;\n }\n }\n\n return this.getLastKey();\n }\n\n getFirstKey() {\n let collection = this.collection;\n let key = collection.getFirstKey();\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyAfter(key);\n }\n }\n\n getLastKey() {\n let collection = this.collection;\n let key = collection.getLastKey();\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyBefore(key);\n }\n }\n\n getKeyForSearch(search: string, fromKey?: Key) {\n if (!this.collator) {\n return null;\n }\n\n let collection = this.collection;\n let key = fromKey || this.getFirstKey();\n while (key != null) {\n let item = collection.getItem(key);\n let substring = item.textValue.slice(0, search.length);\n if (item.textValue && this.collator.compare(substring, search) === 0) {\n return key;\n }\n\n key = this.getKeyBelow(key);\n }\n\n return null;\n }\n\n // getDragTarget(point: Point): DragTarget {\n // let visible = this.getVisibleLayoutInfos(new Rect(point.x, point.y, 1, 1));\n // if (visible.length > 0) {\n // visible = visible.sort((a, b) => b.zIndex - a.zIndex);\n // return {\n // type: 'item',\n // key: visible[0].key\n // };\n // }\n\n // return null;\n // }\n\n // getDropTarget(point: Point): DropTarget {\n // let key = this.virtualizer.keyAtPoint(point);\n // if (key) {\n // return {\n // type: 'item',\n // key,\n // dropPosition: DropPosition.ON\n // };\n // }\n\n // return null;\n // }\n\n getInitialLayoutInfo(layoutInfo: LayoutInfo) {\n layoutInfo.opacity = 0;\n layoutInfo.transform = 'scale3d(0.8, 0.8, 0.8)';\n return layoutInfo;\n }\n\n getFinalLayoutInfo(layoutInfo: LayoutInfo) {\n layoutInfo.opacity = 0;\n layoutInfo.transform = 'scale3d(0.8, 0.8, 0.8)';\n return layoutInfo;\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 {GridNode} from '@react-types/grid';\nimport {Key} from 'react';\nimport {LayoutInfo, Point, Rect, Size} from '@react-stately/virtualizer';\nimport {LayoutNode, ListLayout, ListLayoutOptions} from './ListLayout';\nimport {TableCollection} from '@react-types/table';\n\n\nexport class TableLayout<T> extends ListLayout<T> {\n collection: TableCollection<T>;\n lastCollection: TableCollection<T>;\n getColumnWidth: (key: Key) => number;\n stickyColumnIndices: number[];\n wasLoading = false;\n isLoading = false;\n\n constructor(options: ListLayoutOptions<T>) {\n super(options);\n this.stickyColumnIndices = [];\n }\n\n\n buildCollection(): LayoutNode[] {\n // If columns changed, clear layout cache.\n if (\n !this.lastCollection ||\n this.collection.columns.length !== this.lastCollection.columns.length ||\n this.collection.columns.some((c, i) => c.key !== this.lastCollection.columns[i].key)\n ) {\n // Invalidate everything in this layout pass. Will be reset in ListLayout on the next pass.\n this.invalidateEverything = true;\n }\n\n // Track whether we were previously loading. This is used to adjust the animations of async loading vs inserts.\n let loadingState = this.collection.body.props.loadingState;\n this.wasLoading = this.isLoading;\n this.isLoading = loadingState === 'loading' || loadingState === 'loadingMore';\n\n let header = this.buildHeader();\n let body = this.buildBody(0);\n this.stickyColumnIndices = this.collection.columns.filter(c => c.props.isSelectionCell || this.collection.rowHeaderColumnKeys.has(c.key)).map(c => c.index);\n\n body.layoutInfo.rect.width = Math.max(header.layoutInfo.rect.width, body.layoutInfo.rect.width);\n this.contentSize = new Size(body.layoutInfo.rect.width, body.layoutInfo.rect.maxY);\n return [\n header,\n body\n ];\n }\n\n buildHeader(): LayoutNode {\n let rect = new Rect(0, 0, 0, 0);\n let layoutInfo = new LayoutInfo('header', 'header', rect);\n\n let y = 0;\n let width = 0;\n let children: LayoutNode[] = [];\n for (let headerRow of this.collection.headerRows) {\n let layoutNode = this.buildChild(headerRow, 0, y);\n layoutNode.layoutInfo.parentKey = 'header';\n y = layoutNode.layoutInfo.rect.maxY;\n width = Math.max(width, layoutNode.layoutInfo.rect.width);\n children.push(layoutNode);\n }\n\n rect.width = width;\n rect.height = y;\n\n this.layoutInfos.set('header', layoutInfo);\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildHeaderRow(headerRow: GridNode<T>, x: number, y: number) {\n let rect = new Rect(0, y, 0, 0);\n let row = new LayoutInfo('headerrow', headerRow.key, rect);\n\n let height = 0;\n let columns: LayoutNode[] = [];\n for (let cell of headerRow.childNodes) {\n let layoutNode = this.buildChild(cell, x, y);\n layoutNode.layoutInfo.parentKey = row.key;\n x = layoutNode.layoutInfo.rect.maxX;\n height = Math.max(height, layoutNode.layoutInfo.rect.height);\n columns.push(layoutNode);\n }\n\n this.setChildHeights(columns, height);\n\n rect.height = height;\n rect.width = x;\n\n return {\n layoutInfo: row,\n children: columns\n };\n }\n\n setChildHeights(children: LayoutNode[], height: number) {\n for (let child of children) {\n if (child.layoutInfo.rect.height !== height) {\n // Need to copy the layout info before we mutate it.\n child.layoutInfo = child.layoutInfo.copy();\n this.layoutInfos.set(child.layoutInfo.key, child.layoutInfo);\n\n child.layoutInfo.rect.height = height;\n }\n }\n }\n\n // used to get the column widths when rendering to the DOM\n getColumnWidth_(node: GridNode<T>) {\n let colspan = node.colspan ?? 1;\n let width = 0;\n for (let i = node.index; i < node.index + colspan; i++) {\n let column = this.collection.columns[i];\n width += this.getColumnWidth(column.key);\n }\n\n return width;\n }\n\n getEstimatedHeight(node: GridNode<T>, width: number, height: number, estimatedHeight: number) {\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (height == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode) {\n let curNode = this.collection.getItem(node.key);\n let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;\n height = previousLayoutNode.layoutInfo.rect.height;\n isEstimated = curNode !== lastNode || width !== previousLayoutNode.layoutInfo.rect.width || previousLayoutNode.layoutInfo.estimatedSize;\n } else {\n height = estimatedHeight;\n isEstimated = true;\n }\n }\n\n return {height, isEstimated};\n }\n\n buildColumn(node: GridNode<T>, x: number, y: number): LayoutNode {\n let width = this.getColumnWidth_(node);\n let {height, isEstimated} = this.getEstimatedHeight(node, width, this.headingHeight, this.estimatedHeadingHeight);\n let rect = new Rect(x, y, width, height);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n layoutInfo.isSticky = node.props?.isSelectionCell;\n layoutInfo.zIndex = layoutInfo.isSticky ? 2 : 1;\n layoutInfo.estimatedSize = isEstimated;\n\n return {\n layoutInfo\n };\n }\n\n buildBody(y: number): LayoutNode {\n let rect = new Rect(0, y, 0, 0);\n let layoutInfo = new LayoutInfo('rowgroup', 'body', rect);\n\n let startY = y;\n let width = 0;\n let children: LayoutNode[] = [];\n for (let node of this.collection.body.childNodes) {\n let layoutNode = this.buildChild(node, 0, y);\n layoutNode.layoutInfo.parentKey = 'body';\n y = layoutNode.layoutInfo.rect.maxY;\n width = Math.max(width, layoutNode.layoutInfo.rect.width);\n children.push(layoutNode);\n }\n\n if (this.isLoading) {\n let rect = new Rect(0, y, width || this.virtualizer.visibleRect.width, children.length === 0 ? this.virtualizer.visibleRect.height : 60);\n let loader = new LayoutInfo('loader', 'loader', rect);\n loader.parentKey = 'body';\n loader.isSticky = children.length === 0;\n this.layoutInfos.set('loader', loader);\n children.push({layoutInfo: loader});\n y = loader.rect.maxY;\n width = Math.max(width, rect.width);\n } else if (children.length === 0) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width, this.virtualizer.visibleRect.height);\n let empty = new LayoutInfo('empty', 'empty', rect);\n empty.parentKey = 'body';\n empty.isSticky = true;\n this.layoutInfos.set('empty', empty);\n children.push({layoutInfo: empty});\n y = empty.rect.maxY;\n width = Math.max(width, rect.width);\n }\n\n rect.width = width;\n rect.height = y - startY;\n\n this.layoutInfos.set('body', layoutInfo);\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildNode(node: GridNode<T>, x: number, y: number): LayoutNode {\n switch (node.type) {\n case 'headerrow':\n return this.buildHeaderRow(node, x, y);\n case 'item':\n return this.buildRow(node, x, y);\n case 'column':\n case 'placeholder':\n return this.buildColumn(node, x, y);\n case 'cell':\n return this.buildCell(node, x, y);\n default:\n throw new Error('Unknown node type ' + node.type);\n }\n }\n\n buildRow(node: GridNode<T>, x: number, y: number): LayoutNode {\n let rect = new Rect(x, y, 0, 0);\n let layoutInfo = new LayoutInfo('row', node.key, rect);\n\n let children: LayoutNode[] = [];\n let height = 0;\n for (let child of node.childNodes) {\n let layoutNode = this.buildChild(child, x, y);\n x = layoutNode.layoutInfo.rect.maxX;\n height = Math.max(height, layoutNode.layoutInfo.rect.height);\n children.push(layoutNode);\n }\n\n this.setChildHeights(children, height);\n\n rect.width = x;\n rect.height = height + 1; // +1 for bottom border\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildCell(node: GridNode<T>, x: number, y: number): LayoutNode {\n let width = this.getColumnWidth_(node);\n let {height, isEstimated} = this.getEstimatedHeight(node, width, this.rowHeight, this.estimatedRowHeight);\n let rect = new Rect(x, y, width, height);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n layoutInfo.isSticky = node.props?.isSelectionCell;\n layoutInfo.zIndex = layoutInfo.isSticky ? 2 : 1;\n layoutInfo.estimatedSize = isEstimated;\n\n return {\n layoutInfo\n };\n }\n\n getVisibleLayoutInfos(rect: Rect) {\n let res: LayoutInfo[] = [];\n\n for (let node of this.rootNodes) {\n res.push(node.layoutInfo);\n this.addVisibleLayoutInfos(res, node, rect);\n }\n\n return res;\n }\n\n addVisibleLayoutInfos(res: LayoutInfo[], node: LayoutNode, rect: Rect) {\n if (!node.children || node.children.length === 0) {\n return;\n }\n\n switch (node.layoutInfo.type) {\n case 'header': {\n for (let child of node.children) {\n res.push(child.layoutInfo);\n this.addVisibleLayoutInfos(res, child, rect);\n }\n break;\n }\n case 'rowgroup': {\n let firstVisibleRow = this.binarySearch(node.children, rect.topLeft, 'y');\n let lastVisibleRow = this.binarySearch(node.children, rect.bottomRight, 'y');\n for (let i = firstVisibleRow; i <= lastVisibleRow; i++) {\n res.push(node.children[i].layoutInfo);\n this.addVisibleLayoutInfos(res, node.children[i], rect);\n }\n break;\n }\n case 'headerrow':\n case 'row': {\n let firstVisibleCell = this.binarySearch(node.children, rect.topLeft, 'x');\n let lastVisibleCell = this.binarySearch(node.children, rect.topRight, 'x');\n let stickyIndex = 0;\n for (let i = firstVisibleCell; i <= lastVisibleCell; i++) {\n // Sticky columns and row headers are always in the DOM. Interleave these\n // with the visible range so that they are in the right order.\n if (stickyIndex < this.stickyColumnIndices.length) {\n let idx = this.stickyColumnIndices[stickyIndex];\n while (idx < i) {\n res.push(node.children[idx].layoutInfo);\n idx = this.stickyColumnIndices[stickyIndex++];\n }\n }\n\n res.push(node.children[i].layoutInfo);\n }\n\n while (stickyIndex < this.stickyColumnIndices.length) {\n let idx = this.stickyColumnIndices[stickyIndex++];\n res.push(node.children[idx].layoutInfo);\n }\n break;\n }\n default:\n throw new Error('Unknown node type ' + node.layoutInfo.type);\n }\n }\n\n binarySearch(items: LayoutNode[], point: Point, axis: 'x' | 'y') {\n let low = 0;\n let high = items.length - 1;\n while (low <= high) {\n let mid = (low + high) >> 1;\n let item = items[mid];\n\n if ((axis === 'x' && item.layoutInfo.rect.maxX < point.x) || (axis === 'y' && item.layoutInfo.rect.maxY < point.y)) {\n low = mid + 1;\n } else if ((axis === 'x' && item.layoutInfo.rect.x > point.x) || (axis === 'y' && item.layoutInfo.rect.y > point.y)) {\n high = mid - 1;\n } else {\n return mid;\n }\n }\n\n return Math.max(0, Math.min(items.length - 1, low));\n }\n\n getInitialLayoutInfo(layoutInfo: LayoutInfo) {\n let res = super.getInitialLayoutInfo(layoutInfo);\n\n // If this insert was the result of async loading, remove the zoom effect and just keep the fade in.\n if (this.wasLoading) {\n res.transform = null;\n }\n\n return res;\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 {ColumnProps, TableCollection} from '@react-types/table';\nimport {GridNode} from '@react-types/grid';\nimport {Key} from 'react';\nimport {LayoutInfo, Point, Rect, Size} from '@react-stately/virtualizer';\nimport {LayoutNode, ListLayout, ListLayoutOptions} from './ListLayout';\n\n\ntype TableLayoutOptions<T> = ListLayoutOptions<T> & {\n getDefaultWidth: (props) => string | number\n}\n\nexport class TableLayout_DEPRECATED<T> extends ListLayout<T> {\n collection: TableCollection<T>;\n lastCollection: TableCollection<T>;\n columnWidths: Map<Key, number>;\n stickyColumnIndices: number[];\n getDefaultWidth: (props) => string | number;\n wasLoading = false;\n isLoading = false;\n\n constructor(options: TableLayoutOptions<T>) {\n super(options);\n this.getDefaultWidth = options.getDefaultWidth;\n }\n\n\n buildCollection(): LayoutNode[] {\n // If columns changed, clear layout cache.\n if (\n !this.lastCollection ||\n this.collection.columns.length !== this.lastCollection.columns.length ||\n this.collection.columns.some((c, i) => c.key !== this.lastCollection.columns[i].key)\n ) {\n // Invalidate everything in this layout pass. Will be reset in ListLayout on the next pass.\n this.invalidateEverything = true;\n }\n\n // Track whether we were previously loading. This is used to adjust the animations of async loading vs inserts.\n let loadingState = this.collection.body.props.loadingState;\n this.wasLoading = this.isLoading;\n this.isLoading = loadingState === 'loading' || loadingState === 'loadingMore';\n\n this.buildColumnWidths();\n let header = this.buildHeader();\n let body = this.buildBody(0);\n body.layoutInfo.rect.width = Math.max(header.layoutInfo.rect.width, body.layoutInfo.rect.width);\n this.contentSize = new Size(body.layoutInfo.rect.width, body.layoutInfo.rect.maxY);\n return [\n header,\n body\n ];\n }\n\n buildColumnWidths() {\n this.columnWidths = new Map();\n this.stickyColumnIndices = [];\n\n // Pass 1: set widths for all explicitly defined columns.\n let remainingColumns = new Set<GridNode<T>>();\n let remainingSpace = this.virtualizer.visibleRect.width;\n for (let column of this.collection.columns) {\n let props = column.props as ColumnProps<T>;\n let width = props.width ?? this.getDefaultWidth(props);\n if (width != null) {\n let w = this.parseWidth(width);\n this.columnWidths.set(column.key, w);\n remainingSpace -= w;\n } else {\n remainingColumns.add(column);\n }\n\n // The selection cell and any other sticky columns always need to be visible.\n // In addition, row headers need to be in the DOM for accessibility labeling.\n if (column.props.isSelectionCell || this.collection.rowHeaderColumnKeys.has(column.key)) {\n this.stickyColumnIndices.push(column.index);\n }\n }\n\n // Pass 2: if there are remaining columns, then distribute the remaining space evenly.\n if (remainingColumns.size > 0) {\n let columnWidth = remainingSpace / (this.collection.columns.length - this.columnWidths.size);\n\n for (let column of remainingColumns) {\n let props = column.props as ColumnProps<T>;\n let minWidth = props.minWidth != null ? this.parseWidth(props.minWidth) : 75;\n let maxWidth = props.maxWidth != null ? this.parseWidth(props.maxWidth) : Infinity;\n let width = Math.floor(Math.max(minWidth, Math.min(maxWidth, columnWidth)));\n\n this.columnWidths.set(column.key, width);\n remainingSpace -= width;\n if (width !== columnWidth) {\n columnWidth = remainingSpace / (this.collection.columns.length - this.columnWidths.size);\n }\n }\n }\n }\n\n parseWidth(width: number | string): number {\n if (typeof width === 'string') {\n let match = width.match(/^(\\d+)%$/);\n if (!match) {\n throw new Error('Only percentages are supported as column widths');\n }\n\n return this.virtualizer.visibleRect.width * (parseInt(match[1], 10) / 100);\n }\n\n return width;\n }\n\n buildHeader(): LayoutNode {\n let rect = new Rect(0, 0, 0, 0);\n let layoutInfo = new LayoutInfo('header', 'header', rect);\n\n let y = 0;\n let width = 0;\n let children: LayoutNode[] = [];\n for (let headerRow of this.collection.headerRows) {\n let layoutNode = this.buildChild(headerRow, 0, y);\n layoutNode.layoutInfo.parentKey = 'header';\n y = layoutNode.layoutInfo.rect.maxY;\n width = Math.max(width, layoutNode.layoutInfo.rect.width);\n children.push(layoutNode);\n }\n\n rect.width = width;\n rect.height = y;\n\n this.layoutInfos.set('header', layoutInfo);\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildHeaderRow(headerRow: GridNode<T>, x: number, y: number) {\n let rect = new Rect(0, y, 0, 0);\n let row = new LayoutInfo('headerrow', headerRow.key, rect);\n\n let height = 0;\n let columns: LayoutNode[] = [];\n for (let cell of headerRow.childNodes) {\n let layoutNode = this.buildChild(cell, x, y);\n layoutNode.layoutInfo.parentKey = row.key;\n x = layoutNode.layoutInfo.rect.maxX;\n height = Math.max(height, layoutNode.layoutInfo.rect.height);\n columns.push(layoutNode);\n }\n\n this.setChildHeights(columns, height);\n\n rect.height = height;\n rect.width = x;\n\n return {\n layoutInfo: row,\n children: columns\n };\n }\n\n setChildHeights(children: LayoutNode[], height: number) {\n for (let child of children) {\n if (child.layoutInfo.rect.height !== height) {\n // Need to copy the layout info before we mutate it.\n child.layoutInfo = child.layoutInfo.copy();\n this.layoutInfos.set(child.layoutInfo.key, child.layoutInfo);\n\n child.layoutInfo.rect.height = height;\n }\n }\n }\n\n getColumnWidth(node: GridNode<T>) {\n let colspan = node.colspan ?? 1;\n let width = 0;\n for (let i = 0; i < colspan; i++) {\n let column = this.collection.columns[node.index + i];\n width += this.columnWidths.get(column.key);\n }\n\n return width;\n }\n\n getEstimatedHeight(node: GridNode<T>, width: number, height: number, estimatedHeight: number) {\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (height == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode) {\n let curNode = this.collection.getItem(node.key);\n let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;\n height = previousLayoutNode.layoutInfo.rect.height;\n isEstimated = curNode !== lastNode || width !== previousLayoutNode.layoutInfo.rect.width || previousLayoutNode.layoutInfo.estimatedSize;\n } else {\n height = estimatedHeight;\n isEstimated = true;\n }\n }\n\n return {height, isEstimated};\n }\n\n buildColumn(node: GridNode<T>, x: number, y: number): LayoutNode {\n let width = this.getColumnWidth(node);\n let {height, isEstimated} = this.getEstimatedHeight(node, width, this.headingHeight, this.estimatedHeadingHeight);\n let rect = new Rect(x, y, width, height);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n layoutInfo.isSticky = node.props?.isSelectionCell;\n layoutInfo.zIndex = layoutInfo.isSticky ? 2 : 1;\n layoutInfo.estimatedSize = isEstimated;\n\n return {\n layoutInfo\n };\n }\n\n buildBody(y: number): LayoutNode {\n let rect = new Rect(0, y, 0, 0);\n let layoutInfo = new LayoutInfo('rowgroup', 'body', rect);\n\n let startY = y;\n let width = 0;\n let children: LayoutNode[] = [];\n for (let node of this.collection.body.childNodes) {\n let layoutNode = this.buildChild(node, 0, y);\n layoutNode.layoutInfo.parentKey = 'body';\n y = layoutNode.layoutInfo.rect.maxY;\n width = Math.max(width, layoutNode.layoutInfo.rect.width);\n children.push(layoutNode);\n }\n\n if (this.isLoading) {\n let rect = new Rect(0, y, width || this.virtualizer.visibleRect.width, children.length === 0 ? this.virtualizer.visibleRect.height : 60);\n let loader = new LayoutInfo('loader', 'loader', rect);\n loader.parentKey = 'body';\n loader.isSticky = children.length === 0;\n this.layoutInfos.set('loader', loader);\n children.push({layoutInfo: loader});\n y = loader.rect.maxY;\n width = Math.max(width, rect.width);\n } else if (children.length === 0) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width, this.virtualizer.visibleRect.height);\n let empty = new LayoutInfo('empty', 'empty', rect);\n empty.parentKey = 'body';\n empty.isSticky = true;\n this.layoutInfos.set('empty', empty);\n children.push({layoutInfo: empty});\n y = empty.rect.maxY;\n width = Math.max(width, rect.width);\n }\n\n rect.width = width;\n rect.height = y - startY;\n\n this.layoutInfos.set('body', layoutInfo);\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildNode(node: GridNode<T>, x: number, y: number): LayoutNode {\n switch (node.type) {\n case 'headerrow':\n return this.buildHeaderRow(node, x, y);\n case 'item':\n return this.buildRow(node, x, y);\n case 'column':\n case 'placeholder':\n return this.buildColumn(node, x, y);\n case 'cell':\n return this.buildCell(node, x, y);\n default:\n throw new Error('Unknown node type ' + node.type);\n }\n }\n\n buildRow(node: GridNode<T>, x: number, y: number): LayoutNode {\n let rect = new Rect(x, y, 0, 0);\n let layoutInfo = new LayoutInfo('row', node.key, rect);\n\n let children: LayoutNode[] = [];\n let height = 0;\n for (let child of node.childNodes) {\n let layoutNode = this.buildChild(child, x, y);\n x = layoutNode.layoutInfo.rect.maxX;\n height = Math.max(height, layoutNode.layoutInfo.rect.height);\n children.push(layoutNode);\n }\n\n this.setChildHeights(children, height);\n\n rect.width = x;\n rect.height = height + 1; // +1 for bottom border\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildCell(node: GridNode<T>, x: number, y: number): LayoutNode {\n let width = this.getColumnWidth(node);\n let {height, isEstimated} = this.getEstimatedHeight(node, width, this.rowHeight, this.estimatedRowHeight);\n let rect = new Rect(x, y, width, height);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n layoutInfo.isSticky = node.props?.isSelectionCell;\n layoutInfo.zIndex = layoutInfo.isSticky ? 2 : 1;\n layoutInfo.estimatedSize = isEstimated;\n\n return {\n layoutInfo\n };\n }\n\n getVisibleLayoutInfos(rect: Rect) {\n let res: LayoutInfo[] = [];\n\n for (let node of this.rootNodes) {\n res.push(node.layoutInfo);\n this.addVisibleLayoutInfos(res, node, rect);\n }\n\n return res;\n }\n\n addVisibleLayoutInfos(res: LayoutInfo[], node: LayoutNode, rect: Rect) {\n if (!node.children || node.children.length === 0) {\n return;\n }\n\n switch (node.layoutInfo.type) {\n case 'header': {\n for (let child of node.children) {\n res.push(child.layoutInfo);\n this.addVisibleLayoutInfos(res, child, rect);\n }\n break;\n }\n case 'rowgroup': {\n let firstVisibleRow = this.binarySearch(node.children, rect.topLeft, 'y');\n let lastVisibleRow = this.binarySearch(node.children, rect.bottomRight, 'y');\n for (let i = firstVisibleRow; i <= lastVisibleRow; i++) {\n res.push(node.children[i].layoutInfo);\n this.addVisibleLayoutInfos(res, node.children[i], rect);\n }\n break;\n }\n case 'headerrow':\n case 'row': {\n let firstVisibleCell = this.binarySearch(node.children, rect.topLeft, 'x');\n let lastVisibleCell = this.binarySearch(node.children, rect.topRight, 'x');\n let stickyIndex = 0;\n for (let i = firstVisibleCell; i <= lastVisibleCell; i++) {\n // Sticky columns and row headers are always in the DOM. Interleave these\n // with the visible range so that they are in the right order.\n if (stickyIndex < this.stickyColumnIndices.length) {\n let idx = this.stickyColumnIndices[stickyIndex];\n while (idx < i) {\n res.push(node.children[idx].layoutInfo);\n idx = this.stickyColumnIndices[stickyIndex++];\n }\n }\n\n res.push(node.children[i].layoutInfo);\n }\n\n while (stickyIndex < this.stickyColumnIndices.length) {\n let idx = this.stickyColumnIndices[stickyIndex++];\n res.push(node.children[idx].layoutInfo);\n }\n break;\n }\n default:\n throw new Error('Unknown node type ' + node.layoutInfo.type);\n }\n }\n\n binarySearch(items: LayoutNode[], point: Point, axis: 'x' | 'y') {\n let low = 0;\n let high = items.length - 1;\n while (low <= high) {\n let mid = (low + high) >> 1;\n let item = items[mid];\n\n if ((axis === 'x' && item.layoutInfo.rect.maxX < point.x) || (axis === 'y' && item.layoutInfo.rect.maxY < point.y)) {\n low = mid + 1;\n } else if ((axis === 'x' && item.layoutInfo.rect.x > point.x) || (axis === 'y' && item.layoutInfo.rect.y > point.y)) {\n high = mid - 1;\n } else {\n return mid;\n }\n }\n\n return Math.max(0, Math.min(items.length - 1, low));\n }\n\n getInitialLayoutInfo(layoutInfo: LayoutInfo) {\n let res = super.getInitialLayoutInfo(layoutInfo);\n\n // If this insert was the result of async loading, remove the zoom effect and just keep the fade in.\n if (this.wasLoading) {\n res.transform = null;\n }\n\n return res;\n }\n}\n"],"names":[],"version":3,"file":"main.js.map"}
package/dist/module.js CHANGED
@@ -209,7 +209,7 @@ class $61ef60fc9b1041f4$export$cacbb3924155d68e extends $gtW1T$Layout {
209
209
  key = collection.getKeyBefore(key);
210
210
  while(key != null){
211
211
  let item = collection.getItem(key);
212
- if (item.type === 'item' && !this.disabledKeys.has(item.key)) return key;
212
+ if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) return key;
213
213
  key = collection.getKeyBefore(key);
214
214
  }
215
215
  }
@@ -218,10 +218,16 @@ class $61ef60fc9b1041f4$export$cacbb3924155d68e extends $gtW1T$Layout {
218
218
  key = collection.getKeyAfter(key);
219
219
  while(key != null){
220
220
  let item = collection.getItem(key);
221
- if (item.type === 'item' && !this.disabledKeys.has(item.key)) return key;
221
+ if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) return key;
222
222
  key = collection.getKeyAfter(key);
223
223
  }
224
224
  }
225
+ getKeyLeftOf(key) {
226
+ return key;
227
+ }
228
+ getKeyRightOf(key) {
229
+ return key;
230
+ }
225
231
  getKeyPageAbove(key) {
226
232
  let layoutInfo = this.getLayoutInfo(key);
227
233
  if (layoutInfo) {
@@ -251,7 +257,7 @@ class $61ef60fc9b1041f4$export$cacbb3924155d68e extends $gtW1T$Layout {
251
257
  let key = collection.getFirstKey();
252
258
  while(key != null){
253
259
  let item = collection.getItem(key);
254
- if (item.type === 'item' && !this.disabledKeys.has(item.key)) return key;
260
+ if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) return key;
255
261
  key = collection.getKeyAfter(key);
256
262
  }
257
263
  }
@@ -260,7 +266,7 @@ class $61ef60fc9b1041f4$export$cacbb3924155d68e extends $gtW1T$Layout {
260
266
  let key = collection.getLastKey();
261
267
  while(key != null){
262
268
  let item = collection.getItem(key);
263
- if (item.type === 'item' && !this.disabledKeys.has(item.key)) return key;
269
+ if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) return key;
264
270
  key = collection.getKeyBefore(key);
265
271
  }
266
272
  }
@@ -315,6 +321,7 @@ class $61ef60fc9b1041f4$export$cacbb3924155d68e extends $gtW1T$Layout {
315
321
  }){
316
322
  super();
317
323
  this.disabledKeys = new Set();
324
+ this.allowDisabledKeyFocus = false;
318
325
  this.rowHeight = options.rowHeight;
319
326
  this.estimatedRowHeight = options.estimatedRowHeight;
320
327
  this.headingHeight = options.headingHeight;
@@ -329,6 +336,7 @@ class $61ef60fc9b1041f4$export$cacbb3924155d68e extends $gtW1T$Layout {
329
336
  this.rootNodes = [];
330
337
  this.lastWidth = 0;
331
338
  this.lastCollection = null;
339
+ this.allowDisabledKeyFocus = options.allowDisabledKeyFocus;
332
340
  }
333
341
  }
334
342
 
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-stately/layout/src/index.ts","packages/@react-stately/layout/src/ListLayout.ts","packages/@react-stately/layout/src/TableLayout.ts","packages/@react-stately/layout/src/TableLayout_DEPRECATED.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 './ListLayout';\nexport * from './TableLayout';\nexport * from './TableLayout_DEPRECATED';\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 {Collection, KeyboardDelegate, Node} from '@react-types/shared';\nimport {InvalidationContext, Layout, LayoutInfo, Rect, Size} from '@react-stately/virtualizer';\nimport {Key} from 'react';\n// import { DragTarget, DropTarget, DropPosition } from '@react-types/shared';\n\nexport type ListLayoutOptions<T> = {\n /** The height of a row in px. */\n rowHeight?: number,\n estimatedRowHeight?: number,\n headingHeight?: number,\n estimatedHeadingHeight?: number,\n padding?: number,\n indentationForItem?: (collection: Collection<Node<T>>, key: Key) => number,\n collator?: Intl.Collator,\n loaderHeight?: number,\n placeholderHeight?: number\n};\n\n// A wrapper around LayoutInfo that supports hierarchy\nexport interface LayoutNode {\n node?: Node<unknown>,\n layoutInfo: LayoutInfo,\n header?: LayoutInfo,\n children?: LayoutNode[]\n}\n\nconst DEFAULT_HEIGHT = 48;\n\n/**\n * The ListLayout class is an implementation of a collection view {@link Layout}\n * it is used for creating lists and lists with indented sub-lists.\n *\n * To configure a ListLayout, you can use the properties to define the\n * layouts and/or use the method for defining indentation.\n * The {@link ListKeyboardDelegate} extends the existing collection view\n * delegate with an additional method to do this (it uses the same delegate object as\n * the collection view itself).\n */\nexport class ListLayout<T> extends Layout<Node<T>> implements KeyboardDelegate {\n protected rowHeight: number;\n protected estimatedRowHeight: number;\n protected headingHeight: number;\n protected estimatedHeadingHeight: number;\n protected padding: number;\n protected indentationForItem?: (collection: Collection<Node<T>>, key: Key) => number;\n protected layoutInfos: Map<Key, LayoutInfo>;\n protected layoutNodes: Map<Key, LayoutNode>;\n protected contentSize: Size;\n collection: Collection<Node<T>>;\n disabledKeys: Set<Key> = new Set();\n isLoading: boolean;\n protected lastWidth: number;\n protected lastCollection: Collection<Node<T>>;\n protected rootNodes: LayoutNode[];\n protected collator: Intl.Collator;\n protected invalidateEverything: boolean;\n protected loaderHeight: number;\n protected placeholderHeight: number;\n\n /**\n * Creates a new ListLayout with options. See the list of properties below for a description\n * of the options that can be provided.\n */\n constructor(options: ListLayoutOptions<T> = {}) {\n super();\n this.rowHeight = options.rowHeight;\n this.estimatedRowHeight = options.estimatedRowHeight;\n this.headingHeight = options.headingHeight;\n this.estimatedHeadingHeight = options.estimatedHeadingHeight;\n this.padding = options.padding || 0;\n this.indentationForItem = options.indentationForItem;\n this.collator = options.collator;\n this.loaderHeight = options.loaderHeight;\n this.placeholderHeight = options.placeholderHeight;\n this.layoutInfos = new Map();\n this.layoutNodes = new Map();\n this.rootNodes = [];\n this.lastWidth = 0;\n this.lastCollection = null;\n }\n\n getLayoutInfo(key: Key) {\n return this.layoutInfos.get(key);\n }\n\n getVisibleLayoutInfos(rect: Rect) {\n let res: LayoutInfo[] = [];\n\n let addNodes = (nodes: LayoutNode[]) => {\n for (let node of nodes) {\n if (this.isVisible(node, rect)) {\n res.push(node.layoutInfo);\n if (node.header) {\n res.push(node.header);\n }\n\n if (node.children) {\n addNodes(node.children);\n }\n }\n }\n };\n\n addNodes(this.rootNodes);\n return res;\n }\n\n isVisible(node: LayoutNode, rect: Rect) {\n return node.layoutInfo.rect.intersects(rect) || node.layoutInfo.isSticky;\n }\n\n validate(invalidationContext: InvalidationContext<Node<T>, unknown>) {\n // Invalidate cache if the size of the collection changed.\n // In this case, we need to recalculate the entire layout.\n this.invalidateEverything = invalidationContext.sizeChanged;\n\n this.collection = this.virtualizer.collection;\n this.rootNodes = this.buildCollection();\n\n // Remove deleted layout nodes\n if (this.lastCollection) {\n for (let key of this.lastCollection.getKeys()) {\n if (!this.collection.getItem(key)) {\n let layoutNode = this.layoutNodes.get(key);\n if (layoutNode) {\n this.layoutInfos.delete(layoutNode.layoutInfo.key);\n this.layoutInfos.delete(layoutNode.header?.key);\n this.layoutNodes.delete(key);\n }\n }\n }\n }\n\n this.lastWidth = this.virtualizer.visibleRect.width;\n this.lastCollection = this.collection;\n }\n\n buildCollection(): LayoutNode[] {\n let y = this.padding;\n let nodes = [];\n for (let node of this.collection) {\n let layoutNode = this.buildChild(node, 0, y);\n y = layoutNode.layoutInfo.rect.maxY;\n nodes.push(layoutNode);\n }\n\n if (this.isLoading) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width,\n this.loaderHeight ?? this.virtualizer.visibleRect.height);\n let loader = new LayoutInfo('loader', 'loader', rect);\n this.layoutInfos.set('loader', loader);\n nodes.push({layoutInfo: loader});\n y = loader.rect.maxY;\n }\n\n if (nodes.length === 0) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width,\n this.placeholderHeight ?? this.virtualizer.visibleRect.height);\n let placeholder = new LayoutInfo('placeholder', 'placeholder', rect);\n this.layoutInfos.set('placeholder', placeholder);\n nodes.push({layoutInfo: placeholder});\n y = placeholder.rect.maxY;\n }\n\n this.contentSize = new Size(this.virtualizer.visibleRect.width, y + this.padding);\n return nodes;\n }\n\n buildChild(node: Node<T>, x: number, y: number): LayoutNode {\n let cached = this.layoutNodes.get(node.key);\n if (!this.invalidateEverything && cached && cached.node === node && y === (cached.header || cached.layoutInfo).rect.y) {\n return cached;\n }\n\n let layoutNode = this.buildNode(node, x, y);\n layoutNode.node = node;\n\n layoutNode.layoutInfo.parentKey = node.parentKey ?? null;\n this.layoutInfos.set(layoutNode.layoutInfo.key, layoutNode.layoutInfo);\n if (layoutNode.header) {\n this.layoutInfos.set(layoutNode.header.key, layoutNode.header);\n }\n\n this.layoutNodes.set(node.key, layoutNode);\n return layoutNode;\n }\n\n buildNode(node: Node<T>, x: number, y: number): LayoutNode {\n switch (node.type) {\n case 'section':\n return this.buildSection(node, x, y);\n case 'item':\n return this.buildItem(node, x, y);\n }\n }\n\n buildSection(node: Node<T>, x: number, y: number): LayoutNode {\n let width = this.virtualizer.visibleRect.width;\n let rectHeight = this.headingHeight;\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (rectHeight == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode && previousLayoutNode.header) {\n let curNode = this.collection.getItem(node.key);\n let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;\n rectHeight = previousLayoutNode.header.rect.height;\n isEstimated = width !== this.lastWidth || curNode !== lastNode || previousLayoutNode.header.estimatedSize;\n } else {\n rectHeight = (node.rendered ? this.estimatedHeadingHeight : 0);\n isEstimated = true;\n }\n }\n\n if (rectHeight == null) {\n rectHeight = DEFAULT_HEIGHT;\n }\n\n let headerRect = new Rect(0, y, width, rectHeight);\n let header = new LayoutInfo('header', node.key + ':header', headerRect);\n header.estimatedSize = isEstimated;\n header.parentKey = node.key;\n y += header.rect.height;\n\n let rect = new Rect(0, y, width, 0);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n\n let startY = y;\n let children = [];\n for (let child of node.childNodes) {\n let layoutNode = this.buildChild(child, x, y);\n y = layoutNode.layoutInfo.rect.maxY;\n children.push(layoutNode);\n }\n\n rect.height = y - startY;\n\n return {\n header,\n layoutInfo,\n children\n };\n }\n\n buildItem(node: Node<T>, x: number, y: number): LayoutNode {\n let width = this.virtualizer.visibleRect.width;\n let rectHeight = this.rowHeight;\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (rectHeight == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode) {\n let curNode = this.collection.getItem(node.key);\n let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;\n rectHeight = previousLayoutNode.layoutInfo.rect.height;\n isEstimated = width !== this.lastWidth || curNode !== lastNode || previousLayoutNode.layoutInfo.estimatedSize;\n } else {\n rectHeight = this.estimatedRowHeight;\n isEstimated = true;\n }\n }\n\n if (rectHeight == null) {\n rectHeight = DEFAULT_HEIGHT;\n }\n\n if (typeof this.indentationForItem === 'function') {\n x += this.indentationForItem(this.collection, node.key) || 0;\n }\n\n let rect = new Rect(x, y, width - x, rectHeight);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n layoutInfo.estimatedSize = isEstimated;\n return {\n layoutInfo\n };\n }\n\n updateItemSize(key: Key, size: Size) {\n let layoutInfo = this.layoutInfos.get(key);\n // If no layoutInfo, item has been deleted/removed.\n if (!layoutInfo) {\n return false;\n }\n\n layoutInfo.estimatedSize = false;\n if (layoutInfo.rect.height !== size.height) {\n // Copy layout info rather than mutating so that later caches are invalidated.\n let newLayoutInfo = layoutInfo.copy();\n newLayoutInfo.rect.height = size.height;\n this.layoutInfos.set(key, newLayoutInfo);\n\n // Invalidate layout for this layout node and all parents\n this.updateLayoutNode(key, layoutInfo, newLayoutInfo);\n\n let node = this.collection.getItem(layoutInfo.parentKey);\n while (node) {\n this.updateLayoutNode(node.key, layoutInfo, newLayoutInfo);\n node = this.collection.getItem(node.parentKey);\n }\n\n return true;\n }\n\n return false;\n }\n\n updateLayoutNode(key: Key, oldLayoutInfo: LayoutInfo, newLayoutInfo: LayoutInfo) {\n let n = this.layoutNodes.get(key);\n if (n) {\n // Invalidate by clearing node.\n n.node = null;\n\n // Replace layout info in LayoutNode\n if (n.header === oldLayoutInfo) {\n n.header = newLayoutInfo;\n } else if (n.layoutInfo === oldLayoutInfo) {\n n.layoutInfo = newLayoutInfo;\n }\n }\n }\n\n getContentSize() {\n return this.contentSize;\n }\n\n getKeyAbove(key: Key) {\n let collection = this.collection;\n\n key = collection.getKeyBefore(key);\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && !this.disabledKeys.has(item.key)) {\n return key;\n }\n\n key = collection.getKeyBefore(key);\n }\n }\n\n getKeyBelow(key: Key) {\n let collection = this.collection;\n\n key = collection.getKeyAfter(key);\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && !this.disabledKeys.has(item.key)) {\n return key;\n }\n\n key = collection.getKeyAfter(key);\n }\n }\n\n getKeyPageAbove(key: Key) {\n let layoutInfo = this.getLayoutInfo(key);\n\n if (layoutInfo) {\n let pageY = Math.max(0, layoutInfo.rect.y + layoutInfo.rect.height - this.virtualizer.visibleRect.height);\n while (layoutInfo && layoutInfo.rect.y > pageY) {\n let keyAbove = this.getKeyAbove(layoutInfo.key);\n layoutInfo = this.getLayoutInfo(keyAbove);\n }\n\n if (layoutInfo) {\n return layoutInfo.key;\n }\n }\n\n return this.getFirstKey();\n }\n\n getKeyPageBelow(key: Key) {\n let layoutInfo = this.getLayoutInfo(key != null ? key : this.getFirstKey());\n\n if (layoutInfo) {\n let pageY = Math.min(this.virtualizer.contentSize.height, layoutInfo.rect.y - layoutInfo.rect.height + this.virtualizer.visibleRect.height);\n while (layoutInfo && layoutInfo.rect.y < pageY) {\n let keyBelow = this.getKeyBelow(layoutInfo.key);\n layoutInfo = this.getLayoutInfo(keyBelow);\n }\n\n if (layoutInfo) {\n return layoutInfo.key;\n }\n }\n\n return this.getLastKey();\n }\n\n getFirstKey() {\n let collection = this.collection;\n let key = collection.getFirstKey();\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && !this.disabledKeys.has(item.key)) {\n return key;\n }\n\n key = collection.getKeyAfter(key);\n }\n }\n\n getLastKey() {\n let collection = this.collection;\n let key = collection.getLastKey();\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && !this.disabledKeys.has(item.key)) {\n return key;\n }\n\n key = collection.getKeyBefore(key);\n }\n }\n\n getKeyForSearch(search: string, fromKey?: Key) {\n if (!this.collator) {\n return null;\n }\n\n let collection = this.collection;\n let key = fromKey || this.getFirstKey();\n while (key != null) {\n let item = collection.getItem(key);\n let substring = item.textValue.slice(0, search.length);\n if (item.textValue && this.collator.compare(substring, search) === 0) {\n return key;\n }\n\n key = this.getKeyBelow(key);\n }\n\n return null;\n }\n\n // getDragTarget(point: Point): DragTarget {\n // let visible = this.getVisibleLayoutInfos(new Rect(point.x, point.y, 1, 1));\n // if (visible.length > 0) {\n // visible = visible.sort((a, b) => b.zIndex - a.zIndex);\n // return {\n // type: 'item',\n // key: visible[0].key\n // };\n // }\n\n // return null;\n // }\n\n // getDropTarget(point: Point): DropTarget {\n // let key = this.virtualizer.keyAtPoint(point);\n // if (key) {\n // return {\n // type: 'item',\n // key,\n // dropPosition: DropPosition.ON\n // };\n // }\n\n // return null;\n // }\n\n getInitialLayoutInfo(layoutInfo: LayoutInfo) {\n layoutInfo.opacity = 0;\n layoutInfo.transform = 'scale3d(0.8, 0.8, 0.8)';\n return layoutInfo;\n }\n\n getFinalLayoutInfo(layoutInfo: LayoutInfo) {\n layoutInfo.opacity = 0;\n layoutInfo.transform = 'scale3d(0.8, 0.8, 0.8)';\n return layoutInfo;\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 {GridNode} from '@react-types/grid';\nimport {Key} from 'react';\nimport {LayoutInfo, Point, Rect, Size} from '@react-stately/virtualizer';\nimport {LayoutNode, ListLayout, ListLayoutOptions} from './ListLayout';\nimport {TableCollection} from '@react-types/table';\n\n\nexport class TableLayout<T> extends ListLayout<T> {\n collection: TableCollection<T>;\n lastCollection: TableCollection<T>;\n getColumnWidth: (key: Key) => number;\n stickyColumnIndices: number[];\n wasLoading = false;\n isLoading = false;\n\n constructor(options: ListLayoutOptions<T>) {\n super(options);\n this.stickyColumnIndices = [];\n }\n\n\n buildCollection(): LayoutNode[] {\n // If columns changed, clear layout cache.\n if (\n !this.lastCollection ||\n this.collection.columns.length !== this.lastCollection.columns.length ||\n this.collection.columns.some((c, i) => c.key !== this.lastCollection.columns[i].key)\n ) {\n // Invalidate everything in this layout pass. Will be reset in ListLayout on the next pass.\n this.invalidateEverything = true;\n }\n\n // Track whether we were previously loading. This is used to adjust the animations of async loading vs inserts.\n let loadingState = this.collection.body.props.loadingState;\n this.wasLoading = this.isLoading;\n this.isLoading = loadingState === 'loading' || loadingState === 'loadingMore';\n\n let header = this.buildHeader();\n let body = this.buildBody(0);\n this.stickyColumnIndices = this.collection.columns.filter(c => c.props.isSelectionCell || this.collection.rowHeaderColumnKeys.has(c.key)).map(c => c.index);\n\n body.layoutInfo.rect.width = Math.max(header.layoutInfo.rect.width, body.layoutInfo.rect.width);\n this.contentSize = new Size(body.layoutInfo.rect.width, body.layoutInfo.rect.maxY);\n return [\n header,\n body\n ];\n }\n\n buildHeader(): LayoutNode {\n let rect = new Rect(0, 0, 0, 0);\n let layoutInfo = new LayoutInfo('header', 'header', rect);\n\n let y = 0;\n let width = 0;\n let children: LayoutNode[] = [];\n for (let headerRow of this.collection.headerRows) {\n let layoutNode = this.buildChild(headerRow, 0, y);\n layoutNode.layoutInfo.parentKey = 'header';\n y = layoutNode.layoutInfo.rect.maxY;\n width = Math.max(width, layoutNode.layoutInfo.rect.width);\n children.push(layoutNode);\n }\n\n rect.width = width;\n rect.height = y;\n\n this.layoutInfos.set('header', layoutInfo);\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildHeaderRow(headerRow: GridNode<T>, x: number, y: number) {\n let rect = new Rect(0, y, 0, 0);\n let row = new LayoutInfo('headerrow', headerRow.key, rect);\n\n let height = 0;\n let columns: LayoutNode[] = [];\n for (let cell of headerRow.childNodes) {\n let layoutNode = this.buildChild(cell, x, y);\n layoutNode.layoutInfo.parentKey = row.key;\n x = layoutNode.layoutInfo.rect.maxX;\n height = Math.max(height, layoutNode.layoutInfo.rect.height);\n columns.push(layoutNode);\n }\n\n this.setChildHeights(columns, height);\n\n rect.height = height;\n rect.width = x;\n\n return {\n layoutInfo: row,\n children: columns\n };\n }\n\n setChildHeights(children: LayoutNode[], height: number) {\n for (let child of children) {\n if (child.layoutInfo.rect.height !== height) {\n // Need to copy the layout info before we mutate it.\n child.layoutInfo = child.layoutInfo.copy();\n this.layoutInfos.set(child.layoutInfo.key, child.layoutInfo);\n\n child.layoutInfo.rect.height = height;\n }\n }\n }\n\n // used to get the column widths when rendering to the DOM\n getColumnWidth_(node: GridNode<T>) {\n let colspan = node.colspan ?? 1;\n let width = 0;\n for (let i = node.index; i < node.index + colspan; i++) {\n let column = this.collection.columns[i];\n width += this.getColumnWidth(column.key);\n }\n\n return width;\n }\n\n getEstimatedHeight(node: GridNode<T>, width: number, height: number, estimatedHeight: number) {\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (height == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode) {\n let curNode = this.collection.getItem(node.key);\n let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;\n height = previousLayoutNode.layoutInfo.rect.height;\n isEstimated = curNode !== lastNode || width !== previousLayoutNode.layoutInfo.rect.width || previousLayoutNode.layoutInfo.estimatedSize;\n } else {\n height = estimatedHeight;\n isEstimated = true;\n }\n }\n\n return {height, isEstimated};\n }\n\n buildColumn(node: GridNode<T>, x: number, y: number): LayoutNode {\n let width = this.getColumnWidth_(node);\n let {height, isEstimated} = this.getEstimatedHeight(node, width, this.headingHeight, this.estimatedHeadingHeight);\n let rect = new Rect(x, y, width, height);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n layoutInfo.isSticky = node.props?.isSelectionCell;\n layoutInfo.zIndex = layoutInfo.isSticky ? 2 : 1;\n layoutInfo.estimatedSize = isEstimated;\n\n return {\n layoutInfo\n };\n }\n\n buildBody(y: number): LayoutNode {\n let rect = new Rect(0, y, 0, 0);\n let layoutInfo = new LayoutInfo('rowgroup', 'body', rect);\n\n let startY = y;\n let width = 0;\n let children: LayoutNode[] = [];\n for (let node of this.collection.body.childNodes) {\n let layoutNode = this.buildChild(node, 0, y);\n layoutNode.layoutInfo.parentKey = 'body';\n y = layoutNode.layoutInfo.rect.maxY;\n width = Math.max(width, layoutNode.layoutInfo.rect.width);\n children.push(layoutNode);\n }\n\n if (this.isLoading) {\n let rect = new Rect(0, y, width || this.virtualizer.visibleRect.width, children.length === 0 ? this.virtualizer.visibleRect.height : 60);\n let loader = new LayoutInfo('loader', 'loader', rect);\n loader.parentKey = 'body';\n loader.isSticky = children.length === 0;\n this.layoutInfos.set('loader', loader);\n children.push({layoutInfo: loader});\n y = loader.rect.maxY;\n width = Math.max(width, rect.width);\n } else if (children.length === 0) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width, this.virtualizer.visibleRect.height);\n let empty = new LayoutInfo('empty', 'empty', rect);\n empty.parentKey = 'body';\n empty.isSticky = true;\n this.layoutInfos.set('empty', empty);\n children.push({layoutInfo: empty});\n y = empty.rect.maxY;\n width = Math.max(width, rect.width);\n }\n\n rect.width = width;\n rect.height = y - startY;\n\n this.layoutInfos.set('body', layoutInfo);\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildNode(node: GridNode<T>, x: number, y: number): LayoutNode {\n switch (node.type) {\n case 'headerrow':\n return this.buildHeaderRow(node, x, y);\n case 'item':\n return this.buildRow(node, x, y);\n case 'column':\n case 'placeholder':\n return this.buildColumn(node, x, y);\n case 'cell':\n return this.buildCell(node, x, y);\n default:\n throw new Error('Unknown node type ' + node.type);\n }\n }\n\n buildRow(node: GridNode<T>, x: number, y: number): LayoutNode {\n let rect = new Rect(x, y, 0, 0);\n let layoutInfo = new LayoutInfo('row', node.key, rect);\n\n let children: LayoutNode[] = [];\n let height = 0;\n for (let child of node.childNodes) {\n let layoutNode = this.buildChild(child, x, y);\n x = layoutNode.layoutInfo.rect.maxX;\n height = Math.max(height, layoutNode.layoutInfo.rect.height);\n children.push(layoutNode);\n }\n\n this.setChildHeights(children, height);\n\n rect.width = x;\n rect.height = height + 1; // +1 for bottom border\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildCell(node: GridNode<T>, x: number, y: number): LayoutNode {\n let width = this.getColumnWidth_(node);\n let {height, isEstimated} = this.getEstimatedHeight(node, width, this.rowHeight, this.estimatedRowHeight);\n let rect = new Rect(x, y, width, height);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n layoutInfo.isSticky = node.props?.isSelectionCell;\n layoutInfo.zIndex = layoutInfo.isSticky ? 2 : 1;\n layoutInfo.estimatedSize = isEstimated;\n\n return {\n layoutInfo\n };\n }\n\n getVisibleLayoutInfos(rect: Rect) {\n let res: LayoutInfo[] = [];\n\n for (let node of this.rootNodes) {\n res.push(node.layoutInfo);\n this.addVisibleLayoutInfos(res, node, rect);\n }\n\n return res;\n }\n\n addVisibleLayoutInfos(res: LayoutInfo[], node: LayoutNode, rect: Rect) {\n if (!node.children || node.children.length === 0) {\n return;\n }\n\n switch (node.layoutInfo.type) {\n case 'header': {\n for (let child of node.children) {\n res.push(child.layoutInfo);\n this.addVisibleLayoutInfos(res, child, rect);\n }\n break;\n }\n case 'rowgroup': {\n let firstVisibleRow = this.binarySearch(node.children, rect.topLeft, 'y');\n let lastVisibleRow = this.binarySearch(node.children, rect.bottomRight, 'y');\n for (let i = firstVisibleRow; i <= lastVisibleRow; i++) {\n res.push(node.children[i].layoutInfo);\n this.addVisibleLayoutInfos(res, node.children[i], rect);\n }\n break;\n }\n case 'headerrow':\n case 'row': {\n let firstVisibleCell = this.binarySearch(node.children, rect.topLeft, 'x');\n let lastVisibleCell = this.binarySearch(node.children, rect.topRight, 'x');\n let stickyIndex = 0;\n for (let i = firstVisibleCell; i <= lastVisibleCell; i++) {\n // Sticky columns and row headers are always in the DOM. Interleave these\n // with the visible range so that they are in the right order.\n if (stickyIndex < this.stickyColumnIndices.length) {\n let idx = this.stickyColumnIndices[stickyIndex];\n while (idx < i) {\n res.push(node.children[idx].layoutInfo);\n idx = this.stickyColumnIndices[stickyIndex++];\n }\n }\n\n res.push(node.children[i].layoutInfo);\n }\n\n while (stickyIndex < this.stickyColumnIndices.length) {\n let idx = this.stickyColumnIndices[stickyIndex++];\n res.push(node.children[idx].layoutInfo);\n }\n break;\n }\n default:\n throw new Error('Unknown node type ' + node.layoutInfo.type);\n }\n }\n\n binarySearch(items: LayoutNode[], point: Point, axis: 'x' | 'y') {\n let low = 0;\n let high = items.length - 1;\n while (low <= high) {\n let mid = (low + high) >> 1;\n let item = items[mid];\n\n if ((axis === 'x' && item.layoutInfo.rect.maxX < point.x) || (axis === 'y' && item.layoutInfo.rect.maxY < point.y)) {\n low = mid + 1;\n } else if ((axis === 'x' && item.layoutInfo.rect.x > point.x) || (axis === 'y' && item.layoutInfo.rect.y > point.y)) {\n high = mid - 1;\n } else {\n return mid;\n }\n }\n\n return Math.max(0, Math.min(items.length - 1, low));\n }\n\n getInitialLayoutInfo(layoutInfo: LayoutInfo) {\n let res = super.getInitialLayoutInfo(layoutInfo);\n\n // If this insert was the result of async loading, remove the zoom effect and just keep the fade in.\n if (this.wasLoading) {\n res.transform = null;\n }\n\n return res;\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 {ColumnProps, TableCollection} from '@react-types/table';\nimport {GridNode} from '@react-types/grid';\nimport {Key} from 'react';\nimport {LayoutInfo, Point, Rect, Size} from '@react-stately/virtualizer';\nimport {LayoutNode, ListLayout, ListLayoutOptions} from './ListLayout';\n\n\ntype TableLayoutOptions<T> = ListLayoutOptions<T> & {\n getDefaultWidth: (props) => string | number\n}\n\nexport class TableLayout_DEPRECATED<T> extends ListLayout<T> {\n collection: TableCollection<T>;\n lastCollection: TableCollection<T>;\n columnWidths: Map<Key, number>;\n stickyColumnIndices: number[];\n getDefaultWidth: (props) => string | number;\n wasLoading = false;\n isLoading = false;\n\n constructor(options: TableLayoutOptions<T>) {\n super(options);\n this.getDefaultWidth = options.getDefaultWidth;\n }\n\n\n buildCollection(): LayoutNode[] {\n // If columns changed, clear layout cache.\n if (\n !this.lastCollection ||\n this.collection.columns.length !== this.lastCollection.columns.length ||\n this.collection.columns.some((c, i) => c.key !== this.lastCollection.columns[i].key)\n ) {\n // Invalidate everything in this layout pass. Will be reset in ListLayout on the next pass.\n this.invalidateEverything = true;\n }\n\n // Track whether we were previously loading. This is used to adjust the animations of async loading vs inserts.\n let loadingState = this.collection.body.props.loadingState;\n this.wasLoading = this.isLoading;\n this.isLoading = loadingState === 'loading' || loadingState === 'loadingMore';\n\n this.buildColumnWidths();\n let header = this.buildHeader();\n let body = this.buildBody(0);\n body.layoutInfo.rect.width = Math.max(header.layoutInfo.rect.width, body.layoutInfo.rect.width);\n this.contentSize = new Size(body.layoutInfo.rect.width, body.layoutInfo.rect.maxY);\n return [\n header,\n body\n ];\n }\n\n buildColumnWidths() {\n this.columnWidths = new Map();\n this.stickyColumnIndices = [];\n\n // Pass 1: set widths for all explicitly defined columns.\n let remainingColumns = new Set<GridNode<T>>();\n let remainingSpace = this.virtualizer.visibleRect.width;\n for (let column of this.collection.columns) {\n let props = column.props as ColumnProps<T>;\n let width = props.width ?? this.getDefaultWidth(props);\n if (width != null) {\n let w = this.parseWidth(width);\n this.columnWidths.set(column.key, w);\n remainingSpace -= w;\n } else {\n remainingColumns.add(column);\n }\n\n // The selection cell and any other sticky columns always need to be visible.\n // In addition, row headers need to be in the DOM for accessibility labeling.\n if (column.props.isSelectionCell || this.collection.rowHeaderColumnKeys.has(column.key)) {\n this.stickyColumnIndices.push(column.index);\n }\n }\n\n // Pass 2: if there are remaining columns, then distribute the remaining space evenly.\n if (remainingColumns.size > 0) {\n let columnWidth = remainingSpace / (this.collection.columns.length - this.columnWidths.size);\n\n for (let column of remainingColumns) {\n let props = column.props as ColumnProps<T>;\n let minWidth = props.minWidth != null ? this.parseWidth(props.minWidth) : 75;\n let maxWidth = props.maxWidth != null ? this.parseWidth(props.maxWidth) : Infinity;\n let width = Math.floor(Math.max(minWidth, Math.min(maxWidth, columnWidth)));\n\n this.columnWidths.set(column.key, width);\n remainingSpace -= width;\n if (width !== columnWidth) {\n columnWidth = remainingSpace / (this.collection.columns.length - this.columnWidths.size);\n }\n }\n }\n }\n\n parseWidth(width: number | string): number {\n if (typeof width === 'string') {\n let match = width.match(/^(\\d+)%$/);\n if (!match) {\n throw new Error('Only percentages are supported as column widths');\n }\n\n return this.virtualizer.visibleRect.width * (parseInt(match[1], 10) / 100);\n }\n\n return width;\n }\n\n buildHeader(): LayoutNode {\n let rect = new Rect(0, 0, 0, 0);\n let layoutInfo = new LayoutInfo('header', 'header', rect);\n\n let y = 0;\n let width = 0;\n let children: LayoutNode[] = [];\n for (let headerRow of this.collection.headerRows) {\n let layoutNode = this.buildChild(headerRow, 0, y);\n layoutNode.layoutInfo.parentKey = 'header';\n y = layoutNode.layoutInfo.rect.maxY;\n width = Math.max(width, layoutNode.layoutInfo.rect.width);\n children.push(layoutNode);\n }\n\n rect.width = width;\n rect.height = y;\n\n this.layoutInfos.set('header', layoutInfo);\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildHeaderRow(headerRow: GridNode<T>, x: number, y: number) {\n let rect = new Rect(0, y, 0, 0);\n let row = new LayoutInfo('headerrow', headerRow.key, rect);\n\n let height = 0;\n let columns: LayoutNode[] = [];\n for (let cell of headerRow.childNodes) {\n let layoutNode = this.buildChild(cell, x, y);\n layoutNode.layoutInfo.parentKey = row.key;\n x = layoutNode.layoutInfo.rect.maxX;\n height = Math.max(height, layoutNode.layoutInfo.rect.height);\n columns.push(layoutNode);\n }\n\n this.setChildHeights(columns, height);\n\n rect.height = height;\n rect.width = x;\n\n return {\n layoutInfo: row,\n children: columns\n };\n }\n\n setChildHeights(children: LayoutNode[], height: number) {\n for (let child of children) {\n if (child.layoutInfo.rect.height !== height) {\n // Need to copy the layout info before we mutate it.\n child.layoutInfo = child.layoutInfo.copy();\n this.layoutInfos.set(child.layoutInfo.key, child.layoutInfo);\n\n child.layoutInfo.rect.height = height;\n }\n }\n }\n\n getColumnWidth(node: GridNode<T>) {\n let colspan = node.colspan ?? 1;\n let width = 0;\n for (let i = 0; i < colspan; i++) {\n let column = this.collection.columns[node.index + i];\n width += this.columnWidths.get(column.key);\n }\n\n return width;\n }\n\n getEstimatedHeight(node: GridNode<T>, width: number, height: number, estimatedHeight: number) {\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (height == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode) {\n let curNode = this.collection.getItem(node.key);\n let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;\n height = previousLayoutNode.layoutInfo.rect.height;\n isEstimated = curNode !== lastNode || width !== previousLayoutNode.layoutInfo.rect.width || previousLayoutNode.layoutInfo.estimatedSize;\n } else {\n height = estimatedHeight;\n isEstimated = true;\n }\n }\n\n return {height, isEstimated};\n }\n\n buildColumn(node: GridNode<T>, x: number, y: number): LayoutNode {\n let width = this.getColumnWidth(node);\n let {height, isEstimated} = this.getEstimatedHeight(node, width, this.headingHeight, this.estimatedHeadingHeight);\n let rect = new Rect(x, y, width, height);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n layoutInfo.isSticky = node.props?.isSelectionCell;\n layoutInfo.zIndex = layoutInfo.isSticky ? 2 : 1;\n layoutInfo.estimatedSize = isEstimated;\n\n return {\n layoutInfo\n };\n }\n\n buildBody(y: number): LayoutNode {\n let rect = new Rect(0, y, 0, 0);\n let layoutInfo = new LayoutInfo('rowgroup', 'body', rect);\n\n let startY = y;\n let width = 0;\n let children: LayoutNode[] = [];\n for (let node of this.collection.body.childNodes) {\n let layoutNode = this.buildChild(node, 0, y);\n layoutNode.layoutInfo.parentKey = 'body';\n y = layoutNode.layoutInfo.rect.maxY;\n width = Math.max(width, layoutNode.layoutInfo.rect.width);\n children.push(layoutNode);\n }\n\n if (this.isLoading) {\n let rect = new Rect(0, y, width || this.virtualizer.visibleRect.width, children.length === 0 ? this.virtualizer.visibleRect.height : 60);\n let loader = new LayoutInfo('loader', 'loader', rect);\n loader.parentKey = 'body';\n loader.isSticky = children.length === 0;\n this.layoutInfos.set('loader', loader);\n children.push({layoutInfo: loader});\n y = loader.rect.maxY;\n width = Math.max(width, rect.width);\n } else if (children.length === 0) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width, this.virtualizer.visibleRect.height);\n let empty = new LayoutInfo('empty', 'empty', rect);\n empty.parentKey = 'body';\n empty.isSticky = true;\n this.layoutInfos.set('empty', empty);\n children.push({layoutInfo: empty});\n y = empty.rect.maxY;\n width = Math.max(width, rect.width);\n }\n\n rect.width = width;\n rect.height = y - startY;\n\n this.layoutInfos.set('body', layoutInfo);\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildNode(node: GridNode<T>, x: number, y: number): LayoutNode {\n switch (node.type) {\n case 'headerrow':\n return this.buildHeaderRow(node, x, y);\n case 'item':\n return this.buildRow(node, x, y);\n case 'column':\n case 'placeholder':\n return this.buildColumn(node, x, y);\n case 'cell':\n return this.buildCell(node, x, y);\n default:\n throw new Error('Unknown node type ' + node.type);\n }\n }\n\n buildRow(node: GridNode<T>, x: number, y: number): LayoutNode {\n let rect = new Rect(x, y, 0, 0);\n let layoutInfo = new LayoutInfo('row', node.key, rect);\n\n let children: LayoutNode[] = [];\n let height = 0;\n for (let child of node.childNodes) {\n let layoutNode = this.buildChild(child, x, y);\n x = layoutNode.layoutInfo.rect.maxX;\n height = Math.max(height, layoutNode.layoutInfo.rect.height);\n children.push(layoutNode);\n }\n\n this.setChildHeights(children, height);\n\n rect.width = x;\n rect.height = height + 1; // +1 for bottom border\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildCell(node: GridNode<T>, x: number, y: number): LayoutNode {\n let width = this.getColumnWidth(node);\n let {height, isEstimated} = this.getEstimatedHeight(node, width, this.rowHeight, this.estimatedRowHeight);\n let rect = new Rect(x, y, width, height);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n layoutInfo.isSticky = node.props?.isSelectionCell;\n layoutInfo.zIndex = layoutInfo.isSticky ? 2 : 1;\n layoutInfo.estimatedSize = isEstimated;\n\n return {\n layoutInfo\n };\n }\n\n getVisibleLayoutInfos(rect: Rect) {\n let res: LayoutInfo[] = [];\n\n for (let node of this.rootNodes) {\n res.push(node.layoutInfo);\n this.addVisibleLayoutInfos(res, node, rect);\n }\n\n return res;\n }\n\n addVisibleLayoutInfos(res: LayoutInfo[], node: LayoutNode, rect: Rect) {\n if (!node.children || node.children.length === 0) {\n return;\n }\n\n switch (node.layoutInfo.type) {\n case 'header': {\n for (let child of node.children) {\n res.push(child.layoutInfo);\n this.addVisibleLayoutInfos(res, child, rect);\n }\n break;\n }\n case 'rowgroup': {\n let firstVisibleRow = this.binarySearch(node.children, rect.topLeft, 'y');\n let lastVisibleRow = this.binarySearch(node.children, rect.bottomRight, 'y');\n for (let i = firstVisibleRow; i <= lastVisibleRow; i++) {\n res.push(node.children[i].layoutInfo);\n this.addVisibleLayoutInfos(res, node.children[i], rect);\n }\n break;\n }\n case 'headerrow':\n case 'row': {\n let firstVisibleCell = this.binarySearch(node.children, rect.topLeft, 'x');\n let lastVisibleCell = this.binarySearch(node.children, rect.topRight, 'x');\n let stickyIndex = 0;\n for (let i = firstVisibleCell; i <= lastVisibleCell; i++) {\n // Sticky columns and row headers are always in the DOM. Interleave these\n // with the visible range so that they are in the right order.\n if (stickyIndex < this.stickyColumnIndices.length) {\n let idx = this.stickyColumnIndices[stickyIndex];\n while (idx < i) {\n res.push(node.children[idx].layoutInfo);\n idx = this.stickyColumnIndices[stickyIndex++];\n }\n }\n\n res.push(node.children[i].layoutInfo);\n }\n\n while (stickyIndex < this.stickyColumnIndices.length) {\n let idx = this.stickyColumnIndices[stickyIndex++];\n res.push(node.children[idx].layoutInfo);\n }\n break;\n }\n default:\n throw new Error('Unknown node type ' + node.layoutInfo.type);\n }\n }\n\n binarySearch(items: LayoutNode[], point: Point, axis: 'x' | 'y') {\n let low = 0;\n let high = items.length - 1;\n while (low <= high) {\n let mid = (low + high) >> 1;\n let item = items[mid];\n\n if ((axis === 'x' && item.layoutInfo.rect.maxX < point.x) || (axis === 'y' && item.layoutInfo.rect.maxY < point.y)) {\n low = mid + 1;\n } else if ((axis === 'x' && item.layoutInfo.rect.x > point.x) || (axis === 'y' && item.layoutInfo.rect.y > point.y)) {\n high = mid - 1;\n } else {\n return mid;\n }\n }\n\n return Math.max(0, Math.min(items.length - 1, low));\n }\n\n getInitialLayoutInfo(layoutInfo: LayoutInfo) {\n let res = super.getInitialLayoutInfo(layoutInfo);\n\n // If this insert was the result of async loading, remove the zoom effect and just keep the fade in.\n if (this.wasLoading) {\n res.transform = null;\n }\n\n return res;\n }\n}\n"],"names":[],"version":3,"file":"module.js.map"}
1
+ {"mappings":"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","sources":["packages/@react-stately/layout/src/index.ts","packages/@react-stately/layout/src/ListLayout.ts","packages/@react-stately/layout/src/TableLayout.ts","packages/@react-stately/layout/src/TableLayout_DEPRECATED.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 './ListLayout';\nexport * from './TableLayout';\nexport * from './TableLayout_DEPRECATED';\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 {Collection, KeyboardDelegate, Node} from '@react-types/shared';\nimport {InvalidationContext, Layout, LayoutInfo, Rect, Size} from '@react-stately/virtualizer';\nimport {Key} from 'react';\n// import { DragTarget, DropTarget, DropPosition } from '@react-types/shared';\n\nexport type ListLayoutOptions<T> = {\n /** The height of a row in px. */\n rowHeight?: number,\n estimatedRowHeight?: number,\n headingHeight?: number,\n estimatedHeadingHeight?: number,\n padding?: number,\n indentationForItem?: (collection: Collection<Node<T>>, key: Key) => number,\n collator?: Intl.Collator,\n loaderHeight?: number,\n placeholderHeight?: number,\n allowDisabledKeyFocus?: boolean\n};\n\n// A wrapper around LayoutInfo that supports hierarchy\nexport interface LayoutNode {\n node?: Node<unknown>,\n layoutInfo: LayoutInfo,\n header?: LayoutInfo,\n children?: LayoutNode[]\n}\n\nconst DEFAULT_HEIGHT = 48;\n\n/**\n * The ListLayout class is an implementation of a collection view {@link Layout}\n * it is used for creating lists and lists with indented sub-lists.\n *\n * To configure a ListLayout, you can use the properties to define the\n * layouts and/or use the method for defining indentation.\n * The {@link ListKeyboardDelegate} extends the existing collection view\n * delegate with an additional method to do this (it uses the same delegate object as\n * the collection view itself).\n */\nexport class ListLayout<T> extends Layout<Node<T>> implements KeyboardDelegate {\n protected rowHeight: number;\n protected estimatedRowHeight: number;\n protected headingHeight: number;\n protected estimatedHeadingHeight: number;\n protected padding: number;\n protected indentationForItem?: (collection: Collection<Node<T>>, key: Key) => number;\n protected layoutInfos: Map<Key, LayoutInfo>;\n protected layoutNodes: Map<Key, LayoutNode>;\n protected contentSize: Size;\n collection: Collection<Node<T>>;\n disabledKeys: Set<Key> = new Set();\n allowDisabledKeyFocus: boolean = false;\n isLoading: boolean;\n protected lastWidth: number;\n protected lastCollection: Collection<Node<T>>;\n protected rootNodes: LayoutNode[];\n protected collator: Intl.Collator;\n protected invalidateEverything: boolean;\n protected loaderHeight: number;\n protected placeholderHeight: number;\n\n /**\n * Creates a new ListLayout with options. See the list of properties below for a description\n * of the options that can be provided.\n */\n constructor(options: ListLayoutOptions<T> = {}) {\n super();\n this.rowHeight = options.rowHeight;\n this.estimatedRowHeight = options.estimatedRowHeight;\n this.headingHeight = options.headingHeight;\n this.estimatedHeadingHeight = options.estimatedHeadingHeight;\n this.padding = options.padding || 0;\n this.indentationForItem = options.indentationForItem;\n this.collator = options.collator;\n this.loaderHeight = options.loaderHeight;\n this.placeholderHeight = options.placeholderHeight;\n this.layoutInfos = new Map();\n this.layoutNodes = new Map();\n this.rootNodes = [];\n this.lastWidth = 0;\n this.lastCollection = null;\n this.allowDisabledKeyFocus = options.allowDisabledKeyFocus;\n }\n\n getLayoutInfo(key: Key) {\n return this.layoutInfos.get(key);\n }\n\n getVisibleLayoutInfos(rect: Rect) {\n let res: LayoutInfo[] = [];\n\n let addNodes = (nodes: LayoutNode[]) => {\n for (let node of nodes) {\n if (this.isVisible(node, rect)) {\n res.push(node.layoutInfo);\n if (node.header) {\n res.push(node.header);\n }\n\n if (node.children) {\n addNodes(node.children);\n }\n }\n }\n };\n\n addNodes(this.rootNodes);\n return res;\n }\n\n isVisible(node: LayoutNode, rect: Rect) {\n return node.layoutInfo.rect.intersects(rect) || node.layoutInfo.isSticky;\n }\n\n validate(invalidationContext: InvalidationContext<Node<T>, unknown>) {\n // Invalidate cache if the size of the collection changed.\n // In this case, we need to recalculate the entire layout.\n this.invalidateEverything = invalidationContext.sizeChanged;\n\n this.collection = this.virtualizer.collection;\n this.rootNodes = this.buildCollection();\n\n // Remove deleted layout nodes\n if (this.lastCollection) {\n for (let key of this.lastCollection.getKeys()) {\n if (!this.collection.getItem(key)) {\n let layoutNode = this.layoutNodes.get(key);\n if (layoutNode) {\n this.layoutInfos.delete(layoutNode.layoutInfo.key);\n this.layoutInfos.delete(layoutNode.header?.key);\n this.layoutNodes.delete(key);\n }\n }\n }\n }\n\n this.lastWidth = this.virtualizer.visibleRect.width;\n this.lastCollection = this.collection;\n }\n\n buildCollection(): LayoutNode[] {\n let y = this.padding;\n let nodes = [];\n for (let node of this.collection) {\n let layoutNode = this.buildChild(node, 0, y);\n y = layoutNode.layoutInfo.rect.maxY;\n nodes.push(layoutNode);\n }\n\n if (this.isLoading) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width,\n this.loaderHeight ?? this.virtualizer.visibleRect.height);\n let loader = new LayoutInfo('loader', 'loader', rect);\n this.layoutInfos.set('loader', loader);\n nodes.push({layoutInfo: loader});\n y = loader.rect.maxY;\n }\n\n if (nodes.length === 0) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width,\n this.placeholderHeight ?? this.virtualizer.visibleRect.height);\n let placeholder = new LayoutInfo('placeholder', 'placeholder', rect);\n this.layoutInfos.set('placeholder', placeholder);\n nodes.push({layoutInfo: placeholder});\n y = placeholder.rect.maxY;\n }\n\n this.contentSize = new Size(this.virtualizer.visibleRect.width, y + this.padding);\n return nodes;\n }\n\n buildChild(node: Node<T>, x: number, y: number): LayoutNode {\n let cached = this.layoutNodes.get(node.key);\n if (!this.invalidateEverything && cached && cached.node === node && y === (cached.header || cached.layoutInfo).rect.y) {\n return cached;\n }\n\n let layoutNode = this.buildNode(node, x, y);\n layoutNode.node = node;\n\n layoutNode.layoutInfo.parentKey = node.parentKey ?? null;\n this.layoutInfos.set(layoutNode.layoutInfo.key, layoutNode.layoutInfo);\n if (layoutNode.header) {\n this.layoutInfos.set(layoutNode.header.key, layoutNode.header);\n }\n\n this.layoutNodes.set(node.key, layoutNode);\n return layoutNode;\n }\n\n buildNode(node: Node<T>, x: number, y: number): LayoutNode {\n switch (node.type) {\n case 'section':\n return this.buildSection(node, x, y);\n case 'item':\n return this.buildItem(node, x, y);\n }\n }\n\n buildSection(node: Node<T>, x: number, y: number): LayoutNode {\n let width = this.virtualizer.visibleRect.width;\n let rectHeight = this.headingHeight;\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (rectHeight == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode && previousLayoutNode.header) {\n let curNode = this.collection.getItem(node.key);\n let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;\n rectHeight = previousLayoutNode.header.rect.height;\n isEstimated = width !== this.lastWidth || curNode !== lastNode || previousLayoutNode.header.estimatedSize;\n } else {\n rectHeight = (node.rendered ? this.estimatedHeadingHeight : 0);\n isEstimated = true;\n }\n }\n\n if (rectHeight == null) {\n rectHeight = DEFAULT_HEIGHT;\n }\n\n let headerRect = new Rect(0, y, width, rectHeight);\n let header = new LayoutInfo('header', node.key + ':header', headerRect);\n header.estimatedSize = isEstimated;\n header.parentKey = node.key;\n y += header.rect.height;\n\n let rect = new Rect(0, y, width, 0);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n\n let startY = y;\n let children = [];\n for (let child of node.childNodes) {\n let layoutNode = this.buildChild(child, x, y);\n y = layoutNode.layoutInfo.rect.maxY;\n children.push(layoutNode);\n }\n\n rect.height = y - startY;\n\n return {\n header,\n layoutInfo,\n children\n };\n }\n\n buildItem(node: Node<T>, x: number, y: number): LayoutNode {\n let width = this.virtualizer.visibleRect.width;\n let rectHeight = this.rowHeight;\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (rectHeight == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode) {\n let curNode = this.collection.getItem(node.key);\n let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;\n rectHeight = previousLayoutNode.layoutInfo.rect.height;\n isEstimated = width !== this.lastWidth || curNode !== lastNode || previousLayoutNode.layoutInfo.estimatedSize;\n } else {\n rectHeight = this.estimatedRowHeight;\n isEstimated = true;\n }\n }\n\n if (rectHeight == null) {\n rectHeight = DEFAULT_HEIGHT;\n }\n\n if (typeof this.indentationForItem === 'function') {\n x += this.indentationForItem(this.collection, node.key) || 0;\n }\n\n let rect = new Rect(x, y, width - x, rectHeight);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n layoutInfo.estimatedSize = isEstimated;\n return {\n layoutInfo\n };\n }\n\n updateItemSize(key: Key, size: Size) {\n let layoutInfo = this.layoutInfos.get(key);\n // If no layoutInfo, item has been deleted/removed.\n if (!layoutInfo) {\n return false;\n }\n\n layoutInfo.estimatedSize = false;\n if (layoutInfo.rect.height !== size.height) {\n // Copy layout info rather than mutating so that later caches are invalidated.\n let newLayoutInfo = layoutInfo.copy();\n newLayoutInfo.rect.height = size.height;\n this.layoutInfos.set(key, newLayoutInfo);\n\n // Invalidate layout for this layout node and all parents\n this.updateLayoutNode(key, layoutInfo, newLayoutInfo);\n\n let node = this.collection.getItem(layoutInfo.parentKey);\n while (node) {\n this.updateLayoutNode(node.key, layoutInfo, newLayoutInfo);\n node = this.collection.getItem(node.parentKey);\n }\n\n return true;\n }\n\n return false;\n }\n\n updateLayoutNode(key: Key, oldLayoutInfo: LayoutInfo, newLayoutInfo: LayoutInfo) {\n let n = this.layoutNodes.get(key);\n if (n) {\n // Invalidate by clearing node.\n n.node = null;\n\n // Replace layout info in LayoutNode\n if (n.header === oldLayoutInfo) {\n n.header = newLayoutInfo;\n } else if (n.layoutInfo === oldLayoutInfo) {\n n.layoutInfo = newLayoutInfo;\n }\n }\n }\n\n getContentSize() {\n return this.contentSize;\n }\n\n getKeyAbove(key: Key) {\n let collection = this.collection;\n\n key = collection.getKeyBefore(key);\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyBefore(key);\n }\n }\n\n getKeyBelow(key: Key) {\n let collection = this.collection;\n\n key = collection.getKeyAfter(key);\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyAfter(key);\n }\n }\n\n getKeyLeftOf(key: Key): Key {\n return key;\n }\n\n getKeyRightOf(key: Key): Key {\n return key;\n }\n\n getKeyPageAbove(key: Key) {\n let layoutInfo = this.getLayoutInfo(key);\n\n if (layoutInfo) {\n let pageY = Math.max(0, layoutInfo.rect.y + layoutInfo.rect.height - this.virtualizer.visibleRect.height);\n while (layoutInfo && layoutInfo.rect.y > pageY) {\n let keyAbove = this.getKeyAbove(layoutInfo.key);\n layoutInfo = this.getLayoutInfo(keyAbove);\n }\n\n if (layoutInfo) {\n return layoutInfo.key;\n }\n }\n\n return this.getFirstKey();\n }\n\n getKeyPageBelow(key: Key) {\n let layoutInfo = this.getLayoutInfo(key != null ? key : this.getFirstKey());\n\n if (layoutInfo) {\n let pageY = Math.min(this.virtualizer.contentSize.height, layoutInfo.rect.y - layoutInfo.rect.height + this.virtualizer.visibleRect.height);\n while (layoutInfo && layoutInfo.rect.y < pageY) {\n let keyBelow = this.getKeyBelow(layoutInfo.key);\n layoutInfo = this.getLayoutInfo(keyBelow);\n }\n\n if (layoutInfo) {\n return layoutInfo.key;\n }\n }\n\n return this.getLastKey();\n }\n\n getFirstKey() {\n let collection = this.collection;\n let key = collection.getFirstKey();\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyAfter(key);\n }\n }\n\n getLastKey() {\n let collection = this.collection;\n let key = collection.getLastKey();\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyBefore(key);\n }\n }\n\n getKeyForSearch(search: string, fromKey?: Key) {\n if (!this.collator) {\n return null;\n }\n\n let collection = this.collection;\n let key = fromKey || this.getFirstKey();\n while (key != null) {\n let item = collection.getItem(key);\n let substring = item.textValue.slice(0, search.length);\n if (item.textValue && this.collator.compare(substring, search) === 0) {\n return key;\n }\n\n key = this.getKeyBelow(key);\n }\n\n return null;\n }\n\n // getDragTarget(point: Point): DragTarget {\n // let visible = this.getVisibleLayoutInfos(new Rect(point.x, point.y, 1, 1));\n // if (visible.length > 0) {\n // visible = visible.sort((a, b) => b.zIndex - a.zIndex);\n // return {\n // type: 'item',\n // key: visible[0].key\n // };\n // }\n\n // return null;\n // }\n\n // getDropTarget(point: Point): DropTarget {\n // let key = this.virtualizer.keyAtPoint(point);\n // if (key) {\n // return {\n // type: 'item',\n // key,\n // dropPosition: DropPosition.ON\n // };\n // }\n\n // return null;\n // }\n\n getInitialLayoutInfo(layoutInfo: LayoutInfo) {\n layoutInfo.opacity = 0;\n layoutInfo.transform = 'scale3d(0.8, 0.8, 0.8)';\n return layoutInfo;\n }\n\n getFinalLayoutInfo(layoutInfo: LayoutInfo) {\n layoutInfo.opacity = 0;\n layoutInfo.transform = 'scale3d(0.8, 0.8, 0.8)';\n return layoutInfo;\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 {GridNode} from '@react-types/grid';\nimport {Key} from 'react';\nimport {LayoutInfo, Point, Rect, Size} from '@react-stately/virtualizer';\nimport {LayoutNode, ListLayout, ListLayoutOptions} from './ListLayout';\nimport {TableCollection} from '@react-types/table';\n\n\nexport class TableLayout<T> extends ListLayout<T> {\n collection: TableCollection<T>;\n lastCollection: TableCollection<T>;\n getColumnWidth: (key: Key) => number;\n stickyColumnIndices: number[];\n wasLoading = false;\n isLoading = false;\n\n constructor(options: ListLayoutOptions<T>) {\n super(options);\n this.stickyColumnIndices = [];\n }\n\n\n buildCollection(): LayoutNode[] {\n // If columns changed, clear layout cache.\n if (\n !this.lastCollection ||\n this.collection.columns.length !== this.lastCollection.columns.length ||\n this.collection.columns.some((c, i) => c.key !== this.lastCollection.columns[i].key)\n ) {\n // Invalidate everything in this layout pass. Will be reset in ListLayout on the next pass.\n this.invalidateEverything = true;\n }\n\n // Track whether we were previously loading. This is used to adjust the animations of async loading vs inserts.\n let loadingState = this.collection.body.props.loadingState;\n this.wasLoading = this.isLoading;\n this.isLoading = loadingState === 'loading' || loadingState === 'loadingMore';\n\n let header = this.buildHeader();\n let body = this.buildBody(0);\n this.stickyColumnIndices = this.collection.columns.filter(c => c.props.isSelectionCell || this.collection.rowHeaderColumnKeys.has(c.key)).map(c => c.index);\n\n body.layoutInfo.rect.width = Math.max(header.layoutInfo.rect.width, body.layoutInfo.rect.width);\n this.contentSize = new Size(body.layoutInfo.rect.width, body.layoutInfo.rect.maxY);\n return [\n header,\n body\n ];\n }\n\n buildHeader(): LayoutNode {\n let rect = new Rect(0, 0, 0, 0);\n let layoutInfo = new LayoutInfo('header', 'header', rect);\n\n let y = 0;\n let width = 0;\n let children: LayoutNode[] = [];\n for (let headerRow of this.collection.headerRows) {\n let layoutNode = this.buildChild(headerRow, 0, y);\n layoutNode.layoutInfo.parentKey = 'header';\n y = layoutNode.layoutInfo.rect.maxY;\n width = Math.max(width, layoutNode.layoutInfo.rect.width);\n children.push(layoutNode);\n }\n\n rect.width = width;\n rect.height = y;\n\n this.layoutInfos.set('header', layoutInfo);\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildHeaderRow(headerRow: GridNode<T>, x: number, y: number) {\n let rect = new Rect(0, y, 0, 0);\n let row = new LayoutInfo('headerrow', headerRow.key, rect);\n\n let height = 0;\n let columns: LayoutNode[] = [];\n for (let cell of headerRow.childNodes) {\n let layoutNode = this.buildChild(cell, x, y);\n layoutNode.layoutInfo.parentKey = row.key;\n x = layoutNode.layoutInfo.rect.maxX;\n height = Math.max(height, layoutNode.layoutInfo.rect.height);\n columns.push(layoutNode);\n }\n\n this.setChildHeights(columns, height);\n\n rect.height = height;\n rect.width = x;\n\n return {\n layoutInfo: row,\n children: columns\n };\n }\n\n setChildHeights(children: LayoutNode[], height: number) {\n for (let child of children) {\n if (child.layoutInfo.rect.height !== height) {\n // Need to copy the layout info before we mutate it.\n child.layoutInfo = child.layoutInfo.copy();\n this.layoutInfos.set(child.layoutInfo.key, child.layoutInfo);\n\n child.layoutInfo.rect.height = height;\n }\n }\n }\n\n // used to get the column widths when rendering to the DOM\n getColumnWidth_(node: GridNode<T>) {\n let colspan = node.colspan ?? 1;\n let width = 0;\n for (let i = node.index; i < node.index + colspan; i++) {\n let column = this.collection.columns[i];\n width += this.getColumnWidth(column.key);\n }\n\n return width;\n }\n\n getEstimatedHeight(node: GridNode<T>, width: number, height: number, estimatedHeight: number) {\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (height == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode) {\n let curNode = this.collection.getItem(node.key);\n let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;\n height = previousLayoutNode.layoutInfo.rect.height;\n isEstimated = curNode !== lastNode || width !== previousLayoutNode.layoutInfo.rect.width || previousLayoutNode.layoutInfo.estimatedSize;\n } else {\n height = estimatedHeight;\n isEstimated = true;\n }\n }\n\n return {height, isEstimated};\n }\n\n buildColumn(node: GridNode<T>, x: number, y: number): LayoutNode {\n let width = this.getColumnWidth_(node);\n let {height, isEstimated} = this.getEstimatedHeight(node, width, this.headingHeight, this.estimatedHeadingHeight);\n let rect = new Rect(x, y, width, height);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n layoutInfo.isSticky = node.props?.isSelectionCell;\n layoutInfo.zIndex = layoutInfo.isSticky ? 2 : 1;\n layoutInfo.estimatedSize = isEstimated;\n\n return {\n layoutInfo\n };\n }\n\n buildBody(y: number): LayoutNode {\n let rect = new Rect(0, y, 0, 0);\n let layoutInfo = new LayoutInfo('rowgroup', 'body', rect);\n\n let startY = y;\n let width = 0;\n let children: LayoutNode[] = [];\n for (let node of this.collection.body.childNodes) {\n let layoutNode = this.buildChild(node, 0, y);\n layoutNode.layoutInfo.parentKey = 'body';\n y = layoutNode.layoutInfo.rect.maxY;\n width = Math.max(width, layoutNode.layoutInfo.rect.width);\n children.push(layoutNode);\n }\n\n if (this.isLoading) {\n let rect = new Rect(0, y, width || this.virtualizer.visibleRect.width, children.length === 0 ? this.virtualizer.visibleRect.height : 60);\n let loader = new LayoutInfo('loader', 'loader', rect);\n loader.parentKey = 'body';\n loader.isSticky = children.length === 0;\n this.layoutInfos.set('loader', loader);\n children.push({layoutInfo: loader});\n y = loader.rect.maxY;\n width = Math.max(width, rect.width);\n } else if (children.length === 0) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width, this.virtualizer.visibleRect.height);\n let empty = new LayoutInfo('empty', 'empty', rect);\n empty.parentKey = 'body';\n empty.isSticky = true;\n this.layoutInfos.set('empty', empty);\n children.push({layoutInfo: empty});\n y = empty.rect.maxY;\n width = Math.max(width, rect.width);\n }\n\n rect.width = width;\n rect.height = y - startY;\n\n this.layoutInfos.set('body', layoutInfo);\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildNode(node: GridNode<T>, x: number, y: number): LayoutNode {\n switch (node.type) {\n case 'headerrow':\n return this.buildHeaderRow(node, x, y);\n case 'item':\n return this.buildRow(node, x, y);\n case 'column':\n case 'placeholder':\n return this.buildColumn(node, x, y);\n case 'cell':\n return this.buildCell(node, x, y);\n default:\n throw new Error('Unknown node type ' + node.type);\n }\n }\n\n buildRow(node: GridNode<T>, x: number, y: number): LayoutNode {\n let rect = new Rect(x, y, 0, 0);\n let layoutInfo = new LayoutInfo('row', node.key, rect);\n\n let children: LayoutNode[] = [];\n let height = 0;\n for (let child of node.childNodes) {\n let layoutNode = this.buildChild(child, x, y);\n x = layoutNode.layoutInfo.rect.maxX;\n height = Math.max(height, layoutNode.layoutInfo.rect.height);\n children.push(layoutNode);\n }\n\n this.setChildHeights(children, height);\n\n rect.width = x;\n rect.height = height + 1; // +1 for bottom border\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildCell(node: GridNode<T>, x: number, y: number): LayoutNode {\n let width = this.getColumnWidth_(node);\n let {height, isEstimated} = this.getEstimatedHeight(node, width, this.rowHeight, this.estimatedRowHeight);\n let rect = new Rect(x, y, width, height);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n layoutInfo.isSticky = node.props?.isSelectionCell;\n layoutInfo.zIndex = layoutInfo.isSticky ? 2 : 1;\n layoutInfo.estimatedSize = isEstimated;\n\n return {\n layoutInfo\n };\n }\n\n getVisibleLayoutInfos(rect: Rect) {\n let res: LayoutInfo[] = [];\n\n for (let node of this.rootNodes) {\n res.push(node.layoutInfo);\n this.addVisibleLayoutInfos(res, node, rect);\n }\n\n return res;\n }\n\n addVisibleLayoutInfos(res: LayoutInfo[], node: LayoutNode, rect: Rect) {\n if (!node.children || node.children.length === 0) {\n return;\n }\n\n switch (node.layoutInfo.type) {\n case 'header': {\n for (let child of node.children) {\n res.push(child.layoutInfo);\n this.addVisibleLayoutInfos(res, child, rect);\n }\n break;\n }\n case 'rowgroup': {\n let firstVisibleRow = this.binarySearch(node.children, rect.topLeft, 'y');\n let lastVisibleRow = this.binarySearch(node.children, rect.bottomRight, 'y');\n for (let i = firstVisibleRow; i <= lastVisibleRow; i++) {\n res.push(node.children[i].layoutInfo);\n this.addVisibleLayoutInfos(res, node.children[i], rect);\n }\n break;\n }\n case 'headerrow':\n case 'row': {\n let firstVisibleCell = this.binarySearch(node.children, rect.topLeft, 'x');\n let lastVisibleCell = this.binarySearch(node.children, rect.topRight, 'x');\n let stickyIndex = 0;\n for (let i = firstVisibleCell; i <= lastVisibleCell; i++) {\n // Sticky columns and row headers are always in the DOM. Interleave these\n // with the visible range so that they are in the right order.\n if (stickyIndex < this.stickyColumnIndices.length) {\n let idx = this.stickyColumnIndices[stickyIndex];\n while (idx < i) {\n res.push(node.children[idx].layoutInfo);\n idx = this.stickyColumnIndices[stickyIndex++];\n }\n }\n\n res.push(node.children[i].layoutInfo);\n }\n\n while (stickyIndex < this.stickyColumnIndices.length) {\n let idx = this.stickyColumnIndices[stickyIndex++];\n res.push(node.children[idx].layoutInfo);\n }\n break;\n }\n default:\n throw new Error('Unknown node type ' + node.layoutInfo.type);\n }\n }\n\n binarySearch(items: LayoutNode[], point: Point, axis: 'x' | 'y') {\n let low = 0;\n let high = items.length - 1;\n while (low <= high) {\n let mid = (low + high) >> 1;\n let item = items[mid];\n\n if ((axis === 'x' && item.layoutInfo.rect.maxX < point.x) || (axis === 'y' && item.layoutInfo.rect.maxY < point.y)) {\n low = mid + 1;\n } else if ((axis === 'x' && item.layoutInfo.rect.x > point.x) || (axis === 'y' && item.layoutInfo.rect.y > point.y)) {\n high = mid - 1;\n } else {\n return mid;\n }\n }\n\n return Math.max(0, Math.min(items.length - 1, low));\n }\n\n getInitialLayoutInfo(layoutInfo: LayoutInfo) {\n let res = super.getInitialLayoutInfo(layoutInfo);\n\n // If this insert was the result of async loading, remove the zoom effect and just keep the fade in.\n if (this.wasLoading) {\n res.transform = null;\n }\n\n return res;\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 {ColumnProps, TableCollection} from '@react-types/table';\nimport {GridNode} from '@react-types/grid';\nimport {Key} from 'react';\nimport {LayoutInfo, Point, Rect, Size} from '@react-stately/virtualizer';\nimport {LayoutNode, ListLayout, ListLayoutOptions} from './ListLayout';\n\n\ntype TableLayoutOptions<T> = ListLayoutOptions<T> & {\n getDefaultWidth: (props) => string | number\n}\n\nexport class TableLayout_DEPRECATED<T> extends ListLayout<T> {\n collection: TableCollection<T>;\n lastCollection: TableCollection<T>;\n columnWidths: Map<Key, number>;\n stickyColumnIndices: number[];\n getDefaultWidth: (props) => string | number;\n wasLoading = false;\n isLoading = false;\n\n constructor(options: TableLayoutOptions<T>) {\n super(options);\n this.getDefaultWidth = options.getDefaultWidth;\n }\n\n\n buildCollection(): LayoutNode[] {\n // If columns changed, clear layout cache.\n if (\n !this.lastCollection ||\n this.collection.columns.length !== this.lastCollection.columns.length ||\n this.collection.columns.some((c, i) => c.key !== this.lastCollection.columns[i].key)\n ) {\n // Invalidate everything in this layout pass. Will be reset in ListLayout on the next pass.\n this.invalidateEverything = true;\n }\n\n // Track whether we were previously loading. This is used to adjust the animations of async loading vs inserts.\n let loadingState = this.collection.body.props.loadingState;\n this.wasLoading = this.isLoading;\n this.isLoading = loadingState === 'loading' || loadingState === 'loadingMore';\n\n this.buildColumnWidths();\n let header = this.buildHeader();\n let body = this.buildBody(0);\n body.layoutInfo.rect.width = Math.max(header.layoutInfo.rect.width, body.layoutInfo.rect.width);\n this.contentSize = new Size(body.layoutInfo.rect.width, body.layoutInfo.rect.maxY);\n return [\n header,\n body\n ];\n }\n\n buildColumnWidths() {\n this.columnWidths = new Map();\n this.stickyColumnIndices = [];\n\n // Pass 1: set widths for all explicitly defined columns.\n let remainingColumns = new Set<GridNode<T>>();\n let remainingSpace = this.virtualizer.visibleRect.width;\n for (let column of this.collection.columns) {\n let props = column.props as ColumnProps<T>;\n let width = props.width ?? this.getDefaultWidth(props);\n if (width != null) {\n let w = this.parseWidth(width);\n this.columnWidths.set(column.key, w);\n remainingSpace -= w;\n } else {\n remainingColumns.add(column);\n }\n\n // The selection cell and any other sticky columns always need to be visible.\n // In addition, row headers need to be in the DOM for accessibility labeling.\n if (column.props.isSelectionCell || this.collection.rowHeaderColumnKeys.has(column.key)) {\n this.stickyColumnIndices.push(column.index);\n }\n }\n\n // Pass 2: if there are remaining columns, then distribute the remaining space evenly.\n if (remainingColumns.size > 0) {\n let columnWidth = remainingSpace / (this.collection.columns.length - this.columnWidths.size);\n\n for (let column of remainingColumns) {\n let props = column.props as ColumnProps<T>;\n let minWidth = props.minWidth != null ? this.parseWidth(props.minWidth) : 75;\n let maxWidth = props.maxWidth != null ? this.parseWidth(props.maxWidth) : Infinity;\n let width = Math.floor(Math.max(minWidth, Math.min(maxWidth, columnWidth)));\n\n this.columnWidths.set(column.key, width);\n remainingSpace -= width;\n if (width !== columnWidth) {\n columnWidth = remainingSpace / (this.collection.columns.length - this.columnWidths.size);\n }\n }\n }\n }\n\n parseWidth(width: number | string): number {\n if (typeof width === 'string') {\n let match = width.match(/^(\\d+)%$/);\n if (!match) {\n throw new Error('Only percentages are supported as column widths');\n }\n\n return this.virtualizer.visibleRect.width * (parseInt(match[1], 10) / 100);\n }\n\n return width;\n }\n\n buildHeader(): LayoutNode {\n let rect = new Rect(0, 0, 0, 0);\n let layoutInfo = new LayoutInfo('header', 'header', rect);\n\n let y = 0;\n let width = 0;\n let children: LayoutNode[] = [];\n for (let headerRow of this.collection.headerRows) {\n let layoutNode = this.buildChild(headerRow, 0, y);\n layoutNode.layoutInfo.parentKey = 'header';\n y = layoutNode.layoutInfo.rect.maxY;\n width = Math.max(width, layoutNode.layoutInfo.rect.width);\n children.push(layoutNode);\n }\n\n rect.width = width;\n rect.height = y;\n\n this.layoutInfos.set('header', layoutInfo);\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildHeaderRow(headerRow: GridNode<T>, x: number, y: number) {\n let rect = new Rect(0, y, 0, 0);\n let row = new LayoutInfo('headerrow', headerRow.key, rect);\n\n let height = 0;\n let columns: LayoutNode[] = [];\n for (let cell of headerRow.childNodes) {\n let layoutNode = this.buildChild(cell, x, y);\n layoutNode.layoutInfo.parentKey = row.key;\n x = layoutNode.layoutInfo.rect.maxX;\n height = Math.max(height, layoutNode.layoutInfo.rect.height);\n columns.push(layoutNode);\n }\n\n this.setChildHeights(columns, height);\n\n rect.height = height;\n rect.width = x;\n\n return {\n layoutInfo: row,\n children: columns\n };\n }\n\n setChildHeights(children: LayoutNode[], height: number) {\n for (let child of children) {\n if (child.layoutInfo.rect.height !== height) {\n // Need to copy the layout info before we mutate it.\n child.layoutInfo = child.layoutInfo.copy();\n this.layoutInfos.set(child.layoutInfo.key, child.layoutInfo);\n\n child.layoutInfo.rect.height = height;\n }\n }\n }\n\n getColumnWidth(node: GridNode<T>) {\n let colspan = node.colspan ?? 1;\n let width = 0;\n for (let i = 0; i < colspan; i++) {\n let column = this.collection.columns[node.index + i];\n width += this.columnWidths.get(column.key);\n }\n\n return width;\n }\n\n getEstimatedHeight(node: GridNode<T>, width: number, height: number, estimatedHeight: number) {\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (height == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode) {\n let curNode = this.collection.getItem(node.key);\n let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;\n height = previousLayoutNode.layoutInfo.rect.height;\n isEstimated = curNode !== lastNode || width !== previousLayoutNode.layoutInfo.rect.width || previousLayoutNode.layoutInfo.estimatedSize;\n } else {\n height = estimatedHeight;\n isEstimated = true;\n }\n }\n\n return {height, isEstimated};\n }\n\n buildColumn(node: GridNode<T>, x: number, y: number): LayoutNode {\n let width = this.getColumnWidth(node);\n let {height, isEstimated} = this.getEstimatedHeight(node, width, this.headingHeight, this.estimatedHeadingHeight);\n let rect = new Rect(x, y, width, height);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n layoutInfo.isSticky = node.props?.isSelectionCell;\n layoutInfo.zIndex = layoutInfo.isSticky ? 2 : 1;\n layoutInfo.estimatedSize = isEstimated;\n\n return {\n layoutInfo\n };\n }\n\n buildBody(y: number): LayoutNode {\n let rect = new Rect(0, y, 0, 0);\n let layoutInfo = new LayoutInfo('rowgroup', 'body', rect);\n\n let startY = y;\n let width = 0;\n let children: LayoutNode[] = [];\n for (let node of this.collection.body.childNodes) {\n let layoutNode = this.buildChild(node, 0, y);\n layoutNode.layoutInfo.parentKey = 'body';\n y = layoutNode.layoutInfo.rect.maxY;\n width = Math.max(width, layoutNode.layoutInfo.rect.width);\n children.push(layoutNode);\n }\n\n if (this.isLoading) {\n let rect = new Rect(0, y, width || this.virtualizer.visibleRect.width, children.length === 0 ? this.virtualizer.visibleRect.height : 60);\n let loader = new LayoutInfo('loader', 'loader', rect);\n loader.parentKey = 'body';\n loader.isSticky = children.length === 0;\n this.layoutInfos.set('loader', loader);\n children.push({layoutInfo: loader});\n y = loader.rect.maxY;\n width = Math.max(width, rect.width);\n } else if (children.length === 0) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width, this.virtualizer.visibleRect.height);\n let empty = new LayoutInfo('empty', 'empty', rect);\n empty.parentKey = 'body';\n empty.isSticky = true;\n this.layoutInfos.set('empty', empty);\n children.push({layoutInfo: empty});\n y = empty.rect.maxY;\n width = Math.max(width, rect.width);\n }\n\n rect.width = width;\n rect.height = y - startY;\n\n this.layoutInfos.set('body', layoutInfo);\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildNode(node: GridNode<T>, x: number, y: number): LayoutNode {\n switch (node.type) {\n case 'headerrow':\n return this.buildHeaderRow(node, x, y);\n case 'item':\n return this.buildRow(node, x, y);\n case 'column':\n case 'placeholder':\n return this.buildColumn(node, x, y);\n case 'cell':\n return this.buildCell(node, x, y);\n default:\n throw new Error('Unknown node type ' + node.type);\n }\n }\n\n buildRow(node: GridNode<T>, x: number, y: number): LayoutNode {\n let rect = new Rect(x, y, 0, 0);\n let layoutInfo = new LayoutInfo('row', node.key, rect);\n\n let children: LayoutNode[] = [];\n let height = 0;\n for (let child of node.childNodes) {\n let layoutNode = this.buildChild(child, x, y);\n x = layoutNode.layoutInfo.rect.maxX;\n height = Math.max(height, layoutNode.layoutInfo.rect.height);\n children.push(layoutNode);\n }\n\n this.setChildHeights(children, height);\n\n rect.width = x;\n rect.height = height + 1; // +1 for bottom border\n\n return {\n layoutInfo,\n children\n };\n }\n\n buildCell(node: GridNode<T>, x: number, y: number): LayoutNode {\n let width = this.getColumnWidth(node);\n let {height, isEstimated} = this.getEstimatedHeight(node, width, this.rowHeight, this.estimatedRowHeight);\n let rect = new Rect(x, y, width, height);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n layoutInfo.isSticky = node.props?.isSelectionCell;\n layoutInfo.zIndex = layoutInfo.isSticky ? 2 : 1;\n layoutInfo.estimatedSize = isEstimated;\n\n return {\n layoutInfo\n };\n }\n\n getVisibleLayoutInfos(rect: Rect) {\n let res: LayoutInfo[] = [];\n\n for (let node of this.rootNodes) {\n res.push(node.layoutInfo);\n this.addVisibleLayoutInfos(res, node, rect);\n }\n\n return res;\n }\n\n addVisibleLayoutInfos(res: LayoutInfo[], node: LayoutNode, rect: Rect) {\n if (!node.children || node.children.length === 0) {\n return;\n }\n\n switch (node.layoutInfo.type) {\n case 'header': {\n for (let child of node.children) {\n res.push(child.layoutInfo);\n this.addVisibleLayoutInfos(res, child, rect);\n }\n break;\n }\n case 'rowgroup': {\n let firstVisibleRow = this.binarySearch(node.children, rect.topLeft, 'y');\n let lastVisibleRow = this.binarySearch(node.children, rect.bottomRight, 'y');\n for (let i = firstVisibleRow; i <= lastVisibleRow; i++) {\n res.push(node.children[i].layoutInfo);\n this.addVisibleLayoutInfos(res, node.children[i], rect);\n }\n break;\n }\n case 'headerrow':\n case 'row': {\n let firstVisibleCell = this.binarySearch(node.children, rect.topLeft, 'x');\n let lastVisibleCell = this.binarySearch(node.children, rect.topRight, 'x');\n let stickyIndex = 0;\n for (let i = firstVisibleCell; i <= lastVisibleCell; i++) {\n // Sticky columns and row headers are always in the DOM. Interleave these\n // with the visible range so that they are in the right order.\n if (stickyIndex < this.stickyColumnIndices.length) {\n let idx = this.stickyColumnIndices[stickyIndex];\n while (idx < i) {\n res.push(node.children[idx].layoutInfo);\n idx = this.stickyColumnIndices[stickyIndex++];\n }\n }\n\n res.push(node.children[i].layoutInfo);\n }\n\n while (stickyIndex < this.stickyColumnIndices.length) {\n let idx = this.stickyColumnIndices[stickyIndex++];\n res.push(node.children[idx].layoutInfo);\n }\n break;\n }\n default:\n throw new Error('Unknown node type ' + node.layoutInfo.type);\n }\n }\n\n binarySearch(items: LayoutNode[], point: Point, axis: 'x' | 'y') {\n let low = 0;\n let high = items.length - 1;\n while (low <= high) {\n let mid = (low + high) >> 1;\n let item = items[mid];\n\n if ((axis === 'x' && item.layoutInfo.rect.maxX < point.x) || (axis === 'y' && item.layoutInfo.rect.maxY < point.y)) {\n low = mid + 1;\n } else if ((axis === 'x' && item.layoutInfo.rect.x > point.x) || (axis === 'y' && item.layoutInfo.rect.y > point.y)) {\n high = mid - 1;\n } else {\n return mid;\n }\n }\n\n return Math.max(0, Math.min(items.length - 1, low));\n }\n\n getInitialLayoutInfo(layoutInfo: LayoutInfo) {\n let res = super.getInitialLayoutInfo(layoutInfo);\n\n // If this insert was the result of async loading, remove the zoom effect and just keep the fade in.\n if (this.wasLoading) {\n res.transform = null;\n }\n\n return res;\n }\n}\n"],"names":[],"version":3,"file":"module.js.map"}
package/dist/types.d.ts CHANGED
@@ -14,6 +14,7 @@ export type ListLayoutOptions<T> = {
14
14
  collator?: Intl.Collator;
15
15
  loaderHeight?: number;
16
16
  placeholderHeight?: number;
17
+ allowDisabledKeyFocus?: boolean;
17
18
  };
18
19
  export interface LayoutNode {
19
20
  node?: Node<unknown>;
@@ -43,6 +44,7 @@ export class ListLayout<T> extends Layout<Node<T>> implements KeyboardDelegate {
43
44
  protected contentSize: Size;
44
45
  collection: Collection<Node<T>>;
45
46
  disabledKeys: Set<Key>;
47
+ allowDisabledKeyFocus: boolean;
46
48
  isLoading: boolean;
47
49
  protected lastWidth: number;
48
50
  protected lastCollection: Collection<Node<T>>;
@@ -70,6 +72,8 @@ export class ListLayout<T> extends Layout<Node<T>> implements KeyboardDelegate {
70
72
  getContentSize(): Size;
71
73
  getKeyAbove(key: Key): Key;
72
74
  getKeyBelow(key: Key): Key;
75
+ getKeyLeftOf(key: Key): Key;
76
+ getKeyRightOf(key: Key): Key;
73
77
  getKeyPageAbove(key: Key): Key;
74
78
  getKeyPageBelow(key: Key): Key;
75
79
  getFirstKey(): Key;
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-stately/layout/src/packages/@react-stately/layout/src/ListLayout.ts","packages/@react-stately/layout/src/packages/@react-stately/layout/src/TableLayout.ts","packages/@react-stately/layout/src/packages/@react-stately/layout/src/TableLayout_DEPRECATED.ts","packages/@react-stately/layout/src/packages/@react-stately/layout/src/index.ts","packages/@react-stately/layout/src/index.ts"],"sourcesContent":[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 './ListLayout';\nexport * from './TableLayout';\nexport * from './TableLayout_DEPRECATED';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
1
+ {"mappings":";;;;;AAiBA,8BAA8B,CAAC,IAAI;IACjC,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IAC3E,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAC;AAGF;IACE,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAA;CACxB;AAID;;;;;;;;;GASG;AACH,wBAAwB,CAAC,CAAE,SAAQ,OAAO,KAAK,CAAC,CAAC,CAAE,YAAW,gBAAgB;IAC5E,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACrC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACzC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IACrF,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC5C,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC5C,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC;IAC5B,UAAU,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,CAAa;IACnC,qBAAqB,EAAE,OAAO,CAAS;IACvC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,cAAc,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9C,SAAS,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC;IAClC,SAAS,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC;IAClC,SAAS,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACxC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAEpC;;;OAGG;gBACS,OAAO,GAAE,kBAAkB,CAAC,CAAM;IAmB9C,aAAa,CAAC,GAAG,EAAE,GAAG;IAItB,qBAAqB,CAAC,IAAI,EAAE,IAAI;IAsBhC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI;IAItC,QAAQ,CAAC,mBAAmB,EAAE,oBAAoB,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;IA0BnE,eAAe,IAAI,UAAU,EAAE;IA+B/B,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU;IAmB3D,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU;IAS1D,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU;IAoD7D,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU;IAsC1D,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI;IA6BnC,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU;IAe/E,cAAc;IAId,WAAW,CAAC,GAAG,EAAE,GAAG;IAcpB,WAAW,CAAC,GAAG,EAAE,GAAG;IAcpB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;IAI3B,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;IAI5B,eAAe,CAAC,GAAG,EAAE,GAAG;IAkBxB,eAAe,CAAC,GAAG,EAAE,GAAG;IAkBxB,WAAW;IAaX,UAAU;IAaV,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG;IA8C7C,oBAAoB,CAAC,UAAU,EAAE,UAAU;IAM3C,kBAAkB,CAAC,UAAU,EAAE,UAAU;CAK1C;ACreD,yBAAyB,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC;IAC/C,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC/B,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACnC,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IACrC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,UAAU,UAAS;IACnB,SAAS,UAAS;gBAEN,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAMzC,eAAe,IAAI,UAAU,EAAE;IA4B/B,WAAW,IAAI,UAAU;IA0BzB,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;;;;IAyB3D,eAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM;IAatD,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAWjC,kBAAkB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;;;;IAuB5F,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU;IAchE,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU;IA8ChC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU;IAgB9D,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU;IAwB7D,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU;IAc9D,qBAAqB,CAAC,IAAI,EAAE,IAAI;IAWhC,qBAAqB,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI;IAoDrE,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG;IAmB/D,oBAAoB,CAAC,UAAU,EAAE,UAAU;CAU5C;AC1VD,wBAAwB,CAAC,IAAI,kBAAkB,CAAC,CAAC,GAAG;IAClD,eAAe,EAAE,CAAC,KAAK,KAAA,KAAK,MAAM,GAAG,MAAM,CAAA;CAC5C,CAAA;AAED,oCAAoC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC;IAC1D,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC/B,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACnC,YAAY,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC/B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,eAAe,EAAE,CAAC,KAAK,KAAA,KAAK,MAAM,GAAG,MAAM,CAAC;IAC5C,UAAU,UAAS;IACnB,SAAS,UAAS;gBAEN,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAM1C,eAAe,IAAI,UAAU,EAAE;IA2B/B,iBAAiB;IA4CjB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAa1C,WAAW,IAAI,UAAU;IA0BzB,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;;;;IAyB3D,eAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM;IAYtD,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAWhC,kBAAkB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;;;;IAuB5F,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU;IAchE,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU;IA8ChC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU;IAgB9D,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU;IAwB7D,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU;IAc9D,qBAAqB,CAAC,IAAI,EAAE,IAAI;IAWhC,qBAAqB,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI;IAoDrE,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG;IAmB/D,oBAAoB,CAAC,UAAU,EAAE,UAAU;CAU5C","sources":["packages/@react-stately/layout/src/packages/@react-stately/layout/src/ListLayout.ts","packages/@react-stately/layout/src/packages/@react-stately/layout/src/TableLayout.ts","packages/@react-stately/layout/src/packages/@react-stately/layout/src/TableLayout_DEPRECATED.ts","packages/@react-stately/layout/src/packages/@react-stately/layout/src/index.ts","packages/@react-stately/layout/src/index.ts"],"sourcesContent":[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 './ListLayout';\nexport * from './TableLayout';\nexport * from './TableLayout_DEPRECATED';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-stately/layout",
3
- "version": "3.4.6-nightly.3224+2a99b20a7",
3
+ "version": "3.4.6-nightly.3236+7f7748bc1",
4
4
  "description": "Spectrum UI components in React",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/main.js",
@@ -18,10 +18,10 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "@babel/runtime": "^7.6.2",
21
- "@react-stately/virtualizer": "3.1.9-nightly.3224+2a99b20a7",
22
- "@react-types/grid": "3.0.4-nightly.3224+2a99b20a7",
23
- "@react-types/shared": "3.0.0-nightly.1525+2a99b20a7",
24
- "@react-types/table": "3.1.4-nightly.3224+2a99b20a7"
21
+ "@react-stately/virtualizer": "3.1.10-nightly.3236+7f7748bc1",
22
+ "@react-types/grid": "3.0.5-nightly.3236+7f7748bc1",
23
+ "@react-types/shared": "3.0.0-nightly.1537+7f7748bc1",
24
+ "@react-types/table": "3.1.4-nightly.3236+7f7748bc1"
25
25
  },
26
26
  "peerDependencies": {
27
27
  "react": "^16.8.0 || ^17.0.0-rc.1"
@@ -29,5 +29,5 @@
29
29
  "publishConfig": {
30
30
  "access": "public"
31
31
  },
32
- "gitHead": "2a99b20a7ac205791911adae5b3ad4618a7c8e2b"
32
+ "gitHead": "7f7748bc15d18751d98c485789752ef4e1256930"
33
33
  }
package/src/ListLayout.ts CHANGED
@@ -25,7 +25,8 @@ export type ListLayoutOptions<T> = {
25
25
  indentationForItem?: (collection: Collection<Node<T>>, key: Key) => number,
26
26
  collator?: Intl.Collator,
27
27
  loaderHeight?: number,
28
- placeholderHeight?: number
28
+ placeholderHeight?: number,
29
+ allowDisabledKeyFocus?: boolean
29
30
  };
30
31
 
31
32
  // A wrapper around LayoutInfo that supports hierarchy
@@ -60,6 +61,7 @@ export class ListLayout<T> extends Layout<Node<T>> implements KeyboardDelegate {
60
61
  protected contentSize: Size;
61
62
  collection: Collection<Node<T>>;
62
63
  disabledKeys: Set<Key> = new Set();
64
+ allowDisabledKeyFocus: boolean = false;
63
65
  isLoading: boolean;
64
66
  protected lastWidth: number;
65
67
  protected lastCollection: Collection<Node<T>>;
@@ -89,6 +91,7 @@ export class ListLayout<T> extends Layout<Node<T>> implements KeyboardDelegate {
89
91
  this.rootNodes = [];
90
92
  this.lastWidth = 0;
91
93
  this.lastCollection = null;
94
+ this.allowDisabledKeyFocus = options.allowDisabledKeyFocus;
92
95
  }
93
96
 
94
97
  getLayoutInfo(key: Key) {
@@ -350,7 +353,7 @@ export class ListLayout<T> extends Layout<Node<T>> implements KeyboardDelegate {
350
353
  key = collection.getKeyBefore(key);
351
354
  while (key != null) {
352
355
  let item = collection.getItem(key);
353
- if (item.type === 'item' && !this.disabledKeys.has(item.key)) {
356
+ if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {
354
357
  return key;
355
358
  }
356
359
 
@@ -364,7 +367,7 @@ export class ListLayout<T> extends Layout<Node<T>> implements KeyboardDelegate {
364
367
  key = collection.getKeyAfter(key);
365
368
  while (key != null) {
366
369
  let item = collection.getItem(key);
367
- if (item.type === 'item' && !this.disabledKeys.has(item.key)) {
370
+ if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {
368
371
  return key;
369
372
  }
370
373
 
@@ -372,6 +375,14 @@ export class ListLayout<T> extends Layout<Node<T>> implements KeyboardDelegate {
372
375
  }
373
376
  }
374
377
 
378
+ getKeyLeftOf(key: Key): Key {
379
+ return key;
380
+ }
381
+
382
+ getKeyRightOf(key: Key): Key {
383
+ return key;
384
+ }
385
+
375
386
  getKeyPageAbove(key: Key) {
376
387
  let layoutInfo = this.getLayoutInfo(key);
377
388
 
@@ -413,7 +424,7 @@ export class ListLayout<T> extends Layout<Node<T>> implements KeyboardDelegate {
413
424
  let key = collection.getFirstKey();
414
425
  while (key != null) {
415
426
  let item = collection.getItem(key);
416
- if (item.type === 'item' && !this.disabledKeys.has(item.key)) {
427
+ if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {
417
428
  return key;
418
429
  }
419
430
 
@@ -426,7 +437,7 @@ export class ListLayout<T> extends Layout<Node<T>> implements KeyboardDelegate {
426
437
  let key = collection.getLastKey();
427
438
  while (key != null) {
428
439
  let item = collection.getItem(key);
429
- if (item.type === 'item' && !this.disabledKeys.has(item.key)) {
440
+ if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {
430
441
  return key;
431
442
  }
432
443