Skip to content

BlockSuite API Documentation / @blocksuite/inline / RangeService

Class: RangeService<TextAttributes>

Type parameters

TextAttributes extends BaseTextAttributes

Constructors

new RangeService(editor)

new RangeService<TextAttributes>(editor): RangeService<TextAttributes>

Parameters

editor: InlineEditor<TextAttributes>

Returns

RangeService<TextAttributes>

Source

packages/framework/inline/src/services/range.ts:25

Properties

_inlineRange

private _inlineRange: null | InlineRange = null

Source

packages/framework/inline/src/services/range.ts:21


_lastEndRelativePosition

private _lastEndRelativePosition: null | RelativePosition = null

Source

packages/framework/inline/src/services/range.ts:23


_lastStartRelativePosition

private _lastStartRelativePosition: null | RelativePosition = null

Source

packages/framework/inline/src/services/range.ts:22


editor

readonly editor: InlineEditor<TextAttributes>

Source

packages/framework/inline/src/services/range.ts:25

Accessors

inlineRangeProvider

get inlineRangeProvider(): null | InlineRangeProvider

Returns

null | InlineRangeProvider

Source

packages/framework/inline/src/services/range.ts:31


lastEndRelativePosition

get lastEndRelativePosition(): null | RelativePosition

Returns

null | RelativePosition

Source

packages/framework/inline/src/services/range.ts:42


lastStartRelativePosition

get lastStartRelativePosition(): null | RelativePosition

Returns

null | RelativePosition

Source

packages/framework/inline/src/services/range.ts:39


rootElement

get rootElement(): InlineRootElement<TextAttributes>

Returns

InlineRootElement<TextAttributes>

Source

packages/framework/inline/src/services/range.ts:35


yText

get yText(): Text

Returns

Text

Source

packages/framework/inline/src/services/range.ts:27

Methods

_applyInlineRange()

private _applyInlineRange(inlineRange): void

Parameters

inlineRange: InlineRange

Returns

void

Source

packages/framework/inline/src/services/range.ts:395


focusEnd()

focusEnd(): void

Returns

void

Source

packages/framework/inline/src/services/range.ts:311


focusIndex()

focusIndex(index): void

Parameters

index: number

Returns

void

Source

packages/framework/inline/src/services/range.ts:332


focusStart()

focusStart(): void

Returns

void

Source

packages/framework/inline/src/services/range.ts:318


getInlineRange()

getInlineRange(): null | InlineRange

Returns

null | InlineRange

Source

packages/framework/inline/src/services/range.ts:125


getInlineRangeFromElement()

getInlineRangeFromElement(element): null | InlineRange

Parameters

element: Element

Returns

null | InlineRange

Source

packages/framework/inline/src/services/range.ts:133


getLine()

getLine(rangeIndex): object

Parameters

rangeIndex: number

Returns

object

line

line: VLine

lineIndex

lineIndex: number

rangeIndexRelatedToLine

rangeIndexRelatedToLine: number

Source

packages/framework/inline/src/services/range.ts:171


getNativeRange()

getNativeRange(): null | Range

Returns

null | Range

Source

packages/framework/inline/src/services/range.ts:119


getNativeSelection()

getNativeSelection(): null | Selection

Returns

null | Selection

Source

packages/framework/inline/src/services/range.ts:110


getTextPoint()

getTextPoint(rangeIndex): TextPoint

Parameters

rangeIndex: number

Returns

TextPoint

Source

packages/framework/inline/src/services/range.ts:147


isFirstLine()

isFirstLine(inlineRange): boolean

There are two cases to have the second line:

  1. long text auto wrap in span element
  2. soft break

Parameters

inlineRange: null | InlineRange

Returns

boolean

Source

packages/framework/inline/src/services/range.ts:211


isLastLine()

isLastLine(inlineRange): boolean

There are two cases to have the second line:

  1. long text auto wrap in span element
  2. soft break

Parameters

inlineRange: null | InlineRange

Returns

boolean

Source

packages/framework/inline/src/services/range.ts:255


isValidInlineRange()

isValidInlineRange(inlineRange): boolean

Parameters

inlineRange: null | InlineRange

Returns

boolean

Source

packages/framework/inline/src/services/range.ts:198


onInlineRangeUpdated()

onInlineRangeUpdated(__namedParameters): Promise<void>

Parameters

__namedParameters: InlineRangeUpdatedProp

Returns

Promise<void>

Source

packages/framework/inline/src/services/range.ts:46


selectAll()

selectAll(): void

Returns

void

Source

packages/framework/inline/src/services/range.ts:325


setInlineRange()

setInlineRange(inlineRange, sync): void

the inline ranage is synced to the native selection asynchronically if sync is true, the native selection will be synced immediately

Parameters

inlineRange: null | InlineRange

sync: boolean= true

Returns

void

Source

packages/framework/inline/src/services/range.ts:298


syncInlineRange()

syncInlineRange(): void

sync the dom selection from inline ranage for this Editor

Returns

void

Source

packages/framework/inline/src/services/range.ts:342


toDomRange()

toDomRange(inlineRange): null | Range

calculate the dom selection from inline ranage for this Editor

Parameters

inlineRange: InlineRange

Returns

null | Range

Source

packages/framework/inline/src/services/range.ts:352


toInlineRange()

toInlineRange(range): null | InlineRange

calculate the inline ranage from dom selection for this Editor there are three cases when the inline ranage of this Editor is not null: (In the following, "|" mean anchor and focus, each line is a separate Editor)

  1. anchor and focus are in this Editor
    aaaaaa
    b|bbbb|b
    cccccc
    the inline ranage of second Editor is {index: 1, length: 4}, the others are null
  2. anchor and focus one in this Editor, one in another Editor
    aaa|aaa    aaaaaa
    bbbbb|b or bbbbb|b
    cccccc     cc|cccc
    2.1 the inline ranage of first Editor is {index: 3, length: 3}, the second is {index: 0, length: 5}, the third is null 2.2 the inline ranage of first Editor is null, the second is {index: 5, length: 1}, the third is {index: 0, length: 2}
  3. anchor and focus are in another Editor
    aa|aaaa
    bbbbbb
    cccc|cc
    the inline range of first Editor is {index: 2, length: 4}, the second is {index: 0, length: 6}, the third is {index: 0, length: 4}

Parameters

range: Range

Returns

null | InlineRange

Source

packages/framework/inline/src/services/range.ts:389