Skip to main content

@lexical/extension/NormalizeTripleClickSelectionExtension

Interfaces

NormalizeTripleClickSelectionConfig

Defined in: packages/lexical-extension/src/NormalizeTripleClickSelectionExtension.ts:42

Properties

$fixFocusOverselection

$fixFocusOverselection: () => void

Defined in: packages/lexical-extension/src/NormalizeTripleClickSelectionExtension.ts:50

The update function to call when triple click is detected

Returns

void

dateNow

dateNow: () => number

Defined in: packages/lexical-extension/src/NormalizeTripleClickSelectionExtension.ts:48

The clock function used for delay-based merging, default Date.now

Returns

number

disabled

disabled: boolean

Defined in: packages/lexical-extension/src/NormalizeTripleClickSelectionExtension.ts:44

true to disable this extension

thresholdMsec

thresholdMsec: number

Defined in: packages/lexical-extension/src/NormalizeTripleClickSelectionExtension.ts:46

The maximum number of msec from the triple click to expect a selection change, default 100


NormalizeTripleClickSelectionOutput

Defined in: packages/lexical-extension/src/NormalizeTripleClickSelectionExtension.ts:53

Properties

$fixFocusOverselection

$fixFocusOverselection: Signal<() => void>

Defined in: packages/lexical-extension/src/NormalizeTripleClickSelectionExtension.ts:61

The update function to call when triple click is detected

dateNow

dateNow: Signal<() => number>

Defined in: packages/lexical-extension/src/NormalizeTripleClickSelectionExtension.ts:59

The clock function used for delay-based merging, default Date.now

disabled

disabled: Signal<boolean>

Defined in: packages/lexical-extension/src/NormalizeTripleClickSelectionExtension.ts:55

true to disable this extension

thresholdMsec

thresholdMsec: Signal<number>

Defined in: packages/lexical-extension/src/NormalizeTripleClickSelectionExtension.ts:57

The maximum number of msec from the triple click to expect a selection change, default 100

Variables

NormalizeTripleClickSelectionExtension

const NormalizeTripleClickSelectionExtension: LexicalExtension<NormalizeTripleClickSelectionConfig, "@lexical/NormalizeTripleClickSelection", NormalizeTripleClickSelectionOutput, unknown>

Defined in: packages/lexical-extension/src/NormalizeTripleClickSelectionExtension.ts:154

This extension handles triple-click events and will move the focus towards the anchor in certain conditions to meet expectations. Simply speaking, the focus should prefer to land at the end of a node rather than the beginning of its next sibling, and it should not skip over a LineBreakNode.

In order to fix the result visually and avoid a flash of over-selection it will also eagerly manipulate the DOM selection directly.

It is conservative in that it only fires this $fixFocusOverselection callback when it has detected a triple click, but it provides the function as an output signal so that it can both be called from other places and it can be replaced or wrapped with different functionality.