ViewElementConsumables
This is a private helper-class for ViewConsumable
.
It represents and manipulates consumable parts of a single ViewElement
.
Properties
-
element : ViewElement
readonlymodule:engine/conversion/viewconsumable~ViewElementConsumables#element
-
_attributes : Map<string, boolean | Map<string, boolean>>
privatereadonlymodule:engine/conversion/viewconsumable~ViewElementConsumables#_attributes
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.
-
_canConsumeName : null | boolean
privatemodule:engine/conversion/viewconsumable~ViewElementConsumables#_canConsumeName
Flag indicating if name of the element can be consumed.
Methods
-
constructor( from )
module:engine/conversion/viewconsumable~ViewElementConsumables#constructor
Creates ViewElementConsumables instance.
Parameters
from : ViewElement
View element from which
ViewElementConsumables
is being created.
-
add( consumables ) → void
module:engine/conversion/viewconsumable~ViewElementConsumables#add
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
ViewNormalizedConsumables
. You can usenormalizeConsumables
helper to convert fromConsumables
toViewNormalizedConsumables
.Throws CKEditorError
viewconsumable-invalid-attribute
whenclass
orstyle
attribute is provided - it should be handled separately by providingstyle
andclass
in consumables object.Parameters
consumables : ViewNormalizedConsumables
Object describing which parts of the element can be consumed.
Returns
void
-
consume( consumables ) → boolean
module:engine/conversion/viewconsumable~ViewElementConsumables#consume
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 returnsfalse
.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 : ViewNormalizedConsumables
Object describing which parts of the element should be consumed.
Returns
boolean
true
when all tested items can be consumed andfalse
when even one of the items could not be consumed.
-
revert( consumables ) → void
module:engine/conversion/viewconsumable~ViewElementConsumables#revert
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 : ViewNormalizedConsumables
Object describing which parts of the element should be reverted.
Returns
void
-
test( consumables ) → null | boolean
module:engine/conversion/viewconsumable~ViewElementConsumables#test
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 : ViewNormalizedConsumables
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 andfalse
when even one of the items was already consumed.