' + response.data.message + '
' );
}
self.unblock();
}
});
}
});
new APIView();
})( jQuery );
/*! pro-elements - v3.29.0 - 19-05-2025 */
"use strict";
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["loop"],{
/***/ "../assets/dev/js/preview/utils/document-handle.js":
/*!*********************************************************!*\
!*** ../assets/dev/js/preview/utils/document-handle.js ***!
\*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.SAVE_CONTEXT = exports.EDIT_CONTEXT = void 0;
exports.createElement = createElement;
exports["default"] = addDocumentHandle;
const EDIT_HANDLE_CLASS_NAME = 'elementor-document-handle';
const EDIT_MODE_CLASS_NAME = 'elementor-edit-mode';
const EDIT_CONTEXT = exports.EDIT_CONTEXT = 'edit';
const SAVE_HANDLE_CLASS_NAME = 'elementor-document-save-back-handle';
const SAVE_CONTEXT = exports.SAVE_CONTEXT = 'save';
/**
* @param {Object} handleTarget
* @param {HTMLElement} handleTarget.element
* @param {string|number} handleTarget.id - Document ID.
* @param {string} handleTarget.title
* @param {string} context - Edit/Save
* @param {Function|null} onCloseDocument - Callback to run when outgoing document is closed.
* @param {string} selector
*/
function addDocumentHandle(_ref) {
let {
element,
id,
title = __('Template', 'elementor-pro')
} = _ref;
let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : EDIT_CONTEXT;
let onCloseDocument = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
let selector = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
if (EDIT_CONTEXT === context) {
if (!id || !element) {
throw Error('`id` and `element` are required.');
}
if (isCurrentlyEditing(element) || hasHandle(element)) {
return;
}
}
const handleElement = createHandleElement({
title,
onClick: () => onDocumentClick(id, context, onCloseDocument, selector)
}, context, element);
element.prepend(handleElement);
if (EDIT_CONTEXT === context) {
element.dataset.editableElementorDocument = id;
}
}
/**
* @param {HTMLElement} element
*
* @return {boolean} Whether the element is currently being edited.
*/
function isCurrentlyEditing(element) {
return element.classList.contains(EDIT_MODE_CLASS_NAME);
}
/**
* @param {HTMLElement} element
*
* @return {boolean} Whether the element has a handle.
*/
function hasHandle(element) {
return !!element.querySelector(`:scope > .${EDIT_HANDLE_CLASS_NAME}`);
}
/**
* @param {Object} handleProperties
* @param {string} handleProperties.title
* @param {Function} handleProperties.onClick
* @param {string} context
* @param {HTMLElement} element
*
* @return {HTMLElement} The newly generated Handle element
*/
function createHandleElement(_ref2, context) {
let {
title,
onClick
} = _ref2;
let element = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
const handleTitle = ['header', 'footer'].includes(element?.dataset.elementorType) ? '%s' : __('Edit %s', 'elementor-pro');
const innerElement = createElement({
tag: 'div',
classNames: [`${EDIT_HANDLE_CLASS_NAME}__inner`],
children: [createElement({
tag: 'i',
classNames: [getHandleIcon(context)]
}), createElement({
tag: 'div',
classNames: [`${EDIT_CONTEXT === context ? EDIT_HANDLE_CLASS_NAME : SAVE_HANDLE_CLASS_NAME}__title`],
children: [document.createTextNode(EDIT_CONTEXT === context ? handleTitle.replace('%s', title) : __('Save %s', 'elementor-pro').replace('%s', title))]
})]
});
const classNames = [EDIT_HANDLE_CLASS_NAME];
if (EDIT_CONTEXT !== context) {
classNames.push(SAVE_HANDLE_CLASS_NAME);
}
const containerElement = createElement({
tag: 'div',
classNames,
children: [innerElement]
});
containerElement.addEventListener('click', onClick);
return containerElement;
}
function getHandleIcon(context) {
let icon = 'eicon-edit';
if (SAVE_CONTEXT === context) {
icon = elementorFrontend.config.is_rtl ? 'eicon-arrow-right' : 'eicon-arrow-left';
}
return icon;
}
/**
* Util for creating HTML element.
*
* @param {Object} elementProperties
* @param {string} elementProperties.tag
* @param {string[]} elementProperties.classNames
* @param {HTMLElement[]} elementProperties.children
*
* @return {HTMLElement} Generated Element
*/
function createElement(_ref3) {
let {
tag,
classNames = [],
children = []
} = _ref3;
const element = document.createElement(tag);
element.classList.add(...classNames);
children.forEach(child => element.appendChild(child));
return element;
}
/**
* @param {string|number} id
* @param {string} context
* @param {Function|null} onCloseDocument
* @param {string} selector
* @return {Promise