Module

engine/model/utils/insertcontent

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

module

Filtering

Functions

  • insertContent( model, content, [ selectable ] ) → 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 ] : Selection | DocumentSelection

    Selection into which the content should be inserted.

    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.