/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * */ export function getDOMRangeRect(nativeSelection: Selection, rootElement: HTMLElement): DOMRect { const domRange = nativeSelection.getRangeAt(0) let rect if (nativeSelection.anchorNode === rootElement) { let inner = rootElement while (inner.firstElementChild != null) { inner = inner.firstElementChild as HTMLElement } rect = inner.getBoundingClientRect() } else { rect = domRange.getBoundingClientRect() } return rect }