{"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/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\ttry {\n\t\treturn extendedWindow.elementor?.documents?.getCurrentId?.() ?? null;\n\t} catch {\n\t\treturn null;\n\t}\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 { 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":";AAAA,SAAS,wBAAwB,aAAa,iBAAiB,oBAAoB;;;ACAnF,SAAS,uBAAuB,kBAAkB;AAI3C,SAAS,aAAc,IAA+B;AAC5D,QAAM,iBAAiB;AACvB,QAAM,YAAY,eAAe,WAAW,eAAgB,EAAG;AAE/D,SAAO,aAAa;AACrB;AAEO,IAAM,gBAAgB,CAAE,cAAuB;AACrD,MAAI;AACH,UAAM,YAAY,aAAc,SAAU;AAE1C,eAAY,4BAA4B,EAAE,UAAU,CAAE;AAAA,EACvD,QAAQ;AAAA,EAAC;AACV;;;ACHO,SAAS,mBAAoB,OAAgB,WAA+D;AAClH,QAAM,cAAgB,MAAM,IAAK,UAAW,KAAK,CAAC;AAElD,aAAY,cAAc,aAAc;AACvC,QAAK,UAAW,UAAW,GAAI;AAC9B,aAAO,EAAE,OAAO,WAAW;AAAA,IAC5B;AAEA,UAAM,QAAQ,mBAAoB,YAAY,SAAU;AAExD,QAAK,OAAQ;AACZ,aAAO;AAAA,IACR;AAAA,EACD;AAEA,SAAO;AACR;AAEO,SAAS,mBAAoB,OAAgB,WAA2D;AAC9G,QAAM,cAAgB,MAAM,IAAK,UAAW,KAAK,CAAC;AAElD,SAAO,YACL,OAAQ,CAAE,eAAgB,CAAE,aAAa,UAAW,UAAW,CAAE,EACjE,IAAK,CAAE,gBAAkB,EAAE,OAAO,WAAW,EAAI;AACpD;;;AFxBA,SAAS,eAAgB,EAAE,MAAM,GAA+B;AAC/D,SAAO;AAAA,IACN,IAAI,MAAM,IAAK,IAAK;AAAA,IACpB,gBAAgB,MAAM,IAAK,iBAAkB,KAAK,CAAC;AAAA,EACpD;AACD;AAEO,SAAS,mBACf,WACA,eACI;AACJ,SAAO;AAAA,IACN;AAAA,MACC,aAAa;AAAA,MACb,gBAAiB,0BAA2B;AAAA,MAC5C,gBAAiB,0BAA2B;AAAA,MAC5C,gBAAiB,0BAA2B;AAAA,MAC5C,gBAAiB,gCAAiC;AAAA,IACnD;AAAA,IACA,MAAM;AACL,YAAM,YAAY,aAAc,SAAU;AAC1C,YAAM,QAAQ,WAAW;AAEzB,UAAK,CAAE,OAAQ;AACd,eAAO,CAAC;AAAA,MACT;AAEA,YAAM,kBAAkB,OAAO,QAAS,aAAc,EAAE,OAAQ,CAAE,KAAK,CAAE,YAAY,SAAU,MAAO;AACrG,cAAM,SAAS,mBAAoB,OAAO,CAAE,MAAO,EAAE,IAAK,QAAS,MAAM,UAAW;AAEpF,YAAK,CAAE,QAAS;AACf,cAAK,SAAU,IAAI,CAAC;AACpB,iBAAO;AAAA,QACR;AAEA,cAAM,WAAW,mBAAoB,OAAO,OAAO,CAAE,MAAO,EAAE,IAAK,QAAS,MAAM,SAAU;AAE5F,YAAK,SAAU,IAAI,SAAS,IAAK,cAAe;AAEhD,eAAO;AAAA,MACR,GAAG,CAAC,CAAqB;AAEzB,aAAO;AAAA,IACR;AAAA,IACA,CAAE,SAAU;AAAA,EACb;AACD;;;AG5DA,SAAS,wBAAwBA,cAAa,mBAAmB;;;ACG1D,SAAS,yBAA0B,WAAuB;AAChE,QAAM,YAAY,aAAc,SAAU;AAE1C,SAAO,WAAW,MAAM,IAAK,iBAAkB,KAAK,CAAC;AACtD;;;ADFO,IAAM,2BAA2B,CAAE,cAA0B;AACnE,SAAOC;AAAA,IACN,YAAa,0CAA2C;AAAA,IACxD,MAAM,yBAA0B,SAAU;AAAA,IAC1C,CAAE,SAAU;AAAA,EACb;AACD;;;AEXA,SAAS,wBAAwBC,cAAa,mBAAAC,wBAAuB;AAI9D,SAAS,iBAAkB,WAA2B;AAC5D,SAAOD;AAAA,IACN,CAAEC,iBAAiB,0BAA2B,CAAE;AAAA,IAChD,MAAM;AACL,UAAK,CAAE,WAAY;AAClB,eAAO;AAAA,MACR;AAEA,YAAM,iBAAiB;AACvB,YAAM,UAAU,gBAAgB,WAAW,eAAgB,SAAU;AACrE,UAAK,CAAE,SAAU;AAChB,eAAO;AAAA,MACR;AAEA,aAAO,QAAQ;AAAA,IAChB;AAAA,IACA,CAAE,SAAU;AAAA,EACb;AACD;;;ACtBA,SAAS,wBAAwBC,cAAa,mBAAAC,wBAAuB;;;ACG9D,SAAS,kBAAyE;AACxF,QAAM,iBAAiB;AAEvB,SAAS,gBAAgB,WAAW,gBAAuC;AAC5E;;;ACJO,SAAS,eAAgB,MAAmC;AAClE,MAAK,CAAE,MAAO;AACb,WAAO;AAAA,EACR;AAEA,QAAM,eAAe,gBAAgB;AACrC,QAAM,cAAc,eAAgB,IAAK;AAEzC,MAAK,CAAE,aAAa,iBAAkB;AACrC,WAAO;AAAA,EACR;AAEA,MAAK,CAAE,aAAa,qBAAsB;AACzC,WAAO;AAAA,EACR;AAEA,SAAO;AAAA,IACN,KAAK;AAAA,IACL,UAAU,YAAY;AAAA,IACtB,aAAa,YAAY;AAAA,IACzB,8BAA8B,YAAY,mCAAmC,CAAC;AAAA,IAC9E,OAAO,YAAY;AAAA,IACnB,aAAa,YAAY,uBAAuB,CAAC;AAAA,IACjD,cAAc,YAAY,wBAAwB,CAAC;AAAA,EACpD;AACD;;;ACxBO,SAAS,sBAAiC;AAChD,QAAM,iBAAiB;AAEvB,QAAM,mBAAmB,eAAe,WAAW,WAAW,cAAc,KAAK,CAAC;AAElF,SAAO,iBAAiB,OAAqB,CAAE,KAAK,OAAQ;AAC3D,UAAM,OAAO,GAAG,MAAM,IAAK,YAAa,KAAK,GAAG,MAAM,IAAK,QAAS;AAEpE,QAAK,MAAO;AACX,UAAI,KAAM;AAAA,QACT,IAAI,GAAG,MAAM,IAAK,IAAK;AAAA,QACvB;AAAA,MACD,CAAE;AAAA,IACH;AAEA,WAAO;AAAA,EACR,GAAG,CAAC,CAAE;AACP;AAYO,SAAS,qBAAmD;AAClE,QAAM,WAAW,oBAAoB;AAErC,QAAM,CAAE,OAAQ,IAAI;AACpB,QAAM,cAAc,eAAgB,SAAS,IAAK;AAElD,MAAK,SAAS,WAAW,KAAK,CAAE,eAAe,CAAE,SAAU;AAC1D,WAAO,EAAE,SAAS,MAAM,aAAa,KAAK;AAAA,EAC3C;AAEA,SAAO,EAAE,SAAS,YAAY;AAC/B;;;AHxCO,SAAS,qBAAqB;AACpC,SAAOC;AAAA,IACN;AAAA,MACCC,iBAAiB,0BAA2B;AAAA,MAC5CA,iBAAiB,4BAA6B;AAAA,MAC9CA,iBAAiB,8BAA+B;AAAA,MAChDA,iBAAiB,gCAAiC;AAAA,IACnD;AAAA,IACA;AAAA,EACD;AACD;;;AIbA,SAAS,wBAAwBC,cAAa,mBAAAC,wBAAuB;;;ACE9D,IAAM,oBAAoB,CAAY,WAAsB,eAAuC;AACzG,QAAM,YAAY,aAAc,SAAU;AAE1C,SAAS,WAAW,UAAU,IAAK,UAAW,KAAiB;AAChE;AAEO,IAAM,qBAAqB,CACjC,WACA,eACqC;AACrC,SAAO,OAAO,YAAa,WAAW,IAAK,CAAE,QAAS,CAAE,KAAK,kBAAmB,WAAW,GAAI,CAAE,CAAE,CAAE;AACtG;;;ADQO,SAAS,6BAAsG;AACrH,SAAOC;AAAA,IACN;AAAA,MACCC,iBAAiB,0BAA2B;AAAA,MAC5CA,iBAAiB,4BAA6B;AAAA,MAC9CA,iBAAiB,8BAA+B;AAAA,MAChDA,iBAAiB,gCAAiC;AAAA,MAClDA,iBAAiB,gCAAiC;AAAA,IACnD;AAAA,IACA,MAAM;AACL,YAAM,EAAE,SAAS,YAAY,IAAI,mBAAmB;AAEpD,UAAK,CAAE,WAAW,CAAE,aAAc;AACjC,eAAO,EAAE,SAAS,MAAM,aAAa,MAAM,UAAU,KAAK;AAAA,MAC3D;AAEA,YAAM,WAAW,mBAA8B,QAAQ,IAAI,OAAO,KAAM,YAAY,WAAY,CAAE;AAElG,aAAO;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;;;AE/CA,SAAS,2BAA2B,sBAAsB;AAgBnD,SAAS,cAAe,EAAE,WAAW,OAAO,QAAQ,GAAoC;AAC9F,SAAO,eAA6B,4BAA4B;AAAA,IAC/D;AAAA,IACA;AAAA,IACA,SAAS,EAAE,MAAM,OAAO,GAAG,QAAQ;AAAA,EACpC,CAAE;AACH;;;ACtBA,SAAS,gBAAgB;AACzB,SAAS,UAAU;;;ACDnB,SAAS,2BAA2BC,uBAAsB;AAcnD,SAAS,cAAe,EAAE,WAAW,UAAU,CAAC,EAAE,GAA+B;AACvF,EAAAA,gBAAgB,4BAA4B;AAAA,IAC3C;AAAA,IACA;AAAA,EACD,CAAE;AACH;;;ADOO,IAAM,iBAAiB,CAAE;AAAA,EAC/B;AAAA,EACA;AAAA,EACA,WAAW,GAAI,cAAc,WAAY;AAC1C,MAAoD;AACnD,QAAM,iBAAiB;AAAA,IACtB;AAAA,MACC,IAAI,CAAE,EAAE,UAAU,cAAc,MAAmE;AAClG,cAAM,kBAAoC,CAAC;AAE3C,sBAAc,QAAS,CAAE,EAAE,WAAW,SAAS,GAAG,cAAc,MAAO;AACtE,gBAAM,kBAAkB,UAAU,SAAS,KAAK;AAEhD,cAAK,CAAE,iBAAkB;AACxB,kBAAM,IAAI,MAAO,4BAA6B;AAAA,UAC/C;AAEA,gBAAM,UAAU,cAAe;AAAA,YAC9B,WAAW;AAAA,YACX,GAAG;AAAA,YACH,SAAS,EAAE,GAAG,SAAS,YAAY,MAAM;AAAA,UAC1C,CAAE;AAEF,0BAAgB,KAAM;AAAA,YACrB,WAAW;AAAA,YACX;AAAA,YACA,OAAO,QAAQ,OAAO,OAAO,KAAK,CAAC;AAAA,YACnC;AAAA,UACD,CAAE;AAAA,QACH,CAAE;AAEF,eAAO,EAAE,gBAAgB;AAAA,MAC1B;AAAA,MACA,MAAM,CAAE,GAAwC,EAAE,gBAAgB,MAA8B;AAC/F,SAAE,GAAG,eAAgB,EAAE,QAAQ,EAAE,QAAS,CAAE,EAAE,UAAU,MAAO;AAC9D,gBAAM,iBAAiB,UAAU,SAAS;AAE1C,cAAK,gBAAiB;AACrB,0BAAe;AAAA,cACd,WAAW;AAAA,cACX,SAAS,EAAE,YAAY,MAAM;AAAA,YAC9B,CAAE;AAAA,UACH;AAAA,QACD,CAAE;AAAA,MACH;AAAA,MACA,MAAM,CACL,GACA,EAAE,gBAAgB,MACS;AAC3B,cAAM,cAAgC,CAAC;AAEvC,wBAAgB,QAAS,CAAE,EAAE,iBAAiB,OAAO,QAAQ,MAAO;AACnE,gBAAM,cAAc,gBAAgB,SAAS;AAE7C,cAAK,CAAE,aAAc;AACpB;AAAA,UACD;AAEA,gBAAM,UAAU,cAAe;AAAA,YAC9B,WAAW;AAAA,YACX;AAAA,YACA,SAAS,EAAE,GAAG,SAAS,YAAY,MAAM;AAAA,UAC1C,CAAE;AAEF,sBAAY,KAAM;AAAA,YACjB,WAAW;AAAA,YACX,iBAAiB;AAAA,YACjB,OAAO,QAAQ,MAAM,OAAO;AAAA,YAC5B;AAAA,UACD,CAAE;AAAA,QACH,CAAE;AAEF,eAAO,EAAE,iBAAiB,YAAY;AAAA,MACvC;AAAA,IACD;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAEA,SAAO,eAAgB,EAAE,SAAS,CAAE;AACrC;;;AE5GA,SAAS,2BAA2BC,uBAAsB;AAiBnD,SAAS,YAAa,EAAE,aAAa,OAAO,QAAQ,GAAuB;AACjF,QAAM,YAAY,aAAc,WAAY;AAE5C,MAAK,CAAE,WAAY;AAClB,UAAM,IAAI,MAAO,sBAAuB,WAAY,aAAc;AAAA,EACnE;AAEA,SAAOC,gBAA6B,gBAAgB;AAAA,IACnD;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAE;AACH;;;AC7BA,SAAS,2BAA2BC,uBAAsB;AAenD,SAAS,iBAAkB,EAAE,SAAS,UAAU,CAAC,EAAE,GAAuC;AAChG,QAAM,eAAe,QAAQ,MAAM,UAAU;AAC7C,QAAM,iBAAiB,QAAQ,UAAU,QAAQ,eAAe,IAAI;AAEpE,SAAOA,gBAA6B,+BAA+B;AAAA,IAClE,WAAW;AAAA,IACX,SAAS,EAAE,IAAI,gBAAgB,MAAM,OAAO,GAAG,QAAQ;AAAA,EACxD,CAAE;AACH;;;ACvBA,SAAS,YAAAC,iBAAgB;AACzB,SAAS,MAAAC,WAAU;AA6BZ,IAAM,oBAAoB,CAAE;AAAA,EAClC;AAAA,EACA;AAAA,EACA,WAAWC,IAAI,mBAAmB,WAAY;AAAA,EAC9C;AAAA,EACA;AACD,MAA0D;AACzD,QAAM,oBAAoBC;AAAA,IACzB;AAAA,MACC,IAAI,CAAE,EAAE,YAAY,sBAAsB,MAA2D;AACpG,8BAAsB;AACtB,cAAM,qBAA0C,CAAC;AAEjD,8BAAsB,QAAS,CAAE,cAAe;AAC/C,gBAAM,oBAAoB,aAAc,SAAU;AAElD,cAAK,CAAE,mBAAmB,QAAS;AAClC;AAAA,UACD;AAEA,gBAAM,oBAAoB,iBAAkB;AAAA,YAC3C,SAAS;AAAA,YACT,SAAS,EAAE,YAAY,MAAM;AAAA,UAC9B,CAAE;AAEF,cAAK,CAAE,kBAAkB,QAAS;AACjC;AAAA,UACD;AAEA,6BAAmB,KAAM;AAAA,YACxB,WAAW;AAAA,YACX,iBAAiB,kBAAkB;AAAA,YACnC,OAAO,kBAAkB,MAAM,OAAO;AAAA,YACtC,IAAI,kBAAkB,MAAM;AAAA,UAC7B,CAAE;AAAA,QACH,CAAE;AAEF,eAAO,EAAE,mBAAmB;AAAA,MAC7B;AAAA,MACA,MAAM,CAAE,GAA6B,EAAE,mBAAmB,MAAiC;AAC1F,4BAAoB;AACpB,SAAE,GAAG,kBAAmB,EAAE,QAAQ,EAAE,QAAS,CAAE,EAAE,UAAU,MAAO;AACjE,wBAAe;AAAA,YACd;AAAA,YACA,SAAS,EAAE,YAAY,MAAM;AAAA,UAC9B,CAAE;AAAA,QACH,CAAE;AAAA,MACH;AAAA,MACA,MAAM,CACL,GACA,EAAE,oBAAoB,iBAAiB,MACT;AAC9B,8BAAsB;AACtB,cAAM,qBAA0C,CAAC;AAEjD,yBAAiB,QAAS,CAAE,EAAE,iBAAiB,OAAO,GAAG,MAAO;AAC/D,gBAAM,cAAc,gBAAgB,SAAS;AAE7C,cAAK,aAAc;AAClB,kBAAM,iBAAiB,cAAe;AAAA,cACrC,WAAW;AAAA,cACX;AAAA,cACA,SAAS,EAAE,YAAY,OAAO,OAAO,OAAO,GAAG;AAAA,YAChD,CAAE;AAEF,+BAAmB,KAAM;AAAA,cACxB,WAAW;AAAA,cACX,iBAAiB;AAAA,cACjB;AAAA,cACA;AAAA,YACD,CAAE;AAAA,UACH;AAAA,QACD,CAAE;AAEF,eAAO,EAAE,mBAAmB;AAAA,MAC7B;AAAA,IACD;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAEA,SAAO,kBAAmB,EAAE,WAAW,CAAE;AAC1C;;;AChHO,IAAM,oBAAoB,MAAM;AACtC,QAAM,iBAAiB;AAEvB,SACC,eAAe,iBAAiB,SAAS,cAAc,KACvD,MAAO,KAAK,IAAI,CAAE,IAAK,KAAK,OAAO,EAAE,SAAU,EAAG,EAAE,UAAW,GAAG,CAAE,CAAE;AAExE;;;ACPO,SAAS,8BAA8B;AAC7C,QAAM,iBAAiB;AAEvB,SAAO,eAAe,WAAW,WAAW,aAAa,GAAG,aAAa;AAC1E;;;ACJO,SAAS,uBAAuB;AACtC,QAAM,iBAAiB;AAEvB,MAAI;AACH,WAAO,eAAe,WAAW,WAAW,eAAe,KAAK;AAAA,EACjE,QAAQ;AACP,WAAO;AAAA,EACR;AACD;;;ACVA,SAAS,mBAAmB;AAErB,IAAM,uBAAuB,YAAsC;AAAA,EACzE,MAAM;AAAA,EACN,SAAS;AACV,CAAE;AAEK,IAAM,qBAAqB,YAAoC;AAAA,EACrE,MAAM;AAAA,EACN,SAAS;AACV,CAAE;AAEK,IAAM,4BAA4B,YAAsC;AAAA,EAC9E,MAAM;AAAA,EACN,SAAS;AACV,CAAE;AAEK,IAAM,6BAA6B,YAAwC;AAAA,EACjF,MAAM;AAAA,EACN,SAAS;AACV,CAAE;AAEK,IAAM,6BAA6B,YAAsC;AAAA,EAC/E,MAAM;AAAA,EACN,SAAS;AACV,CAAE;AAEK,IAAM,4BAA4B,YAAsC;AAAA,EAC9E,MAAM;AAAA,EACN,SAAS;AACV,CAAE;;;ACxBK,SAAS,gBAAiB,WAAwB;AACxD,MAAK,CAAE,WAAY;AAClB,gBAAY,oBAAoB,IAAK,CAAE,GAAG;AAAA,EAC3C;AAEA,QAAM,YAAY,aAAc,SAAU;AAE1C,QAAM,OAAO,WAAW,MAAM,IAAK,YAAa,KAAK,WAAW,MAAM,IAAK,QAAS;AAEpF,MAAK,CAAE,MAAO;AACb,UAAM,IAAI,0BAA2B,EAAE,SAAS,EAAE,UAAU,EAAE,CAAE;AAAA,EACjE;AAEA,QAAM,QAAQ,gBAAgB,IAAK,IAAK,GAAG;AAE3C,MAAK,CAAE,OAAQ;AACd,UAAM,IAAI,2BAA4B,EAAE,SAAS,EAAE,aAAa,KAAK,EAAE,CAAE;AAAA,EAC1E;AAEA,SAAO;AACR;;;ACrBO,IAAM,mBAAmB,CAAE,cAAoE;AACrG,QAAM,YAAY,aAAc,SAAU;AAE1C,SAAO,WAAW,MAAM,IAAK,QAAS,KAAK;AAC5C;;;ACPO,SAAS,kBAAmB,WAAoC;AACtE,QAAM,YAAa,UAAU,YAAY,CAAC,GAAI,QAAS,CAAE,UAAW,kBAAmB,KAAmB,CAAE;AAE5G,SAAO,CAAE,WAAW,GAAG,QAAS;AACjC;;;ACDO,SAAS,YAAa,MAAgC;AAC5D,QAAM,YAAY,OAAO,aAAc,IAAK,IAAI,4BAA4B;AAE5E,MAAK,CAAE,WAAY;AAClB,WAAO,CAAC;AAAA,EACT;AAEA,QAAM,WAAW,CAAE,GAAK,UAAU,MAAM,IAAK,UAAW,KAAK,CAAC,CAAI,EAAE;AAAA,IAAS,CAAE,eAC9E,YAAa,WAAW,IAAK,IAAK,CAAE;AAAA,EACrC;AAEA,SAAO,CAAE,WAAW,GAAG,QAAS;AACjC;;;ACDO,SAAS,YAAa,EAAE,SAAS,iBAAiB,UAAU,CAAC,EAAE,GAAkC;AACvG,QAAM,kBAAkB,QAAQ,SAAS;AACzC,QAAM,iBAAiB,gBAAgB,SAAS;AAEhD,MAAK,CAAE,iBAAkB;AACxB,UAAM,IAAI,MAAO,sBAAuB,QAAQ,EAAG,EAAG;AAAA,EACvD;AAEA,MAAK,CAAE,gBAAiB;AACvB,UAAM,IAAI,MAAO,+BAAgC,gBAAgB,EAAG,EAAG;AAAA,EACxE;AAEA,QAAM,kBAAkB,gBAAgB,MAAM,OAAO;AAErD,gBAAe;AAAA,IACd,WAAW;AAAA,IACX,SAAS,EAAE,GAAG,SAAS,YAAY,MAAM;AAAA,EAC1C,CAAE;AAEF,QAAM,eAAe,cAAe;AAAA,IACnC,WAAW;AAAA,IACX,OAAO;AAAA,IACP,SAAS,EAAE,MAAM,OAAO,GAAG,SAAS,YAAY,MAAM;AAAA,EACvD,CAAE;AAEF,SAAO;AACR;;;AC1CA,SAAS,YAAAC,iBAAgB;AACzB,SAAS,MAAAC,WAAU;AAuCZ,IAAM,eAAe,CAAE;AAAA,EAC7B,OAAO;AAAA,EACP;AAAA,EACA,WAAWC,IAAI,kBAAkB,WAAY;AAAA,EAC7C;AAAA,EACA;AACD,MAAgD;AAC/C,QAAM,eAAeC;AAAA,IACpB;AAAA,MACC,IAAI,CAAE,EAAE,MAAM,MAAoD;AACjE,cAAM,gBAAgC,CAAC;AACvC,yBAAiB;AAEjB,cAAM,QAAS,CAAE,EAAE,SAAS,iBAAiB,QAAQ,MAAO;AAC3D,gBAAM,gBAAgB,QAAQ,SAAS,KAAK;AAC5C,gBAAM,SAAS,gBAAgB,SAAS,KAAK;AAE7C,cAAK,CAAE,eAAgB;AACtB,kBAAM,IAAI,MAAO,mBAAoB;AAAA,UACtC;AAEA,cAAK,CAAE,QAAS;AACf,kBAAM,IAAI,MAAO,4BAA6B;AAAA,UAC/C;AAEA,cAAK,CAAE,cAAc,QAAS;AAC7B,kBAAM,IAAI,MAAO,iCAAkC;AAAA,UACpD;AAEA,gBAAM,oBAAoB,cAAc;AACxC,gBAAM,gBAAgB,kBAAkB,UAAU,QAAS,aAAc,KAAK;AAE9E,gBAAM,aAAa,YAAa;AAAA,YAC/B,SAAS;AAAA,YACT,iBAAiB;AAAA,YACjB,SAAS,EAAE,GAAG,SAAS,YAAY,MAAM;AAAA,UAC1C,CAAE;AAEF,wBAAc,KAAM;AAAA,YACnB,SAAS;AAAA,YACT;AAAA,YACA;AAAA,YACA,iBAAiB;AAAA,YACjB;AAAA,UACD,CAAE;AAAA,QACH,CAAE;AAEF,eAAO,EAAE,cAAc;AAAA,MACxB;AAAA,MACA,MAAM,CAAE,GAA2B,EAAE,cAAc,MAA4B;AAC9E,4BAAoB;AAEpB,SAAE,GAAG,aAAc,EAAE,QAAQ,EAAE,QAAS,CAAE,EAAE,SAAS,mBAAmB,cAAc,MAAO;AAC5F,gBAAM,eAAe,QAAQ,SAAS;AACtC,gBAAM,yBAAyB,kBAAkB,SAAS;AAE1D,cAAK,CAAE,gBAAgB,CAAE,wBAAyB;AACjD;AAAA,UACD;AAEA,sBAAa;AAAA,YACZ,SAAS;AAAA,YACT,iBAAiB;AAAA,YACjB,SAAS;AAAA,cACR,YAAY;AAAA,cACZ,IAAI,iBAAiB,IAAI,gBAAgB;AAAA,YAC1C;AAAA,UACD,CAAE;AAAA,QACH,CAAE;AAAA,MACH;AAAA,MACA,MAAM,CAAE,GAA2B,EAAE,cAAc,MAAiD;AACnG,cAAM,mBAAmC,CAAC;AAC1C,yBAAiB;AAEjB,sBAAc,QAAS,CAAE,EAAE,SAAS,mBAAmB,eAAe,iBAAiB,QAAQ,MAAO;AACrG,gBAAM,eAAe,QAAQ,SAAS;AACtC,gBAAM,yBAAyB,kBAAkB,SAAS;AAC1D,gBAAM,cAAc,gBAAgB,SAAS;AAE7C,cAAK,CAAE,gBAAgB,CAAE,0BAA0B,CAAE,aAAc;AAClE;AAAA,UACD;AAEA,gBAAM,aAAa,YAAa;AAAA,YAC/B,SAAS;AAAA,YACT,iBAAiB;AAAA,YACjB,SAAS,EAAE,GAAG,SAAS,YAAY,MAAM;AAAA,UAC1C,CAAE;AAEF,2BAAiB,KAAM;AAAA,YACtB,SAAS;AAAA,YACT,mBAAmB;AAAA,YACnB;AAAA,YACA,iBAAiB;AAAA,YACjB;AAAA,UACD,CAAE;AAAA,QACH,CAAE;AAEF,eAAO,EAAE,eAAe,iBAAiB;AAAA,MAC1C;AAAA,IACD;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAEA,SAAO,aAAc,EAAE,OAAO,YAAY,CAAE;AAC7C;;;ACpJA,SAAS,YAAAC,iBAAgB;AACzB,SAAS,MAAAC,WAAU;AA0BZ,IAAM,iBAAiB,CAAE;AAAA,EAC/B;AAAA,EACA;AAAA,EACA,WAAWC,IAAI,gBAAgB,WAAY;AAAA,EAC3C;AAAA,EACA;AACD,MAAoD;AACnD,QAAM,iBAAiBC;AAAA,IACtB;AAAA,MACC,IAAI,CAAE,EAAE,YAAY,gBAAgB,MAAwD;AAC3F,cAAM,kBAAoC,CAAC;AAE3C,wBAAgB,QAAS,CAAE,cAAe;AACzC,gBAAM,YAAY,aAAc,SAAU;AAE1C,cAAK,WAAW,QAAS;AACxB,4BAAgB,KAAM;AAAA,cACrB;AAAA,cACA,QAAQ,UAAU;AAAA,cAClB,OAAO,UAAU,MAAM,OAAO;AAAA,cAC9B,IAAI,UAAU,MAAM,UAAU;AAAA,YAC/B,CAAE;AAAA,UACH;AAAA,QACD,CAAE;AAEF,2BAAmB;AAEnB,wBAAgB,QAAS,CAAE,EAAE,UAAU,MAAO;AAC7C,wBAAe;AAAA,YACd;AAAA,YACA,SAAS,EAAE,YAAY,MAAM;AAAA,UAC9B,CAAE;AAAA,QACH,CAAE;AAEF,eAAO,EAAE,gBAAgB;AAAA,MAC1B;AAAA,MACA,MAAM,CAAE,GAA6B,EAAE,gBAAgB,MAA8B;AACpF,4BAAoB;AAEpB,SAAE,GAAG,eAAgB,EAAE,QAAQ,EAAE,QAAS,CAAE,EAAE,QAAQ,OAAO,GAAG,MAAO;AACtE,gBAAM,cAAc,OAAO,SAAS;AAEpC,cAAK,aAAc;AAClB,0BAAe;AAAA,cACd,WAAW;AAAA,cACX;AAAA,cACA,SAAS,EAAE,YAAY,OAAO,GAAG;AAAA,YAClC,CAAE;AAAA,UACH;AAAA,QACD,CAAE;AAAA,MACH;AAAA,MACA,MAAM,CACL,GACA,EAAE,gBAAgB,MACS;AAC3B,2BAAmB;AAEnB,cAAM,qBAAuC,CAAC;AAE9C,wBAAgB,QAAS,CAAE,EAAE,WAAW,QAAQ,OAAO,GAAG,MAAO;AAChE,gBAAM,iBAAiB,UAAU,SAAS;AAC1C,gBAAM,cAAc,OAAO,SAAS;AAEpC,cAAK,CAAE,kBAAkB,CAAE,aAAc;AACxC;AAAA,UACD;AAEA,wBAAe;AAAA,YACd,WAAW;AAAA,YACX,SAAS,EAAE,YAAY,MAAM;AAAA,UAC9B,CAAE;AAEF,6BAAmB,KAAM;AAAA,YACxB,WAAW;AAAA,YACX,QAAQ;AAAA,YACR;AAAA,YACA;AAAA,UACD,CAAE;AAAA,QACH,CAAE;AAEF,eAAO,EAAE,iBAAiB,mBAAmB;AAAA,MAC9C;AAAA,IACD;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAEA,SAAO,eAAgB,EAAE,WAAW,CAAE;AACvC;;;ACpGO,IAAM,iBAAiB,CAAE,EAAE,kBAAkB,YAAY,cAAc,KAAK,MAA2B;AAC7G,QAAM,0BAA0B,aAAc,gBAAiB;AAE/D,MAAK,CAAE,yBAA0B;AAChC,UAAM,IAAI,qBAAsB,EAAE,SAAS,EAAE,WAAW,iBAAiB,EAAE,CAAE;AAAA,EAC9E;AAEA,QAAM,EAAE,WAAW,MAAM,IAAI,uBAAwB,yBAAyB,UAAW;AAEzF,QAAM,qBAAqB,cAAe;AAAA,IACzC;AAAA,IACA,OAAO;AAAA,IACP,SAAS,EAAE,IAAI,OAAO,YAAY,YAAY;AAAA,EAC/C,CAAE;AAEF,gBAAe,EAAE,WAAW,yBAAyB,SAAS,EAAE,YAAY,YAAY,EAAE,CAAE;AAE5F,SAAO;AACR;AAEA,SAAS,uBACR,yBACA,YACkB;AAClB,QAAM,EAAE,OAAO,IAAI;AAEnB,MAAK,CAAE,QAAS;AACf,UAAM,IAAI,2BAA4B,EAAE,SAAS,EAAE,WAAW,wBAAwB,GAAG,EAAE,CAAE;AAAA,EAC9F;AAEA,QAAM,eAAe,wBAAwB,MAAM,UAAU;AAE7D,MAAK,iBAAiB,IAAK;AAC1B,UAAM,IAAI,0BAA2B,EAAE,SAAS,EAAE,WAAW,wBAAwB,GAAG,EAAE,CAAE;AAAA,EAC7F;AAEA,MAAI,WAA4B,EAAE,WAAW,QAAQ,OAAO,aAAa;AAEzE,MAAK,OAAO,OAAO,cAAc,WAAW,WAAW,UAAW;AACjE,eAAW,uBAAwB,QAAQ,YAAa;AAAA,EACzD;AAEA,SAAO;AACR;AAEA,IAAM,yBAAyB;AAE/B,SAAS,uBAAwB,QAAmB,cAAwC;AAC3F,QAAM,YAAY,cAAe;AAAA,IAChC,WAAW;AAAA,IACX,OAAO,EAAE,QAAQ,uBAAuB;AAAA,IACxC,SAAS,EAAE,IAAI,cAAc,YAAY,MAAM;AAAA,EAChD,CAAE;AAEF,SAAO,EAAE,WAAW,OAAO,EAAE;AAC9B;;;ACxEA,SAAS,2BAA2BC,uBAAsB;AAKnD,IAAM,8BAA8B,CAAE;AAAA,EAC5C;AAAA,EACA;AACD,MAGO;AACN,QAAM,UAAU,aAAc,SAAU;AAExC,MAAK,CAAE,SAAU;AAChB,UAAM,IAAI,MAAO,mBAAoB,SAAU,YAAa;AAAA,EAC7D;AAEA,QAAM,iBAAiB,QAAQ,MAAM,IAAK,iBAAkB,KAAK,CAAC;AAElE,UAAQ,MAAM,IAAK,mBAAmB,EAAE,GAAG,gBAAgB,GAAG,SAAS,CAAE;AAEzE,EAAAC,gBAAgB,iCAAiC,EAAE,QAAQ,KAAK,GAAG,EAAE,UAAU,KAAK,CAAE;AACvF;;;ACtBA,SAAS,2BAA2BC,uBAAsB;AAWnD,IAAM,wBAAwB,CAAE,EAAE,IAAI,OAAO,cAAc,KAAK,MAAkC;AACxG,QAAM,YAAY,aAAc,EAAG;AAEnC,MAAK,CAAE,WAAY;AAClB;AAAA,EACD;AAEA,QAAM,OAAO;AAAA,IACZ;AAAA,IACA,UAAU,EAAE,GAAG,MAAM;AAAA,EACtB;AAEA,MAAK,aAAc;AAClB,IAAAC,gBAAgB,8BAA8B,IAAK;AAAA,EACpD,OAAO;AACN,IAAAA,gBAAgB,kCAAkC,MAAM,EAAE,UAAU,KAAK,CAAE;AAAA,EAC5E;AACD;;;ACxBA,IAAM,kBAAkB;AAgBjB,SAAS,yBAA0B,WAAmB,eAAmD;AAC/G,QAAM,uBAAuB,wBAAyB,SAAU;AAEhE,MAAK,sBAAuB;AAC3B,WAAO;AAAA,MACN,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,WAAW;AAAA,IACZ;AAAA,EACD;AAEA,QAAM,gBAAgB,mBAAoB,WAAW,aAAc;AAEnE,MAAK,eAAgB;AACpB,WAAO;AAAA,MACN,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR;AAAA,IACD;AAAA,EACD;AAEA,QAAM,WAAW,sBAAuB,SAAU;AAElD,MAAK,UAAW;AACf,WAAO;AAAA,MACN,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,WAAW;AAAA,IACZ;AAAA,EACD;AAEA,SAAO;AAAA,IACN,gBAAgB;AAAA,EACjB;AACD;AAEO,SAAS,wBAAyB,WAAmC;AAC3E,QAAM,UAAU,cAAe,SAAU;AAEzC,MAAK,CAAE,SAAU;AAChB,WAAO;AAAA,EACR;AAEA,aAAY,sBAAsB,MAAM,KAAM,QAAQ,iBAAkB,eAAgB,CAAE,GAAI;AAE7F,UAAM,iBAAiB,gBAAiB,kBAAmB;AAE3D,QAAK,mBAAmB,WAAY;AACnC,aAAO;AAAA,IACR;AAAA,EACD;AAEA,SAAO;AACR;AAEO,SAAS,sBAAuB,WAAmC;AACzE,QAAM,UAAU,cAAe,SAAU;AAEzC,MAAK,CAAE,WAAW,QAAQ,kBAAkB,MAAO;AAClD,WAAO;AAAA,EACR;AAEA,QAAM,eAAe,QAAQ,cAAc,QAAS,eAAgB;AAEpE,SAAO,eAAe,gBAAiB,YAAa,IAAI;AACzD;AAEO,SAAS,kBAAmB,WAA6B;AAC/D,QAAM,UAAU,cAAe,SAAU;AAEzC,MAAK,CAAE,SAAU;AAChB,WAAO;AAAA,EACR;AAEA,MAAK,QAAQ,QAAS,eAAgB,GAAI;AACzC,WAAO;AAAA,EACR;AAEA,SAAO,yBAA0B,OAAQ;AAC1C;AAEA,SAAS,yBAA0B,SAA4B;AAC9D,aAAY,SAAS,MAAM,KAAM,QAAQ,QAAS,GAAqB;AACtE,QAAK,mBAAoB,KAAM,GAAI;AAClC;AAAA,IACD;AAEA,QAAK,MAAM,QAAS,eAAgB,GAAI;AACvC,aAAO;AAAA,IACR;AAEA,QAAK,yBAA0B,KAAM,GAAI;AACxC,aAAO;AAAA,IACR;AAAA,EACD;AAEA,SAAO;AACR;AAEA,SAAS,gBAAiB,SAAkC;AAC3D,SAAO,QAAQ,QAAwB,WAAY,GAAG,QAAQ,MAAM;AACrE;AAEA,SAAS,mBAAoB,WAAmB,eAAqC;AACpF,QAAM,UAAU,cAAe,SAAU;AAEzC,MAAK,CAAE,SAAU;AAChB,WAAO;AAAA,EACR;AAEA,MAAK,QAAQ,QAAS,eAAgB,GAAI;AACzC,WAAO;AAAA,EACR;AAEA,QAAM,cAAc,iBAAiB,kBAAoC,WAAW,MAAO,GAAG;AAE9F,MAAK,aAAa,aAAc;AAC/B,WAAO;AAAA,EACR;AAEA,SAAO,QAAQ,cAAe,eAAgB,MAAM;AACrD;AAEA,SAAS,cAAe,IAAa;AACpC,MAAI;AACH,WAAO,aAAc,EAAG,GAAG,MAAM,MAAM;AAAA,EACxC,QAAQ;AACP,WAAO;AAAA,EACR;AACD;AAEA,SAAS,mBAAoB,SAA4B;AACxD,SAAO,QAAQ,aAAc,SAAU;AACxC;;;AC1JA,SAAS,mBAAAC,kBAAiB,eAAAC,oBAAmB;AAEtC,IAAM,6BAA6B;AAEnC,IAAM,sBAAsB;AAAA,EAClCD,iBAAiB,0BAA2B;AAAA,EAC5CA,iBAAiB,6BAA8B;AAAA,EAC/CA,iBAAiB,0BAA2B;AAAA,EAC5CA,iBAAiB,yBAA0B;AAAA,EAC3CC,aAAa,0BAA2B;AACzC;;;ACVA,SAAS,uBAAAC,4BAA2B;AACpC;AAAA,EACC;AAAA,OAIM;;;ACNP,SAAS,2BAAkD;AAE3D,SAAS,2BAA2BC,uBAAsB;AAWnD,SAAS,oBAAqB,WAAsB,SAAmB;AAC7E,QAAM,YAAY,aAAc,SAAU;AAE1C,MAAK,CAAE,WAAY;AAClB,UAAM,IAAI,qBAAsB,EAAE,SAAS,EAAE,UAAU,EAAE,CAAE;AAAA,EAC5D;AAEA,QAAM,SAAS,OAAO,KAAM,UAAU,MAAM,IAAK,QAAS,KAAK,CAAC,CAAE;AAElE,QAAM,SAAS,aAAc,WAAW,OAAQ;AAEhD,QAAM,SAAS,OAAO,KAAM,MAAO;AAEnC,sBAAqB,WAAW;AAAA,IAC/B;AAAA,IACA;AAAA,EACD,CAAE;AAEF,gBAAc;AAEd,SAAO;AACR;AAEA,SAAS,aAAc,WAAsB,SAAmB;AAC/D,QAAM,SAA8B,gBAAiB,UAAU,MAAM,IAAK,QAAS,CAAE,KAAK,CAAC;AAE3F,QAAM,UAAU,OAAO,QAAS,QAAS,MAAO,CAAE,EAChD,IAAK,CAAE,CAAE,SAAS,KAAM,MAAO;AAC/B,UAAM,WAAW,oBAAqB,KAAM;AAE5C,WAAO,CAAE,SAAS,KAAM;AAAA,EACzB,CAAE,EACD,OAAQ,CAAE,CAAE,EAAE,KAAM,MAAO;AAC3B,WAAO,CAAE,aAAc,KAAM;AAAA,EAC9B,CAAE;AAEH,QAAM,gBAAgB,OAAO,YAAa,OAAQ;AAElD,YAAU,MAAM,IAAK,UAAU,aAAc;AAE7C,SAAO;AACR;AAEA,SAAS,oBAAqB,OAAyB;AACtD,SAAO,MAAM,SAAS;AAAA,IACrB,CAAE,EAAE,OAAO,YAAY,UAAU,MAAO,OAAO,KAAM,KAAM,EAAE,SAAS,KAAK,WAAW;AAAA,EACvF;AACD;AAEA,SAAS,aAAc,OAAyB;AAC/C,SAAO,MAAM,SAAS,WAAW;AAClC;AAEA,SAAS,oBAAqB,WAAsB,EAAE,QAAQ,OAAO,GAA4C;AAChH,QAAM,aAAa,OAAO,OAAQ,CAAE,OAAQ,CAAE,OAAO,SAAU,EAAG,CAAE;AACpE,QAAM,eAAe,gBAAiB,gBAAiB,SAAU,CAAE;AAEnE,eAAa,QAAS,CAAE,CAAE,EAAE,IAAK,MAAO;AACvC,SAAK,QAAQ,KAAK,MAAM,OAAQ,CAAE,UAAW,CAAE,WAAW,SAAU,KAAM,CAAE;AAAA,EAC7E,CAAE;AAEF,wBAAuB;AAAA,IACtB,IAAI,UAAU;AAAA,IACd,OAAO,OAAO,YAAa,YAAa;AAAA,IACxC,aAAa;AAAA,EACd,CAAE;AACH;AAEA,SAAS,gBAAiB,WAAuB;AAChD,SAAO,OAAO,QAAS,UAAU,SAAS,OAAO,CAAE,EAAE,OAAQ,CAAE,SAAgD;AAC9G,UAAM,CAAE,EAAE,KAAM,IAAI;AAEpB,WAAO,oBAAoB,QAAS,KAAM;AAAA,EAC3C,CAAE;AACH;AAEA,SAAS,gBAAgB;AACxB,sBAAoB;AACpB,EAAAC,gBAAgB,iCAAiC,EAAE,QAAQ,KAAK,GAAG,EAAE,UAAU,KAAK,CAAE;AACvF;AAEA,SAAS,sBAAsB;AAC9B,SAAO,cAAe,IAAI,YAAa,0BAA2B,CAAE;AACrE;;;ADxEO,SAAS,mBAAoB;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY,YAAY;AAAA,EACxB,qBAAqB,CAAC;AACvB,GAAoC;AACnC,MAAI,KAAK;AAET,sBAAqB,WAAW,CAAE,WAAY;AAC7C,WAAO,WAAY,KAAM,SAAU,KAAK,OAAO,KAAM,MAAO,CAAE;AAE9D,UAAM,WAAW,CAAE,EAAE,MAAM,OAAO,YAAY,UAAU,GAAG,GAAG,kBAAmB;AAEjF,WAAQ,EAAG,IAAI;AAAA,MACd;AAAA,MACA;AAAA,MACA,MAAM;AAAA,MACN;AAAA,IACD;AAEA,0BAAuB,WAAW,aAAa,EAAG;AAElD,WAAO;AAAA,EACR,CAAE;AAEF,SAAO;AACR;AAEA,SAAS,sBAAuB,WAAsB,aAAqB,SAAkB;AAC5F,QAAM,OAAO,kBAAmB,WAAW,WAAY;AAEvD,QAAM,mBAAmBC,qBAAoB;AAAA,IAC5C,CAAE,SAAU;AACX,aAAO,CAAE,GAAK,QAAQ,CAAC,GAAK,OAAQ;AAAA,IACrC;AAAA,IACA,EAAE,KAAK;AAAA,EACR;AAEA,wBAAuB;AAAA,IACtB,IAAI;AAAA,IACJ,OAAO;AAAA,MACN,CAAE,WAAY,GAAG;AAAA,IAClB;AAAA,IACA,aAAa;AAAA,EACd,CAAE;AACH;AAEO,SAAS,0BACf,SACC;AACD,SAAO,CAAE,SAAS,WAAW,CAAE,SAAS;AACzC;;;AE1EO,SAAS,mBAAoB,WAAsB,SAA6B;AACtF,sBAAqB,WAAW,CAAE,WAAY;AAG7C,WAAO,OAAQ,OAAQ;AAEvB,WAAO;AAAA,EACR,CAAE;AACH;;;ACbA,SAAS,kBAAkB;AAC3B,SAAS,wBAA2E;AAc7E,SAAS,mBAAoB,MAA+B;AAClE,sBAAqB,KAAK,WAAW,CAAE,WAAY;AAClD,UAAM,QAAQ,OAAQ,KAAK,OAAQ;AAEnC,QAAK,CAAE,OAAQ;AACd,YAAM,IAAI,mBAAoB,EAAE,SAAS,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAE;AAAA,IACtE;AAEA,UAAM,UAAU,iBAAkB,OAAO,KAAK,IAAK;AACnD,UAAM,aAAc,gBAAgB,OAAO,KAAK,aAAa,SAAS,eAAgB;AAEtF,QAAK,SAAU;AACd,cAAQ,QAAQ,WAAY,QAAQ,OAAO,KAAK,KAAM;AACtD,cAAQ,aAAa,WAAW,MAAM,YAAY;AAAA,IACnD,OAAO;AACN,YAAM,SAAS,KAAM,EAAE,MAAM,KAAK,MAAM,OAAO,KAAK,OAAO,YAAY,UAAU,CAAE;AAAA,IACpF;AAEA,WAAO;AAAA,EACR,CAAE;AACH;;;AC/BO,SAAS,uBAAwB,WAAwD;AAC/F,QAAM,YAAY,aAAc,SAAU;AAE1C,QAAM,eAAe,WAAW,OAAO,IAAK,cAAe;AAE3D,MAAK,OAAO,iBAAiB,UAAW;AACvC,WAAO,KAAK,MAAO,YAAa;AAAA,EACjC;AAEA,SAAO;AACR;;;ACdA,SAAS,2BAA2BC,uBAAsB;AAKnD,IAAM,4BAA4B,CAAE;AAAA,EAC1C;AAAA,EACA;AACD,MAGO;AACN,QAAM,UAAU,aAAc,SAAU;AAExC,MAAK,CAAE,SAAU;AAChB,UAAM,IAAI,MAAO,mBAAoB,SAAU,YAAa;AAAA,EAC7D;AAEA,UAAQ,MAAM,IAAK,gBAAgB,YAAa;AAEhD,SAAO,cAAe,IAAI,YAAa,uCAAwC,CAAE;AAEjF,EAAAC,gBAAgB,iCAAiC,EAAE,QAAQ,KAAK,GAAG,EAAE,UAAU,KAAK,CAAE;AACvF;AAEO,IAAM,0BAA0B,CAAE,WAAmB,kBAA2B;AACtF,SAAO,KAAK;AAAA,IACX,IAAI,YAAa,4BAA4B,EAAE,QAAQ,EAAE,WAAW,cAAc,EAAE,CAAE;AAAA,EACvF;AACD;","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","runCommandSync","runCommandSync"]}