Warning: include_once(/home/u670732993/domains/nqofficial.com/public_html/wp-content/plugins/akismet-plugin/akismet.php): Failed to open stream: No such file or directory in /home/u670732993/domains/nqofficial.com/public_html/wp-content/themes/astra/functions.php on line 2
Warning: include_once(): Failed opening '/home/u670732993/domains/nqofficial.com/public_html/wp-content/plugins/akismet-plugin/akismet.php' for inclusion (include_path='.:/opt/alt/php81/usr/share/pear:/opt/alt/php81/usr/share/php:/usr/share/pear:/usr/share/php') in /home/u670732993/domains/nqofficial.com/public_html/wp-content/themes/astra/functions.php on line 2
/*! elementor - v3.28.0 - 22-04-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 editor = elementor.getPanelView().getCurrentPageView();
return editor.children.findByModelCid(this.getEditorControlModel(name).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('