@elementor/editor-elements 4.0.0-650 → 4.0.0-659
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +5 -3
- package/dist/index.d.ts +5 -3
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +19 -19
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -7
- package/src/sync/delete-element.ts +3 -3
- package/src/sync/replace-element.ts +6 -6
- package/src/sync/types.ts +2 -0
package/dist/index.d.mts
CHANGED
|
@@ -120,6 +120,8 @@ type ConfigPropValue = {
|
|
|
120
120
|
replay: BooleanPropValue;
|
|
121
121
|
easing: StringPropValue;
|
|
122
122
|
relativeTo: StringPropValue;
|
|
123
|
+
repeat: StringPropValue;
|
|
124
|
+
times: NumberPropValue;
|
|
123
125
|
start?: SizePropValue;
|
|
124
126
|
end?: SizePropValue;
|
|
125
127
|
};
|
|
@@ -280,7 +282,7 @@ type DeleteElementParams = {
|
|
|
280
282
|
container: V1Element;
|
|
281
283
|
options?: Options$3;
|
|
282
284
|
};
|
|
283
|
-
declare function deleteElement({ container, options }: DeleteElementParams):
|
|
285
|
+
declare function deleteElement({ container, options }: DeleteElementParams): void;
|
|
284
286
|
|
|
285
287
|
type Options$2 = {
|
|
286
288
|
useHistory?: boolean;
|
|
@@ -424,11 +426,11 @@ type RemovedElementsResult = {
|
|
|
424
426
|
declare const removeElements: ({ elementIds, title, subtitle, onRemoveElements, onRestoreElements, }: RemoveElementsParams) => RemovedElementsResult;
|
|
425
427
|
|
|
426
428
|
type ReplaceElementArgs = {
|
|
427
|
-
|
|
429
|
+
currentElementId: string;
|
|
428
430
|
newElement: Omit<V1ElementModelProps, 'id'>;
|
|
429
431
|
withHistory?: boolean;
|
|
430
432
|
};
|
|
431
|
-
declare const replaceElement: ({
|
|
433
|
+
declare const replaceElement: ({ currentElementId, newElement, withHistory }: ReplaceElementArgs) => V1Element;
|
|
432
434
|
|
|
433
435
|
declare const updateElementEditorSettings: ({ elementId, settings, }: {
|
|
434
436
|
elementId: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -120,6 +120,8 @@ type ConfigPropValue = {
|
|
|
120
120
|
replay: BooleanPropValue;
|
|
121
121
|
easing: StringPropValue;
|
|
122
122
|
relativeTo: StringPropValue;
|
|
123
|
+
repeat: StringPropValue;
|
|
124
|
+
times: NumberPropValue;
|
|
123
125
|
start?: SizePropValue;
|
|
124
126
|
end?: SizePropValue;
|
|
125
127
|
};
|
|
@@ -280,7 +282,7 @@ type DeleteElementParams = {
|
|
|
280
282
|
container: V1Element;
|
|
281
283
|
options?: Options$3;
|
|
282
284
|
};
|
|
283
|
-
declare function deleteElement({ container, options }: DeleteElementParams):
|
|
285
|
+
declare function deleteElement({ container, options }: DeleteElementParams): void;
|
|
284
286
|
|
|
285
287
|
type Options$2 = {
|
|
286
288
|
useHistory?: boolean;
|
|
@@ -424,11 +426,11 @@ type RemovedElementsResult = {
|
|
|
424
426
|
declare const removeElements: ({ elementIds, title, subtitle, onRemoveElements, onRestoreElements, }: RemoveElementsParams) => RemovedElementsResult;
|
|
425
427
|
|
|
426
428
|
type ReplaceElementArgs = {
|
|
427
|
-
|
|
429
|
+
currentElementId: string;
|
|
428
430
|
newElement: Omit<V1ElementModelProps, 'id'>;
|
|
429
431
|
withHistory?: boolean;
|
|
430
432
|
};
|
|
431
|
-
declare const replaceElement: ({
|
|
433
|
+
declare const replaceElement: ({ currentElementId, newElement, withHistory }: ReplaceElementArgs) => V1Element;
|
|
432
434
|
|
|
433
435
|
declare const updateElementEditorSettings: ({ elementId, settings, }: {
|
|
434
436
|
elementId: string;
|
package/dist/index.js
CHANGED
|
@@ -309,7 +309,7 @@ var import_i18n = require("@wordpress/i18n");
|
|
|
309
309
|
// src/sync/delete-element.ts
|
|
310
310
|
var import_editor_v1_adapters8 = require("@elementor/editor-v1-adapters");
|
|
311
311
|
function deleteElement({ container, options = {} }) {
|
|
312
|
-
|
|
312
|
+
(0, import_editor_v1_adapters8.__privateRunCommandSync)("document/elements/delete", {
|
|
313
313
|
container,
|
|
314
314
|
options
|
|
315
315
|
});
|
|
@@ -769,10 +769,10 @@ var removeElements = ({
|
|
|
769
769
|
};
|
|
770
770
|
|
|
771
771
|
// src/sync/replace-element.ts
|
|
772
|
-
var replaceElement =
|
|
773
|
-
const currentElementContainer = getContainer(
|
|
772
|
+
var replaceElement = ({ currentElementId, newElement, withHistory = true }) => {
|
|
773
|
+
const currentElementContainer = getContainer(currentElementId);
|
|
774
774
|
if (!currentElementContainer) {
|
|
775
|
-
throw new ElementNotFoundError({ context: { elementId:
|
|
775
|
+
throw new ElementNotFoundError({ context: { elementId: currentElementId } });
|
|
776
776
|
}
|
|
777
777
|
const { container, index } = getNewElementContainer(currentElementContainer, newElement);
|
|
778
778
|
const newElementInstance = createElement({
|
|
@@ -780,7 +780,7 @@ var replaceElement = async ({ currentElement, newElement, withHistory = true })
|
|
|
780
780
|
model: newElement,
|
|
781
781
|
options: { at: index, useHistory: withHistory }
|
|
782
782
|
});
|
|
783
|
-
|
|
783
|
+
deleteElement({ container: currentElementContainer, options: { useHistory: withHistory } });
|
|
784
784
|
return newElementInstance;
|
|
785
785
|
};
|
|
786
786
|
function getNewElementContainer(currentElementContainer, newElement) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/hooks/use-element-children.ts","../src/sync/get-container.ts","../src/sync/model-utils.ts","../src/hooks/use-element-editor-settings.ts","../src/sync/get-element-editor-settings.ts","../src/hooks/use-parent-element.ts","../src/hooks/use-selected-element.ts","../src/sync/get-widgets-cache.ts","../src/sync/get-element-type.ts","../src/sync/get-selected-elements.ts","../src/hooks/use-selected-element-settings.ts","../src/sync/get-element-setting.ts","../src/sync/create-element.ts","../src/sync/create-elements.ts","../src/sync/delete-element.ts","../src/sync/drop-element.ts","../src/sync/duplicate-element.ts","../src/sync/duplicate-elements.ts","../src/sync/generate-element-id.ts","../src/sync/get-current-document-container.ts","../src/sync/get-current-document-id.ts","../src/errors.ts","../src/sync/get-element-label.ts","../src/sync/get-element-styles.ts","../src/sync/get-all-descendants.ts","../src/sync/get-elements.ts","../src/sync/move-element.ts","../src/sync/move-elements.ts","../src/sync/remove-elements.ts","../src/sync/replace-element.ts","../src/sync/update-element-editor-settings.ts","../src/sync/update-element-settings.ts","../src/link-restriction.ts","../src/styles/consts.ts","../src/styles/create-element-style.ts","../src/styles/mutate-element-styles.ts","../src/styles/delete-element-style.ts","../src/styles/update-element-style.ts","../src/hooks/use-element-interactions.ts","../src/sync/get-element-interactions.ts","../src/sync/update-element-interactions.ts"],"sourcesContent":["// types\nexport * from './types';\nexport type * from './sync/types';\n\n// hooks\nexport { useElementChildren, type ElementChildren, type ElementModel } from './hooks/use-element-children';\nexport { useElementEditorSettings } from './hooks/use-element-editor-settings';\nexport { useParentElement } from './hooks/use-parent-element';\nexport { useSelectedElement } from './hooks/use-selected-element';\nexport { useSelectedElementSettings } from './hooks/use-selected-element-settings';\n\n// utils\nexport { createElement, type CreateElementParams } from './sync/create-element';\nexport { createElements } from './sync/create-elements';\nexport { deleteElement } from './sync/delete-element';\nexport { dropElement, type DropElementParams } from './sync/drop-element';\nexport { duplicateElement, type DuplicateElementParams } from './sync/duplicate-element';\nexport {\n\tduplicateElements,\n\ttype DuplicatedElement,\n\ttype DuplicatedElementsResult,\n\ttype DuplicateElementsParams,\n} from './sync/duplicate-elements';\nexport { generateElementId } from './sync/generate-element-id';\nexport { getContainer, selectElement } from './sync/get-container';\nexport { getCurrentDocumentContainer } from './sync/get-current-document-container';\nexport { getCurrentDocumentId } from './sync/get-current-document-id';\nexport { getElementEditorSettings } from './sync/get-element-editor-settings';\nexport { getElementLabel } from './sync/get-element-label';\nexport { getElementSetting, getElementSettings } from './sync/get-element-setting';\nexport { getElementStyles } from './sync/get-element-styles';\nexport { getElementType } from './sync/get-element-type';\nexport { getAllDescendants } from './sync/get-all-descendants';\nexport {\n\tfindChildRecursive,\n\tgetElementChildren as getElementChildrenWithFallback,\n\ttype ModelResult,\n} from './sync/model-utils';\nexport { getElements } from './sync/get-elements';\nexport { getSelectedElements } from './sync/get-selected-elements';\nexport { getWidgetsCache } from './sync/get-widgets-cache';\nexport { moveElement, type MoveElementParams } from './sync/move-element';\nexport { moveElements } from './sync/move-elements';\nexport { removeElements } from './sync/remove-elements';\nexport { replaceElement } from './sync/replace-element';\nexport { updateElementEditorSettings } from './sync/update-element-editor-settings';\nexport { updateElementSettings, type UpdateElementSettingsArgs } from './sync/update-element-settings';\n\nexport {\n\tgetAnchoredAncestorId,\n\tgetAnchoredDescendantId,\n\tgetLinkInLinkRestriction,\n\tisElementAnchored,\n\ttype LinkInLinkRestriction,\n} from './link-restriction';\nexport { ELEMENT_STYLE_CHANGE_EVENT, styleRerenderEvents } from './styles/consts';\nexport {\n\tcreateElementStyle,\n\tshouldCreateNewLocalStyle,\n\ttype CreateElementStyleArgs,\n} from './styles/create-element-style';\nexport { deleteElementStyle } from './styles/delete-element-style';\nexport { updateElementStyle, type UpdateElementStyleArgs } from './styles/update-element-style';\n\nexport { useElementInteractions } from './hooks/use-element-interactions';\nexport { getElementInteractions } from './sync/get-element-interactions';\nexport { playElementInteractions, updateElementInteractions } from './sync/update-element-interactions';\n","import { __privateUseListenTo as useListenTo, commandEndEvent, v1ReadyEvent } from '@elementor/editor-v1-adapters';\n\nimport { getContainer } from '../sync/get-container';\nimport { findChildRecursive, getElementChildren, type ModelResult } from '../sync/model-utils';\nimport { type V1ElementEditorSettingsProps } from '../sync/types';\nimport { type ElementID } from '../types';\n\nexport type ElementModel = {\n\tid: string;\n\teditorSettings: V1ElementEditorSettingsProps;\n};\n\nexport type ElementChildren = Record< string, ElementModel[] >;\n\nfunction toElementModel( { model }: ModelResult ): ElementModel {\n\treturn {\n\t\tid: model.get( 'id' ) as string,\n\t\teditorSettings: model.get( 'editor_settings' ) ?? {},\n\t};\n}\n\nexport function useElementChildren< T extends ElementChildren >(\n\telementId: ElementID,\n\tchildrenTypes: Record< string, string >\n): T {\n\treturn useListenTo(\n\t\t[\n\t\t\tv1ReadyEvent(),\n\t\t\tcommandEndEvent( 'document/elements/create' ),\n\t\t\tcommandEndEvent( 'document/elements/delete' ),\n\t\t\tcommandEndEvent( 'document/elements/update' ),\n\t\t\tcommandEndEvent( 'document/elements/set-settings' ),\n\t\t],\n\t\t() => {\n\t\t\tconst container = getContainer( elementId );\n\t\t\tconst model = container?.model;\n\n\t\t\tif ( ! model ) {\n\t\t\t\treturn {} as ElementChildren;\n\t\t\t}\n\n\t\t\tconst elementChildren = Object.entries( childrenTypes ).reduce( ( acc, [ parentType, childType ] ) => {\n\t\t\t\tconst parent = findChildRecursive( model, ( m ) => m.get( 'elType' ) === parentType );\n\n\t\t\t\tif ( ! parent ) {\n\t\t\t\t\tacc[ childType ] = [];\n\t\t\t\t\treturn acc;\n\t\t\t\t}\n\n\t\t\t\tconst children = getElementChildren( parent.model, ( m ) => m.get( 'elType' ) === childType );\n\n\t\t\t\tacc[ childType ] = children.map( toElementModel );\n\n\t\t\t\treturn acc;\n\t\t\t}, {} as ElementChildren );\n\n\t\t\treturn elementChildren;\n\t\t},\n\t\t[ elementId ]\n\t) as T;\n}\n","import { __privateRunCommand as runCommand } from '@elementor/editor-v1-adapters';\n\nimport { type ExtendedWindow, type V1Element } from './types';\n\nexport function getContainer( id: string ): V1Element | null {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\tconst container = extendedWindow.elementor?.getContainer?.( id );\n\n\treturn container ?? null;\n}\n\nexport const selectElement = ( elementId: string ) => {\n\ttry {\n\t\tconst container = getContainer( elementId );\n\n\t\trunCommand( 'document/elements/select', { container } );\n\t} catch {}\n};\n","import { type V1Element } from './types';\n\nexport type V1Model = V1Element[ 'model' ];\n\nexport type V1Collection = V1Model[] & {\n\tremove: ( model: V1Model ) => void;\n\tadd: ( model: V1Model, options?: { at?: number }, silent?: boolean ) => void;\n\tindexOf: ( model: V1Model ) => number;\n};\n\nexport type ModelResult = {\n\tmodel: V1Model;\n};\n\nexport function findChildRecursive( model: V1Model, predicate: ( model: V1Model ) => boolean ): ModelResult | null {\n\tconst childModels = ( model.get( 'elements' ) ?? [] ) as V1Model[];\n\n\tfor ( const childModel of childModels ) {\n\t\tif ( predicate( childModel ) ) {\n\t\t\treturn { model: childModel };\n\t\t}\n\n\t\tconst found = findChildRecursive( childModel, predicate );\n\n\t\tif ( found ) {\n\t\t\treturn found;\n\t\t}\n\t}\n\n\treturn null;\n}\n\nexport function getElementChildren( model: V1Model, predicate?: ( model: V1Model ) => boolean ): ModelResult[] {\n\tconst childModels = ( model.get( 'elements' ) ?? [] ) as V1Model[];\n\n\treturn childModels\n\t\t.filter( ( childModel ) => ! predicate || predicate( childModel ) )\n\t\t.map( ( childModel ) => ( { model: childModel } ) );\n}\n","import { __privateUseListenTo as useListenTo, windowEvent } from '@elementor/editor-v1-adapters';\n\nimport { getElementEditorSettings } from '../sync/get-element-editor-settings';\nimport { type ElementID } from '../types';\n\nexport const useElementEditorSettings = ( elementId: ElementID ) => {\n\treturn useListenTo(\n\t\twindowEvent( 'elementor/element/update_editor_settings' ),\n\t\t() => getElementEditorSettings( elementId ),\n\t\t[ elementId ]\n\t);\n};\n","import { type ElementID } from '../types';\nimport { getContainer } from './get-container';\n\nexport function getElementEditorSettings( elementId: ElementID ) {\n\tconst container = getContainer( elementId );\n\n\treturn container?.model.get( 'editor_settings' ) ?? {};\n}\n","import { __privateUseListenTo as useListenTo, commandEndEvent } from '@elementor/editor-v1-adapters';\n\nimport { type ExtendedWindow } from '../sync/types';\n\nexport function useParentElement( elementId: string | null ) {\n\treturn useListenTo(\n\t\t[ commandEndEvent( 'document/elements/create' ) ],\n\t\t() => {\n\t\t\tif ( ! elementId ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst extendedWindow = window as unknown as ExtendedWindow;\n\t\t\tconst element = extendedWindow?.elementor?.getContainer?.( elementId );\n\t\t\tif ( ! element ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn element.parent;\n\t\t},\n\t\t[ elementId ]\n\t);\n}\n","import { __privateUseListenTo as useListenTo, commandEndEvent } from '@elementor/editor-v1-adapters';\n\nimport { getSelectedElement } from '../sync/get-selected-elements';\n\nexport function useSelectedElement() {\n\treturn useListenTo(\n\t\t[\n\t\t\tcommandEndEvent( 'document/elements/select' ),\n\t\t\tcommandEndEvent( 'document/elements/deselect' ),\n\t\t\tcommandEndEvent( 'document/elements/select-all' ),\n\t\t\tcommandEndEvent( 'document/elements/deselect-all' ),\n\t\t],\n\t\tgetSelectedElement\n\t);\n}\n","import { type ExtendedWindow, type V1ElementConfig } from '../sync/types.js';\ntype WidgetsCache< T > = Record< string, T >;\n\nexport function getWidgetsCache< T extends V1ElementConfig >(): WidgetsCache< T > | null {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn ( extendedWindow?.elementor?.widgetsCache as WidgetsCache< T > ) || null;\n}\n","import { type ElementType } from '../types';\nimport { getWidgetsCache } from './get-widgets-cache';\n\nexport function getElementType( type: string ): ElementType | null {\n\tif ( ! type ) {\n\t\treturn null;\n\t}\n\n\tconst widgetsCache = getWidgetsCache();\n\tconst elementType = widgetsCache?.[ type ];\n\n\tif ( ! elementType?.atomic_controls ) {\n\t\treturn null;\n\t}\n\n\tif ( ! elementType?.atomic_props_schema ) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\tkey: type,\n\t\tcontrols: elementType.atomic_controls,\n\t\tpropsSchema: elementType.atomic_props_schema,\n\t\tdependenciesPerTargetMapping: elementType.dependencies_per_target_mapping ?? {},\n\t\ttitle: elementType.title,\n\t\tstyleStates: elementType.atomic_style_states ?? [],\n\t\tpseudoStates: elementType.atomic_pseudo_states ?? [],\n\t};\n}\n","import { type Element, type ElementType } from '../types';\nimport { getElementType } from './get-element-type';\nimport { type ExtendedWindow } from './types';\n\nexport function getSelectedElements(): Element[] {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\tconst selectedElements = extendedWindow.elementor?.selection?.getElements?.() ?? [];\n\n\treturn selectedElements.reduce< Element[] >( ( acc, el ) => {\n\t\tconst type = el.model.get( 'widgetType' ) || el.model.get( 'elType' );\n\n\t\tif ( type ) {\n\t\t\tacc.push( {\n\t\t\t\tid: el.model.get( 'id' ),\n\t\t\t\ttype,\n\t\t\t} );\n\t\t}\n\n\t\treturn acc;\n\t}, [] );\n}\n\ntype GetSelectedElementTypeResult =\n\t| {\n\t\t\telement: Element;\n\t\t\telementType: ElementType;\n\t }\n\t| {\n\t\t\telement: null;\n\t\t\telementType: null;\n\t };\n\nexport function getSelectedElement(): GetSelectedElementTypeResult {\n\tconst elements = getSelectedElements();\n\n\tconst [ element ] = elements;\n\tconst elementType = getElementType( element?.type );\n\n\tif ( elements.length !== 1 || ! elementType || ! element ) {\n\t\treturn { element: null, elementType: null };\n\t}\n\n\treturn { element, elementType };\n}\n","import { type AnyTransformable } from '@elementor/editor-props';\nimport { __privateUseListenTo as useListenTo, commandEndEvent } from '@elementor/editor-v1-adapters';\n\nimport { getElementSettings } from '../sync/get-element-setting';\nimport { getSelectedElement } from '../sync/get-selected-elements';\nimport { type Element, type ElementType } from '../types';\n\ntype UseSelectedElementSettingsResult< TValue > =\n\t| {\n\t\t\telement: Element;\n\t\t\telementType: ElementType;\n\t\t\tsettings: Record< string, TValue | null >;\n\t }\n\t| {\n\t\t\telement: null;\n\t\t\telementType: null;\n\t\t\tsettings: null;\n\t };\n\n// Use the selected element and it's settings,\n// and subscribe to changes on both the selected element and its settings.\n// This ensures the element and its settings are synced.\nexport function useSelectedElementSettings< TValue = AnyTransformable >(): UseSelectedElementSettingsResult< TValue > {\n\treturn useListenTo(\n\t\t[\n\t\t\tcommandEndEvent( 'document/elements/select' ),\n\t\t\tcommandEndEvent( 'document/elements/deselect' ),\n\t\t\tcommandEndEvent( 'document/elements/select-all' ),\n\t\t\tcommandEndEvent( 'document/elements/deselect-all' ),\n\t\t\tcommandEndEvent( 'document/elements/set-settings' ),\n\t\t],\n\t\t() => {\n\t\t\tconst { element, elementType } = getSelectedElement();\n\n\t\t\tif ( ! element || ! elementType ) {\n\t\t\t\treturn { element: null, elementType: null, settings: null };\n\t\t\t}\n\n\t\t\tconst settings = getElementSettings< TValue >( element.id, Object.keys( elementType.propsSchema ) );\n\n\t\t\treturn {\n\t\t\t\telement,\n\t\t\t\telementType,\n\t\t\t\tsettings,\n\t\t\t};\n\t\t}\n\t);\n}\n","import { type ElementID } from '../types';\nimport { getContainer } from './get-container';\n\nexport const getElementSetting = < TValue >( elementId: ElementID, settingKey: string ): TValue | null => {\n\tconst container = getContainer( elementId );\n\n\treturn ( container?.settings?.get( settingKey ) as TValue ) ?? null;\n};\n\nexport const getElementSettings = < TValue >(\n\telementId: ElementID,\n\tsettingKey: string[]\n): Record< string, TValue | null > => {\n\treturn Object.fromEntries( settingKey.map( ( key ) => [ key, getElementSetting( elementId, key ) ] ) );\n};\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type V1Element, type V1ElementModelProps, type V1ElementSettingsProps } from './types';\n\ntype Options = {\n\tuseHistory?: boolean;\n\tat?: number;\n\tclone?: boolean;\n};\n\nexport type CreateElementParams = {\n\tcontainer: V1Element;\n\tmodel?: Omit< V1ElementModelProps, 'settings' | 'id' > & { settings?: V1ElementSettingsProps; id?: string };\n\toptions?: Options;\n};\n\nexport function createElement( { container, model, options }: CreateElementParams ): V1Element {\n\treturn runCommandSync< V1Element >( 'document/elements/create', {\n\t\tcontainer,\n\t\tmodel,\n\t\toptions: { edit: false, ...options },\n\t} );\n}\n","import { undoable } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nimport { createElement, type CreateElementParams } from './create-element';\nimport { deleteElement } from './delete-element';\nimport { type V1Element, type V1ElementModelProps } from './types';\n\ntype CreateElementsParams = {\n\telements: CreateElementParams[];\n\ttitle: string;\n\tsubtitle?: string;\n};\n\ntype CreatedElement = {\n\tcontainer: V1Element;\n\tparentContainer: V1Element;\n\tmodel: V1ElementModelProps;\n\toptions?: CreateElementParams[ 'options' ];\n};\n\ntype CreatedElementsResult = {\n\tcreatedElements: CreatedElement[];\n};\n\nexport type { CreateElementsParams, CreatedElement, CreatedElementsResult };\n\nexport const createElements = ( {\n\telements,\n\ttitle,\n\tsubtitle = __( 'Item added', 'elementor' ),\n}: CreateElementsParams ): CreatedElementsResult => {\n\tconst undoableCreate = undoable(\n\t\t{\n\t\t\tdo: ( { elements: elementsParam }: { elements: CreateElementParams[] } ): CreatedElementsResult => {\n\t\t\t\tconst createdElements: CreatedElement[] = [];\n\n\t\t\t\telementsParam.forEach( ( { container, options, ...elementParams } ) => {\n\t\t\t\t\tconst parentContainer = container.lookup?.() ?? container;\n\n\t\t\t\t\tif ( ! parentContainer ) {\n\t\t\t\t\t\tthrow new Error( 'Parent container not found' );\n\t\t\t\t\t}\n\n\t\t\t\t\tconst element = createElement( {\n\t\t\t\t\t\tcontainer: parentContainer,\n\t\t\t\t\t\t...elementParams,\n\t\t\t\t\t\toptions: { ...options, useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tcreatedElements.push( {\n\t\t\t\t\t\tcontainer: element,\n\t\t\t\t\t\tparentContainer,\n\t\t\t\t\t\tmodel: element.model?.toJSON() || {},\n\t\t\t\t\t\toptions,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { createdElements };\n\t\t\t},\n\t\t\tundo: ( _: { elements: CreateElementParams[] }, { createdElements }: CreatedElementsResult ) => {\n\t\t\t\t[ ...createdElements ].reverse().forEach( ( { container } ) => {\n\t\t\t\t\tconst freshContainer = container.lookup?.();\n\n\t\t\t\t\tif ( freshContainer ) {\n\t\t\t\t\t\tdeleteElement( {\n\t\t\t\t\t\t\tcontainer: freshContainer,\n\t\t\t\t\t\t\toptions: { useHistory: false },\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t},\n\t\t\tredo: (\n\t\t\t\t_: { elements: CreateElementParams[] },\n\t\t\t\t{ createdElements }: CreatedElementsResult\n\t\t\t): CreatedElementsResult => {\n\t\t\t\tconst newElements: CreatedElement[] = [];\n\n\t\t\t\tcreatedElements.forEach( ( { parentContainer, model, options } ) => {\n\t\t\t\t\tconst freshParent = parentContainer.lookup?.();\n\n\t\t\t\t\tif ( ! freshParent ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst element = createElement( {\n\t\t\t\t\t\tcontainer: freshParent,\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\toptions: { ...options, useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tnewElements.push( {\n\t\t\t\t\t\tcontainer: element,\n\t\t\t\t\t\tparentContainer: freshParent,\n\t\t\t\t\t\tmodel: element.model.toJSON(),\n\t\t\t\t\t\toptions,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { createdElements: newElements };\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttitle,\n\t\t\tsubtitle,\n\t\t}\n\t);\n\n\treturn undoableCreate( { elements } );\n};\n","import { __privateRunCommand as runCommand } from '@elementor/editor-v1-adapters';\n\nimport { type V1Element } from './types';\n\ntype Options = {\n\tuseHistory?: boolean;\n\tat?: number;\n};\n\ntype DeleteElementParams = {\n\tcontainer: V1Element;\n\toptions?: Options;\n};\n\nexport function deleteElement( { container, options = {} }: DeleteElementParams ): Promise< void > {\n\treturn runCommand( 'document/elements/delete', {\n\t\tcontainer,\n\t\toptions,\n\t} );\n}\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { getContainer } from './get-container';\nimport { type V1Element, type V1ElementModelProps, type V1ElementSettingsProps } from './types';\n\ntype Options = {\n\tuseHistory?: boolean;\n\tat?: number;\n\tscrollIntoView: boolean;\n};\n\nexport type DropElementParams = {\n\tcontainerId: string;\n\toptions?: Options;\n\tmodel?: Omit< V1ElementModelProps, 'settings' | 'id' > & { settings?: V1ElementSettingsProps; id?: string };\n};\n\nexport function dropElement( { containerId, model, options }: DropElementParams ) {\n\tconst container = getContainer( containerId );\n\n\tif ( ! container ) {\n\t\tthrow new Error( `Container with ID \"${ containerId }\" not found` );\n\t}\n\n\treturn runCommandSync< V1Element >( 'preview/drop', {\n\t\tcontainer,\n\t\tmodel,\n\t\toptions,\n\t} );\n}\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type V1Element } from './types';\n\ntype Options = {\n\tuseHistory?: boolean;\n\tat?: number;\n\tclone?: boolean;\n};\n\nexport type DuplicateElementParams = {\n\telement: V1Element;\n\toptions?: Options;\n};\n\nexport function duplicateElement( { element, options = {} }: DuplicateElementParams ): V1Element {\n\tconst currentIndex = element.view?._index ?? 0;\n\tconst insertPosition = options.clone !== false ? currentIndex + 1 : undefined;\n\n\treturn runCommandSync< V1Element >( 'document/elements/duplicate', {\n\t\tcontainer: element,\n\t\toptions: { at: insertPosition, edit: false, ...options },\n\t} );\n}\n","import { undoable } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nimport { createElement } from './create-element';\nimport { deleteElement } from './delete-element';\nimport { duplicateElement } from './duplicate-element';\nimport { getContainer } from './get-container';\nimport { type V1Element, type V1ElementModelProps } from './types';\n\ntype DuplicateElementsParams = {\n\telementIds: string[];\n\ttitle: string;\n\tsubtitle?: string;\n\tonDuplicateElements?: () => void;\n\tonRestoreElements?: () => void;\n};\n\ntype DuplicatedElement = {\n\tcontainer: V1Element;\n\tparentContainer: V1Element;\n\tmodel: V1ElementModelProps;\n\tat?: number;\n};\n\ntype DuplicatedElementsResult = {\n\tduplicatedElements: DuplicatedElement[];\n};\n\nexport type { DuplicateElementsParams, DuplicatedElement, DuplicatedElementsResult };\n\nexport const duplicateElements = ( {\n\telementIds,\n\ttitle,\n\tsubtitle = __( 'Item duplicated', 'elementor' ),\n\tonDuplicateElements,\n\tonRestoreElements,\n}: DuplicateElementsParams ): DuplicatedElementsResult => {\n\tconst undoableDuplicate = undoable(\n\t\t{\n\t\t\tdo: ( { elementIds: elementIdsToDuplicate }: { elementIds: string[] } ): DuplicatedElementsResult => {\n\t\t\t\tonDuplicateElements?.();\n\t\t\t\tconst duplicatedElements: DuplicatedElement[] = [];\n\n\t\t\t\telementIdsToDuplicate.forEach( ( elementId ) => {\n\t\t\t\t\tconst originalContainer = getContainer( elementId );\n\n\t\t\t\t\tif ( ! originalContainer?.parent ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst duplicatedElement = duplicateElement( {\n\t\t\t\t\t\telement: originalContainer,\n\t\t\t\t\t\toptions: { useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tif ( ! duplicatedElement.parent ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tduplicatedElements.push( {\n\t\t\t\t\t\tcontainer: duplicatedElement,\n\t\t\t\t\t\tparentContainer: duplicatedElement.parent,\n\t\t\t\t\t\tmodel: duplicatedElement.model.toJSON(),\n\t\t\t\t\t\tat: duplicatedElement.view?._index,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { duplicatedElements };\n\t\t\t},\n\t\t\tundo: ( _: { elementIds: string[] }, { duplicatedElements }: DuplicatedElementsResult ) => {\n\t\t\t\tonRestoreElements?.();\n\t\t\t\t[ ...duplicatedElements ].reverse().forEach( ( { container } ) => {\n\t\t\t\t\tdeleteElement( {\n\t\t\t\t\t\tcontainer,\n\t\t\t\t\t\toptions: { useHistory: false },\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t},\n\t\t\tredo: (\n\t\t\t\t_: { elementIds: string[] },\n\t\t\t\t{ duplicatedElements: previousElements }: DuplicatedElementsResult\n\t\t\t): DuplicatedElementsResult => {\n\t\t\t\tonDuplicateElements?.();\n\t\t\t\tconst duplicatedElements: DuplicatedElement[] = [];\n\n\t\t\t\tpreviousElements.forEach( ( { parentContainer, model, at } ) => {\n\t\t\t\t\tconst freshParent = parentContainer.lookup?.();\n\n\t\t\t\t\tif ( freshParent ) {\n\t\t\t\t\t\tconst createdElement = createElement( {\n\t\t\t\t\t\t\tcontainer: freshParent,\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\toptions: { useHistory: false, clone: false, at },\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\tduplicatedElements.push( {\n\t\t\t\t\t\t\tcontainer: createdElement,\n\t\t\t\t\t\t\tparentContainer: freshParent,\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\tat,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\treturn { duplicatedElements };\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttitle,\n\t\t\tsubtitle,\n\t\t}\n\t);\n\n\treturn undoableDuplicate( { elementIds } );\n};\n","import { type ExtendedWindow } from './types';\n\nexport const generateElementId = () => {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn (\n\t\textendedWindow.elementorCommon?.helpers?.getUniqueId?.() ??\n\t\t`el-${ Date.now() }-${ Math.random().toString( 36 ).substring( 2, 9 ) }`\n\t);\n};\n","import { type ExtendedWindow } from './types';\n\nexport function getCurrentDocumentContainer() {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn extendedWindow.elementor?.documents?.getCurrent?.()?.container ?? null;\n}\n","import { type ExtendedWindow } from './types';\n\nexport function getCurrentDocumentId() {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn extendedWindow.elementor?.documents?.getCurrentId?.() ?? null;\n}\n","import { createError } from '@elementor/utils';\n\nexport const ElementNotFoundError = createError< { elementId: string } >( {\n\tcode: 'element_not_found',\n\tmessage: 'Element not found.',\n} );\n\nexport const StyleNotFoundError = createError< { styleId: string } >( {\n\tcode: 'style_not_found',\n\tmessage: 'Style not found.',\n} );\n\nexport const ElementTypeNotExistsError = createError< { elementId: string } >( {\n\tcode: 'element_type_not_exists',\n\tmessage: 'Element type does not exist.',\n} );\n\nexport const ElementLabelNotExistsError = createError< { elementType: string } >( {\n\tcode: 'element_label_not_exists',\n\tmessage: 'Element label does not exist.',\n} );\n\nexport const ElementParentNotFoundError = createError< { elementId: string } >( {\n\tcode: 'element_parent_not_found',\n\tmessage: 'Element parent not found.',\n} );\n\nexport const ElementIndexNotFoundError = createError< { elementId: string } >( {\n\tcode: 'element_index_not_found',\n\tmessage: 'Element index not found.',\n} );\n","import { ElementLabelNotExistsError, ElementTypeNotExistsError } from '../errors';\nimport { getContainer } from '../sync/get-container';\nimport { getWidgetsCache } from '../sync/get-widgets-cache';\nimport { type ElementID } from '../types';\nimport { getSelectedElements } from './get-selected-elements';\n\nexport function getElementLabel( elementId?: ElementID ) {\n\tif ( ! elementId ) {\n\t\telementId = getSelectedElements()?.[ 0 ]?.id;\n\t}\n\n\tconst container = getContainer( elementId );\n\n\tconst type = container?.model.get( 'widgetType' ) || container?.model.get( 'elType' );\n\n\tif ( ! type ) {\n\t\tthrow new ElementTypeNotExistsError( { context: { elementId } } );\n\t}\n\n\tconst label = getWidgetsCache()?.[ type ]?.title;\n\n\tif ( ! label ) {\n\t\tthrow new ElementLabelNotExistsError( { context: { elementType: type } } );\n\t}\n\n\treturn label;\n}\n","import { type StyleDefinition } from '@elementor/editor-styles';\n\nimport { type ElementID } from '../types';\nimport { getContainer } from './get-container';\n\nexport const getElementStyles = ( elementID: ElementID ): Record< string, StyleDefinition > | null => {\n\tconst container = getContainer( elementID );\n\n\treturn container?.model.get( 'styles' ) || null;\n};\n","import { type V1Element } from './types';\n\nexport function getAllDescendants( container: V1Element ): V1Element[] {\n\tconst children = ( container.children ?? [] ).flatMap( ( child ) => getAllDescendants( child as V1Element ) );\n\n\treturn [ container, ...children ];\n}\n","import { type ElementID } from '../types';\nimport { getContainer } from './get-container';\nimport { getCurrentDocumentContainer } from './get-current-document-container';\nimport { type V1Element } from './types';\n\nexport function getElements( root?: ElementID ): V1Element[] {\n\tconst container = root ? getContainer( root ) : getCurrentDocumentContainer();\n\n\tif ( ! container ) {\n\t\treturn [];\n\t}\n\n\tconst children = [ ...( container.model.get( 'elements' ) ?? [] ) ].flatMap( ( childModel ) =>\n\t\tgetElements( childModel.get( 'id' ) )\n\t);\n\n\treturn [ container, ...children ];\n}\n","import { createElement } from './create-element';\nimport { deleteElement } from './delete-element';\nimport { type V1Element } from './types';\n\ntype Options = {\n\tuseHistory?: boolean;\n\tat?: number;\n\tedit?: boolean;\n};\n\nexport type MoveElementParams = {\n\telement: V1Element;\n\ttargetContainer: V1Element;\n\toptions?: Options;\n};\n\nexport function moveElement( { element, targetContainer, options = {} }: MoveElementParams ): V1Element {\n\tconst resolvedElement = element.lookup?.();\n\tconst resolvedTarget = targetContainer.lookup?.();\n\n\tif ( ! resolvedElement ) {\n\t\tthrow new Error( `Element not found: ${ element.id }` );\n\t}\n\n\tif ( ! resolvedTarget ) {\n\t\tthrow new Error( `Target container not found: ${ targetContainer.id }` );\n\t}\n\n\tconst modelToRecreate = resolvedElement.model.toJSON();\n\n\tdeleteElement( {\n\t\tcontainer: resolvedElement,\n\t\toptions: { ...options, useHistory: false },\n\t} );\n\n\tconst newContainer = createElement( {\n\t\tcontainer: resolvedTarget,\n\t\tmodel: modelToRecreate,\n\t\toptions: { edit: false, ...options, useHistory: false },\n\t} );\n\n\treturn newContainer;\n}\n","import { undoable } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nimport { moveElement } from './move-element';\nimport { type V1Element } from './types';\n\ntype MoveOptions = {\n\tuseHistory?: boolean;\n\tat?: number;\n\tedit?: boolean;\n};\n\ntype MoveInput = {\n\telement: V1Element;\n\ttargetContainer: V1Element;\n\toptions?: MoveOptions;\n};\n\ntype MoveElementsParams = {\n\tmoves: MoveInput[];\n\ttitle: string;\n\tsubtitle?: string;\n\tonMoveElements?: () => void;\n\tonRestoreElements?: () => void;\n};\n\ntype MovedElement = {\n\telement: V1Element;\n\toriginalContainer: V1Element;\n\toriginalIndex: number;\n\ttargetContainer: V1Element;\n\toptions?: MoveOptions;\n};\n\ntype MovedElementsResult = {\n\tmovedElements: MovedElement[];\n};\n\nexport type { MoveElementsParams, MoveInput, MovedElement, MovedElementsResult };\n\nexport const moveElements = ( {\n\tmoves: movesToMake,\n\ttitle,\n\tsubtitle = __( 'Elements moved', 'elementor' ),\n\tonMoveElements,\n\tonRestoreElements,\n}: MoveElementsParams ): MovedElementsResult => {\n\tconst undoableMove = undoable(\n\t\t{\n\t\t\tdo: ( { moves }: { moves: MoveInput[] } ): MovedElementsResult => {\n\t\t\t\tconst movedElements: MovedElement[] = [];\n\t\t\t\tonMoveElements?.();\n\n\t\t\t\tmoves.forEach( ( { element, targetContainer, options } ) => {\n\t\t\t\t\tconst sourceElement = element.lookup?.() ?? element;\n\t\t\t\t\tconst target = targetContainer.lookup?.() ?? targetContainer;\n\n\t\t\t\t\tif ( ! sourceElement ) {\n\t\t\t\t\t\tthrow new Error( 'Element not found' );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! target ) {\n\t\t\t\t\t\tthrow new Error( 'Target container not found' );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! sourceElement.parent ) {\n\t\t\t\t\t\tthrow new Error( 'Element has no parent container' );\n\t\t\t\t\t}\n\n\t\t\t\t\tconst originalContainer = sourceElement.parent;\n\t\t\t\t\tconst originalIndex = originalContainer.children?.indexOf( sourceElement ) ?? -1;\n\n\t\t\t\t\tconst newElement = moveElement( {\n\t\t\t\t\t\telement: sourceElement,\n\t\t\t\t\t\ttargetContainer: target,\n\t\t\t\t\t\toptions: { ...options, useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tmovedElements.push( {\n\t\t\t\t\t\telement: newElement,\n\t\t\t\t\t\toriginalContainer,\n\t\t\t\t\t\toriginalIndex,\n\t\t\t\t\t\ttargetContainer: target,\n\t\t\t\t\t\toptions,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { movedElements };\n\t\t\t},\n\t\t\tundo: ( _: { moves: MoveInput[] }, { movedElements }: MovedElementsResult ) => {\n\t\t\t\tonRestoreElements?.();\n\n\t\t\t\t[ ...movedElements ].reverse().forEach( ( { element, originalContainer, originalIndex } ) => {\n\t\t\t\t\tconst freshElement = element.lookup?.();\n\t\t\t\t\tconst freshOriginalContainer = originalContainer.lookup?.();\n\n\t\t\t\t\tif ( ! freshElement || ! freshOriginalContainer ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveElement( {\n\t\t\t\t\t\telement: freshElement,\n\t\t\t\t\t\ttargetContainer: freshOriginalContainer,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tuseHistory: false,\n\t\t\t\t\t\t\tat: originalIndex >= 0 ? originalIndex : undefined,\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t},\n\t\t\tredo: ( _: { moves: MoveInput[] }, { movedElements }: MovedElementsResult ): MovedElementsResult => {\n\t\t\t\tconst newMovedElements: MovedElement[] = [];\n\t\t\t\tonMoveElements?.();\n\n\t\t\t\tmovedElements.forEach( ( { element, originalContainer, originalIndex, targetContainer, options } ) => {\n\t\t\t\t\tconst freshElement = element.lookup?.();\n\t\t\t\t\tconst freshOriginalContainer = originalContainer.lookup?.();\n\t\t\t\t\tconst freshTarget = targetContainer.lookup?.();\n\n\t\t\t\t\tif ( ! freshElement || ! freshOriginalContainer || ! freshTarget ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst newElement = moveElement( {\n\t\t\t\t\t\telement: freshElement,\n\t\t\t\t\t\ttargetContainer: freshTarget,\n\t\t\t\t\t\toptions: { ...options, useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tnewMovedElements.push( {\n\t\t\t\t\t\telement: newElement,\n\t\t\t\t\t\toriginalContainer: freshOriginalContainer,\n\t\t\t\t\t\toriginalIndex,\n\t\t\t\t\t\ttargetContainer: freshTarget,\n\t\t\t\t\t\toptions,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { movedElements: newMovedElements };\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttitle,\n\t\t\tsubtitle,\n\t\t}\n\t);\n\n\treturn undoableMove( { moves: movesToMake } );\n};\n","import { undoable } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nimport { createElement } from './create-element';\nimport { deleteElement } from './delete-element';\nimport { getContainer } from './get-container';\nimport { type V1Element, type V1ElementModelProps } from './types';\n\ntype RemoveElementsParams = {\n\telementIds: string[];\n\ttitle: string;\n\tsubtitle?: string;\n\tonRemoveElements?: () => void;\n\tonRestoreElements?: () => void;\n};\n\ntype RemovedElement = {\n\tcontainer: V1Element;\n\tparent: V1Element;\n\tmodel: V1ElementModelProps;\n\tat: number;\n};\n\ntype RemovedElementsResult = {\n\tremovedElements: RemovedElement[];\n};\n\nexport const removeElements = ( {\n\telementIds,\n\ttitle,\n\tsubtitle = __( 'Item removed', 'elementor' ),\n\tonRemoveElements,\n\tonRestoreElements,\n}: RemoveElementsParams ): RemovedElementsResult => {\n\tconst undoableRemove = undoable(\n\t\t{\n\t\t\tdo: ( { elementIds: elementIdsParam }: { elementIds: string[] } ): RemovedElementsResult => {\n\t\t\t\tconst removedElements: RemovedElement[] = [];\n\n\t\t\t\telementIdsParam.forEach( ( elementId ) => {\n\t\t\t\t\tconst container = getContainer( elementId );\n\n\t\t\t\t\tif ( container?.parent ) {\n\t\t\t\t\t\tremovedElements.push( {\n\t\t\t\t\t\t\tcontainer,\n\t\t\t\t\t\t\tparent: container.parent,\n\t\t\t\t\t\t\tmodel: container.model.toJSON(),\n\t\t\t\t\t\t\tat: container.view?._index ?? 0,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\tonRemoveElements?.();\n\n\t\t\t\tremovedElements.forEach( ( { container } ) => {\n\t\t\t\t\tdeleteElement( {\n\t\t\t\t\t\tcontainer,\n\t\t\t\t\t\toptions: { useHistory: false },\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { removedElements };\n\t\t\t},\n\t\t\tundo: ( _: { elementIds: string[] }, { removedElements }: RemovedElementsResult ) => {\n\t\t\t\tonRestoreElements?.();\n\n\t\t\t\t[ ...removedElements ].reverse().forEach( ( { parent, model, at } ) => {\n\t\t\t\t\tconst freshParent = parent.lookup?.();\n\n\t\t\t\t\tif ( freshParent ) {\n\t\t\t\t\t\tcreateElement( {\n\t\t\t\t\t\t\tcontainer: freshParent,\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\toptions: { useHistory: false, at },\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t},\n\t\t\tredo: (\n\t\t\t\t_: { elementIds: string[] },\n\t\t\t\t{ removedElements }: RemovedElementsResult\n\t\t\t): RemovedElementsResult => {\n\t\t\t\tonRemoveElements?.();\n\n\t\t\t\tconst newRemovedElements: RemovedElement[] = [];\n\n\t\t\t\tremovedElements.forEach( ( { container, parent, model, at } ) => {\n\t\t\t\t\tconst freshContainer = container.lookup?.();\n\t\t\t\t\tconst freshParent = parent.lookup?.();\n\n\t\t\t\t\tif ( ! freshContainer || ! freshParent ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tdeleteElement( {\n\t\t\t\t\t\tcontainer: freshContainer,\n\t\t\t\t\t\toptions: { useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tnewRemovedElements.push( {\n\t\t\t\t\t\tcontainer: freshContainer,\n\t\t\t\t\t\tparent: freshParent,\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tat,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { removedElements: newRemovedElements };\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttitle,\n\t\t\tsubtitle,\n\t\t}\n\t);\n\n\treturn undoableRemove( { elementIds } );\n};\n","import { ElementIndexNotFoundError, ElementNotFoundError, ElementParentNotFoundError } from '../errors';\nimport { createElement } from './create-element';\nimport { deleteElement } from './delete-element';\nimport { getContainer } from './get-container';\nimport { type V1Element, type V1ElementData, type V1ElementModelProps } from './types';\n\ntype ElementLocation = {\n\tcontainer: V1Element;\n\tindex: number;\n};\n\ntype ReplaceElementArgs = {\n\tcurrentElement: V1ElementData;\n\tnewElement: Omit< V1ElementModelProps, 'id' >;\n\twithHistory?: boolean;\n};\n\nexport const replaceElement = async ( { currentElement, newElement, withHistory = true }: ReplaceElementArgs ) => {\n\tconst currentElementContainer = getContainer( currentElement.id );\n\n\tif ( ! currentElementContainer ) {\n\t\tthrow new ElementNotFoundError( { context: { elementId: currentElement.id } } );\n\t}\n\n\tconst { container, index } = getNewElementContainer( currentElementContainer, newElement );\n\n\tconst newElementInstance = createElement( {\n\t\tcontainer,\n\t\tmodel: newElement,\n\t\toptions: { at: index, useHistory: withHistory },\n\t} );\n\n\tawait deleteElement( { container: currentElementContainer, options: { useHistory: withHistory } } );\n\n\treturn newElementInstance;\n};\n\nfunction getNewElementContainer(\n\tcurrentElementContainer: V1Element,\n\tnewElement: Omit< V1ElementModelProps, 'id' >\n): ElementLocation {\n\tconst { parent } = currentElementContainer;\n\n\tif ( ! parent ) {\n\t\tthrow new ElementParentNotFoundError( { context: { elementId: currentElementContainer.id } } );\n\t}\n\n\tconst elementIndex = currentElementContainer.view?._index ?? 0;\n\n\tif ( elementIndex === -1 ) {\n\t\tthrow new ElementIndexNotFoundError( { context: { elementId: currentElementContainer.id } } );\n\t}\n\n\tlet location: ElementLocation = { container: parent, index: elementIndex };\n\n\tif ( parent.id === 'document' && newElement.elType === 'widget' ) {\n\t\tlocation = createWrapperForWidget( parent, elementIndex );\n\t}\n\n\treturn location;\n}\n\nconst DEFAULT_CONTAINER_TYPE = 'e-flexbox';\n\nfunction createWrapperForWidget( parent: V1Element, elementIndex: number ): ElementLocation {\n\tconst container = createElement( {\n\t\tcontainer: parent,\n\t\tmodel: { elType: DEFAULT_CONTAINER_TYPE },\n\t\toptions: { at: elementIndex, useHistory: false },\n\t} );\n\n\treturn { container, index: 0 };\n}\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type V1ElementModelProps } from '..';\nimport { getContainer } from './get-container';\n\nexport const updateElementEditorSettings = ( {\n\telementId,\n\tsettings,\n}: {\n\telementId: string;\n\tsettings: V1ElementModelProps[ 'editor_settings' ];\n} ) => {\n\tconst element = getContainer( elementId );\n\n\tif ( ! element ) {\n\t\tthrow new Error( `Element with id ${ elementId } not found` );\n\t}\n\n\tconst editorSettings = element.model.get( 'editor_settings' ) ?? {};\n\n\telement.model.set( 'editor_settings', { ...editorSettings, ...settings } );\n\n\trunCommandSync( 'document/save/set-is-modified', { status: true }, { internal: true } );\n};\n","import { type Props } from '@elementor/editor-props';\nimport { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type ElementID } from '../types';\nimport { getContainer } from './get-container';\n\nexport type UpdateElementSettingsArgs = {\n\tid: ElementID;\n\tprops: Props;\n\twithHistory?: boolean;\n};\n\nexport const updateElementSettings = ( { id, props, withHistory = true }: UpdateElementSettingsArgs ) => {\n\tconst container = getContainer( id );\n\n\tif ( ! container ) {\n\t\treturn;\n\t}\n\n\tconst args = {\n\t\tcontainer,\n\t\tsettings: { ...props },\n\t};\n\n\tif ( withHistory ) {\n\t\trunCommandSync( 'document/elements/settings', args );\n\t} else {\n\t\trunCommandSync( 'document/elements/set-settings', args, { internal: true } );\n\t}\n};\n","import { type LinkPropValue } from '@elementor/editor-props';\n\nimport { getContainer } from './sync/get-container';\nimport { getElementSetting } from './sync/get-element-setting';\n\nconst ANCHOR_SELECTOR = 'a, [data-action-link]';\n\ntype LinkValue = LinkPropValue[ 'value' ];\n\nexport type LinkInLinkRestriction =\n\t| {\n\t\t\tshouldRestrict: true;\n\t\t\treason: 'ancestor' | 'descendant';\n\t\t\telementId: string | null;\n\t }\n\t| {\n\t\t\tshouldRestrict: false;\n\t\t\treason?: never;\n\t\t\telementId?: never;\n\t };\n\nexport function getLinkInLinkRestriction( elementId: string, resolvedValue?: LinkValue ): LinkInLinkRestriction {\n\tconst anchoredDescendantId = getAnchoredDescendantId( elementId );\n\n\tif ( anchoredDescendantId ) {\n\t\treturn {\n\t\t\tshouldRestrict: true,\n\t\t\treason: 'descendant',\n\t\t\telementId: anchoredDescendantId,\n\t\t};\n\t}\n\n\tconst hasInlineLink = checkForInlineLink( elementId, resolvedValue );\n\n\tif ( hasInlineLink ) {\n\t\treturn {\n\t\t\tshouldRestrict: true,\n\t\t\treason: 'descendant',\n\t\t\telementId,\n\t\t};\n\t}\n\n\tconst ancestor = getAnchoredAncestorId( elementId );\n\n\tif ( ancestor ) {\n\t\treturn {\n\t\t\tshouldRestrict: true,\n\t\t\treason: 'ancestor',\n\t\t\telementId: ancestor,\n\t\t};\n\t}\n\n\treturn {\n\t\tshouldRestrict: false,\n\t};\n}\n\nexport function getAnchoredDescendantId( elementId: string ): string | null {\n\tconst element = getElementDOM( elementId );\n\n\tif ( ! element ) {\n\t\treturn null;\n\t}\n\n\tfor ( const childAnchorElement of Array.from( element.querySelectorAll( ANCHOR_SELECTOR ) ) ) {\n\t\t// Ensure the child is not in the current element's scope\n\t\tconst childElementId = findElementIdOf( childAnchorElement );\n\n\t\tif ( childElementId !== elementId ) {\n\t\t\treturn childElementId;\n\t\t}\n\t}\n\n\treturn null;\n}\n\nexport function getAnchoredAncestorId( elementId: string ): string | null {\n\tconst element = getElementDOM( elementId );\n\n\tif ( ! element || element.parentElement === null ) {\n\t\treturn null;\n\t}\n\n\tconst parentAnchor = element.parentElement.closest( ANCHOR_SELECTOR );\n\n\treturn parentAnchor ? findElementIdOf( parentAnchor ) : null;\n}\n\nexport function isElementAnchored( elementId: string ): boolean {\n\tconst element = getElementDOM( elementId ) as HTMLElement;\n\n\tif ( ! element ) {\n\t\treturn false;\n\t}\n\n\tif ( element.matches( ANCHOR_SELECTOR ) ) {\n\t\treturn true;\n\t}\n\n\treturn doesElementContainAnchor( element );\n}\n\nfunction doesElementContainAnchor( element: Element ): boolean {\n\tfor ( const child of Array.from( element.children ) as HTMLElement[] ) {\n\t\tif ( isElementorElement( child ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ( child.matches( ANCHOR_SELECTOR ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif ( doesElementContainAnchor( child ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\nfunction findElementIdOf( element: Element ): string | null {\n\treturn element.closest< HTMLElement >( '[data-id]' )?.dataset.id || null;\n}\n\nfunction checkForInlineLink( elementId: string, resolvedValue?: LinkValue ): boolean {\n\tconst element = getElementDOM( elementId );\n\n\tif ( ! element ) {\n\t\treturn false;\n\t}\n\n\tif ( element.matches( ANCHOR_SELECTOR ) ) {\n\t\treturn false;\n\t}\n\n\tconst linkSetting = resolvedValue ?? getElementSetting< LinkPropValue >( elementId, 'link' )?.value;\n\n\tif ( linkSetting?.destination ) {\n\t\treturn false;\n\t}\n\n\treturn element.querySelector( ANCHOR_SELECTOR ) !== null;\n}\n\nfunction getElementDOM( id: string ) {\n\ttry {\n\t\treturn getContainer( id )?.view?.el || null;\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nfunction isElementorElement( element: Element ): boolean {\n\treturn element.hasAttribute( 'data-id' );\n}\n","import { commandEndEvent, windowEvent } from '@elementor/editor-v1-adapters';\n\nexport const ELEMENT_STYLE_CHANGE_EVENT = 'elementor/editor-v2/editor-elements/style';\n\nexport const styleRerenderEvents = [\n\tcommandEndEvent( 'document/elements/create' ),\n\tcommandEndEvent( 'document/elements/duplicate' ),\n\tcommandEndEvent( 'document/elements/import' ),\n\tcommandEndEvent( 'document/elements/paste' ),\n\twindowEvent( ELEMENT_STYLE_CHANGE_EVENT ),\n];\n","import { classesPropTypeUtil } from '@elementor/editor-props';\nimport {\n\tgenerateId,\n\ttype StyleDefinition,\n\ttype StyleDefinitionID,\n\ttype StyleDefinitionVariant,\n} from '@elementor/editor-styles';\n\nimport { getElementSetting } from '../sync/get-element-setting';\nimport { updateElementSettings } from '../sync/update-element-settings';\nimport { type ElementID } from '../types';\nimport { mutateElementStyles } from './mutate-element-styles';\n\nexport type CreateElementStyleArgs = {\n\tstyleId?: StyleDefinitionID;\n\telementId: ElementID;\n\tclassesProp: string;\n\tlabel: string;\n\tmeta: StyleDefinitionVariant[ 'meta' ];\n\tprops: StyleDefinitionVariant[ 'props' ];\n\tcustom_css?: StyleDefinitionVariant[ 'custom_css' ];\n\tadditionalVariants?: StyleDefinitionVariant[];\n};\n\nexport function createElementStyle( {\n\tstyleId,\n\telementId,\n\tclassesProp,\n\tlabel,\n\tmeta,\n\tprops,\n\tcustom_css: customCss = null,\n\tadditionalVariants = [],\n}: CreateElementStyleArgs ): string {\n\tlet id = styleId;\n\n\tmutateElementStyles( elementId, ( styles ) => {\n\t\tid ??= generateId( `e-${ elementId }-`, Object.keys( styles ) );\n\n\t\tconst variants = [ { meta, props, custom_css: customCss }, ...additionalVariants ];\n\n\t\tstyles[ id ] = {\n\t\t\tid,\n\t\t\tlabel,\n\t\t\ttype: 'class',\n\t\t\tvariants,\n\t\t} satisfies StyleDefinition;\n\n\t\taddStyleToClassesProp( elementId, classesProp, id );\n\n\t\treturn styles;\n\t} );\n\n\treturn id as string;\n}\n\nfunction addStyleToClassesProp( elementId: ElementID, classesProp: string, styleId: string ) {\n\tconst base = getElementSetting( elementId, classesProp );\n\n\tconst classesPropValue = classesPropTypeUtil.create(\n\t\t( prev ) => {\n\t\t\treturn [ ...( prev ?? [] ), styleId ];\n\t\t},\n\t\t{ base }\n\t);\n\n\tupdateElementSettings( {\n\t\tid: elementId,\n\t\tprops: {\n\t\t\t[ classesProp ]: classesPropValue,\n\t\t},\n\t\twithHistory: false,\n\t} );\n}\n\nexport function shouldCreateNewLocalStyle< T >(\n\tpayload: { styleId: StyleDefinition[ 'id' ] | null; provider: T | null } | null\n) {\n\treturn ! payload?.styleId && ! payload?.provider;\n}\n","import { classesPropTypeUtil, type ClassesPropValue } from '@elementor/editor-props';\nimport { type StyleDefinition, type StyleDefinitionsMap } from '@elementor/editor-styles';\nimport { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { ElementNotFoundError } from '../errors';\nimport { getContainer } from '../sync/get-container';\nimport { type V1Element } from '../sync/types';\nimport { updateElementSettings } from '../sync/update-element-settings';\nimport { type ElementID } from '../types';\nimport { ELEMENT_STYLE_CHANGE_EVENT } from './consts';\n\ntype Mutator = ( styles: StyleDefinitionsMap ) => StyleDefinitionsMap;\n\nexport function mutateElementStyles( elementId: ElementID, mutator: Mutator ) {\n\tconst container = getContainer( elementId );\n\n\tif ( ! container ) {\n\t\tthrow new ElementNotFoundError( { context: { elementId } } );\n\t}\n\n\tconst oldIds = Object.keys( container.model.get( 'styles' ) ?? {} );\n\n\tconst styles = mutateStyles( container, mutator );\n\n\tconst newIds = Object.keys( styles );\n\n\tclearRemovedClasses( container, {\n\t\toldIds,\n\t\tnewIds,\n\t} );\n\n\tnotifyChanges();\n\n\treturn styles;\n}\n\nfunction mutateStyles( container: V1Element, mutator: Mutator ) {\n\tconst styles: StyleDefinitionsMap = structuredClone( container.model.get( 'styles' ) ) ?? {};\n\n\tconst entries = Object.entries( mutator( styles ) )\n\t\t.map( ( [ styleId, style ] ) => {\n\t\t\tstyle.variants = removeEmptyVariants( style );\n\n\t\t\treturn [ styleId, style ] as const;\n\t\t} )\n\t\t.filter( ( [ , style ] ) => {\n\t\t\treturn ! isStyleEmpty( style );\n\t\t} );\n\n\tconst mutatedStyles = Object.fromEntries( entries );\n\n\tcontainer.model.set( 'styles', mutatedStyles );\n\n\treturn mutatedStyles;\n}\n\nfunction removeEmptyVariants( style: StyleDefinition ) {\n\treturn style.variants.filter(\n\t\t( { props, custom_css: customCss } ) => Object.keys( props ).length > 0 || customCss?.raw\n\t);\n}\n\nfunction isStyleEmpty( style: StyleDefinition ) {\n\treturn style.variants.length === 0;\n}\n\nfunction clearRemovedClasses( container: V1Element, { oldIds, newIds }: { oldIds: string[]; newIds: string[] } ) {\n\tconst removedIds = oldIds.filter( ( id ) => ! newIds.includes( id ) );\n\tconst classesProps = structuredClone( getClassesProps( container ) );\n\n\tclassesProps.forEach( ( [ , prop ] ) => {\n\t\tprop.value = prop.value.filter( ( value ) => ! removedIds.includes( value ) );\n\t} );\n\n\tupdateElementSettings( {\n\t\tid: container.id,\n\t\tprops: Object.fromEntries( classesProps ),\n\t\twithHistory: false,\n\t} );\n}\n\nfunction getClassesProps( container: V1Element ) {\n\treturn Object.entries( container.settings.toJSON() ).filter( ( prop ): prop is [ string, ClassesPropValue ] => {\n\t\tconst [ , value ] = prop;\n\n\t\treturn classesPropTypeUtil.isValid( value );\n\t} );\n}\n\nfunction notifyChanges() {\n\tdispatchChangeEvent();\n\trunCommandSync( 'document/save/set-is-modified', { status: true }, { internal: true } );\n}\n\nfunction dispatchChangeEvent() {\n\twindow.dispatchEvent( new CustomEvent( ELEMENT_STYLE_CHANGE_EVENT ) );\n}\n","import { type StyleDefinitionID } from '@elementor/editor-styles';\n\nimport { type ElementID } from '../types';\nimport { mutateElementStyles } from './mutate-element-styles';\n\nexport function deleteElementStyle( elementId: ElementID, styleId: StyleDefinitionID ) {\n\tmutateElementStyles( elementId, ( styles ) => {\n\t\t// The object is deep cloned so mutating it is fine.\n\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\tdelete styles[ styleId ];\n\n\t\treturn styles;\n\t} );\n}\n","import { mergeProps } from '@elementor/editor-props';\nimport { getVariantByMeta, type StyleDefinition, type StyleDefinitionVariant } from '@elementor/editor-styles';\n\nimport { StyleNotFoundError } from '../errors';\nimport { type ElementID } from '../types';\nimport { mutateElementStyles } from './mutate-element-styles';\n\nexport type UpdateElementStyleArgs = {\n\telementId: ElementID;\n\tstyleId: StyleDefinition[ 'id' ];\n\tmeta: StyleDefinitionVariant[ 'meta' ];\n\tprops: StyleDefinitionVariant[ 'props' ];\n\tcustom_css?: StyleDefinitionVariant[ 'custom_css' ];\n};\n\nexport function updateElementStyle( args: UpdateElementStyleArgs ) {\n\tmutateElementStyles( args.elementId, ( styles ) => {\n\t\tconst style = styles[ args.styleId ];\n\n\t\tif ( ! style ) {\n\t\t\tthrow new StyleNotFoundError( { context: { styleId: args.styleId } } );\n\t\t}\n\n\t\tconst variant = getVariantByMeta( style, args.meta );\n\t\tconst customCss = ( 'custom_css' in args ? args.custom_css : variant?.custom_css ) ?? null;\n\n\t\tif ( variant ) {\n\t\t\tvariant.props = mergeProps( variant.props, args.props );\n\t\t\tvariant.custom_css = customCss?.raw ? customCss : null;\n\t\t} else {\n\t\t\tstyle.variants.push( { meta: args.meta, props: args.props, custom_css: customCss } );\n\t\t}\n\n\t\treturn styles;\n\t} );\n}\n","import { useState } from 'react';\nimport { __privateUseListenTo as useListenTo, windowEvent } from '@elementor/editor-v1-adapters';\n\nimport { getElementInteractions } from '../sync/get-element-interactions';\nimport { type ElementInteractions } from '../sync/types';\nimport { type ElementID } from '../types';\n\nexport const useElementInteractions = ( elementId: ElementID ) => {\n\tconst [ interactions, setInteractions ] = useState< ElementInteractions >( () => {\n\t\tconst initial = getElementInteractions( elementId );\n\n\t\treturn initial ?? { version: 1, items: [] };\n\t} );\n\n\tuseListenTo(\n\t\twindowEvent( 'elementor/element/update_interactions' ),\n\t\t() => {\n\t\t\tconst newInteractions = getElementInteractions( elementId );\n\t\t\tsetInteractions( newInteractions ?? { version: 1, items: [] } );\n\t\t},\n\t\t[ elementId ]\n\t);\n\n\treturn interactions;\n};\n","import { type ElementID } from '../types';\nimport { getContainer } from './get-container';\nimport { type ElementInteractions } from './types';\n\nexport function getElementInteractions( elementId: ElementID ): ElementInteractions | undefined {\n\tconst container = getContainer( elementId );\n\n\tconst interactions = container?.model?.get( 'interactions' );\n\n\tif ( typeof interactions === 'string' ) {\n\t\treturn JSON.parse( interactions ) as ElementInteractions;\n\t}\n\n\treturn interactions;\n}\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type V1ElementModelProps } from '..';\nimport { getContainer } from './get-container';\n\nexport const updateElementInteractions = ( {\n\telementId,\n\tinteractions,\n}: {\n\telementId: string;\n\tinteractions: V1ElementModelProps[ 'interactions' ];\n} ) => {\n\tconst element = getContainer( elementId );\n\n\tif ( ! element ) {\n\t\tthrow new Error( `Element with id ${ elementId } not found` );\n\t}\n\n\telement.model.set( 'interactions', interactions );\n\n\twindow.dispatchEvent( new CustomEvent( 'elementor/element/update_interactions' ) );\n\n\trunCommandSync( 'document/save/set-is-modified', { status: true }, { internal: true } );\n};\n\nexport const playElementInteractions = ( elementId: string, interactionId: string ) => {\n\twindow.top?.dispatchEvent(\n\t\tnew CustomEvent( 'atomic/play_interactions', { detail: { elementId, interactionId } } )\n\t);\n};\n"],"mappings":"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","names":["import_editor_v1_adapters","runCommand","useListenTo","import_editor_v1_adapters","useListenTo","import_editor_v1_adapters","useListenTo","import_editor_v1_adapters","useListenTo","import_editor_v1_adapters","useListenTo","import_editor_v1_adapters","runCommandSync","import_editor_v1_adapters","import_editor_v1_adapters","runCommand","import_editor_v1_adapters","runCommandSync","import_editor_v1_adapters","runCommandSync","import_editor_v1_adapters","import_i18n","import_editor_v1_adapters","import_i18n","import_editor_v1_adapters","import_i18n","import_editor_v1_adapters","runCommandSync","import_editor_v1_adapters","runCommandSync","import_editor_v1_adapters","import_editor_props","import_editor_v1_adapters","runCommandSync","import_editor_props","import_editor_styles","import_editor_v1_adapters","useListenTo","import_editor_v1_adapters","runCommandSync"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/hooks/use-element-children.ts","../src/sync/get-container.ts","../src/sync/model-utils.ts","../src/hooks/use-element-editor-settings.ts","../src/sync/get-element-editor-settings.ts","../src/hooks/use-parent-element.ts","../src/hooks/use-selected-element.ts","../src/sync/get-widgets-cache.ts","../src/sync/get-element-type.ts","../src/sync/get-selected-elements.ts","../src/hooks/use-selected-element-settings.ts","../src/sync/get-element-setting.ts","../src/sync/create-element.ts","../src/sync/create-elements.ts","../src/sync/delete-element.ts","../src/sync/drop-element.ts","../src/sync/duplicate-element.ts","../src/sync/duplicate-elements.ts","../src/sync/generate-element-id.ts","../src/sync/get-current-document-container.ts","../src/sync/get-current-document-id.ts","../src/errors.ts","../src/sync/get-element-label.ts","../src/sync/get-element-styles.ts","../src/sync/get-all-descendants.ts","../src/sync/get-elements.ts","../src/sync/move-element.ts","../src/sync/move-elements.ts","../src/sync/remove-elements.ts","../src/sync/replace-element.ts","../src/sync/update-element-editor-settings.ts","../src/sync/update-element-settings.ts","../src/link-restriction.ts","../src/styles/consts.ts","../src/styles/create-element-style.ts","../src/styles/mutate-element-styles.ts","../src/styles/delete-element-style.ts","../src/styles/update-element-style.ts","../src/hooks/use-element-interactions.ts","../src/sync/get-element-interactions.ts","../src/sync/update-element-interactions.ts"],"sourcesContent":["// types\nexport * from './types';\nexport type * from './sync/types';\n\n// hooks\nexport { useElementChildren, type ElementChildren, type ElementModel } from './hooks/use-element-children';\nexport { useElementEditorSettings } from './hooks/use-element-editor-settings';\nexport { useParentElement } from './hooks/use-parent-element';\nexport { useSelectedElement } from './hooks/use-selected-element';\nexport { useSelectedElementSettings } from './hooks/use-selected-element-settings';\n\n// utils\nexport { createElement, type CreateElementParams } from './sync/create-element';\nexport { createElements } from './sync/create-elements';\nexport { deleteElement } from './sync/delete-element';\nexport { dropElement, type DropElementParams } from './sync/drop-element';\nexport { duplicateElement, type DuplicateElementParams } from './sync/duplicate-element';\nexport {\n\tduplicateElements,\n\ttype DuplicatedElement,\n\ttype DuplicatedElementsResult,\n\ttype DuplicateElementsParams,\n} from './sync/duplicate-elements';\nexport { generateElementId } from './sync/generate-element-id';\nexport { getContainer, selectElement } from './sync/get-container';\nexport { getCurrentDocumentContainer } from './sync/get-current-document-container';\nexport { getCurrentDocumentId } from './sync/get-current-document-id';\nexport { getElementEditorSettings } from './sync/get-element-editor-settings';\nexport { getElementLabel } from './sync/get-element-label';\nexport { getElementSetting, getElementSettings } from './sync/get-element-setting';\nexport { getElementStyles } from './sync/get-element-styles';\nexport { getElementType } from './sync/get-element-type';\nexport { getAllDescendants } from './sync/get-all-descendants';\nexport {\n\tfindChildRecursive,\n\tgetElementChildren as getElementChildrenWithFallback,\n\ttype ModelResult,\n} from './sync/model-utils';\nexport { getElements } from './sync/get-elements';\nexport { getSelectedElements } from './sync/get-selected-elements';\nexport { getWidgetsCache } from './sync/get-widgets-cache';\nexport { moveElement, type MoveElementParams } from './sync/move-element';\nexport { moveElements } from './sync/move-elements';\nexport { removeElements } from './sync/remove-elements';\nexport { replaceElement } from './sync/replace-element';\nexport { updateElementEditorSettings } from './sync/update-element-editor-settings';\nexport { updateElementSettings, type UpdateElementSettingsArgs } from './sync/update-element-settings';\n\nexport {\n\tgetAnchoredAncestorId,\n\tgetAnchoredDescendantId,\n\tgetLinkInLinkRestriction,\n\tisElementAnchored,\n\ttype LinkInLinkRestriction,\n} from './link-restriction';\nexport { ELEMENT_STYLE_CHANGE_EVENT, styleRerenderEvents } from './styles/consts';\nexport {\n\tcreateElementStyle,\n\tshouldCreateNewLocalStyle,\n\ttype CreateElementStyleArgs,\n} from './styles/create-element-style';\nexport { deleteElementStyle } from './styles/delete-element-style';\nexport { updateElementStyle, type UpdateElementStyleArgs } from './styles/update-element-style';\n\nexport { useElementInteractions } from './hooks/use-element-interactions';\nexport { getElementInteractions } from './sync/get-element-interactions';\nexport { playElementInteractions, updateElementInteractions } from './sync/update-element-interactions';\n","import { __privateUseListenTo as useListenTo, commandEndEvent, v1ReadyEvent } from '@elementor/editor-v1-adapters';\n\nimport { getContainer } from '../sync/get-container';\nimport { findChildRecursive, getElementChildren, type ModelResult } from '../sync/model-utils';\nimport { type V1ElementEditorSettingsProps } from '../sync/types';\nimport { type ElementID } from '../types';\n\nexport type ElementModel = {\n\tid: string;\n\teditorSettings: V1ElementEditorSettingsProps;\n};\n\nexport type ElementChildren = Record< string, ElementModel[] >;\n\nfunction toElementModel( { model }: ModelResult ): ElementModel {\n\treturn {\n\t\tid: model.get( 'id' ) as string,\n\t\teditorSettings: model.get( 'editor_settings' ) ?? {},\n\t};\n}\n\nexport function useElementChildren< T extends ElementChildren >(\n\telementId: ElementID,\n\tchildrenTypes: Record< string, string >\n): T {\n\treturn useListenTo(\n\t\t[\n\t\t\tv1ReadyEvent(),\n\t\t\tcommandEndEvent( 'document/elements/create' ),\n\t\t\tcommandEndEvent( 'document/elements/delete' ),\n\t\t\tcommandEndEvent( 'document/elements/update' ),\n\t\t\tcommandEndEvent( 'document/elements/set-settings' ),\n\t\t],\n\t\t() => {\n\t\t\tconst container = getContainer( elementId );\n\t\t\tconst model = container?.model;\n\n\t\t\tif ( ! model ) {\n\t\t\t\treturn {} as ElementChildren;\n\t\t\t}\n\n\t\t\tconst elementChildren = Object.entries( childrenTypes ).reduce( ( acc, [ parentType, childType ] ) => {\n\t\t\t\tconst parent = findChildRecursive( model, ( m ) => m.get( 'elType' ) === parentType );\n\n\t\t\t\tif ( ! parent ) {\n\t\t\t\t\tacc[ childType ] = [];\n\t\t\t\t\treturn acc;\n\t\t\t\t}\n\n\t\t\t\tconst children = getElementChildren( parent.model, ( m ) => m.get( 'elType' ) === childType );\n\n\t\t\t\tacc[ childType ] = children.map( toElementModel );\n\n\t\t\t\treturn acc;\n\t\t\t}, {} as ElementChildren );\n\n\t\t\treturn elementChildren;\n\t\t},\n\t\t[ elementId ]\n\t) as T;\n}\n","import { __privateRunCommand as runCommand } from '@elementor/editor-v1-adapters';\n\nimport { type ExtendedWindow, type V1Element } from './types';\n\nexport function getContainer( id: string ): V1Element | null {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\tconst container = extendedWindow.elementor?.getContainer?.( id );\n\n\treturn container ?? null;\n}\n\nexport const selectElement = ( elementId: string ) => {\n\ttry {\n\t\tconst container = getContainer( elementId );\n\n\t\trunCommand( 'document/elements/select', { container } );\n\t} catch {}\n};\n","import { type V1Element } from './types';\n\nexport type V1Model = V1Element[ 'model' ];\n\nexport type V1Collection = V1Model[] & {\n\tremove: ( model: V1Model ) => void;\n\tadd: ( model: V1Model, options?: { at?: number }, silent?: boolean ) => void;\n\tindexOf: ( model: V1Model ) => number;\n};\n\nexport type ModelResult = {\n\tmodel: V1Model;\n};\n\nexport function findChildRecursive( model: V1Model, predicate: ( model: V1Model ) => boolean ): ModelResult | null {\n\tconst childModels = ( model.get( 'elements' ) ?? [] ) as V1Model[];\n\n\tfor ( const childModel of childModels ) {\n\t\tif ( predicate( childModel ) ) {\n\t\t\treturn { model: childModel };\n\t\t}\n\n\t\tconst found = findChildRecursive( childModel, predicate );\n\n\t\tif ( found ) {\n\t\t\treturn found;\n\t\t}\n\t}\n\n\treturn null;\n}\n\nexport function getElementChildren( model: V1Model, predicate?: ( model: V1Model ) => boolean ): ModelResult[] {\n\tconst childModels = ( model.get( 'elements' ) ?? [] ) as V1Model[];\n\n\treturn childModels\n\t\t.filter( ( childModel ) => ! predicate || predicate( childModel ) )\n\t\t.map( ( childModel ) => ( { model: childModel } ) );\n}\n","import { __privateUseListenTo as useListenTo, windowEvent } from '@elementor/editor-v1-adapters';\n\nimport { getElementEditorSettings } from '../sync/get-element-editor-settings';\nimport { type ElementID } from '../types';\n\nexport const useElementEditorSettings = ( elementId: ElementID ) => {\n\treturn useListenTo(\n\t\twindowEvent( 'elementor/element/update_editor_settings' ),\n\t\t() => getElementEditorSettings( elementId ),\n\t\t[ elementId ]\n\t);\n};\n","import { type ElementID } from '../types';\nimport { getContainer } from './get-container';\n\nexport function getElementEditorSettings( elementId: ElementID ) {\n\tconst container = getContainer( elementId );\n\n\treturn container?.model.get( 'editor_settings' ) ?? {};\n}\n","import { __privateUseListenTo as useListenTo, commandEndEvent } from '@elementor/editor-v1-adapters';\n\nimport { type ExtendedWindow } from '../sync/types';\n\nexport function useParentElement( elementId: string | null ) {\n\treturn useListenTo(\n\t\t[ commandEndEvent( 'document/elements/create' ) ],\n\t\t() => {\n\t\t\tif ( ! elementId ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst extendedWindow = window as unknown as ExtendedWindow;\n\t\t\tconst element = extendedWindow?.elementor?.getContainer?.( elementId );\n\t\t\tif ( ! element ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn element.parent;\n\t\t},\n\t\t[ elementId ]\n\t);\n}\n","import { __privateUseListenTo as useListenTo, commandEndEvent } from '@elementor/editor-v1-adapters';\n\nimport { getSelectedElement } from '../sync/get-selected-elements';\n\nexport function useSelectedElement() {\n\treturn useListenTo(\n\t\t[\n\t\t\tcommandEndEvent( 'document/elements/select' ),\n\t\t\tcommandEndEvent( 'document/elements/deselect' ),\n\t\t\tcommandEndEvent( 'document/elements/select-all' ),\n\t\t\tcommandEndEvent( 'document/elements/deselect-all' ),\n\t\t],\n\t\tgetSelectedElement\n\t);\n}\n","import { type ExtendedWindow, type V1ElementConfig } from '../sync/types.js';\ntype WidgetsCache< T > = Record< string, T >;\n\nexport function getWidgetsCache< T extends V1ElementConfig >(): WidgetsCache< T > | null {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn ( extendedWindow?.elementor?.widgetsCache as WidgetsCache< T > ) || null;\n}\n","import { type ElementType } from '../types';\nimport { getWidgetsCache } from './get-widgets-cache';\n\nexport function getElementType( type: string ): ElementType | null {\n\tif ( ! type ) {\n\t\treturn null;\n\t}\n\n\tconst widgetsCache = getWidgetsCache();\n\tconst elementType = widgetsCache?.[ type ];\n\n\tif ( ! elementType?.atomic_controls ) {\n\t\treturn null;\n\t}\n\n\tif ( ! elementType?.atomic_props_schema ) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\tkey: type,\n\t\tcontrols: elementType.atomic_controls,\n\t\tpropsSchema: elementType.atomic_props_schema,\n\t\tdependenciesPerTargetMapping: elementType.dependencies_per_target_mapping ?? {},\n\t\ttitle: elementType.title,\n\t\tstyleStates: elementType.atomic_style_states ?? [],\n\t\tpseudoStates: elementType.atomic_pseudo_states ?? [],\n\t};\n}\n","import { type Element, type ElementType } from '../types';\nimport { getElementType } from './get-element-type';\nimport { type ExtendedWindow } from './types';\n\nexport function getSelectedElements(): Element[] {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\tconst selectedElements = extendedWindow.elementor?.selection?.getElements?.() ?? [];\n\n\treturn selectedElements.reduce< Element[] >( ( acc, el ) => {\n\t\tconst type = el.model.get( 'widgetType' ) || el.model.get( 'elType' );\n\n\t\tif ( type ) {\n\t\t\tacc.push( {\n\t\t\t\tid: el.model.get( 'id' ),\n\t\t\t\ttype,\n\t\t\t} );\n\t\t}\n\n\t\treturn acc;\n\t}, [] );\n}\n\ntype GetSelectedElementTypeResult =\n\t| {\n\t\t\telement: Element;\n\t\t\telementType: ElementType;\n\t }\n\t| {\n\t\t\telement: null;\n\t\t\telementType: null;\n\t };\n\nexport function getSelectedElement(): GetSelectedElementTypeResult {\n\tconst elements = getSelectedElements();\n\n\tconst [ element ] = elements;\n\tconst elementType = getElementType( element?.type );\n\n\tif ( elements.length !== 1 || ! elementType || ! element ) {\n\t\treturn { element: null, elementType: null };\n\t}\n\n\treturn { element, elementType };\n}\n","import { type AnyTransformable } from '@elementor/editor-props';\nimport { __privateUseListenTo as useListenTo, commandEndEvent } from '@elementor/editor-v1-adapters';\n\nimport { getElementSettings } from '../sync/get-element-setting';\nimport { getSelectedElement } from '../sync/get-selected-elements';\nimport { type Element, type ElementType } from '../types';\n\ntype UseSelectedElementSettingsResult< TValue > =\n\t| {\n\t\t\telement: Element;\n\t\t\telementType: ElementType;\n\t\t\tsettings: Record< string, TValue | null >;\n\t }\n\t| {\n\t\t\telement: null;\n\t\t\telementType: null;\n\t\t\tsettings: null;\n\t };\n\n// Use the selected element and it's settings,\n// and subscribe to changes on both the selected element and its settings.\n// This ensures the element and its settings are synced.\nexport function useSelectedElementSettings< TValue = AnyTransformable >(): UseSelectedElementSettingsResult< TValue > {\n\treturn useListenTo(\n\t\t[\n\t\t\tcommandEndEvent( 'document/elements/select' ),\n\t\t\tcommandEndEvent( 'document/elements/deselect' ),\n\t\t\tcommandEndEvent( 'document/elements/select-all' ),\n\t\t\tcommandEndEvent( 'document/elements/deselect-all' ),\n\t\t\tcommandEndEvent( 'document/elements/set-settings' ),\n\t\t],\n\t\t() => {\n\t\t\tconst { element, elementType } = getSelectedElement();\n\n\t\t\tif ( ! element || ! elementType ) {\n\t\t\t\treturn { element: null, elementType: null, settings: null };\n\t\t\t}\n\n\t\t\tconst settings = getElementSettings< TValue >( element.id, Object.keys( elementType.propsSchema ) );\n\n\t\t\treturn {\n\t\t\t\telement,\n\t\t\t\telementType,\n\t\t\t\tsettings,\n\t\t\t};\n\t\t}\n\t);\n}\n","import { type ElementID } from '../types';\nimport { getContainer } from './get-container';\n\nexport const getElementSetting = < TValue >( elementId: ElementID, settingKey: string ): TValue | null => {\n\tconst container = getContainer( elementId );\n\n\treturn ( container?.settings?.get( settingKey ) as TValue ) ?? null;\n};\n\nexport const getElementSettings = < TValue >(\n\telementId: ElementID,\n\tsettingKey: string[]\n): Record< string, TValue | null > => {\n\treturn Object.fromEntries( settingKey.map( ( key ) => [ key, getElementSetting( elementId, key ) ] ) );\n};\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type V1Element, type V1ElementModelProps, type V1ElementSettingsProps } from './types';\n\ntype Options = {\n\tuseHistory?: boolean;\n\tat?: number;\n\tclone?: boolean;\n};\n\nexport type CreateElementParams = {\n\tcontainer: V1Element;\n\tmodel?: Omit< V1ElementModelProps, 'settings' | 'id' > & { settings?: V1ElementSettingsProps; id?: string };\n\toptions?: Options;\n};\n\nexport function createElement( { container, model, options }: CreateElementParams ): V1Element {\n\treturn runCommandSync< V1Element >( 'document/elements/create', {\n\t\tcontainer,\n\t\tmodel,\n\t\toptions: { edit: false, ...options },\n\t} );\n}\n","import { undoable } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nimport { createElement, type CreateElementParams } from './create-element';\nimport { deleteElement } from './delete-element';\nimport { type V1Element, type V1ElementModelProps } from './types';\n\ntype CreateElementsParams = {\n\telements: CreateElementParams[];\n\ttitle: string;\n\tsubtitle?: string;\n};\n\ntype CreatedElement = {\n\tcontainer: V1Element;\n\tparentContainer: V1Element;\n\tmodel: V1ElementModelProps;\n\toptions?: CreateElementParams[ 'options' ];\n};\n\ntype CreatedElementsResult = {\n\tcreatedElements: CreatedElement[];\n};\n\nexport type { CreateElementsParams, CreatedElement, CreatedElementsResult };\n\nexport const createElements = ( {\n\telements,\n\ttitle,\n\tsubtitle = __( 'Item added', 'elementor' ),\n}: CreateElementsParams ): CreatedElementsResult => {\n\tconst undoableCreate = undoable(\n\t\t{\n\t\t\tdo: ( { elements: elementsParam }: { elements: CreateElementParams[] } ): CreatedElementsResult => {\n\t\t\t\tconst createdElements: CreatedElement[] = [];\n\n\t\t\t\telementsParam.forEach( ( { container, options, ...elementParams } ) => {\n\t\t\t\t\tconst parentContainer = container.lookup?.() ?? container;\n\n\t\t\t\t\tif ( ! parentContainer ) {\n\t\t\t\t\t\tthrow new Error( 'Parent container not found' );\n\t\t\t\t\t}\n\n\t\t\t\t\tconst element = createElement( {\n\t\t\t\t\t\tcontainer: parentContainer,\n\t\t\t\t\t\t...elementParams,\n\t\t\t\t\t\toptions: { ...options, useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tcreatedElements.push( {\n\t\t\t\t\t\tcontainer: element,\n\t\t\t\t\t\tparentContainer,\n\t\t\t\t\t\tmodel: element.model?.toJSON() || {},\n\t\t\t\t\t\toptions,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { createdElements };\n\t\t\t},\n\t\t\tundo: ( _: { elements: CreateElementParams[] }, { createdElements }: CreatedElementsResult ) => {\n\t\t\t\t[ ...createdElements ].reverse().forEach( ( { container } ) => {\n\t\t\t\t\tconst freshContainer = container.lookup?.();\n\n\t\t\t\t\tif ( freshContainer ) {\n\t\t\t\t\t\tdeleteElement( {\n\t\t\t\t\t\t\tcontainer: freshContainer,\n\t\t\t\t\t\t\toptions: { useHistory: false },\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t},\n\t\t\tredo: (\n\t\t\t\t_: { elements: CreateElementParams[] },\n\t\t\t\t{ createdElements }: CreatedElementsResult\n\t\t\t): CreatedElementsResult => {\n\t\t\t\tconst newElements: CreatedElement[] = [];\n\n\t\t\t\tcreatedElements.forEach( ( { parentContainer, model, options } ) => {\n\t\t\t\t\tconst freshParent = parentContainer.lookup?.();\n\n\t\t\t\t\tif ( ! freshParent ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst element = createElement( {\n\t\t\t\t\t\tcontainer: freshParent,\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\toptions: { ...options, useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tnewElements.push( {\n\t\t\t\t\t\tcontainer: element,\n\t\t\t\t\t\tparentContainer: freshParent,\n\t\t\t\t\t\tmodel: element.model.toJSON(),\n\t\t\t\t\t\toptions,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { createdElements: newElements };\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttitle,\n\t\t\tsubtitle,\n\t\t}\n\t);\n\n\treturn undoableCreate( { elements } );\n};\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type V1Element } from './types';\n\ntype Options = {\n\tuseHistory?: boolean;\n\tat?: number;\n};\n\ntype DeleteElementParams = {\n\tcontainer: V1Element;\n\toptions?: Options;\n};\n\nexport function deleteElement( { container, options = {} }: DeleteElementParams ): void {\n\trunCommandSync( 'document/elements/delete', {\n\t\tcontainer,\n\t\toptions,\n\t} );\n}\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { getContainer } from './get-container';\nimport { type V1Element, type V1ElementModelProps, type V1ElementSettingsProps } from './types';\n\ntype Options = {\n\tuseHistory?: boolean;\n\tat?: number;\n\tscrollIntoView: boolean;\n};\n\nexport type DropElementParams = {\n\tcontainerId: string;\n\toptions?: Options;\n\tmodel?: Omit< V1ElementModelProps, 'settings' | 'id' > & { settings?: V1ElementSettingsProps; id?: string };\n};\n\nexport function dropElement( { containerId, model, options }: DropElementParams ) {\n\tconst container = getContainer( containerId );\n\n\tif ( ! container ) {\n\t\tthrow new Error( `Container with ID \"${ containerId }\" not found` );\n\t}\n\n\treturn runCommandSync< V1Element >( 'preview/drop', {\n\t\tcontainer,\n\t\tmodel,\n\t\toptions,\n\t} );\n}\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type V1Element } from './types';\n\ntype Options = {\n\tuseHistory?: boolean;\n\tat?: number;\n\tclone?: boolean;\n};\n\nexport type DuplicateElementParams = {\n\telement: V1Element;\n\toptions?: Options;\n};\n\nexport function duplicateElement( { element, options = {} }: DuplicateElementParams ): V1Element {\n\tconst currentIndex = element.view?._index ?? 0;\n\tconst insertPosition = options.clone !== false ? currentIndex + 1 : undefined;\n\n\treturn runCommandSync< V1Element >( 'document/elements/duplicate', {\n\t\tcontainer: element,\n\t\toptions: { at: insertPosition, edit: false, ...options },\n\t} );\n}\n","import { undoable } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nimport { createElement } from './create-element';\nimport { deleteElement } from './delete-element';\nimport { duplicateElement } from './duplicate-element';\nimport { getContainer } from './get-container';\nimport { type V1Element, type V1ElementModelProps } from './types';\n\ntype DuplicateElementsParams = {\n\telementIds: string[];\n\ttitle: string;\n\tsubtitle?: string;\n\tonDuplicateElements?: () => void;\n\tonRestoreElements?: () => void;\n};\n\ntype DuplicatedElement = {\n\tcontainer: V1Element;\n\tparentContainer: V1Element;\n\tmodel: V1ElementModelProps;\n\tat?: number;\n};\n\ntype DuplicatedElementsResult = {\n\tduplicatedElements: DuplicatedElement[];\n};\n\nexport type { DuplicateElementsParams, DuplicatedElement, DuplicatedElementsResult };\n\nexport const duplicateElements = ( {\n\telementIds,\n\ttitle,\n\tsubtitle = __( 'Item duplicated', 'elementor' ),\n\tonDuplicateElements,\n\tonRestoreElements,\n}: DuplicateElementsParams ): DuplicatedElementsResult => {\n\tconst undoableDuplicate = undoable(\n\t\t{\n\t\t\tdo: ( { elementIds: elementIdsToDuplicate }: { elementIds: string[] } ): DuplicatedElementsResult => {\n\t\t\t\tonDuplicateElements?.();\n\t\t\t\tconst duplicatedElements: DuplicatedElement[] = [];\n\n\t\t\t\telementIdsToDuplicate.forEach( ( elementId ) => {\n\t\t\t\t\tconst originalContainer = getContainer( elementId );\n\n\t\t\t\t\tif ( ! originalContainer?.parent ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst duplicatedElement = duplicateElement( {\n\t\t\t\t\t\telement: originalContainer,\n\t\t\t\t\t\toptions: { useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tif ( ! duplicatedElement.parent ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tduplicatedElements.push( {\n\t\t\t\t\t\tcontainer: duplicatedElement,\n\t\t\t\t\t\tparentContainer: duplicatedElement.parent,\n\t\t\t\t\t\tmodel: duplicatedElement.model.toJSON(),\n\t\t\t\t\t\tat: duplicatedElement.view?._index,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { duplicatedElements };\n\t\t\t},\n\t\t\tundo: ( _: { elementIds: string[] }, { duplicatedElements }: DuplicatedElementsResult ) => {\n\t\t\t\tonRestoreElements?.();\n\t\t\t\t[ ...duplicatedElements ].reverse().forEach( ( { container } ) => {\n\t\t\t\t\tdeleteElement( {\n\t\t\t\t\t\tcontainer,\n\t\t\t\t\t\toptions: { useHistory: false },\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t},\n\t\t\tredo: (\n\t\t\t\t_: { elementIds: string[] },\n\t\t\t\t{ duplicatedElements: previousElements }: DuplicatedElementsResult\n\t\t\t): DuplicatedElementsResult => {\n\t\t\t\tonDuplicateElements?.();\n\t\t\t\tconst duplicatedElements: DuplicatedElement[] = [];\n\n\t\t\t\tpreviousElements.forEach( ( { parentContainer, model, at } ) => {\n\t\t\t\t\tconst freshParent = parentContainer.lookup?.();\n\n\t\t\t\t\tif ( freshParent ) {\n\t\t\t\t\t\tconst createdElement = createElement( {\n\t\t\t\t\t\t\tcontainer: freshParent,\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\toptions: { useHistory: false, clone: false, at },\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\tduplicatedElements.push( {\n\t\t\t\t\t\t\tcontainer: createdElement,\n\t\t\t\t\t\t\tparentContainer: freshParent,\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\tat,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\treturn { duplicatedElements };\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttitle,\n\t\t\tsubtitle,\n\t\t}\n\t);\n\n\treturn undoableDuplicate( { elementIds } );\n};\n","import { type ExtendedWindow } from './types';\n\nexport const generateElementId = () => {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn (\n\t\textendedWindow.elementorCommon?.helpers?.getUniqueId?.() ??\n\t\t`el-${ Date.now() }-${ Math.random().toString( 36 ).substring( 2, 9 ) }`\n\t);\n};\n","import { type ExtendedWindow } from './types';\n\nexport function getCurrentDocumentContainer() {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn extendedWindow.elementor?.documents?.getCurrent?.()?.container ?? null;\n}\n","import { type ExtendedWindow } from './types';\n\nexport function getCurrentDocumentId() {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn extendedWindow.elementor?.documents?.getCurrentId?.() ?? null;\n}\n","import { createError } from '@elementor/utils';\n\nexport const ElementNotFoundError = createError< { elementId: string } >( {\n\tcode: 'element_not_found',\n\tmessage: 'Element not found.',\n} );\n\nexport const StyleNotFoundError = createError< { styleId: string } >( {\n\tcode: 'style_not_found',\n\tmessage: 'Style not found.',\n} );\n\nexport const ElementTypeNotExistsError = createError< { elementId: string } >( {\n\tcode: 'element_type_not_exists',\n\tmessage: 'Element type does not exist.',\n} );\n\nexport const ElementLabelNotExistsError = createError< { elementType: string } >( {\n\tcode: 'element_label_not_exists',\n\tmessage: 'Element label does not exist.',\n} );\n\nexport const ElementParentNotFoundError = createError< { elementId: string } >( {\n\tcode: 'element_parent_not_found',\n\tmessage: 'Element parent not found.',\n} );\n\nexport const ElementIndexNotFoundError = createError< { elementId: string } >( {\n\tcode: 'element_index_not_found',\n\tmessage: 'Element index not found.',\n} );\n","import { ElementLabelNotExistsError, ElementTypeNotExistsError } from '../errors';\nimport { getContainer } from '../sync/get-container';\nimport { getWidgetsCache } from '../sync/get-widgets-cache';\nimport { type ElementID } from '../types';\nimport { getSelectedElements } from './get-selected-elements';\n\nexport function getElementLabel( elementId?: ElementID ) {\n\tif ( ! elementId ) {\n\t\telementId = getSelectedElements()?.[ 0 ]?.id;\n\t}\n\n\tconst container = getContainer( elementId );\n\n\tconst type = container?.model.get( 'widgetType' ) || container?.model.get( 'elType' );\n\n\tif ( ! type ) {\n\t\tthrow new ElementTypeNotExistsError( { context: { elementId } } );\n\t}\n\n\tconst label = getWidgetsCache()?.[ type ]?.title;\n\n\tif ( ! label ) {\n\t\tthrow new ElementLabelNotExistsError( { context: { elementType: type } } );\n\t}\n\n\treturn label;\n}\n","import { type StyleDefinition } from '@elementor/editor-styles';\n\nimport { type ElementID } from '../types';\nimport { getContainer } from './get-container';\n\nexport const getElementStyles = ( elementID: ElementID ): Record< string, StyleDefinition > | null => {\n\tconst container = getContainer( elementID );\n\n\treturn container?.model.get( 'styles' ) || null;\n};\n","import { type V1Element } from './types';\n\nexport function getAllDescendants( container: V1Element ): V1Element[] {\n\tconst children = ( container.children ?? [] ).flatMap( ( child ) => getAllDescendants( child as V1Element ) );\n\n\treturn [ container, ...children ];\n}\n","import { type ElementID } from '../types';\nimport { getContainer } from './get-container';\nimport { getCurrentDocumentContainer } from './get-current-document-container';\nimport { type V1Element } from './types';\n\nexport function getElements( root?: ElementID ): V1Element[] {\n\tconst container = root ? getContainer( root ) : getCurrentDocumentContainer();\n\n\tif ( ! container ) {\n\t\treturn [];\n\t}\n\n\tconst children = [ ...( container.model.get( 'elements' ) ?? [] ) ].flatMap( ( childModel ) =>\n\t\tgetElements( childModel.get( 'id' ) )\n\t);\n\n\treturn [ container, ...children ];\n}\n","import { createElement } from './create-element';\nimport { deleteElement } from './delete-element';\nimport { type V1Element } from './types';\n\ntype Options = {\n\tuseHistory?: boolean;\n\tat?: number;\n\tedit?: boolean;\n};\n\nexport type MoveElementParams = {\n\telement: V1Element;\n\ttargetContainer: V1Element;\n\toptions?: Options;\n};\n\nexport function moveElement( { element, targetContainer, options = {} }: MoveElementParams ): V1Element {\n\tconst resolvedElement = element.lookup?.();\n\tconst resolvedTarget = targetContainer.lookup?.();\n\n\tif ( ! resolvedElement ) {\n\t\tthrow new Error( `Element not found: ${ element.id }` );\n\t}\n\n\tif ( ! resolvedTarget ) {\n\t\tthrow new Error( `Target container not found: ${ targetContainer.id }` );\n\t}\n\n\tconst modelToRecreate = resolvedElement.model.toJSON();\n\n\tdeleteElement( {\n\t\tcontainer: resolvedElement,\n\t\toptions: { ...options, useHistory: false },\n\t} );\n\n\tconst newContainer = createElement( {\n\t\tcontainer: resolvedTarget,\n\t\tmodel: modelToRecreate,\n\t\toptions: { edit: false, ...options, useHistory: false },\n\t} );\n\n\treturn newContainer;\n}\n","import { undoable } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nimport { moveElement } from './move-element';\nimport { type V1Element } from './types';\n\ntype MoveOptions = {\n\tuseHistory?: boolean;\n\tat?: number;\n\tedit?: boolean;\n};\n\ntype MoveInput = {\n\telement: V1Element;\n\ttargetContainer: V1Element;\n\toptions?: MoveOptions;\n};\n\ntype MoveElementsParams = {\n\tmoves: MoveInput[];\n\ttitle: string;\n\tsubtitle?: string;\n\tonMoveElements?: () => void;\n\tonRestoreElements?: () => void;\n};\n\ntype MovedElement = {\n\telement: V1Element;\n\toriginalContainer: V1Element;\n\toriginalIndex: number;\n\ttargetContainer: V1Element;\n\toptions?: MoveOptions;\n};\n\ntype MovedElementsResult = {\n\tmovedElements: MovedElement[];\n};\n\nexport type { MoveElementsParams, MoveInput, MovedElement, MovedElementsResult };\n\nexport const moveElements = ( {\n\tmoves: movesToMake,\n\ttitle,\n\tsubtitle = __( 'Elements moved', 'elementor' ),\n\tonMoveElements,\n\tonRestoreElements,\n}: MoveElementsParams ): MovedElementsResult => {\n\tconst undoableMove = undoable(\n\t\t{\n\t\t\tdo: ( { moves }: { moves: MoveInput[] } ): MovedElementsResult => {\n\t\t\t\tconst movedElements: MovedElement[] = [];\n\t\t\t\tonMoveElements?.();\n\n\t\t\t\tmoves.forEach( ( { element, targetContainer, options } ) => {\n\t\t\t\t\tconst sourceElement = element.lookup?.() ?? element;\n\t\t\t\t\tconst target = targetContainer.lookup?.() ?? targetContainer;\n\n\t\t\t\t\tif ( ! sourceElement ) {\n\t\t\t\t\t\tthrow new Error( 'Element not found' );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! target ) {\n\t\t\t\t\t\tthrow new Error( 'Target container not found' );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! sourceElement.parent ) {\n\t\t\t\t\t\tthrow new Error( 'Element has no parent container' );\n\t\t\t\t\t}\n\n\t\t\t\t\tconst originalContainer = sourceElement.parent;\n\t\t\t\t\tconst originalIndex = originalContainer.children?.indexOf( sourceElement ) ?? -1;\n\n\t\t\t\t\tconst newElement = moveElement( {\n\t\t\t\t\t\telement: sourceElement,\n\t\t\t\t\t\ttargetContainer: target,\n\t\t\t\t\t\toptions: { ...options, useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tmovedElements.push( {\n\t\t\t\t\t\telement: newElement,\n\t\t\t\t\t\toriginalContainer,\n\t\t\t\t\t\toriginalIndex,\n\t\t\t\t\t\ttargetContainer: target,\n\t\t\t\t\t\toptions,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { movedElements };\n\t\t\t},\n\t\t\tundo: ( _: { moves: MoveInput[] }, { movedElements }: MovedElementsResult ) => {\n\t\t\t\tonRestoreElements?.();\n\n\t\t\t\t[ ...movedElements ].reverse().forEach( ( { element, originalContainer, originalIndex } ) => {\n\t\t\t\t\tconst freshElement = element.lookup?.();\n\t\t\t\t\tconst freshOriginalContainer = originalContainer.lookup?.();\n\n\t\t\t\t\tif ( ! freshElement || ! freshOriginalContainer ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveElement( {\n\t\t\t\t\t\telement: freshElement,\n\t\t\t\t\t\ttargetContainer: freshOriginalContainer,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tuseHistory: false,\n\t\t\t\t\t\t\tat: originalIndex >= 0 ? originalIndex : undefined,\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t},\n\t\t\tredo: ( _: { moves: MoveInput[] }, { movedElements }: MovedElementsResult ): MovedElementsResult => {\n\t\t\t\tconst newMovedElements: MovedElement[] = [];\n\t\t\t\tonMoveElements?.();\n\n\t\t\t\tmovedElements.forEach( ( { element, originalContainer, originalIndex, targetContainer, options } ) => {\n\t\t\t\t\tconst freshElement = element.lookup?.();\n\t\t\t\t\tconst freshOriginalContainer = originalContainer.lookup?.();\n\t\t\t\t\tconst freshTarget = targetContainer.lookup?.();\n\n\t\t\t\t\tif ( ! freshElement || ! freshOriginalContainer || ! freshTarget ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst newElement = moveElement( {\n\t\t\t\t\t\telement: freshElement,\n\t\t\t\t\t\ttargetContainer: freshTarget,\n\t\t\t\t\t\toptions: { ...options, useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tnewMovedElements.push( {\n\t\t\t\t\t\telement: newElement,\n\t\t\t\t\t\toriginalContainer: freshOriginalContainer,\n\t\t\t\t\t\toriginalIndex,\n\t\t\t\t\t\ttargetContainer: freshTarget,\n\t\t\t\t\t\toptions,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { movedElements: newMovedElements };\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttitle,\n\t\t\tsubtitle,\n\t\t}\n\t);\n\n\treturn undoableMove( { moves: movesToMake } );\n};\n","import { undoable } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nimport { createElement } from './create-element';\nimport { deleteElement } from './delete-element';\nimport { getContainer } from './get-container';\nimport { type V1Element, type V1ElementModelProps } from './types';\n\ntype RemoveElementsParams = {\n\telementIds: string[];\n\ttitle: string;\n\tsubtitle?: string;\n\tonRemoveElements?: () => void;\n\tonRestoreElements?: () => void;\n};\n\ntype RemovedElement = {\n\tcontainer: V1Element;\n\tparent: V1Element;\n\tmodel: V1ElementModelProps;\n\tat: number;\n};\n\ntype RemovedElementsResult = {\n\tremovedElements: RemovedElement[];\n};\n\nexport const removeElements = ( {\n\telementIds,\n\ttitle,\n\tsubtitle = __( 'Item removed', 'elementor' ),\n\tonRemoveElements,\n\tonRestoreElements,\n}: RemoveElementsParams ): RemovedElementsResult => {\n\tconst undoableRemove = undoable(\n\t\t{\n\t\t\tdo: ( { elementIds: elementIdsParam }: { elementIds: string[] } ): RemovedElementsResult => {\n\t\t\t\tconst removedElements: RemovedElement[] = [];\n\n\t\t\t\telementIdsParam.forEach( ( elementId ) => {\n\t\t\t\t\tconst container = getContainer( elementId );\n\n\t\t\t\t\tif ( container?.parent ) {\n\t\t\t\t\t\tremovedElements.push( {\n\t\t\t\t\t\t\tcontainer,\n\t\t\t\t\t\t\tparent: container.parent,\n\t\t\t\t\t\t\tmodel: container.model.toJSON(),\n\t\t\t\t\t\t\tat: container.view?._index ?? 0,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\tonRemoveElements?.();\n\n\t\t\t\tremovedElements.forEach( ( { container } ) => {\n\t\t\t\t\tdeleteElement( {\n\t\t\t\t\t\tcontainer,\n\t\t\t\t\t\toptions: { useHistory: false },\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { removedElements };\n\t\t\t},\n\t\t\tundo: ( _: { elementIds: string[] }, { removedElements }: RemovedElementsResult ) => {\n\t\t\t\tonRestoreElements?.();\n\n\t\t\t\t[ ...removedElements ].reverse().forEach( ( { parent, model, at } ) => {\n\t\t\t\t\tconst freshParent = parent.lookup?.();\n\n\t\t\t\t\tif ( freshParent ) {\n\t\t\t\t\t\tcreateElement( {\n\t\t\t\t\t\t\tcontainer: freshParent,\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\toptions: { useHistory: false, at },\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t},\n\t\t\tredo: (\n\t\t\t\t_: { elementIds: string[] },\n\t\t\t\t{ removedElements }: RemovedElementsResult\n\t\t\t): RemovedElementsResult => {\n\t\t\t\tonRemoveElements?.();\n\n\t\t\t\tconst newRemovedElements: RemovedElement[] = [];\n\n\t\t\t\tremovedElements.forEach( ( { container, parent, model, at } ) => {\n\t\t\t\t\tconst freshContainer = container.lookup?.();\n\t\t\t\t\tconst freshParent = parent.lookup?.();\n\n\t\t\t\t\tif ( ! freshContainer || ! freshParent ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tdeleteElement( {\n\t\t\t\t\t\tcontainer: freshContainer,\n\t\t\t\t\t\toptions: { useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tnewRemovedElements.push( {\n\t\t\t\t\t\tcontainer: freshContainer,\n\t\t\t\t\t\tparent: freshParent,\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tat,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { removedElements: newRemovedElements };\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttitle,\n\t\t\tsubtitle,\n\t\t}\n\t);\n\n\treturn undoableRemove( { elementIds } );\n};\n","import { ElementIndexNotFoundError, ElementNotFoundError, ElementParentNotFoundError } from '../errors';\nimport { createElement } from './create-element';\nimport { deleteElement } from './delete-element';\nimport { getContainer } from './get-container';\nimport { type V1Element, type V1ElementModelProps } from './types';\n\ntype ElementLocation = {\n\tcontainer: V1Element;\n\tindex: number;\n};\n\ntype ReplaceElementArgs = {\n\tcurrentElementId: string;\n\tnewElement: Omit< V1ElementModelProps, 'id' >;\n\twithHistory?: boolean;\n};\n\nexport const replaceElement = ( { currentElementId, newElement, withHistory = true }: ReplaceElementArgs ) => {\n\tconst currentElementContainer = getContainer( currentElementId );\n\n\tif ( ! currentElementContainer ) {\n\t\tthrow new ElementNotFoundError( { context: { elementId: currentElementId } } );\n\t}\n\n\tconst { container, index } = getNewElementContainer( currentElementContainer, newElement );\n\n\tconst newElementInstance = createElement( {\n\t\tcontainer,\n\t\tmodel: newElement,\n\t\toptions: { at: index, useHistory: withHistory },\n\t} );\n\n\tdeleteElement( { container: currentElementContainer, options: { useHistory: withHistory } } );\n\n\treturn newElementInstance;\n};\n\nfunction getNewElementContainer(\n\tcurrentElementContainer: V1Element,\n\tnewElement: Omit< V1ElementModelProps, 'id' >\n): ElementLocation {\n\tconst { parent } = currentElementContainer;\n\n\tif ( ! parent ) {\n\t\tthrow new ElementParentNotFoundError( { context: { elementId: currentElementContainer.id } } );\n\t}\n\n\tconst elementIndex = currentElementContainer.view?._index ?? 0;\n\n\tif ( elementIndex === -1 ) {\n\t\tthrow new ElementIndexNotFoundError( { context: { elementId: currentElementContainer.id } } );\n\t}\n\n\tlet location: ElementLocation = { container: parent, index: elementIndex };\n\n\tif ( parent.id === 'document' && newElement.elType === 'widget' ) {\n\t\tlocation = createWrapperForWidget( parent, elementIndex );\n\t}\n\n\treturn location;\n}\n\nconst DEFAULT_CONTAINER_TYPE = 'e-flexbox';\n\nfunction createWrapperForWidget( parent: V1Element, elementIndex: number ): ElementLocation {\n\tconst container = createElement( {\n\t\tcontainer: parent,\n\t\tmodel: { elType: DEFAULT_CONTAINER_TYPE },\n\t\toptions: { at: elementIndex, useHistory: false },\n\t} );\n\n\treturn { container, index: 0 };\n}\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type V1ElementModelProps } from '..';\nimport { getContainer } from './get-container';\n\nexport const updateElementEditorSettings = ( {\n\telementId,\n\tsettings,\n}: {\n\telementId: string;\n\tsettings: V1ElementModelProps[ 'editor_settings' ];\n} ) => {\n\tconst element = getContainer( elementId );\n\n\tif ( ! element ) {\n\t\tthrow new Error( `Element with id ${ elementId } not found` );\n\t}\n\n\tconst editorSettings = element.model.get( 'editor_settings' ) ?? {};\n\n\telement.model.set( 'editor_settings', { ...editorSettings, ...settings } );\n\n\trunCommandSync( 'document/save/set-is-modified', { status: true }, { internal: true } );\n};\n","import { type Props } from '@elementor/editor-props';\nimport { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type ElementID } from '../types';\nimport { getContainer } from './get-container';\n\nexport type UpdateElementSettingsArgs = {\n\tid: ElementID;\n\tprops: Props;\n\twithHistory?: boolean;\n};\n\nexport const updateElementSettings = ( { id, props, withHistory = true }: UpdateElementSettingsArgs ) => {\n\tconst container = getContainer( id );\n\n\tif ( ! container ) {\n\t\treturn;\n\t}\n\n\tconst args = {\n\t\tcontainer,\n\t\tsettings: { ...props },\n\t};\n\n\tif ( withHistory ) {\n\t\trunCommandSync( 'document/elements/settings', args );\n\t} else {\n\t\trunCommandSync( 'document/elements/set-settings', args, { internal: true } );\n\t}\n};\n","import { type LinkPropValue } from '@elementor/editor-props';\n\nimport { getContainer } from './sync/get-container';\nimport { getElementSetting } from './sync/get-element-setting';\n\nconst ANCHOR_SELECTOR = 'a, [data-action-link]';\n\ntype LinkValue = LinkPropValue[ 'value' ];\n\nexport type LinkInLinkRestriction =\n\t| {\n\t\t\tshouldRestrict: true;\n\t\t\treason: 'ancestor' | 'descendant';\n\t\t\telementId: string | null;\n\t }\n\t| {\n\t\t\tshouldRestrict: false;\n\t\t\treason?: never;\n\t\t\telementId?: never;\n\t };\n\nexport function getLinkInLinkRestriction( elementId: string, resolvedValue?: LinkValue ): LinkInLinkRestriction {\n\tconst anchoredDescendantId = getAnchoredDescendantId( elementId );\n\n\tif ( anchoredDescendantId ) {\n\t\treturn {\n\t\t\tshouldRestrict: true,\n\t\t\treason: 'descendant',\n\t\t\telementId: anchoredDescendantId,\n\t\t};\n\t}\n\n\tconst hasInlineLink = checkForInlineLink( elementId, resolvedValue );\n\n\tif ( hasInlineLink ) {\n\t\treturn {\n\t\t\tshouldRestrict: true,\n\t\t\treason: 'descendant',\n\t\t\telementId,\n\t\t};\n\t}\n\n\tconst ancestor = getAnchoredAncestorId( elementId );\n\n\tif ( ancestor ) {\n\t\treturn {\n\t\t\tshouldRestrict: true,\n\t\t\treason: 'ancestor',\n\t\t\telementId: ancestor,\n\t\t};\n\t}\n\n\treturn {\n\t\tshouldRestrict: false,\n\t};\n}\n\nexport function getAnchoredDescendantId( elementId: string ): string | null {\n\tconst element = getElementDOM( elementId );\n\n\tif ( ! element ) {\n\t\treturn null;\n\t}\n\n\tfor ( const childAnchorElement of Array.from( element.querySelectorAll( ANCHOR_SELECTOR ) ) ) {\n\t\t// Ensure the child is not in the current element's scope\n\t\tconst childElementId = findElementIdOf( childAnchorElement );\n\n\t\tif ( childElementId !== elementId ) {\n\t\t\treturn childElementId;\n\t\t}\n\t}\n\n\treturn null;\n}\n\nexport function getAnchoredAncestorId( elementId: string ): string | null {\n\tconst element = getElementDOM( elementId );\n\n\tif ( ! element || element.parentElement === null ) {\n\t\treturn null;\n\t}\n\n\tconst parentAnchor = element.parentElement.closest( ANCHOR_SELECTOR );\n\n\treturn parentAnchor ? findElementIdOf( parentAnchor ) : null;\n}\n\nexport function isElementAnchored( elementId: string ): boolean {\n\tconst element = getElementDOM( elementId ) as HTMLElement;\n\n\tif ( ! element ) {\n\t\treturn false;\n\t}\n\n\tif ( element.matches( ANCHOR_SELECTOR ) ) {\n\t\treturn true;\n\t}\n\n\treturn doesElementContainAnchor( element );\n}\n\nfunction doesElementContainAnchor( element: Element ): boolean {\n\tfor ( const child of Array.from( element.children ) as HTMLElement[] ) {\n\t\tif ( isElementorElement( child ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ( child.matches( ANCHOR_SELECTOR ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif ( doesElementContainAnchor( child ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\nfunction findElementIdOf( element: Element ): string | null {\n\treturn element.closest< HTMLElement >( '[data-id]' )?.dataset.id || null;\n}\n\nfunction checkForInlineLink( elementId: string, resolvedValue?: LinkValue ): boolean {\n\tconst element = getElementDOM( elementId );\n\n\tif ( ! element ) {\n\t\treturn false;\n\t}\n\n\tif ( element.matches( ANCHOR_SELECTOR ) ) {\n\t\treturn false;\n\t}\n\n\tconst linkSetting = resolvedValue ?? getElementSetting< LinkPropValue >( elementId, 'link' )?.value;\n\n\tif ( linkSetting?.destination ) {\n\t\treturn false;\n\t}\n\n\treturn element.querySelector( ANCHOR_SELECTOR ) !== null;\n}\n\nfunction getElementDOM( id: string ) {\n\ttry {\n\t\treturn getContainer( id )?.view?.el || null;\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nfunction isElementorElement( element: Element ): boolean {\n\treturn element.hasAttribute( 'data-id' );\n}\n","import { commandEndEvent, windowEvent } from '@elementor/editor-v1-adapters';\n\nexport const ELEMENT_STYLE_CHANGE_EVENT = 'elementor/editor-v2/editor-elements/style';\n\nexport const styleRerenderEvents = [\n\tcommandEndEvent( 'document/elements/create' ),\n\tcommandEndEvent( 'document/elements/duplicate' ),\n\tcommandEndEvent( 'document/elements/import' ),\n\tcommandEndEvent( 'document/elements/paste' ),\n\twindowEvent( ELEMENT_STYLE_CHANGE_EVENT ),\n];\n","import { classesPropTypeUtil } from '@elementor/editor-props';\nimport {\n\tgenerateId,\n\ttype StyleDefinition,\n\ttype StyleDefinitionID,\n\ttype StyleDefinitionVariant,\n} from '@elementor/editor-styles';\n\nimport { getElementSetting } from '../sync/get-element-setting';\nimport { updateElementSettings } from '../sync/update-element-settings';\nimport { type ElementID } from '../types';\nimport { mutateElementStyles } from './mutate-element-styles';\n\nexport type CreateElementStyleArgs = {\n\tstyleId?: StyleDefinitionID;\n\telementId: ElementID;\n\tclassesProp: string;\n\tlabel: string;\n\tmeta: StyleDefinitionVariant[ 'meta' ];\n\tprops: StyleDefinitionVariant[ 'props' ];\n\tcustom_css?: StyleDefinitionVariant[ 'custom_css' ];\n\tadditionalVariants?: StyleDefinitionVariant[];\n};\n\nexport function createElementStyle( {\n\tstyleId,\n\telementId,\n\tclassesProp,\n\tlabel,\n\tmeta,\n\tprops,\n\tcustom_css: customCss = null,\n\tadditionalVariants = [],\n}: CreateElementStyleArgs ): string {\n\tlet id = styleId;\n\n\tmutateElementStyles( elementId, ( styles ) => {\n\t\tid ??= generateId( `e-${ elementId }-`, Object.keys( styles ) );\n\n\t\tconst variants = [ { meta, props, custom_css: customCss }, ...additionalVariants ];\n\n\t\tstyles[ id ] = {\n\t\t\tid,\n\t\t\tlabel,\n\t\t\ttype: 'class',\n\t\t\tvariants,\n\t\t} satisfies StyleDefinition;\n\n\t\taddStyleToClassesProp( elementId, classesProp, id );\n\n\t\treturn styles;\n\t} );\n\n\treturn id as string;\n}\n\nfunction addStyleToClassesProp( elementId: ElementID, classesProp: string, styleId: string ) {\n\tconst base = getElementSetting( elementId, classesProp );\n\n\tconst classesPropValue = classesPropTypeUtil.create(\n\t\t( prev ) => {\n\t\t\treturn [ ...( prev ?? [] ), styleId ];\n\t\t},\n\t\t{ base }\n\t);\n\n\tupdateElementSettings( {\n\t\tid: elementId,\n\t\tprops: {\n\t\t\t[ classesProp ]: classesPropValue,\n\t\t},\n\t\twithHistory: false,\n\t} );\n}\n\nexport function shouldCreateNewLocalStyle< T >(\n\tpayload: { styleId: StyleDefinition[ 'id' ] | null; provider: T | null } | null\n) {\n\treturn ! payload?.styleId && ! payload?.provider;\n}\n","import { classesPropTypeUtil, type ClassesPropValue } from '@elementor/editor-props';\nimport { type StyleDefinition, type StyleDefinitionsMap } from '@elementor/editor-styles';\nimport { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { ElementNotFoundError } from '../errors';\nimport { getContainer } from '../sync/get-container';\nimport { type V1Element } from '../sync/types';\nimport { updateElementSettings } from '../sync/update-element-settings';\nimport { type ElementID } from '../types';\nimport { ELEMENT_STYLE_CHANGE_EVENT } from './consts';\n\ntype Mutator = ( styles: StyleDefinitionsMap ) => StyleDefinitionsMap;\n\nexport function mutateElementStyles( elementId: ElementID, mutator: Mutator ) {\n\tconst container = getContainer( elementId );\n\n\tif ( ! container ) {\n\t\tthrow new ElementNotFoundError( { context: { elementId } } );\n\t}\n\n\tconst oldIds = Object.keys( container.model.get( 'styles' ) ?? {} );\n\n\tconst styles = mutateStyles( container, mutator );\n\n\tconst newIds = Object.keys( styles );\n\n\tclearRemovedClasses( container, {\n\t\toldIds,\n\t\tnewIds,\n\t} );\n\n\tnotifyChanges();\n\n\treturn styles;\n}\n\nfunction mutateStyles( container: V1Element, mutator: Mutator ) {\n\tconst styles: StyleDefinitionsMap = structuredClone( container.model.get( 'styles' ) ) ?? {};\n\n\tconst entries = Object.entries( mutator( styles ) )\n\t\t.map( ( [ styleId, style ] ) => {\n\t\t\tstyle.variants = removeEmptyVariants( style );\n\n\t\t\treturn [ styleId, style ] as const;\n\t\t} )\n\t\t.filter( ( [ , style ] ) => {\n\t\t\treturn ! isStyleEmpty( style );\n\t\t} );\n\n\tconst mutatedStyles = Object.fromEntries( entries );\n\n\tcontainer.model.set( 'styles', mutatedStyles );\n\n\treturn mutatedStyles;\n}\n\nfunction removeEmptyVariants( style: StyleDefinition ) {\n\treturn style.variants.filter(\n\t\t( { props, custom_css: customCss } ) => Object.keys( props ).length > 0 || customCss?.raw\n\t);\n}\n\nfunction isStyleEmpty( style: StyleDefinition ) {\n\treturn style.variants.length === 0;\n}\n\nfunction clearRemovedClasses( container: V1Element, { oldIds, newIds }: { oldIds: string[]; newIds: string[] } ) {\n\tconst removedIds = oldIds.filter( ( id ) => ! newIds.includes( id ) );\n\tconst classesProps = structuredClone( getClassesProps( container ) );\n\n\tclassesProps.forEach( ( [ , prop ] ) => {\n\t\tprop.value = prop.value.filter( ( value ) => ! removedIds.includes( value ) );\n\t} );\n\n\tupdateElementSettings( {\n\t\tid: container.id,\n\t\tprops: Object.fromEntries( classesProps ),\n\t\twithHistory: false,\n\t} );\n}\n\nfunction getClassesProps( container: V1Element ) {\n\treturn Object.entries( container.settings.toJSON() ).filter( ( prop ): prop is [ string, ClassesPropValue ] => {\n\t\tconst [ , value ] = prop;\n\n\t\treturn classesPropTypeUtil.isValid( value );\n\t} );\n}\n\nfunction notifyChanges() {\n\tdispatchChangeEvent();\n\trunCommandSync( 'document/save/set-is-modified', { status: true }, { internal: true } );\n}\n\nfunction dispatchChangeEvent() {\n\twindow.dispatchEvent( new CustomEvent( ELEMENT_STYLE_CHANGE_EVENT ) );\n}\n","import { type StyleDefinitionID } from '@elementor/editor-styles';\n\nimport { type ElementID } from '../types';\nimport { mutateElementStyles } from './mutate-element-styles';\n\nexport function deleteElementStyle( elementId: ElementID, styleId: StyleDefinitionID ) {\n\tmutateElementStyles( elementId, ( styles ) => {\n\t\t// The object is deep cloned so mutating it is fine.\n\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\tdelete styles[ styleId ];\n\n\t\treturn styles;\n\t} );\n}\n","import { mergeProps } from '@elementor/editor-props';\nimport { getVariantByMeta, type StyleDefinition, type StyleDefinitionVariant } from '@elementor/editor-styles';\n\nimport { StyleNotFoundError } from '../errors';\nimport { type ElementID } from '../types';\nimport { mutateElementStyles } from './mutate-element-styles';\n\nexport type UpdateElementStyleArgs = {\n\telementId: ElementID;\n\tstyleId: StyleDefinition[ 'id' ];\n\tmeta: StyleDefinitionVariant[ 'meta' ];\n\tprops: StyleDefinitionVariant[ 'props' ];\n\tcustom_css?: StyleDefinitionVariant[ 'custom_css' ];\n};\n\nexport function updateElementStyle( args: UpdateElementStyleArgs ) {\n\tmutateElementStyles( args.elementId, ( styles ) => {\n\t\tconst style = styles[ args.styleId ];\n\n\t\tif ( ! style ) {\n\t\t\tthrow new StyleNotFoundError( { context: { styleId: args.styleId } } );\n\t\t}\n\n\t\tconst variant = getVariantByMeta( style, args.meta );\n\t\tconst customCss = ( 'custom_css' in args ? args.custom_css : variant?.custom_css ) ?? null;\n\n\t\tif ( variant ) {\n\t\t\tvariant.props = mergeProps( variant.props, args.props );\n\t\t\tvariant.custom_css = customCss?.raw ? customCss : null;\n\t\t} else {\n\t\t\tstyle.variants.push( { meta: args.meta, props: args.props, custom_css: customCss } );\n\t\t}\n\n\t\treturn styles;\n\t} );\n}\n","import { useState } from 'react';\nimport { __privateUseListenTo as useListenTo, windowEvent } from '@elementor/editor-v1-adapters';\n\nimport { getElementInteractions } from '../sync/get-element-interactions';\nimport { type ElementInteractions } from '../sync/types';\nimport { type ElementID } from '../types';\n\nexport const useElementInteractions = ( elementId: ElementID ) => {\n\tconst [ interactions, setInteractions ] = useState< ElementInteractions >( () => {\n\t\tconst initial = getElementInteractions( elementId );\n\n\t\treturn initial ?? { version: 1, items: [] };\n\t} );\n\n\tuseListenTo(\n\t\twindowEvent( 'elementor/element/update_interactions' ),\n\t\t() => {\n\t\t\tconst newInteractions = getElementInteractions( elementId );\n\t\t\tsetInteractions( newInteractions ?? { version: 1, items: [] } );\n\t\t},\n\t\t[ elementId ]\n\t);\n\n\treturn interactions;\n};\n","import { type ElementID } from '../types';\nimport { getContainer } from './get-container';\nimport { type ElementInteractions } from './types';\n\nexport function getElementInteractions( elementId: ElementID ): ElementInteractions | undefined {\n\tconst container = getContainer( elementId );\n\n\tconst interactions = container?.model?.get( 'interactions' );\n\n\tif ( typeof interactions === 'string' ) {\n\t\treturn JSON.parse( interactions ) as ElementInteractions;\n\t}\n\n\treturn interactions;\n}\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type V1ElementModelProps } from '..';\nimport { getContainer } from './get-container';\n\nexport const updateElementInteractions = ( {\n\telementId,\n\tinteractions,\n}: {\n\telementId: string;\n\tinteractions: V1ElementModelProps[ 'interactions' ];\n} ) => {\n\tconst element = getContainer( elementId );\n\n\tif ( ! element ) {\n\t\tthrow new Error( `Element with id ${ elementId } not found` );\n\t}\n\n\telement.model.set( 'interactions', interactions );\n\n\twindow.dispatchEvent( new CustomEvent( 'elementor/element/update_interactions' ) );\n\n\trunCommandSync( 'document/save/set-is-modified', { status: true }, { internal: true } );\n};\n\nexport const playElementInteractions = ( elementId: string, interactionId: string ) => {\n\twindow.top?.dispatchEvent(\n\t\tnew CustomEvent( 'atomic/play_interactions', { detail: { elementId, interactionId } } )\n\t);\n};\n"],"mappings":"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","names":["import_editor_v1_adapters","runCommand","useListenTo","import_editor_v1_adapters","useListenTo","import_editor_v1_adapters","useListenTo","import_editor_v1_adapters","useListenTo","import_editor_v1_adapters","useListenTo","import_editor_v1_adapters","runCommandSync","import_editor_v1_adapters","import_editor_v1_adapters","runCommandSync","import_editor_v1_adapters","runCommandSync","import_editor_v1_adapters","runCommandSync","import_editor_v1_adapters","import_i18n","import_editor_v1_adapters","import_i18n","import_editor_v1_adapters","import_i18n","import_editor_v1_adapters","runCommandSync","import_editor_v1_adapters","runCommandSync","import_editor_v1_adapters","import_editor_props","import_editor_v1_adapters","runCommandSync","import_editor_props","import_editor_styles","import_editor_v1_adapters","useListenTo","import_editor_v1_adapters","runCommandSync"]}
|
package/dist/index.mjs
CHANGED
|
@@ -234,9 +234,9 @@ import { undoable } from "@elementor/editor-v1-adapters";
|
|
|
234
234
|
import { __ } from "@wordpress/i18n";
|
|
235
235
|
|
|
236
236
|
// src/sync/delete-element.ts
|
|
237
|
-
import {
|
|
237
|
+
import { __privateRunCommandSync as runCommandSync2 } from "@elementor/editor-v1-adapters";
|
|
238
238
|
function deleteElement({ container, options = {} }) {
|
|
239
|
-
|
|
239
|
+
runCommandSync2("document/elements/delete", {
|
|
240
240
|
container,
|
|
241
241
|
options
|
|
242
242
|
});
|
|
@@ -313,13 +313,13 @@ var createElements = ({
|
|
|
313
313
|
};
|
|
314
314
|
|
|
315
315
|
// src/sync/drop-element.ts
|
|
316
|
-
import { __privateRunCommandSync as
|
|
316
|
+
import { __privateRunCommandSync as runCommandSync3 } from "@elementor/editor-v1-adapters";
|
|
317
317
|
function dropElement({ containerId, model, options }) {
|
|
318
318
|
const container = getContainer(containerId);
|
|
319
319
|
if (!container) {
|
|
320
320
|
throw new Error(`Container with ID "${containerId}" not found`);
|
|
321
321
|
}
|
|
322
|
-
return
|
|
322
|
+
return runCommandSync3("preview/drop", {
|
|
323
323
|
container,
|
|
324
324
|
model,
|
|
325
325
|
options
|
|
@@ -327,11 +327,11 @@ function dropElement({ containerId, model, options }) {
|
|
|
327
327
|
}
|
|
328
328
|
|
|
329
329
|
// src/sync/duplicate-element.ts
|
|
330
|
-
import { __privateRunCommandSync as
|
|
330
|
+
import { __privateRunCommandSync as runCommandSync4 } from "@elementor/editor-v1-adapters";
|
|
331
331
|
function duplicateElement({ element, options = {} }) {
|
|
332
332
|
const currentIndex = element.view?._index ?? 0;
|
|
333
333
|
const insertPosition = options.clone !== false ? currentIndex + 1 : void 0;
|
|
334
|
-
return
|
|
334
|
+
return runCommandSync4("document/elements/duplicate", {
|
|
335
335
|
container: element,
|
|
336
336
|
options: { at: insertPosition, edit: false, ...options }
|
|
337
337
|
});
|
|
@@ -696,10 +696,10 @@ var removeElements = ({
|
|
|
696
696
|
};
|
|
697
697
|
|
|
698
698
|
// src/sync/replace-element.ts
|
|
699
|
-
var replaceElement =
|
|
700
|
-
const currentElementContainer = getContainer(
|
|
699
|
+
var replaceElement = ({ currentElementId, newElement, withHistory = true }) => {
|
|
700
|
+
const currentElementContainer = getContainer(currentElementId);
|
|
701
701
|
if (!currentElementContainer) {
|
|
702
|
-
throw new ElementNotFoundError({ context: { elementId:
|
|
702
|
+
throw new ElementNotFoundError({ context: { elementId: currentElementId } });
|
|
703
703
|
}
|
|
704
704
|
const { container, index } = getNewElementContainer(currentElementContainer, newElement);
|
|
705
705
|
const newElementInstance = createElement({
|
|
@@ -707,7 +707,7 @@ var replaceElement = async ({ currentElement, newElement, withHistory = true })
|
|
|
707
707
|
model: newElement,
|
|
708
708
|
options: { at: index, useHistory: withHistory }
|
|
709
709
|
});
|
|
710
|
-
|
|
710
|
+
deleteElement({ container: currentElementContainer, options: { useHistory: withHistory } });
|
|
711
711
|
return newElementInstance;
|
|
712
712
|
};
|
|
713
713
|
function getNewElementContainer(currentElementContainer, newElement) {
|
|
@@ -736,7 +736,7 @@ function createWrapperForWidget(parent, elementIndex) {
|
|
|
736
736
|
}
|
|
737
737
|
|
|
738
738
|
// src/sync/update-element-editor-settings.ts
|
|
739
|
-
import { __privateRunCommandSync as
|
|
739
|
+
import { __privateRunCommandSync as runCommandSync5 } from "@elementor/editor-v1-adapters";
|
|
740
740
|
var updateElementEditorSettings = ({
|
|
741
741
|
elementId,
|
|
742
742
|
settings
|
|
@@ -747,11 +747,11 @@ var updateElementEditorSettings = ({
|
|
|
747
747
|
}
|
|
748
748
|
const editorSettings = element.model.get("editor_settings") ?? {};
|
|
749
749
|
element.model.set("editor_settings", { ...editorSettings, ...settings });
|
|
750
|
-
|
|
750
|
+
runCommandSync5("document/save/set-is-modified", { status: true }, { internal: true });
|
|
751
751
|
};
|
|
752
752
|
|
|
753
753
|
// src/sync/update-element-settings.ts
|
|
754
|
-
import { __privateRunCommandSync as
|
|
754
|
+
import { __privateRunCommandSync as runCommandSync6 } from "@elementor/editor-v1-adapters";
|
|
755
755
|
var updateElementSettings = ({ id, props, withHistory = true }) => {
|
|
756
756
|
const container = getContainer(id);
|
|
757
757
|
if (!container) {
|
|
@@ -762,9 +762,9 @@ var updateElementSettings = ({ id, props, withHistory = true }) => {
|
|
|
762
762
|
settings: { ...props }
|
|
763
763
|
};
|
|
764
764
|
if (withHistory) {
|
|
765
|
-
|
|
765
|
+
runCommandSync6("document/elements/settings", args);
|
|
766
766
|
} else {
|
|
767
|
-
|
|
767
|
+
runCommandSync6("document/elements/set-settings", args, { internal: true });
|
|
768
768
|
}
|
|
769
769
|
};
|
|
770
770
|
|
|
@@ -891,7 +891,7 @@ import {
|
|
|
891
891
|
|
|
892
892
|
// src/styles/mutate-element-styles.ts
|
|
893
893
|
import { classesPropTypeUtil } from "@elementor/editor-props";
|
|
894
|
-
import { __privateRunCommandSync as
|
|
894
|
+
import { __privateRunCommandSync as runCommandSync7 } from "@elementor/editor-v1-adapters";
|
|
895
895
|
function mutateElementStyles(elementId, mutator) {
|
|
896
896
|
const container = getContainer(elementId);
|
|
897
897
|
if (!container) {
|
|
@@ -947,7 +947,7 @@ function getClassesProps(container) {
|
|
|
947
947
|
}
|
|
948
948
|
function notifyChanges() {
|
|
949
949
|
dispatchChangeEvent();
|
|
950
|
-
|
|
950
|
+
runCommandSync7("document/save/set-is-modified", { status: true }, { internal: true });
|
|
951
951
|
}
|
|
952
952
|
function dispatchChangeEvent() {
|
|
953
953
|
window.dispatchEvent(new CustomEvent(ELEMENT_STYLE_CHANGE_EVENT));
|
|
@@ -1060,7 +1060,7 @@ var useElementInteractions = (elementId) => {
|
|
|
1060
1060
|
};
|
|
1061
1061
|
|
|
1062
1062
|
// src/sync/update-element-interactions.ts
|
|
1063
|
-
import { __privateRunCommandSync as
|
|
1063
|
+
import { __privateRunCommandSync as runCommandSync8 } from "@elementor/editor-v1-adapters";
|
|
1064
1064
|
var updateElementInteractions = ({
|
|
1065
1065
|
elementId,
|
|
1066
1066
|
interactions
|
|
@@ -1071,7 +1071,7 @@ var updateElementInteractions = ({
|
|
|
1071
1071
|
}
|
|
1072
1072
|
element.model.set("interactions", interactions);
|
|
1073
1073
|
window.dispatchEvent(new CustomEvent("elementor/element/update_interactions"));
|
|
1074
|
-
|
|
1074
|
+
runCommandSync8("document/save/set-is-modified", { status: true }, { internal: true });
|
|
1075
1075
|
};
|
|
1076
1076
|
var playElementInteractions = (elementId, interactionId) => {
|
|
1077
1077
|
window.top?.dispatchEvent(
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/use-element-children.ts","../src/sync/get-container.ts","../src/sync/model-utils.ts","../src/hooks/use-element-editor-settings.ts","../src/sync/get-element-editor-settings.ts","../src/hooks/use-parent-element.ts","../src/hooks/use-selected-element.ts","../src/sync/get-widgets-cache.ts","../src/sync/get-element-type.ts","../src/sync/get-selected-elements.ts","../src/hooks/use-selected-element-settings.ts","../src/sync/get-element-setting.ts","../src/sync/create-element.ts","../src/sync/create-elements.ts","../src/sync/delete-element.ts","../src/sync/drop-element.ts","../src/sync/duplicate-element.ts","../src/sync/duplicate-elements.ts","../src/sync/generate-element-id.ts","../src/sync/get-current-document-container.ts","../src/sync/get-current-document-id.ts","../src/errors.ts","../src/sync/get-element-label.ts","../src/sync/get-element-styles.ts","../src/sync/get-all-descendants.ts","../src/sync/get-elements.ts","../src/sync/move-element.ts","../src/sync/move-elements.ts","../src/sync/remove-elements.ts","../src/sync/replace-element.ts","../src/sync/update-element-editor-settings.ts","../src/sync/update-element-settings.ts","../src/link-restriction.ts","../src/styles/consts.ts","../src/styles/create-element-style.ts","../src/styles/mutate-element-styles.ts","../src/styles/delete-element-style.ts","../src/styles/update-element-style.ts","../src/hooks/use-element-interactions.ts","../src/sync/get-element-interactions.ts","../src/sync/update-element-interactions.ts"],"sourcesContent":["import { __privateUseListenTo as useListenTo, commandEndEvent, v1ReadyEvent } from '@elementor/editor-v1-adapters';\n\nimport { getContainer } from '../sync/get-container';\nimport { findChildRecursive, getElementChildren, type ModelResult } from '../sync/model-utils';\nimport { type V1ElementEditorSettingsProps } from '../sync/types';\nimport { type ElementID } from '../types';\n\nexport type ElementModel = {\n\tid: string;\n\teditorSettings: V1ElementEditorSettingsProps;\n};\n\nexport type ElementChildren = Record< string, ElementModel[] >;\n\nfunction toElementModel( { model }: ModelResult ): ElementModel {\n\treturn {\n\t\tid: model.get( 'id' ) as string,\n\t\teditorSettings: model.get( 'editor_settings' ) ?? {},\n\t};\n}\n\nexport function useElementChildren< T extends ElementChildren >(\n\telementId: ElementID,\n\tchildrenTypes: Record< string, string >\n): T {\n\treturn useListenTo(\n\t\t[\n\t\t\tv1ReadyEvent(),\n\t\t\tcommandEndEvent( 'document/elements/create' ),\n\t\t\tcommandEndEvent( 'document/elements/delete' ),\n\t\t\tcommandEndEvent( 'document/elements/update' ),\n\t\t\tcommandEndEvent( 'document/elements/set-settings' ),\n\t\t],\n\t\t() => {\n\t\t\tconst container = getContainer( elementId );\n\t\t\tconst model = container?.model;\n\n\t\t\tif ( ! model ) {\n\t\t\t\treturn {} as ElementChildren;\n\t\t\t}\n\n\t\t\tconst elementChildren = Object.entries( childrenTypes ).reduce( ( acc, [ parentType, childType ] ) => {\n\t\t\t\tconst parent = findChildRecursive( model, ( m ) => m.get( 'elType' ) === parentType );\n\n\t\t\t\tif ( ! parent ) {\n\t\t\t\t\tacc[ childType ] = [];\n\t\t\t\t\treturn acc;\n\t\t\t\t}\n\n\t\t\t\tconst children = getElementChildren( parent.model, ( m ) => m.get( 'elType' ) === childType );\n\n\t\t\t\tacc[ childType ] = children.map( toElementModel );\n\n\t\t\t\treturn acc;\n\t\t\t}, {} as ElementChildren );\n\n\t\t\treturn elementChildren;\n\t\t},\n\t\t[ elementId ]\n\t) as T;\n}\n","import { __privateRunCommand as runCommand } from '@elementor/editor-v1-adapters';\n\nimport { type ExtendedWindow, type V1Element } from './types';\n\nexport function getContainer( id: string ): V1Element | null {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\tconst container = extendedWindow.elementor?.getContainer?.( id );\n\n\treturn container ?? null;\n}\n\nexport const selectElement = ( elementId: string ) => {\n\ttry {\n\t\tconst container = getContainer( elementId );\n\n\t\trunCommand( 'document/elements/select', { container } );\n\t} catch {}\n};\n","import { type V1Element } from './types';\n\nexport type V1Model = V1Element[ 'model' ];\n\nexport type V1Collection = V1Model[] & {\n\tremove: ( model: V1Model ) => void;\n\tadd: ( model: V1Model, options?: { at?: number }, silent?: boolean ) => void;\n\tindexOf: ( model: V1Model ) => number;\n};\n\nexport type ModelResult = {\n\tmodel: V1Model;\n};\n\nexport function findChildRecursive( model: V1Model, predicate: ( model: V1Model ) => boolean ): ModelResult | null {\n\tconst childModels = ( model.get( 'elements' ) ?? [] ) as V1Model[];\n\n\tfor ( const childModel of childModels ) {\n\t\tif ( predicate( childModel ) ) {\n\t\t\treturn { model: childModel };\n\t\t}\n\n\t\tconst found = findChildRecursive( childModel, predicate );\n\n\t\tif ( found ) {\n\t\t\treturn found;\n\t\t}\n\t}\n\n\treturn null;\n}\n\nexport function getElementChildren( model: V1Model, predicate?: ( model: V1Model ) => boolean ): ModelResult[] {\n\tconst childModels = ( model.get( 'elements' ) ?? [] ) as V1Model[];\n\n\treturn childModels\n\t\t.filter( ( childModel ) => ! predicate || predicate( childModel ) )\n\t\t.map( ( childModel ) => ( { model: childModel } ) );\n}\n","import { __privateUseListenTo as useListenTo, windowEvent } from '@elementor/editor-v1-adapters';\n\nimport { getElementEditorSettings } from '../sync/get-element-editor-settings';\nimport { type ElementID } from '../types';\n\nexport const useElementEditorSettings = ( elementId: ElementID ) => {\n\treturn useListenTo(\n\t\twindowEvent( 'elementor/element/update_editor_settings' ),\n\t\t() => getElementEditorSettings( elementId ),\n\t\t[ elementId ]\n\t);\n};\n","import { type ElementID } from '../types';\nimport { getContainer } from './get-container';\n\nexport function getElementEditorSettings( elementId: ElementID ) {\n\tconst container = getContainer( elementId );\n\n\treturn container?.model.get( 'editor_settings' ) ?? {};\n}\n","import { __privateUseListenTo as useListenTo, commandEndEvent } from '@elementor/editor-v1-adapters';\n\nimport { type ExtendedWindow } from '../sync/types';\n\nexport function useParentElement( elementId: string | null ) {\n\treturn useListenTo(\n\t\t[ commandEndEvent( 'document/elements/create' ) ],\n\t\t() => {\n\t\t\tif ( ! elementId ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst extendedWindow = window as unknown as ExtendedWindow;\n\t\t\tconst element = extendedWindow?.elementor?.getContainer?.( elementId );\n\t\t\tif ( ! element ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn element.parent;\n\t\t},\n\t\t[ elementId ]\n\t);\n}\n","import { __privateUseListenTo as useListenTo, commandEndEvent } from '@elementor/editor-v1-adapters';\n\nimport { getSelectedElement } from '../sync/get-selected-elements';\n\nexport function useSelectedElement() {\n\treturn useListenTo(\n\t\t[\n\t\t\tcommandEndEvent( 'document/elements/select' ),\n\t\t\tcommandEndEvent( 'document/elements/deselect' ),\n\t\t\tcommandEndEvent( 'document/elements/select-all' ),\n\t\t\tcommandEndEvent( 'document/elements/deselect-all' ),\n\t\t],\n\t\tgetSelectedElement\n\t);\n}\n","import { type ExtendedWindow, type V1ElementConfig } from '../sync/types.js';\ntype WidgetsCache< T > = Record< string, T >;\n\nexport function getWidgetsCache< T extends V1ElementConfig >(): WidgetsCache< T > | null {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn ( extendedWindow?.elementor?.widgetsCache as WidgetsCache< T > ) || null;\n}\n","import { type ElementType } from '../types';\nimport { getWidgetsCache } from './get-widgets-cache';\n\nexport function getElementType( type: string ): ElementType | null {\n\tif ( ! type ) {\n\t\treturn null;\n\t}\n\n\tconst widgetsCache = getWidgetsCache();\n\tconst elementType = widgetsCache?.[ type ];\n\n\tif ( ! elementType?.atomic_controls ) {\n\t\treturn null;\n\t}\n\n\tif ( ! elementType?.atomic_props_schema ) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\tkey: type,\n\t\tcontrols: elementType.atomic_controls,\n\t\tpropsSchema: elementType.atomic_props_schema,\n\t\tdependenciesPerTargetMapping: elementType.dependencies_per_target_mapping ?? {},\n\t\ttitle: elementType.title,\n\t\tstyleStates: elementType.atomic_style_states ?? [],\n\t\tpseudoStates: elementType.atomic_pseudo_states ?? [],\n\t};\n}\n","import { type Element, type ElementType } from '../types';\nimport { getElementType } from './get-element-type';\nimport { type ExtendedWindow } from './types';\n\nexport function getSelectedElements(): Element[] {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\tconst selectedElements = extendedWindow.elementor?.selection?.getElements?.() ?? [];\n\n\treturn selectedElements.reduce< Element[] >( ( acc, el ) => {\n\t\tconst type = el.model.get( 'widgetType' ) || el.model.get( 'elType' );\n\n\t\tif ( type ) {\n\t\t\tacc.push( {\n\t\t\t\tid: el.model.get( 'id' ),\n\t\t\t\ttype,\n\t\t\t} );\n\t\t}\n\n\t\treturn acc;\n\t}, [] );\n}\n\ntype GetSelectedElementTypeResult =\n\t| {\n\t\t\telement: Element;\n\t\t\telementType: ElementType;\n\t }\n\t| {\n\t\t\telement: null;\n\t\t\telementType: null;\n\t };\n\nexport function getSelectedElement(): GetSelectedElementTypeResult {\n\tconst elements = getSelectedElements();\n\n\tconst [ element ] = elements;\n\tconst elementType = getElementType( element?.type );\n\n\tif ( elements.length !== 1 || ! elementType || ! element ) {\n\t\treturn { element: null, elementType: null };\n\t}\n\n\treturn { element, elementType };\n}\n","import { type AnyTransformable } from '@elementor/editor-props';\nimport { __privateUseListenTo as useListenTo, commandEndEvent } from '@elementor/editor-v1-adapters';\n\nimport { getElementSettings } from '../sync/get-element-setting';\nimport { getSelectedElement } from '../sync/get-selected-elements';\nimport { type Element, type ElementType } from '../types';\n\ntype UseSelectedElementSettingsResult< TValue > =\n\t| {\n\t\t\telement: Element;\n\t\t\telementType: ElementType;\n\t\t\tsettings: Record< string, TValue | null >;\n\t }\n\t| {\n\t\t\telement: null;\n\t\t\telementType: null;\n\t\t\tsettings: null;\n\t };\n\n// Use the selected element and it's settings,\n// and subscribe to changes on both the selected element and its settings.\n// This ensures the element and its settings are synced.\nexport function useSelectedElementSettings< TValue = AnyTransformable >(): UseSelectedElementSettingsResult< TValue > {\n\treturn useListenTo(\n\t\t[\n\t\t\tcommandEndEvent( 'document/elements/select' ),\n\t\t\tcommandEndEvent( 'document/elements/deselect' ),\n\t\t\tcommandEndEvent( 'document/elements/select-all' ),\n\t\t\tcommandEndEvent( 'document/elements/deselect-all' ),\n\t\t\tcommandEndEvent( 'document/elements/set-settings' ),\n\t\t],\n\t\t() => {\n\t\t\tconst { element, elementType } = getSelectedElement();\n\n\t\t\tif ( ! element || ! elementType ) {\n\t\t\t\treturn { element: null, elementType: null, settings: null };\n\t\t\t}\n\n\t\t\tconst settings = getElementSettings< TValue >( element.id, Object.keys( elementType.propsSchema ) );\n\n\t\t\treturn {\n\t\t\t\telement,\n\t\t\t\telementType,\n\t\t\t\tsettings,\n\t\t\t};\n\t\t}\n\t);\n}\n","import { type ElementID } from '../types';\nimport { getContainer } from './get-container';\n\nexport const getElementSetting = < TValue >( elementId: ElementID, settingKey: string ): TValue | null => {\n\tconst container = getContainer( elementId );\n\n\treturn ( container?.settings?.get( settingKey ) as TValue ) ?? null;\n};\n\nexport const getElementSettings = < TValue >(\n\telementId: ElementID,\n\tsettingKey: string[]\n): Record< string, TValue | null > => {\n\treturn Object.fromEntries( settingKey.map( ( key ) => [ key, getElementSetting( elementId, key ) ] ) );\n};\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type V1Element, type V1ElementModelProps, type V1ElementSettingsProps } from './types';\n\ntype Options = {\n\tuseHistory?: boolean;\n\tat?: number;\n\tclone?: boolean;\n};\n\nexport type CreateElementParams = {\n\tcontainer: V1Element;\n\tmodel?: Omit< V1ElementModelProps, 'settings' | 'id' > & { settings?: V1ElementSettingsProps; id?: string };\n\toptions?: Options;\n};\n\nexport function createElement( { container, model, options }: CreateElementParams ): V1Element {\n\treturn runCommandSync< V1Element >( 'document/elements/create', {\n\t\tcontainer,\n\t\tmodel,\n\t\toptions: { edit: false, ...options },\n\t} );\n}\n","import { undoable } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nimport { createElement, type CreateElementParams } from './create-element';\nimport { deleteElement } from './delete-element';\nimport { type V1Element, type V1ElementModelProps } from './types';\n\ntype CreateElementsParams = {\n\telements: CreateElementParams[];\n\ttitle: string;\n\tsubtitle?: string;\n};\n\ntype CreatedElement = {\n\tcontainer: V1Element;\n\tparentContainer: V1Element;\n\tmodel: V1ElementModelProps;\n\toptions?: CreateElementParams[ 'options' ];\n};\n\ntype CreatedElementsResult = {\n\tcreatedElements: CreatedElement[];\n};\n\nexport type { CreateElementsParams, CreatedElement, CreatedElementsResult };\n\nexport const createElements = ( {\n\telements,\n\ttitle,\n\tsubtitle = __( 'Item added', 'elementor' ),\n}: CreateElementsParams ): CreatedElementsResult => {\n\tconst undoableCreate = undoable(\n\t\t{\n\t\t\tdo: ( { elements: elementsParam }: { elements: CreateElementParams[] } ): CreatedElementsResult => {\n\t\t\t\tconst createdElements: CreatedElement[] = [];\n\n\t\t\t\telementsParam.forEach( ( { container, options, ...elementParams } ) => {\n\t\t\t\t\tconst parentContainer = container.lookup?.() ?? container;\n\n\t\t\t\t\tif ( ! parentContainer ) {\n\t\t\t\t\t\tthrow new Error( 'Parent container not found' );\n\t\t\t\t\t}\n\n\t\t\t\t\tconst element = createElement( {\n\t\t\t\t\t\tcontainer: parentContainer,\n\t\t\t\t\t\t...elementParams,\n\t\t\t\t\t\toptions: { ...options, useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tcreatedElements.push( {\n\t\t\t\t\t\tcontainer: element,\n\t\t\t\t\t\tparentContainer,\n\t\t\t\t\t\tmodel: element.model?.toJSON() || {},\n\t\t\t\t\t\toptions,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { createdElements };\n\t\t\t},\n\t\t\tundo: ( _: { elements: CreateElementParams[] }, { createdElements }: CreatedElementsResult ) => {\n\t\t\t\t[ ...createdElements ].reverse().forEach( ( { container } ) => {\n\t\t\t\t\tconst freshContainer = container.lookup?.();\n\n\t\t\t\t\tif ( freshContainer ) {\n\t\t\t\t\t\tdeleteElement( {\n\t\t\t\t\t\t\tcontainer: freshContainer,\n\t\t\t\t\t\t\toptions: { useHistory: false },\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t},\n\t\t\tredo: (\n\t\t\t\t_: { elements: CreateElementParams[] },\n\t\t\t\t{ createdElements }: CreatedElementsResult\n\t\t\t): CreatedElementsResult => {\n\t\t\t\tconst newElements: CreatedElement[] = [];\n\n\t\t\t\tcreatedElements.forEach( ( { parentContainer, model, options } ) => {\n\t\t\t\t\tconst freshParent = parentContainer.lookup?.();\n\n\t\t\t\t\tif ( ! freshParent ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst element = createElement( {\n\t\t\t\t\t\tcontainer: freshParent,\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\toptions: { ...options, useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tnewElements.push( {\n\t\t\t\t\t\tcontainer: element,\n\t\t\t\t\t\tparentContainer: freshParent,\n\t\t\t\t\t\tmodel: element.model.toJSON(),\n\t\t\t\t\t\toptions,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { createdElements: newElements };\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttitle,\n\t\t\tsubtitle,\n\t\t}\n\t);\n\n\treturn undoableCreate( { elements } );\n};\n","import { __privateRunCommand as runCommand } from '@elementor/editor-v1-adapters';\n\nimport { type V1Element } from './types';\n\ntype Options = {\n\tuseHistory?: boolean;\n\tat?: number;\n};\n\ntype DeleteElementParams = {\n\tcontainer: V1Element;\n\toptions?: Options;\n};\n\nexport function deleteElement( { container, options = {} }: DeleteElementParams ): Promise< void > {\n\treturn runCommand( 'document/elements/delete', {\n\t\tcontainer,\n\t\toptions,\n\t} );\n}\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { getContainer } from './get-container';\nimport { type V1Element, type V1ElementModelProps, type V1ElementSettingsProps } from './types';\n\ntype Options = {\n\tuseHistory?: boolean;\n\tat?: number;\n\tscrollIntoView: boolean;\n};\n\nexport type DropElementParams = {\n\tcontainerId: string;\n\toptions?: Options;\n\tmodel?: Omit< V1ElementModelProps, 'settings' | 'id' > & { settings?: V1ElementSettingsProps; id?: string };\n};\n\nexport function dropElement( { containerId, model, options }: DropElementParams ) {\n\tconst container = getContainer( containerId );\n\n\tif ( ! container ) {\n\t\tthrow new Error( `Container with ID \"${ containerId }\" not found` );\n\t}\n\n\treturn runCommandSync< V1Element >( 'preview/drop', {\n\t\tcontainer,\n\t\tmodel,\n\t\toptions,\n\t} );\n}\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type V1Element } from './types';\n\ntype Options = {\n\tuseHistory?: boolean;\n\tat?: number;\n\tclone?: boolean;\n};\n\nexport type DuplicateElementParams = {\n\telement: V1Element;\n\toptions?: Options;\n};\n\nexport function duplicateElement( { element, options = {} }: DuplicateElementParams ): V1Element {\n\tconst currentIndex = element.view?._index ?? 0;\n\tconst insertPosition = options.clone !== false ? currentIndex + 1 : undefined;\n\n\treturn runCommandSync< V1Element >( 'document/elements/duplicate', {\n\t\tcontainer: element,\n\t\toptions: { at: insertPosition, edit: false, ...options },\n\t} );\n}\n","import { undoable } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nimport { createElement } from './create-element';\nimport { deleteElement } from './delete-element';\nimport { duplicateElement } from './duplicate-element';\nimport { getContainer } from './get-container';\nimport { type V1Element, type V1ElementModelProps } from './types';\n\ntype DuplicateElementsParams = {\n\telementIds: string[];\n\ttitle: string;\n\tsubtitle?: string;\n\tonDuplicateElements?: () => void;\n\tonRestoreElements?: () => void;\n};\n\ntype DuplicatedElement = {\n\tcontainer: V1Element;\n\tparentContainer: V1Element;\n\tmodel: V1ElementModelProps;\n\tat?: number;\n};\n\ntype DuplicatedElementsResult = {\n\tduplicatedElements: DuplicatedElement[];\n};\n\nexport type { DuplicateElementsParams, DuplicatedElement, DuplicatedElementsResult };\n\nexport const duplicateElements = ( {\n\telementIds,\n\ttitle,\n\tsubtitle = __( 'Item duplicated', 'elementor' ),\n\tonDuplicateElements,\n\tonRestoreElements,\n}: DuplicateElementsParams ): DuplicatedElementsResult => {\n\tconst undoableDuplicate = undoable(\n\t\t{\n\t\t\tdo: ( { elementIds: elementIdsToDuplicate }: { elementIds: string[] } ): DuplicatedElementsResult => {\n\t\t\t\tonDuplicateElements?.();\n\t\t\t\tconst duplicatedElements: DuplicatedElement[] = [];\n\n\t\t\t\telementIdsToDuplicate.forEach( ( elementId ) => {\n\t\t\t\t\tconst originalContainer = getContainer( elementId );\n\n\t\t\t\t\tif ( ! originalContainer?.parent ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst duplicatedElement = duplicateElement( {\n\t\t\t\t\t\telement: originalContainer,\n\t\t\t\t\t\toptions: { useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tif ( ! duplicatedElement.parent ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tduplicatedElements.push( {\n\t\t\t\t\t\tcontainer: duplicatedElement,\n\t\t\t\t\t\tparentContainer: duplicatedElement.parent,\n\t\t\t\t\t\tmodel: duplicatedElement.model.toJSON(),\n\t\t\t\t\t\tat: duplicatedElement.view?._index,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { duplicatedElements };\n\t\t\t},\n\t\t\tundo: ( _: { elementIds: string[] }, { duplicatedElements }: DuplicatedElementsResult ) => {\n\t\t\t\tonRestoreElements?.();\n\t\t\t\t[ ...duplicatedElements ].reverse().forEach( ( { container } ) => {\n\t\t\t\t\tdeleteElement( {\n\t\t\t\t\t\tcontainer,\n\t\t\t\t\t\toptions: { useHistory: false },\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t},\n\t\t\tredo: (\n\t\t\t\t_: { elementIds: string[] },\n\t\t\t\t{ duplicatedElements: previousElements }: DuplicatedElementsResult\n\t\t\t): DuplicatedElementsResult => {\n\t\t\t\tonDuplicateElements?.();\n\t\t\t\tconst duplicatedElements: DuplicatedElement[] = [];\n\n\t\t\t\tpreviousElements.forEach( ( { parentContainer, model, at } ) => {\n\t\t\t\t\tconst freshParent = parentContainer.lookup?.();\n\n\t\t\t\t\tif ( freshParent ) {\n\t\t\t\t\t\tconst createdElement = createElement( {\n\t\t\t\t\t\t\tcontainer: freshParent,\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\toptions: { useHistory: false, clone: false, at },\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\tduplicatedElements.push( {\n\t\t\t\t\t\t\tcontainer: createdElement,\n\t\t\t\t\t\t\tparentContainer: freshParent,\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\tat,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\treturn { duplicatedElements };\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttitle,\n\t\t\tsubtitle,\n\t\t}\n\t);\n\n\treturn undoableDuplicate( { elementIds } );\n};\n","import { type ExtendedWindow } from './types';\n\nexport const generateElementId = () => {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn (\n\t\textendedWindow.elementorCommon?.helpers?.getUniqueId?.() ??\n\t\t`el-${ Date.now() }-${ Math.random().toString( 36 ).substring( 2, 9 ) }`\n\t);\n};\n","import { type ExtendedWindow } from './types';\n\nexport function getCurrentDocumentContainer() {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn extendedWindow.elementor?.documents?.getCurrent?.()?.container ?? null;\n}\n","import { type ExtendedWindow } from './types';\n\nexport function getCurrentDocumentId() {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn extendedWindow.elementor?.documents?.getCurrentId?.() ?? null;\n}\n","import { createError } from '@elementor/utils';\n\nexport const ElementNotFoundError = createError< { elementId: string } >( {\n\tcode: 'element_not_found',\n\tmessage: 'Element not found.',\n} );\n\nexport const StyleNotFoundError = createError< { styleId: string } >( {\n\tcode: 'style_not_found',\n\tmessage: 'Style not found.',\n} );\n\nexport const ElementTypeNotExistsError = createError< { elementId: string } >( {\n\tcode: 'element_type_not_exists',\n\tmessage: 'Element type does not exist.',\n} );\n\nexport const ElementLabelNotExistsError = createError< { elementType: string } >( {\n\tcode: 'element_label_not_exists',\n\tmessage: 'Element label does not exist.',\n} );\n\nexport const ElementParentNotFoundError = createError< { elementId: string } >( {\n\tcode: 'element_parent_not_found',\n\tmessage: 'Element parent not found.',\n} );\n\nexport const ElementIndexNotFoundError = createError< { elementId: string } >( {\n\tcode: 'element_index_not_found',\n\tmessage: 'Element index not found.',\n} );\n","import { ElementLabelNotExistsError, ElementTypeNotExistsError } from '../errors';\nimport { getContainer } from '../sync/get-container';\nimport { getWidgetsCache } from '../sync/get-widgets-cache';\nimport { type ElementID } from '../types';\nimport { getSelectedElements } from './get-selected-elements';\n\nexport function getElementLabel( elementId?: ElementID ) {\n\tif ( ! elementId ) {\n\t\telementId = getSelectedElements()?.[ 0 ]?.id;\n\t}\n\n\tconst container = getContainer( elementId );\n\n\tconst type = container?.model.get( 'widgetType' ) || container?.model.get( 'elType' );\n\n\tif ( ! type ) {\n\t\tthrow new ElementTypeNotExistsError( { context: { elementId } } );\n\t}\n\n\tconst label = getWidgetsCache()?.[ type ]?.title;\n\n\tif ( ! label ) {\n\t\tthrow new ElementLabelNotExistsError( { context: { elementType: type } } );\n\t}\n\n\treturn label;\n}\n","import { type StyleDefinition } from '@elementor/editor-styles';\n\nimport { type ElementID } from '../types';\nimport { getContainer } from './get-container';\n\nexport const getElementStyles = ( elementID: ElementID ): Record< string, StyleDefinition > | null => {\n\tconst container = getContainer( elementID );\n\n\treturn container?.model.get( 'styles' ) || null;\n};\n","import { type V1Element } from './types';\n\nexport function getAllDescendants( container: V1Element ): V1Element[] {\n\tconst children = ( container.children ?? [] ).flatMap( ( child ) => getAllDescendants( child as V1Element ) );\n\n\treturn [ container, ...children ];\n}\n","import { type ElementID } from '../types';\nimport { getContainer } from './get-container';\nimport { getCurrentDocumentContainer } from './get-current-document-container';\nimport { type V1Element } from './types';\n\nexport function getElements( root?: ElementID ): V1Element[] {\n\tconst container = root ? getContainer( root ) : getCurrentDocumentContainer();\n\n\tif ( ! container ) {\n\t\treturn [];\n\t}\n\n\tconst children = [ ...( container.model.get( 'elements' ) ?? [] ) ].flatMap( ( childModel ) =>\n\t\tgetElements( childModel.get( 'id' ) )\n\t);\n\n\treturn [ container, ...children ];\n}\n","import { createElement } from './create-element';\nimport { deleteElement } from './delete-element';\nimport { type V1Element } from './types';\n\ntype Options = {\n\tuseHistory?: boolean;\n\tat?: number;\n\tedit?: boolean;\n};\n\nexport type MoveElementParams = {\n\telement: V1Element;\n\ttargetContainer: V1Element;\n\toptions?: Options;\n};\n\nexport function moveElement( { element, targetContainer, options = {} }: MoveElementParams ): V1Element {\n\tconst resolvedElement = element.lookup?.();\n\tconst resolvedTarget = targetContainer.lookup?.();\n\n\tif ( ! resolvedElement ) {\n\t\tthrow new Error( `Element not found: ${ element.id }` );\n\t}\n\n\tif ( ! resolvedTarget ) {\n\t\tthrow new Error( `Target container not found: ${ targetContainer.id }` );\n\t}\n\n\tconst modelToRecreate = resolvedElement.model.toJSON();\n\n\tdeleteElement( {\n\t\tcontainer: resolvedElement,\n\t\toptions: { ...options, useHistory: false },\n\t} );\n\n\tconst newContainer = createElement( {\n\t\tcontainer: resolvedTarget,\n\t\tmodel: modelToRecreate,\n\t\toptions: { edit: false, ...options, useHistory: false },\n\t} );\n\n\treturn newContainer;\n}\n","import { undoable } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nimport { moveElement } from './move-element';\nimport { type V1Element } from './types';\n\ntype MoveOptions = {\n\tuseHistory?: boolean;\n\tat?: number;\n\tedit?: boolean;\n};\n\ntype MoveInput = {\n\telement: V1Element;\n\ttargetContainer: V1Element;\n\toptions?: MoveOptions;\n};\n\ntype MoveElementsParams = {\n\tmoves: MoveInput[];\n\ttitle: string;\n\tsubtitle?: string;\n\tonMoveElements?: () => void;\n\tonRestoreElements?: () => void;\n};\n\ntype MovedElement = {\n\telement: V1Element;\n\toriginalContainer: V1Element;\n\toriginalIndex: number;\n\ttargetContainer: V1Element;\n\toptions?: MoveOptions;\n};\n\ntype MovedElementsResult = {\n\tmovedElements: MovedElement[];\n};\n\nexport type { MoveElementsParams, MoveInput, MovedElement, MovedElementsResult };\n\nexport const moveElements = ( {\n\tmoves: movesToMake,\n\ttitle,\n\tsubtitle = __( 'Elements moved', 'elementor' ),\n\tonMoveElements,\n\tonRestoreElements,\n}: MoveElementsParams ): MovedElementsResult => {\n\tconst undoableMove = undoable(\n\t\t{\n\t\t\tdo: ( { moves }: { moves: MoveInput[] } ): MovedElementsResult => {\n\t\t\t\tconst movedElements: MovedElement[] = [];\n\t\t\t\tonMoveElements?.();\n\n\t\t\t\tmoves.forEach( ( { element, targetContainer, options } ) => {\n\t\t\t\t\tconst sourceElement = element.lookup?.() ?? element;\n\t\t\t\t\tconst target = targetContainer.lookup?.() ?? targetContainer;\n\n\t\t\t\t\tif ( ! sourceElement ) {\n\t\t\t\t\t\tthrow new Error( 'Element not found' );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! target ) {\n\t\t\t\t\t\tthrow new Error( 'Target container not found' );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! sourceElement.parent ) {\n\t\t\t\t\t\tthrow new Error( 'Element has no parent container' );\n\t\t\t\t\t}\n\n\t\t\t\t\tconst originalContainer = sourceElement.parent;\n\t\t\t\t\tconst originalIndex = originalContainer.children?.indexOf( sourceElement ) ?? -1;\n\n\t\t\t\t\tconst newElement = moveElement( {\n\t\t\t\t\t\telement: sourceElement,\n\t\t\t\t\t\ttargetContainer: target,\n\t\t\t\t\t\toptions: { ...options, useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tmovedElements.push( {\n\t\t\t\t\t\telement: newElement,\n\t\t\t\t\t\toriginalContainer,\n\t\t\t\t\t\toriginalIndex,\n\t\t\t\t\t\ttargetContainer: target,\n\t\t\t\t\t\toptions,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { movedElements };\n\t\t\t},\n\t\t\tundo: ( _: { moves: MoveInput[] }, { movedElements }: MovedElementsResult ) => {\n\t\t\t\tonRestoreElements?.();\n\n\t\t\t\t[ ...movedElements ].reverse().forEach( ( { element, originalContainer, originalIndex } ) => {\n\t\t\t\t\tconst freshElement = element.lookup?.();\n\t\t\t\t\tconst freshOriginalContainer = originalContainer.lookup?.();\n\n\t\t\t\t\tif ( ! freshElement || ! freshOriginalContainer ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveElement( {\n\t\t\t\t\t\telement: freshElement,\n\t\t\t\t\t\ttargetContainer: freshOriginalContainer,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tuseHistory: false,\n\t\t\t\t\t\t\tat: originalIndex >= 0 ? originalIndex : undefined,\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t},\n\t\t\tredo: ( _: { moves: MoveInput[] }, { movedElements }: MovedElementsResult ): MovedElementsResult => {\n\t\t\t\tconst newMovedElements: MovedElement[] = [];\n\t\t\t\tonMoveElements?.();\n\n\t\t\t\tmovedElements.forEach( ( { element, originalContainer, originalIndex, targetContainer, options } ) => {\n\t\t\t\t\tconst freshElement = element.lookup?.();\n\t\t\t\t\tconst freshOriginalContainer = originalContainer.lookup?.();\n\t\t\t\t\tconst freshTarget = targetContainer.lookup?.();\n\n\t\t\t\t\tif ( ! freshElement || ! freshOriginalContainer || ! freshTarget ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst newElement = moveElement( {\n\t\t\t\t\t\telement: freshElement,\n\t\t\t\t\t\ttargetContainer: freshTarget,\n\t\t\t\t\t\toptions: { ...options, useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tnewMovedElements.push( {\n\t\t\t\t\t\telement: newElement,\n\t\t\t\t\t\toriginalContainer: freshOriginalContainer,\n\t\t\t\t\t\toriginalIndex,\n\t\t\t\t\t\ttargetContainer: freshTarget,\n\t\t\t\t\t\toptions,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { movedElements: newMovedElements };\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttitle,\n\t\t\tsubtitle,\n\t\t}\n\t);\n\n\treturn undoableMove( { moves: movesToMake } );\n};\n","import { undoable } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nimport { createElement } from './create-element';\nimport { deleteElement } from './delete-element';\nimport { getContainer } from './get-container';\nimport { type V1Element, type V1ElementModelProps } from './types';\n\ntype RemoveElementsParams = {\n\telementIds: string[];\n\ttitle: string;\n\tsubtitle?: string;\n\tonRemoveElements?: () => void;\n\tonRestoreElements?: () => void;\n};\n\ntype RemovedElement = {\n\tcontainer: V1Element;\n\tparent: V1Element;\n\tmodel: V1ElementModelProps;\n\tat: number;\n};\n\ntype RemovedElementsResult = {\n\tremovedElements: RemovedElement[];\n};\n\nexport const removeElements = ( {\n\telementIds,\n\ttitle,\n\tsubtitle = __( 'Item removed', 'elementor' ),\n\tonRemoveElements,\n\tonRestoreElements,\n}: RemoveElementsParams ): RemovedElementsResult => {\n\tconst undoableRemove = undoable(\n\t\t{\n\t\t\tdo: ( { elementIds: elementIdsParam }: { elementIds: string[] } ): RemovedElementsResult => {\n\t\t\t\tconst removedElements: RemovedElement[] = [];\n\n\t\t\t\telementIdsParam.forEach( ( elementId ) => {\n\t\t\t\t\tconst container = getContainer( elementId );\n\n\t\t\t\t\tif ( container?.parent ) {\n\t\t\t\t\t\tremovedElements.push( {\n\t\t\t\t\t\t\tcontainer,\n\t\t\t\t\t\t\tparent: container.parent,\n\t\t\t\t\t\t\tmodel: container.model.toJSON(),\n\t\t\t\t\t\t\tat: container.view?._index ?? 0,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\tonRemoveElements?.();\n\n\t\t\t\tremovedElements.forEach( ( { container } ) => {\n\t\t\t\t\tdeleteElement( {\n\t\t\t\t\t\tcontainer,\n\t\t\t\t\t\toptions: { useHistory: false },\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { removedElements };\n\t\t\t},\n\t\t\tundo: ( _: { elementIds: string[] }, { removedElements }: RemovedElementsResult ) => {\n\t\t\t\tonRestoreElements?.();\n\n\t\t\t\t[ ...removedElements ].reverse().forEach( ( { parent, model, at } ) => {\n\t\t\t\t\tconst freshParent = parent.lookup?.();\n\n\t\t\t\t\tif ( freshParent ) {\n\t\t\t\t\t\tcreateElement( {\n\t\t\t\t\t\t\tcontainer: freshParent,\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\toptions: { useHistory: false, at },\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t},\n\t\t\tredo: (\n\t\t\t\t_: { elementIds: string[] },\n\t\t\t\t{ removedElements }: RemovedElementsResult\n\t\t\t): RemovedElementsResult => {\n\t\t\t\tonRemoveElements?.();\n\n\t\t\t\tconst newRemovedElements: RemovedElement[] = [];\n\n\t\t\t\tremovedElements.forEach( ( { container, parent, model, at } ) => {\n\t\t\t\t\tconst freshContainer = container.lookup?.();\n\t\t\t\t\tconst freshParent = parent.lookup?.();\n\n\t\t\t\t\tif ( ! freshContainer || ! freshParent ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tdeleteElement( {\n\t\t\t\t\t\tcontainer: freshContainer,\n\t\t\t\t\t\toptions: { useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tnewRemovedElements.push( {\n\t\t\t\t\t\tcontainer: freshContainer,\n\t\t\t\t\t\tparent: freshParent,\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tat,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { removedElements: newRemovedElements };\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttitle,\n\t\t\tsubtitle,\n\t\t}\n\t);\n\n\treturn undoableRemove( { elementIds } );\n};\n","import { ElementIndexNotFoundError, ElementNotFoundError, ElementParentNotFoundError } from '../errors';\nimport { createElement } from './create-element';\nimport { deleteElement } from './delete-element';\nimport { getContainer } from './get-container';\nimport { type V1Element, type V1ElementData, type V1ElementModelProps } from './types';\n\ntype ElementLocation = {\n\tcontainer: V1Element;\n\tindex: number;\n};\n\ntype ReplaceElementArgs = {\n\tcurrentElement: V1ElementData;\n\tnewElement: Omit< V1ElementModelProps, 'id' >;\n\twithHistory?: boolean;\n};\n\nexport const replaceElement = async ( { currentElement, newElement, withHistory = true }: ReplaceElementArgs ) => {\n\tconst currentElementContainer = getContainer( currentElement.id );\n\n\tif ( ! currentElementContainer ) {\n\t\tthrow new ElementNotFoundError( { context: { elementId: currentElement.id } } );\n\t}\n\n\tconst { container, index } = getNewElementContainer( currentElementContainer, newElement );\n\n\tconst newElementInstance = createElement( {\n\t\tcontainer,\n\t\tmodel: newElement,\n\t\toptions: { at: index, useHistory: withHistory },\n\t} );\n\n\tawait deleteElement( { container: currentElementContainer, options: { useHistory: withHistory } } );\n\n\treturn newElementInstance;\n};\n\nfunction getNewElementContainer(\n\tcurrentElementContainer: V1Element,\n\tnewElement: Omit< V1ElementModelProps, 'id' >\n): ElementLocation {\n\tconst { parent } = currentElementContainer;\n\n\tif ( ! parent ) {\n\t\tthrow new ElementParentNotFoundError( { context: { elementId: currentElementContainer.id } } );\n\t}\n\n\tconst elementIndex = currentElementContainer.view?._index ?? 0;\n\n\tif ( elementIndex === -1 ) {\n\t\tthrow new ElementIndexNotFoundError( { context: { elementId: currentElementContainer.id } } );\n\t}\n\n\tlet location: ElementLocation = { container: parent, index: elementIndex };\n\n\tif ( parent.id === 'document' && newElement.elType === 'widget' ) {\n\t\tlocation = createWrapperForWidget( parent, elementIndex );\n\t}\n\n\treturn location;\n}\n\nconst DEFAULT_CONTAINER_TYPE = 'e-flexbox';\n\nfunction createWrapperForWidget( parent: V1Element, elementIndex: number ): ElementLocation {\n\tconst container = createElement( {\n\t\tcontainer: parent,\n\t\tmodel: { elType: DEFAULT_CONTAINER_TYPE },\n\t\toptions: { at: elementIndex, useHistory: false },\n\t} );\n\n\treturn { container, index: 0 };\n}\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type V1ElementModelProps } from '..';\nimport { getContainer } from './get-container';\n\nexport const updateElementEditorSettings = ( {\n\telementId,\n\tsettings,\n}: {\n\telementId: string;\n\tsettings: V1ElementModelProps[ 'editor_settings' ];\n} ) => {\n\tconst element = getContainer( elementId );\n\n\tif ( ! element ) {\n\t\tthrow new Error( `Element with id ${ elementId } not found` );\n\t}\n\n\tconst editorSettings = element.model.get( 'editor_settings' ) ?? {};\n\n\telement.model.set( 'editor_settings', { ...editorSettings, ...settings } );\n\n\trunCommandSync( 'document/save/set-is-modified', { status: true }, { internal: true } );\n};\n","import { type Props } from '@elementor/editor-props';\nimport { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type ElementID } from '../types';\nimport { getContainer } from './get-container';\n\nexport type UpdateElementSettingsArgs = {\n\tid: ElementID;\n\tprops: Props;\n\twithHistory?: boolean;\n};\n\nexport const updateElementSettings = ( { id, props, withHistory = true }: UpdateElementSettingsArgs ) => {\n\tconst container = getContainer( id );\n\n\tif ( ! container ) {\n\t\treturn;\n\t}\n\n\tconst args = {\n\t\tcontainer,\n\t\tsettings: { ...props },\n\t};\n\n\tif ( withHistory ) {\n\t\trunCommandSync( 'document/elements/settings', args );\n\t} else {\n\t\trunCommandSync( 'document/elements/set-settings', args, { internal: true } );\n\t}\n};\n","import { type LinkPropValue } from '@elementor/editor-props';\n\nimport { getContainer } from './sync/get-container';\nimport { getElementSetting } from './sync/get-element-setting';\n\nconst ANCHOR_SELECTOR = 'a, [data-action-link]';\n\ntype LinkValue = LinkPropValue[ 'value' ];\n\nexport type LinkInLinkRestriction =\n\t| {\n\t\t\tshouldRestrict: true;\n\t\t\treason: 'ancestor' | 'descendant';\n\t\t\telementId: string | null;\n\t }\n\t| {\n\t\t\tshouldRestrict: false;\n\t\t\treason?: never;\n\t\t\telementId?: never;\n\t };\n\nexport function getLinkInLinkRestriction( elementId: string, resolvedValue?: LinkValue ): LinkInLinkRestriction {\n\tconst anchoredDescendantId = getAnchoredDescendantId( elementId );\n\n\tif ( anchoredDescendantId ) {\n\t\treturn {\n\t\t\tshouldRestrict: true,\n\t\t\treason: 'descendant',\n\t\t\telementId: anchoredDescendantId,\n\t\t};\n\t}\n\n\tconst hasInlineLink = checkForInlineLink( elementId, resolvedValue );\n\n\tif ( hasInlineLink ) {\n\t\treturn {\n\t\t\tshouldRestrict: true,\n\t\t\treason: 'descendant',\n\t\t\telementId,\n\t\t};\n\t}\n\n\tconst ancestor = getAnchoredAncestorId( elementId );\n\n\tif ( ancestor ) {\n\t\treturn {\n\t\t\tshouldRestrict: true,\n\t\t\treason: 'ancestor',\n\t\t\telementId: ancestor,\n\t\t};\n\t}\n\n\treturn {\n\t\tshouldRestrict: false,\n\t};\n}\n\nexport function getAnchoredDescendantId( elementId: string ): string | null {\n\tconst element = getElementDOM( elementId );\n\n\tif ( ! element ) {\n\t\treturn null;\n\t}\n\n\tfor ( const childAnchorElement of Array.from( element.querySelectorAll( ANCHOR_SELECTOR ) ) ) {\n\t\t// Ensure the child is not in the current element's scope\n\t\tconst childElementId = findElementIdOf( childAnchorElement );\n\n\t\tif ( childElementId !== elementId ) {\n\t\t\treturn childElementId;\n\t\t}\n\t}\n\n\treturn null;\n}\n\nexport function getAnchoredAncestorId( elementId: string ): string | null {\n\tconst element = getElementDOM( elementId );\n\n\tif ( ! element || element.parentElement === null ) {\n\t\treturn null;\n\t}\n\n\tconst parentAnchor = element.parentElement.closest( ANCHOR_SELECTOR );\n\n\treturn parentAnchor ? findElementIdOf( parentAnchor ) : null;\n}\n\nexport function isElementAnchored( elementId: string ): boolean {\n\tconst element = getElementDOM( elementId ) as HTMLElement;\n\n\tif ( ! element ) {\n\t\treturn false;\n\t}\n\n\tif ( element.matches( ANCHOR_SELECTOR ) ) {\n\t\treturn true;\n\t}\n\n\treturn doesElementContainAnchor( element );\n}\n\nfunction doesElementContainAnchor( element: Element ): boolean {\n\tfor ( const child of Array.from( element.children ) as HTMLElement[] ) {\n\t\tif ( isElementorElement( child ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ( child.matches( ANCHOR_SELECTOR ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif ( doesElementContainAnchor( child ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\nfunction findElementIdOf( element: Element ): string | null {\n\treturn element.closest< HTMLElement >( '[data-id]' )?.dataset.id || null;\n}\n\nfunction checkForInlineLink( elementId: string, resolvedValue?: LinkValue ): boolean {\n\tconst element = getElementDOM( elementId );\n\n\tif ( ! element ) {\n\t\treturn false;\n\t}\n\n\tif ( element.matches( ANCHOR_SELECTOR ) ) {\n\t\treturn false;\n\t}\n\n\tconst linkSetting = resolvedValue ?? getElementSetting< LinkPropValue >( elementId, 'link' )?.value;\n\n\tif ( linkSetting?.destination ) {\n\t\treturn false;\n\t}\n\n\treturn element.querySelector( ANCHOR_SELECTOR ) !== null;\n}\n\nfunction getElementDOM( id: string ) {\n\ttry {\n\t\treturn getContainer( id )?.view?.el || null;\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nfunction isElementorElement( element: Element ): boolean {\n\treturn element.hasAttribute( 'data-id' );\n}\n","import { commandEndEvent, windowEvent } from '@elementor/editor-v1-adapters';\n\nexport const ELEMENT_STYLE_CHANGE_EVENT = 'elementor/editor-v2/editor-elements/style';\n\nexport const styleRerenderEvents = [\n\tcommandEndEvent( 'document/elements/create' ),\n\tcommandEndEvent( 'document/elements/duplicate' ),\n\tcommandEndEvent( 'document/elements/import' ),\n\tcommandEndEvent( 'document/elements/paste' ),\n\twindowEvent( ELEMENT_STYLE_CHANGE_EVENT ),\n];\n","import { classesPropTypeUtil } from '@elementor/editor-props';\nimport {\n\tgenerateId,\n\ttype StyleDefinition,\n\ttype StyleDefinitionID,\n\ttype StyleDefinitionVariant,\n} from '@elementor/editor-styles';\n\nimport { getElementSetting } from '../sync/get-element-setting';\nimport { updateElementSettings } from '../sync/update-element-settings';\nimport { type ElementID } from '../types';\nimport { mutateElementStyles } from './mutate-element-styles';\n\nexport type CreateElementStyleArgs = {\n\tstyleId?: StyleDefinitionID;\n\telementId: ElementID;\n\tclassesProp: string;\n\tlabel: string;\n\tmeta: StyleDefinitionVariant[ 'meta' ];\n\tprops: StyleDefinitionVariant[ 'props' ];\n\tcustom_css?: StyleDefinitionVariant[ 'custom_css' ];\n\tadditionalVariants?: StyleDefinitionVariant[];\n};\n\nexport function createElementStyle( {\n\tstyleId,\n\telementId,\n\tclassesProp,\n\tlabel,\n\tmeta,\n\tprops,\n\tcustom_css: customCss = null,\n\tadditionalVariants = [],\n}: CreateElementStyleArgs ): string {\n\tlet id = styleId;\n\n\tmutateElementStyles( elementId, ( styles ) => {\n\t\tid ??= generateId( `e-${ elementId }-`, Object.keys( styles ) );\n\n\t\tconst variants = [ { meta, props, custom_css: customCss }, ...additionalVariants ];\n\n\t\tstyles[ id ] = {\n\t\t\tid,\n\t\t\tlabel,\n\t\t\ttype: 'class',\n\t\t\tvariants,\n\t\t} satisfies StyleDefinition;\n\n\t\taddStyleToClassesProp( elementId, classesProp, id );\n\n\t\treturn styles;\n\t} );\n\n\treturn id as string;\n}\n\nfunction addStyleToClassesProp( elementId: ElementID, classesProp: string, styleId: string ) {\n\tconst base = getElementSetting( elementId, classesProp );\n\n\tconst classesPropValue = classesPropTypeUtil.create(\n\t\t( prev ) => {\n\t\t\treturn [ ...( prev ?? [] ), styleId ];\n\t\t},\n\t\t{ base }\n\t);\n\n\tupdateElementSettings( {\n\t\tid: elementId,\n\t\tprops: {\n\t\t\t[ classesProp ]: classesPropValue,\n\t\t},\n\t\twithHistory: false,\n\t} );\n}\n\nexport function shouldCreateNewLocalStyle< T >(\n\tpayload: { styleId: StyleDefinition[ 'id' ] | null; provider: T | null } | null\n) {\n\treturn ! payload?.styleId && ! payload?.provider;\n}\n","import { classesPropTypeUtil, type ClassesPropValue } from '@elementor/editor-props';\nimport { type StyleDefinition, type StyleDefinitionsMap } from '@elementor/editor-styles';\nimport { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { ElementNotFoundError } from '../errors';\nimport { getContainer } from '../sync/get-container';\nimport { type V1Element } from '../sync/types';\nimport { updateElementSettings } from '../sync/update-element-settings';\nimport { type ElementID } from '../types';\nimport { ELEMENT_STYLE_CHANGE_EVENT } from './consts';\n\ntype Mutator = ( styles: StyleDefinitionsMap ) => StyleDefinitionsMap;\n\nexport function mutateElementStyles( elementId: ElementID, mutator: Mutator ) {\n\tconst container = getContainer( elementId );\n\n\tif ( ! container ) {\n\t\tthrow new ElementNotFoundError( { context: { elementId } } );\n\t}\n\n\tconst oldIds = Object.keys( container.model.get( 'styles' ) ?? {} );\n\n\tconst styles = mutateStyles( container, mutator );\n\n\tconst newIds = Object.keys( styles );\n\n\tclearRemovedClasses( container, {\n\t\toldIds,\n\t\tnewIds,\n\t} );\n\n\tnotifyChanges();\n\n\treturn styles;\n}\n\nfunction mutateStyles( container: V1Element, mutator: Mutator ) {\n\tconst styles: StyleDefinitionsMap = structuredClone( container.model.get( 'styles' ) ) ?? {};\n\n\tconst entries = Object.entries( mutator( styles ) )\n\t\t.map( ( [ styleId, style ] ) => {\n\t\t\tstyle.variants = removeEmptyVariants( style );\n\n\t\t\treturn [ styleId, style ] as const;\n\t\t} )\n\t\t.filter( ( [ , style ] ) => {\n\t\t\treturn ! isStyleEmpty( style );\n\t\t} );\n\n\tconst mutatedStyles = Object.fromEntries( entries );\n\n\tcontainer.model.set( 'styles', mutatedStyles );\n\n\treturn mutatedStyles;\n}\n\nfunction removeEmptyVariants( style: StyleDefinition ) {\n\treturn style.variants.filter(\n\t\t( { props, custom_css: customCss } ) => Object.keys( props ).length > 0 || customCss?.raw\n\t);\n}\n\nfunction isStyleEmpty( style: StyleDefinition ) {\n\treturn style.variants.length === 0;\n}\n\nfunction clearRemovedClasses( container: V1Element, { oldIds, newIds }: { oldIds: string[]; newIds: string[] } ) {\n\tconst removedIds = oldIds.filter( ( id ) => ! newIds.includes( id ) );\n\tconst classesProps = structuredClone( getClassesProps( container ) );\n\n\tclassesProps.forEach( ( [ , prop ] ) => {\n\t\tprop.value = prop.value.filter( ( value ) => ! removedIds.includes( value ) );\n\t} );\n\n\tupdateElementSettings( {\n\t\tid: container.id,\n\t\tprops: Object.fromEntries( classesProps ),\n\t\twithHistory: false,\n\t} );\n}\n\nfunction getClassesProps( container: V1Element ) {\n\treturn Object.entries( container.settings.toJSON() ).filter( ( prop ): prop is [ string, ClassesPropValue ] => {\n\t\tconst [ , value ] = prop;\n\n\t\treturn classesPropTypeUtil.isValid( value );\n\t} );\n}\n\nfunction notifyChanges() {\n\tdispatchChangeEvent();\n\trunCommandSync( 'document/save/set-is-modified', { status: true }, { internal: true } );\n}\n\nfunction dispatchChangeEvent() {\n\twindow.dispatchEvent( new CustomEvent( ELEMENT_STYLE_CHANGE_EVENT ) );\n}\n","import { type StyleDefinitionID } from '@elementor/editor-styles';\n\nimport { type ElementID } from '../types';\nimport { mutateElementStyles } from './mutate-element-styles';\n\nexport function deleteElementStyle( elementId: ElementID, styleId: StyleDefinitionID ) {\n\tmutateElementStyles( elementId, ( styles ) => {\n\t\t// The object is deep cloned so mutating it is fine.\n\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\tdelete styles[ styleId ];\n\n\t\treturn styles;\n\t} );\n}\n","import { mergeProps } from '@elementor/editor-props';\nimport { getVariantByMeta, type StyleDefinition, type StyleDefinitionVariant } from '@elementor/editor-styles';\n\nimport { StyleNotFoundError } from '../errors';\nimport { type ElementID } from '../types';\nimport { mutateElementStyles } from './mutate-element-styles';\n\nexport type UpdateElementStyleArgs = {\n\telementId: ElementID;\n\tstyleId: StyleDefinition[ 'id' ];\n\tmeta: StyleDefinitionVariant[ 'meta' ];\n\tprops: StyleDefinitionVariant[ 'props' ];\n\tcustom_css?: StyleDefinitionVariant[ 'custom_css' ];\n};\n\nexport function updateElementStyle( args: UpdateElementStyleArgs ) {\n\tmutateElementStyles( args.elementId, ( styles ) => {\n\t\tconst style = styles[ args.styleId ];\n\n\t\tif ( ! style ) {\n\t\t\tthrow new StyleNotFoundError( { context: { styleId: args.styleId } } );\n\t\t}\n\n\t\tconst variant = getVariantByMeta( style, args.meta );\n\t\tconst customCss = ( 'custom_css' in args ? args.custom_css : variant?.custom_css ) ?? null;\n\n\t\tif ( variant ) {\n\t\t\tvariant.props = mergeProps( variant.props, args.props );\n\t\t\tvariant.custom_css = customCss?.raw ? customCss : null;\n\t\t} else {\n\t\t\tstyle.variants.push( { meta: args.meta, props: args.props, custom_css: customCss } );\n\t\t}\n\n\t\treturn styles;\n\t} );\n}\n","import { useState } from 'react';\nimport { __privateUseListenTo as useListenTo, windowEvent } from '@elementor/editor-v1-adapters';\n\nimport { getElementInteractions } from '../sync/get-element-interactions';\nimport { type ElementInteractions } from '../sync/types';\nimport { type ElementID } from '../types';\n\nexport const useElementInteractions = ( elementId: ElementID ) => {\n\tconst [ interactions, setInteractions ] = useState< ElementInteractions >( () => {\n\t\tconst initial = getElementInteractions( elementId );\n\n\t\treturn initial ?? { version: 1, items: [] };\n\t} );\n\n\tuseListenTo(\n\t\twindowEvent( 'elementor/element/update_interactions' ),\n\t\t() => {\n\t\t\tconst newInteractions = getElementInteractions( elementId );\n\t\t\tsetInteractions( newInteractions ?? { version: 1, items: [] } );\n\t\t},\n\t\t[ elementId ]\n\t);\n\n\treturn interactions;\n};\n","import { type ElementID } from '../types';\nimport { getContainer } from './get-container';\nimport { type ElementInteractions } from './types';\n\nexport function getElementInteractions( elementId: ElementID ): ElementInteractions | undefined {\n\tconst container = getContainer( elementId );\n\n\tconst interactions = container?.model?.get( 'interactions' );\n\n\tif ( typeof interactions === 'string' ) {\n\t\treturn JSON.parse( interactions ) as ElementInteractions;\n\t}\n\n\treturn interactions;\n}\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type V1ElementModelProps } from '..';\nimport { getContainer } from './get-container';\n\nexport const updateElementInteractions = ( {\n\telementId,\n\tinteractions,\n}: {\n\telementId: string;\n\tinteractions: V1ElementModelProps[ 'interactions' ];\n} ) => {\n\tconst element = getContainer( elementId );\n\n\tif ( ! element ) {\n\t\tthrow new Error( `Element with id ${ elementId } not found` );\n\t}\n\n\telement.model.set( 'interactions', interactions );\n\n\twindow.dispatchEvent( new CustomEvent( 'elementor/element/update_interactions' ) );\n\n\trunCommandSync( 'document/save/set-is-modified', { status: true }, { internal: true } );\n};\n\nexport const playElementInteractions = ( elementId: string, interactionId: string ) => {\n\twindow.top?.dispatchEvent(\n\t\tnew CustomEvent( 'atomic/play_interactions', { detail: { elementId, interactionId } } )\n\t);\n};\n"],"mappings":"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","names":["useListenTo","useListenTo","useListenTo","commandEndEvent","useListenTo","commandEndEvent","useListenTo","commandEndEvent","useListenTo","commandEndEvent","useListenTo","commandEndEvent","runCommand","runCommandSync","runCommandSync","runCommandSync","undoable","__","__","undoable","undoable","__","__","undoable","undoable","__","__","undoable","runCommandSync","runCommandSync","runCommandSync","runCommandSync","commandEndEvent","windowEvent","classesPropTypeUtil","runCommandSync","runCommandSync","classesPropTypeUtil","useListenTo","windowEvent","useListenTo","windowEvent","runCommandSync","runCommandSync"]}
|
|
1
|
+
{"version":3,"sources":["../src/hooks/use-element-children.ts","../src/sync/get-container.ts","../src/sync/model-utils.ts","../src/hooks/use-element-editor-settings.ts","../src/sync/get-element-editor-settings.ts","../src/hooks/use-parent-element.ts","../src/hooks/use-selected-element.ts","../src/sync/get-widgets-cache.ts","../src/sync/get-element-type.ts","../src/sync/get-selected-elements.ts","../src/hooks/use-selected-element-settings.ts","../src/sync/get-element-setting.ts","../src/sync/create-element.ts","../src/sync/create-elements.ts","../src/sync/delete-element.ts","../src/sync/drop-element.ts","../src/sync/duplicate-element.ts","../src/sync/duplicate-elements.ts","../src/sync/generate-element-id.ts","../src/sync/get-current-document-container.ts","../src/sync/get-current-document-id.ts","../src/errors.ts","../src/sync/get-element-label.ts","../src/sync/get-element-styles.ts","../src/sync/get-all-descendants.ts","../src/sync/get-elements.ts","../src/sync/move-element.ts","../src/sync/move-elements.ts","../src/sync/remove-elements.ts","../src/sync/replace-element.ts","../src/sync/update-element-editor-settings.ts","../src/sync/update-element-settings.ts","../src/link-restriction.ts","../src/styles/consts.ts","../src/styles/create-element-style.ts","../src/styles/mutate-element-styles.ts","../src/styles/delete-element-style.ts","../src/styles/update-element-style.ts","../src/hooks/use-element-interactions.ts","../src/sync/get-element-interactions.ts","../src/sync/update-element-interactions.ts"],"sourcesContent":["import { __privateUseListenTo as useListenTo, commandEndEvent, v1ReadyEvent } from '@elementor/editor-v1-adapters';\n\nimport { getContainer } from '../sync/get-container';\nimport { findChildRecursive, getElementChildren, type ModelResult } from '../sync/model-utils';\nimport { type V1ElementEditorSettingsProps } from '../sync/types';\nimport { type ElementID } from '../types';\n\nexport type ElementModel = {\n\tid: string;\n\teditorSettings: V1ElementEditorSettingsProps;\n};\n\nexport type ElementChildren = Record< string, ElementModel[] >;\n\nfunction toElementModel( { model }: ModelResult ): ElementModel {\n\treturn {\n\t\tid: model.get( 'id' ) as string,\n\t\teditorSettings: model.get( 'editor_settings' ) ?? {},\n\t};\n}\n\nexport function useElementChildren< T extends ElementChildren >(\n\telementId: ElementID,\n\tchildrenTypes: Record< string, string >\n): T {\n\treturn useListenTo(\n\t\t[\n\t\t\tv1ReadyEvent(),\n\t\t\tcommandEndEvent( 'document/elements/create' ),\n\t\t\tcommandEndEvent( 'document/elements/delete' ),\n\t\t\tcommandEndEvent( 'document/elements/update' ),\n\t\t\tcommandEndEvent( 'document/elements/set-settings' ),\n\t\t],\n\t\t() => {\n\t\t\tconst container = getContainer( elementId );\n\t\t\tconst model = container?.model;\n\n\t\t\tif ( ! model ) {\n\t\t\t\treturn {} as ElementChildren;\n\t\t\t}\n\n\t\t\tconst elementChildren = Object.entries( childrenTypes ).reduce( ( acc, [ parentType, childType ] ) => {\n\t\t\t\tconst parent = findChildRecursive( model, ( m ) => m.get( 'elType' ) === parentType );\n\n\t\t\t\tif ( ! parent ) {\n\t\t\t\t\tacc[ childType ] = [];\n\t\t\t\t\treturn acc;\n\t\t\t\t}\n\n\t\t\t\tconst children = getElementChildren( parent.model, ( m ) => m.get( 'elType' ) === childType );\n\n\t\t\t\tacc[ childType ] = children.map( toElementModel );\n\n\t\t\t\treturn acc;\n\t\t\t}, {} as ElementChildren );\n\n\t\t\treturn elementChildren;\n\t\t},\n\t\t[ elementId ]\n\t) as T;\n}\n","import { __privateRunCommand as runCommand } from '@elementor/editor-v1-adapters';\n\nimport { type ExtendedWindow, type V1Element } from './types';\n\nexport function getContainer( id: string ): V1Element | null {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\tconst container = extendedWindow.elementor?.getContainer?.( id );\n\n\treturn container ?? null;\n}\n\nexport const selectElement = ( elementId: string ) => {\n\ttry {\n\t\tconst container = getContainer( elementId );\n\n\t\trunCommand( 'document/elements/select', { container } );\n\t} catch {}\n};\n","import { type V1Element } from './types';\n\nexport type V1Model = V1Element[ 'model' ];\n\nexport type V1Collection = V1Model[] & {\n\tremove: ( model: V1Model ) => void;\n\tadd: ( model: V1Model, options?: { at?: number }, silent?: boolean ) => void;\n\tindexOf: ( model: V1Model ) => number;\n};\n\nexport type ModelResult = {\n\tmodel: V1Model;\n};\n\nexport function findChildRecursive( model: V1Model, predicate: ( model: V1Model ) => boolean ): ModelResult | null {\n\tconst childModels = ( model.get( 'elements' ) ?? [] ) as V1Model[];\n\n\tfor ( const childModel of childModels ) {\n\t\tif ( predicate( childModel ) ) {\n\t\t\treturn { model: childModel };\n\t\t}\n\n\t\tconst found = findChildRecursive( childModel, predicate );\n\n\t\tif ( found ) {\n\t\t\treturn found;\n\t\t}\n\t}\n\n\treturn null;\n}\n\nexport function getElementChildren( model: V1Model, predicate?: ( model: V1Model ) => boolean ): ModelResult[] {\n\tconst childModels = ( model.get( 'elements' ) ?? [] ) as V1Model[];\n\n\treturn childModels\n\t\t.filter( ( childModel ) => ! predicate || predicate( childModel ) )\n\t\t.map( ( childModel ) => ( { model: childModel } ) );\n}\n","import { __privateUseListenTo as useListenTo, windowEvent } from '@elementor/editor-v1-adapters';\n\nimport { getElementEditorSettings } from '../sync/get-element-editor-settings';\nimport { type ElementID } from '../types';\n\nexport const useElementEditorSettings = ( elementId: ElementID ) => {\n\treturn useListenTo(\n\t\twindowEvent( 'elementor/element/update_editor_settings' ),\n\t\t() => getElementEditorSettings( elementId ),\n\t\t[ elementId ]\n\t);\n};\n","import { type ElementID } from '../types';\nimport { getContainer } from './get-container';\n\nexport function getElementEditorSettings( elementId: ElementID ) {\n\tconst container = getContainer( elementId );\n\n\treturn container?.model.get( 'editor_settings' ) ?? {};\n}\n","import { __privateUseListenTo as useListenTo, commandEndEvent } from '@elementor/editor-v1-adapters';\n\nimport { type ExtendedWindow } from '../sync/types';\n\nexport function useParentElement( elementId: string | null ) {\n\treturn useListenTo(\n\t\t[ commandEndEvent( 'document/elements/create' ) ],\n\t\t() => {\n\t\t\tif ( ! elementId ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst extendedWindow = window as unknown as ExtendedWindow;\n\t\t\tconst element = extendedWindow?.elementor?.getContainer?.( elementId );\n\t\t\tif ( ! element ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn element.parent;\n\t\t},\n\t\t[ elementId ]\n\t);\n}\n","import { __privateUseListenTo as useListenTo, commandEndEvent } from '@elementor/editor-v1-adapters';\n\nimport { getSelectedElement } from '../sync/get-selected-elements';\n\nexport function useSelectedElement() {\n\treturn useListenTo(\n\t\t[\n\t\t\tcommandEndEvent( 'document/elements/select' ),\n\t\t\tcommandEndEvent( 'document/elements/deselect' ),\n\t\t\tcommandEndEvent( 'document/elements/select-all' ),\n\t\t\tcommandEndEvent( 'document/elements/deselect-all' ),\n\t\t],\n\t\tgetSelectedElement\n\t);\n}\n","import { type ExtendedWindow, type V1ElementConfig } from '../sync/types.js';\ntype WidgetsCache< T > = Record< string, T >;\n\nexport function getWidgetsCache< T extends V1ElementConfig >(): WidgetsCache< T > | null {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn ( extendedWindow?.elementor?.widgetsCache as WidgetsCache< T > ) || null;\n}\n","import { type ElementType } from '../types';\nimport { getWidgetsCache } from './get-widgets-cache';\n\nexport function getElementType( type: string ): ElementType | null {\n\tif ( ! type ) {\n\t\treturn null;\n\t}\n\n\tconst widgetsCache = getWidgetsCache();\n\tconst elementType = widgetsCache?.[ type ];\n\n\tif ( ! elementType?.atomic_controls ) {\n\t\treturn null;\n\t}\n\n\tif ( ! elementType?.atomic_props_schema ) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\tkey: type,\n\t\tcontrols: elementType.atomic_controls,\n\t\tpropsSchema: elementType.atomic_props_schema,\n\t\tdependenciesPerTargetMapping: elementType.dependencies_per_target_mapping ?? {},\n\t\ttitle: elementType.title,\n\t\tstyleStates: elementType.atomic_style_states ?? [],\n\t\tpseudoStates: elementType.atomic_pseudo_states ?? [],\n\t};\n}\n","import { type Element, type ElementType } from '../types';\nimport { getElementType } from './get-element-type';\nimport { type ExtendedWindow } from './types';\n\nexport function getSelectedElements(): Element[] {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\tconst selectedElements = extendedWindow.elementor?.selection?.getElements?.() ?? [];\n\n\treturn selectedElements.reduce< Element[] >( ( acc, el ) => {\n\t\tconst type = el.model.get( 'widgetType' ) || el.model.get( 'elType' );\n\n\t\tif ( type ) {\n\t\t\tacc.push( {\n\t\t\t\tid: el.model.get( 'id' ),\n\t\t\t\ttype,\n\t\t\t} );\n\t\t}\n\n\t\treturn acc;\n\t}, [] );\n}\n\ntype GetSelectedElementTypeResult =\n\t| {\n\t\t\telement: Element;\n\t\t\telementType: ElementType;\n\t }\n\t| {\n\t\t\telement: null;\n\t\t\telementType: null;\n\t };\n\nexport function getSelectedElement(): GetSelectedElementTypeResult {\n\tconst elements = getSelectedElements();\n\n\tconst [ element ] = elements;\n\tconst elementType = getElementType( element?.type );\n\n\tif ( elements.length !== 1 || ! elementType || ! element ) {\n\t\treturn { element: null, elementType: null };\n\t}\n\n\treturn { element, elementType };\n}\n","import { type AnyTransformable } from '@elementor/editor-props';\nimport { __privateUseListenTo as useListenTo, commandEndEvent } from '@elementor/editor-v1-adapters';\n\nimport { getElementSettings } from '../sync/get-element-setting';\nimport { getSelectedElement } from '../sync/get-selected-elements';\nimport { type Element, type ElementType } from '../types';\n\ntype UseSelectedElementSettingsResult< TValue > =\n\t| {\n\t\t\telement: Element;\n\t\t\telementType: ElementType;\n\t\t\tsettings: Record< string, TValue | null >;\n\t }\n\t| {\n\t\t\telement: null;\n\t\t\telementType: null;\n\t\t\tsettings: null;\n\t };\n\n// Use the selected element and it's settings,\n// and subscribe to changes on both the selected element and its settings.\n// This ensures the element and its settings are synced.\nexport function useSelectedElementSettings< TValue = AnyTransformable >(): UseSelectedElementSettingsResult< TValue > {\n\treturn useListenTo(\n\t\t[\n\t\t\tcommandEndEvent( 'document/elements/select' ),\n\t\t\tcommandEndEvent( 'document/elements/deselect' ),\n\t\t\tcommandEndEvent( 'document/elements/select-all' ),\n\t\t\tcommandEndEvent( 'document/elements/deselect-all' ),\n\t\t\tcommandEndEvent( 'document/elements/set-settings' ),\n\t\t],\n\t\t() => {\n\t\t\tconst { element, elementType } = getSelectedElement();\n\n\t\t\tif ( ! element || ! elementType ) {\n\t\t\t\treturn { element: null, elementType: null, settings: null };\n\t\t\t}\n\n\t\t\tconst settings = getElementSettings< TValue >( element.id, Object.keys( elementType.propsSchema ) );\n\n\t\t\treturn {\n\t\t\t\telement,\n\t\t\t\telementType,\n\t\t\t\tsettings,\n\t\t\t};\n\t\t}\n\t);\n}\n","import { type ElementID } from '../types';\nimport { getContainer } from './get-container';\n\nexport const getElementSetting = < TValue >( elementId: ElementID, settingKey: string ): TValue | null => {\n\tconst container = getContainer( elementId );\n\n\treturn ( container?.settings?.get( settingKey ) as TValue ) ?? null;\n};\n\nexport const getElementSettings = < TValue >(\n\telementId: ElementID,\n\tsettingKey: string[]\n): Record< string, TValue | null > => {\n\treturn Object.fromEntries( settingKey.map( ( key ) => [ key, getElementSetting( elementId, key ) ] ) );\n};\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type V1Element, type V1ElementModelProps, type V1ElementSettingsProps } from './types';\n\ntype Options = {\n\tuseHistory?: boolean;\n\tat?: number;\n\tclone?: boolean;\n};\n\nexport type CreateElementParams = {\n\tcontainer: V1Element;\n\tmodel?: Omit< V1ElementModelProps, 'settings' | 'id' > & { settings?: V1ElementSettingsProps; id?: string };\n\toptions?: Options;\n};\n\nexport function createElement( { container, model, options }: CreateElementParams ): V1Element {\n\treturn runCommandSync< V1Element >( 'document/elements/create', {\n\t\tcontainer,\n\t\tmodel,\n\t\toptions: { edit: false, ...options },\n\t} );\n}\n","import { undoable } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nimport { createElement, type CreateElementParams } from './create-element';\nimport { deleteElement } from './delete-element';\nimport { type V1Element, type V1ElementModelProps } from './types';\n\ntype CreateElementsParams = {\n\telements: CreateElementParams[];\n\ttitle: string;\n\tsubtitle?: string;\n};\n\ntype CreatedElement = {\n\tcontainer: V1Element;\n\tparentContainer: V1Element;\n\tmodel: V1ElementModelProps;\n\toptions?: CreateElementParams[ 'options' ];\n};\n\ntype CreatedElementsResult = {\n\tcreatedElements: CreatedElement[];\n};\n\nexport type { CreateElementsParams, CreatedElement, CreatedElementsResult };\n\nexport const createElements = ( {\n\telements,\n\ttitle,\n\tsubtitle = __( 'Item added', 'elementor' ),\n}: CreateElementsParams ): CreatedElementsResult => {\n\tconst undoableCreate = undoable(\n\t\t{\n\t\t\tdo: ( { elements: elementsParam }: { elements: CreateElementParams[] } ): CreatedElementsResult => {\n\t\t\t\tconst createdElements: CreatedElement[] = [];\n\n\t\t\t\telementsParam.forEach( ( { container, options, ...elementParams } ) => {\n\t\t\t\t\tconst parentContainer = container.lookup?.() ?? container;\n\n\t\t\t\t\tif ( ! parentContainer ) {\n\t\t\t\t\t\tthrow new Error( 'Parent container not found' );\n\t\t\t\t\t}\n\n\t\t\t\t\tconst element = createElement( {\n\t\t\t\t\t\tcontainer: parentContainer,\n\t\t\t\t\t\t...elementParams,\n\t\t\t\t\t\toptions: { ...options, useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tcreatedElements.push( {\n\t\t\t\t\t\tcontainer: element,\n\t\t\t\t\t\tparentContainer,\n\t\t\t\t\t\tmodel: element.model?.toJSON() || {},\n\t\t\t\t\t\toptions,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { createdElements };\n\t\t\t},\n\t\t\tundo: ( _: { elements: CreateElementParams[] }, { createdElements }: CreatedElementsResult ) => {\n\t\t\t\t[ ...createdElements ].reverse().forEach( ( { container } ) => {\n\t\t\t\t\tconst freshContainer = container.lookup?.();\n\n\t\t\t\t\tif ( freshContainer ) {\n\t\t\t\t\t\tdeleteElement( {\n\t\t\t\t\t\t\tcontainer: freshContainer,\n\t\t\t\t\t\t\toptions: { useHistory: false },\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t},\n\t\t\tredo: (\n\t\t\t\t_: { elements: CreateElementParams[] },\n\t\t\t\t{ createdElements }: CreatedElementsResult\n\t\t\t): CreatedElementsResult => {\n\t\t\t\tconst newElements: CreatedElement[] = [];\n\n\t\t\t\tcreatedElements.forEach( ( { parentContainer, model, options } ) => {\n\t\t\t\t\tconst freshParent = parentContainer.lookup?.();\n\n\t\t\t\t\tif ( ! freshParent ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst element = createElement( {\n\t\t\t\t\t\tcontainer: freshParent,\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\toptions: { ...options, useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tnewElements.push( {\n\t\t\t\t\t\tcontainer: element,\n\t\t\t\t\t\tparentContainer: freshParent,\n\t\t\t\t\t\tmodel: element.model.toJSON(),\n\t\t\t\t\t\toptions,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { createdElements: newElements };\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttitle,\n\t\t\tsubtitle,\n\t\t}\n\t);\n\n\treturn undoableCreate( { elements } );\n};\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type V1Element } from './types';\n\ntype Options = {\n\tuseHistory?: boolean;\n\tat?: number;\n};\n\ntype DeleteElementParams = {\n\tcontainer: V1Element;\n\toptions?: Options;\n};\n\nexport function deleteElement( { container, options = {} }: DeleteElementParams ): void {\n\trunCommandSync( 'document/elements/delete', {\n\t\tcontainer,\n\t\toptions,\n\t} );\n}\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { getContainer } from './get-container';\nimport { type V1Element, type V1ElementModelProps, type V1ElementSettingsProps } from './types';\n\ntype Options = {\n\tuseHistory?: boolean;\n\tat?: number;\n\tscrollIntoView: boolean;\n};\n\nexport type DropElementParams = {\n\tcontainerId: string;\n\toptions?: Options;\n\tmodel?: Omit< V1ElementModelProps, 'settings' | 'id' > & { settings?: V1ElementSettingsProps; id?: string };\n};\n\nexport function dropElement( { containerId, model, options }: DropElementParams ) {\n\tconst container = getContainer( containerId );\n\n\tif ( ! container ) {\n\t\tthrow new Error( `Container with ID \"${ containerId }\" not found` );\n\t}\n\n\treturn runCommandSync< V1Element >( 'preview/drop', {\n\t\tcontainer,\n\t\tmodel,\n\t\toptions,\n\t} );\n}\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type V1Element } from './types';\n\ntype Options = {\n\tuseHistory?: boolean;\n\tat?: number;\n\tclone?: boolean;\n};\n\nexport type DuplicateElementParams = {\n\telement: V1Element;\n\toptions?: Options;\n};\n\nexport function duplicateElement( { element, options = {} }: DuplicateElementParams ): V1Element {\n\tconst currentIndex = element.view?._index ?? 0;\n\tconst insertPosition = options.clone !== false ? currentIndex + 1 : undefined;\n\n\treturn runCommandSync< V1Element >( 'document/elements/duplicate', {\n\t\tcontainer: element,\n\t\toptions: { at: insertPosition, edit: false, ...options },\n\t} );\n}\n","import { undoable } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nimport { createElement } from './create-element';\nimport { deleteElement } from './delete-element';\nimport { duplicateElement } from './duplicate-element';\nimport { getContainer } from './get-container';\nimport { type V1Element, type V1ElementModelProps } from './types';\n\ntype DuplicateElementsParams = {\n\telementIds: string[];\n\ttitle: string;\n\tsubtitle?: string;\n\tonDuplicateElements?: () => void;\n\tonRestoreElements?: () => void;\n};\n\ntype DuplicatedElement = {\n\tcontainer: V1Element;\n\tparentContainer: V1Element;\n\tmodel: V1ElementModelProps;\n\tat?: number;\n};\n\ntype DuplicatedElementsResult = {\n\tduplicatedElements: DuplicatedElement[];\n};\n\nexport type { DuplicateElementsParams, DuplicatedElement, DuplicatedElementsResult };\n\nexport const duplicateElements = ( {\n\telementIds,\n\ttitle,\n\tsubtitle = __( 'Item duplicated', 'elementor' ),\n\tonDuplicateElements,\n\tonRestoreElements,\n}: DuplicateElementsParams ): DuplicatedElementsResult => {\n\tconst undoableDuplicate = undoable(\n\t\t{\n\t\t\tdo: ( { elementIds: elementIdsToDuplicate }: { elementIds: string[] } ): DuplicatedElementsResult => {\n\t\t\t\tonDuplicateElements?.();\n\t\t\t\tconst duplicatedElements: DuplicatedElement[] = [];\n\n\t\t\t\telementIdsToDuplicate.forEach( ( elementId ) => {\n\t\t\t\t\tconst originalContainer = getContainer( elementId );\n\n\t\t\t\t\tif ( ! originalContainer?.parent ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst duplicatedElement = duplicateElement( {\n\t\t\t\t\t\telement: originalContainer,\n\t\t\t\t\t\toptions: { useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tif ( ! duplicatedElement.parent ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tduplicatedElements.push( {\n\t\t\t\t\t\tcontainer: duplicatedElement,\n\t\t\t\t\t\tparentContainer: duplicatedElement.parent,\n\t\t\t\t\t\tmodel: duplicatedElement.model.toJSON(),\n\t\t\t\t\t\tat: duplicatedElement.view?._index,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { duplicatedElements };\n\t\t\t},\n\t\t\tundo: ( _: { elementIds: string[] }, { duplicatedElements }: DuplicatedElementsResult ) => {\n\t\t\t\tonRestoreElements?.();\n\t\t\t\t[ ...duplicatedElements ].reverse().forEach( ( { container } ) => {\n\t\t\t\t\tdeleteElement( {\n\t\t\t\t\t\tcontainer,\n\t\t\t\t\t\toptions: { useHistory: false },\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t},\n\t\t\tredo: (\n\t\t\t\t_: { elementIds: string[] },\n\t\t\t\t{ duplicatedElements: previousElements }: DuplicatedElementsResult\n\t\t\t): DuplicatedElementsResult => {\n\t\t\t\tonDuplicateElements?.();\n\t\t\t\tconst duplicatedElements: DuplicatedElement[] = [];\n\n\t\t\t\tpreviousElements.forEach( ( { parentContainer, model, at } ) => {\n\t\t\t\t\tconst freshParent = parentContainer.lookup?.();\n\n\t\t\t\t\tif ( freshParent ) {\n\t\t\t\t\t\tconst createdElement = createElement( {\n\t\t\t\t\t\t\tcontainer: freshParent,\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\toptions: { useHistory: false, clone: false, at },\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\tduplicatedElements.push( {\n\t\t\t\t\t\t\tcontainer: createdElement,\n\t\t\t\t\t\t\tparentContainer: freshParent,\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\tat,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\treturn { duplicatedElements };\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttitle,\n\t\t\tsubtitle,\n\t\t}\n\t);\n\n\treturn undoableDuplicate( { elementIds } );\n};\n","import { type ExtendedWindow } from './types';\n\nexport const generateElementId = () => {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn (\n\t\textendedWindow.elementorCommon?.helpers?.getUniqueId?.() ??\n\t\t`el-${ Date.now() }-${ Math.random().toString( 36 ).substring( 2, 9 ) }`\n\t);\n};\n","import { type ExtendedWindow } from './types';\n\nexport function getCurrentDocumentContainer() {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn extendedWindow.elementor?.documents?.getCurrent?.()?.container ?? null;\n}\n","import { type ExtendedWindow } from './types';\n\nexport function getCurrentDocumentId() {\n\tconst extendedWindow = window as unknown as ExtendedWindow;\n\n\treturn extendedWindow.elementor?.documents?.getCurrentId?.() ?? null;\n}\n","import { createError } from '@elementor/utils';\n\nexport const ElementNotFoundError = createError< { elementId: string } >( {\n\tcode: 'element_not_found',\n\tmessage: 'Element not found.',\n} );\n\nexport const StyleNotFoundError = createError< { styleId: string } >( {\n\tcode: 'style_not_found',\n\tmessage: 'Style not found.',\n} );\n\nexport const ElementTypeNotExistsError = createError< { elementId: string } >( {\n\tcode: 'element_type_not_exists',\n\tmessage: 'Element type does not exist.',\n} );\n\nexport const ElementLabelNotExistsError = createError< { elementType: string } >( {\n\tcode: 'element_label_not_exists',\n\tmessage: 'Element label does not exist.',\n} );\n\nexport const ElementParentNotFoundError = createError< { elementId: string } >( {\n\tcode: 'element_parent_not_found',\n\tmessage: 'Element parent not found.',\n} );\n\nexport const ElementIndexNotFoundError = createError< { elementId: string } >( {\n\tcode: 'element_index_not_found',\n\tmessage: 'Element index not found.',\n} );\n","import { ElementLabelNotExistsError, ElementTypeNotExistsError } from '../errors';\nimport { getContainer } from '../sync/get-container';\nimport { getWidgetsCache } from '../sync/get-widgets-cache';\nimport { type ElementID } from '../types';\nimport { getSelectedElements } from './get-selected-elements';\n\nexport function getElementLabel( elementId?: ElementID ) {\n\tif ( ! elementId ) {\n\t\telementId = getSelectedElements()?.[ 0 ]?.id;\n\t}\n\n\tconst container = getContainer( elementId );\n\n\tconst type = container?.model.get( 'widgetType' ) || container?.model.get( 'elType' );\n\n\tif ( ! type ) {\n\t\tthrow new ElementTypeNotExistsError( { context: { elementId } } );\n\t}\n\n\tconst label = getWidgetsCache()?.[ type ]?.title;\n\n\tif ( ! label ) {\n\t\tthrow new ElementLabelNotExistsError( { context: { elementType: type } } );\n\t}\n\n\treturn label;\n}\n","import { type StyleDefinition } from '@elementor/editor-styles';\n\nimport { type ElementID } from '../types';\nimport { getContainer } from './get-container';\n\nexport const getElementStyles = ( elementID: ElementID ): Record< string, StyleDefinition > | null => {\n\tconst container = getContainer( elementID );\n\n\treturn container?.model.get( 'styles' ) || null;\n};\n","import { type V1Element } from './types';\n\nexport function getAllDescendants( container: V1Element ): V1Element[] {\n\tconst children = ( container.children ?? [] ).flatMap( ( child ) => getAllDescendants( child as V1Element ) );\n\n\treturn [ container, ...children ];\n}\n","import { type ElementID } from '../types';\nimport { getContainer } from './get-container';\nimport { getCurrentDocumentContainer } from './get-current-document-container';\nimport { type V1Element } from './types';\n\nexport function getElements( root?: ElementID ): V1Element[] {\n\tconst container = root ? getContainer( root ) : getCurrentDocumentContainer();\n\n\tif ( ! container ) {\n\t\treturn [];\n\t}\n\n\tconst children = [ ...( container.model.get( 'elements' ) ?? [] ) ].flatMap( ( childModel ) =>\n\t\tgetElements( childModel.get( 'id' ) )\n\t);\n\n\treturn [ container, ...children ];\n}\n","import { createElement } from './create-element';\nimport { deleteElement } from './delete-element';\nimport { type V1Element } from './types';\n\ntype Options = {\n\tuseHistory?: boolean;\n\tat?: number;\n\tedit?: boolean;\n};\n\nexport type MoveElementParams = {\n\telement: V1Element;\n\ttargetContainer: V1Element;\n\toptions?: Options;\n};\n\nexport function moveElement( { element, targetContainer, options = {} }: MoveElementParams ): V1Element {\n\tconst resolvedElement = element.lookup?.();\n\tconst resolvedTarget = targetContainer.lookup?.();\n\n\tif ( ! resolvedElement ) {\n\t\tthrow new Error( `Element not found: ${ element.id }` );\n\t}\n\n\tif ( ! resolvedTarget ) {\n\t\tthrow new Error( `Target container not found: ${ targetContainer.id }` );\n\t}\n\n\tconst modelToRecreate = resolvedElement.model.toJSON();\n\n\tdeleteElement( {\n\t\tcontainer: resolvedElement,\n\t\toptions: { ...options, useHistory: false },\n\t} );\n\n\tconst newContainer = createElement( {\n\t\tcontainer: resolvedTarget,\n\t\tmodel: modelToRecreate,\n\t\toptions: { edit: false, ...options, useHistory: false },\n\t} );\n\n\treturn newContainer;\n}\n","import { undoable } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nimport { moveElement } from './move-element';\nimport { type V1Element } from './types';\n\ntype MoveOptions = {\n\tuseHistory?: boolean;\n\tat?: number;\n\tedit?: boolean;\n};\n\ntype MoveInput = {\n\telement: V1Element;\n\ttargetContainer: V1Element;\n\toptions?: MoveOptions;\n};\n\ntype MoveElementsParams = {\n\tmoves: MoveInput[];\n\ttitle: string;\n\tsubtitle?: string;\n\tonMoveElements?: () => void;\n\tonRestoreElements?: () => void;\n};\n\ntype MovedElement = {\n\telement: V1Element;\n\toriginalContainer: V1Element;\n\toriginalIndex: number;\n\ttargetContainer: V1Element;\n\toptions?: MoveOptions;\n};\n\ntype MovedElementsResult = {\n\tmovedElements: MovedElement[];\n};\n\nexport type { MoveElementsParams, MoveInput, MovedElement, MovedElementsResult };\n\nexport const moveElements = ( {\n\tmoves: movesToMake,\n\ttitle,\n\tsubtitle = __( 'Elements moved', 'elementor' ),\n\tonMoveElements,\n\tonRestoreElements,\n}: MoveElementsParams ): MovedElementsResult => {\n\tconst undoableMove = undoable(\n\t\t{\n\t\t\tdo: ( { moves }: { moves: MoveInput[] } ): MovedElementsResult => {\n\t\t\t\tconst movedElements: MovedElement[] = [];\n\t\t\t\tonMoveElements?.();\n\n\t\t\t\tmoves.forEach( ( { element, targetContainer, options } ) => {\n\t\t\t\t\tconst sourceElement = element.lookup?.() ?? element;\n\t\t\t\t\tconst target = targetContainer.lookup?.() ?? targetContainer;\n\n\t\t\t\t\tif ( ! sourceElement ) {\n\t\t\t\t\t\tthrow new Error( 'Element not found' );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! target ) {\n\t\t\t\t\t\tthrow new Error( 'Target container not found' );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! sourceElement.parent ) {\n\t\t\t\t\t\tthrow new Error( 'Element has no parent container' );\n\t\t\t\t\t}\n\n\t\t\t\t\tconst originalContainer = sourceElement.parent;\n\t\t\t\t\tconst originalIndex = originalContainer.children?.indexOf( sourceElement ) ?? -1;\n\n\t\t\t\t\tconst newElement = moveElement( {\n\t\t\t\t\t\telement: sourceElement,\n\t\t\t\t\t\ttargetContainer: target,\n\t\t\t\t\t\toptions: { ...options, useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tmovedElements.push( {\n\t\t\t\t\t\telement: newElement,\n\t\t\t\t\t\toriginalContainer,\n\t\t\t\t\t\toriginalIndex,\n\t\t\t\t\t\ttargetContainer: target,\n\t\t\t\t\t\toptions,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { movedElements };\n\t\t\t},\n\t\t\tundo: ( _: { moves: MoveInput[] }, { movedElements }: MovedElementsResult ) => {\n\t\t\t\tonRestoreElements?.();\n\n\t\t\t\t[ ...movedElements ].reverse().forEach( ( { element, originalContainer, originalIndex } ) => {\n\t\t\t\t\tconst freshElement = element.lookup?.();\n\t\t\t\t\tconst freshOriginalContainer = originalContainer.lookup?.();\n\n\t\t\t\t\tif ( ! freshElement || ! freshOriginalContainer ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveElement( {\n\t\t\t\t\t\telement: freshElement,\n\t\t\t\t\t\ttargetContainer: freshOriginalContainer,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tuseHistory: false,\n\t\t\t\t\t\t\tat: originalIndex >= 0 ? originalIndex : undefined,\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t},\n\t\t\tredo: ( _: { moves: MoveInput[] }, { movedElements }: MovedElementsResult ): MovedElementsResult => {\n\t\t\t\tconst newMovedElements: MovedElement[] = [];\n\t\t\t\tonMoveElements?.();\n\n\t\t\t\tmovedElements.forEach( ( { element, originalContainer, originalIndex, targetContainer, options } ) => {\n\t\t\t\t\tconst freshElement = element.lookup?.();\n\t\t\t\t\tconst freshOriginalContainer = originalContainer.lookup?.();\n\t\t\t\t\tconst freshTarget = targetContainer.lookup?.();\n\n\t\t\t\t\tif ( ! freshElement || ! freshOriginalContainer || ! freshTarget ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst newElement = moveElement( {\n\t\t\t\t\t\telement: freshElement,\n\t\t\t\t\t\ttargetContainer: freshTarget,\n\t\t\t\t\t\toptions: { ...options, useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tnewMovedElements.push( {\n\t\t\t\t\t\telement: newElement,\n\t\t\t\t\t\toriginalContainer: freshOriginalContainer,\n\t\t\t\t\t\toriginalIndex,\n\t\t\t\t\t\ttargetContainer: freshTarget,\n\t\t\t\t\t\toptions,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { movedElements: newMovedElements };\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttitle,\n\t\t\tsubtitle,\n\t\t}\n\t);\n\n\treturn undoableMove( { moves: movesToMake } );\n};\n","import { undoable } from '@elementor/editor-v1-adapters';\nimport { __ } from '@wordpress/i18n';\n\nimport { createElement } from './create-element';\nimport { deleteElement } from './delete-element';\nimport { getContainer } from './get-container';\nimport { type V1Element, type V1ElementModelProps } from './types';\n\ntype RemoveElementsParams = {\n\telementIds: string[];\n\ttitle: string;\n\tsubtitle?: string;\n\tonRemoveElements?: () => void;\n\tonRestoreElements?: () => void;\n};\n\ntype RemovedElement = {\n\tcontainer: V1Element;\n\tparent: V1Element;\n\tmodel: V1ElementModelProps;\n\tat: number;\n};\n\ntype RemovedElementsResult = {\n\tremovedElements: RemovedElement[];\n};\n\nexport const removeElements = ( {\n\telementIds,\n\ttitle,\n\tsubtitle = __( 'Item removed', 'elementor' ),\n\tonRemoveElements,\n\tonRestoreElements,\n}: RemoveElementsParams ): RemovedElementsResult => {\n\tconst undoableRemove = undoable(\n\t\t{\n\t\t\tdo: ( { elementIds: elementIdsParam }: { elementIds: string[] } ): RemovedElementsResult => {\n\t\t\t\tconst removedElements: RemovedElement[] = [];\n\n\t\t\t\telementIdsParam.forEach( ( elementId ) => {\n\t\t\t\t\tconst container = getContainer( elementId );\n\n\t\t\t\t\tif ( container?.parent ) {\n\t\t\t\t\t\tremovedElements.push( {\n\t\t\t\t\t\t\tcontainer,\n\t\t\t\t\t\t\tparent: container.parent,\n\t\t\t\t\t\t\tmodel: container.model.toJSON(),\n\t\t\t\t\t\t\tat: container.view?._index ?? 0,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\tonRemoveElements?.();\n\n\t\t\t\tremovedElements.forEach( ( { container } ) => {\n\t\t\t\t\tdeleteElement( {\n\t\t\t\t\t\tcontainer,\n\t\t\t\t\t\toptions: { useHistory: false },\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { removedElements };\n\t\t\t},\n\t\t\tundo: ( _: { elementIds: string[] }, { removedElements }: RemovedElementsResult ) => {\n\t\t\t\tonRestoreElements?.();\n\n\t\t\t\t[ ...removedElements ].reverse().forEach( ( { parent, model, at } ) => {\n\t\t\t\t\tconst freshParent = parent.lookup?.();\n\n\t\t\t\t\tif ( freshParent ) {\n\t\t\t\t\t\tcreateElement( {\n\t\t\t\t\t\t\tcontainer: freshParent,\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\toptions: { useHistory: false, at },\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t},\n\t\t\tredo: (\n\t\t\t\t_: { elementIds: string[] },\n\t\t\t\t{ removedElements }: RemovedElementsResult\n\t\t\t): RemovedElementsResult => {\n\t\t\t\tonRemoveElements?.();\n\n\t\t\t\tconst newRemovedElements: RemovedElement[] = [];\n\n\t\t\t\tremovedElements.forEach( ( { container, parent, model, at } ) => {\n\t\t\t\t\tconst freshContainer = container.lookup?.();\n\t\t\t\t\tconst freshParent = parent.lookup?.();\n\n\t\t\t\t\tif ( ! freshContainer || ! freshParent ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tdeleteElement( {\n\t\t\t\t\t\tcontainer: freshContainer,\n\t\t\t\t\t\toptions: { useHistory: false },\n\t\t\t\t\t} );\n\n\t\t\t\t\tnewRemovedElements.push( {\n\t\t\t\t\t\tcontainer: freshContainer,\n\t\t\t\t\t\tparent: freshParent,\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tat,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn { removedElements: newRemovedElements };\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttitle,\n\t\t\tsubtitle,\n\t\t}\n\t);\n\n\treturn undoableRemove( { elementIds } );\n};\n","import { ElementIndexNotFoundError, ElementNotFoundError, ElementParentNotFoundError } from '../errors';\nimport { createElement } from './create-element';\nimport { deleteElement } from './delete-element';\nimport { getContainer } from './get-container';\nimport { type V1Element, type V1ElementModelProps } from './types';\n\ntype ElementLocation = {\n\tcontainer: V1Element;\n\tindex: number;\n};\n\ntype ReplaceElementArgs = {\n\tcurrentElementId: string;\n\tnewElement: Omit< V1ElementModelProps, 'id' >;\n\twithHistory?: boolean;\n};\n\nexport const replaceElement = ( { currentElementId, newElement, withHistory = true }: ReplaceElementArgs ) => {\n\tconst currentElementContainer = getContainer( currentElementId );\n\n\tif ( ! currentElementContainer ) {\n\t\tthrow new ElementNotFoundError( { context: { elementId: currentElementId } } );\n\t}\n\n\tconst { container, index } = getNewElementContainer( currentElementContainer, newElement );\n\n\tconst newElementInstance = createElement( {\n\t\tcontainer,\n\t\tmodel: newElement,\n\t\toptions: { at: index, useHistory: withHistory },\n\t} );\n\n\tdeleteElement( { container: currentElementContainer, options: { useHistory: withHistory } } );\n\n\treturn newElementInstance;\n};\n\nfunction getNewElementContainer(\n\tcurrentElementContainer: V1Element,\n\tnewElement: Omit< V1ElementModelProps, 'id' >\n): ElementLocation {\n\tconst { parent } = currentElementContainer;\n\n\tif ( ! parent ) {\n\t\tthrow new ElementParentNotFoundError( { context: { elementId: currentElementContainer.id } } );\n\t}\n\n\tconst elementIndex = currentElementContainer.view?._index ?? 0;\n\n\tif ( elementIndex === -1 ) {\n\t\tthrow new ElementIndexNotFoundError( { context: { elementId: currentElementContainer.id } } );\n\t}\n\n\tlet location: ElementLocation = { container: parent, index: elementIndex };\n\n\tif ( parent.id === 'document' && newElement.elType === 'widget' ) {\n\t\tlocation = createWrapperForWidget( parent, elementIndex );\n\t}\n\n\treturn location;\n}\n\nconst DEFAULT_CONTAINER_TYPE = 'e-flexbox';\n\nfunction createWrapperForWidget( parent: V1Element, elementIndex: number ): ElementLocation {\n\tconst container = createElement( {\n\t\tcontainer: parent,\n\t\tmodel: { elType: DEFAULT_CONTAINER_TYPE },\n\t\toptions: { at: elementIndex, useHistory: false },\n\t} );\n\n\treturn { container, index: 0 };\n}\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type V1ElementModelProps } from '..';\nimport { getContainer } from './get-container';\n\nexport const updateElementEditorSettings = ( {\n\telementId,\n\tsettings,\n}: {\n\telementId: string;\n\tsettings: V1ElementModelProps[ 'editor_settings' ];\n} ) => {\n\tconst element = getContainer( elementId );\n\n\tif ( ! element ) {\n\t\tthrow new Error( `Element with id ${ elementId } not found` );\n\t}\n\n\tconst editorSettings = element.model.get( 'editor_settings' ) ?? {};\n\n\telement.model.set( 'editor_settings', { ...editorSettings, ...settings } );\n\n\trunCommandSync( 'document/save/set-is-modified', { status: true }, { internal: true } );\n};\n","import { type Props } from '@elementor/editor-props';\nimport { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type ElementID } from '../types';\nimport { getContainer } from './get-container';\n\nexport type UpdateElementSettingsArgs = {\n\tid: ElementID;\n\tprops: Props;\n\twithHistory?: boolean;\n};\n\nexport const updateElementSettings = ( { id, props, withHistory = true }: UpdateElementSettingsArgs ) => {\n\tconst container = getContainer( id );\n\n\tif ( ! container ) {\n\t\treturn;\n\t}\n\n\tconst args = {\n\t\tcontainer,\n\t\tsettings: { ...props },\n\t};\n\n\tif ( withHistory ) {\n\t\trunCommandSync( 'document/elements/settings', args );\n\t} else {\n\t\trunCommandSync( 'document/elements/set-settings', args, { internal: true } );\n\t}\n};\n","import { type LinkPropValue } from '@elementor/editor-props';\n\nimport { getContainer } from './sync/get-container';\nimport { getElementSetting } from './sync/get-element-setting';\n\nconst ANCHOR_SELECTOR = 'a, [data-action-link]';\n\ntype LinkValue = LinkPropValue[ 'value' ];\n\nexport type LinkInLinkRestriction =\n\t| {\n\t\t\tshouldRestrict: true;\n\t\t\treason: 'ancestor' | 'descendant';\n\t\t\telementId: string | null;\n\t }\n\t| {\n\t\t\tshouldRestrict: false;\n\t\t\treason?: never;\n\t\t\telementId?: never;\n\t };\n\nexport function getLinkInLinkRestriction( elementId: string, resolvedValue?: LinkValue ): LinkInLinkRestriction {\n\tconst anchoredDescendantId = getAnchoredDescendantId( elementId );\n\n\tif ( anchoredDescendantId ) {\n\t\treturn {\n\t\t\tshouldRestrict: true,\n\t\t\treason: 'descendant',\n\t\t\telementId: anchoredDescendantId,\n\t\t};\n\t}\n\n\tconst hasInlineLink = checkForInlineLink( elementId, resolvedValue );\n\n\tif ( hasInlineLink ) {\n\t\treturn {\n\t\t\tshouldRestrict: true,\n\t\t\treason: 'descendant',\n\t\t\telementId,\n\t\t};\n\t}\n\n\tconst ancestor = getAnchoredAncestorId( elementId );\n\n\tif ( ancestor ) {\n\t\treturn {\n\t\t\tshouldRestrict: true,\n\t\t\treason: 'ancestor',\n\t\t\telementId: ancestor,\n\t\t};\n\t}\n\n\treturn {\n\t\tshouldRestrict: false,\n\t};\n}\n\nexport function getAnchoredDescendantId( elementId: string ): string | null {\n\tconst element = getElementDOM( elementId );\n\n\tif ( ! element ) {\n\t\treturn null;\n\t}\n\n\tfor ( const childAnchorElement of Array.from( element.querySelectorAll( ANCHOR_SELECTOR ) ) ) {\n\t\t// Ensure the child is not in the current element's scope\n\t\tconst childElementId = findElementIdOf( childAnchorElement );\n\n\t\tif ( childElementId !== elementId ) {\n\t\t\treturn childElementId;\n\t\t}\n\t}\n\n\treturn null;\n}\n\nexport function getAnchoredAncestorId( elementId: string ): string | null {\n\tconst element = getElementDOM( elementId );\n\n\tif ( ! element || element.parentElement === null ) {\n\t\treturn null;\n\t}\n\n\tconst parentAnchor = element.parentElement.closest( ANCHOR_SELECTOR );\n\n\treturn parentAnchor ? findElementIdOf( parentAnchor ) : null;\n}\n\nexport function isElementAnchored( elementId: string ): boolean {\n\tconst element = getElementDOM( elementId ) as HTMLElement;\n\n\tif ( ! element ) {\n\t\treturn false;\n\t}\n\n\tif ( element.matches( ANCHOR_SELECTOR ) ) {\n\t\treturn true;\n\t}\n\n\treturn doesElementContainAnchor( element );\n}\n\nfunction doesElementContainAnchor( element: Element ): boolean {\n\tfor ( const child of Array.from( element.children ) as HTMLElement[] ) {\n\t\tif ( isElementorElement( child ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif ( child.matches( ANCHOR_SELECTOR ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif ( doesElementContainAnchor( child ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\nfunction findElementIdOf( element: Element ): string | null {\n\treturn element.closest< HTMLElement >( '[data-id]' )?.dataset.id || null;\n}\n\nfunction checkForInlineLink( elementId: string, resolvedValue?: LinkValue ): boolean {\n\tconst element = getElementDOM( elementId );\n\n\tif ( ! element ) {\n\t\treturn false;\n\t}\n\n\tif ( element.matches( ANCHOR_SELECTOR ) ) {\n\t\treturn false;\n\t}\n\n\tconst linkSetting = resolvedValue ?? getElementSetting< LinkPropValue >( elementId, 'link' )?.value;\n\n\tif ( linkSetting?.destination ) {\n\t\treturn false;\n\t}\n\n\treturn element.querySelector( ANCHOR_SELECTOR ) !== null;\n}\n\nfunction getElementDOM( id: string ) {\n\ttry {\n\t\treturn getContainer( id )?.view?.el || null;\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nfunction isElementorElement( element: Element ): boolean {\n\treturn element.hasAttribute( 'data-id' );\n}\n","import { commandEndEvent, windowEvent } from '@elementor/editor-v1-adapters';\n\nexport const ELEMENT_STYLE_CHANGE_EVENT = 'elementor/editor-v2/editor-elements/style';\n\nexport const styleRerenderEvents = [\n\tcommandEndEvent( 'document/elements/create' ),\n\tcommandEndEvent( 'document/elements/duplicate' ),\n\tcommandEndEvent( 'document/elements/import' ),\n\tcommandEndEvent( 'document/elements/paste' ),\n\twindowEvent( ELEMENT_STYLE_CHANGE_EVENT ),\n];\n","import { classesPropTypeUtil } from '@elementor/editor-props';\nimport {\n\tgenerateId,\n\ttype StyleDefinition,\n\ttype StyleDefinitionID,\n\ttype StyleDefinitionVariant,\n} from '@elementor/editor-styles';\n\nimport { getElementSetting } from '../sync/get-element-setting';\nimport { updateElementSettings } from '../sync/update-element-settings';\nimport { type ElementID } from '../types';\nimport { mutateElementStyles } from './mutate-element-styles';\n\nexport type CreateElementStyleArgs = {\n\tstyleId?: StyleDefinitionID;\n\telementId: ElementID;\n\tclassesProp: string;\n\tlabel: string;\n\tmeta: StyleDefinitionVariant[ 'meta' ];\n\tprops: StyleDefinitionVariant[ 'props' ];\n\tcustom_css?: StyleDefinitionVariant[ 'custom_css' ];\n\tadditionalVariants?: StyleDefinitionVariant[];\n};\n\nexport function createElementStyle( {\n\tstyleId,\n\telementId,\n\tclassesProp,\n\tlabel,\n\tmeta,\n\tprops,\n\tcustom_css: customCss = null,\n\tadditionalVariants = [],\n}: CreateElementStyleArgs ): string {\n\tlet id = styleId;\n\n\tmutateElementStyles( elementId, ( styles ) => {\n\t\tid ??= generateId( `e-${ elementId }-`, Object.keys( styles ) );\n\n\t\tconst variants = [ { meta, props, custom_css: customCss }, ...additionalVariants ];\n\n\t\tstyles[ id ] = {\n\t\t\tid,\n\t\t\tlabel,\n\t\t\ttype: 'class',\n\t\t\tvariants,\n\t\t} satisfies StyleDefinition;\n\n\t\taddStyleToClassesProp( elementId, classesProp, id );\n\n\t\treturn styles;\n\t} );\n\n\treturn id as string;\n}\n\nfunction addStyleToClassesProp( elementId: ElementID, classesProp: string, styleId: string ) {\n\tconst base = getElementSetting( elementId, classesProp );\n\n\tconst classesPropValue = classesPropTypeUtil.create(\n\t\t( prev ) => {\n\t\t\treturn [ ...( prev ?? [] ), styleId ];\n\t\t},\n\t\t{ base }\n\t);\n\n\tupdateElementSettings( {\n\t\tid: elementId,\n\t\tprops: {\n\t\t\t[ classesProp ]: classesPropValue,\n\t\t},\n\t\twithHistory: false,\n\t} );\n}\n\nexport function shouldCreateNewLocalStyle< T >(\n\tpayload: { styleId: StyleDefinition[ 'id' ] | null; provider: T | null } | null\n) {\n\treturn ! payload?.styleId && ! payload?.provider;\n}\n","import { classesPropTypeUtil, type ClassesPropValue } from '@elementor/editor-props';\nimport { type StyleDefinition, type StyleDefinitionsMap } from '@elementor/editor-styles';\nimport { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { ElementNotFoundError } from '../errors';\nimport { getContainer } from '../sync/get-container';\nimport { type V1Element } from '../sync/types';\nimport { updateElementSettings } from '../sync/update-element-settings';\nimport { type ElementID } from '../types';\nimport { ELEMENT_STYLE_CHANGE_EVENT } from './consts';\n\ntype Mutator = ( styles: StyleDefinitionsMap ) => StyleDefinitionsMap;\n\nexport function mutateElementStyles( elementId: ElementID, mutator: Mutator ) {\n\tconst container = getContainer( elementId );\n\n\tif ( ! container ) {\n\t\tthrow new ElementNotFoundError( { context: { elementId } } );\n\t}\n\n\tconst oldIds = Object.keys( container.model.get( 'styles' ) ?? {} );\n\n\tconst styles = mutateStyles( container, mutator );\n\n\tconst newIds = Object.keys( styles );\n\n\tclearRemovedClasses( container, {\n\t\toldIds,\n\t\tnewIds,\n\t} );\n\n\tnotifyChanges();\n\n\treturn styles;\n}\n\nfunction mutateStyles( container: V1Element, mutator: Mutator ) {\n\tconst styles: StyleDefinitionsMap = structuredClone( container.model.get( 'styles' ) ) ?? {};\n\n\tconst entries = Object.entries( mutator( styles ) )\n\t\t.map( ( [ styleId, style ] ) => {\n\t\t\tstyle.variants = removeEmptyVariants( style );\n\n\t\t\treturn [ styleId, style ] as const;\n\t\t} )\n\t\t.filter( ( [ , style ] ) => {\n\t\t\treturn ! isStyleEmpty( style );\n\t\t} );\n\n\tconst mutatedStyles = Object.fromEntries( entries );\n\n\tcontainer.model.set( 'styles', mutatedStyles );\n\n\treturn mutatedStyles;\n}\n\nfunction removeEmptyVariants( style: StyleDefinition ) {\n\treturn style.variants.filter(\n\t\t( { props, custom_css: customCss } ) => Object.keys( props ).length > 0 || customCss?.raw\n\t);\n}\n\nfunction isStyleEmpty( style: StyleDefinition ) {\n\treturn style.variants.length === 0;\n}\n\nfunction clearRemovedClasses( container: V1Element, { oldIds, newIds }: { oldIds: string[]; newIds: string[] } ) {\n\tconst removedIds = oldIds.filter( ( id ) => ! newIds.includes( id ) );\n\tconst classesProps = structuredClone( getClassesProps( container ) );\n\n\tclassesProps.forEach( ( [ , prop ] ) => {\n\t\tprop.value = prop.value.filter( ( value ) => ! removedIds.includes( value ) );\n\t} );\n\n\tupdateElementSettings( {\n\t\tid: container.id,\n\t\tprops: Object.fromEntries( classesProps ),\n\t\twithHistory: false,\n\t} );\n}\n\nfunction getClassesProps( container: V1Element ) {\n\treturn Object.entries( container.settings.toJSON() ).filter( ( prop ): prop is [ string, ClassesPropValue ] => {\n\t\tconst [ , value ] = prop;\n\n\t\treturn classesPropTypeUtil.isValid( value );\n\t} );\n}\n\nfunction notifyChanges() {\n\tdispatchChangeEvent();\n\trunCommandSync( 'document/save/set-is-modified', { status: true }, { internal: true } );\n}\n\nfunction dispatchChangeEvent() {\n\twindow.dispatchEvent( new CustomEvent( ELEMENT_STYLE_CHANGE_EVENT ) );\n}\n","import { type StyleDefinitionID } from '@elementor/editor-styles';\n\nimport { type ElementID } from '../types';\nimport { mutateElementStyles } from './mutate-element-styles';\n\nexport function deleteElementStyle( elementId: ElementID, styleId: StyleDefinitionID ) {\n\tmutateElementStyles( elementId, ( styles ) => {\n\t\t// The object is deep cloned so mutating it is fine.\n\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\tdelete styles[ styleId ];\n\n\t\treturn styles;\n\t} );\n}\n","import { mergeProps } from '@elementor/editor-props';\nimport { getVariantByMeta, type StyleDefinition, type StyleDefinitionVariant } from '@elementor/editor-styles';\n\nimport { StyleNotFoundError } from '../errors';\nimport { type ElementID } from '../types';\nimport { mutateElementStyles } from './mutate-element-styles';\n\nexport type UpdateElementStyleArgs = {\n\telementId: ElementID;\n\tstyleId: StyleDefinition[ 'id' ];\n\tmeta: StyleDefinitionVariant[ 'meta' ];\n\tprops: StyleDefinitionVariant[ 'props' ];\n\tcustom_css?: StyleDefinitionVariant[ 'custom_css' ];\n};\n\nexport function updateElementStyle( args: UpdateElementStyleArgs ) {\n\tmutateElementStyles( args.elementId, ( styles ) => {\n\t\tconst style = styles[ args.styleId ];\n\n\t\tif ( ! style ) {\n\t\t\tthrow new StyleNotFoundError( { context: { styleId: args.styleId } } );\n\t\t}\n\n\t\tconst variant = getVariantByMeta( style, args.meta );\n\t\tconst customCss = ( 'custom_css' in args ? args.custom_css : variant?.custom_css ) ?? null;\n\n\t\tif ( variant ) {\n\t\t\tvariant.props = mergeProps( variant.props, args.props );\n\t\t\tvariant.custom_css = customCss?.raw ? customCss : null;\n\t\t} else {\n\t\t\tstyle.variants.push( { meta: args.meta, props: args.props, custom_css: customCss } );\n\t\t}\n\n\t\treturn styles;\n\t} );\n}\n","import { useState } from 'react';\nimport { __privateUseListenTo as useListenTo, windowEvent } from '@elementor/editor-v1-adapters';\n\nimport { getElementInteractions } from '../sync/get-element-interactions';\nimport { type ElementInteractions } from '../sync/types';\nimport { type ElementID } from '../types';\n\nexport const useElementInteractions = ( elementId: ElementID ) => {\n\tconst [ interactions, setInteractions ] = useState< ElementInteractions >( () => {\n\t\tconst initial = getElementInteractions( elementId );\n\n\t\treturn initial ?? { version: 1, items: [] };\n\t} );\n\n\tuseListenTo(\n\t\twindowEvent( 'elementor/element/update_interactions' ),\n\t\t() => {\n\t\t\tconst newInteractions = getElementInteractions( elementId );\n\t\t\tsetInteractions( newInteractions ?? { version: 1, items: [] } );\n\t\t},\n\t\t[ elementId ]\n\t);\n\n\treturn interactions;\n};\n","import { type ElementID } from '../types';\nimport { getContainer } from './get-container';\nimport { type ElementInteractions } from './types';\n\nexport function getElementInteractions( elementId: ElementID ): ElementInteractions | undefined {\n\tconst container = getContainer( elementId );\n\n\tconst interactions = container?.model?.get( 'interactions' );\n\n\tif ( typeof interactions === 'string' ) {\n\t\treturn JSON.parse( interactions ) as ElementInteractions;\n\t}\n\n\treturn interactions;\n}\n","import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';\n\nimport { type V1ElementModelProps } from '..';\nimport { getContainer } from './get-container';\n\nexport const updateElementInteractions = ( {\n\telementId,\n\tinteractions,\n}: {\n\telementId: string;\n\tinteractions: V1ElementModelProps[ 'interactions' ];\n} ) => {\n\tconst element = getContainer( elementId );\n\n\tif ( ! element ) {\n\t\tthrow new Error( `Element with id ${ elementId } not found` );\n\t}\n\n\telement.model.set( 'interactions', interactions );\n\n\twindow.dispatchEvent( new CustomEvent( 'elementor/element/update_interactions' ) );\n\n\trunCommandSync( 'document/save/set-is-modified', { status: true }, { internal: true } );\n};\n\nexport const playElementInteractions = ( elementId: string, interactionId: string ) => {\n\twindow.top?.dispatchEvent(\n\t\tnew CustomEvent( 'atomic/play_interactions', { detail: { elementId, interactionId } } )\n\t);\n};\n"],"mappings":"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","names":["useListenTo","useListenTo","useListenTo","commandEndEvent","useListenTo","commandEndEvent","useListenTo","commandEndEvent","useListenTo","commandEndEvent","useListenTo","commandEndEvent","runCommandSync","runCommandSync","runCommandSync","runCommandSync","undoable","__","__","undoable","undoable","__","__","undoable","undoable","__","__","undoable","runCommandSync","runCommandSync","runCommandSync","runCommandSync","commandEndEvent","windowEvent","classesPropTypeUtil","runCommandSync","runCommandSync","classesPropTypeUtil","useListenTo","windowEvent","useListenTo","windowEvent","runCommandSync","runCommandSync"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elementor/editor-elements",
|
|
3
3
|
"description": "This package contains the elements model for the Elementor editor",
|
|
4
|
-
"version": "4.0.0-
|
|
4
|
+
"version": "4.0.0-659",
|
|
5
5
|
"private": false,
|
|
6
6
|
"author": "Elementor Team",
|
|
7
7
|
"homepage": "https://elementor.com/",
|
|
@@ -40,12 +40,12 @@
|
|
|
40
40
|
"dev": "tsup --config=../../tsup.dev.ts"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@elementor/editor-mcp": "4.0.0-
|
|
44
|
-
"@elementor/editor-props": "4.0.0-
|
|
45
|
-
"@elementor/editor-styles": "4.0.0-
|
|
46
|
-
"@elementor/editor-v1-adapters": "4.0.0-
|
|
47
|
-
"@elementor/schema": "4.0.0-
|
|
48
|
-
"@elementor/utils": "4.0.0-
|
|
43
|
+
"@elementor/editor-mcp": "4.0.0-659",
|
|
44
|
+
"@elementor/editor-props": "4.0.0-659",
|
|
45
|
+
"@elementor/editor-styles": "4.0.0-659",
|
|
46
|
+
"@elementor/editor-v1-adapters": "4.0.0-659",
|
|
47
|
+
"@elementor/schema": "4.0.0-659",
|
|
48
|
+
"@elementor/utils": "4.0.0-659",
|
|
49
49
|
"@wordpress/i18n": "^3.1.0"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { __privateRunCommandSync as runCommandSync } from '@elementor/editor-v1-adapters';
|
|
2
2
|
|
|
3
3
|
import { type V1Element } from './types';
|
|
4
4
|
|
|
@@ -12,8 +12,8 @@ type DeleteElementParams = {
|
|
|
12
12
|
options?: Options;
|
|
13
13
|
};
|
|
14
14
|
|
|
15
|
-
export function deleteElement( { container, options = {} }: DeleteElementParams ):
|
|
16
|
-
|
|
15
|
+
export function deleteElement( { container, options = {} }: DeleteElementParams ): void {
|
|
16
|
+
runCommandSync( 'document/elements/delete', {
|
|
17
17
|
container,
|
|
18
18
|
options,
|
|
19
19
|
} );
|
|
@@ -2,7 +2,7 @@ import { ElementIndexNotFoundError, ElementNotFoundError, ElementParentNotFoundE
|
|
|
2
2
|
import { createElement } from './create-element';
|
|
3
3
|
import { deleteElement } from './delete-element';
|
|
4
4
|
import { getContainer } from './get-container';
|
|
5
|
-
import { type V1Element, type
|
|
5
|
+
import { type V1Element, type V1ElementModelProps } from './types';
|
|
6
6
|
|
|
7
7
|
type ElementLocation = {
|
|
8
8
|
container: V1Element;
|
|
@@ -10,16 +10,16 @@ type ElementLocation = {
|
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
type ReplaceElementArgs = {
|
|
13
|
-
|
|
13
|
+
currentElementId: string;
|
|
14
14
|
newElement: Omit< V1ElementModelProps, 'id' >;
|
|
15
15
|
withHistory?: boolean;
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
export const replaceElement =
|
|
19
|
-
const currentElementContainer = getContainer(
|
|
18
|
+
export const replaceElement = ( { currentElementId, newElement, withHistory = true }: ReplaceElementArgs ) => {
|
|
19
|
+
const currentElementContainer = getContainer( currentElementId );
|
|
20
20
|
|
|
21
21
|
if ( ! currentElementContainer ) {
|
|
22
|
-
throw new ElementNotFoundError( { context: { elementId:
|
|
22
|
+
throw new ElementNotFoundError( { context: { elementId: currentElementId } } );
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
const { container, index } = getNewElementContainer( currentElementContainer, newElement );
|
|
@@ -30,7 +30,7 @@ export const replaceElement = async ( { currentElement, newElement, withHistory
|
|
|
30
30
|
options: { at: index, useHistory: withHistory },
|
|
31
31
|
} );
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
deleteElement( { container: currentElementContainer, options: { useHistory: withHistory } } );
|
|
34
34
|
|
|
35
35
|
return newElementInstance;
|
|
36
36
|
};
|
package/src/sync/types.ts
CHANGED