Add columns next to selection (#4663)

Co-authored-by: Peter Cook Bulukin <pbu@genus.biz>
Co-authored-by: Gerard Rovira <zurfyx@users.noreply.github.com>
This commit is contained in:
Peter Cook Bulukin
2023-06-15 15:25:52 +02:00
committed by GitHub
parent 6ee72dfbc5
commit 495424b3ca
3 changed files with 163 additions and 7 deletions

View File

@ -341,18 +341,22 @@ export function $insertTableColumn__EXPERIMENTAL(insertAfter = true): void {
$isRangeSelection(selection) || DEPRECATED_$isGridSelection(selection),
'Expected a RangeSelection or GridSelection',
);
const anchor = selection.anchor.getNode();
const focus = selection.focus.getNode();
const [anchorCell] = DEPRECATED_$getNodeTriplet(anchor);
const [focusCell, , grid] = DEPRECATED_$getNodeTriplet(focus);
const [gridMap, focusCellMap] = DEPRECATED_$computeGridMap(
const [gridMap, focusCellMap, anchorCellMap] = DEPRECATED_$computeGridMap(
grid,
focusCell,
focusCell,
anchorCell,
);
const rowCount = gridMap.length;
const {startColumn: focusStartColumn} = focusCellMap;
const startColumn = insertAfter
? Math.max(focusCellMap.startColumn, anchorCellMap.startColumn)
: Math.min(focusCellMap.startColumn, anchorCellMap.startColumn);
const insertAfterColumn = insertAfter
? focusStartColumn + focusCell.__colSpan - 1
: focusStartColumn - 1;
? startColumn + focusCell.__colSpan - 1
: startColumn - 1;
const gridFirstChild = grid.getFirstChild();
invariant(
DEPRECATED_$isGridRowNode(gridFirstChild),