# media-embed/utils

module

<a id="type-definitions">

## Type Definitions

<a id="typedef-MediaOptions">

### `MediaOptions`

<a id="functions">

## Functions

<a id="function-createMediaFigureElement">

### `createMediaFigureElement( writer, registry, url, options ) → ViewContainerElement` _(internal)_

Creates a view element representing the media. Either a "semantic" one for the data pipeline:

```html
<figure class="media">
	<oembed url="foo"></oembed>
</figure>
```

or a "non-semantic" (for the editing view pipeline):

```html
<figure class="media">
	<div data-oembed-url="foo">[ non-semantic media preview for "foo" ]</div>
</figure>
```

[See source](https://github.com/ckeditor/ckeditor5/blob/master/packages/ckeditor5-media-embed/src/utils.ts#L83)

#### Parameters

* `writer: ViewDowncastWriter`
* `registry: MediaRegistry`
* `url: string`
* `options: MediaOptions`

#### Returns

* `ViewContainerElement`

<a id="function-getSelectedMediaModelWidget">

### `getSelectedMediaModelWidget( selection ) → ModelElement | null` _(internal)_

Returns a selected media element in the model, if any.

[See source](https://github.com/ckeditor/ckeditor5/blob/master/packages/ckeditor5-media-embed/src/utils.ts#L100)

#### Parameters

* `selection: ModelSelection | ModelDocumentSelection`

#### Returns

* `ModelElement | null`

<a id="function-getSelectedMediaViewWidget">

### `getSelectedMediaViewWidget( selection ) → ViewElement | null` _(internal)_

Returns a media widget editing view element if one is selected.

[See source](https://github.com/ckeditor/ckeditor5/blob/master/packages/ckeditor5-media-embed/src/utils.ts#L45)

#### Parameters

* `selection: ViewDocumentSelection`

#### Returns

* `ViewElement | null`

<a id="function-insertMedia">

### `insertMedia( model, url, selectable, findOptimalPosition ) → void` _(internal)_

Creates a media element and inserts it into the model.

**Note**: This method will use [`model.insertContent()`](module_engine_model_model-Model.md#function-insertContent) logic of inserting content if no `insertPosition` is passed.

[See source](https://github.com/ckeditor/ckeditor5/blob/master/packages/ckeditor5-media-embed/src/utils.ts#L121)

#### Parameters

* `model: Model`

* `url: string`

  An URL of an embeddable media.

* `selectable: ModelSelectable`

* `findOptimalPosition: boolean`

  If true it will try to find optimal position to insert media without breaking content in which a selection is.

#### Returns

* `void`

<a id="function-isMediaWidget">

### `isMediaWidget( viewElement ) → boolean` _(internal)_

Checks if a given view element is a media widget.

[See source](https://github.com/ckeditor/ckeditor5/blob/master/packages/ckeditor5-media-embed/src/utils.ts#L60)

#### Parameters

* `viewElement: ViewElement`

#### Returns

* `boolean`

<a id="function-toMediaWidget">

### `toMediaWidget( viewElement, writer, label ) → ViewElement` _(internal)_

Converts a given [`ViewElement`](module_engine_view_element-ViewElement.md) to a media embed widget:

* Adds a [custom property](module_engine_view_element-ViewElement.md#function-_setCustomProperty) allowing to recognize the media widget element.
* Calls the [`toWidget`](module_widget_utils.md#function-toWidget) function with the proper element's label creator.

[See source](https://github.com/ckeditor/ckeditor5/blob/master/packages/ckeditor5-media-embed/src/utils.ts#L34)

#### Parameters

* `viewElement: ViewElement`

* `writer: ViewDowncastWriter`

  An instance of the view writer.

* `label: string`

  The element's label.

#### Returns

* `ViewElement`

---

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