# elementor/trunk/modules/atomic-widgets/elements/atomic-background-video/handlers/editor-background-video-state.js

Elementor Website Builder – more than just a page builder, version trunk. 42 lines.

- Page: https://pluginprobe.com/plugins/elementor/trunk/code/modules/atomic-widgets/elements/atomic-background-video/handlers/editor-background-video-state.js
- Raw: https://pluginprobe.com/plugins/elementor/trunk/raw/modules/atomic-widgets/elements/atomic-background-video/handlers/editor-background-video-state.js
- Modified: 2026-09-17T09:04:38+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/elementor/trunk/code/modules/atomic-widgets/elements/atomic-background-video/handlers/editor-background-video-state.js#L10-L20`.

```javascript
import { Alpine } from '@elementor/alpinejs';

const STORE_NAME = 'editor-background-video-state';
const PLAYING_STATE = 'playing';
const PAUSED_STATE = 'paused';

/**
 * @typedef {Record<string, 'playing' | 'paused' | ''>} BackgroundVideoState
 */

function ensureStore() {
	if ( ! Alpine.store( STORE_NAME ) ) {
		Alpine.store( STORE_NAME, /** @type {BackgroundVideoState} */ ( {} ) );
	}

	return /** @type {BackgroundVideoState} */ ( Alpine.store( STORE_NAME ) );
}

export function resolveDesignTimeState( state ) {
	if ( PAUSED_STATE === state || '' === state ) {
		return state;
	}

	return PLAYING_STATE;
}

export function getEditorState( elementId, fallback = PLAYING_STATE ) {
	const store = ensureStore();

	return store[ elementId ] ?? fallback;
}

export function setEditorState( elementId, state ) {
	const store = ensureStore();

	store[ elementId ] = state;
}

export function isEditorPreview() {
	return Boolean( window.elementorFrontend?.isEditMode?.() || window.parent?.elementor );
}

```
