# engine/model/operation/utils

module

<a id="type-definitions">

## Type Definitions

<a id="typedef-ModelNodeSet">

### `ModelNodeSet`

<a id="functions">

## Functions

<a id="function-_insert">

### `_insert( position, nodes ) → ModelRange` _(internal)_

Inserts given nodes at given position.

[See source](https://github.com/ckeditor/ckeditor5/blob/master/packages/ckeditor5-engine/src/model/operation/utils.ts#L31)

#### Parameters

* `position: ModelPosition`

  Position at which nodes should be inserted.

* `nodes: ModelNodeSet`

  Nodes to insert.

#### Returns

* `ModelRange`

  Range spanning over inserted elements.

<a id="function-_move">

### `_move( this, sourceRange, targetPosition ) → ModelRange` _(internal)_

Moves nodes in given range to given target position. Only [flat](module_engine_model_range-ModelRange.md#member-isFlat) ranges are accepted.

[See source](https://github.com/ckeditor/ckeditor5/blob/master/packages/ckeditor5-engine/src/model/operation/utils.ts#L96)

#### Parameters

* `this: any`

* `sourceRange: ModelRange`

  Range containing nodes to move.

* `targetPosition: ModelPosition`

  Position to which nodes should be moved.

#### Returns

* `ModelRange`

  Range containing moved nodes.

<a id="function-_normalizeNodes">

### `_normalizeNodes( nodes ) → Array<ModelNode>` _(internal)_

Normalizes given object or an array of objects to an array of [nodes](module_engine_model_node-ModelNode.md). See [NodeSet](module_engine_model_operation_utils-ModelNodeSet.md) for details on how normalization is performed.

[See source](https://github.com/ckeditor/ckeditor5/blob/master/packages/ckeditor5-engine/src/model/operation/utils.ts#L160)

#### Parameters

* `nodes: ModelNodeSet`

  Objects to normalize.

#### Returns

* `Array<ModelNode>`

  Normalized nodes.

<a id="function-_remove">

### `_remove( this, range ) → Array<ModelNode>` _(internal)_

Removed nodes in given range. Only [flat](module_engine_model_range-ModelRange.md#member-isFlat) ranges are accepted.

[See source](https://github.com/ckeditor/ckeditor5/blob/master/packages/ckeditor5-engine/src/model/operation/utils.ts#L59)

#### Parameters

* `this: any`

* `range: ModelRange`

  Range containing nodes to remove.

#### Returns

* `Array<ModelNode>`

<a id="function-_setAttribute">

### `_setAttribute( range, key, value ) → void` _(internal)_

Sets given attribute on nodes in given range. The attributes are only set on top-level nodes of the range, not on its children.

[See source](https://github.com/ckeditor/ckeditor5/blob/master/packages/ckeditor5-engine/src/model/operation/utils.ts#L126)

#### Parameters

* `range: ModelRange`

  Range containing nodes that should have the attribute set. Must be a flat range.

* `key: string`

  Key of attribute to set.

* `value: unknown`

  Attribute value.

#### Returns

* `void`

---

Full index of the CKEditor 5 API reference: [llms.txt](llms.txt)
