Module

list/legacylist/legacyconverters

@ckeditor/ckeditor5-list/src/legacylist/legacyconverters

module

Filtering

Functions

  • cleanList( this, ev, args ) → void

    A view-to-model converter for the <ul> and <ol> view elements that cleans the input view of garbage. This is mostly to clean whitespaces from between the <li> view elements inside the view list element, however, also incorrect data can be cleared if the view was incorrect.

    Parameters

    this : Emitter
    ev : EventInfo<'element' | `element:${ string }`, unknown>
    args : tuple

    Returns

    void

    Related:

  • cleanListItem( this, ev, args ) → void

    A view-to-model converter for the <li> elements that cleans whitespace formatting from the input view.

    Parameters

    this : Emitter
    ev : EventInfo<'element' | `element:${ string }`, unknown>
    args : tuple

    Returns

    void

    Related:

  • modelChangePostFixer( model, writer ) → boolean

    Post-fixer that reacts to changes on document and fixes incorrect model states.

    In the example below, there is a correct list structure. Then the middle element is removed so the list structure will become incorrect:

    <listItem listType="bulleted" listIndent=0>Item 1</listItem>
    <listItem listType="bulleted" listIndent=1>Item 2</listItem>   <--- this is removed.
    <listItem listType="bulleted" listIndent=2>Item 3</listItem>
    

    The list structure after the middle element is removed:

    <listItem listType="bulleted" listIndent=0>Item 1</listItem>
    <listItem listType="bulleted" listIndent=2>Item 3</listItem>
    

    Should become:

    <listItem listType="bulleted" listIndent=0>Item 1</listItem>
    <listItem listType="bulleted" listIndent=1>Item 3</listItem>   <--- note that indent got post-fixed.
    

    Parameters

    model : Model

    The data model.

    writer : Writer

    The writer to do changes with.

    Returns

    boolean

    true if any change has been applied, false otherwise.

  • modelIndentPasteFixer( this, ev, args ) → void

    A fixer for pasted content that includes list items.

    It fixes indentation of pasted list items so the pasted items match correctly to the context they are pasted into.

    Example:

    <listItem listType="bulleted" listIndent=0>A</listItem>
    <listItem listType="bulleted" listIndent=1>B^</listItem>
    // At ^ paste:  <listItem listType="bulleted" listIndent=4>X</listItem>
    //              <listItem listType="bulleted" listIndent=5>Y</listItem>
    <listItem listType="bulleted" listIndent=2>C</listItem>
    

    Should become:

    <listItem listType="bulleted" listIndent=0>A</listItem>
    <listItem listType="bulleted" listIndent=1>BX</listItem>
    <listItem listType="bulleted" listIndent=2>Y/listItem>
    <listItem listType="bulleted" listIndent=2>C</listItem>
    

    Parameters

    this : Emitter
    ev : EventInfo<'insertContent', Range>
    args : tuple

    Returns

    void
  • modelToViewPosition( view ) → GetCallback<MapperModelToViewPositionEvent>

    Returns a callback for model position to view position mapping for Mapper. The callback fixes positions between the listItem elements that would be incorrectly mapped because of how list items are represented in the model and in the view.

    Parameters

    view : View

    Returns

    GetCallback<MapperModelToViewPositionEvent>
  • modelViewChangeIndent( model ) → GetCallback<DowncastAttributeEvent<Element>>

    A model-to-view converter for the listIndent attribute change on the listItem model element.

    Parameters

    model : Model

    Model instance.

    Returns

    GetCallback<DowncastAttributeEvent<Element>>

    Returns a conversion callback.

    Related:

  • modelViewChangeType( this, ev, args ) → void

    A model-to-view converter for the type attribute change on the listItem model element.

    This change means that the <li> element parent changes from <ul> to <ol> (or vice versa). This is accomplished by breaking view elements and changing their name. The next modelViewMergeAfterChangeType converter will attempt to merge split nodes.

    Splitting this conversion into 2 steps makes it possible to add an additional conversion in the middle. Check modelViewChangeType to see an example of it.

    Parameters

    this : Emitter
    ev : EventInfo<'attribute' | `attribute:${ string }`, unknown>
    args : tuple

    Returns

    void

    Related:

  • modelViewInsertion( model ) → GetCallback<DowncastInsertEvent<Element>>

    A model-to-view converter for the listItem model element insertion.

    It creates a <ul><li></li><ul> (or <ol>) view structure out of a listItem model element, inserts it at the correct position, and merges the list with surrounding lists (if available).

    Parameters

    model : Model

    Model instance.

    Returns

    GetCallback<DowncastInsertEvent<Element>>

    Related:

  • modelViewMergeAfter( this, ev, args ) → void

    A special model-to-view converter introduced by the list feature. This converter takes care of merging view lists after something is removed or moved from near them.

    Example:

    // Model:                        // View:
    <listItem>foo</listItem>         <ul><li>foo</li></ul>
    <paragraph>xxx</paragraph>       <p>xxx</p>
    <listItem>bar</listItem>         <ul><li>bar</li></ul>
    
    // After change:                 // Correct view guaranteed by this converter:
    <listItem>foo</listItem>         <ul>
    <listItem>bar</listItem>             <li>foo</li>
                                         <li>bar</li>
                                     </ul>
    

    Parameters

    this : Emitter
    ev : EventInfo<'remove' | `remove:${ string }`, unknown>
    args : tuple

    Returns

    void

    Related:

  • modelViewMergeAfterChangeType( this, ev, args ) → void

    A model-to-view converter that attempts to merge nodes split by modelViewChangeType.

    Parameters

    this : Emitter
    ev : EventInfo<'attribute' | `attribute:${ string }`, unknown>
    args : tuple

    Returns

    void

    Related:

  • modelViewRemove( model ) → GetCallback<DowncastRemoveEvent>

    A model-to-view converter for the listItem model element removal.

    Parameters

    model : Model

    Model instance.

    Returns

    GetCallback<DowncastRemoveEvent>

    Returns a conversion callback.

    Related:

  • modelViewSplitOnInsert( this, ev, args ) → void

    A special model-to-view converter introduced by the list feature. This converter is fired for insert change of every model item, and should be fired before the actual converter. The converter checks whether the inserted model item is a non-listItem element. If it is, and it is inserted inside a view list, the converter breaks the list so the model element is inserted to the view parent element corresponding to its model parent element.

    The converter prevents such situations:

    // Model:                        // View:
    <listItem>foo</listItem>         <ul>
    <listItem>bar</listItem>             <li>foo</li>
                                         <li>bar</li>
                                     </ul>
    
    // After change:                 // Correct view guaranteed by this converter:
    <listItem>foo</listItem>         <ul><li>foo</li></ul><p>xxx</p><ul><li>bar</li></ul>
    <paragraph>xxx</paragraph>       // Instead of this wrong view state:
    <listItem>bar</listItem>         <ul><li>foo</li><p>xxx</p><li>bar</li></ul>
    

    Parameters

    this : Emitter
    ev : EventInfo<'insert' | `insert:${ string }`, unknown>
    args : tuple

    Returns

    void

    Related:

  • viewModelConverter( this, ev, args ) → void

    A view-to-model converter that converts the <li> view elements into the listItem model elements.

    To set correct values of the listType and listIndent attributes the converter:

    • checks <li>'s parent,
    • stores and increases the conversionApi.store.indent value when <li>'s sub-items are converted.

    Parameters

    this : Emitter
    ev : EventInfo<'element' | `element:${ string }`, unknown>
    args : tuple

    Returns

    void

    Related:

  • viewToModelPosition( model ) → GetCallback<MapperViewToModelPositionEvent>

    The callback for view position to model position mapping for Mapper. The callback fixes positions between the <li> elements that would be incorrectly mapped because of how list items are represented in the model and in the view.

    Parameters

    model : Model

    Model instance.

    Returns

    GetCallback<MapperViewToModelPositionEvent>

    Returns a conversion callback.

    Related: