14 lines
483 B
TypeScript
14 lines
483 B
TypeScript
const MAX_NESTING_PARENTS = 5;
|
|
|
|
export function isSelectionInsideInput(selectionRange: Range, inputId: string) {
|
|
const { commonAncestorContainer } = selectionRange;
|
|
let parentNode: HTMLElement | null = commonAncestorContainer as HTMLElement;
|
|
let iterations = 1;
|
|
while (parentNode && parentNode.id !== inputId && iterations < MAX_NESTING_PARENTS) {
|
|
parentNode = parentNode.parentElement;
|
|
iterations++;
|
|
}
|
|
|
|
return Boolean(parentNode && parentNode.id === inputId);
|
|
}
|