BlockSuite API Documentation / @blocksuite/inline / InlineEditor
Class: InlineEditor<TextAttributes> 
Contents 
- Type parameters
- Constructors
- Properties- _attributeService
- _deltaService
- _disposables
- _eventService
- _eventSource
- _hooksService
- _isReadonly
- _mounted
- _rangeService
- _rootElement
- _textService
- _yText
- deleteText
- focusEnd
- focusIndex
- focusStart
- formatText
- getDeltaByRangeIndex
- getDeltasByInlineRange
- getFormat
- getInlineRange
- getInlineRangeFromElement
- getLine
- getNativeSelection
- getTextPoint
- inlineRangeProvider
- insertLineBreak
- insertText
- isEmbed
- isFirstLine
- isLastLine
- isNormalizedDeltaSelected
- isValidInlineRange
- mapDeltasInInlineRange
- resetMarks
- resetText
- selectAll
- setAttributeRenderer
- setAttributeSchema
- setInlineRange
- setMarks
- setText
- slots
- syncInlineRange
- toDomRange
- toInlineRange
- getTextNodesFromElement
- nativePointToTextPoint
- textPointToDomPoint
 
- Accessors
- Methods
Type parameters 
• TextAttributes extends BaseTextAttributes = BaseTextAttributes
Constructors 
new InlineEditor(yText, ops) 
new InlineEditor<
TextAttributes>(yText,ops):InlineEditor<TextAttributes>
Parameters 
• yText: Text
• ops: Object= {}
• ops.hooks?: Object
• ops.hooks.beforeinput?: (props) => null | BeforeinputHookCtx<TextAttributes>
• ops.hooks.compositionEnd?: (props) => null | CompositionEndHookCtx<TextAttributes>
• ops.inlineRangeProvider?: InlineRangeProvider
• ops.isEmbed?: (delta) => boolean
Returns 
InlineEditor<TextAttributes>
Source 
packages/inline/src/inline-editor.ts:186
Properties 
_attributeService 
private_attributeService:AttributeService<TextAttributes>
Source 
packages/inline/src/inline-editor.ts:61
_deltaService 
private_deltaService:DeltaService<TextAttributes>
Source 
packages/inline/src/inline-editor.ts:64
_disposables 
private_disposables:DisposableGroup
Source 
packages/inline/src/inline-editor.ts:45
_eventService 
private_eventService:EventService<TextAttributes>
Source 
packages/inline/src/inline-editor.ts:55
_eventSource 
private_eventSource:null|HTMLElement=null
Source 
packages/inline/src/inline-editor.ts:52
_hooksService 
private_hooksService:InlineHookService<TextAttributes>
Source 
packages/inline/src/inline-editor.ts:70
_isReadonly 
private_isReadonly:boolean=false
Source 
packages/inline/src/inline-editor.ts:53
_mounted 
private_mounted:boolean=false
Source 
packages/inline/src/inline-editor.ts:72
_rangeService 
private_rangeService:RangeService<TextAttributes>
Source 
packages/inline/src/inline-editor.ts:58
_rootElement 
private_rootElement:null|InlineRootElement<TextAttributes> =null
Source 
packages/inline/src/inline-editor.ts:51
_textService 
private_textService:InlineTextService<TextAttributes>
Source 
packages/inline/src/inline-editor.ts:67
_yText 
privatereadonly_yText:Text
Source 
packages/inline/src/inline-editor.ts:50
deleteText 
deleteText: (
inlineRange) =>void
Parameters 
• inlineRange: InlineRange
Returns 
void
Source 
packages/inline/src/inline-editor.ts:169
focusEnd 
focusEnd: () =>
void
Returns 
void
Source 
packages/inline/src/inline-editor.ts:157
focusIndex 
focusIndex: (
index) =>void
Parameters 
• index: number
Returns 
void
Source 
packages/inline/src/inline-editor.ts:159
focusStart 
focusStart: () =>
void
Returns 
void
Source 
packages/inline/src/inline-editor.ts:156
formatText 
formatText: (
inlineRange,attributes,options) =>void
Parameters 
• inlineRange: InlineRange
• attributes: TextAttributes
• options: Object= {}
• options.match?: (delta, deltaInlineRange) => boolean
• options.mode?: "replace" | "merge"
Returns 
void
Source 
packages/inline/src/inline-editor.ts:172
getDeltaByRangeIndex 
getDeltaByRangeIndex: (
rangeIndex) =>null|DeltaInsert<TextAttributes>
Here are examples of how this function computes and gets the delta.
We have such a text:
[
  {
     insert: 'aaa',
     attributes: { bold: true },
  },
  {
     insert: 'bbb',
     attributes: { italic: true },
  },
]getDeltaByRangeIndex(0) returns { insert: 'aaa', attributes: { bold: true } }.
getDeltaByRangeIndex(1) returns { insert: 'aaa', attributes: { bold: true } }.
getDeltaByRangeIndex(3) returns { insert: 'aaa', attributes: { bold: true } }.
getDeltaByRangeIndex(4) returns { insert: 'bbb', attributes: { italic: true } }.
Parameters 
• rangeIndex: number
Returns 
null | DeltaInsert<TextAttributes>
Source 
packages/inline/src/inline-editor.ts:164
getDeltasByInlineRange 
getDeltasByInlineRange: (
inlineRange) =>DeltaEntry<TextAttributes>[]
Here are examples of how this function computes and gets the deltas.
We have such a text:
[
  {
     insert: 'aaa',
     attributes: { bold: true },
  },
  {
     insert: 'bbb',
     attributes: { italic: true },
  },
  {
     insert: 'ccc',
     attributes: { underline: true },
  },
]getDeltasByInlineRange({ index: 0, length: 0 }) returns
[{ insert: 'aaa', attributes: { bold: true }, }, { index: 0, length: 3, }]]getDeltasByInlineRange({ index: 0, length: 1 }) returns
[{ insert: 'aaa', attributes: { bold: true }, }, { index: 0, length: 3, }]]getDeltasByInlineRange({ index: 0, length: 4 }) returns
[{ insert: 'aaa', attributes: { bold: true }, }, { index: 0, length: 3, }],
 [{ insert: 'bbb', attributes: { italic: true }, }, { index: 3, length: 3, }]]getDeltasByInlineRange({ index: 3, length: 1 }) returns
