(element: HTMLElement)
| 222 | } |
| 223 | |
| 224 | function getNextPageElement(element: HTMLElement): HTMLElement | undefined { |
| 225 | const root = element.closest('[role="tree"]') |
| 226 | if (!root) { |
| 227 | return |
| 228 | } |
| 229 | |
| 230 | const items = Array.from(root.querySelectorAll('[role="treeitem"]')) as HTMLElement[] |
| 231 | if (items.length === 0) { |
| 232 | return |
| 233 | } |
| 234 | |
| 235 | const itemLabel = items[0].firstElementChild as HTMLElement |
| 236 | const pageSize = getPageSize(root, itemLabel) |
| 237 | const page = Math.floor(items.indexOf(element) / pageSize) |
| 238 | const offset = items.indexOf(element) - pageSize * page |
| 239 | |
| 240 | return items[Math.min(items.length - 1, (page + 1) * pageSize + offset)] |
| 241 | } |
| 242 | |
| 243 | function getPreviousPageElement(element: HTMLElement): HTMLElement | undefined { |
| 244 | const root = element.closest('[role="tree"]') |
no test coverage detected