ascending, unique row indices (normalizeRowIndices)
the drop target
the new index of the first moved row, -1 without rows
// D1: row 3 (index 2) dropped between row 7 and 8 → it is row 7 (index 6) afterwards
calcMoveToIndex([2], { rowIndex: 6, position: "after" }); // 6
1.1.95
The index of the first moved row after a move in a flat list: the insert position minus the moved rows in front of it. A target inside the moved rows (or right next to them) returns their current index – nothing changes.