PluginProbe
Elementor Website Builder – more than just a page builder / 4.3.0-beta3
Elementor Website Builder – more than just a page builder v4.3.0-beta3
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 4.1.0-beta1 4.1.0-dev1 All 452 releases
← All changes | assets/js/packages/editor-elements/editor-elements.js +1264 -2252 4.2.04.3.0-beta3 View file →
@@ -1,2309 +1,1321 @@
1 -/******/ (function() { // webpackBootstrap
2 -/******/ "use strict";
3 -/******/ var __webpack_modules__ = ({
1 +(function(_elementor_editor_v1_adapters, _elementor_session, _elementor_editor_props, _wordpress_i18n, _elementor_utils, _elementor_editor_styles) {
4 2
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__) {
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 + };
10 22
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__);
23 +//#endregion
22 24
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 -});
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 + };
47 34
48 -/***/ }),
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 + }
49 61
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__) {
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 + }
55 84
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");
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 + }
64 115
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 + };
65 121
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 + }
66 141
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 -}
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 + }
95 195
96 -/***/ }),
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 + }
97 222
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__) {
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 + }
103 237
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");
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 + }
111 267
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 + }
112 273
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 -};
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 + };
116 279
117 -/***/ }),
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 + }
118 290
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__) {
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 + }
124 296
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__);
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 + }
131 314
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 -}
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 + }
145 340
146 -/***/ }),
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 + }
147 351
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__) {
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 + };
153 360
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");
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 + }
162 384
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 + }
163 397
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 + }
164 406
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 -}
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 + };
189 488
190 -/***/ }),
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 + }
191 500
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__) {
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 + }
197 514
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");
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 + };
205 597
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 + }
206 614
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 -}
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 + }
210 620
211 -/***/ }),
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 + }
212 631
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__) {
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 + }
218 640
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");
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 + });
228 667
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 + }
229 679
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 - }
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 + }
329 700
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 -}
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 + };
349 706
350 -/***/ }),
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 + }
351 712
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__) {
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 + }
357 720
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__);
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 + }
365 746
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)];
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 + };
368 833
369 -/***/ }),
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 + };
370 916
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__) {
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 + }
376 963
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");
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 + };
389 976
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 + };
390 989
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 + }
391 1058
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 + ];
392 1069
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 + }
393 1128
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 -}
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 + }
441 1165
442 -/***/ }),
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 + }
443 1174
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__) {
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 + }
449 1194
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");
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 + }
455 1202
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 -}
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 + }
464 1231
465 -/***/ }),
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 + };
466 1247
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__) {
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 + });
472 1313
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");
1314 +//#endregion
1315 +//#region \0elementor-package-library-entry
1316 + (window.elementorV2 = window.elementorV2 || {}).editorElements = src_exports;
485 1317
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 -;
1318 +//#endregion
1319 +})(elementorV2.editorV1Adapters, elementorV2.session, elementorV2.editorProps, wp.i18n, elementorV2.utils, elementorV2.editorStyles);
2308 1320 window.elementorV2.editorElements?.init?.();
2309 1321 //# sourceMappingURL=editor-elements.js.map