mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-04-23 14:19:42 +08:00
22 lines
792 B
TypeScript
22 lines
792 B
TypeScript
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]*))?)/
|