[{ insert: 'aaa', attributes: { bold: true }, }, { index: 0, length: 3, }],
 [{ insert: 'bbb', attributes: { italic: true }, }, { index: 3, length: 3, }]]getDeltasByInlineRange({ index: 3, length: 3 }) returns
[{ insert: 'aaa', attributes: { bold: true }, }, { index: 0, length: 3, }],
 [{ insert: 'bbb', attributes: { italic: true }, }, { index: 3, length: 3, }]]getDeltasByInlineRange({ index: 3, length: 4 }) returns
[{ insert: 'aaa', attributes: { bold: true }, }, { index: 0, length: 3, }],
 [{ insert: 'bbb', attributes: { italic: true }, }, { index: 3, length: 3, }],
 [{ insert: 'ccc', attributes: { underline: true }, }, { index: 6, length: 3, }]]Parameters 
• inlineRange: InlineRange
Returns 
DeltaEntry<TextAttributes>[]
Source 
packages/inline/src/inline-editor.ts:163
getFormat 
getFormat: (
inlineRange,loose) =>TextAttributes
Parameters 
• inlineRange: InlineRange
• loose: boolean= false
Returns 
TextAttributes
Source 
packages/inline/src/inline-editor.ts:142
getInlineRange 
getInlineRange: () =>
null|InlineRange
Returns 
null | InlineRange
Source 
packages/inline/src/inline-editor.ts:147
getInlineRangeFromElement 
getInlineRangeFromElement: (
element) =>null|InlineRange
Parameters 
• element: Element
Returns 
null | InlineRange
Source 
packages/inline/src/inline-editor.ts:148
getLine 
getLine: (
rangeIndex) => readonly [VLine,number]
Parameters 
• rangeIndex: number
Returns 
readonly [VLine, number]
Source 
packages/inline/src/inline-editor.ts:151
getNativeSelection 
getNativeSelection: () =>
null|Selection
Returns 
null | Selection
Source 
packages/inline/src/inline-editor.ts:149
getTextPoint 
getTextPoint: (
rangeIndex) =>TextPoint
Parameters 
• rangeIndex: number
Returns 
Source 
packages/inline/src/inline-editor.ts:150
inlineRangeProvider 
readonlyinlineRangeProvider:null|InlineRangeProvider
Source 
packages/inline/src/inline-editor.ts:75
insertLineBreak 
insertLineBreak: (
inlineRange) =>void
Parameters 
• inlineRange: InlineRange
Returns 
void
Source 
packages/inline/src/inline-editor.ts:171
insertText 
insertText: (
inlineRange,text,attributes) =>void
Parameters 
• inlineRange: InlineRange
• text: string
• attributes: TextAttributes= undefined
Returns 
void
Source 
packages/inline/src/inline-editor.ts:170
isEmbed 
readonlyisEmbed: (delta) =>boolean
Parameters 
• delta: DeltaInsert<TextAttributes>
Returns 
boolean
Source 
packages/inline/src/inline-editor.ts:74
isFirstLine 
isFirstLine: (
inlineRange) =>boolean
There are two cases to have the second line:
- long text auto wrap in span element
- soft break
Parameters 
• inlineRange: null | InlineRange
Returns 
boolean
Source 
packages/inline/src/inline-editor.ts:153
isLastLine 
isLastLine: (
inlineRange) =>boolean
There are two cases to have the second line:
- long text auto wrap in span element
- soft break
Parameters 
• inlineRange: null | InlineRange
Returns 
boolean
Source 
packages/inline/src/inline-editor.ts:154
isNormalizedDeltaSelected 
isNormalizedDeltaSelected: (
normalizedDeltaIndex,inlineRange) =>boolean
Parameters 
• normalizedDeltaIndex: number
• inlineRange: InlineRange
Returns 
boolean
Source 
packages/inline/src/inline-editor.ts:166
isValidInlineRange 
isValidInlineRange: (
inlineRange) =>boolean
Parameters 
• inlineRange: null | InlineRange
Returns 
boolean
Source 
packages/inline/src/inline-editor.ts:152
mapDeltasInInlineRange 
mapDeltasInInlineRange: <
Result>(inlineRange,callback,normalize) =>Result[]
Type parameters 
• Result
Parameters 
• inlineRange: InlineRange
• callback: (delta, rangeIndex, deltaIndex) => Result
• normalize: boolean= false
Returns 
Result[]
Source 
packages/inline/src/inline-editor.ts:165
resetMarks 
resetMarks: () =>
void
Returns 
void
Source 
packages/inline/src/inline-editor.ts:141
resetText 
resetText: (
inlineRange) =>void
Parameters 
• inlineRange: InlineRange
Returns 
void
Source 
packages/inline/src/inline-editor.ts:173
selectAll 
selectAll: () =>
void
Returns 
void
Source 
packages/inline/src/inline-editor.ts:158
setAttributeRenderer 
setAttributeRenderer: (
renderer) =>void
Parameters 
• renderer: AttributeRenderer<TextAttributes>
Returns 
void
Source 
packages/inline/src/inline-editor.ts:139
setAttributeSchema 
setAttributeSchema: (
schema) =>void
Parameters 
• schema: ZodType<TextAttributes, ZodTypeDef, unknown>
Returns 
void
Source 
packages/inline/src/inline-editor.ts:138
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/inline/src/inline-editor.ts:155
setMarks 
setMarks: (
marks) =>void
Parameters 
• marks: TextAttributes
Returns 
void
Source 
packages/inline/src/inline-editor.ts:140
setText 
setText: (
text,attributes) =>void
Parameters 
• text: string
• attributes: TextAttributes= undefined
Returns 
void
Source 
packages/inline/src/inline-editor.ts:174
slots 
readonlyslots:Object
Type declaration 
inlineRangeApply 
inlineRangeApply:
Slot<Range>
inlineRangeUpdate 
inlineRangeUpdate:
Slot<InlineRangeUpdatedProp>
mounted 
mounted:
Slot<void>
render 
render:
Slot<void>
renderComplete 
renderComplete:
Slot<void>
textChange 
textChange:
Slot<void>
unmounted 
unmounted:
Slot<void>
Source 
packages/inline/src/inline-editor.ts:77
syncInlineRange 
syncInlineRange: () =>
void
sync the dom selection from inline ranage for this Editor
Returns 
void
Source 
packages/inline/src/inline-editor.ts:160
toDomRange 
toDomRange: (
inlineRange) =>null|Range
calculate the dom selection from inline ranage for this Editor
Parameters 
• inlineRange: InlineRange
Returns 
null | Range
Source 
packages/inline/src/inline-editor.ts:145
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)
- anchor and focus are in this Editorthe inline ranage of second Editor isaaaaaa b|bbbb|b cccccc{index: 1, length: 4}, the others are null
- anchor and focus one in this Editor, one in another Editor2.1 the inline ranage of first Editor isaaa|aaa aaaaaa bbbbb|b or bbbbb|b cccccc cc|cccc{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}
- anchor and focus are in another Editorthe inline range of first Editor isaa|aaaa bbbbbb cccc|cc{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/inline/src/inline-editor.ts:146
getTextNodesFromElement 
staticgetTextNodesFromElement: (element) =>Text[] =getTextNodesFromElement
Parameters 
• element: Element
Returns 
Text[]
Source 
packages/inline/src/inline-editor.ts:43
nativePointToTextPoint 
staticnativePointToTextPoint: (node,offset) =>TextPoint|null=nativePointToTextPoint
Parameters 
• node: unknown
• offset: number
Returns 
TextPoint | null
Source 
packages/inline/src/inline-editor.ts:41
textPointToDomPoint 
statictextPointToDomPoint: (text,offset,rootElement) =>DomPoint|null=textPointToDomPoint
Parameters 
• text: Text
• offset: number
• rootElement: HTMLElement
Returns 
DomPoint | null
Source 
packages/inline/src/inline-editor.ts:42
Accessors 
attributeService 
getattributeService():AttributeService<TextAttributes>
Returns 
AttributeService<TextAttributes>
Source 
packages/inline/src/inline-editor.ts:121
deltaService 
getdeltaService():DeltaService<TextAttributes>
Returns 
DeltaService<TextAttributes>
Source 
packages/inline/src/inline-editor.ts:125
disposables 
getdisposables():DisposableGroup
Returns 
DisposableGroup
Source 
packages/inline/src/inline-editor.ts:46
eventService 
geteventService():EventService<TextAttributes>
Returns 
EventService<TextAttributes>
Source 
packages/inline/src/inline-editor.ts:113
eventSource 
geteventSource():HTMLElement
Returns 
HTMLElement
Source 
packages/inline/src/inline-editor.ts:108
hooks 
gethooks():Object
Returns 
Object
beforeinput? 
beforeinput?: (
props) =>null|BeforeinputHookCtx<TextAttributes>Parameters 
• props:
BeforeinputHookCtx<TextAttributes>Returns 
null|BeforeinputHookCtx<TextAttributes>compositionEnd? 
compositionEnd?: (
props) =>null|CompositionEndHookCtx<TextAttributes>Parameters 
• props:
CompositionEndHookCtx<TextAttributes>Returns 
null|CompositionEndHookCtx<TextAttributes>
Source 
packages/inline/src/inline-editor.ts:177
isComposing 
getisComposing():boolean
Returns 
boolean
Source 
packages/inline/src/inline-editor.ts:182
isReadonly 
getisReadonly():boolean
Returns 
boolean
Source 
packages/inline/src/inline-editor.ts:266
marks 
getmarks():null|TextAttributes
Returns 
null | TextAttributes
Source 
packages/inline/src/inline-editor.ts:134
mounted 
getmounted():boolean
Returns 
boolean
Source 
packages/inline/src/inline-editor.ts:129
rangeService 
getrangeService():RangeService<TextAttributes>
Returns 
RangeService<TextAttributes>
Source 
packages/inline/src/inline-editor.ts:117
rootElement 
getrootElement():InlineRootElement<TextAttributes>
Returns 
InlineRootElement<TextAttributes>
Source 
packages/inline/src/inline-editor.ts:103
yText 
getyText():Text
Returns 
Source 
packages/inline/src/inline-editor.ts:87
yTextDeltas 
getyTextDeltas():any
Returns 
any
Source 
packages/inline/src/inline-editor.ts:99
yTextLength 
getyTextLength():number
Returns 
number
Source 
packages/inline/src/inline-editor.ts:95
yTextString 
getyTextString():string
Returns 
string
Source 
packages/inline/src/inline-editor.ts:91
Methods 
_bindYTextObserver() 
private_bindYTextObserver():void
Returns 
void
Source 
packages/inline/src/inline-editor.ts:299
_onYTextChange() 
private_onYTextChange():void
Returns 
void
Source 
packages/inline/src/inline-editor.ts:285
mount() 
mount(
rootElement,eventSource):void
Parameters 
• rootElement: HTMLElement
• eventSource: HTMLElement= rootElement
Returns 
void
Source 
packages/inline/src/inline-editor.ts:222
requestUpdate() 
requestUpdate(
syncInlineRange):void
Parameters 
• syncInlineRange: boolean= true
Returns 
void
Source 
packages/inline/src/inline-editor.ts:252
rerenderWholeEditor() 
rerenderWholeEditor():
void
Returns 
void
Source 
packages/inline/src/inline-editor.ts:270
setReadonly() 
setReadonly(
isReadonly):void
Parameters 
• isReadonly: boolean
Returns 
void
Source 
packages/inline/src/inline-editor.ts:261
transact() 
transact(
fn):void
Parameters 
• fn: () => void
Returns 
void
Source 
packages/inline/src/inline-editor.ts:276
unmount() 
unmount():
void
Returns 
void
Source 
packages/inline/src/inline-editor.ts:241
waitForUpdate() 
waitForUpdate():
Promise<void>
Returns 
Promise<void>
Source 
packages/inline/src/inline-editor.ts:256
Generated using typedoc-plugin-markdown and TypeDoc