Module

engine/model/utils/insertcontent

@ckeditor/ckeditor5-engine/src/model/utils/insertcontent

module

Filtering

Classes

  • Insertion

    private

    Utility class for performing content insertion.

Functions

  • insertContent( model, content, [ selectable ], [ placeOrOffset ] ) → Range

    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 as selectable 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 the insertContent 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.