selection-ranges
Version:
Selection range manipulation for contenteditable elements
54 lines (53 loc) • 1.21 kB
TypeScript
/**
* @typedef { { start: number, end: number } } SelectionRange
*/
/**
* Add selection / insert cursor.
*
* @param {Range} range
*/
export function applyRange(range: Range): void;
/**
* Get current document selection.
*
* @return {Selection}
*/
export function getWindowSelection(): Selection;
/**
* Return true if element is part of window selection.
*
* @param {Element} el
* @return {boolean}
*/
export function isSelected(el: Element): boolean;
/**
* Set cursor or selection position.
*
* @param {Element} el
* @param {SelectionRange} selectionRange
*/
export function setRange(el: Element, selectionRange: SelectionRange): void;
/**
* Get cursor or selection position.
*
* Returns `null` if the element is not currently selected
*
* @param {Element} el
*
* @return {SelectionRange|null}
*/
export function getRange(el: Element): SelectionRange | null;
/**
* Annotate the given text with markers based on the
* given range.
*
* @param {string} text
* @param {SelectionRange} range
*
* @return {string} annotated text
*/
export function annotateRange(text: string, range: SelectionRange): string;
export type SelectionRange = {
start: number;
end: number;
};