API / @aionbuilders/nabu/extend

SvelteSelection

Class Stability: stable Stable contract

Utilitaire réactif pour gérer la sélection de texte avec Svelte 5 runes

Note Not exported by name: you reach it through nabu.selection.

Related guide: Extensions →

Import

TypeScript
import { SvelteSelection } from '@aionbuilders/nabu/extend';

Constructor

TypeScript
new SvelteSelection()

Properties

anchorNode

TypeScript
anchorNode: Node | null

anchorOffset

TypeScript
anchorOffset: number

endOffset

TypeScript
endOffset: number

focusNode

TypeScript
focusNode: Node | null

focusOffset

TypeScript
focusOffset: number

is

TypeScript
is: boolean

isCollapsed

TypeScript
isCollapsed: boolean

startOffset

TypeScript
startOffset: number

text

TypeScript
text: string

range readonly

TypeScript
readonly range: Range

Methods

setBaseAndExtent()

TypeScript
setBaseAndExtent(
  anchorNode: Node,
  anchorOffset: number,
  focusNode: Node,
  focusOffset: number
): boolean

Définit la base et l'extension de la sélection.

Parameters of setBaseAndExtent
ParameterTypeDescription
anchorNodeNode

Le nœud d'ancrage.

anchorOffsetnumber

L'offset d'ancrage.

focusNodeNode

Le nœud de focus.

focusOffsetnumber

L'offset de focus.

Returns boolean

True si l'opération a réussi *

sync()

TypeScript
sync(): boolean

Synchronise (de façon synchrone et idempotente) l'état avec la sélection DOM courante.

selectionchange est asynchrone (tâche mise en file) : un événement d'entrée (keydown, beforeinput…) qui suit de très près un déplacement du caret verrait un état périmé. À appeler au tout début de ces handlers. Ne touche à l'état que si les points de la sélection ont réellement changé (pas de churn réactif).

Returns boolean

True si l'état a été mis à jour *

Examples

TypeScript
const selection = new SvelteSelection();
// Utiliser selection.text, selection.isCollapsed, etc. dans vos composants

Source: src/lib/utils/selection.svelte.js:27