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:157

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.