(function(_wordpress_i18n, _reduxjs_toolkit, react, react_dom) { //#region \0rolldown/runtime.js var __create = Object.create; var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __esmMin = (fn, res, err) => () => { if (err) throw err[0]; try { return fn && (res = fn(fn = 0)), res; } catch (e) { throw err = [e], e; } }; var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports); var __exportAll = (all, no_symbols) => { let target = {}; for (var name in all) { __defProp(target, name, { get: all[name], enumerable: true }); } if (!no_symbols) { __defProp(target, Symbol.toStringTag, { value: "Module" }); } return target; }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) { key = keys[i]; if (!__hasOwnProp.call(to, key) && key !== except) { __defProp(to, key, { get: ((k) => from[k]).bind(null, key), enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } } } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod)); var __toCommonJS = (mod) => __hasOwnProp.call(mod, "module.exports") ? mod["module.exports"] : __copyProps(__defProp({}, "__esModule", { value: true }), mod); //#endregion react = __toESM(react); react_dom = __toESM(react_dom); //#region assets/dev/js/editor/utils/jquery-serialize-object.js (function($) { $.fn.elementorSerializeObject = function() { var serializedArray = this.serializeArray(); var data = {}; var _parseObject = function parseObject(dataContainer, key, value) { var isArrayKey = /^[^\[\]]+\[]/.test(key); var isObjectKey = /^[^\[\]]+\[[^\[\]]+]/.test(key); var keyName = key.replace(/\[.*/, ""); if (isArrayKey) { if (!dataContainer[keyName]) dataContainer[keyName] = []; } else { if (!isObjectKey) { if (dataContainer.push) dataContainer.push(value); else dataContainer[keyName] = value; return; } if (!dataContainer[keyName]) dataContainer[keyName] = {}; } var nextKeys = key.match(/\[[^\[\]]*]/g); nextKeys[0] = nextKeys[0].replace(/\[|]/g, ""); return _parseObject(dataContainer[keyName], nextKeys.join(""), value); }; $.each(serializedArray, function() { _parseObject(data, this.name, this.value); }); return data; }; })(jQuery); //#endregion //#region assets/dev/js/editor/utils/jquery-html5-dnd.js /** * HTML5 - Drag and Drop * * @param {jQuery} $ */ (function($) { var hasFullDataTransferSupport = function hasFullDataTransferSupport(event) { try { event.originalEvent.dataTransfer.setData("test", "test"); event.originalEvent.dataTransfer.clearData("test"); return true; } catch (e) { return false; } }; $.each({ html5Draggable: function Draggable(userSettings) { var self = this; var settings = {}; var elementsCache = {}; var defaultSettings = { element: "", groups: null, onDragStart: null, onDragEnd: null }; var initSettings = function initSettings() { $.extend(true, settings, defaultSettings, userSettings); }; var initElementsCache = function initElementsCache() { elementsCache.$element = $(settings.element); }; var buildElements = function buildElements() { elementsCache.$element.attr("draggable", true); }; var onDragEnd = function onDragEnd(event) { if ("function" === typeof settings.onDragEnd) settings.onDragEnd.call(elementsCache.$element, event, self); }; var onDragStart = function onDragStart(event) { var dataContainer = { groups: settings.groups || [] }; if (hasFullDataTransferSupport(event)) event.originalEvent.dataTransfer.setData(JSON.stringify(dataContainer), true); if ("function" === typeof settings.onDragStart) settings.onDragStart.call(elementsCache.$element, event, self); }; var attachEvents = function attachEvents() { elementsCache.$element.on("dragstart", onDragStart).on("dragend", onDragEnd); }; var init = function init() { initSettings(); initElementsCache(); buildElements(); attachEvents(); }; this.destroy = function() { elementsCache.$element.off("dragstart", onDragStart); elementsCache.$element.removeAttr("draggable"); }; init(); }, html5Droppable: function Droppable(userSettings) { var self = this; var settings = {}; var elementsCache = {}; var currentElement; var currentSide; var isDroppingAllowedState = false; var originalCurrentElementOpacity = null; var placeholderContext = {}; var defaultSettings = { element: "", items: ">", horizontalThreshold: 0, horizontalSensitivity: "10%", axis: ["vertical", "horizontal"], placeholder: true, currentElementClass: "html5dnd-current-element", placeholderClass: "html5dnd-placeholder", hasDraggingOnChildClass: "html5dnd-has-dragging-on-child", groups: null, isDroppingAllowed: null, onDragEnter: null, onDragging: null, onDropping: null, onDragLeave: null }; var initSettings = function initSettings() { $.extend(settings, defaultSettings, userSettings); }; var initElementsCache = function initElementsCache() { elementsCache.$element = $(settings.element); elementsCache.$placeholder = $("
", { class: settings.placeholderClass }); }; var hasHorizontalDetection = function hasHorizontalDetection() { if (!!settings.axis) return -1 !== settings.axis.indexOf("horizontal"); return placeholderContext.isFlexRowContainer; }; var hasVerticalDetection = function hasVerticalDetection() { if (!!settings.axis) return -1 !== settings.axis.indexOf("vertical"); return !placeholderContext.isFlexRowContainer; }; var checkHorizontal = function checkHorizontal(offsetX, clientX, elementWidth) { var isPercentValue; var sensitivity; if (!hasHorizontalDetection()) return false; if (!hasVerticalDetection()) { var threshold = settings.horizontalThreshold; var _placeholderContext$p = placeholderContext.placeholderTarget.getBoundingClientRect(); var left = _placeholderContext$p.left; var right = _placeholderContext$p.right; if (clientX - threshold <= left) return "left"; if (clientX + threshold >= right) return "right"; return offsetX > elementWidth / 2 ? "right" : "left"; } sensitivity = settings.horizontalSensitivity.match(/\d+/); if (!sensitivity) return false; sensitivity = sensitivity[0]; isPercentValue = /%$/.test(settings.horizontalSensitivity); if (isPercentValue) sensitivity = elementWidth / sensitivity; if (offsetX > elementWidth - sensitivity) return "right"; else if (offsetX < sensitivity) return "left"; return false; }; var setSide = function setSide(event) { var placeholderTarget = placeholderContext.placeholderTarget; var $element = $(placeholderTarget); var elementHeight = $element.outerHeight() - elementsCache.$placeholder.outerHeight(); var elementWidth = $element.outerWidth(); event = event.originalEvent; currentSide = checkHorizontal(event.offsetX, event.clientX, elementWidth); if (currentSide) return; if (!hasVerticalDetection()) { currentSide = null; return; } var elementPosition = placeholderTarget.getBoundingClientRect(); currentSide = event.clientY > elementPosition.top + elementHeight / 2 ? "bottom" : "top"; }; var insertPlaceholder = function insertPlaceholder() { if (!settings.placeholder) return; clearPreviousPlaceholder(); switch (getInsertMode()) { case "atomicGrid": insertAtomicGridPlaceholder(); break; case "gridRow": insertGridRowPlaceholder(); break; case "flexRow": insertFlexRowPlaceholder(); break; default: insertDefaultPlaceholder(); break; } }; var createPlaceholderContext = function createPlaceholderContext() { if (!currentElement || !currentElement.nodeType) return; var $currentElement = $(currentElement); var hasLogicalWrapper = "contents" === getComputedStyle(currentElement).display; var container = currentElement.closest(".e-con"); var containerDisplayStyle = container ? getComputedStyle(container).display : null; var innerContainer = container === null || container === void 0 ? void 0 : container.querySelector(":scope > .e-con-inner"); var containerWrapperStyle = !!container ? getComputedStyle(innerContainer || container) : null; var isFlexContainer = !!container && ["flex", "inline-flex"].includes(containerWrapperStyle.display); var isRowDirection = !!container && ["row", "row-reverse"].includes(containerWrapperStyle.flexDirection); maybeAddFlexRowClass(container); return { $currentElement, placeholderTarget: hasLogicalWrapper ? currentElement.querySelector(":scope > :not(.elementor-widget-placeholder)") : currentElement, $parentContainer: $currentElement.closest(".e-con").parent().closest(".e-con"), isFirstInsert: $currentElement.hasClass("elementor-first-add"), isInnerContainer: $currentElement.hasClass("e-con-inner"), isGridRowContainer: 0 !== $currentElement.parents(".e-grid.e-con--row").length, isAtomicGridContainer: 0 !== $currentElement.closest(".e-grid-base").length, isFlexContainer, isRowDirection, isFlexRowContainer: isFlexContainer && isRowDirection, isBlockContainer: ["block", "inline-block"].includes(containerDisplayStyle), hasLogicalWrapper, isAtomicContainer: [ "e-div-block", "e-flexbox", "e-grid" ].includes(currentElement.dataset.element_type) }; }; var maybeAddFlexRowClass = function maybeAddFlexRowClass(container) { if (!container || container.classList.contains("e-grid")) return; if (placeholderContext.isFlexRowContainer) { container.classList.add("e-con--row"); return; } container.classList.remove("e-con--row"); }; var getInsertMode = function getInsertMode() { if (placeholderContext.isFirstInsert) return "default"; if (placeholderContext.isAtomicGridContainer) return "atomicGrid"; if (placeholderContext.isGridRowContainer) return "gridRow"; if (placeholderContext.isFlexRowContainer) return "flexRow"; if (placeholderContext.isBlockContainer) return "block"; return "default"; }; var clearPreviousPlaceholder = function clearPreviousPlaceholder() { placeholderContext.$parentContainer.find(".elementor-widget-placeholder").remove(); elementsCache.$placeholder.removeClass("e-dragging-left e-dragging-right e-dragging-top e-dragging-bottom is-logical"); elementsCache.$placeholder.css("--e-placeholder-margin-top", ""); elementsCache.$placeholder.css("--e-placeholder-margin-bottom", ""); elementsCache.$placeholder.css("--e-placeholder-margin-inline-start", ""); elementsCache.$placeholder.css("--e-placeholder-width", ""); }; var insertPlaceholderInsideElement = function insertPlaceholderInsideElement() { var targetElement = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null; if (!targetElement) targetElement = currentElement; var insertMethod = ["bottom", "right"].includes(currentSide) ? "appendTo" : "prependTo"; elementsCache.$placeholder[insertMethod](targetElement); }; var insertPlaceholderOutsideElement = function insertPlaceholderOutsideElement() { var targetElement = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null; if (!targetElement) targetElement = currentElement; var insertMethod = ["bottom", "right"].includes(currentSide) ? "after" : "before"; $(targetElement)[insertMethod](elementsCache.$placeholder); }; var VOID_PLACEHOLDER_TAGS = /* @__PURE__ */ new Set([ "area", "base", "br", "col", "embed", "hr", "img", "input", "link", "meta", "param", "source", "track", "wbr" ]); var isVoidPlaceholderTarget = function isVoidPlaceholderTarget(element) { return !!(element !== null && element !== void 0 && element.tagName) && VOID_PLACEHOLDER_TAGS.has(element.tagName.toLowerCase()); }; var insertPlaceholderOutsideLogicalWrapperChild = function insertPlaceholderOutsideLogicalWrapperChild() { var _placeholderContext3 = placeholderContext; var hasLogicalWrapper = _placeholderContext3.hasLogicalWrapper; var placeholderTarget = _placeholderContext3.placeholderTarget; if (!hasLogicalWrapper || !placeholderTarget) return false; insertPlaceholderOutsideElement(placeholderTarget); return true; }; var getDefaultPlaceholderInsertPlan = function getDefaultPlaceholderInsertPlan() { var _placeholderContext4 = placeholderContext; var placeholderTarget = _placeholderContext4.placeholderTarget; var hasLogicalWrapper = _placeholderContext4.hasLogicalWrapper; var isAtomicContainer = _placeholderContext4.isAtomicContainer; var insertTarget = placeholderTarget || currentElement; return { insertTarget, insertOutside: hasLogicalWrapper || isVoidPlaceholderTarget(insertTarget), useLogicalAttributes: hasLogicalWrapper || isAtomicContainer }; }; var insertAtomicGridPlaceholder = function insertAtomicGridPlaceholder() { if (!["top", "bottom"].includes(currentSide)) return; var placeholderTarget = placeholderContext.placeholderTarget; elementsCache.$placeholder.addClass("e-dragging-" + currentSide); insertPlaceholderInsideElement(placeholderTarget); }; var insertGridRowPlaceholder = function insertGridRowPlaceholder() { var _placeholderContext6 = placeholderContext; var hasLogicalWrapper = _placeholderContext6.hasLogicalWrapper; var placeholderTarget = _placeholderContext6.placeholderTarget; if (!hasLogicalWrapper) elementsCache.$placeholder.addClass("e-dragging-" + currentSide); insertPlaceholderInsideElement(placeholderTarget); }; var insertFlexRowPlaceholder = function insertFlexRowPlaceholder() { var _placeholderContext7 = placeholderContext; var $currentElement = _placeholderContext7.$currentElement; var isInnerContainer = _placeholderContext7.isInnerContainer; if (insertPlaceholderOutsideLogicalWrapperChild()) return; insertPlaceholderOutsideElement((isInnerContainer ? $currentElement.closest(".e-con") : $currentElement)[0]); }; var insertDefaultPlaceholder = function insertDefaultPlaceholder() { var _getDefaultPlaceholde = getDefaultPlaceholderInsertPlan(); var insertTarget = _getDefaultPlaceholde.insertTarget; var insertOutside = _getDefaultPlaceholde.insertOutside; if (_getDefaultPlaceholde.useLogicalAttributes) addLogicalAttributesToPlaceholder(); if (insertOutside) { insertPlaceholderOutsideElement(insertTarget); return; } insertPlaceholderInsideElement(insertTarget); }; var addLogicalAttributesToPlaceholder = function addLogicalAttributesToPlaceholder() { var PLACEHOLDER_HEIGHT = 10; var placeholderTarget = placeholderContext.placeholderTarget; var placeholder = elementsCache.$placeholder[0]; placeholder.classList.add("is-logical"); var styles = getComputedStyle(placeholderTarget); var paddingTop = parseFloat(styles.paddingTop) || 0; var borderTop = parseFloat(styles.borderTopWidth) || 0; var paddingBottom = parseFloat(styles.paddingBottom) || 0; var borderBottom = parseFloat(styles.borderBottomWidth) || 0; var paddingInlineStart = parseFloat(styles.paddingInlineStart) || 0; var borderInlineStart = parseFloat(styles.borderInlineStartWidth) || 0; var width = parseFloat(styles.width) || "100%"; var totalTopOffset = paddingTop + borderTop; var totalBottomOffset = paddingBottom + borderBottom; var totalInlineStartOffset = paddingInlineStart + borderInlineStart; placeholder.style.setProperty("--e-placeholder-width", "".concat(width, "px")); placeholder.style.setProperty("--e-placeholder-margin-inline-start", "-".concat(totalInlineStartOffset, "px")); if ("top" === currentSide) { placeholder.style.setProperty("--e-placeholder-margin-top", "-".concat(totalTopOffset, "px")); placeholder.style.setProperty("--e-placeholder-margin-bottom", "".concat(PLACEHOLDER_HEIGHT, "px")); } else if ("bottom" === currentSide) { placeholder.style.setProperty("--e-placeholder-margin-bottom", "-".concat(totalBottomOffset, "px")); placeholder.style.setProperty("--e-placeholder-margin-top", "".concat(PLACEHOLDER_HEIGHT, "px")); } }; var isDroppingAllowed = function isDroppingAllowed(event) { var dataTransferTypes; var draggableGroups; var isGroupMatch; var droppingAllowed; if (settings.groups && hasFullDataTransferSupport(event)) { dataTransferTypes = event.originalEvent.dataTransfer.types; isGroupMatch = false; dataTransferTypes = Array.prototype.slice.apply(dataTransferTypes); dataTransferTypes.forEach(function(type) { try { draggableGroups = JSON.parse(type); if (!draggableGroups.groups.slice) return; settings.groups.forEach(function(groupName) { if (-1 !== draggableGroups.groups.indexOf(groupName)) { isGroupMatch = true; return false; } }); } catch (e) {} }); if (!isGroupMatch) return false; } if ("function" === typeof settings.isDroppingAllowed) { droppingAllowed = settings.isDroppingAllowed.call(currentElement, currentSide, event, self); if (!droppingAllowed) return false; } return true; }; var onDragEnter = function onDragEnter(event) { event.stopPropagation(); if (currentElement) return; currentElement = this; var $parents = elementsCache.$element.parents(); var $children = elementsCache.$element.children(); $children.find("." + settings.currentElementClass).removeClass(settings.currentElementClass); $parents.add($children).each(function() { var droppableInstance = $(this).data("html5Droppable"); if (!droppableInstance) return; droppableInstance.doDragLeave(); }); placeholderContext = createPlaceholderContext(); setSide(event); $e.internal("editor/browser-import/validate", { input: event.originalEvent.dataTransfer.items }).then(function(importAllowed) { var _currentElement; var _currentElement$close; var _currentElement2; isDroppingAllowedState = isDroppingAllowed(event) || importAllowed; if (!isDroppingAllowedState) return; if ((_currentElement = currentElement) !== null && _currentElement !== void 0 && (_currentElement = _currentElement.classList) !== null && _currentElement !== void 0 && _currentElement.contains("elementor-first-add") && (_currentElement$close = (_currentElement2 = currentElement).closest) !== null && _currentElement$close !== void 0 && _currentElement$close.call(_currentElement2, ".e-grid-base")) { originalCurrentElementOpacity = currentElement.style.opacity || ""; currentElement.style.opacity = "1"; $(document).on("dragend", _onDocumentDragEnd); } insertPlaceholder(); elementsCache.$element.addClass(settings.hasDraggingOnChildClass); $(currentElement).addClass(settings.currentElementClass); if ("function" === typeof settings.onDragEnter) settings.onDragEnter.call(currentElement, currentSide, event, self); }); }; var onDragOver = function onDragOver(event) { event.stopPropagation(); if (!currentElement) onDragEnter.call(this, event); var oldSide = currentSide; setSide(event); if (!isDroppingAllowedState) return; event.preventDefault(); if (oldSide !== currentSide) insertPlaceholder(); if ("function" === typeof settings.onDragging) settings.onDragging.call(this, currentSide, event, self); }; var restoreFirstAddOpacity = function restoreFirstAddOpacity() { var _currentElement3; if (null !== originalCurrentElementOpacity && (_currentElement3 = currentElement) !== null && _currentElement3 !== void 0 && _currentElement3.style) { currentElement.style.opacity = originalCurrentElementOpacity; originalCurrentElementOpacity = null; } }; var _onDocumentDragEnd = function onDocumentDragEnd() { $(document).off("dragend", _onDocumentDragEnd); restoreFirstAddOpacity(); }; var onDragLeave = function onDragLeave(event) { var elementPosition = this.getBoundingClientRect(); if ("dragleave" === event.type && !(event.clientX < elementPosition.left || event.clientX >= elementPosition.right || event.clientY < elementPosition.top || event.clientY >= elementPosition.bottom)) return; $(currentElement).removeClass(settings.currentElementClass); self.doDragLeave(); isDroppingAllowedState = false; }; var onDrop = function onDrop(event) { event.preventDefault(); setSide(event); if (!isDroppingAllowedState) return; if (settings.onDropping) settings.onDropping(currentSide, event); }; var attachEvents = function attachEvents() { elementsCache.$element.on("dragenter", settings.items, onDragEnter).on("dragover", settings.items, onDragOver).on("drop", settings.items, onDrop).on("dragleave drop", settings.items, onDragLeave); }; var init = function init() { initSettings(); initElementsCache(); attachEvents(); }; this.doDragLeave = function() { if (settings.placeholder) elementsCache.$placeholder.remove(); elementsCache.$element.removeClass(settings.hasDraggingOnChildClass); $(document).off("dragend", _onDocumentDragEnd); restoreFirstAddOpacity(); if ("function" === typeof settings.onDragLeave) settings.onDragLeave.call(currentElement, event, self); currentElement = currentSide = null; }; this.destroy = function() { elementsCache.$element.off("dragenter", settings.items, onDragEnter).off("dragover", settings.items, onDragOver).off("drop", settings.items, onDrop).off("dragleave drop", settings.items, onDragLeave); }; init(); } }, function(pluginName, Plugin) { $.fn[pluginName] = function(options) { options = options || {}; this.each(function() { var instance = $.data(this, pluginName); if (instance instanceof Plugin) { if ("destroy" === options) { instance.destroy(); $.removeData(this, pluginName); } return; } else if ("destroy" === options) return; options.element = this; $.data(this, pluginName, new Plugin(options)); }); return this; }; }); })(jQuery); //#endregion //#region node_modules/@babel/runtime/helpers/esm/classCallCheck.js function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } var init_classCallCheck = __esmMin((() => {})); //#endregion //#region node_modules/@babel/runtime/helpers/esm/typeof.js function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) { return typeof o; } : function(o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } var init_typeof = __esmMin((() => {})); //#endregion //#region node_modules/@babel/runtime/helpers/esm/toPrimitive.js function toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } var init_toPrimitive = __esmMin((() => { init_typeof(); })); //#endregion //#region node_modules/@babel/runtime/helpers/esm/toPropertyKey.js function toPropertyKey(t) { var i = toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } var init_toPropertyKey = __esmMin((() => { init_typeof(); init_toPrimitive(); })); //#endregion //#region node_modules/@babel/runtime/helpers/esm/createClass.js function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o); } } function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } var init_createClass = __esmMin((() => { init_toPropertyKey(); })); //#endregion //#region node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } var init_assertThisInitialized = __esmMin((() => {})); //#endregion //#region node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } var init_possibleConstructorReturn = __esmMin((() => { init_typeof(); init_assertThisInitialized(); })); //#endregion //#region node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } var init_getPrototypeOf = __esmMin((() => {})); //#endregion //#region node_modules/@babel/runtime/helpers/esm/superPropBase.js function _superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = _getPrototypeOf(t));); return t; } var init_superPropBase = __esmMin((() => { init_getPrototypeOf(); })); //#endregion //#region node_modules/@babel/runtime/helpers/esm/get.js function _get() { return _get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function(e, t, r) { var p = _superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, _get.apply(null, arguments); } var init_get = __esmMin((() => { init_superPropBase(); })); //#endregion //#region node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } var init_setPrototypeOf = __esmMin((() => {})); //#endregion //#region node_modules/@babel/runtime/helpers/esm/inherits.js function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } var init_inherits = __esmMin((() => { init_setPrototypeOf(); })); //#endregion //#region node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } var init_arrayWithHoles = __esmMin((() => {})); //#endregion //#region node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e; var n; var i; var u; var a = []; var f = !0; var o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } var init_iterableToArrayLimit = __esmMin((() => {})); //#endregion //#region node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js function _arrayLikeToArray$10(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } var init_arrayLikeToArray = __esmMin((() => { __name(_arrayLikeToArray$10, "_arrayLikeToArray"); })); //#endregion //#region node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js function _unsupportedIterableToArray$10(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$10(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$10(r, a) : void 0; } } var init_unsupportedIterableToArray = __esmMin((() => { init_arrayLikeToArray(); __name(_unsupportedIterableToArray$10, "_unsupportedIterableToArray"); })); //#endregion //#region node_modules/@babel/runtime/helpers/esm/nonIterableRest.js function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var init_nonIterableRest = __esmMin((() => {})); //#endregion //#region node_modules/@babel/runtime/helpers/esm/slicedToArray.js function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray$10(r, e) || _nonIterableRest(); } var init_slicedToArray = __esmMin((() => { init_arrayWithHoles(); init_iterableToArrayLimit(); init_unsupportedIterableToArray(); init_nonIterableRest(); })); //#endregion //#region node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c); var u = i.value; } catch (n) { e(n); return; } i.done ? t(u) : Promise.resolve(u).then(r, o); } function _asyncToGenerator(n) { return function() { var t = this; var e = arguments; return new Promise(function(r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } var init_asyncToGenerator = __esmMin((() => {})); //#endregion //#region node_modules/@babel/runtime/helpers/esm/defineProperty.js function _defineProperty(e, r, t) { return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } var init_defineProperty = __esmMin((() => { init_toPropertyKey(); })); //#endregion //#region node_modules/@babel/runtime/helpers/OverloadYield.js var require_OverloadYield = /* @__PURE__ */ __commonJSMin(((exports, module) => { function _OverloadYield(e, d) { this.v = e, this.k = d; } module.exports = _OverloadYield, module.exports.__esModule = true, module.exports["default"] = module.exports; })); //#endregion //#region node_modules/@babel/runtime/helpers/regeneratorDefine.js var require_regeneratorDefine = /* @__PURE__ */ __commonJSMin(((exports, module) => { function _regeneratorDefine(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine(e, r, function(e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, module.exports.__esModule = true, module.exports["default"] = module.exports, _regeneratorDefine(e, r, n, t); } module.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports["default"] = module.exports; })); //#endregion //#region node_modules/@babel/runtime/helpers/regenerator.js var require_regenerator$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => { var regeneratorDefine = require_regeneratorDefine(); function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e; var t; var r = "function" == typeof Symbol ? Symbol : {}; var n = r.iterator || "@@iterator"; var o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator; var u = Object.create(c.prototype); return regeneratorDefine(u, "_invoke", function(r, n, o) { var i; var c; var u; var f = 0; var p = o || []; var y = !1; var G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o; var i = p[t]; var d = G.p; var l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function(o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function() { return this; }), t); var u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), regeneratorDefine(u), regeneratorDefine(u, o, "Generator"), regeneratorDefine(u, n, function() { return this; }), regeneratorDefine(u, "toString", function() { return "[object Generator]"; }), (module.exports = _regenerator = function _regenerator() { return { w: i, m: f }; }, module.exports.__esModule = true, module.exports["default"] = module.exports)(); } module.exports = _regenerator, module.exports.__esModule = true, module.exports["default"] = module.exports; })); //#endregion //#region node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js var require_regeneratorAsyncIterator = /* @__PURE__ */ __commonJSMin(((exports, module) => { var OverloadYield = require_OverloadYield(); var regeneratorDefine = require_regeneratorDefine(); function AsyncIterator(t, e) { function n(r, o, i, f) { try { var c = t[r](o); var u = c.value; return u instanceof OverloadYield ? e.resolve(u.v).then(function(t) { n("next", t, i, f); }, function(t) { n("throw", t, i, f); }) : e.resolve(u).then(function(t) { c.value = t, i(c); }, function(t) { return n("throw", t, i, f); }); } catch (t) { f(t); } } var r; this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function() { return this; })), regeneratorDefine(this, "_invoke", function(t, o, i) { function f() { return new e(function(e, r) { n(t, i, e, r); }); } return r = r ? r.then(f, f) : f(); }, !0); } module.exports = AsyncIterator, module.exports.__esModule = true, module.exports["default"] = module.exports; })); //#endregion //#region node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js var require_regeneratorAsyncGen = /* @__PURE__ */ __commonJSMin(((exports, module) => { var regenerator = require_regenerator$1(); var regeneratorAsyncIterator = require_regeneratorAsyncIterator(); function _regeneratorAsyncGen(r, e, t, o, n) { return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise); } module.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports["default"] = module.exports; })); //#endregion //#region node_modules/@babel/runtime/helpers/regeneratorAsync.js var require_regeneratorAsync = /* @__PURE__ */ __commonJSMin(((exports, module) => { var regeneratorAsyncGen = require_regeneratorAsyncGen(); function _regeneratorAsync(n, e, r, t, o) { var a = regeneratorAsyncGen(n, e, r, t, o); return a.next().then(function(n) { return n.done ? n.value : a.next(); }); } module.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports["default"] = module.exports; })); //#endregion //#region node_modules/@babel/runtime/helpers/regeneratorKeys.js var require_regeneratorKeys = /* @__PURE__ */ __commonJSMin(((exports, module) => { function _regeneratorKeys(e) { var n = Object(e); var r = []; for (var t in n) r.unshift(t); return function e() { for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e; return e.done = !0, e; }; } module.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports["default"] = module.exports; })); //#endregion //#region node_modules/@babel/runtime/helpers/typeof.js var require_typeof = /* @__PURE__ */ __commonJSMin(((exports, module) => { function _typeof(o) { "@babel/helpers - typeof"; return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) { return typeof o; } : function(o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o); } module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; })); //#endregion //#region node_modules/@babel/runtime/helpers/regeneratorValues.js var require_regeneratorValues = /* @__PURE__ */ __commonJSMin(((exports, module) => { var _typeof = require_typeof()["default"]; function _regeneratorValues(e) { if (null != e) { var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"]; var r = 0; if (t) return t.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) return { next: function next() { return e && r >= e.length && (e = void 0), { value: e && e[r++], done: !e }; } }; } throw new TypeError(_typeof(e) + " is not iterable"); } module.exports = _regeneratorValues, module.exports.__esModule = true, module.exports["default"] = module.exports; })); //#endregion //#region node_modules/@babel/runtime/helpers/regeneratorRuntime.js var require_regeneratorRuntime = /* @__PURE__ */ __commonJSMin(((exports, module) => { var OverloadYield = require_OverloadYield(); var regenerator = require_regenerator$1(); var regeneratorAsync = require_regeneratorAsync(); var regeneratorAsyncGen = require_regeneratorAsyncGen(); var regeneratorAsyncIterator = require_regeneratorAsyncIterator(); var regeneratorKeys = require_regeneratorKeys(); var regeneratorValues = require_regeneratorValues(); function _regeneratorRuntime() { "use strict"; var r = regenerator(); var e = r.m(_regeneratorRuntime); var t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor; function n(r) { var e = "function" == typeof r && r.constructor; return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name)); } var o = { "throw": 1, "return": 2, "break": 3, "continue": 3 }; function a(r) { var e; var t; return function(n) { e || (e = { stop: function stop() { return t(n.a, 2); }, "catch": function _catch() { return n.v; }, abrupt: function abrupt(r, e) { return t(n.a, o[r], e); }, delegateYield: function delegateYield(r, o, a) { return e.resultName = o, t(n.d, regeneratorValues(r), a); }, finish: function finish(r) { return t(n.f, r); } }, t = function t(r, _t, o) { n.p = e.prev, n.n = e.next; try { return r(_t, o); } finally { e.next = n.n; } }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n; try { return r.call(this, e); } finally { n.p = e.prev, n.n = e.next; } }; } return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() { return { wrap: function wrap(e, t, n, o) { return r.w(a(e), t, n, o && o.reverse()); }, isGeneratorFunction: n, mark: r.m, awrap: function awrap(r, e) { return new OverloadYield(r, e); }, AsyncIterator: regeneratorAsyncIterator, async: function async(r, e, t, o, u) { return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u); }, keys: regeneratorKeys, values: regeneratorValues }; }, module.exports.__esModule = true, module.exports["default"] = module.exports)(); } module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports; })); //#endregion //#region node_modules/@babel/runtime/regenerator/index.js var require_regenerator = /* @__PURE__ */ __commonJSMin(((exports, module) => { var runtime = require_regeneratorRuntime()(); module.exports = runtime; try { regeneratorRuntime = runtime; } catch (accidentalStrictMode) { if (typeof globalThis === "object") globalThis.regeneratorRuntime = runtime; else Function("r", "regeneratorRuntime = r")(runtime); } })); //#endregion //#region node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray$10(r); } var init_arrayWithoutHoles = __esmMin((() => { init_arrayLikeToArray(); })); //#endregion //#region node_modules/@babel/runtime/helpers/esm/iterableToArray.js function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } var init_iterableToArray = __esmMin((() => {})); //#endregion //#region node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var init_nonIterableSpread = __esmMin((() => {})); //#endregion //#region node_modules/@babel/runtime/helpers/esm/toConsumableArray.js function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray$10(r) || _nonIterableSpread(); } var init_toConsumableArray = __esmMin((() => { init_arrayWithoutHoles(); init_iterableToArray(); init_unsupportedIterableToArray(); init_nonIterableSpread(); })); //#endregion //#region assets/dev/js/editor/components/validator/base.js var require_base$4 = /* @__PURE__ */ __commonJSMin(((exports, module) => { module.exports = elementorModules.Module.extend({ errors: [], __construct: function __construct(settings) { var customValidationMethod = settings.customValidationMethod; if (customValidationMethod) this.validationMethod = customValidationMethod; }, getDefaultSettings: function getDefaultSettings() { return { validationTerms: {} }; }, isValid: function isValid() { var validationErrors = this.validationMethod.apply(this, arguments); if (validationErrors.length) { this.errors = validationErrors; return false; } return true; }, validationMethod: function validationMethod(newValue) { var validationTerms = this.getSettings("validationTerms"); var errors = []; if (validationTerms.required) { if (!("" + newValue).length) errors.push("Required value is empty"); } return errors; } }); })); //#endregion //#region assets/dev/js/editor/components/validator/number.js var require_number$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => { var Validator = require_base$4(); module.exports = Validator.extend({ validationMethod: function validationMethod(newValue) { var validationTerms = this.getSettings("validationTerms"); var errors = []; if (_.isFinite(newValue)) { if (void 0 !== validationTerms.min && newValue < validationTerms.min) errors.push("Value is less than minimum"); if (void 0 !== validationTerms.max && newValue > validationTerms.max) errors.push("Value is greater than maximum"); } return errors; } }); })); //#endregion //#region assets/dev/js/editor/components/validator/breakpoint.js function _callSuper$321(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$322() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct$322() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {})); } catch (t) {} return (_isNativeReflectConstruct$322 = function _isNativeReflectConstruct() { return !!t; })(); } var NumberValidator, BreakpointValidator; var init_breakpoint = __esmMin((() => { init_classCallCheck(); init_createClass(); init_possibleConstructorReturn(); init_getPrototypeOf(); init_inherits(); __name(_callSuper$321, "_callSuper"); __name(_isNativeReflectConstruct$322, "_isNativeReflectConstruct"); NumberValidator = require_number$1(); BreakpointValidator = /*#__PURE__*/ function(_NumberValidator) { function BreakpointValidator() { _classCallCheck(this, BreakpointValidator); return _callSuper$321(this, BreakpointValidator, arguments); } _inherits(BreakpointValidator, _NumberValidator); return _createClass(BreakpointValidator, [ { key: "getDefaultSettings", value: function getDefaultSettings() { return { validationTerms: { max: 5120 } }; } }, { key: "getPanelActiveBreakpoints", value: function getPanelActiveBreakpoints() { var panelBreakpoints = elementor.documents.currentDocument.config.settings.settings.active_breakpoints.map(function(breakpointName) { return breakpointName.replace("viewport_", ""); }); var panelActiveBreakpoints = {}; panelBreakpoints.forEach(function(breakpointName) { panelActiveBreakpoints[breakpointName] = elementorFrontend.config.responsive.breakpoints[breakpointName]; }); return panelActiveBreakpoints; } }, { key: "initBreakpointProperties", value: function initBreakpointProperties() { var _activeBreakpoints$br; var _activeBreakpoints$br2; var validationTerms = this.getSettings("validationTerms"); var activeBreakpoints = this.getPanelActiveBreakpoints(); var breakpointKeys = Object.keys(activeBreakpoints); this.breakpointIndex = breakpointKeys.indexOf(validationTerms.breakpointName); this.topBreakpoint = (_activeBreakpoints$br = activeBreakpoints[breakpointKeys[this.breakpointIndex + 1]]) === null || _activeBreakpoints$br === void 0 ? void 0 : _activeBreakpoints$br.value; this.bottomBreakpoint = (_activeBreakpoints$br2 = activeBreakpoints[breakpointKeys[this.breakpointIndex - 1]]) === null || _activeBreakpoints$br2 === void 0 ? void 0 : _activeBreakpoints$br2.value; } }, { key: "validationMethod", value: function validationMethod(newValue) { var validationTerms = this.getSettings("validationTerms"); var errors = NumberValidator.prototype.validationMethod.call(this, newValue); if (_.isFinite(newValue) || "" === newValue) { if (!this.validateMinMaxForBreakpoint(newValue, validationTerms)) errors.push("Value is not between the breakpoints above or under the edited breakpoint"); } return errors; } }, { key: "validateMinMaxForBreakpoint", value: function validateMinMaxForBreakpoint(newValue, validationTerms) { var breakpointDefaultValue = elementorFrontend.config.responsive.breakpoints[validationTerms.breakpointName].default_value; var isValid = true; this.initBreakpointProperties(); if ("mobile" === validationTerms.breakpointName && 320 === this.bottomBreakpoint) this.bottomBreakpoint -= 1; if (this.bottomBreakpoint) { if ("" !== newValue && newValue <= this.bottomBreakpoint) isValid = false; if ("" === newValue && breakpointDefaultValue <= this.bottomBreakpoint) isValid = false; } if (this.topBreakpoint) { if ("" !== newValue && newValue >= this.topBreakpoint) isValid = false; if ("" === newValue && breakpointDefaultValue >= this.topBreakpoint) isValid = false; } return isValid; } } ]); }(NumberValidator); })); //#endregion //#region assets/dev/js/editor/controls/base.js var require_base$3 = /* @__PURE__ */ __commonJSMin(((exports, module) => { init_defineProperty(); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function(r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function(r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var ControlBaseView = Marionette.CompositeView.extend({ ui: function ui() { return { controlTitle: ".elementor-control-title" }; }, behaviors: function behaviors() { return elementor.hooks.applyFilters("controls/base/behaviors", {}, this); }, getBehavior: function getBehavior(name) { return this._behaviors[Object.keys(this.behaviors()).indexOf(name)]; }, className: function className() { var classes = "elementor-control elementor-control-" + this.model.get("name") + " elementor-control-type-" + this.model.get("type"); var modelClasses = this.model.get("classes"); var responsive = this.model.get("responsive"); if (!_.isEmpty(modelClasses)) classes += " " + modelClasses; if (!_.isEmpty(responsive)) { var responsiveControlName = responsive.max || responsive.min; classes += " elementor-control-responsive-" + responsiveControlName; } return classes; }, templateHelpers: function templateHelpers() { var controlData = { _cid: this.model.cid }; return { view: this, data: _.extend({}, this.model.toJSON(), controlData) }; }, getTemplate: function getTemplate() { return Marionette.TemplateCache.get("#tmpl-elementor-control-" + this.model.get("type") + "-content"); }, initialize: function initialize(options) { var label = this.model.get("label"); Object.defineProperty(this, "container", { get: function get() { if (!options.container) { var settingsModel = options.elementSettingsModel; var view = $e.components.get("document").utils.findViewById(settingsModel.id); if (view && view.getContainer) options.container = view.getContainer(); else { if (!settingsModel.id) settingsModel.id = "bc-" + elementorCommon.helpers.getUniqueId(); options.container = new elementorModules.editor.Container({ type: "bc-container", id: settingsModel.id, model: settingsModel, settings: settingsModel, label, view: false, parent: false, renderer: false, controls: settingsModel.options.controls }); } } return options.container; } }); Object.defineProperty(this, "elementSettingsModel", { get: function get() { elementorDevTools.deprecation.deprecated("elementSettingsModel", "2.8.0", "container.settings"); return options.container ? options.container.settings : options.elementSettingsModel; } }); var controlType = this.model.get("type"); var controlSettings = jQuery.extend(true, {}, elementor.config.controls[controlType], this.model.attributes); this.model.set(controlSettings); var settings = this.container ? this.container.settings : this.elementSettingsModel; this.listenTo(settings, "change", this.onAfterChange); if (this.model.attributes.responsive) { this.onDeviceModeChange = this.onDeviceModeChange.bind(this); elementor.listenTo(elementor.channels.deviceMode, "change", this.onDeviceModeChange); } }, onDestroy: function onDestroy() { elementor.stopListening(elementor.channels.deviceMode, "change", this.onDeviceModeChange); }, onDeviceModeChange: function onDeviceModeChange() { this.toggleControlVisibility(); }, onAfterChange: function onAfterChange() { this.toggleControlVisibility(); }, toggleControlVisibility: function toggleControlVisibility() { var settings = this.container ? this.container.settings : this.elementSettingsModel; var isVisible = elementor.helpers.isActiveControl(this.model, settings.attributes, settings.controls); this.$el.toggleClass("elementor-hidden-control", !isVisible); elementor.getPanelView().updateScrollbar(); }, onRender: function onRender() { var layoutType = this.model.get("label_block") ? "block" : "inline"; var showLabel = this.model.get("show_label"); var elClasses = "elementor-label-" + layoutType; elClasses += " elementor-control-separator-" + this.model.get("separator"); if (!showLabel) elClasses += " elementor-control-hidden-label"; this.$el.addClass(elClasses); this.toggleControlVisibility(); }, reRoute: function reRoute(controlActive) { $e.route($e.routes.getCurrent("panel"), this.getControlInRouteArgs(controlActive ? this.getControlPath() : ""), { history: false }); }, getControlInRouteArgs: function getControlInRouteArgs(path) { return _objectSpread(_objectSpread({}, $e.routes.getCurrentArgs("panel")), {}, { activeControl: path }); }, getControlPath: function getControlPath() { var controlPath = this.model.get("name"); var parent = this._parent; while (!parent.$el.hasClass("elementor-controls-stack")) { controlPath = (parent.model.get("name") || parent.model.get("_id")) + "/" + controlPath; parent = parent._parent; } return controlPath; } }); module.exports = ControlBaseView; })); //#endregion //#region assets/dev/js/editor/components/dynamic-tags/tag-controls-stack-empty.js var require_tag_controls_stack_empty = /* @__PURE__ */ __commonJSMin(((exports, module) => { module.exports = Marionette.ItemView.extend({ className: "elementor-tag-controls-stack-empty", template: "#tmpl-elementor-tag-controls-stack-empty" }); })); //#endregion //#region assets/dev/js/editor/components/dynamic-tags/tag-controls-stack.js var require_tag_controls_stack = /* @__PURE__ */ __commonJSMin(((exports, module) => { var EmptyView = require_tag_controls_stack_empty(); module.exports = elementorModules.editor.views.ControlsStack.extend({ activeTab: "content", template: _.noop, emptyView: EmptyView, isEmpty: function isEmpty() { return this.collection.length < 2; }, childViewOptions: function childViewOptions() { return { container: this.options.container }; }, getNamespaceArray: function getNamespaceArray() { var currentPageView = elementor.getPanelView().getCurrentPageView(); var eventNamespace = currentPageView.getNamespaceArray(); eventNamespace.push(currentPageView.activeSection); eventNamespace.push(this.getOption("controlName")); eventNamespace.push(this.getOption("name")); return eventNamespace; }, onRenderTemplate: function onRenderTemplate() { this.activateFirstSection(); } }); })); //#endregion //#region assets/dev/js/editor/components/dynamic-tags/tag-panel-view.js var require_tag_panel_view = /* @__PURE__ */ __commonJSMin(((exports, module) => { var TagControlsStack = require_tag_controls_stack(); module.exports = Marionette.ItemView.extend({ className: "elementor-dynamic-cover e-input-style", tagControlsStack: null, templateHelpers: function templateHelpers() { var helpers = {}; if (this.model) helpers.controls = this.model.options.controls; return helpers; }, ui: { remove: ".elementor-dynamic-cover__remove" }, events: function events() { var events = { "click @ui.remove": "onRemoveClick" }; if (this.hasSettings()) events.click = "onClick"; return events; }, getTemplate: function getTemplate() { var config = this.getTagConfig(); var templateFunction = Marionette.TemplateCache.get("#tmpl-elementor-control-dynamic-cover"); var renderedTemplate = Marionette.Renderer.render(templateFunction, { hasSettings: this.hasSettings(), isRemovable: !this.getOption("dynamicSettings").default, title: config.title, content: config.panel_template }); return Marionette.TemplateCache.prototype.compileTemplate(renderedTemplate.trim()); }, getTagConfig: function getTagConfig() { return elementor.dynamicTags.getConfig("tags." + this.getOption("name")); }, initSettingsPopup: function initSettingsPopup() { var settingsPopupOptions = { className: "elementor-tag-settings-popup", position: { my: "left top+5", at: "left bottom", of: this.$el, autoRefresh: true }, hide: { ignore: ".select2-container" } }; var settingsPopup = elementorCommon.dialogsManager.createWidget("buttons", settingsPopupOptions); this.getSettingsPopup = function() { return settingsPopup; }; }, hasSettings: function hasSettings() { return !!Object.values(this.getTagConfig().controls).length; }, showSettingsPopup: function showSettingsPopup() { if (!this.tagControlsStack) this.initTagControlsStack(); var settingsPopup = this.getSettingsPopup(); if (settingsPopup.isVisible()) return; settingsPopup.show(); }, initTagControlsStack: function initTagControlsStack() { this.tagControlsStack = new TagControlsStack({ model: this.model, controls: this.model.controls, name: this.options.name, controlName: this.options.controlName, container: this.options.container, el: this.getSettingsPopup().getElements("message")[0] }); this.tagControlsStack.render(); }, initModel: function initModel() { this.model = new elementorModules.editor.elements.models.BaseSettings(this.getOption("settings"), { controls: this.getTagConfig().controls }); }, initialize: function initialize() { this.initModel(); if (!this.hasSettings()) return; this.initSettingsPopup(); this.listenTo(this.model, "change", this.render); }, onClick: function onClick() { this.showSettingsPopup(); }, onRemoveClick: function onRemoveClick(event) { event.stopPropagation(); this.destroy(); this.trigger("remove"); }, onDestroy: function onDestroy() { if (this.hasSettings()) this.getSettingsPopup().destroy(); if (this.tagControlsStack) this.tagControlsStack.destroy(); } }); })); //#endregion //#region assets/dev/js/editor/components/dynamic-tags/control-behavior.js var require_control_behavior = /* @__PURE__ */ __commonJSMin(((exports, module) => { init_defineProperty(); var TagPanelView = require_tag_panel_view(); module.exports = Marionette.Behavior.extend({ tagView: null, listenerAttached: false, initialize: function initialize() { if (!this.listenerAttached) { this.listenTo(this.view.options.container.settings, "change:external:__dynamic__", this.onAfterExternalChange); this.listenerAttached = true; } }, shouldRenderTools: function shouldRenderTools() { if (this.getOption("dynamicSettings").default) return false; var isFeatureAvailableToUser = elementor.helpers.hasPro() && !elementor.helpers.hasProAndNotConnected(); var hasTags = this.getOption("tags").length > 0; return !isFeatureAvailableToUser || hasTags; }, renderTools: function renderTools() { var _this = this; if (!this.shouldRenderTools()) return; var $dynamicSwitcher = jQuery(Marionette.Renderer.render("#tmpl-elementor-control-dynamic-switcher")); $dynamicSwitcher.on("click", function(event) { return _this.onDynamicSwitcherClick(event); }); this.$el.find(".elementor-control-dynamic-switcher-wrapper").append($dynamicSwitcher); this.ui.dynamicSwitcher = $dynamicSwitcher; if ("color" === this.view.model.get("type")) if (this.view.colorPicker) this.moveDynamicSwitcherToColorPicker(); else setTimeout(function() { return _this.moveDynamicSwitcherToColorPicker(); }); this.ui.dynamicSwitcher.tipsy({ title: function title() { return this.getAttribute("data-tooltip"); }, gravity: "s" }); }, moveDynamicSwitcherToColorPicker: function moveDynamicSwitcherToColorPicker() { var $colorPickerToolsContainer = this.view.colorPicker.$pickerToolsContainer; this.ui.dynamicSwitcher.removeClass("elementor-control-unit-1").addClass("e-control-tool"); var $eyedropper = $colorPickerToolsContainer.find(".elementor-control-element-color-picker"); if ($eyedropper.length) this.ui.dynamicSwitcher.insertBefore($eyedropper); else $colorPickerToolsContainer.append(this.ui.dynamicSwitcher); }, toggleDynamicClass: function toggleDynamicClass() { this.$el.toggleClass("elementor-control-dynamic-value", this.isDynamicMode()); }, isDynamicMode: function isDynamicMode() { var dynamicSettings = this.view.container.settings.get("__dynamic__"); return !!(dynamicSettings && dynamicSettings[this.view.model.get("name")]); }, createTagsList: function createTagsList() { var tags = _.groupBy(this.getOption("tags"), "group"); var groups = elementor.dynamicTags.getConfig("groups"); var $tagsList = this.ui.tagsList = jQuery("
", { class: "elementor-tags-list" }); var $tagsListInner = jQuery("
", { class: "elementor-tags-list__inner" }); $tagsList.append($tagsListInner); jQuery.each(groups, function(groupName) { var groupTags = tags[groupName]; if (!groupTags) return; var group = this; var $groupTitle = jQuery("
", { class: "elementor-tags-list__group-title" }).text(group.title); $tagsListInner.append($groupTitle); groupTags.forEach(function(tag) { var $tag = jQuery("
", { class: "elementor-tags-list__item" }); $tag.text(tag.title).attr("data-tag-name", tag.name); $tagsListInner.append($tag); }); }); if (!elementor.helpers.hasPro() && Object.keys(tags).length) { var proTeaser = Marionette.Renderer.render("#tmpl-elementor-dynamic-tags-promo", { promotionUrl: elementor.config.dynamicPromotionURL.replace("%s", this.view.model.get("name")) }); $tagsListInner.append(proTeaser); } $tagsListInner.on("click", ".elementor-tags-list__item", this.onTagsListItemClick.bind(this)); elementorCommon.elements.$body.append($tagsList); }, getTagsList: function getTagsList() { if (!this.ui.tagsList) this.createTagsList(); return this.ui.tagsList; }, toggleTagsList: function toggleTagsList() { var $tagsList = this.getTagsList(); if ($tagsList.is(":visible")) { $tagsList.hide(); return; } var direction = elementorCommon.config.isRTL ? "left" : "right"; $tagsList.show().position({ my: "".concat(direction, " top"), at: "".concat(direction, " bottom+5"), of: this.ui.dynamicSwitcher }); }, setTagView: function setTagView(id, name, settings) { if (this.tagView) this.tagView.destroy(); var tagView = this.tagView = new TagPanelView({ id, name, settings, controlName: this.view.model.get("name"), dynamicSettings: this.getOption("dynamicSettings") }); var elementContainer = this.view.options.container; var tagViewLabel = elementContainer.controls[tagView.options.controlName].label; tagView.options.container = new elementorModules.editor.Container({ type: "dynamic", id, model: tagView.model, settings: tagView.model, view: tagView, parent: elementContainer, label: elementContainer.label + " " + tagViewLabel, controls: tagView.model.options.controls, renderer: elementContainer }); tagView.render(); this.$el.find(".elementor-control-tag-area").after(tagView.el); this.listenTo(tagView, "remove", this.onTagViewRemove.bind(this)); }, setDefaultTagView: function setDefaultTagView() { var tagData = elementor.dynamicTags.tagTextToTagData(this.getDynamicValue()); this.setTagView(tagData.id, tagData.name, tagData.settings); }, tagViewToTagText: function tagViewToTagText() { var tagView = this.tagView; return elementor.dynamicTags.tagDataToTagText(tagView.getOption("id"), tagView.getOption("name"), tagView.model); }, getDynamicValue: function getDynamicValue() { return this.view.container.dynamic.get(this.view.model.get("name")); }, destroyTagView: function destroyTagView() { if (this.tagView) { this.tagView.destroy(); this.tagView = null; } }, showPromotion: function showPromotion() { var hasProAndNotConnected = elementor.helpers.hasProAndNotConnected(); var dialogOptions = { title: (0, _wordpress_i18n.__)("Dynamic Content", "elementor"), content: (0, _wordpress_i18n.__)("Create more personalized and dynamic sites by populating data from various sources with dozens of dynamic tags to choose from.", "elementor"), targetElement: this.ui.dynamicSwitcher, position: { blockStart: "-10" }, actionButton: { url: hasProAndNotConnected ? elementorProEditorConfig.urls.connect : elementor.config.dynamicPromotionURL.replace("%s", this.view.model.get("name")), text: hasProAndNotConnected ? (0, _wordpress_i18n.__)("Connect & Activate", "elementor") : (0, _wordpress_i18n.__)("Upgrade", "elementor") } }; elementor.promotion.showDialog(dialogOptions); }, onRender: function onRender() { this.$el.addClass("elementor-control-dynamic"); this.renderTools(); this.toggleDynamicClass(); if (this.isDynamicMode()) this.setDefaultTagView(); }, onDynamicSwitcherClick: function onDynamicSwitcherClick(event) { event.stopPropagation(); if (this.getOption("tags").length) this.toggleTagsList(); else this.showPromotion(); }, onTagsListItemClick: function onTagsListItemClick(event) { var $tag = jQuery(event.currentTarget); this.setTagView(elementorCommon.helpers.getUniqueId(), $tag.data("tagName"), {}); if (this.view.getGlobalKey()) this.view.triggerMethod("unset:global:value"); if (this.isDynamicMode()) $e.run("document/dynamic/settings", { container: this.view.options.container, settings: _defineProperty({}, this.view.model.get("name"), this.tagViewToTagText()) }); else $e.run("document/dynamic/enable", { container: this.view.options.container, settings: _defineProperty({}, this.view.model.get("name"), this.tagViewToTagText()) }); this.toggleDynamicClass(); this.toggleTagsList(); if (this.tagView.getTagConfig().settings_required) this.tagView.showSettingsPopup(); }, onTagViewRemove: function onTagViewRemove() { $e.run("document/dynamic/disable", { container: this.view.options.container, settings: _defineProperty({}, this.view.model.get("name"), this.tagViewToTagText()) }); this.toggleDynamicClass(); }, onAfterExternalChange: function onAfterExternalChange() { this.destroyTagView(); if (this.isDynamicMode()) this.setDefaultTagView(); this.toggleDynamicClass(); }, onDestroy: function onDestroy() { this.destroyTagView(); if (this.ui.tagsList) this.ui.tagsList.remove(); } }); })); //#endregion //#region assets/dev/js/editor/controls/base-data.js var require_base_data = /* @__PURE__ */ __commonJSMin(((exports, module) => { init_slicedToArray(); init_defineProperty(); init_breakpoint(); function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0; var F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o; var a = !0; var u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } var ControlBaseView = require_base$3(); var TagsBehavior = require_control_behavior(); var Validator = require_base$4(); var NumberValidator = require_number$1(); var ControlBaseDataView = ControlBaseView.extend({ validatorTypes: { Base: Validator, Number: NumberValidator, Breakpoint: BreakpointValidator }, ui: function ui() { var ui = ControlBaseView.prototype.ui.apply(this, arguments); _.extend(ui, { input: "input[data-setting][type!=\"checkbox\"][type!=\"radio\"]", checkbox: "input[data-setting][type=\"checkbox\"]", radio: "input[data-setting][type=\"radio\"]", select: "select[data-setting]", textarea: "textarea[data-setting]", responsiveSwitchersSibling: "".concat(ui.controlTitle, "[data-e-responsive-switcher-sibling!=\"false\"]"), responsiveSwitchers: ".elementor-responsive-switcher", contentEditable: "[contenteditable=\"true\"]" }); return ui; }, templateHelpers: function templateHelpers() { var controlData = ControlBaseView.prototype.templateHelpers.apply(this, arguments); controlData.data.controlValue = this.getControlValue(); return controlData; }, events: function events() { return { "input @ui.input": "onBaseInputTextChange", "change @ui.checkbox": "onBaseInputChange", "change @ui.radio": "onBaseInputChange", "input @ui.textarea": "onBaseInputTextChange", "change @ui.select": "onBaseInputChange", "input @ui.contentEditable": "onBaseInputTextChange", "click @ui.responsiveSwitchers": "onResponsiveSwitchersClick" }; }, behaviors: function behaviors() { var behaviors = ControlBaseView.prototype.behaviors.apply(this, arguments); var dynamicSettings = this.options.model.get("dynamic"); if (dynamicSettings && dynamicSettings.active) { var tags = _.filter(elementor.dynamicTags.getConfig("tags"), function(tag) { return tag.editable && _.intersection(tag.categories, dynamicSettings.categories).length; }); if (tags.length || elementor.config.user.is_administrator) behaviors.tags = { behaviorClass: TagsBehavior, tags, dynamicSettings }; } return behaviors; }, initialize: function initialize() { ControlBaseView.prototype.initialize.apply(this, arguments); this.registerValidators(); if (this.model.get("responsive")) this.setPlaceholderFromParent(); if (void 0 === this.model.get("inherit_placeholders")) this.model.set("inherit_placeholders", true); var settings = this.container ? this.container.settings : this.elementSettingsModel; this.listenTo(settings, "change:external:" + this.model.get("name"), this.onAfterExternalChange); }, getControlValue: function getControlValue() { return this.container.settings.get(this.model.get("name")); }, getGlobalKey: function getGlobalKey() { return this.container.globals.get(this.model.get("name")); }, getGlobalValue: function getGlobalValue() { return this.globalValue; }, getGlobalDefault: function getGlobalDefault() { var controlGlobalArgs = this.model.get("global"); if (controlGlobalArgs !== null && controlGlobalArgs !== void 0 && controlGlobalArgs.default) { if (!elementor.config.globals.defaults_enabled[this.getGlobalMeta().controlType]) return ""; var _$e$data$commandExtra = $e.data.commandExtractArgs(controlGlobalArgs.default); var command = _$e$data$commandExtra.command; var args = _$e$data$commandExtra.args; var result = $e.data.getCache($e.components.get("globals"), command, args.query); return result === null || result === void 0 ? void 0 : result.value; } return ""; }, getCurrentValue: function getCurrentValue() { if (this.getGlobalKey() && !this.globalValue) return ""; if (this.globalValue) return this.globalValue; var controlValue = this.getControlValue(); if (controlValue) return controlValue; return this.getGlobalDefault(); }, isGlobalActive: function isGlobalActive() { var _this$options$model$g; return (_this$options$model$g = this.options.model.get("global")) === null || _this$options$model$g === void 0 ? void 0 : _this$options$model$g.active; }, setValue: function setValue(value) { this.setSettingsModel(value); }, setSettingsModel: function setSettingsModel(value) { var key = this.model.get("name"); $e.run("document/elements/settings", { container: this.options.container, settings: _defineProperty({}, key, value) }); this.triggerMethod("settings:change"); }, applySavedValue: function applySavedValue() { this.setInputValue("[data-setting=\"" + this.model.get("name") + "\"]", this.getControlValue()); }, getEditSettings: function getEditSettings(setting) { var settings = this.getOption("elementEditSettings").toJSON(); if (setting) return settings[setting]; return settings; }, setEditSetting: function setEditSetting(settingKey, settingValue) { (this.getOption("elementEditSettings") || this.getOption("container").settings).set(settingKey, settingValue); }, /** * Get the placeholder for the current control. * * @return {*} placeholder */ getControlPlaceholder: function getControlPlaceholder() { var placeholder = this.model.get("placeholder"); if (this.model.get("responsive") && this.model.get("inherit_placeholders")) placeholder = placeholder || this.container.placeholders[this.model.get("name")]; return placeholder; }, /** * Get the responsive parent view if exists. * * @return {ControlBaseDataView|undefined} responsive parent view if exists */ getResponsiveParentView: function getResponsiveParentView() { var parent = this.model.get("parent"); try { return parent && this.container.panel.getControlView(parent); } catch (e) {} }, /** * Get the responsive children views if exists. * * @return {ControlBaseDataView|null} responsive children views if exists */ getResponsiveChildrenViews: function getResponsiveChildrenViews() { var children = this.model.get("inheritors"); var views = []; try { var _iterator = _createForOfIteratorHelper(children); var _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var child = _step.value; views.push(this.container.panel.getControlView(child)); } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } } catch (e) {} return views; }, /** * Get prepared placeholder from the responsive parent, and put it into current * control model as placeholder. */ setPlaceholderFromParent: function setPlaceholderFromParent() { var parent = this.getResponsiveParentView(); if (parent) this.container.placeholders[this.model.get("name")] = parent.preparePlaceholderForChildren(); }, /** * Returns the value of the current control if exists, or the parent value if not, * so responsive children can set it as their placeholder. When there are multiple * inputs, the inputs which are empty on this control will inherit their values * from the responsive parent. * For example, if on desktop the padding of all edges is 10, and on tablet only * padding right and left is set to 15, the mobile control placeholder will * eventually be: { top: 10, right: 15, left: 15, bottom: 10 }, because of the * inheritance of multiple values. * * @return {*} value of the current control if exists, or the parent value if not */ preparePlaceholderForChildren: function preparePlaceholderForChildren() { var _this$getResponsivePa; var cleanValue = this.getCleanControlValue(); var parentValue = (_this$getResponsivePa = this.getResponsiveParentView()) === null || _this$getResponsivePa === void 0 ? void 0 : _this$getResponsivePa.preparePlaceholderForChildren(); if (cleanValue instanceof Object) return Object.assign({}, parentValue, cleanValue); return cleanValue || parentValue; }, /** * Start the re-rendering recursive chain from the responsive child of this * control. It's useful when the current control value is changed and we want * to update all responsive children. In this case, the re-rendering is supposed * to be applied only from the responsive child of this control and on. */ propagatePlaceholder: function propagatePlaceholder() { var _iterator2 = _createForOfIteratorHelper(this.getResponsiveChildrenViews()); var _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) _step2.value.renderWithChildren(); } catch (err) { _iterator2.e(err); } finally { _iterator2.f(); } }, /** * Re-render current control and trigger this method on the responsive child. * The purpose of those actions is to recursively re-render all responsive * children. */ renderWithChildren: function renderWithChildren() { this.render(); this.propagatePlaceholder(); }, /** * Get control value without empty properties, and without default values. * * @return {{}} control value without empty properties, and without default values */ getCleanControlValue: function getCleanControlValue() { var value = this.getControlValue(); return value && value !== this.model.get("default") ? value : void 0; }, onAfterChange: function onAfterChange(control) { if (Object.keys(control.changed).includes(this.model.get("name"))) this.propagatePlaceholder(); ControlBaseView.prototype.onAfterChange.apply(this, arguments); }, getInputValue: function getInputValue(input) { var $input = this.$(input); if ($input.is("[contenteditable=\"true\"]")) return $input.html(); var inputValue = $input.val(); var inputType = $input.attr("type"); if (-1 !== ["radio", "checkbox"].indexOf(inputType)) return $input.prop("checked") ? inputValue : ""; if ("number" === inputType && _.isFinite(inputValue)) return +inputValue; if ("SELECT" === input.tagName && $input.prop("multiple") && null === inputValue) inputValue = []; return inputValue; }, setInputValue: function setInputValue(input, value) { var $input = this.$(input); var inputType = $input.attr("type"); if ("checkbox" === inputType) $input.prop("checked", !!value); else if ("radio" === inputType) $input.filter("[value=\"" + value + "\"]").prop("checked", true); else $input.val(value); }, addValidator: function addValidator(validator) { this.validators.push(validator); }, registerValidators: function registerValidators() { var _this = this; this.validators = []; var validationTerms = {}; if (this.model.get("required")) validationTerms.required = true; if (!jQuery.isEmptyObject(validationTerms)) this.addValidator(new this.validatorTypes.Base({ validationTerms })); var validators = this.model.get("validators"); if (validators) Object.entries(validators).forEach(function(_ref) { var _ref2 = _slicedToArray(_ref, 2); var key = _ref2[0]; var args = _ref2[1]; _this.addValidator(new _this.validatorTypes[key]({ validationTerms: args })); }); }, onBeforeRender: function onBeforeRender() { this.setPlaceholderFromParent(); }, onRender: function onRender() { ControlBaseView.prototype.onRender.apply(this, arguments); if (this.model.get("responsive")) this.renderResponsiveSwitchers(); this.applySavedValue(); this.triggerMethod("ready"); this.toggleControlVisibility(); this.addTooltip(); }, onBaseInputTextChange: function onBaseInputTextChange(event) { this.onBaseInputChange(event); }, onBaseInputChange: function onBaseInputChange(event) { clearTimeout(this.correctionTimeout); var input = event.currentTarget; var value = this.getInputValue(input); var validators = this.validators.slice(0); var settingsValidators = this.container.settings.validators[this.model.get("name")]; if (settingsValidators) validators = validators.concat(settingsValidators); if (validators) { var oldValue = this.getControlValue(input.dataset.setting); if (!validators.every(function(validator) { return validator.isValid(value, oldValue); })) { this.correctionTimeout = setTimeout(this.setInputValue.bind(this, input, oldValue), 1200); return; } } this.updateElementModel(value, input); this.triggerMethod("input:change", event); }, onResponsiveSwitchersClick: function onResponsiveSwitchersClick(event) { var $switcher = jQuery(event.currentTarget); var device = $switcher.data("device"); var $switchersWrapper = this.ui.responsiveSwitchersWrapper; var selectedOption = $switcher.index(); $switchersWrapper.toggleClass("elementor-responsive-switchers-open"); $switchersWrapper[0].style.setProperty("--selected-option", selectedOption); this.triggerMethod("responsive:switcher:click", device); elementor.changeDeviceMode(device); }, renderResponsiveSwitchers: function renderResponsiveSwitchers() { var templateHtml = Marionette.Renderer.render("#tmpl-elementor-control-responsive-switchers", this.model.attributes); this.ui.responsiveSwitchersSibling.after(templateHtml); this.ui.responsiveSwitchersWrapper = this.$el.find(".elementor-control-responsive-switchers"); }, onAfterExternalChange: function onAfterExternalChange() { this.hideTooltip(); this.applySavedValue(); }, addTooltip: function addTooltip() { this.ui.tooltipTargets = this.$el.find(".tooltip-target"); if (!this.ui.tooltipTargets.length) return; this.ui.tooltipTargets.tipsy({ gravity: function gravity() { var gravity = jQuery(this).data("tooltip-pos"); if (void 0 !== gravity) return gravity; return "s"; }, title: function title() { return this.getAttribute("data-tooltip"); } }); }, hideTooltip: function hideTooltip() { if (this.ui.tooltipTargets.length) this.ui.tooltipTargets.tipsy("hide"); }, updateElementModel: function updateElementModel(value) { this.setValue(value); } }, { getStyleValue: function getStyleValue(placeholder, controlValue, controlData) { if ("DEFAULT" === placeholder) return controlData.default; return controlValue; }, onPasteStyle: function onPasteStyle() { return true; } }); module.exports = ControlBaseDataView; })); //#endregion //#region assets/dev/js/editor/utils/color-picker.js function _callSuper$320(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$321() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct$321() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {})); } catch (t) {} return (_isNativeReflectConstruct$321 = function _isNativeReflectConstruct() { return !!t; })(); } var ColorPicker; var init_color_picker = __esmMin((() => { init_classCallCheck(); init_createClass(); init_possibleConstructorReturn(); init_getPrototypeOf(); init_inherits(); __name(_callSuper$320, "_callSuper"); __name(_isNativeReflectConstruct$321, "_isNativeReflectConstruct"); ColorPicker = /*#__PURE__*/ function(_elementorModules$Mod) { function ColorPicker() { var _this; _classCallCheck(this, ColorPicker); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key]; _this = _callSuper$320(this, ColorPicker, [].concat(args)); _this.createPicker(); return _this; } _inherits(ColorPicker, _elementorModules$Mod); return _createClass(ColorPicker, [ { key: "getDefaultSettings", value: function getDefaultSettings() { return { picker: { theme: "monolith", position: "bottom-middle", components: { opacity: true, hue: true, interaction: { input: true, hex: true, rgba: true, hsla: true } } }, classes: { active: "elementor-active", pickerHeader: "elementor-color-picker__header", pickerToolsContainer: "e-color-picker__tools", pickerTool: "e-control-tool", clearButton: "e-color-picker__clear", plusIcon: "eicon-plus" } }; } }, { key: "createPicker", value: function createPicker() { var _this2 = this; var pickerSettings = this.getSettings("picker"); pickerSettings.default = pickerSettings.default || null; this.picker = new Pickr(pickerSettings); this.picker.setColor(pickerSettings.default || "#020101"); this.color = this.processColor(); this.picker.on("change", function() { return _this2.onPickerChange(); }).on("clear", function() { return _this2.onPickerClear(); }).on("show", function() { return _this2.onPickerShow(); }).on("hide", function() { return _this2.onPickerHide(); }); this.$pickerAppContainer = jQuery(this.picker.getRoot().app); this.createPickerHeader(); } }, { key: "addTipsyToClearButton", value: function addTipsyToClearButton() { this.$clearButton.tipsy({ title: function title() { return (0, _wordpress_i18n.__)("Clear", "elementor"); }, gravity: function gravity() { return "s"; } }); } }, { key: "processColor", value: function processColor() { var color = this.picker.getColor(); var colorRepresentation; if (1 === color.a) colorRepresentation = color.toHEXA(); else colorRepresentation = color.toRGBA(); return colorRepresentation.toString(); } }, { key: "getColor", value: function getColor() { return this.color; } }, { key: "createPickerHeader", value: function createPickerHeader() { var classes = this.getSettings().classes; var $pickerHeader = jQuery("
", { class: classes.pickerHeader }).text((0, _wordpress_i18n.__)("Color Picker", "elementor")); var $pickerToolsContainer = jQuery("
", { class: classes.pickerToolsContainer }); var addButton = this.getSettings("addButton"); this.$pickerToolsContainer = $pickerToolsContainer; if (addButton) this.createAddButton(); this.createClearButton(); $pickerToolsContainer.append(this.$clearButton, this.$addButton); $pickerHeader.append($pickerToolsContainer); this.$pickerAppContainer.prepend($pickerHeader); } }, { key: "createAddButton", value: function createAddButton() { var _this3 = this; var classes = this.getSettings().classes; this.$addButton = jQuery("