Report an issue
Class

CKEDITOR.plugins.pastefromword.heuristics

class

Filtering

Methods

  • assignListLevels( editor, item ) → Object | null

    private

    Assigns list levels to the item and all directly subsequent nodes for which isEdgeListItem returns true.

    The algorithm determines list item level based on the lowest common non-zero difference in indentation of two or more subsequent list-like elements.

    Parameters

    editor : editor
    item : element

    The first item of the list.

    Returns

    Object | null

    null if list levels were already applied, or an object used to verify results in tests.

    Properties
    indents : Number[]
    levels : Number[]
    diffs : Number[]
  • cleanupEdgeListItem( item )

    since 4.7.0 private

    Cleans up a given list item. It is needed to remove Edge pre-marker indentation, since Edge pastes list items as plain paragraphs with multiple  s before the list marker.

    Parameters

    item : element

    The pre-processed list-like item, like a paragraph.

  • correctLevelShift( element )

    private

    Shifts lists that were deformed during pasting one level down so that the list structure matches the content copied from Word.

    Parameters

    element : element
  • guessIndentationStep( indentations ) → Number | null

    private

    Given an array of list indentations, this method tries to guess what the indentation difference per list level is. E.g. assuming that you have something like:

    * foo (indentation 30px)
            * bar (indentation 90px)
            * baz (indentation 90px)
                * baz (indentation 115px)
        * baz (indentation 60px)
    

    The method will return 30.

    Parameters

    indentations : Number[]

    An array of indentation sizes.

    Returns

    Number | null

    A number or null if empty indentations was given.

  • isDegenerateListItem( editor, item ) → Boolean

    private

    Checks whether an element is a degenerate list item.

    Degenerate list items are elements that have some styles specific to list items, but lack the ones that could be used to determine their features (like list level etc.).

    Parameters

    editor : editor
    item : element

    Returns

    Boolean
  • isEdgeListItem( editor, item ) → Boolean

    private

    Decides if an item looks like a list item in Microsoft Edge.

    Note: It will return false when run in a browser other than Microsoft Edge, despite the configuration.

    Parameters

    editor : editor
    item : element

    Returns

    Boolean
  • isShifted( element ) → Boolean

    private

    Determines if the list is malformed in a manner that its items are one level deeper than they should be.

    Parameters

    element : element

    Returns

    Boolean