engine/model/utils/insertcontent
@ckeditor/ckeditor5-engine/src/model/utils/insertcontent
Filtering
Classes
-
Insertion
module:engine/model/utils/insertcontent~Insertion
private
Utility class for performing content insertion.
Functions
-
insertContent( model, content, [ selectable ], [ placeOrOffset ] ) → Range
module:engine/model/utils/insertcontent~insertContent
Inserts content into the editor (specified selection) as one would expect the paste functionality to work.
It takes care of removing the selected content, splitting elements (if needed), inserting elements and merging elements appropriately.
Some examples:
<p>x^</p> + <p>y</p> => <p>x</p><p>y</p> => <p>xy[]</p> <p>x^y</p> + <p>z</p> => <p>x</p>^<p>y</p> + <p>z</p> => <p>x</p><p>z</p><p>y</p> => <p>xz[]y</p> <p>x^y</p> + <img /> => <p>x</p>^<p>y</p> + <img /> => <p>x</p><img /><p>y</p> <p>x</p><p>^</p><p>z</p> + <p>y</p> => <p>x</p><p>y[]</p><p>z</p> (no merging) <p>x</p>[<img />]<p>z</p> + <p>y</p> => <p>x</p>^<p>z</p> + <p>y</p> => <p>x</p><p>y[]</p><p>z</p>
If an instance of
Selection
is passed asselectable
it will be modified to the insertion selection (equal to a range to be selected after insertion).If
selectable
is not passed, the content will be inserted using the current selection of the model document.Note: Use
insertContent
instead of this function. This function is only exposed to be reusable in algorithms which change theinsertContent
method's behavior.Parameters
model : Model
The model in context of which the insertion should be performed.
content : DocumentFragment | Item
The content to insert.
[ selectable ] : Selectable
Selection into which the content should be inserted.
Defaults to
model.document.selection
[ placeOrOffset ] : Number | 'before' | 'end' | 'after' | 'on' | 'in'
Sets place or offset of the selection.
Returns
Range
Range which contains all the performed changes. This is a range that, if removed, would return the model to the state before the insertion. If no changes were preformed by
insertContent
, returns a range collapsed at the insertion position.
Every day, we work hard to keep our documentation complete. Have you spotted an outdated information? Is something missing? Please report it via our issue tracker.