Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | 1x 118x 59x 52x 52x 52x 42x 10x 5x 5x 17x | import type { ParsedTable, TableCellCoordinate } from 'roosterjs-content-model-types'; /** * @internal */ export interface TableCellCoordinateWithCell extends TableCellCoordinate { cell: HTMLTableCellElement; } /** * @internal * Try to find a TD/TH element from the given row and col number from the given parsed table * @param parsedTable The parsed table * @param row Row index * @param col Column index * @param findLast True to find last merged cell instead of the first cell */ export function findTableCellElement( parsedTable: ParsedTable, coordinate: TableCellCoordinate ): TableCellCoordinateWithCell | null { let { row, col } = coordinate; while ( row >= 0 && col >= 0 && row < parsedTable.length && col < (parsedTable[row]?.length ?? 0) ) { const cell = parsedTable[row]?.[col]; Iif (!cell) { break; } else if (typeof cell == 'object') { return { cell, row, col }; } else if (cell == 'spanLeft' || cell == 'spanBoth') { col--; } else { row--; } } return null; } |