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 | 1x 1x 12x 12x 27x 27x 17x 10x 12x | import { isNodeOfType } from 'roosterjs-content-model-dom'; import type { DOMInsertPoint } from 'roosterjs-content-model-types'; /** * @internal * * Use with paths generated by `getPath`. */ export function getPositionFromPath(node: Node, path: number[]): DOMInsertPoint { // Iterate with a for loop to avoid mutating the passed in element path stack // or needing to copy it. let offset: number = 0; for (let i = 0; i < path.length; i++) { offset = path[i]; if ( i < path.length - 1 && node && isNodeOfType(node, 'ELEMENT_NODE') && node.childNodes.length > offset ) { node = node.childNodes[offset]; } else { break; } } return { node, offset }; } |