123456789101112131415161718192021 |
- 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]*))?)/
|