Spaces:
Building
Building
import { $isAtNodeEnd } from '@lexical/selection' | |
import type { ElementNode, RangeSelection, TextNode } from 'lexical' | |
export function getSelectedNode( | |
selection: RangeSelection, | |
): TextNode | ElementNode { | |
const anchor = selection.anchor | |
const focus = selection.focus | |
const anchorNode = selection.anchor.getNode() | |
const focusNode = selection.focus.getNode() | |
if (anchorNode === focusNode) | |
return anchorNode | |
const isBackward = selection.isBackward() | |
if (isBackward) | |
return $isAtNodeEnd(focus) ? anchorNode : focusNode | |
else | |
return $isAtNodeEnd(anchor) ? anchorNode : focusNode | |
} | |
export const urlRegExp = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=+$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[+~%/.\w-_]*)?\??(?:[-+=&;%@.\w_]*)#?(?:[\w]*))?)/ | |