ModelNodeList
Provides an interface to operate on a list of nodes. NodeList
is used internally
in classes like Element
or ModelDocumentFragment.
Properties
-
length : number
readonlymodule:engine/model/nodelist~ModelNodeList#length
Number of nodes contained inside this node list.
-
maxOffset : number
readonlymodule:engine/model/nodelist~ModelNodeList#maxOffset
Sum of offset sizes of all nodes contained inside this node list.
-
module:engine/model/nodelist~ModelNodeList#_nodes
Nodes contained in this node list.
-
_offsetToNode : Array<ModelNode>
privatemodule:engine/model/nodelist~ModelNodeList#_offsetToNode
This array maps numbers (offsets) to node that is placed at that offset.
This array is similar to
_nodes
with the difference that one node may occupy multiple consecutive items in the array.This array is needed to quickly retrieve a node that is placed at given offset.
Methods
-
constructor( [ nodes ] )
internalmodule:engine/model/nodelist~ModelNodeList#constructor
-
Symbol.iterator() → IterableIterator<ModelNode>
module:engine/model/nodelist~ModelNodeList#Symbol.iterator
Iterable interface.
Iterates over all nodes contained inside this node list.
Returns
IterableIterator<ModelNode>
-
module:engine/model/nodelist~ModelNodeList#getNode
Gets the node at the given index. Returns
null
if incorrect index was passed.Parameters
index : number
Returns
null | ModelNode
-
getNodeAtOffset( offset ) → null | ModelNode
module:engine/model/nodelist~ModelNodeList#getNodeAtOffset
Gets the node at the given offset. Returns
null
if incorrect offset was passed.Parameters
offset : number
Returns
null | ModelNode
-
getNodeIndex( node ) → null | number
module:engine/model/nodelist~ModelNodeList#getNodeIndex
-
getNodeStartOffset( node ) → null | number
module:engine/model/nodelist~ModelNodeList#getNodeStartOffset
Returns the offset at which given node is placed in its parent or
null
if given node does not have a parent.This is an alias to
startOffset
.Parameters
node : ModelNode
Returns
null | number
-
indexToOffset( index ) → number
module:engine/model/nodelist~ModelNodeList#indexToOffset
Converts index to offset in node list.
Throws CKEditorError
model-nodelist-index-out-of-bounds
if given index is less than0
or more thanlength
.Parameters
index : number
Returns
number
-
offsetToIndex( offset ) → number
module:engine/model/nodelist~ModelNodeList#offsetToIndex
Converts offset in node list to index.
Throws CKEditorError
model-nodelist-offset-out-of-bounds
if given offset is less than0
or more thanmaxOffset
.Parameters
offset : number
Returns
number
-
toJSON() → unknown
module:engine/model/nodelist~ModelNodeList#toJSON
Converts
NodeList
instance to an array containing nodes that were inserted in the node list. Nodes are also converted to their plain object representation.Returns
unknown
NodeList
instance converted toArray
.
-
_insertNodes( index, nodes ) → void
internalmodule:engine/model/nodelist~ModelNodeList#_insertNodes
Inserts given nodes at given index.
Parameters
index : number
Index at which nodes should be inserted.
nodes : Iterable<ModelNode>
Nodes to be inserted.
Returns
void
-
_removeNodes( indexStart, howMany ) → Array<ModelNode>
internalmodule:engine/model/nodelist~ModelNodeList#_removeNodes
Removes one or more nodes starting at the given index.
Parameters
indexStart : number
Index of the first node to remove.
howMany : number
Number of nodes to remove.
Defaults to
1
Returns
Array<ModelNode>
Array containing removed nodes.
-
_removeNodesArray( nodes ) → void
internalmodule:engine/model/nodelist~ModelNodeList#_removeNodesArray
Removes children nodes provided as an array. These nodes do not need to be direct siblings.
This method is faster than removing nodes one by one, as it recalculates offsets only once.
Parameters
nodes : Array<ModelNode>
Array of nodes.
Returns
void