'.__('It seems that you haven\'t configured GoSMTP mailer yet or it is set to default PHP. You need to setup mailer to send emails via SMTP. To setup the mailer settings click').' '.__('here').'.
';
}
do_action('gosmtp_show_notices');
}
/*! elementor - v3.29.0 - 04-06-2025 */
/******/ (() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({
/***/ "../assets/dev/js/editor/container/container.js":
/*!******************************************************!*\
!*** ../assets/dev/js/editor/container/container.js ***!
\******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _readOnlyError2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/readOnlyError */ "../node_modules/@babel/runtime/helpers/readOnlyError.js"));
var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"));
var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _argsObject = _interopRequireDefault(__webpack_require__(/*! ../../modules/imports/args-object */ "../assets/dev/js/modules/imports/args-object.js"));
var _panel = _interopRequireDefault(__webpack_require__(/*! ./panel */ "../assets/dev/js/editor/container/panel.js"));
var _childrenArray = _interopRequireDefault(__webpack_require__(/*! ./model/children-array */ "../assets/dev/js/editor/container/model/children-array.js"));
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
/**
* @typedef {import('../../../../lib/backbone/backbone.marionette')} Backbone
* @typedef {import('../../../../lib/backbone/backbone.marionette')} Marionette
* @typedef {import('../elements/views/base')} BaseElementView
* @typedef {import('../elements/views/section')} SectionView
* @typedef {import('../views/base-container')} BaseContainer
* @typedef {import('../elements/models/base-element-model')} BaseElementModel
*/
/**
* TODO: ViewsOptions
*
* @typedef {(Marionette.View|Marionette.CompositeView|BaseElementView|SectionView|BaseContainer)} ViewsOptions
*/
var Container = exports["default"] = /*#__PURE__*/function (_ArgsObject) {
/**
* Function constructor().
*
* Create container.
*
* @param {{}} args
*
* @throws {Error}
*/
function Container(args) {
var _this;
(0, _classCallCheck2.default)(this, Container);
_this = _callSuper(this, Container, [args]);
// Validate args.
/**
* Container type.
*
* @type {string}
*/
(0, _defineProperty2.default)(_this, "type", void 0);
/**
* Container id.
*
* @type {string}
*/
(0, _defineProperty2.default)(_this, "id", void 0);
/**
* Document Object.
*
* @type {{}}
*/
(0, _defineProperty2.default)(_this, "document", void 0);
/**
* Container model.
*
* @type {(Backbone.Model|BaseElementModel)}
*/
(0, _defineProperty2.default)(_this, "model", void 0);
/**
* Container settings.
*
* @type {Backbone.Model}
*/
(0, _defineProperty2.default)(_this, "settings", void 0);
/**
* Container view.
*
* @type {ViewsOptions}
*/
(0, _defineProperty2.default)(_this, "view", void 0);
/**
* Container parent.
*
* @type {Container}
*/
(0, _defineProperty2.default)(_this, "parent", void 0);
/**
* Container children(s).
*
* @type {ChildrenArray}
*/
(0, _defineProperty2.default)(_this, "children", new _childrenArray.default());
/**
* Container dynamic.
*
* @type {Backbone.Model}
*/
(0, _defineProperty2.default)(_this, "dynamic", void 0);
/**
* Container globals.
*
* @type {Backbone.Model}
*/
(0, _defineProperty2.default)(_this, "globals", void 0);
/**
* Container label.
*
* @type {string}
*/
(0, _defineProperty2.default)(_this, "label", void 0);
/**
* Container controls.
*
* @type {{}}
*/
(0, _defineProperty2.default)(_this, "controls", {});
/**
* Repeaters containers
*
* @type {{}}
*/
(0, _defineProperty2.default)(_this, "repeaters", {});
/**
* Container renderer (The one who render).
*
* @type {Container}
*/
(0, _defineProperty2.default)(_this, "renderer", void 0);
/**
* Container panel.
*
* @type {Panel}
*/
(0, _defineProperty2.default)(_this, "panel", void 0);
/**
* Controls placeholders.
*
* @type {{}}
*/
(0, _defineProperty2.default)(_this, "placeholders", {});
_this.validateArgs(args);
args = Object.entries(args);
// If empty.
if (0 === args.length) {
throw Error('Container cannot be empty.');
}
// Set properties, if not defined - keep the defaults.
args.forEach(function (_ref) {
var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
key = _ref2[0],
value = _ref2[1];
_this[key] = 'undefined' === typeof value ? _this[key] : value;
});
if ('undefined' === typeof _this.renderer) {
_this.renderer = _this;
}
if (!_this.document) {
_this.document = elementor.documents.getCurrent();
}
_this.dynamic = new Backbone.Model(_this.settings.get('__dynamic__'));
_this.globals = new Backbone.Model(_this.settings.get('__globals__'));
_this.panel = new _panel.default(_this);
_this.initialize();
return _this;
}
(0, _inherits2.default)(Container, _ArgsObject);
return (0, _createClass2.default)(Container, [{
key: "initialize",
value: function initialize() {
if (this.isViewElement()) {
this.addToParent();
this.handleChildrenRecursive();
this.view.on('destroy', this.removeFromParent.bind(this));
}
this.handleRepeaterChildren();
}
}, {
key: "validateArgs",
value: function validateArgs(args) {
this.requireArgumentType('type', 'string', args);
this.requireArgumentType('id', 'string', args);
this.requireArgumentInstance('settings', Backbone.Model, args);
this.requireArgumentInstance('model', Backbone.Model, args);
// Require it, unless it's forced to be `false`.
if (false !== args.parent) {
this.requireArgumentInstance('parent', elementorModules.editor.Container, args);
}
}
/**
* Function getGroupRelatedControls().
*
* Example:
* Settings = { typography_typography: 'whatever', button_text_color: 'whatever' };
* Result { control_name: controlValue, ... - and so on };
* `Object.keys( Result ) = [ 'typography_typography', 'typography_font_family', 'typography_font_size', 'typography_font_size_tablet', 'typography_font_size_mobile', 'typography_font_weight', 'typography_text_transform', 'typography_font_style', 'typography_text_decoration', 'typography_line_height', 'typography_line_height_tablet', 'typography_line_height_mobile', 'typography_letter_spacing', 'typography_letter_spacing_tablet', 'typography_letter_spacing_mobile', 'button_text_color' ]`.
*
* @param {{}} settings
*
* @return {{}} result
*/
}, {
key: "getGroupRelatedControls",
value: function getGroupRelatedControls(settings) {
var _this2 = this;
var result = {};
Object.keys(settings).forEach(function (settingKey) {
Object.values(_this2.controls).forEach(function (control) {
var _this2$controls$setti;
if (settingKey === control.name) {
result[control.name] = control;
} else if ((_this2$controls$setti = _this2.controls[settingKey]) !== null && _this2$controls$setti !== void 0 && _this2$controls$setti.groupPrefix) {
var groupPrefix = _this2.controls[settingKey].groupPrefix;
if (control.name.toString().startsWith(groupPrefix)) {
result[control.name] = control;
}
}
});
});
return result;
}
/**
* Function getAffectingControls().
*
* @return {{}} All controls that effecting the container.
*/
}, {
key: "getAffectingControls",
value: function getAffectingControls() {
var _this3 = this;
var result = {},
activeControls = this.settings.getActiveControls();
Object.entries(activeControls).forEach(function (_ref3) {
var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
controlName = _ref4[0],
control = _ref4[1];
var controlValue = _this3.settings.get(control.name);
if (control.global && !(controlValue !== null && controlValue !== void 0 && controlValue.length)) {
var _this3$globals$get;
if ((_this3$globals$get = _this3.globals.get(control.name)) !== null && _this3$globals$get !== void 0 && _this3$globals$get.length || _this3.getGlobalDefault(controlName).length) {
control.global.utilized = true;
result[controlName] = control;
return;
}
}
if (control.dynamic) {
if (_this3.dynamic.get(controlName)) {
control.dynamic.utilized = true;
result[controlName] = control;
return;
}
}
if (controlValue === control.default) {
return;
}
if (!controlValue) {
return;
}
if ('object' === (0, _typeof2.default)(controlValue) && Object.values(controlValue).join() === Object.values(control.default).join()) {
return;
}
result[controlName] = control;
});
return result;
}
/**
* Function getParentAncestry().
*
* Recursively run over all parents from current container till the top
*
* @return {Array.} All parent as flat array.
*/
}, {
key: "getParentAncestry",
value: function getParentAncestry() {
var result = [];
var parent = this;
while (parent) {
result.push(parent);
parent = parent.parent;
}
return result;
}
}, {
key: "handleChildrenRecursive",
value: function handleChildrenRecursive() {
var _this$view$children;
if ((_this$view$children = this.view.children) !== null && _this$view$children !== void 0 && _this$view$children.length) {
Object.values(this.view.children._views).forEach(function (view) {
if (!view.container) {
return;
}
var container = view.container;
// Since the way 'global-widget' rendered, it does not have parent sometimes.
if (container.parent.children) {
container.parent.children[view._index] = container;
}
container.handleChildrenRecursive();
});
} else {
this.children.clear();
}
}
}, {
key: "addToParent",
value: function addToParent() {
if (!this.parent.children || this.isRepeaterItem()) {
return;
}
// On create container tell the parent where it was created.
this.parent.children.splice(this.view._index, 0, this);
}
}, {
key: "removeFromParent",
value: function removeFromParent() {
var _this4 = this;
if (!this.parent.children || this.isRepeater()) {
return;
}
// When delete container its should notify its parent, that his children is dead.
this.parent.children = this.parent.children.filter(function (filtered) {
return filtered.id !== _this4.id;
});
}
}, {
key: "handleRepeaterChildren",
value: function handleRepeaterChildren() {
var _this5 = this;
Object.values(this.controls).forEach(function (control) {
if (!control.is_repeater) {
return;
}
var model = new Backbone.Model({
name: control.name
});
_this5.repeaters[control.name] = new elementorModules.editor.Container({
type: Container.TYPE_REPEATER,
id: control.name,
model: model,
settings: model,
view: _this5.view,
parent: _this5,
label: control.label || control.name,
controls: {},
renderer: _this5.renderer
});
_this5.settings.get(control.name).forEach(function (rowModel, index) {
_this5.addRepeaterItem(control.name, rowModel, index);
});
});
// Backwards Compatibility: if there is only one repeater (type=repeater), set it's children as current children.
// Since 3.0.0.
if (['widget', 'document'].includes(this.type)) {
var repeaters = Object.values(this.controls).filter(function (control) {
return 'repeater' === control.type;
});
if (!this.model.get('supportRepeaterChildren') && 1 === repeaters.length) {
Object.defineProperty(this, 'children', {
get: function get() {
elementorDevTools.deprecation.deprecated('children', '3.0.0', 'container.repeaters[ repeaterName ].children');
return this.repeaters[repeaters[0].name].children;
}
});
}
}
}
/**
* Function addRepeaterItem().
*
* The method add repeater item, find the repeater control by it name, and create new container for the item.
*
* @param {string} repeaterName
* @param {Backbone.Model} rowSettingsModel
* @param {number} index
*
* @return {Container} container
*/
}, {
key: "addRepeaterItem",
value: function addRepeaterItem(repeaterName, rowSettingsModel, index) {
var rowId = rowSettingsModel.get('_id');
// TODO: Temp backwards compatibility. since 2.8.0.
if (!rowId) {
rowId = 'bc-' + elementorCommon.helpers.getUniqueId();
rowSettingsModel.set('_id', rowId);
}
this.repeaters[repeaterName].children.splice(index, 0, new elementorModules.editor.Container({
type: Container.TYPE_REPEATER_ITEM,
id: rowSettingsModel.get('_id'),
model: new Backbone.Model({
name: repeaterName
}),
settings: rowSettingsModel,
view: this.view,
parent: this.repeaters[repeaterName],
label: this.label + ' ' + __('Item', 'elementor'),
controls: rowSettingsModel.options.controls,
renderer: this.renderer
}));
return this.repeaters[repeaterName];
}
/**
* Function lookup().
*
* If the view were destroyed, try to find it again if it exists.
*
* TODO: Refactor.
*
* @return {Container} container
*/
}, {
key: "lookup",
value: function lookup() {
var _this$renderer$view;
var result = this;
if (!this.renderer) {
return this;
}
if (this !== this.renderer && (_this$renderer$view = this.renderer.view) !== null && _this$renderer$view !== void 0 && _this$renderer$view.isDisconnected && this.renderer.view.isDisconnected()) {
this.renderer = this.renderer.lookup();
}
if (undefined === this.view || !this.view.lookup || !this.view.isDisconnected()) {
// Hack For repeater item the result is the parent container.
if (Container.TYPE_REPEATER_ITEM === this.type) {
this.settings = this.parent.parent.settings.get(this.model.get('name')).findWhere({
_id: this.id
});
}
return result;
}
var lookup = this.view.lookup();
if (lookup) {
result = lookup.getContainer();
// Hack For repeater item the result is the parent container.
if (Container.REPEATER === this.type) {
this.settings = result.settings.get(this.model.get('name')).findWhere({
_id: this.id
});
return this;
}
// If lookup were done, new container were created and parent does not know about it.
if (result.parent.children) {
result.parent.children[result.view._index] = result;
}
}
return result;
}
/**
* @param {Function} callback - A callback function.
* @deprecated since 3.5.0, use `container.children.findRecursive( callback )` instead.
*/
}, {
key: "findChildrenRecursive",
value: function findChildrenRecursive(callback) {
elementorDevTools.deprecation.deprecated('container.findChildrenRecursive( callback )', '3.5.0', 'container.children.findRecursive( callback )');
return this.children.findRecursive(callback);
}
/**
* @param {Function} callback - A callback function.
* @deprecated since 3.5.0, use `container.children.forEachRecursive( callback )` instead.
*/
}, {
key: "forEachChildrenRecursive",
value: function forEachChildrenRecursive(callback) {
elementorDevTools.deprecation.deprecated('container.forEachChildrenRecursive( callback )', '3.5.0', 'container.children.forEachRecursive( callback )');
return this.children.forEachRecursive(callback);
}
/**
* Function render().
*
* Call view render.
*
* Run's `this.renderer.view.renderOnChange( this.settings ) `.
* When `this.renderer` exist.
*
*/
}, {
key: "render",
value: function render() {
var _this$view;
if (!this.renderer) {
return;
}
this.renderer.view.renderOnChange(this.settings, (_this$view = this.view) === null || _this$view === void 0 ? void 0 : _this$view.$el);
}
}, {
key: "renderUI",
value: function renderUI() {
if (!this.renderer) {
return;
}
this.renderer.view.renderUI();
}
}, {
key: "isEditable",
value: function isEditable() {
return 'edit' === elementor.channels.dataEditMode.request('activeMode') && 'open' === this.document.editor.status;
}
}, {
key: "isDesignable",
value: function isDesignable() {
return elementor.userCan('design') && this.isEditable();
}
}, {
key: "isGridContainer",
value: function isGridContainer() {
return 'grid' === this.parent.settings.get('container_type');
}
/**
* @return {boolean}
*/
}, {
key: "isLocked",
value: function isLocked() {
return this.model.get('isLocked');
}
}, {
key: "isRepeater",
value: function isRepeater() {
return Container.TYPE_REPEATER === this.type;
}
}, {
key: "isRepeaterItem",
value: function isRepeaterItem() {
return Container.TYPE_REPEATER_ITEM === this.type;
}
}, {
key: "isViewElement",
value: function isViewElement() {
return this.view && this.model.get('elType');
}
}, {
key: "getSetting",
value: function getSetting(name) {
var localOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
var localValue = this.settings.get(name);
if (localOnly) {
return localValue;
}
// Try to get the value in the order: Global, Local, Global default.
var globalValue;
if (this.getGlobalKey(name)) {
globalValue = this.getGlobalValue(name);
}
return globalValue || localValue || this.getGlobalDefault(name);
}
}, {
key: "getGlobalKey",
value: function getGlobalKey(name) {
return this.globals.get(name);
}
}, {
key: "getGlobalValue",
value: function getGlobalValue(name) {
var control = this.controls[name],
globalKey = this.getGlobalKey(name),
globalArgs = $e.data.commandExtractArgs(globalKey),
data = $e.data.getCache($e.components.get('globals'), globalArgs.command, globalArgs.args.query);
if (!(data !== null && data !== void 0 && data.value)) {
return;
}
var id = data.id;
var value;
// It's a global settings with additional controls in group.
if (control.groupType) {
// A regex containing all of the active breakpoints' prefixes ('_mobile', '_tablet' etc.).
var responsivePrefixRegex = elementor.breakpoints.getActiveMatchRegex();
var propertyName = control.name.replace(control.groupPrefix, '').replace(responsivePrefixRegex, '');
if (!data.value[elementor.config.kit_config.typography_prefix + propertyName]) {
return;
}
propertyName = propertyName.replace('_', '-');
value = "var( --e-global-".concat(control.groupType, "-").concat(id, "-").concat(propertyName, " )");
if (elementor.config.ui.defaultGenericFonts && control.groupPrefix + 'font_family' === control.name) {
value += ", ".concat(elementor.config.ui.defaultGenericFonts);
}
} else {
value = "var( --e-global-".concat(control.type, "-").concat(id, " )");
}
return value;
}
/**
* Determine if a control's global value is applied.
* It actually checks if the local value is different than the global value.
*
* @param {string} controlName - Control name
* @return {boolean} true if a control's global value is applied
*/
}, {
key: "isGlobalApplied",
value: function isGlobalApplied(controlName) {
return this.getSetting(controlName) !== this.settings.get(controlName);
}
}, {
key: "getGlobalDefault",
value: function getGlobalDefault(controlName) {
var _this$controls$contro;
var controlGlobalArgs = (_this$controls$contro = this.controls[controlName]) === null || _this$controls$contro === void 0 ? void 0 : _this$controls$contro.global;
if (controlGlobalArgs !== null && controlGlobalArgs !== void 0 && controlGlobalArgs.default) {
// Temp fix.
var controlType = this.controls[controlName].type;
if ('color' === controlType) {
controlType = 'colors';
}
// End temp fix
// If the control is a color/typography control and default colors/typography are disabled, don't return the global value.
if (!elementor.config.globals.defaults_enabled[controlType]) {
return '';
}
var _$e$data$commandExtra = $e.data.commandExtractArgs(controlGlobalArgs.default),
command = _$e$data$commandExtra.command,
args = _$e$data$commandExtra.args,
result = $e.data.getCache($e.components.get('globals'), command, args.query);
return result === null || result === void 0 ? void 0 : result.value;
}
// No global default.
return '';
}
}]);
}(_argsObject.default);
// TODO: Swap those backwards compatibility is required.
(0, _defineProperty2.default)(Container, "TYPE_REPEATER", 'repeater-control');
(0, _defineProperty2.default)(Container, "TYPE_REPEATER_ITEM", 'repeater');
/***/ }),
/***/ "../assets/dev/js/editor/container/model/children-array.js":
/*!*****************************************************************!*\
!*** ../assets/dev/js/editor/container/model/children-array.js ***!
\*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _wrapNativeSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/wrapNativeSuper */ "../node_modules/@babel/runtime/helpers/wrapNativeSuper.js"));
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, 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, a = !0, 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; }
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
/**
* @typedef {import('../container')} Container
*/
var ChildrenArray = exports["default"] = /*#__PURE__*/function (_Array) {
function ChildrenArray() {
(0, _classCallCheck2.default)(this, ChildrenArray);
return _callSuper(this, ChildrenArray, arguments);
}
(0, _inherits2.default)(ChildrenArray, _Array);
return (0, _createClass2.default)(ChildrenArray, [{
key: "clear",
value: function clear() {
this.length = 0;
}
/**
* Function findRecursive().
*
* Will run over children recursively and pass the children to the callback till the callback returns positive value.
*
* @param {function(Container) : *} callback
*
* @return {Container|false} child
*/
}, {
key: "findRecursive",
value: function findRecursive(callback) {
var _iterator = _createForOfIteratorHelper(this),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var container = _step.value;
if (callback(container)) {
return container;
}
if (container.children.length) {
var foundChildren = container.children.findRecursive(callback);
if (foundChildren) {
return foundChildren;
}
}
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
return false;
}
/**
* Function forEachRecursive().
*
* Will run over children recursively.
*
* @param {function(Container) : *} callback
*
* @return {void}
*/
}, {
key: "forEachRecursive",
value: function forEachRecursive(callback) {
var _iterator2 = _createForOfIteratorHelper(this),
_step2;
try {
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
var container = _step2.value;
callback(container);
if (container.children.length) {
container.children.forEachRecursive(callback);
}
}
} catch (err) {
_iterator2.e(err);
} finally {
_iterator2.f();
}
}
/**
* Function someRecursive().
*
* Will run over children recursively, breaks if the callback return true.
*
* @param {function(Container) : *} callback
*/
}, {
key: "someRecursive",
value: function someRecursive(callback) {
var _iterator3 = _createForOfIteratorHelper(this),
_step3;
try {
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
var _container$children;
var container = _step3.value;
if (callback(container)) {
return true;
}
if ((_container$children = container.children) !== null && _container$children !== void 0 && _container$children.length) {
if (container.children.someRecursive(callback)) {
return true;
}
}
}
} catch (err) {
_iterator3.e(err);
} finally {
_iterator3.f();
}
return false;
}
}]);
}(/*#__PURE__*/(0, _wrapNativeSuper2.default)(Array));
/***/ }),
/***/ "../assets/dev/js/editor/container/panel.js":
/*!**************************************************!*\
!*** ../assets/dev/js/editor/container/panel.js ***!
\**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
/**
* @typedef {import('./container')} Container
*/
var Panel = exports["default"] = /*#__PURE__*/function () {
/**
* Function constructor().
*
* Create constructor panel.
*
* @param {Container} container
*/
function Panel(container) {
(0, _classCallCheck2.default)(this, Panel);
this.container = container;
}
/**
* Function refresh().
*
* Refresh the panel.
*/
return (0, _createClass2.default)(Panel, [{
key: "refresh",
value: function refresh() {
if ($e.routes.isPartOf('panel/editor')) {
$e.routes.refreshContainer('panel');
}
}
/**
* Function closeEditor().
*
* Route to `panel/elements/categories`
*/
}, {
key: "closeEditor",
value: function closeEditor() {
$e.route('panel/elements/categories');
}
}, {
key: "getControlView",
value: function getControlView(name) {
var editor = elementor.getPanelView().getCurrentPageView();
return editor.children.findByModelCid(this.getControlModel(name).cid);
}
}, {
key: "getControlModel",
value: function getControlModel(name) {
var editor = elementor.getPanelView().getCurrentPageView();
return editor.collection.findWhere({
name: name
});
}
}]);
}();
/***/ }),
/***/ "../assets/dev/js/editor/elements/models/base-settings.js":
/*!****************************************************************!*\
!*** ../assets/dev/js/editor/elements/models/base-settings.js ***!
\****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"));
var BaseSettingsModel;
/**
* @name BaseSettingsModel
*/
BaseSettingsModel = Backbone.Model.extend({
options: {},
initialize: function initialize(data, options) {
var self = this;
// Keep the options for cloning
self.options = options;
self.controls = elementor.mergeControlsSettings(options.controls);
self.validators = {};
if (!self.controls) {
return;
}
var attrs = data || {},
defaults = {};
_.each(self.controls, function (control) {
// Check features since they does not exist in tests.
var isUIControl = control.features && -1 !== control.features.indexOf('ui');
if (isUIControl) {
return;
}
var controlName = control.name;
if ('object' === (0, _typeof2.default)(control.default)) {
defaults[controlName] = structuredClone(control.default);
} else {
defaults[controlName] = control.default;
}
var isDynamicControl = control.dynamic && control.dynamic.active,
hasDynamicSettings = isDynamicControl && attrs.__dynamic__ && attrs.__dynamic__[controlName];
if (isDynamicControl && !hasDynamicSettings && control.dynamic.default) {
if (!attrs.__dynamic__) {
attrs.__dynamic__ = {};
}
attrs.__dynamic__[controlName] = control.dynamic.default;
hasDynamicSettings = true;
}
// Check if the value is a plain object ( and not an array )
var isMultipleControl = jQuery.isPlainObject(control.default);
if (undefined !== attrs[controlName] && isMultipleControl && !_.isObject(attrs[controlName]) && !hasDynamicSettings) {
elementorCommon.debug.addCustomError(new TypeError('An invalid argument supplied as multiple control value'), 'InvalidElementData', 'Element `' + (self.get('widgetType') || self.get('elType')) + '` got <' + attrs[controlName] + '> as `' + controlName + '` value. Expected array or object.');
delete attrs[controlName];
}
if (undefined === attrs[controlName]) {
attrs[controlName] = defaults[controlName];
}
});
self.defaults = defaults;
self.handleRepeaterData(attrs);
self.set(attrs);
},
convertRepeaterValueToCollection: function convertRepeaterValueToCollection(attrs, repeaterControl) {
return new Backbone.Collection(attrs[repeaterControl.name], {
model: function model(attributes, options) {
options = options || {};
options.controls = {};
Object.values(repeaterControl.fields).forEach(function (item) {
options.controls[item.name] = item;
});
// TODO: Cannot be deleted, since it handle repeater items after repeater widget creation.
if (!attributes._id) {
attributes._id = elementorCommon.helpers.getUniqueId();
}
return new BaseSettingsModel(attributes, options);
}
});
},
handleRepeaterData: function handleRepeaterData(attrs) {
var self = this;
_.each(this.controls, function (field) {
if (field.is_repeater) {
// TODO: Apply defaults on each field in repeater fields
if (!(attrs[field.name] instanceof Backbone.Collection)) {
attrs[field.name] = self.convertRepeaterValueToCollection(attrs, field);
}
}
});
},
getFontControls: function getFontControls() {
return this.getControlsByType('font');
},
getIconsControls: function getIconsControls() {
return this.getControlsByType('icons');
},
getControlsByType: function getControlsByType(type) {
return _.filter(this.getActiveControls(), function (control) {
return type === control.type;
});
},
getStyleControls: function getStyleControls(controls, attributes) {
var self = this;
controls = structuredClone(self.getActiveControls(controls, attributes));
var styleControls = [];
jQuery.each(controls, function () {
var _control$dynamic;
var control = this,
controlDefaultSettings = elementor.config.controls[control.type];
control = jQuery.extend({}, controlDefaultSettings, control);
if (control.fields) {
var styleFields = [];
if (!(self.attributes[control.name] instanceof Backbone.Collection)) {
self.attributes[control.name] = self.convertRepeaterValueToCollection(self.attributes, control);
}
self.attributes[control.name].each(function (item) {
styleFields.push(self.getStyleControls(control.fields, item.attributes));
});
control.styleFields = styleFields;
}
if (control.fields || (_control$dynamic = control.dynamic) !== null && _control$dynamic !== void 0 && _control$dynamic.active || self.isGlobalControl(control, controls) || self.isStyleControl(control.name, controls)) {
styleControls.push(control);
}
});
return styleControls;
},
isGlobalControl: function isGlobalControl(control, controls) {
var _globalControl$global, _this$attributes$__gl;
var controlGlobalKey = control.name;
if (control.groupType) {
controlGlobalKey = control.groupPrefix + control.groupType;
}
var globalControl = controls[controlGlobalKey];
if (!(globalControl !== null && globalControl !== void 0 && (_globalControl$global = globalControl.global) !== null && _globalControl$global !== void 0 && _globalControl$global.active)) {
return false;
}
var globalValue = (_this$attributes$__gl = this.attributes.__globals__) === null || _this$attributes$__gl === void 0 ? void 0 : _this$attributes$__gl[controlGlobalKey];
return !!globalValue;
},
isStyleControl: function isStyleControl(attribute, controls) {
controls = controls || this.controls;
var currentControl = _.find(controls, function (control) {
return attribute === control.name;
});
return currentControl && !_.isEmpty(currentControl.selectors);
},
getClassControls: function getClassControls(controls) {
controls = controls || this.controls;
return _.filter(controls, function (control) {
return !_.isUndefined(control.prefix_class);
});
},
isClassControl: function isClassControl(attribute) {
var currentControl = _.find(this.controls, function (control) {
return attribute === control.name;
});
return currentControl && !_.isUndefined(currentControl.prefix_class);
},
getControl: function getControl(id) {
return _.find(this.controls, function (control) {
return id === control.name;
});
},
getActiveControls: function getActiveControls(controls, attributes) {
var activeControls = {};
if (!controls) {
controls = this.controls;
}
if (!attributes) {
attributes = this.attributes;
}
attributes = this.parseGlobalSettings(attributes, controls);
jQuery.each(controls, function (controlKey, control) {
if (elementor.helpers.isActiveControl(control, attributes, controls)) {
activeControls[controlKey] = control;
}
});
return activeControls;
},
clone: function clone() {
return new BaseSettingsModel(elementorCommon.helpers.cloneObject(this.attributes), elementorCommon.helpers.cloneObject(this.options));
},
setExternalChange: function setExternalChange(key, value) {
var self = this,
settingsToChange;
if ('object' === (0, _typeof2.default)(key)) {
settingsToChange = key;
} else {
settingsToChange = {};
settingsToChange[key] = value;
}
self.set(settingsToChange);
jQuery.each(settingsToChange, function (changedKey, changedValue) {
self.trigger('change:external:' + changedKey, changedValue);
});
},
parseDynamicSettings: function parseDynamicSettings(settings, options, controls) {
var self = this;
settings = elementorCommon.helpers.cloneObject(settings || self.attributes);
options = options || {};
controls = controls || this.controls;
jQuery.each(controls, function () {
var control = this,
valueToParse;
if (control.is_repeater) {
valueToParse = settings[control.name];
valueToParse.forEach(function (value, key) {
valueToParse[key] = self.parseDynamicSettings(value, options, control.fields);
});
return;
}
valueToParse = settings.__dynamic__ && settings.__dynamic__[control.name];
if (!valueToParse) {
return;
}
var dynamicSettings = control.dynamic;
if (undefined === dynamicSettings) {
dynamicSettings = elementor.config.controls[control.type].dynamic;
}
if (!dynamicSettings || !dynamicSettings.active) {
return;
}
var dynamicValue;
try {
dynamicValue = elementor.dynamicTags.parseTagsText(valueToParse, dynamicSettings, elementor.dynamicTags.getTagDataContent);
} catch (error) {
if (elementor.dynamicTags.CACHE_KEY_NOT_FOUND_ERROR !== error.message) {
throw error;
}
dynamicValue = '';
if (options.onServerRequestStart) {
options.onServerRequestStart();
}
elementor.dynamicTags.refreshCacheFromServer(function () {
if (options.onServerRequestEnd) {
options.onServerRequestEnd();
}
});
}
if (dynamicSettings.property) {
settings[control.name][dynamicSettings.property] = dynamicValue;
} else {
settings[control.name] = dynamicValue;
}
});
return settings;
},
parseGlobalSettings: function parseGlobalSettings(settings, controls) {
var _this = this;
settings = elementorCommon.helpers.cloneObject(settings);
controls = controls || this.controls;
jQuery.each(controls, function (index, control) {
var _settings$__globals__, _globalSettings;
var valueToParse;
if (control.is_repeater) {
valueToParse = settings[control.name];
valueToParse.forEach(function (value, key) {
valueToParse[key] = _this.parseGlobalSettings(value, control.fields);
});
return;
}
valueToParse = (_settings$__globals__ = settings.__globals__) === null || _settings$__globals__ === void 0 ? void 0 : _settings$__globals__[control.name];
if (!valueToParse) {
return;
}
var globalSettings = control.global;
if (undefined === globalSettings) {
globalSettings = elementor.config.controls[control.type].global;
}
if (!((_globalSettings = globalSettings) !== null && _globalSettings !== void 0 && _globalSettings.active)) {
return;
}
var _$e$data$commandExtra = $e.data.commandExtractArgs(valueToParse),
command = _$e$data$commandExtra.command,
args = _$e$data$commandExtra.args,
globalValue = $e.data.getCache($e.components.get('globals'), command, args.query);
if (control.groupType) {
settings[control.name] = 'custom';
} else {
settings[control.name] = globalValue;
}
});
return settings;
},
removeDataDefaults: function removeDataDefaults(data, controls) {
var _this2 = this;
jQuery.each(data, function (key) {
var control = controls[key];
if (!control) {
return;
}
// TODO: use `save_default` in text|textarea controls.
if (control.save_default || ('text' === control.type || 'textarea' === control.type) && data[key]) {
return;
}
if (control.is_repeater) {
data[key].forEach(function (repeaterRow) {
_this2.removeDataDefaults(repeaterRow, control.fields);
});
return;
}
if (_.isEqual(data[key], control.default)) {
delete data[key];
}
});
},
toJSON: function toJSON(options) {
var data = Backbone.Model.prototype.toJSON.call(this);
options = options || {};
delete data.widgetType;
delete data.elType;
delete data.isInner;
_.each(data, function (attribute, key) {
if (attribute && attribute.toJSON) {
data[key] = attribute.toJSON();
}
});
if (options.remove && -1 !== options.remove.indexOf('default')) {
this.removeDataDefaults(data, this.controls);
}
return structuredClone(data);
}
});
/**
* @name BaseSettingsModel
*/
module.exports = BaseSettingsModel;
/***/ }),
/***/ "../assets/dev/js/editor/elements/views/behaviors/inner-tabs.js":
/*!**********************************************************************!*\
!*** ../assets/dev/js/editor/elements/views/behaviors/inner-tabs.js ***!
\**********************************************************************/
/***/ ((module) => {
"use strict";
var InnerTabsBehavior;
InnerTabsBehavior = Marionette.Behavior.extend({
onRenderCollection: function onRenderCollection() {
this.handleInnerTabs(this.view);
},
handleInnerTabs: function handleInnerTabs(parent) {
var closedClass = 'e-tab-close',
activeClass = 'e-tab-active',
tabsWrappers = parent.children.filter(function (view) {
return 'tabs' === view.model.get('type');
});
_.each(tabsWrappers, function (view) {
view.$el.find('.elementor-control-content').remove();
var tabsId = view.model.get('name'),
tabs = parent.children.filter(function (childView) {
return 'tab' === childView.model.get('type') && childView.model.get('tabs_wrapper') === tabsId;
});
_.each(tabs, function (childView, index) {
view._addChildView(childView);
var tabId = childView.model.get('name'),
controlsUnderTab = parent.children.filter(function (controlView) {
return tabId === controlView.model.get('inner_tab');
});
if (0 === index) {
childView.$el.addClass(activeClass);
} else {
_.each(controlsUnderTab, function (controlView) {
controlView.$el.addClass(closedClass);
});
}
});
});
},
onChildviewControlTabClicked: function onChildviewControlTabClicked(childView) {
var closedClass = 'e-tab-close',
activeClass = 'e-tab-active',
tabClicked = childView.model.get('name'),
childrenUnderTab = this.view.children.filter(function (view) {
return 'tab' !== view.model.get('type') && childView.model.get('tabs_wrapper') === view.model.get('tabs_wrapper');
}),
siblingTabs = this.view.children.filter(function (view) {
return 'tab' === view.model.get('type') && childView.model.get('tabs_wrapper') === view.model.get('tabs_wrapper');
});
_.each(siblingTabs, function (view) {
view.$el.removeClass(activeClass);
});
childView.$el.addClass(activeClass);
_.each(childrenUnderTab, function (view) {
if (view.model.get('inner_tab') === tabClicked) {
view.$el.removeClass(closedClass);
} else {
view.$el.addClass(closedClass);
}
});
elementor.getPanelView().updateScrollbar();
}
});
module.exports = InnerTabsBehavior;
/***/ }),
/***/ "../assets/dev/js/editor/utils/is-instanceof.js":
/*!******************************************************!*\
!*** ../assets/dev/js/editor/utils/is-instanceof.js ***!
\******************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
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, 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, a = !0, 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; }
/**
* Some FileAPI objects such as FileList, DataTransferItem and DataTransferItemList has inconsistency with the retrieved
* object (from events, etc.) and the actual JavaScript object so a regular instanceof doesn't work. This function can
* check whether it's instanceof by using the objects constructor and prototype names.
*
* @param object
* @param constructors
* @return {boolean}
*/
var _default = exports["default"] = function _default(object, constructors) {
constructors = Array.isArray(constructors) ? constructors : [constructors];
var _iterator = _createForOfIteratorHelper(constructors),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var _constructor = _step.value;
if (object.constructor.name === _constructor.prototype[Symbol.toStringTag]) {
return true;
}
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
return false;
};
/***/ }),
/***/ "../assets/dev/js/editor/utils/module.js":
/*!***********************************************!*\
!*** ../assets/dev/js/editor/utils/module.js ***!
\***********************************************/
/***/ ((module) => {
"use strict";
var EditorModule = elementorModules.Module.extend({
onInit: function onInit() {
var _this = this;
var $window = jQuery(window);
$window.on('elementor:init-components', this.onElementorInitComponents.bind(this));
$window.on('elementor:loaded', function () {
_this.onElementorLoaded();
elementor.on('document:loaded', _this.onDocumentLoaded.bind(_this));
});
$window.on('elementor:init', this.onElementorReady);
},
// TODO: Delete as soon as possible.
getEditorControlView: function getEditorControlView(name) {
var _this$getEditorContro;
var editor = elementor.getPanelView().getCurrentPageView();
return editor.children.findByModelCid((_this$getEditorContro = this.getEditorControlModel(name)) === null || _this$getEditorContro === void 0 ? void 0 : _this$getEditorContro.cid);
},
// TODO: Delete as soon as possible.
getEditorControlModel: function getEditorControlModel(name) {
var editor = elementor.getPanelView().getCurrentPageView();
return editor.collection.findWhere({
name: name
});
},
onElementorReady: function onElementorReady() {
this.onElementorInit();
elementor.on('frontend:init', this.onElementorFrontendInit.bind(this)).on('preview:loaded', this.onElementorPreviewLoaded.bind(this));
}
});
EditorModule.prototype.onElementorLoaded = function () {};
EditorModule.prototype.onElementorInit = function () {};
EditorModule.prototype.onElementorPreviewLoaded = function () {};
EditorModule.prototype.onDocumentLoaded = function () {};
EditorModule.prototype.onElementorFrontendInit = function () {};
EditorModule.prototype.onElementorInitComponents = function () {};
module.exports = EditorModule;
/***/ }),
/***/ "../assets/dev/js/editor/views/controls-popover.js":
/*!*********************************************************!*\
!*** ../assets/dev/js/editor/views/controls-popover.js ***!
\*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
var ControlsPopover = exports["default"] = /*#__PURE__*/function () {
function ControlsPopover(child) {
(0, _classCallCheck2.default)(this, ControlsPopover);
this.child = child;
this.$popover = jQuery('
', {
class: 'elementor-controls-popover'
});
child.$el.before(this.$popover);
this.$popover.append(child.$el);
this.popoverToggleView = child._parent.children.findByIndex(child._index - 1);
// Add the "Typography" header to the popover
if ('typography' === this.child.model.attributes.groupType) {
this.createPopoverHeader();
}
}
return (0, _createClass2.default)(ControlsPopover, [{
key: "addChild",
value: function addChild(child) {
this.$popover.append(child.$el);
}
}, {
key: "createPopoverHeader",
value: function createPopoverHeader() {
var _this = this;
var $popoverToggleControl = this.$popover.prev(),
// Get the existing reset button.
$resetLabel = $popoverToggleControl.find('.elementor-control-popover-toggle-reset-label');
this.$popoverHeader = jQuery('