sanity
Version:
Sanity is a real-time content infrastructure with a scalable, hosted backend featuring a Graph Oriented Query Language (GROQ), asset pipelines and fast edge caches
28 lines (19 loc) • 488 B
text/typescript
/**
* @internal
*/
export function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {
const path: number[] = []
let e = el
while (e !== rootElement) {
const parentElement = e.parentElement
if (!parentElement) return path
const children = Array.from(parentElement.childNodes)
const index = children.indexOf(e)
path.unshift(index)
if (parentElement === rootElement) {
return path
}
e = parentElement
}
return path
}