(root: Element, start: Position, end: Position)
| 751 | } |
| 752 | |
| 753 | function createDOMRange(root: Element, start: Position, end: Position): Range { |
| 754 | let range = document.createRange(); |
| 755 | let [startContainer, startOffset] = getDOMPosition(root, start); |
| 756 | let [endContainer, endOffset] = getDOMPosition(root, end); |
| 757 | range.setStart(startContainer, startOffset); |
| 758 | range.setEnd(endContainer, endOffset); |
| 759 | return range; |
| 760 | } |
| 761 | |
| 762 | function getDOMPosition(root: Element, pos: Position): [Node, number] { |
| 763 | let index = Math.max(0, Math.min(root.childNodes.length, pos.index)); |
no test coverage detected