Class

ViewElementConsumables (engine/conversion)

@ckeditor/ckeditor5-engine/src/conversion/viewconsumable

class

This is a private helper-class for ViewConsumable. It represents and manipulates consumable parts of a single Element.

Filtering

Properties

  • readonly

    element : Element

  • private readonly

    _attributes : Map<string, boolean | Map<string, boolean>>

    A map of element's consumables.

    • For plain attributes the value is a boolean indicating whether the attribute is available to consume.
    • For token based attributes (like class list and style) the value is a map of tokens to booleans indicating whether the token is available to consume on the given attribute.
  • private

    _canConsumeName : null | boolean

    Flag indicating if name of the element can be consumed.

Methods

  • constructor( from )

    Creates ViewElementConsumables instance.

    Parameters

    from : Element

    View element from which ViewElementConsumables is being created.

  • add( consumables ) → void

    Adds consumable parts of the view element. Element's name itself can be marked to be consumed (when element's name is consumed its attributes, classes and styles still could be consumed):

    consumables.add( { name: true } );
    

    Attributes classes and styles:

    consumables.add( { attributes: [ [ 'title' ], [ 'class', 'foo' ], [ 'style', 'color'] ] } );
    consumables.add( { attributes: [ [ 'title' ], [ 'name' ], [ 'class', 'foo' ], [ 'class', 'bar' ] ] } );
    

    Note: This method accepts only NormalizedConsumables. You can use normalizeConsumables helper to convert from Consumables to NormalizedConsumables.

    Throws CKEditorError viewconsumable-invalid-attribute when class or style attribute is provided - it should be handled separately by providing style and class in consumables object.

    Parameters

    consumables : NormalizedConsumables

    Object describing which parts of the element can be consumed.

    Returns

    void
  • consume( consumables ) → boolean

    Tests if parts of the view element can be consumed and consumes them if available. It returns true when all items included in method's call can be consumed, otherwise returns false.

    Element's name can be consumed:

    consumables.consume( { name: true } );
    

    Attributes classes and styles:

    consumables.consume( { attributes: [ [ 'title' ], [ 'class', 'foo' ], [ 'style', 'color' ] ] } );
    consumables.consume( { attributes: [ [ 'title' ], [ 'name' ], [ 'class', 'foo' ], [ 'class', 'bar' ] ] } );
    

    Parameters

    consumables : NormalizedConsumables

    Object describing which parts of the element should be consumed.

    Returns

    boolean

    true when all tested items can be consumed and false when even one of the items could not be consumed.

  • revert( consumables ) → void

    Revert already consumed parts of view Element, so they can be consumed once again. Element's name can be reverted:

    consumables.revert( { name: true } );
    

    Attributes classes and styles:

    consumables.revert( { attributes: [ [ 'title' ], [ 'class', 'foo' ], [ 'style', 'color' ] ] } );
    consumables.revert( { attributes: [ [ 'title' ], [ 'name' ], [ 'class', 'foo' ], [ 'class', 'bar' ] ] } );
    

    Parameters

    consumables : NormalizedConsumables

    Object describing which parts of the element should be reverted.

    Returns

    void
  • test( consumables ) → null | boolean

    Tests if parts of the view element can be consumed.

    Element's name can be tested:

    consumables.test( { name: true } );
    

    Attributes classes and styles:

    consumables.test( { attributes: [ [ 'title' ], [ 'class', 'foo' ], [ 'style', 'color' ] ] } );
    consumables.test( { attributes: [ [ 'title' ], [ 'name' ], [ 'class', 'foo' ], [ 'class', 'bar' ] ] } );
    

    Parameters

    consumables : NormalizedConsumables

    Object describing which parts of the element should be tested.

    Returns

    null | boolean

    true when all tested items can be consumed, null when even one of the items was never marked for consumption and false when even one of the items was already consumed.