PluginProbe
Elementor Website Builder – more than just a page builder / 4.2.1
Elementor Website Builder – more than just a page builder v4.2.1
4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 All 454 releases
← All changes | assets/js/packages/editor-elements/editor-elements.js +2252 -1264 4.3.0-beta3 → 4.2.1 View file →
@@ -1,1321 +1,2309 @@
1 -(function(_elementor_editor_v1_adapters, _elementor_session, _elementor_editor_props, _wordpress_i18n, _elementor_utils, _elementor_editor_styles) {
1 +/******/ (function() { // webpackBootstrap
2 +/******/ "use strict";
3 +/******/ var __webpack_modules__ = ({
2 4
3 -//#region \0rolldown/runtime.js
4 - var __defProp = Object.defineProperty;
5 - var __name = (target, value) => __defProp(target, "name", {
6 - value,
7 - configurable: true
8 - });
9 - var __exportAll = (all, no_symbols) => {
10 - let target = {};
11 - for (var name in all) {
12 - __defProp(target, name, {
13 - get: all[name],
14 - enumerable: true
15 - });
16 - }
17 - if (!no_symbols) {
18 - __defProp(target, Symbol.toStringTag, { value: "Module" });
19 - }
20 - return target;
21 - };
5 +/***/ "./packages/packages/libs/editor-elements/src/errors.ts":
6 +/*!**************************************************************!*\
7 + !*** ./packages/packages/libs/editor-elements/src/errors.ts ***!
8 + \**************************************************************/
9 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
22 10
23 -//#endregion
11 +__webpack_require__.r(__webpack_exports__);
12 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13 +/* harmony export */ ElementIndexNotFoundError: function() { return /* binding */ ElementIndexNotFoundError; },
14 +/* harmony export */ ElementLabelNotExistsError: function() { return /* binding */ ElementLabelNotExistsError; },
15 +/* harmony export */ ElementNotFoundError: function() { return /* binding */ ElementNotFoundError; },
16 +/* harmony export */ ElementParentNotFoundError: function() { return /* binding */ ElementParentNotFoundError; },
17 +/* harmony export */ ElementTypeNotExistsError: function() { return /* binding */ ElementTypeNotExistsError; },
18 +/* harmony export */ StyleNotFoundError: function() { return /* binding */ StyleNotFoundError; }
19 +/* harmony export */ });
20 +/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/utils */ "@elementor/utils");
21 +/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_utils__WEBPACK_IMPORTED_MODULE_0__);
24 22
25 -//#region packages/packages/libs/editor-elements/src/sync/get-container.ts
26 - function getContainer(id) {
27 - return window.elementor?.getContainer?.(id) ?? null;
28 - }
29 - var selectElement = (elementId) => {
30 - try {
31 - (0, _elementor_editor_v1_adapters.__privateRunCommand)("document/elements/select", { container: getContainer(elementId) });
32 - } catch {}
33 - };
23 +const ElementNotFoundError = (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_0__.createError)({
24 + code: 'element_not_found',
25 + message: 'Element not found.'
26 +});
27 +const StyleNotFoundError = (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_0__.createError)({
28 + code: 'style_not_found',
29 + message: 'Style not found.'
30 +});
31 +const ElementTypeNotExistsError = (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_0__.createError)({
32 + code: 'element_type_not_exists',
33 + message: 'Element type does not exist.'
34 +});
35 +const ElementLabelNotExistsError = (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_0__.createError)({
36 + code: 'element_label_not_exists',
37 + message: 'Element label does not exist.'
38 +});
39 +const ElementParentNotFoundError = (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_0__.createError)({
40 + code: 'element_parent_not_found',
41 + message: 'Element parent not found.'
42 +});
43 +const ElementIndexNotFoundError = (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_0__.createError)({
44 + code: 'element_index_not_found',
45 + message: 'Element index not found.'
46 +});
34 47
35 -//#endregion
36 -//#region packages/packages/libs/editor-elements/src/sync/resolve-element.ts
37 - function isConnected(container) {
38 - if (!container) return false;
39 - if (!container.view?.el) return true;
40 - return container.view.el.isConnected;
41 - }
42 - function resolveContainer(container, id) {
43 - const looked = container.lookup?.();
44 - if (isConnected(looked)) return looked;
45 - const byId = getContainer(id);
46 - if (isConnected(byId)) return byId;
47 - return null;
48 - }
49 - function getDocumentUtils() {
50 - return window.$e?.components?.get?.("document")?.utils;
51 - }
52 - function findModelInDocument(id) {
53 - return getDocumentUtils()?.findModelById?.(id) ?? null;
54 - }
55 - function addModelToParent(parentId, childData, options) {
56 - return getDocumentUtils()?.addModelToParent?.(parentId, childData, options) ?? false;
57 - }
58 - function removeModelFromParent(parentId, childId) {
59 - return getDocumentUtils()?.removeModelFromParent?.(parentId, childId) ?? false;
60 - }
48 +/***/ }),
61 49
62 -//#endregion
63 -//#region packages/packages/libs/editor-elements/src/sync/resolve-insert-index.ts
64 - function resolveInsertIndex(position, elements) {
65 - const lastIndex = elements.length;
66 - switch (position.kind) {
67 - case "first": return 0;
68 - case "last": return lastIndex;
69 - case "index": {
70 - const index = typeof position.value === "number" ? position.value : lastIndex;
71 - return Math.max(0, Math.min(index, lastIndex));
72 - }
73 - case "after_type": {
74 - const anchor = elements.findIndex((element) => element.elType === position.value);
75 - return anchor >= 0 ? anchor + 1 : lastIndex;
76 - }
77 - case "before_type": {
78 - const anchor = elements.findIndex((element) => element.elType === position.value);
79 - return anchor >= 0 ? anchor : lastIndex;
80 - }
81 - default: return lastIndex;
82 - }
83 - }
50 +/***/ "./packages/packages/libs/editor-elements/src/hooks/use-element-children.ts":
51 +/*!**********************************************************************************!*\
52 + !*** ./packages/packages/libs/editor-elements/src/hooks/use-element-children.ts ***!
53 + \**********************************************************************************/
54 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
84 55
85 -//#endregion
86 -//#region packages/packages/libs/editor-elements/src/children-dependencies/stash.ts
87 - var STASH_KEY_PREFIX = "elementor/editor-state";
88 - var STASH_KEY_SEGMENT = "children-deps";
89 - function createChildrenStash() {
90 - return {
91 - get(elementId, childType) {
92 - return (0, _elementor_session.getSessionStorageItem)(buildStashKey(elementId, childType));
93 - },
94 - save(elementId, childType, data) {
95 - (0, _elementor_session.setSessionStorageItem)(buildStashKey(elementId, childType), data);
96 - },
97 - clear(elementId, childType) {
98 - (0, _elementor_session.removeSessionStorageItem)(buildStashKey(elementId, childType));
99 - },
100 - clearAllForElement(elementId) {
101 - const prefix = buildElementStashPrefix(elementId);
102 - for (let index = sessionStorage.length - 1; index >= 0; index--) {
103 - const key = sessionStorage.key(index);
104 - if (key?.startsWith(prefix)) (0, _elementor_session.removeSessionStorageItem)(key);
105 - }
106 - }
107 - };
108 - }
109 - function buildStashKey(elementId, childType) {
110 - return `${STASH_KEY_PREFIX}/${elementId}/${STASH_KEY_SEGMENT}/${childType}`;
111 - }
112 - function buildElementStashPrefix(elementId) {
113 - return `${STASH_KEY_PREFIX}/${elementId}/${STASH_KEY_SEGMENT}/`;
114 - }
56 +__webpack_require__.r(__webpack_exports__);
57 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
58 +/* harmony export */ useElementChildren: function() { return /* binding */ useElementChildren; }
59 +/* harmony export */ });
60 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
61 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
62 +/* harmony import */ var _sync_get_container__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../sync/get-container */ "./packages/packages/libs/editor-elements/src/sync/get-container.ts");
63 +/* harmony import */ var _sync_model_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../sync/model-utils */ "./packages/packages/libs/editor-elements/src/sync/model-utils.ts");
115 64
116 -//#endregion
117 -//#region packages/packages/libs/editor-elements/src/sync/generate-element-id.ts
118 - var generateElementId = () => {
119 - return window.elementorCommon?.helpers?.getUniqueId?.() ?? `el-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
120 - };
121 65
122 -//#endregion
123 -//#region packages/packages/libs/editor-elements/src/children-dependencies/utils.ts
124 - function evaluateWhen(when, settings) {
125 - return (0, _elementor_editor_props.isDependencyMet)(when, settings).isMet;
126 - }
127 - function ensureModelId(model) {
128 - const { skipDefaultChildren: _skipDefaultChildren, ...rest } = model;
129 - return rest.id ? rest : {
130 - ...rest,
131 - id: generateElementId()
132 - };
133 - }
134 - function resolveChildModelData(elementId, rule, stash) {
135 - const stashed = rule.stash ? stash.get(elementId, rule.child_type) : void 0;
136 - return {
137 - modelData: ensureModelId(stashed ?? rule.default_model ?? { elType: rule.child_type }),
138 - wasStashed: Boolean(stashed)
139 - };
140 - }
141 66
142 -//#endregion
143 -//#region packages/packages/libs/editor-elements/src/children-dependencies/bind-settings-reconcile.ts
144 - function bindSettingsReconcile({ model, elementConfig }) {
145 - const stash = createChildrenStash();
146 - const rules = elementConfig?.children_dependencies;
147 - if (!rules?.length) return () => {};
148 - const settingsModel = model.get("settings");
149 - const elementId = model.get("id");
150 - if (!settingsModel?.on || !settingsModel?.off || !elementId) return () => {};
151 - const lastMet = /* @__PURE__ */ new Map();
152 - rules.forEach((rule) => {
153 - lastMet.set(rule.child_type, evaluateWhen(rule.when, settingsModel.toJSON()));
154 - });
155 - const onChange = () => {
156 - const currentSettings = settingsModel.toJSON();
157 - rules.forEach((rule) => {
158 - const previous = lastMet.get(rule.child_type) ?? false;
159 - const current = evaluateWhen(rule.when, currentSettings);
160 - if (previous === current) return;
161 - lastMet.set(rule.child_type, current);
162 - if (current) attachChildFromRule(elementId, rule, stash);
163 - else detachChildFromRule(elementId, rule, stash);
164 - });
165 - };
166 - settingsModel.on("change", onChange);
167 - return () => {
168 - settingsModel.off?.("change", onChange);
169 - stash.clearAllForElement(elementId);
170 - };
171 - }
172 - function attachChildFromRule(parentId, rule, stash) {
173 - const currentChildren = getDirectChildData(getContainer(parentId) ?? void 0);
174 - if (currentChildren.some((child) => child.elType === rule.child_type)) return;
175 - const { modelData, wasStashed } = resolveChildModelData(parentId, rule, stash);
176 - if (!addModelToParent(parentId, modelData, { at: resolveInsertIndex(rule.position, currentChildren) })) return;
177 - if (wasStashed) stash.clear(parentId, rule.child_type);
178 - requestNavigatorRefresh(parentId);
179 - }
180 - function detachChildFromRule(parentId, rule, stash) {
181 - const child = (getContainer(parentId) ?? void 0)?.children?.find((candidate) => candidate.model.get("elType") === rule.child_type);
182 - if (!child) return;
183 - const childSnapshot = child.model.toJSON();
184 - if (!removeModelFromParent(parentId, child.id)) return;
185 - if (rule.stash) stash.save(parentId, rule.child_type, childSnapshot);
186 - requestNavigatorRefresh(parentId);
187 - }
188 - function requestNavigatorRefresh(parentId) {
189 - if (typeof window === "undefined" || typeof window.dispatchEvent !== "function") return;
190 - window.dispatchEvent(new CustomEvent("elementor/navigator/refresh-children", { detail: { elementId: parentId } }));
191 - }
192 - function getDirectChildData(parent) {
193 - return (parent?.children ?? []).map((child) => child.model.toJSON());
194 - }
67 +function toElementModel({
68 + model
69 +}) {
70 + return {
71 + id: model.get('id'),
72 + editorSettings: model.get('editor_settings') ?? {}
73 + };
74 +}
75 +function useElementChildren(elementId, childrenTypes) {
76 + return (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.__privateUseListenTo)([(0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.v1ReadyEvent)(), (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.commandEndEvent)('document/elements/create'), (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.commandEndEvent)('document/elements/delete'), (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.commandEndEvent)('document/elements/update'), (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.commandEndEvent)('document/elements/set-settings')], () => {
77 + const container = (0,_sync_get_container__WEBPACK_IMPORTED_MODULE_1__.getContainer)(elementId);
78 + const model = container?.model;
79 + if (!model) {
80 + return {};
81 + }
82 + const elementChildren = Object.entries(childrenTypes).reduce((acc, [parentType, childType]) => {
83 + const parent = (0,_sync_model_utils__WEBPACK_IMPORTED_MODULE_2__.findChildRecursive)(model, m => m.get('elType') === parentType);
84 + if (!parent) {
85 + acc[childType] = [];
86 + return acc;
87 + }
88 + const children = (0,_sync_model_utils__WEBPACK_IMPORTED_MODULE_2__.getElementChildren)(parent.model, m => m.get('elType') === childType);
89 + acc[childType] = children.map(toElementModel);
90 + return acc;
91 + }, {});
92 + return elementChildren;
93 + }, [elementId]);
94 +}
195 95
196 -//#endregion
197 -//#region packages/packages/libs/editor-elements/src/children-dependencies/reconcile-initial-children.ts
198 - function reconcileInitialChildren({ elementId, elementConfig, attributes }) {
199 - const stash = createChildrenStash();
200 - const rules = elementConfig?.children_dependencies;
201 - if (!rules?.length) return;
202 - const elements = [...attributes.elements ?? []];
203 - const settings = attributes.settings ?? {};
204 - rules.forEach((rule) => {
205 - const isMet = evaluateWhen(rule.when, settings);
206 - const existingIndex = elements.findIndex((element) => element.elType === rule.child_type);
207 - const isPresent = existingIndex >= 0;
208 - if (isMet && !isPresent) {
209 - const { modelData, wasStashed } = resolveChildModelData(elementId, rule, stash);
210 - const insertAt = resolveInsertIndex(rule.position, elements);
211 - elements.splice(insertAt, 0, modelData);
212 - if (wasStashed) stash.clear(elementId, rule.child_type);
213 - return;
214 - }
215 - if (!isMet && isPresent) {
216 - const [removed] = elements.splice(existingIndex, 1);
217 - if (rule.stash && removed) stash.save(elementId, rule.child_type, removed);
218 - }
219 - });
220 - attributes.elements = elements;
221 - }
96 +/***/ }),
222 97
223 -//#endregion
224 -//#region packages/packages/libs/editor-elements/src/sync/model-utils.ts
225 - function findChildRecursive(model, predicate) {
226 - const childModels = model.get("elements") ?? [];
227 - for (const childModel of childModels) {
228 - if (predicate(childModel)) return { model: childModel };
229 - const found = findChildRecursive(childModel, predicate);
230 - if (found) return found;
231 - }
232 - return null;
233 - }
234 - function getElementChildren(model, predicate) {
235 - return (model.get("elements") ?? []).filter((childModel) => !predicate || predicate(childModel)).map((childModel) => ({ model: childModel }));
236 - }
98 +/***/ "./packages/packages/libs/editor-elements/src/hooks/use-element-editor-settings.ts":
99 +/*!*****************************************************************************************!*\
100 + !*** ./packages/packages/libs/editor-elements/src/hooks/use-element-editor-settings.ts ***!
101 + \*****************************************************************************************/
102 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
237 103
238 -//#endregion
239 -//#region packages/packages/libs/editor-elements/src/hooks/use-element-children.ts
240 - function toElementModel({ model }) {
241 - return {
242 - id: model.get("id"),
243 - editorSettings: model.get("editor_settings") ?? {}
244 - };
245 - }
246 - function useElementChildren(elementId, childrenTypes, { includeSelfAsParent = false } = {}) {
247 - return (0, _elementor_editor_v1_adapters.__privateUseListenTo)([
248 - (0, _elementor_editor_v1_adapters.v1ReadyEvent)(),
249 - (0, _elementor_editor_v1_adapters.commandEndEvent)("document/elements/create"),
250 - (0, _elementor_editor_v1_adapters.commandEndEvent)("document/elements/delete"),
251 - (0, _elementor_editor_v1_adapters.commandEndEvent)("document/elements/update"),
252 - (0, _elementor_editor_v1_adapters.commandEndEvent)("document/elements/set-settings")
253 - ], () => {
254 - const model = getContainer(elementId)?.model;
255 - if (!model) return {};
256 - return Object.entries(childrenTypes).reduce((acc, [parentType, childType]) => {
257 - const parent = includeSelfAsParent && model.get("elType") === parentType ? { model } : findChildRecursive(model, (m) => m.get("elType") === parentType);
258 - if (!parent) {
259 - acc[childType] = [];
260 - return acc;
261 - }
262 - acc[childType] = getElementChildren(parent.model, (m) => m.get("elType") === childType).map(toElementModel);
263 - return acc;
264 - }, {});
265 - }, [elementId]);
266 - }
104 +__webpack_require__.r(__webpack_exports__);
105 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
106 +/* harmony export */ useElementEditorSettings: function() { return /* binding */ useElementEditorSettings; }
107 +/* harmony export */ });
108 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
109 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
110 +/* harmony import */ var _sync_get_element_editor_settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../sync/get-element-editor-settings */ "./packages/packages/libs/editor-elements/src/sync/get-element-editor-settings.ts");
267 111
268 -//#endregion
269 -//#region packages/packages/libs/editor-elements/src/sync/get-element-editor-settings.ts
270 - function getElementEditorSettings(elementId) {
271 - return getContainer(elementId)?.model.get("editor_settings") ?? {};
272 - }
273 112
274 -//#endregion
275 -//#region packages/packages/libs/editor-elements/src/hooks/use-element-editor-settings.ts
276 - var useElementEditorSettings = (elementId) => {
277 - return (0, _elementor_editor_v1_adapters.__privateUseListenTo)((0, _elementor_editor_v1_adapters.windowEvent)("elementor/element/update_editor_settings"), () => getElementEditorSettings(elementId), [elementId]);
278 - };
113 +const useElementEditorSettings = elementId => {
114 + return (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.__privateUseListenTo)((0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.windowEvent)('elementor/element/update_editor_settings'), () => (0,_sync_get_element_editor_settings__WEBPACK_IMPORTED_MODULE_1__.getElementEditorSettings)(elementId), [elementId]);
115 +};
279 116
280 -//#endregion
281 -//#region packages/packages/libs/editor-elements/src/hooks/use-parent-element.ts
282 - function useParentElement(elementId) {
283 - return (0, _elementor_editor_v1_adapters.__privateUseListenTo)([(0, _elementor_editor_v1_adapters.commandEndEvent)("document/elements/create")], () => {
284 - if (!elementId) return null;
285 - const element = window?.elementor?.getContainer?.(elementId);
286 - if (!element) return null;
287 - return element.parent;
288 - }, [elementId]);
289 - }
117 +/***/ }),
290 118
291 -//#endregion
292 -//#region packages/packages/libs/editor-elements/src/sync/get-widgets-cache.ts
293 - function getWidgetsCache() {
294 - return window?.elementor?.widgetsCache || null;
295 - }
119 +/***/ "./packages/packages/libs/editor-elements/src/hooks/use-parent-element.ts":
120 +/*!********************************************************************************!*\
121 + !*** ./packages/packages/libs/editor-elements/src/hooks/use-parent-element.ts ***!
122 + \********************************************************************************/
123 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
296 124
297 -//#endregion
298 -//#region packages/packages/libs/editor-elements/src/sync/get-element-type.ts
299 - function getElementType(type) {
300 - if (!type) return null;
301 - const elementType = getWidgetsCache()?.[type];
302 - if (!elementType?.atomic_controls) return null;
303 - if (!elementType?.atomic_props_schema) return null;
304 - return {
305 - key: type,
306 - controls: elementType.atomic_controls,
307 - propsSchema: elementType.atomic_props_schema,
308 - dependenciesPerTargetMapping: elementType.dependencies_per_target_mapping ?? {},
309 - title: elementType.title,
310 - styleStates: elementType.atomic_style_states ?? [],
311 - pseudoStates: elementType.atomic_pseudo_states ?? []
312 - };
313 - }
125 +__webpack_require__.r(__webpack_exports__);
126 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
127 +/* harmony export */ useParentElement: function() { return /* binding */ useParentElement; }
128 +/* harmony export */ });
129 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
130 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
314 131
315 -//#endregion
316 -//#region packages/packages/libs/editor-elements/src/sync/get-selected-elements.ts
317 - function getSelectedElements() {
318 - return (window.elementor?.selection?.getElements?.() ?? []).reduce((acc, el) => {
319 - const type = el.model.get("widgetType") || el.model.get("elType");
320 - if (type) acc.push({
321 - id: el.model.get("id"),
322 - type
323 - });
324 - return acc;
325 - }, []);
326 - }
327 - function getSelectedElement() {
328 - const elements = getSelectedElements();
329 - const [element] = elements;
330 - const elementType = getElementType(element?.type);
331 - if (elements.length !== 1 || !elementType || !element) return {
332 - element: null,
333 - elementType: null
334 - };
335 - return {
336 - element,
337 - elementType
338 - };
339 - }
132 +function useParentElement(elementId) {
133 + return (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.__privateUseListenTo)([(0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.commandEndEvent)('document/elements/create')], () => {
134 + if (!elementId) {
135 + return null;
136 + }
137 + const extendedWindow = window;
138 + const element = extendedWindow?.elementor?.getContainer?.(elementId);
139 + if (!element) {
140 + return null;
141 + }
142 + return element.parent;
143 + }, [elementId]);
144 +}
340 145
341 -//#endregion
342 -//#region packages/packages/libs/editor-elements/src/hooks/use-selected-element.ts
343 - function useSelectedElement() {
344 - return (0, _elementor_editor_v1_adapters.__privateUseListenTo)([
345 - (0, _elementor_editor_v1_adapters.commandEndEvent)("document/elements/select"),
346 - (0, _elementor_editor_v1_adapters.commandEndEvent)("document/elements/deselect"),
347 - (0, _elementor_editor_v1_adapters.commandEndEvent)("document/elements/select-all"),
348 - (0, _elementor_editor_v1_adapters.commandEndEvent)("document/elements/deselect-all")
349 - ], getSelectedElement);
350 - }
146 +/***/ }),
351 147
352 -//#endregion
353 -//#region packages/packages/libs/editor-elements/src/sync/get-element-setting.ts
354 - var getElementSetting = (elementId, settingKey) => {
355 - return getContainer(elementId)?.settings?.get(settingKey) ?? null;
356 - };
357 - var getElementSettings = (elementId, settingKey) => {
358 - return Object.fromEntries(settingKey.map((key) => [key, getElementSetting(elementId, key)]));
359 - };
148 +/***/ "./packages/packages/libs/editor-elements/src/hooks/use-selected-element-settings.ts":
149 +/*!*******************************************************************************************!*\
150 + !*** ./packages/packages/libs/editor-elements/src/hooks/use-selected-element-settings.ts ***!
151 + \*******************************************************************************************/
152 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
360 153
361 -//#endregion
362 -//#region packages/packages/libs/editor-elements/src/hooks/use-selected-element-settings.ts
363 - function useSelectedElementSettings() {
364 - return (0, _elementor_editor_v1_adapters.__privateUseListenTo)([
365 - (0, _elementor_editor_v1_adapters.commandEndEvent)("document/elements/select"),
366 - (0, _elementor_editor_v1_adapters.commandEndEvent)("document/elements/deselect"),
367 - (0, _elementor_editor_v1_adapters.commandEndEvent)("document/elements/select-all"),
368 - (0, _elementor_editor_v1_adapters.commandEndEvent)("document/elements/deselect-all"),
369 - (0, _elementor_editor_v1_adapters.commandEndEvent)("document/elements/set-settings")
370 - ], () => {
371 - const { element, elementType } = getSelectedElement();
372 - if (!element || !elementType) return {
373 - element: null,
374 - elementType: null,
375 - settings: null
376 - };
377 - return {
378 - element,
379 - elementType,
380 - settings: getElementSettings(element.id, Object.keys(elementType.propsSchema))
381 - };
382 - });
383 - }
154 +__webpack_require__.r(__webpack_exports__);
155 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
156 +/* harmony export */ useSelectedElementSettings: function() { return /* binding */ useSelectedElementSettings; }
157 +/* harmony export */ });
158 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
159 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
160 +/* harmony import */ var _sync_get_element_setting__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../sync/get-element-setting */ "./packages/packages/libs/editor-elements/src/sync/get-element-setting.ts");
161 +/* harmony import */ var _sync_get_selected_elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../sync/get-selected-elements */ "./packages/packages/libs/editor-elements/src/sync/get-selected-elements.ts");
384 162
385 -//#endregion
386 -//#region packages/packages/libs/editor-elements/src/sync/create-element.ts
387 - function createElement({ container, model, options }) {
388 - return (0, _elementor_editor_v1_adapters.__privateRunCommandSync)("document/elements/create", {
389 - container,
390 - model,
391 - options: {
392 - edit: false,
393 - ...options
394 - }
395 - });
396 - }
397 163
398 -//#endregion
399 -//#region packages/packages/libs/editor-elements/src/sync/delete-element.ts
400 - function deleteElement({ container, options = {} }) {
401 - (0, _elementor_editor_v1_adapters.__privateRunCommandSync)("document/elements/delete", {
402 - container,
403 - options
404 - });
405 - }
406 164
407 -//#endregion
408 -//#region packages/packages/libs/editor-elements/src/sync/create-elements.ts
409 - var createElements = ({ elements, title, subtitle = (0, _wordpress_i18n.__)("Item added", "elementor") }) => {
410 - return (0, _elementor_editor_v1_adapters.undoable)({
411 - do: ({ elements: elementsParam }) => {
412 - const createdElements = [];
413 - elementsParam.forEach(({ container, options, ...elementParams }) => {
414 - const parentContainer = container.lookup?.() ?? container;
415 - if (!parentContainer) throw new Error("Parent container not found");
416 - const element = createElement({
417 - container: parentContainer,
418 - ...elementParams,
419 - options: {
420 - ...options,
421 - useHistory: false
422 - }
423 - });
424 - createdElements.push({
425 - container: element,
426 - parentContainer,
427 - model: element.model?.toJSON() || {},
428 - options,
429 - containerId: element.id,
430 - parentContainerId: parentContainer.id
431 - });
432 - });
433 - return { createdElements };
434 - },
435 - undo: (_, { createdElements }) => {
436 - [...createdElements].reverse().forEach(({ container, containerId, parentContainerId }) => {
437 - const freshContainer = resolveContainer(container, containerId);
438 - if (freshContainer) {
439 - deleteElement({
440 - container: freshContainer,
441 - options: { useHistory: false }
442 - });
443 - return;
444 - }
445 - removeModelFromParent(parentContainerId, containerId);
446 - });
447 - },
448 - redo: (_, { createdElements }) => {
449 - const newElements = [];
450 - createdElements.forEach(({ parentContainer, parentContainerId, model, options }) => {
451 - const freshParent = resolveContainer(parentContainer, parentContainerId);
452 - if (freshParent) {
453 - const element = createElement({
454 - container: freshParent,
455 - model,
456 - options: {
457 - ...options,
458 - useHistory: false
459 - }
460 - });
461 - newElements.push({
462 - container: element,
463 - parentContainer: freshParent,
464 - model: element.model.toJSON(),
465 - options,
466 - containerId: element.id,
467 - parentContainerId: freshParent.id
468 - });
469 - return;
470 - }
471 - addModelToParent(parentContainerId, model);
472 - newElements.push({
473 - container: parentContainer,
474 - parentContainer,
475 - model,
476 - options,
477 - containerId: model.id ?? "",
478 - parentContainerId
479 - });
480 - });
481 - return { createdElements: newElements };
482 - }
483 - }, {
484 - title,
485 - subtitle
486 - })({ elements });
487 - };
165 +// Use the selected element and it's settings,
166 +// and subscribe to changes on both the selected element and its settings.
167 +// This ensures the element and its settings are synced.
168 +function useSelectedElementSettings() {
169 + return (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.__privateUseListenTo)([(0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.commandEndEvent)('document/elements/select'), (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.commandEndEvent)('document/elements/deselect'), (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.commandEndEvent)('document/elements/select-all'), (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.commandEndEvent)('document/elements/deselect-all'), (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.commandEndEvent)('document/elements/set-settings')], () => {
170 + const {
171 + element,
172 + elementType
173 + } = (0,_sync_get_selected_elements__WEBPACK_IMPORTED_MODULE_2__.getSelectedElement)();
174 + if (!element || !elementType) {
175 + return {
176 + element: null,
177 + elementType: null,
178 + settings: null
179 + };
180 + }
181 + const settings = (0,_sync_get_element_setting__WEBPACK_IMPORTED_MODULE_1__.getElementSettings)(element.id, Object.keys(elementType.propsSchema));
182 + return {
183 + element,
184 + elementType,
185 + settings
186 + };
187 + });
188 +}
488 189
489 -//#endregion
490 -//#region packages/packages/libs/editor-elements/src/sync/drop-element.ts
491 - function dropElement({ containerId, model, options }) {
492 - const container = getContainer(containerId);
493 - if (!container) throw new Error(`Container with ID "${containerId}" not found`);
494 - return (0, _elementor_editor_v1_adapters.__privateRunCommandSync)("preview/drop", {
495 - container,
496 - model,
497 - options
498 - });
499 - }
190 +/***/ }),
500 191
501 -//#endregion
502 -//#region packages/packages/libs/editor-elements/src/sync/duplicate-element.ts
503 - function duplicateElement({ element, options = {} }) {
504 - const currentIndex = element.view?._index ?? 0;
505 - return (0, _elementor_editor_v1_adapters.__privateRunCommandSync)("document/elements/duplicate", {
506 - container: element,
507 - options: {
508 - at: options.clone !== false ? currentIndex + 1 : void 0,
509 - edit: false,
510 - ...options
511 - }
512 - });
513 - }
192 +/***/ "./packages/packages/libs/editor-elements/src/hooks/use-selected-element.ts":
193 +/*!**********************************************************************************!*\
194 + !*** ./packages/packages/libs/editor-elements/src/hooks/use-selected-element.ts ***!
195 + \**********************************************************************************/
196 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
514 197
515 -//#endregion
516 -//#region packages/packages/libs/editor-elements/src/sync/duplicate-elements.ts
517 - var duplicateElements = ({ elementIds, title, subtitle = (0, _wordpress_i18n.__)("Item duplicated", "elementor"), onDuplicateElements, onRestoreElements }) => {
518 - return (0, _elementor_editor_v1_adapters.undoable)({
519 - do: ({ elementIds: elementIdsToDuplicate }) => {
520 - onDuplicateElements?.();
521 - const duplicatedElements = [];
522 - elementIdsToDuplicate.forEach((elementId) => {
523 - const originalContainer = getContainer(elementId);
524 - if (!originalContainer?.parent) return;
525 - const duplicatedElement = duplicateElement({
526 - element: originalContainer,
527 - options: { useHistory: false }
528 - });
529 - if (!duplicatedElement.parent) return;
530 - duplicatedElements.push({
531 - container: duplicatedElement,
532 - parentContainer: duplicatedElement.parent,
533 - model: duplicatedElement.model.toJSON(),
534 - at: duplicatedElement.view?._index,
535 - containerId: duplicatedElement.id,
536 - parentContainerId: duplicatedElement.parent.id
537 - });
538 - });
539 - return { duplicatedElements };
540 - },
541 - undo: (_, { duplicatedElements }) => {
542 - onRestoreElements?.();
543 - [...duplicatedElements].reverse().forEach(({ container, containerId, parentContainerId }) => {
544 - const freshContainer = resolveContainer(container, containerId);
545 - if (freshContainer) {
546 - deleteElement({
547 - container: freshContainer,
548 - options: { useHistory: false }
549 - });
550 - return;
551 - }
552 - removeModelFromParent(parentContainerId, containerId);
553 - });
554 - },
555 - redo: (_, { duplicatedElements: previousElements }) => {
556 - onDuplicateElements?.();
557 - const duplicatedElements = [];
558 - previousElements.forEach(({ parentContainer, parentContainerId, model, at }) => {
559 - const freshParent = resolveContainer(parentContainer, parentContainerId);
560 - if (freshParent) {
561 - const createdElement = createElement({
562 - container: freshParent,
563 - model,
564 - options: {
565 - useHistory: false,
566 - clone: false,
567 - at
568 - }
569 - });
570 - duplicatedElements.push({
571 - container: createdElement,
572 - parentContainer: freshParent,
573 - model,
574 - at,
575 - containerId: createdElement.id,
576 - parentContainerId: freshParent.id
577 - });
578 - return;
579 - }
580 - addModelToParent(parentContainerId, model, { at });
581 - duplicatedElements.push({
582 - container: parentContainer,
583 - parentContainer,
584 - model,
585 - at,
586 - containerId: model.id ?? "",
587 - parentContainerId
588 - });
589 - });
590 - return { duplicatedElements };
591 - }
592 - }, {
593 - title,
594 - subtitle
595 - })({ elementIds });
596 - };
198 +__webpack_require__.r(__webpack_exports__);
199 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
200 +/* harmony export */ useSelectedElement: function() { return /* binding */ useSelectedElement; }
201 +/* harmony export */ });
202 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
203 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
204 +/* harmony import */ var _sync_get_selected_elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../sync/get-selected-elements */ "./packages/packages/libs/editor-elements/src/sync/get-selected-elements.ts");
597 205
598 -//#endregion
599 -//#region packages/packages/libs/editor-elements/src/sync/get-preview-element-dom.ts
600 - function getPreviewElementDOM(id) {
601 - try {
602 - const fromContainer = getContainer(id)?.view?.el;
603 - if (fromContainer) return fromContainer;
604 - return queryPreviewDOMByElementId(id);
605 - } catch {
606 - return null;
607 - }
608 - }
609 - function queryPreviewDOMByElementId(id) {
610 - const previewDocument = window.elementor?.getPreviewContainer?.()?.view?.el?.ownerDocument;
611 - if (!previewDocument) return null;
612 - return previewDocument.querySelector(`[data-id="${id}"]`);
613 - }
614 206
615 -//#endregion
616 -//#region packages/packages/libs/editor-elements/src/sync/get-current-document-container.ts
617 - function getCurrentDocumentContainer() {
618 - return window.elementor?.documents?.getCurrent?.()?.container ?? null;
619 - }
207 +function useSelectedElement() {
208 + return (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.__privateUseListenTo)([(0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.commandEndEvent)('document/elements/select'), (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.commandEndEvent)('document/elements/deselect'), (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.commandEndEvent)('document/elements/select-all'), (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.commandEndEvent)('document/elements/deselect-all')], _sync_get_selected_elements__WEBPACK_IMPORTED_MODULE_1__.getSelectedElement);
209 +}
620 210
621 -//#endregion
622 -//#region packages/packages/libs/editor-elements/src/sync/get-current-document-id.ts
623 - function getCurrentDocumentId() {
624 - const extendedWindow = window;
625 - try {
626 - return extendedWindow.elementor?.documents?.getCurrentId?.() ?? null;
627 - } catch {
628 - return null;
629 - }
630 - }
211 +/***/ }),
631 212
632 -//#endregion
633 -//#region packages/packages/libs/editor-elements/src/sync/get-element-icon.ts
634 - function getElementIcon(elementId) {
635 - const container = getContainer(elementId);
636 - const type = container?.model.get("widgetType") || container?.model.get("elType");
637 - if (!type) return null;
638 - return getWidgetsCache()?.[type]?.icon ?? null;
639 - }
213 +/***/ "./packages/packages/libs/editor-elements/src/link-restriction.ts":
214 +/*!************************************************************************!*\
215 + !*** ./packages/packages/libs/editor-elements/src/link-restriction.ts ***!
216 + \************************************************************************/
217 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
640 218
641 -//#endregion
642 -//#region packages/packages/libs/editor-elements/src/errors.ts
643 - var ElementNotFoundError = (0, _elementor_utils.createError)({
644 - code: "element_not_found",
645 - message: "Element not found."
646 - });
647 - var StyleNotFoundError = (0, _elementor_utils.createError)({
648 - code: "style_not_found",
649 - message: "Style not found."
650 - });
651 - var ElementTypeNotExistsError = (0, _elementor_utils.createError)({
652 - code: "element_type_not_exists",
653 - message: "Element type does not exist."
654 - });
655 - var ElementLabelNotExistsError = (0, _elementor_utils.createError)({
656 - code: "element_label_not_exists",
657 - message: "Element label does not exist."
658 - });
659 - var ElementParentNotFoundError = (0, _elementor_utils.createError)({
660 - code: "element_parent_not_found",
661 - message: "Element parent not found."
662 - });
663 - var ElementIndexNotFoundError = (0, _elementor_utils.createError)({
664 - code: "element_index_not_found",
665 - message: "Element index not found."
666 - });
219 +__webpack_require__.r(__webpack_exports__);
220 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
221 +/* harmony export */ getAnchoredAncestorId: function() { return /* binding */ getAnchoredAncestorId; },
222 +/* harmony export */ getAnchoredDescendantId: function() { return /* binding */ getAnchoredDescendantId; },
223 +/* harmony export */ getLinkInLinkRestriction: function() { return /* binding */ getLinkInLinkRestriction; },
224 +/* harmony export */ isElementAnchored: function() { return /* binding */ isElementAnchored; }
225 +/* harmony export */ });
226 +/* harmony import */ var _sync_get_container__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sync/get-container */ "./packages/packages/libs/editor-elements/src/sync/get-container.ts");
227 +/* harmony import */ var _sync_get_element_setting__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sync/get-element-setting */ "./packages/packages/libs/editor-elements/src/sync/get-element-setting.ts");
667 228
668 -//#endregion
669 -//#region packages/packages/libs/editor-elements/src/sync/get-element-label.ts
670 - function getElementLabel(elementId) {
671 - if (!elementId) elementId = getSelectedElements()?.[0]?.id;
672 - const container = getContainer(elementId);
673 - const type = container?.model.get("widgetType") || container?.model.get("elType");
674 - if (!type) throw new ElementTypeNotExistsError({ context: { elementId } });
675 - const label = getWidgetsCache()?.[type]?.title;
676 - if (!label) throw new ElementLabelNotExistsError({ context: { elementType: type } });
677 - return label;
678 - }
679 229
680 -//#endregion
681 -//#region packages/packages/libs/editor-elements/src/sync/get-element-title.ts
682 - function extractString(value) {
683 - if (typeof value === "string") return value || null;
684 - if (value && typeof value === "object" && "value" in value && typeof value.value === "string") return value.value || null;
685 - return null;
686 - }
687 - function getElementTitle(elementId) {
688 - const editorTitle = extractString(getElementEditorSettings(elementId)?.title);
689 - if (editorTitle) return editorTitle;
690 - const legacyTitle = extractString(getElementSetting(elementId, "_title"));
691 - if (legacyTitle) return legacyTitle;
692 - const presetTitle = extractString(getElementSetting(elementId, "presetTitle"));
693 - if (presetTitle) return presetTitle;
694 - try {
695 - return getElementLabel(elementId);
696 - } catch {
697 - return null;
698 - }
699 - }
230 +const ANCHOR_SELECTOR = 'a, [data-action-link]';
231 +function getLinkInLinkRestriction(elementId, resolvedValue) {
232 + const anchoredDescendantId = getAnchoredDescendantId(elementId);
233 + if (anchoredDescendantId) {
234 + return {
235 + shouldRestrict: true,
236 + reason: 'descendant',
237 + elementId: anchoredDescendantId
238 + };
239 + }
240 + const hasInlineLink = checkForInlineLink(elementId, resolvedValue);
241 + if (hasInlineLink) {
242 + return {
243 + shouldRestrict: true,
244 + reason: 'descendant',
245 + elementId
246 + };
247 + }
248 + const ancestor = getAnchoredAncestorId(elementId);
249 + if (ancestor) {
250 + return {
251 + shouldRestrict: true,
252 + reason: 'ancestor',
253 + elementId: ancestor
254 + };
255 + }
256 + return {
257 + shouldRestrict: false
258 + };
259 +}
260 +function getAnchoredDescendantId(elementId) {
261 + const element = getElementDOM(elementId);
262 + if (!element) {
263 + return null;
264 + }
265 + for (const childAnchorElement of Array.from(element.querySelectorAll(ANCHOR_SELECTOR))) {
266 + // Ensure the child is not in the current element's scope
267 + const childElementId = findElementIdOf(childAnchorElement);
268 + if (childElementId !== elementId) {
269 + return childElementId;
270 + }
271 + }
272 + return null;
273 +}
274 +function getAnchoredAncestorId(elementId) {
275 + const element = getElementDOM(elementId);
276 + if (!element || element.parentElement === null) {
277 + return null;
278 + }
279 + const parentAnchor = element.parentElement.closest(ANCHOR_SELECTOR);
280 + return parentAnchor ? findElementIdOf(parentAnchor) : null;
281 +}
282 +function isElementAnchored(elementId) {
283 + const element = getElementDOM(elementId);
284 + if (!element) {
285 + return false;
286 + }
287 + if (element.matches(ANCHOR_SELECTOR)) {
288 + return true;
289 + }
290 + return doesElementContainAnchor(element);
291 +}
292 +function doesElementContainAnchor(element) {
293 + for (const child of Array.from(element.children)) {
294 + if (isElementorElement(child)) {
295 + continue;
296 + }
297 + if (child.matches(ANCHOR_SELECTOR)) {
298 + return true;
299 + }
300 + if (doesElementContainAnchor(child)) {
301 + return true;
302 + }
303 + }
304 + return false;
305 +}
306 +function findElementIdOf(element) {
307 + return element.closest('[data-id]')?.dataset.id || null;
308 +}
309 +function checkForInlineLink(elementId, resolvedValue) {
310 + const element = getElementDOM(elementId);
311 + if (!element) {
312 + return false;
313 + }
314 + if (element.matches(ANCHOR_SELECTOR)) {
315 + return false;
316 + }
317 + const linkSetting = resolvedValue ?? (0,_sync_get_element_setting__WEBPACK_IMPORTED_MODULE_1__.getElementSetting)(elementId, 'link')?.value;
318 + if (linkSetting?.destination) {
319 + return false;
320 + }
321 + return element.querySelector(ANCHOR_SELECTOR) !== null;
322 +}
323 +function getElementDOM(id) {
324 + try {
325 + const fromContainer = (0,_sync_get_container__WEBPACK_IMPORTED_MODULE_0__.getContainer)(id)?.view?.el;
326 + if (fromContainer) {
327 + return fromContainer;
328 + }
700 329
701 -//#endregion
702 -//#region packages/packages/libs/editor-elements/src/sync/get-element-styles.ts
703 - var getElementStyles = (elementID) => {
704 - return getContainer(elementID)?.model.get("styles") || null;
705 - };
330 + // Inner elements of component instances are rendered from Twig and have
331 + // no V1 Backbone view, so getContainer(id) returns null. Fall back to
332 + // querying the preview iframe document directly so link-in-link
333 + // restriction still works for those elements.
334 + return queryPreviewDOMByElementId(id);
335 + } catch {
336 + return null;
337 + }
338 +}
339 +function queryPreviewDOMByElementId(id) {
340 + const previewDocument = window.elementor?.getPreviewContainer?.()?.view?.el?.ownerDocument;
341 + if (!previewDocument) {
342 + return null;
343 + }
344 + return previewDocument.querySelector(`[data-id="${id}"]`);
345 +}
346 +function isElementorElement(element) {
347 + return element.hasAttribute('data-id');
348 +}
706 349
707 -//#endregion
708 -//#region packages/packages/libs/editor-elements/src/sync/get-all-descendants.ts
709 - function getAllDescendants(container) {
710 - return [container, ...(container.children ?? []).flatMap((child) => getAllDescendants(child))];
711 - }
350 +/***/ }),
712 351
713 -//#endregion
714 -//#region packages/packages/libs/editor-elements/src/sync/get-elements.ts
715 - function getElements(root) {
716 - const container = root ? getContainer(root) : getCurrentDocumentContainer();
717 - if (!container) return [];
718 - return [container, ...[...container.model.get("elements") ?? []].flatMap((childModel) => getElements(childModel.get("id")))];
719 - }
352 +/***/ "./packages/packages/libs/editor-elements/src/styles/consts.ts":
353 +/*!*********************************************************************!*\
354 + !*** ./packages/packages/libs/editor-elements/src/styles/consts.ts ***!
355 + \*********************************************************************/
356 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
720 357
721 -//#endregion
722 -//#region packages/packages/libs/editor-elements/src/sync/move-element.ts
723 - function moveElement({ element, targetContainer, options = {} }) {
724 - const resolvedElement = element.lookup?.();
725 - const resolvedTarget = targetContainer.lookup?.();
726 - if (!resolvedElement) throw new Error(`Element not found: ${element.id}`);
727 - if (!resolvedTarget) throw new Error(`Target container not found: ${targetContainer.id}`);
728 - const modelToRecreate = resolvedElement.model.toJSON();
729 - deleteElement({
730 - container: resolvedElement,
731 - options: {
732 - ...options,
733 - useHistory: false
734 - }
735 - });
736 - return createElement({
737 - container: resolvedTarget,
738 - model: modelToRecreate,
739 - options: {
740 - edit: false,
741 - ...options,
742 - useHistory: false
743 - }
744 - });
745 - }
358 +__webpack_require__.r(__webpack_exports__);
359 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
360 +/* harmony export */ ELEMENT_STYLE_CHANGE_EVENT: function() { return /* binding */ ELEMENT_STYLE_CHANGE_EVENT; },
361 +/* harmony export */ styleRerenderEvents: function() { return /* binding */ styleRerenderEvents; }
362 +/* harmony export */ });
363 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
364 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
746 365
747 -//#endregion
748 -//#region packages/packages/libs/editor-elements/src/sync/move-elements.ts
749 - var moveElements = ({ moves: movesToMake, title, subtitle = (0, _wordpress_i18n.__)("Elements moved", "elementor"), onMoveElements, onRestoreElements }) => {
750 - return (0, _elementor_editor_v1_adapters.undoable)({
751 - do: ({ moves }) => {
752 - const movedElements = [];
753 - onMoveElements?.();
754 - moves.forEach(({ element, targetContainer, options }) => {
755 - const sourceElement = element.lookup?.() ?? element;
756 - const target = targetContainer.lookup?.() ?? targetContainer;
757 - if (!sourceElement) throw new Error("Element not found");
758 - if (!target) throw new Error("Target container not found");
759 - if (!sourceElement.parent) throw new Error("Element has no parent container");
760 - const originalContainer = sourceElement.parent;
761 - const originalIndex = originalContainer.children?.indexOf(sourceElement) ?? -1;
762 - const newElement = moveElement({
763 - element: sourceElement,
764 - targetContainer: target,
765 - options: {
766 - ...options,
767 - useHistory: false
768 - }
769 - });
770 - movedElements.push({
771 - element: newElement,
772 - originalContainer,
773 - originalIndex,
774 - targetContainer: target,
775 - options,
776 - elementId: newElement.id,
777 - originalContainerId: originalContainer.id,
778 - targetContainerId: target.id
779 - });
780 - });
781 - return { movedElements };
782 - },
783 - undo: (_, { movedElements }) => {
784 - onRestoreElements?.();
785 - [...movedElements].reverse().forEach(({ element, elementId, originalContainer, originalContainerId, originalIndex }) => {
786 - const freshElement = resolveContainer(element, elementId);
787 - const freshOriginalContainer = resolveContainer(originalContainer, originalContainerId);
788 - if (!freshElement || !freshOriginalContainer) return;
789 - moveElement({
790 - element: freshElement,
791 - targetContainer: freshOriginalContainer,
792 - options: {
793 - useHistory: false,
794 - at: originalIndex >= 0 ? originalIndex : void 0
795 - }
796 - });
797 - });
798 - },
799 - redo: (_, { movedElements }) => {
800 - const newMovedElements = [];
801 - onMoveElements?.();
802 - movedElements.forEach(({ element, elementId, originalContainer, originalContainerId, originalIndex, targetContainer, targetContainerId, options }) => {
803 - const freshElement = resolveContainer(element, elementId);
804 - const freshOriginalContainer = resolveContainer(originalContainer, originalContainerId);
805 - const freshTarget = resolveContainer(targetContainer, targetContainerId);
806 - if (!freshElement || !freshOriginalContainer || !freshTarget) return;
807 - const newElement = moveElement({
808 - element: freshElement,
809 - targetContainer: freshTarget,
810 - options: {
811 - ...options,
812 - useHistory: false
813 - }
814 - });
815 - newMovedElements.push({
816 - element: newElement,
817 - originalContainer: freshOriginalContainer,
818 - originalIndex,
819 - targetContainer: freshTarget,
820 - options,
821 - elementId: newElement.id,
822 - originalContainerId: freshOriginalContainer.id,
823 - targetContainerId: freshTarget.id
824 - });
825 - });
826 - return { movedElements: newMovedElements };
827 - }
828 - }, {
829 - title,
830 - subtitle
831 - })({ moves: movesToMake });
832 - };
366 +const ELEMENT_STYLE_CHANGE_EVENT = 'elementor/editor-v2/editor-elements/style';
367 +const styleRerenderEvents = [(0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.commandEndEvent)('document/elements/create'), (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.commandEndEvent)('document/elements/duplicate'), (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.commandEndEvent)('document/elements/import'), (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.commandEndEvent)('document/elements/paste'), (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.windowEvent)(ELEMENT_STYLE_CHANGE_EVENT)];
833 368
834 -//#endregion
835 -//#region packages/packages/libs/editor-elements/src/sync/remove-elements.ts
836 - var removeElements = ({ elementIds, title, subtitle = (0, _wordpress_i18n.__)("Item removed", "elementor"), onRemoveElements, onRestoreElements }) => {
837 - return (0, _elementor_editor_v1_adapters.undoable)({
838 - do: ({ elementIds: elementIdsParam }) => {
839 - const removedElements = [];
840 - elementIdsParam.forEach((elementId) => {
841 - const container = getContainer(elementId);
842 - if (container?.parent) removedElements.push({
843 - container,
844 - parent: container.parent,
845 - model: container.model.toJSON(),
846 - at: container.view?._index ?? 0,
847 - containerId: container.id,
848 - parentId: container.parent.id
849 - });
850 - });
851 - onRemoveElements?.();
852 - removedElements.forEach(({ container }) => {
853 - deleteElement({
854 - container,
855 - options: { useHistory: false }
856 - });
857 - });
858 - return { removedElements };
859 - },
860 - undo: (_, { removedElements }) => {
861 - onRestoreElements?.();
862 - [...removedElements].reverse().forEach(({ parent, parentId, model, at }) => {
863 - const freshParent = resolveContainer(parent, parentId);
864 - if (freshParent) {
865 - createElement({
866 - container: freshParent,
867 - model,
868 - options: {
869 - useHistory: false,
870 - at
871 - }
872 - });
873 - return;
874 - }
875 - addModelToParent(parentId, model, { at });
876 - });
877 - },
878 - redo: (_, { removedElements }) => {
879 - onRemoveElements?.();
880 - const newRemovedElements = [];
881 - removedElements.forEach(({ container, parent, model, at, containerId, parentId }) => {
882 - const freshContainer = resolveContainer(container, containerId);
883 - const freshParent = resolveContainer(parent, parentId);
884 - if (freshContainer && freshParent) {
885 - deleteElement({
886 - container: freshContainer,
887 - options: { useHistory: false }
888 - });
889 - newRemovedElements.push({
890 - container: freshContainer,
891 - parent: freshParent,
892 - model,
893 - at,
894 - containerId,
895 - parentId
896 - });
897 - return;
898 - }
899 - removeModelFromParent(parentId, containerId);
900 - newRemovedElements.push({
901 - container,
902 - parent,
903 - model,
904 - at,
905 - containerId,
906 - parentId
907 - });
908 - });
909 - return { removedElements: newRemovedElements };
910 - }
911 - }, {
912 - title,
913 - subtitle
914 - })({ elementIds });
915 - };
369 +/***/ }),
916 370
917 -//#endregion
918 -//#region packages/packages/libs/editor-elements/src/sync/replace-element.ts
919 - var replaceElement = ({ currentElementId, newElement, withHistory = true }) => {
920 - const currentElementContainer = getContainer(currentElementId);
921 - if (!currentElementContainer) throw new ElementNotFoundError({ context: { elementId: currentElementId } });
922 - const { container, index } = getNewElementContainer(currentElementContainer, newElement);
923 - const newElementInstance = createElement({
924 - container,
925 - model: newElement,
926 - options: {
927 - at: index,
928 - useHistory: withHistory
929 - }
930 - });
931 - deleteElement({
932 - container: currentElementContainer,
933 - options: { useHistory: withHistory }
934 - });
935 - return newElementInstance;
936 - };
937 - function getNewElementContainer(currentElementContainer, newElement) {
938 - const { parent } = currentElementContainer;
939 - if (!parent) throw new ElementParentNotFoundError({ context: { elementId: currentElementContainer.id } });
940 - const elementIndex = currentElementContainer.view?._index ?? 0;
941 - if (elementIndex === -1) throw new ElementIndexNotFoundError({ context: { elementId: currentElementContainer.id } });
942 - let location = {
943 - container: parent,
944 - index: elementIndex
945 - };
946 - if (parent.id === "document" && newElement.elType === "widget") location = createWrapperForWidget(parent, elementIndex);
947 - return location;
948 - }
949 - var DEFAULT_CONTAINER_TYPE = "e-flexbox";
950 - function createWrapperForWidget(parent, elementIndex) {
951 - return {
952 - container: createElement({
953 - container: parent,
954 - model: { elType: DEFAULT_CONTAINER_TYPE },
955 - options: {
956 - at: elementIndex,
957 - useHistory: false
958 - }
959 - }),
960 - index: 0
961 - };
962 - }
371 +/***/ "./packages/packages/libs/editor-elements/src/styles/create-element-style.ts":
372 +/*!***********************************************************************************!*\
373 + !*** ./packages/packages/libs/editor-elements/src/styles/create-element-style.ts ***!
374 + \***********************************************************************************/
375 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
963 376
964 -//#endregion
965 -//#region packages/packages/libs/editor-elements/src/sync/update-element-editor-settings.ts
966 - var updateElementEditorSettings = ({ elementId, settings }) => {
967 - const element = getContainer(elementId);
968 - if (!element) throw new Error(`Element with id ${elementId} not found`);
969 - const editorSettings = element.model.get("editor_settings") ?? {};
970 - element.model.set("editor_settings", {
971 - ...editorSettings,
972 - ...settings
973 - });
974 - (0, _elementor_editor_v1_adapters.__privateRunCommandSync)("document/save/set-is-modified", { status: true }, { internal: true });
975 - };
377 +__webpack_require__.r(__webpack_exports__);
378 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
379 +/* harmony export */ createElementStyle: function() { return /* binding */ createElementStyle; },
380 +/* harmony export */ shouldCreateNewLocalStyle: function() { return /* binding */ shouldCreateNewLocalStyle; }
381 +/* harmony export */ });
382 +/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-props */ "@elementor/editor-props");
383 +/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__);
384 +/* harmony import */ var _elementor_editor_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-styles */ "@elementor/editor-styles");
385 +/* harmony import */ var _elementor_editor_styles__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_styles__WEBPACK_IMPORTED_MODULE_1__);
386 +/* harmony import */ var _sync_get_element_setting__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../sync/get-element-setting */ "./packages/packages/libs/editor-elements/src/sync/get-element-setting.ts");
387 +/* harmony import */ var _sync_update_element_settings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../sync/update-element-settings */ "./packages/packages/libs/editor-elements/src/sync/update-element-settings.ts");
388 +/* harmony import */ var _mutate_element_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./mutate-element-styles */ "./packages/packages/libs/editor-elements/src/styles/mutate-element-styles.ts");
976 389
977 -//#endregion
978 -//#region packages/packages/libs/editor-elements/src/sync/update-element-settings.ts
979 - var updateElementSettings = ({ id, props, withHistory = true }) => {
980 - const container = getContainer(id);
981 - if (!container) return;
982 - const args = {
983 - container,
984 - settings: { ...props }
985 - };
986 - if (withHistory) (0, _elementor_editor_v1_adapters.__privateRunCommandSync)("document/elements/settings", args);
987 - else (0, _elementor_editor_v1_adapters.__privateRunCommandSync)("document/elements/set-settings", args, { internal: true });
988 - };
989 390
990 -//#endregion
991 -//#region packages/packages/libs/editor-elements/src/link-restriction.ts
992 - var ANCHOR_SELECTOR = "a, [data-action-link]";
993 - function getLinkInLinkRestriction(elementId, resolvedValue) {
994 - const anchoredDescendantId = getAnchoredDescendantId(elementId);
995 - if (anchoredDescendantId) return {
996 - shouldRestrict: true,
997 - reason: "descendant",
998 - elementId: anchoredDescendantId
999 - };
1000 - if (checkForInlineLink(elementId, resolvedValue)) return {
1001 - shouldRestrict: true,
1002 - reason: "descendant",
1003 - elementId
1004 - };
1005 - const ancestor = getAnchoredAncestorId(elementId);
1006 - if (ancestor) return {
1007 - shouldRestrict: true,
1008 - reason: "ancestor",
1009 - elementId: ancestor
1010 - };
1011 - return { shouldRestrict: false };
1012 - }
1013 - function getAnchoredDescendantId(elementId) {
1014 - const element = getElementDOM(elementId);
1015 - if (!element) return null;
1016 - for (const childAnchorElement of Array.from(element.querySelectorAll(ANCHOR_SELECTOR))) {
1017 - const childElementId = findElementIdOf(childAnchorElement);
1018 - if (childElementId !== elementId) return childElementId;
1019 - }
1020 - return null;
1021 - }
1022 - function getAnchoredAncestorId(elementId) {
1023 - const element = getElementDOM(elementId);
1024 - if (!element || element.parentElement === null) return null;
1025 - const parentAnchor = element.parentElement.closest(ANCHOR_SELECTOR);
1026 - return parentAnchor ? findElementIdOf(parentAnchor) : null;
1027 - }
1028 - function isElementAnchored(elementId) {
1029 - const element = getElementDOM(elementId);
1030 - if (!element) return false;
1031 - if (element.matches(ANCHOR_SELECTOR)) return true;
1032 - return doesElementContainAnchor(element);
1033 - }
1034 - function doesElementContainAnchor(element) {
1035 - for (const child of Array.from(element.children)) {
1036 - if (isElementorElement(child)) continue;
1037 - if (child.matches(ANCHOR_SELECTOR)) return true;
1038 - if (doesElementContainAnchor(child)) return true;
1039 - }
1040 - return false;
1041 - }
1042 - function findElementIdOf(element) {
1043 - return element.closest("[data-id]")?.dataset.id || null;
1044 - }
1045 - function checkForInlineLink(elementId, resolvedValue) {
1046 - const element = getElementDOM(elementId);
1047 - if (!element) return false;
1048 - if (element.matches(ANCHOR_SELECTOR)) return false;
1049 - if ((resolvedValue ?? getElementSetting(elementId, "link")?.value)?.destination) return false;
1050 - return element.querySelector(ANCHOR_SELECTOR) !== null;
1051 - }
1052 - function getElementDOM(id) {
1053 - return getPreviewElementDOM(id);
1054 - }
1055 - function isElementorElement(element) {
1056 - return element.hasAttribute("data-id");
1057 - }
1058 391
1059 -//#endregion
1060 -//#region packages/packages/libs/editor-elements/src/styles/consts.ts
1061 - var ELEMENT_STYLE_CHANGE_EVENT = "elementor/editor-v2/editor-elements/style";
1062 - var styleRerenderEvents = [
1063 - (0, _elementor_editor_v1_adapters.commandEndEvent)("document/elements/create"),
1064 - (0, _elementor_editor_v1_adapters.commandEndEvent)("document/elements/duplicate"),
1065 - (0, _elementor_editor_v1_adapters.commandEndEvent)("document/elements/import"),
1066 - (0, _elementor_editor_v1_adapters.commandEndEvent)("document/elements/paste"),
1067 - (0, _elementor_editor_v1_adapters.windowEvent)(ELEMENT_STYLE_CHANGE_EVENT)
1068 - ];
1069 392
1070 -//#endregion
1071 -//#region packages/packages/libs/editor-elements/src/styles/mutate-element-styles.ts
1072 - function mutateElementStyles(elementId, mutator) {
1073 - const container = getContainer(elementId);
1074 - if (!container) throw new ElementNotFoundError({ context: { elementId } });
1075 - const oldIds = Object.keys(container.model.get("styles") ?? {});
1076 - const styles = mutateStyles(container, mutator);
1077 - clearRemovedClasses(container, {
1078 - oldIds,
1079 - newIds: Object.keys(styles)
1080 - });
1081 - notifyChanges();
1082 - return styles;
1083 - }
1084 - function mutateStyles(container, mutator) {
1085 - const styles = structuredClone(container.model.get("styles")) ?? {};
1086 - const entries = Object.entries(mutator(styles)).map(([styleId, style]) => {
1087 - style.variants = removeEmptyVariants(style);
1088 - return [styleId, style];
1089 - }).filter(([, style]) => {
1090 - return !isStyleEmpty(style);
1091 - });
1092 - const mutatedStyles = Object.fromEntries(entries);
1093 - container.model.set("styles", mutatedStyles);
1094 - return mutatedStyles;
1095 - }
1096 - function removeEmptyVariants(style) {
1097 - return style.variants.filter(({ props, custom_css: customCss }) => Object.keys(props).length > 0 || customCss?.raw);
1098 - }
1099 - function isStyleEmpty(style) {
1100 - return style.variants.length === 0;
1101 - }
1102 - function clearRemovedClasses(container, { oldIds, newIds }) {
1103 - const removedIds = oldIds.filter((id) => !newIds.includes(id));
1104 - if (!removedIds.length) return;
1105 - const classesProps = structuredClone(getClassesProps(container));
1106 - classesProps.forEach(([, prop]) => {
1107 - prop.value = prop.value.filter((value) => !removedIds.includes(value));
1108 - });
1109 - updateElementSettings({
1110 - id: container.id,
1111 - props: Object.fromEntries(classesProps),
1112 - withHistory: false
1113 - });
1114 - }
1115 - function getClassesProps(container) {
1116 - return Object.entries(container.settings.toJSON()).filter((prop) => {
1117 - const [, value] = prop;
1118 - return _elementor_editor_props.classesPropTypeUtil.isValid(value);
1119 - });
1120 - }
1121 - function notifyChanges() {
1122 - dispatchChangeEvent();
1123 - (0, _elementor_editor_v1_adapters.__privateRunCommandSync)("document/save/set-is-modified", { status: true }, { internal: true });
1124 - }
1125 - function dispatchChangeEvent() {
1126 - window.dispatchEvent(new CustomEvent(ELEMENT_STYLE_CHANGE_EVENT));
1127 - }
1128 393
1129 -//#endregion
1130 -//#region packages/packages/libs/editor-elements/src/styles/create-element-style.ts
1131 - function createElementStyle({ styleId, elementId, classesProp, label, meta, props, custom_css: customCss = null, additionalVariants = [] }) {
1132 - let id = styleId;
1133 - mutateElementStyles(elementId, (styles) => {
1134 - id ?? (id = (0, _elementor_editor_styles.generateId)(`e-${elementId}-`, Object.keys(styles)));
1135 - const variants = [{
1136 - meta,
1137 - props,
1138 - custom_css: customCss
1139 - }, ...additionalVariants];
1140 - styles[id] = {
1141 - id,
1142 - label,
1143 - type: "class",
1144 - variants
1145 - };
1146 - addStyleToClassesProp(elementId, classesProp, id);
1147 - return styles;
1148 - });
1149 - return id;
1150 - }
1151 - function addStyleToClassesProp(elementId, classesProp, styleId) {
1152 - const base = getElementSetting(elementId, classesProp);
1153 - const classesPropValue = _elementor_editor_props.classesPropTypeUtil.create((prev) => {
1154 - return [...prev ?? [], styleId];
1155 - }, { base });
1156 - updateElementSettings({
1157 - id: elementId,
1158 - props: { [classesProp]: classesPropValue },
1159 - withHistory: false
1160 - });
1161 - }
1162 - function shouldCreateNewLocalStyle(payload) {
1163 - return !payload?.styleId && !payload?.provider;
1164 - }
394 +function createElementStyle({
395 + styleId,
396 + elementId,
397 + classesProp,
398 + label,
399 + meta,
400 + props,
401 + custom_css: customCss = null,
402 + additionalVariants = []
403 +}) {
404 + let id = styleId;
405 + (0,_mutate_element_styles__WEBPACK_IMPORTED_MODULE_4__.mutateElementStyles)(elementId, styles => {
406 + id ??= (0,_elementor_editor_styles__WEBPACK_IMPORTED_MODULE_1__.generateId)(`e-${elementId}-`, Object.keys(styles));
407 + const variants = [{
408 + meta,
409 + props,
410 + custom_css: customCss
411 + }, ...additionalVariants];
412 + styles[id] = {
413 + id,
414 + label,
415 + type: 'class',
416 + variants
417 + };
418 + addStyleToClassesProp(elementId, classesProp, id);
419 + return styles;
420 + });
421 + return id;
422 +}
423 +function addStyleToClassesProp(elementId, classesProp, styleId) {
424 + const base = (0,_sync_get_element_setting__WEBPACK_IMPORTED_MODULE_2__.getElementSetting)(elementId, classesProp);
425 + const classesPropValue = _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__.classesPropTypeUtil.create(prev => {
426 + return [...(prev ?? []), styleId];
427 + }, {
428 + base
429 + });
430 + (0,_sync_update_element_settings__WEBPACK_IMPORTED_MODULE_3__.updateElementSettings)({
431 + id: elementId,
432 + props: {
433 + [classesProp]: classesPropValue
434 + },
435 + withHistory: false
436 + });
437 +}
438 +function shouldCreateNewLocalStyle(payload) {
439 + return !payload?.styleId && !payload?.provider;
440 +}
1165 441
1166 -//#endregion
1167 -//#region packages/packages/libs/editor-elements/src/styles/delete-element-style.ts
1168 - function deleteElementStyle(elementId, styleId) {
1169 - mutateElementStyles(elementId, (styles) => {
1170 - delete styles[styleId];
1171 - return styles;
1172 - });
1173 - }
442 +/***/ }),
1174 443
1175 -//#endregion
1176 -//#region packages/packages/libs/editor-elements/src/styles/update-element-style.ts
1177 - function updateElementStyle(args) {
1178 - mutateElementStyles(args.elementId, (styles) => {
1179 - const style = styles[args.styleId];
1180 - if (!style) throw new StyleNotFoundError({ context: { styleId: args.styleId } });
1181 - const variant = (0, _elementor_editor_styles.getVariantByMeta)(style, args.meta);
1182 - const customCss = ("custom_css" in args ? args.custom_css : variant?.custom_css) ?? null;
1183 - if (variant) {
1184 - variant.props = (0, _elementor_editor_props.mergeProps)(variant.props, args.props);
1185 - variant.custom_css = customCss?.raw ? customCss : null;
1186 - } else style.variants.push({
1187 - meta: args.meta,
1188 - props: args.props,
1189 - custom_css: customCss
1190 - });
1191 - return styles;
1192 - });
1193 - }
444 +/***/ "./packages/packages/libs/editor-elements/src/styles/delete-element-style.ts":
445 +/*!***********************************************************************************!*\
446 + !*** ./packages/packages/libs/editor-elements/src/styles/delete-element-style.ts ***!
447 + \***********************************************************************************/
448 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1194 449
1195 -//#endregion
1196 -//#region packages/packages/libs/editor-elements/src/sync/get-element-interactions.ts
1197 - function getElementInteractions(elementId) {
1198 - const interactions = getContainer(elementId)?.model?.get("interactions");
1199 - if (typeof interactions === "string") return JSON.parse(interactions);
1200 - return interactions;
1201 - }
450 +__webpack_require__.r(__webpack_exports__);
451 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
452 +/* harmony export */ deleteElementStyle: function() { return /* binding */ deleteElementStyle; }
453 +/* harmony export */ });
454 +/* harmony import */ var _mutate_element_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mutate-element-styles */ "./packages/packages/libs/editor-elements/src/styles/mutate-element-styles.ts");
1202 455
1203 -//#endregion
1204 -//#region packages/packages/libs/editor-elements/src/utils/get-default-style-tag-from-preview.ts
1205 - var DEFAULT_STYLE_CLASS_PREFIX = "e-default-";
1206 - function parseDefaultStyleTagFromClassList(classList) {
1207 - for (const className of classList) if (className.startsWith("e-default-")) return className.slice(10);
1208 - return null;
1209 - }
1210 - function getDefaultStyleTagFromPreviewElement(elementId) {
1211 - const renderRoot = getAtomicElementRenderRoot(elementId);
1212 - if (!renderRoot) return null;
1213 - return parseDefaultStyleTagFromClassList(renderRoot.classList);
1214 - }
1215 - function getAtomicElementRenderRoot(elementId) {
1216 - const view = getContainerView(elementId);
1217 - if (view?.getDomElement) {
1218 - const domElement = view.getDomElement().get?.(0);
1219 - if (domElement) return domElement;
1220 - }
1221 - const wrapper = view?.el ?? getPreviewElementDOM(elementId);
1222 - if (!wrapper) return null;
1223 - if (wrapper.hasAttribute("data-id")) return wrapper;
1224 - const firstChild = wrapper.firstElementChild;
1225 - if (firstChild instanceof HTMLElement) return firstChild;
1226 - return wrapper;
1227 - }
1228 - function getContainerView(elementId) {
1229 - return getContainer(elementId)?.view ?? null;
1230 - }
456 +function deleteElementStyle(elementId, styleId) {
457 + (0,_mutate_element_styles__WEBPACK_IMPORTED_MODULE_0__.mutateElementStyles)(elementId, styles => {
458 + // The object is deep cloned so mutating it is fine.
459 + // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
460 + delete styles[styleId];
461 + return styles;
462 + });
463 +}
1231 464
1232 -//#endregion
1233 -//#region packages/packages/libs/editor-elements/src/sync/update-element-interactions.ts
1234 - var updateElementInteractions = ({ elementId, interactions }) => {
1235 - const element = getContainer(elementId);
1236 - if (!element) throw new Error(`Element with id ${elementId} not found`);
1237 - element.model.set("interactions", interactions);
1238 - window.dispatchEvent(new CustomEvent("elementor/element/update_interactions"));
1239 - (0, _elementor_editor_v1_adapters.__privateRunCommandSync)("document/save/set-is-modified", { status: true }, { internal: true });
1240 - };
1241 - var playElementInteractions = (elementId, interactionId) => {
1242 - window.top?.dispatchEvent(new CustomEvent("atomic/play_interactions", { detail: {
1243 - elementId,
1244 - interactionId
1245 - } }));
1246 - };
465 +/***/ }),
1247 466
1248 -//#endregion
1249 -//#region packages/packages/libs/editor-elements/src/index.ts
1250 - var src_exports = /* @__PURE__ */ __exportAll({
1251 - DEFAULT_STYLE_CLASS_PREFIX: () => DEFAULT_STYLE_CLASS_PREFIX,
1252 - ELEMENT_STYLE_CHANGE_EVENT: () => ELEMENT_STYLE_CHANGE_EVENT,
1253 - addModelToParent: () => addModelToParent,
1254 - bindSettingsReconcile: () => bindSettingsReconcile,
1255 - createElement: () => createElement,
1256 - createElementStyle: () => createElementStyle,
1257 - createElements: () => createElements,
1258 - deleteElement: () => deleteElement,
1259 - deleteElementStyle: () => deleteElementStyle,
1260 - dropElement: () => dropElement,
1261 - duplicateElement: () => duplicateElement,
1262 - duplicateElements: () => duplicateElements,
1263 - evaluateWhen: () => evaluateWhen,
1264 - findChildRecursive: () => findChildRecursive,
1265 - findModelInDocument: () => findModelInDocument,
1266 - generateElementId: () => generateElementId,
1267 - getAllDescendants: () => getAllDescendants,
1268 - getAnchoredAncestorId: () => getAnchoredAncestorId,
1269 - getAnchoredDescendantId: () => getAnchoredDescendantId,
1270 - getContainer: () => getContainer,
1271 - getCurrentDocumentContainer: () => getCurrentDocumentContainer,
1272 - getCurrentDocumentId: () => getCurrentDocumentId,
1273 - getDefaultStyleTagFromPreviewElement: () => getDefaultStyleTagFromPreviewElement,
1274 - getElementChildrenWithFallback: () => getElementChildren,
1275 - getElementEditorSettings: () => getElementEditorSettings,
1276 - getElementIcon: () => getElementIcon,
1277 - getElementInteractions: () => getElementInteractions,
1278 - getElementLabel: () => getElementLabel,
1279 - getElementSetting: () => getElementSetting,
1280 - getElementSettings: () => getElementSettings,
1281 - getElementStyles: () => getElementStyles,
1282 - getElementTitle: () => getElementTitle,
1283 - getElementType: () => getElementType,
1284 - getElements: () => getElements,
1285 - getLinkInLinkRestriction: () => getLinkInLinkRestriction,
1286 - getPreviewElementDOM: () => getPreviewElementDOM,
1287 - getSelectedElements: () => getSelectedElements,
1288 - getWidgetsCache: () => getWidgetsCache,
1289 - isElementAnchored: () => isElementAnchored,
1290 - moveElement: () => moveElement,
1291 - moveElements: () => moveElements,
1292 - parseDefaultStyleTagFromClassList: () => parseDefaultStyleTagFromClassList,
1293 - playElementInteractions: () => playElementInteractions,
1294 - reconcileInitialChildren: () => reconcileInitialChildren,
1295 - removeElements: () => removeElements,
1296 - removeModelFromParent: () => removeModelFromParent,
1297 - replaceElement: () => replaceElement,
1298 - resolveContainer: () => resolveContainer,
1299 - resolveInsertIndex: () => resolveInsertIndex,
1300 - selectElement: () => selectElement,
1301 - shouldCreateNewLocalStyle: () => shouldCreateNewLocalStyle,
1302 - styleRerenderEvents: () => styleRerenderEvents,
1303 - updateElementEditorSettings: () => updateElementEditorSettings,
1304 - updateElementInteractions: () => updateElementInteractions,
1305 - updateElementSettings: () => updateElementSettings,
1306 - updateElementStyle: () => updateElementStyle,
1307 - useElementChildren: () => useElementChildren,
1308 - useElementEditorSettings: () => useElementEditorSettings,
1309 - useParentElement: () => useParentElement,
1310 - useSelectedElement: () => useSelectedElement,
1311 - useSelectedElementSettings: () => useSelectedElementSettings
1312 - });
467 +/***/ "./packages/packages/libs/editor-elements/src/styles/mutate-element-styles.ts":
468 +/*!************************************************************************************!*\
469 + !*** ./packages/packages/libs/editor-elements/src/styles/mutate-element-styles.ts ***!
470 + \************************************************************************************/
471 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1313 472
1314 -//#endregion
1315 -//#region \0elementor-package-library-entry
1316 - (window.elementorV2 = window.elementorV2 || {}).editorElements = src_exports;
473 +__webpack_require__.r(__webpack_exports__);
474 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
475 +/* harmony export */ mutateElementStyles: function() { return /* binding */ mutateElementStyles; }
476 +/* harmony export */ });
477 +/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-props */ "@elementor/editor-props");
478 +/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__);
479 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
480 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__);
481 +/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../errors */ "./packages/packages/libs/editor-elements/src/errors.ts");
482 +/* harmony import */ var _sync_get_container__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../sync/get-container */ "./packages/packages/libs/editor-elements/src/sync/get-container.ts");
483 +/* harmony import */ var _sync_update_element_settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../sync/update-element-settings */ "./packages/packages/libs/editor-elements/src/sync/update-element-settings.ts");
484 +/* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./consts */ "./packages/packages/libs/editor-elements/src/styles/consts.ts");
1317 485
1318 -//#endregion
1319 -})(elementorV2.editorV1Adapters, elementorV2.session, elementorV2.editorProps, wp.i18n, elementorV2.utils, elementorV2.editorStyles);
486 +
487 +
488 +
489 +
490 +
491 +function mutateElementStyles(elementId, mutator) {
492 + const container = (0,_sync_get_container__WEBPACK_IMPORTED_MODULE_3__.getContainer)(elementId);
493 + if (!container) {
494 + throw new _errors__WEBPACK_IMPORTED_MODULE_2__.ElementNotFoundError({
495 + context: {
496 + elementId
497 + }
498 + });
499 + }
500 + const oldIds = Object.keys(container.model.get('styles') ?? {});
501 + const styles = mutateStyles(container, mutator);
502 + const newIds = Object.keys(styles);
503 + clearRemovedClasses(container, {
504 + oldIds,
505 + newIds
506 + });
507 + notifyChanges();
508 + return styles;
509 +}
510 +function mutateStyles(container, mutator) {
511 + const styles = structuredClone(container.model.get('styles')) ?? {};
512 + const entries = Object.entries(mutator(styles)).map(([styleId, style]) => {
513 + style.variants = removeEmptyVariants(style);
514 + return [styleId, style];
515 + }).filter(([, style]) => {
516 + return !isStyleEmpty(style);
517 + });
518 + const mutatedStyles = Object.fromEntries(entries);
519 + container.model.set('styles', mutatedStyles);
520 + return mutatedStyles;
521 +}
522 +function removeEmptyVariants(style) {
523 + return style.variants.filter(({
524 + props,
525 + custom_css: customCss
526 + }) => Object.keys(props).length > 0 || customCss?.raw);
527 +}
528 +function isStyleEmpty(style) {
529 + return style.variants.length === 0;
530 +}
531 +function clearRemovedClasses(container, {
532 + oldIds,
533 + newIds
534 +}) {
535 + const removedIds = oldIds.filter(id => !newIds.includes(id));
536 + const classesProps = structuredClone(getClassesProps(container));
537 + classesProps.forEach(([, prop]) => {
538 + prop.value = prop.value.filter(value => !removedIds.includes(value));
539 + });
540 + (0,_sync_update_element_settings__WEBPACK_IMPORTED_MODULE_4__.updateElementSettings)({
541 + id: container.id,
542 + props: Object.fromEntries(classesProps),
543 + withHistory: false
544 + });
545 +}
546 +function getClassesProps(container) {
547 + return Object.entries(container.settings.toJSON()).filter(prop => {
548 + const [, value] = prop;
549 + return _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__.classesPropTypeUtil.isValid(value);
550 + });
551 +}
552 +function notifyChanges() {
553 + dispatchChangeEvent();
554 + (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__.__privateRunCommandSync)('document/save/set-is-modified', {
555 + status: true
556 + }, {
557 + internal: true
558 + });
559 +}
560 +function dispatchChangeEvent() {
561 + window.dispatchEvent(new CustomEvent(_consts__WEBPACK_IMPORTED_MODULE_5__.ELEMENT_STYLE_CHANGE_EVENT));
562 +}
563 +
564 +/***/ }),
565 +
566 +/***/ "./packages/packages/libs/editor-elements/src/styles/update-element-style.ts":
567 +/*!***********************************************************************************!*\
568 + !*** ./packages/packages/libs/editor-elements/src/styles/update-element-style.ts ***!
569 + \***********************************************************************************/
570 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
571 +
572 +__webpack_require__.r(__webpack_exports__);
573 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
574 +/* harmony export */ updateElementStyle: function() { return /* binding */ updateElementStyle; }
575 +/* harmony export */ });
576 +/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-props */ "@elementor/editor-props");
577 +/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__);
578 +/* harmony import */ var _elementor_editor_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-styles */ "@elementor/editor-styles");
579 +/* harmony import */ var _elementor_editor_styles__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_styles__WEBPACK_IMPORTED_MODULE_1__);
580 +/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../errors */ "./packages/packages/libs/editor-elements/src/errors.ts");
581 +/* harmony import */ var _mutate_element_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mutate-element-styles */ "./packages/packages/libs/editor-elements/src/styles/mutate-element-styles.ts");
582 +
583 +
584 +
585 +
586 +function updateElementStyle(args) {
587 + (0,_mutate_element_styles__WEBPACK_IMPORTED_MODULE_3__.mutateElementStyles)(args.elementId, styles => {
588 + const style = styles[args.styleId];
589 + if (!style) {
590 + throw new _errors__WEBPACK_IMPORTED_MODULE_2__.StyleNotFoundError({
591 + context: {
592 + styleId: args.styleId
593 + }
594 + });
595 + }
596 + const variant = (0,_elementor_editor_styles__WEBPACK_IMPORTED_MODULE_1__.getVariantByMeta)(style, args.meta);
597 + const customCss = ('custom_css' in args ? args.custom_css : variant?.custom_css) ?? null;
598 + if (variant) {
599 + variant.props = (0,_elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__.mergeProps)(variant.props, args.props);
600 + variant.custom_css = customCss?.raw ? customCss : null;
601 + } else {
602 + style.variants.push({
603 + meta: args.meta,
604 + props: args.props,
605 + custom_css: customCss
606 + });
607 + }
608 + return styles;
609 + });
610 +}
611 +
612 +/***/ }),
613 +
614 +/***/ "./packages/packages/libs/editor-elements/src/sync/create-element.ts":
615 +/*!***************************************************************************!*\
616 + !*** ./packages/packages/libs/editor-elements/src/sync/create-element.ts ***!
617 + \***************************************************************************/
618 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
619 +
620 +__webpack_require__.r(__webpack_exports__);
621 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
622 +/* harmony export */ createElement: function() { return /* binding */ createElement; }
623 +/* harmony export */ });
624 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
625 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
626 +
627 +function createElement({
628 + container,
629 + model,
630 + options
631 +}) {
632 + return (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.__privateRunCommandSync)('document/elements/create', {
633 + container,
634 + model,
635 + options: {
636 + edit: false,
637 + ...options
638 + }
639 + });
640 +}
641 +
642 +/***/ }),
643 +
644 +/***/ "./packages/packages/libs/editor-elements/src/sync/create-elements.ts":
645 +/*!****************************************************************************!*\
646 + !*** ./packages/packages/libs/editor-elements/src/sync/create-elements.ts ***!
647 + \****************************************************************************/
648 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
649 +
650 +__webpack_require__.r(__webpack_exports__);
651 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
652 +/* harmony export */ createElements: function() { return /* binding */ createElements; }
653 +/* harmony export */ });
654 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
655 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
656 +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
657 +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
658 +/* harmony import */ var _create_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./create-element */ "./packages/packages/libs/editor-elements/src/sync/create-element.ts");
659 +/* harmony import */ var _delete_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./delete-element */ "./packages/packages/libs/editor-elements/src/sync/delete-element.ts");
660 +/* harmony import */ var _resolve_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./resolve-element */ "./packages/packages/libs/editor-elements/src/sync/resolve-element.ts");
661 +
662 +
663 +
664 +
665 +
666 +const createElements = ({
667 + elements,
668 + title,
669 + subtitle = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Item added', 'elementor')
670 +}) => {
671 + const undoableCreate = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.undoable)({
672 + do: ({
673 + elements: elementsParam
674 + }) => {
675 + const createdElements = [];
676 + elementsParam.forEach(({
677 + container,
678 + options,
679 + ...elementParams
680 + }) => {
681 + const parentContainer = container.lookup?.() ?? container;
682 + if (!parentContainer) {
683 + throw new Error('Parent container not found');
684 + }
685 + const element = (0,_create_element__WEBPACK_IMPORTED_MODULE_2__.createElement)({
686 + container: parentContainer,
687 + ...elementParams,
688 + options: {
689 + ...options,
690 + useHistory: false
691 + }
692 + });
693 + createdElements.push({
694 + container: element,
695 + parentContainer,
696 + model: element.model?.toJSON() || {},
697 + options,
698 + containerId: element.id,
699 + parentContainerId: parentContainer.id
700 + });
701 + });
702 + return {
703 + createdElements
704 + };
705 + },
706 + undo: (_, {
707 + createdElements
708 + }) => {
709 + [...createdElements].reverse().forEach(({
710 + container,
711 + containerId,
712 + parentContainerId
713 + }) => {
714 + const freshContainer = (0,_resolve_element__WEBPACK_IMPORTED_MODULE_4__.resolveContainer)(container, containerId);
715 + if (freshContainer) {
716 + (0,_delete_element__WEBPACK_IMPORTED_MODULE_3__.deleteElement)({
717 + container: freshContainer,
718 + options: {
719 + useHistory: false
720 + }
721 + });
722 + return;
723 + }
724 + (0,_resolve_element__WEBPACK_IMPORTED_MODULE_4__.removeModelFromParent)(parentContainerId, containerId);
725 + });
726 + },
727 + redo: (_, {
728 + createdElements
729 + }) => {
730 + const newElements = [];
731 + createdElements.forEach(({
732 + parentContainer,
733 + parentContainerId,
734 + model,
735 + options
736 + }) => {
737 + const freshParent = (0,_resolve_element__WEBPACK_IMPORTED_MODULE_4__.resolveContainer)(parentContainer, parentContainerId);
738 + if (freshParent) {
739 + const element = (0,_create_element__WEBPACK_IMPORTED_MODULE_2__.createElement)({
740 + container: freshParent,
741 + model,
742 + options: {
743 + ...options,
744 + useHistory: false
745 + }
746 + });
747 + newElements.push({
748 + container: element,
749 + parentContainer: freshParent,
750 + model: element.model.toJSON(),
751 + options,
752 + containerId: element.id,
753 + parentContainerId: freshParent.id
754 + });
755 + return;
756 + }
757 + (0,_resolve_element__WEBPACK_IMPORTED_MODULE_4__.addModelToParent)(parentContainerId, model);
758 + newElements.push({
759 + container: parentContainer,
760 + parentContainer,
761 + model,
762 + options,
763 + containerId: model.id ?? '',
764 + parentContainerId
765 + });
766 + });
767 + return {
768 + createdElements: newElements
769 + };
770 + }
771 + }, {
772 + title,
773 + subtitle
774 + });
775 + return undoableCreate({
776 + elements
777 + });
778 +};
779 +
780 +/***/ }),
781 +
782 +/***/ "./packages/packages/libs/editor-elements/src/sync/delete-element.ts":
783 +/*!***************************************************************************!*\
784 + !*** ./packages/packages/libs/editor-elements/src/sync/delete-element.ts ***!
785 + \***************************************************************************/
786 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
787 +
788 +__webpack_require__.r(__webpack_exports__);
789 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
790 +/* harmony export */ deleteElement: function() { return /* binding */ deleteElement; }
791 +/* harmony export */ });
792 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
793 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
794 +
795 +function deleteElement({
796 + container,
797 + options = {}
798 +}) {
799 + (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.__privateRunCommandSync)('document/elements/delete', {
800 + container,
801 + options
802 + });
803 +}
804 +
805 +/***/ }),
806 +
807 +/***/ "./packages/packages/libs/editor-elements/src/sync/drop-element.ts":
808 +/*!*************************************************************************!*\
809 + !*** ./packages/packages/libs/editor-elements/src/sync/drop-element.ts ***!
810 + \*************************************************************************/
811 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
812 +
813 +__webpack_require__.r(__webpack_exports__);
814 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
815 +/* harmony export */ dropElement: function() { return /* binding */ dropElement; }
816 +/* harmony export */ });
817 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
818 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
819 +/* harmony import */ var _get_container__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./get-container */ "./packages/packages/libs/editor-elements/src/sync/get-container.ts");
820 +
821 +
822 +function dropElement({
823 + containerId,
824 + model,
825 + options
826 +}) {
827 + const container = (0,_get_container__WEBPACK_IMPORTED_MODULE_1__.getContainer)(containerId);
828 + if (!container) {
829 + throw new Error(`Container with ID "${containerId}" not found`);
830 + }
831 + return (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.__privateRunCommandSync)('preview/drop', {
832 + container,
833 + model,
834 + options
835 + });
836 +}
837 +
838 +/***/ }),
839 +
840 +/***/ "./packages/packages/libs/editor-elements/src/sync/duplicate-element.ts":
841 +/*!******************************************************************************!*\
842 + !*** ./packages/packages/libs/editor-elements/src/sync/duplicate-element.ts ***!
843 + \******************************************************************************/
844 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
845 +
846 +__webpack_require__.r(__webpack_exports__);
847 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
848 +/* harmony export */ duplicateElement: function() { return /* binding */ duplicateElement; }
849 +/* harmony export */ });
850 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
851 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
852 +
853 +function duplicateElement({
854 + element,
855 + options = {}
856 +}) {
857 + const currentIndex = element.view?._index ?? 0;
858 + const insertPosition = options.clone !== false ? currentIndex + 1 : undefined;
859 + return (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.__privateRunCommandSync)('document/elements/duplicate', {
860 + container: element,
861 + options: {
862 + at: insertPosition,
863 + edit: false,
864 + ...options
865 + }
866 + });
867 +}
868 +
869 +/***/ }),
870 +
871 +/***/ "./packages/packages/libs/editor-elements/src/sync/duplicate-elements.ts":
872 +/*!*******************************************************************************!*\
873 + !*** ./packages/packages/libs/editor-elements/src/sync/duplicate-elements.ts ***!
874 + \*******************************************************************************/
875 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
876 +
877 +__webpack_require__.r(__webpack_exports__);
878 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
879 +/* harmony export */ duplicateElements: function() { return /* binding */ duplicateElements; }
880 +/* harmony export */ });
881 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
882 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
883 +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
884 +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
885 +/* harmony import */ var _create_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./create-element */ "./packages/packages/libs/editor-elements/src/sync/create-element.ts");
886 +/* harmony import */ var _delete_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./delete-element */ "./packages/packages/libs/editor-elements/src/sync/delete-element.ts");
887 +/* harmony import */ var _duplicate_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./duplicate-element */ "./packages/packages/libs/editor-elements/src/sync/duplicate-element.ts");
888 +/* harmony import */ var _get_container__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./get-container */ "./packages/packages/libs/editor-elements/src/sync/get-container.ts");
889 +/* harmony import */ var _resolve_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./resolve-element */ "./packages/packages/libs/editor-elements/src/sync/resolve-element.ts");
890 +
891 +
892 +
893 +
894 +
895 +
896 +
897 +const duplicateElements = ({
898 + elementIds,
899 + title,
900 + subtitle = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Item duplicated', 'elementor'),
901 + onDuplicateElements,
902 + onRestoreElements
903 +}) => {
904 + const undoableDuplicate = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.undoable)({
905 + do: ({
906 + elementIds: elementIdsToDuplicate
907 + }) => {
908 + onDuplicateElements?.();
909 + const duplicatedElements = [];
910 + elementIdsToDuplicate.forEach(elementId => {
911 + const originalContainer = (0,_get_container__WEBPACK_IMPORTED_MODULE_5__.getContainer)(elementId);
912 + if (!originalContainer?.parent) {
913 + return;
914 + }
915 + const duplicatedElement = (0,_duplicate_element__WEBPACK_IMPORTED_MODULE_4__.duplicateElement)({
916 + element: originalContainer,
917 + options: {
918 + useHistory: false
919 + }
920 + });
921 + if (!duplicatedElement.parent) {
922 + return;
923 + }
924 + duplicatedElements.push({
925 + container: duplicatedElement,
926 + parentContainer: duplicatedElement.parent,
927 + model: duplicatedElement.model.toJSON(),
928 + at: duplicatedElement.view?._index,
929 + containerId: duplicatedElement.id,
930 + parentContainerId: duplicatedElement.parent.id
931 + });
932 + });
933 + return {
934 + duplicatedElements
935 + };
936 + },
937 + undo: (_, {
938 + duplicatedElements
939 + }) => {
940 + onRestoreElements?.();
941 + [...duplicatedElements].reverse().forEach(({
942 + container,
943 + containerId,
944 + parentContainerId
945 + }) => {
946 + const freshContainer = (0,_resolve_element__WEBPACK_IMPORTED_MODULE_6__.resolveContainer)(container, containerId);
947 + if (freshContainer) {
948 + (0,_delete_element__WEBPACK_IMPORTED_MODULE_3__.deleteElement)({
949 + container: freshContainer,
950 + options: {
951 + useHistory: false
952 + }
953 + });
954 + return;
955 + }
956 + (0,_resolve_element__WEBPACK_IMPORTED_MODULE_6__.removeModelFromParent)(parentContainerId, containerId);
957 + });
958 + },
959 + redo: (_, {
960 + duplicatedElements: previousElements
961 + }) => {
962 + onDuplicateElements?.();
963 + const duplicatedElements = [];
964 + previousElements.forEach(({
965 + parentContainer,
966 + parentContainerId,
967 + model,
968 + at
969 + }) => {
970 + const freshParent = (0,_resolve_element__WEBPACK_IMPORTED_MODULE_6__.resolveContainer)(parentContainer, parentContainerId);
971 + if (freshParent) {
972 + const createdElement = (0,_create_element__WEBPACK_IMPORTED_MODULE_2__.createElement)({
973 + container: freshParent,
974 + model,
975 + options: {
976 + useHistory: false,
977 + clone: false,
978 + at
979 + }
980 + });
981 + duplicatedElements.push({
982 + container: createdElement,
983 + parentContainer: freshParent,
984 + model,
985 + at,
986 + containerId: createdElement.id,
987 + parentContainerId: freshParent.id
988 + });
989 + return;
990 + }
991 + (0,_resolve_element__WEBPACK_IMPORTED_MODULE_6__.addModelToParent)(parentContainerId, model, {
992 + at
993 + });
994 + duplicatedElements.push({
995 + container: parentContainer,
996 + parentContainer,
997 + model,
998 + at,
999 + containerId: model.id ?? '',
1000 + parentContainerId
1001 + });
1002 + });
1003 + return {
1004 + duplicatedElements
1005 + };
1006 + }
1007 + }, {
1008 + title,
1009 + subtitle
1010 + });
1011 + return undoableDuplicate({
1012 + elementIds
1013 + });
1014 +};
1015 +
1016 +/***/ }),
1017 +
1018 +/***/ "./packages/packages/libs/editor-elements/src/sync/generate-element-id.ts":
1019 +/*!********************************************************************************!*\
1020 + !*** ./packages/packages/libs/editor-elements/src/sync/generate-element-id.ts ***!
1021 + \********************************************************************************/
1022 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1023 +
1024 +__webpack_require__.r(__webpack_exports__);
1025 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1026 +/* harmony export */ generateElementId: function() { return /* binding */ generateElementId; }
1027 +/* harmony export */ });
1028 +const generateElementId = () => {
1029 + const extendedWindow = window;
1030 + return extendedWindow.elementorCommon?.helpers?.getUniqueId?.() ?? `el-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
1031 +};
1032 +
1033 +/***/ }),
1034 +
1035 +/***/ "./packages/packages/libs/editor-elements/src/sync/get-all-descendants.ts":
1036 +/*!********************************************************************************!*\
1037 + !*** ./packages/packages/libs/editor-elements/src/sync/get-all-descendants.ts ***!
1038 + \********************************************************************************/
1039 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1040 +
1041 +__webpack_require__.r(__webpack_exports__);
1042 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1043 +/* harmony export */ getAllDescendants: function() { return /* binding */ getAllDescendants; }
1044 +/* harmony export */ });
1045 +function getAllDescendants(container) {
1046 + const children = (container.children ?? []).flatMap(child => getAllDescendants(child));
1047 + return [container, ...children];
1048 +}
1049 +
1050 +/***/ }),
1051 +
1052 +/***/ "./packages/packages/libs/editor-elements/src/sync/get-container.ts":
1053 +/*!**************************************************************************!*\
1054 + !*** ./packages/packages/libs/editor-elements/src/sync/get-container.ts ***!
1055 + \**************************************************************************/
1056 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1057 +
1058 +__webpack_require__.r(__webpack_exports__);
1059 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1060 +/* harmony export */ getContainer: function() { return /* binding */ getContainer; },
1061 +/* harmony export */ selectElement: function() { return /* binding */ selectElement; }
1062 +/* harmony export */ });
1063 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
1064 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
1065 +
1066 +function getContainer(id) {
1067 + const extendedWindow = window;
1068 + const container = extendedWindow.elementor?.getContainer?.(id);
1069 + return container ?? null;
1070 +}
1071 +const selectElement = elementId => {
1072 + try {
1073 + const container = getContainer(elementId);
1074 + (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.__privateRunCommand)('document/elements/select', {
1075 + container
1076 + });
1077 + } catch {}
1078 +};
1079 +
1080 +/***/ }),
1081 +
1082 +/***/ "./packages/packages/libs/editor-elements/src/sync/get-current-document-container.ts":
1083 +/*!*******************************************************************************************!*\
1084 + !*** ./packages/packages/libs/editor-elements/src/sync/get-current-document-container.ts ***!
1085 + \*******************************************************************************************/
1086 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1087 +
1088 +__webpack_require__.r(__webpack_exports__);
1089 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1090 +/* harmony export */ getCurrentDocumentContainer: function() { return /* binding */ getCurrentDocumentContainer; }
1091 +/* harmony export */ });
1092 +function getCurrentDocumentContainer() {
1093 + const extendedWindow = window;
1094 + return extendedWindow.elementor?.documents?.getCurrent?.()?.container ?? null;
1095 +}
1096 +
1097 +/***/ }),
1098 +
1099 +/***/ "./packages/packages/libs/editor-elements/src/sync/get-current-document-id.ts":
1100 +/*!************************************************************************************!*\
1101 + !*** ./packages/packages/libs/editor-elements/src/sync/get-current-document-id.ts ***!
1102 + \************************************************************************************/
1103 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1104 +
1105 +__webpack_require__.r(__webpack_exports__);
1106 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1107 +/* harmony export */ getCurrentDocumentId: function() { return /* binding */ getCurrentDocumentId; }
1108 +/* harmony export */ });
1109 +function getCurrentDocumentId() {
1110 + const extendedWindow = window;
1111 + try {
1112 + return extendedWindow.elementor?.documents?.getCurrentId?.() ?? null;
1113 + } catch {
1114 + return null;
1115 + }
1116 +}
1117 +
1118 +/***/ }),
1119 +
1120 +/***/ "./packages/packages/libs/editor-elements/src/sync/get-element-editor-settings.ts":
1121 +/*!****************************************************************************************!*\
1122 + !*** ./packages/packages/libs/editor-elements/src/sync/get-element-editor-settings.ts ***!
1123 + \****************************************************************************************/
1124 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1125 +
1126 +__webpack_require__.r(__webpack_exports__);
1127 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1128 +/* harmony export */ getElementEditorSettings: function() { return /* binding */ getElementEditorSettings; }
1129 +/* harmony export */ });
1130 +/* harmony import */ var _get_container__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./get-container */ "./packages/packages/libs/editor-elements/src/sync/get-container.ts");
1131 +
1132 +function getElementEditorSettings(elementId) {
1133 + const container = (0,_get_container__WEBPACK_IMPORTED_MODULE_0__.getContainer)(elementId);
1134 + return container?.model.get('editor_settings') ?? {};
1135 +}
1136 +
1137 +/***/ }),
1138 +
1139 +/***/ "./packages/packages/libs/editor-elements/src/sync/get-element-interactions.ts":
1140 +/*!*************************************************************************************!*\
1141 + !*** ./packages/packages/libs/editor-elements/src/sync/get-element-interactions.ts ***!
1142 + \*************************************************************************************/
1143 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1144 +
1145 +__webpack_require__.r(__webpack_exports__);
1146 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1147 +/* harmony export */ getElementInteractions: function() { return /* binding */ getElementInteractions; }
1148 +/* harmony export */ });
1149 +/* harmony import */ var _get_container__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./get-container */ "./packages/packages/libs/editor-elements/src/sync/get-container.ts");
1150 +
1151 +function getElementInteractions(elementId) {
1152 + const container = (0,_get_container__WEBPACK_IMPORTED_MODULE_0__.getContainer)(elementId);
1153 + const interactions = container?.model?.get('interactions');
1154 + if (typeof interactions === 'string') {
1155 + return JSON.parse(interactions);
1156 + }
1157 + return interactions;
1158 +}
1159 +
1160 +/***/ }),
1161 +
1162 +/***/ "./packages/packages/libs/editor-elements/src/sync/get-element-label.ts":
1163 +/*!******************************************************************************!*\
1164 + !*** ./packages/packages/libs/editor-elements/src/sync/get-element-label.ts ***!
1165 + \******************************************************************************/
1166 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1167 +
1168 +__webpack_require__.r(__webpack_exports__);
1169 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1170 +/* harmony export */ getElementLabel: function() { return /* binding */ getElementLabel; }
1171 +/* harmony export */ });
1172 +/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../errors */ "./packages/packages/libs/editor-elements/src/errors.ts");
1173 +/* harmony import */ var _sync_get_container__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../sync/get-container */ "./packages/packages/libs/editor-elements/src/sync/get-container.ts");
1174 +/* harmony import */ var _sync_get_widgets_cache__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../sync/get-widgets-cache */ "./packages/packages/libs/editor-elements/src/sync/get-widgets-cache.ts");
1175 +/* harmony import */ var _get_selected_elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./get-selected-elements */ "./packages/packages/libs/editor-elements/src/sync/get-selected-elements.ts");
1176 +
1177 +
1178 +
1179 +
1180 +function getElementLabel(elementId) {
1181 + if (!elementId) {
1182 + elementId = (0,_get_selected_elements__WEBPACK_IMPORTED_MODULE_3__.getSelectedElements)()?.[0]?.id;
1183 + }
1184 + const container = (0,_sync_get_container__WEBPACK_IMPORTED_MODULE_1__.getContainer)(elementId);
1185 + const type = container?.model.get('widgetType') || container?.model.get('elType');
1186 + if (!type) {
1187 + throw new _errors__WEBPACK_IMPORTED_MODULE_0__.ElementTypeNotExistsError({
1188 + context: {
1189 + elementId
1190 + }
1191 + });
1192 + }
1193 + const label = (0,_sync_get_widgets_cache__WEBPACK_IMPORTED_MODULE_2__.getWidgetsCache)()?.[type]?.title;
1194 + if (!label) {
1195 + throw new _errors__WEBPACK_IMPORTED_MODULE_0__.ElementLabelNotExistsError({
1196 + context: {
1197 + elementType: type
1198 + }
1199 + });
1200 + }
1201 + return label;
1202 +}
1203 +
1204 +/***/ }),
1205 +
1206 +/***/ "./packages/packages/libs/editor-elements/src/sync/get-element-setting.ts":
1207 +/*!********************************************************************************!*\
1208 + !*** ./packages/packages/libs/editor-elements/src/sync/get-element-setting.ts ***!
1209 + \********************************************************************************/
1210 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1211 +
1212 +__webpack_require__.r(__webpack_exports__);
1213 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1214 +/* harmony export */ getElementSetting: function() { return /* binding */ getElementSetting; },
1215 +/* harmony export */ getElementSettings: function() { return /* binding */ getElementSettings; }
1216 +/* harmony export */ });
1217 +/* harmony import */ var _get_container__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./get-container */ "./packages/packages/libs/editor-elements/src/sync/get-container.ts");
1218 +
1219 +const getElementSetting = (elementId, settingKey) => {
1220 + const container = (0,_get_container__WEBPACK_IMPORTED_MODULE_0__.getContainer)(elementId);
1221 + return container?.settings?.get(settingKey) ?? null;
1222 +};
1223 +const getElementSettings = (elementId, settingKey) => {
1224 + return Object.fromEntries(settingKey.map(key => [key, getElementSetting(elementId, key)]));
1225 +};
1226 +
1227 +/***/ }),
1228 +
1229 +/***/ "./packages/packages/libs/editor-elements/src/sync/get-element-styles.ts":
1230 +/*!*******************************************************************************!*\
1231 + !*** ./packages/packages/libs/editor-elements/src/sync/get-element-styles.ts ***!
1232 + \*******************************************************************************/
1233 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1234 +
1235 +__webpack_require__.r(__webpack_exports__);
1236 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1237 +/* harmony export */ getElementStyles: function() { return /* binding */ getElementStyles; }
1238 +/* harmony export */ });
1239 +/* harmony import */ var _get_container__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./get-container */ "./packages/packages/libs/editor-elements/src/sync/get-container.ts");
1240 +
1241 +const getElementStyles = elementID => {
1242 + const container = (0,_get_container__WEBPACK_IMPORTED_MODULE_0__.getContainer)(elementID);
1243 + return container?.model.get('styles') || null;
1244 +};
1245 +
1246 +/***/ }),
1247 +
1248 +/***/ "./packages/packages/libs/editor-elements/src/sync/get-element-type.ts":
1249 +/*!*****************************************************************************!*\
1250 + !*** ./packages/packages/libs/editor-elements/src/sync/get-element-type.ts ***!
1251 + \*****************************************************************************/
1252 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1253 +
1254 +__webpack_require__.r(__webpack_exports__);
1255 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1256 +/* harmony export */ getElementType: function() { return /* binding */ getElementType; }
1257 +/* harmony export */ });
1258 +/* harmony import */ var _get_widgets_cache__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./get-widgets-cache */ "./packages/packages/libs/editor-elements/src/sync/get-widgets-cache.ts");
1259 +
1260 +function getElementType(type) {
1261 + if (!type) {
1262 + return null;
1263 + }
1264 + const widgetsCache = (0,_get_widgets_cache__WEBPACK_IMPORTED_MODULE_0__.getWidgetsCache)();
1265 + const elementType = widgetsCache?.[type];
1266 + if (!elementType?.atomic_controls) {
1267 + return null;
1268 + }
1269 + if (!elementType?.atomic_props_schema) {
1270 + return null;
1271 + }
1272 + return {
1273 + key: type,
1274 + controls: elementType.atomic_controls,
1275 + propsSchema: elementType.atomic_props_schema,
1276 + dependenciesPerTargetMapping: elementType.dependencies_per_target_mapping ?? {},
1277 + title: elementType.title,
1278 + styleStates: elementType.atomic_style_states ?? [],
1279 + pseudoStates: elementType.atomic_pseudo_states ?? []
1280 + };
1281 +}
1282 +
1283 +/***/ }),
1284 +
1285 +/***/ "./packages/packages/libs/editor-elements/src/sync/get-elements.ts":
1286 +/*!*************************************************************************!*\
1287 + !*** ./packages/packages/libs/editor-elements/src/sync/get-elements.ts ***!
1288 + \*************************************************************************/
1289 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1290 +
1291 +__webpack_require__.r(__webpack_exports__);
1292 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1293 +/* harmony export */ getElements: function() { return /* binding */ getElements; }
1294 +/* harmony export */ });
1295 +/* harmony import */ var _get_container__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./get-container */ "./packages/packages/libs/editor-elements/src/sync/get-container.ts");
1296 +/* harmony import */ var _get_current_document_container__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./get-current-document-container */ "./packages/packages/libs/editor-elements/src/sync/get-current-document-container.ts");
1297 +
1298 +
1299 +function getElements(root) {
1300 + const container = root ? (0,_get_container__WEBPACK_IMPORTED_MODULE_0__.getContainer)(root) : (0,_get_current_document_container__WEBPACK_IMPORTED_MODULE_1__.getCurrentDocumentContainer)();
1301 + if (!container) {
1302 + return [];
1303 + }
1304 + const children = [...(container.model.get('elements') ?? [])].flatMap(childModel => getElements(childModel.get('id')));
1305 + return [container, ...children];
1306 +}
1307 +
1308 +/***/ }),
1309 +
1310 +/***/ "./packages/packages/libs/editor-elements/src/sync/get-selected-elements.ts":
1311 +/*!**********************************************************************************!*\
1312 + !*** ./packages/packages/libs/editor-elements/src/sync/get-selected-elements.ts ***!
1313 + \**********************************************************************************/
1314 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1315 +
1316 +__webpack_require__.r(__webpack_exports__);
1317 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1318 +/* harmony export */ getSelectedElement: function() { return /* binding */ getSelectedElement; },
1319 +/* harmony export */ getSelectedElements: function() { return /* binding */ getSelectedElements; }
1320 +/* harmony export */ });
1321 +/* harmony import */ var _get_element_type__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./get-element-type */ "./packages/packages/libs/editor-elements/src/sync/get-element-type.ts");
1322 +
1323 +function getSelectedElements() {
1324 + const extendedWindow = window;
1325 + const selectedElements = extendedWindow.elementor?.selection?.getElements?.() ?? [];
1326 + return selectedElements.reduce((acc, el) => {
1327 + const type = el.model.get('widgetType') || el.model.get('elType');
1328 + if (type) {
1329 + acc.push({
1330 + id: el.model.get('id'),
1331 + type
1332 + });
1333 + }
1334 + return acc;
1335 + }, []);
1336 +}
1337 +function getSelectedElement() {
1338 + const elements = getSelectedElements();
1339 + const [element] = elements;
1340 + const elementType = (0,_get_element_type__WEBPACK_IMPORTED_MODULE_0__.getElementType)(element?.type);
1341 + if (elements.length !== 1 || !elementType || !element) {
1342 + return {
1343 + element: null,
1344 + elementType: null
1345 + };
1346 + }
1347 + return {
1348 + element,
1349 + elementType
1350 + };
1351 +}
1352 +
1353 +/***/ }),
1354 +
1355 +/***/ "./packages/packages/libs/editor-elements/src/sync/get-widgets-cache.ts":
1356 +/*!******************************************************************************!*\
1357 + !*** ./packages/packages/libs/editor-elements/src/sync/get-widgets-cache.ts ***!
1358 + \******************************************************************************/
1359 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1360 +
1361 +__webpack_require__.r(__webpack_exports__);
1362 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1363 +/* harmony export */ getWidgetsCache: function() { return /* binding */ getWidgetsCache; }
1364 +/* harmony export */ });
1365 +function getWidgetsCache() {
1366 + const extendedWindow = window;
1367 + return extendedWindow?.elementor?.widgetsCache || null;
1368 +}
1369 +
1370 +/***/ }),
1371 +
1372 +/***/ "./packages/packages/libs/editor-elements/src/sync/model-utils.ts":
1373 +/*!************************************************************************!*\
1374 + !*** ./packages/packages/libs/editor-elements/src/sync/model-utils.ts ***!
1375 + \************************************************************************/
1376 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1377 +
1378 +__webpack_require__.r(__webpack_exports__);
1379 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1380 +/* harmony export */ findChildRecursive: function() { return /* binding */ findChildRecursive; },
1381 +/* harmony export */ getElementChildren: function() { return /* binding */ getElementChildren; }
1382 +/* harmony export */ });
1383 +function findChildRecursive(model, predicate) {
1384 + const childModels = model.get('elements') ?? [];
1385 + for (const childModel of childModels) {
1386 + if (predicate(childModel)) {
1387 + return {
1388 + model: childModel
1389 + };
1390 + }
1391 + const found = findChildRecursive(childModel, predicate);
1392 + if (found) {
1393 + return found;
1394 + }
1395 + }
1396 + return null;
1397 +}
1398 +function getElementChildren(model, predicate) {
1399 + const childModels = model.get('elements') ?? [];
1400 + return childModels.filter(childModel => !predicate || predicate(childModel)).map(childModel => ({
1401 + model: childModel
1402 + }));
1403 +}
1404 +
1405 +/***/ }),
1406 +
1407 +/***/ "./packages/packages/libs/editor-elements/src/sync/move-element.ts":
1408 +/*!*************************************************************************!*\
1409 + !*** ./packages/packages/libs/editor-elements/src/sync/move-element.ts ***!
1410 + \*************************************************************************/
1411 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1412 +
1413 +__webpack_require__.r(__webpack_exports__);
1414 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1415 +/* harmony export */ moveElement: function() { return /* binding */ moveElement; }
1416 +/* harmony export */ });
1417 +/* harmony import */ var _create_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-element */ "./packages/packages/libs/editor-elements/src/sync/create-element.ts");
1418 +/* harmony import */ var _delete_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./delete-element */ "./packages/packages/libs/editor-elements/src/sync/delete-element.ts");
1419 +
1420 +
1421 +function moveElement({
1422 + element,
1423 + targetContainer,
1424 + options = {}
1425 +}) {
1426 + const resolvedElement = element.lookup?.();
1427 + const resolvedTarget = targetContainer.lookup?.();
1428 + if (!resolvedElement) {
1429 + throw new Error(`Element not found: ${element.id}`);
1430 + }
1431 + if (!resolvedTarget) {
1432 + throw new Error(`Target container not found: ${targetContainer.id}`);
1433 + }
1434 + const modelToRecreate = resolvedElement.model.toJSON();
1435 + (0,_delete_element__WEBPACK_IMPORTED_MODULE_1__.deleteElement)({
1436 + container: resolvedElement,
1437 + options: {
1438 + ...options,
1439 + useHistory: false
1440 + }
1441 + });
1442 + const newContainer = (0,_create_element__WEBPACK_IMPORTED_MODULE_0__.createElement)({
1443 + container: resolvedTarget,
1444 + model: modelToRecreate,
1445 + options: {
1446 + edit: false,
1447 + ...options,
1448 + useHistory: false
1449 + }
1450 + });
1451 + return newContainer;
1452 +}
1453 +
1454 +/***/ }),
1455 +
1456 +/***/ "./packages/packages/libs/editor-elements/src/sync/move-elements.ts":
1457 +/*!**************************************************************************!*\
1458 + !*** ./packages/packages/libs/editor-elements/src/sync/move-elements.ts ***!
1459 + \**************************************************************************/
1460 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1461 +
1462 +__webpack_require__.r(__webpack_exports__);
1463 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1464 +/* harmony export */ moveElements: function() { return /* binding */ moveElements; }
1465 +/* harmony export */ });
1466 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
1467 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
1468 +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1469 +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
1470 +/* harmony import */ var _move_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./move-element */ "./packages/packages/libs/editor-elements/src/sync/move-element.ts");
1471 +/* harmony import */ var _resolve_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./resolve-element */ "./packages/packages/libs/editor-elements/src/sync/resolve-element.ts");
1472 +
1473 +
1474 +
1475 +
1476 +const moveElements = ({
1477 + moves: movesToMake,
1478 + title,
1479 + subtitle = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Elements moved', 'elementor'),
1480 + onMoveElements,
1481 + onRestoreElements
1482 +}) => {
1483 + const undoableMove = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.undoable)({
1484 + do: ({
1485 + moves
1486 + }) => {
1487 + const movedElements = [];
1488 + onMoveElements?.();
1489 + moves.forEach(({
1490 + element,
1491 + targetContainer,
1492 + options
1493 + }) => {
1494 + const sourceElement = element.lookup?.() ?? element;
1495 + const target = targetContainer.lookup?.() ?? targetContainer;
1496 + if (!sourceElement) {
1497 + throw new Error('Element not found');
1498 + }
1499 + if (!target) {
1500 + throw new Error('Target container not found');
1501 + }
1502 + if (!sourceElement.parent) {
1503 + throw new Error('Element has no parent container');
1504 + }
1505 + const originalContainer = sourceElement.parent;
1506 + const originalIndex = originalContainer.children?.indexOf(sourceElement) ?? -1;
1507 + const newElement = (0,_move_element__WEBPACK_IMPORTED_MODULE_2__.moveElement)({
1508 + element: sourceElement,
1509 + targetContainer: target,
1510 + options: {
1511 + ...options,
1512 + useHistory: false
1513 + }
1514 + });
1515 + movedElements.push({
1516 + element: newElement,
1517 + originalContainer,
1518 + originalIndex,
1519 + targetContainer: target,
1520 + options,
1521 + elementId: newElement.id,
1522 + originalContainerId: originalContainer.id,
1523 + targetContainerId: target.id
1524 + });
1525 + });
1526 + return {
1527 + movedElements
1528 + };
1529 + },
1530 + undo: (_, {
1531 + movedElements
1532 + }) => {
1533 + onRestoreElements?.();
1534 +
1535 + // Fallback for async-rendered nested elements whose views may not exist yet (ED-22825).
1536 + [...movedElements].reverse().forEach(({
1537 + element,
1538 + elementId,
1539 + originalContainer,
1540 + originalContainerId,
1541 + originalIndex
1542 + }) => {
1543 + const freshElement = (0,_resolve_element__WEBPACK_IMPORTED_MODULE_3__.resolveContainer)(element, elementId);
1544 + const freshOriginalContainer = (0,_resolve_element__WEBPACK_IMPORTED_MODULE_3__.resolveContainer)(originalContainer, originalContainerId);
1545 + if (!freshElement || !freshOriginalContainer) {
1546 + return;
1547 + }
1548 + (0,_move_element__WEBPACK_IMPORTED_MODULE_2__.moveElement)({
1549 + element: freshElement,
1550 + targetContainer: freshOriginalContainer,
1551 + options: {
1552 + useHistory: false,
1553 + at: originalIndex >= 0 ? originalIndex : undefined
1554 + }
1555 + });
1556 + });
1557 + },
1558 + redo: (_, {
1559 + movedElements
1560 + }) => {
1561 + const newMovedElements = [];
1562 + onMoveElements?.();
1563 + movedElements.forEach(({
1564 + element,
1565 + elementId,
1566 + originalContainer,
1567 + originalContainerId,
1568 + originalIndex,
1569 + targetContainer,
1570 + targetContainerId,
1571 + options
1572 + }) => {
1573 + const freshElement = (0,_resolve_element__WEBPACK_IMPORTED_MODULE_3__.resolveContainer)(element, elementId);
1574 + const freshOriginalContainer = (0,_resolve_element__WEBPACK_IMPORTED_MODULE_3__.resolveContainer)(originalContainer, originalContainerId);
1575 + const freshTarget = (0,_resolve_element__WEBPACK_IMPORTED_MODULE_3__.resolveContainer)(targetContainer, targetContainerId);
1576 + if (!freshElement || !freshOriginalContainer || !freshTarget) {
1577 + return;
1578 + }
1579 + const newElement = (0,_move_element__WEBPACK_IMPORTED_MODULE_2__.moveElement)({
1580 + element: freshElement,
1581 + targetContainer: freshTarget,
1582 + options: {
1583 + ...options,
1584 + useHistory: false
1585 + }
1586 + });
1587 + newMovedElements.push({
1588 + element: newElement,
1589 + originalContainer: freshOriginalContainer,
1590 + originalIndex,
1591 + targetContainer: freshTarget,
1592 + options,
1593 + elementId: newElement.id,
1594 + originalContainerId: freshOriginalContainer.id,
1595 + targetContainerId: freshTarget.id
1596 + });
1597 + });
1598 + return {
1599 + movedElements: newMovedElements
1600 + };
1601 + }
1602 + }, {
1603 + title,
1604 + subtitle
1605 + });
1606 + return undoableMove({
1607 + moves: movesToMake
1608 + });
1609 +};
1610 +
1611 +/***/ }),
1612 +
1613 +/***/ "./packages/packages/libs/editor-elements/src/sync/remove-elements.ts":
1614 +/*!****************************************************************************!*\
1615 + !*** ./packages/packages/libs/editor-elements/src/sync/remove-elements.ts ***!
1616 + \****************************************************************************/
1617 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1618 +
1619 +__webpack_require__.r(__webpack_exports__);
1620 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1621 +/* harmony export */ removeElements: function() { return /* binding */ removeElements; }
1622 +/* harmony export */ });
1623 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
1624 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
1625 +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1626 +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
1627 +/* harmony import */ var _create_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./create-element */ "./packages/packages/libs/editor-elements/src/sync/create-element.ts");
1628 +/* harmony import */ var _delete_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./delete-element */ "./packages/packages/libs/editor-elements/src/sync/delete-element.ts");
1629 +/* harmony import */ var _get_container__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./get-container */ "./packages/packages/libs/editor-elements/src/sync/get-container.ts");
1630 +/* harmony import */ var _resolve_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./resolve-element */ "./packages/packages/libs/editor-elements/src/sync/resolve-element.ts");
1631 +
1632 +
1633 +
1634 +
1635 +
1636 +
1637 +const removeElements = ({
1638 + elementIds,
1639 + title,
1640 + subtitle = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Item removed', 'elementor'),
1641 + onRemoveElements,
1642 + onRestoreElements
1643 +}) => {
1644 + const undoableRemove = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.undoable)({
1645 + do: ({
1646 + elementIds: elementIdsParam
1647 + }) => {
1648 + const removedElements = [];
1649 + elementIdsParam.forEach(elementId => {
1650 + const container = (0,_get_container__WEBPACK_IMPORTED_MODULE_4__.getContainer)(elementId);
1651 + if (container?.parent) {
1652 + removedElements.push({
1653 + container,
1654 + parent: container.parent,
1655 + model: container.model.toJSON(),
1656 + at: container.view?._index ?? 0,
1657 + containerId: container.id,
1658 + parentId: container.parent.id
1659 + });
1660 + }
1661 + });
1662 + onRemoveElements?.();
1663 + removedElements.forEach(({
1664 + container
1665 + }) => {
1666 + (0,_delete_element__WEBPACK_IMPORTED_MODULE_3__.deleteElement)({
1667 + container,
1668 + options: {
1669 + useHistory: false
1670 + }
1671 + });
1672 + });
1673 + return {
1674 + removedElements
1675 + };
1676 + },
1677 + undo: (_, {
1678 + removedElements
1679 + }) => {
1680 + onRestoreElements?.();
1681 + [...removedElements].reverse().forEach(({
1682 + parent,
1683 + parentId,
1684 + model,
1685 + at
1686 + }) => {
1687 + const freshParent = (0,_resolve_element__WEBPACK_IMPORTED_MODULE_5__.resolveContainer)(parent, parentId);
1688 + if (freshParent) {
1689 + (0,_create_element__WEBPACK_IMPORTED_MODULE_2__.createElement)({
1690 + container: freshParent,
1691 + model,
1692 + options: {
1693 + useHistory: false,
1694 + at
1695 + }
1696 + });
1697 + return;
1698 + }
1699 + (0,_resolve_element__WEBPACK_IMPORTED_MODULE_5__.addModelToParent)(parentId, model, {
1700 + at
1701 + });
1702 + });
1703 + },
1704 + redo: (_, {
1705 + removedElements
1706 + }) => {
1707 + onRemoveElements?.();
1708 + const newRemovedElements = [];
1709 + removedElements.forEach(({
1710 + container,
1711 + parent,
1712 + model,
1713 + at,
1714 + containerId,
1715 + parentId
1716 + }) => {
1717 + const freshContainer = (0,_resolve_element__WEBPACK_IMPORTED_MODULE_5__.resolveContainer)(container, containerId);
1718 + const freshParent = (0,_resolve_element__WEBPACK_IMPORTED_MODULE_5__.resolveContainer)(parent, parentId);
1719 + if (freshContainer && freshParent) {
1720 + (0,_delete_element__WEBPACK_IMPORTED_MODULE_3__.deleteElement)({
1721 + container: freshContainer,
1722 + options: {
1723 + useHistory: false
1724 + }
1725 + });
1726 + newRemovedElements.push({
1727 + container: freshContainer,
1728 + parent: freshParent,
1729 + model,
1730 + at,
1731 + containerId,
1732 + parentId
1733 + });
1734 + return;
1735 + }
1736 + (0,_resolve_element__WEBPACK_IMPORTED_MODULE_5__.removeModelFromParent)(parentId, containerId);
1737 + newRemovedElements.push({
1738 + container,
1739 + parent,
1740 + model,
1741 + at,
1742 + containerId,
1743 + parentId
1744 + });
1745 + });
1746 + return {
1747 + removedElements: newRemovedElements
1748 + };
1749 + }
1750 + }, {
1751 + title,
1752 + subtitle
1753 + });
1754 + return undoableRemove({
1755 + elementIds
1756 + });
1757 +};
1758 +
1759 +/***/ }),
1760 +
1761 +/***/ "./packages/packages/libs/editor-elements/src/sync/replace-element.ts":
1762 +/*!****************************************************************************!*\
1763 + !*** ./packages/packages/libs/editor-elements/src/sync/replace-element.ts ***!
1764 + \****************************************************************************/
1765 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1766 +
1767 +__webpack_require__.r(__webpack_exports__);
1768 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1769 +/* harmony export */ replaceElement: function() { return /* binding */ replaceElement; }
1770 +/* harmony export */ });
1771 +/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../errors */ "./packages/packages/libs/editor-elements/src/errors.ts");
1772 +/* harmony import */ var _create_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./create-element */ "./packages/packages/libs/editor-elements/src/sync/create-element.ts");
1773 +/* harmony import */ var _delete_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./delete-element */ "./packages/packages/libs/editor-elements/src/sync/delete-element.ts");
1774 +/* harmony import */ var _get_container__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./get-container */ "./packages/packages/libs/editor-elements/src/sync/get-container.ts");
1775 +
1776 +
1777 +
1778 +
1779 +const replaceElement = ({
1780 + currentElementId,
1781 + newElement,
1782 + withHistory = true
1783 +}) => {
1784 + const currentElementContainer = (0,_get_container__WEBPACK_IMPORTED_MODULE_3__.getContainer)(currentElementId);
1785 + if (!currentElementContainer) {
1786 + throw new _errors__WEBPACK_IMPORTED_MODULE_0__.ElementNotFoundError({
1787 + context: {
1788 + elementId: currentElementId
1789 + }
1790 + });
1791 + }
1792 + const {
1793 + container,
1794 + index
1795 + } = getNewElementContainer(currentElementContainer, newElement);
1796 + const newElementInstance = (0,_create_element__WEBPACK_IMPORTED_MODULE_1__.createElement)({
1797 + container,
1798 + model: newElement,
1799 + options: {
1800 + at: index,
1801 + useHistory: withHistory
1802 + }
1803 + });
1804 + (0,_delete_element__WEBPACK_IMPORTED_MODULE_2__.deleteElement)({
1805 + container: currentElementContainer,
1806 + options: {
1807 + useHistory: withHistory
1808 + }
1809 + });
1810 + return newElementInstance;
1811 +};
1812 +function getNewElementContainer(currentElementContainer, newElement) {
1813 + const {
1814 + parent
1815 + } = currentElementContainer;
1816 + if (!parent) {
1817 + throw new _errors__WEBPACK_IMPORTED_MODULE_0__.ElementParentNotFoundError({
1818 + context: {
1819 + elementId: currentElementContainer.id
1820 + }
1821 + });
1822 + }
1823 + const elementIndex = currentElementContainer.view?._index ?? 0;
1824 + if (elementIndex === -1) {
1825 + throw new _errors__WEBPACK_IMPORTED_MODULE_0__.ElementIndexNotFoundError({
1826 + context: {
1827 + elementId: currentElementContainer.id
1828 + }
1829 + });
1830 + }
1831 + let location = {
1832 + container: parent,
1833 + index: elementIndex
1834 + };
1835 + if (parent.id === 'document' && newElement.elType === 'widget') {
1836 + location = createWrapperForWidget(parent, elementIndex);
1837 + }
1838 + return location;
1839 +}
1840 +const DEFAULT_CONTAINER_TYPE = 'e-flexbox';
1841 +function createWrapperForWidget(parent, elementIndex) {
1842 + const container = (0,_create_element__WEBPACK_IMPORTED_MODULE_1__.createElement)({
1843 + container: parent,
1844 + model: {
1845 + elType: DEFAULT_CONTAINER_TYPE
1846 + },
1847 + options: {
1848 + at: elementIndex,
1849 + useHistory: false
1850 + }
1851 + });
1852 + return {
1853 + container,
1854 + index: 0
1855 + };
1856 +}
1857 +
1858 +/***/ }),
1859 +
1860 +/***/ "./packages/packages/libs/editor-elements/src/sync/resolve-element.ts":
1861 +/*!****************************************************************************!*\
1862 + !*** ./packages/packages/libs/editor-elements/src/sync/resolve-element.ts ***!
1863 + \****************************************************************************/
1864 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1865 +
1866 +__webpack_require__.r(__webpack_exports__);
1867 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1868 +/* harmony export */ addModelToParent: function() { return /* binding */ addModelToParent; },
1869 +/* harmony export */ findModelInDocument: function() { return /* binding */ findModelInDocument; },
1870 +/* harmony export */ removeModelFromParent: function() { return /* binding */ removeModelFromParent; },
1871 +/* harmony export */ resolveContainer: function() { return /* binding */ resolveContainer; }
1872 +/* harmony export */ });
1873 +/* harmony import */ var _get_container__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./get-container */ "./packages/packages/libs/editor-elements/src/sync/get-container.ts");
1874 +
1875 +function isConnected(container) {
1876 + if (!container) {
1877 + return false;
1878 + }
1879 + if (!container.view?.el) {
1880 + return true;
1881 + }
1882 + return container.view.el.isConnected;
1883 +}
1884 +function resolveContainer(container, id) {
1885 + const looked = container.lookup?.();
1886 + if (isConnected(looked)) {
1887 + return looked;
1888 + }
1889 + const byId = (0,_get_container__WEBPACK_IMPORTED_MODULE_0__.getContainer)(id);
1890 + if (isConnected(byId)) {
1891 + return byId;
1892 + }
1893 + return null;
1894 +}
1895 +function getDocumentUtils() {
1896 + return window.$e?.components?.get?.('document')?.utils;
1897 +}
1898 +function findModelInDocument(id) {
1899 + return getDocumentUtils()?.findModelById?.(id) ?? null;
1900 +}
1901 +function addModelToParent(parentId, childData, options) {
1902 + return getDocumentUtils()?.addModelToParent?.(parentId, childData, options) ?? false;
1903 +}
1904 +function removeModelFromParent(parentId, childId) {
1905 + return getDocumentUtils()?.removeModelFromParent?.(parentId, childId) ?? false;
1906 +}
1907 +
1908 +/***/ }),
1909 +
1910 +/***/ "./packages/packages/libs/editor-elements/src/sync/update-element-editor-settings.ts":
1911 +/*!*******************************************************************************************!*\
1912 + !*** ./packages/packages/libs/editor-elements/src/sync/update-element-editor-settings.ts ***!
1913 + \*******************************************************************************************/
1914 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1915 +
1916 +__webpack_require__.r(__webpack_exports__);
1917 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1918 +/* harmony export */ updateElementEditorSettings: function() { return /* binding */ updateElementEditorSettings; }
1919 +/* harmony export */ });
1920 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
1921 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
1922 +/* harmony import */ var _get_container__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./get-container */ "./packages/packages/libs/editor-elements/src/sync/get-container.ts");
1923 +
1924 +
1925 +const updateElementEditorSettings = ({
1926 + elementId,
1927 + settings
1928 +}) => {
1929 + const element = (0,_get_container__WEBPACK_IMPORTED_MODULE_1__.getContainer)(elementId);
1930 + if (!element) {
1931 + throw new Error(`Element with id ${elementId} not found`);
1932 + }
1933 + const editorSettings = element.model.get('editor_settings') ?? {};
1934 + element.model.set('editor_settings', {
1935 + ...editorSettings,
1936 + ...settings
1937 + });
1938 + (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.__privateRunCommandSync)('document/save/set-is-modified', {
1939 + status: true
1940 + }, {
1941 + internal: true
1942 + });
1943 +};
1944 +
1945 +/***/ }),
1946 +
1947 +/***/ "./packages/packages/libs/editor-elements/src/sync/update-element-interactions.ts":
1948 +/*!****************************************************************************************!*\
1949 + !*** ./packages/packages/libs/editor-elements/src/sync/update-element-interactions.ts ***!
1950 + \****************************************************************************************/
1951 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1952 +
1953 +__webpack_require__.r(__webpack_exports__);
1954 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1955 +/* harmony export */ playElementInteractions: function() { return /* binding */ playElementInteractions; },
1956 +/* harmony export */ updateElementInteractions: function() { return /* binding */ updateElementInteractions; }
1957 +/* harmony export */ });
1958 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
1959 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
1960 +/* harmony import */ var _get_container__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./get-container */ "./packages/packages/libs/editor-elements/src/sync/get-container.ts");
1961 +
1962 +
1963 +const updateElementInteractions = ({
1964 + elementId,
1965 + interactions
1966 +}) => {
1967 + const element = (0,_get_container__WEBPACK_IMPORTED_MODULE_1__.getContainer)(elementId);
1968 + if (!element) {
1969 + throw new Error(`Element with id ${elementId} not found`);
1970 + }
1971 + element.model.set('interactions', interactions);
1972 + window.dispatchEvent(new CustomEvent('elementor/element/update_interactions'));
1973 + (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.__privateRunCommandSync)('document/save/set-is-modified', {
1974 + status: true
1975 + }, {
1976 + internal: true
1977 + });
1978 +};
1979 +const playElementInteractions = (elementId, interactionId) => {
1980 + window.top?.dispatchEvent(new CustomEvent('atomic/play_interactions', {
1981 + detail: {
1982 + elementId,
1983 + interactionId
1984 + }
1985 + }));
1986 +};
1987 +
1988 +/***/ }),
1989 +
1990 +/***/ "./packages/packages/libs/editor-elements/src/sync/update-element-settings.ts":
1991 +/*!************************************************************************************!*\
1992 + !*** ./packages/packages/libs/editor-elements/src/sync/update-element-settings.ts ***!
1993 + \************************************************************************************/
1994 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1995 +
1996 +__webpack_require__.r(__webpack_exports__);
1997 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1998 +/* harmony export */ updateElementSettings: function() { return /* binding */ updateElementSettings; }
1999 +/* harmony export */ });
2000 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
2001 +/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__);
2002 +/* harmony import */ var _get_container__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./get-container */ "./packages/packages/libs/editor-elements/src/sync/get-container.ts");
2003 +
2004 +
2005 +const updateElementSettings = ({
2006 + id,
2007 + props,
2008 + withHistory = true
2009 +}) => {
2010 + const container = (0,_get_container__WEBPACK_IMPORTED_MODULE_1__.getContainer)(id);
2011 + if (!container) {
2012 + return;
2013 + }
2014 + const args = {
2015 + container,
2016 + settings: {
2017 + ...props
2018 + }
2019 + };
2020 + if (withHistory) {
2021 + (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.__privateRunCommandSync)('document/elements/settings', args);
2022 + } else {
2023 + (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.__privateRunCommandSync)('document/elements/set-settings', args, {
2024 + internal: true
2025 + });
2026 + }
2027 +};
2028 +
2029 +/***/ }),
2030 +
2031 +/***/ "./packages/packages/libs/editor-elements/src/types.ts":
2032 +/*!*************************************************************!*\
2033 + !*** ./packages/packages/libs/editor-elements/src/types.ts ***!
2034 + \*************************************************************/
2035 +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2036 +
2037 +__webpack_require__.r(__webpack_exports__);
2038 +
2039 +
2040 +/***/ }),
2041 +
2042 +/***/ "@elementor/editor-props":
2043 +/*!**********************************************!*\
2044 + !*** external ["elementorV2","editorProps"] ***!
2045 + \**********************************************/
2046 +/***/ (function(module) {
2047 +
2048 +module.exports = window["elementorV2"]["editorProps"];
2049 +
2050 +/***/ }),
2051 +
2052 +/***/ "@elementor/editor-styles":
2053 +/*!***********************************************!*\
2054 + !*** external ["elementorV2","editorStyles"] ***!
2055 + \***********************************************/
2056 +/***/ (function(module) {
2057 +
2058 +module.exports = window["elementorV2"]["editorStyles"];
2059 +
2060 +/***/ }),
2061 +
2062 +/***/ "@elementor/editor-v1-adapters":
2063 +/*!***************************************************!*\
2064 + !*** external ["elementorV2","editorV1Adapters"] ***!
2065 + \***************************************************/
2066 +/***/ (function(module) {
2067 +
2068 +module.exports = window["elementorV2"]["editorV1Adapters"];
2069 +
2070 +/***/ }),
2071 +
2072 +/***/ "@elementor/utils":
2073 +/*!****************************************!*\
2074 + !*** external ["elementorV2","utils"] ***!
2075 + \****************************************/
2076 +/***/ (function(module) {
2077 +
2078 +module.exports = window["elementorV2"]["utils"];
2079 +
2080 +/***/ }),
2081 +
2082 +/***/ "@wordpress/i18n":
2083 +/*!******************************!*\
2084 + !*** external ["wp","i18n"] ***!
2085 + \******************************/
2086 +/***/ (function(module) {
2087 +
2088 +module.exports = window["wp"]["i18n"];
2089 +
2090 +/***/ })
2091 +
2092 +/******/ });
2093 +/************************************************************************/
2094 +/******/ // The module cache
2095 +/******/ var __webpack_module_cache__ = {};
2096 +/******/
2097 +/******/ // The require function
2098 +/******/ function __webpack_require__(moduleId) {
2099 +/******/ // Check if module is in cache
2100 +/******/ var cachedModule = __webpack_module_cache__[moduleId];
2101 +/******/ if (cachedModule !== undefined) {
2102 +/******/ return cachedModule.exports;
2103 +/******/ }
2104 +/******/ // Create a new module (and put it into the cache)
2105 +/******/ var module = __webpack_module_cache__[moduleId] = {
2106 +/******/ // no module.id needed
2107 +/******/ // no module.loaded needed
2108 +/******/ exports: {}
2109 +/******/ };
2110 +/******/
2111 +/******/ // Execute the module function
2112 +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
2113 +/******/
2114 +/******/ // Return the exports of the module
2115 +/******/ return module.exports;
2116 +/******/ }
2117 +/******/
2118 +/************************************************************************/
2119 +/******/ /* webpack/runtime/compat get default export */
2120 +/******/ !function() {
2121 +/******/ // getDefaultExport function for compatibility with non-harmony modules
2122 +/******/ __webpack_require__.n = function(module) {
2123 +/******/ var getter = module && module.__esModule ?
2124 +/******/ function() { return module['default']; } :
2125 +/******/ function() { return module; };
2126 +/******/ __webpack_require__.d(getter, { a: getter });
2127 +/******/ return getter;
2128 +/******/ };
2129 +/******/ }();
2130 +/******/
2131 +/******/ /* webpack/runtime/define property getters */
2132 +/******/ !function() {
2133 +/******/ // define getter functions for harmony exports
2134 +/******/ __webpack_require__.d = function(exports, definition) {
2135 +/******/ for(var key in definition) {
2136 +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
2137 +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
2138 +/******/ }
2139 +/******/ }
2140 +/******/ };
2141 +/******/ }();
2142 +/******/
2143 +/******/ /* webpack/runtime/hasOwnProperty shorthand */
2144 +/******/ !function() {
2145 +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
2146 +/******/ }();
2147 +/******/
2148 +/******/ /* webpack/runtime/make namespace object */
2149 +/******/ !function() {
2150 +/******/ // define __esModule on exports
2151 +/******/ __webpack_require__.r = function(exports) {
2152 +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
2153 +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2154 +/******/ }
2155 +/******/ Object.defineProperty(exports, '__esModule', { value: true });
2156 +/******/ };
2157 +/******/ }();
2158 +/******/
2159 +/************************************************************************/
2160 +var __webpack_exports__ = {};
2161 +// This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk.
2162 +!function() {
2163 +/*!*************************************************************!*\
2164 + !*** ./packages/packages/libs/editor-elements/src/index.ts ***!
2165 + \*************************************************************/
2166 +__webpack_require__.r(__webpack_exports__);
2167 +/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2168 +/* harmony export */ ELEMENT_STYLE_CHANGE_EVENT: function() { return /* reexport safe */ _styles_consts__WEBPACK_IMPORTED_MODULE_34__.ELEMENT_STYLE_CHANGE_EVENT; },
2169 +/* harmony export */ addModelToParent: function() { return /* reexport safe */ _sync_resolve_element__WEBPACK_IMPORTED_MODULE_14__.addModelToParent; },
2170 +/* harmony export */ createElement: function() { return /* reexport safe */ _sync_create_element__WEBPACK_IMPORTED_MODULE_6__.createElement; },
2171 +/* harmony export */ createElementStyle: function() { return /* reexport safe */ _styles_create_element_style__WEBPACK_IMPORTED_MODULE_35__.createElementStyle; },
2172 +/* harmony export */ createElements: function() { return /* reexport safe */ _sync_create_elements__WEBPACK_IMPORTED_MODULE_7__.createElements; },
2173 +/* harmony export */ deleteElement: function() { return /* reexport safe */ _sync_delete_element__WEBPACK_IMPORTED_MODULE_8__.deleteElement; },
2174 +/* harmony export */ deleteElementStyle: function() { return /* reexport safe */ _styles_delete_element_style__WEBPACK_IMPORTED_MODULE_36__.deleteElementStyle; },
2175 +/* harmony export */ dropElement: function() { return /* reexport safe */ _sync_drop_element__WEBPACK_IMPORTED_MODULE_9__.dropElement; },
2176 +/* harmony export */ duplicateElement: function() { return /* reexport safe */ _sync_duplicate_element__WEBPACK_IMPORTED_MODULE_10__.duplicateElement; },
2177 +/* harmony export */ duplicateElements: function() { return /* reexport safe */ _sync_duplicate_elements__WEBPACK_IMPORTED_MODULE_11__.duplicateElements; },
2178 +/* harmony export */ findChildRecursive: function() { return /* reexport safe */ _sync_model_utils__WEBPACK_IMPORTED_MODULE_23__.findChildRecursive; },
2179 +/* harmony export */ findModelInDocument: function() { return /* reexport safe */ _sync_resolve_element__WEBPACK_IMPORTED_MODULE_14__.findModelInDocument; },
2180 +/* harmony export */ generateElementId: function() { return /* reexport safe */ _sync_generate_element_id__WEBPACK_IMPORTED_MODULE_12__.generateElementId; },
2181 +/* harmony export */ getAllDescendants: function() { return /* reexport safe */ _sync_get_all_descendants__WEBPACK_IMPORTED_MODULE_22__.getAllDescendants; },
2182 +/* harmony export */ getAnchoredAncestorId: function() { return /* reexport safe */ _link_restriction__WEBPACK_IMPORTED_MODULE_33__.getAnchoredAncestorId; },
2183 +/* harmony export */ getAnchoredDescendantId: function() { return /* reexport safe */ _link_restriction__WEBPACK_IMPORTED_MODULE_33__.getAnchoredDescendantId; },
2184 +/* harmony export */ getContainer: function() { return /* reexport safe */ _sync_get_container__WEBPACK_IMPORTED_MODULE_13__.getContainer; },
2185 +/* harmony export */ getCurrentDocumentContainer: function() { return /* reexport safe */ _sync_get_current_document_container__WEBPACK_IMPORTED_MODULE_15__.getCurrentDocumentContainer; },
2186 +/* harmony export */ getCurrentDocumentId: function() { return /* reexport safe */ _sync_get_current_document_id__WEBPACK_IMPORTED_MODULE_16__.getCurrentDocumentId; },
2187 +/* harmony export */ getElementChildrenWithFallback: function() { return /* reexport safe */ _sync_model_utils__WEBPACK_IMPORTED_MODULE_23__.getElementChildren; },
2188 +/* harmony export */ getElementEditorSettings: function() { return /* reexport safe */ _sync_get_element_editor_settings__WEBPACK_IMPORTED_MODULE_17__.getElementEditorSettings; },
2189 +/* harmony export */ getElementInteractions: function() { return /* reexport safe */ _sync_get_element_interactions__WEBPACK_IMPORTED_MODULE_38__.getElementInteractions; },
2190 +/* harmony export */ getElementLabel: function() { return /* reexport safe */ _sync_get_element_label__WEBPACK_IMPORTED_MODULE_18__.getElementLabel; },
2191 +/* harmony export */ getElementSetting: function() { return /* reexport safe */ _sync_get_element_setting__WEBPACK_IMPORTED_MODULE_19__.getElementSetting; },
2192 +/* harmony export */ getElementSettings: function() { return /* reexport safe */ _sync_get_element_setting__WEBPACK_IMPORTED_MODULE_19__.getElementSettings; },
2193 +/* harmony export */ getElementStyles: function() { return /* reexport safe */ _sync_get_element_styles__WEBPACK_IMPORTED_MODULE_20__.getElementStyles; },
2194 +/* harmony export */ getElementType: function() { return /* reexport safe */ _sync_get_element_type__WEBPACK_IMPORTED_MODULE_21__.getElementType; },
2195 +/* harmony export */ getElements: function() { return /* reexport safe */ _sync_get_elements__WEBPACK_IMPORTED_MODULE_24__.getElements; },
2196 +/* harmony export */ getLinkInLinkRestriction: function() { return /* reexport safe */ _link_restriction__WEBPACK_IMPORTED_MODULE_33__.getLinkInLinkRestriction; },
2197 +/* harmony export */ getSelectedElements: function() { return /* reexport safe */ _sync_get_selected_elements__WEBPACK_IMPORTED_MODULE_25__.getSelectedElements; },
2198 +/* harmony export */ getWidgetsCache: function() { return /* reexport safe */ _sync_get_widgets_cache__WEBPACK_IMPORTED_MODULE_26__.getWidgetsCache; },
2199 +/* harmony export */ isElementAnchored: function() { return /* reexport safe */ _link_restriction__WEBPACK_IMPORTED_MODULE_33__.isElementAnchored; },
2200 +/* harmony export */ moveElement: function() { return /* reexport safe */ _sync_move_element__WEBPACK_IMPORTED_MODULE_27__.moveElement; },
2201 +/* harmony export */ moveElements: function() { return /* reexport safe */ _sync_move_elements__WEBPACK_IMPORTED_MODULE_28__.moveElements; },
2202 +/* harmony export */ playElementInteractions: function() { return /* reexport safe */ _sync_update_element_interactions__WEBPACK_IMPORTED_MODULE_39__.playElementInteractions; },
2203 +/* harmony export */ removeElements: function() { return /* reexport safe */ _sync_remove_elements__WEBPACK_IMPORTED_MODULE_29__.removeElements; },
2204 +/* harmony export */ removeModelFromParent: function() { return /* reexport safe */ _sync_resolve_element__WEBPACK_IMPORTED_MODULE_14__.removeModelFromParent; },
2205 +/* harmony export */ replaceElement: function() { return /* reexport safe */ _sync_replace_element__WEBPACK_IMPORTED_MODULE_30__.replaceElement; },
2206 +/* harmony export */ resolveContainer: function() { return /* reexport safe */ _sync_resolve_element__WEBPACK_IMPORTED_MODULE_14__.resolveContainer; },
2207 +/* harmony export */ selectElement: function() { return /* reexport safe */ _sync_get_container__WEBPACK_IMPORTED_MODULE_13__.selectElement; },
2208 +/* harmony export */ shouldCreateNewLocalStyle: function() { return /* reexport safe */ _styles_create_element_style__WEBPACK_IMPORTED_MODULE_35__.shouldCreateNewLocalStyle; },
2209 +/* harmony export */ styleRerenderEvents: function() { return /* reexport safe */ _styles_consts__WEBPACK_IMPORTED_MODULE_34__.styleRerenderEvents; },
2210 +/* harmony export */ updateElementEditorSettings: function() { return /* reexport safe */ _sync_update_element_editor_settings__WEBPACK_IMPORTED_MODULE_31__.updateElementEditorSettings; },
2211 +/* harmony export */ updateElementInteractions: function() { return /* reexport safe */ _sync_update_element_interactions__WEBPACK_IMPORTED_MODULE_39__.updateElementInteractions; },
2212 +/* harmony export */ updateElementSettings: function() { return /* reexport safe */ _sync_update_element_settings__WEBPACK_IMPORTED_MODULE_32__.updateElementSettings; },
2213 +/* harmony export */ updateElementStyle: function() { return /* reexport safe */ _styles_update_element_style__WEBPACK_IMPORTED_MODULE_37__.updateElementStyle; },
2214 +/* harmony export */ useElementChildren: function() { return /* reexport safe */ _hooks_use_element_children__WEBPACK_IMPORTED_MODULE_1__.useElementChildren; },
2215 +/* harmony export */ useElementEditorSettings: function() { return /* reexport safe */ _hooks_use_element_editor_settings__WEBPACK_IMPORTED_MODULE_2__.useElementEditorSettings; },
2216 +/* harmony export */ useParentElement: function() { return /* reexport safe */ _hooks_use_parent_element__WEBPACK_IMPORTED_MODULE_3__.useParentElement; },
2217 +/* harmony export */ useSelectedElement: function() { return /* reexport safe */ _hooks_use_selected_element__WEBPACK_IMPORTED_MODULE_4__.useSelectedElement; },
2218 +/* harmony export */ useSelectedElementSettings: function() { return /* reexport safe */ _hooks_use_selected_element_settings__WEBPACK_IMPORTED_MODULE_5__.useSelectedElementSettings; }
2219 +/* harmony export */ });
2220 +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types */ "./packages/packages/libs/editor-elements/src/types.ts");
2221 +/* harmony import */ var _hooks_use_element_children__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hooks/use-element-children */ "./packages/packages/libs/editor-elements/src/hooks/use-element-children.ts");
2222 +/* harmony import */ var _hooks_use_element_editor_settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hooks/use-element-editor-settings */ "./packages/packages/libs/editor-elements/src/hooks/use-element-editor-settings.ts");
2223 +/* harmony import */ var _hooks_use_parent_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./hooks/use-parent-element */ "./packages/packages/libs/editor-elements/src/hooks/use-parent-element.ts");
2224 +/* harmony import */ var _hooks_use_selected_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./hooks/use-selected-element */ "./packages/packages/libs/editor-elements/src/hooks/use-selected-element.ts");
2225 +/* harmony import */ var _hooks_use_selected_element_settings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./hooks/use-selected-element-settings */ "./packages/packages/libs/editor-elements/src/hooks/use-selected-element-settings.ts");
2226 +/* harmony import */ var _sync_create_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./sync/create-element */ "./packages/packages/libs/editor-elements/src/sync/create-element.ts");
2227 +/* harmony import */ var _sync_create_elements__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./sync/create-elements */ "./packages/packages/libs/editor-elements/src/sync/create-elements.ts");
2228 +/* harmony import */ var _sync_delete_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./sync/delete-element */ "./packages/packages/libs/editor-elements/src/sync/delete-element.ts");
2229 +/* harmony import */ var _sync_drop_element__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./sync/drop-element */ "./packages/packages/libs/editor-elements/src/sync/drop-element.ts");
2230 +/* harmony import */ var _sync_duplicate_element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./sync/duplicate-element */ "./packages/packages/libs/editor-elements/src/sync/duplicate-element.ts");
2231 +/* harmony import */ var _sync_duplicate_elements__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./sync/duplicate-elements */ "./packages/packages/libs/editor-elements/src/sync/duplicate-elements.ts");
2232 +/* harmony import */ var _sync_generate_element_id__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./sync/generate-element-id */ "./packages/packages/libs/editor-elements/src/sync/generate-element-id.ts");
2233 +/* harmony import */ var _sync_get_container__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./sync/get-container */ "./packages/packages/libs/editor-elements/src/sync/get-container.ts");
2234 +/* harmony import */ var _sync_resolve_element__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./sync/resolve-element */ "./packages/packages/libs/editor-elements/src/sync/resolve-element.ts");
2235 +/* harmony import */ var _sync_get_current_document_container__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./sync/get-current-document-container */ "./packages/packages/libs/editor-elements/src/sync/get-current-document-container.ts");
2236 +/* harmony import */ var _sync_get_current_document_id__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./sync/get-current-document-id */ "./packages/packages/libs/editor-elements/src/sync/get-current-document-id.ts");
2237 +/* harmony import */ var _sync_get_element_editor_settings__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./sync/get-element-editor-settings */ "./packages/packages/libs/editor-elements/src/sync/get-element-editor-settings.ts");
2238 +/* harmony import */ var _sync_get_element_label__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./sync/get-element-label */ "./packages/packages/libs/editor-elements/src/sync/get-element-label.ts");
2239 +/* harmony import */ var _sync_get_element_setting__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./sync/get-element-setting */ "./packages/packages/libs/editor-elements/src/sync/get-element-setting.ts");
2240 +/* harmony import */ var _sync_get_element_styles__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./sync/get-element-styles */ "./packages/packages/libs/editor-elements/src/sync/get-element-styles.ts");
2241 +/* harmony import */ var _sync_get_element_type__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./sync/get-element-type */ "./packages/packages/libs/editor-elements/src/sync/get-element-type.ts");
2242 +/* harmony import */ var _sync_get_all_descendants__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./sync/get-all-descendants */ "./packages/packages/libs/editor-elements/src/sync/get-all-descendants.ts");
2243 +/* harmony import */ var _sync_model_utils__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./sync/model-utils */ "./packages/packages/libs/editor-elements/src/sync/model-utils.ts");
2244 +/* harmony import */ var _sync_get_elements__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./sync/get-elements */ "./packages/packages/libs/editor-elements/src/sync/get-elements.ts");
2245 +/* harmony import */ var _sync_get_selected_elements__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./sync/get-selected-elements */ "./packages/packages/libs/editor-elements/src/sync/get-selected-elements.ts");
2246 +/* harmony import */ var _sync_get_widgets_cache__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./sync/get-widgets-cache */ "./packages/packages/libs/editor-elements/src/sync/get-widgets-cache.ts");
2247 +/* harmony import */ var _sync_move_element__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./sync/move-element */ "./packages/packages/libs/editor-elements/src/sync/move-element.ts");
2248 +/* harmony import */ var _sync_move_elements__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./sync/move-elements */ "./packages/packages/libs/editor-elements/src/sync/move-elements.ts");
2249 +/* harmony import */ var _sync_remove_elements__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./sync/remove-elements */ "./packages/packages/libs/editor-elements/src/sync/remove-elements.ts");
2250 +/* harmony import */ var _sync_replace_element__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./sync/replace-element */ "./packages/packages/libs/editor-elements/src/sync/replace-element.ts");
2251 +/* harmony import */ var _sync_update_element_editor_settings__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./sync/update-element-editor-settings */ "./packages/packages/libs/editor-elements/src/sync/update-element-editor-settings.ts");
2252 +/* harmony import */ var _sync_update_element_settings__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./sync/update-element-settings */ "./packages/packages/libs/editor-elements/src/sync/update-element-settings.ts");
2253 +/* harmony import */ var _link_restriction__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./link-restriction */ "./packages/packages/libs/editor-elements/src/link-restriction.ts");
2254 +/* harmony import */ var _styles_consts__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./styles/consts */ "./packages/packages/libs/editor-elements/src/styles/consts.ts");
2255 +/* harmony import */ var _styles_create_element_style__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./styles/create-element-style */ "./packages/packages/libs/editor-elements/src/styles/create-element-style.ts");
2256 +/* harmony import */ var _styles_delete_element_style__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./styles/delete-element-style */ "./packages/packages/libs/editor-elements/src/styles/delete-element-style.ts");
2257 +/* harmony import */ var _styles_update_element_style__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./styles/update-element-style */ "./packages/packages/libs/editor-elements/src/styles/update-element-style.ts");
2258 +/* harmony import */ var _sync_get_element_interactions__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./sync/get-element-interactions */ "./packages/packages/libs/editor-elements/src/sync/get-element-interactions.ts");
2259 +/* harmony import */ var _sync_update_element_interactions__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./sync/update-element-interactions */ "./packages/packages/libs/editor-elements/src/sync/update-element-interactions.ts");
2260 +// types
2261 +
2262 +// hooks
2263 +
2264 +
2265 +
2266 +
2267 +
2268 +
2269 +// utils
2270 +
2271 +
2272 +
2273 +
2274 +
2275 +
2276 +
2277 +
2278 +
2279 +
2280 +
2281 +
2282 +
2283 +
2284 +
2285 +
2286 +
2287 +
2288 +
2289 +
2290 +
2291 +
2292 +
2293 +
2294 +
2295 +
2296 +
2297 +
2298 +
2299 +
2300 +
2301 +
2302 +
2303 +
2304 +}();
2305 +(window.elementorV2 = window.elementorV2 || {}).editorElements = __webpack_exports__;
2306 +/******/ })()
2307 +;
1320 2308 window.elementorV2.editorElements?.init?.();
1321 2309 //# sourceMappingURL=editor-elements.js.map