/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "../app/assets/js/utils/utils.js":
/*!***************************************!*\
  !*** ../app/assets/js/utils/utils.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.stringToRemValues = exports.rgbToHex = exports.pxToRem = exports.isOneOf = exports.htmlDecodeTextContent = exports.arrayToObjectByKey = exports.arrayToClassName = void 0;
var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"));
var pxToRem = exports.pxToRem = function pxToRem(pixels) {
  if (!pixels) {
    return;
  } else if ('string' !== typeof pixels) {
    pixels = pixels.toString();
  }
  return pixels.split(' ').map(function (value) {
    return "".concat(value * 0.0625, "rem");
  }).join(' ');
};
var arrayToClassName = exports.arrayToClassName = function arrayToClassName(array, action) {
  return array.filter(function (item) {
    return 'object' === (0, _typeof2.default)(item) ? Object.entries(item)[0][1] : item;
  }).map(function (item) {
    var value = 'object' === (0, _typeof2.default)(item) ? Object.entries(item)[0][0] : item;
    return action ? action(value) : value;
  }).join(' ');
};
var stringToRemValues = exports.stringToRemValues = function stringToRemValues(string) {
  return string.split(' ').map(function (value) {
    return pxToRem(value);
  }).join(' ');
};
var rgbToHex = exports.rgbToHex = function rgbToHex(r, g, b) {
  return '#' + [r, g, b].map(function (x) {
    var hex = x.toString(16);
    return 1 === hex.length ? '0' + hex : hex;
  }).join('');
};
var isOneOf = exports.isOneOf = function isOneOf(filetype, filetypeOptions) {
  return filetypeOptions.some(function (type) {
    return filetype.includes(type);
  });
};
var arrayToObjectByKey = exports.arrayToObjectByKey = function arrayToObjectByKey(array, key) {
  var finalObject = {};
  array.forEach(function (item) {
    return finalObject[item[key]] = item;
  });
  return finalObject;
};
var htmlDecodeTextContent = exports.htmlDecodeTextContent = function htmlDecodeTextContent(input) {
  var doc = new DOMParser().parseFromString(input, 'text/html');
  return doc.documentElement.textContent;
};

/***/ }),

/***/ "../assets/dev/js/editor/command-bases/command-container-base.js":
/*!***********************************************************************!*\
  !*** ../assets/dev/js/editor/command-bases/command-container-base.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 _commandBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/command-base */ "../modules/web-cli/assets/js/modules/command-base.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; })(); }
/**
 * @name $e.modules.editor.CommandContainerBase
 */
var CommandContainerBase = exports["default"] = /*#__PURE__*/function (_CommandBase) {
  function CommandContainerBase() {
    (0, _classCallCheck2.default)(this, CommandContainerBase);
    return _callSuper(this, CommandContainerBase, arguments);
  }
  (0, _inherits2.default)(CommandContainerBase, _CommandBase);
  return (0, _createClass2.default)(CommandContainerBase, [{
    key: "requireContainer",
    value:
    /**
     * Function requireContainer().
     *
     * Validate `arg.container` & `arg.containers`.
     *
     * @param {{}} args
     *
     * @throws {Error}
     */
    function requireContainer() {
      var _this = this;
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.args;
      if (!args.container && !args.containers) {
        throw Error('container or containers are required.');
      }
      if (args.container && args.containers) {
        throw Error('container and containers cannot go together please select one of them.');
      }
      var containers = args.containers || [args.container];
      containers.forEach(function (container) {
        _this.requireArgumentInstance('container', elementorModules.editor.Container, {
          container: container
        });
      });
    }
  }], [{
    key: "getInstanceType",
    value: function getInstanceType() {
      return 'CommandContainerBase';
    }
  }]);
}(_commandBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/component-base.js":
/*!*************************************************!*\
  !*** ../assets/dev/js/editor/component-base.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 _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.js"));
var _editor = _interopRequireDefault(__webpack_require__(/*! elementor-panel/pages/editor */ "../assets/dev/js/editor/regions/panel/pages/editor.js"));
var _baseData = _interopRequireDefault(__webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.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; })(); }
var ComponentBase = exports["default"] = /*#__PURE__*/function (_ApiComponentBase) {
  function ComponentBase() {
    (0, _classCallCheck2.default)(this, ComponentBase);
    return _callSuper(this, ComponentBase, arguments);
  }
  (0, _inherits2.default)(ComponentBase, _ApiComponentBase);
  return (0, _createClass2.default)(ComponentBase, [{
    key: "activateControl",
    value:
    /**
     * Call the activate of the control's view
     *
     * @param {string} controlPath
     */
    function activateControl(controlPath) {
      var _controlView$activate;
      if (!controlPath) {
        return;
      }
      var editor = elementor.getPanelView().getCurrentPageView();
      var currentView = editor.content ? editor.content.currentView : editor;
      var controlView = this.getControlViewByPath(currentView, controlPath);
      (_controlView$activate = controlView.activate) === null || _controlView$activate === void 0 || _controlView$activate.call(controlView);
    }

    /**
     * Get the control's view by path
     *
     * @param {EditorView} currentView
     * @param {string}     controlPath
     *
     * @return {ControlBaseDataView}
     */
  }, {
    key: "getControlViewByPath",
    value: function getControlViewByPath(currentView, controlPath) {
      var controls = controlPath.split('/');
      var controlView = currentView.getControlViewByName(controls[0]);
      controls.slice(1).forEach(function (control) {
        var _controlView$getChild, _controlView;
        controlView = (_controlView$getChild = (_controlView = controlView).getChildControlView) === null || _controlView$getChild === void 0 ? void 0 : _controlView$getChild.call(_controlView, control);
      });
      return controlView;
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/commands-internal/index.js":
/*!************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/commands-internal/index.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Validate", ({
  enumerable: true,
  get: function get() {
    return _validate.Validate;
  }
}));
var _validate = __webpack_require__(/*! ./validate */ "../assets/dev/js/editor/components/browser-import/commands-internal/validate.js");

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/commands-internal/validate.js":
/*!***************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/commands-internal/validate.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"] = exports.Validate = 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"));
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; })(); }
var Validate = exports.Validate = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Validate() {
    (0, _classCallCheck2.default)(this, Validate);
    return _callSuper(this, Validate, arguments);
  }
  (0, _inherits2.default)(Validate, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Validate, [{
    key: "apply",
    value:
    /**
     * @inheritDoc
     */
    function apply(args) {
      var input = args.input,
        _args$options = args.options,
        options = _args$options === void 0 ? {} : _args$options;
      return this.component.manager.createSession(input, elementor.getPreviewContainer(), options).then(function (session) {
        return session.validate();
      });
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Validate;

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/commands/import.js":
/*!****************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/commands/import.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"] = exports.Import = void 0;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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"));
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; })(); }
var Import = exports.Import = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Import() {
    (0, _classCallCheck2.default)(this, Import);
    return _callSuper(this, Import, arguments);
  }
  (0, _inherits2.default)(Import, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Import, [{
    key: "validateArgs",
    value:
    /**
     * @inheritDoc
     */
    function validateArgs() {
      this.requireArgumentInstance('target', elementorModules.editor.Container);
    }

    /**
     * @inheritDoc
     */
  }, {
    key: "apply",
    value: function apply(args) {
      var _this = this;
      var _args$targets = args.targets,
        targets = _args$targets === void 0 ? [args.target] : _args$targets,
        input = args.input,
        _args$options = args.options,
        options = _args$options === void 0 ? {} : _args$options,
        result = [];
      targets.forEach(function (target) {
        result.push(_this.component.manager.createSession(input, target, options).then(/*#__PURE__*/function () {
          var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(session) {
            return _regenerator.default.wrap(function (_context) {
              while (1) switch (_context.prev = _context.next) {
                case 0:
                  _context.next = 1;
                  return session.validate();
                case 1:
                  if (!_context.sent) {
                    _context.next = 2;
                    break;
                  }
                  session.apply();
                case 2:
                case "end":
                  return _context.stop();
              }
            }, _callee);
          }));
          return function (_x) {
            return _ref.apply(this, arguments);
          };
        }()));
      });
      return Promise.all(result);
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Import;

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/commands/index.js":
/*!***************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/commands/index.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Import", ({
  enumerable: true,
  get: function get() {
    return _import.Import;
  }
}));
var _import = __webpack_require__(/*! ./import */ "../assets/dev/js/editor/components/browser-import/commands/import.js");

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/component.js":
/*!**********************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/component.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 commands = _interopRequireWildcard(__webpack_require__(/*! ./commands */ "../assets/dev/js/editor/components/browser-import/commands/index.js"));
var commandsInternal = _interopRequireWildcard(__webpack_require__(/*! ./commands-internal */ "../assets/dev/js/editor/components/browser-import/commands-internal/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
var Component = exports["default"] = /*#__PURE__*/function (_$e$modules$Component) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _$e$modules$Component);
  return (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'editor/browser-import';
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }
  }, {
    key: "defaultCommandsInternal",
    value: function defaultCommandsInternal() {
      return this.importCommands(commandsInternal);
    }
  }]);
}($e.modules.ComponentBase);

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/container-factory.js":
/*!******************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/container-factory.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 _element = _interopRequireDefault(__webpack_require__(/*! elementor-elements/models/element */ "../assets/dev/js/editor/elements/models/element.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; }
/**
 * @typedef {import('../../container/container')} Container
 */
var ContainerFactory = exports["default"] = /*#__PURE__*/function () {
  function ContainerFactory() {
    (0, _classCallCheck2.default)(this, ContainerFactory);
  }
  return (0, _createClass2.default)(ContainerFactory, null, [{
    key: "createElementContainer",
    value:
    /**
     * Create an element container.
     *
     * @param {*} element
     * @return {Container} element container
     */
    function createElementContainer(element) {
      var model = new _element.default(this.regenerateIds([Object.assign({
        elType: (element === null || element === void 0 ? void 0 : element.elType) || 'widget'
      }, element)])[0]);
      return new elementorModules.editor.Container({
        id: model.get('id'),
        type: model.get('elType'),
        settings: model.get('settings'),
        model: model,
        parent: false
      });
    }
  }, {
    key: "regenerateIds",
    value: function regenerateIds(elements) {
      var _iterator = _createForOfIteratorHelper(elements),
        _step;
      try {
        for (_iterator.s(); !(_step = _iterator.n()).done;) {
          var element = _step.value;
          element.id = elementorCommon.helpers.getUniqueId().toString();
          if (element.elements) {
            this.regenerateIds(element.elements);
          }
        }
      } catch (err) {
        _iterator.e(err);
      } finally {
        _iterator.f();
      }
      return elements;
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/default-config.js":
/*!***************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/default-config.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof3 = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports["default"] = void 0;
var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"));
var readers = _interopRequireWildcard(__webpack_require__(/*! ./files/readers */ "../assets/dev/js/editor/components/browser-import/files/readers/index.js"));
var parsers = _interopRequireWildcard(__webpack_require__(/*! ./files/parsers */ "../assets/dev/js/editor/components/browser-import/files/parsers/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
/**
 * Recursively convert objects to arrays of values.
 *
 * @param {*} object
 * @return {[]} values
 */
var recursiveValues = function recursiveValues(object) {
  return Object.values(object).map(function (value) {
    return 'object' === (0, _typeof2.default)(value) ? Object.values(value) : value;
  });
};
var _default = exports["default"] = {
  readers: recursiveValues(readers),
  parsers: recursiveValues(parsers).flat()
};

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/files/file-parser-base.js":
/*!***********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/files/file-parser-base.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 _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
/**
 * @typedef {import('../../../container/container')} Container
 */
/**
 * @typedef {import('./file-reader-base')} FileReaderBase
 */
/**
 * @abstract
 */
var FileParserBase = exports["default"] = /*#__PURE__*/function () {
  /**
   * FileParseBase constructor.
   *
   * @param {FileReaderBase} reader
   */
  function FileParserBase(reader) {
    (0, _classCallCheck2.default)(this, FileParserBase);
    /**
     * The file-reader instance.
     *
     * @type {FileReaderBase}
     */
    (0, _defineProperty2.default)(this, "reader", void 0);
    /**
     * Tasks to complete, even after parsing completed.
     *
     * @type {[]}
     */
    (0, _defineProperty2.default)(this, "tasks", []);
    this.reader = reader;
  }

  /**
   * Get the file-parser name.
   *
   * @abstract
   * @return {string} name
   */
  return (0, _createClass2.default)(FileParserBase, [{
    key: "parse",
    value: (
    /**
     * Parse the the input as needed by this parser, and return Container objects to be processed.
     *
     * @abstract
     * @return {Container[]} containers
     */
    function () {
      var _parse = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
        return _regenerator.default.wrap(function (_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
            case "end":
              return _context.stop();
          }
        }, _callee);
      }));
      function parse() {
        return _parse.apply(this, arguments);
      }
      return parse;
    }()
    /**
     * Here parsers can validate that an input from a reader can be handled by the parser. This validation has to be
     * very accurate and specific so if the parser can't handle the file for sure, the next parsers will have the
     * opportunity to do so.
     *
     * @param {*} reader
     *
     * @abstract
     * @return {boolean} is valid
     */
    )
  }], [{
    key: "getName",
    value: function getName() {
      return '';
    }

    /**
     * Get all readers the parser can handle with.
     *
     * @abstract
     * @return {string[]} readers
     */
  }, {
    key: "getReaders",
    value: function getReaders() {
      return [];
    }
  }, {
    key: "validate",
    value: (function () {
      var _validate = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(reader) {
        return _regenerator.default.wrap(function (_context2) {
          while (1) switch (_context2.prev = _context2.next) {
            case 0:
              return _context2.abrupt("return", false);
            case 1:
            case "end":
              return _context2.stop();
          }
        }, _callee2);
      }));
      function validate(_x) {
        return _validate.apply(this, arguments);
      }
      return validate;
    }())
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/files/file-reader-base.js":
/*!***********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/files/file-reader-base.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 _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
/**
 * @abstract
 */
var FileReaderBase = exports["default"] = /*#__PURE__*/function () {
  /**
   * FileReaderBase constructor.
   *
   * @param {File} file
   */
  function FileReaderBase(file) {
    (0, _classCallCheck2.default)(this, FileReaderBase);
    /**
     * The File instance.
     *
     * @type {File}
     */
    (0, _defineProperty2.default)(this, "file", void 0);
    this.file = file;
  }

  /**
   * Get the file-reader name.
   *
   * @abstract
   * @return {string} name
   */
  return (0, _createClass2.default)(FileReaderBase, [{
    key: "getFile",
    value:
    /**
     * Get the file-reader File object.
     *
     * @return {*} file
     */
    function getFile() {
      return this.file;
    }

    /**
     * Get the file-reader File object content as string.
     *
     * @return {Promise<string>} handler
     */
  }, {
    key: "getContent",
    value: (function () {
      var _getContent = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
        var fileReader, handler;
        return _regenerator.default.wrap(function (_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              fileReader = new FileReader(), handler = new Promise(function (resolve) {
                fileReader.onloadend = function () {
                  return resolve(fileReader.result);
                };
              });
              fileReader.readAsText(this.getFile());
              return _context.abrupt("return", handler);
            case 1:
            case "end":
              return _context.stop();
          }
        }, _callee, this);
      }));
      function getContent() {
        return _getContent.apply(this, arguments);
      }
      return getContent;
    }()
    /**
     * Get the file-reader File object data url string.
     *
     * @return {Promise<string>} data URI
     */
    )
  }, {
    key: "getDataUrl",
    value: (function () {
      var _getDataUrl = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
        var fileReader, handler;
        return _regenerator.default.wrap(function (_context2) {
          while (1) switch (_context2.prev = _context2.next) {
            case 0:
              fileReader = new FileReader(), handler = new Promise(function (resolve) {
                fileReader.onloadend = function () {
                  return resolve(fileReader.result);
                };
              });
              fileReader.readAsDataURL(this.getFile());
              return _context2.abrupt("return", handler);
            case 1:
            case "end":
              return _context2.stop();
          }
        }, _callee2, this);
      }));
      function getDataUrl() {
        return _getDataUrl.apply(this, arguments);
      }
      return getDataUrl;
    }())
  }], [{
    key: "getName",
    value: function getName() {
      return '';
    }

    /**
     * Check if the reader is currently active.
     *
     * @abstract
     * @return {boolean}
     */
  }, {
    key: "isActive",
    value: function isActive() {
      return true;
    }

    /**
     * Each file-reader can register the mime-types it supports in this method, so later a File object can be matched
     * to it accordingly.
     *
     * @abstract
     * @return {string[]} mime types
     */
  }, {
    key: "mimeTypes",
    get: function get() {
      return [];
    }

    /**
     * If the file-reader supports an input that's received without an explicit mime-type (such as strings or JavasScript
     * objects), here it can decide whether it can handle it and eventually return a suitable mime-type.
     *
     * @abstract
     * @param {*} input
     * @return {string|boolean} mime type
     */
  }, {
    key: "resolve",
    value: (function () {
      var _resolve = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(input) {
        return _regenerator.default.wrap(function (_context3) {
          while (1) switch (_context3.prev = _context3.next) {
            case 0:
              return _context3.abrupt("return", false);
            case 1:
            case "end":
              return _context3.stop();
          }
        }, _callee3);
      }));
      function resolve(_x) {
        return _resolve.apply(this, arguments);
      }
      return resolve;
    }()
    /**
     * Validate that a file can be handled by the file-reader, according to its mime-type.
     *
     * @param {File} file
     */
    )
  }, {
    key: "validate",
    value: (function () {
      var _validate = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4(file) {
        return _regenerator.default.wrap(function (_context4) {
          while (1) switch (_context4.prev = _context4.next) {
            case 0:
              if (!this.validator) {
                this.validator = new RegExp(this.mimeTypes.join('|'), 'i');
              }
              return _context4.abrupt("return", this.validator.test(file.type));
            case 1:
            case "end":
              return _context4.stop();
          }
        }, _callee4, this);
      }));
      function validate(_x2) {
        return _validate.apply(this, arguments);
      }
      return validate;
    }())
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/files/parsers/base/index.js":
/*!*************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/files/parsers/base/index.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "MediaParser", ({
  enumerable: true,
  get: function get() {
    return _mediaParser.MediaParser;
  }
}));
var _mediaParser = __webpack_require__(/*! ./media-parser */ "../assets/dev/js/editor/components/browser-import/files/parsers/base/media-parser.js");

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/files/parsers/base/media-parser.js":
/*!********************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/files/parsers/base/media-parser.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.MediaParser = 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 _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 _fileParserBase = _interopRequireDefault(__webpack_require__(/*! elementor-editor/components/browser-import/files/file-parser-base */ "../assets/dev/js/editor/components/browser-import/files/file-parser-base.js"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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; })(); }
/**
 * @abstract
 */
var MediaParser = exports.MediaParser = /*#__PURE__*/function (_FileParserBase) {
  function MediaParser() {
    (0, _classCallCheck2.default)(this, MediaParser);
    return _callSuper(this, MediaParser, arguments);
  }
  (0, _inherits2.default)(MediaParser, _FileParserBase);
  return (0, _createClass2.default)(MediaParser, [{
    key: "upload",
    value:
    /**
     * Upload a media file to the wordpress media library using the `wp/media` command.
     *
     * @param {*} file
     * @param {*} options
     * @return {{}} result
     */
    function upload(file) {
      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      return $e.data.run('create', 'wp/media', {
        file: file,
        options: _objectSpread({
          progress: true
        }, options)
      }).catch(function (result) {
        elementor.notifications.showToast({
          message: result.message
        });
        return Promise.reject(result);
      });
    }
  }]);
}(_fileParserBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/files/parsers/image/index.js":
/*!**************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/files/parsers/image/index.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Widget", ({
  enumerable: true,
  get: function get() {
    return _widget.Widget;
  }
}));
var _widget = __webpack_require__(/*! ./widget */ "../assets/dev/js/editor/components/browser-import/files/parsers/image/widget.js");

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/files/parsers/image/widget.js":
/*!***************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/files/parsers/image/widget.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.Widget = void 0;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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 _containerFactory = _interopRequireDefault(__webpack_require__(/*! ../../../container-factory */ "../assets/dev/js/editor/components/browser-import/container-factory.js"));
var _base = __webpack_require__(/*! ../base */ "../assets/dev/js/editor/components/browser-import/files/parsers/base/index.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; })(); }
var Widget = exports.Widget = /*#__PURE__*/function (_MediaParser) {
  function Widget() {
    (0, _classCallCheck2.default)(this, Widget);
    return _callSuper(this, Widget, arguments);
  }
  (0, _inherits2.default)(Widget, _MediaParser);
  return (0, _createClass2.default)(Widget, [{
    key: "parse",
    value: (
    /**
     * @inheritDoc
     */
    function () {
      var _parse = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
        var file, container, _t, _t2, _t3, _t4, _t5;
        return _regenerator.default.wrap(function (_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              file = this.reader.getFile();
              _t = _containerFactory.default;
              _context.next = 1;
              return this.reader.getDataUrl();
            case 1:
              _t2 = _context.sent;
              _t3 = file.name.split('.')[0];
              _t4 = {
                url: _t2,
                alt: _t3,
                source: 'library'
              };
              _t5 = {
                image: _t4
              };
              container = _t.createElementContainer.call(_t, {
                widgetType: 'image',
                settings: _t5
              });
              this.upload(file).then(function (_ref) {
                var data = _ref.data;
                $e.internal('document/elements/set-settings', {
                  // The reason we use the container id and not the container instance itself is that the container
                  // created above is just a placeholder, which later recreated using the same id.
                  container: elementor.getContainer(container.id),
                  settings: {
                    image: {
                      url: data.source_url,
                      id: data.id
                    }
                  }
                });
              }).catch(function () {
                elementor.documents.getCurrent().history.setActive(false);
                $e.run('document/elements/reset-settings', {
                  container: elementor.getContainer(container.id),
                  options: {
                    external: true
                  }
                });
                elementor.documents.getCurrent().history.setActive(true);
              });
              return _context.abrupt("return", container);
            case 2:
            case "end":
              return _context.stop();
          }
        }, _callee, this);
      }));
      function parse() {
        return _parse.apply(this, arguments);
      }
      return parse;
    }()
    /**
     * @inheritDoc
     */
    )
  }], [{
    key: "getName",
    value:
    /**
     * @inheritDoc
     */
    function getName() {
      return 'widget';
    }

    /**
     * @inheritDoc
     */
  }, {
    key: "getReaders",
    value: function getReaders() {
      return ['image'];
    }
  }, {
    key: "validate",
    value: (function () {
      var _validate = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
        return _regenerator.default.wrap(function (_context2) {
          while (1) switch (_context2.prev = _context2.next) {
            case 0:
              return _context2.abrupt("return", true);
            case 1:
            case "end":
              return _context2.stop();
          }
        }, _callee2);
      }));
      function validate() {
        return _validate.apply(this, arguments);
      }
      return validate;
    }())
  }]);
}(_base.MediaParser);

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/files/parsers/index.js":
/*!********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/files/parsers/index.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.video = exports.json = exports.image = exports.base = void 0;
var _base = _interopRequireWildcard(__webpack_require__(/*! ./base */ "../assets/dev/js/editor/components/browser-import/files/parsers/base/index.js"));
exports.base = _base;
var _image = _interopRequireWildcard(__webpack_require__(/*! ./image */ "../assets/dev/js/editor/components/browser-import/files/parsers/image/index.js"));
exports.image = _image;
var _json = _interopRequireWildcard(__webpack_require__(/*! ./json */ "../assets/dev/js/editor/components/browser-import/files/parsers/json/index.js"));
exports.json = _json;
var _video = _interopRequireWildcard(__webpack_require__(/*! ./video */ "../assets/dev/js/editor/components/browser-import/files/parsers/video/index.js"));
exports.video = _video;
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/files/parsers/json/elements.js":
/*!****************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/files/parsers/json/elements.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.Elements = void 0;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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 _fileParserBase = _interopRequireDefault(__webpack_require__(/*! ../../file-parser-base */ "../assets/dev/js/editor/components/browser-import/files/file-parser-base.js"));
var _containerFactory = _interopRequireDefault(__webpack_require__(/*! ../../../container-factory */ "../assets/dev/js/editor/components/browser-import/container-factory.js"));
var _filesUploadHandler = _interopRequireDefault(__webpack_require__(/*! ../../../../../utils/files-upload-handler */ "../assets/dev/js/editor/utils/files-upload-handler.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; })(); }
var Elements = exports.Elements = /*#__PURE__*/function (_FileParserBase) {
  function Elements() {
    (0, _classCallCheck2.default)(this, Elements);
    return _callSuper(this, Elements, arguments);
  }
  (0, _inherits2.default)(Elements, _FileParserBase);
  return (0, _createClass2.default)(Elements, [{
    key: "parse",
    value: (
    /**
     * @inheritDoc
     */
    function () {
      var _parse = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
        return _regenerator.default.wrap(function (_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              _context.next = 1;
              return this.reader.getData();
            case 1:
              return _context.abrupt("return", _context.sent.content.map(function (element) {
                return _containerFactory.default.createElementContainer(element);
              }));
            case 2:
            case "end":
              return _context.stop();
          }
        }, _callee, this);
      }));
      function parse() {
        return _parse.apply(this, arguments);
      }
      return parse;
    }()
    /**
     * @inheritDoc
     */
    )
  }], [{
    key: "getName",
    value:
    /**
     * @inheritDoc
     */
    function getName() {
      return 'elements';
    }

    /**
     * @inheritDoc
     */
  }, {
    key: "getReaders",
    value: function getReaders() {
      return ['json'];
    }
  }, {
    key: "validate",
    value: (function () {
      var _validate = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(reader) {
        var _this = this;
        return _regenerator.default.wrap(function (_context3) {
          while (1) switch (_context3.prev = _context3.next) {
            case 0:
              if (elementorCommon.config.filesUpload.unfilteredFiles) {
                _context3.next = 1;
                break;
              }
              return _context3.abrupt("return", new Promise(function (resolve) {
                var enableUnfilteredDialog = _filesUploadHandler.default.getUnfilteredFilesNotEnabledImportTemplateDialog(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
                  var result;
                  return _regenerator.default.wrap(function (_context2) {
                    while (1) switch (_context2.prev = _context2.next) {
                      case 0:
                        _context2.next = 1;
                        return _this.validateData(reader);
                      case 1:
                        result = _context2.sent;
                        resolve(result);
                      case 2:
                      case "end":
                        return _context2.stop();
                    }
                  }, _callee2);
                })));
                enableUnfilteredDialog.show();
              }));
            case 1:
              _context3.next = 2;
              return this.validateData(reader);
            case 2:
              return _context3.abrupt("return", _context3.sent);
            case 3:
            case "end":
              return _context3.stop();
          }
        }, _callee3, this);
      }));
      function validate(_x) {
        return _validate.apply(this, arguments);
      }
      return validate;
    }())
  }, {
    key: "validateData",
    value: function () {
      var _validateData = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4(reader) {
        var data;
        return _regenerator.default.wrap(function (_context4) {
          while (1) switch (_context4.prev = _context4.next) {
            case 0:
              _context4.next = 1;
              return reader.getData();
            case 1:
              data = _context4.sent;
              return _context4.abrupt("return", data.version && data.type && Array.isArray(data.content));
            case 2:
            case "end":
              return _context4.stop();
          }
        }, _callee4);
      }));
      function validateData(_x2) {
        return _validateData.apply(this, arguments);
      }
      return validateData;
    }()
  }]);
}(_fileParserBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/files/parsers/json/index.js":
/*!*************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/files/parsers/json/index.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Elements", ({
  enumerable: true,
  get: function get() {
    return _elements.Elements;
  }
}));
var _elements = __webpack_require__(/*! ./elements */ "../assets/dev/js/editor/components/browser-import/files/parsers/json/elements.js");

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/files/parsers/video/index.js":
/*!**************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/files/parsers/video/index.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Widget", ({
  enumerable: true,
  get: function get() {
    return _widget.Widget;
  }
}));
var _widget = __webpack_require__(/*! ./widget */ "../assets/dev/js/editor/components/browser-import/files/parsers/video/widget.js");

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/files/parsers/video/widget.js":
/*!***************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/files/parsers/video/widget.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.Widget = void 0;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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 _containerFactory = _interopRequireDefault(__webpack_require__(/*! ../../../container-factory */ "../assets/dev/js/editor/components/browser-import/container-factory.js"));
var _base = __webpack_require__(/*! ../base */ "../assets/dev/js/editor/components/browser-import/files/parsers/base/index.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; })(); }
var Widget = exports.Widget = /*#__PURE__*/function (_MediaParser) {
  function Widget() {
    (0, _classCallCheck2.default)(this, Widget);
    return _callSuper(this, Widget, arguments);
  }
  (0, _inherits2.default)(Widget, _MediaParser);
  return (0, _createClass2.default)(Widget, [{
    key: "parse",
    value: (
    /**
     * @inheritDoc
     */
    function () {
      var _parse = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
        var file, container, _t, _t2, _t3, _t4, _t5;
        return _regenerator.default.wrap(function (_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              file = this.reader.getFile();
              _t = _containerFactory.default;
              _context.next = 1;
              return this.reader.getDataUrl();
            case 1:
              _t2 = _context.sent;
              _t3 = file.name.split('.')[0];
              _t4 = {
                url: _t2,
                alt: _t3,
                source: 'library'
              };
              _t5 = {
                video_type: 'hosted',
                hosted_url: _t4
              };
              container = _t.createElementContainer.call(_t, {
                widgetType: 'video',
                settings: _t5
              });
              this.upload(file).then(function (_ref) {
                var data = _ref.data;
                $e.internal('document/elements/set-settings', {
                  // The reason we use the container id and not the container instance itself is that the container
                  // created above is just a placeholder, which later recreated using the same id.
                  container: elementor.getContainer(container.id),
                  settings: {
                    hosted_url: {
                      url: data.source_url,
                      id: data.id
                    }
                  }
                });
              }).catch(function () {
                elementor.documents.getCurrent().history.setActive(false);
                $e.run('document/elements/reset-settings', {
                  container: elementor.getContainer(container.id),
                  options: {
                    external: true
                  }
                });
                elementor.documents.getCurrent().history.setActive(true);
              });
              return _context.abrupt("return", container);
            case 2:
            case "end":
              return _context.stop();
          }
        }, _callee, this);
      }));
      function parse() {
        return _parse.apply(this, arguments);
      }
      return parse;
    }()
    /**
     * @inheritDoc
     */
    )
  }], [{
    key: "getName",
    value:
    /**
     * @inheritDoc
     */
    function getName() {
      return 'widget';
    }

    /**
     * @inheritDoc
     */
  }, {
    key: "getReaders",
    value: function getReaders() {
      return ['video'];
    }
  }, {
    key: "validate",
    value: (function () {
      var _validate = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
        return _regenerator.default.wrap(function (_context2) {
          while (1) switch (_context2.prev = _context2.next) {
            case 0:
              return _context2.abrupt("return", true);
            case 1:
            case "end":
              return _context2.stop();
          }
        }, _callee2);
      }));
      function validate() {
        return _validate.apply(this, arguments);
      }
      return validate;
    }())
  }]);
}(_base.MediaParser);

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/files/readers/image.js":
/*!********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/files/readers/image.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.Image = 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 _fileReaderBase = _interopRequireDefault(__webpack_require__(/*! ../file-reader-base */ "../assets/dev/js/editor/components/browser-import/files/file-reader-base.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; })(); }
var Image = exports.Image = /*#__PURE__*/function (_FileReaderBase) {
  function Image() {
    (0, _classCallCheck2.default)(this, Image);
    return _callSuper(this, Image, arguments);
  }
  (0, _inherits2.default)(Image, _FileReaderBase);
  return (0, _createClass2.default)(Image, null, [{
    key: "getName",
    value:
    /**
     * @inheritDoc
     */
    function getName() {
      return 'image';
    }

    /**
     * @inheritDoc
     */
  }, {
    key: "mimeTypes",
    get: function get() {
      return ['image\\/\\w+'];
    }
  }]);
}(_fileReaderBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/files/readers/index.js":
/*!********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/files/readers/index.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Image", ({
  enumerable: true,
  get: function get() {
    return _image.Image;
  }
}));
Object.defineProperty(exports, "Json", ({
  enumerable: true,
  get: function get() {
    return _json.Json;
  }
}));
Object.defineProperty(exports, "Video", ({
  enumerable: true,
  get: function get() {
    return _video.Video;
  }
}));
var _image = __webpack_require__(/*! ./image */ "../assets/dev/js/editor/components/browser-import/files/readers/image.js");
var _video = __webpack_require__(/*! ./video */ "../assets/dev/js/editor/components/browser-import/files/readers/video.js");
var _json = __webpack_require__(/*! ./json */ "../assets/dev/js/editor/components/browser-import/files/readers/json.js");

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/files/readers/json.js":
/*!*******************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/files/readers/json.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.Json = void 0;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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 _fileReaderBase = _interopRequireDefault(__webpack_require__(/*! ../file-reader-base */ "../assets/dev/js/editor/components/browser-import/files/file-reader-base.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; })(); }
var Json = exports.Json = /*#__PURE__*/function (_FileReaderBase) {
  function Json() {
    (0, _classCallCheck2.default)(this, Json);
    return _callSuper(this, Json, arguments);
  }
  (0, _inherits2.default)(Json, _FileReaderBase);
  return (0, _createClass2.default)(Json, [{
    key: "getData",
    value: (
    /**
     * Returns the file content as Json object.
     *
     * @return {{}} file content
     */
    function () {
      var _getData = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
        return _regenerator.default.wrap(function (_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              if (this._data) {
                _context.next = 2;
                break;
              }
              _context.next = 1;
              return this.getContent().then(function (content) {
                return JSON.parse(content);
              });
            case 1:
              this._data = _context.sent;
            case 2:
              return _context.abrupt("return", this._data);
            case 3:
            case "end":
              return _context.stop();
          }
        }, _callee, this);
      }));
      function getData() {
        return _getData.apply(this, arguments);
      }
      return getData;
    }())
  }], [{
    key: "getName",
    value:
    /**
     * @inheritDoc
     */
    function getName() {
      return 'json';
    }
  }, {
    key: "isActive",
    value: function isActive() {
      var _elementor$config$use, _elementor$config$use2;
      return elementor.config.user.is_administrator || ((_elementor$config$use = (_elementor$config$use2 = elementor.config.user.restrictions) === null || _elementor$config$use2 === void 0 ? void 0 : _elementor$config$use2.includes('json-upload')) !== null && _elementor$config$use !== void 0 ? _elementor$config$use : false);
    }

    /**
     * @inheritDoc
     */
  }, {
    key: "mimeTypes",
    get: function get() {
      return ['application/json'];
    }

    /**
     * @inheritDoc
     */
  }, {
    key: "resolve",
    value: (function () {
      var _resolve = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(input) {
        var _t;
        return _regenerator.default.wrap(function (_context2) {
          while (1) switch (_context2.prev = _context2.next) {
            case 0:
              _context2.prev = 0;
              JSON.parse(input);
              return _context2.abrupt("return", 'application/json');
            case 1:
              _context2.prev = 1;
              _t = _context2["catch"](0);
              return _context2.abrupt("return", false);
            case 2:
            case "end":
              return _context2.stop();
          }
        }, _callee2, null, [[0, 1]]);
      }));
      function resolve(_x) {
        return _resolve.apply(this, arguments);
      }
      return resolve;
    }())
  }]);
}(_fileReaderBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/files/readers/video.js":
/*!********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/files/readers/video.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.Video = 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 _fileReaderBase = _interopRequireDefault(__webpack_require__(/*! ../file-reader-base */ "../assets/dev/js/editor/components/browser-import/files/file-reader-base.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; })(); }
var Video = exports.Video = /*#__PURE__*/function (_FileReaderBase) {
  function Video() {
    (0, _classCallCheck2.default)(this, Video);
    return _callSuper(this, Video, arguments);
  }
  (0, _inherits2.default)(Video, _FileReaderBase);
  return (0, _createClass2.default)(Video, null, [{
    key: "getName",
    value:
    /**
     * @inheritDoc
     */
    function getName() {
      return 'video';
    }

    /**
     * @inheritDoc
     */
  }, {
    key: "mimeTypes",
    get: function get() {
      return ['video\\/\\w+'];
    }
  }]);
}(_fileReaderBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/items/item-collection.js":
/*!**********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/items/item-collection.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _item = _interopRequireDefault(__webpack_require__(/*! ./item */ "../assets/dev/js/editor/components/browser-import/items/item.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; }
var ItemCollection = exports["default"] = /*#__PURE__*/function () {
  /**
   * ItemCollection constructor.
   *
   * @param {Array<*>} items
   */
  function ItemCollection() {
    var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
    (0, _classCallCheck2.default)(this, ItemCollection);
    /**
     * The Item objects list.
     */
    (0, _defineProperty2.default)(this, "items", void 0);
    this.setItems(items);
  }

  /**
   * Set the Item objects list.
   *
   * @param {Array<*>} items
   */
  return (0, _createClass2.default)(ItemCollection, [{
    key: "setItems",
    value: function setItems() {
      var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
      var _iterator = _createForOfIteratorHelper(items),
        _step;
      try {
        for (_iterator.s(); !(_step = _iterator.n()).done;) {
          var item = _step.value;
          if (!(item instanceof _item.default)) {
            throw new Error('ItemCollection can only contain Item objects');
          }
        }
      } catch (err) {
        _iterator.e(err);
      } finally {
        _iterator.f();
      }
      this.items = items;
    }

    /**
     * Get the Item objects list.
     *
     * @return {[]} items
     */
  }, {
    key: "getItems",
    value: function getItems() {
      return this.items;
    }

    /**
     * Get files of all items.
     *
     * @return {[]} files
     */
  }, {
    key: "getFiles",
    value: function getFiles() {
      return this.items.map(function (item) {
        return item.getFile();
      });
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/items/item.js":
/*!***********************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/items/item.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _isInstanceof = _interopRequireDefault(__webpack_require__(/*! ../../../utils/is-instanceof */ "../assets/dev/js/editor/utils/is-instanceof.js"));
var _mime = _interopRequireDefault(__webpack_require__(/*! mime */ "../node_modules/mime/index.js"));
/**
 * @typedef {import('../files/file-parser-base')} FileParserBase
 * @typedef {import('../files/file-reader-base')} FileReaderBase
 */
var Item = exports["default"] = /*#__PURE__*/function () {
  /**
   * The Item constructor.
   *
   * @param {*} input
   * @param {*} options
   */
  function Item(input) {
    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    (0, _classCallCheck2.default)(this, Item);
    /**
     * The item File object.
     *
     * @type {File}
     */
    (0, _defineProperty2.default)(this, "file", void 0);
    /**
     * The Item options list.
     *
     * @type {{}}
     */
    (0, _defineProperty2.default)(this, "options", {});
    this.file = this.toFile(input);
    this.options = options;
  }

  /**
   * Convert the input into a File object.
   *
   * @param {*} input
   * @return {File} file
   */
  return (0, _createClass2.default)(Item, [{
    key: "toFile",
    value: function toFile(input) {
      if (!(0, _isInstanceof.default)(input, File)) {
        var _this$options = this.options,
          fileName = _this$options.fileName,
          type = _this$options.type,
          options = {
            type: type || input.type
          };

        // When the input is not a Blob object, use the mime-type from the options to generate the file.
        input = new File(Array.isArray(input) ? input : [input], fileName || this.constructor.createFileName(options), options);
      }
      return input;
    }

    /**
     * Create a random file name from a Blob/File object while using the suitable extension for the blob mime-type.
     *
     * @param {*} blob
     * @return {string} file name
     */
  }, {
    key: "getFile",
    value:
    /**
     * Get the item File object.
     *
     * @return {File} file
     */
    function getFile() {
      return this.file;
    }

    /**
     * Get the file-reader of the Item.
     *
     * @return {FileReaderBase} reader
     */
  }, {
    key: "getReader",
    value: function getReader() {
      return this.options.reader;
    }

    /**
     * Get the file-parser of the Item.
     *
     * @return {FileParserBase} parser
     */
  }, {
    key: "getParser",
    value: function getParser() {
      return this.options.parser;
    }

    /**
     * Set the file-reader of the Item.
     *
     * @param {FileReaderBase} reader
     */
  }, {
    key: "setReader",
    value: function setReader(reader) {
      this.options.reader = reader;
    }

    /**
     * Set the file-parser of the Item.
     *
     * @param {FileParserBase} parser
     */
  }, {
    key: "setParser",
    value: function setParser(parser) {
      this.options.parser = parser;
    }
  }], [{
    key: "createFileName",
    value: function createFileName(blob) {
      return [elementorCommon.helpers.getUniqueId(), _mime.default.getExtension(blob.type)].join('.');
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/manager.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/manager.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 _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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 _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../assets/dev/js/editor/components/browser-import/component.js"));
var _defaultConfig = _interopRequireDefault(__webpack_require__(/*! ./default-config */ "../assets/dev/js/editor/components/browser-import/default-config.js"));
var _itemCollection = _interopRequireDefault(__webpack_require__(/*! elementor-editor/components/browser-import/items/item-collection */ "../assets/dev/js/editor/components/browser-import/items/item-collection.js"));
var _normalizer = _interopRequireDefault(__webpack_require__(/*! ./normalizer */ "../assets/dev/js/editor/components/browser-import/normalizer.js"));
var _session = _interopRequireDefault(__webpack_require__(/*! elementor-editor/components/browser-import/session */ "../assets/dev/js/editor/components/browser-import/session.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')} Container
 */
/**
 * @typedef {import('./files/file-reader-base')} FileReaderBase
 */
/**
 * @typedef {import('./files/file-parser-base')} FileParserBase
 */
var Manager = exports["default"] = /*#__PURE__*/function (_elementorModules$edi) {
  /**
   * Manager constructor.
   */
  function Manager() {
    var _this;
    (0, _classCallCheck2.default)(this, Manager);
    _this = _callSuper(this, Manager);
    /**
     * File-readers list.
     *
     * @type {{}}
     */
    (0, _defineProperty2.default)(_this, "readers", {});
    /**
     * File-parsers list according to their readers.
     *
     * @type {{}}
     */
    (0, _defineProperty2.default)(_this, "parsers", {});
    _this.normalizer = new _normalizer.default(_this);
    $e.components.register(new _component.default({
      manager: _this
    }));
    _this.parseConfig(_defaultConfig.default);
    return _this;
  }

  /**
   * Parse the config for the Manager.
   *
   * @param {*} config
   */
  (0, _inherits2.default)(Manager, _elementorModules$edi);
  return (0, _createClass2.default)(Manager, [{
    key: "parseConfig",
    value: function parseConfig() {
      var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var _iterator = _createForOfIteratorHelper(config.readers || {}),
        _step;
      try {
        for (_iterator.s(); !(_step = _iterator.n()).done;) {
          var _reader$isActive, _reader$isActive2;
          var reader = _step.value;
          var isActive = (_reader$isActive = (_reader$isActive2 = reader.isActive) === null || _reader$isActive2 === void 0 ? void 0 : _reader$isActive2.call(reader)) !== null && _reader$isActive !== void 0 ? _reader$isActive : true;
          if (isActive) {
            this.registerFileReader(reader);
          }
        }
      } catch (err) {
        _iterator.e(err);
      } finally {
        _iterator.f();
      }
      var _iterator2 = _createForOfIteratorHelper(config.parsers || {}),
        _step2;
      try {
        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
          var parser = _step2.value;
          this.registerFileParser(parser);
        }
      } catch (err) {
        _iterator2.e(err);
      } finally {
        _iterator2.f();
      }
    }

    /**
     * Create a new Session instance and normalize input if needed.
     *
     * @param {*}              input
     * @param {Container|null} target
     * @param {{}}             options
     * @return {Session} session
     */
  }, {
    key: "createSession",
    value: (function () {
      var _createSession = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(input, target) {
        var options,
          _args = arguments;
        return _regenerator.default.wrap(function (_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              options = _args.length > 2 && _args[2] !== undefined ? _args[2] : {};
              if (input instanceof _itemCollection.default) {
                _context.next = 2;
                break;
              }
              _context.next = 1;
              return this.getNormalizer().normalize(input);
            case 1:
              input = _context.sent;
            case 2:
              return _context.abrupt("return", new _session.default(this, input, target, options));
            case 3:
            case "end":
              return _context.stop();
          }
        }, _callee, this);
      }));
      function createSession(_x, _x2) {
        return _createSession.apply(this, arguments);
      }
      return createSession;
    }()
    /**
     * Register a new file-reader.
     *
     * @param {{}} reader
     */
    )
  }, {
    key: "registerFileReader",
    value: function registerFileReader(reader) {
      this.readers[reader.getName()] = reader;
    }

    /**
     * Register a new file-parser.
     *
     * @param {*} parser
     */
  }, {
    key: "registerFileParser",
    value: function registerFileParser(parser) {
      var _iterator3 = _createForOfIteratorHelper(parser.getReaders()),
        _step3;
      try {
        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
          var readerName = _step3.value;
          if (!this.readers[readerName]) {
            continue;
          } else if (!this.parsers[readerName]) {
            this.parsers[readerName] = {};
          }
          this.parsers[readerName][parser.getName()] = parser;
        }
      } catch (err) {
        _iterator3.e(err);
      } finally {
        _iterator3.f();
      }
    }

    /**
     * Get the file-handler that can handle the File of the given Item.
     *
     * @param {*}       item
     * @param {boolean} instantiate
     * @return {FileReaderBase|boolean} file handler
     */
  }, {
    key: "getReaderOf",
    value: (function () {
      var _getReaderOf = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(item) {
        var instantiate,
          file,
          readerName,
          readers,
          _i,
          _Object$values,
          reader,
          _args2 = arguments;
        return _regenerator.default.wrap(function (_context2) {
          while (1) switch (_context2.prev = _context2.next) {
            case 0:
              instantiate = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : false;
              file = item.getFile(), readerName = item.getReader(), readers = this.getReaders(readerName);
              _i = 0, _Object$values = Object.values(readers);
            case 1:
              if (!(_i < _Object$values.length)) {
                _context2.next = 4;
                break;
              }
              reader = _Object$values[_i];
              _context2.next = 2;
              return reader.validate(file);
            case 2:
              if (!_context2.sent) {
                _context2.next = 3;
                break;
              }
              if (!readerName) {
                item.setReader(reader.getName());
              }
              return _context2.abrupt("return", instantiate ? new reader(file) : reader);
            case 3:
              _i++;
              _context2.next = 1;
              break;
            case 4:
              return _context2.abrupt("return", false);
            case 5:
            case "end":
              return _context2.stop();
          }
        }, _callee2, this);
      }));
      function getReaderOf(_x3) {
        return _getReaderOf.apply(this, arguments);
      }
      return getReaderOf;
    }()
    /**
     * Get the file-parser that can handle the File of the given Item.
     *
     * @param {*}       item
     * @param {boolean} instantiate
     * @return {Promise<FileParserBase|boolean>} file parser
     */
    )
  }, {
    key: "getParserOf",
    value: (function () {
      var _getParserOf = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(item) {
        var instantiate,
          reader,
          parserName,
          parsers,
          _i2,
          _Object$values2,
          parser,
          _args3 = arguments;
        return _regenerator.default.wrap(function (_context3) {
          while (1) switch (_context3.prev = _context3.next) {
            case 0:
              instantiate = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : false;
              _context3.next = 1;
              return this.getReaderOf(item, true);
            case 1:
              reader = _context3.sent;
              parserName = item.getParser();
              if (!reader) {
                _context3.next = 5;
                break;
              }
              parsers = this.getParsers(reader.constructor.getName(), parserName);
              _i2 = 0, _Object$values2 = Object.values(parsers);
            case 2:
              if (!(_i2 < _Object$values2.length)) {
                _context3.next = 5;
                break;
              }
              parser = _Object$values2[_i2];
              _context3.next = 3;
              return parser.validate(reader);
            case 3:
              if (!_context3.sent) {
                _context3.next = 4;
                break;
              }
              if (!parserName) {
                item.setParser(parser.getName());
              }
              return _context3.abrupt("return", instantiate ? new parser(reader) : parser);
            case 4:
              _i2++;
              _context3.next = 2;
              break;
            case 5:
              return _context3.abrupt("return", false);
            case 6:
            case "end":
              return _context3.stop();
          }
        }, _callee3, this);
      }));
      function getParserOf(_x4) {
        return _getParserOf.apply(this, arguments);
      }
      return getParserOf;
    }()
    /**
     * Resolve the mime-type for an input using the registered parsers.
     *
     * @param {*} input
     * @return {Promise<string|boolean>} mime type, or false if not found
     */
    )
  }, {
    key: "getMimeTypeOf",
    value: (function () {
      var _getMimeTypeOf = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4(input) {
        var _i3, _Object$values3, reader, mimeType;
        return _regenerator.default.wrap(function (_context4) {
          while (1) switch (_context4.prev = _context4.next) {
            case 0:
              _i3 = 0, _Object$values3 = Object.values(this.getReaders());
            case 1:
              if (!(_i3 < _Object$values3.length)) {
                _context4.next = 4;
                break;
              }
              reader = _Object$values3[_i3];
              _context4.next = 2;
              return reader.resolve(input);
            case 2:
              mimeType = _context4.sent;
              if (!mimeType) {
                _context4.next = 3;
                break;
              }
              return _context4.abrupt("return", mimeType);
            case 3:
              _i3++;
              _context4.next = 1;
              break;
            case 4:
              return _context4.abrupt("return", false);
            case 5:
            case "end":
              return _context4.stop();
          }
        }, _callee4, this);
      }));
      function getMimeTypeOf(_x5) {
        return _getMimeTypeOf.apply(this, arguments);
      }
      return getMimeTypeOf;
    }()
    /**
     * Get the Normalizer instance.
     *
     * @return {Normalizer} normalizer
     */
    )
  }, {
    key: "getNormalizer",
    value: function getNormalizer() {
      return this.normalizer;
    }

    /**
     * Get all registered file-readers.
     *
     * @param {*|Array<*>} readers
     * @return {{}} registered file readers
     */
  }, {
    key: "getReaders",
    value: function getReaders() {
      var _this2 = this;
      var readers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
      readers = Array.isArray(readers) ? readers : [readers];
      if (!readers.length) {
        return this.readers;
      }
      return Object.fromEntries(readers.filter(function (reader) {
        return reader in _this2.readers;
      }).map(function (reader) {
        return [reader, _this2.readers[reader]];
      }));
    }

    /**
     * Get all registered file-parsers, unless a reader name is specified, in which case its parsers are returned.
     *
     * @param {*} reader
     * @param {*} parsers
     * @return {{}} parsers
     */
  }, {
    key: "getParsers",
    value: function getParsers(reader) {
      var _this3 = this;
      var parsers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
      parsers = Array.isArray(parsers) ? parsers : [parsers];
      if (!parsers.length) {
        return this.parsers[reader] || {};
      }
      return Object.fromEntries(parsers.filter(function (parser) {
        return parser in _this3.parsers[reader];
      }).map(function (parser) {
        return [parser, _this3.parsers[reader][parser]];
      }));
    }
  }]);
}(elementorModules.editor.utils.Module);

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/normalizer.js":
/*!***********************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/normalizer.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 _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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 _isInstanceof = _interopRequireDefault(__webpack_require__(/*! ../../utils/is-instanceof */ "../assets/dev/js/editor/utils/is-instanceof.js"));
var _item = _interopRequireDefault(__webpack_require__(/*! ./items/item */ "../assets/dev/js/editor/components/browser-import/items/item.js"));
var _itemCollection = _interopRequireDefault(__webpack_require__(/*! ./items/item-collection */ "../assets/dev/js/editor/components/browser-import/items/item-collection.js"));
/**
 * @typedef {import('../modules/component-base')} ComponentBase
 */
/**
 * @typedef {import('./manager')} Manager
 */
var Normalizer = exports["default"] = /*#__PURE__*/function () {
  /**
   * Normalizer constructor.
   *
   * @param {Manager} manager
   */
  function Normalizer(manager) {
    (0, _classCallCheck2.default)(this, Normalizer);
    this.manager = manager;
  }

  /**
   * Normalize input to an ItemCollection, where each item is an Item object. This method can be used to normalize a
   * vast spectrum of input types - from data url strings to blob objects, and array of them. Other kind of parsers
   * can be registered to the Manager.
   *
   * @param {*} input
   * @return {Promise<ItemCollection>} result
   */
  return (0, _createClass2.default)(Normalizer, [{
    key: "normalize",
    value: (function () {
      var _normalize = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(input) {
        return _regenerator.default.wrap(function (_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              if (!(input instanceof _itemCollection.default)) {
                input = this.toItemCollection(input);
              }
              return _context.abrupt("return", input);
            case 1:
            case "end":
              return _context.stop();
          }
        }, _callee, this);
      }));
      function normalize(_x) {
        return _normalize.apply(this, arguments);
      }
      return normalize;
    }()
    /**
     * Convert an single or multiple input subjects into a ItemCollection object. To learn more about the way each
     * subject is treated, please refer the 'toItem' method.
     *
     * @param {*} subjects
     * @return {Promise<ItemCollection>} result
     */
    )
  }, {
    key: "toItemCollection",
    value: (function () {
      var _toItemCollection = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(subjects) {
        var _this = this;
        return _regenerator.default.wrap(function (_context2) {
          while (1) switch (_context2.prev = _context2.next) {
            case 0:
              if (!Array.isArray(subjects)) {
                subjects = (0, _isInstanceof.default)(subjects, FileList) || (0, _isInstanceof.default)(subjects, DataTransferItemList) ? Array.from(subjects) : [subjects];
              }
              return _context2.abrupt("return", Promise.all(subjects.map(function (subject) {
                // Creating a ItemCollection can only be made with an array of Item objects. Therefore, unless the
                // subject is an Item object, we should transform it into one.
                if (!(subject instanceof _item.default)) {
                  subject = _this.toItem(subject);
                }
                return subject;
              })).then(function (items) {
                return new _itemCollection.default(items);
              }));
            case 1:
            case "end":
              return _context2.stop();
          }
        }, _callee2);
      }));
      function toItemCollection(_x2) {
        return _toItemCollection.apply(this, arguments);
      }
      return toItemCollection;
    }()
    /**
     * Convert a single subject into an Item object.
     *
     * @param {*} subject
     * @return {Promise<Item>} result
     */
    )
  }, {
    key: "toItem",
    value: (function () {
      var _toItem = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(subject) {
        var mimeType, _t;
        return _regenerator.default.wrap(function (_context3) {
          while (1) switch (_context3.prev = _context3.next) {
            case 0:
              if ((0, _isInstanceof.default)(subject, [Blob, File, DataTransferItem])) {
                _context3.next = 7;
                break;
              }
              _context3.prev = 1;
              // In order to check whether it's a data url string, we're trying to decode it. If it is a data url,
              // we can extract the blob later using `fetch`.
              window.atob(subject.split(',')[1]);
              _context3.next = 5;
              break;
            case 2:
              _context3.prev = 2;
              _t = _context3["catch"](1);
              _context3.next = 3;
              return this.manager.getMimeTypeOf(subject);
            case 3:
              mimeType = _context3.sent;
              if (!mimeType) {
                _context3.next = 4;
                break;
              }
              subject = this.constructor.createDataUrl(subject, mimeType);
              _context3.next = 5;
              break;
            case 4:
              throw new Error('The input provided cannot be resolved');
            case 5:
              _context3.next = 6;
              return fetch(subject).then(function (res) {
                return res.blob();
              });
            case 6:
              subject = _context3.sent;
            case 7:
              return _context3.abrupt("return", new _item.default(subject));
            case 8:
            case "end":
              return _context3.stop();
          }
        }, _callee3, this, [[1, 2]]);
      }));
      function toItem(_x3) {
        return _toItem.apply(this, arguments);
      }
      return toItem;
    }()
    /**
     * A utility for creating a data url string functionally.
     *
     * @param {string}           data
     * @param {string|undefined} mimeType
     * @param {boolean}          base64
     * @return {string} data URI
     */
    )
  }], [{
    key: "createDataUrl",
    value: function createDataUrl(data) {
      var mimeType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
      var base64 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
      if (base64) {
        data = "base64,".concat(btoa(data));
      }
      if (mimeType) {
        mimeType += ';';
      }
      return "data:".concat(mimeType || '').concat(data);
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/components/browser-import/session.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/components/browser-import/session.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 _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.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; }
/**
 * @typedef {import('../../container/container')} Container
 */
/**
 * @typedef {import('./manager')} Manager
 */
/**
 * @typedef {import('./items/item-collection')} ItemCollection
 */
var Session = exports["default"] = /*#__PURE__*/function () {
  /**
   * Session constructor.
   *
   * @param {Manager}             manager
   * @param {ItemCollection|null} itemCollection
   * @param {Container|null}      target
   * @param {{}}                  options
   */
  function Session(manager) {
    var itemCollection = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
    var target = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
    var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
    (0, _classCallCheck2.default)(this, Session);
    /**
     * The Manager instance.
     *
     * @type {Manager}
     */
    (0, _defineProperty2.default)(this, "manager", void 0);
    /**
     * The ItemCollection instance.
     *
     * @type {ItemCollection}
     */
    (0, _defineProperty2.default)(this, "itemCollection", void 0);
    /**
     * The Target instance.
     *
     * @type {Container}
     */
    (0, _defineProperty2.default)(this, "target", void 0);
    /**
     * The Session options.
     *
     * @type {{}}
     */
    (0, _defineProperty2.default)(this, "options", {
      target: {}
    });
    this.manager = manager;
    this.itemCollection = itemCollection;
    this.target = target;
    Object.assign(this.options, options);
  }

  /**
   * Validate all files in this session can be handled.
   *
   * @return {boolean} true if all items are valid
   */
  return (0, _createClass2.default)(Session, [{
    key: "validate",
    value: (function () {
      var _validate = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
        var _iterator, _step, item, _t;
        return _regenerator.default.wrap(function (_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              _iterator = _createForOfIteratorHelper(this.itemCollection.getItems());
              _context.prev = 1;
              _iterator.s();
            case 2:
              if ((_step = _iterator.n()).done) {
                _context.next = 5;
                break;
              }
              item = _step.value;
              _context.next = 3;
              return this.manager.getReaderOf(item);
            case 3:
              if (_context.sent) {
                _context.next = 4;
                break;
              }
              return _context.abrupt("return", false);
            case 4:
              _context.next = 2;
              break;
            case 5:
              _context.next = 7;
              break;
            case 6:
              _context.prev = 6;
              _t = _context["catch"](1);
              _iterator.e(_t);
            case 7:
              _context.prev = 7;
              _iterator.f();
              return _context.finish(7);
            case 8:
              return _context.abrupt("return", true);
            case 9:
            case "end":
              return _context.stop();
          }
        }, _callee, this, [[1, 6, 7, 8]]);
      }));
      function validate() {
        return _validate.apply(this, arguments);
      }
      return validate;
    }()
    /**
     * Handle files with a suitable file-parser.
     *
     * @return {Container[]} result
     */
    )
  }, {
    key: "apply",
    value: (function () {
      var _apply = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
        var _this = this;
        var parsed, _iterator2, _step2, item, parser, _t2;
        return _regenerator.default.wrap(function (_context2) {
          while (1) switch (_context2.prev = _context2.next) {
            case 0:
              parsed = [];
              _iterator2 = _createForOfIteratorHelper(this.itemCollection.getItems());
              _context2.prev = 1;
              _iterator2.s();
            case 2:
              if ((_step2 = _iterator2.n()).done) {
                _context2.next = 6;
                break;
              }
              item = _step2.value;
              _context2.next = 3;
              return this.manager.getParserOf(item, true);
            case 3:
              parser = _context2.sent;
              if (!parser) {
                _context2.next = 4;
                break;
              }
              parsed.push(parser.parse());
              _context2.next = 5;
              break;
            case 4:
              throw new Error('An error occurred when trying to parse the input');
            case 5:
              _context2.next = 2;
              break;
            case 6:
              _context2.next = 8;
              break;
            case 7:
              _context2.prev = 7;
              _t2 = _context2["catch"](1);
              _iterator2.e(_t2);
            case 8:
              _context2.prev = 8;
              _iterator2.f();
              return _context2.finish(8);
            case 9:
              return _context2.abrupt("return", Promise.all(parsed).then(function (result) {
                return _this.resolve(result.flat());
              }));
            case 10:
            case "end":
              return _context2.stop();
          }
        }, _callee2, this, [[1, 7, 8, 9]]);
      }));
      function apply() {
        return _apply.apply(this, arguments);
      }
      return apply;
    }()
    /**
     * Resolve containers to fulfill their purpose.
     *
     * @param {*} containers
     * @return {*} result
     */
    )
  }, {
    key: "resolve",
    value: function resolve(containers) {
      var _this2 = this;
      if (Object.values(containers).some(function (element) {
        return 'section' === element.model.get('elType');
      })) {
        this.target = elementor.getPreviewContainer();
      }

      // eslint-disable-next-line array-callback-return
      return containers.map(function (element) {
        switch (element.type) {
          case 'container':
          case 'section':
          case 'column':
          case 'e-div-block':
          case 'widget':
            return _this2.target.view.createElementFromModel(element.model, Object.assign(_this2.options.target, {
              event: _this2.options.event,
              scrollIntoView: 0 === containers.indexOf(element)
            }));
        }
      });
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/commands/close.js":
/*!**********************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/commands/close.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"] = exports.Close = void 0;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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"));
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; })(); }
var Close = exports.Close = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Close() {
    (0, _classCallCheck2.default)(this, Close);
    return _callSuper(this, Close, arguments);
  }
  (0, _inherits2.default)(Close, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Close, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireArgument('id', args);
    }
  }, {
    key: "apply",
    value: function () {
      var _apply = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(args) {
        var id, mode, onClose, document, deferred, _t;
        return _regenerator.default.wrap(function (_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              id = args.id, mode = args.mode, onClose = args.onClose, document = elementor.documents.get(id); // Already closed.
              if (!('closed' === document.editor.status)) {
                _context.next = 1;
                break;
              }
              return _context.abrupt("return", jQuery.Deferred().resolve());
            case 1:
              if (!(!mode && (document.editor.isChanged || document.isDraft()))) {
                _context.next = 2;
                break;
              }
              deferred = jQuery.Deferred();
              this.getConfirmDialog(deferred).show();
              return _context.abrupt("return", deferred.promise());
            case 2:
              _t = mode;
              _context.next = _t === 'autosave' ? 3 : _t === 'save' ? 5 : _t === 'discard' ? 7 : 9;
              break;
            case 3:
              _context.next = 4;
              return $e.run('document/save/auto');
            case 4:
              return _context.abrupt("continue", 9);
            case 5:
              _context.next = 6;
              return $e.run('document/save/update');
            case 6:
              return _context.abrupt("continue", 9);
            case 7:
              _context.next = 8;
              return $e.run('document/save/discard', {
                document: document
              });
            case 8:
              return _context.abrupt("continue", 9);
            case 9:
              $e.run('document/elements/deselect-all');
              _context.next = 10;
              return $e.internal('editor/documents/unload', {
                document: document
              });
            case 10:
              if (!onClose) {
                _context.next = 11;
                break;
              }
              _context.next = 11;
              return onClose(document);
            case 11:
              return _context.abrupt("return", jQuery.Deferred().resolve());
            case 12:
            case "end":
              return _context.stop();
          }
        }, _callee, this);
      }));
      function apply(_x) {
        return _apply.apply(this, arguments);
      }
      return apply;
    }()
  }, {
    key: "getConfirmDialog",
    value: function getConfirmDialog(deferred) {
      var _this = this;
      if (this.confirmDialog) {
        return this.confirmDialog;
      }
      this.confirmDialog = elementorCommon.dialogsManager.createWidget('confirm', {
        id: 'elementor-document-save-on-close',
        headerMessage: __('You are leaving to a separate site part.', 'elementor'),
        message: __('Save your changes before moving on because the current document and the one you’re moving to are separate site parts.', 'elementor'),
        position: {
          my: 'center center',
          at: 'center center'
        },
        strings: {
          confirm: __('Save & leave', 'elementor'),
          cancel: __('Don\'t leave', 'elementor')
        },
        onHide: function onHide() {
          // If still not action chosen. use `defer` because onHide is called before onConfirm/onCancel.
          _.defer(function () {
            if (!_this.args.mode) {
              deferred.reject('Close document has been canceled.');
            }
          });
        },
        onCancel: function onCancel() {
          window.top.$e.internal('panel/state-ready');
          deferred.reject('Close document has been canceled.');
        },
        onConfirm: function onConfirm() {
          _this.args.mode = 'save';

          // Re-run with same args.
          $e.run('editor/documents/close', _this.args).then(function () {
            deferred.resolve();
          });
        }
      });
      return this.confirmDialog;
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Close;

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/commands/index.js":
/*!**********************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/commands/index.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Close", ({
  enumerable: true,
  get: function get() {
    return _close.Close;
  }
}));
Object.defineProperty(exports, "Open", ({
  enumerable: true,
  get: function get() {
    return _open.Open;
  }
}));
Object.defineProperty(exports, "Preview", ({
  enumerable: true,
  get: function get() {
    return _preview.Preview;
  }
}));
Object.defineProperty(exports, "Switch", ({
  enumerable: true,
  get: function get() {
    return _switch.Switch;
  }
}));
Object.defineProperty(exports, "View", ({
  enumerable: true,
  get: function get() {
    return _view.View;
  }
}));
var _close = __webpack_require__(/*! ./close */ "../assets/dev/js/editor/components/documents/commands/close.js");
var _open = __webpack_require__(/*! ./open */ "../assets/dev/js/editor/components/documents/commands/open.js");
var _preview = __webpack_require__(/*! ./preview */ "../assets/dev/js/editor/components/documents/commands/preview.js");
var _view = __webpack_require__(/*! ./view */ "../assets/dev/js/editor/components/documents/commands/view.js");
var _switch = __webpack_require__(/*! ./switch */ "../assets/dev/js/editor/components/documents/commands/switch.js");

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/commands/internal/attach-preview.js":
/*!****************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/commands/internal/attach-preview.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"] = exports.AttachPreview = void 0;
var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.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 _excluded = ["shouldNavigateToDefaultRoute"];
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; })(); }
var AttachPreview = exports.AttachPreview = /*#__PURE__*/function (_$e$modules$CommandIn) {
  function AttachPreview() {
    (0, _classCallCheck2.default)(this, AttachPreview);
    return _callSuper(this, AttachPreview, arguments);
  }
  (0, _inherits2.default)(AttachPreview, _$e$modules$CommandIn);
  return (0, _createClass2.default)(AttachPreview, [{
    key: "validateArgs",
    value: function validateArgs() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      if (args.selector) {
        this.requireArgumentType('selector', 'string');
        if (0 === elementor.$previewContents.find(args.selector).length) {
          throw new Error('Invalid argument. The `selector` argument must be existed selector.');
        }
      }
    }
  }, {
    key: "apply",
    value: function apply() {
      var _this = this;
      var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var _ref$shouldNavigateTo = _ref.shouldNavigateToDefaultRoute,
        shouldNavigateToDefaultRoute = _ref$shouldNavigateTo === void 0 ? true : _ref$shouldNavigateTo,
        args = (0, _objectWithoutProperties2.default)(_ref, _excluded);
      var document = elementor.documents.getCurrent();
      return $e.data.get('globals/index').then(function () {
        elementor.trigger('globals:loaded');
        return _this.attachDocumentToPreview(document, args);
      }).then(function () {
        elementor.toggleDocumentCssFiles(document, false);
        elementor.onEditModeSwitched();
        elementor.checkPageStatus();
        elementor.trigger('document:loaded', document);
        if (shouldNavigateToDefaultRoute) {
          return $e.internal('panel/open-default', {
            refresh: true
          });
        }
      });
    }
  }, {
    key: "attachDocumentToPreview",
    value: function attachDocumentToPreview(document, args) {
      var _args$selector = args.selector,
        selector = _args$selector === void 0 ? '.elementor-' + document.id : _args$selector,
        _args$shouldScroll = args.shouldScroll,
        shouldScroll = _args$shouldScroll === void 0 ? true : _args$shouldScroll;
      return new Promise(function (resolve, reject) {
        // Not yet loaded.
        if (!document) {
          return reject("Can't attach preview, there is no open document.");
        }
        if (!document.config.elements) {
          return resolve();
        }
        document.$element = elementor.$previewContents.find(selector);
        var isInitialDocument = document.id === elementor.config.initial_document.id;
        if (!document.$element.length) {
          if (isInitialDocument) {
            elementor.onPreviewElNotFound();
          }
          return reject("Can't attach preview to document '".concat(document.id, "', element '").concat(selector, "' was not found."));
        }
        document.$element.addClass('elementor-edit-area elementor-edit-mode');
        if (!isInitialDocument) {
          elementor.documents.getCurrent().$element.addClass('elementor-embedded-editor');
        }
        elementor.initElements();
        elementor.initPreviewView(document);
        document.container.view = elementor.getPreviewView();
        document.container.model.attributes.elements = elementor.elements;
        if (shouldScroll) {
          elementor.helpers.scrollToView(document.$element);
        }
        document.$element.addClass('elementor-edit-area-active').removeClass('elementor-editor-preview');
        resolve();
      });
    }
  }]);
}($e.modules.CommandInternalBase);
var _default = exports["default"] = AttachPreview;

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/commands/internal/index.js":
/*!*******************************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/commands/internal/index.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "AttachPreview", ({
  enumerable: true,
  get: function get() {
    return _attachPreview.AttachPreview;
  }
}));
Object.defineProperty(exports, "Load", ({
  enumerable: true,
  get: function get() {
    return _load.Load;
  }
}));
Object.defineProperty(exports, "Unload", ({
  enumerable: true,
  get: function get() {
    return _unload.Unload;
  }
}));
var _attachPreview = __webpack_require__(/*! ./attach-preview */ "../assets/dev/js/editor/components/documents/commands/internal/attach-preview.js");
var _load = __webpack_require__(/*! ./load */ "../assets/dev/js/editor/components/documents/commands/internal/load.js");
var _unload = __webpack_require__(/*! ./unload */ "../assets/dev/js/editor/components/documents/commands/internal/unload.js");

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/commands/internal/load.js":
/*!******************************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/commands/internal/load.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"] = exports.Load = 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 _document = _interopRequireDefault(__webpack_require__(/*! ../../document */ "../assets/dev/js/editor/components/documents/document.js"));
var _heartbeat = _interopRequireDefault(__webpack_require__(/*! elementor-editor-utils/heartbeat */ "../assets/dev/js/editor/utils/heartbeat.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; })(); }
var Load = exports.Load = /*#__PURE__*/function (_$e$modules$CommandIn) {
  function Load() {
    (0, _classCallCheck2.default)(this, Load);
    return _callSuper(this, Load, arguments);
  }
  (0, _inherits2.default)(Load, _$e$modules$CommandIn);
  return (0, _createClass2.default)(Load, [{
    key: "validateArgs",
    value: function validateArgs() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      this.requireArgument('config', args);
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var config = args.config,
        _args$setAsInitial = args.setAsInitial,
        setAsInitial = _args$setAsInitial === void 0 ? false : _args$setAsInitial,
        _args$shouldScroll = args.shouldScroll,
        shouldScroll = _args$shouldScroll === void 0 ? true : _args$shouldScroll,
        _args$shouldNavigateT = args.shouldNavigateToDefaultRoute,
        shouldNavigateToDefaultRoute = _args$shouldNavigateT === void 0 ? true : _args$shouldNavigateT;
      if (elementorCommon.config.experimentalFeatures.additional_custom_breakpoints) {
        // When the Responsive Optimization experiment is active, the responsive controls are generated on the
        // JS side instead of the PHP.
        config.settings.controls = elementor.generateResponsiveControls(config.settings.controls);
      }
      elementor.config.document = config;
      elementor.setAjax();
      elementor.addWidgetsCache(config.widgets);
      elementor.templates.init();
      var document = new _document.default(config);
      elementor.documents.add(document);

      // Must set current before create a container.
      elementor.documents.setCurrent(document);
      if (setAsInitial) {
        elementor.documents.setInitialById(document.id);
      }
      elementor.settings.page = new elementor.settings.modules.page(config.settings);
      document.container = elementor.settings.page.getEditedView().getContainer();

      // Reference container back to document.
      document.container.document = document;
      elementor.heartbeat = new _heartbeat.default(document);
      var isOldPageVersion = elementor.config.document.version && elementor.helpers.compareVersions(elementor.config.document.version, '2.5.0', '<');
      if (!elementor.config.user.introduction.flexbox && isOldPageVersion) {
        elementor.showFlexBoxAttentionDialog();
      }
      if (elementor.loaded) {
        // TODO: Find better solution - Fix issue when globals does not render after saving from kit.
        // The issue is that the css-parser is depends upon cache and cache is not available during this time.
        return $e.data.get('globals/index').then(function () {
          if (setAsInitial) {
            // There is no need to attach preview when the iframe is reloaded. It will be triggered
            // automatically after the iframe finishes loading (see `EditorBase.onPreviewLoaded()`).
            elementor.reloadPreview();
            return Promise.resolve();
          }
          return $e.internal('editor/documents/attach-preview', {
            shouldScroll: shouldScroll,
            shouldNavigateToDefaultRoute: shouldNavigateToDefaultRoute,
            selector: args.selector
          });
        });
      }
      return Promise.resolve(document);
    }
  }]);
}($e.modules.CommandInternalBase);
var _default = exports["default"] = Load;

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/commands/internal/unload.js":
/*!********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/commands/internal/unload.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"] = exports.Unload = 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 _document = _interopRequireDefault(__webpack_require__(/*! ../../document */ "../assets/dev/js/editor/components/documents/document.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; })(); }
var Unload = exports.Unload = /*#__PURE__*/function (_$e$modules$CommandIn) {
  function Unload() {
    (0, _classCallCheck2.default)(this, Unload);
    return _callSuper(this, Unload, arguments);
  }
  (0, _inherits2.default)(Unload, _$e$modules$CommandIn);
  return (0, _createClass2.default)(Unload, [{
    key: "validateArgs",
    value: function validateArgs() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      this.requireArgumentConstructor('document', _document.default, args);
    }
  }, {
    key: "apply",
    value: function apply(args) {
      return new Promise(function (resolve, reject) {
        var document = args.document;
        if (document.id !== elementor.config.document.id) {
          reject();
        }
        elementor.elements = [];
        elementor.saver.stopAutoSave(document);
        elementor.channels.dataEditMode.trigger('switch', 'preview');
        if (document.$element) {
          document.$element.removeClass('elementor-edit-area-active elementor-edit-mode').addClass('elementor-editor-preview');
        }
        elementorCommon.elements.$body.removeClass("elementor-editor-".concat(document.config.type));
        elementor.settings.page.destroy();
        elementor.heartbeat.destroy();
        document.editor.status = 'closed';
        elementor.config.document = {};
        elementor.documents.unsetCurrent();
        elementor.trigger('document:unloaded', document);
        resolve();
      });
    }
  }]);
}($e.modules.CommandInternalBase);
var _default = exports["default"] = Unload;

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/commands/open.js":
/*!*********************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/commands/open.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"] = exports.Open = 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"));
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; })(); }
var Open = exports.Open = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Open() {
    (0, _classCallCheck2.default)(this, Open);
    return _callSuper(this, Open, arguments);
  }
  (0, _inherits2.default)(Open, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Open, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireArgument('id', args);
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var id = args.id,
        selector = args.selector,
        _args$shouldScroll = args.shouldScroll,
        shouldScroll = _args$shouldScroll === void 0 ? true : _args$shouldScroll,
        _args$shouldNavigateT = args.shouldNavigateToDefaultRoute,
        shouldNavigateToDefaultRoute = _args$shouldNavigateT === void 0 ? true : _args$shouldNavigateT,
        _args$setAsInitial = args.setAsInitial,
        setAsInitial = _args$setAsInitial === void 0 ? false : _args$setAsInitial,
        currentDocument = elementor.documents.getCurrent();

      // Already opened.
      if (currentDocument && id === currentDocument.id) {
        return jQuery.Deferred().resolve();
      }

      // TODO: move to $e.hooks.ui.
      if (elementor.loaded) {
        elementor.$previewContents.find(".elementor-".concat(id)).addClass('loading');
      }
      if (setAsInitial) {
        // Set the new initial document id to be sent with all requests.
        // The next request needs to have the new initial document id in order to have the correct preview URL.
        elementorCommon.ajax.addRequestConstant('initial_document_id', id);

        // Because the initial document has changed, we need to clear cached values (e.g. header wp_preview URL),
        elementor.documents.invalidateCache();
      }
      return elementor.documents.request(id).then(function (config) {
        elementorCommon.elements.$body.addClass("elementor-editor-".concat(config.type));

        // Tell the editor to load the document.
        return $e.internal('editor/documents/load', {
          config: config,
          selector: selector,
          setAsInitial: setAsInitial,
          shouldScroll: shouldScroll,
          shouldNavigateToDefaultRoute: shouldNavigateToDefaultRoute
        });
      }).always(function () {
        // TODO: move to $e.hooks.ui.
        if (elementor.loaded) {
          elementor.$previewContents.find(".elementor-".concat(id)).removeClass('loading');
        }
      });
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Open;

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/commands/preview.js":
/*!************************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/commands/preview.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"] = exports.Preview = void 0;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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"));
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; })(); }
var Preview = exports.Preview = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Preview() {
    (0, _classCallCheck2.default)(this, Preview);
    return _callSuper(this, Preview, arguments);
  }
  (0, _inherits2.default)(Preview, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Preview, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireArgument('id', args);
    }

    // TODO: Check if blocking is required.
  }, {
    key: "apply",
    value: function () {
      var _apply = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(args) {
        var id, _$e$components$get, footerSaver, document;
        return _regenerator.default.wrap(function (_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              id = args.id, _$e$components$get = $e.components.get('document/save'), footerSaver = _$e$components$get.footerSaver, document = elementor.documents.get(id);
              if (!document.editor.isChanged) {
                _context.next = 1;
                break;
              }
              _context.next = 1;
              return $e.run('document/save/auto', {
                force: true
              });
            case 1:
              // Open immediately in order to avoid popup blockers.
              footerSaver.previewWindow = open(document.config.urls.wp_preview, "wp-preview-".concat(document.id));
            case 2:
            case "end":
              return _context.stop();
          }
        }, _callee);
      }));
      function apply(_x) {
        return _apply.apply(this, arguments);
      }
      return apply;
    }()
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Preview;

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/commands/switch.js":
/*!***********************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/commands/switch.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"] = exports.Switch = 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"));
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; })(); }
var Switch = exports.Switch = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Switch() {
    (0, _classCallCheck2.default)(this, Switch);
    return _callSuper(this, Switch, arguments);
  }
  (0, _inherits2.default)(Switch, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Switch, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireArgument('id', args);
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var id = args.id,
        mode = args.mode,
        onClose = args.onClose,
        _args$shouldScroll = args.shouldScroll,
        shouldScroll = _args$shouldScroll === void 0 ? true : _args$shouldScroll,
        _args$shouldNavigateT = args.shouldNavigateToDefaultRoute,
        shouldNavigateToDefaultRoute = _args$shouldNavigateT === void 0 ? true : _args$shouldNavigateT,
        _args$setAsInitial = args.setAsInitial,
        setAsInitial = _args$setAsInitial === void 0 ? false : _args$setAsInitial;
      if (setAsInitial) {
        // Will be removed by the attach-preview after the iframe has loaded.
        jQuery('#elementor-preview-loading').show();
      }
      return $e.run('editor/documents/close', {
        id: elementor.documents.getCurrentId(),
        mode: mode,
        onClose: onClose,
        selector: args.selector
      }).then(function () {
        return $e.run('editor/documents/open', {
          id: id,
          shouldScroll: shouldScroll,
          shouldNavigateToDefaultRoute: shouldNavigateToDefaultRoute,
          selector: args.selector,
          setAsInitial: setAsInitial
        });
      }).then(function () {
        elementor.getPanelView().getPages('menu').view.addExitItem();
      });
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Switch;

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/commands/view.js":
/*!*********************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/commands/view.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"] = exports.View = void 0;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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"));
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; })(); }
var View = exports.View = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function View() {
    (0, _classCallCheck2.default)(this, View);
    return _callSuper(this, View, arguments);
  }
  (0, _inherits2.default)(View, _$e$modules$CommandBa);
  return (0, _createClass2.default)(View, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireArgument('id', args);
    }
  }, {
    key: "apply",
    value: function () {
      var _apply = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(args) {
        var id, document;
        return _regenerator.default.wrap(function (_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              id = args.id, document = elementor.documents.get(id); // Open immediately in order to avoid popup blockers.
              open(document.config.urls.permalink, "wp-view-".concat(document.id));
            case 1:
            case "end":
              return _context.stop();
          }
        }, _callee);
      }));
      function apply(_x) {
        return _apply.apply(this, arguments);
      }
      return apply;
    }()
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = View;

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/component.js":
/*!*****************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/component.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");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.js"));
var _document = _interopRequireDefault(__webpack_require__(/*! ./document */ "../assets/dev/js/editor/components/documents/document.js"));
var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../assets/dev/js/editor/components/documents/commands/index.js"));
var internalCommands = _interopRequireWildcard(__webpack_require__(/*! ./commands/internal/ */ "../assets/dev/js/editor/components/documents/commands/internal/index.js"));
var hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks */ "../assets/dev/js/editor/components/documents/hooks/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _ComponentBase);
  return (0, _createClass2.default)(Component, [{
    key: "__construct",
    value: function __construct() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      _superPropGet(Component, "__construct", this, 3)([args]);

      /**
       * All the documents.
       *
       * @type {Object.<Document>}
       */
      this.documents = {};

      /**
       * Current document.
       *
       * @type {Document}
       */
      this.currentDocument = null;
      this.saveInitialDocumentToCache();
    }
  }, {
    key: "getNamespace",
    value: function getNamespace() {
      return 'editor/documents';
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }
  }, {
    key: "defaultHooks",
    value: function defaultHooks() {
      return this.importHooks(hooks);
    }
  }, {
    key: "defaultCommandsInternal",
    value: function defaultCommandsInternal() {
      return this.importCommands(internalCommands);
    }

    /**
     * Function add().
     *
     * Add's document to the manager.
     *
     * @param {Document} document
     *
     * @return {Document} document
     */
  }, {
    key: "add",
    value: function add(document) {
      var id = document.id;

      // Save the document.
      this.documents[id] = document;
      return document;
    }

    /**
     * Function addDocumentByConfig().
     *
     * Add document to manager by config.
     *
     * @param {{}} config
     *
     * @return {Document} document
     */
  }, {
    key: "addDocumentByConfig",
    value: function addDocumentByConfig(config) {
      return this.add(new _document.default(config));
    }

    /**
     * Function get().
     *
     * Get document by id.
     *
     * @param {number} id
     *
     * @return {Document|boolean} document, or false if doesn't exist
     */
  }, {
    key: "get",
    value: function get(id) {
      if (undefined !== this.documents[id]) {
        return this.documents[id];
      }
      return false;
    }

    /**
     * Function getCurrent().
     *
     * Return's current document.
     *
     * @return {Document} document
     */
  }, {
    key: "getCurrent",
    value: function getCurrent() {
      return this.currentDocument;
    }

    /**
     * Function getCurrentId().
     *
     * Return's current document id.
     *
     * @return {number} document id
     */
  }, {
    key: "getCurrentId",
    value: function getCurrentId() {
      return this.currentDocument.id;
    }
  }, {
    key: "getInitialId",
    value: function getInitialId() {
      return elementor.config.initial_document.id;
    }
  }, {
    key: "setInitialById",
    value: function setInitialById(id) {
      var document = this.get(id);
      if (!document) {
        return;
      }
      elementor.config.initial_document = document.config;
      elementorCommon.ajax.addRequestConstant('initial_document_id', document.id);
    }

    /**
     * Function setCurrent().
     *
     * set current document by document instance.
     *
     * @param {Document} document
     */
  }, {
    key: "setCurrent",
    value: function setCurrent(document) {
      if (undefined === this.documents[document.id]) {
        throw Error("The document with id: '".concat(document.id, "' does not exist/loaded"));
      }
      if (this.currentDocument) {
        this.currentDocument.editor.status = 'closed';
      }
      this.currentDocument = this.documents[document.id];
      this.currentDocument.editor.status = 'open';
      elementorCommon.ajax.addRequestConstant('editor_post_id', document.id);
    }
  }, {
    key: "isCurrent",
    value: function isCurrent(id) {
      return parseInt(id) === this.currentDocument.id;
    }
  }, {
    key: "unsetCurrent",
    value: function unsetCurrent() {
      this.currentDocument = null;
      elementorCommon.ajax.addRequestConstant('editor_post_id', null);
    }
  }, {
    key: "request",
    value: function request(id) {
      return elementorCommon.ajax.load(this.getRequestArgs(id), true);
    }
  }, {
    key: "invalidateCache",
    value: function invalidateCache() {
      var _this = this;
      var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
      if (id) {
        elementorCommon.ajax.invalidateCache(this.getRequestArgs(id));
        return;
      }
      Object.keys(this.documents).forEach(function (docId) {
        elementorCommon.ajax.invalidateCache(_this.getRequestArgs(docId));
      });
    }
  }, {
    key: "getRequestArgs",
    value: function getRequestArgs(id) {
      id = parseInt(id);
      return {
        action: 'get_document_config',
        unique_id: "document-".concat(id),
        data: {
          id: id
        },
        success: function success(config) {
          return config;
        },
        error: function error(data) {
          var message;
          if (_.isString(data)) {
            message = data;
          } else if (data.statusText) {
            message = elementor.createAjaxErrorMessage(data);
            if (0 === data.readyState) {
              message += ' ' + __('Cannot load editor', 'elementor');
            }
          } else if (data[0] && data[0].code) {
            message = __('Server Error', 'elementor') + ' ' + data[0].code;
          }

          // eslint-disable-next-line no-alert
          alert(message);
        }
      };
    }

    /**
     * Temp: Don't request initial document via ajax.
     * Keep the event `elementor:init` before `preview:loaded`.
     */
  }, {
    key: "saveInitialDocumentToCache",
    value: function saveInitialDocumentToCache() {
      var document = elementor.config.initial_document;
      elementorCommon.ajax.addRequestCache(this.getRequestArgs(document.id), document);
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/document.js":
/*!****************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/document.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _manager = _interopRequireDefault(__webpack_require__(/*! elementor/modules/history/assets/js/history/manager */ "../modules/history/assets/js/history/manager.js"));
var _manager2 = _interopRequireDefault(__webpack_require__(/*! elementor/modules/history/assets/js/revisions/manager */ "../modules/history/assets/js/revisions/manager.js"));
var _editor = _interopRequireDefault(__webpack_require__(/*! ./models/editor */ "../assets/dev/js/editor/components/documents/models/editor.js"));
/**
 * @typedef {import('../../container/container')} Container
 */
var Document = exports["default"] = /*#__PURE__*/function () {
  /**
   * Function constructor().
   *
   * Create document.
   *
   * @param {{}} config
   */
  function Document(config) {
    (0, _classCallCheck2.default)(this, Document);
    /**
     * Document id.
     *
     * @type {number|null}
     */
    (0, _defineProperty2.default)(this, "id", null);
    /**
     * History of the document.
     *
     * @type {HistoryManager}
     */
    (0, _defineProperty2.default)(this, "history", null);
    /**
     * Revisions of the document.
     *
     * @type {RevisionsManager}
     */
    (0, _defineProperty2.default)(this, "revisions", null);
    /**
     * Current container.
     *
     * @type {Container}
     */
    (0, _defineProperty2.default)(this, "container", null);
    /**
     * Editor Settings.
     *
     * @type {Editor}
     */
    (0, _defineProperty2.default)(this, "editor", new _editor.default());
    this.config = config;
    this.id = config.id;
    this.history = new _manager.default(this);
    this.revisions = new _manager2.default(this);
  }
  return (0, _createClass2.default)(Document, [{
    key: "isDraft",
    value: function isDraft() {
      return this.config.revisions.current_id !== this.config.id;
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/hooks/index.js":
/*!*******************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/hooks/index.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "ClearDynamicTagsCache", ({
  enumerable: true,
  get: function get() {
    return _clearDynamicTagsCache.ClearDynamicTagsCache;
  }
}));
Object.defineProperty(exports, "RemoveActiveDocumentQueryParam", ({
  enumerable: true,
  get: function get() {
    return _removeActiveDocumentQueryParam.RemoveActiveDocumentQueryParam;
  }
}));
Object.defineProperty(exports, "RemoveActiveTabQueryParam", ({
  enumerable: true,
  get: function get() {
    return _removeActiveTabQueryParam.RemoveActiveTabQueryParam;
  }
}));
Object.defineProperty(exports, "RemoveActiveTabQueryParamBack", ({
  enumerable: true,
  get: function get() {
    return _removeActiveTabQueryParamBack.RemoveActiveTabQueryParamBack;
  }
}));
Object.defineProperty(exports, "SetActiveDocumentQueryParam", ({
  enumerable: true,
  get: function get() {
    return _setActiveDocumentQueryParam.SetActiveDocumentQueryParam;
  }
}));
Object.defineProperty(exports, "SwitchToActiveDocument", ({
  enumerable: true,
  get: function get() {
    return _switchToActiveDocument.SwitchToActiveDocument;
  }
}));
Object.defineProperty(exports, "SwitchToActiveTab", ({
  enumerable: true,
  get: function get() {
    return _switchToActiveTab.SwitchToActiveTab;
  }
}));
var _removeActiveDocumentQueryParam = __webpack_require__(/*! ./ui/close/remove-active-document-query-param */ "../assets/dev/js/editor/components/documents/hooks/ui/close/remove-active-document-query-param.js");
var _setActiveDocumentQueryParam = __webpack_require__(/*! ./ui/open/set-active-document-query-param */ "../assets/dev/js/editor/components/documents/hooks/ui/open/set-active-document-query-param.js");
var _clearDynamicTagsCache = __webpack_require__(/*! ./ui/open/clear-dynamic-tags-cache */ "../assets/dev/js/editor/components/documents/hooks/ui/open/clear-dynamic-tags-cache.js");
var _switchToActiveDocument = __webpack_require__(/*! ./ui/attach-preview/switch-to-active-document */ "../assets/dev/js/editor/components/documents/hooks/ui/attach-preview/switch-to-active-document.js");
var _switchToActiveTab = __webpack_require__(/*! ./ui/switch/switch-to-active-tab */ "../assets/dev/js/editor/components/documents/hooks/ui/switch/switch-to-active-tab.js");
var _removeActiveTabQueryParam = __webpack_require__(/*! ./ui/close/remove-active-tab-query-param */ "../assets/dev/js/editor/components/documents/hooks/ui/close/remove-active-tab-query-param.js");
var _removeActiveTabQueryParamBack = __webpack_require__(/*! ./ui/close/remove-active-tab-query-param-back */ "../assets/dev/js/editor/components/documents/hooks/ui/close/remove-active-tab-query-param-back.js");

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/hooks/ui/attach-preview/switch-to-active-document.js":
/*!*********************************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/hooks/ui/attach-preview/switch-to-active-document.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"] = exports.SwitchToActiveDocument = void 0;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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 _queryParams = __webpack_require__(/*! elementor-editor-utils/query-params */ "../assets/dev/js/editor/utils/query-params.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; })(); }
/**
 * Switch to the document in the `active-document` query param on initial Editor load.
 * This hook runs only once, when the initial document has been attached.
 */
var SwitchToActiveDocument = exports.SwitchToActiveDocument = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  function SwitchToActiveDocument() {
    (0, _classCallCheck2.default)(this, SwitchToActiveDocument);
    return _callSuper(this, SwitchToActiveDocument, arguments);
  }
  (0, _inherits2.default)(SwitchToActiveDocument, _$e$modules$hookUI$Af);
  return (0, _createClass2.default)(SwitchToActiveDocument, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/attach-preview';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'switch-to-active-document';
    }
  }, {
    key: "getConditions",
    value: function getConditions() {
      if (this.constructor.calledOnce) {
        return false;
      }
      return elementor.documents.getCurrentId() === elementor.config.initial_document.id;
    }
  }, {
    key: "apply",
    value: function () {
      var _apply = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
        var activeDocumentId, isLoadedAlready, _t;
        return _regenerator.default.wrap(function (_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              this.constructor.calledOnce = true;
              activeDocumentId = parseInt((0, _queryParams.getQueryParam)('active-document')), isLoadedAlready = activeDocumentId === elementor.documents.getCurrentId();
              if (!(isNaN(activeDocumentId) || isLoadedAlready)) {
                _context.next = 1;
                break;
              }
              return _context.abrupt("return");
            case 1:
              _context.prev = 1;
              _context.next = 2;
              return $e.run('editor/documents/switch', {
                id: activeDocumentId,
                mode: 'autosave'
              });
            case 2:
              _context.next = 4;
              break;
            case 3:
              _context.prev = 3;
              _t = _context["catch"](1);
              $e.run('editor/documents/switch', {
                id: elementor.config.initial_document.id,
                mode: 'autosave'
              });
              (0, _queryParams.removeQueryParam)('active-document');
            case 4:
            case "end":
              return _context.stop();
          }
        }, _callee, this, [[1, 3]]);
      }));
      function apply() {
        return _apply.apply(this, arguments);
      }
      return apply;
    }()
  }]);
}($e.modules.hookUI.After);
(0, _defineProperty2.default)(SwitchToActiveDocument, "calledOnce", false);
var _default = exports["default"] = SwitchToActiveDocument;

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/hooks/ui/close/remove-active-document-query-param.js":
/*!*********************************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/hooks/ui/close/remove-active-document-query-param.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"] = exports.RemoveActiveDocumentQueryParam = 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 _queryParams = __webpack_require__(/*! elementor-editor-utils/query-params */ "../assets/dev/js/editor/utils/query-params.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; })(); }
var RemoveActiveDocumentQueryParam = exports.RemoveActiveDocumentQueryParam = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  function RemoveActiveDocumentQueryParam() {
    (0, _classCallCheck2.default)(this, RemoveActiveDocumentQueryParam);
    return _callSuper(this, RemoveActiveDocumentQueryParam, arguments);
  }
  (0, _inherits2.default)(RemoveActiveDocumentQueryParam, _$e$modules$hookUI$Af);
  return (0, _createClass2.default)(RemoveActiveDocumentQueryParam, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/close';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'remove-active-document-query-param';
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var activeDocumentId = parseInt((0, _queryParams.getQueryParam)('active-document')),
        closedDocumentId = parseInt(args.id);
      if (activeDocumentId === closedDocumentId) {
        (0, _queryParams.removeQueryParam)('active-document');
      }
      args.previous_active_document_id = activeDocumentId;
    }
  }]);
}($e.modules.hookUI.After);
var _default = exports["default"] = RemoveActiveDocumentQueryParam;

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/hooks/ui/close/remove-active-tab-query-param-back.js":
/*!*********************************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/hooks/ui/close/remove-active-tab-query-param-back.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"] = exports.RemoveActiveTabQueryParamBack = 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 _queryParams = __webpack_require__(/*! elementor-editor-utils/query-params */ "../assets/dev/js/editor/utils/query-params.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; })(); }
var RemoveActiveTabQueryParamBack = exports.RemoveActiveTabQueryParamBack = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  function RemoveActiveTabQueryParamBack() {
    (0, _classCallCheck2.default)(this, RemoveActiveTabQueryParamBack);
    return _callSuper(this, RemoveActiveTabQueryParamBack, arguments);
  }
  (0, _inherits2.default)(RemoveActiveTabQueryParamBack, _$e$modules$hookUI$Af);
  return (0, _createClass2.default)(RemoveActiveTabQueryParamBack, [{
    key: "getCommand",
    value: function getCommand() {
      return 'panel/global/back';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'remove-active-tab-query-param-back';
    }
  }, {
    key: "apply",
    value: function apply() {
      var activeTab = (0, _queryParams.getQueryParam)('active-tab');
      if (activeTab) {
        (0, _queryParams.removeQueryParam)('active-tab');
      }
    }
  }]);
}($e.modules.hookUI.After);
var _default = exports["default"] = RemoveActiveTabQueryParamBack;

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/hooks/ui/close/remove-active-tab-query-param.js":
/*!****************************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/hooks/ui/close/remove-active-tab-query-param.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"] = exports.RemoveActiveTabQueryParam = 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 _queryParams = __webpack_require__(/*! elementor-editor-utils/query-params */ "../assets/dev/js/editor/utils/query-params.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; })(); }
var RemoveActiveTabQueryParam = exports.RemoveActiveTabQueryParam = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  function RemoveActiveTabQueryParam() {
    (0, _classCallCheck2.default)(this, RemoveActiveTabQueryParam);
    return _callSuper(this, RemoveActiveTabQueryParam, arguments);
  }
  (0, _inherits2.default)(RemoveActiveTabQueryParam, _$e$modules$hookUI$Af);
  return (0, _createClass2.default)(RemoveActiveTabQueryParam, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/close';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'remove-active-tab-query-param';
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var activeTab = (0, _queryParams.getQueryParam)('active-tab'),
        activeDocumentId = parseInt(args.previous_active_document_id),
        closedDocumentId = parseInt(args.id);
      if (activeDocumentId === closedDocumentId && activeTab) {
        (0, _queryParams.removeQueryParam)('active-tab');
      }
    }
  }]);
}($e.modules.hookUI.After);
var _default = exports["default"] = RemoveActiveTabQueryParam;

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/hooks/ui/open/clear-dynamic-tags-cache.js":
/*!**********************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/hooks/ui/open/clear-dynamic-tags-cache.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"] = exports.ClearDynamicTagsCache = 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"));
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; })(); }
var ClearDynamicTagsCache = exports.ClearDynamicTagsCache = /*#__PURE__*/function (_$e$modules$hookUI$Be) {
  function ClearDynamicTagsCache() {
    (0, _classCallCheck2.default)(this, ClearDynamicTagsCache);
    return _callSuper(this, ClearDynamicTagsCache, arguments);
  }
  (0, _inherits2.default)(ClearDynamicTagsCache, _$e$modules$hookUI$Be);
  return (0, _createClass2.default)(ClearDynamicTagsCache, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/open';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'clear-dynamic-tags-cache-on-document-open';
    }
  }, {
    key: "apply",
    value: function apply() {
      elementor.dynamicTags.cleanCache();
    }
  }]);
}($e.modules.hookUI.Before);
var _default = exports["default"] = ClearDynamicTagsCache;

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/hooks/ui/open/set-active-document-query-param.js":
/*!*****************************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/hooks/ui/open/set-active-document-query-param.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"] = exports.SetActiveDocumentQueryParam = 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 _queryParams = __webpack_require__(/*! elementor-editor-utils/query-params */ "../assets/dev/js/editor/utils/query-params.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; })(); }
var SetActiveDocumentQueryParam = exports.SetActiveDocumentQueryParam = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  function SetActiveDocumentQueryParam() {
    (0, _classCallCheck2.default)(this, SetActiveDocumentQueryParam);
    return _callSuper(this, SetActiveDocumentQueryParam, arguments);
  }
  (0, _inherits2.default)(SetActiveDocumentQueryParam, _$e$modules$hookUI$Af);
  return (0, _createClass2.default)(SetActiveDocumentQueryParam, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/open';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'set-active-document-query-param';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      // Don't run for the initial/default document because it's redundant.
      return parseInt(args.id) !== parseInt(elementor.config.initial_document.id);
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var id = parseInt(args.id);
      if (!isNaN(id)) {
        (0, _queryParams.setQueryParam)('active-document', args.id);
      }
    }
  }]);
}($e.modules.hookUI.After);
var _default = exports["default"] = SetActiveDocumentQueryParam;

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/hooks/ui/switch/switch-to-active-tab.js":
/*!********************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/hooks/ui/switch/switch-to-active-tab.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"] = exports.SwitchToActiveTab = 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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _queryParams = __webpack_require__(/*! elementor-editor-utils/query-params */ "../assets/dev/js/editor/utils/query-params.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; })(); }
var SwitchToActiveTab = exports.SwitchToActiveTab = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  function SwitchToActiveTab() {
    (0, _classCallCheck2.default)(this, SwitchToActiveTab);
    return _callSuper(this, SwitchToActiveTab, arguments);
  }
  (0, _inherits2.default)(SwitchToActiveTab, _$e$modules$hookUI$Af);
  return (0, _createClass2.default)(SwitchToActiveTab, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/switch';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'switch-to-active-tab';
    }
  }, {
    key: "getConditions",
    value: function getConditions() {
      if (this.constructor.calledOnce) {
        return false;
      }
      return true;
    }
  }, {
    key: "apply",
    value: function apply() {
      this.constructor.calledOnce = true;
      try {
        var activeTab = (0, _queryParams.getQueryParam)('active-tab');
        if (activeTab) {
          $e.route('panel/global/' + activeTab);
        }
      } catch (e) {
        (0, _queryParams.removeQueryParam)('active-tab');
      }
    }
  }]);
}($e.modules.hookUI.After);
(0, _defineProperty2.default)(SwitchToActiveTab, "calledOnce", false);
var _default = exports["default"] = SwitchToActiveTab;

/***/ }),

/***/ "../assets/dev/js/editor/components/documents/models/editor.js":
/*!*********************************************************************!*\
  !*** ../assets/dev/js/editor/components/documents/models/editor.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 _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var Editor = exports["default"] = /*#__PURE__*/(0, _createClass2.default)(function Editor() {
  (0, _classCallCheck2.default)(this, Editor);
  /**
   * Editor status.
   *
   * @type {'open'|'closed'}
   */
  (0, _defineProperty2.default)(this, "status", 'closed');
  /**
   * Is document still saving?.
   *
   * @type {boolean}
   */
  (0, _defineProperty2.default)(this, "isSaving", false);
  /**
   * Is document changed?.
   *
   * @type {boolean}
   */
  (0, _defineProperty2.default)(this, "isChanged", false);
  /**
   * Is document changed during save?.
   *
   * @type {boolean}
   */
  (0, _defineProperty2.default)(this, "isChangedDuringSave", false);
  /**
   * Is document saved?
   *
   * @type {boolean}
   */
  (0, _defineProperty2.default)(this, "isSaved", true);
  /**
   * Last save history id.
   *
   * @type {number}
   */
  (0, _defineProperty2.default)(this, "lastSaveHistoryId", 0);
});

/***/ }),

/***/ "../assets/dev/js/editor/components/dynamic-tags/control-behavior.js":
/*!***************************************************************************!*\
  !*** ../assets/dev/js/editor/components/dynamic-tags/control-behavior.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_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");
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var TagPanelView = __webpack_require__(/*! elementor-dynamic-tags/tag-panel-view */ "../assets/dev/js/editor/components/dynamic-tags/tag-panel-view.js");
module.exports = Marionette.Behavior.extend({
  tagView: null,
  listenerAttached: false,
  initialize: function initialize() {
    if (!this.listenerAttached) {
      this.listenTo(this.view.options.container.settings, 'change:external:__dynamic__', this.onAfterExternalChange);
      this.listenerAttached = true;
    }
  },
  shouldRenderTools: function shouldRenderTools() {
    var hasDefault = this.getOption('dynamicSettings').default;
    if (hasDefault) {
      return false;
    }
    var isFeatureAvailableToUser = elementor.helpers.hasPro() && !elementor.helpers.hasProAndNotConnected(),
      hasTags = this.getOption('tags').length > 0;
    return !isFeatureAvailableToUser || hasTags;
  },
  renderTools: function renderTools() {
    var _this = this;
    if (!this.shouldRenderTools()) {
      return;
    }
    var $dynamicSwitcher = jQuery(Marionette.Renderer.render('#tmpl-elementor-control-dynamic-switcher'));
    $dynamicSwitcher.on('click', function (event) {
      return _this.onDynamicSwitcherClick(event);
    });
    this.$el.find('.elementor-control-dynamic-switcher-wrapper').append($dynamicSwitcher);
    this.ui.dynamicSwitcher = $dynamicSwitcher;
    if ('color' === this.view.model.get('type')) {
      if (this.view.colorPicker) {
        this.moveDynamicSwitcherToColorPicker();
      } else {
        setTimeout(function () {
          return _this.moveDynamicSwitcherToColorPicker();
        });
      }
    }

    // Add a Tipsy Tooltip to the Dynamic Switcher
    this.ui.dynamicSwitcher.tipsy({
      title: function title() {
        return this.getAttribute('data-tooltip');
      },
      gravity: 's'
    });
  },
  moveDynamicSwitcherToColorPicker: function moveDynamicSwitcherToColorPicker() {
    var $colorPickerToolsContainer = this.view.colorPicker.$pickerToolsContainer;
    this.ui.dynamicSwitcher.removeClass('elementor-control-unit-1').addClass('e-control-tool');
    var $eyedropper = $colorPickerToolsContainer.find('.elementor-control-element-color-picker');
    if ($eyedropper.length) {
      this.ui.dynamicSwitcher.insertBefore($eyedropper);
    } else {
      $colorPickerToolsContainer.append(this.ui.dynamicSwitcher);
    }
  },
  toggleDynamicClass: function toggleDynamicClass() {
    this.$el.toggleClass('elementor-control-dynamic-value', this.isDynamicMode());
  },
  isDynamicMode: function isDynamicMode() {
    var dynamicSettings = this.view.container.settings.get('__dynamic__');
    return !!(dynamicSettings && dynamicSettings[this.view.model.get('name')]);
  },
  createTagsList: function createTagsList() {
    var tags = _.groupBy(this.getOption('tags'), 'group'),
      groups = elementor.dynamicTags.getConfig('groups'),
      $tagsList = this.ui.tagsList = jQuery('<div>', {
        class: 'elementor-tags-list'
      }),
      $tagsListInner = jQuery('<div>', {
        class: 'elementor-tags-list__inner'
      });
    $tagsList.append($tagsListInner);
    jQuery.each(groups, function (groupName) {
      var groupTags = tags[groupName];
      if (!groupTags) {
        return;
      }
      var group = this,
        $groupTitle = jQuery('<div>', {
          class: 'elementor-tags-list__group-title'
        }).text(group.title);
      $tagsListInner.append($groupTitle);
      groupTags.forEach(function (tag) {
        var $tag = jQuery('<div>', {
          class: 'elementor-tags-list__item'
        });
        $tag.text(tag.title).attr('data-tag-name', tag.name);
        $tagsListInner.append($tag);
      });
    });

    // Create and inject pro dynamic teaser template if Pro is not installed
    if (!elementor.helpers.hasPro() && Object.keys(tags).length) {
      var proTeaser = Marionette.Renderer.render('#tmpl-elementor-dynamic-tags-promo', {
        promotionUrl: elementor.config.dynamicPromotionURL.replace('%s', this.view.model.get('name'))
      });
      $tagsListInner.append(proTeaser);
    }
    $tagsListInner.on('click', '.elementor-tags-list__item', this.onTagsListItemClick.bind(this));
    elementorCommon.elements.$body.append($tagsList);
  },
  getTagsList: function getTagsList() {
    if (!this.ui.tagsList) {
      this.createTagsList();
    }
    return this.ui.tagsList;
  },
  toggleTagsList: function toggleTagsList() {
    var $tagsList = this.getTagsList();
    if ($tagsList.is(':visible')) {
      $tagsList.hide();
      return;
    }
    var direction = elementorCommon.config.isRTL ? 'left' : 'right';
    $tagsList.show().position({
      my: "".concat(direction, " top"),
      at: "".concat(direction, " bottom+5"),
      of: this.ui.dynamicSwitcher
    });
  },
  setTagView: function setTagView(id, name, settings) {
    if (this.tagView) {
      this.tagView.destroy();
    }
    var tagView = this.tagView = new TagPanelView({
        id: id,
        name: name,
        settings: settings,
        controlName: this.view.model.get('name'),
        dynamicSettings: this.getOption('dynamicSettings')
      }),
      elementContainer = this.view.options.container,
      tagViewLabel = elementContainer.controls[tagView.options.controlName].label;
    tagView.options.container = new elementorModules.editor.Container({
      type: 'dynamic',
      id: id,
      model: tagView.model,
      settings: tagView.model,
      view: tagView,
      parent: elementContainer,
      label: elementContainer.label + ' ' + tagViewLabel,
      controls: tagView.model.options.controls,
      renderer: elementContainer
    });
    tagView.render();
    this.$el.find('.elementor-control-tag-area').after(tagView.el);
    this.listenTo(tagView, 'remove', this.onTagViewRemove.bind(this));
  },
  setDefaultTagView: function setDefaultTagView() {
    var tagData = elementor.dynamicTags.tagTextToTagData(this.getDynamicValue());
    this.setTagView(tagData.id, tagData.name, tagData.settings);
  },
  tagViewToTagText: function tagViewToTagText() {
    var tagView = this.tagView;
    return elementor.dynamicTags.tagDataToTagText(tagView.getOption('id'), tagView.getOption('name'), tagView.model);
  },
  getDynamicValue: function getDynamicValue() {
    return this.view.container.dynamic.get(this.view.model.get('name'));
  },
  destroyTagView: function destroyTagView() {
    if (this.tagView) {
      this.tagView.destroy();
      this.tagView = null;
    }
  },
  showPromotion: function showPromotion() {
    var hasProAndNotConnected = elementor.helpers.hasProAndNotConnected(),
      dialogOptions = {
        title: __('Dynamic Content', 'elementor'),
        content: __('Create more personalized and dynamic sites by populating data from various sources with dozens of dynamic tags to choose from.', 'elementor'),
        targetElement: this.ui.dynamicSwitcher,
        position: {
          blockStart: '-10'
        },
        actionButton: {
          url: hasProAndNotConnected ? elementorProEditorConfig.urls.connect : elementor.config.dynamicPromotionURL.replace('%s', this.view.model.get('name')),
          text: hasProAndNotConnected ? __('Connect & Activate', 'elementor') : __('Upgrade', 'elementor')
        }
      };
    elementor.promotion.showDialog(dialogOptions);
  },
  onRender: function onRender() {
    this.$el.addClass('elementor-control-dynamic');
    this.renderTools();
    this.toggleDynamicClass();
    if (this.isDynamicMode()) {
      this.setDefaultTagView();
    }
  },
  onDynamicSwitcherClick: function onDynamicSwitcherClick(event) {
    event.stopPropagation();
    if (this.getOption('tags').length) {
      this.toggleTagsList();
    } else {
      this.showPromotion();
    }
  },
  onTagsListItemClick: function onTagsListItemClick(event) {
    var $tag = jQuery(event.currentTarget);
    this.setTagView(elementorCommon.helpers.getUniqueId(), $tag.data('tagName'), {});

    // If an element has an active global value, disable it before applying the dynamic value.
    if (this.view.getGlobalKey()) {
      this.view.triggerMethod('unset:global:value');
    }
    if (this.isDynamicMode()) {
      $e.run('document/dynamic/settings', {
        container: this.view.options.container,
        settings: (0, _defineProperty2.default)({}, this.view.model.get('name'), this.tagViewToTagText())
      });
    } else {
      $e.run('document/dynamic/enable', {
        container: this.view.options.container,
        settings: (0, _defineProperty2.default)({}, this.view.model.get('name'), this.tagViewToTagText())
      });
    }
    this.toggleDynamicClass();
    this.toggleTagsList();
    if (this.tagView.getTagConfig().settings_required) {
      this.tagView.showSettingsPopup();
    }
  },
  onTagViewRemove: function onTagViewRemove() {
    $e.run('document/dynamic/disable', {
      container: this.view.options.container,
      settings: (0, _defineProperty2.default)({}, this.view.model.get('name'), this.tagViewToTagText())
    });
    this.toggleDynamicClass();
  },
  onAfterExternalChange: function onAfterExternalChange() {
    this.destroyTagView();
    if (this.isDynamicMode()) {
      this.setDefaultTagView();
    }
    this.toggleDynamicClass();
  },
  onDestroy: function onDestroy() {
    this.destroyTagView();
    if (this.ui.tagsList) {
      this.ui.tagsList.remove();
    }
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/dynamic-tags/manager.js":
/*!******************************************************************!*\
  !*** ../assets/dev/js/editor/components/dynamic-tags/manager.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
module.exports = elementorModules.Module.extend({
  CACHE_KEY_NOT_FOUND_ERROR: 'Cache key not found',
  tags: {
    Base: __webpack_require__(/*! elementor-dynamic-tags/tag */ "../assets/dev/js/editor/components/dynamic-tags/tag.js")
  },
  cache: {},
  cacheRequests: {},
  cacheCallbacks: [],
  getTagRenderPostId: function getTagRenderPostId(tag) {
    var _tag$editorRenderPost;
    return (_tag$editorRenderPost = tag.editorRenderPostId) !== null && _tag$editorRenderPost !== void 0 ? _tag$editorRenderPost : elementor.config.document.id;
  },
  addCacheRequest: function addCacheRequest(tag) {
    var postId = this.getTagRenderPostId(tag);
    var cacheKey = this.createCacheKey(tag);
    if (!this.cacheRequests[postId]) {
      this.cacheRequests[postId] = {};
    }
    this.cacheRequests[postId][cacheKey] = true;
  },
  createCacheKey: function createCacheKey(tag) {
    var postId = this.getTagRenderPostId(tag);
    return btoa(tag.getOption('name')) + '-' + btoa(encodeURIComponent(JSON.stringify(tag.model))) + '-' + postId;
  },
  loadTagDataFromCache: function loadTagDataFromCache(tag) {
    var cacheKey = this.createCacheKey(tag);
    if (undefined !== this.cache[cacheKey]) {
      return this.cache[cacheKey];
    }
    var postId = this.getTagRenderPostId(tag);
    if (!this.cacheRequests[postId] || !this.cacheRequests[postId][cacheKey]) {
      this.addCacheRequest(tag);
    }
  },
  loadCacheRequests: function loadCacheRequests() {
    var _this = this;
    var cacheRequests = this.cacheRequests,
      cacheCallbacks = this.cacheCallbacks;
    this.cacheRequests = {};
    this.cacheCallbacks = [];
    var postIds = Object.keys(cacheRequests);
    if (0 === postIds.length) {
      cacheCallbacks.forEach(function (entry) {
        entry.callback();
      });
      return;
    }
    var pendingRequests = postIds.length;
    var onRequestComplete = function onRequestComplete() {
      pendingRequests -= 1;
      if (0 === pendingRequests) {
        cacheCallbacks.forEach(function (entry) {
          entry.callback();
        });
      }
    };
    var needsUniqueIds = postIds.length > 1;
    var batchId = needsUniqueIds ? elementorCommon.helpers.getUniqueId() : null;
    postIds.forEach(function (postId) {
      elementorCommon.ajax.addRequest('render_tags', _objectSpread(_objectSpread({}, needsUniqueIds ? {
        unique_id: "render_tags-".concat(postId, "-").concat(batchId)
      } : {}), {}, {
        data: {
          post_id: Number(postId),
          tags: Object.keys(cacheRequests[postId])
        },
        success: function success(data) {
          _this.cache = _objectSpread(_objectSpread({}, _this.cache), data);
          onRequestComplete();
        }
      }));
    });
  },
  refreshCacheFromServer: function refreshCacheFromServer(callback) {
    this.cacheCallbacks.push({
      callback: callback
    });
    this.loadCacheRequests();
  },
  getConfig: function getConfig(key) {
    return this.getItems(elementor.config.dynamicTags, key);
  },
  parseTagsText: function parseTagsText(text, settings, parseCallback) {
    var self = this;
    if ('object' === settings.returnType) {
      return self.parseTagText(text, settings, parseCallback);
    }
    return text.replace(/\[elementor-tag[^\]]+]/g, function (tagText) {
      return self.parseTagText(tagText, settings, parseCallback);
    });
  },
  parseTagText: function parseTagText(tagText, settings, parseCallback) {
    var tagData = this.tagTextToTagData(tagText);
    if (!tagData) {
      if ('object' === settings.returnType) {
        return {};
      }
      return '';
    }
    return parseCallback(tagData.id, tagData.name, tagData.settings);
  },
  tagTextToTagData: function tagTextToTagData(tagText) {
    var tagIDMatch = tagText.match(/id="(.*?(?="))"/),
      tagNameMatch = tagText.match(/name="(.*?(?="))"/),
      tagSettingsMatch = tagText.match(/settings="(.*?(?="]))/);
    if (!tagIDMatch || !tagNameMatch || !tagSettingsMatch) {
      return false;
    }
    return {
      id: tagIDMatch[1],
      name: tagNameMatch[1],
      settings: JSON.parse(decodeURIComponent(tagSettingsMatch[1]))
    };
  },
  createTag: function createTag(tagID, tagName, tagSettings) {
    var tagConfig = this.getConfig('tags.' + tagName);
    if (!tagConfig) {
      return;
    }
    var TagClass = this.tags[tagName] || this.tags.Base,
      model = new elementorModules.editor.elements.models.BaseSettings(tagSettings, {
        controls: tagConfig.controls
      });
    return new TagClass({
      id: tagID,
      name: tagName,
      model: model
    });
  },
  getTagDataContent: function getTagDataContent(tagID, tagName, tagSettings) {
    var tag = this.createTag(tagID, tagName, tagSettings);
    if (!tag) {
      return;
    }
    return tag.getContent();
  },
  tagDataToTagText: function tagDataToTagText(tagID, tagName, tagSettings) {
    tagSettings = encodeURIComponent(JSON.stringify(tagSettings && tagSettings.toJSON({
      remove: ['default']
    }) || {}));
    return '[elementor-tag id="' + tagID + '" name="' + tagName + '" settings="' + tagSettings + '"]';
  },
  tagContainerToTagText: function tagContainerToTagText(/** Container*/container) {
    return elementor.dynamicTags.tagDataToTagText(container.view.getOption('id'), container.view.getOption('name'), container.view.model);
  },
  cleanCache: function cleanCache() {
    this.cache = {};
  },
  onInit: function onInit() {
    this.loadCacheRequests = _.debounce(this.loadCacheRequests, 300);
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack-empty.js":
/*!***********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack-empty.js ***!
  \***********************************************************************************/
/***/ ((module) => {

"use strict";


module.exports = Marionette.ItemView.extend({
  className: 'elementor-tag-controls-stack-empty',
  template: '#tmpl-elementor-tag-controls-stack-empty'
});

/***/ }),

/***/ "../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack.js":
/*!*****************************************************************************!*\
  !*** ../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack.js ***!
  \*****************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var EmptyView = __webpack_require__(/*! elementor-dynamic-tags/tag-controls-stack-empty */ "../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack-empty.js");
module.exports = elementorModules.editor.views.ControlsStack.extend({
  activeTab: 'content',
  template: _.noop,
  emptyView: EmptyView,
  isEmpty: function isEmpty() {
    // Ignore the section control
    return this.collection.length < 2;
  },
  childViewOptions: function childViewOptions() {
    return {
      container: this.options.container
    };
  },
  getNamespaceArray: function getNamespaceArray() {
    var currentPageView = elementor.getPanelView().getCurrentPageView(),
      eventNamespace = currentPageView.getNamespaceArray();
    eventNamespace.push(currentPageView.activeSection);
    eventNamespace.push(this.getOption('controlName'));
    eventNamespace.push(this.getOption('name'));
    return eventNamespace;
  },
  onRenderTemplate: function onRenderTemplate() {
    this.activateFirstSection();
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/dynamic-tags/tag-panel-view.js":
/*!*************************************************************************!*\
  !*** ../assets/dev/js/editor/components/dynamic-tags/tag-panel-view.js ***!
  \*************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var TagControlsStack = __webpack_require__(/*! elementor-dynamic-tags/tag-controls-stack */ "../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack.js");
module.exports = Marionette.ItemView.extend({
  className: 'elementor-dynamic-cover e-input-style',
  tagControlsStack: null,
  templateHelpers: function templateHelpers() {
    var helpers = {};
    if (this.model) {
      helpers.controls = this.model.options.controls;
    }
    return helpers;
  },
  ui: {
    remove: '.elementor-dynamic-cover__remove'
  },
  events: function events() {
    var events = {
      'click @ui.remove': 'onRemoveClick'
    };
    if (this.hasSettings()) {
      events.click = 'onClick';
    }
    return events;
  },
  getTemplate: function getTemplate() {
    var config = this.getTagConfig(),
      templateFunction = Marionette.TemplateCache.get('#tmpl-elementor-control-dynamic-cover'),
      renderedTemplate = Marionette.Renderer.render(templateFunction, {
        hasSettings: this.hasSettings(),
        isRemovable: !this.getOption('dynamicSettings').default,
        title: config.title,
        content: config.panel_template
      });
    return Marionette.TemplateCache.prototype.compileTemplate(renderedTemplate.trim());
  },
  getTagConfig: function getTagConfig() {
    return elementor.dynamicTags.getConfig('tags.' + this.getOption('name'));
  },
  initSettingsPopup: function initSettingsPopup() {
    var settingsPopupOptions = {
      className: 'elementor-tag-settings-popup',
      position: {
        my: 'left top+5',
        at: 'left bottom',
        of: this.$el,
        autoRefresh: true
      },
      hide: {
        ignore: '.select2-container'
      }
    };
    var settingsPopup = elementorCommon.dialogsManager.createWidget('buttons', settingsPopupOptions);
    this.getSettingsPopup = function () {
      return settingsPopup;
    };
  },
  hasSettings: function hasSettings() {
    return !!Object.values(this.getTagConfig().controls).length;
  },
  showSettingsPopup: function showSettingsPopup() {
    if (!this.tagControlsStack) {
      this.initTagControlsStack();
    }
    var settingsPopup = this.getSettingsPopup();
    if (settingsPopup.isVisible()) {
      return;
    }
    settingsPopup.show();
  },
  initTagControlsStack: function initTagControlsStack() {
    this.tagControlsStack = new TagControlsStack({
      model: this.model,
      controls: this.model.controls,
      name: this.options.name,
      controlName: this.options.controlName,
      container: this.options.container,
      el: this.getSettingsPopup().getElements('message')[0]
    });
    this.tagControlsStack.render();
  },
  initModel: function initModel() {
    this.model = new elementorModules.editor.elements.models.BaseSettings(this.getOption('settings'), {
      controls: this.getTagConfig().controls
    });
  },
  initialize: function initialize() {
    // The `model` should always be available.
    this.initModel();
    if (!this.hasSettings()) {
      return;
    }
    this.initSettingsPopup();
    this.listenTo(this.model, 'change', this.render);
  },
  onClick: function onClick() {
    this.showSettingsPopup();
  },
  onRemoveClick: function onRemoveClick(event) {
    event.stopPropagation();
    this.destroy();
    this.trigger('remove');
  },
  onDestroy: function onDestroy() {
    if (this.hasSettings()) {
      this.getSettingsPopup().destroy();
    }
    if (this.tagControlsStack) {
      this.tagControlsStack.destroy();
    }
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/dynamic-tags/tag.js":
/*!**************************************************************!*\
  !*** ../assets/dev/js/editor/components/dynamic-tags/tag.js ***!
  \**************************************************************/
/***/ ((module) => {

"use strict";


module.exports = Marionette.ItemView.extend({
  hasTemplate: true,
  tagName: 'span',
  className: function className() {
    return 'elementor-tag';
  },
  getTemplate: function getTemplate() {
    if (!this.hasTemplate) {
      return false;
    }
    return Marionette.TemplateCache.get('#tmpl-elementor-tag-' + this.getOption('name') + '-content');
  },
  initialize: function initialize() {
    try {
      this.getTemplate();
    } catch (e) {
      this.hasTemplate = false;
    }
  },
  getConfig: function getConfig(key) {
    var config = elementor.dynamicTags.getConfig('tags.' + this.getOption('name'));
    if (key) {
      return config[key];
    }
    return config;
  },
  getContent: function getContent() {
    var contentType = this.getConfig('content_type'),
      data;
    if (!this.hasTemplate) {
      data = elementor.dynamicTags.loadTagDataFromCache(this);
      if (undefined === data) {
        throw new Error(elementor.dynamicTags.CACHE_KEY_NOT_FOUND_ERROR);
      }
    }
    if ('ui' === contentType) {
      this.render();
      if (this.hasTemplate) {
        return this.el.outerHTML;
      }
      if (this.getConfig('wrapped_tag')) {
        data = jQuery(data).html();
      }
      this.$el.html(data);
    }
    return data;
  },
  onRender: function onRender() {
    this.el.id = 'elementor-tag-' + this.getOption('id');
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/hotkeys/component.js":
/*!***************************************************************!*\
  !*** ../assets/dev/js/editor/components/hotkeys/component.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 _componentModalBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-modal-base */ "../modules/web-cli/assets/js/modules/component-modal-base.js"));
var _modalLayout = _interopRequireDefault(__webpack_require__(/*! ./modal-layout */ "../assets/dev/js/editor/components/hotkeys/modal-layout.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; })(); }
var Component = exports["default"] = /*#__PURE__*/function (_ComponentModalBase) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _ComponentModalBase);
  return (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'shortcuts';
    }
  }, {
    key: "defaultShortcuts",
    value: function defaultShortcuts() {
      return {
        '': {
          keys: 'ctrl+?, shift+?',
          exclude: ['input']
        }
      };
    }
  }, {
    key: "getModalLayout",
    value: function getModalLayout() {
      return _modalLayout.default;
    }
  }]);
}(_componentModalBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/components/hotkeys/hotkeys.js":
/*!*************************************************************!*\
  !*** ../assets/dev/js/editor/components/hotkeys/hotkeys.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 _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../assets/dev/js/editor/components/hotkeys/component.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; })(); }
var _default = exports["default"] = /*#__PURE__*/function (_elementorModules$Mod) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _elementorModules$Mod);
  return (0, _createClass2.default)(_default, [{
    key: "onInit",
    value: function onInit() {
      $e.components.register(new _component.default({
        manager: this
      }));
    }
  }]);
}(elementorModules.Module);

/***/ }),

/***/ "../assets/dev/js/editor/components/hotkeys/modal-content.js":
/*!*******************************************************************!*\
  !*** ../assets/dev/js/editor/components/hotkeys/modal-content.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 _environment = _interopRequireDefault(__webpack_require__(/*! elementor-common/utils/environment */ "../core/common/assets/js/utils/environment.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; })(); }
var _default = exports["default"] = /*#__PURE__*/function (_Marionette$LayoutVie) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _Marionette$LayoutVie);
  return (0, _createClass2.default)(_default, [{
    key: "id",
    value: function id() {
      return 'elementor-hotkeys';
    }
  }, {
    key: "templateHelpers",
    value: function templateHelpers() {
      return {
        environment: _environment.default
      };
    }
  }, {
    key: "getTemplate",
    value: function getTemplate() {
      return '#tmpl-elementor-hotkeys';
    }
  }]);
}(Marionette.LayoutView);

/***/ }),

/***/ "../assets/dev/js/editor/components/hotkeys/modal-layout.js":
/*!******************************************************************!*\
  !*** ../assets/dev/js/editor/components/hotkeys/modal-layout.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 _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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _modalContent = _interopRequireDefault(__webpack_require__(/*! ./modal-content */ "../assets/dev/js/editor/components/hotkeys/modal-content.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var _default = exports["default"] = /*#__PURE__*/function (_elementorModules$com) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _elementorModules$com);
  return (0, _createClass2.default)(_default, [{
    key: "getModalOptions",
    value: function getModalOptions() {
      return {
        id: 'elementor-hotkeys__modal'
      };
    }
  }, {
    key: "getLogoOptions",
    value: function getLogoOptions() {
      return {
        title: __('Keyboard Shortcuts', 'elementor')
      };
    }
  }, {
    key: "initialize",
    value: function initialize() {
      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }
      _superPropGet(_default, "initialize", this, 3)(args);
      this.showLogo();
      this.showContentView();
    }
  }, {
    key: "showContentView",
    value: function showContentView() {
      this.modalContent.show(new _modalContent.default());
    }
  }]);
}(elementorModules.common.views.modal.Layout);

/***/ }),

/***/ "../assets/dev/js/editor/components/icons-manager/classes/icon-library.js":
/*!********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/icons-manager/classes/icon-library.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 _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _default = exports["default"] = /*#__PURE__*/function () {
  function _default() {
    var _this = this;
    (0, _classCallCheck2.default)(this, _default);
    (0, _defineProperty2.default)(this, "loaded", {});
    (0, _defineProperty2.default)(this, "notifyCallback", null);
    (0, _defineProperty2.default)(this, "fetchIcons", function (library) {
      fetch(library.fetchJson, {
        mode: 'cors'
      }).then(function (res) {
        return res.json();
      }).then(function (json) {
        library.icons = json.icons;
        return _this.normalizeIconList(library);
      });
    });
    (0, _defineProperty2.default)(this, "runCallback", function (library) {
      if ('function' !== typeof _this.notifyCallback) {
        return library;
      }
      return _this.notifyCallback(library);
    });
    (0, _defineProperty2.default)(this, "initIconType", function (libraryConfig, callback) {
      _this.notifyCallback = callback;
      var store = elementor.iconManager.store;
      if (_this.loaded[libraryConfig.name]) {
        libraryConfig.icons = store.getIcons(libraryConfig);
        return _this.runCallback(libraryConfig);
      }

      // Enqueue CSS
      if (libraryConfig.enqueue) {
        libraryConfig.enqueue.forEach(function (assetURL) {
          var versionAddedURL = "".concat(assetURL).concat(libraryConfig !== null && libraryConfig !== void 0 && libraryConfig.ver ? '?ver=' + libraryConfig.ver : '');
          elementor.helpers.enqueueEditorStylesheet(versionAddedURL);
        });
      }
      if (libraryConfig.url) {
        var versionAddedURL = "".concat(libraryConfig.url).concat(libraryConfig !== null && libraryConfig !== void 0 && libraryConfig.ver ? '?ver=' + libraryConfig.ver : '');
        elementor.helpers.enqueueEditorStylesheet(versionAddedURL);
      }

      // Already saved an stored
      if (store.isValid(libraryConfig)) {
        var data = store.get(store.getKey(libraryConfig));
        return _this.normalizeIconList(data);
      }

      // Comes with icons
      if (libraryConfig.icons && libraryConfig.icons.length) {
        return _this.normalizeIconList(libraryConfig);
      }

      // Get icons from via ajax
      if (libraryConfig.fetchJson) {
        return _this.fetchIcons(libraryConfig);
      }
      // @todo: error handling
    });
  }
  return (0, _createClass2.default)(_default, [{
    key: "normalizeIconList",
    value: function normalizeIconList(library) {
      var icons = {};
      var name;
      jQuery.each(library.icons, function (index, icon) {
        name = icon;
        if ('object' === (0, _typeof2.default)(name)) {
          name = Object.entries(name)[0][0];
        }
        if (!name) {
          return;
        }
        icons[name] = {
          prefix: library.prefix,
          selector: library.prefix + name.trim(':'),
          name: elementorCommon.helpers.upperCaseWords(name).trim(':').split('-').join(' '),
          filter: name.trim(':'),
          displayPrefix: library.displayPrefix || library.prefix.replace('-', '')
        };
      });
      if (Object.keys(icons).length) {
        library.icons = icons;
        this.loaded[library.name] = true;
        elementor.iconManager.store.save(library);
        this.runCallback(library);
      }
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/components/icons-manager/classes/store.js":
/*!*************************************************************************!*\
  !*** ../assets/dev/js/editor/components/icons-manager/classes/store.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 _Store = /*#__PURE__*/function () {
  function Store() {
    (0, _classCallCheck2.default)(this, Store);
  }
  return (0, _createClass2.default)(Store, [{
    key: "save",
    value: function save(library) {
      elementorCommon.storage.set(_Store.getKey(library), library);
    }
  }, {
    key: "getIcons",
    value: function getIcons(library) {
      var data = this.get(_Store.getKey(library));
      if (data && data.icons) {
        return data.icons;
      }
      return false;
    }
  }, {
    key: "get",
    value: function get(key) {
      return elementorCommon.storage.get(key);
    }
  }, {
    key: "isValid",
    value: function isValid(library) {
      var saved = this.get(_Store.getKey(library));
      if (!saved) {
        return false;
      }
      if (saved.ver !== library.ver) {
        // @todo: delete from localStorage if version is invalid
        return false;
      }
      return saved.icons && saved.icons.length;
    }
  }], [{
    key: "getKey",
    value: function getKey(library) {
      var name = library.name ? library.name : library;
      return "elementor_".concat(name, "_icons");
    }
  }]);
}();
var _default = exports["default"] = _Store;

/***/ }),

/***/ "../assets/dev/js/editor/components/icons-manager/components/icon-list.js":
/*!********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/icons-manager/components/icon-list.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
var LazyIconList = /*#__PURE__*/function (_Component) {
  function LazyIconList() {
    var _this;
    (0, _classCallCheck2.default)(this, LazyIconList);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, LazyIconList, [].concat(args));
    (0, _defineProperty2.default)(_this, "state", {
      itemSize: {
        width: 0,
        height: 0
      },
      wrapperSize: {
        width: 0,
        height: 0
      },
      firstRowInView: 0
    });
    (0, _defineProperty2.default)(_this, "selectors", {
      item: '.elementor-icons-manager__tab__item',
      wrapper: 'elementor-icons-manager__tab__wrapper'
    });
    (0, _defineProperty2.default)(_this, "attachScrollListener", function () {
      var element = document.getElementById(_this.selectors.wrapper);
      if (element) {
        element.addEventListener('scroll', _this.handleScroll);
      }
    });
    (0, _defineProperty2.default)(_this, "maybeMeasureItem", function () {
      if (_this.state.itemSize.width) {
        return;
      }
      // CSS Item Padding
      var itemPadding = 20,
        testElement = document.querySelector(_this.selectors.item);
      if (!testElement) {
        return;
      }
      var wrapper = document.getElementById(_this.selectors.wrapper);
      var newState = {
        itemSize: {
          width: testElement.offsetWidth + itemPadding,
          height: testElement.offsetHeight + itemPadding
        },
        wrapperSize: {
          width: wrapper.offsetWidth,
          height: wrapper.clientHeight
        }
      };
      return _this.setState(newState, function () {
        _this.maybeScrollToSelected();
      });
    });
    (0, _defineProperty2.default)(_this, "maybeScrollToSelected", function () {
      if (!_this.hasSelected()) {
        return;
      }
      var selectedIndex = _this.props.selectedIndex,
        _this$state = _this.state,
        wrapperSize = _this$state.wrapperSize,
        itemSize = _this$state.itemSize,
        itemsInRow = Math.floor(wrapperSize.width / itemSize.width),
        selectedItemRow = Math.ceil(selectedIndex / itemsInRow) - 1,
        scrollTop = selectedItemRow * itemSize.height;
      setTimeout(function () {
        _this.props.parentRef.current.scrollTo({
          top: scrollTop,
          left: 0,
          behavior: 'auto'
        });
      }, 0);
    });
    (0, _defineProperty2.default)(_this, "handleScroll", function () {
      _this.clearDebounceScrollCallback();
      _this._debounce = setTimeout(function () {
        var element = document.getElementById(_this.selectors.wrapper);
        var itemSize = _this.state.itemSize;
        _this.setState({
          firstRowInView: Math.floor(element.scrollTop / itemSize.height)
        });
      }, 10);
    });
    (0, _defineProperty2.default)(_this, "render", function () {
      var _this$state2 = _this.state,
        itemSize = _this$state2.itemSize,
        wrapperSize = _this$state2.wrapperSize;
      var firstRowInView = _this.state.firstRowInView;
      if (!itemSize.width) {
        return _this.renderFirstElementForMeasurement();
      }
      var items = _this.props.items,
        itemsInRow = Math.floor(wrapperSize.width / itemSize.width),
        totalRows = Math.ceil(items.length / itemsInRow),
        spareRows = 4;
      var rowsInView = Math.ceil(wrapperSize.height / itemSize.height) + spareRows;
      if (rowsInView > totalRows) {
        rowsInView = totalRows;
      }

      // Prevent scroll overflow
      if (firstRowInView > totalRows - rowsInView) {
        firstRowInView = totalRows - rowsInView;
      }
      var tailRows = totalRows - firstRowInView - rowsInView,
        firstItemIndexInWindow = firstRowInView * itemsInRow,
        lastItemIndexInWindow = (firstRowInView + rowsInView) * itemsInRow - 1,
        itemsInView = items.slice(firstItemIndexInWindow, lastItemIndexInWindow + 1),
        offsetStyle = {
          height: "".concat(firstRowInView * itemSize.height, "px")
        },
        tailStyle = {
          height: "".concat(tailRows * itemSize.height, "px")
        };
      return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
        className: 'elementor-icons-manager__tab__content__offset',
        style: offsetStyle
      }), /*#__PURE__*/_react.default.createElement("div", {
        id: 'elementor-icons-manager__tab__content'
      }, itemsInView), /*#__PURE__*/_react.default.createElement("div", {
        className: 'elementor-icons-manager__tab__content__tail',
        style: tailStyle
      }));
    });
    return _this;
  }
  (0, _inherits2.default)(LazyIconList, _Component);
  return (0, _createClass2.default)(LazyIconList, [{
    key: "componentDidMount",
    value: function componentDidMount() {
      this.attachScrollListener();
      this.maybeMeasureItem();
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      this.clearDebounceScrollCallback();
      var element = document.getElementById(this.selectors.wrapper);
      if (element) {
        element.removeEventListener('scroll', this.handleScroll);
      }
    }
  }, {
    key: "clearDebounceScrollCallback",
    value: function clearDebounceScrollCallback() {
      clearTimeout(this._debounce);
    }
  }, {
    key: "renderFirstElementForMeasurement",
    value: function renderFirstElementForMeasurement() {
      return /*#__PURE__*/_react.default.createElement("div", {
        id: 'elementor-icons-manager__tab__content'
      }, this.props.items[0]);
    }
  }, {
    key: "hasSelected",
    value: function hasSelected() {
      return -1 !== this.props.selectedIndex;
    }
  }]);
}(_react.Component);
var _default = exports["default"] = LazyIconList;
LazyIconList.propTypes = {
  items: _propTypes.default.array,
  selectedIndex: _propTypes.default.number,
  parentRef: _propTypes.default.any
};

/***/ }),

/***/ "../assets/dev/js/editor/components/icons-manager/components/icon-manager.js":
/*!***********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/icons-manager/components/icon-manager.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");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.renderIconManager = exports["default"] = void 0;
var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.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 _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
var _react2 = _interopRequireDefault(__webpack_require__(/*! elementor-utils/react */ "../assets/dev/js/utils/react.js"));
var _tab = _interopRequireDefault(__webpack_require__(/*! ./tab */ "../assets/dev/js/editor/components/icons-manager/components/tab.js"));
var _iconsGoPro = _interopRequireDefault(__webpack_require__(/*! ./icons-go-pro */ "../assets/dev/js/editor/components/icons-manager/components/icons-go-pro.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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; })(); }
var IconsManager = /*#__PURE__*/function (_Component) {
  function IconsManager() {
    var _this;
    (0, _classCallCheck2.default)(this, IconsManager);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, IconsManager, [].concat(args));
    (0, _defineProperty2.default)(_this, "scrollViewRef", (0, _react.createRef)());
    (0, _defineProperty2.default)(_this, "state", {
      activeTab: _this.props.activeTab,
      selected: {
        library: '',
        value: ''
      },
      iconTabs: elementor.config.icons.libraries,
      loaded: _this.props.loaded,
      filter: ''
    });
    (0, _defineProperty2.default)(_this, "cache", {});
    (0, _defineProperty2.default)(_this, "loadAllTabs", function () {
      var loaded = _this.state.loaded;
      var icons = _this.props.icons;
      icons.forEach(function (tabSettings) {
        if (loaded[tabSettings.name]) {
          return;
        }
        if (-1 < ['all', 'recommended'].indexOf(tabSettings.name)) {
          return;
        }
        elementor.iconManager.library.initIconType(_objectSpread({}, tabSettings), function (library) {
          _this.cache[library.name] = library;
          loaded[tabSettings.name] = true;
        });
      });
      loaded.all = true;
      loaded.recommended = true;
      _this.setState({
        loaded: loaded
      });
    });
    (0, _defineProperty2.default)(_this, "getActiveTab", function () {
      var activeTab = _this.state.activeTab;
      var loaded = _this.state.loaded,
        icons = _this.props.icons;
      if (!activeTab) {
        if (_this.props.activeTab) {
          activeTab = _this.props.activeTab;
        }
      }
      if ('GoPro' === activeTab) {
        return activeTab;
      }
      if (!loaded[activeTab]) {
        return false;
      }
      var tabSettings = _objectSpread({}, icons.filter(function (tab) {
        return tab.name === activeTab;
      })[0]);
      if (loaded[activeTab]) {
        return _objectSpread({}, tabSettings);
      }
      if ('all' === tabSettings.name && !loaded.all) {
        return _this.loadAllTabs();
      }
      elementor.iconManager.library.initIconType(_objectSpread({}, tabSettings), function (library) {
        _this.cache[library.name] = library;
        _this.updateLoaded(library.name);
      });
      return false;
    });
    (0, _defineProperty2.default)(_this, "getIconTabsLinks", function () {
      var native = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
      return _this.props.icons.map(function (tab) {
        if (native ^ _this.isNativeTab(tab)) {
          return '';
        }
        var isCurrentTab = tab.name === _this.state.activeTab;
        var className = 'elementor-icons-manager__tab-link';
        if (isCurrentTab) {
          className += ' elementor-active';
        }
        return (
          /*#__PURE__*/
          // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
          _react.default.createElement("div", {
            className: className,
            key: tab.name,
            onClick: function onClick() {
              if (isCurrentTab) {
                return;
              }
              _this.setState({
                activeTab: tab.name
              });
            }
          }, /*#__PURE__*/_react.default.createElement("i", {
            className: tab.labelIcon
          }), tab.label)
        );
      });
    });
    (0, _defineProperty2.default)(_this, "getActiveTabIcons", function (activeTab) {
      if (activeTab.name) {
        return _this.getActiveTabIcons(activeTab.name);
      }
      if (_this.cache[activeTab]) {
        return _this.cache[activeTab].icons;
      }
      if ('recommended' === activeTab) {
        return _this.state.iconTabs[0].icons;
      }
      if ('all' === activeTab) {
        return _this.getAllIcons();
      }
      if (!_this.state.loaded[activeTab]) {
        var librarySettings = _this.props.icons.filter(function (library) {
          return activeTab === library.name;
        });
        return elementor.iconManager.library.initIconType(_objectSpread({}, librarySettings[0]), function (library) {
          _this.cache[library.name] = library;
          _this.updateLoaded(library.name);
        });
      }
      return elementor.iconManager.store.getIcons(activeTab);
    });
    (0, _defineProperty2.default)(_this, "getAllIcons", function () {
      if (_this.cache.all) {
        return _this.cache.all.icons;
      }
      var icons = {};
      _this.props.icons.forEach(function (tabSettings) {
        if ('all' === tabSettings.name || 'recommended' === tabSettings.name) {
          return;
        }
        icons[tabSettings.name] = _this.getActiveTabIcons(tabSettings.name);
      });
      _this.cache.all = {
        icons: icons
      };
      return icons;
    });
    (0, _defineProperty2.default)(_this, "handleSearch", function (event) {
      var filter = event.target.value;
      if (filter && '' !== filter) {
        filter = filter.toLocaleLowerCase();
        if (_this.state.filter === filter) {
          return;
        }
      } else {
        filter = '';
      }
      _this.setState({
        filter: filter
      });
    });
    (0, _defineProperty2.default)(_this, "setSelected", function (selected) {
      elementor.iconManager.setSettings('selectedIcon', selected);
      _this.setState({
        selected: selected
      });
    });
    (0, _defineProperty2.default)(_this, "getSelected", function () {
      var selected = _this.state.selected;
      if ('' === selected.value && _this.props.selected && _this.props.selected.value) {
        selected = {
          value: _this.props.selected.value,
          library: _this.props.selected.library
        };
      }
      return selected;
    });
    (0, _defineProperty2.default)(_this, "render", function () {
      var activeTab = _this.getActiveTab(),
        activeTabName = activeTab.name ? activeTab.name : activeTab,
        _this$props$showSearc = _this.props.showSearch,
        showSearch = _this$props$showSearc === void 0 ? true : _this$props$showSearc,
        filter = _this.state.filter;
      if ('GoPro' !== activeTab) {
        if (!activeTabName || !_this.state.loaded[activeTabName]) {
          return 'Loading';
        }
        if (activeTab) {
          activeTab.icons = _this.getActiveTabIcons(activeTab);
        }
      }
      var selected = _this.getSelected();
      return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
        id: "elementor-icons-manager__sidebar",
        className: 'elementor-templates-modal__sidebar'
      }, /*#__PURE__*/_react.default.createElement("div", {
        id: "elementor-icons-manager__tab-links"
      }, _this.getIconTabsLinks(), _this.getUploadCustomButton(), _this.getIconTabsLinks(false))), /*#__PURE__*/_react.default.createElement("div", {
        id: "elementor-icons-manager__main",
        className: 'elementor-templates-modal__content'
      }, 'GoPro' === activeTabName ? /*#__PURE__*/_react.default.createElement(_iconsGoPro.default, null) : /*#__PURE__*/_react.default.createElement(_react.Fragment, null, showSearch ? _this.getSearchHTML() : '', /*#__PURE__*/_react.default.createElement("div", {
        id: "elementor-icons-manager__tab__wrapper",
        ref: _this.scrollViewRef
      }, /*#__PURE__*/_react.default.createElement("div", {
        id: "elementor-icons-manager__tab__title"
      }, activeTab.label), /*#__PURE__*/_react.default.createElement("div", {
        id: "elementor-icons-manager__tab__content_wrapper"
      }, /*#__PURE__*/_react.default.createElement("input", {
        type: "hidden",
        name: "icon_value",
        id: "icon_value",
        value: selected.value
      }), /*#__PURE__*/_react.default.createElement("input", {
        type: "hidden",
        name: "icon_type",
        id: "icon_type",
        value: selected.library
      }), _this.state.loaded[activeTab.name] ? /*#__PURE__*/_react.default.createElement(_tab.default, (0, _extends2.default)({
        setSelected: _this.setSelected,
        selected: selected,
        filter: filter,
        key: activeTab.name,
        parentRef: _this.scrollViewRef
      }, activeTab)) : 'Loading')))));
    });
    return _this;
  }
  (0, _inherits2.default)(IconsManager, _Component);
  return (0, _createClass2.default)(IconsManager, [{
    key: "updateLoaded",
    value: function updateLoaded(libraryName) {
      var loaded = this.state.loaded;
      loaded[libraryName] = true;
      this.setState({
        loaded: loaded
      });
    }
  }, {
    key: "isNativeTab",
    value: function isNativeTab(tab) {
      return ('all' === tab.name || 'recommended' === tab.name || 'fa-' === tab.name.substr(0, 3)) && tab.native;
    }
  }, {
    key: "getUploadCustomButton",
    value: function getUploadCustomButton() {
      var _this2 = this;
      var onClick = function onClick() {
        if ('GoPro' === _this2.state.activeTab) {
          return;
        }
        _this2.setState({
          activeTab: 'GoPro'
        });
      };
      if (this.props.customIconsURL) {
        onClick = function onClick() {
          window.open(_this2.props.customIconsURL, '_blank');
        };
      }
      return /*#__PURE__*/_react.default.createElement("div", {
        id: "elementor-icons-manager__upload"
      }, /*#__PURE__*/_react.default.createElement("div", {
        id: "elementor-icons-manager__upload__title"
      }, __('My Libraries', 'elementor')), /*#__PURE__*/_react.default.createElement("button", {
        id: "elementor-icons-manager__upload__button",
        className: "elementor-button",
        onClick: onClick
      }, __('Upload', 'elementor')));
    }
  }, {
    key: "getSearchHTML",
    value: function getSearchHTML() {
      return /*#__PURE__*/_react.default.createElement("div", {
        id: "elementor-icons-manager__search"
      }, /*#__PURE__*/_react.default.createElement("input", {
        placeholder: 'Filter by name...',
        onInput: this.handleSearch
      }), /*#__PURE__*/_react.default.createElement("i", {
        className: 'eicon-search'
      }));
    }
  }]);
}(_react.Component);
var _default = exports["default"] = IconsManager;
var renderIconManager = exports.renderIconManager = function renderIconManager(props) {
  var containerElement = document.querySelector('#elementor-icons-manager-modal .dialog-content');
  return _react2.default.render(/*#__PURE__*/_react.default.createElement(IconsManager, (0, _extends2.default)({}, props, {
    containerElement: containerElement
  })), containerElement);
};
IconsManager.propTypes = {
  activeTab: _propTypes.default.any,
  customIconsURL: _propTypes.default.string,
  icons: _propTypes.default.any,
  loaded: _propTypes.default.any,
  modalView: _propTypes.default.any,
  recommended: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.object]),
  selected: _propTypes.default.any,
  showSearch: _propTypes.default.bool
};

/***/ }),

/***/ "../assets/dev/js/editor/components/icons-manager/components/icon.js":
/*!***************************************************************************!*\
  !*** ../assets/dev/js/editor/components/icons-manager/components/icon.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports["default"] = void 0;
var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.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 _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
var Icon = exports["default"] = /*#__PURE__*/function (_Component) {
  function Icon() {
    var _this;
    (0, _classCallCheck2.default)(this, Icon);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, Icon, [].concat(args));
    (0, _defineProperty2.default)(_this, "setSelected", function () {
      _this.props.setSelectedHandler({
        value: _this.props.data.displayPrefix + ' ' + _this.props.data.selector,
        library: _this.props.library
      });
    });
    (0, _defineProperty2.default)(_this, "render", function () {
      return (
        /*#__PURE__*/
        // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
        _react.default.createElement("div", {
          className: _this.props.containerClass,
          key: _this.props.keyID,
          onClick: _this.setSelected,
          filter: _this.props.data.filter
        }, /*#__PURE__*/_react.default.createElement("div", {
          className: "elementor-icons-manager__tab__item__content"
        }, /*#__PURE__*/_react.default.createElement("i", {
          className: 'elementor-icons-manager__tab__item__icon ' + _this.props.className
        }), /*#__PURE__*/_react.default.createElement("div", {
          className: 'elementor-icons-manager__tab__item__name',
          title: _this.props.data.name
        }, _this.props.data.name)))
      );
    });
    return _this;
  }
  (0, _inherits2.default)(Icon, _Component);
  return (0, _createClass2.default)(Icon);
}(_react.Component);
Icon.propTypes = {
  className: _propTypes.default.string,
  containerClass: _propTypes.default.string,
  data: _propTypes.default.object,
  keyID: _propTypes.default.string,
  library: _propTypes.default.string,
  selector: _propTypes.default.string,
  setSelectedHandler: _propTypes.default.func
};

/***/ }),

/***/ "../assets/dev/js/editor/components/icons-manager/components/icons-go-pro.js":
/*!***********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/icons-manager/components/icons-go-pro.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");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports["default"] = void 0;
var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.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"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
var IconsGoPro = /*#__PURE__*/function (_Component) {
  function IconsGoPro() {
    var _this;
    (0, _classCallCheck2.default)(this, IconsGoPro);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, IconsGoPro, [].concat(args));
    (0, _defineProperty2.default)(_this, "render", function () {
      return /*#__PURE__*/_react.default.createElement("div", {
        id: "elementor-icons-manager__promotion"
      }, /*#__PURE__*/_react.default.createElement("i", {
        id: "elementor-icons-manager__promotion__icon",
        className: "eicon-nerd"
      }), /*#__PURE__*/_react.default.createElement("div", {
        id: "elementor-icons-manager__promotion__text"
      }, __('Become a Pro user to upload unlimited font icon folders to your website.', 'elementor')), /*#__PURE__*/_react.default.createElement("a", {
        href: elementor.config.icons.goProURL,
        id: "elementor-icons-manager__promotion__link",
        className: "elementor-button go-pro",
        target: "_blank",
        rel: "noopener noreferrer"
      }, __('Upgrade Now', 'elementor')));
    });
    return _this;
  }
  (0, _inherits2.default)(IconsGoPro, _Component);
  return (0, _createClass2.default)(IconsGoPro);
}(_react.Component);
var _default = exports["default"] = IconsGoPro;

/***/ }),

/***/ "../assets/dev/js/editor/components/icons-manager/components/tab.js":
/*!**************************************************************************!*\
  !*** ../assets/dev/js/editor/components/icons-manager/components/tab.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports["default"] = void 0;
var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.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 _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
var _iconList = _interopRequireDefault(__webpack_require__(/*! ./icon-list */ "../assets/dev/js/editor/components/icons-manager/components/icon-list.js"));
var _icon = _interopRequireDefault(__webpack_require__(/*! ./icon */ "../assets/dev/js/editor/components/icons-manager/components/icon.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
var Tab = /*#__PURE__*/function (_Component) {
  function Tab() {
    var _this;
    (0, _classCallCheck2.default)(this, Tab);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, Tab, [].concat(args));
    (0, _defineProperty2.default)(_this, "componentDidMount", function () {
      if (_this.props.selected && _this.props.selected.value) {
        setTimeout(function () {
          var element = document.querySelector('.elementor-selected');
          if (element) {
            element.scrollIntoView(false);
          }
        }, 0);
      }
    });
    (0, _defineProperty2.default)(_this, "handleFullIconList", function () {
      var fullIconList = [];
      Object.entries(_this.props.icons).forEach(function (library) {
        if ('recommended' !== library[0]) {
          fullIconList = [].concat((0, _toConsumableArray2.default)(fullIconList), (0, _toConsumableArray2.default)(_this.getIconsOfType(library[0], library[1])));
        }
      });
      return fullIconList.sort(function (a, b) {
        return a.filter === b.filter ? 0 : +(a.filter > b.filter) || -1;
      });
    });
    (0, _defineProperty2.default)(_this, "getLibrary", function (libraryName) {
      var icons = elementor.config.icons.libraries.filter(function (library) {
        return libraryName === library.name;
      });
      return icons;
    });
    (0, _defineProperty2.default)(_this, "handleRecommendedList", function () {
      var recommendedIconList = [];
      Object.entries(_this.props.icons).forEach(function (library) {
        var iconLibrary = _this.getLibrary(library[0]),
          iconsOfType = iconLibrary[0].icons,
          recommendedIconsOfType = {};
        library[1].forEach(function (iconName) {
          if (iconsOfType[iconName]) {
            recommendedIconsOfType[iconName] = iconsOfType[iconName];
          }
        });
        recommendedIconList = [].concat((0, _toConsumableArray2.default)(recommendedIconList), (0, _toConsumableArray2.default)(_this.getIconsOfType(library[0], recommendedIconsOfType)));
      });
      return recommendedIconList;
    });
    (0, _defineProperty2.default)(_this, "getIconsComponentList", function () {
      var iconsToShow = [];
      var _this$props = _this.props,
        name = _this$props.name,
        icons = _this$props.icons,
        filter = _this$props.filter;
      switch (name) {
        case 'all':
          iconsToShow = _this.handleFullIconList();
          break;
        case 'recommended':
          iconsToShow = _this.handleRecommendedList();
          break;
        default:
          iconsToShow = _this.getIconsOfType(name, icons);
          break;
      }
      if (filter) {
        iconsToShow = Object.values(iconsToShow).filter(function (icon) {
          return icon.props.data.name.toLowerCase().indexOf(filter) > -1;
        });
      }
      return iconsToShow;
    });
    (0, _defineProperty2.default)(_this, "render", function () {
      var icons = _this.getIconsComponentList();
      var selectedIndex = -1;
      var _iterator = _createForOfIteratorHelper(icons.entries()),
        _step;
      try {
        for (_iterator.s(); !(_step = _iterator.n()).done;) {
          var _step$value = (0, _slicedToArray2.default)(_step.value, 2),
            index = _step$value[0],
            icon = _step$value[1];
          if (icon.props.containerClass.includes('elementor-selected')) {
            selectedIndex = index;
            break;
          }
        }
      } catch (err) {
        _iterator.e(err);
      } finally {
        _iterator.f();
      }
      return /*#__PURE__*/_react.default.createElement(_iconList.default, {
        selectedIndex: selectedIndex,
        items: icons,
        parentRef: _this.props.parentRef
      });
    });
    return _this;
  }
  (0, _inherits2.default)(Tab, _Component);
  return (0, _createClass2.default)(Tab, [{
    key: "getIconsOfType",
    value: function getIconsOfType(type, icons) {
      var _this2 = this;
      var _this$props2 = this.props,
        selected = _this$props2.selected,
        filter = _this$props2.filter;
      return Object.entries(icons).map(function (icon) {
        var iconData = icon[1],
          iconName = icon[0],
          className = iconData.displayPrefix + ' ' + iconData.selector;
        var containerClass = 'elementor-icons-manager__tab__item';
        if (selected.value === className) {
          containerClass += ' elementor-selected';
        }
        var key = containerClass + type + '-' + iconName + filter;
        return /*#__PURE__*/_react.default.createElement(_icon.default, {
          key: key,
          library: type,
          keyID: iconName,
          containerClass: containerClass,
          className: className,
          setSelectedHandler: _this2.props.setSelected,
          data: iconData
        });
      });
    }
  }]);
}(_react.Component);
Tab.propTypes = {
  data: _propTypes.default.any,
  filter: _propTypes.default.any,
  icons: _propTypes.default.object,
  name: _propTypes.default.string,
  selected: _propTypes.default.object,
  setSelected: _propTypes.default.func,
  parentRef: _propTypes.default.any
};
var _default = exports["default"] = Tab;

/***/ }),

/***/ "../assets/dev/js/editor/components/icons-manager/icons-manager.js":
/*!*************************************************************************!*\
  !*** ../assets/dev/js/editor/components/icons-manager/icons-manager.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 _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 _modalLayout = _interopRequireDefault(__webpack_require__(/*! ./modal-layout */ "../assets/dev/js/editor/components/icons-manager/modal-layout.js"));
var _iconManager = __webpack_require__(/*! ./components/icon-manager */ "../assets/dev/js/editor/components/icons-manager/components/icon-manager.js");
var _iconLibrary = _interopRequireDefault(__webpack_require__(/*! ./classes/icon-library */ "../assets/dev/js/editor/components/icons-manager/classes/icon-library.js"));
var _store = _interopRequireDefault(__webpack_require__(/*! ./classes/store */ "../assets/dev/js/editor/components/icons-manager/classes/store.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; })(); }
var _default = exports["default"] = /*#__PURE__*/function (_elementorModules$Mod) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _elementorModules$Mod);
  return (0, _createClass2.default)(_default, [{
    key: "onInit",
    value: function onInit() {
      // Init icon library helper
      this.library = new _iconLibrary.default();
      // Init Icon library Storage helper
      this.store = new _store.default();
      // Fetch fa4 to fa5 migration data
      elementor.helpers.fetchFa4ToFa5Mapping();
      this.cache = {};
    }
  }, {
    key: "getLayout",
    value: function getLayout() {
      var _this = this;
      if (!this.layout) {
        this.layout = new _modalLayout.default();
        var layoutModal = this.layout.getModal();
        layoutModal.addButton({
          name: 'insert_icon',
          text: __('Insert', 'elementor'),
          classes: 'elementor-button e-primary',
          callback: function callback() {
            _this.updateControlValue();
            _this.unMountIconManager();
          }
        });
        layoutModal.on('show', this.onPickerShow.bind(this)).on('hide', this.unMountIconManager.bind(this));
      }
      return this.layout;
    }
  }, {
    key: "getDefaultSettings",
    value: function getDefaultSettings() {
      return {
        selectedIcon: {}
      };
    }
  }, {
    key: "unMountIconManager",
    value: function unMountIconManager() {
      this.unmount();
    }
  }, {
    key: "loadIconLibraries",
    value: function loadIconLibraries() {
      if (!this.cache.loaded) {
        elementor.config.icons.libraries.forEach(function (library) {
          if ('all' === library.name) {
            return;
          }
          elementor.iconManager.library.initIconType(library);
        });
        this.cache.loaded = true;
      }
    }
  }, {
    key: "onPickerShow",
    value: function onPickerShow() {
      var controlView = this.getSettings('controlView'),
        loaded = {
          GoPro: true
        },
        iconManagerConfig = {
          recommended: controlView.model.get('recommended') || false
        };
      var selected = controlView.getControlValue(),
        icons = elementor.config.icons.libraries;
      if (!selected.library || !selected.value) {
        selected = {
          value: '',
          library: ''
        };
      }
      iconManagerConfig.selected = selected;
      this.setSettings('selectedIcon', selected);
      if (iconManagerConfig.recommended) {
        var hasRecommended = false;
        icons.forEach(function (library, index) {
          if ('recommended' === library.name) {
            hasRecommended = true;
            icons[index].icons = iconManagerConfig.recommended;
          }
        });
        if (!hasRecommended) {
          icons.unshift({
            name: 'recommended',
            label: 'Recommended',
            icons: iconManagerConfig.recommended,
            labelIcon: 'eicon-star-o',
            native: true
          });
        }
      } else {
        icons = icons.filter(function (library) {
          return 'recommended' !== library.name;
        });
      }
      icons.forEach(function (tab, index) {
        if (-1 === ['all', 'recommended'].indexOf(tab.name)) {
          elementor.iconManager.library.initIconType(tab, function (lib) {
            icons[index] = lib;
          });
        }
        loaded[tab.name] = true;
      });
      iconManagerConfig.loaded = loaded;
      iconManagerConfig.icons = icons;

      // Set active tab
      var activeTab = selected.library || icons[0].name;
      if ('svg' === selected.library) {
        activeTab = icons[0].name;
      }

      // Selected Library exists
      if (!Object.keys(icons).some(function (library) {
        return library === activeTab;
      })) {
        activeTab = icons[0].name;
      }

      // Show recommended tab if selected from it
      if (iconManagerConfig.recommended && '' !== selected.library && '' !== selected.value && Object.prototype.hasOwnProperty.call(iconManagerConfig.recommended, selected.library)) {
        var iconLibrary = icons.filter(function (library) {
          return selected.library === library.name;
        });
        var selectedIconName = selected.value.replace(iconLibrary[0].displayPrefix + ' ' + iconLibrary[0].prefix, '');
        if (iconManagerConfig.recommended[selected.library].some(function (icon) {
          return -1 < icon.indexOf(selectedIconName);
        })) {
          activeTab = icons[0].name;
        }
      }
      iconManagerConfig.customIconsURL = elementor.config.customIconsURL;
      iconManagerConfig.activeTab = activeTab;
      var _renderIconManager = (0, _iconManager.renderIconManager)(iconManagerConfig),
        unmount = _renderIconManager.unmount;
      this.unmount = unmount;
    }
  }, {
    key: "updateControlValue",
    value: function updateControlValue() {
      var settings = this.getSettings();
      settings.controlView.setValue(settings.selectedIcon);
      settings.controlView.applySavedValue();
    }
  }, {
    key: "show",
    value: function show(options) {
      this.setSettings('controlView', options.view);
      this.getLayout().showModal(options);
    }
  }]);
}(elementorModules.Module);

/***/ }),

/***/ "../assets/dev/js/editor/components/icons-manager/modal-layout.js":
/*!************************************************************************!*\
  !*** ../assets/dev/js/editor/components/icons-manager/modal-layout.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 _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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _layout = _interopRequireDefault(__webpack_require__(/*! elementor-common/views/modal/layout */ "../core/common/assets/js/views/modal/layout.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var _default = exports["default"] = /*#__PURE__*/function (_BaseModalLayout) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _BaseModalLayout);
  return (0, _createClass2.default)(_default, [{
    key: "getModalOptions",
    value: function getModalOptions() {
      return {
        id: 'elementor-icons-manager-modal'
      };
    }
  }, {
    key: "getLogoOptions",
    value: function getLogoOptions() {
      return {
        title: __('Icon Library', 'elementor')
      };
    }
  }, {
    key: "initialize",
    value: function initialize() {
      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }
      _superPropGet(_default, "initialize", this, 3)(args);
      this.showLogo();
    }
  }]);
}(_layout.default);

/***/ }),

/***/ "../assets/dev/js/editor/components/preview/commands/drop.js":
/*!*******************************************************************!*\
  !*** ../assets/dev/js/editor/components/preview/commands/drop.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.Drop = 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"));
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; })(); }
var Drop = exports.Drop = /*#__PURE__*/function (_$e$modules$editor$Co) {
  function Drop() {
    (0, _classCallCheck2.default)(this, Drop);
    return _callSuper(this, Drop, arguments);
  }
  (0, _inherits2.default)(Drop, _$e$modules$editor$Co);
  return (0, _createClass2.default)(Drop, [{
    key: "validateArgs",
    value: function validateArgs() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      this.requireContainer(args);
      this.requireArgumentType('model', 'object', args);
    }
  }, {
    key: "apply",
    value: function apply() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers,
        _args$options = args.options,
        options = _args$options === void 0 ? {} : _args$options,
        result = [];
      containers.forEach(function (container) {
        result.push(container.view.createElementFromModel(args.model, options));
      });
      if (1 === containers.length) {
        return result[0];
      }
      return result;
    }
  }]);
}($e.modules.editor.CommandContainerBase);

/***/ }),

/***/ "../assets/dev/js/editor/components/preview/commands/index.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/components/preview/commands/index.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Drop", ({
  enumerable: true,
  get: function get() {
    return _drop.Drop;
  }
}));
Object.defineProperty(exports, "Reload", ({
  enumerable: true,
  get: function get() {
    return _reload.Reload;
  }
}));
var _drop = __webpack_require__(/*! ./drop */ "../assets/dev/js/editor/components/preview/commands/drop.js");
var _reload = __webpack_require__(/*! ./reload */ "../assets/dev/js/editor/components/preview/commands/reload.js");

/***/ }),

/***/ "../assets/dev/js/editor/components/preview/commands/reload.js":
/*!*********************************************************************!*\
  !*** ../assets/dev/js/editor/components/preview/commands/reload.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.Reload = 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"));
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; })(); }
var Reload = exports.Reload = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Reload() {
    (0, _classCallCheck2.default)(this, Reload);
    return _callSuper(this, Reload, arguments);
  }
  (0, _inherits2.default)(Reload, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Reload, [{
    key: "apply",
    value: function apply() {
      elementor.reloadPreview();
    }
  }]);
}($e.modules.CommandBase);

/***/ }),

/***/ "../assets/dev/js/editor/components/preview/component.js":
/*!***************************************************************!*\
  !*** ../assets/dev/js/editor/components/preview/component.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../assets/dev/js/editor/components/preview/commands/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
var Component = exports["default"] = /*#__PURE__*/function (_$e$modules$Component) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _$e$modules$Component);
  return (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'preview';
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }
  }]);
}($e.modules.ComponentBase);

/***/ }),

/***/ "../assets/dev/js/editor/components/selection/manager.js":
/*!***************************************************************!*\
  !*** ../assets/dev/js/editor/components/selection/manager.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.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')} Container
 */
var Manager = exports["default"] = /*#__PURE__*/function (_elementorModules$edi) {
  /**
   * Manager constructor.
   *
   * @return {Manager} manager
   */
  function Manager() {
    var _this;
    (0, _classCallCheck2.default)(this, Manager);
    _this = _callSuper(this, Manager);

    // Using a Proxy in order to use update methods only once on external invocations, but internally the `add` or
    // `remove` methods may be executed many times, when update methods will be used only once.
    /**
     * Selected elements.
     *
     * The list of the selected elements.
     *
     * @type {{}}
     */
    (0, _defineProperty2.default)(_this, "elements", {});
    /**
     * Selected elements type.
     *
     * Represents the common type of multiple selected elements, or false when the selected elements are of different
     * types.
     *
     * @type {string|boolean}
     */
    (0, _defineProperty2.default)(_this, "type", false);
    return (0, _possibleConstructorReturn2.default)(_this, new Proxy(_this, {
      get: function get(target, prop) {
        if (['add', 'remove'].includes(prop)) {
          return function () {
            if (!target.isAllowed()) {
              return;
            }
            var result = target[prop].apply(target, arguments);
            target.updateType();
            target.updateSortable();
            target.updatePanelPage();
            target.updateNavigator();
            return result;
          };
        }
        return Reflect.get.apply(Reflect, arguments);
      }
    }));
  }

  /**
   * Get selection elements.
   *
   * Get the list of selected elements as an array of containers. If a fallback element container specified, it will
   * be returned when there are no selected elements.
   *
   * @param {Container[]|Container} fallback
   * @return {Container[]} selection elements
   */
  (0, _inherits2.default)(Manager, _elementorModules$edi);
  return (0, _createClass2.default)(Manager, [{
    key: "getElements",
    value: function getElements() {
      var fallback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
      var result = Object.values(this.elements);
      if (!result.length && fallback) {
        result = Array.isArray(fallback) ? fallback : [fallback];
      }
      return result;
    }

    /**
     * Add elements to selection.
     *
     * Add new elements to selection by their container, and clear the currently selected elements unless appending is
     * active, in which case the new elements are just added to the current selection.
     *
     * @param {Container[]|Container} containers
     * @param {boolean}               append
     */
  }, {
    key: "add",
    value: function add(containers) {
      var append = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
      if (!this.isAllowed()) {
        return;
      }
      containers = Array.isArray(containers) ? containers : [containers];

      // If command/ctrl+click not clicked, clear selected elements.
      if (!append) {
        this.remove([], true);
      }
      var _iterator = _createForOfIteratorHelper(containers),
        _step;
      try {
        for (_iterator.s(); !(_step = _iterator.n()).done;) {
          var container = _step.value;
          this.elements[container.id] = container;
          container.view.select();
        }
      } catch (err) {
        _iterator.e(err);
      } finally {
        _iterator.f();
      }
    }

    /**
     * Remove elements from selection.
     *
     * Remove elements from selection by their container, unless the parameter for clearing all selected elements is
     * active, in which case the the whole selection is cleared.
     *
     * @param {Container[]|Container} containers
     * @param {boolean}               all
     */
  }, {
    key: "remove",
    value: function remove(containers) {
      var all = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
      if (!this.isAllowed()) {
        return;
      }
      containers = Array.isArray(containers) ? containers : [containers];
      if (all) {
        containers = this.getElements();
      }
      var _iterator2 = _createForOfIteratorHelper(containers),
        _step2;
      try {
        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
          var container = _step2.value;
          delete this.elements[container.id];
          container.view.deselect();
        }
      } catch (err) {
        _iterator2.e(err);
      } finally {
        _iterator2.f();
      }
    }

    /**
     * Does element selected.
     *
     * Check whether an element container exists in the selected elements.
     *
     * @param {Container} container
     * @return {boolean} true if the container exists in the selected elements
     */
  }, {
    key: "has",
    value: function has(container) {
      return this.getElements().includes(container);
    }

    /**
     * Update selected elements type.
     *
     * Resolve the common type of all selected elements and assign it as class property. When the selected objects are
     * of different types, `false` is assigned.
     */
  }, {
    key: "updateType",
    value: function updateType() {
      var elements = this.getElements();
      this.type = Boolean(elements.length) && elements.reduce(function (previous, current) {
        if (previous === current.type) {
          return current.type;
        }
        return false;
      }, elements[0].type);
    }

    /**
     * Update sortable state.
     *
     * In case more than one element is selected, currently sorting supposed to be disabled, and vice-versa.
     */
  }, {
    key: "updateSortable",
    value: function updateSortable() {
      elementor.toggleSortableState(!this.isMultiple());
    }

    /**
     * Update the panel page.
     *
     * Selected elements affect the panel panel in a way that when element is selected - its settings page is displayed,
     * and when the element is blurred (unfocused) - the the default page opened. When more than one element selected,
     * the default page should appear.
     */
  }, {
    key: "updatePanelPage",
    value: function updatePanelPage() {
      var elements = this.getElements();
      if (1 === elements.length) {
        $e.run('panel/editor/open', {
          model: elements[0].model,
          view: elements[0].view
        });
      } else {
        $e.internal('panel/open-default', {
          autoFocusSearch: false
        });
      }
    }

    /**
     * Update navigator selections.
     *
     * Any change in the document selected elements should be reflected in the navigator, this method is responsible for
     * updating the navigator.
     */
  }, {
    key: "updateNavigator",
    value: function updateNavigator() {
      if (!$e.components.get('document/elements').utils.showNavigator()) {
        return;
      }
      elementor.navigator.getLayout().elements.currentView.recursiveChildInvoke('updateSelection');
    }

    /**
     * Is multiple selection.
     *
     * Check whether multiple elements were selected.
     *
     * @return {boolean} true if multiple elements were selected
     */
  }, {
    key: "isMultiple",
    value: function isMultiple() {
      return this.getElements().length > 1;
    }

    /**
     * Is selection of same type.
     *
     * Check whether the selected elements are of same type.
     *
     * @return {boolean} true if the selected elements are of same type
     */
  }, {
    key: "isSameType",
    value: function isSameType() {
      return !this.getElements().length || Boolean(this.type);
    }
  }, {
    key: "isAllowed",
    value: function isAllowed() {
      return 'edit' === elementor.channels.dataEditMode.request('activeMode');
    }
  }]);
}(elementorModules.editor.utils.Module);

/***/ }),

/***/ "../assets/dev/js/editor/components/settings/base/manager.js":
/*!*******************************************************************!*\
  !*** ../assets/dev/js/editor/components/settings/base/manager.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 _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
var ControlsCSSParser = __webpack_require__(/*! elementor-editor-utils/controls-css-parser */ "../assets/dev/js/editor/utils/controls-css-parser.js");
module.exports = elementorModules.ViewModule.extend({
  model: null,
  hasChange: false,
  changeCallbacks: {},
  addChangeCallback: function addChangeCallback(attribute, callback) {
    this.changeCallbacks[attribute] = callback;
  },
  bindEvents: function bindEvents() {
    elementor.on('document:loaded', this.onElementorDocumentLoaded);
    this.model.on('change', this.onModelChange);
  },
  unbindEvents: function unbindEvents() {
    elementor.off('document:loaded', this.onElementorDocumentLoaded);
  },
  addPanelPage: function addPanelPage() {
    var name = this.getSettings('name');
    elementor.getPanelView().addPage(name + '_settings', {
      view: elementor.settings.panelPages[name] || elementor.settings.panelPages.base,
      title: this.getSettings('panelPage.title'),
      options: {
        editedView: this.getEditedView(),
        model: this.model,
        controls: this.model.controls,
        name: name
      }
    });
  },
  getContainerType: function getContainerType() {
    return this.getSettings('name') + '_settings';
  },
  /**
   * @deprecated since 3.7.0, use `getContainerType()` instead.
   */
  getContainerId: function getContainerId() {
    elementorDevTools.deprecation.deprecated('getContainerId()', '3.7.0', 'getContainerType()');
    return this.getContainerType();
  },
  // Emulate an element view/model structure with the parts needed for a container.
  getEditedView: function getEditedView() {
    var documentElementType = elementor.elementsManager.getElementTypeClass('document'),
      ModelClass = documentElementType.getModel(),
      type = this.getContainerType(),
      editModel = new ModelClass({
        id: type,
        elType: type,
        settings: this.model
      });
    var container = new elementorModules.editor.Container({
      type: type,
      id: type,
      model: editModel,
      settings: editModel.get('settings'),
      view: false,
      parent: false,
      label: this.getSettings('panelPage').title,
      controls: this.model.controls,
      document: this.getDocument(),
      renderer: false
    });
    return {
      getContainer: function getContainer() {
        return container;
      },
      getEditModel: function getEditModel() {
        return editModel;
      },
      model: editModel,
      container: container
    };
  },
  getDocument: function getDocument() {
    return false;
  },
  updateStylesheet: function updateStylesheet(keepOldEntries) {
    var controlsCSS = this.getControlsCSS();
    if (!keepOldEntries) {
      controlsCSS.stylesheet.empty();
    }
    this.model.handleRepeaterData(this.model.attributes);
    controlsCSS.addStyleRules(this.model.getStyleControls(), this.model.attributes, this.model.controls, [/{{WRAPPER}}/g], [this.getSettings('cssWrapperSelector')]);
    controlsCSS.addStyleToDocument({
      // Ensures we don't override default global style
      at: 'before',
      of: '#elementor-style-e-global-style'
    });
  },
  initModel: function initModel() {
    this.model = new elementorModules.editor.elements.models.BaseSettings(this.getSettings('settings'), {
      controls: this.getSettings('controls')
    });
  },
  getStyleId: function getStyleId() {
    return this.getSettings('name');
  },
  initControlsCSSParser: function initControlsCSSParser() {
    var controlsCSS;
    this.destroyControlsCSS = function () {
      controlsCSS.removeStyleFromDocument();
    };
    this.getControlsCSS = function () {
      if (!controlsCSS) {
        controlsCSS = new ControlsCSSParser({
          id: this.getStyleId(),
          settingsModel: this.model,
          context: this.getEditedView()
        });
      }
      return controlsCSS;
    };
  },
  getDataToSave: function getDataToSave(data) {
    return data;
  },
  save: function save(callback) {
    var _this = this;
    return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
      var self, settings, data;
      return _regenerator.default.wrap(function (_context) {
        while (1) switch (_context.prev = _context.next) {
          case 0:
            self = _this;
            if (self.hasChange) {
              _context.next = 1;
              break;
            }
            return _context.abrupt("return");
          case 1:
            settings = _this.model.toJSON({
              remove: ['default']
            }), data = _this.getDataToSave({
              data: settings
            });
            NProgress.start();
            return _context.abrupt("return", elementorCommon.ajax.addRequest('save_' + _this.getSettings('name') + '_settings', {
              data: data,
              success: function success() {
                NProgress.done();
                self.setSettings('settings', settings);
                self.hasChange = false;
                if (callback) {
                  callback.apply(self, arguments);
                }
              },
              error: function error() {
                // eslint-disable-next-line no-alert
                alert('An error occurred.');
              }
            }));
          case 2:
          case "end":
            return _context.stop();
        }
      }, _callee);
    }))();
  },
  onInit: function onInit() {
    this.initModel();
    this.initControlsCSSParser();
    this.addPanelMenuItem();
    this.debounceSave = _.debounce(this.save, 3000);
    elementorModules.ViewModule.prototype.onInit.apply(this, arguments);
  },
  /**
   * BC for custom settings without a JS component.
   */
  addPanelMenuItem: function addPanelMenuItem() {
    var menuSettings = this.getSettings('panelPage.menu');
    if (!menuSettings) {
      return;
    }
    var namespace = 'panel/' + this.getSettings('name') + '-settings',
      menuItemOptions = {
        icon: menuSettings.icon,
        title: this.getSettings('panelPage.title'),
        type: 'page',
        pageName: this.getSettings('name') + '_settings',
        callback: function callback() {
          return $e.route("".concat(namespace, "/settings"));
        }
      };
    $e.bc.ensureTab(namespace, 'settings', menuItemOptions.pageName);
    elementor.modules.layouts.panel.pages.menu.Menu.addItem(menuItemOptions, 'settings', menuSettings.beforeItem);
  },
  onModelChange: function onModelChange(model) {
    var self = this;
    self.hasChange = true;
    this.getControlsCSS().stylesheet.empty();
    _.each(model.changed, function (value, key) {
      if (self.changeCallbacks[key]) {
        self.changeCallbacks[key].call(self, value);
      }
    });
    self.updateStylesheet(true);
    self.debounceSave();
  },
  onElementorDocumentLoaded: function onElementorDocumentLoaded() {
    this.updateStylesheet();
    this.addPanelPage();
  },
  destroy: function destroy() {
    this.unbindEvents();
    this.model.destroy();
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/settings/base/panel.js":
/*!*****************************************************************!*\
  !*** ../assets/dev/js/editor/components/settings/base/panel.js ***!
  \*****************************************************************/
/***/ ((module) => {

"use strict";


module.exports = elementorModules.editor.views.ControlsStack.extend({
  id: function id() {
    return 'elementor-panel-' + this.getOption('name') + '-settings';
  },
  getTemplate: function getTemplate() {
    return '#tmpl-elementor-panel-' + this.getOption('name') + '-settings';
  },
  childViewContainer: function childViewContainer() {
    return '#elementor-panel-' + this.getOption('name') + '-settings-controls';
  },
  childViewOptions: function childViewOptions() {
    return {
      container: this.getOption('editedView').getContainer()
    };
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/settings/editor-preferences/manager.js":
/*!*********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/settings/editor-preferences/manager.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 _manager = _interopRequireDefault(__webpack_require__(/*! ../base/manager */ "../assets/dev/js/editor/components/settings/base/manager.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; })(); }
var _default = exports["default"] = /*#__PURE__*/function (_BaseManager) {
  function _default() {
    var _this;
    (0, _classCallCheck2.default)(this, _default);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, _default, [].concat(args));
    _this.changeCallbacks = {
      ui_theme: _this.onUIThemeChanged,
      panel_width: _this.onPanelWidthChanged,
      edit_buttons: _this.onEditButtonsChanged,
      show_hidden_elements: _this.onShowHiddenElementsChange,
      show_launchpad_checklist: _this.toggleChecklistIconVisibility
    };
    return _this;
  }
  (0, _inherits2.default)(_default, _BaseManager);
  return (0, _createClass2.default)(_default, [{
    key: "getDefaultSettings",
    value: function getDefaultSettings() {
      return {
        darkModeLinkID: 'elementor-editor-dark-mode-css'
      };
    }
  }, {
    key: "toggleChecklistIconVisibility",
    value: function toggleChecklistIconVisibility(switcherValue) {
      var shouldShow = 'yes' === switcherValue;
      this.addMixpanelTrackingChecklist(shouldShow);
      $e.run('checklist/toggle-icon', shouldShow);
    }
  }, {
    key: "onUIThemeChanged",
    value: function onUIThemeChanged(newValue) {
      var $lightUi = jQuery('#e-theme-ui-light-css');
      var $darkUi = jQuery('#e-theme-ui-dark-css');
      if ('auto' === newValue) {
        $lightUi.attr('media', '(prefers-color-scheme: light)');
        $darkUi.attr('media', '(prefers-color-scheme: dark)');
        return;
      }
      if ('light' === newValue) {
        $lightUi.attr('media', 'all');
        $darkUi.attr('media', 'none');
      } else {
        $lightUi.attr('media', 'none');
        $darkUi.attr('media', 'all');
      }
    }
  }, {
    key: "onPanelWidthChanged",
    value: function onPanelWidthChanged(newValue) {
      elementor.panel.saveSize({
        width: newValue.size + newValue.unit
      });
      elementor.panel.setSize();
    }
  }, {
    key: "onEditButtonsChanged",
    value: function onEditButtonsChanged() {
      // Let the button change before the high-performance action of rendering the entire page
      setTimeout(function () {
        return elementor.getPreviewView()._renderChildren();
      }, 300);
    }
  }, {
    key: "onShowHiddenElementsChange",
    value: function onShowHiddenElementsChange() {
      elementorFrontend.elements.$body.toggleClass('e-preview--show-hidden-elements');
    }
  }, {
    key: "addMixpanelTrackingChecklist",
    value: function addMixpanelTrackingChecklist(shouldShow) {
      var name = shouldShow ? 'checklistShow' : 'checklistHide';
      var postId = elementor.getPreviewContainer().document.config.id;
      var postTitle = elementor.getPreviewContainer().model.attributes.settings.attributes.post_title;
      var postTypeTitle = elementor.getPreviewContainer().document.config.post_type_title;
      var documentType = elementor.getPreviewContainer().document.config.type;
      return elementorCommon.eventsManager.dispatchEvent(elementorCommon.eventsManager.config.names.elementorEditor.userPreferences[name], {
        location: elementorCommon.eventsManager.config.locations.elementorEditor,
        secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.userPreferences,
        trigger: elementorCommon.eventsManager.config.triggers.toggleClick,
        element: elementorCommon.eventsManager.config.elements.toggle,
        postId: postId,
        postTitle: postTitle,
        postTypeTitle: postTypeTitle,
        documentType: documentType
      });
    }
  }]);
}(_manager.default);

/***/ }),

/***/ "../assets/dev/js/editor/components/settings/page/component.js":
/*!*********************************************************************!*\
  !*** ../assets/dev/js/editor/components/settings/page/component.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 _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 _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-editor/component-base */ "../assets/dev/js/editor/component-base.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; })(); }
var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _ComponentBase);
  return (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'panel/page-settings';
    }
  }, {
    key: "defaultTabs",
    value: function defaultTabs() {
      return {
        settings: {
          title: __('Settings', 'elementor')
        },
        style: {
          title: __('Style', 'elementor')
        },
        advanced: {
          title: __('Advanced', 'elementor')
        }
      };
    }
  }, {
    key: "renderTab",
    value: function renderTab(tab, args) {
      var activeControl = args.activeControl,
        _args$refresh = args.refresh,
        refresh = _args$refresh === void 0 ? false : _args$refresh;
      if (this.shouldRenderPage(tab) || refresh) {
        elementor.getPanelView().setPage('page_settings').activateTab(tab);
      }
      this.activateControl(activeControl);
    }
  }, {
    key: "shouldRenderPage",
    value: function shouldRenderPage(tab) {
      var _currentPanelView$get;
      var currentPanelView = elementor.getPanelView();
      var isSamePage = 'page_settings' === currentPanelView.getCurrentPageName();
      var isSameTab = tab === ((_currentPanelView$get = currentPanelView.getCurrentPageView()) === null || _currentPanelView$get === void 0 ? void 0 : _currentPanelView$get.activeTab);
      return !isSamePage || !isSameTab;
    }
  }, {
    key: "getTabsWrapperSelector",
    value: function getTabsWrapperSelector() {
      return '.elementor-panel-navigation';
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/components/settings/page/manager.js":
/*!*******************************************************************!*\
  !*** ../assets/dev/js/editor/components/settings/page/manager.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 _construct2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/construct */ "../node_modules/@babel/runtime/helpers/construct.js"));
var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
var _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../assets/dev/js/editor/components/settings/page/component.js"));
var _childrenArray = _interopRequireDefault(__webpack_require__(/*! elementor-editor/container/model/children-array */ "../assets/dev/js/editor/container/model/children-array.js"));
var BaseSettings = __webpack_require__(/*! elementor-editor/components/settings/base/manager */ "../assets/dev/js/editor/components/settings/base/manager.js");
module.exports = BaseSettings.extend({
  getStyleId: function getStyleId() {
    return this.getSettings('name') + '-' + elementor.documents.getCurrent().id;
  },
  onInit: function onInit() {
    BaseSettings.prototype.onInit.apply(this);
    $e.components.register(new _component.default({
      manager: this
    }));
  },
  save: function save() {},
  getDataToSave: function getDataToSave(data) {
    data.id = elementor.config.document.id;
    return data;
  },
  // Emulate an element view/model structure with the parts needed for a container.
  getEditedView: function getEditedView() {
    var _this = this;
    if (this.editedView) {
      return this.editedView;
    }
    var documentElementType = elementor.elementsManager.getElementTypeClass('document'),
      ModelClass = documentElementType.getModel(),
      type = this.getContainerType(),
      editModel = new ModelClass({
        id: type,
        elType: type,
        settings: this.model,
        elements: elementor.elements
      }),
      container = new elementorModules.editor.Container({
        type: type,
        id: editModel.id,
        model: editModel,
        settings: editModel.get('settings'),
        label: elementor.config.document.panel.title,
        controls: this.model.controls,
        children: (0, _construct2.default)(_childrenArray.default, (0, _toConsumableArray2.default)(elementor.elements || [])),
        parent: false,
        // Emulate a view that can render the style.
        renderer: {
          view: {
            lookup: function lookup() {
              return container;
            },
            renderOnChange: function renderOnChange() {
              return _this.updateStylesheet();
            },
            renderUI: function renderUI() {
              return _this.updateStylesheet();
            }
          }
        }
      });
    this.editedView = {
      getContainer: function getContainer() {
        return container;
      },
      getEditModel: function getEditModel() {
        return editModel;
      },
      model: editModel,
      container: container
    };
    return this.editedView;
  },
  getContainerType: function getContainerType() {
    return 'document';
  },
  /**
   * @deprecated since 3.7.0, use `getContainerType()` instead.
   */
  getContainerId: function getContainerId() {
    elementorDevTools.deprecation.deprecated('getContainerId()', '3.7.0', 'getContainerType()');
    return this.getContainerType();
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/settings/settings.js":
/*!***************************************************************!*\
  !*** ../assets/dev/js/editor/components/settings/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 _manager = _interopRequireDefault(__webpack_require__(/*! ./editor-preferences/manager */ "../assets/dev/js/editor/components/settings/editor-preferences/manager.js"));
module.exports = elementorModules.Module.extend({
  modules: {
    base: __webpack_require__(/*! elementor-editor/components/settings/base/manager */ "../assets/dev/js/editor/components/settings/base/manager.js"),
    page: __webpack_require__(/*! elementor-editor/components/settings/page/manager */ "../assets/dev/js/editor/components/settings/page/manager.js"),
    editorPreferences: _manager.default
  },
  panelPages: {
    base: __webpack_require__(/*! elementor-editor/components/settings/base/panel */ "../assets/dev/js/editor/components/settings/base/panel.js")
  },
  onInit: function onInit() {
    this.initSettings();
  },
  initSettings: function initSettings() {
    var self = this;
    _.each(elementor.config.settings, function (config, name) {
      var Manager = self.modules[name] || self.modules.base;
      self[name] = new Manager(config);
    });
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/behaviors/insert-template.js":
/*!****************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/behaviors/insert-template.js ***!
  \****************************************************************************************/
/***/ ((module) => {

"use strict";


var InsertTemplateHandler;
InsertTemplateHandler = Marionette.Behavior.extend({
  ui: {
    insertButton: '.elementor-template-library-template-insert'
  },
  events: {
    'click @ui.insertButton': 'onInsertButtonClick'
  },
  onRender: function onRender() {
    this.ui.insertButton.toggleClass('disabled', this.view.model.isLocked());
  },
  onInsertButtonClick: function onInsertButtonClick(e) {
    if ('locked' === this.view.model.get('status')) {
      e.preventDefault();
      e.stopPropagation();
      return;
    }
    var args = {
      model: this.view.model
    };
    this.ui.insertButton.addClass('elementor-disabled');
    var activeSource = args.model.get('source');

    /**
     * Filter template source.
     *
     * @param bool   isRemote     - If `true` the source is a remote source.
     * @param string activeSource - The current template source.
     */
    var isRemote = elementor.hooks.applyFilters('templates/source/is-remote', 'remote' === activeSource, activeSource);
    if (isRemote && !elementor.config.library_connect.is_connected) {
      $e.route('library/connect', args);
      return;
    }
    $e.run('library/insert-template', args);
  }
});
module.exports = InsertTemplateHandler;

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/collections/templates.js":
/*!************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/collections/templates.js ***!
  \************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var TemplateLibraryTemplateModel = __webpack_require__(/*! elementor-templates/models/template */ "../assets/dev/js/editor/components/template-library/models/template.js"),
  TemplateLibraryCollection;
TemplateLibraryCollection = Backbone.Collection.extend({
  model: TemplateLibraryTemplateModel
});
module.exports = TemplateLibraryCollection;

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/commands-data/index.js":
/*!**********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/commands-data/index.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Templates", ({
  enumerable: true,
  get: function get() {
    return _templates.Templates;
  }
}));
var _templates = __webpack_require__(/*! ./templates */ "../assets/dev/js/editor/components/template-library/commands-data/templates.js");

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/commands-data/templates.js":
/*!**************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/commands-data/templates.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"] = exports.Templates = 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"));
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; })(); }
var Templates = exports.Templates = /*#__PURE__*/function (_$e$modules$CommandDa) {
  function Templates() {
    (0, _classCallCheck2.default)(this, Templates);
    return _callSuper(this, Templates, arguments);
  }
  (0, _inherits2.default)(Templates, _$e$modules$CommandDa);
  return (0, _createClass2.default)(Templates, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return 'template-library/templates';
    }
  }]);
}($e.modules.CommandData);
var _default = exports["default"] = Templates;

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/commands/index.js":
/*!*****************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/commands/index.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "InsertTemplate", ({
  enumerable: true,
  get: function get() {
    return _insertTemplate.InsertTemplate;
  }
}));
Object.defineProperty(exports, "Open", ({
  enumerable: true,
  get: function get() {
    return _open.Open;
  }
}));
var _insertTemplate = __webpack_require__(/*! ./insert-template */ "../assets/dev/js/editor/components/template-library/commands/insert-template.js");
var _open = __webpack_require__(/*! ./open */ "../assets/dev/js/editor/components/template-library/commands/open.js");

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/commands/insert-template.js":
/*!***************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/commands/insert-template.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"] = exports.InsertTemplate = 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"));
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; })(); }
var InsertTemplate = exports.InsertTemplate = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function InsertTemplate() {
    (0, _classCallCheck2.default)(this, InsertTemplate);
    return _callSuper(this, InsertTemplate, arguments);
  }
  (0, _inherits2.default)(InsertTemplate, _$e$modules$CommandBa);
  return (0, _createClass2.default)(InsertTemplate, [{
    key: "apply",
    value: function apply(args) {
      return this.component.insertTemplate(args);
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = InsertTemplate;

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/commands/open.js":
/*!****************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/commands/open.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"] = exports.Open = 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"));
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; })(); }
var Open = exports.Open = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Open() {
    (0, _classCallCheck2.default)(this, Open);
    return _callSuper(this, Open, arguments);
  }
  (0, _inherits2.default)(Open, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Open, [{
    key: "apply",
    value: function apply(args) {
      return this.component.show(args);
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Open;

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/component.js":
/*!************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/component.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");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports["default"] = void 0;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _readOnlyError2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/readOnlyError */ "../node_modules/@babel/runtime/helpers/readOnlyError.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _componentModalBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-modal-base */ "../modules/web-cli/assets/js/modules/component-modal-base.js"));
var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../assets/dev/js/editor/components/template-library/commands/index.js"));
var commandsData = _interopRequireWildcard(__webpack_require__(/*! ./commands-data/ */ "../assets/dev/js/editor/components/template-library/commands-data/index.js"));
var _constants = __webpack_require__(/*! ./constants */ "../assets/dev/js/editor/components/template-library/constants.js");
var _globalStylesDialog = __webpack_require__(/*! ./views/parts/global-styles-dialog */ "../assets/dev/js/editor/components/template-library/views/parts/global-styles-dialog.js");
var _editorOneEvents = __webpack_require__(/*! elementor-editor-utils/editor-one-events */ "../assets/dev/js/editor/utils/editor-one-events.js");
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t3 in e) "default" !== _t3 && {}.hasOwnProperty.call(e, _t3) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t3)) && (i.get || i.set) ? o(f, _t3, i) : f[_t3] = e[_t3]); return f; })(e, t); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var TemplateLibraryLayoutView = __webpack_require__(/*! elementor-templates/views/library-layout */ "../assets/dev/js/editor/components/template-library/views/library-layout.js");
var Component = exports["default"] = /*#__PURE__*/function (_ComponentModalBase) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _ComponentModalBase);
  return (0, _createClass2.default)(Component, [{
    key: "__construct",
    value: function __construct(args) {
      _superPropGet(Component, "__construct", this, 3)([args]);

      // When switching documents update defaultTabs.
      elementor.on('document:loaded', this.onDocumentLoaded.bind(this));

      // Remove whole component cache data.
      $e.data.deleteCache(this, 'library');
      elementor.channels.templates.on('quota:update', function () {
        var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          force = _ref.force;
        $e.components.get('cloud-library').utils.setQuotaConfig(force);
      });
    }
  }, {
    key: "getNamespace",
    value: function getNamespace() {
      return 'library';
    }
  }, {
    key: "defaultTabs",
    value: function defaultTabs() {
      return {
        'templates/blocks': {
          title: __('Blocks', 'elementor'),
          getFilter: function getFilter() {
            return {
              source: 'remote',
              type: 'block',
              subtype: elementor.config.document.remoteLibrary.category
            };
          }
        },
        'templates/pages': {
          title: __('Pages', 'elementor'),
          filter: {
            source: 'remote',
            type: 'page'
          }
        },
        'templates/my-templates': {
          title: __('Templates', 'elementor'),
          getFilter: function getFilter() {
            var _elementor$templates$, _elementor$templates$2;
            return {
              source: (_elementor$templates$ = elementor.templates.getSourceSelection()) !== null && _elementor$templates$ !== void 0 ? _elementor$templates$ : 'local',
              view: (_elementor$templates$2 = elementor.templates.getViewSelection()) !== null && _elementor$templates$2 !== void 0 ? _elementor$templates$2 : 'list'
            };
          }
        }
      };
    }
  }, {
    key: "defaultRoutes",
    value: function defaultRoutes() {
      var _this = this;
      var defaultRoutes = {
        import: function _import() {
          _this.manager.layout.showImportView();
        },
        'save-template': function saveTemplate(args) {
          var _args$context;
          _this.manager.layout.showSaveTemplateView(args.model, (_args$context = args.context) !== null && _args$context !== void 0 ? _args$context : _constants.SAVE_CONTEXTS.SAVE);
        },
        preview: function preview(args) {
          _this.manager.layout.showPreviewView(args.model);
        },
        connect: function connect(args) {
          args.texts = {
            title: __('Connect to Template Library', 'elementor'),
            message: __('Access this template and our entire library by creating a free personal account', 'elementor'),
            button: __('Get Started', 'elementor')
          };
          _this.manager.layout.showConnectView(args);
        },
        'view-folder': function viewFolder(args) {
          _this.manager.layout.showFolderView(args);
        }
      };
      return defaultRoutes;
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      var modalCommands = _superPropGet(Component, "defaultCommands", this, 3)([]);
      return _objectSpread(_objectSpread({}, modalCommands), this.importCommands(commands));
    }
  }, {
    key: "defaultData",
    value: function defaultData() {
      return this.importCommands(commandsData);
    }
  }, {
    key: "defaultShortcuts",
    value: function defaultShortcuts() {
      return {
        open: {
          keys: 'ctrl+shift+l'
        }
      };
    }
  }, {
    key: "onDocumentLoaded",
    value: function onDocumentLoaded(document) {
      this.setDefaultRoute(document.config.remoteLibrary.default_route);
      this.maybeOpenLibrary();
    }
  }, {
    key: "renderTab",
    value: function renderTab(tab) {
      var currentTab = this.tabs[tab];
      var filter = currentTab.getFilter ? currentTab.getFilter() : currentTab.filter;
      this.trackLibraryNavigation(tab, currentTab.title);
      this.currentTab = tab;
      this.manager.setScreen(filter);
    }
  }, {
    key: "trackLibraryNavigation",
    value: function trackLibraryNavigation(tab, tabTitle) {
      _editorOneEvents.EditorOneEventManager.sendELibraryNav(tabTitle || tab);
    }
  }, {
    key: "activateTab",
    value: function activateTab(tab) {
      var _this$manager;
      $e.routes.saveState('library');
      _superPropGet(Component, "activateTab", this, 3)([tab]);

      // Update ARIA attributes for accessibility
      var $tabsWrapper = jQuery(this.getTabsWrapperSelector());
      var $tabs = $tabsWrapper.find('[role="tab"]');
      var $activeTab = $tabs.filter("[data-tab=\"".concat(tab, "\"]"));
      var $templatesContainer = (_this$manager = this.manager) === null || _this$manager === void 0 || (_this$manager = _this$manager.layout) === null || _this$manager === void 0 || (_this$manager = _this$manager.modalContent) === null || _this$manager === void 0 || (_this$manager = _this$manager.currentView) === null || _this$manager === void 0 ? void 0 : _this$manager.$childViewContainer;
      $tabs.attr({
        'aria-selected': 'false',
        tabindex: '-1'
      });
      $activeTab.attr({
        'aria-selected': 'true',
        tabindex: '0'
      });
      if ($templatesContainer !== null && $templatesContainer !== void 0 && $templatesContainer.length) {
        $templatesContainer.attr({
          role: 'tabpanel',
          'aria-labelledby': "tab-".concat(tab)
        });
      }
    }
  }, {
    key: "open",
    value: function open() {
      _superPropGet(Component, "open", this, 3)([]);
      if (!this.manager.layout) {
        this.manager.layout = this.layout;
      }
      this.manager.layout.setHeaderDefaultParts();
      return true;
    }
  }, {
    key: "close",
    value: function close() {
      if (!_superPropGet(Component, "close", this, 3)([])) {
        return false;
      }
      this.manager.modalConfig = {};
      return true;
    }
  }, {
    key: "show",
    value: function show(args) {
      this.manager.modalConfig = args;
      if (args.toDefault || !$e.routes.restoreState('library')) {
        $e.route(this.getDefaultRoute());
      }
    }

    // TODO: Move function to 'insert-template' command.
  }, {
    key: "insertTemplate",
    value: function insertTemplate(args) {
      var _this2 = this;
      this.downloadTemplate(args, function (data, callbackParams) {
        var _model$get, _elementor$config$lib;
        var model = callbackParams.model;
        var source = (_model$get = model.get('source')) !== null && _model$get !== void 0 ? _model$get : 'local';
        var templateType = model.get('type');
        var templateTitle = model.get('title');
        var templateId = model.get('template_id');
        var baseTier = (_elementor$config$lib = elementor.config.library_connect) === null || _elementor$config$lib === void 0 ? void 0 : _elementor$config$lib.base_access_tier;
        var templateTier = model.get('accessTier');
        $e.run('document/elements/import', {
          model: model,
          data: data,
          options: callbackParams.importOptions,
          onAfter: function onAfter() {
            _this2.manager.eventManager.sendTemplateInsertedEvent({
              library_type: source
            });
            _editorOneEvents.EditorOneEventManager.sendELibraryInsert({
              assetId: templateId,
              assetName: templateTitle,
              libraryType: templateType || source,
              proRequired: baseTier !== templateTier
            });
          }
        });
      });
    }
  }, {
    key: "downloadTemplate",
    value: function downloadTemplate(args, callback) {
      var _this3 = this;
      var autoImportSettings = elementor.config.document.remoteLibrary.autoImportSettings,
        model = args.model;
      var _args$withPageSetting = args.withPageSettings,
        withPageSettings = _args$withPageSetting === void 0 ? null : _args$withPageSetting;
      if (autoImportSettings) {
        withPageSettings = true;
      }
      this.manager.layout.showLoadingView();
      var shouldFetchPageSettings = null === withPageSettings ? model.get('hasPageSettings') : withPageSettings;
      this.manager.requestTemplateContent(model.get('source'), model.get('template_id'), {
        data: {
          with_page_settings: shouldFetchPageSettings
        },
        success: function () {
          var _success = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(data) {
            var processedData, globalStylesResult, importOptions, insertTemplateHandler, _t;
            return _regenerator.default.wrap(function (_context) {
              while (1) switch (_context.prev = _context.next) {
                case 0:
                  _this3.manager.layout.hideLoadingView();
                  processedData = data;
                  if (!_this3.manager.hasGlobalStyles(data)) {
                    _context.next = 4;
                    break;
                  }
                  _context.prev = 1;
                  _context.next = 2;
                  return _this3.processGlobalStylesImport(data);
                case 2:
                  globalStylesResult = _context.sent;
                  processedData = globalStylesResult.data;
                  withPageSettings = globalStylesResult.withPageSettings;
                  _context.next = 4;
                  break;
                case 3:
                  _context.prev = 3;
                  _t = _context["catch"](1);
                  return _context.abrupt("return");
                case 4:
                  if (!_this3.manager.hasGlobalStyles(data) && null === withPageSettings) {
                    withPageSettings = false;
                  }
                  importOptions = jQuery.extend({}, _this3.manager.modalConfig.importOptions);
                  importOptions.withPageSettings = withPageSettings;
                  if (!(null === withPageSettings && model.get('hasPageSettings'))) {
                    _context.next = 5;
                    break;
                  }
                  insertTemplateHandler = _this3.getImportSettingsDialog();
                  insertTemplateHandler.showImportDialogWithData(model, processedData, importOptions, callback);
                  return _context.abrupt("return");
                case 5:
                  _this3.manager.layout.hideModal();
                  _this3.showFlatteningWarningIfNeeded(processedData);
                  callback(processedData, {
                    model: model,
                    importOptions: importOptions
                  });
                case 6:
                case "end":
                  return _context.stop();
              }
            }, _callee, null, [[1, 3]]);
          }));
          function success(_x) {
            return _success.apply(this, arguments);
          }
          return success;
        }(),
        error: function error(data) {
          _this3.manager.showErrorDialog(data);
        },
        complete: function complete() {
          _this3.manager.layout.hideLoadingView();
        }
      });
    }
  }, {
    key: "processGlobalStylesImport",
    value: function () {
      var _processGlobalStylesImport = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(data) {
        var _yield$showGlobalStyl, mode, result, processedData, _t2;
        return _regenerator.default.wrap(function (_context2) {
          while (1) switch (_context2.prev = _context2.next) {
            case 0:
              _context2.next = 1;
              return (0, _globalStylesDialog.showGlobalStylesDialog)();
            case 1:
              _yield$showGlobalStyl = _context2.sent;
              mode = _yield$showGlobalStyl.mode;
              this.manager.layout.showLoadingView();
              _context2.prev = 2;
              _context2.next = 3;
              return new Promise(function (resolve, reject) {
                elementorCommon.ajax.addRequest('process_global_styles', {
                  data: {
                    content: JSON.stringify(data.content),
                    import_mode: mode,
                    global_classes: data.global_classes ? JSON.stringify(data.global_classes) : null,
                    global_variables: data.global_variables ? JSON.stringify(data.global_variables) : null
                  },
                  success: resolve,
                  error: reject
                });
              });
            case 3:
              result = _context2.sent;
              processedData = _objectSpread(_objectSpread({}, data), {}, {
                content: result.content,
                flattened_classes_count: result.flattened_classes_count || 0,
                flattened_variables_count: result.flattened_variables_count || 0
              });
              if (result.updated_global_classes || result.updated_global_variables) {
                window.dispatchEvent(new CustomEvent('elementor/global-styles/imported', {
                  detail: {
                    global_classes: result.updated_global_classes,
                    global_variables: result.updated_global_variables
                  }
                }));
              }
              return _context2.abrupt("return", {
                data: processedData,
                withPageSettings: 'match_site' === mode
              });
            case 4:
              _context2.prev = 4;
              _t2 = _context2["catch"](2);
              this.manager.showErrorDialog(_t2);
              throw _t2;
            case 5:
              _context2.prev = 5;
              this.manager.layout.hideLoadingView();
              return _context2.finish(5);
            case 6:
            case "end":
              return _context2.stop();
          }
        }, _callee2, this, [[2, 4, 5, 6]]);
      }));
      function processGlobalStylesImport(_x2) {
        return _processGlobalStylesImport.apply(this, arguments);
      }
      return processGlobalStylesImport;
    }()
  }, {
    key: "getImportSettingsDialog",
    value: function getImportSettingsDialog() {
      var self = this;
      var InsertTemplateHandler = {
        dialog: null,
        showImportDialog: function showImportDialog(model) {
          var dialog = InsertTemplateHandler.getDialog(model);
          dialog.onConfirm = function () {
            $e.run('library/insert-template', {
              model: model,
              withPageSettings: true,
              onAfter: function onAfter() {
                elementor.templates.eventManager.sendInsertApplySettingsEvent({
                  apply_modal_result: 'apply',
                  library_type: model.get('source')
                });
              }
            });
          };
          dialog.onCancel = function () {
            $e.run('library/insert-template', {
              model: model,
              withPageSettings: false,
              onAfter: function onAfter() {
                elementor.templates.eventManager.sendInsertApplySettingsEvent({
                  apply_modal_result: "don't apply",
                  library_type: model.get('source')
                });
              }
            });
          };
          dialog.show();
        },
        showImportDialogWithData: function showImportDialogWithData(model, data, importOptions, callback) {
          var dialog = InsertTemplateHandler.getDialog(model);
          dialog.onConfirm = function () {
            importOptions.withPageSettings = true;
            elementor.templates.eventManager.sendInsertApplySettingsEvent({
              apply_modal_result: 'apply',
              library_type: model.get('source')
            });
            self.manager.layout.hideModal();
            callback(data, {
              model: model,
              importOptions: importOptions
            });
          };
          dialog.onCancel = function () {
            importOptions.withPageSettings = false;
            elementor.templates.eventManager.sendInsertApplySettingsEvent({
              apply_modal_result: "don't apply",
              library_type: model.get('source')
            });
            self.manager.layout.hideModal();
            callback(data, {
              model: model,
              importOptions: importOptions
            });
          };
          dialog.show();
        },
        initDialog: function initDialog(model) {
          InsertTemplateHandler.dialog = elementorCommon.dialogsManager.createWidget('confirm', {
            id: 'elementor-insert-template-settings-dialog',
            /* Translators: %s is the type content */
            headerMessage: __('Apply the settings of this %s too?', 'elementor').replace('%s', elementor.translate(model.attributes.type)),
            /* Translators: %s is the type content */
            message: __('This will override the design, layout, and other settings of the %s you’re working on.', 'elementor').replace('%s', elementor.documents.getCurrent().container.label),
            strings: {
              confirm: __('Apply', 'elementor'),
              cancel: __('Don’t apply', 'elementor')
            }
          });
        },
        getDialog: function getDialog(model) {
          if (!InsertTemplateHandler.dialog) {
            InsertTemplateHandler.initDialog(model);
          }
          return InsertTemplateHandler.dialog;
        }
      };
      return InsertTemplateHandler;
    }
  }, {
    key: "getTabsWrapperSelector",
    value: function getTabsWrapperSelector() {
      return '#elementor-template-library-header-menu';
    }
  }, {
    key: "getModalLayout",
    value: function getModalLayout() {
      return TemplateLibraryLayoutView;
    }
  }, {
    key: "maybeOpenLibrary",
    value: function maybeOpenLibrary() {
      if ('#library' === location.hash) {
        $e.run('library/open');
        location.hash = '';
      }
    }
  }, {
    key: "showFlatteningWarningIfNeeded",
    value: function showFlatteningWarningIfNeeded(result) {
      var flattenedClassesCount = result.flattened_classes_count || 0;
      var flattenedVariablesCount = result.flattened_variables_count || 0;
      if (0 === flattenedClassesCount && 0 === flattenedVariablesCount) {
        return;
      }
      var message;
      if (flattenedClassesCount > 0 && flattenedVariablesCount > 0) {
        message = __('Some styles were added as static values because the style limits were reached.', 'elementor');
      } else if (flattenedClassesCount > 0) {
        message = __('Some styles were added as static values because the class limit was reached.', 'elementor');
      } else {
        message = __('Some styles were added as static values because the variable limit was reached.', 'elementor');
      }
      elementor.notifications.showToast({
        message: message
      });
    }
  }]);
}(_componentModalBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/constants.js":
/*!************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/constants.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.SAVE_CONTEXTS = exports.QUOTA_WARNINGS = exports.QUOTA_BAR_STATES = void 0;
var SAVE_CONTEXTS = exports.SAVE_CONTEXTS = Object.freeze({
  SAVE: 'save',
  MOVE: 'move',
  COPY: 'copy',
  BULK_MOVE: 'bulkMove',
  BULK_COPY: 'bulkCopy'
});
var QUOTA_WARNINGS = exports.QUOTA_WARNINGS = Object.freeze({
  /* Translators: 1: Quota usage percentage */
  // eslint-disable-next-line @wordpress/i18n-no-flanking-whitespace, @wordpress/i18n-translator-comments
  warning: __('You\'ve saved %1$d%% of the templates in your plan. To get more space ', 'elementor') + '<a href="https://go.elementor.com/go-pro-cloud-templates-usage-bar-80" target="_blank">' + __('Upgrade now', 'elementor') + '</a>',
  /* Translators: 1: Quota usage percentage */
  // eslint-disable-next-line @wordpress/i18n-no-flanking-whitespace, @wordpress/i18n-translator-comments
  alert: __('You\'ve saved %1$d%% of the templates in your plan. To get more space ', 'elementor') + '<a href="https://go.elementor.com/go-pro-cloud-templates-usage-bar-100" target="_blank">' + __('Upgrade now', 'elementor') + '</a>'
});
var QUOTA_BAR_STATES = exports.QUOTA_BAR_STATES = Object.freeze({
  NORMAL: 'normal',
  WARNING: 'warning',
  ALERT: 'alert'
});

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/event-manager/index.js":
/*!**********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/event-manager/index.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.EventManager = void 0;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var EVENTS_MAP = {
  SAVE_TEMPLATE_CONTEXT_MENU_EXPOSURE: 'save_template_context_menu_exposure',
  NEW_SAVE_TEMPLATE_CLICKED: 'new_save_template_clicked',
  TEMPLATE_SAVED: 'template_saved',
  TEMPLATE_TRANSFER: 'template_transfer',
  ITEM_DELETED: 'item_deleted',
  TEMPLATE_IMPORT: 'template_import',
  TEMPLATE_RENAME: 'template_rename',
  TEMPLATE_INSERTED: 'template_inserted',
  BULK_ACTIONS_SUCCESS: 'bulk_actions',
  BULK_ACTIONS_FAILED: 'bulk_actions',
  FOLDER_CREATE: 'folder_create',
  QUOTA_BAR_CAPACITY: 'quota_bar_capacity',
  INSERT_APPLY_SETTINGS: 'insert_apply_settings',
  UPGRADE_CLICKED: 'upgrade_clicked',
  PAGE_VIEWED: 'page_viewed',
  DELETION_UNDO: 'deletion_undo',
  CT_BADGE_HOVER: 'ct_badge_hover'
};
var CLOUD_TEMPLATES_EXPERIMENTS = {
  SAVE_TEMPLATE: 'save-template-cloud'
};
var EventManager = exports.EventManager = /*#__PURE__*/function () {
  function EventManager() {
    (0, _classCallCheck2.default)(this, EventManager);
  }
  return (0, _createClass2.default)(EventManager, [{
    key: "getExperimentVariant",
    value: function () {
      var _getExperimentVariant = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(experimentName) {
        var _elementorCommon, _elementorCommon2;
        return _regenerator.default.wrap(function (_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              if ((_elementorCommon = elementorCommon) !== null && _elementorCommon !== void 0 && _elementorCommon.eventsManager) {
                _context.next = 1;
                break;
              }
              return _context.abrupt("return", 'control');
            case 1:
              return _context.abrupt("return", ((_elementorCommon2 = elementorCommon) === null || _elementorCommon2 === void 0 || (_elementorCommon2 = _elementorCommon2.eventsManager) === null || _elementorCommon2 === void 0 ? void 0 : _elementorCommon2.getExperimentVariant(experimentName, 'control')) || 'control');
            case 2:
            case "end":
              return _context.stop();
          }
        }, _callee);
      }));
      function getExperimentVariant(_x) {
        return _getExperimentVariant.apply(this, arguments);
      }
      return getExperimentVariant;
    }()
  }, {
    key: "getSaveTemplateExperimentVariant",
    value: function getSaveTemplateExperimentVariant() {
      return this.getExperimentVariant(CLOUD_TEMPLATES_EXPERIMENTS.SAVE_TEMPLATE);
    }
  }, {
    key: "startSaveTemplateExperiment",
    value: function startSaveTemplateExperiment(variant) {
      var _elementorCommon3, _elementorCommon4;
      if (!((_elementorCommon3 = elementorCommon) !== null && _elementorCommon3 !== void 0 && _elementorCommon3.eventsManager)) {
        return;
      }
      return (_elementorCommon4 = elementorCommon) === null || _elementorCommon4 === void 0 || (_elementorCommon4 = _elementorCommon4.eventsManager) === null || _elementorCommon4 === void 0 ? void 0 : _elementorCommon4.startExperiment(CLOUD_TEMPLATES_EXPERIMENTS.SAVE_TEMPLATE, variant);
    }
  }, {
    key: "sendEvent",
    value: function sendEvent(eventName, data) {
      return elementorCommon.eventsManager.dispatchEvent(eventName, data);
    }
  }, {
    key: "sendContextMenuExposureEvent",
    value: function sendContextMenuExposureEvent() {
      return this.sendEvent(EVENTS_MAP.SAVE_TEMPLATE_CONTEXT_MENU_EXPOSURE, {
        location: elementorCommon.eventsManager.config.locations.elementorEditor,
        secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.contextMenu,
        trigger: elementorCommon.eventsManager.config.triggers.visible
      });
    }
  }, {
    key: "sendNewSaveTemplateClickedEvent",
    value: function sendNewSaveTemplateClickedEvent() {
      return this.sendEvent(EVENTS_MAP.NEW_SAVE_TEMPLATE_CLICKED, {
        location: elementorCommon.eventsManager.config.locations.templatesLibrary.library,
        secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.saveModal,
        trigger: elementorCommon.eventsManager.config.triggers.click
      });
    }
  }, {
    key: "sendTemplateSavedEvent",
    value: function sendTemplateSavedEvent(data) {
      return this.sendEvent(EVENTS_MAP.TEMPLATE_SAVED, _objectSpread({
        location: elementorCommon.eventsManager.config.locations.templatesLibrary.library,
        secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.saveModal,
        trigger: elementorCommon.eventsManager.config.triggers.click
      }, data));
    }
  }, {
    key: "sendTemplateTransferEvent",
    value: function sendTemplateTransferEvent(data) {
      return this.sendEvent(EVENTS_MAP.TEMPLATE_TRANSFER, _objectSpread({
        location: elementorCommon.eventsManager.config.locations.templatesLibrary.library,
        secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.saveModal
      }, data));
    }
  }, {
    key: "sendItemDeletedEvent",
    value: function sendItemDeletedEvent(data) {
      return this.sendEvent(EVENTS_MAP.ITEM_DELETED, _objectSpread({
        location: elementorCommon.eventsManager.config.locations.templatesLibrary.library,
        secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.deleteDialog
      }, data));
    }
  }, {
    key: "sendTemplateImportEvent",
    value: function sendTemplateImportEvent(data) {
      return this.sendEvent(EVENTS_MAP.TEMPLATE_IMPORT, _objectSpread({
        location: elementorCommon.eventsManager.config.locations.templatesLibrary.library,
        secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.saveModal
      }, data));
    }
  }, {
    key: "sendTemplateRenameEvent",
    value: function sendTemplateRenameEvent(data) {
      return this.sendEvent(EVENTS_MAP.TEMPLATE_RENAME, _objectSpread({
        location: elementorCommon.eventsManager.config.locations.templatesLibrary.library,
        secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.renameDialog
      }, data));
    }
  }, {
    key: "sendTemplateInsertedEvent",
    value: function sendTemplateInsertedEvent(data) {
      return this.sendEvent(EVENTS_MAP.TEMPLATE_INSERTED, _objectSpread({
        location: elementorCommon.eventsManager.config.locations.templatesLibrary.library
      }, data));
    }
  }, {
    key: "sendBulkActionsSuccessEvent",
    value: function sendBulkActionsSuccessEvent(data) {
      return this.sendEvent(EVENTS_MAP.BULK_ACTIONS_SUCCESS, _objectSpread({
        bulk_status: 'success',
        location: elementorCommon.eventsManager.config.locations.templatesLibrary.library,
        secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.saveModal
      }, data));
    }
  }, {
    key: "sendBulkActionsFailedEvent",
    value: function sendBulkActionsFailedEvent(data) {
      return this.sendEvent(EVENTS_MAP.BULK_ACTIONS_FAILED, _objectSpread({
        bulk_status: 'fail',
        location: elementorCommon.eventsManager.config.locations.templatesLibrary.library,
        secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.saveModal
      }, data));
    }
  }, {
    key: "sendFolderCreateEvent",
    value: function sendFolderCreateEvent() {
      return this.sendEvent(EVENTS_MAP.FOLDER_CREATE, {
        location: elementorCommon.eventsManager.config.locations.templatesLibrary.library,
        secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.createFolderDialog
      });
    }
  }, {
    key: "sendQuotaBarCapacityEvent",
    value: function sendQuotaBarCapacityEvent(data) {
      return this.sendEvent(EVENTS_MAP.QUOTA_BAR_CAPACITY, _objectSpread({
        location: elementorCommon.eventsManager.config.locations.templatesLibrary.library
      }, data));
    }
  }, {
    key: "sendInsertApplySettingsEvent",
    value: function sendInsertApplySettingsEvent(data) {
      return this.sendEvent(EVENTS_MAP.INSERT_APPLY_SETTINGS, _objectSpread({
        location: elementorCommon.eventsManager.config.locations.templatesLibrary.library,
        secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.applySettingsDialog
      }, data));
    }
  }, {
    key: "sendUpgradeClickedEvent",
    value: function sendUpgradeClickedEvent(data) {
      var _elementor;
      return this.sendEvent(EVENTS_MAP.UPGRADE_CLICKED, _objectSpread({
        location: elementorCommon.eventsManager.config.locations.templatesLibrary.library,
        current_sub: (_elementor = elementor) === null || _elementor === void 0 || (_elementor = _elementor.config) === null || _elementor === void 0 || (_elementor = _elementor.library_connect) === null || _elementor === void 0 ? void 0 : _elementor.current_access_tier
      }, data));
    }
  }, {
    key: "sendPageViewEvent",
    value: function sendPageViewEvent(data) {
      return this.sendEvent(EVENTS_MAP.PAGE_VIEWED, _objectSpread({
        page_loaded: data.location
      }, data));
    }
  }, {
    key: "sendDeletionUndoEvent",
    value: function sendDeletionUndoEvent(data) {
      return this.sendEvent(EVENTS_MAP.DELETION_UNDO, _objectSpread({}, data));
    }
  }, {
    key: "sendCTBadgeEvent",
    value: function sendCTBadgeEvent(data) {
      return this.sendEvent(EVENTS_MAP.CT_BADGE_HOVER, {
        ct_badge_hover_position: data.ct_badge_hover_position,
        ct_badge_type: data.ct_badge_type,
        ct_position_state: data.ct_position_state
      });
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/manager.js":
/*!**********************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/manager.js ***!
  \**********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
var _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../assets/dev/js/editor/components/template-library/component.js"));
var _localStorage = _interopRequireDefault(__webpack_require__(/*! elementor-api/core/data/storages/local-storage */ "../modules/web-cli/assets/js/core/data/storages/local-storage.js"));
var _eventManager = __webpack_require__(/*! ./event-manager */ "../assets/dev/js/editor/components/template-library/event-manager/index.js");
var _constants = __webpack_require__(/*! ./constants */ "../assets/dev/js/editor/components/template-library/constants.js");
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var TemplateLibraryCollection = __webpack_require__(/*! elementor-templates/collections/templates */ "../assets/dev/js/editor/components/template-library/collections/templates.js");
var TemplateLibraryManager = function TemplateLibraryManager() {
  var _this3 = this;
  this.modalConfig = {};
  this.eventManager = new _eventManager.EventManager();
  var self = this,
    templateTypes = {},
    storage = new _localStorage.default(),
    storageKeyPrefix = 'my_templates_',
    sourceKey = 'source',
    viewKey = 'view',
    bulkSelectedItems = new Set(),
    lastDeletedItems = new Set();
  var variantsConfig = {
    control: {
      saveBtnText: __('Save', 'elementor'),
      saveDialogDescription: sprintf(/* Translators: 1: Opening bold tag, 2: Closing bold tag.  2: Line break tag. 4: Opening bold tag, 5: Closing bold tag. */
      __("You can save it to %1$sCloud Templates%2$s to reuse across any of your Elementor sites at any time%3$sor to %4$sSite Templates%5$s so it's always ready when editing this website.", 'elementor'), '<b>', '</b>', '<br>', '<b>', '</b>')
    },
    B: {
      saveBtnText: __('Save page', 'elementor'),
      saveDialogDescription: sprintf(/* Translators: 1: Opening bold tag, 2: Closing bold tag. 3: Opening bold tag, 4: Closing bold tag. */
      __('Store your design in %1$sCloud Templates%2$s for future Elementor projects. Or save it to %3$sSite Templates%4$s, to reuse anywhere on this site.', 'elementor'), '<b>', '</b>', '<b>', '</b>')
    }
  };
  var deleteDialog,
    errorDialog,
    templatesCollection,
    config = {},
    filterTerms = {},
    isLoading = false,
    total = 0,
    toastConfig = {
      show: false,
      options: {}
    },
    bulkSelectedItemsTypes = [];
  var registerDefaultTemplateTypes = function registerDefaultTemplateTypes() {
    self.getDefaultTemplateTypeData().then(function (data) {
      var elements = Object.entries(elementor.getConfig().elements).reduce(function (acc, _ref) {
        var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
          type = _ref2[0],
          element = _ref2[1];
        if (!(element !== null && element !== void 0 && element.atomic_props_schema)) {
          return acc;
        }
        acc[type] = element.title;
        return acc;
      }, {});
      var translationMap = _objectSpread(_objectSpread({
        page: __('Page', 'elementor'),
        section: __('Section', 'elementor'),
        container: __('Container', 'elementor')
      }, elements), {}, (0, _defineProperty2.default)({}, elementor.config.document.type, elementor.config.document.panel.title));
      jQuery.each(translationMap, function (type, title) {
        self.getDefaultTemplateTypeSafeData(title, type).then(function (defaultTemplateData) {
          var safeData = jQuery.extend(true, {}, data, defaultTemplateData);
          self.registerTemplateType(type, safeData);
        });
      });
    });
  };
  var registerDefaultFilterTerms = function registerDefaultFilterTerms() {
    filterTerms = {
      text: {
        callback: function callback(value) {
          value = value.toLowerCase();
          if (this.get('title').toLowerCase().indexOf(value) >= 0) {
            return true;
          }
          return _.any(this.get('tags'), function (tag) {
            return tag.toLowerCase().indexOf(value) >= 0;
          });
        }
      },
      type: {},
      subtype: {},
      favorite: {}
    };
  };
  this.isLoading = function () {
    return isLoading;
  };
  this.canLoadMore = function () {
    if (!templatesCollection) {
      return false;
    }
    return templatesCollection.length < total;
  };
  this.init = function () {
    var _this = this;
    registerDefaultTemplateTypes();
    registerDefaultFilterTerms();
    this.component = $e.components.register(new _component.default({
      manager: this
    }));
    elementor.addBackgroundClickListener('libraryToggleMore', {
      element: '.elementor-template-library-template-more'
    });
    window.addEventListener('message', function (message) {
      var data = message.data;
      if (!data.name || data.name !== 'library/capture-screenshot-done') {
        return;
      }
      var template = templatesCollection.models.find(function (templateModel) {
        return templateModel.get('template_id') === parseInt(data.id);
      });
      if (!template) {
        return null;
      }
      template.set('preview_url', data.imageUrl);
    });
    this.handleKeydown = function (event) {
      if (_this.isSelectAllShortcut(event) && _this.isCloudGridView() && _this.isClickedInLibrary(event)) {
        event.preventDefault();
        _this.selectAllTemplates();
      }
      if (_this.isUndoShortCut(event) && lastDeletedItems.size) {
        _this.restoreRemovedItems();
      }
    };
    document.addEventListener('keydown', this.handleKeydown);
  };
  this.getDefaultTemplateTypeData = function () {
    return this.eventManager.getSaveTemplateExperimentVariant().then(function (experimentVariant) {
      var _variantsConfig$exper;
      return {
        saveDialog: {
          icon: '<i class="eicon-library-upload" aria-hidden="true"></i>',
          canSaveToCloud: true,
          saveBtnText: (_variantsConfig$exper = variantsConfig[experimentVariant]) === null || _variantsConfig$exper === void 0 ? void 0 : _variantsConfig$exper.saveBtnText
        },
        moveDialog: {
          description: __('Alternatively, you can copy the template.', 'elementor'),
          icon: '<i class="eicon-library-move" aria-hidden="true"></i>',
          canSaveToCloud: true,
          saveBtnText: __('Move', 'elementor'),
          nameLabel: '',
          namePlaceholder: ''
        },
        copyDialog: {
          description: __('Alternatively, you can move the template.', 'elementor'),
          icon: '<i class="eicon-library-copy" aria-hidden="true"></i>',
          canSaveToCloud: true,
          saveBtnText: __('Copy', 'elementor'),
          nameLabel: '',
          namePlaceholder: ''
        },
        bulkMoveDialog: {
          description: __('Alternatively, you can copy the templates.', 'elementor'),
          title: __('Move templates to a different location', 'elementor'),
          icon: '<i class="eicon-library-move" aria-hidden="true"></i>',
          canSaveToCloud: true,
          saveBtnText: __('Move', 'elementor'),
          nameLabel: '',
          namePlaceholder: ''
        },
        bulkCopyDialog: {
          description: __('Alternatively, you can move the templates.', 'elementor'),
          title: __('Copy templates to a different location', 'elementor'),
          icon: '<i class="eicon-library-copy" aria-hidden="true"></i>',
          canSaveToCloud: true,
          saveBtnText: __('Copy', 'elementor'),
          nameLabel: '',
          namePlaceholder: ''
        }
      };
    });
  };
  this.getDefaultTemplateTypeSafeData = function (title, type) {
    return this.eventManager.getSaveTemplateExperimentVariant().then(function (experimentVariant) {
      var _variantsConfig$exper2;
      var isPageType = 'page' === type;

      /* Translators: %s: Template type. */
      var nameLabel = sprintf(__('%s name', 'elementor'), title);
      var namePlaceholder = isPageType ? __('Type the page name here', 'elementor') : __('Give your template a name', 'elementor');
      return {
        saveDialog: {
          description: ((_variantsConfig$exper2 = variantsConfig[experimentVariant]) === null || _variantsConfig$exper2 === void 0 ? void 0 : _variantsConfig$exper2.saveDialogDescription) || '',
          /* Translators: %s: Template type. */
          title: sprintf(__('Save this %s to your library', 'elementor'), title),
          nameLabel: nameLabel,
          namePlaceholder: namePlaceholder,
          /* Translators: %s: Template type. */
          saveLocationLabel: sprintf(__('Where would you like to save this %s?', 'elementor'), title)
        },
        moveDialog: {
          /* Translators: %s: Template type. */
          title: sprintf(__('Move your %s to a different location', 'elementor'), title),
          /* Translators: %s: Template type. */
          saveLocationLabel: sprintf(__('Where would you like to move this %s?', 'elementor'), title),
          nameLabel: nameLabel,
          namePlaceholder: namePlaceholder
        },
        copyDialog: {
          /* Translators: %s: Template type. */
          title: sprintf(__('Copy your %s to a different location', 'elementor'), title),
          /* Translators: %s: Template type. */
          saveLocationLabel: sprintf(__('Where would you like to cppy this %s?', 'elementor'), title),
          nameLabel: nameLabel,
          namePlaceholder: namePlaceholder
        },
        bulkMoveDialog: {
          saveLocationLabel: __('Where would you like to move selected templates?', 'elementor')
        },
        bulkCopyDialog: {
          saveLocationLabel: __('Where would you like to copy selected templates?', 'elementor')
        }
      };
    });
  };
  this.isSelectAllShortcut = function (event) {
    return (event.metaKey || event.ctrlKey) && 'a' === event.key;
  };
  this.isUndoShortCut = function (event) {
    return (event.metaKey || event.ctrlKey) && 'z' === event.key;
  };
  this.isCloudGridView = function () {
    return 'cloud' === this.getFilter('source') && 'grid' === this.getViewSelection();
  };
  this.isClickedInLibrary = function (event) {
    if (event.target === document.body) {
      return true; // When the rename dialog is closed it sets the target to the body.
    }
    var libraryElement = document.getElementById('elementor-template-library-modal');
    return libraryElement && event.target === libraryElement;
  };
  this.clearLastRemovedItems = function () {
    lastDeletedItems.clear();
  };
  this.addLastRemovedItems = function (ids) {
    if (!Array.isArray(ids) && !ids.length) {
      return;
    }
    ids.forEach(function (id) {
      return lastDeletedItems.add(id);
    });
  };
  this.selectAllTemplates = function () {
    var _this2 = this;
    document.querySelectorAll('.elementor-template-library-template[data-template_id]').forEach(function (element) {
      var templateId = element.getAttribute('data-template_id');
      var type = element.getAttribute('data-type');
      element.classList.add('bulk-selected-item');
      _this2.addBulkSelectionItem(templateId, type);
    });
    this.layout.handleBulkActionBar();
  };
  this.restoreRemovedItems = function () {
    this.onUndoDelete(1 < lastDeletedItems.size);
  };
  this.getSourceSelection = function () {
    return storage.getItem(storageKeyPrefix + sourceKey);
  };
  this.setSourceSelection = function (value) {
    return storage.setItem(storageKeyPrefix + sourceKey, value);
  };
  this.getViewSelection = function () {
    return storage.getItem(storageKeyPrefix + viewKey);
  };
  this.setViewSelection = function (value) {
    return storage.setItem(storageKeyPrefix + viewKey, value);
  };
  this.getTemplateTypes = function (type) {
    if (type) {
      return templateTypes[type];
    }
    return templateTypes;
  };
  this.registerTemplateType = function (type, data) {
    if (templateTypes.hasOwnProperty(type)) {
      return;
    }
    templateTypes[type] = data;
  };
  this.deleteTemplate = function (templateModel, options) {
    this.clearLastRemovedItems();
    var dialog = self.getDeleteDialog(templateModel);
    dialog.onConfirm = function () {
      if (options.onConfirm) {
        options.onConfirm();
      }
      var templateId = templateModel.get('template_id');
      var source = templateModel.get('source');
      var itemType = templateModel.get('subType');
      elementorCommon.ajax.addRequest('delete_template', {
        data: {
          source: source,
          template_id: templateId
        },
        success: function success(response) {
          templatesCollection.remove(templateModel);
          if ('cloud' === source) {
            self.addLastRemovedItems([templateId]);
          }
          if (options.onSuccess) {
            options.onSuccess(response);
          }
          self.layout.updateViewCollection(self.filterTemplates());
          var buttons = 'cloud' === source ? [{
            name: 'undo_bulk',
            text: __('Undo', 'elementor'),
            callback: function callback() {
              self.onUndoDelete();
            }
          }] : null;
          elementor.notifications.showToast({
            message: "1 item deleted successfully",
            buttons: buttons
          });
          self.triggerQuotaUpdate();
          self.resetBulkActionBar();
          self.eventManager.sendItemDeletedEvent({
            library_type: source,
            item_type: itemType
          });
        }
      });
    };
    dialog.show();
  };
  this.renameTemplate = function (templateModel, options) {
    var originalTitle = templateModel.get('title');
    _this3.clearLastRemovedItems();
    var dialog = _this3.getRenameDialog(templateModel);
    return new Promise(function (resolve) {
      dialog.onConfirm = function () {
        if (options.onConfirm) {
          options.onConfirm();
        }
        var source = templateModel.get('source');
        elementorCommon.ajax.addRequest('rename_template', {
          data: {
            source: source,
            id: templateModel.get('template_id'),
            title: templateModel.get('title')
          },
          success: function success(response) {
            templateModel.trigger('change:title');
            _this3.eventManager.sendTemplateRenameEvent({
              source: source
            });
            resolve(response);
          },
          error: function error(_error) {
            _this3.showErrorDialog(_error);
            templateModel.set('title', originalTitle);
            resolve();
          }
        });
      };
      dialog.show();
    });
  };
  this.getRenameDialog = function (templateModel) {
    var headerMessage = sprintf(
    // Translators: %1$s: Folder name, %2$s: Number of templates.
    __('Rename "%1$s"', 'elementor'), templateModel.get('title'));
    var originalTitle = templateModel.get('title');
    var $inputArea = jQuery('<input>', {
      id: 'elementor-rename-template-dialog__input',
      type: 'text',
      value: templateModel.get('title')
    }).attr('autocomplete', 'off');
    var dialog = elementorCommon.dialogsManager.createWidget('confirm', {
      id: 'elementor-template-library-rename-dialog',
      headerMessage: headerMessage,
      message: $inputArea,
      strings: {
        confirm: __('Rename', 'elementor')
      },
      hide: {
        ignore: '#elementor-template-library-modal'
      },
      onCancel: function onCancel() {
        templateModel.set('title', originalTitle);
      },
      onShow: function onShow() {
        elementor.templates.eventManager.sendPageViewEvent({
          location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.renameDialog
        });
        $inputArea.trigger('focus');
      }
    });
    $inputArea.on('input', function (event) {
      event.preventDefault();
      var title = event.target.value.trim();
      templateModel.set('title', title, {
        silent: true
      });
      dialog.getElements('ok').prop('disabled', !self.isTemplateTitleValid(title));
    });
    return dialog;
  };
  this.isTemplateTitleValid = function (title) {
    return title.trim().length > 0 && title.trim().length <= 75;
  };
  this.getFolderTemplates = function (parentElement) {
    _this3.clearLastRemovedItems();
    var parentId = parentElement.model.get('template_id');
    var parentTitle = parentElement.model.get('title');
    return new Promise(function (resolve) {
      isLoading = true;
      var ajaxOptions = {
        data: {
          source: 'cloud',
          template_id: parentId
        },
        success: function success(data) {
          _this3.setFilter('orderby', '', true);
          _this3.setFilter('order', '', true);
          _this3.setFilter('parent', {
            id: parentId,
            title: parentTitle
          });
          templatesCollection = new TemplateLibraryCollection(data.templates);
          elementor.templates.layout.hideLoadingView();
          self.layout.updateViewCollection(templatesCollection.models);
          self.layout.modalContent.currentView.ui.addNewFolder.remove();
          self.layout.modalContent.currentView.ui.addNewFolderDivider.remove();
          self.layout.resetSortingUI();
          isLoading = false;
          resolve();
        },
        error: function error(_error2) {
          isLoading = false;
          _this3.showErrorDialog(_error2);
        }
      };
      elementorCommon.ajax.addRequest('get_item_children', ajaxOptions);
    });
  };
  this.createFolder = function (folderData, options) {
    var _this4 = this;
    this.clearLastRemovedItems();
    if (null !== this.getFilter('parent')) {
      this.showErrorDialog(__('You can not create a folder inside another folder.', 'elementor'));
      return;
    }
    var dialog = this.getCreateFolderDialog(folderData);
    return new Promise(function (resolve) {
      dialog.onConfirm = /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
        return _regenerator.default.wrap(function (_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              _context.next = 1;
              return elementorCommon.ajax.addRequest('create_folder', {
                data: {
                  source: folderData.source,
                  title: folderData.title
                },
                success: function success(response) {
                  resolve(response);
                  options === null || options === void 0 || options.onSuccess();
                  _this4.eventManager.sendFolderCreateEvent();
                },
                error: function error(_error3) {
                  _this4.showErrorDialog(_error3);
                  resolve();
                }
              });
            case 1:
            case "end":
              return _context.stop();
          }
        }, _callee);
      }));
      dialog.show();
    });
  };
  this.getCreateFolderDialog = function (folderData) {
    var paragraph = document.createElement('p');
    paragraph.className = 'elementor-create-folder-template-dialog__p';
    paragraph.textContent = __('Save assets to reuse on any site in your account.', 'elementor');
    var inputArea = document.createElement('input');
    inputArea.className = 'elementor-create-folder-template-dialog__input';
    inputArea.type = 'text';
    inputArea.value = '';
    inputArea.placeholder = __('Folder name', 'elementor');
    inputArea.autocomplete = 'off';
    var fragment = document.createDocumentFragment();
    fragment.appendChild(paragraph);
    fragment.appendChild(inputArea);
    var dialog = elementorCommon.dialogsManager.createWidget('confirm', {
      id: 'elementor-template-library-create-new-folder-dialog',
      headerMessage: __('Create a new folder', 'elementor'),
      message: fragment,
      strings: {
        confirm: __('Create', 'elementor')
      },
      hide: {
        ignore: '#elementor-template-library-modal'
      },
      onShow: function onShow() {
        inputArea.focus();
        elementor.templates.eventManager.sendPageViewEvent({
          location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.newFolderModal
        });
      }
    });
    dialog.getElements('ok').prop('disabled', true);
    inputArea.addEventListener('input', function (event) {
      event.preventDefault();
      var title = event.target.value.trim();
      folderData.title = title;
      var isTitleValid = self.isTemplateTitleValid(title);
      dialog.getElements('ok').prop('disabled', !isTitleValid);
    });
    return dialog;
  };
  this.deleteFolder = function (templateModel, options) {
    var _this5 = this;
    this.clearLastRemovedItems();
    var ajaxOptions = {
      data: {
        source: 'cloud',
        template_id: templateModel.get('template_id')
      },
      success: function success(data) {
        return _this5.handleGetFolderDataSuccess(templateModel, options, data);
      }
    };
    elementorCommon.ajax.addRequest('get_item_children', ajaxOptions);
  };
  this.handleGetFolderDataSuccess = function (templateModel, options, data) {
    var _this6 = this;
    var dialog = this.getDeleteFolderDialog(templateModel, data);
    dialog.onConfirm = function () {
      var _options$onConfirm;
      (_options$onConfirm = options.onConfirm) === null || _options$onConfirm === void 0 || _options$onConfirm.call(options);
      _this6.sendDeleteRequest(templateModel, options);
    };
    dialog.show();
  };
  this.getDeleteFolderDialog = function (templateModel, data) {
    var deleteFolderDialog = elementorCommon.dialogsManager.createWidget('confirm', {
      id: 'elementor-template-library-delete-dialog',
      headerMessage: __('Delete this folder?', 'elementor'),
      message: sprintf(
      // Translators: %1$s: Folder name, %2$s: Number of templates.
      __('This will permanently delete "%1$s" that contains %2$d templates.', 'elementor'), templateModel.get('title'), data.total),
      strings: {
        confirm: __('Delete', 'elementor')
      },
      onShow: function onShow() {
        elementor.templates.eventManager.sendPageViewEvent({
          location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.deleteFolderDialog
        });
      }
    });
    deleteFolderDialog.getElements('ok').addClass('e-danger color-white');
    return deleteFolderDialog;
  };
  this.getBulkDeleteDialog = function () {
    var bulkDeleteDialog = elementorCommon.dialogsManager.createWidget('confirm', {
      id: 'elementor-template-library-bulk-delete-dialog',
      headerMessage: __('Delete items?', 'elementor'),
      message: sprintf(
      // Translators: %1$s: Number of selected items.
      __('This will permanently remove %1$s selected items.', 'elementor'), bulkSelectedItems.size),
      strings: {
        confirm: __('Delete', 'elementor')
      }
    });
    bulkDeleteDialog.getElements('ok').addClass('e-danger color-white');
    return bulkDeleteDialog;
  };
  this.sendDeleteRequest = function (templateModel, options) {
    var _this7 = this;
    var templateId = templateModel.get('template_id');
    var source = templateModel.get('source');
    elementorCommon.ajax.addRequest('delete_template', {
      data: {
        source: source,
        template_id: templateId
      },
      success: function success(response) {
        var _options$onSuccess;
        self.addLastRemovedItems([templateId]);
        templatesCollection.remove(templateModel, {
          silent: true
        });
        (_options$onSuccess = options.onSuccess) === null || _options$onSuccess === void 0 || _options$onSuccess.call(options, response);
        elementor.templates.eventManager.sendPageViewEvent({
          location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.deleteFolderDialog
        });
        elementor.templates.eventManager.sendItemDeletedEvent({
          library_type: source,
          item_type: 'folder'
        });
        _this7.triggerQuotaUpdate();
      }
    });
  };

  /**
   * @param {*}      model - Template model.
   * @param {Object} args  - Template arguments.
   * @deprecated since 2.8.0, use `$e.run( 'library/insert-template' )` instead.
   */
  this.importTemplate = function (model) {
    var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    this.clearLastRemovedItems();
    elementorDevTools.deprecation.deprecated('importTemplate', '2.8.0', "$e.run( 'library/insert-template' )");
    args.model = model;
    $e.run('library/insert-template', args);
  };
  this.saveTemplate = function (type, data) {
    var _data$source;
    this.clearLastRemovedItems();
    var templateType = templateTypes[type];
    _.extend(data, {
      source: (_data$source = data.source) !== null && _data$source !== void 0 ? _data$source : 'local',
      type: type
    });
    if (templateType.prepareSavedData) {
      data = templateType.prepareSavedData(data);
    }
    data.content = JSON.stringify(data.content);
    var defaultAjaxParams = {
      data: data,
      success: function success(successData) {
        $e.route('library/templates/my-templates', {
          onBefore: function onBefore() {
            self.triggerQuotaUpdate();
            if (templatesCollection) {
              var itemExist = templatesCollection.findWhere({
                template_id: successData.template_id
              });
              if (!itemExist) {
                templatesCollection.add(successData);
              }
            }
            self.sendOnSavedTemplateSuccessEvent(data);
          }
        });
      },
      error: function error(errorData) {
        self.showErrorDialog(errorData);
        self.clearToastConfig();
        self.sendOnSavedTemplateFailedEvent(data);
      }
    };
    var ajaxParams = _.extend(defaultAjaxParams, templateType.ajaxParams);
    elementorCommon.ajax.addRequest(this.getSaveAjaxAction(data.save_context), ajaxParams);
  };
  this.sendOnSavedTemplateSuccessEvent = function (formData) {
    if (_constants.SAVE_CONTEXTS.SAVE === formData.save_context) {
      self.eventManager.sendTemplateSavedEvent({
        library_type: formData.source,
        template_type: formData.type
      });
    } else if ([_constants.SAVE_CONTEXTS.COPY, _constants.SAVE_CONTEXTS.MOVE].includes(formData.save_context)) {
      self.eventManager.sendTemplateTransferEvent({
        transfer_method: formData.save_context,
        template_type: formData.type,
        template_origin: formData.from_source,
        template_destination: formData.source
      });
    } else if ([_constants.SAVE_CONTEXTS.BULK_MOVE, _constants.SAVE_CONTEXTS.BULK_COPY].includes(formData.save_context)) {
      self.eventManager.sendBulkActionsSuccessEvent({
        bulk_action: _constants.SAVE_CONTEXTS.BULK_MOVE === formData.save_context ? 'move' : 'copy',
        library_type: formData.source,
        bulk_count: formData.from_template_id.length,
        template_origin: formData.from_source,
        template_destination: formData.source
      });
    }
  };
  this.sendOnSavedTemplateFailedEvent = function (formData) {
    if ([_constants.SAVE_CONTEXTS.BULK_MOVE, _constants.SAVE_CONTEXTS.BULK_COPY].includes(formData.save_context)) {
      self.eventManager.sendBulkActionsFailedEvent({
        bulk_action: _constants.SAVE_CONTEXTS.BULK_MOVE === formData.save_context ? 'move' : 'copy',
        library_type: formData.source,
        bulk_count: formData.from_template_id.length,
        template_origin: formData.from_source,
        template_destination: formData.source
      });
    }
  };
  this.getSaveAjaxAction = function (saveContext) {
    var _saveActions$saveCont;
    this.clearLastRemovedItems();
    var saveActions = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants.SAVE_CONTEXTS.SAVE, 'save_template'), _constants.SAVE_CONTEXTS.MOVE, 'move_template'), _constants.SAVE_CONTEXTS.COPY, 'copy_template'), _constants.SAVE_CONTEXTS.BULK_MOVE, 'bulk_move_templates'), _constants.SAVE_CONTEXTS.BULK_COPY, 'bulk_copy_templates');
    return (_saveActions$saveCont = saveActions[saveContext]) !== null && _saveActions$saveCont !== void 0 ? _saveActions$saveCont : 'save_template';
  };
  this.requestTemplateContent = function (source, id, ajaxOptions) {
    this.clearLastRemovedItems();
    var options = {
      unique_id: id,
      data: {
        source: source,
        edit_mode: true,
        display: true,
        template_id: id
      }
    };
    if (ajaxOptions) {
      jQuery.extend(true, options, ajaxOptions);
    }
    return elementorCommon.ajax.addRequest('get_template_data', options);
  };
  this.hasGlobalStyles = function (templateData) {
    var _templateData$global_, _templateData$global_2;
    var hasClasses = ((_templateData$global_ = templateData.global_classes) === null || _templateData$global_ === void 0 ? void 0 : _templateData$global_.items) && Object.keys(templateData.global_classes.items).length > 0;
    var hasVariables = ((_templateData$global_2 = templateData.global_variables) === null || _templateData$global_2 === void 0 ? void 0 : _templateData$global_2.data) && Object.keys(templateData.global_variables.data).length > 0;
    return hasClasses || hasVariables;
  };
  this.syncGlobalStylesBeforeSave = function () {
    var promises = [];
    var event = new CustomEvent('elementor/global-styles/before-save', {
      detail: {
        promises: promises
      }
    });
    window.dispatchEvent(event);
    return Promise.allSettled(promises);
  };
  this.markAsFavorite = function (templateModel, favorite) {
    this.clearLastRemovedItems();
    var options = {
      data: {
        source: templateModel.get('source'),
        template_id: templateModel.get('template_id'),
        favorite: favorite
      }
    };
    return elementorCommon.ajax.addRequest('mark_template_as_favorite', options);
  };
  this.getDeleteDialog = function (templateModel) {
    if (!deleteDialog) {
      deleteDialog = elementorCommon.dialogsManager.createWidget('confirm', {
        id: 'elementor-template-library-delete-dialog',
        headerMessage: __('Delete this template?', 'elementor'),
        message: sprintf(
        // Translators: %1$s: Template name.
        __('This will permanently remove "%1$s".', 'elementor'), templateModel.get('title')),
        strings: {
          confirm: __('Delete', 'elementor')
        },
        onShow: function onShow() {
          elementor.templates.eventManager.sendPageViewEvent({
            location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.deleteDialog
          });
        }
      });
      deleteDialog.getElements('ok').addClass('e-danger color-white');
    }
    return deleteDialog;
  };
  this.getErrorDialog = function () {
    if (!errorDialog) {
      errorDialog = elementorCommon.dialogsManager.createWidget('alert', {
        id: 'elementor-template-library-error-dialog',
        headerMessage: __('An error occurred.', 'elementor')
      });
    }
    return errorDialog;
  };
  this.getTemplatesCollection = function () {
    return templatesCollection;
  };
  this.getConfig = function (item) {
    if (item) {
      return config[item] ? config[item] : {};
    }
    return config;
  };
  this.requestLibraryData = function (options) {
    if (templatesCollection && !options.forceUpdate) {
      if (options.onUpdate) {
        options.onUpdate();
      }
      return;
    }
    if (options.onBeforeUpdate) {
      options.onBeforeUpdate();
    }
    var ajaxOptions = {
      data: {},
      success: function success(data) {
        templatesCollection = new TemplateLibraryCollection(data.templates);
        if (data.config) {
          config = data.config;
        }
        if (options.onUpdate) {
          options.onUpdate();
        }
      }
    };
    if (options.forceSync) {
      ajaxOptions.data.sync = true;
    }
    elementorCommon.ajax.addRequest('get_library_data', ajaxOptions);
  };
  this.getFilter = function (name) {
    return elementor.channels.templates.request('filter:' + name);
  };
  this.setFilter = function (name, value, silent) {
    this.clearLastRemovedItems();
    elementor.channels.templates.reply('filter:' + name, value);
    if (!silent) {
      elementor.channels.templates.trigger('filter:change');
    }
  };
  this.getFilterTerms = function (termName) {
    if (termName) {
      return filterTerms[termName];
    }
    return filterTerms;
  };
  this.setScreen = function (args) {
    this.clearLastRemovedItems();
    elementor.channels.templates.stopReplying();
    self.setFilter('source', args.source, true);
    self.setFilter('type', args.type, true);
    self.setFilter('subtype', args.subtype, true);
    self.showTemplates();
  };
  this.loadTemplates = function (onUpdate) {
    this.clearLastRemovedItems();
    isLoading = true;
    total = 0;
    self.layout.showLoadingView();
    var query = {
        source: this.getFilter('source')
      },
      options = {};

    // TODO: Remove - it when all the data commands is ready, manage the cache!.
    if ('local' === query.source || 'cloud' === query.source) {
      options.refresh = true;
    }
    this.setFilter('parent', null, query);
    var loadTemplatesData = function loadTemplatesData() {
      return $e.data.get('library/templates', query, options).then(function (result) {
        var _result$data;
        var templates = 'cloud' === query.source ? result.data.templates.templates : result.data.templates;
        templatesCollection = new TemplateLibraryCollection(templates);
        if ((_result$data = result.data) !== null && _result$data !== void 0 && (_result$data = _result$data.templates) !== null && _result$data !== void 0 && _result$data.total) {
          var _result$data2;
          total = (_result$data2 = result.data) === null || _result$data2 === void 0 || (_result$data2 = _result$data2.templates) === null || _result$data2 === void 0 ? void 0 : _result$data2.total;
        }
        if (result.data.config) {
          config = result.data.config;
        }
        self.layout.hideLoadingView();
        if (onUpdate) {
          onUpdate();
        }
      }).finally(function () {
        isLoading = false;
      });
    };
    var handleCloudSource = function handleCloudSource() {
      var _elementorAppConfig$c;
      if ('undefined' === typeof ((_elementorAppConfig$c = elementorAppConfig['cloud-library']) === null || _elementorAppConfig$c === void 0 ? void 0 : _elementorAppConfig$c.quota)) {
        return $e.components.get('cloud-library').utils.getQuotaConfig(true).then(function () {
          if (self.shouldShowCloudStateView()) {
            self.layout.showCloudStateView();
            return;
          }
          return loadTemplatesData();
        }).catch(function () {
          self.layout.showCloudStateView();
          isLoading = false;
        });
      }
      if (self.shouldShowCloudStateView()) {
        self.layout.showCloudStateView();
        return;
      }
      return loadTemplatesData();
    };
    if ('cloud' === query.source) {
      handleCloudSource();
    } else {
      loadTemplatesData();
    }
  };
  this.searchTemplates = function (data) {
    _this3.clearLastRemovedItems();
    return new Promise(function (resolve) {
      _this3.setFilter('parent', null);
      isLoading = true;
      var ajaxOptions = {
        data: data,
        success: function success(result) {
          isLoading = false;
          templatesCollection = new TemplateLibraryCollection(result.templates);
          total = result.total;
          self.layout.updateViewCollection(templatesCollection.models);
          _this3.setFilter('text', data.search);
          resolve(result);
        },
        error: function error(_error4) {
          isLoading = false;
          _this3.showErrorDialog(_error4);
          resolve();
        }
      };
      elementorCommon.ajax.addRequest('search_templates', ajaxOptions);
    });
  };
  this.loadMore = function () {
    var _this3$getFilter;
    var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
      onUpdate = _ref4.onUpdate,
      _ref4$search = _ref4.search,
      search = _ref4$search === void 0 ? '' : _ref4$search,
      _ref4$refresh = _ref4.refresh,
      refresh = _ref4$refresh === void 0 ? false : _ref4$refresh;
    isLoading = true;
    _this3.clearLastRemovedItems();
    var source = _this3.getFilter('source');
    var parentId = (_this3$getFilter = _this3.getFilter('parent')) === null || _this3$getFilter === void 0 ? void 0 : _this3$getFilter.id;
    var ajaxOptions = {
      data: {
        source: source,
        offset: refresh ? 0 : templatesCollection.length,
        search: search,
        parentId: parentId,
        orderby: elementor.templates.getFilter('orderby') || null,
        order: elementor.templates.getFilter('order') || null
      },
      success: function success(result) {
        var collection = new TemplateLibraryCollection(result.templates);
        if (refresh) {
          templatesCollection.reset(collection.models);
          self.layout.updateViewCollection(templatesCollection.models);
        } else {
          templatesCollection.add(collection.models, {
            merge: true
          });
          self.layout.addTemplates(collection.models);
        }
        if (onUpdate) {
          onUpdate();
        }
        isLoading = false;
      },
      error: function error() {
        isLoading = false;
      }
    };
    elementorCommon.ajax.addRequest('load_more_templates', ajaxOptions);
  };
  this.showTemplates = function () {
    // The tabs should exist in DOM on loading.
    self.layout.setHeaderDefaultParts();
    self.loadTemplates(function () {
      var templatesToShow = self.filterTemplates();
      self.layout.showTemplatesView(new TemplateLibraryCollection(templatesToShow));
      self.handleToast();
    });
  };
  this.handleToast = function () {
    var _toastConfig, _toastConfig2;
    if (!((_toastConfig = toastConfig) !== null && _toastConfig !== void 0 && _toastConfig.show)) {
      return;
    }
    elementor.notifications.showToast((_toastConfig2 = toastConfig) === null || _toastConfig2 === void 0 ? void 0 : _toastConfig2.options);
    this.clearToastConfig();
  };
  this.setToastConfig = function (newConfig) {
    toastConfig = newConfig;
  };
  this.clearToastConfig = function () {
    this.setToastConfig({
      show: false,
      options: {}
    });
  };
  this.filterTemplates = function () {
    var activeSource = self.getFilter('source');
    return templatesCollection.filter(function (model) {
      if (activeSource !== model.get('source')) {
        return false;
      }
      var typeInfo = templateTypes[model.get('type')];
      return !typeInfo || false !== typeInfo.showInLibrary;
    });
  };
  this.showErrorDialog = function (errorMessage) {
    if ('object' === (0, _typeof2.default)(errorMessage)) {
      var message = '';
      _.each(errorMessage, function (error) {
        if (!(error !== null && error !== void 0 && error.message)) {
          return;
        }
        message += '<div>' + error.message + '.</div>';
      });
      errorMessage = message;
    } else if (errorMessage) {
      errorMessage += '.';
    }
    if (errorMessage) {
      errorMessage = __('The following error(s) occurred while processing the request:', 'elementor') + '<div id="elementor-template-library-error-info">' + errorMessage + '</div>';
    } else {
      errorMessage = __('Please try again.', 'elementor');
    }
    self.getErrorDialog().setMessage(errorMessage).show();
  };
  this.onSelectSourceFilterChange = function (event) {
    var _event$currentTarget$, _event$currentTarget;
    var templatesSource = (_event$currentTarget$ = event === null || event === void 0 || (_event$currentTarget = event.currentTarget) === null || _event$currentTarget === void 0 || (_event$currentTarget = _event$currentTarget.dataset) === null || _event$currentTarget === void 0 ? void 0 : _event$currentTarget.source) !== null && _event$currentTarget$ !== void 0 ? _event$currentTarget$ : 'local',
      alreadyActive = templatesSource === self.getFilter('source');
    if (alreadyActive) {
      return;
    }
    self.setSourceSelection(templatesSource);
    self.setFilter('source', templatesSource, true);
    self.clearBulkSelectionItems();
    self.loadTemplates(function () {
      var templatesToShow = self.filterTemplates();
      self.layout.showTemplatesView(new TemplateLibraryCollection(templatesToShow));
    });
  };
  this.onSelectViewChange = function (selectedView) {
    self.setViewSelection(selectedView);
    self.setFilter(viewKey, selectedView, true);
    self.layout.updateViewCollection(self.filterTemplates());
    self.resetBulkActionBar();
  };
  this.resetBulkActionBar = function () {
    _this3.clearBulkSelectionItems();
    _this3.layout.handleBulkActionBarUi();
  };
  this.shouldShowCloudStateView = function () {
    if (!elementor.config.library_connect.is_connected) {
      return true;
    }
    return !this.hasCloudLibraryQuota() || this.cloudLibraryIsDeactivated();
  };
  this.cloudLibraryIsDeactivated = function () {
    var _elementorAppConfig$c2;
    var quota = (_elementorAppConfig$c2 = elementorAppConfig['cloud-library']) === null || _elementorAppConfig$c2 === void 0 ? void 0 : _elementorAppConfig$c2.quota;
    if (!quota) {
      return false;
    }
    var _quota$currentUsage = quota.currentUsage,
      currentUsage = _quota$currentUsage === void 0 ? 0 : _quota$currentUsage,
      _quota$threshold = quota.threshold,
      threshold = _quota$threshold === void 0 ? 0 : _quota$threshold,
      _quota$subscriptionId = quota.subscriptionId,
      subscriptionId = _quota$subscriptionId === void 0 ? '' : _quota$subscriptionId;
    var isOverThreshold = currentUsage > threshold;
    var hasSubscription = '' !== subscriptionId;
    return isOverThreshold && !hasSubscription;
  };
  this.hasCloudLibraryQuota = function () {
    var _elementorAppConfig$c3, _elementorAppConfig$c4;
    return 'undefined' !== typeof ((_elementorAppConfig$c3 = elementorAppConfig['cloud-library']) === null || _elementorAppConfig$c3 === void 0 ? void 0 : _elementorAppConfig$c3.quota) && 0 < ((_elementorAppConfig$c4 = elementorAppConfig['cloud-library'].quota) === null || _elementorAppConfig$c4 === void 0 ? void 0 : _elementorAppConfig$c4.threshold);
  };
  this.addBulkSelectionItem = function (templateId) {
    var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'template';
    bulkSelectedItemsTypes.push(type);
    bulkSelectedItems.add(parseInt(templateId));
  };
  this.removeBulkSelectionItem = function (templateId) {
    var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'template';
    var index = bulkSelectedItemsTypes.findIndex(function (item) {
      return item === type;
    });
    if (index !== -1) {
      bulkSelectedItemsTypes.splice(index, 1);
    }
    bulkSelectedItems.delete(parseInt(templateId));
  };
  this.clearBulkSelectionItems = function () {
    bulkSelectedItems.clear();
    bulkSelectedItemsTypes = [];
  };
  this.getBulkSelectionItems = function () {
    return bulkSelectedItems;
  };
  this.getUniqueBulkSelectionItemsTypesEventLabel = function () {
    var types = (0, _toConsumableArray2.default)(new Set(bulkSelectedItemsTypes));
    var hasFolders = types.includes('folder');
    var hasTemplates = types.some(function (type) {
      return type !== 'folder';
    });
    if (hasFolders && hasTemplates) {
      return 'both';
    }
    if (hasFolders) {
      return 'folder';
    }
    return 'template';
  };
  this.onBulkDeleteClick = function () {
    var _this8 = this;
    this.clearLastRemovedItems();
    return new Promise(function (resolve) {
      var selectedItems = _this8.getBulkSelectionItems();
      if (!selectedItems.size) {
        return;
      }
      var dialog = _this8.getBulkDeleteDialog();
      var source = _this8.getFilter('source');
      var templateIds = Array.from(selectedItems);
      dialog.onConfirm = function () {
        isLoading = true;
        var ajaxOptions = {
          data: {
            source: source,
            template_ids: templateIds
          },
          success: function success() {
            isLoading = false;
            var modelsToRemove = templatesCollection.models.filter(function (templateModel) {
              return selectedItems.has(templateModel.get('template_id'));
            });
            if ('cloud' === source) {
              self.addLastRemovedItems(templateIds);
            }
            templatesCollection.remove(modelsToRemove);
            self.layout.updateViewCollection(self.filterTemplates());
            var tempBulkSelectedItemsTypes = bulkSelectedItemsTypes;
            self.clearBulkSelectionItems();
            bulkSelectedItemsTypes = tempBulkSelectedItemsTypes;
            self.eventManager.sendBulkActionsSuccessEvent({
              library_type: source,
              bulk_action: 'delete',
              bulk_count: templateIds.length
            });
            var buttons = 'cloud' === source ? [{
              name: 'undo_bulk_delete',
              text: __('Undo', 'elementor'),
              callback: function callback() {
                _this8.onUndoDelete(1 < templateIds.length);
              }
            }] : null;
            elementor.notifications.showToast({
              message: "".concat(templateIds.length, " items deleted successfully"),
              buttons: buttons
            });
            _this8.triggerQuotaUpdate();
            resolve();
          },
          error: function error(_error5) {
            isLoading = false;
            _this8.showErrorDialog(_error5);
            self.eventManager.sendBulkActionsFailedEvent({
              library_type: source,
              bulk_action: 'delete',
              bulk_count: templateIds.length
            });
            resolve();
          }
        };
        elementorCommon.ajax.addRequest('bulk_delete_templates', ajaxOptions);
      };
      dialog.onCancel = function () {
        resolve();
      };
      dialog.show();
    });
  };
  this.onUndoDelete = function () {
    var _this9 = this;
    var isBulk = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
    return new Promise(function (resolve) {
      isLoading = true;
      if (!lastDeletedItems.size) {
        return resolve();
      }
      var source = _this9.getFilter('source');
      var templateIds = Array.from(lastDeletedItems);
      var ajaxOptions = {
        data: {
          source: source,
          template_ids: templateIds
        },
        success: function success() {
          isLoading = false;
          $e.routes.refreshContainer('library');
          _this9.clearLastRemovedItems();
          _this9.triggerQuotaUpdate();
          bulkSelectedItemsTypes = [];
          resolve();
        },
        error: function error(_error6) {
          isLoading = false;
          _this9.clearLastRemovedItems();
          _this9.showErrorDialog(_error6);
          resolve();
        }
      };
      elementorCommon.ajax.addRequest('bulk_undo_delete_items', ajaxOptions);
      self.eventManager.sendDeletionUndoEvent({
        is_bulk: isBulk,
        item_type: _this9.getUniqueBulkSelectionItemsTypesEventLabel()
      });
    });
  };
  this.triggerQuotaUpdate = function () {
    var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
    elementor.channels.templates.trigger('quota:update', {
      force: force
    });
  };
};
module.exports = new TemplateLibraryManager();

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/models/template.js":
/*!******************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/models/template.js ***!
  \******************************************************************************/
/***/ ((module) => {

"use strict";


module.exports = Backbone.Model.extend({
  defaults: {
    template_id: 0,
    title: '',
    source: '',
    type: '',
    subtype: '',
    author: '',
    thumbnail: '',
    url: '',
    export_link: '',
    status: null,
    preview_url: null,
    generate_preview_url: null,
    tags: []
  },
  isLocked: function isLocked() {
    return 'locked' === this.get('status');
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/library-layout.js":
/*!***********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/library-layout.js ***!
  \***********************************************************************************/
/***/ ((module, __unused_webpack_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");
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
var _constants = __webpack_require__(/*! ./../constants */ "../assets/dev/js/editor/components/template-library/constants.js");
var TemplateLibraryHeaderActionsView = __webpack_require__(/*! elementor-templates/views/parts/header-parts/actions */ "../assets/dev/js/editor/components/template-library/views/parts/header-parts/actions.js"),
  TemplateLibraryHeaderMenuView = __webpack_require__(/*! elementor-templates/views/parts/header-parts/menu */ "../assets/dev/js/editor/components/template-library/views/parts/header-parts/menu.js"),
  TemplateLibraryHeaderPreviewView = __webpack_require__(/*! elementor-templates/views/parts/header-parts/preview */ "../assets/dev/js/editor/components/template-library/views/parts/header-parts/preview.js"),
  TemplateLibraryHeaderBackView = __webpack_require__(/*! elementor-templates/views/parts/header-parts/back */ "../assets/dev/js/editor/components/template-library/views/parts/header-parts/back.js"),
  TemplateLibraryCollectionView = __webpack_require__(/*! elementor-templates/views/parts/templates */ "../assets/dev/js/editor/components/template-library/views/parts/templates.js"),
  TemplateLibrarySaveTemplateView = __webpack_require__(/*! elementor-templates/views/parts/save-template */ "../assets/dev/js/editor/components/template-library/views/parts/save-template.js"),
  TemplateLibrarySaveTemplateVariantBView = __webpack_require__(/*! elementor-templates/views/parts/save-template-variant-b */ "../assets/dev/js/editor/components/template-library/views/parts/save-template-variant-b.js"),
  TemplateLibraryImportView = __webpack_require__(/*! elementor-templates/views/parts/import */ "../assets/dev/js/editor/components/template-library/views/parts/import.js"),
  TemplateLibraryConnectView = __webpack_require__(/*! elementor-templates/views/parts/connect */ "../assets/dev/js/editor/components/template-library/views/parts/connect.js"),
  TemplateLibraryCloudStateView = __webpack_require__(/*! elementor-templates/views/parts/cloud-states */ "../assets/dev/js/editor/components/template-library/views/parts/cloud-states.js"),
  TemplateLibraryPreviewView = __webpack_require__(/*! elementor-templates/views/parts/preview */ "../assets/dev/js/editor/components/template-library/views/parts/preview.js"),
  TemplateLibraryNavigationContainerView = __webpack_require__(/*! elementor-templates/views/parts/navigation-container */ "../assets/dev/js/editor/components/template-library/views/parts/navigation-container.js");
function resolveSaveTemplateByVariant(variant) {
  switch (variant) {
    case 'B':
      return TemplateLibrarySaveTemplateVariantBView;
    case 'control':
    case 'A':
    default:
      return TemplateLibrarySaveTemplateView;
  }
}
module.exports = elementorModules.common.views.modal.Layout.extend({
  getModalOptions: function getModalOptions() {
    var _window$elementor$con, _window;
    var allowClosingModal = (_window$elementor$con = (_window = window) === null || _window === void 0 || (_window = _window.elementor) === null || _window === void 0 || (_window = _window.config) === null || _window === void 0 || (_window = _window.document) === null || _window === void 0 || (_window = _window.panel) === null || _window === void 0 ? void 0 : _window.allow_closing_remote_library) !== null && _window$elementor$con !== void 0 ? _window$elementor$con : true;
    return {
      id: 'elementor-template-library-modal',
      hide: {
        onOutsideClick: allowClosingModal,
        onBackgroundClick: allowClosingModal,
        onEscKeyPress: allowClosingModal,
        ignore: '.dialog-widget-content, .dialog-buttons-undo_bulk_delete, .dialog-buttons-template_after_save, #elementor-library--infotip__dialog, #elementor-template-library-rename-dialog, #elementor-template-library-delete-dialog'
      }
    };
  },
  initModal: function initModal() {
    var _this = this;
    elementorModules.common.views.modal.Layout.prototype.initModal.call(this);
    var $widget = this.modal.getElements('widget');
    if ($widget.length && 'true' === $widget.attr('aria-modal')) {
      $widget.attr('role', 'dialog');
    }

    // Move focus inside the modal when it opens (WAI-ARIA dialog pattern)
    this.modal.on('show', function () {
      var $modalWidget = _this.modal.getElements('widget');
      if ($modalWidget.length) {
        $modalWidget.trigger('focus');
      }
    });

    // Focus trap: keep Tab/Shift+Tab cycling within the modal (WAI-ARIA dialog pattern)
    if ($widget.length) {
      $widget.on('keydown', function (event) {
        if ('Tab' !== event.key) {
          return;
        }
        var $focusable = $widget.find('a[href], button, input, select, textarea, [tabindex]').filter(':visible').not('[tabindex="-1"], [disabled]');
        if (!$focusable.length) {
          return;
        }
        var $first = $focusable.first();
        var $last = $focusable.last();
        if (event.shiftKey) {
          if ($first[0] === event.target || $widget[0] === event.target) {
            event.preventDefault();
            $last.trigger('focus');
          }
        } else if ($last[0] === event.target) {
          event.preventDefault();
          $first.trigger('focus');
        }
      });
    }
  },
  getLogoOptions: function getLogoOptions() {
    return {
      title: __('Library', 'elementor'),
      click: function click() {
        $e.run('library/open', {
          toDefault: true
        });
      }
    };
  },
  getTemplateActionButton: function getTemplateActionButton(templateData) {
    var subscriptionPlans = elementor.config.library_connect.subscription_plans,
      baseAccessTier = elementor.config.library_connect.base_access_tier,
      templateAccessTier = templateData.accessTier,
      shouldUpgrade = baseAccessTier !== templateAccessTier;
    var viewId = '#tmpl-elementor-template-library-' + (shouldUpgrade ? 'upgrade-plan-button' : 'insert-button');
    viewId = elementor.hooks.applyFilters('elementor/editor/template-library/template/action-button', viewId, templateData);
    var template = Marionette.TemplateCache.get(viewId);
    var subscriptionPlan = subscriptionPlans[templateAccessTier];
    var promotionText = elementorAppConfig.hasPro ? 'Upgrade' : "Go ".concat(subscriptionPlan.label);
    try {
      var promotionUrlPieces = new URL(subscriptionPlan.promotion_url);
      var queryString = promotionUrlPieces.searchParams.toString();
      var promotionLinkQueryString = elementor.hooks.applyFilters('elementor/editor/template-library/template/promotion-link-search-params', queryString, templateData);
      return Marionette.Renderer.render(template, {
        promotionText: promotionText,
        promotionLink: "".concat(promotionUrlPieces.origin).concat(promotionUrlPieces.pathname, "?").concat(promotionLinkQueryString)
      });
    } catch (e) {
      return Marionette.Renderer.render(template, {
        promotionText: promotionText,
        promotionLink: subscriptionPlan.promotion_url
      });
    }
  },
  setHeaderDefaultParts: function setHeaderDefaultParts() {
    var headerView = this.getHeaderView();
    headerView.tools.show(new TemplateLibraryHeaderActionsView());
    headerView.menuArea.show(new TemplateLibraryHeaderMenuView());
    this.showLogo();
  },
  showTemplatesView: function showTemplatesView(templatesCollection) {
    var prevView = this.modalContent.currentView;
    var shouldRestoreFocus = prevView && prevView._restoreFocusToSourceFilter;
    var isInitialOpen = !prevView;
    this.modalContent.show(new TemplateLibraryCollectionView({
      collection: templatesCollection
    }));
    this.syncTabpanelAriaLabelledby();
    if (shouldRestoreFocus) {
      var newView = this.modalContent.currentView;
      if (newView && newView.ui.selectSourceFilter) {
        var $selected = newView.ui.selectSourceFilter.filter('[aria-checked="true"]');
        if ($selected.length) {
          $selected.trigger('focus');
        }
      }
    } else if (isInitialOpen) {
      this.focusFirstElement();
    }
  },
  syncTabpanelAriaLabelledby: function syncTabpanelAriaLabelledby() {
    var _$e$components$get, _this$modalContent$cu;
    var activeTab = (_$e$components$get = $e.components.get('library')) === null || _$e$components$get === void 0 ? void 0 : _$e$components$get.currentTab;
    var $container = (_this$modalContent$cu = this.modalContent.currentView) === null || _this$modalContent$cu === void 0 ? void 0 : _this$modalContent$cu.$childViewContainer;
    if (activeTab && $container !== null && $container !== void 0 && $container.length) {
      $container.attr('aria-labelledby', "tab-".concat(activeTab));
    }
  },
  focusFirstElement: function focusFirstElement() {
    var $widget = this.modal.getElements('widget');
    if (!$widget.length) {
      return;
    }
    var $firstFocusable = $widget.find('button, a, input, select, [tabindex="0"]').filter(':visible').first();
    if ($firstFocusable.length) {
      $firstFocusable.trigger('focus');
    } else {
      $widget.attr('tabindex', '-1').trigger('focus');
    }
  },
  updateViewCollection: function updateViewCollection(models) {
    var _TemplateLibraryNavig;
    this.modalContent.currentView.collection.reset(models);
    this.modalContent.currentView.ui.navigationContainer.html((_TemplateLibraryNavig = new TemplateLibraryNavigationContainerView().render()) === null || _TemplateLibraryNavig === void 0 ? void 0 : _TemplateLibraryNavig.el);

    // Restore focus within the modal after re-render to prevent focus escaping to BODY
    var $widget = this.modal.getElements('widget');
    if ($widget.length && !$widget[0].contains($widget[0].ownerDocument.activeElement)) {
      this.focusFirstElement();
    }
  },
  addTemplates: function addTemplates(models) {
    this.modalContent.currentView.collection.add(models, {
      merge: true
    });
  },
  showImportView: function showImportView() {
    var headerView = this.getHeaderView();
    headerView.menuArea.reset();
    this.modalContent.show(new TemplateLibraryImportView());
    headerView.logoArea.show(new TemplateLibraryHeaderBackView());
  },
  showConnectView: function showConnectView(args) {
    this.getHeaderView().menuArea.reset();
    this.modalContent.show(new TemplateLibraryConnectView(args));
  },
  showCloudStateView: function showCloudStateView() {
    elementor.templates.layout.hideLoadingView();
    this.modalContent.show(new TemplateLibraryCloudStateView());
  },
  showSaveTemplateView: function showSaveTemplateView(elementModel) {
    var _arguments = arguments,
      _this2 = this;
    return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
      var context, headerView, experimentVariant, SaveTemplateView;
      return _regenerator.default.wrap(function (_context) {
        while (1) switch (_context.prev = _context.next) {
          case 0:
            context = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : _constants.SAVE_CONTEXTS.SAVE;
            headerView = _this2.getHeaderView();
            headerView.menuArea.reset();
            if (_constants.SAVE_CONTEXTS.SAVE !== context) {
              headerView.logoArea.show(new TemplateLibraryHeaderBackView());
            }
            _context.next = 1;
            return elementor.templates.eventManager.getSaveTemplateExperimentVariant();
          case 1:
            experimentVariant = _context.sent;
            SaveTemplateView = resolveSaveTemplateByVariant(experimentVariant);
            elementor.templates.eventManager.startSaveTemplateExperiment(experimentVariant);
            _this2.modalContent.show(new SaveTemplateView({
              model: elementModel,
              context: context
            }));
          case 2:
          case "end":
            return _context.stop();
        }
      }, _callee);
    }))();
  },
  showPreviewView: function showPreviewView(templateModel) {
    this.modalContent.show(new TemplateLibraryPreviewView({
      url: templateModel.get('url')
    }));
    var headerView = this.getHeaderView();
    headerView.menuArea.reset();
    headerView.tools.show(new TemplateLibraryHeaderPreviewView({
      model: templateModel
    }));
    headerView.logoArea.show(new TemplateLibraryHeaderBackView());
  },
  showFolderView: function showFolderView(elementModel) {
    return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
      return _regenerator.default.wrap(function (_context2) {
        while (1) switch (_context2.prev = _context2.next) {
          case 0:
            _context2.prev = 0;
            elementor.templates.layout.showLoadingView();
            _context2.next = 1;
            return elementor.templates.getFolderTemplates(elementModel);
          case 1:
            _context2.prev = 1;
            elementor.templates.layout.hideLoadingView();
            return _context2.finish(1);
          case 2:
          case "end":
            return _context2.stop();
        }
      }, _callee2, null, [[0,, 1, 2]]);
    }))();
  },
  createScreenshotIframe: function createScreenshotIframe(previewUrl) {
    var iframe = document.createElement('iframe');
    iframe.src = previewUrl;
    iframe.width = '1200';
    iframe.height = '500';
    iframe.style = 'visibility: hidden;';
    document.body.appendChild(iframe);
    return iframe;
  },
  handleBulkActionBarUi: function handleBulkActionBarUi() {
    if (0 === this.modalContent.currentView.$('.bulk-selection-item-checkbox:checked').length) {
      this.modalContent.currentView.$el.addClass('no-bulk-selections');
      this.modalContent.currentView.$el.removeClass('has-bulk-selections');
    } else {
      this.modalContent.currentView.$el.addClass('has-bulk-selections');
      this.modalContent.currentView.$el.removeClass('no-bulk-selections');
    }
    this.handleBulkActionBar();
  },
  handleBulkActionBar: function handleBulkActionBar() {
    var _elementor$templates$;
    var selectedCount = (_elementor$templates$ = elementor.templates.getBulkSelectionItems().size) !== null && _elementor$templates$ !== void 0 ? _elementor$templates$ : 0;
    var display = 0 === selectedCount ? 'none' : 'flex';
    var countText = "".concat(selectedCount, " Selected");
    var announcementText = 0 === selectedCount ? '' : "".concat(selectedCount, " ").concat(1 === selectedCount ? __('template', 'elementor') : __('templates', 'elementor'), " ").concat(__('selected. Bulk actions available.', 'elementor'));
    this.modalContent.currentView.ui.bulkSelectedCount.html(countText);
    if (announcementText && this.modalContent.currentView.ui.bulkSelectedCount.length) {
      this.modalContent.currentView.ui.bulkSelectedCount.attr('aria-label', announcementText);
    }
    this.modalContent.currentView.ui.bulkSelectionActionBar.css('display', display);

    // TODO: Temporary fix until the bulk action bar will be as separate view.
    var displayNavigationContainer = 0 === selectedCount ? 'flex' : 'none';
    this.modalContent.currentView.ui.navigationContainer.css('display', displayNavigationContainer);
  },
  selectAllCheckboxMinus: function selectAllCheckboxMinus() {
    if (this.isListView()) {
      this.modalContent.currentView.ui.bulkSelectAllCheckbox.addClass('checkbox-minus');
    }
  },
  selectAllCheckboxNormal: function selectAllCheckboxNormal() {
    if (this.isListView()) {
      this.modalContent.currentView.ui.bulkSelectAllCheckbox.removeClass('checkbox-minus');
    }
  },
  isListView: function isListView() {
    return 'list' === elementor.templates.getViewSelection();
  },
  resetSortingUI: function resetSortingUI() {
    var _this$modalContent$cu2;
    Array.from(((_this$modalContent$cu2 = this.modalContent.currentView.ui) === null || _this$modalContent$cu2 === void 0 ? void 0 : _this$modalContent$cu2.orderInputs) || []).forEach(function (input) {
      input.checked = false;
    });
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/parts/cloud-states.js":
/*!***************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/parts/cloud-states.js ***!
  \***************************************************************************************/
/***/ ((module, __unused_webpack_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");
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
module.exports = Marionette.ItemView.extend({
  tagName: 'main',
  template: '#tmpl-elementor-template-library-connect-states',
  id: 'elementor-template-library-connect-states',
  ui: {
    selectSourceFilter: '.elementor-template-library-filter-select-source .source-option',
    title: '.elementor-template-library-blank-title',
    message: '.elementor-template-library-blank-message',
    icon: '.elementor-template-library-blank-icon',
    button: '.elementor-template-library-cloud-empty__button',
    cloudBadge: '.elementor-template-library-connect-states-badge .source-option-badge.cloud-badge'
  },
  events: {
    'click @ui.selectSourceFilter': 'onSelectSourceFilterChange',
    'click @ui.button': 'onButtonClick'
  },
  modesStrings: function modesStrings() {
    var _elementorAppConfig$c, _elementorAppConfig, _elementorAppConfig$c2, _elementorAppConfig2, _elementorAppConfig3, _elementorAppConfig$c3, _elementorAppConfig4;
    var defaultIcon = this.getDefaultIcon();
    return {
      notConnected: {
        title: (_elementorAppConfig$c = (_elementorAppConfig = elementorAppConfig) === null || _elementorAppConfig === void 0 || (_elementorAppConfig = _elementorAppConfig['cloud-library']) === null || _elementorAppConfig === void 0 ? void 0 : _elementorAppConfig.library_connect_title_copy) !== null && _elementorAppConfig$c !== void 0 ? _elementorAppConfig$c : __('Connect to your Elementor account', 'elementor'),
        message: (_elementorAppConfig$c2 = (_elementorAppConfig2 = elementorAppConfig) === null || _elementorAppConfig2 === void 0 || (_elementorAppConfig2 = _elementorAppConfig2['cloud-library']) === null || _elementorAppConfig2 === void 0 ? void 0 : _elementorAppConfig2.library_connect_sub_title_copy) !== null && _elementorAppConfig$c2 !== void 0 ? _elementorAppConfig$c2 : __('Then you can find all your templates in one convenient library.', 'elementor'),
        icon: defaultIcon,
        button: "<a class=\"elementor-button e-primary connect-button\" href=\"".concat((_elementorAppConfig3 = elementorAppConfig) === null || _elementorAppConfig3 === void 0 || (_elementorAppConfig3 = _elementorAppConfig3['cloud-library']) === null || _elementorAppConfig3 === void 0 ? void 0 : _elementorAppConfig3.library_connect_url, "\" target=\"_blank\">").concat((_elementorAppConfig$c3 = (_elementorAppConfig4 = elementorAppConfig) === null || _elementorAppConfig4 === void 0 || (_elementorAppConfig4 = _elementorAppConfig4['cloud-library']) === null || _elementorAppConfig4 === void 0 ? void 0 : _elementorAppConfig4.library_connect_button_copy) !== null && _elementorAppConfig$c3 !== void 0 ? _elementorAppConfig$c3 : __('Connect', 'elementor'), "</a>")
      },
      connectedNoQuota: {
        title: __('It’s time to level up', 'elementor'),
        message: __('Elementor Pro plans come with Cloud Templates.', 'elementor') + '<br>' + __('Upgrade now to re-use your templates on all the websites you’re working on.', 'elementor'),
        icon: "<i class=\"eicon-library-subscription-upgrade\" aria-hidden=\"true\" title=\"".concat(__('Upgrade now', 'elememntor'), "\"></i>"),
        button: "<a class=\"elementor-button e-accent\" href=\"https://go.elementor.com/go-pro-cloud-templates-cloud-tab\" target=\"_blank\">".concat(__('Upgrade now', 'elementor'), "</a>")
      },
      deactivated: {
        title: __('Your library has been deactivated', 'elementor'),
        message: __('This is because you don’t have an active subscription.', 'elementor') + '<br>' + __('Your templates are saved for 90 days from the day your subscription expires,', 'elementor') + '<br>' + __('then they’ll be gone forever.', 'elementor'),
        icon: "<i class=\"eicon-library-subscription-upgrade\" aria-hidden=\"true\" title=\"".concat(__('Renew my subscription', 'elememntor'), "\"></i>"),
        button: "<a class=\"elementor-button e-accent\" href=\"https://go.elementor.com/renew-license-cloud-templates-cloud-tab\" target=\"_blank\">".concat(__('Renew my subscription', 'elementor'), "</a>")
      }
    };
  },
  getDefaultIcon: function getDefaultIcon() {
    return "<i class=\"eicon-library-cloud-connect\" aria-hidden=\"true\" title=\"".concat(__('Empty folder', 'elememntor'), "\"></i>");
  },
  getCurrentMode: function getCurrentMode() {
    if (!elementor.config.library_connect.is_connected) {
      return 'notConnected';
    }
    if (elementor.templates.cloudLibraryIsDeactivated()) {
      return 'deactivated';
    }
    return 'connectedNoQuota';
  },
  onRender: function onRender() {
    var _elementor$templates$;
    this.updateTemplateMarkup();
    this.handleElementorConnect();
    this.handleCloudBadge();
    (_elementor$templates$ = elementor.templates.layout.getHeaderView()) === null || _elementor$templates$ === void 0 || (_elementor$templates$ = _elementor$templates$.tools) === null || _elementor$templates$ === void 0 || (_elementor$templates$ = _elementor$templates$.$el[0]) === null || _elementor$templates$ === void 0 || (_elementor$templates$ = _elementor$templates$.classList) === null || _elementor$templates$ === void 0 || _elementor$templates$.add('e-hidden-disabled');
    elementor.templates.eventManager.sendPageViewEvent({
      location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.cloudTabUpgrade
    });
  },
  handleCloudBadge: function handleCloudBadge() {
    var _this = this;
    return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
      var _this$ui$cloudBadge;
      var experimentVariant;
      return _regenerator.default.wrap(function (_context) {
        while (1) switch (_context.prev = _context.next) {
          case 0:
            if ((_this$ui$cloudBadge = _this.ui.cloudBadge) !== null && _this$ui$cloudBadge !== void 0 && _this$ui$cloudBadge.length) {
              _context.next = 1;
              break;
            }
            return _context.abrupt("return");
          case 1:
            _context.next = 2;
            return elementor.templates.eventManager.getSaveTemplateExperimentVariant();
          case 2:
            experimentVariant = _context.sent;
            _this.ui.cloudBadge.toggle('B' === experimentVariant);
          case 3:
          case "end":
            return _context.stop();
        }
      }, _callee);
    }))();
  },
  updateTemplateMarkup: function updateTemplateMarkup() {
    var modeStrings = this.modesStrings()[this.getCurrentMode()];
    this.ui.title.html(modeStrings.title);
    this.ui.message.html(modeStrings.message);
    this.ui.button.html(modeStrings.button);
    this.ui.icon.html(modeStrings.icon);
  },
  handleElementorConnect: function handleElementorConnect() {
    var $connectButton = this.$el.find('.connect-button');
    if (!$connectButton.length) {
      return;
    }
    $connectButton.elementorConnect({
      popup: {
        width: 726,
        height: 534
      },
      success: function success() {
        elementor.config.library_connect.is_connected = true;
        elementor.notifications.showToast({
          message: __('Connected successfully.', 'elementor')
        });
        $e.routes.refreshContainer('library');
      },
      error: function error() {
        elementor.config.library_connect.is_connected = false;
      }
    });
  },
  onSelectSourceFilterChange: function onSelectSourceFilterChange(event) {
    elementor.templates.onSelectSourceFilterChange(event);
  },
  onButtonClick: function onButtonClick() {
    elementor.templates.eventManager.sendUpgradeClickedEvent({
      secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.cloudTab,
      upgradePosition: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.cloudTab
    });
  },
  onDestroy: function onDestroy() {
    var _elementor$templates$2;
    (_elementor$templates$2 = elementor.templates.layout.getHeaderView()) === null || _elementor$templates$2 === void 0 || (_elementor$templates$2 = _elementor$templates$2.tools) === null || _elementor$templates$2 === void 0 || (_elementor$templates$2 = _elementor$templates$2.$el[0]) === null || _elementor$templates$2 === void 0 || (_elementor$templates$2 = _elementor$templates$2.classList) === null || _elementor$templates$2 === void 0 || _elementor$templates$2.remove('e-hidden-disabled');
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/parts/connect.js":
/*!**********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/parts/connect.js ***!
  \**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


module.exports = Marionette.ItemView.extend({
  tagName: 'main',
  template: '#tmpl-elementor-template-library-connect',
  id: 'elementor-template-library-connect',
  ui: {
    connect: '#elementor-template-library-connect__button',
    thumbnails: '#elementor-template-library-connect-thumbnails'
  },
  templateHelpers: function templateHelpers() {
    return this.getOption('texts');
  },
  onRender: function onRender() {
    var _this = this;
    elementor.templates.eventManager.sendPageViewEvent({
      location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.cloudTabConnect
    });
    this.ui.connect.elementorConnect({
      parseUrl: function parseUrl(url) {
        return url.replace('%%template_type%%', _this.model.get('type'));
      },
      success: function success() {
        elementor.config.library_connect.is_connected = true;

        // If is connecting during insert template.
        if (_this.getOption('model')) {
          $e.run('library/insert-template', {
            model: _this.getOption('model')
          });
        } else {
          $e.run('library/close');
          elementor.notifications.showToast({
            message: __('Connected successfully.', 'elementor')
          });
        }
      },
      error: function error() {
        elementor.config.library_connect.is_connected = false;
      }
    });
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/parts/folders/folder-empty.js":
/*!***********************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/parts/folders/folder-empty.js ***!
  \***********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


module.exports = Marionette.ItemView.extend({
  tagName: 'li',
  className: 'no-results',
  template: _.template(sprintf(/* Translators: 1: Empty message, 2: CTA. */
  '<i class="eicon-folder-plus" aria-hidden="true"></i><br><p>%1$s<br>%2$s</p>', __('Folders you create will appear here.', 'elementor'), __('To create a new one, go to Cloud Templates.', 'elementor')))
});

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/parts/folders/folder-item.js":
/*!**********************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/parts/folders/folder-item.js ***!
  \**********************************************************************************************/
/***/ ((module) => {

"use strict";


module.exports = Marionette.ItemView.extend({
  tagName: 'li',
  template: _.template('<i class="eicon-folder-o" aria-hidden="true"></i><%= title %>'),
  className: 'folder-item',
  attributes: function attributes() {
    var data = this.model.toJSON();
    return {
      'data-id': data.template_id,
      'data-value': data.title,
      role: 'option',
      tabindex: '-1'
    };
  },
  render: function render() {
    this.$el.html(this.template(this.model.toJSON()));
    return this;
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/parts/folders/folders-list.js":
/*!***********************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/parts/folders/folders-list.js ***!
  \***********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var EmptyView = __webpack_require__(/*! ./folder-empty */ "../assets/dev/js/editor/components/template-library/views/parts/folders/folder-empty.js");
var FolderItemView = __webpack_require__(/*! ./folder-item */ "../assets/dev/js/editor/components/template-library/views/parts/folders/folder-item.js");
module.exports = Marionette.CollectionView.extend({
  tagName: 'ul',
  className: 'folder-list',
  childView: FolderItemView,
  emptyView: EmptyView,
  attributes: {
    role: 'listbox',
    'aria-label': 'Folders'
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/parts/global-styles-dialog.js":
/*!***********************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/parts/global-styles-dialog.js ***!
  \***********************************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports["default"] = void 0;
exports.showGlobalStylesDialog = showGlobalStylesDialog;
function showGlobalStylesDialog() {
  return new Promise(function (resolve, reject) {
    var settled = false;
    var dialog = elementorCommon.dialogsManager.createWidget('lightbox', {
      id: 'elementor-global-styles-dialog',
      headerMessage: '',
      message: wp.template('elementor-global-styles-dialog')(),
      position: {
        my: 'center',
        at: 'center'
      },
      hide: {
        onBackgroundClick: false
      },
      onShow: function onShow() {
        setupDialogEventListeners(dialog, function (payload) {
          if (settled) {
            return;
          }
          settled = true;
          resolve(payload);
          dialog.hide();
        }, function (error) {
          if (settled) {
            return;
          }
          settled = true;
          reject(error);
          dialog.hide();
        });
      },
      onHide: function onHide() {
        if (settled) {
          return;
        }
        settled = true;
        reject(new Error('Dialog closed'));
      }
    });
    dialog.show();
  });
}
function setupDialogEventListeners(dialog, resolve, reject) {
  var $content = dialog.getElements('message');
  var $matchRadio = $content.find('#elementor-global-styles-match');
  var $keepRadio = $content.find('#elementor-global-styles-keep');
  var $createCheckbox = $content.find('#elementor-global-styles-create');
  var $checkboxContainer = $content.find('.elementor-global-styles-dialog__checkbox-container');
  var $insertBtn = $content.find('#elementor-global-styles-insert');
  var $cancelBtn = $content.find('#elementor-global-styles-cancel');
  $matchRadio.off('.elementorGlobalStyles').on('change.elementorGlobalStyles', function () {
    $checkboxContainer.hide();
  });
  $keepRadio.off('.elementorGlobalStyles').on('change.elementorGlobalStyles', function () {
    $checkboxContainer.show();
  });
  $insertBtn.off('.elementorGlobalStyles').on('click.elementorGlobalStyles', function () {
    var mode;
    if ($matchRadio.is(':checked')) {
      mode = 'match_site';
    } else if ($createCheckbox.is(':checked')) {
      mode = 'keep_create';
    } else {
      mode = 'keep_flatten';
    }
    resolve({
      mode: mode
    });
  });
  $cancelBtn.off('.elementorGlobalStyles').on('click.elementorGlobalStyles', function () {
    reject(new Error('User cancelled'));
  });
}
var _default = exports["default"] = showGlobalStylesDialog;

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/parts/header-parts/actions.js":
/*!***********************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/parts/header-parts/actions.js ***!
  \***********************************************************************************************/
/***/ ((module) => {

"use strict";


module.exports = Marionette.ItemView.extend({
  template: '#tmpl-elementor-template-library-header-actions',
  id: 'elementor-template-library-header-actions',
  ui: {
    import: '#elementor-template-library-header-import',
    importIcon: '#elementor-template-library-header-import i',
    sync: '#elementor-template-library-header-sync',
    syncIcon: '#elementor-template-library-header-sync i',
    save: '#elementor-template-library-header-save',
    saveIcon: '#elementor-template-library-header-save i'
  },
  events: {
    'click @ui.import': 'onImportClick',
    'click @ui.sync': 'onSyncClick',
    'click @ui.save': 'onSaveClick'
  },
  onImportClick: function onImportClick() {
    $e.route('library/import');
  },
  onRender: function onRender() {
    var _$e$components$get$cu;
    var currentTab = (_$e$components$get$cu = $e.components.get('library').currentTab) !== null && _$e$components$get$cu !== void 0 ? _$e$components$get$cu : '';
    this.ui.import.toggleClass('elementor-hidden', 'templates/my-templates' !== currentTab);
  },
  onSyncClick: function onSyncClick() {
    var self = this;
    self.ui.syncIcon.addClass('eicon-animation-spin');
    elementor.templates.requestLibraryData({
      onUpdate: function onUpdate() {
        self.ui.syncIcon.removeClass('eicon-animation-spin');
        $e.routes.refreshContainer('library');
      },
      forceUpdate: true,
      forceSync: true
    });
  },
  onSaveClick: function onSaveClick() {
    $e.route('library/save-template');
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/parts/header-parts/back.js":
/*!********************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/parts/header-parts/back.js ***!
  \********************************************************************************************/
/***/ ((module) => {

"use strict";


module.exports = Marionette.ItemView.extend({
  template: '#tmpl-elementor-template-library-header-back',
  id: 'elementor-template-library-header-preview-back',
  events: {
    'click .elementor-template-library-header-back-button': 'onClick'
  },
  onClick: function onClick() {
    $e.routes.restoreState('library');
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/parts/header-parts/menu.js":
/*!********************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/parts/header-parts/menu.js ***!
  \********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var _keyboardNav = __webpack_require__(/*! elementor-editor-utils/keyboard-nav */ "../assets/dev/js/editor/utils/keyboard-nav.js");
module.exports = Marionette.ItemView.extend({
  template: '#tmpl-elementor-template-library-header-menu',
  id: 'elementor-template-library-header-menu',
  ui: {
    tabs: '[role="tab"]'
  },
  events: {
    'keydown @ui.tabs': 'onTabKeyDown'
  },
  templateHelpers: function templateHelpers() {
    return {
      tabs: $e.components.get('library').getTabs()
    };
  },
  attributes: function attributes() {
    return {
      role: 'tablist',
      'aria-label': __('Library sections', 'elementor')
    };
  },
  onTabKeyDown: function onTabKeyDown(event) {
    (0, _keyboardNav.rovingTabindex)({
      event: event,
      $items: this.ui.tabs,
      orientation: 'horizontal',
      onActivate: function onActivate() {
        // Tabs activate on arrow navigation, not Enter/Space.
      }
    });

    // After rovingTabindex moves focus to the new tab, activate it.
    // activateTab triggers a re-render, so we must re-query the DOM afterwards.
    var $focused = jQuery(event.currentTarget.ownerDocument.activeElement);
    var targetTabName = $focused.data('tab');
    if (!targetTabName) {
      return;
    }
    var libraryComponent = $e.components.get('library');
    if (!libraryComponent) {
      return;
    }
    try {
      libraryComponent.activateTab(targetTabName);
      var $tabAfterRerender = jQuery("#elementor-template-library-header-menu [data-tab=\"".concat(targetTabName, "\"]"));
      if ($tabAfterRerender.length) {
        $tabAfterRerender.trigger('focus');
      }
    } catch (error) {
      // eslint-disable-next-line no-console
      console.error('Tab activation failed:', error);
    }
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/parts/header-parts/preview.js":
/*!***********************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/parts/header-parts/preview.js ***!
  \***********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var TemplateLibraryInsertTemplateBehavior = __webpack_require__(/*! elementor-templates/behaviors/insert-template */ "../assets/dev/js/editor/components/template-library/behaviors/insert-template.js");
module.exports = Marionette.ItemView.extend({
  template: '#tmpl-elementor-template-library-header-preview',
  id: 'elementor-template-library-header-preview',
  behaviors: {
    insertTemplate: {
      behaviorClass: TemplateLibraryInsertTemplateBehavior
    }
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/parts/import.js":
/*!*********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/parts/import.js ***!
  \*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
var _filesUploadHandler = _interopRequireDefault(__webpack_require__(/*! ../../../../utils/files-upload-handler */ "../assets/dev/js/editor/utils/files-upload-handler.js"));
var _jsonUploadWarningMessage = __webpack_require__(/*! elementor-utils/json-upload-warning-message */ "../assets/dev/js/utils/json-upload-warning-message.js");
var _globalStylesDialog = __webpack_require__(/*! ./global-styles-dialog */ "../assets/dev/js/editor/components/template-library/views/parts/global-styles-dialog.js");
var TemplateLibraryImportView;
TemplateLibraryImportView = Marionette.ItemView.extend({
  tagName: 'main',
  template: '#tmpl-elementor-template-library-import',
  id: 'elementor-template-library-import',
  ui: {
    uploadForm: '#elementor-template-library-import-form',
    fileInput: '#elementor-template-library-import-form-input',
    icon: '.elementor-template-library-blank-icon i'
  },
  events: {
    'change @ui.fileInput': 'onFileInputChange'
  },
  droppedFiles: null,
  submitForm: function submitForm() {
    var _this = this;
    var file;
    if (this.droppedFiles) {
      file = this.droppedFiles[0];
      this.droppedFiles = null;
    } else {
      file = this.ui.fileInput[0].files[0];
      this.ui.uploadForm[0].reset();
    }
    var fileReader = new FileReader();
    fileReader.onload = function (event) {
      return _this.importTemplate(file.name, event.target.result.replace(/^[^,]+,/, ''));
    };
    fileReader.readAsDataURL(file);
  },
  importTemplate: function importTemplate(fileName, fileData) {
    var _this2 = this;
    return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
      var layout, activeSource, jsonContent, _yield$showGlobalStyl, mode, enableUnfilteredFilesModal, _t, _t2;
      return _regenerator.default.wrap(function (_context) {
        while (1) switch (_context.prev = _context.next) {
          case 0:
            layout = elementor.templates.layout;
            activeSource = elementor.templates.getFilter('source');
            _this2.options = {
              data: {
                fileName: fileName,
                fileData: fileData,
                source: activeSource
              },
              success: function success(successData) {
                elementor.templates.clearLastRemovedItems();
                elementor.templates.getTemplatesCollection().add(successData);
                elementor.templates.setToastConfig({
                  show: true,
                  options: {
                    /* Translators: 1: Number of templates */
                    message: sprintf(__('You successfully imported %1$d template(s).', 'elementor'), successData.length),
                    position: {
                      my: 'right bottom',
                      at: 'right-10 bottom-10',
                      of: '#elementor-template-library-modal .dialog-lightbox-widget-content'
                    }
                  }
                });
                $e.route('library/templates/my-templates');
                elementor.templates.triggerQuotaUpdate();
                elementor.templates.eventManager.sendTemplateImportEvent({
                  library_type: activeSource,
                  file_type: fileName.split('.').pop(),
                  template_count: successData.length
                });
              },
              error: function error(errorData) {
                elementor.templates.showErrorDialog(errorData);
                layout.showImportView();
              },
              complete: function complete() {
                layout.hideLoadingView();
              }
            };
            _context.next = 1;
            return (0, _jsonUploadWarningMessage.showJsonUploadWarningMessageIfNeeded)({
              introductionMap: window.elementor.config.user.introduction,
              IntroductionClass: window.elementorModules.editor.utils.Introduction
            });
          case 1:
            if (!fileName.endsWith('.json')) {
              _context.next = 8;
              break;
            }
            _context.prev = 2;
            jsonContent = JSON.parse(atob(fileData));
            if (!elementor.templates.hasGlobalStyles(jsonContent)) {
              _context.next = 6;
              break;
            }
            _context.prev = 3;
            _context.next = 4;
            return (0, _globalStylesDialog.showGlobalStylesDialog)();
          case 4:
            _yield$showGlobalStyl = _context.sent;
            mode = _yield$showGlobalStyl.mode;
            _this2.options.data.import_mode = mode;
            _context.next = 6;
            break;
          case 5:
            _context.prev = 5;
            _t = _context["catch"](3);
            return _context.abrupt("return");
          case 6:
            _context.next = 8;
            break;
          case 7:
            _context.prev = 7;
            _t2 = _context["catch"](2);
            console.warn('Failed to parse template JSON for global styles check:', _t2); // eslint-disable-line no-console
          case 8:
            if (!elementorCommon.config.filesUpload.unfilteredFiles) {
              enableUnfilteredFilesModal = _filesUploadHandler.default.getUnfilteredFilesNotEnabledImportTemplateDialog(function () {
                return _this2.sendImportRequest();
              });
              enableUnfilteredFilesModal.show();
            } else {
              _this2.sendImportRequest();
            }
          case 9:
          case "end":
            return _context.stop();
        }
      }, _callee, null, [[2, 7], [3, 5]]);
    }))();
  },
  sendImportRequest: function sendImportRequest() {
    elementorCommon.ajax.addRequest('import_template', this.options);
    elementor.templates.layout.showLoadingView();
  },
  onRender: function onRender() {
    this.ui.uploadForm.on({
      'drag dragstart dragend dragover dragenter dragleave drop': this.onFormActions.bind(this),
      dragenter: this.onFormDragEnter.bind(this),
      'dragleave drop': this.onFormDragLeave.bind(this),
      drop: this.onFormDrop.bind(this)
    });
    this.resolveIcon();
    elementor.templates.eventManager.sendPageViewEvent({
      location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.importModal
    });
  },
  resolveIcon: function resolveIcon() {
    var activeSource = elementor.templates.getFilter('source') || 'local';
    var className = 'local' === activeSource ? 'eicon-library-upload' : 'eicon-library-import';
    this.ui.icon.removeClass().addClass(className);
  },
  onFormActions: function onFormActions(event) {
    event.preventDefault();
    event.stopPropagation();
  },
  onFormDragEnter: function onFormDragEnter() {
    this.ui.uploadForm.addClass('elementor-drag-over');
  },
  onFormDragLeave: function onFormDragLeave(event) {
    if (jQuery(event.relatedTarget).closest(this.ui.uploadForm).length) {
      return;
    }
    this.ui.uploadForm.removeClass('elementor-drag-over');
  },
  onFormDrop: function onFormDrop(event) {
    this.droppedFiles = event.originalEvent.dataTransfer.files;
    this.submitForm();
  },
  onFileInputChange: function onFileInputChange() {
    this.submitForm();
  }
});
module.exports = TemplateLibraryImportView;

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/parts/navigation-container.js":
/*!***********************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/parts/navigation-container.js ***!
  \***********************************************************************************************/
/***/ ((module) => {

"use strict";


module.exports = Marionette.ItemView.extend({
  template: '#tmpl-elementor-template-library-navigation-container',
  className: 'elementor-template-library-navigation-container',
  ui: {
    title: '.elementor-template-library-current-folder-title',
    backButton: '.elementor-template-library-navigation-back-button'
  },
  events: {
    'click @ui.backButton': 'onBackButtonClick'
  },
  render: function render() {
    if (null === elementor.templates.getFilter('parent')) {
      return this;
    }
    return Marionette.ItemView.prototype.render.call(this);
  },
  onRender: function onRender() {
    var _elementor$templates$;
    this.ui.title.text((_elementor$templates$ = elementor.templates.getFilter('parent')) === null || _elementor$templates$ === void 0 ? void 0 : _elementor$templates$.title);
  },
  onBackButtonClick: function onBackButtonClick() {
    elementor.templates.setFilter('parent', null);
    $e.route('library/templates/my-templates');
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/parts/preview.js":
/*!**********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/parts/preview.js ***!
  \**********************************************************************************/
/***/ ((module) => {

"use strict";


var TemplateLibraryPreviewView;
TemplateLibraryPreviewView = Marionette.ItemView.extend({
  tagName: 'main',
  template: '#tmpl-elementor-template-library-preview',
  id: 'elementor-template-library-preview',
  ui: {
    iframe: '> iframe'
  },
  onRender: function onRender() {
    this.ui.iframe.attr('src', this.getOption('url'));
  }
});
module.exports = TemplateLibraryPreviewView;

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/parts/save-template-variant-b.js":
/*!**************************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/parts/save-template-variant-b.js ***!
  \**************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];


var TemplateLibrarySaveTemplateView = __webpack_require__(/*! ./save-template */ "../assets/dev/js/editor/components/template-library/views/parts/save-template.js");
var TemplateLibrarySaveTemplateVariantBView = TemplateLibrarySaveTemplateView.extend({
  id: 'elementor-template-library-save-template-variant-b',
  template: '#tmpl-elementor-template-library-save-template-variant-b',
  ui: function ui() {
    return _.extend(TemplateLibrarySaveTemplateView.prototype.ui.apply(this, arguments), {
      selectFolderLink: '.select-folder-link',
      cloudAccountBadge: '.cloud-account-badge',
      siteAccountBadge: '.site-account-badge',
      connect: '#elementor-template-library-connect__badge-variant-b'
    });
  },
  events: function events() {
    return _.extend(TemplateLibrarySaveTemplateView.prototype.events.apply(this, arguments), {
      'click @ui.selectFolderLink': 'onEllipsisIconClick',
      'mouseenter @ui.upgradeBadge': 'showInfoTip',
      'mouseenter @ui.cloudAccountBadge': 'showCloudAccountBadgeTooltip',
      'mouseenter @ui.siteAccountBadge': 'showSiteAccountBadgeTooltip',
      'mouseleave @ui.cloudAccountBadge': 'hideCloudAccountBadgeTooltip',
      'mouseleave @ui.siteAccountBadge': 'hideSiteAccountBadgeTooltip',
      'mouseleave @ui.upgradeBadge': 'hideInfoTip'
    });
  },
  getConnectInfoTipPosition: function getConnectInfoTipPosition() {
    return 'top-50';
  },
  addVariantClass: function addVariantClass($widget) {
    return $widget.addClass('variant-b');
  },
  showInfoTip: function showInfoTip() {
    if (this.infoTipDialog) {
      this.infoTipDialog.hide();
    }
    var message = elementor.templates.hasCloudLibraryQuota() ? __('Upgrade your subscription to get more space and reuse saved assets across all your sites.', 'elementor') : __('Upgrade your subscription to access Cloud Templates and reuse saved assets across all your sites.', 'elementor');
    this.infoTipDialog = elementor.dialogsManager.createWidget('buttons', {
      id: 'elementor-library--infotip__dialog',
      effects: {
        show: 'show',
        hide: 'hide'
      },
      position: {
        of: this.ui.upgradeBadge,
        at: 'top-50'
      }
    }).setMessage(message);
    this.infoTipDialog.getElements('header').remove();
    this.infoTipDialog.getElements('buttonsWrapper').remove();
    this.infoTipDialog.getElements('widget').addClass('variant-b');
    this.infoTipDialog.show();
    this.sendCTBadgeEvent('cloud');
  },
  showCloudAccountBadgeTooltip: function showCloudAccountBadgeTooltip() {
    if (this.cloudAccountBadgeDialog) {
      this.cloudAccountBadgeDialog.hide();
    }
    var emailReplacement = elementor.config.library_connect.is_connected ? elementor.config.library_connect.user_email : __('connected', 'elementor');
    /* Translators: %s: User's email. */
    var message = sprintf(__('Only %s Elementor account can access Cloud Templates from any connected site.', 'elementor'), emailReplacement);
    this.cloudAccountBadgeDialog = elementor.dialogsManager.createWidget('buttons', {
      id: 'elementor-library--cloud-upgrade__dialog',
      effects: {
        show: 'show',
        hide: 'hide'
      },
      position: {
        of: this.ui.cloudAccountBadge,
        at: 'top-55'
      }
    }).setMessage(message);
    this.cloudAccountBadgeDialog.getElements('widget').addClass('variant-b');
    this.cloudAccountBadgeDialog.getElements('header').remove();
    this.cloudAccountBadgeDialog.getElements('buttonsWrapper').remove();
    this.cloudAccountBadgeDialog.show();
  },
  hideCloudAccountBadgeTooltip: function hideCloudAccountBadgeTooltip() {
    if (this.cloudAccountBadgeDialog) {
      this.cloudAccountBadgeDialog.hide();
    }
  },
  showSiteAccountBadgeTooltip: function showSiteAccountBadgeTooltip() {
    if (this.siteAccountBadgeDialog) {
      this.siteAccountBadgeDialog.hide();
    }
    var message = __('Authorized users on this site can access Site Templates.', 'elementor');
    this.siteAccountBadgeDialog = elementor.dialogsManager.createWidget('buttons', {
      id: 'elementor-library--site-info__dialog',
      effects: {
        show: 'show',
        hide: 'hide'
      },
      position: {
        of: this.ui.siteAccountBadge,
        at: 'top-35'
      }
    }).setMessage(message);
    this.siteAccountBadgeDialog.getElements('widget').addClass('variant-b');
    this.siteAccountBadgeDialog.getElements('header').remove();
    this.siteAccountBadgeDialog.getElements('buttonsWrapper').remove();
    this.siteAccountBadgeDialog.show();
    this.sendCTBadgeEvent('site');
  },
  hideSiteAccountBadgeTooltip: function hideSiteAccountBadgeTooltip() {
    if (this.siteAccountBadgeDialog) {
      this.siteAccountBadgeDialog.hide();
    }
  },
  sendCTBadgeEvent: function sendCTBadgeEvent(badgeType) {
    elementor.templates.eventManager.sendCTBadgeEvent({
      ct_badge_hover_position: this.getOption('context'),
      ct_badge_type: badgeType,
      ct_position_state: this.getPositionState()
    });
  },
  getPositionState: function getPositionState() {
    if (!elementor.config.library_connect.is_connected) {
      return 'connect';
    }
    if (!elementor.templates.hasCloudLibraryQuota() || this.cloudMaxCapacityReached()) {
      return 'upgrade';
    }
    return 'eligible';
  }
});
module.exports = TemplateLibrarySaveTemplateVariantBView;

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/parts/save-template.js":
/*!****************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/parts/save-template.js ***!
  \****************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
var _constants = __webpack_require__(/*! ./../../constants */ "../assets/dev/js/editor/components/template-library/constants.js");
var _keyboardNav = __webpack_require__(/*! elementor-editor-utils/keyboard-nav */ "../assets/dev/js/editor/utils/keyboard-nav.js");
var TemplateLibraryTemplateModel = __webpack_require__(/*! elementor-templates/models/template */ "../assets/dev/js/editor/components/template-library/models/template.js");
var TemplateLibraryCollection = __webpack_require__(/*! elementor-templates/collections/templates */ "../assets/dev/js/editor/components/template-library/collections/templates.js");
var FolderCollectionView = __webpack_require__(/*! ./folders/folders-list */ "../assets/dev/js/editor/components/template-library/views/parts/folders/folders-list.js");
var LOAD_MORE_ID = 0;
var TemplateLibrarySaveTemplateView = Marionette.ItemView.extend({
  tagName: 'main',
  id: 'elementor-template-library-save-template',
  template: '#tmpl-elementor-template-library-save-template',
  ui: function ui() {
    return {
      form: '#elementor-template-library-save-template-form',
      submitButton: '#elementor-template-library-save-template-submit',
      ellipsisIcon: '.cloud-library-form-inputs .ellipsis-container',
      foldersList: '.cloud-folder-selection-dropdown ul',
      foldersDropdown: '.cloud-folder-selection-dropdown',
      foldersListContainer: '.cloud-folder-selection-dropdown-list',
      removeFolderSelection: '.source-selections .selected-folder i',
      selectedFolder: '.selected-folder',
      selectedFolderText: '.selected-folder-text',
      hiddenInputSelectedFolder: '#parentId',
      templateNameInput: '#elementor-template-library-save-template-name',
      localInput: '.source-selections-input.local',
      cloudInput: '.source-selections-input.cloud',
      sourceSelectionCheckboxes: '.source-selections-input input[type="checkbox"]',
      infoIcon: '.source-selections-input.cloud .eicon-info',
      connect: '#elementor-template-library-connect__badge',
      connectBadge: '.source-selections-input.cloud .connect-badge',
      cloudFormInputs: '.cloud-library-form-inputs',
      upgradeBadge: '.source-selections-input.cloud .upgrade-badge'
    };
  },
  events: function events() {
    return {
      'submit @ui.form': 'onFormSubmit',
      'click @ui.ellipsisIcon': 'onEllipsisIconClick',
      'keydown @ui.ellipsisIcon': 'onEllipsisIconKeyDown',
      'click @ui.foldersList': 'onFoldersListClick',
      'keydown @ui.foldersListContainer': 'onFoldersListKeyDown',
      'click @ui.removeFolderSelection': 'onRemoveFolderSelectionClick',
      'click @ui.selectedFolderText': 'onSelectedFolderTextClick',
      'click @ui.upgradeBadge': 'onUpgradeBadgeClicked',
      'change @ui.sourceSelectionCheckboxes': 'handleSourceSelectionChange',
      'mouseenter @ui.infoIcon': 'showInfoTip',
      'mouseleave @ui.infoIcon': 'hideInfoTip',
      'mouseenter @ui.connectBadge': 'showConnectInfoTip',
      'mouseleave @ui.connectBadge': 'hideConnectInfoTip',
      'input @ui.templateNameInput': 'onTemplateNameInputChange'
    };
  },
  onRender: function onRender() {
    var _elementorAppConfig$c,
      _this$templateHelpers,
      _this = this;
    if ('undefined' === typeof ((_elementorAppConfig$c = elementorAppConfig['cloud-library']) === null || _elementorAppConfig$c === void 0 ? void 0 : _elementorAppConfig$c.quota) && (_this$templateHelpers = this.templateHelpers()) !== null && _this$templateHelpers !== void 0 && _this$templateHelpers.canSaveToCloud) {
      elementor.templates.layout.showLoadingView();
      $e.components.get('cloud-library').utils.setQuotaConfig().then(function (data) {
        elementorAppConfig['cloud-library'].quota = data;
      }).catch(function () {
        delete elementorAppConfig['cloud-library'].quota;
      }).finally(function () {
        _this.handleOnRender();
        elementor.templates.layout.hideLoadingView();
      });
    } else {
      this.handleOnRender();
    }
  },
  onDestroy: function onDestroy() {
    this.unbindDocumentClickHandler();
  },
  handleOnRender: function handleOnRender() {
    var _this2 = this;
    setTimeout(function () {
      return _this2.ui.templateNameInput.trigger('focus');
    });
    var context = this.getOption('context');
    elementor.templates.eventManager.sendPageViewEvent({
      location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary["".concat(context, "Modal")]
    });
    if (_constants.SAVE_CONTEXTS.SAVE === context) {
      this.handleSaveAction();
    }
    if (_constants.SAVE_CONTEXTS.MOVE === context || _constants.SAVE_CONTEXTS.COPY === context) {
      this.handleSingleActionContextUiState();
    }
    if (_constants.SAVE_CONTEXTS.BULK_MOVE === context || _constants.SAVE_CONTEXTS.BULK_COPY === context) {
      this.handleBulkActionContextUiState();
    }
    if (!elementor.templates.hasCloudLibraryQuota()) {
      this.handleCloudLibraryPromo();
    }
    if (this.cloudMaxCapacityReached()) {
      this.handleCloudLibraryPromo('max-capacity');
    }
    if (!elementor.config.library_connect.is_connected) {
      this.handleElementorConnect();
    }
    this.bindDocumentClickHandler();
  },
  cloudMaxCapacityReached: function cloudMaxCapacityReached() {
    var _elementorAppConfig$c2, _elementorAppConfig$c3, _elementorAppConfig$c4, _elementorAppConfig$c5;
    return 'undefined' !== typeof ((_elementorAppConfig$c2 = elementorAppConfig['cloud-library']) === null || _elementorAppConfig$c2 === void 0 ? void 0 : _elementorAppConfig$c2.quota) && 0 < ((_elementorAppConfig$c3 = elementorAppConfig['cloud-library'].quota) === null || _elementorAppConfig$c3 === void 0 ? void 0 : _elementorAppConfig$c3.threshold) && ((_elementorAppConfig$c4 = elementorAppConfig['cloud-library'].quota) === null || _elementorAppConfig$c4 === void 0 ? void 0 : _elementorAppConfig$c4.currentUsage) >= ((_elementorAppConfig$c5 = elementorAppConfig['cloud-library'].quota) === null || _elementorAppConfig$c5 === void 0 ? void 0 : _elementorAppConfig$c5.threshold);
  },
  handleSaveAction: function handleSaveAction() {
    this.maybeEnableSaveButton();
  },
  handleSingleActionContextUiState: function handleSingleActionContextUiState() {
    var title = this.model.get('title');
    this.ui.templateNameInput.val(title);
    this.handleContextUiStateCheckboxes();
    this.maybeEnableSaveButton();
  },
  maybeEnableSaveButton: function maybeEnableSaveButton() {
    var _this$templateHelpers2;
    if (!((_this$templateHelpers2 = this.templateHelpers()) !== null && _this$templateHelpers2 !== void 0 && _this$templateHelpers2.canSaveToCloud)) {
      return;
    }
    var isAnyChecked = this.ui.sourceSelectionCheckboxes.is(':checked');
    var title = this.ui.templateNameInput.val().trim();
    var isTitleFilled = this.ui.templateNameInput.is(':visible') ? elementor.templates.isTemplateTitleValid(title) : true;
    this.updateSubmitButtonState(!isAnyChecked || !isTitleFilled);
  },
  handleBulkActionContextUiState: function handleBulkActionContextUiState() {
    this.ui.templateNameInput.remove();
    this.handleContextUiStateCheckboxes();
    this.maybeEnableSaveButton();
  },
  handleContextUiStateCheckboxes: function handleContextUiStateCheckboxes() {
    var fromSource = elementor.templates.getFilter('source');
    if ('local' === fromSource) {
      this.$('.source-selections-input #cloud').prop('checked', true);
      this.ui.localInput.addClass('disabled');
    }
  },
  handleCloudLibraryPromo: function handleCloudLibraryPromo() {
    var stateClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'promotion';
    if (_constants.SAVE_CONTEXTS.SAVE === this.getOption('context')) {
      this.$('.source-selections-input #local').prop('checked', true);
    } else {
      this.$('.source-selections-input #local, .source-selections-input.local label').css('pointer-events', 'none');
    }
    this.$('.source-selections-input #cloud').prop('checked', false);
    this.$('.source-selections-input #cloud').prop('disabled', true);
    this.ui.cloudFormInputs.addClass(stateClass);
    elementor.templates.eventManager.sendPageViewEvent({
      location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.saveModalSelectUpgrade
    });
  },
  getSaveType: function getSaveType() {
    var type;
    if (_constants.SAVE_CONTEXTS.MOVE === this.getOption('context') || _constants.SAVE_CONTEXTS.COPY === this.getOption('context')) {
      type = this.model.get('type');
    } else if (this.model) {
      type = this.model.get('elType');
    } else if (elementor.config.document.library && elementor.config.document.library.save_as_same_type) {
      type = elementor.config.document.type;
    } else {
      type = 'page';
    }
    return type;
  },
  templateHelpers: function templateHelpers() {
    var saveType = this.getSaveType(),
      templateType = elementor.templates.getTemplateTypes(saveType),
      saveContext = this.getOption('context');
    return templateType["".concat(saveContext, "Dialog")];
  },
  onEllipsisIconKeyDown: function onEllipsisIconKeyDown(event) {
    if ('Escape' === event.key) {
      event.preventDefault();
      if (this.ui.foldersDropdown.is(':visible')) {
        this.hideFoldersDropdown();
        (0, _keyboardNav.suppressEscapeKeyUp)(event);
      }
      return;
    }
    if ('Tab' === event.key && !event.shiftKey || 'ArrowDown' === event.key) {
      if (this.ui.foldersDropdown.is(':visible')) {
        event.preventDefault();
        event.stopPropagation();
        this.focusFirstFolderItem();
      }
    }
  },
  onFoldersListKeyDown: function onFoldersListKeyDown(event) {
    if ('Escape' === event.key) {
      event.preventDefault();
      this.hideFoldersDropdown();
      this.ui.ellipsisIcon.trigger('focus');
      (0, _keyboardNav.suppressEscapeKeyUp)(event);
      return;
    }
    if ('Tab' === event.key) {
      this.handleFolderTab(event);
      return;
    }
    var $items = this.getFolderItems();
    (0, _keyboardNav.rovingTabindex)({
      event: event,
      $items: $items,
      orientation: 'vertical',
      homeEnd: false,
      onActivate: function onActivate(e, $item) {
        e.stopPropagation();
        $item.trigger('click');
      }
    });
    event.stopPropagation();
  },
  handleFolderTab: function handleFolderTab(event) {
    var $items = this.getFolderItems();
    var currentIndex = $items.index(event.target);
    if (event.shiftKey) {
      if (currentIndex <= 0) {
        // Close dropdown and let the browser naturally move focus backwards.
        this.hideFoldersDropdown();
        this.ui.ellipsisIcon.trigger('focus');
      } else {
        event.preventDefault();
        event.stopPropagation();
        $items.eq(currentIndex - 1).trigger('focus');
      }
      return;
    }
    if (currentIndex < $items.length - 1) {
      event.preventDefault();
      event.stopPropagation();
      $items.eq(currentIndex + 1).trigger('focus');
    } else {
      // Close dropdown and let the browser naturally advance focus forward.
      this.hideFoldersDropdown();
      this.ui.ellipsisIcon.trigger('focus');
    }
  },
  updateEllipsisAriaExpanded: function updateEllipsisAriaExpanded(expanded) {
    this.ui.ellipsisIcon.attr('aria-expanded', expanded ? 'true' : 'false');
  },
  onFormSubmit: function onFormSubmit(event) {
    var _this3 = this;
    return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
      var _this3$templateHelper;
      var formData, JSONParams, _t;
      return _regenerator.default.wrap(function (_context) {
        while (1) switch (_context.prev = _context.next) {
          case 0:
            event.preventDefault();
            formData = _this3.ui.form.elementorSerializeObject(), JSONParams = {
              remove: ['default']
            };
            formData.parentTitle = formData.parentId ? _this3.ui.selectedFolderText.html() : '';
            formData.content = _this3.model ? [_this3.model.toJSON(JSONParams)] : elementor.elements.toJSON(JSONParams);
            _this3.updateSourceSelections(formData);
            if (!(!(formData !== null && formData !== void 0 && formData.source) && (_this3$templateHelper = _this3.templateHelpers()) !== null && _this3$templateHelper !== void 0 && _this3$templateHelper.canSaveToCloud)) {
              _context.next = 1;
              break;
            }
            _this3.showEmptySourceErrorDialog();
            return _context.abrupt("return");
          case 1:
            _this3.ui.submitButton.addClass('elementor-button-state');
            _this3.updateSaveContext(formData);
            _this3.updateToastConfig(formData);
            _this3.updateSourceState(formData);
            _context.prev = 2;
            _context.next = 3;
            return $e.run('document/save/auto', {
              force: true
            });
          case 3:
            _context.next = 5;
            break;
          case 4:
            _context.prev = 4;
            _t = _context["catch"](2);
          case 5:
            _context.next = 6;
            return elementor.templates.syncGlobalStylesBeforeSave();
          case 6:
            elementor.templates.saveTemplate(_this3.getSaveType(), formData);
          case 7:
          case "end":
            return _context.stop();
        }
      }, _callee, null, [[2, 4]]);
    }))();
  },
  updateSourceSelections: function updateSourceSelections(formData) {
    var selectedSources = ['cloud', 'local'].filter(function (type) {
      return formData[type];
    });
    if (!selectedSources.length) {
      return;
    }
    formData.source = selectedSources;
    ['cloud', 'local'].forEach(function (type) {
      return delete formData[type];
    });
  },
  showEmptySourceErrorDialog: function showEmptySourceErrorDialog() {
    elementorCommon.dialogsManager.createWidget('alert', {
      id: 'elementor-template-library-error-dialog',
      headerMessage: __('An error occurred.', 'elementor'),
      message: __('Please select at least one location.', 'elementor')
    }).show();
  },
  updateSaveContext: function updateSaveContext(formData) {
    var _this$getOption;
    var saveContext = (_this$getOption = this.getOption('context')) !== null && _this$getOption !== void 0 ? _this$getOption : _constants.SAVE_CONTEXTS.SAVE;
    formData.save_context = saveContext;
    if ([_constants.SAVE_CONTEXTS.MOVE, _constants.SAVE_CONTEXTS.BULK_MOVE, _constants.SAVE_CONTEXTS.COPY, _constants.SAVE_CONTEXTS.BULK_COPY].includes(saveContext)) {
      formData.from_source = elementor.templates.getFilter('source');
      formData.from_template_id = [_constants.SAVE_CONTEXTS.MOVE, _constants.SAVE_CONTEXTS.COPY].includes(saveContext) ? this.model.get('template_id') : Array.from(elementor.templates.getBulkSelectionItems());
    }
  },
  updateToastConfig: function updateToastConfig(formData) {
    var _formData$source, _this$getOption2, _formData$source2, _formData$parentId, _formData$parentTitle;
    if (!((_formData$source = formData.source) !== null && _formData$source !== void 0 && _formData$source.length)) {
      return;
    }
    var lastSource = formData.source.at(-1),
      saveContext = (_this$getOption2 = this.getOption('context')) !== null && _this$getOption2 !== void 0 ? _this$getOption2 : _constants.SAVE_CONTEXTS.SAVE,
      toastMessage = this.getToastMessage(lastSource, saveContext, formData);
    if (!toastMessage) {
      return;
    }
    var toastButtons = ((_formData$source2 = formData.source) === null || _formData$source2 === void 0 ? void 0 : _formData$source2.length) > 1 ? null : this.getToastButtons(lastSource, formData === null || formData === void 0 || (_formData$parentId = formData.parentId) === null || _formData$parentId === void 0 ? void 0 : _formData$parentId.trim(), formData === null || formData === void 0 || (_formData$parentTitle = formData.parentTitle) === null || _formData$parentTitle === void 0 ? void 0 : _formData$parentTitle.trim());
    elementor.templates.setToastConfig({
      show: true,
      options: {
        message: toastMessage,
        buttons: toastButtons,
        position: {
          my: 'right bottom',
          at: 'right-10 bottom-10',
          of: '#elementor-template-library-modal .dialog-lightbox-widget-content'
        }
      }
    });
  },
  updateSourceState: function updateSourceState(formData) {
    var _formData$source3, _this$getOption3;
    if (!((_formData$source3 = formData.source) !== null && _formData$source3 !== void 0 && _formData$source3.length)) {
      return;
    }
    var saveContext = (_this$getOption3 = this.getOption('context')) !== null && _this$getOption3 !== void 0 ? _this$getOption3 : _constants.SAVE_CONTEXTS.SAVE;
    if (_constants.SAVE_CONTEXTS.SAVE !== saveContext) {
      return;
    }
    var lastSource = formData.source.at(-1);
    elementor.templates.setSourceSelection(lastSource);
    elementor.templates.setFilter('source', lastSource, true);
  },
  getToastMessage: function getToastMessage(lastSource, saveContext, formData) {
    var _formData$source4, _formData$from_templa, _formData$from_templa2, _formData$from_templa3, _formData$from_templa4, _actions$key;
    var key = "".concat(lastSource, "_").concat(saveContext);
    if (((_formData$source4 = formData.source) === null || _formData$source4 === void 0 ? void 0 : _formData$source4.length) > 1) {
      return __('Template saved to your Site and Cloud Templates.', 'elementor');
    }
    var actions = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "local_".concat(_constants.SAVE_CONTEXTS.MOVE), this.getFormattedToastMessage('moved to your Site Templates', formData.title)), "cloud_".concat(_constants.SAVE_CONTEXTS.MOVE), this.getFormattedToastMessage('moved to your Cloud Templates', formData.title)), "local_".concat(_constants.SAVE_CONTEXTS.COPY), this.getFormattedToastMessage('copied to your Site Templates', formData.title)), "cloud_".concat(_constants.SAVE_CONTEXTS.COPY), this.getFormattedToastMessage('copied to your Cloud Templates', formData.title)), "local_".concat(_constants.SAVE_CONTEXTS.BULK_MOVE), this.getFormattedToastMessage('moved to your Site Templates', null, (_formData$from_templa = formData.from_template_id) === null || _formData$from_templa === void 0 ? void 0 : _formData$from_templa.length)), "cloud_".concat(_constants.SAVE_CONTEXTS.BULK_MOVE), this.getFormattedToastMessage('moved to your Cloud Templates', null, (_formData$from_templa2 = formData.from_template_id) === null || _formData$from_templa2 === void 0 ? void 0 : _formData$from_templa2.length)), "local_".concat(_constants.SAVE_CONTEXTS.BULK_COPY), this.getFormattedToastMessage('copied to your Site Templates', null, (_formData$from_templa3 = formData.from_template_id) === null || _formData$from_templa3 === void 0 ? void 0 : _formData$from_templa3.length)), "cloud_".concat(_constants.SAVE_CONTEXTS.BULK_COPY), this.getFormattedToastMessage('copied to your Cloud Templates', null, (_formData$from_templa4 = formData.from_template_id) === null || _formData$from_templa4 === void 0 ? void 0 : _formData$from_templa4.length));
    return (_actions$key = actions[key]) !== null && _actions$key !== void 0 ? _actions$key : false;
  },
  getFormattedToastMessage: function getFormattedToastMessage(action, title, count) {
    if (count !== undefined) {
      /* Translators: 1: Number of templates, 2: Action performed (e.g., "moved", "copied"). */
      return sprintf(__('%1$d Template(s) %2$s.', 'elementor'), count, action);
    }

    /* Translators: 1: Template title or "Template" fallback, 2: Action performed. */
    return sprintf(__('%1$s %2$s.', 'elementor'), title ? "\"".concat(title, "\"") : __('Template', 'elementor'), action);
  },
  getToastButtons: function getToastButtons(lastSource, parentId, parentTitle) {
    var _this4 = this;
    var parsedParentId = parseInt(parentId, 10) || null;
    return [{
      name: 'template_after_save',
      text: __('View', 'elementor'),
      callback: function callback() {
        return _this4.navigateToSavedSource(lastSource, parsedParentId, parentTitle);
      }
    }];
  },
  navigateToSavedSource: function navigateToSavedSource(lastSource, parentId, parentTitle) {
    elementor.templates.setSourceSelection(lastSource);
    elementor.templates.setFilter('source', lastSource, true);
    if (parentId) {
      var model = new TemplateLibraryTemplateModel({
        template_id: parentId,
        title: parentTitle
      });
      $e.route('library/view-folder', {
        model: model
      });
      elementor.templates.layout.showTemplatesView(new TemplateLibraryCollection(elementor.templates.filterTemplates()));
      return;
    }
    $e.routes.refreshContainer('library');
  },
  onSelectedFolderTextClick: function onSelectedFolderTextClick() {
    if (!this.folderCollectionView) {
      this.onEllipsisIconClick();
      return;
    }
    if (!this.ui.foldersDropdown.is(':visible')) {
      this.ui.foldersDropdown.show();
    } else {
      this.hideFoldersDropdown();
    }
  },
  onEllipsisIconClick: function onEllipsisIconClick() {
    var _this5 = this;
    return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
      return _regenerator.default.wrap(function (_context2) {
        while (1) switch (_context2.prev = _context2.next) {
          case 0:
            if (!_this5.ui.foldersDropdown.is(':visible')) {
              _context2.next = 1;
              break;
            }
            _this5.hideFoldersDropdown();
            _this5.updateEllipsisAriaExpanded(false);
            return _context2.abrupt("return");
          case 1:
            _this5.ui.foldersDropdown.show();
            _this5.updateEllipsisAriaExpanded(true);
            if (_this5.folderCollectionView) {
              _context2.next = 5;
              break;
            }
            _this5.folderCollectionView = new FolderCollectionView({
              collection: new TemplateLibraryCollection()
            });
            _this5.addSpinner();
            _this5.renderFolderDropdown();
            _context2.prev = 2;
            _context2.next = 3;
            return _this5.fetchFolders();
          case 3:
            _context2.prev = 3;
            _this5.removeSpinner();
            _this5.disableSelectedFolder();
            _this5.focusFirstFolderItem();
            return _context2.finish(3);
          case 4:
            _context2.next = 6;
            break;
          case 5:
            _this5.focusFirstFolderItem();
          case 6:
            elementor.templates.eventManager.sendPageViewEvent({
              location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.saveModalSelectFolder
            });
          case 7:
          case "end":
            return _context2.stop();
        }
      }, _callee2, null, [[2,, 3, 4]]);
    }))();
  },
  getFolderItems: function getFolderItems() {
    // Must query the DOM fresh because the folder list is rendered dynamically
    // after the view's initial render, so this.ui.foldersList may be stale.
    return this.$('.cloud-folder-selection-dropdown ul li:visible');
  },
  focusFirstFolderItem: function focusFirstFolderItem() {
    var $firstItem = this.getFolderItems().first();
    if ($firstItem.length) {
      $firstItem.trigger('focus');
    }
  },
  renderFolderDropdown: function renderFolderDropdown() {
    var _this$folderCollectio;
    this.ui.foldersListContainer.html((_this$folderCollectio = this.folderCollectionView.render()) === null || _this$folderCollectio === void 0 ? void 0 : _this$folderCollectio.el);
  },
  addSpinner: function addSpinner() {
    var spinner = new TemplateLibraryTemplateModel({
      template_id: LOAD_MORE_ID,
      title: '<i class="eicon-loading eicon-animation-spin" aria-hidden="true"></i>'
    });
    this.folderCollectionView.collection.add(spinner);
  },
  removeSpinner: function removeSpinner() {
    var spinner = this.folderCollectionView.collection.findWhere({
      template_id: LOAD_MORE_ID
    });
    if (spinner) {
      this.folderCollectionView.collection.remove(spinner);
    }
  },
  fetchFolders: function fetchFolders() {
    var _this6 = this;
    return new Promise(function (resolve) {
      var offset = _this6.folderCollectionView.collection.length - 1;
      var ajaxOptions = {
        data: {
          source: 'cloud',
          offset: offset
        },
        success: function success(response) {
          _this6.folderCollectionView.collection.add(response === null || response === void 0 ? void 0 : response.templates);
          if (_this6.shouldAddLoadMoreItem(response)) {
            _this6.addLoadMoreItem();
          }
          resolve(response);
        },
        error: function error(_error) {
          elementor.templates.showErrorDialog(_error);
          resolve();
        }
      };
      elementorCommon.ajax.addRequest('get_folders', ajaxOptions);
    });
  },
  disableSelectedFolder: function disableSelectedFolder() {
    if (!_constants.SAVE_CONTEXTS.MOVE === this.getOption('context')) {
      return;
    }
    if (!this.model || !Number.isInteger(this.model.get('parentId'))) {
      return;
    }
    this.$(".folder-list li[data-id=\"".concat(this.model.get('parentId'), "\"]")).addClass('disabled');
  },
  onFoldersListClick: function onFoldersListClick(event) {
    var _event$target$dataset = event.target.dataset,
      id = _event$target$dataset.id,
      value = _event$target$dataset.value;
    if (!id || !value) {
      return;
    }
    if (this.clickedOnLoadMore(id)) {
      this.loadMoreFolders();
      return;
    }
    this.handleFolderSelected(id, value);
  },
  clickedOnLoadMore: function clickedOnLoadMore(templateId) {
    return LOAD_MORE_ID === +templateId;
  },
  handleFolderSelected: function handleFolderSelected(id, value) {
    this.highlightSelectedFolder(id);
    this.hideFoldersDropdown();
    this.ui.ellipsisIcon.hide();
    this.ui.selectedFolderText.html(value);
    this.ui.selectedFolder.show();
    this.ui.hiddenInputSelectedFolder.val(id);
    this.$('.source-selections-input #cloud').prop('checked', true);
    this.maybeEnableSaveButton();
  },
  highlightSelectedFolder: function highlightSelectedFolder(id) {
    this.clearSelectedFolder();
    this.$(".folder-list li[data-id=\"".concat(id, "\"]")).addClass('selected');
  },
  clearSelectedFolder: function clearSelectedFolder() {
    this.$('.folder-list li.selected').removeClass('selected');
  },
  onRemoveFolderSelectionClick: function onRemoveFolderSelectionClick() {
    this.clearSelectedFolder();
    this.ui.selectedFolderText.html('');
    this.ui.selectedFolder.hide();
    this.ui.ellipsisIcon.show();
    this.ui.hiddenInputSelectedFolder.val('');
    this.hideFoldersDropdown();
  },
  loadMoreFolders: function loadMoreFolders() {
    var _this7 = this;
    return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
      return _regenerator.default.wrap(function (_context3) {
        while (1) switch (_context3.prev = _context3.next) {
          case 0:
            _this7.removeLoadMoreItem();
            _this7.addSpinner();
            _context3.prev = 1;
            _context3.next = 2;
            return _this7.fetchFolders();
          case 2:
            _context3.prev = 2;
            _this7.removeSpinner();
            _this7.disableSelectedFolder();
            return _context3.finish(2);
          case 3:
          case "end":
            return _context3.stop();
        }
      }, _callee3, null, [[1,, 2, 3]]);
    }))();
  },
  shouldAddLoadMoreItem: function shouldAddLoadMoreItem(response) {
    return this.folderCollectionView.collection.length < (response === null || response === void 0 ? void 0 : response.total);
  },
  addLoadMoreItem: function addLoadMoreItem() {
    this.folderCollectionView.collection.add({
      template_id: LOAD_MORE_ID,
      title: __('Load More', 'elementor')
    });
  },
  removeLoadMoreItem: function removeLoadMoreItem() {
    var loadMore = this.folderCollectionView.collection.findWhere({
      template_id: LOAD_MORE_ID
    });
    if (loadMore) {
      this.folderCollectionView.collection.remove(loadMore);
    }
  },
  handleSourceSelectionChange: function handleSourceSelectionChange(event) {
    this.maybeAllowOnlyOneCheckboxToBeChecked(event);
    this.maybeEnableSaveButton();
  },
  maybeAllowOnlyOneCheckboxToBeChecked: function maybeAllowOnlyOneCheckboxToBeChecked(event) {
    var _this8 = this;
    if (this.moreThanOneCheckboxCanBeChecked()) {
      return;
    }
    var selectedCheckbox = event.currentTarget;
    this.ui.sourceSelectionCheckboxes.each(function (_, checkbox) {
      var wrapper = _this8.$(checkbox).closest('.source-selections-input');
      if (checkbox !== selectedCheckbox) {
        if (selectedCheckbox.checked) {
          wrapper.addClass('disabled');
          checkbox.checked = false;
        } else {
          wrapper.removeClass('disabled');
        }
      }
    });
  },
  moreThanOneCheckboxCanBeChecked: function moreThanOneCheckboxCanBeChecked() {
    return _constants.SAVE_CONTEXTS.SAVE === this.getOption('context') || 'cloud' !== elementor.templates.getFilter('source');
  },
  showInfoTip: function showInfoTip() {
    var _this9 = this;
    if (this.infoTipDialog) {
      this.infoTipDialog.hide();
    }
    var message = elementor.templates.hasCloudLibraryQuota() ? __('Upgrade your subscription to get more space and reuse saved assets across all your sites.', 'elementor') : __('Upgrade your subscription to access Cloud Templates and reuse saved assets across all your sites.', 'elementor');
    var goLink = elementor.templates.hasCloudLibraryQuota() ? 'https://go.elementor.com/go-pro-cloud-templates-save-to-100-usage-notice' : 'https://go.elementor.com/go-pro-cloud-templates-save-to-free-tooltip/';
    this.infoTipDialog = elementor.dialogsManager.createWidget('buttons', {
      id: 'elementor-library--infotip__dialog',
      effects: {
        show: 'show',
        hide: 'hide'
      },
      position: {
        of: this.ui.infoIcon,
        at: 'top-75'
      }
    }).setMessage(message).addButton({
      name: 'learn_more',
      text: __('Upgrade Now', 'elementor'),
      classes: '',
      callback: function callback() {
        open(goLink, '_blank');
        _this9.onUpgradeBadgeClicked();
      }
    });
    this.infoTipDialog.getElements('header').remove();
    this.infoTipDialog.show();
  },
  hideInfoTip: function hideInfoTip() {
    if (this.infoTipDialog) {
      this.infoTipDialog.hide();
    }
  },
  getConnectInfoTipPosition: function getConnectInfoTipPosition() {
    return 'top+80';
  },
  showConnectInfoTip: function showConnectInfoTip() {
    if (this.connectInfoTipDialog) {
      this.connectInfoTipDialog.hide();
    }
    this.connectInfoTipDialog = elementor.dialogsManager.createWidget('buttons', {
      id: 'elementor-library--connect_infotip__dialog',
      effects: {
        show: 'show',
        hide: 'hide'
      },
      position: {
        of: this.ui.connectBadge,
        at: this.getConnectInfoTipPosition()
      }
    }).setMessage(__('To access the Cloud Templates Library you must have an active Elementor Pro subscription', 'elementor') + ' <i>' + __('and', 'elementor') + '</i> ' + __('connect your site.', 'elementor'));
    this.connectInfoTipDialog.getElements('header').remove();
    this.connectInfoTipDialog.getElements('buttonsWrapper').remove();
    this.addVariantClass(this.connectInfoTipDialog.getElements('widget'));
    this.connectInfoTipDialog.show();
  },
  addVariantClass: function addVariantClass() {
    return '';
  },
  hideConnectInfoTip: function hideConnectInfoTip() {
    if (this.connectInfoTipDialog) {
      this.connectInfoTipDialog.hide();
    }
  },
  handleElementorConnect: function handleElementorConnect() {
    elementor.templates.eventManager.sendPageViewEvent({
      location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.saveModalSelectConnect
    });
    this.ui.connect.elementorConnect({
      success: function success() {
        elementor.config.library_connect.is_connected = true;
        $e.run('library/close');
        elementor.notifications.showToast({
          message: __('Connected successfully.', 'elementor')
        });
      },
      error: function error() {
        elementor.config.library_connect.is_connected = false;
      }
    });
  },
  onTemplateNameInputChange: function onTemplateNameInputChange() {
    this.maybeEnableSaveButton();
  },
  updateSubmitButtonState: function updateSubmitButtonState(shouldDisableSubmitButton) {
    this.ui.submitButton.toggleClass('e-primary', !shouldDisableSubmitButton);
    this.ui.submitButton.prop('disabled', shouldDisableSubmitButton);
  },
  hideFoldersDropdown: function hideFoldersDropdown() {
    this.ui.foldersDropdown.hide();
    this.updateEllipsisAriaExpanded(false);
  },
  bindDocumentClickHandler: function bindDocumentClickHandler() {
    this.documentClickHandler = this.hideDropdownIfClickOutside.bind(this);
    elementor.templates.layout.modalContent.$el.on('click', this.documentClickHandler);
  },
  unbindDocumentClickHandler: function unbindDocumentClickHandler() {
    if (!this.documentClickHandler) {
      return;
    }
    elementor.templates.layout.modalContent.$el.off('click', this.documentClickHandler);
    this.documentClickHandler = null;
  },
  hideDropdownIfClickOutside: function hideDropdownIfClickOutside(event) {
    if (!this.ui.foldersDropdown.is(':visible')) {
      return;
    }
    var target = jQuery(event.target);
    var isClickInsideDropdown = target.closest(this.ui.foldersDropdown).length > 0;
    var isClickOnEllipsisIcon = target.closest(this.ui.ellipsisIcon).length > 0;
    var isClickOnSelectedFolderText = target.closest(this.ui.selectedFolderText).length > 0;
    if (!isClickInsideDropdown && !isClickOnEllipsisIcon && !isClickOnSelectedFolderText) {
      this.hideFoldersDropdown();
    }
  },
  onUpgradeBadgeClicked: function onUpgradeBadgeClicked() {
    var upgradePosition = elementor.templates.hasCloudLibraryQuota() ? 'save to-max' : 'save to-free';
    elementor.templates.eventManager.sendUpgradeClickedEvent({
      secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.saveModal,
      upgrade_position: upgradePosition
    });
  }
});
module.exports = TemplateLibrarySaveTemplateView;

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/parts/templates-empty.js":
/*!******************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/parts/templates-empty.js ***!
  \******************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var TemplateLibraryTemplatesEmptyView = Marionette.ItemView.extend({
  tagName: 'main',
  id: 'elementor-template-library-templates-empty',
  template: '#tmpl-elementor-template-library-templates-empty',
  ui: {
    title: '.elementor-template-library-blank-title',
    message: '.elementor-template-library-blank-message',
    icon: '.elementor-template-library-blank-icon',
    button: '.elementor-template-library-cloud-empty__button',
    backToEditor: '.e-back-to-editor'
  },
  events: {
    'click @ui.backToEditor': 'closeLibrary'
  },
  closeLibrary: function closeLibrary(event) {
    event.preventDefault();
    $e.run('library/close');
  },
  modesStrings: function modesStrings() {
    var defaultIcon = this.getDefaultIcon();
    return {
      empty: {
        title: __('Haven’t Saved Templates Yet?', 'elementor'),
        message: __('This is where your templates should be. Design it. Save it. Reuse it.', 'elementor'),
        icon: defaultIcon,
        button: ''
      },
      noResults: {
        title: __('No Results Found', 'elementor'),
        message: __('Please make sure your search is spelled correctly or try a different words.', 'elementor'),
        icon: defaultIcon,
        button: ''
      },
      noFavorites: {
        title: __('No Favorite Templates', 'elementor'),
        message: __('You can mark any pre-designed template as a favorite.', 'elementor'),
        icon: defaultIcon,
        button: ''
      },
      cloudEmpty: {
        title: __('No templates saved just yet', 'elementor'),
        message: __('Once you save a template, it’ll show up here, ready for reuse across all of your Elementor sites—no extra work needed.', 'elementor'),
        icon: this.getCloudIcon(),
        button: "<a class=\"e-back-to-editor\">".concat(__('Back to editor', 'elementor'), "</a>")
      },
      cloudFolderEmpty: {
        title: __('No templates to show here, yet', 'elementor'),
        message: __('Once you save some templates to this folder, you can use them on any website you’re working on.', 'elementor'),
        icon: this.getEmptyFolderIcon(),
        button: "<a class=\"e-back-to-editor\">".concat(__('Back to editor', 'elementor'), "</a>")
      }
    };
  },
  getDefaultIcon: function getDefaultIcon() {
    return "<img src=\"".concat(elementorCommon.config.urls.assets, "images/no-search-results.svg\" class=\"elementor-template-library-no-results\" loading=\"lazy\" />");
  },
  getCloudIcon: function getCloudIcon() {
    return "<i class=\"eicon-library-cloud-empty\" aria-hidden=\"true\" title=\"Empty Cloud Library\"></i>";
  },
  getEmptyFolderIcon: function getEmptyFolderIcon() {
    return "<i class=\"eicon-library-folder-empty\" aria-hidden=\"true\" title=\"Empty folder\"></i>";
  },
  getCurrentMode: function getCurrentMode() {
    if (elementor.templates.getFilter('text')) {
      return 'noResults';
    }
    if (elementor.templates.getFilter('favorite')) {
      return 'noFavorites';
    }
    if ('cloud' === elementor.templates.getFilter('source')) {
      return null !== elementor.templates.getFilter('parent') ? 'cloudFolderEmpty' : 'cloudEmpty';
    }
    return 'empty';
  },
  onRender: function onRender() {
    var modeStrings = this.modesStrings()[this.getCurrentMode()];
    this.ui.title.html(modeStrings.title);
    this.ui.message.html(modeStrings.message);
    this.ui.button.html(modeStrings.button);
    this.ui.icon.html(modeStrings.icon);
  }
});
module.exports = TemplateLibraryTemplatesEmptyView;

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/parts/templates.js":
/*!************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/parts/templates.js ***!
  \************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
var _select = _interopRequireDefault(__webpack_require__(/*! elementor-editor-utils/select2.js */ "../assets/dev/js/editor/utils/select2.js"));
var _keyboardNav = __webpack_require__(/*! elementor-editor-utils/keyboard-nav */ "../assets/dev/js/editor/utils/keyboard-nav.js");
var _constants = __webpack_require__(/*! ./../../constants */ "../assets/dev/js/editor/components/template-library/constants.js");
var TemplateLibraryTemplateLocalView = __webpack_require__(/*! elementor-templates/views/template/local */ "../assets/dev/js/editor/components/template-library/views/template/local.js");
var TemplateLibraryTemplateRemoteView = __webpack_require__(/*! elementor-templates/views/template/remote */ "../assets/dev/js/editor/components/template-library/views/template/remote.js");
var TemplateLibraryTemplateCloudView = __webpack_require__(/*! elementor-templates/views/template/cloud */ "../assets/dev/js/editor/components/template-library/views/template/cloud.js");
var TemplateLibraryCollectionView = Marionette.CompositeView.extend({
  tagName: 'main',
  template: '#tmpl-elementor-template-library-templates',
  id: 'elementor-template-library-templates',
  childViewContainer: '#elementor-template-library-templates-container',
  reorderOnSort: true,
  emptyView: function emptyView() {
    var EmptyView = __webpack_require__(/*! elementor-templates/views/parts/templates-empty */ "../assets/dev/js/editor/components/template-library/views/parts/templates-empty.js");
    return new EmptyView();
  },
  ui: {
    textFilter: '#elementor-template-library-filter-text',
    selectFilter: '.elementor-template-library-filter-select',
    myFavoritesFilter: '#elementor-template-library-filter-my-favorites',
    orderInputs: '.elementor-template-library-order-input',
    orderLabels: 'label.elementor-template-library-order-label',
    searchInputIcon: '#elementor-template-library-filter-text-wrapper i',
    loadMoreAnchor: '#elementor-template-library-load-more-anchor',
    sourceFilterRadiogroup: '.elementor-template-library-filter-select-source',
    selectSourceFilter: '.elementor-template-library-filter-select-source .source-option',
    addNewFolder: '#elementor-template-library-add-new-folder',
    addNewFolderDivider: '.elementor-template-library-filter-toolbar-side-actions .divider',
    selectGridView: '#elementor-template-library-view-grid',
    selectListView: '#elementor-template-library-view-list',
    bulkSelectionActionBar: '.bulk-selection-action-bar',
    bulkActionBarDelete: '.bulk-selection-action-bar .bulk-delete',
    bulkSelectedCount: '.bulk-selection-action-bar .selected-count',
    bulkSelectAllCheckbox: '#bulk-select-all',
    clearBulkSelections: '.bulk-selection-action-bar .clear-bulk-selections',
    bulkMove: '.bulk-selection-action-bar .bulk-move',
    bulkCopy: '.bulk-selection-action-bar .bulk-copy',
    quota: '.quota-progress-container .quota-progress-bar',
    quotaFill: '.quota-progress-container  .quota-progress-bar .quota-progress-bar-fill',
    quotaValue: '.quota-progress-container .quota-progress-bar-value',
    quotaWarning: '.quota-progress-container .progress-bar-container .quota-warning',
    quotaUpgrade: '.quota-progress-container .progress-bar-container .quota-warning a',
    quotaStatus: '#elementor-template-library-quota-status',
    navigationContainer: '#elementor-template-library-navigation-container',
    sourceOptionBadges: '.source-option-badge.variant-b-only',
    cloudBadge: '.source-option-badge.cloud-badge',
    siteBadge: '.source-option-badge.site-badge',
    sortStatus: '#elementor-template-library-sort-status',
    loadStatus: '#elementor-template-library-load-status'
  },
  events: {
    'input @ui.textFilter': 'onTextFilterInput',
    'change @ui.selectFilter': 'onSelectFilterChange',
    'change @ui.myFavoritesFilter': 'onMyFavoritesFilterChange',
    'mousedown @ui.orderLabels': 'onOrderLabelsClick',
    'click @ui.selectSourceFilter': 'onSelectSourceFilterChange',
    'keydown @ui.selectSourceFilter': 'onSelectSourceFilterKeyDown',
    'click @ui.addNewFolder': 'onCreateNewFolderClick',
    'click @ui.selectGridView': 'onSelectGridViewClick',
    'click @ui.selectListView': 'onSelectListViewClick',
    'change @ui.bulkSelectAllCheckbox': 'onBulkSelectAllCheckbox',
    'click @ui.clearBulkSelections': 'onClearBulkSelections',
    'mouseenter @ui.bulkMove': 'onHoverBulkAction',
    'mouseenter @ui.bulkCopy': 'onHoverBulkAction',
    'click @ui.bulkMove': 'onClickBulkMove',
    'click @ui.bulkActionBarDelete': 'onBulkDeleteClick',
    'click @ui.bulkCopy': 'onClickBulkCopy',
    'click @ui.quotaUpgrade': 'onQuotaUpgradeClicked',
    'mouseenter @ui.cloudBadge': 'showCloudBadgeTooltip',
    'mouseenter @ui.siteBadge': 'showSiteBadgeTooltip',
    'mouseleave @ui.cloudBadge': 'hideCloudBadgeTooltip',
    'mouseleave @ui.siteBadge': 'hideSiteBadgeTooltip'
  },
  className: 'no-bulk-selections',
  resetQuotaBarStyles: function resetQuotaBarStyles() {
    this.ui.quota.removeClass(['quota-progress-bar-normal', 'quota-progress-bar-warning', 'quota-progress-bar-alert']);
    this.ui.quotaFill.removeClass(['quota-progress-bar-fill-normal', 'quota-progress-bar-fill-warning', 'quota-progress-bar-fill-alert']);
  },
  setQuotaBarStyles: function setQuotaBarStyles(variant) {
    this.ui.quota.addClass("quota-progress-bar-".concat(variant));
    this.ui.quotaFill.addClass("quota-progress-bar-fill-".concat(variant));
  },
  handleQuotaWarning: function handleQuotaWarning(variant, quotaUsage) {
    var message = _constants.QUOTA_WARNINGS[variant];
    if (!message) {
      return;
    }
    this.ui.quotaWarning.html(sprintf(message, quotaUsage));
    this.ui.quotaWarning.show();
  },
  handleQuotaBar: function handleQuotaBar() {
    var _elementorAppConfig, _quota$currentUsage, _quota$threshold;
    var quota = (_elementorAppConfig = elementorAppConfig) === null || _elementorAppConfig === void 0 || (_elementorAppConfig = _elementorAppConfig['cloud-library']) === null || _elementorAppConfig === void 0 ? void 0 : _elementorAppConfig.quota;
    var value = quota ? Math.round(quota.currentUsage / quota.threshold * 100) : 0;
    this.ui.quotaFill.css('width', "".concat(value, "%"));
    this.ui.quotaValue.text("".concat(quota === null || quota === void 0 || (_quota$currentUsage = quota.currentUsage) === null || _quota$currentUsage === void 0 ? void 0 : _quota$currentUsage.toLocaleString(), "/").concat(quota === null || quota === void 0 || (_quota$threshold = quota.threshold) === null || _quota$threshold === void 0 ? void 0 : _quota$threshold.toLocaleString()));
    this.ui.quotaWarning.hide();
    this.resetQuotaBarStyles();
    var quotaState = this.resolveQuotaState(value);
    this.handleQuotaWarning(quotaState, value);
    this.setQuotaBarStyles(quotaState);
    if (this.ui.quota.length) {
      this.ui.quota.attr({
        'aria-valuenow': value
      });
    }
    if (quota && this.ui.quotaStatus.length) {
      // Translators: %1$s: current usage number, %2$s: threshold number
      var statusText = sprintf(
      // Translators: %1$s: current usage number, %2$s: threshold number
      __('%1$s of %2$s templates used', 'elementor'), quota.currentUsage.toLocaleString(), quota.threshold.toLocaleString());
      this.ui.quotaStatus.text(statusText);
    }
  },
  resolveQuotaState: function resolveQuotaState(value) {
    if (value < 80) {
      return _constants.QUOTA_BAR_STATES.NORMAL;
    } else if (value < 100) {
      return _constants.QUOTA_BAR_STATES.WARNING;
    }
    return _constants.QUOTA_BAR_STATES.ALERT;
  },
  onClearBulkSelections: function onClearBulkSelections() {
    elementor.templates.clearBulkSelectionItems();
    elementor.templates.layout.handleBulkActionBar();
    elementor.templates.layout.selectAllCheckboxNormal();
    this.deselectAllBulkItems();
  },
  deselectAllBulkItems: function deselectAllBulkItems() {
    if ('list' === elementor.templates.getViewSelection() || 'local' === elementor.templates.getFilter('source')) {
      this.ui.bulkSelectAllCheckbox.prop('checked', false).trigger('change');
    } else {
      document.querySelectorAll('.bulk-selected-item').forEach(function (item) {
        item.classList.remove('bulk-selected-item');
        item.setAttribute('aria-selected', 'false');
        item.setAttribute('tabindex', '-1');
        var checkbox = item.querySelector('.bulk-selection-item-checkbox');
        if (checkbox) {
          checkbox.checked = false;
          checkbox.setAttribute('aria-checked', 'false');
        }
      });
    }
  },
  onBulkSelectAllCheckbox: function onBulkSelectAllCheckbox() {
    var isChecked = this.$('#bulk-select-all:checked').length > 0;
    if (isChecked) {
      elementor.templates.layout.selectAllCheckboxNormal();
    }
    this.updateBulkSelectedItems(isChecked);
    elementor.templates.layout.handleBulkActionBarUi();
  },
  updateBulkSelectedItems: function updateBulkSelectedItems(isChecked) {
    document.querySelectorAll('.bulk-selection-item-checkbox').forEach(function (checkbox) {
      checkbox.checked = isChecked;
      checkbox.setAttribute('aria-checked', String(isChecked));
      var templateId = checkbox.dataset.template_id;
      var type = checkbox.dataset.type;
      var parentDiv = checkbox.closest('.elementor-template-library-template');
      if (isChecked) {
        elementor.templates.addBulkSelectionItem(templateId, type);
        parentDiv === null || parentDiv === void 0 || parentDiv.classList.add('bulk-selected-item');
      } else {
        elementor.templates.removeBulkSelectionItem(templateId, type);
        parentDiv === null || parentDiv === void 0 || parentDiv.classList.remove('bulk-selected-item');
      }
      if (parentDiv) {
        parentDiv.setAttribute('aria-selected', String(isChecked));
        parentDiv.setAttribute('tabindex', isChecked ? '0' : '-1');
      }
    });
  },
  onBulkDeleteClick: function onBulkDeleteClick() {
    var _this = this;
    this.ui.bulkActionBarDelete.toggleClass('disabled');
    elementor.templates.onBulkDeleteClick().finally(function () {
      _this.ui.bulkActionBarDelete.toggleClass('disabled');
      elementor.templates.layout.handleBulkActionBar();
    });
  },
  comparators: {
    title: function title(model) {
      return model.get('title').toLowerCase();
    },
    popularityIndex: function popularityIndex(model) {
      var popularityIndex = model.get('popularityIndex');
      if (!popularityIndex) {
        popularityIndex = model.get('date');
      }
      return -popularityIndex;
    },
    trendIndex: function trendIndex(model) {
      var trendIndex = model.get('trendIndex');
      if (!trendIndex) {
        trendIndex = model.get('date');
      }
      return -trendIndex;
    }
  },
  getChildView: function getChildView(childModel) {
    var sourceMappings = {
      local: TemplateLibraryTemplateLocalView,
      remote: TemplateLibraryTemplateRemoteView,
      cloud: TemplateLibraryTemplateCloudView
    };
    var activeSource = childModel.get('source') ? childModel.get('source') : 'local';

    /**
     * Filter template source.
     *
     * @param bool   isRemote     - If `true` the source is a remote source.
     * @param string activeSource - The current template source.
     */
    var isRemote = elementor.hooks.applyFilters('templates/source/is-remote', 'remote' === activeSource, activeSource);
    return isRemote ? TemplateLibraryTemplateRemoteView : sourceMappings[activeSource] || TemplateLibraryTemplateLocalView;
  },
  initialize: function initialize() {
    this.handleQuotaBar = this.handleQuotaBar.bind(this);
    this.handleQuotaUpdate = this.handleQuotaUpdate.bind(this);
    this.handleSourceFilterChange = this.handleSourceFilterChange.bind(this);
    this.listenTo(elementor.channels.templates, 'filter:change', this._renderChildren);
    this.listenTo(elementor.channels.templates, 'filter:change', this.handleSourceOptionBadges);
    this.listenTo(elementor.channels.templates, 'filter:change', this.handleSourceFilterChange);
    this.listenTo(elementor.channels.templates, 'quota:updated', this.handleQuotaUpdate);
    this.debouncedSearchTemplates = _.debounce(this.searchTemplates, 300);
  },
  handleQuotaUpdate: function handleQuotaUpdate() {
    var _elementor$templates$,
      _this2 = this;
    var activeSource = (_elementor$templates$ = elementor.templates.getFilter('source')) !== null && _elementor$templates$ !== void 0 ? _elementor$templates$ : 'local';
    if ('cloud' === activeSource) {
      $e.components.get('cloud-library').utils.getQuotaConfig().then(function () {
        _this2.handleQuotaBar();
      });
    }
  },
  handleSourceFilterChange: function handleSourceFilterChange(filterName) {
    if ('source' === filterName) {
      var _elementor$templates$2;
      var activeSource = (_elementor$templates$2 = elementor.templates.getFilter('source')) !== null && _elementor$templates$2 !== void 0 ? _elementor$templates$2 : 'local';
      this.updateSourceFilterAriaAttributes(activeSource);
    }
  },
  updateSourceFilterAriaAttributes: function updateSourceFilterAriaAttributes(selectedSource) {
    if (!this.ui.selectSourceFilter.length) {
      return;
    }
    this.ui.selectSourceFilter.each(function () {
      var $option = jQuery(this),
        source = $option.data('source'),
        isSelected = source === selectedSource;
      $option.attr({
        'aria-checked': isSelected ? 'true' : 'false',
        tabindex: isSelected ? '0' : '-1'
      });
    });
  },
  filter: function filter(childModel) {
    var activeSource = elementor.templates.getFilter('source');
    if ('cloud' === activeSource) {
      return true; // Filtering happens on the backend.
    }
    var filterTerms = elementor.templates.getFilterTerms(),
      passingFilter = true;
    jQuery.each(filterTerms, function (filterTermName) {
      var filterValue = elementor.templates.getFilter(filterTermName);
      if (!filterValue) {
        return;
      }
      if (this.callback) {
        var callbackResult = this.callback.call(childModel, filterValue);
        if (!callbackResult) {
          passingFilter = false;
        }
        return callbackResult;
      }
      var filterResult = filterValue === childModel.get(filterTermName);
      if (!filterResult) {
        passingFilter = false;
      }
      return filterResult;
    });
    return passingFilter;
  },
  order: function order(by, reverseOrder) {
    var comparator = this.comparators[by] || by;
    if ('cloud' === elementor.templates.getFilter('source')) {
      this.handleCloudOrder(by, reverseOrder);
      return;
    }
    if (reverseOrder) {
      comparator = this.reverseOrder(comparator);
    }
    this.collection.comparator = comparator;
    this.collection.sort();
    this.announceSortStatus(by, reverseOrder);
  },
  announceSortStatus: function announceSortStatus(by, reverseOrder) {
    var orderLabels = {
      title: __('Name', 'elementor'),
      type: __('Type', 'elementor'),
      author: __('Created By', 'elementor'),
      date: __('Creation Date', 'elementor')
    };
    var orderDirection = reverseOrder ? __('descending', 'elementor') : __('ascending', 'elementor');
    var sortLabel = orderLabels[by] || by;
    var message = __('Sorted by', 'elementor') + ' ' + sortLabel + ', ' + orderDirection;
    if (this.ui.sortStatus.length) {
      this.ui.sortStatus.text(message);
    }
  },
  announceLoadStatus: function announceLoadStatus(count) {
    var message = count + ' ' + __('more templates loaded', 'elementor');
    if (this.ui.loadStatus.length) {
      this.ui.loadStatus.text(message);
    }
  },
  handleCloudOrder: function handleCloudOrder(by, reverseOrder) {
    var _this3 = this;
    elementor.templates.setFilter('orderby', by);
    elementor.templates.setFilter('order', reverseOrder ? 'desc' : 'asc');
    this.onClearBulkSelections();
    this.collection.reset();
    elementor.templates.layout.showLoadingView();
    elementor.templates.loadMore({
      onUpdate: function onUpdate() {
        elementor.templates.layout.hideLoadingView();
        _this3.announceSortStatus(by, reverseOrder);
      },
      search: this.ui.textFilter.val(),
      refresh: true
    });
  },
  reverseOrder: function reverseOrder(comparator) {
    if ('function' !== typeof comparator) {
      var comparatorValue = comparator;
      comparator = function comparator(model) {
        return model.get(comparatorValue);
      };
    }
    return function (left, right) {
      var l = comparator(left);
      if (undefined === l) {
        return -1;
      }
      var r = comparator(right);
      if (undefined === r) {
        return 1;
      }
      if (l < r) {
        return 1;
      }
      if (l > r) {
        return -1;
      }
      return 0;
    };
  },
  addSourceData: function addSourceData() {
    var isEmpty = this.children.isEmpty();
    this.$el.attr('data-template-source', isEmpty ? 'empty' : elementor.templates.getFilter('source'));
  },
  addViewData: function addViewData() {
    var view = elementor.templates.getViewSelection();
    this.$el.attr('data-template-view', view);
  },
  setFiltersUI: function setFiltersUI() {
    if (!this.select2Instance && this.$(this.ui.selectFilter).length) {
      var $filters = this.$(this.ui.selectFilter),
        select2Options = {
          placeholder: __('Category', 'elementor'),
          allowClear: true,
          width: 150,
          dropdownParent: this.$el
        };
      this.select2Instance = new _select.default({
        $element: $filters,
        options: select2Options
      });
    }
  },
  setMasonrySkin: function setMasonrySkin() {
    var masonry = new elementorModules.utils.Masonry({
      container: this.$childViewContainer,
      items: this.$childViewContainer.children()
    });
    this.$childViewContainer.imagesLoaded(masonry.run.bind(masonry));
  },
  toggleFilterClass: function toggleFilterClass() {
    this.$el.toggleClass('elementor-templates-filter-active', !!(elementor.templates.getFilter('text') || elementor.templates.getFilter('favorite')));
  },
  isPageOrLandingPageTemplates: function isPageOrLandingPageTemplates() {
    var templatesType = elementor.templates.getFilter('type');
    return 'page' === templatesType || 'lp' === templatesType;
  },
  onDestroy: function onDestroy() {
    if (this.removeScrollListener) {
      this.removeScrollListener();
    }
  },
  shouldShowVariantB: function shouldShowVariantB() {
    return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
      var experimentVariant;
      return _regenerator.default.wrap(function (_context) {
        while (1) switch (_context.prev = _context.next) {
          case 0:
            _context.next = 1;
            return elementor.templates.eventManager.getSaveTemplateExperimentVariant();
          case 1:
            experimentVariant = _context.sent;
            return _context.abrupt("return", 'B' === experimentVariant);
          case 2:
          case "end":
            return _context.stop();
        }
      }, _callee);
    }))();
  },
  handleSourceOptionBadges: function handleSourceOptionBadges() {
    var _this4 = this;
    return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
      var shouldShow, activeSource;
      return _regenerator.default.wrap(function (_context2) {
        while (1) switch (_context2.prev = _context2.next) {
          case 0:
            _context2.next = 1;
            return _this4.shouldShowVariantB();
          case 1:
            shouldShow = _context2.sent;
            if (shouldShow) {
              _context2.next = 2;
              break;
            }
            _this4.ui.sourceOptionBadges.hide();
            return _context2.abrupt("return");
          case 2:
            activeSource = elementor.templates.getFilter('source');
            _this4.$('.source-option-badge.site-badge').toggle('local' === activeSource);
            _this4.$('.source-option-badge.cloud-badge').toggle('cloud' === activeSource);
          case 3:
          case "end":
            return _context2.stop();
        }
      }, _callee2);
    }))();
  },
  onRender: function onRender() {
    elementor.templates.clearBulkSelectionItems();
    var activeSource = elementor.templates.getFilter('source');
    var templateType = elementor.templates.getFilter('type');
    if ('remote' === activeSource && 'page' !== templateType && 'lb' !== templateType) {
      this.setFiltersUI();
    }
    if ('cloud' === activeSource) {
      var isFolderView = elementor.templates.getFilter('parentId');
      var location = isFolderView ? elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.cloudTabFolder : elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.cloudTab;
      elementor.templates.eventManager.sendPageViewEvent({
        location: location
      });
      this.handleQuotaBar();
    }
    if ('local' === activeSource) {
      elementor.templates.eventManager.sendPageViewEvent({
        location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.siteTab
      });
    }
    this.handleSourceOptionBadges();
  },
  onRenderCollection: function onRenderCollection() {
    this.addSourceData();
    this.toggleFilterClass();
    var activeSource = elementor.templates.getFilter('source');
    if ('remote' === activeSource && !this.isPageOrLandingPageTemplates()) {
      this.setMasonrySkin();
    }
    if ('cloud' === activeSource) {
      this.handleLoadMore();
      this.addViewData();
      this.handleQuotaUpdate();
    }
    this.handleSourceOptionBadges();
  },
  onBeforeRenderEmpty: function onBeforeRenderEmpty() {
    this.addSourceData();
  },
  onTextFilterInput: function onTextFilterInput() {
    var activeSource = elementor.templates.getFilter('source');
    if (['cloud', 'local'].includes(activeSource)) {
      elementor.templates.clearBulkSelectionItems();
      elementor.templates.layout.handleBulkActionBar();
    }
    if ('cloud' === activeSource) {
      this.debouncedSearchTemplates(activeSource);
      return;
    }
    elementor.templates.setFilter('text', this.ui.textFilter.val());
  },
  searchTemplates: function searchTemplates(source) {
    var _this5 = this;
    return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
      return _regenerator.default.wrap(function (_context3) {
        while (1) switch (_context3.prev = _context3.next) {
          case 0:
            _this5.showLoadingSpinner();
            _context3.prev = 1;
            _context3.next = 2;
            return elementor.templates.searchTemplates({
              source: source,
              search: _this5.ui.textFilter.val()
            });
          case 2:
            _context3.prev = 2;
            _this5.showSearchIcon();
            return _context3.finish(2);
          case 3:
          case "end":
            return _context3.stop();
        }
      }, _callee3, null, [[1,, 2, 3]]);
    }))();
  },
  showLoadingSpinner: function showLoadingSpinner() {
    this.ui.searchInputIcon.removeClass('eicon-search').addClass('eicon-loading eicon-animation-spin');
  },
  showSearchIcon: function showSearchIcon() {
    this.ui.searchInputIcon.removeClass('eicon-loading eicon-animation-spin').addClass('eicon-search');
  },
  onSelectFilterChange: function onSelectFilterChange(event) {
    var $select = jQuery(event.currentTarget),
      filterName = $select.data('elementor-filter');
    elementor.templates.setFilter(filterName, $select.val());
  },
  onSelectSourceFilterChange: function onSelectSourceFilterChange(event) {
    elementor.templates.onSelectSourceFilterChange(event);
  },
  onSelectSourceFilterKeyDown: function onSelectSourceFilterKeyDown(event) {
    var _this6 = this;
    var handled = (0, _keyboardNav.rovingTabindex)({
      event: event,
      $items: this.ui.selectSourceFilter,
      orientation: 'both',
      activateOnFocus: true,
      homeEnd: false,
      onActivate: function onActivate(e, $item) {
        _this6._restoreFocusToSourceFilter = true;
        $item.trigger('click');
      }
    });
    if (handled) {
      this._restoreFocusToSourceFilter = true;
    }
  },
  onSelectGridViewClick: function onSelectGridViewClick() {
    elementor.templates.onSelectViewChange('grid');
  },
  onSelectListViewClick: function onSelectListViewClick() {
    elementor.templates.onSelectViewChange('list');
  },
  onMyFavoritesFilterChange: function onMyFavoritesFilterChange() {
    elementor.templates.setFilter('favorite', this.ui.myFavoritesFilter[0].checked);
  },
  onOrderLabelsClick: function onOrderLabelsClick(event) {
    var $clickedInput = jQuery(event.currentTarget.control);
    var toggle;
    if (!$clickedInput[0].checked) {
      toggle = 'asc' !== $clickedInput.data('default-ordering-direction');
    } else {
      toggle = !$clickedInput.hasClass('elementor-template-library-order-reverse');
    }
    $clickedInput.prop('checked', true);
    $clickedInput.toggleClass('elementor-template-library-order-reverse', toggle);
    this.order($clickedInput.val(), toggle);
  },
  handleLoadMore: function handleLoadMore() {
    var _elementor,
      _this7 = this;
    if (this.removeScrollListener) {
      this.removeScrollListener();
    }
    var scrollableContainer = (_elementor = elementor) === null || _elementor === void 0 || (_elementor = _elementor.templates) === null || _elementor === void 0 || (_elementor = _elementor.layout) === null || _elementor === void 0 ? void 0 : _elementor.modal.getElements('message');
    var listener = function listener() {
      var scrollTop = scrollableContainer.scrollTop();
      var scrollHeight = scrollableContainer[0].scrollHeight;
      var clientHeight = scrollableContainer.outerHeight();
      var scrollPercentage = scrollTop / (scrollHeight - clientHeight) * 100;
      var canLoadMore = elementor.templates.canLoadMore() && !elementor.templates.isLoading();
      if (scrollPercentage < 90 || !canLoadMore) {
        return;
      }
      _this7.ui.loadMoreAnchor.toggleClass('elementor-visibility-hidden');
      elementor.templates.layout.selectAllCheckboxMinus();
      var previousCount = _this7.collection.length;
      elementor.templates.loadMore({
        onUpdate: function onUpdate() {
          _this7.ui.loadMoreAnchor.toggleClass('elementor-visibility-hidden');
          var newCount = _this7.collection.length;
          var loadedCount = newCount - previousCount;
          if (loadedCount > 0) {
            _this7.announceLoadStatus(loadedCount);
          }
        },
        search: _this7.ui.textFilter.val()
      });
    };
    scrollableContainer.on('scroll', listener);

    // QA #13: Also trigger load-more when keyboard focus reaches the last few items
    var focusListener = function focusListener(event) {
      var canLoadMore = elementor.templates.canLoadMore() && !elementor.templates.isLoading();
      if (!canLoadMore) {
        return;
      }
      if (!_this7.$childViewContainer || !_this7.$childViewContainer.length) {
        return;
      }
      var $children = _this7.$childViewContainer.children();
      var totalChildren = $children.length;
      if (totalChildren < 2) {
        return;
      }

      // Check if focus target is within one of the last 2 template items
      var $target = jQuery(event.target);
      var focusedIndex = $children.index($target.closest($children));
      if (focusedIndex >= totalChildren - 2) {
        _this7.ui.loadMoreAnchor.toggleClass('elementor-visibility-hidden');
        elementor.templates.layout.selectAllCheckboxMinus();
        var previousCount = _this7.collection.length;
        elementor.templates.loadMore({
          onUpdate: function onUpdate() {
            _this7.ui.loadMoreAnchor.toggleClass('elementor-visibility-hidden');
            var newCount = _this7.collection.length;
            var loadedCount = newCount - previousCount;
            if (loadedCount > 0) {
              _this7.announceLoadStatus(loadedCount);
            }
          },
          search: _this7.ui.textFilter.val()
        });
      }
    };
    scrollableContainer.on('focusin', focusListener);
    this.removeScrollListener = function () {
      scrollableContainer.off('scroll', listener);
      scrollableContainer.off('focusin', focusListener);
    };
  },
  onCreateNewFolderClick: function onCreateNewFolderClick() {
    var activeSource = elementor.templates.getFilter('source');
    if ('cloud' !== activeSource) {
      return;
    }
    elementor.templates.createFolder({
      source: activeSource
    }, {
      onSuccess: function onSuccess() {
        $e.routes.refreshContainer('library');
      }
    });
  },
  onHoverBulkAction: function onHoverBulkAction() {
    if (this.hasFolderInBulkSelection() || this.hasLockedTemplatesInBulkSelection()) {
      this.ui.bulkMove.find('i').css('cursor', 'not-allowed');
      this.ui.bulkCopy.find('i').css('cursor', 'not-allowed');
    } else {
      this.ui.bulkMove.find('i').css('cursor', 'pointer');
      this.ui.bulkCopy.find('i').css('cursor', 'pointer');
    }
  },
  onClickBulkMove: function onClickBulkMove() {
    if (this.hasFolderInBulkSelection() || this.hasLockedTemplatesInBulkSelection()) {
      return;
    }
    $e.route('library/save-template', {
      model: this.model,
      context: _constants.SAVE_CONTEXTS.BULK_MOVE
    });
  },
  hasFolderInBulkSelection: function hasFolderInBulkSelection() {
    var bulkSelectedItems = elementor.templates.getBulkSelectionItems();
    return this.collection.some(function (model) {
      var templateId = model.get('template_id');
      var type = model.get('type');
      return bulkSelectedItems.has(templateId) && 'folder' === type;
    });
  },
  hasLockedTemplatesInBulkSelection: function hasLockedTemplatesInBulkSelection() {
    var bulkSelectedItems = elementor.templates.getBulkSelectionItems();
    return this.collection.some(function (model) {
      var templateId = model.get('template_id');
      return bulkSelectedItems.has(templateId) && model.isLocked();
    });
  },
  onClickBulkCopy: function onClickBulkCopy() {
    if (this.hasFolderInBulkSelection() || this.hasLockedTemplatesInBulkSelection()) {
      return;
    }
    $e.route('library/save-template', {
      model: this.model,
      context: _constants.SAVE_CONTEXTS.BULK_COPY
    });
  },
  onQuotaUpgradeClicked: function onQuotaUpgradeClicked() {
    var _elementorAppConfig2;
    var quota = (_elementorAppConfig2 = elementorAppConfig) === null || _elementorAppConfig2 === void 0 || (_elementorAppConfig2 = _elementorAppConfig2['cloud-library']) === null || _elementorAppConfig2 === void 0 ? void 0 : _elementorAppConfig2.quota;
    var value = quota ? Math.round(quota.currentUsage / quota.threshold * 100) : 0;
    elementor.templates.eventManager.sendUpgradeClickedEvent({
      secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.quotaBar,
      upgrade_position: "quota bar ".concat(value ? value + '%' : '')
    });
  },
  showCloudBadgeTooltip: function showCloudBadgeTooltip() {
    if (this.cloudBadgeDialog) {
      this.cloudBadgeDialog.hide();
    }
    var emailReplacement = elementor.config.library_connect.is_connected ? elementor.config.library_connect.user_email : __('connected', 'elementor');
    /* Translators: %s: User's email. */
    var message = sprintf(__('Only %s Elementor account can access Cloud Templates from any connected site.', 'elementor'), emailReplacement);
    this.cloudBadgeDialog = elementor.dialogsManager.createWidget('buttons', {
      id: 'elementor-library--cloud-upgrade__dialog',
      effects: {
        show: 'show',
        hide: 'hide'
      },
      position: {
        of: this.ui.cloudBadge,
        at: 'top-50'
      }
    }).setMessage(message);
    this.cloudBadgeDialog.getElements('widget').addClass('variant-b');
    this.cloudBadgeDialog.getElements('header').remove();
    this.cloudBadgeDialog.getElements('buttonsWrapper').remove();
    this.cloudBadgeDialog.show();
  },
  hideCloudBadgeTooltip: function hideCloudBadgeTooltip() {
    if (this.cloudBadgeDialog) {
      this.cloudBadgeDialog.hide();
    }
  },
  showSiteBadgeTooltip: function showSiteBadgeTooltip() {
    if (this.siteBadgeDialog) {
      this.siteBadgeDialog.hide();
    }
    var message = __('Authorized users on this site can access Site Templates.', 'elementor');
    this.siteBadgeDialog = elementor.dialogsManager.createWidget('buttons', {
      id: 'elementor-library--site-info__dialog',
      effects: {
        show: 'show',
        hide: 'hide'
      },
      position: {
        of: this.ui.siteBadge,
        at: 'top-35'
      }
    }).setMessage(message);
    this.siteBadgeDialog.getElements('widget').addClass('variant-b');
    this.siteBadgeDialog.getElements('header').remove();
    this.siteBadgeDialog.getElements('buttonsWrapper').remove();
    this.siteBadgeDialog.show();
  },
  hideSiteBadgeTooltip: function hideSiteBadgeTooltip() {
    if (this.siteBadgeDialog) {
      this.siteBadgeDialog.hide();
    }
  }
});
module.exports = TemplateLibraryCollectionView;

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/template/base.js":
/*!**********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/template/base.js ***!
  \**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var TemplateLibraryInsertTemplateBehavior = __webpack_require__(/*! elementor-templates/behaviors/insert-template */ "../assets/dev/js/editor/components/template-library/behaviors/insert-template.js");
var _require = __webpack_require__(/*! elementor-utils/tiers */ "../assets/dev/js/utils/tiers.js"),
  isTierAtLeast = _require.isTierAtLeast,
  TIERS = _require.TIERS;
var TemplateLibraryTemplateView = Marionette.ItemView.extend({
  className: function className() {
    var classes = 'elementor-template-library-template';
    var source = this.model.get('source');
    classes += ' elementor-template-library-template-' + source;
    if ('remote' === source) {
      classes += ' elementor-template-library-template-' + this.model.get('type');
    }
    if (elementor.config.library_connect.base_access_tier !== this.model.get('accessTier')) {
      classes += ' elementor-template-library-pro-template';
    }
    return elementor.hooks.applyFilters('elementor/editor/template-library/template/classes', classes, this);
  },
  attributes: function attributes() {
    var userAccessTier = elementor.config.library_connect.current_access_tier;
    var templateAccessTier = this.model.get('accessTier');
    var canDownloadTemplate = isTierAtLeast(userAccessTier, templateAccessTier);

    // User with access to the template shouldn't see the badge.
    if (canDownloadTemplate) {
      return {};
    }
    var subscriptionPlans = elementor.config.library_connect.subscription_plans;
    var subscriptionPlan = subscriptionPlans[templateAccessTier];

    // Free user should see a generic "Pro" badge.
    if (userAccessTier === TIERS.free) {
      subscriptionPlan = subscriptionPlans.essential;
    }
    if (!subscriptionPlan) {
      return {};
    }
    return {
      style: "--elementor-template-library-subscription-plan-label: \"".concat(subscriptionPlan.label, "\";--elementor-template-library-subscription-plan-color: ").concat(subscriptionPlan.color, ";")
    };
  },
  ui: function ui() {
    return {
      previewButton: '.elementor-template-library-template-preview'
    };
  },
  events: function events() {
    return {
      'click @ui.previewButton': 'onPreviewButtonClick'
    };
  },
  behaviors: function behaviors() {
    var behaviors = {
      insertTemplate: {
        behaviorClass: TemplateLibraryInsertTemplateBehavior
      }
    };
    return elementor.hooks.applyFilters('elementor/editor/template-library/template/behaviors', behaviors, this);
  }
});
module.exports = TemplateLibraryTemplateView;

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/template/cloud.js":
/*!***********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/template/cloud.js ***!
  \***********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var TemplateLibraryTemplateLocalView = __webpack_require__(/*! elementor-templates/views/template/local */ "../assets/dev/js/editor/components/template-library/views/template/local.js"),
  TemplateLibraryTemplateCloudView;
TemplateLibraryTemplateCloudView = TemplateLibraryTemplateLocalView.extend({
  className: function className() {
    var view = elementor.templates.getViewSelection(),
      subType = 'FOLDER' === this.model.get('subType') ? 'folder' : 'template';
    var classes = TemplateLibraryTemplateLocalView.prototype.className.apply(this, arguments);
    classes += ' elementor-template-library-template-view-' + view;
    classes += ' elementor-template-library-template-type-' + subType;
    return classes;
  },
  attributes: function attributes() {
    if ('grid' === elementor.templates.getViewSelection()) {
      var data = this.model.toJSON();
      return {
        'data-template_id': data.template_id,
        'data-type': data.type,
        'data-status': data.status,
        tabindex: '0',
        'aria-label': data.title || ''
      };
    }
  },
  ui: function ui() {
    return _.extend(TemplateLibraryTemplateLocalView.prototype.ui.apply(this, arguments), {
      previewImg: '.elementor-template-library-template-thumbnail img',
      insertButton: '.elementor-template-library-template-insert'
    });
  },
  events: function events() {
    return _.extend(TemplateLibraryTemplateLocalView.prototype.events.apply(this, arguments), {
      keydown: 'onGridCardKeyDown'
    });
  },
  modelEvents: _.extend({}, TemplateLibraryTemplateLocalView.prototype.modelEvents, {
    'change:preview_url': 'onPreviewUrlChange'
  }),
  onGridCardKeyDown: function onGridCardKeyDown(event) {
    if ('grid' !== elementor.templates.getViewSelection()) {
      return;
    }

    // Only handle keydown events directly on the card element itself, not on children
    if (event.target !== this.el) {
      return;
    }
    if ('Enter' === event.key || ' ' === event.key) {
      event.preventDefault();
      if ('FOLDER' === this.model.get('subType')) {
        $e.route('library/view-folder', {
          model: this.model,
          onAfter: function onAfter() {
            elementor.templates.resetBulkActionBar();
          }
        });
      } else {
        this.handleGridViewItemSingleClick();
      }
    }
  },
  onRender: function onRender() {
    var previewUrl = this.model.get('preview_url');
    if (this.shouldGeneratePreview()) {
      this.iframe = elementor.templates.layout.createScreenshotIframe(this.model.get('generate_preview_url'));
      this.isGeneratingPreview = true;
    }
    if (previewUrl) {
      this.updatePreviewImgStyle();
    }
  },
  onPreviewUrlChange: function onPreviewUrlChange() {
    var previewUrl = this.model.get('preview_url');
    this.isGeneratingPreview = false;
    if (previewUrl) {
      this.ui.previewImg.attr('src', previewUrl);
      this.updatePreviewImgStyle();
      this.model.set('generate_preview_url', null);
      this.iframe.remove();
    }
  },
  updatePreviewImgStyle: function updatePreviewImgStyle() {
    var _this = this;
    var img = this.ui.previewImg[0];
    if (!img) {
      return;
    }
    var applyObjectFit = function applyObjectFit() {
      var objectFit = img.naturalHeight > 2000 ? 'cover' : 'contain';
      if ('cover' === objectFit) {
        _this.ui.previewImg.css('object-fit', 'cover');
        _this.ui.previewImg.css('object-position', 'top');
      }
    };
    if (img.complete && img.naturalHeight > 0) {
      applyObjectFit();
    } else {
      img.onload = applyObjectFit;
    }
  },
  shouldGeneratePreview: function shouldGeneratePreview() {
    var view = elementor.templates.getViewSelection();
    return 'FOLDER' !== this.model.get('subType') && this.model.get('generate_preview_url') && !this.model.get('preview_url') && 'grid' === view && !this.isGeneratingPreview;
  },
  onPreviewButtonClick: function onPreviewButtonClick(event) {
    event.stopPropagation();
    if ('FOLDER' === this.model.get('subType')) {
      $e.route('library/view-folder', {
        model: this.model,
        onAfter: function onAfter() {
          elementor.templates.resetBulkActionBar();
        }
      });
    }
    if ('TEMPLATE' === this.model.get('subType')) {
      this.handleGridViewItemSingleClick();
    }
  },
  onDeleteButtonClick: function onDeleteButtonClick(event) {
    event.stopPropagation();
    if ('FOLDER' === this.model.get('subType')) {
      this.handleDeleteFolderClick();
      return;
    }
    TemplateLibraryTemplateLocalView.prototype.onDeleteButtonClick.apply(this, arguments);
  },
  handleDeleteFolderClick: function handleDeleteFolderClick() {
    var toggleMoreIcon = this.ui.toggleMoreIcon;
    elementor.templates.deleteFolder(this.model, {
      onConfirm: function onConfirm() {
        toggleMoreIcon.removeClass('eicon-ellipsis-h').addClass('eicon-loading eicon-animation-spin');
      },
      onSuccess: function onSuccess() {
        $e.routes.refreshContainer('library');
      }
    });
  },
  handleItemSingleClick: function handleItemSingleClick() {
    if ('grid' === elementor.templates.getViewSelection()) {
      this.handleGridViewItemSingleClick();
    } else {
      this.handleListViewItemSingleClick();
    }
  },
  handleItemDoubleClick: function handleItemDoubleClick() {
    if ('FOLDER' === this.model.get('subType')) {
      $e.route('library/view-folder', {
        model: this.model,
        onAfter: function onAfter() {
          elementor.templates.resetBulkActionBar();
        }
      });
    }
  },
  handleGridViewItemSingleClick: function handleGridViewItemSingleClick() {
    var itemIsSelected = this.$el.hasClass('bulk-selected-item');
    if (itemIsSelected) {
      elementor.templates.removeBulkSelectionItem(this.model.get('template_id'), this.model.get('type'));
    } else {
      elementor.templates.addBulkSelectionItem(this.model.get('template_id'), this.model.get('type'));
    }
    this.$el.toggleClass('bulk-selected-item');
    elementor.templates.layout.handleBulkActionBar();
  }
});
module.exports = TemplateLibraryTemplateCloudView;

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/template/local.js":
/*!***********************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/template/local.js ***!
  \***********************************************************************************/
/***/ ((module, __unused_webpack_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");
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
var _constants = __webpack_require__(/*! ./../../constants */ "../assets/dev/js/editor/components/template-library/constants.js");
var _keyboardNav = __webpack_require__(/*! elementor-editor-utils/keyboard-nav */ "../assets/dev/js/editor/utils/keyboard-nav.js");
var TemplateLibraryTemplateView = __webpack_require__(/*! elementor-templates/views/template/base */ "../assets/dev/js/editor/components/template-library/views/template/base.js");
var TemplateLibraryTemplateLocalView = TemplateLibraryTemplateView.extend({
  template: '#tmpl-elementor-template-library-template-local',
  ui: function ui() {
    return _.extend(TemplateLibraryTemplateView.prototype.ui.apply(this, arguments), {
      bulkSelectionItemCheckbox: '.bulk-selection-item-checkbox',
      deleteButton: '.elementor-template-library-template-delete',
      renameButton: '.elementor-template-library-template-rename',
      moveButton: '.elementor-template-library-template-move',
      copyButton: '.elementor-template-library-template-copy',
      exportButton: '.elementor-template-library-template-export',
      morePopup: '.elementor-template-library-template-more',
      toggleMore: '.elementor-template-library-template-more-toggle',
      toggleMoreIcon: '.elementor-template-library-template-more-toggle i',
      titleCell: '.elementor-template-library-template-name span',
      resourceIcon: '.elementor-template-library-template-name i'
    });
  },
  events: function events() {
    return _.extend(TemplateLibraryTemplateView.prototype.events.apply(this, arguments), {
      click: 'handleItemClicked',
      'change @ui.bulkSelectionItemCheckbox': 'onSelectBulkSelectionItemCheckbox',
      'click @ui.deleteButton': 'onDeleteButtonClick',
      'click @ui.toggleMore': 'onToggleMoreClick',
      'keydown @ui.toggleMore': 'onToggleMoreKeyDown',
      'keydown @ui.morePopup': 'onMenuKeyDown',
      'click @ui.renameButton': 'onRenameClick',
      'click @ui.moveButton': 'onMoveClick',
      'click @ui.copyButton': 'onCopyClick',
      'click @ui.exportButton': 'onExportClick'
    });
  },
  modelEvents: {
    'change:title': 'onTitleChange'
  },
  onRender: function onRender() {
    var _this = this;
    if (this.ui.toggleMore.length) {
      this.ui.toggleMore.attr({
        'aria-haspopup': 'menu',
        'aria-expanded': 'false'
      });
    }
    if (this.ui.bulkSelectionItemCheckbox.length) {
      this.updateRowSelectionAttributes();
    }

    // Set up click-outside handler to close context menu
    if (this.ui.morePopup && this.ui.morePopup.length) {
      this._onDocumentClick = function (e) {
        if ('true' !== _this.ui.toggleMore.attr('aria-expanded')) {
          return;
        }
        if (!_this.ui.toggleMore[0].contains(e.target) && !_this.ui.morePopup[0].contains(e.target)) {
          _this.closeContextMenu();
        }
      };
      jQuery(document).on('click', this._onDocumentClick);

      // Set tabindex on menu items for keyboard focus
      this.ui.morePopup.find('button, a').attr('tabindex', '-1');
    }
  },
  onBeforeDestroy: function onBeforeDestroy() {
    if (this._onDocumentClick) {
      jQuery(document).off('click', this._onDocumentClick);
    }
  },
  openContextMenu: function openContextMenu() {
    this.handleLockedTemplate();
    this.ui.toggleMore.attr('aria-expanded', 'true');
    this.ui.morePopup.show();
    elementor.templates.eventManager.sendPageViewEvent({
      location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.morePopup
    });
  },
  closeContextMenu: function closeContextMenu() {
    this.ui.toggleMore.attr('aria-expanded', 'false');
    this.ui.morePopup.hide();
  },
  getMenuItems: function getMenuItems() {
    return this.ui.morePopup.find('button:visible, a:visible');
  },
  onToggleMoreKeyDown: function onToggleMoreKeyDown(event) {
    if ('Escape' === event.key) {
      event.preventDefault();
      if ('true' === this.ui.toggleMore.attr('aria-expanded')) {
        this.closeContextMenu();
        (0, _keyboardNav.suppressEscapeKeyUp)(event);
      }
      return;
    }
    if ('ArrowDown' === event.key || 'Enter' === event.key || ' ' === event.key) {
      event.preventDefault();
      event.stopPropagation();
      if ('true' !== this.ui.toggleMore.attr('aria-expanded')) {
        this.openContextMenu();
      }
      var $items = this.getMenuItems();
      if ($items.length) {
        $items.first().trigger('focus');
      }
    }
  },
  onMenuKeyDown: function onMenuKeyDown(event) {
    if ('Escape' === event.key) {
      event.preventDefault();
      this.closeContextMenu();
      this.ui.toggleMore.trigger('focus');
      (0, _keyboardNav.suppressEscapeKeyUp)(event);
      return;
    }
    if ('Tab' === event.key) {
      this.handleMenuTab(event);
      return;
    }
    var $items = this.getMenuItems();
    (0, _keyboardNav.rovingTabindex)({
      event: event,
      $items: $items,
      orientation: 'vertical',
      homeEnd: true
    });
    event.stopPropagation();
  },
  handleMenuTab: function handleMenuTab(event) {
    var $items = this.getMenuItems();
    var currentIndex = $items.index(event.target);
    if (event.shiftKey) {
      if (currentIndex <= 0) {
        // Close menu and let the browser naturally move focus backwards.
        this.closeContextMenu();
        this.ui.toggleMore.trigger('focus');
      } else {
        event.preventDefault();
        event.stopPropagation();
        $items.eq(currentIndex - 1).trigger('focus');
      }
      return;
    }
    if (currentIndex < $items.length - 1) {
      event.preventDefault();
      event.stopPropagation();
      $items.eq(currentIndex + 1).trigger('focus');
    } else {
      // Close menu and let the browser naturally advance focus forward.
      this.closeContextMenu();
      this.ui.toggleMore.trigger('focus');
    }
  },
  updateRowSelectionAttributes: function updateRowSelectionAttributes() {
    var isChecked = this.ui.bulkSelectionItemCheckbox.prop('checked');
    var isSelected = this.$el.hasClass('bulk-selected-item');
    this.ui.bulkSelectionItemCheckbox.attr('aria-checked', isChecked);
    if (isSelected) {
      this.$el.attr({
        'aria-selected': 'true',
        tabindex: '0'
      });
    } else {
      this.$el.attr({
        'aria-selected': 'false',
        tabindex: '-1'
      });
    }
  },
  handleLockedTemplate: function handleLockedTemplate() {
    var isLocked = this.model.isLocked();
    this.ui.renameButton.toggleClass('disabled', isLocked);
    this.ui.moveButton.toggleClass('disabled', isLocked);
    this.ui.copyButton.toggleClass('disabled', isLocked);
    this.ui.exportButton.toggleClass('disabled', isLocked);
  },
  onTitleChange: function onTitleChange() {
    var title = _.escape(this.model.get('title'));
    this.ui.titleCell.text(title);
    if (this.ui.bulkSelectionItemCheckbox.length) {
      var ariaLabel = __('Select template', 'elementor') + ' ' + title;
      this.ui.bulkSelectionItemCheckbox.attr('aria-label', ariaLabel);
    }
  },
  handleItemClicked: function handleItemClicked(event) {
    var _this2 = this;
    if (event.target.closest('.bulk-selection-item-checkbox')) {
      return; // Ignore clicks from checkbox
    }
    if (!this._clickState) {
      this._clickState = {
        timeoutId: null,
        delay: 250
      };
    }
    var state = this._clickState;
    if (state.timeoutId) {
      clearTimeout(state.timeoutId);
      state.timeoutId = null;
      this.handleItemDoubleClick();
    } else {
      state.timeoutId = setTimeout(function () {
        state.timeoutId = null;
        _this2.handleItemSingleClick();
      }, state.delay);
    }
  },
  handleItemSingleClick: function handleItemSingleClick() {
    this.handleListViewItemSingleClick();
  },
  handleItemDoubleClick: function handleItemDoubleClick() {},
  handleListViewItemSingleClick: function handleListViewItemSingleClick() {
    var checkbox = this.ui.bulkSelectionItemCheckbox;
    var isChecked = checkbox.prop('checked');
    checkbox.prop('checked', !isChecked).trigger('change');
  },
  onDeleteButtonClick: function onDeleteButtonClick(event) {
    event.stopPropagation();

    // Close the context menu before opening the delete confirmation dialog
    this.closeContextMenu();
    var toggleMoreIcon = this.ui.toggleMoreIcon;
    elementor.templates.deleteTemplate(this.model, {
      onConfirm: function onConfirm() {
        toggleMoreIcon.removeClass('eicon-ellipsis-h').addClass('eicon-loading eicon-animation-spin');
      }
    });
  },
  onToggleMoreClick: function onToggleMoreClick(event) {
    event.stopPropagation();
    this.handleLockedTemplate();
    var isExpanded = 'true' === this.ui.toggleMore.attr('aria-expanded');
    this.ui.toggleMore.attr('aria-expanded', !isExpanded);
    if (isExpanded) {
      this.ui.morePopup.hide();
    } else {
      this.ui.morePopup.show();

      // Focus the first visible menu item when opening via click
      var $items = this.getMenuItems();
      if ($items.length) {
        $items.first().trigger('focus');
      }
    }
    elementor.templates.eventManager.sendPageViewEvent({
      location: elementorCommon.eventsManager.config.secondaryLocations.templateLibrary.morePopup
    });
  },
  onPreviewButtonClick: function onPreviewButtonClick(event) {
    event.stopPropagation();
    open(this.model.get('url'), '_blank');
  },
  onRenameClick: function onRenameClick(event) {
    var _this3 = this;
    return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
      return _regenerator.default.wrap(function (_context) {
        while (1) switch (_context.prev = _context.next) {
          case 0:
            event.stopPropagation();
            if (!_this3.model.isLocked()) {
              _context.next = 1;
              break;
            }
            return _context.abrupt("return");
          case 1:
            // Close the context menu before opening rename dialog
            _this3.closeContextMenu();
            _context.prev = 2;
            _context.next = 3;
            return elementor.templates.renameTemplate(_this3.model, {
              onConfirm: function onConfirm() {
                return _this3.showToggleMoreLoader();
              }
            });
          case 3:
            _context.prev = 3;
            _this3.hideToggleMoreLoader();

            // Restore focus to the toggle button after rename completes
            if (_this3.ui.toggleMore && _this3.ui.toggleMore.length) {
              _this3.ui.toggleMore.trigger('focus');
            }
            return _context.finish(3);
          case 4:
          case "end":
            return _context.stop();
        }
      }, _callee, null, [[2,, 3, 4]]);
    }))();
  },
  onMoveClick: function onMoveClick() {
    if (this.model.isLocked()) {
      return;
    }
    $e.route('library/save-template', {
      model: this.model,
      context: _constants.SAVE_CONTEXTS.MOVE
    });
  },
  onCopyClick: function onCopyClick() {
    if (this.model.isLocked()) {
      return;
    }
    $e.route('library/save-template', {
      model: this.model,
      context: _constants.SAVE_CONTEXTS.COPY
    });
  },
  onExportClick: function onExportClick(e) {
    e.stopPropagation();
    if (this.model.isLocked()) {
      e.preventDefault();
    }
  },
  showToggleMoreLoader: function showToggleMoreLoader() {
    this.ui.toggleMoreIcon.removeClass('eicon-ellipsis-h').addClass('eicon-loading eicon-animation-spin');
  },
  hideToggleMoreLoader: function hideToggleMoreLoader() {
    this.ui.toggleMoreIcon.addClass('eicon-ellipsis-h').removeClass('eicon-loading eicon-animation-spin');
  },
  onSelectBulkSelectionItemCheckbox: function onSelectBulkSelectionItemCheckbox(event) {
    var _event$target;
    event.stopPropagation();
    if (event !== null && event !== void 0 && (_event$target = event.target) !== null && _event$target !== void 0 && _event$target.checked) {
      elementor.templates.addBulkSelectionItem(event.target.dataset.template_id, event.target.dataset.type);
      this.$el.addClass('bulk-selected-item');
    } else {
      elementor.templates.removeBulkSelectionItem(event.target.dataset.template_id, event.target.dataset.type);
      this.$el.removeClass('bulk-selected-item');
    }
    this.updateRowSelectionAttributes();
    elementor.templates.layout.handleBulkActionBarUi();
  }
});
module.exports = TemplateLibraryTemplateLocalView;

/***/ }),

/***/ "../assets/dev/js/editor/components/template-library/views/template/remote.js":
/*!************************************************************************************!*\
  !*** ../assets/dev/js/editor/components/template-library/views/template/remote.js ***!
  \************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var _editorOneEvents = __webpack_require__(/*! elementor-editor-utils/editor-one-events */ "../assets/dev/js/editor/utils/editor-one-events.js");
var TemplateLibraryTemplateView = __webpack_require__(/*! elementor-templates/views/template/base */ "../assets/dev/js/editor/components/template-library/views/template/base.js"),
  TemplateLibraryTemplateRemoteView;
TemplateLibraryTemplateRemoteView = TemplateLibraryTemplateView.extend({
  template: '#tmpl-elementor-template-library-template-remote',
  attributes: function attributes() {
    return jQuery.extend(TemplateLibraryTemplateView.prototype.attributes.apply(this, arguments), {
      tabindex: '0',
      'aria-label': this.model.get('title') || ''
    });
  },
  ui: function ui() {
    return jQuery.extend(TemplateLibraryTemplateView.prototype.ui.apply(this, arguments), {
      favoriteCheckbox: '.elementor-template-library-template-favorite-input'
    });
  },
  events: function events() {
    return jQuery.extend(TemplateLibraryTemplateView.prototype.events.apply(this, arguments), {
      'change @ui.favoriteCheckbox': 'onFavoriteCheckboxChange'
    });
  },
  onPreviewButtonClick: function onPreviewButtonClick(event) {
    event.stopPropagation();
    $e.route('library/preview', {
      model: this.model
    });
  },
  onFavoriteCheckboxChange: function onFavoriteCheckboxChange() {
    var _elementor$config$lib;
    var isFavorite = this.ui.favoriteCheckbox[0].checked;
    this.model.set('favorite', isFavorite);
    elementor.templates.markAsFavorite(this.model, isFavorite);
    var baseTier = (_elementor$config$lib = elementor.config.library_connect) === null || _elementor$config$lib === void 0 ? void 0 : _elementor$config$lib.base_access_tier;
    var templateTier = this.model.get('accessTier');
    _editorOneEvents.EditorOneEventManager.sendELibraryFavorite({
      assetId: this.model.get('template_id'),
      assetName: this.model.get('title'),
      libraryType: this.model.get('type') || this.model.get('source'),
      isFavorite: isFavorite,
      proRequired: baseTier !== templateTier
    });
    if (!isFavorite && elementor.templates.getFilter('favorite')) {
      elementor.channels.templates.trigger('filter:change');
    }
  }
});
module.exports = TemplateLibraryTemplateRemoteView;

/***/ }),

/***/ "../assets/dev/js/editor/components/validator/base.js":
/*!************************************************************!*\
  !*** ../assets/dev/js/editor/components/validator/base.js ***!
  \************************************************************/
/***/ ((module) => {

"use strict";


module.exports = elementorModules.Module.extend({
  errors: [],
  __construct: function __construct(settings) {
    var customValidationMethod = settings.customValidationMethod;
    if (customValidationMethod) {
      this.validationMethod = customValidationMethod;
    }
  },
  getDefaultSettings: function getDefaultSettings() {
    return {
      validationTerms: {}
    };
  },
  isValid: function isValid() {
    var validationErrors = this.validationMethod.apply(this, arguments);
    if (validationErrors.length) {
      this.errors = validationErrors;
      return false;
    }
    return true;
  },
  validationMethod: function validationMethod(newValue) {
    var validationTerms = this.getSettings('validationTerms'),
      errors = [];
    if (validationTerms.required) {
      if (!('' + newValue).length) {
        errors.push('Required value is empty');
      }
    }
    return errors;
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/components/validator/breakpoint.js":
/*!******************************************************************!*\
  !*** ../assets/dev/js/editor/components/validator/breakpoint.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"));
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; })(); }
var NumberValidator = __webpack_require__(/*! elementor-validator/number */ "../assets/dev/js/editor/components/validator/number.js");
var BreakpointValidator = exports["default"] = /*#__PURE__*/function (_NumberValidator) {
  function BreakpointValidator() {
    (0, _classCallCheck2.default)(this, BreakpointValidator);
    return _callSuper(this, BreakpointValidator, arguments);
  }
  (0, _inherits2.default)(BreakpointValidator, _NumberValidator);
  return (0, _createClass2.default)(BreakpointValidator, [{
    key: "getDefaultSettings",
    value: function getDefaultSettings() {
      return {
        validationTerms: {
          // Max width we allow in general
          max: 5120
        }
      };
    }

    /**
     * Get Panel Active Breakpoints
     *
     * Since the active kit used in the Site Settings panel could be a draft, we need to use the panel's active
     * breakpoints settings and not the elementorFrontend.config values (which come from the DB).
     *
     * @return {*} Object
     */
  }, {
    key: "getPanelActiveBreakpoints",
    value: function getPanelActiveBreakpoints() {
      var panelBreakpoints = elementor.documents.currentDocument.config.settings.settings.active_breakpoints.map(function (breakpointName) {
          return breakpointName.replace('viewport_', '');
        }),
        panelActiveBreakpoints = {};
      panelBreakpoints.forEach(function (breakpointName) {
        panelActiveBreakpoints[breakpointName] = elementorFrontend.config.responsive.breakpoints[breakpointName];
      });
      return panelActiveBreakpoints;
    }
  }, {
    key: "initBreakpointProperties",
    value: function initBreakpointProperties() {
      var _activeBreakpoints$br, _activeBreakpoints$br2;
      var validationTerms = this.getSettings('validationTerms'),
        activeBreakpoints = this.getPanelActiveBreakpoints(),
        breakpointKeys = Object.keys(activeBreakpoints);
      this.breakpointIndex = breakpointKeys.indexOf(validationTerms.breakpointName);
      this.topBreakpoint = (_activeBreakpoints$br = activeBreakpoints[breakpointKeys[this.breakpointIndex + 1]]) === null || _activeBreakpoints$br === void 0 ? void 0 : _activeBreakpoints$br.value;
      this.bottomBreakpoint = (_activeBreakpoints$br2 = activeBreakpoints[breakpointKeys[this.breakpointIndex - 1]]) === null || _activeBreakpoints$br2 === void 0 ? void 0 : _activeBreakpoints$br2.value;
    }
  }, {
    key: "validationMethod",
    value: function validationMethod(newValue) {
      var validationTerms = this.getSettings('validationTerms'),
        errors = NumberValidator.prototype.validationMethod.call(this, newValue);

      // Validate both numeric and empty values, since breakpoints utilize default values when empty.
      if (_.isFinite(newValue) || '' === newValue) {
        if (!this.validateMinMaxForBreakpoint(newValue, validationTerms)) {
          errors.push('Value is not between the breakpoints above or under the edited breakpoint');
        }
      }
      return errors;
    }
  }, {
    key: "validateMinMaxForBreakpoint",
    value: function validateMinMaxForBreakpoint(newValue, validationTerms) {
      var breakpointDefaultValue = elementorFrontend.config.responsive.breakpoints[validationTerms.breakpointName].default_value;
      var isValid = true;
      this.initBreakpointProperties();

      // Since the following comparison is <=, allow usage of the 320px value for the mobile breakpoint.
      if ('mobile' === validationTerms.breakpointName && 320 === this.bottomBreakpoint) {
        this.bottomBreakpoint -= 1;
      }

      // If there is a breakpoint below the currently edited breakpoint
      if (this.bottomBreakpoint) {
        // Check that the new value is not under the bottom breakpoint's value.
        if ('' !== newValue && newValue <= this.bottomBreakpoint) {
          isValid = false;
        }

        // If the new value is empty, check that the default breakpoint value is not below the bottom breakpoint.
        if ('' === newValue && breakpointDefaultValue <= this.bottomBreakpoint) {
          isValid = false;
        }
      }

      // If there is a breakpoint above the currently edited breakpoint.
      if (this.topBreakpoint) {
        // Check that the value is not above the top breakpoint's value.
        if ('' !== newValue && newValue >= this.topBreakpoint) {
          isValid = false;
        }

        // If the new value is empty, check that the default breakpoint value is not above the top breakpoint.
        if ('' === newValue && breakpointDefaultValue >= this.topBreakpoint) {
          isValid = false;
        }
      }
      return isValid;
    }
  }]);
}(NumberValidator);

/***/ }),

/***/ "../assets/dev/js/editor/components/validator/number.js":
/*!**************************************************************!*\
  !*** ../assets/dev/js/editor/components/validator/number.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var Validator = __webpack_require__(/*! elementor-validator/base */ "../assets/dev/js/editor/components/validator/base.js");
module.exports = Validator.extend({
  validationMethod: function validationMethod(newValue) {
    var validationTerms = this.getSettings('validationTerms'),
      errors = [];
    if (_.isFinite(newValue)) {
      if (undefined !== validationTerms.min && newValue < validationTerms.min) {
        errors.push('Value is less than minimum');
      }
      if (undefined !== validationTerms.max && newValue > validationTerms.max) {
        errors.push('Value is greater than maximum');
      }
    }
    return errors;
  }
});

/***/ }),

/***/ "../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/controls/base-data.js":
/*!*****************************************************!*\
  !*** ../assets/dev/js/editor/controls/base-data.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 _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _breakpoint = _interopRequireDefault(__webpack_require__(/*! elementor-validator/breakpoint */ "../assets/dev/js/editor/components/validator/breakpoint.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; }
var ControlBaseView = __webpack_require__(/*! elementor-controls/base */ "../assets/dev/js/editor/controls/base.js"),
  TagsBehavior = __webpack_require__(/*! elementor-dynamic-tags/control-behavior */ "../assets/dev/js/editor/components/dynamic-tags/control-behavior.js"),
  Validator = __webpack_require__(/*! elementor-validator/base */ "../assets/dev/js/editor/components/validator/base.js"),
  NumberValidator = __webpack_require__(/*! elementor-validator/number */ "../assets/dev/js/editor/components/validator/number.js"),
  ControlBaseDataView;
ControlBaseDataView = ControlBaseView.extend({
  validatorTypes: {
    Base: Validator,
    Number: NumberValidator,
    Breakpoint: _breakpoint.default
  },
  ui: function ui() {
    var ui = ControlBaseView.prototype.ui.apply(this, arguments);
    _.extend(ui, {
      input: 'input[data-setting][type!="checkbox"][type!="radio"]',
      checkbox: 'input[data-setting][type="checkbox"]',
      radio: 'input[data-setting][type="radio"]',
      select: 'select[data-setting]',
      textarea: 'textarea[data-setting]',
      responsiveSwitchersSibling: "".concat(ui.controlTitle, "[data-e-responsive-switcher-sibling!=\"false\"]"),
      responsiveSwitchers: '.elementor-responsive-switcher',
      contentEditable: '[contenteditable="true"]'
    });
    return ui;
  },
  templateHelpers: function templateHelpers() {
    var controlData = ControlBaseView.prototype.templateHelpers.apply(this, arguments);
    controlData.data.controlValue = this.getControlValue();
    return controlData;
  },
  events: function events() {
    return {
      'input @ui.input': 'onBaseInputTextChange',
      'change @ui.checkbox': 'onBaseInputChange',
      'change @ui.radio': 'onBaseInputChange',
      'input @ui.textarea': 'onBaseInputTextChange',
      'change @ui.select': 'onBaseInputChange',
      'input @ui.contentEditable': 'onBaseInputTextChange',
      'click @ui.responsiveSwitchers': 'onResponsiveSwitchersClick'
    };
  },
  behaviors: function behaviors() {
    var behaviors = ControlBaseView.prototype.behaviors.apply(this, arguments),
      dynamicSettings = this.options.model.get('dynamic');
    if (dynamicSettings && dynamicSettings.active) {
      var tags = _.filter(elementor.dynamicTags.getConfig('tags'), function (tag) {
        return tag.editable && _.intersection(tag.categories, dynamicSettings.categories).length;
      });
      if (tags.length || elementor.config.user.is_administrator) {
        behaviors.tags = {
          behaviorClass: TagsBehavior,
          tags: tags,
          dynamicSettings: dynamicSettings
        };
      }
    }
    return behaviors;
  },
  initialize: function initialize() {
    ControlBaseView.prototype.initialize.apply(this, arguments);
    this.registerValidators();
    if (this.model.get('responsive')) {
      this.setPlaceholderFromParent();
    }
    if (undefined === this.model.get('inherit_placeholders')) {
      this.model.set('inherit_placeholders', true);
    }

    // TODO: this.elementSettingsModel is deprecated since 2.8.0.
    var settings = this.container ? this.container.settings : this.elementSettingsModel;
    this.listenTo(settings, 'change:external:' + this.model.get('name'), this.onAfterExternalChange);
  },
  getControlValue: function getControlValue() {
    return this.container.settings.get(this.model.get('name'));
  },
  getGlobalKey: function getGlobalKey() {
    return this.container.globals.get(this.model.get('name'));
  },
  getGlobalValue: function getGlobalValue() {
    return this.globalValue;
  },
  getGlobalDefault: function getGlobalDefault() {
    var controlGlobalArgs = this.model.get('global');
    if (controlGlobalArgs !== null && controlGlobalArgs !== void 0 && controlGlobalArgs.default) {
      // If 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[this.getGlobalMeta().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 '';
  },
  getCurrentValue: function getCurrentValue() {
    if (this.getGlobalKey() && !this.globalValue) {
      return '';
    }
    if (this.globalValue) {
      return this.globalValue;
    }
    var controlValue = this.getControlValue();
    if (controlValue) {
      return controlValue;
    }
    return this.getGlobalDefault();
  },
  isGlobalActive: function isGlobalActive() {
    var _this$options$model$g;
    return (_this$options$model$g = this.options.model.get('global')) === null || _this$options$model$g === void 0 ? void 0 : _this$options$model$g.active;
  },
  setValue: function setValue(value) {
    this.setSettingsModel(value);
  },
  setSettingsModel: function setSettingsModel(value) {
    var key = this.model.get('name');
    $e.run('document/elements/settings', {
      container: this.options.container,
      settings: (0, _defineProperty2.default)({}, key, value)
    });
    this.triggerMethod('settings:change');
  },
  applySavedValue: function applySavedValue() {
    this.setInputValue('[data-setting="' + this.model.get('name') + '"]', this.getControlValue());
  },
  getEditSettings: function getEditSettings(setting) {
    var settings = this.getOption('elementEditSettings').toJSON();
    if (setting) {
      return settings[setting];
    }
    return settings;
  },
  setEditSetting: function setEditSetting(settingKey, settingValue) {
    var settings = this.getOption('elementEditSettings') || this.getOption('container').settings;
    settings.set(settingKey, settingValue);
  },
  /**
   * Get the placeholder for the current control.
   *
   * @return {*} placeholder
   */
  getControlPlaceholder: function getControlPlaceholder() {
    var placeholder = this.model.get('placeholder');
    if (this.model.get('responsive') && this.model.get('inherit_placeholders')) {
      placeholder = placeholder || this.container.placeholders[this.model.get('name')];
    }
    return placeholder;
  },
  /**
   * Get the responsive parent view if exists.
   *
   * @return {ControlBaseDataView|undefined} responsive parent view if exists
   */
  getResponsiveParentView: function getResponsiveParentView() {
    var parent = this.model.get('parent');
    try {
      return parent && this.container.panel.getControlView(parent);
      // eslint-disable-next-line no-empty
    } catch (e) {}
  },
  /**
   * Get the responsive children views if exists.
   *
   * @return {ControlBaseDataView|null} responsive children views if exists
   */
  getResponsiveChildrenViews: function getResponsiveChildrenViews() {
    var children = this.model.get('inheritors'),
      views = [];
    try {
      var _iterator = _createForOfIteratorHelper(children),
        _step;
      try {
        for (_iterator.s(); !(_step = _iterator.n()).done;) {
          var child = _step.value;
          views.push(this.container.panel.getControlView(child));
        }
        // eslint-disable-next-line no-empty
      } catch (err) {
        _iterator.e(err);
      } finally {
        _iterator.f();
      }
    } catch (e) {}
    return views;
  },
  /**
   * Get prepared placeholder from the responsive parent, and put it into current
   * control model as placeholder.
   */
  setPlaceholderFromParent: function setPlaceholderFromParent() {
    var parent = this.getResponsiveParentView();
    if (parent) {
      this.container.placeholders[this.model.get('name')] = parent.preparePlaceholderForChildren();
    }
  },
  /**
   * Returns the value of the current control if exists, or the parent value if not,
   * so responsive children can set it as their placeholder. When there are multiple
   * inputs, the inputs which are empty on this control will inherit their values
   * from the responsive parent.
   * For example, if on desktop the padding of all edges is 10, and on tablet only
   * padding right and left is set to 15, the mobile control placeholder will
   * eventually be: { top: 10, right: 15, left: 15, bottom: 10 }, because of the
   * inheritance of multiple values.
   *
   * @return {*} value of the current control if exists, or the parent value if not
   */
  preparePlaceholderForChildren: function preparePlaceholderForChildren() {
    var _this$getResponsivePa;
    var cleanValue = this.getCleanControlValue(),
      parentValue = (_this$getResponsivePa = this.getResponsiveParentView()) === null || _this$getResponsivePa === void 0 ? void 0 : _this$getResponsivePa.preparePlaceholderForChildren();
    if (cleanValue instanceof Object) {
      return Object.assign({}, parentValue, cleanValue);
    }
    return cleanValue || parentValue;
  },
  /**
   * Start the re-rendering recursive chain from the responsive child of this
   * control. It's useful when the current control value is changed and we want
   * to update all responsive children. In this case, the re-rendering is supposed
   * to be applied only from the responsive child of this control and on.
   */
  propagatePlaceholder: function propagatePlaceholder() {
    var children = this.getResponsiveChildrenViews();
    var _iterator2 = _createForOfIteratorHelper(children),
      _step2;
    try {
      for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
        var child = _step2.value;
        child.renderWithChildren();
      }
    } catch (err) {
      _iterator2.e(err);
    } finally {
      _iterator2.f();
    }
  },
  /**
   * Re-render current control and trigger this method on the responsive child.
   * The purpose of those actions is to recursively re-render all responsive
   * children.
   */
  renderWithChildren: function renderWithChildren() {
    this.render();
    this.propagatePlaceholder();
  },
  /**
   * Get control value without empty properties, and without default values.
   *
   * @return {{}} control value without empty properties, and without default values
   */
  getCleanControlValue: function getCleanControlValue() {
    var value = this.getControlValue();
    return value && value !== this.model.get('default') ? value : undefined;
  },
  onAfterChange: function onAfterChange(control) {
    if (Object.keys(control.changed).includes(this.model.get('name'))) {
      this.propagatePlaceholder();
    }
    ControlBaseView.prototype.onAfterChange.apply(this, arguments);
  },
  getInputValue: function getInputValue(input) {
    var $input = this.$(input);
    if ($input.is('[contenteditable="true"]')) {
      return $input.html();
    }
    var inputValue = $input.val(),
      inputType = $input.attr('type');
    if (-1 !== ['radio', 'checkbox'].indexOf(inputType)) {
      return $input.prop('checked') ? inputValue : '';
    }
    if ('number' === inputType && _.isFinite(inputValue)) {
      return +inputValue;
    }

    // Temp fix for jQuery (< 3.0) that return null instead of empty array
    if ('SELECT' === input.tagName && $input.prop('multiple') && null === inputValue) {
      inputValue = [];
    }
    return inputValue;
  },
  setInputValue: function setInputValue(input, value) {
    var $input = this.$(input),
      inputType = $input.attr('type');
    if ('checkbox' === inputType) {
      $input.prop('checked', !!value);
    } else if ('radio' === inputType) {
      $input.filter('[value="' + value + '"]').prop('checked', true);
    } else {
      $input.val(value);
    }
  },
  addValidator: function addValidator(validator) {
    this.validators.push(validator);
  },
  registerValidators: function registerValidators() {
    var _this = this;
    this.validators = [];
    var validationTerms = {};
    if (this.model.get('required')) {
      validationTerms.required = true;
    }
    if (!jQuery.isEmptyObject(validationTerms)) {
      this.addValidator(new this.validatorTypes.Base({
        validationTerms: validationTerms
      }));
    }
    var validators = this.model.get('validators');
    if (validators) {
      Object.entries(validators).forEach(function (_ref) {
        var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
          key = _ref2[0],
          args = _ref2[1];
        _this.addValidator(new _this.validatorTypes[key]({
          validationTerms: args
        }));
      });
    }
  },
  onBeforeRender: function onBeforeRender() {
    this.setPlaceholderFromParent();
  },
  onRender: function onRender() {
    ControlBaseView.prototype.onRender.apply(this, arguments);
    if (this.model.get('responsive')) {
      this.renderResponsiveSwitchers();
    }
    this.applySavedValue();
    this.triggerMethod('ready');
    this.toggleControlVisibility();
    this.addTooltip();
  },
  onBaseInputTextChange: function onBaseInputTextChange(event) {
    this.onBaseInputChange(event);
  },
  onBaseInputChange: function onBaseInputChange(event) {
    clearTimeout(this.correctionTimeout);
    var input = event.currentTarget,
      value = this.getInputValue(input),
      validators = this.validators.slice(0),
      settingsValidators = this.container.settings.validators[this.model.get('name')];
    if (settingsValidators) {
      validators = validators.concat(settingsValidators);
    }
    if (validators) {
      var oldValue = this.getControlValue(input.dataset.setting);
      var isValidValue = validators.every(function (validator) {
        return validator.isValid(value, oldValue);
      });
      if (!isValidValue) {
        this.correctionTimeout = setTimeout(this.setInputValue.bind(this, input, oldValue), 1200);
        return;
      }
    }
    this.updateElementModel(value, input);
    this.triggerMethod('input:change', event);
  },
  onResponsiveSwitchersClick: function onResponsiveSwitchersClick(event) {
    var $switcher = jQuery(event.currentTarget),
      device = $switcher.data('device'),
      $switchersWrapper = this.ui.responsiveSwitchersWrapper,
      selectedOption = $switcher.index();
    $switchersWrapper.toggleClass('elementor-responsive-switchers-open');
    $switchersWrapper[0].style.setProperty('--selected-option', selectedOption);
    this.triggerMethod('responsive:switcher:click', device);
    elementor.changeDeviceMode(device);
  },
  renderResponsiveSwitchers: function renderResponsiveSwitchers() {
    var templateHtml = Marionette.Renderer.render('#tmpl-elementor-control-responsive-switchers', this.model.attributes);
    this.ui.responsiveSwitchersSibling.after(templateHtml);
    this.ui.responsiveSwitchersWrapper = this.$el.find('.elementor-control-responsive-switchers');
  },
  onAfterExternalChange: function onAfterExternalChange() {
    this.hideTooltip();
    this.applySavedValue();
  },
  addTooltip: function addTooltip() {
    this.ui.tooltipTargets = this.$el.find('.tooltip-target');
    if (!this.ui.tooltipTargets.length) {
      return;
    }

    // Create tooltip on controls
    this.ui.tooltipTargets.tipsy({
      gravity: function gravity() {
        // `n` for down, `s` for up
        var gravity = jQuery(this).data('tooltip-pos');
        if (undefined !== gravity) {
          return gravity;
        }
        return 's';
      },
      title: function title() {
        return this.getAttribute('data-tooltip');
      }
    });
  },
  hideTooltip: function hideTooltip() {
    if (this.ui.tooltipTargets.length) {
      this.ui.tooltipTargets.tipsy('hide');
    }
  },
  updateElementModel: function updateElementModel(value) {
    this.setValue(value);
  }
}, {
  // Static methods
  getStyleValue: function getStyleValue(placeholder, controlValue, controlData) {
    if ('DEFAULT' === placeholder) {
      return controlData.default;
    }
    return controlValue;
  },
  onPasteStyle: function onPasteStyle() {
    return true;
  }
});
module.exports = ControlBaseDataView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/base-multiple.js":
/*!*********************************************************!*\
  !*** ../assets/dev/js/editor/controls/base-multiple.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 _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"),
  ControlBaseMultipleItemView;
ControlBaseMultipleItemView = ControlBaseDataView.extend({
  applySavedValue: function applySavedValue() {
    var values = this.getControlValue(),
      $inputs = this.$('[data-setting]'),
      self = this;
    _.each(values, function (value, key) {
      var $input = $inputs.filter(function () {
        return key === this.dataset.setting;
      });
      self.setInputValue($input, value);
    });
  },
  getControlValue: function getControlValue(key) {
    var values = this.container.settings.get(this.model.get('name'));
    if (!jQuery.isPlainObject(values)) {
      return {};
    }
    if (key) {
      var value = values[key];
      if (undefined === value) {
        value = '';
      }
      return value;
    }
    return elementorCommon.helpers.cloneObject(values);
  },
  /**
   * @inheritDoc
   */
  getCleanControlValue: function getCleanControlValue(key) {
    var _this = this;
    var values = Object.fromEntries(Object.entries(this.getControlValue()).filter(function (_ref) {
      var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
        k = _ref2[0],
        v = _ref2[1];
      return v && _this.model.get('default')[k] !== v;
    }));
    if (key) {
      return values === null || values === void 0 ? void 0 : values[key];
    }
    return Object.keys(values).length ? values : undefined;
  },
  setValue: function setValue(key, value) {
    var values = this.getControlValue();
    if ('object' === (0, _typeof2.default)(key)) {
      _.each(key, function (internalValue, internalKey) {
        values[internalKey] = internalValue;
      });
    } else {
      values[key] = value;
    }
    this.setSettingsModel(values);
  },
  updateElementModel: function updateElementModel(value, input) {
    var key = input.dataset.setting;
    this.setValue(key, value);
  }
}, {
  // Static methods
  getStyleValue: function getStyleValue(placeholder, controlValue) {
    if (!_.isObject(controlValue)) {
      return ''; // Invalid
    }
    return controlValue[placeholder.toLowerCase()];
  }
});
module.exports = ControlBaseMultipleItemView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/base-units.js":
/*!******************************************************!*\
  !*** ../assets/dev/js/editor/controls/base-units.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


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; }
var ControlBaseMultipleItemView = __webpack_require__(/*! elementor-controls/base-multiple */ "../assets/dev/js/editor/controls/base-multiple.js"),
  ControlBaseUnitsItemView;
ControlBaseUnitsItemView = ControlBaseMultipleItemView.extend({
  ui: function ui() {
    return Object.assign(ControlBaseMultipleItemView.prototype.ui.apply(this, arguments), {
      units: '.e-units-choices>input',
      unitSwitcher: '.e-units-switcher',
      unitChoices: '.e-units-choices'
    });
  },
  events: function events() {
    return Object.assign(ControlBaseMultipleItemView.prototype.events.apply(this, arguments), {
      'change @ui.units': 'onUnitChange',
      'click @ui.units': 'onUnitClick',
      'click @ui.unitSwitcher': 'onUnitLabelClick'
    });
  },
  updatePlaceholder: function updatePlaceholder() {
    var _this$getControlPlace;
    var placeholder = (_this$getControlPlace = this.getControlPlaceholder()) === null || _this$getControlPlace === void 0 ? void 0 : _this$getControlPlace.unit;
    this.ui.units.removeClass('e-units-placeholder');
    var currentUnitSelected = this.getControlValue('unit');
    if (placeholder !== currentUnitSelected) {
      this.ui.units.filter("[value=\"".concat(placeholder, "\"]")).addClass('e-units-placeholder');
    }
  },
  recursiveUnitChange: function recursiveUnitChange() {
    var includingSelf = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
    var parent = this.getResponsiveParentView();
    if (parent && includingSelf) {
      var unit = parent.getControlValue('unit'),
        values = Object.keys(this.getCleanControlValue() || {});

      // Remove `unit` from values, so only control values are indicated.
      values.splice(values.indexOf('unit'), 1);

      // Only set the unit when no control values are already specified.
      if (unit && !values.length) {
        this.setValue('unit', unit);
        this.render();
      }
    }
    var _iterator = _createForOfIteratorHelper(this.getResponsiveChildrenViews()),
      _step;
    try {
      for (_iterator.s(); !(_step = _iterator.n()).done;) {
        var child = _step.value;
        child.recursiveUnitChange();
      }
    } catch (err) {
      _iterator.e(err);
    } finally {
      _iterator.f();
    }
  },
  onRender: function onRender() {
    ControlBaseMultipleItemView.prototype.onRender.apply(this, arguments);
    this.updatePlaceholder();
    this.updateUnitChoices();
  },
  onUnitChange: function onUnitChange() {
    this.toggleUnitChoices(false);
    this.recursiveUnitChange(false);
    this.updatePlaceholder();
    this.updateUnitChoices();
  },
  toggleUnitChoices: function toggleUnitChoices(stateVal) {
    this.ui.unitChoices.toggleClass('e-units-choices-open', stateVal);
  },
  updateUnitChoices: function updateUnitChoices() {
    var unit = this.getControlValue('unit');
    this.ui.unitSwitcher.attr('data-selected', unit).find('span').html(unit);
    this.$el.toggleClass('e-units-custom', this.isCustomUnit());
  },
  onUnitClick: function onUnitClick() {
    this.toggleUnitChoices(false);
  },
  onUnitLabelClick: function onUnitLabelClick(event) {
    event.preventDefault();
    this.toggleUnitChoices();
  },
  getCurrentRange: function getCurrentRange() {
    return this.getUnitRange(this.getControlValue('unit'));
  },
  getUnitRange: function getUnitRange(unit) {
    var ranges = this.model.get('range');
    if (!ranges) {
      return false;
    }
    if (!ranges[unit]) {
      ranges[unit] = Object.values(ranges)[0];
    }
    return ranges[unit];
  },
  isCustomUnit: function isCustomUnit() {
    return 'custom' === this.getControlValue('unit');
  }
}, {
  // Static methods
  getStyleValue: function getStyleValue(placeholder, controlValue) {
    var returnValue = ControlBaseMultipleItemView.getStyleValue(placeholder, controlValue);
    if ('UNIT' === placeholder && 'custom' === returnValue) {
      returnValue = '__EMPTY__';
    }
    return returnValue;
  }
});
module.exports = ControlBaseUnitsItemView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/base.js":
/*!************************************************!*\
  !*** ../assets/dev/js/editor/controls/base.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var ControlBaseView;
ControlBaseView = Marionette.CompositeView.extend({
  ui: function ui() {
    return {
      controlTitle: '.elementor-control-title'
    };
  },
  behaviors: function behaviors() {
    var behaviors = {};
    return elementor.hooks.applyFilters('controls/base/behaviors', behaviors, this);
  },
  getBehavior: function getBehavior(name) {
    return this._behaviors[Object.keys(this.behaviors()).indexOf(name)];
  },
  className: function className() {
    // TODO: Any better classes for that?
    var classes = 'elementor-control elementor-control-' + this.model.get('name') + ' elementor-control-type-' + this.model.get('type'),
      modelClasses = this.model.get('classes'),
      responsive = this.model.get('responsive');
    if (!_.isEmpty(modelClasses)) {
      classes += ' ' + modelClasses;
    }
    if (!_.isEmpty(responsive)) {
      var responsiveControlName = responsive.max || responsive.min;
      classes += ' elementor-control-responsive-' + responsiveControlName;
    }
    return classes;
  },
  templateHelpers: function templateHelpers() {
    var controlData = {
      _cid: this.model.cid
    };
    return {
      view: this,
      data: _.extend({}, this.model.toJSON(), controlData)
    };
  },
  getTemplate: function getTemplate() {
    return Marionette.TemplateCache.get('#tmpl-elementor-control-' + this.model.get('type') + '-content');
  },
  initialize: function initialize(options) {
    var label = this.model.get('label');

    // TODO: Temp backwards compatibility. since 2.8.0.
    Object.defineProperty(this, 'container', {
      get: function get() {
        if (!options.container) {
          var settingsModel = options.elementSettingsModel,
            view = $e.components.get('document').utils.findViewById(settingsModel.id);

          // Element control.
          if (view && view.getContainer) {
            options.container = view.getContainer();
          } else {
            if (!settingsModel.id) {
              settingsModel.id = 'bc-' + elementorCommon.helpers.getUniqueId();
            }

            // Document/General/Other control.
            options.container = new elementorModules.editor.Container({
              type: 'bc-container',
              id: settingsModel.id,
              model: settingsModel,
              settings: settingsModel,
              label: label,
              view: false,
              parent: false,
              renderer: false,
              controls: settingsModel.options.controls
            });
          }
        }
        return options.container;
      }
    });

    // Use `defineProperty` because `get elementSettingsModel()` fails during the `Marionette.CompositeView.extend`.
    Object.defineProperty(this, 'elementSettingsModel', {
      get: function get() {
        elementorDevTools.deprecation.deprecated('elementSettingsModel', '2.8.0', 'container.settings');
        return options.container ? options.container.settings : options.elementSettingsModel;
      }
    });
    var controlType = this.model.get('type'),
      controlSettings = jQuery.extend(true, {}, elementor.config.controls[controlType], this.model.attributes);
    this.model.set(controlSettings);

    // TODO: this.elementSettingsModel is deprecated since 2.8.0.
    var settings = this.container ? this.container.settings : this.elementSettingsModel;
    this.listenTo(settings, 'change', this.onAfterChange);
    if (this.model.attributes.responsive) {
      this.onDeviceModeChange = this.onDeviceModeChange.bind(this);
      elementor.listenTo(elementor.channels.deviceMode, 'change', this.onDeviceModeChange);
    }
  },
  onDestroy: function onDestroy() {
    elementor.stopListening(elementor.channels.deviceMode, 'change', this.onDeviceModeChange);
  },
  onDeviceModeChange: function onDeviceModeChange() {
    this.toggleControlVisibility();
  },
  onAfterChange: function onAfterChange() {
    this.toggleControlVisibility();
  },
  toggleControlVisibility: function toggleControlVisibility() {
    // TODO: this.elementSettingsModel is deprecated since 2.8.0.
    var settings = this.container ? this.container.settings : this.elementSettingsModel;
    var isVisible = elementor.helpers.isActiveControl(this.model, settings.attributes, settings.controls);
    this.$el.toggleClass('elementor-hidden-control', !isVisible);
    elementor.getPanelView().updateScrollbar();
  },
  onRender: function onRender() {
    var layoutType = this.model.get('label_block') ? 'block' : 'inline',
      showLabel = this.model.get('show_label'),
      elClasses = 'elementor-label-' + layoutType;
    elClasses += ' elementor-control-separator-' + this.model.get('separator');
    if (!showLabel) {
      elClasses += ' elementor-control-hidden-label';
    }
    this.$el.addClass(elClasses);
    this.toggleControlVisibility();
  },
  reRoute: function reRoute(controlActive) {
    $e.route($e.routes.getCurrent('panel'), this.getControlInRouteArgs(controlActive ? this.getControlPath() : ''), {
      history: false
    });
  },
  getControlInRouteArgs: function getControlInRouteArgs(path) {
    return _objectSpread(_objectSpread({}, $e.routes.getCurrentArgs('panel')), {}, {
      activeControl: path
    });
  },
  getControlPath: function getControlPath() {
    var controlPath = this.model.get('name'),
      parent = this._parent;
    while (!parent.$el.hasClass('elementor-controls-stack')) {
      var parentName = parent.model.get('name') || parent.model.get('_id');
      controlPath = parentName + '/' + controlPath;
      parent = parent._parent;
    }
    return controlPath;
  }
});
module.exports = ControlBaseView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/behaviors/scrubbing.js":
/*!***************************************************************!*\
  !*** ../assets/dev/js/editor/controls/behaviors/scrubbing.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _uiStates = __webpack_require__(/*! elementor-document/ui-states */ "../assets/dev/js/editor/document/ui-states/index.js");
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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; })(); }
var SCRUB_REGULAR = 'UPDATE-VALUE';
var SCRUB_ENHANCED = 'UPDATE-VALUE-ENHANCED';
var SKIP_SCRUB = 'SKIP-UPDATE-VALUE';
var Scrubbing = exports["default"] = /*#__PURE__*/function (_Marionette$Behavior) {
  function Scrubbing() {
    var _this;
    (0, _classCallCheck2.default)(this, Scrubbing);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, Scrubbing, [].concat(args));
    (0, _defineProperty2.default)(_this, "checkIntentTimeout", null);
    (0, _defineProperty2.default)(_this, "skipperCount", 0);
    var userOptions = _this.getOption('scrubSettings') || {};
    _this.scrubSettings = _objectSpread({
      intentTime: 600,
      skipperSteps: 10,
      valueModifier: 1,
      enhancedNumber: 10,
      scrubbingActiveClass: 'e-scrubbing--active',
      scrubbingOverClass: 'e-scrubbing-over'
    }, userOptions);
    return _this;
  }
  (0, _inherits2.default)(Scrubbing, _Marionette$Behavior);
  return (0, _createClass2.default)(Scrubbing, [{
    key: "ui",
    value: function ui() {
      return {
        input: 'input[type=number]',
        label: 'label[for^="elementor-control-"]'
      };
    }
  }, {
    key: "events",
    value: function events() {
      return {
        'mousedown @ui.input': 'onMouseDownInput',
        'mousedown @ui.label': 'onMouseDownLabel',
        'mouseenter @ui.label': 'onMouseEnterLabel',
        'mouseleave @ui.label': 'onMouseLeaveLabel'
      };
    }
  }, {
    key: "scrub",
    value: function scrub(input, movementEvent) {
      var movementType = this.getMovementType(movementEvent);
      if (SKIP_SCRUB === movementType) {
        return;
      }
      switch (movementType) {
        case SCRUB_REGULAR:
          input.value = this.getModifiedValue({
            value: input.value,
            change: movementEvent.movementX,
            modifier: this.scrubSettings.valueModifier
          });
          break;
        case SCRUB_ENHANCED:
          input.value = this.getModifiedValue({
            value: input.value,
            change: movementEvent.movementX,
            modifier: this.scrubSettings.enhancedNumber
          });
          break;
        default:
          break;
      }

      // Fire an input event so other behaviors/validators can handle the new input
      input.dispatchEvent(new Event('input', {
        bubbles: true
      }));
    }
  }, {
    key: "getMovementType",
    value: function getMovementType(movementEvent) {
      if (movementEvent.altKey) {
        this.skipperCount++;

        // When ALT key is pressed, skipping x times before updating input value.
        // 'skipperSteps' defines the exact times to skip, can be changed to any number.
        if (this.skipperCount <= this.scrubSettings.skipperSteps) {
          return SKIP_SCRUB;
        }
        this.skipperCount = 0;
        return SCRUB_REGULAR;
      }
      return movementEvent.ctrlKey || movementEvent.metaKey ? SCRUB_ENHANCED : SCRUB_REGULAR;
    }
  }, {
    key: "getModifiedValue",
    value: function getModifiedValue(_ref) {
      var value = _ref.value,
        change = _ref.change,
        modifier = _ref.modifier;
      if ('function' === typeof modifier) {
        modifier = modifier();
      }
      var newValue = +value + change * modifier;

      // Prevent cases where the value resolves to something like 1.0000000000000001.
      return parseFloat(newValue.toFixed(1));
    }
  }, {
    key: "isInputValidForScrubbing",
    value: function isInputValidForScrubbing(input) {
      return input && !input.disabled && 'number' === input.type;
    }

    /**
     * @param {HTMLElement[]} elements
     */
  }, {
    key: "setActive",
    value: function setActive(elements) {
      var _this2 = this;
      elements.forEach(function (element) {
        element.classList.add(_this2.scrubSettings.scrubbingActiveClass);
      });
    }

    /**
     * @param {HTMLElement[]} elements
     */
  }, {
    key: "setInactive",
    value: function setInactive(elements) {
      var _this3 = this;
      elements.forEach(function (element) {
        element.classList.remove(_this3.scrubSettings.scrubbingActiveClass);
      });
    }
  }, {
    key: "onMouseDownInput",
    value: function onMouseDownInput(e) {
      var _this4 = this;
      var input = e.target;
      if (!this.isInputValidForScrubbing(input)) {
        return;
      }
      var trackMovement = function trackMovement(movementEvent) {
        _this4.scrub(input, movementEvent);
      };

      // For input, scrubbing effect works only after X time the mouse is down.
      var checkIntentTimeout = setTimeout(function () {
        clearTimeout(checkIntentTimeout);
        document.addEventListener('mousemove', trackMovement);
        $e.uiStates.set('document/scrubbing-mode', _uiStates.ScrubbingMode.ON);
        _this4.setActive([input]);
      }, this.scrubSettings.intentTime);
      document.addEventListener('mouseup', function () {
        document.removeEventListener('mousemove', trackMovement);
        clearTimeout(checkIntentTimeout);
        $e.uiStates.remove('document/scrubbing-mode');
        _this4.setInactive([input]);
      }, {
        once: true
      });
    }
  }, {
    key: "onMouseDownLabel",
    value: function onMouseDownLabel(e) {
      var _this5 = this;
      var label = e.target;
      var input = e.target.control;
      if (!this.isInputValidForScrubbing(input)) {
        return;
      }
      $e.uiStates.set('document/scrubbing-mode', _uiStates.ScrubbingMode.ON);
      this.setActive([input, label]);
      var trackMovement = function trackMovement(movementEvent) {
        _this5.scrub(input, movementEvent);
      };
      document.addEventListener('mousemove', trackMovement);
      document.addEventListener('mouseup', function () {
        document.removeEventListener('mousemove', trackMovement);
        $e.uiStates.remove('document/scrubbing-mode');
        _this5.setInactive([input, label]);
      }, {
        once: true
      });
    }
  }, {
    key: "onMouseEnterLabel",
    value: function onMouseEnterLabel(e) {
      var input = e.target.control;
      if (!this.isInputValidForScrubbing(input)) {
        return;
      }
      e.target.classList.add(this.scrubSettings.scrubbingOverClass);
    }
  }, {
    key: "onMouseLeaveLabel",
    value: function onMouseLeaveLabel(e) {
      var input = e.target.control;
      if (!this.isInputValidForScrubbing(input)) {
        return;
      }
      e.target.classList.remove(this.scrubSettings.scrubbingOverClass);
    }
  }]);
}(Marionette.Behavior);

/***/ }),

/***/ "../assets/dev/js/editor/controls/box-shadow.js":
/*!******************************************************!*\
  !*** ../assets/dev/js/editor/controls/box-shadow.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 _colorPicker = _interopRequireDefault(__webpack_require__(/*! ../utils/color-picker */ "../assets/dev/js/editor/utils/color-picker.js"));
var ControlMultipleBaseItemView = __webpack_require__(/*! elementor-controls/base-multiple */ "../assets/dev/js/editor/controls/base-multiple.js"),
  ControlBoxShadowItemView;
ControlBoxShadowItemView = ControlMultipleBaseItemView.extend({
  ui: function ui() {
    var ui = ControlMultipleBaseItemView.prototype.ui.apply(this, arguments);
    ui.sliders = '.elementor-slider';
    ui.colorPickerPlaceholder = '.elementor-color-picker-placeholder';
    return ui;
  },
  initSliders: function initSliders() {
    var _this = this;
    var value = this.getControlValue();
    this.ui.sliders.each(function (index, slider) {
      var $input = jQuery(slider).next('.elementor-slider-input').find('input');
      var sliderInstance = noUiSlider.create(slider, {
        start: [value[slider.dataset.input]],
        step: 1,
        range: {
          min: +$input.attr('min'),
          max: +$input.attr('max')
        },
        format: {
          to: function to(sliderValue) {
            return +sliderValue.toFixed(1);
          },
          from: function from(sliderValue) {
            return +sliderValue;
          }
        }
      });
      sliderInstance.on('slide', function (values) {
        var type = sliderInstance.target.dataset.input;
        $input.val(values[0]);
        _this.setValue(type, values[0]);
      });
    });
  },
  initColors: function initColors() {
    var _this2 = this;
    this.colorPicker = new _colorPicker.default({
      picker: {
        el: this.ui.colorPickerPlaceholder[0],
        default: this.getControlValue('color')
      },
      onChange: function onChange() {
        _this2.setValue('color', _this2.colorPicker.getColor());
      },
      onClear: function onClear() {
        _this2.setValue('color', '');
      }
    });
  },
  onInputChange: function onInputChange(event) {
    var type = event.currentTarget.dataset.setting,
      $slider = this.ui.sliders.filter('[data-input="' + type + '"]');
    $slider[0].noUiSlider.set(this.getControlValue(type));
  },
  onReady: function onReady() {
    this.initSliders();
    this.initColors();
  },
  onBeforeDestroy: function onBeforeDestroy() {
    this.colorPicker.destroy();
  }
});
module.exports = ControlBoxShadowItemView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/button.js":
/*!**************************************************!*\
  !*** ../assets/dev/js/editor/controls/button.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var ControlBaseView = __webpack_require__(/*! elementor-controls/base */ "../assets/dev/js/editor/controls/base.js");
module.exports = ControlBaseView.extend({
  ui: function ui() {
    var ui = ControlBaseView.prototype.ui.apply(this, arguments);
    ui.button = 'button';
    return ui;
  },
  events: {
    'click @ui.button': 'onButtonClick'
  },
  onButtonClick: function onButtonClick() {
    var eventName = this.model.get('event');
    elementor.channels.editor.trigger(eventName, this);
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/controls/choose.js":
/*!**************************************************!*\
  !*** ../assets/dev/js/editor/controls/choose.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"),
  ControlChooseItemView;
ControlChooseItemView = ControlBaseDataView.extend({
  ui: function ui() {
    var ui = ControlBaseDataView.prototype.ui.apply(this, arguments);
    ui.inputs = '[type="radio"]';
    return ui;
  },
  events: function events() {
    return _.extend(ControlBaseDataView.prototype.events.apply(this, arguments), {
      'mousedown label': 'onMouseDownLabel',
      'click @ui.inputs': 'onClickInput',
      'change @ui.inputs': 'onBaseInputChange'
    });
  },
  updatePlaceholder: function updatePlaceholder() {
    var placeholder = this.getControlPlaceholder();
    if (!this.getControlValue() && placeholder) {
      // Find the input which has value equals to the placeholder (which is the parent's value),
      // and add it a placeholder class, to indicate which value is selected in the parent.
      this.ui.inputs.filter("[value=\"".concat(this.getControlPlaceholder(), "\"]")).addClass('e-choose-placeholder');
    } else {
      this.ui.inputs.removeClass('e-choose-placeholder');
    }
  },
  onReady: function onReady() {
    this.updatePlaceholder();
  },
  applySavedValue: function applySavedValue() {
    var currentValue = this.getControlValue();
    if (currentValue) {
      this.ui.inputs.filter('[value="' + currentValue + '"]').prop('checked', true);
    } else {
      this.ui.inputs.filter(':checked').prop('checked', false);
    }
  },
  onMouseDownLabel: function onMouseDownLabel(event) {
    var $clickedLabel = this.$(event.currentTarget),
      $selectedInput = this.$('#' + $clickedLabel.attr('for'));
    $selectedInput.data('checked', $selectedInput.prop('checked'));
  },
  onClickInput: function onClickInput(event) {
    if (!this.model.get('toggle')) {
      return;
    }
    var $selectedInput = this.$(event.currentTarget);
    if ($selectedInput.data('checked')) {
      $selectedInput.prop('checked', false).trigger('change');
    }
  },
  onBaseInputChange: function onBaseInputChange() {
    ControlBaseDataView.prototype.onBaseInputChange.apply(this, arguments);
    this.updatePlaceholder();
  }
}, {
  onPasteStyle: function onPasteStyle(control, clipboardValue) {
    return '' === clipboardValue || undefined !== control.options[clipboardValue];
  }
});
module.exports = ControlChooseItemView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/code.js":
/*!************************************************!*\
  !*** ../assets/dev/js/editor/controls/code.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"),
  ControlCodeEditorItemView;
ControlCodeEditorItemView = ControlBaseDataView.extend({
  ui: function ui() {
    var ui = ControlBaseDataView.prototype.ui.apply(this, arguments);
    ui.editor = '.elementor-code-editor';
    return ui;
  },
  onReady: function onReady() {
    var self = this;
    if ('undefined' === typeof ace) {
      return;
    }
    var langTools = ace.require('ace/ext/language_tools'),
      uiTheme = elementor.settings.editorPreferences.model.get('ui_theme'),
      userPrefersDark = matchMedia('(prefers-color-scheme: dark)').matches;
    self.editor = ace.edit(this.ui.editor[0]);

    // Since the code control is wrapped with a dynamic div, the class elementor-control-tag-area need to be had dynamically to handle the dynamic tag functionality.
    jQuery(self.editor.container).addClass('e-input-style elementor-code-editor elementor-control-tag-area');
    self.editor.setOptions({
      mode: 'ace/mode/' + self.model.attributes.language,
      minLines: 10,
      maxLines: Infinity,
      showGutter: true,
      useWorker: true,
      enableBasicAutocompletion: true,
      enableLiveAutocompletion: true
    });
    if ('dark' === uiTheme || 'auto' === uiTheme && userPrefersDark) {
      self.editor.setTheme('ace/theme/merbivore_soft');
    }
    self.editor.getSession().setUseWrapMode(true);
    elementor.panel.$el.on('resize.aceEditor', self.onResize.bind(this));
    if ('css' === self.model.attributes.language) {
      var selectorCompleter = {
        getCompletions: function getCompletions(editor, session, pos, prefix, callback) {
          var list = [],
            token = session.getTokenAt(pos.row, pos.column);
          if (0 < prefix.length && 'selector'.match(prefix) && 'constant' === token.type) {
            list = [{
              name: 'selector',
              value: 'selector',
              score: 1,
              meta: 'Elementor'
            }];
          }
          callback(null, list);
        }
      };
      langTools.addCompleter(selectorCompleter);
    }
    self.editor.setValue(self.getControlValue(), -1); // -1 =  move cursor to the start

    if (this.isEditable()) {
      self.editor.on('change', function () {
        self.setValue(self.editor.getValue());
      });
    }
    if ('html' === self.model.attributes.language) {
      // Remove the `doctype` annotation
      var session = self.editor.getSession();
      session.on('changeAnnotation', function () {
        var annotations = session.getAnnotations() || [],
          annotationsLength = annotations.length,
          index = annotations.length;
        while (index--) {
          if (/doctype first\. Expected/.test(annotations[index].text)) {
            annotations.splice(index, 1);
          }
        }
        if (annotationsLength > annotations.length) {
          session.setAnnotations(annotations);
        }
      });
    }
  },
  onResize: function onResize() {
    this.editor.resize();
  },
  onDestroy: function onDestroy() {
    elementor.panel.$el.off('resize.aceEditor');
  },
  isEditable: function isEditable() {
    var isEditable = this.model.get('is_editable');
    return undefined !== isEditable ? isEditable : true;
  }
});
module.exports = ControlCodeEditorItemView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/color.js":
/*!*************************************************!*\
  !*** ../assets/dev/js/editor/controls/color.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 _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
var _readOnlyError2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/readOnlyError */ "../node_modules/@babel/runtime/helpers/readOnlyError.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _baseData = _interopRequireDefault(__webpack_require__(/*! ./base-data */ "../assets/dev/js/editor/controls/base-data.js"));
var _colorPicker = _interopRequireDefault(__webpack_require__(/*! ../utils/color-picker */ "../assets/dev/js/editor/utils/color-picker.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var _default = exports["default"] = /*#__PURE__*/function (_ControlBaseDataView) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _ControlBaseDataView);
  return (0, _createClass2.default)(_default, [{
    key: "ui",
    value: function ui() {
      var ui = _superPropGet(_default, "ui", this, 3)([]);
      ui.pickerContainer = '.elementor-color-picker-placeholder';
      return ui;
    }
  }, {
    key: "applySavedValue",
    value: function applySavedValue() {
      // Gets the current OR default value of the control.
      var currentValue = this.getCurrentValue();
      if (this.colorPicker) {
        // When there is a global set on the control but there is no value/it doesn't exist, don't show a value.
        if (currentValue) {
          var _this$colorPicker$pic;
          // Set the picker color without triggering the 'onChange' event.
          var parsedColor = this.colorPicker.picker._parseLocalColor(currentValue);
          (_this$colorPicker$pic = this.colorPicker.picker).setHSVA.apply(_this$colorPicker$pic, (0, _toConsumableArray2.default)(parsedColor.values).concat([false]));
        } else {
          this.colorPicker.picker._clearColor(true);
        }
      } else {
        this.initPicker();
      }
      this.$el.toggleClass('e-control-color--no-value', !currentValue);
    }
  }, {
    key: "initPicker",
    value: function initPicker() {
      var _this$model$get,
        _this = this;
      var options = {
        picker: {
          el: this.ui.pickerContainer[0],
          default: this.getCurrentValue(),
          components: {
            opacity: this.model.get('alpha')
          },
          defaultRepresentation: 'HEX'
        },
        // Don't create the add button in the Global Settings color pickers.
        addButton: (_this$model$get = this.model.get('global')) === null || _this$model$get === void 0 ? void 0 : _this$model$get.active,
        onChange: function onChange() {
          return _this.onPickerChange();
        },
        onClear: function onClear() {
          return _this.onPickerClear();
        },
        onAddButtonClick: function onAddButtonClick() {
          return _this.onAddGlobalButtonClick();
        },
        onPickerShow: function onPickerShow() {
          return _this.reRoute(true);
        },
        onPickerHide: function onPickerHide() {
          return _this.reRoute(false);
        }
      };
      this.colorPicker = new _colorPicker.default(options);
      this.hidePickerOnPreviewClick();
      this.$pickerButton = jQuery(this.colorPicker.picker.getRoot().button);
      this.addTipsyToPickerButton();
      this.addEyedropper();
      this.$pickerButton.on('click', function () {
        return _this.onPickerButtonClick();
      });
      jQuery(this.colorPicker.picker.getRoot().root).addClass('elementor-control-unit-1 elementor-control-tag-area');
    }
  }, {
    key: "hidePickerOnPreviewClick",
    value: function hidePickerOnPreviewClick() {
      var picker = this.colorPicker.picker;
      var pickerUtils = picker.constructor.utils;

      // Adding to the eventBindings to unbind in the picker's destroy
      picker._eventBindings.push(pickerUtils.on(elementorFrontend.elements.window.document, ['touchstart', 'pointerdown'], function () {
        if (picker.isOpen()) {
          picker.hide();
        }
      }));
    }
  }, {
    key: "addTipsyToPickerButton",
    value: function addTipsyToPickerButton() {
      var _this2 = this;
      this.$pickerButton.tipsy({
        title: function title() {
          var currentValue = _this2.getCurrentValue();

          // If there is a global enabled for the control, but the global has no value.
          if (_this2.getGlobalKey() && !currentValue) {
            currentValue = "".concat(__('Invalid Global Color', 'elementor'));
          }
          return currentValue || '';
        },
        offset: 4,
        gravity: function gravity() {
          return 's';
        }
      });
    }
  }, {
    key: "addEyedropper",
    value: function addEyedropper() {
      var _this3 = this;
      var $colorPicker = jQuery(Marionette.Renderer.render('#tmpl-elementor-control-element-color-picker')),
        $colorPickerToolsContainer = this.colorPicker.$pickerToolsContainer,
        container = this.getOption('container');
      var kit = null;

      // When it's a kit (i.e "Site Settings").
      if ('kit' === container.document.config.type) {
        kit = container.document;
      }

      // Add a tooltip to the Eye Dropper.
      $colorPicker.tipsy({
        title: function title() {
          return __('Color Sampler', 'elementor');
        },
        gravity: 's'
      });
      $colorPicker.on('click', function () {
        $e.run('elements-color-picker/start', {
          container: container,
          kit: kit,
          control: _this3.model.get('name'),
          trigger: $colorPicker[0]
        });
      });
      $colorPickerToolsContainer.append($colorPicker);
    }
  }, {
    key: "getGlobalMeta",
    value: function getGlobalMeta() {
      return {
        commandName: this.getGlobalCommand(),
        key: this.model.get('name'),
        controlType: 'colors',
        route: 'panel/global/global-colors'
      };
    }
  }, {
    key: "getNameAlreadyExistsMessage",
    value: function getNameAlreadyExistsMessage() {
      return '<i class="eicon-info-circle"></i> ' + __('Please note that the same exact color already exists in your Global Colors list. Are you sure you want to create it?', 'elementor');
    }
  }, {
    key: "getConfirmTextMessage",
    value: function getConfirmTextMessage() {
      return __('Are you sure you want to create a new Global Color?', 'elementor');
    }
  }, {
    key: "getAddGlobalConfirmMessage",
    value: function getAddGlobalConfirmMessage(globalColors) {
      var colorTitle = __('New Global Color', 'elementor'),
        currentValue = this.getCurrentValue(),
        $message = jQuery('<div>', {
          class: 'e-global__confirm-message'
        }),
        $messageText = jQuery('<div>', {
          class: 'e-global__confirm-message-text'
        }),
        $inputWrapper = jQuery('<div>', {
          class: 'e-global__confirm-input-wrapper'
        }),
        $colorPreview = this.createColorPreviewBox(currentValue),
        $input = jQuery('<input>', {
          type: 'text',
          name: 'global-name',
          placeholder: colorTitle
        }).val(colorTitle);
      var messageContent;

      // Check if the color already exists in the global colors, and display an appropriate message.
      for (var _i = 0, _Object$values = Object.values(globalColors); _i < _Object$values.length; _i++) {
        var globalColor = _Object$values[_i];
        if (currentValue === globalColor.value) {
          messageContent = this.getNameAlreadyExistsMessage();
          break;
        } else if (colorTitle === globalColor.title) {
          messageContent = this.getConfirmTextMessage();
          break;
        } else {
          messageContent = __('Are you sure you want to create a new Global Color?', 'elementor');
        }
      }
      $messageText.html(messageContent);
      $inputWrapper.append($colorPreview, $input);
      $message.append($messageText, $inputWrapper);
      return $message;
    }
  }, {
    key: "getGlobalCommand",
    value: function getGlobalCommand() {
      return 'globals/colors';
    }

    // The globalData parameter is received from the Data API.
  }, {
    key: "createGlobalItemMarkup",
    value: function createGlobalItemMarkup(globalData) {
      var $color = jQuery('<div>', {
          class: 'e-global__preview-item e-global__color',
          'data-global-id': globalData.id
        }),
        $colorPreview = this.createColorPreviewBox(globalData.value),
        $colorTitle = jQuery('<span>', {
          class: 'e-global__color-title'
        }).html(_.escape(globalData.title)),
        $colorHex = jQuery('<span>', {
          class: 'e-global__color-hex'
        }).text(globalData.value);
      $color.append($colorPreview, $colorTitle, $colorHex);
      return $color;
    }
  }, {
    key: "createHeaderItemMarkup",
    value: function createHeaderItemMarkup(text) {
      return jQuery('<div>', {
        class: 'e-global__group-header'
      }).text(text);
    }
  }, {
    key: "createColorPreviewBox",
    value: function createColorPreviewBox(color) {
      var $colorPreviewContainer = jQuery('<div>', {
          class: 'e-global__color-preview-container'
        }),
        $colorPreviewColor = jQuery('<div>', {
          class: 'e-global__color-preview-color',
          style: 'background-color: ' + color
        }),
        $colorPreviewBg = jQuery('<div>', {
          class: 'e-global__color-preview-transparent-bg'
        });
      $colorPreviewContainer.append($colorPreviewBg, $colorPreviewColor);
      return $colorPreviewContainer;
    }
  }, {
    key: "getGlobalsList",
    value: function () {
      var _getGlobalsList = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
        var result;
        return _regenerator.default.wrap(function (_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              _context.next = 1;
              return $e.data.get(this.getGlobalCommand());
            case 1:
              result = _context.sent;
              return _context.abrupt("return", result.data);
            case 2:
            case "end":
              return _context.stop();
          }
        }, _callee, this);
      }));
      function getGlobalsList() {
        return _getGlobalsList.apply(this, arguments);
      }
      return getGlobalsList;
    }() // Create the markup for the colors in the global select dropdown.
  }, {
    key: "buildGlobalsList",
    value: function buildGlobalsList(globalColors, $globalPreviewItemsContainer) {
      var _this4 = this;
      var v4Colors = [];
      var v3Colors = [];
      Object.values(globalColors).forEach(function (color) {
        if (!color.value) {
          return;
        }
        if ('v4' === color.group) {
          v4Colors.push(color);
        } else {
          v3Colors.push(color);
        }
      });
      if (v4Colors.length) {
        $globalPreviewItemsContainer.append(this.createHeaderItemMarkup(__('Atomic Variables', 'elementor')));
        v4Colors.forEach(function (color) {
          $globalPreviewItemsContainer.append(_this4.createGlobalItemMarkup(color));
        });
        $globalPreviewItemsContainer.append(this.createHeaderItemMarkup(__('Global Colors', 'elementor')));
      }
      v3Colors.forEach(function (color) {
        $globalPreviewItemsContainer.append(_this4.createGlobalItemMarkup(color));
      });
    }
  }, {
    key: "onPickerChange",
    value: function onPickerChange() {
      this.setValue(this.colorPicker.picker.getColor().toHEXA().toString());
      if (!this.isCustom) {
        this.triggerMethod('value:type:change');
        this.colorPicker.toggleClearButtonState(true);
        if (this.$el.hasClass('e-control-color--no-value')) {
          this.$el.removeClass('e-control-color--no-value');
        }
        this.isCustom = true;
      }
    }
  }, {
    key: "onPickerClear",
    value: function onPickerClear() {
      this.isCustom = false;

      // Empty the value saved in the control.
      this.setValue('');

      // Adjust the Global select box text according to the cleared value.
      this.triggerMethod('value:type:change');
      this.applySavedValue();
      this.colorPicker.toggleClearButtonState(false);
    }
  }, {
    key: "onPickerButtonClick",
    value: function onPickerButtonClick() {
      if (this.getGlobalKey()) {
        this.triggerMethod('unset:global:value');
      } else if (this.isGlobalActive() && !this.getControlValue() && this.getGlobalDefault()) {
        this.triggerMethod('unlink:global:default');
      }

      // If there is a value in the control, set the clear button to active, if not, deactivate it.
      this.colorPicker.toggleClearButtonState(!!this.getCurrentValue());
    }
  }, {
    key: "onAddGlobalButtonClick",
    value: function onAddGlobalButtonClick() {
      var _this5 = this;
      this.getGlobalsList().then(function (globalsList) {
        _this5.globalsList = globalsList;
        _this5.triggerMethod('add:global:to:list', _this5.getAddGlobalConfirmMessage(globalsList));
      });
    }
  }, {
    key: "activate",
    value: function activate() {
      this.colorPicker.picker.show();
    }
  }, {
    key: "onBeforeDestroy",
    value: function onBeforeDestroy() {
      if (this.colorPicker) {
        this.colorPicker.destroy();
      }
    }
  }]);
}(_baseData.default);

/***/ }),

/***/ "../assets/dev/js/editor/controls/date-time.js":
/*!*****************************************************!*\
  !*** ../assets/dev/js/editor/controls/date-time.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js");
var _default = exports["default"] = /*#__PURE__*/function (_ControlBaseDataView) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _ControlBaseDataView);
  return (0, _createClass2.default)(_default, [{
    key: "onReady",
    value: function onReady() {
      var options = _.extend({
        enableTime: true,
        minuteIncrement: 1
      }, this.model.get('picker_options'));
      this.ui.input.flatpickr(options);
    }
  }, {
    key: "onBaseInputChange",
    value: function onBaseInputChange() {
      var _this$model$get;
      _superPropGet(_default, "onBaseInputChange", this, 3)(arguments);
      if ((_this$model$get = this.model.get('validation')) !== null && _this$model$get !== void 0 && _this$model$get.date_time) {
        this.validateDateTime();
      }
    }
  }, {
    key: "validateDateTime",
    value: function validateDateTime() {
      var _this$model$get$date_ = this.model.get('validation').date_time,
        controlName = _this$model$get$date_.control_name,
        operator = _this$model$get$date_.operator;
      var startDate = this.options.container.settings.get(controlName);
      var endDate = this.ui.input.val();
      if (!startDate || !endDate) {
        return;
      }
      var startDateTimestamp = new Date(startDate).getTime();
      var endDateTimestamp = new Date(endDate).getTime();
      if (elementor.conditions.compare(startDateTimestamp, endDateTimestamp, operator)) {
        this.ui.input.val('');
      }
    }
  }, {
    key: "onBeforeDestroy",
    value: function onBeforeDestroy() {
      this.ui.input.flatpickr().destroy();
    }
  }]);
}(ControlBaseDataView);

/***/ }),

/***/ "../assets/dev/js/editor/controls/dimensions.js":
/*!******************************************************!*\
  !*** ../assets/dev/js/editor/controls/dimensions.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _scrubbing = _interopRequireDefault(__webpack_require__(/*! ./behaviors/scrubbing */ "../assets/dev/js/editor/controls/behaviors/scrubbing.js"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var ControlBaseUnitsItemView = __webpack_require__(/*! elementor-controls/base-units */ "../assets/dev/js/editor/controls/base-units.js"),
  ControlDimensionsItemView;
ControlDimensionsItemView = ControlBaseUnitsItemView.extend({
  behaviors: function behaviors() {
    var _this = this;
    return _objectSpread(_objectSpread({}, ControlBaseUnitsItemView.prototype.behaviors.apply(this)), {}, {
      Scrubbing: {
        behaviorClass: _scrubbing.default,
        scrubSettings: {
          intentTime: 800,
          valueModifier: function valueModifier() {
            var currentUnit = _this.getControlValue('unit');
            return ['rem', 'em'].includes(currentUnit) ? 0.1 : 1;
          },
          enhancedNumber: function enhancedNumber() {
            var currentUnit = _this.getControlValue('unit');
            return ['rem', 'em'].includes(currentUnit) ? 0.5 : 10;
          }
        }
      }
    });
  },
  ui: function ui() {
    var ui = ControlBaseUnitsItemView.prototype.ui.apply(this, arguments);
    ui.controls = '.elementor-control-dimension > input:enabled';
    ui.link = 'button.elementor-link-dimensions';
    return ui;
  },
  events: function events() {
    return _.extend(ControlBaseUnitsItemView.prototype.events.apply(this, arguments), {
      'click @ui.link': 'onLinkDimensionsClicked'
    });
  },
  // Default value must be 0, because the CSS generator (in dimensions) expects the 4 dimensions to be filled together (or all are empty).
  defaultDimensionValue: 0,
  initialize: function initialize() {
    ControlBaseUnitsItemView.prototype.initialize.apply(this, arguments);

    // TODO: Need to be in helpers, and not in variable
    this.model.set('allowed_dimensions', this.filterDimensions(this.model.get('allowed_dimensions')));
  },
  getPossibleDimensions: function getPossibleDimensions() {
    return ['top', 'right', 'bottom', 'left'];
  },
  filterDimensions: function filterDimensions(filter) {
    filter = filter || 'all';
    var dimensions = this.getPossibleDimensions();
    if ('all' === filter) {
      return dimensions;
    }
    if (!_.isArray(filter)) {
      if ('horizontal' === filter) {
        filter = ['right', 'left'];
      } else if ('vertical' === filter) {
        filter = ['top', 'bottom'];
      }
    }
    return filter;
  },
  onReady: function onReady() {
    var self = this,
      currentValue = self.getControlValue();
    if (!self.isLinkedDimensions()) {
      self.ui.link.addClass('unlinked');
      self.ui.controls.each(function (index, element) {
        var value = currentValue[element.dataset.setting];
        if (_.isEmpty(value)) {
          value = self.defaultDimensionValue;
        }
        self.$(element).val(value);
      });
    }
    self.fillEmptyDimensions();
  },
  updateDimensionsValue: function updateDimensionsValue() {
    var currentValue = {},
      dimensions = this.getPossibleDimensions(),
      $controls = this.ui.controls,
      defaultDimensionValue = this.defaultDimensionValue;
    dimensions.forEach(function (dimension) {
      var $element = $controls.filter('[data-setting="' + dimension + '"]');
      currentValue[dimension] = $element.length ? $element.val() : defaultDimensionValue;
    });
    this.setValue(currentValue);
  },
  fillEmptyDimensions: function fillEmptyDimensions() {
    var $controls = this.ui.controls,
      defaultDimensionValue = this.defaultDimensionValue;
    if (this.isLinkedDimensions()) {
      return;
    }
    var allowedDimensions = this.model.get('allowed_dimensions'),
      dimensions = this.getPossibleDimensions();
    dimensions.forEach(function (dimension) {
      var $element = $controls.filter('[data-setting="' + dimension + '"]'),
        isAllowedDimension = -1 !== _.indexOf(allowedDimensions, dimension);
      if (isAllowedDimension && $element.length && _.isEmpty($element.val())) {
        $element.val(defaultDimensionValue);
      }
    });
  },
  updateDimensions: function updateDimensions() {
    this.fillEmptyDimensions();
    this.updateDimensionsValue();
  },
  resetDimensions: function resetDimensions() {
    this.ui.controls.val('');
    this.updateDimensionsValue();
  },
  onInputChange: function onInputChange(event) {
    var _event$originalEvent;
    var inputSetting = event.target.dataset.setting;
    if ('unit' === inputSetting) {
      this.resetDimensions();
    }
    if (!_.contains(this.getPossibleDimensions(), inputSetting)) {
      return;
    }

    // When using input with type="number" and the user starts typing `-`, the actual value (`event.target.value`) is
    // an empty string. Since the user probably has the intention to insert a negative value, the methods below will
    // not be triggered. This will prevent updating the input again with an empty string.
    var hasIntentionForNegativeNumber = '-' === (event === null || event === void 0 || (_event$originalEvent = event.originalEvent) === null || _event$originalEvent === void 0 ? void 0 : _event$originalEvent.data) && !event.target.value;
    if (hasIntentionForNegativeNumber) {
      return;
    }
    if (this.isLinkedDimensions()) {
      var $thisControl = this.$(event.target);
      this.ui.controls.val($thisControl.val());
    }
    this.updateDimensions();
  },
  onLinkDimensionsClicked: function onLinkDimensionsClicked(event) {
    event.preventDefault();
    event.stopPropagation();
    this.ui.link.toggleClass('unlinked');
    this.setValue('isLinked', !this.ui.link.hasClass('unlinked'));
    if (this.isLinkedDimensions()) {
      // Set all controls value from the first control.
      this.ui.controls.val(this.ui.controls.eq(0).val());
    }
    this.updateDimensions();
  },
  isLinkedDimensions: function isLinkedDimensions() {
    return this.getControlValue('isLinked');
  },
  updateUnitChoices: function updateUnitChoices() {
    ControlBaseUnitsItemView.prototype.updateUnitChoices.apply(this, arguments);
    var inputType = 'number';
    if (this.isCustomUnit()) {
      inputType = 'text';
    }
    this.ui.controls.attr('type', inputType);
  }
});
module.exports = ControlDimensionsItemView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/font.js":
/*!************************************************!*\
  !*** ../assets/dev/js/editor/controls/font.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var ControlSelect2View = __webpack_require__(/*! elementor-controls/select2 */ "../assets/dev/js/editor/controls/select2.js");
module.exports = ControlSelect2View.extend({
  $previewContainer: null,
  getSelect2Options: function getSelect2Options() {
    return {
      dir: elementorCommon.config.isRTL ? 'rtl' : 'ltr',
      templateSelection: this.fontPreviewTemplate,
      templateResult: this.fontPreviewTemplate
    };
  },
  onReady: function onReady() {
    var self = this;
    this.ui.select.select2(this.getSelect2Options());
    this.ui.select.on('select2:open', function () {
      self.$previewContainer = jQuery('.select2-results__options[role="tree"]:visible');
      // Load initial?
      setTimeout(function () {
        self.enqueueFontsInView();
      }, 100);

      // On search
      jQuery('input.select2-search__field:visible').on('keyup', function () {
        self.typeStopDetection.action.apply(self);
      });

      // On scroll
      self.$previewContainer.on('scroll', function () {
        self.scrollStopDetection.onScroll.apply(self);
      });
    });
  },
  typeStopDetection: {
    idle: 350,
    timeOut: null,
    action: function action() {
      var parent = this,
        self = this.typeStopDetection;
      clearTimeout(self.timeOut);
      self.timeOut = setTimeout(function () {
        parent.enqueueFontsInView();
      }, self.idle);
    }
  },
  scrollStopDetection: {
    idle: 350,
    timeOut: null,
    onScroll: function onScroll() {
      var parent = this,
        self = this.scrollStopDetection;
      clearTimeout(self.timeOut);
      self.timeOut = setTimeout(function () {
        parent.enqueueFontsInView();
      }, self.idle);
    }
  },
  enqueueFontsInView: function enqueueFontsInView() {
    var containerOffset = this.$previewContainer.offset(),
      top = containerOffset.top,
      bottom = top + this.$previewContainer.innerHeight(),
      fontsInView = [];
    this.$previewContainer.children().find('li:visible').each(function (index, font) {
      var $font = jQuery(font),
        offset = $font.offset();
      if (offset && offset.top > top && offset.top < bottom) {
        fontsInView.push($font);
      }
    });
    fontsInView.forEach(function (font) {
      var fontFamily = jQuery(font).find('span').html();
      elementor.helpers.enqueueFont(fontFamily, 'editor');
    });
  },
  fontPreviewTemplate: function fontPreviewTemplate(state) {
    if (!state.id) {
      return state.text;
    }
    return jQuery('<span>', {
      text: state.text,
      css: {
        'font-family': state.element.value.toString()
      }
    });
  },
  templateHelpers: function templateHelpers() {
    var helpers = ControlSelect2View.prototype.templateHelpers.apply(this, arguments),
      fonts = this.model.get('options');
    helpers.getFontsByGroups = function (groups) {
      var filteredFonts = {};
      _.each(fonts, function (fontType, fontName) {
        if (_.isArray(groups) && _.contains(groups, fontType) || fontType === groups) {
          filteredFonts[fontName] = fontName;
        }
      });
      return filteredFonts;
    };
    return helpers;
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/controls/gallery.js":
/*!***************************************************!*\
  !*** ../assets/dev/js/editor/controls/gallery.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
var _filesUploadHandler = _interopRequireDefault(__webpack_require__(/*! ../utils/files-upload-handler */ "../assets/dev/js/editor/utils/files-upload-handler.js"));
var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"),
  ControlMediaItemView;
ControlMediaItemView = ControlBaseDataView.extend({
  ui: function ui() {
    var ui = ControlBaseDataView.prototype.ui.apply(this, arguments);
    ui.addImages = '.elementor-control-gallery-add';
    ui.clearGallery = '.elementor-control-gallery-clear';
    ui.galleryThumbnails = '.elementor-control-gallery-thumbnails';
    ui.status = '.elementor-control-gallery-status-title';
    // eslint-disable-next-line capitalized-comments
    // ui.warnings = '.elementor-control-media__warnings';
    ui.promotions = '.elementor-control-media__promotions';
    ui.promotions_dismiss = '.elementor-control-media__promotions .elementor-control-notice-dismiss';
    ui.promotions_action = '.elementor-control-media__promotions .elementor-control-notice-main-actions button';
    return ui;
  },
  events: function events() {
    return _.extend(ControlBaseDataView.prototype.events.apply(this, arguments), {
      'click @ui.addImages': 'onAddImagesClick',
      'click @ui.clearGallery': 'onClearGalleryClick',
      'click @ui.galleryThumbnails': 'onGalleryThumbnailsClick',
      'click @ui.promotions_dismiss': 'onPromotionDismiss',
      'click @ui.promotions_action': 'onPromotionAction',
      'keyup @ui.galleryThumbnails': 'onGalleryThumbnailsKeyPress'
    });
  },
  onReady: function onReady() {
    this.initRemoveDialog();
  },
  applySavedValue: function applySavedValue() {
    var _this = this;
    return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
      var images, imagesCount, hasImages, imagesWithoutOptimization, promotionsAlwaysOn, hasPromotions, $galleryThumbnails, attachments;
      return _regenerator.default.wrap(function (_context) {
        while (1) switch (_context.prev = _context.next) {
          case 0:
            images = _this.getControlValue(), imagesCount = images.length, hasImages = !!imagesCount, imagesWithoutOptimization = 0, promotionsAlwaysOn = false;
            hasPromotions = _this.ui.promotions.length && !elementor.config.user.dismissed_editor_notices.includes(_this.getDismissPromotionEventName());
            _this.$el.toggleClass('elementor-gallery-has-images', hasImages).toggleClass('elementor-gallery-empty', !hasImages);
            $galleryThumbnails = _this.ui.galleryThumbnails;
            $galleryThumbnails.empty();

            /* Translators: %s: Selected images count. */
            _this.ui.status.text(hasImages ? sprintf(__('%s Images Selected', 'elementor'), imagesCount) : __('No Images Selected', 'elementor'));
            if (hasPromotions) {
              promotionsAlwaysOn = _this.ui.promotions.find('.elementor-control-notice').data('display') || false;
            }
            if (hasImages) {
              _context.next = 1;
              break;
            }
            return _context.abrupt("return");
          case 1:
            attachments = [];
            _this.getControlValue().forEach(function (image, thumbIndex) {
              var $thumbnail = jQuery('<img>', {
                class: 'elementor-control-gallery-thumbnail',
                src: image.url,
                alt: 'gallery-thumbnail-' + thumbIndex
              });
              $galleryThumbnails.append($thumbnail);
              var handleHints = function handleHints(attachment) {
                var hasAlt = _this.imageHasAlt(attachment);
                if (!hasAlt) {
                  $thumbnail.addClass('unoptimized__image');
                  // eslint-disable-next-line capitalized-comments
                  // imagesWithoutAlt += hasAlt ? 0 : 1;
                }
                if (hasPromotions && _this.imageNotOptimized(attachment)) {
                  imagesWithoutOptimization += 1;
                }
              };
              attachments.push(wp.media.attachment(image.id).fetch().then(handleHints));
            });

            // Ensure all attachments are fetched before updating the warnings
            _context.next = 2;
            return Promise.all(attachments).then(function () {
              // eslint-disable-next-line capitalized-comments
              // this.ui.warnings.toggle( !! imagesWithoutAlt );
              if (hasPromotions) {
                var showHints = promotionsAlwaysOn || !!imagesWithoutOptimization;
                _this.ui.promotions.toggle(showHints);
              }
            });
          case 2:
          case "end":
            return _context.stop();
        }
      }, _callee);
    }))();
  },
  hasImages: function hasImages() {
    return !!this.getControlValue().length;
  },
  imageHasAlt: function imageHasAlt(attachment) {
    var _attachment$alt;
    var attachmentAlt = (attachment === null || attachment === void 0 || (_attachment$alt = attachment.alt) === null || _attachment$alt === void 0 ? void 0 : _attachment$alt.trim()) || '';
    return !!attachmentAlt;
  },
  imageNotOptimized: function imageNotOptimized(attachment) {
    var checks = {
      height: 1080,
      width: 1920,
      filesizeInBytes: 100000
    };
    return Object.keys(checks).some(function (key) {
      var value = attachment[key] || false;
      return value && value > checks[key];
    });
  },
  openFrame: function openFrame(action) {
    this.initFrame(action);
    this.frame.open();

    // Set params to trigger sanitizer
    if (_filesUploadHandler.default.isUploadEnabled('svg')) {
      _filesUploadHandler.default.setUploadTypeCaller(this.frame);
    }
  },
  initFrame: function initFrame(action) {
    var frameStates = {
      create: 'gallery',
      add: 'gallery-library',
      edit: 'gallery-edit'
    };
    var options = {
      frame: 'post',
      multiple: true,
      state: frameStates[action],
      button: {
        text: __('Insert Media', 'elementor')
      }
    };
    if (this.hasImages()) {
      options.selection = this.fetchSelection();
    }
    this.frame = wp.media(options);
    this.addSvgMimeType();

    // When a file is selected, run a callback.
    this.frame.on({
      update: this.select,
      'menu:render:default': this.menuRender,
      'content:render:browse': this.gallerySettings
    }, this);
  },
  addSvgMimeType: function addSvgMimeType() {
    if (!_filesUploadHandler.default.isUploadEnabled('svg')) {
      return;
    }

    // Add the SVG to the currently allowed extensions
    var oldExtensions = _wpPluploadSettings.defaults.filters.mime_types[0].extensions;
    this.frame.on('ready', function () {
      _wpPluploadSettings.defaults.filters.mime_types[0].extensions = oldExtensions + ',svg';
    });

    // Restore allowed upload extensions
    this.frame.on('close', function () {
      _wpPluploadSettings.defaults.filters.mime_types[0].extensions = oldExtensions;
    });
  },
  menuRender: function menuRender(view) {
    view.unset('insert');
    view.unset('featured-image');
  },
  gallerySettings: function gallerySettings(browser) {
    browser.sidebar.on('ready', function () {
      browser.sidebar.unset('gallery');
    });
  },
  fetchSelection: function fetchSelection() {
    var attachments = wp.media.query({
      orderby: 'post__in',
      order: 'ASC',
      type: 'image',
      perPage: -1,
      post__in: _.pluck(this.getControlValue(), 'id')
    });
    return new wp.media.model.Selection(attachments.models, {
      props: attachments.props.toJSON(),
      multiple: true
    });
  },
  /**
   * Callback handler for when an attachment is selected in the media modal.
   * Gets the selected image information, and sets it within the control.
   *
   * @param {Array<*>} selection
   */
  select: function select(selection) {
    var images = [];
    selection.each(function (image) {
      images.push({
        id: image.get('id'),
        url: image.get('url')
      });
    });
    this.setValue(images);
    this.applySavedValue();
  },
  onPromotionDismiss: function onPromotionDismiss() {
    this.dismissPromotion(this.getDismissPromotionEventName());
  },
  getDismissPromotionEventName: function getDismissPromotionEventName() {
    var _$dismissButton$;
    var $promotions = this.ui.promotions;
    var $dismissButton = $promotions.find('.elementor-control-notice-dismiss');
    // Remove listener
    $dismissButton.off('click');
    return ((_$dismissButton$ = $dismissButton[0]) === null || _$dismissButton$ === void 0 || (_$dismissButton$ = _$dismissButton$.dataset) === null || _$dismissButton$ === void 0 ? void 0 : _$dismissButton$.event) || false;
  },
  hidePromotion: function hidePromotion() {
    var eventName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
    var $promotions = this.ui.promotions;
    $promotions.hide();
    if (!eventName) {
      eventName = this.getDismissPromotionEventName();
    }
    // Prevent opening the same promotion again in current editor session.
    elementor.config.user.dismissed_editor_notices.push(eventName);
  },
  onPromotionAction: function onPromotionAction(event) {
    var settings = {};
    try {
      settings = JSON.parse(event.target.closest('button').dataset.settings);
    } catch (e) {
      // Do nothing.
    }
    var _settings = settings,
      _settings$action_url = _settings.action_url,
      actionURL = _settings$action_url === void 0 ? null : _settings$action_url,
      _settings$source = _settings.source,
      source = _settings$source === void 0 ? 'io-editor-gallery-install' : _settings$source;
    if (actionURL) {
      window.open(actionURL, '_blank');
    }
    elementorCommon.ajax.addRequest('elementor_image_optimization_campaign', {
      data: {
        source: source
      }
    });
    this.hidePromotion();
  },
  dismissPromotion: function dismissPromotion(eventName) {
    var $promotions = this.ui.promotions;
    $promotions.hide();
    if (eventName) {
      elementorCommon.ajax.addRequest('dismissed_editor_notices', {
        data: {
          dismissId: eventName
        }
      });

      // Prevent opening the same promotion again in current editor session.
      elementor.config.user.dismissed_editor_notices.push(eventName);
    }
  },
  onBeforeDestroy: function onBeforeDestroy() {
    if (this.frame) {
      this.frame.off();
    }
    this.$el.remove();
  },
  clearGallery: function clearGallery() {
    this.setValue([]);
    this.applySavedValue();

    // eslint-disable-next-line capitalized-comments
    // this.ui.warnings.hide();

    if (this.ui.promotions) {
      this.ui.promotions.hide();
    }
  },
  initRemoveDialog: function initRemoveDialog() {
    var removeDialog;
    this.getRemoveDialog = function () {
      if (!removeDialog) {
        removeDialog = elementorCommon.dialogsManager.createWidget('confirm', {
          message: __('Are you sure you want to clear this gallery?', 'elementor'),
          headerMessage: __('Clear gallery', 'elementor'),
          strings: {
            confirm: __('Clear', 'elementor'),
            cancel: __('Cancel', 'elementor')
          },
          defaultOption: 'confirm',
          onConfirm: this.clearGallery.bind(this)
        });
      }
      return removeDialog;
    };
  },
  onAddImagesClick: function onAddImagesClick() {
    this.openFrame(this.hasImages() ? 'add' : 'create');
  },
  onClearGalleryClick: function onClearGalleryClick() {
    this.getRemoveDialog().show();
  },
  onGalleryThumbnailsClick: function onGalleryThumbnailsClick() {
    this.openFrame('edit');
  },
  onGalleryThumbnailsKeyPress: function onGalleryThumbnailsKeyPress(event) {
    var ENTER_KEY = 13,
      SPACE_KEY = 32;
    if (ENTER_KEY === event.which || SPACE_KEY === event.which) {
      this.onGalleryThumbnailsClick(event);
    }
  }
});
module.exports = ControlMediaItemView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/gaps.js":
/*!************************************************!*\
  !*** ../assets/dev/js/editor/controls/gaps.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"));
// eslint-disable-next-line prefer-const
var ControlDimensionsView = __webpack_require__(/*! elementor-controls/dimensions */ "../assets/dev/js/editor/controls/dimensions.js"),
  ControlGapItemView;

// eslint-disable-next-line prefer-const
ControlGapItemView = ControlDimensionsView.extend({
  ui: function ui() {
    // eslint-disable-next-line prefer-const
    var ui = ControlDimensionsView.prototype.ui.apply(this, arguments);
    ui.controls = '.elementor-control-gap > input:enabled';
    ui.link = 'button.elementor-link-gaps';
    return ui;
  },
  getPossibleDimensions: function getPossibleDimensions() {
    return ['row', 'column'];
  },
  setValue: function setValue(key, value) {
    var values = this.getControlValue();
    if ('object' === (0, _typeof2.default)(key)) {
      _.each(key, function (internalValue, internalKey) {
        values[internalKey] = internalValue;
      });
    } else {
      values[key] = value;
    }
    var conversion = this.model.get('conversion_map');
    if (conversion && conversion.old_key && conversion.new_key) {
      values[conversion.old_key] = parseInt(values[conversion.new_key]);
    }
    this.setSettingsModel(values);
  },
  getControlValue: function getControlValue() {
    var valuesUpdated = ControlDimensionsView.prototype.getControlValue.apply(this, arguments);
    if (this.shouldUpdateGapsValues(valuesUpdated)) {
      valuesUpdated.column = '' + valuesUpdated.size;
      valuesUpdated.row = '' + valuesUpdated.size;
      valuesUpdated.isLinked = true;
    }
    return valuesUpdated;
  },
  shouldUpdateGapsValues: function shouldUpdateGapsValues(valuesUpdated) {
    return !!valuesUpdated.hasOwnProperty('size') && '' !== valuesUpdated.size && !valuesUpdated.hasOwnProperty('column');
  }
});
module.exports = ControlGapItemView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/hidden.js":
/*!**************************************************!*\
  !*** ../assets/dev/js/editor/controls/hidden.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 _baseData = _interopRequireDefault(__webpack_require__(/*! ./base-data */ "../assets/dev/js/editor/controls/base-data.js"));
module.exports = _baseData.default.extend({}, {
  onPasteStyle: function onPasteStyle() {
    return false;
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/controls/icon.js":
/*!************************************************!*\
  !*** ../assets/dev/js/editor/controls/icon.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var ControlSelect2View = __webpack_require__(/*! elementor-controls/select2 */ "../assets/dev/js/editor/controls/select2.js"),
  ControlIconView;
ControlIconView = ControlSelect2View.extend({
  initialize: function initialize() {
    ControlSelect2View.prototype.initialize.apply(this, arguments);
    this.filterIcons();
  },
  filterIcons: function filterIcons() {
    var icons = this.model.get('options'),
      include = this.model.get('include');
    if (include) {
      var filteredIcons = {};
      _.each(include, function (iconKey) {
        filteredIcons[iconKey] = icons[iconKey];
      });
      this.model.set('options', filteredIcons);
      return;
    }
    var exclude = this.model.get('exclude');
    if (exclude) {
      _.each(exclude, function (iconKey) {
        delete icons[iconKey];
      });
    }
  },
  iconsList: function iconsList(icon) {
    if (!icon.id) {
      return icon.text;
    }
    return jQuery('<span><i class="' + icon.id + '"></i> ' + icon.text + '</span>');
  },
  getSelect2Options: function getSelect2Options() {
    return {
      allowClear: true,
      templateResult: this.iconsList.bind(this),
      templateSelection: this.iconsList.bind(this)
    };
  }
});
module.exports = ControlIconView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/icons.js":
/*!*************************************************!*\
  !*** ../assets/dev/js/editor/controls/icons.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_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");
var _readOnlyError2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/readOnlyError */ "../node_modules/@babel/runtime/helpers/readOnlyError.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _filesUploadHandler = _interopRequireDefault(__webpack_require__(/*! ../utils/files-upload-handler */ "../assets/dev/js/editor/utils/files-upload-handler.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var ControlMultipleBaseItemView = __webpack_require__(/*! elementor-controls/base-multiple */ "../assets/dev/js/editor/controls/base-multiple.js");
var ControlIconsView = /*#__PURE__*/function (_ControlMultipleBaseI) {
  function ControlIconsView() {
    var _this;
    (0, _classCallCheck2.default)(this, ControlIconsView);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, ControlIconsView, [].concat(args));
    _this.cache = {
      loaded: false,
      dialog: false,
      enableClicked: false,
      fa4Mapping: false,
      migratedFlag: {}
    };
    _this.dataKeys = {
      migratedKey: '__fa4_migrated',
      fa4MigrationFlag: 'fa4compatibility'
    };
    return _this;
  }
  (0, _inherits2.default)(ControlIconsView, _ControlMultipleBaseI);
  return (0, _createClass2.default)(ControlIconsView, [{
    key: "enqueueIconFonts",
    value: function enqueueIconFonts(iconType) {
      var iconSetting = elementor.helpers.getIconLibrarySettings(iconType);
      if (false === iconSetting || !this.isMigrationAllowed()) {
        return;
      }
      if (iconSetting.enqueue) {
        iconSetting.enqueue.forEach(function (assetURL) {
          var versionAddedURL = "".concat(assetURL).concat(iconSetting !== null && iconSetting !== void 0 && iconSetting.ver ? '?ver=' + iconSetting.ver : '');
          elementor.helpers.enqueueEditorStylesheet(versionAddedURL);
          elementor.helpers.enqueuePreviewStylesheet(versionAddedURL);
        });
      }
      if (iconSetting.url) {
        var versionAddedURL = "".concat(iconSetting.url).concat(iconSetting !== null && iconSetting !== void 0 && iconSetting.ver ? '?ver=' + iconSetting.ver : '');
        elementor.helpers.enqueueEditorStylesheet(versionAddedURL);
        elementor.helpers.enqueuePreviewStylesheet(versionAddedURL);
      }
    }
  }, {
    key: "ui",
    value: function ui() {
      var ui = _superPropGet(ControlIconsView, "ui", this, 3)([]),
        skin = this.model.get('skin');
      ui.controlMedia = '.elementor-control-media';
      ui.svgUploader = 'media' === skin ? '.elementor-control-svg-uploader' : '.elementor-control-icons--inline__svg';
      ui.iconPickers = 'media' === skin ? '.elementor-control-icon-picker, .elementor-control-media__preview, .elementor-control-media-upload-button' : '.elementor-control-icons--inline__icon';
      ui.deleteButton = 'media' === skin ? '.elementor-control-media__remove' : '.elementor-control-icons--inline__none';
      ui.previewPlaceholder = '.elementor-control-media__preview';
      ui.previewContainer = '.elementor-control-preview-area';
      ui.inlineIconContainer = '.elementor-control-inline-icon';
      ui.inlineDisplayedIcon = '.elementor-control-icons--inline__displayed-icon';
      ui.radioInputs = '[type="radio"]';
      return ui;
    }
  }, {
    key: "events",
    value: function events() {
      return jQuery.extend(ControlMultipleBaseItemView.prototype.events.apply(this, arguments), {
        'click @ui.iconPickers': 'openPicker',
        'click @ui.svgUploader': 'openFrame',
        'click @ui.radioInputs': 'onClickInput',
        'click @ui.deleteButton': 'deleteIcon'
      });
    }
  }, {
    key: "getControlValue",
    value: function getControlValue() {
      var model = this.model,
        valueToMigrate = this.getValueToMigrate();
      if (!this.isMigrationAllowed()) {
        return valueToMigrate;
      }

      // Bail if no migration flag or no value to migrate
      var value = _superPropGet(ControlIconsView, "getControlValue", this, 3)([]);
      if (!valueToMigrate) {
        return value;
      }
      var controlName = model.get('name');

      // Check if migration had been done and is stored locally
      if (this.cache.migratedFlag[controlName]) {
        return this.cache.migratedFlag[controlName];
      }
      // Check if already migrated
      var didMigration = this.elementSettingsModel.get(this.dataKeys.migratedKey);
      if (didMigration && didMigration[controlName]) {
        return value;
      }

      // Do migration
      return this.migrateFa4toFa5(valueToMigrate);
    }
  }, {
    key: "migrateFa4toFa5",
    value: function migrateFa4toFa5(fa4Value) {
      var fa5Value = elementor.helpers.mapFa4ToFa5(fa4Value);
      this.cache.migratedFlag[this.model.get('name')] = fa5Value;
      this.enqueueIconFonts(fa5Value.library);
      return fa5Value;
    }
  }, {
    key: "setControlAsMigrated",
    value: function setControlAsMigrated(controlName) {
      var didMigration = this.elementSettingsModel.get(this.dataKeys.migratedKey) || {};
      didMigration[controlName] = true;
      this.elementSettingsModel.set(this.dataKeys.migratedKey, didMigration, {
        silent: true
      });
    }
  }, {
    key: "isMigrationAllowed",
    value: function isMigrationAllowed() {
      return !elementor.config.icons_update_needed;
    }
  }, {
    key: "getValueToMigrate",
    value: function getValueToMigrate() {
      var controlToMigrate = this.model.get(this.dataKeys.fa4MigrationFlag);
      if (!controlToMigrate) {
        return false;
      }

      // Check if there is a value to migrate
      var valueToMigrate = this.container.settings.get(controlToMigrate);
      if (valueToMigrate) {
        return valueToMigrate;
      }
      return false;
    }
  }, {
    key: "onReady",
    value: function onReady() {
      var _this2 = this;
      // Is migration allowed from fa4
      if (!this.isMigrationAllowed()) {
        var migrationPopupTrigger = 'media' === this.model.get('skin') ? this.ui.previewContainer[0] : this.ui.inlineIconContainer[0];
        migrationPopupTrigger.addEventListener('click', function (event) {
          // Prevent default to prevent marking the inline icons as selected on click when migration is not allowed
          event.preventDefault();
          event.stopPropagation();
          var onConfirm = function onConfirm() {
            var _elementor$documents$;
            window.location.href = elementor.config.tools_page_link + '&redirect_to_document=' + ((_elementor$documents$ = elementor.documents.getCurrent()) === null || _elementor$documents$ === void 0 ? void 0 : _elementor$documents$.id) + '&_wpnonce=' + elementor.config.tools_page_nonce + '#tab-fontawesome4_migration';
          };
          var enableMigrationDialog = elementor.helpers.getSimpleDialog('elementor-enable-fa5-dialog', __('Elementor\'s New Icon Library', 'elementor'), __('Elementor v2.6 includes an upgrade from Font Awesome 4 to 5. In order to continue using icons, be sure to click "Update".', 'elementor') + ' <a href="https://go.elementor.com/fontawesome-migration/" target="_blank">' + __('Learn More', 'elementor') + '</a>', __('Update', 'elementor'), onConfirm);
          enableMigrationDialog.show();
          return false;
        }, true);
      }
      var controlName = this.model.get('name');
      if (this.cache.migratedFlag[controlName]) {
        this.setControlAsMigrated(controlName);
        setTimeout(function () {
          _this2.setValue(_this2.cache.migratedFlag[controlName]);
        }, 10);
      }
    }
  }, {
    key: "onRender",
    value: function onRender() {
      _superPropGet(ControlIconsView, "onRender", this, 3)([]);
      if (this.isMigrationAllowed()) {
        elementor.iconManager.loadIconLibraries();
      }
    }
  }, {
    key: "initFrame",
    value: function initFrame() {
      var _this3 = this;
      // Set current doc id to attach uploaded images.
      wp.media.view.settings.post.id = elementor.config.document.id;
      this.frame = wp.media({
        button: {
          text: __('Insert Media', 'elementor')
        },
        library: {
          type: ['image/svg+xml']
        },
        states: [new wp.media.controller.Library({
          title: __('Insert Media', 'elementor'),
          library: wp.media.query({
            type: ['image/svg+xml']
          }),
          multiple: false,
          date: false
        })]
      });
      var handleSelect = function handleSelect() {
        return _this3.selectSvg();
      };

      // When a file is selected, run a callback.
      this.frame.on('insert select', handleSelect);
      this.setUploadMimeType(this.frame, 'svg');
    }
  }, {
    key: "setUploadMimeType",
    value: function setUploadMimeType(frame, ext) {
      // Set svg as only allowed upload extensions
      var oldExtensions = _wpPluploadSettings.defaults.filters.mime_types[0].extensions;
      frame.on('ready', function () {
        _wpPluploadSettings.defaults.filters.mime_types[0].extensions = ext;
      });
      this.frame.on('close', function () {
        // Restore allowed upload extensions
        _wpPluploadSettings.defaults.filters.mime_types[0].extensions = oldExtensions;
      });
    }

    /**
     * Callback handler for when an attachment is selected in the media modal.
     * Gets the selected image information, and sets it within the control.
     */
  }, {
    key: "selectSvg",
    value: function selectSvg() {
      this.trigger('before:select');

      // Get the attachment from the modal frame.
      var attachment = this.frame.state().get('selection').first().toJSON();
      if (attachment.url) {
        this.setValue({
          value: {
            url: attachment.url,
            id: attachment.id
          },
          library: 'svg'
        });
        this.applySavedValue();
      }
      this.trigger('after:select');
    }
  }, {
    key: "openFrame",
    value: function openFrame() {
      var _this4 = this;
      if (!_filesUploadHandler.default.isUploadEnabled('svg')) {
        _filesUploadHandler.default.getUnfilteredFilesNotEnabledDialog(function () {
          return _this4.openFrame();
        }).show();
        return false;
      }
      if (!this.frame) {
        this.initFrame();
      }
      this.frame.open();

      // Set params to trigger sanitizer
      _filesUploadHandler.default.setUploadTypeCaller(this.frame);
      var selectedId = this.getControlValue('id');
      if (!selectedId) {
        return;
      }
      var selection = this.frame.state().get('selection');
      selection.add(wp.media.attachment(selectedId));
    }
  }, {
    key: "openPicker",
    value: function openPicker() {
      elementor.iconManager.show({
        view: this
      });
    }
  }, {
    key: "applySavedValue",
    value: function applySavedValue() {
      var _this5 = this;
      var controlValue = this.getControlValue(),
        skin = this.model.get('skin'),
        iconContainer = 'inline' === skin ? this.ui.inlineDisplayedIcon : this.ui.previewPlaceholder,
        disableActiveState = this.model.get('disable_initial_active_state'),
        defaultIcon = this.model.get('default');
      var iconValue = controlValue.value,
        iconType = controlValue.library;
      if (!this.isMigrationAllowed() && !iconValue && this.getValueToMigrate()) {
        iconValue = this.getControlValue();
        iconType = '';
      }
      if ('media' === skin) {
        this.ui.controlMedia.toggleClass('e-media-empty', !iconValue);
      }
      if ('inline' === skin && !disableActiveState || iconType) {
        this.markChecked(iconType);
      }
      if (!iconValue) {
        if ('inline' === skin) {
          this.setDefaultIconLibraryLabel(defaultIcon, iconContainer);
          return;
        }
        this.ui.previewPlaceholder.html('');
        return;
      }
      if ('svg' === iconType && 'inline' !== skin) {
        return elementor.helpers.fetchInlineSvg(iconValue.url, function (data) {
          _this5.ui.previewPlaceholder.html(data);
        });
      }
      if ('media' === skin || 'svg' !== iconType) {
        var previewHTML = '<i class="' + iconValue + '"></i>';
        iconContainer.html(previewHTML);
      }
      this.enqueueIconFonts(iconType);
    }
  }, {
    key: "setDefaultIconLibraryLabel",
    value: function setDefaultIconLibraryLabel(defaultIcon, iconContainer) {
      // Check if the control has a default icon
      if ('' !== defaultIcon.value && 'svg' !== defaultIcon.library) {
        // If the default icon is not an SVG, set the icon-library label's icon to the default icon
        iconContainer.html('<i class="' + defaultIcon.value + '"></i>');
      } else {
        // If (1) the control does NOT have a default icon,
        // OR (2) the control DOES have a default icon BUT the default icon is an SVG,
        // set the default icon-library label's icon to a simple circle
        var skinOptions = this.model.get('skin_settings');
        iconContainer.html('<i class="' + skinOptions.inline.icon.icon + '"></i>');
      }
    }
  }, {
    key: "markChecked",
    value: function markChecked(iconType) {
      this.ui.radioInputs.filter(':checked').prop('checked', false);
      if (!iconType) {
        return this.ui.radioInputs.filter('[value="none"]').prop('checked', true);
      }
      if ('svg' !== iconType) {
        iconType = 'icon';
      }
      this.ui.radioInputs.filter('[value="' + iconType + '"]').prop('checked', true);
    }
  }, {
    key: "onClickInput",
    value: function onClickInput() {
      this.markChecked(this.getControlValue().library);
    }
  }, {
    key: "deleteIcon",
    value: function deleteIcon(event) {
      event.stopPropagation();
      this.setValue({
        value: '',
        library: ''
      });
      this.applySavedValue();
    }
  }, {
    key: "onBeforeDestroy",
    value: function onBeforeDestroy() {
      this.$el.remove();
    }
  }]);
}(ControlMultipleBaseItemView);
module.exports = ControlIconsView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/image-dimensions.js":
/*!************************************************************!*\
  !*** ../assets/dev/js/editor/controls/image-dimensions.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _scrubbing = _interopRequireDefault(__webpack_require__(/*! ./behaviors/scrubbing */ "../assets/dev/js/editor/controls/behaviors/scrubbing.js"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var ControlMultipleBaseItemView = __webpack_require__(/*! elementor-controls/base-multiple */ "../assets/dev/js/editor/controls/base-multiple.js"),
  ControlImageDimensionsItemView;
ControlImageDimensionsItemView = ControlMultipleBaseItemView.extend({
  behaviors: function behaviors() {
    return _objectSpread(_objectSpread({}, ControlMultipleBaseItemView.prototype.behaviors.apply(this)), {}, {
      Scrubbing: {
        behaviorClass: _scrubbing.default,
        scrubSettings: {
          intentTime: 800
        }
      }
    });
  },
  ui: function ui() {
    return {
      inputWidth: 'input[data-setting="width"]',
      inputHeight: 'input[data-setting="height"]',
      btnApply: 'button.elementor-image-dimensions-apply-button'
    };
  },
  // Override the base events
  events: function events() {
    return {
      'click @ui.btnApply': 'onApplyClicked',
      'keyup @ui.inputWidth': 'onDimensionKeyUp',
      'keyup @ui.inputHeight': 'onDimensionKeyUp'
    };
  },
  onDimensionKeyUp: function onDimensionKeyUp(event) {
    var ENTER_KEY = 13;
    if (ENTER_KEY === event.keyCode) {
      this.onApplyClicked(event);
    }
  },
  onApplyClicked: function onApplyClicked(event) {
    event.preventDefault();
    this.setValue({
      width: this.ui.inputWidth.val(),
      height: this.ui.inputHeight.val()
    });
  }
});
module.exports = ControlImageDimensionsItemView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/media.js":
/*!*************************************************!*\
  !*** ../assets/dev/js/editor/controls/media.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_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");
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
var _filesUploadHandler = _interopRequireDefault(__webpack_require__(/*! ../utils/files-upload-handler */ "../assets/dev/js/editor/utils/files-upload-handler.js"));
var _jsonUploadWarningMessage = __webpack_require__(/*! elementor-utils/json-upload-warning-message */ "../assets/dev/js/utils/json-upload-warning-message.js");
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var ControlMultipleBaseItemView = __webpack_require__(/*! elementor-controls/base-multiple */ "../assets/dev/js/editor/controls/base-multiple.js"),
  ControlMediaItemView;
ControlMediaItemView = ControlMultipleBaseItemView.extend({
  ui: function ui() {
    var ui = ControlMultipleBaseItemView.prototype.ui.apply(this, arguments);
    ui.controlMedia = '.elementor-control-media';
    ui.mediaImage = '.elementor-control-media__preview';
    ui.mediaVideo = '.elementor-control-media-video';
    ui.frameOpeners = '.elementor-control-preview-area';
    ui.removeButton = '.elementor-control-media__remove';
    // eslint-disable-next-line capitalized-comments
    // ui.warnings = '.elementor-control-media__warnings';
    ui.promotions = '.elementor-control-media__promotions';
    ui.promotions_dismiss = '.elementor-control-media__promotions .elementor-control-notice-dismiss';
    ui.promotions_action = '.elementor-control-media__promotions .elementor-control-notice-main-actions button';
    ui.fileName = '.elementor-control-media__file__content__info__name';
    ui.mediaInputImageSize = '.e-image-size-select';
    return ui;
  },
  events: function events() {
    return _.extend(ControlMultipleBaseItemView.prototype.events.apply(this, arguments), {
      'click @ui.frameOpeners': 'openFrame',
      'click @ui.removeButton': 'deleteImage',
      'change @ui.mediaInputImageSize': 'onMediaInputImageSizeChange',
      'click @ui.promotions_dismiss': 'onPromotionDismiss',
      'click @ui.promotions_action': 'onPromotionAction'
    });
  },
  getMediaType: function getMediaType() {
    // `get( 'media_type' )` is for BC.
    return this.mediaType || this.model.get('media_type') || this.model.get('media_types')[0];
  },
  /**
   * Get library type for `wp.media` using a given media type.
   *
   * @param {string} mediaType - The media type to get the library for.
   * @return {string} library media type
   */
  getLibraryType: function getLibraryType(mediaType) {
    if (!mediaType) {
      mediaType = this.getMediaType();
    }
    return 'svg' === mediaType ? 'image/svg+xml' : mediaType;
  },
  applySavedValue: function applySavedValue() {
    var _this$getControlPlace,
      _this = this;
    var value = this.getControlValue('url'),
      url = value || ((_this$getControlPlace = this.getControlPlaceholder()) === null || _this$getControlPlace === void 0 ? void 0 : _this$getControlPlace.url),
      attachmentId = this.getControlValue('id'),
      isPlaceholder = !value && url,
      mediaType = this.getMediaType();
    if (['image', 'svg'].includes(mediaType)) {
      this.ui.mediaImage.css('background-image', url ? 'url(' + url + ')' : '');
      if (isPlaceholder) {
        this.ui.mediaImage.css('opacity', 0.5);
      }
    } else if ('video' === mediaType) {
      this.ui.mediaVideo.attr('src', url);
    } else {
      var fileName = url ? url.split('/').pop() : '';
      this.ui.fileName.text(fileName);
    }
    if (this.ui.mediaInputImageSize) {
      var imageSize = this.getControlValue('size');
      if (isPlaceholder) {
        var _this$getControlPlace2;
        imageSize = (_this$getControlPlace2 = this.getControlPlaceholder()) === null || _this$getControlPlace2 === void 0 ? void 0 : _this$getControlPlace2.size;
      }
      this.ui.mediaInputImageSize.val(imageSize).toggleClass('e-select-placeholder', isPlaceholder);
    }
    this.ui.controlMedia.toggleClass('e-media-empty', !value).toggleClass('e-media-empty-placeholder', !value && !isPlaceholder);
    if ('image' === mediaType) {
      if (attachmentId) {
        var dismissPromotionEventName = this.getDismissPromotionEventName();
        var handleHints = function handleHints(attachment) {
          // eslint-disable-next-line capitalized-comments
          // this.ui.warnings.toggle( ! this.imageHasAlt( attachment ) );
          if (_this.ui.promotions.length && !elementor.config.user.dismissed_editor_notices.includes(dismissPromotionEventName)) {
            var alwaysOn = _this.ui.promotions.find('.elementor-control-notice').data('display') || false;
            var showHint = alwaysOn || _this.imageNotOptimized(attachment);
            _this.ui.promotions.toggle(showHint);
          }
        };
        wp.media.attachment(attachmentId).fetch().then(handleHints);
      } else {
        // eslint-disable-next-line capitalized-comments
        // this.ui.warnings.hide();

        // eslint-disable-next-line no-lonely-if
        if (this.ui.promotions.length) {
          this.ui.promotions.hide();
        }
      }
    }
  },
  openFrame: function openFrame(e) {
    var _arguments = arguments,
      _this2 = this;
    return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
      var _e$target;
      var source, mediaType, selectedId;
      return _regenerator.default.wrap(function (_context) {
        while (1) switch (_context.prev = _context.next) {
          case 0:
            source = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : null;
            mediaType = (e === null || e === void 0 || (_e$target = e.target) === null || _e$target === void 0 || (_e$target = _e$target.dataset) === null || _e$target === void 0 ? void 0 : _e$target.mediaType) || _this2.getMediaType();
            _this2.mediaType = mediaType;
            if (mediaType) {
              _context.next = 1;
              break;
            }
            return _context.abrupt("return");
          case 1:
            if (_filesUploadHandler.default.isUploadEnabled(mediaType)) {
              _context.next = 2;
              break;
            }
            _filesUploadHandler.default.getUnfilteredFilesNotEnabledDialog(function () {
              return _this2.openFrame(e, 'filter-popup');
            }).show();
            return _context.abrupt("return", false);
          case 2:
            if (!(source !== 'filter-popup' && ['application/json', 'json'].includes(mediaType))) {
              _context.next = 3;
              break;
            }
            _context.next = 3;
            return (0, _jsonUploadWarningMessage.showJsonUploadWarningMessageIfNeeded)({
              introductionMap: window.elementor.config.user.introduction,
              IntroductionClass: window.elementorModules.editor.utils.Introduction
            });
          case 3:
            // If there is no frame, or the current initialized frame contains a different library than
            // the `data-media-type` of the clicked button, (re)initialize the frame.
            if (!_this2.frame || _this2.getLibraryType(mediaType) !== _this2.currentLibraryType) {
              _this2.initFrame();
            }
            _this2.frame.open();

            // Set params to trigger sanitizer
            _filesUploadHandler.default.setUploadTypeCaller(_this2.frame);
            selectedId = _this2.getControlValue('id');
            if (selectedId) {
              _context.next = 4;
              break;
            }
            return _context.abrupt("return");
          case 4:
            _this2.frame.state().get('selection').add(wp.media.attachment(selectedId));
          case 5:
          case "end":
            return _context.stop();
        }
      }, _callee);
    }))();
  },
  deleteImage: function deleteImage(event) {
    event.stopPropagation();
    this.setValue({
      url: '',
      id: ''
    });
    this.applySavedValue();
  },
  imageHasAlt: function imageHasAlt(attachment) {
    var _attachment$alt;
    var attachmentAlt = (attachment === null || attachment === void 0 || (_attachment$alt = attachment.alt) === null || _attachment$alt === void 0 ? void 0 : _attachment$alt.trim()) || '';
    return !!attachmentAlt;
  },
  imageNotOptimized: function imageNotOptimized(attachment) {
    var checks = {
      height: 1080,
      width: 1920,
      filesizeInBytes: 100000
    };
    return Object.keys(checks).some(function (key) {
      var value = attachment[key] || false;
      return value && value > checks[key];
    });
  },
  getDismissPromotionEventName: function getDismissPromotionEventName() {
    var _$dismissButton$;
    var $promotions = this.ui.promotions;
    var $dismissButton = $promotions.find('.elementor-control-notice-dismiss');
    // Remove listener
    $dismissButton.off('click');
    return ((_$dismissButton$ = $dismissButton[0]) === null || _$dismissButton$ === void 0 || (_$dismissButton$ = _$dismissButton$.dataset) === null || _$dismissButton$ === void 0 ? void 0 : _$dismissButton$.event) || false;
  },
  onPromotionDismiss: function onPromotionDismiss() {
    this.dismissPromotion(this.getDismissPromotionEventName());
  },
  onPromotionAction: function onPromotionAction(event) {
    var settings = {};
    try {
      settings = JSON.parse(event.target.closest('button').dataset.settings);
    } catch (e) {
      // Do nothing.
    }
    var _settings = settings,
      _settings$action_url = _settings.action_url,
      actionURL = _settings$action_url === void 0 ? null : _settings$action_url,
      _settings$source = _settings.source,
      source = _settings$source === void 0 ? 'io-editor-image-install' : _settings$source;
    if (actionURL) {
      window.open(actionURL, '_blank');
    }
    this.hidePromotion(null, source);
  },
  dismissPromotion: function dismissPromotion(eventName) {
    this.hidePromotion(eventName);
    if (eventName) {
      elementorCommon.ajax.addRequest('dismissed_editor_notices', {
        data: {
          dismissId: eventName
        }
      });
    }
  },
  hidePromotion: function hidePromotion() {
    var eventName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
    var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'io-editor-image-install';
    var $promotions = this.ui.promotions;
    $promotions.hide();
    if (!eventName) {
      eventName = this.getDismissPromotionEventName();
    }
    elementorCommon.ajax.addRequest('elementor_image_optimization_campaign', {
      data: {
        source: source
      }
    });

    // Prevent opening the same promotion again in current editor session.
    elementor.config.user.dismissed_editor_notices.push(eventName);
  },
  onMediaInputImageSizeChange: function onMediaInputImageSizeChange() {
    var _this3 = this;
    if (!this.model.get('has_sizes')) {
      return;
    }
    var currentControlValue = this.getControlValue(),
      placeholder = this.getControlPlaceholder();
    var hasImage = '' !== (currentControlValue === null || currentControlValue === void 0 ? void 0 : currentControlValue.id),
      hasPlaceholder = placeholder === null || placeholder === void 0 ? void 0 : placeholder.id,
      hasValue = hasImage || hasPlaceholder;
    if (!hasValue) {
      return;
    }
    var shouldUpdateFromPlaceholder = hasPlaceholder && !hasImage;
    if (shouldUpdateFromPlaceholder) {
      this.setValue(_objectSpread(_objectSpread({}, placeholder), {}, {
        size: currentControlValue.size
      }));
      if (this.model.get('responsive')) {
        // Render is already calls `applySavedValue`, therefore there's no need for it in this case.
        this.renderWithChildren();
      } else {
        this.applySavedValue();
      }
      this.onMediaInputImageSizeChange();
      return;
    }
    var imageURL;
    elementor.channels.editor.once('imagesManager:detailsReceived', function (data) {
      var _data$currentControlV;
      imageURL = (_data$currentControlV = data[currentControlValue.id]) === null || _data$currentControlV === void 0 ? void 0 : _data$currentControlV[currentControlValue.size];
      if (imageURL) {
        currentControlValue.url = imageURL;
        _this3.setValue(currentControlValue);
      }
    });
    imageURL = elementor.imagesManager.getImageUrl({
      id: currentControlValue.id,
      url: currentControlValue.url,
      size: currentControlValue.size
    });
    if (imageURL) {
      currentControlValue.url = imageURL;
      this.setValue(currentControlValue);
    }
  },
  /**
   * Create a media modal select frame, and store it so the instance can be reused when needed.
   */
  initFrame: function initFrame() {
    var mediaType = this.getMediaType();
    this.currentLibraryType = this.getLibraryType(mediaType);

    // Set current doc id to attach uploaded images.
    wp.media.view.settings.post.id = elementor.config.document.id;
    this.frame = wp.media({
      frame: 'post',
      type: 'image',
      multiple: false,
      states: [new wp.media.controller.Library({
        title: __('Insert Media', 'elementor'),
        library: wp.media.query({
          type: this.currentLibraryType
        }),
        multiple: false,
        date: false
      })]
    });

    // Remove unwanted elements when frame is opened.
    this.frame.on('ready open', this.onFrameReady.bind(this));

    // When a file is selected, run a callback.
    this.frame.on('insert select', this.select.bind(this));
    if (elementorCommon.config.filesUpload.unfilteredFiles) {
      this.setUploadMimeType(this.frame, mediaType);
    }
  },
  /**
   * Hack to remove unwanted elements from modal & Open the `Insert from URL` tab.
   */
  onFrameReady: function onFrameReady() {
    var $frame = this.frame.$el;
    var elementsToRemove = ['#menu-item-insert', '#menu-item-gallery', '#menu-item-playlist', '#menu-item-video-playlist', '.embed-link-settings'];
    $frame.find(elementsToRemove.join(',')).remove();

    // Change the default button text using CSS by passing the text as a variable.
    $frame.css('--button-text', "'".concat(__('Insert Media', 'elementor'), "'"));

    // Remove elements from the URL upload tab.
    $frame.addClass('e-wp-media-elements-removed');
    if ('url' === this.getControlValue('source')) {
      // Go to the url tab.
      $frame.find('#menu-item-embed').trigger('click');

      // Hide the top media tabs ( WordPress does that automatically if a real user clicks the url tab ).
      $frame.addClass('hide-router');

      // Load the image URL.
      this.frame.views.get('.media-frame-content')[0].url.model.set({
        url: this.getControlValue('url'),
        alt: this.getControlValue('alt')
      });
    } else {
      // Go to the upload tab.
      $frame.find('#menu-item-library').trigger('click');
    }
  },
  setUploadMimeType: function setUploadMimeType(frame, ext) {
    // Add unfiltered files to the allowed upload extensions
    var oldExtensions = _wpPluploadSettings.defaults.filters.mime_types[0].extensions;
    frame.on('ready', function () {
      _wpPluploadSettings.defaults.filters.mime_types[0].extensions = 'application/json' === ext ? 'json' : oldExtensions + ',svg';
    });
    this.frame.on('close', function () {
      // Restore allowed upload extensions
      _wpPluploadSettings.defaults.filters.mime_types[0].extensions = oldExtensions;
    });
  },
  /**
   * Callback handler for when an attachment is selected in the media modal.
   * Gets the selected image information, and sets it within the control.
   */
  select: function select() {
    this.trigger('before:select');
    var state = this.frame.state();
    var attachment;
    if ('embed' === state.get('id')) {
      // Insert from URL.
      attachment = {
        url: state.props.get('url'),
        id: '',
        alt: state.props.get('alt'),
        source: 'url'
      };
    } else {
      // Get the attachment from the modal frame.
      attachment = this.frame.state().get('selection').first().toJSON();
      attachment.source = 'library';
    }
    if (attachment.url) {
      this.setValue({
        url: attachment.url,
        id: attachment.id,
        alt: attachment.alt,
        source: attachment.source,
        size: this.model.get('default').size
      });
      if (this.model.get('responsive')) {
        // Render is already calls `applySavedValue`, therefore there's no need for it in this case.
        this.renderWithChildren();
      } else {
        this.applySavedValue();
      }
    }
    this.onMediaInputImageSizeChange();
    this.trigger('after:select');
  },
  onBeforeDestroy: function onBeforeDestroy() {
    this.$el.remove();
  }
});
module.exports = ControlMediaItemView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/notice.js":
/*!**************************************************!*\
  !*** ../assets/dev/js/editor/controls/notice.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 _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
var ControlBaseView = __webpack_require__(/*! elementor-controls/base */ "../assets/dev/js/editor/controls/base.js");
module.exports = ControlBaseView.extend({
  ui: function ui() {
    var ui = ControlBaseView.prototype.ui.apply(this, arguments);
    ui.button = '.elementor-control-notice-dismiss';
    return ui;
  },
  events: {
    'click @ui.button.e-btn-1': 'onButton1Click',
    'click @ui.button.e-btn-2': 'onButton2Click',
    'click @ui.button.elementor-control-notice-dismiss': 'onDismissButtonClick'
  },
  onButton1Click: function onButton1Click() {
    var eventName = this.model.get('event');
    elementor.channels.editor.trigger(eventName, this);
  },
  onButton2Click: function onButton2Click() {
    var eventName = this.model.get('event');
    elementor.channels.editor.trigger(eventName, this);
  },
  getDismissId: function getDismissId() {
    var _this$options, _this$options2, _this$options3;
    var controlName = this.model.get('name');
    var elementType = 'widget' === ((_this$options = this.options) === null || _this$options === void 0 || (_this$options = _this$options.element) === null || _this$options === void 0 || (_this$options = _this$options.model) === null || _this$options === void 0 || (_this$options = _this$options.attributes) === null || _this$options === void 0 ? void 0 : _this$options.elType) ? (_this$options2 = this.options) === null || _this$options2 === void 0 || (_this$options2 = _this$options2.element) === null || _this$options2 === void 0 || (_this$options2 = _this$options2.model) === null || _this$options2 === void 0 || (_this$options2 = _this$options2.attributes) === null || _this$options2 === void 0 ? void 0 : _this$options2.widgetType : (_this$options3 = this.options) === null || _this$options3 === void 0 || (_this$options3 = _this$options3.element) === null || _this$options3 === void 0 || (_this$options3 = _this$options3.model) === null || _this$options3 === void 0 || (_this$options3 = _this$options3.attributes) === null || _this$options3 === void 0 ? void 0 : _this$options3.elType;
    return "".concat(elementType, "-").concat(controlName);
  },
  onDismissButtonClick: function onDismissButtonClick() {
    var _this = this;
    var dismissId = this.getDismissId();
    elementorCommon.ajax.addRequest('dismissed_editor_notices', {
      data: {
        dismissId: dismissId
      },
      success: function success() {
        var _elementor;
        _this.$el.remove();
        var dismissedNotices = (_elementor = elementor) !== null && _elementor !== void 0 && (_elementor = _elementor.config) !== null && _elementor !== void 0 && (_elementor = _elementor.user) !== null && _elementor !== void 0 && _elementor.dismissed_editor_notices ? (0, _toConsumableArray2.default)(elementor.config.user.dismissed_editor_notices) : [];
        elementor.config.user.dismissed_editor_notices = [].concat((0, _toConsumableArray2.default)(dismissedNotices), [dismissId]);
      }
    });
  },
  templateHelpers: function templateHelpers() {
    var _elementor2;
    var controlData = ControlBaseView.prototype.templateHelpers.apply(this, arguments);
    var dismissedNotices = (_elementor2 = elementor) !== null && _elementor2 !== void 0 && (_elementor2 = _elementor2.config) !== null && _elementor2 !== void 0 && (_elementor2 = _elementor2.user) !== null && _elementor2 !== void 0 && _elementor2.dismissed_editor_notices ? (0, _toConsumableArray2.default)(elementor.config.user.dismissed_editor_notices) : [];
    var dismissId = this.getDismissId();
    controlData.data.shouldRenderNotice = !dismissedNotices.includes(dismissId);
    return controlData;
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/controls/number.js":
/*!**************************************************!*\
  !*** ../assets/dev/js/editor/controls/number.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _scrubbing = _interopRequireDefault(__webpack_require__(/*! ./behaviors/scrubbing */ "../assets/dev/js/editor/controls/behaviors/scrubbing.js"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"),
  ControlNumberItemView;
ControlNumberItemView = ControlBaseDataView.extend({
  behaviors: function behaviors() {
    return _objectSpread(_objectSpread({}, ControlBaseDataView.prototype.behaviors.apply(this)), {}, {
      Scrubbing: {
        behaviorClass: _scrubbing.default,
        scrubSettings: {
          intentTime: 800
        }
      }
    });
  },
  registerValidators: function registerValidators() {
    ControlBaseDataView.prototype.registerValidators.apply(this, arguments);
    var validationTerms = {},
      model = this.model;
    ['min', 'max'].forEach(function (term) {
      var termValue = model.get(term);
      if (_.isFinite(termValue)) {
        validationTerms[term] = termValue;
      }
    });
    if (!jQuery.isEmptyObject(validationTerms)) {
      this.addValidator(new this.validatorTypes.Number({
        validationTerms: validationTerms
      }));
    }
  }
}, {
  getStyleValue: function getStyleValue(placeholder, controlValue, controlData) {
    if ('DEFAULT' === placeholder) {
      return controlData.default;
    }
    if (null === controlValue || undefined === controlValue || '' === controlValue) {
      return controlValue;
    }
    var numValue = Number(controlValue);
    if (!isFinite(numValue) || isNaN(numValue)) {
      var _controlData$default;
      return (_controlData$default = controlData.default) !== null && _controlData$default !== void 0 ? _controlData$default : '';
    }
    return numValue;
  }
});
module.exports = ControlNumberItemView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/popover-toggle.js":
/*!**********************************************************!*\
  !*** ../assets/dev/js/editor/controls/popover-toggle.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 _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
var _readOnlyError2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/readOnlyError */ "../node_modules/@babel/runtime/helpers/readOnlyError.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"));
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; })(); }
var ControlChooseView = __webpack_require__(/*! elementor-controls/choose */ "../assets/dev/js/editor/controls/choose.js");
var ControlPopoverStarterView = exports["default"] = /*#__PURE__*/function (_ControlChooseView) {
  function ControlPopoverStarterView() {
    (0, _classCallCheck2.default)(this, ControlPopoverStarterView);
    return _callSuper(this, ControlPopoverStarterView, arguments);
  }
  (0, _inherits2.default)(ControlPopoverStarterView, _ControlChooseView);
  return (0, _createClass2.default)(ControlPopoverStarterView, [{
    key: "ui",
    value: function ui() {
      var ui = ControlChooseView.prototype.ui.apply(this, arguments);
      ui.popoverToggle = '.elementor-control-popover-toggle-toggle';
      ui.resetInput = '.elementor-control-popover-toggle-reset';
      return ui;
    }
  }, {
    key: "events",
    value: function events() {
      return _.extend(ControlChooseView.prototype.events.apply(this, arguments), {
        'click @ui.popoverToggle': 'onPopoverToggleClick',
        'click @ui.resetInput': 'onResetInputClick'
      });
    }
  }, {
    key: "onShow",
    value: function onShow() {
      var _this = this;
      var $popover = this.$el.next('.elementor-controls-popover');

      // Attach the current control as a toggle of its popover.
      if ($popover.length) {
        $popover[0].dataset.popoverToggle = "elementor-control-default-".concat(this.model.cid);
        $popover.on('hide', function () {
          return _this.onPopoverHide();
        });
        $popover.attr('data-on-hide', true);
      }
    }
  }, {
    key: "onPopoverHide",
    value: function onPopoverHide() {
      this.reRoute(false);
    }
  }, {
    key: "onResetInputClick",
    value: function onResetInputClick() {
      var globalData = this.model.get('global');
      if (globalData !== null && globalData !== void 0 && globalData.active) {
        this.triggerMethod('value:type:change');
      }
    }
  }, {
    key: "onInputChange",
    value: function onInputChange(event) {
      if (event.currentTarget !== this.ui.popoverToggle[0]) {
        return;
      }

      // If the control has a global value, unset the global.
      if (this.getGlobalKey()) {
        this.triggerMethod('unset:global:value');
      } else if (this.isGlobalActive()) {
        this.triggerMethod('value:type:change');
      }
    }
  }, {
    key: "onPopoverToggleClick",
    value: function onPopoverToggleClick() {
      var _this2 = this;
      if (this.isGlobalActive() && !this.getControlValue() && !this.getGlobalKey() && this.getGlobalDefault()) {
        this.triggerMethod('unlink:global:default');
      }
      var $popover = this.$el.next('.elementor-controls-popover');
      if (!$popover.attr('data-on-hide')) {
        $popover.attr('data-on-hide', true);
        $popover.on('hide', function () {
          return _this2.onPopoverHide();
        });
      }
      if (!$popover.is(':visible')) {
        this.reRoute(true);
      } else {
        $popover.hide();
        $popover.trigger('hide');
      }
    }
  }, {
    key: "activate",
    value: function activate() {
      this.$el.next('.elementor-controls-popover').show();
    }
  }, {
    key: "getGlobalCommand",
    value: function getGlobalCommand() {
      return 'globals/typography';
    }
  }, {
    key: "buildPreviewItemCSS",
    value: function buildPreviewItemCSS(globalValue) {
      var cssObject = {};
      Object.entries(globalValue).forEach(function (_ref) {
        var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
          property = _ref2[0],
          value = _ref2[1];
        // If a control value is empty, ignore it.
        if (!value || '' === value.size) {
          return;
        }
        if (property.startsWith('typography_')) {
          property = property.replace('typography_', '');
        }
        if ('font_family' === property) {
          elementor.helpers.enqueueFont(value, 'editor');
        }
        if ('font_size' === property) {
          var fontSize = 'custom' === value.unit ? value.size : "".concat(value.size).concat(value.unit);
          cssObject.fontSize = "min(".concat(fontSize, ", 28px)");
        } else {
          // Convert the snake case property names into camel case to match their corresponding CSS property names.
          if (property.includes('_')) {
            property = property.replace(/([_][a-z])/g, function (result) {
              return result.toUpperCase().replace('_', '');
            });
          }
          cssObject[property] = value;
        }
      });
      return cssObject;
    }
  }, {
    key: "createGlobalItemMarkup",
    value: function createGlobalItemMarkup(globalData) {
      var $typographyPreview = jQuery('<div>', {
        class: 'e-global__preview-item e-global__typography',
        'data-global-id': globalData.id,
        title: globalData.title
      });
      $typographyPreview.html(_.escape(globalData.title)).css(this.buildPreviewItemCSS(globalData.value));
      return $typographyPreview;
    }
  }, {
    key: "getGlobalMeta",
    value: function getGlobalMeta() {
      return {
        commandName: this.getGlobalCommand(),
        key: this.model.get('name'),
        title: __('New Typography Setting', 'elementor'),
        controlType: 'typography',
        route: 'panel/global/global-typography'
      };
    }
  }, {
    key: "getAddGlobalConfirmMessage",
    value: function getAddGlobalConfirmMessage() {
      var globalData = this.getGlobalMeta(),
        $message = jQuery('<div>', {
          class: 'e-global__confirm-message'
        }),
        $messageText = jQuery('<div>').html(__('Are you sure you want to create a new Global Font setting?', 'elementor')),
        $inputWrapper = jQuery('<div>', {
          class: 'e-global__confirm-input-wrapper'
        }),
        $input = jQuery('<input>', {
          type: 'text',
          name: 'global-name',
          placeholder: globalData.title
        }).val(globalData.title);
      $inputWrapper.append($input);
      $message.append($messageText, $inputWrapper);
      return $message;
    }
  }, {
    key: "createHeaderItemMarkup",
    value: function createHeaderItemMarkup(text) {
      return jQuery('<div>', {
        class: 'e-global__group-header'
      }).text(text);
    }
  }, {
    key: "createDividerMarkup",
    value: function createDividerMarkup() {
      return jQuery('<div>', {
        class: 'e-global__group-divider'
      });
    }
  }, {
    key: "getGlobalsList",
    value: function () {
      var _getGlobalsList = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
        var result;
        return _regenerator.default.wrap(function (_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              _context.next = 1;
              return $e.data.get(this.getGlobalCommand());
            case 1:
              result = _context.sent;
              return _context.abrupt("return", result.data);
            case 2:
            case "end":
              return _context.stop();
          }
        }, _callee, this);
      }));
      function getGlobalsList() {
        return _getGlobalsList.apply(this, arguments);
      }
      return getGlobalsList;
    }()
  }, {
    key: "buildGlobalsList",
    value: function buildGlobalsList(globalTypographies, $globalPreviewItemsContainer) {
      var _this3 = this;
      var v4Typographies = [];
      var v3Typographies = [];
      Object.values(globalTypographies).forEach(function (typography) {
        if (!typography) {
          return;
        }
        if ('v4' === typography.group) {
          v4Typographies.push(typography);
        } else {
          v3Typographies.push(typography);
        }
      });
      if (v4Typographies.length) {
        $globalPreviewItemsContainer.append(this.createHeaderItemMarkup(__('Atomic Classes', 'elementor')));
        v4Typographies.forEach(function (typography) {
          $globalPreviewItemsContainer.append(_this3.createGlobalItemMarkup(typography));
        });
        if (v3Typographies.length) {
          $globalPreviewItemsContainer.append(this.createDividerMarkup());
          $globalPreviewItemsContainer.append(this.createHeaderItemMarkup(__('Global Fonts', 'elementor')));
        }
      }
      v3Typographies.forEach(function (typography) {
        $globalPreviewItemsContainer.append(_this3.createGlobalItemMarkup(typography));
      });
    }
  }, {
    key: "onAddGlobalButtonClick",
    value: function onAddGlobalButtonClick() {
      this.triggerMethod('add:global:to:list', this.getAddGlobalConfirmMessage());
    }
  }]);
}(ControlChooseView);
ControlPopoverStarterView.onPasteStyle = function (control, clipboardValue) {
  return !clipboardValue || clipboardValue === control.return_value;
};

/***/ }),

/***/ "../assets/dev/js/editor/controls/repeater-row.js":
/*!********************************************************!*\
  !*** ../assets/dev/js/editor/controls/repeater-row.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _controlsStack = _interopRequireDefault(__webpack_require__(/*! elementor-views/controls-stack */ "../assets/dev/js/editor/views/controls-stack.js"));
module.exports = Marionette.CompositeView.extend({
  template: Marionette.TemplateCache.get('#tmpl-elementor-repeater-row'),
  className: 'elementor-repeater-fields',
  attributes: {
    role: 'listitem'
  },
  ui: function ui() {
    return {
      duplicateButton: '.elementor-repeater-tool-duplicate',
      editButton: '.elementor-repeater-tool-edit',
      removeButton: '.elementor-repeater-tool-remove',
      itemTitle: '.elementor-repeater-row-item-title'
    };
  },
  behaviors: {
    HandleInnerTabs: {
      behaviorClass: __webpack_require__(/*! elementor-behaviors/inner-tabs */ "../assets/dev/js/editor/elements/views/behaviors/inner-tabs.js")
    }
  },
  triggers: {
    'click @ui.removeButton': 'click:remove',
    'click @ui.duplicateButton': 'click:duplicate',
    'click @ui.itemTitle': 'click:edit'
  },
  modelEvents: {
    change: 'onModelChange'
  },
  templateHelpers: function templateHelpers() {
    return {
      itemIndex: this.getOption('itemIndex'),
      itemActions: this.getOption('itemActions')
    };
  },
  childViewContainer: '.elementor-repeater-row-controls',
  getChildView: function getChildView(item) {
    var controlType = item.get('type');
    return elementor.getControlView(controlType);
  },
  getChildControlView: function getChildControlView(name) {
    return this.getControlViewByModel(this.getControlModel(name));
  },
  getControlViewByModel: function getControlViewByModel(model) {
    return this.children.findByModelCid(model.cid);
  },
  getControlModel: function getControlModel(name) {
    return this.collection.findWhere({
      name: name
    });
  },
  childViewOptions: function childViewOptions() {
    return {
      container: this.options.container
    };
  },
  updateIndex: function updateIndex(newIndex) {
    this.itemIndex = newIndex;
  },
  setTitle: function setTitle() {
    var titleField = this.getOption('titleField');
    var title = '';
    if (titleField) {
      title = Marionette.TemplateCache.prototype.compileTemplate(titleField)(this.model.parseDynamicSettings());
    }
    if (!title) {
      /* Translators: %s: Item Index (number). */
      title = sprintf(__('Item #%s', 'elementor'), this.getOption('itemIndex'));
    }
    this.ui.itemTitle.html(title);
  },
  toggleSort: function toggleSort(enable) {
    this.$el.toggleClass('elementor-repeater-row--disable-sort', !enable);
  },
  initialize: function initialize(options) {
    this.itemIndex = 0;

    // Collection for Controls list
    this.collection = new Backbone.Collection(_.values(elementor.mergeControlsSettings(options.controlFields)));
  },
  onRender: function onRender() {
    this.setTitle();
    _controlsStack.default.handlePopovers(this);
  },
  onModelChange: function onModelChange() {
    if (this.getOption('titleField')) {
      this.setTitle();
    }
  },
  onChildviewResponsiveSwitcherClick: function onChildviewResponsiveSwitcherClick(childView, device) {
    if ('desktop' === device) {
      elementor.getPanelView().getCurrentPageView().$el.toggleClass('elementor-responsive-switchers-open');
    }
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/controls/repeater.js":
/*!****************************************************!*\
  !*** ../assets/dev/js/editor/controls/repeater.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"),
  RepeaterRowView = __webpack_require__(/*! elementor-controls/repeater-row */ "../assets/dev/js/editor/controls/repeater-row.js"),
  ControlRepeaterItemView;
ControlRepeaterItemView = ControlBaseDataView.extend({
  ui: {
    btnAddRow: '.elementor-repeater-add',
    fieldContainer: '.elementor-repeater-fields-wrapper'
  },
  events: function events() {
    return {
      'click @ui.btnAddRow': 'onButtonAddRowClick',
      'sortstart @ui.fieldContainer': 'onSortStart',
      'sortupdate @ui.fieldContainer': 'onSortUpdate',
      'sortstop @ui.fieldContainer': 'onSortStop'
    };
  },
  childView: RepeaterRowView,
  childViewContainer: '.elementor-repeater-fields-wrapper',
  templateHelpers: function templateHelpers() {
    return {
      itemActions: this.model.get('item_actions'),
      data: _.extend({}, this.model.toJSON(), {
        controlValue: []
      })
    };
  },
  childViewOptions: function childViewOptions(rowModel, index) {
    var elementContainer = this.getOption('container');
    return {
      container: elementContainer.repeaters[this.model.get('name')].children[index],
      controlFields: this.model.get('fields'),
      titleField: this.model.get('title_field'),
      itemActions: this.model.get('item_actions')
    };
  },
  createItemModel: function createItemModel(attrs, options, controlView) {
    options.controls = controlView.model.get('fields');
    return new elementorModules.editor.elements.models.BaseSettings(attrs, options);
  },
  fillCollection: function fillCollection() {
    // TODO: elementSettingsModel is deprecated since 2.8.0.
    var settings = this.container ? this.container.settings : this.elementSettingsModel;
    var controlName = this.model.get('name');
    this.collection = settings.get(controlName);

    // Hack for history redo/undo
    if (!(this.collection instanceof Backbone.Collection)) {
      this.collection = new Backbone.Collection(this.collection, {
        // Use `partial` to supply the `this` as an argument, but not as context
        // the `_` is a place holder for original arguments: `attrs` & `options`
        model: _.partial(this.createItemModel, _, _, this)
      });

      // Set the value silent
      settings.set(controlName, this.collection, {
        silent: true
      });
    }
  },
  initialize: function initialize() {
    ControlBaseDataView.prototype.initialize.apply(this, arguments);
    this.fillCollection();
    this.listenTo(this.collection, 'reset', this.resetContainer.bind(this));
    this.listenTo(this.collection, 'add', this.updateContainer.bind(this));
  },
  editRow: function editRow(rowView) {
    if (this.currentEditableChild) {
      var currentEditable = this.currentEditableChild.getChildViewContainer(this.currentEditableChild);
      currentEditable.removeClass('editable');

      // If the repeater contains TinyMCE editors, fire the `hide` trigger to hide floated toolbars
      currentEditable.find('.elementor-wp-editor').each(function () {
        tinymce.get(this.id).fire('hide');
      });
    }
    if (this.currentEditableChild === rowView) {
      delete this.currentEditableChild;
      return;
    }
    rowView.getChildViewContainer(rowView).addClass('editable');
    this.currentEditableChild = rowView;
    this.updateActiveRow();
  },
  toggleClasses: function toggleClasses() {
    this.toggleMinRowsClass();
    this.toggleMaxRowsClass();
  },
  toggleMaxRowsClass: function toggleMaxRowsClass() {
    var maxItems = this.model.get('max_items');
    if (!maxItems || !Number.isInteger(maxItems)) {
      return;
    }
    this.$el.toggleClass('elementor-repeater-has-maximum-rows', maxItems <= this.collection.length);
  },
  getMinItems: function getMinItems() {
    var minItems = 0;
    if (this.model.get('min_items') && Number.isInteger(this.model.get('min_items'))) {
      minItems = this.model.get('min_items');
    } else if (this.model.get('prevent_empty')) {
      minItems = 1;
    }
    return minItems;
  },
  toggleMinRowsClass: function toggleMinRowsClass() {
    var minItems = this.getMinItems();
    if (!minItems) {
      return;
    }
    this.$el.toggleClass('elementor-repeater-has-minimum-rows', minItems >= this.collection.length);
  },
  updateActiveRow: function updateActiveRow() {
    var activeItemIndex = 1;
    if (this.currentEditableChild) {
      activeItemIndex = this.currentEditableChild.itemIndex;
    }
    this.setEditSetting('activeItemIndex', activeItemIndex);
  },
  updateChildIndexes: function updateChildIndexes() {
    var collection = this.collection;
    this.children.each(function (view) {
      view.updateIndex(collection.indexOf(view.model) + 1);
      view.setTitle();
    });
  },
  getSortableParams: function getSortableParams() {
    return {
      axis: 'y',
      handle: '.elementor-repeater-row-tools',
      items: ' > :not(.elementor-repeater-row--disable-sort)',
      cancel: '' // Elements that do not allow sorting (by default it includes buttons).
    };
  },
  onRender: function onRender() {
    ControlBaseDataView.prototype.onRender.apply(this, arguments);
    if (this.model.get('item_actions').sort) {
      this.ui.fieldContainer.sortable(this.getSortableParams());
    }
    this.toggleClasses();
  },
  onSortStart: function onSortStart(event, ui) {
    ui.item.data('oldIndex', ui.item.index());
  },
  onSortStop: function onSortStop(event, ui) {
    // Reload TinyMCE editors (if exist), it's a bug that TinyMCE content is missing after stop dragging
    var self = this,
      sortedIndex = ui.item.index();
    if (-1 === sortedIndex) {
      return;
    }
    var sortedRowView = self.children.findByIndex(ui.item.index()),
      rowControls = sortedRowView.children._views;
    jQuery.each(rowControls, function () {
      if ('wysiwyg' === this.model.get('type')) {
        sortedRowView.render();
        delete self.currentEditableChild;
        return false;
      }
    });
  },
  onSortUpdate: function onSortUpdate(event, ui) {
    var oldIndex = ui.item.data('oldIndex'),
      newIndex = ui.item.index();
    $e.run('document/repeater/move', {
      container: this.options.container,
      name: this.model.get('name'),
      sourceIndex: oldIndex,
      targetIndex: newIndex
    });
  },
  onAddChild: function onAddChild() {
    this.updateChildIndexes();
    this.updateActiveRow();
    this.toggleClasses();
  },
  /**
   * Update container to ensure that new child elements appear in container children.
   *
   * @param {*} model - Container model.
   */
  updateContainer: function updateContainer(model) {
    var container = this.options.container.repeaters[this.model.get('name')],
      isInChildren = container.children.filter(function (child) {
        return child.id === model.get('_id');
      });
    if (!isInChildren.length) {
      elementorDevTools.deprecation.deprecated('Don\'t add models directly to the repeater.', '3.0.0', '$e.run( \'document/repeater/insert\' )');
      this.options.container.addRepeaterItem(this.model.get('name'), model, model.collection.indexOf(model));
    }
  },
  /**
   * Reset container to ensure that container children are reset on collection reset.
   *
   * @deprecated since 3.0.0, use `$e.run( 'document/repeater/remove' )` instead.
   */
  resetContainer: function resetContainer() {
    elementorDevTools.deprecation.deprecated('Don\'t reset repeater collection directly.', '3.0.0', '$e.run( \'document/repeater/remove\' )');
    this.options.container.repeaters[this.model.get('name')].children = [];
  },
  getDefaults: function getDefaults() {
    var defaults = {};

    // Get default fields.
    _.each(this.model.get('fields'), function (field) {
      defaults[field.name] = field.default;
    });
    return defaults;
  },
  getChildControlView: function getChildControlView(id) {
    return this.getControlViewByModel(this.getControlModel(id));
  },
  getControlViewByModel: function getControlViewByModel(model) {
    return this.children.findByModelCid(model.cid);
  },
  getControlModel: function getControlModel(_id) {
    return this.collection.findWhere({
      _id: _id
    });
  },
  onButtonAddRowClick: function onButtonAddRowClick() {
    var newModel = $e.run('document/repeater/insert', {
      container: this.options.container,
      name: this.model.get('name'),
      model: this.getDefaults()
    });
    var newChild = this.children.findByModel(newModel);
    this.editRow(newChild);
    this.toggleClasses();
  },
  onChildviewClickRemove: function onChildviewClickRemove(childView) {
    if (childView === this.currentEditableChild) {
      delete this.currentEditableChild;
    }
    $e.run('document/repeater/remove', {
      container: this.options.container,
      name: this.model.get('name'),
      index: childView._index
    });
    this.updateActiveRow();
    this.updateChildIndexes();
    this.toggleClasses();
  },
  onChildviewClickDuplicate: function onChildviewClickDuplicate(childView) {
    $e.run('document/repeater/duplicate', {
      container: this.options.container,
      name: this.model.get('name'),
      index: childView._index
    });
    this.toggleClasses();
  },
  onChildviewClickEdit: function onChildviewClickEdit(childView) {
    this.editRow(childView);
  },
  onAfterExternalChange: function onAfterExternalChange() {
    // Update the collection with current value
    this.fillCollection();
    ControlBaseDataView.prototype.onAfterExternalChange.apply(this, arguments);
  }
});
module.exports = ControlRepeaterItemView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/section.js":
/*!***************************************************!*\
  !*** ../assets/dev/js/editor/controls/section.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var ControlBaseView = __webpack_require__(/*! elementor-controls/base */ "../assets/dev/js/editor/controls/base.js"),
  ControlSectionItemView;
ControlSectionItemView = ControlBaseView.extend({
  ui: function ui() {
    var ui = ControlBaseView.prototype.ui.apply(this, arguments);
    ui.heading = '.elementor-panel-heading';
    return ui;
  },
  triggers: {
    click: 'control:section:clicked'
  }
});
module.exports = ControlSectionItemView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/select.js":
/*!**************************************************!*\
  !*** ../assets/dev/js/editor/controls/select.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"),
  ControlSelectItemView;
ControlSelectItemView = ControlBaseDataView.extend({
  updatePlaceholder: function updatePlaceholder() {
    var select = this.ui.select;
    if (!select) {
      return;
    }
    var selected = select.find('option:selected');

    // When option with an empty value ('') selected, and it's not the placeholder option,
    // set the selected option to the placeholder.
    if ('' === selected.val() && !selected.hasClass('e-option-placeholder')) {
      selected = select.find('.e-option-placeholder');
      selected.prop('selected', true);
    }
    if (selected.hasClass('e-option-placeholder')) {
      select.addClass('e-select-placeholder');
    } else {
      select.removeClass('e-select-placeholder');
    }
  },
  onReady: function onReady() {
    var placeholder = this.getControlPlaceholder();
    if (placeholder) {
      jQuery('<option>').val('').text(this.model.get('options')[placeholder]).addClass('e-option-placeholder').prependTo(this.ui.select);
    }
    this.updatePlaceholder();
  },
  onInputChange: function onInputChange() {
    this.updatePlaceholder();
  }
}, {
  onPasteStyle: function onPasteStyle(control, clipboardValue) {
    if (control.groups) {
      return control.groups.some(function (group) {
        return ControlSelectItemView.onPasteStyle(group, clipboardValue);
      });
    }
    return undefined !== control.options[clipboardValue];
  }
});
module.exports = ControlSelectItemView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/select2.js":
/*!***************************************************!*\
  !*** ../assets/dev/js/editor/controls/select2.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 _select = _interopRequireDefault(__webpack_require__(/*! elementor-editor-utils/select2.js */ "../assets/dev/js/editor/utils/select2.js"));
var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"),
  ControlSelect2ItemView;
ControlSelect2ItemView = ControlBaseDataView.extend({
  getSelect2Placeholder: function getSelect2Placeholder() {
    return this.ui.select.find("[value=\"".concat(this.getControlPlaceholder(), "\"]")).text() || this.ui.select.children('option:first[value=""]').text();
  },
  getSelect2DefaultOptions: function getSelect2DefaultOptions() {
    var defaultOptions = {
        allowClear: true,
        placeholder: this.getSelect2Placeholder(),
        dir: elementorCommon.config.isRTL ? 'rtl' : 'ltr'
      },
      lockedOptions = this.model.get('lockedOptions');

    // If any non-deletable options are passed, remove the 'x' element from the template for selected items.
    if (lockedOptions) {
      defaultOptions.templateSelection = function (data, container) {
        if (lockedOptions.includes(data.id)) {
          jQuery(container).addClass('e-non-deletable').find('.select2-selection__choice__remove').remove();
        }
        return data.text;
      };
    }
    return defaultOptions;
  },
  getSelect2Options: function getSelect2Options() {
    return jQuery.extend(this.getSelect2DefaultOptions(), this.model.get('select2options'));
  },
  updatePlaceholder: function updatePlaceholder() {
    if (this.getControlPlaceholder()) {
      this.select2Instance.elements.$container.find('.select2-selection__placeholder').addClass('e-select2-placeholder');
    }
  },
  applySavedValue: function applySavedValue() {
    ControlBaseDataView.prototype.applySavedValue.apply(this, arguments);
    var elementSelect2Data = this.ui.select.data('select2');

    // Checking if the element itself was initiated with select2 functionality in case of multiple renders.
    if (!elementSelect2Data) {
      this.select2Instance = new _select.default({
        $element: this.ui.select,
        options: this.getSelect2Options()
      });
      this.updatePlaceholder();
      this.handleLockedOptions();
    } else {
      this.ui.select.trigger('change');
    }
  },
  handleLockedOptions: function handleLockedOptions() {
    var lockedOptions = this.model.get('lockedOptions');
    if (lockedOptions) {
      this.ui.select.on('select2:unselecting', function (event) {
        if (lockedOptions.includes(event.params.args.data.id)) {
          event.preventDefault();
        }
      });
    }
  },
  /**
   * @deprecated since 3.0.0
   */
  onReady: function onReady() {
    elementorDevTools.deprecation.deprecated('onReady()', '3.0.0');
  },
  /**
   * Get Input Value
   *
   * This method is an override of the base method. It is needed because when clearing the Select2 value in single
   * value mode, the library sets that value to `null`, and an empty string is the system's default empty value.
   *
   * @param {*} input current control input
   * @return {*} potentially modified input value
   */
  getInputValue: function getInputValue(input) {
    var _ControlBaseDataView$;
    // eslint-disable-line no-unused-vars
    return (_ControlBaseDataView$ = ControlBaseDataView.prototype.getInputValue.apply(this, arguments)) !== null && _ControlBaseDataView$ !== void 0 ? _ControlBaseDataView$ : '';
  },
  onBaseInputChange: function onBaseInputChange() {
    ControlBaseDataView.prototype.onBaseInputChange.apply(this, arguments);
    this.updatePlaceholder();
  },
  onBeforeDestroy: function onBeforeDestroy() {
    // We always destroy the select2 instance because there are cases where the DOM element's data cache
    // itself has been destroyed but the select2 instance on it still exists
    this.select2Instance.destroy();
    this.$el.remove();
  }
});
module.exports = ControlSelect2ItemView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/slider.js":
/*!**************************************************!*\
  !*** ../assets/dev/js/editor/controls/slider.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var _helpers = __webpack_require__(/*! elementor-editor-utils/helpers */ "../assets/dev/js/editor/utils/helpers.js");
var ControlBaseUnitsItemView = __webpack_require__(/*! elementor-controls/base-units */ "../assets/dev/js/editor/controls/base-units.js"),
  ControlSliderItemView;
ControlSliderItemView = ControlBaseUnitsItemView.extend({
  ui: function ui() {
    var ui = ControlBaseUnitsItemView.prototype.ui.apply(this, arguments);
    ui.slider = '.elementor-slider';
    return ui;
  },
  templateHelpers: function templateHelpers() {
    var templateHelpers = ControlBaseUnitsItemView.prototype.templateHelpers.apply(this, arguments);
    templateHelpers.isMultiple = this.isMultiple();
    return templateHelpers;
  },
  isMultiple: function isMultiple() {
    var sizes = this.getControlValue('sizes');
    return !jQuery.isEmptyObject(sizes);
  },
  initSlider: function initSlider() {
    // Slider does not exist in tests.
    if (!this.ui.slider[0]) {
      return;
    }
    if (this.isCustomUnit()) {
      return;
    }
    this.destroySlider();
    var isMultiple = this.isMultiple(),
      unitRange = elementorCommon.helpers.cloneObject(this.getCurrentRange()),
      step = unitRange.step;
    var sizes = this.getSize();
    if (isMultiple) {
      sizes = Object.values(sizes);
    } else {
      sizes = [sizes];

      // Make sure the value is a number, because the slider can't handle strings.
      sizes[0] = parseFloat(sizes[0]) || 0;
      this.ui.input.attr(unitRange);
    }
    delete unitRange.step;
    var tooltips;
    var self = this;
    if (isMultiple) {
      tooltips = [];
      sizes.forEach(function () {
        return tooltips.push({
          to: function to(value) {
            return value + self.getControlValue('unit');
          }
        });
      });
    }
    var sliderInstance = noUiSlider.create(this.ui.slider[0], {
      start: sizes,
      range: unitRange,
      step: step,
      tooltips: tooltips,
      connect: isMultiple,
      format: {
        to: function to(value) {
          return Math.round(value * 1000) / 1000;
        },
        from: function from(value) {
          return +value;
        }
      }
    });
    sliderInstance.on('slide', this.onSlideChange.bind(this));
  },
  applySavedValue: function applySavedValue() {
    ControlBaseUnitsItemView.prototype.applySavedValue.apply(this, arguments);
    // Slider does not exist in tests.
    if (this.isSliderInitialized()) {
      this.ui.slider[0].noUiSlider.set(this.getSize());
    }
  },
  isSliderInitialized: function isSliderInitialized() {
    return this.ui.slider[0] && this.ui.slider[0].noUiSlider;
  },
  getSize: function getSize() {
    var _this$getControlPlace, _this$model$get;
    var property = this.isMultiple() ? 'sizes' : 'size',
      value = this.getControlValue(property);
    return value || ((_this$getControlPlace = this.getControlPlaceholder()) === null || _this$getControlPlace === void 0 ? void 0 : _this$getControlPlace[property]) || ((_this$model$get = this.model.get('default')) === null || _this$model$get === void 0 ? void 0 : _this$model$get[property]);
  },
  resetSize: function resetSize() {
    if (this.isMultiple()) {
      this.setValue('sizes', {});
    } else {
      this.setValue('size', '');
    }
    this.initSlider();
  },
  destroySlider: function destroySlider() {
    // Slider does not exist in tests.
    if (this.ui.slider[0] && this.ui.slider[0].noUiSlider) {
      this.ui.slider[0].noUiSlider.destroy();
    }
  },
  onReady: function onReady() {
    if (this.isMultiple()) {
      this.$el.addClass('elementor-control-type-slider--multiple elementor-control-type-slider--handles-' + this.model.get('handles'));
    }
    this.initSlider();
  },
  onSlideChange: function onSlideChange(values, index) {
    if (this.isMultiple()) {
      var sizes = elementorCommon.helpers.cloneObject(this.getSize()),
        key = Object.keys(sizes)[index];
      sizes[key] = values[index];
      this.setValue('sizes', sizes);
    } else {
      this.setValue('size', values[0]);
      this.ui.input.val(values[0]);
    }
  },
  onInputChange: function onInputChange(event) {
    var dataChanged = event.currentTarget.dataset.setting;
    if ('size' === dataChanged && this.isSliderInitialized()) {
      this.ui.slider[0].noUiSlider.set(this.getSize());
    } else if ('unit' === dataChanged) {
      this.handleUnitChange();
    }
  },
  handleUnitChange: function handleUnitChange() {
    if (!this.isCustomUnit()) {
      this.resetSize();
    }
    this.maybeDoFractionToCustomConversions();
  },
  updateUnitChoices: function updateUnitChoices() {
    ControlBaseUnitsItemView.prototype.updateUnitChoices.apply(this, arguments);
    var inputType = 'number';
    if (this.isCustomUnit()) {
      inputType = 'text';
      this.destroySlider();
    } else {
      this.initSlider();
    }
    if (!this.isMultiple()) {
      this.ui.input.attr('type', inputType);
    }
  },
  maybeDoFractionToCustomConversions: function maybeDoFractionToCustomConversions() {
    var _this$getControlPlace2, _this$model$get2;
    if (this.isMultiple()) {
      return;
    }

    /*
    We want our code to run only when the user switched from 'fr' to 'custom'.
    But currently we do not have the previous state, so we won't know the user was previously on 'fr'.
    So we make the assumption that if the control only has two units ('fr' and 'custom'), and we
    are switching to custom now, then we can run our conversion logic.
    In future, we might want to investigate a way to build some kind of 'previous state cache' to know
    where we switched from.
    */
    var sizeUnits = this.model.get('size_units'),
      isFrToCustom = 2 === (sizeUnits === null || sizeUnits === void 0 ? void 0 : sizeUnits.length) && sizeUnits.includes('fr') && sizeUnits.includes('custom');
    if (!isFrToCustom) {
      return;
    }
    var currentSize = this.getSize(),
      alreadyConverted = 'string' === typeof currentSize && currentSize.includes('fr');
    if (alreadyConverted) {
      return;
    }
    var sizeValue = this.isCustomUnit() ? (0, _helpers.convertSizeToFrString)(currentSize) : ((_this$getControlPlace2 = this.getControlPlaceholder()) === null || _this$getControlPlace2 === void 0 ? void 0 : _this$getControlPlace2.size) || ((_this$model$get2 = this.model.get('default')) === null || _this$model$get2 === void 0 ? void 0 : _this$model$get2.size);
    this.setValue('size', sizeValue);
    this.render();
  },
  onBeforeDestroy: function onBeforeDestroy() {
    this.destroySlider();
    this.$el.remove();
  },
  onDeviceModeChange: function onDeviceModeChange() {
    var _this = this;
    var currentDeviceMode = elementor.channels.deviceMode.request('currentMode'),
      isMobile = 'mobile' === currentDeviceMode,
      isMobileValue = this.model.get('name').includes('_mobile'),
      hasDefault = this.model.get('default'),
      shouldRunConversion = isMobile && isMobileValue && hasDefault && this.isCustomUnit();
    if (shouldRunConversion) {
      setTimeout(function () {
        _this.maybeDoFractionToCustomConversions();
      });
    }
  }
});
module.exports = ControlSliderItemView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/structure.js":
/*!*****************************************************!*\
  !*** ../assets/dev/js/editor/controls/structure.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"),
  ControlStructureItemView;
ControlStructureItemView = ControlBaseDataView.extend({
  ui: function ui() {
    var ui = ControlBaseDataView.prototype.ui.apply(this, arguments);
    ui.resetStructure = '.elementor-control-structure-reset';
    return ui;
  },
  events: function events() {
    return _.extend(ControlBaseDataView.prototype.events.apply(this, arguments), {
      'click @ui.resetStructure': 'onResetStructureClick'
    });
  },
  templateHelpers: function templateHelpers() {
    var helpers = ControlBaseDataView.prototype.templateHelpers.apply(this, arguments);
    helpers.getMorePresets = this.getMorePresets.bind(this);
    return helpers;
  },
  getCurrentEditedSection: function getCurrentEditedSection() {
    var editor = elementor.getPanelView().getCurrentPageView();
    return editor.getOption('editedElementView');
  },
  getMorePresets: function getMorePresets() {
    var parsedStructure = elementor.presetsFactory.getParsedStructure(this.getControlValue());
    return elementor.presetsFactory.getPresets(parsedStructure.columnsCount);
  },
  onResetStructureClick: function onResetStructureClick() {
    this.getCurrentEditedSection().resetColumnsCustomSize();
  }
});
module.exports = ControlStructureItemView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/switcher.js":
/*!****************************************************!*\
  !*** ../assets/dev/js/editor/controls/switcher.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js");
module.exports = ControlBaseDataView.extend({
  setInputValue: function setInputValue(input, value) {
    this.$(input).prop('checked', this.model.get('return_value') === value);
  }
}, {
  onPasteStyle: function onPasteStyle(control, clipboardValue) {
    return !clipboardValue || clipboardValue === control.return_value;
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/controls/tab.js":
/*!***********************************************!*\
  !*** ../assets/dev/js/editor/controls/tab.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var ControlBaseView = __webpack_require__(/*! elementor-controls/base */ "../assets/dev/js/editor/controls/base.js"),
  ControlTabItemView;
ControlTabItemView = ControlBaseView.extend({
  triggers: {
    click: {
      event: 'control:tab:clicked',
      stopPropagation: false
    }
  }
});
module.exports = ControlTabItemView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/url.js":
/*!***********************************************!*\
  !*** ../assets/dev/js/editor/controls/url.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 _readOnlyError2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/readOnlyError */ "../node_modules/@babel/runtime/helpers/readOnlyError.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var BaseMultiple = __webpack_require__(/*! elementor-controls/base-multiple */ "../assets/dev/js/editor/controls/base-multiple.js");
var URL = /*#__PURE__*/function (_BaseMultiple) {
  function URL() {
    (0, _classCallCheck2.default)(this, URL);
    return _callSuper(this, URL, arguments);
  }
  (0, _inherits2.default)(URL, _BaseMultiple);
  return (0, _createClass2.default)(URL, [{
    key: "ui",
    value: function ui() {
      var ui = _superPropGet(URL, "ui", this, 3)([]);
      ui.mainInput = '.elementor-input';
      ui.moreOptionsToggle = '.elementor-control-url-more';
      ui.moreOptions = '.elementor-control-url-more-options';
      return ui;
    }
  }, {
    key: "events",
    value: function events() {
      var events = _superPropGet(URL, "events", this, 3)([]);
      events['click @ui.moreOptionsToggle'] = 'onMoreOptionsToggleClick';
      return events;
    }
  }, {
    key: "autoComplete",
    value: function autoComplete() {
      var _this = this;
      var $mainInput = this.ui.mainInput,
        positionBase = elementorCommon.config.isRTL ? 'right' : 'left';
      var last, cache;

      // Based on /wp-includes/js/tinymce/plugins/wplink/plugin.js.
      $mainInput.autocomplete({
        source: function source(request, response) {
          if (!_this.options.model.attributes.autocomplete) {
            return;
          }
          if (last === request.term) {
            response(cache);
            return;
          }
          if (/^https?:/.test(request.term) || request.term.indexOf('.') !== -1) {
            return response();
          }

          // Show Spinner.
          $mainInput.prev().show();
          jQuery.post(window.ajaxurl, {
            editor: 'elementor',
            action: 'wp-link-ajax',
            page: 1,
            search: request.term,
            _ajax_linking_nonce: jQuery('#_ajax_linking_nonce').val()
          }, function (data) {
            cache = data;
            response(data);
          }, 'json').always(function () {
            return $mainInput.prev().hide();
          });
          last = request.term;
        },
        focus: function focus(event) {
          /*
           * Don't empty the URL input field, when using the arrow keys to
           * highlight items. See api.jqueryui.com/autocomplete/#event-focus
           */
          event.preventDefault();
        },
        select: function select(event, ui) {
          $mainInput.val(ui.item.permalink);
          _this.setValue('url', ui.item.permalink);
          return false;
        },
        open: function open(event) {
          jQuery(event.target).data('uiAutocomplete').menu.activeMenu.addClass('elementor-autocomplete-menu');
        },
        minLength: 2,
        position: {
          my: positionBase + ' top+2',
          at: positionBase + ' bottom'
        }
      });

      // The `_renderItem` cannot be override via the arguments.
      $mainInput.autocomplete('instance')._renderItem = function (ul, item) {
        var fallbackTitle = window.wpLinkL10n ? window.wpLinkL10n.noTitle : '',
          title = item.title ? item.title : fallbackTitle;
        return jQuery('<li role="option" id="mce-wp-autocomplete-' + item.ID + '">').append('<span>' + title + '</span>&nbsp;<span class="elementor-autocomplete-item-info">' + item.info + '</span>').appendTo(ul);
      };
    }
  }, {
    key: "onReady",
    value: function onReady() {
      this.autoComplete();
    }
  }, {
    key: "onMoreOptionsToggleClick",
    value: function onMoreOptionsToggleClick() {
      this.ui.moreOptions.slideToggle();
    }
  }, {
    key: "onBeforeDestroy",
    value: function onBeforeDestroy() {
      if (this.ui.mainInput.data('autocomplete')) {
        this.ui.mainInput.autocomplete('destroy');
      }
      this.$el.remove();
    }
  }]);
}(BaseMultiple);
module.exports = URL;

/***/ }),

/***/ "../assets/dev/js/editor/controls/visual-choice.js":
/*!*********************************************************!*\
  !*** ../assets/dev/js/editor/controls/visual-choice.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"),
  ControlVisualChoiceItemView;
ControlVisualChoiceItemView = ControlBaseDataView.extend({
  ui: function ui() {
    var ui = ControlBaseDataView.prototype.ui.apply(this, arguments);
    ui.inputs = '[type="radio"]';
    return ui;
  },
  events: function events() {
    return _.extend(ControlBaseDataView.prototype.events.apply(this, arguments), {
      'mousedown label': 'onMouseDownLabel',
      'click @ui.inputs': 'onClickInput',
      'change @ui.inputs': 'onBaseInputChange'
    });
  },
  updatePlaceholder: function updatePlaceholder() {
    var placeholder = this.getControlPlaceholder();
    if (!this.getControlValue() && placeholder) {
      // Find the input which has value equals to the placeholder (which is the parent's value),
      // and add it a placeholder class, to indicate which value is selected in the parent.
      this.ui.inputs.filter("[value=\"".concat(this.getControlPlaceholder(), "\"]")).addClass('e-visual-choice-placeholder');
    } else {
      this.ui.inputs.removeClass('e-visual-choice-placeholder');
    }
  },
  onReady: function onReady() {
    this.updatePlaceholder();
  },
  applySavedValue: function applySavedValue() {
    var currentValue = this.getControlValue();
    if (currentValue) {
      this.ui.inputs.filter('[value="' + currentValue + '"]').prop('checked', true);
    } else {
      this.ui.inputs.filter(':checked').prop('checked', false);
    }
  },
  onMouseDownLabel: function onMouseDownLabel(event) {
    var $clickedLabel = this.$(event.currentTarget),
      $selectedInput = this.$('#' + $clickedLabel.attr('for'));
    $selectedInput.data('checked', $selectedInput.prop('checked'));
  },
  onClickInput: function onClickInput(event) {
    if (!this.model.get('toggle')) {
      return;
    }
    var $selectedInput = this.$(event.currentTarget);
    if ($selectedInput.data('checked')) {
      $selectedInput.prop('checked', false).trigger('change');
    }
  },
  onBaseInputChange: function onBaseInputChange() {
    ControlBaseDataView.prototype.onBaseInputChange.apply(this, arguments);
    this.updatePlaceholder();
  }
}, {
  onPasteStyle: function onPasteStyle(control, clipboardValue) {
    return '' === clipboardValue || undefined !== control.options[clipboardValue];
  }
});
module.exports = ControlVisualChoiceItemView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/wp_widget.js":
/*!*****************************************************!*\
  !*** ../assets/dev/js/editor/controls/wp_widget.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"),
  ControlWPWidgetItemView;
ControlWPWidgetItemView = ControlBaseDataView.extend({
  ui: function ui() {
    var ui = ControlBaseDataView.prototype.ui.apply(this, arguments);
    ui.form = 'form';
    ui.loading = '.wp-widget-form-loading';
    return ui;
  },
  events: function events() {
    return {
      'keyup @ui.form :input': 'onFormChanged',
      'change @ui.form :input': 'onFormChanged'
    };
  },
  onFormChanged: function onFormChanged() {
    var idBase = 'widget-' + this.model.get('id_base'),
      settings = this.ui.form.elementorSerializeObject()[idBase].REPLACE_TO_ID;
    this.setValue(settings);
  },
  onReady: function onReady() {
    var self = this;
    elementorCommon.ajax.addRequest('editor_get_wp_widget_form', {
      data: {
        // Fake Widget ID
        id: self.model.cid,
        widget_type: self.model.get('widget'),
        data: self.container.settings.toJSON()
      },
      success: function success(data) {
        self.ui.form.html(data);
        // WP >= 4.8
        if (wp.textWidgets) {
          self.ui.form.addClass('open');
          var event = new jQuery.Event('widget-added');
          wp.textWidgets.handleWidgetAdded(event, self.ui.form);
          wp.mediaWidgets.handleWidgetAdded(event, self.ui.form);

          // WP >= 4.9
          if (wp.customHtmlWidgets) {
            wp.customHtmlWidgets.handleWidgetAdded(event, self.ui.form);
          }
        }
        var widgetType = self.model.get('widget');
        elementor.hooks.doAction("panel/widgets/".concat(widgetType, "/controls/wp_widget/loaded"), self);
      }
    });
  }
});
module.exports = ControlWPWidgetItemView;

/***/ }),

/***/ "../assets/dev/js/editor/controls/wysiwyg.js":
/*!***************************************************!*\
  !*** ../assets/dev/js/editor/controls/wysiwyg.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"),
  ControlWysiwygItemView;
ControlWysiwygItemView = ControlBaseDataView.extend({
  editor: null,
  ui: function ui() {
    var ui = ControlBaseDataView.prototype.ui.apply(this, arguments);
    jQuery.extend(ui, {
      inputWrapper: '.elementor-control-input-wrapper'
    });
    return ui;
  },
  events: function events() {
    return _.extend(ControlBaseDataView.prototype.events.apply(this, arguments), {
      'keyup textarea.elementor-wp-editor': 'onBaseInputChange'
    });
  },
  // List of buttons to move {buttonToMove: afterButton}
  buttons: {
    addToBasic: {
      underline: 'italic'
    },
    addToAdvanced: {},
    moveToAdvanced: {
      blockquote: 'removeformat',
      alignleft: 'blockquote',
      aligncenter: 'alignleft',
      alignright: 'aligncenter'
    },
    moveToBasic: {},
    removeFromBasic: ['unlink', 'wp_more'],
    removeFromAdvanced: []
  },
  initialize: function initialize() {
    ControlBaseDataView.prototype.initialize.apply(this, arguments);
    var self = this;
    self.editorID = 'elementorwpeditor' + self.cid;

    // Wait a cycle before initializing the editors.
    _.defer(function () {
      if (self.isDestroyed) {
        return;
      }

      // Initialize QuickTags, and set as the default mode.
      quicktags({
        buttons: 'strong,em,del,link,img,close',
        id: self.editorID
      });
      if (elementor.config.rich_editing_enabled) {
        switchEditors.go(self.editorID, 'tmce');
      }
      delete QTags.instances[0];
    });
    if (!elementor.config.rich_editing_enabled) {
      self.$el.addClass('elementor-rich-editing-disabled');
      return;
    }
    var editorConfig = {
      id: self.editorID,
      selector: '#' + self.editorID,
      setup: function setup(editor) {
        self.editor = editor;
      }
    };
    tinyMCEPreInit.mceInit[self.editorID] = _.extend(_.clone(tinyMCEPreInit.mceInit.elementorwpeditor), editorConfig);
    if (!elementor.config.tinymceHasCustomConfig) {
      self.rearrangeButtons();
    }
  },
  applySavedValue: function applySavedValue() {
    if (!this.editor) {
      return;
    }
    var controlValue = this.getControlValue();
    this.editor.setContent(controlValue);

    // Update also the plain textarea
    jQuery('#' + this.editorID).val(controlValue);
  },
  saveEditor: function saveEditor() {
    this.setValue(this.editor.getContent());
  },
  moveButtons: function moveButtons(buttonsToMove, from, to) {
    if (!to) {
      to = from;
      from = null;
    }
    _.each(buttonsToMove, function (afterButton, button) {
      var afterButtonIndex = to.indexOf(afterButton);
      if (from) {
        var buttonIndex = from.indexOf(button);
        if (-1 === buttonIndex) {
          throw new ReferenceError('Trying to move non-existing button `' + button + '`');
        }
        from.splice(buttonIndex, 1);
      }
      if (-1 === afterButtonIndex) {
        throw new ReferenceError('Trying to move button after non-existing button `' + afterButton + '`');
      }
      to.splice(afterButtonIndex + 1, 0, button);
    });
  },
  rearrangeButtons: function rearrangeButtons() {
    var editorProps = tinyMCEPreInit.mceInit[this.editorID],
      editorBasicToolbarButtons = editorProps.toolbar1.split(','),
      editorAdvancedToolbarButtons = editorProps.toolbar2.split(',');
    editorBasicToolbarButtons = _.difference(editorBasicToolbarButtons, this.buttons.removeFromBasic);
    editorAdvancedToolbarButtons = _.difference(editorAdvancedToolbarButtons, this.buttons.removeFromAdvanced);
    this.moveButtons(this.buttons.moveToBasic, editorAdvancedToolbarButtons, editorBasicToolbarButtons);
    this.moveButtons(this.buttons.moveToAdvanced, editorBasicToolbarButtons, editorAdvancedToolbarButtons);
    this.moveButtons(this.buttons.addToBasic, editorBasicToolbarButtons);
    this.moveButtons(this.buttons.addToAdvanced, editorAdvancedToolbarButtons);
    editorProps.toolbar1 = editorBasicToolbarButtons.join(',');
    editorProps.toolbar2 = editorAdvancedToolbarButtons.join(',');
  },
  onReady: function onReady() {
    var _this = this;
    var $editor = jQuery(elementor.config.wp_editor.replace(/elementorwpeditor/g, this.editorID).replace('%%EDITORCONTENT%%', ''));
    $editor.find('.wp-editor-area').text(this.getControlValue());
    $editor.find(".wp-editor-tabs").addClass('elementor-control-dynamic-switcher-wrapper');
    this.ui.inputWrapper.html($editor);
    setTimeout(function () {
      if (!_this.isDestroyed && _this.editor) {
        _this.editor.on('keyup change undo redo', _this.saveEditor.bind(_this));
      }
    }, 100);
  },
  onBeforeDestroy: function onBeforeDestroy() {
    // Remove TinyMCE and QuickTags instances
    delete QTags.instances[this.editorID];
    if (!elementor.config.rich_editing_enabled) {
      return;
    }
    tinymce.EditorManager.execCommand('mceRemoveEditor', true, this.editorID);

    // Cleanup PreInit data
    delete tinyMCEPreInit.mceInit[this.editorID];
    delete tinyMCEPreInit.qtInit[this.editorID];
  }
});
module.exports = ControlWysiwygItemView;

/***/ }),

/***/ "../assets/dev/js/editor/data/globals/base/create-base.js":
/*!****************************************************************!*\
  !*** ../assets/dev/js/editor/data/globals/base/create-base.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"));
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; })(); }
var CreateBase = exports["default"] = /*#__PURE__*/function (_$e$modules$editor$Co) {
  function CreateBase() {
    (0, _classCallCheck2.default)(this, CreateBase);
    return _callSuper(this, CreateBase, arguments);
  }
  (0, _inherits2.default)(CreateBase, _$e$modules$editor$Co);
  return (0, _createClass2.default)(CreateBase, [{
    key: "validateArgs",
    value: function validateArgs() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      this.requireContainer(args);
      this.requireArgumentType('setting', 'string', args);
      this.requireArgumentType('title', 'string', args);
    }
  }]);
}($e.modules.editor.CommandContainerBase);

/***/ }),

/***/ "../assets/dev/js/editor/data/globals/colors/commands/create.js":
/*!**********************************************************************!*\
  !*** ../assets/dev/js/editor/data/globals/colors/commands/create.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.Create = 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 _createBase = _interopRequireDefault(__webpack_require__(/*! elementor-editor/data/globals/base/create-base */ "../assets/dev/js/editor/data/globals/base/create-base.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; })(); }
var Create = exports.Create = /*#__PURE__*/function (_CreateBase) {
  function Create() {
    (0, _classCallCheck2.default)(this, Create);
    return _callSuper(this, Create, arguments);
  }
  (0, _inherits2.default)(Create, _CreateBase);
  return (0, _createClass2.default)(Create, [{
    key: "apply",
    value: function apply() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var container = args.container,
        setting = args.setting,
        title = args.title,
        controls = container.controls;
      var result = false;
      if (!controls[setting]) {
        throw new Error("Invalid setting: control '".concat(setting, "', not found."));
      }

      // `args.id` used by tests.
      var id = args.id || elementorCommon.helpers.getUniqueId();
      result = $e.data.create("globals/colors?id=".concat(id), {
        title: title,
        value: container.settings.get(setting)
      });
      return result;
    }
  }]);
}(_createBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/data/globals/colors/commands/index.js":
/*!*********************************************************************!*\
  !*** ../assets/dev/js/editor/data/globals/colors/commands/index.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Create", ({
  enumerable: true,
  get: function get() {
    return _create.Create;
  }
}));
var _create = __webpack_require__(/*! ./create */ "../assets/dev/js/editor/data/globals/colors/commands/create.js");

/***/ }),

/***/ "../assets/dev/js/editor/data/globals/colors/component.js":
/*!****************************************************************!*\
  !*** ../assets/dev/js/editor/data/globals/colors/component.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.js"));
var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../assets/dev/js/editor/data/globals/colors/commands/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _ComponentBase);
  return (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'globals/colors';
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/data/globals/commands/data/colors.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/data/globals/commands/data/colors.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"] = exports.Colors = 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"));
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; })(); }
var Colors = exports.Colors = /*#__PURE__*/function (_$e$modules$CommandDa) {
  function Colors() {
    (0, _classCallCheck2.default)(this, Colors);
    return _callSuper(this, Colors, arguments);
  }
  (0, _inherits2.default)(Colors, _$e$modules$CommandDa);
  return (0, _createClass2.default)(Colors, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return 'globals/colors/{id}';
    }
  }]);
}($e.modules.CommandData);
var _default = exports["default"] = Colors;

/***/ }),

/***/ "../assets/dev/js/editor/data/globals/commands/data/index.js":
/*!*******************************************************************!*\
  !*** ../assets/dev/js/editor/data/globals/commands/data/index.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
}));
Object.defineProperty(exports, "Colors", ({
  enumerable: true,
  get: function get() {
    return _colors.Colors;
  }
}));
exports.Index = void 0;
Object.defineProperty(exports, "Typography", ({
  enumerable: true,
  get: function get() {
    return _typography.Typography;
  }
}));
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 _colors = __webpack_require__(/*! ./colors */ "../assets/dev/js/editor/data/globals/commands/data/colors.js");
var _typography = __webpack_require__(/*! ./typography */ "../assets/dev/js/editor/data/globals/commands/data/typography.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; })(); } // Alphabetical order
// TODO: Remove - Move to into base, Possible to handle using ComponentData.
var Index = exports.Index = /*#__PURE__*/function (_$e$modules$CommandDa) {
  function Index() {
    (0, _classCallCheck2.default)(this, Index);
    return _callSuper(this, Index, arguments);
  }
  (0, _inherits2.default)(Index, _$e$modules$CommandDa);
  return (0, _createClass2.default)(Index, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      // Format 'globals/index' to 'globals'.
      return 'globals';
    }
  }]);
}($e.modules.CommandData);

/***/ }),

/***/ "../assets/dev/js/editor/data/globals/commands/data/typography.js":
/*!************************************************************************!*\
  !*** ../assets/dev/js/editor/data/globals/commands/data/typography.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"] = exports.Typography = 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"));
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; })(); }
var Typography = exports.Typography = /*#__PURE__*/function (_$e$modules$CommandDa) {
  function Typography() {
    (0, _classCallCheck2.default)(this, Typography);
    return _callSuper(this, Typography, arguments);
  }
  (0, _inherits2.default)(Typography, _$e$modules$CommandDa);
  return (0, _createClass2.default)(Typography, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return 'globals/typography/{id}';
    }
  }]);
}($e.modules.CommandData);
var _default = exports["default"] = Typography;

/***/ }),

/***/ "../assets/dev/js/editor/data/globals/component.js":
/*!*********************************************************!*\
  !*** ../assets/dev/js/editor/data/globals/component.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.js"));
var _component = _interopRequireDefault(__webpack_require__(/*! ./typography/component */ "../assets/dev/js/editor/data/globals/typography/component.js"));
var _component2 = _interopRequireDefault(__webpack_require__(/*! ./colors/component */ "../assets/dev/js/editor/data/globals/colors/component.js"));
var commandsData = _interopRequireWildcard(__webpack_require__(/*! ./commands/data/ */ "../assets/dev/js/editor/data/globals/commands/data/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _ComponentBase);
  return (0, _createClass2.default)(Component, [{
    key: "__construct",
    value: function __construct() {
      var _this = this;
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      _superPropGet(Component, "__construct", this, 3)([args]);
      elementorCommon.elements.$window.on('elementor:loaded', function () {
        return _this.refreshGlobalData();
      });
    }
  }, {
    key: "getNamespace",
    value: function getNamespace() {
      return 'globals';
    }
  }, {
    key: "registerAPI",
    value: function registerAPI() {
      $e.components.register(new _component.default({
        manager: this
      }));
      $e.components.register(new _component2.default({
        manager: this
      }));
      _superPropGet(Component, "registerAPI", this, 3)([]);
    }
  }, {
    key: "defaultData",
    value: function defaultData() {
      return this.importCommands(commandsData);
    }
  }, {
    key: "refreshGlobalData",
    value: function refreshGlobalData() {
      $e.data.deleteCache($e.components.get('globals'), 'globals/index');
    }
  }, {
    key: "populateGlobalData",
    value: function populateGlobalData() {
      $e.data.get('globals/index');
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/data/globals/typography/commands/create.js":
/*!**************************************************************************!*\
  !*** ../assets/dev/js/editor/data/globals/typography/commands/create.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.Create = void 0;
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 _createBase = _interopRequireDefault(__webpack_require__(/*! elementor-editor/data/globals/base/create-base */ "../assets/dev/js/editor/data/globals/base/create-base.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; })(); }
var Create = exports.Create = /*#__PURE__*/function (_CreateBase) {
  function Create() {
    (0, _classCallCheck2.default)(this, Create);
    return _callSuper(this, Create, arguments);
  }
  (0, _inherits2.default)(Create, _CreateBase);
  return (0, _createClass2.default)(Create, [{
    key: "apply",
    value: function apply() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var container = args.container,
        setting = args.setting,
        title = args.title,
        controls = container.controls,
        availableControls = {};
      var result = false,
        groupPrefix = '';
      if (controls[setting] && controls[setting].groupPrefix) {
        groupPrefix = controls[setting].groupPrefix;
      } else {
        throw new Error("Invalid setting: control '".concat(setting, "', not found."));
      }
      if (groupPrefix) {
        Object.entries(controls).forEach(function (_ref) {
          var _ref2 = (0, _slicedToArray2.default)(_ref, 1),
            key = _ref2[0];
          if (key.includes(groupPrefix)) {
            // Get values but remove defaults.
            var value = container.settings.get(key),
              defaultValue = container.controls[key].default;
            if (!_.isEqual(value, defaultValue)) {
              availableControls[key.replace(groupPrefix, elementor.config.kit_config.typography_prefix)] = container.settings.get(key);
            }
          }
        });
      }
      if (Object.values(availableControls).length) {
        var id = elementorCommon.helpers.getUniqueId();
        result = $e.data.create("globals/typography?id=".concat(id), {
          title: title,
          value: availableControls
        });
      }
      return result;
    }
  }]);
}(_createBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/data/globals/typography/commands/index.js":
/*!*************************************************************************!*\
  !*** ../assets/dev/js/editor/data/globals/typography/commands/index.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Create", ({
  enumerable: true,
  get: function get() {
    return _create.Create;
  }
}));
var _create = __webpack_require__(/*! ./create */ "../assets/dev/js/editor/data/globals/typography/commands/create.js");

/***/ }),

/***/ "../assets/dev/js/editor/data/globals/typography/component.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/data/globals/typography/component.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.js"));
var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../assets/dev/js/editor/data/globals/typography/commands/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _ComponentBase);
  return (0, _createClass2.default)(Component, [{
    key: "__construct",
    value: function __construct() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      _superPropGet(Component, "__construct", this, 3)([args]);
    }
  }, {
    key: "getNamespace",
    value: function getNamespace() {
      return 'globals/typography';
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/document/command-bases/command-disable-enable.js":
/*!********************************************************************************!*\
  !*** ../assets/dev/js/editor/document/command-bases/command-disable-enable.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _commandHistoryBase = _interopRequireDefault(__webpack_require__(/*! ./command-history-base */ "../assets/dev/js/editor/document/command-bases/command-history-base.js"));
var _settings = _interopRequireDefault(__webpack_require__(/*! elementor-document/elements/commands/settings */ "../assets/dev/js/editor/document/elements/commands/settings.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
/**
 * The class serve as base for commands who needs the 'enable/disable' behavior.
 */
var CommandDisableEnable = exports["default"] = /*#__PURE__*/function (_CommandHistoryBase) {
  function CommandDisableEnable() {
    (0, _classCallCheck2.default)(this, CommandDisableEnable);
    return _callSuper(this, CommandDisableEnable, arguments);
  }
  (0, _inherits2.default)(CommandDisableEnable, _CommandHistoryBase);
  return (0, _createClass2.default)(CommandDisableEnable, [{
    key: "initialize",
    value: function initialize(args) {
      /**
       * Which command is running.
       *
       * @type {string}
       */
      this.type = this.command === this.constructor.getEnableCommand() ? 'enable' : 'disable';

      // Override default logic, since getHistory() depends on `this.type`.
      _superPropGet(CommandDisableEnable, "initialize", this, 3)([args]);
    }
  }, {
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
      this.requireArgumentConstructor('settings', Object, args);
    }
  }, {
    key: "getHistory",
    value: function getHistory(args) {
      var settings = args.settings,
        _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers,
        changes = {};
      containers.forEach(function (container) {
        var id = container.id;
        if (!changes[id]) {
          changes[id] = {};
        }
        changes[id] = settings;
      });
      var subTitle = elementor.translate(this.constructor.getName()) + ' ' + _settings.default.getSubTitle(args),
        type = this.type;
      return {
        containers: containers,
        subTitle: subTitle,
        data: {
          changes: changes,
          command: this.command
        },
        type: type,
        restore: this.constructor.restore
      };
    }
  }], [{
    key: "getName",
    value: function getName() {
      elementorModules.ForceMethodImplementation();
    }

    // eslint-disable-next-line jsdoc/require-returns-check
    /**
     * @return {string} Full enable command.
     */
  }, {
    key: "getEnableCommand",
    value: function getEnableCommand() {
      elementorModules.ForceMethodImplementation();
    }

    // eslint-disable-next-line jsdoc/require-returns-check
    /**
     * @return {string} Full disable command.
     */
  }, {
    key: "getDisableCommand",
    value: function getDisableCommand() {
      elementorModules.ForceMethodImplementation();
    }
  }, {
    key: "restore",
    value: function restore(historyItem, isRedo) {
      var data = historyItem.get('data'),
        CommandClass = $e.commands.getCommandClass(data.command);

      // Upon `disable` command toggle `isRedo`.
      if (CommandClass.getDisableCommand() === data.command) {
        isRedo = !isRedo;
      }
      historyItem.get('containers').forEach(function (container) {
        var settings = data.changes[container.id],
          toggle = isRedo ? CommandClass.getEnableCommand() : CommandClass.getDisableCommand();
        $e.run(toggle, {
          container: container,
          settings: settings
        });
        container.panel.refresh();
      });
    }
  }]);
}(_commandHistoryBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/document/command-bases/command-history-base.js":
/*!******************************************************************************!*\
  !*** ../assets/dev/js/editor/document/command-bases/command-history-base.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _commandContainerBase = _interopRequireDefault(__webpack_require__(/*! elementor-editor/command-bases/command-container-base */ "../assets/dev/js/editor/command-bases/command-container-base.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
/**
 * @name $e.modules.editor.document.CommandHistoryBase
 */
var CommandHistoryBase = exports["default"] = /*#__PURE__*/function (_CommandContainerBase) {
  function CommandHistoryBase() {
    (0, _classCallCheck2.default)(this, CommandHistoryBase);
    return _callSuper(this, CommandHistoryBase, arguments);
  }
  (0, _inherits2.default)(CommandHistoryBase, _CommandContainerBase);
  return (0, _createClass2.default)(CommandHistoryBase, [{
    key: "initialize",
    value: function initialize() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var _args$options = args.options,
        options = _args$options === void 0 ? {} : _args$options,
        _options$useHistory = options.useHistory,
        useHistory = _options$useHistory === void 0 ? true : _options$useHistory;
      if (useHistory) {
        /**
         * Get History from child command.
         *
         * @type {{}|boolean}
         */
        this.history = this.getHistory(args);

        /**
         * @type {number|boolean}
         */
        this.historyId = false;
      }
    }

    // eslint-disable-next-line jsdoc/require-returns-check
    /**
     * Function getHistory().
     *
     * Get history object from child, do nothing if it false.
     *
     * @param {*} [args={}]
     *
     * @return {({}|boolean)} history object
     */
  }, {
    key: "getHistory",
    value: function getHistory() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      // eslint-disable-line no-unused-vars
      elementorModules.ForceMethodImplementation();
    }

    /**
     * Function isHistoryActive().
     *
     * Return `elementor.documents.getCurrent().history.getActive()`.
     *
     * @return {boolean} is history active
     */
  }, {
    key: "isHistoryActive",
    value: function isHistoryActive() {
      return elementor.documents.getCurrent().history.getActive();
    }
  }, {
    key: "onBeforeRun",
    value: function onBeforeRun(args) {
      _superPropGet(CommandHistoryBase, "onBeforeRun", this, 3)([args]);
      if (this.history && this.isHistoryActive()) {
        this.historyId = $e.internal('document/history/start-log', this.history);
      }
    }
  }, {
    key: "onAfterRun",
    value: function onAfterRun(args, result) {
      _superPropGet(CommandHistoryBase, "onAfterRun", this, 3)([args, result]);
      if (this.history && this.isHistoryActive()) {
        $e.internal('document/history/end-log', {
          id: this.historyId
        });
      }
    }
  }, {
    key: "onAfterApply",
    value: function onAfterApply() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var result = arguments.length > 1 ? arguments[1] : undefined;
      _superPropGet(CommandHistoryBase, "onAfterApply", this, 3)([args, result]);
      if (this.isDataChanged()) {
        $e.internal('document/save/set-is-modified', {
          status: true
        });
      }
    }
  }, {
    key: "onCatchApply",
    value: function onCatchApply(e) {
      // Rollback history on failure.
      if (e instanceof $e.modules.HookBreak && this.historyId) {
        $e.internal('document/history/delete-log', {
          id: this.historyId
        });
      }
      _superPropGet(CommandHistoryBase, "onCatchApply", this, 3)([e]);
    }
  }, {
    key: "isDataChanged",
    value: function isDataChanged() {
      // All the commands who use history are commands that changing the data.
      return true;
    }
  }], [{
    key: "getInstanceType",
    value: function getInstanceType() {
      return 'CommandHistoryBase';
    }
  }]);
}(_commandContainerBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/document/component.js":
/*!*****************************************************!*\
  !*** ../assets/dev/js/editor/document/component.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.js"));
var components = _interopRequireWildcard(__webpack_require__(/*! ./ */ "../assets/dev/js/editor/document/index.js"));
var hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/ */ "../assets/dev/js/editor/document/hooks/index.js"));
var uiStates = _interopRequireWildcard(__webpack_require__(/*! ./ui-states */ "../assets/dev/js/editor/document/ui-states/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _ComponentBase);
  return (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'document';
    }
  }, {
    key: "registerAPI",
    value: function registerAPI() {
      Object.values(components).forEach(function (ComponentClass) {
        return $e.components.register(new ComponentClass());
      });
      _superPropGet(Component, "registerAPI", this, 3)([]);
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return {
        // Example: ( args ) => ( new Commands.Example( args ).run() ),
      };
    }
  }, {
    key: "defaultHooks",
    value: function defaultHooks() {
      return this.importHooks(hooks);
    }
  }, {
    key: "defaultUiStates",
    value: function defaultUiStates() {
      return this.importUiStates(uiStates);
    }
  }, {
    key: "defaultUtils",
    value: function defaultUtils() {
      var _this = this;
      return {
        findViewRecursive: function findViewRecursive(parent, key, value) {
          var multiple = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
          var found = [];
          for (var x in parent._views) {
            var view = parent._views[x];
            if (value === view.model.get(key)) {
              found.push(view);
              if (!multiple) {
                return found;
              }
            }
            if (view.children) {
              var views = _this.utils.findViewRecursive(view.children, key, value, multiple);
              if (views.length) {
                found = found.concat(views);
                if (!multiple) {
                  return found;
                }
              }
            }
          }
          return found;
        },
        findViewById: function findViewById(id) {
          var elements = _this.utils.findViewRecursive(elementor.getPreviewView().children, 'id', id, false);
          return elements ? elements[0] : false;
        },
        findContainerById: function findContainerById(id) {
          var result = _this.utils.findViewById(id);
          if (result) {
            result = result.getContainer();
          }
          return result;
        },
        findModelById: function findModelById(id) {
          var _collection$models;
          var collection = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : elementor.elementsModel.get('elements');
          var _iterator = _createForOfIteratorHelper((_collection$models = collection === null || collection === void 0 ? void 0 : collection.models) !== null && _collection$models !== void 0 ? _collection$models : []),
            _step;
          try {
            for (_iterator.s(); !(_step = _iterator.n()).done;) {
              var model = _step.value;
              var found = model.get('id') === id ? model : _this.utils.findModelById(id, model.get('elements'));
              if (found) {
                return found;
              }
            }
          } catch (err) {
            _iterator.e(err);
          } finally {
            _iterator.f();
          }
          return null;
        },
        addModelToParent: function addModelToParent(parentId, childData, options) {
          var parentModel = _this.utils.findModelById(parentId);
          if (!parentModel) {
            return false;
          }
          var elements = parentModel.get('elements');
          if (!elements) {
            return false;
          }
          elements.add(childData, {
            at: options === null || options === void 0 ? void 0 : options.at,
            silent: true
          });
          return true;
        },
        removeModelFromParent: function removeModelFromParent(parentId, childId) {
          var parentModel = _this.utils.findModelById(parentId);
          if (!parentModel) {
            return false;
          }
          var elements = parentModel.get('elements');
          if (!elements) {
            return false;
          }
          var child = elements.findWhere({
            id: childId
          });
          if (!child) {
            return false;
          }
          elements.remove(child, {
            silent: true
          });
          return true;
        }
      };
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/document/dynamic/commands/base/disable-enable.js":
/*!********************************************************************************!*\
  !*** ../assets/dev/js/editor/document/dynamic/commands/base/disable-enable.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 _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 _commandDisableEnable = _interopRequireDefault(__webpack_require__(/*! elementor-document/command-bases/command-disable-enable */ "../assets/dev/js/editor/document/command-bases/command-disable-enable.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; })(); }
var DisableEnable = exports["default"] = /*#__PURE__*/function (_CommandDisableEnable) {
  function DisableEnable() {
    (0, _classCallCheck2.default)(this, DisableEnable);
    return _callSuper(this, DisableEnable, arguments);
  }
  (0, _inherits2.default)(DisableEnable, _CommandDisableEnable);
  return (0, _createClass2.default)(DisableEnable, [{
    key: "getTitle",
    value: function getTitle() {
      return __('Dynamic');
    }
  }], [{
    key: "getName",
    value: function getName() {
      return 'Dynamic';
    }
  }, {
    key: "getEnableCommand",
    value: function getEnableCommand() {
      return 'document/dynamic/enable';
    }
  }, {
    key: "getDisableCommand",
    value: function getDisableCommand() {
      return 'document/dynamic/disable';
    }
  }]);
}(_commandDisableEnable.default);

/***/ }),

/***/ "../assets/dev/js/editor/document/dynamic/commands/disable.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/document/dynamic/commands/disable.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"] = exports.Disable = 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 _disableEnable = _interopRequireDefault(__webpack_require__(/*! ./base/disable-enable */ "../assets/dev/js/editor/document/dynamic/commands/base/disable-enable.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; })(); }
var Disable = exports.Disable = /*#__PURE__*/function (_DisableEnable) {
  function Disable() {
    (0, _classCallCheck2.default)(this, Disable);
    return _callSuper(this, Disable, arguments);
  }
  (0, _inherits2.default)(Disable, _DisableEnable);
  return (0, _createClass2.default)(Disable, [{
    key: "apply",
    value: function apply(args) {
      var settings = args.settings,
        _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      containers.forEach(function (container) {
        container = container.lookup();
        Object.keys(settings).forEach(function (setting) {
          container.dynamic.unset(setting);
        });
        $e.internal('document/elements/set-settings', {
          container: container,
          settings: {
            __dynamic__: container.dynamic.toJSON()
          }
        });
      });
    }
  }]);
}(_disableEnable.default);
var _default = exports["default"] = Disable;

/***/ }),

/***/ "../assets/dev/js/editor/document/dynamic/commands/enable.js":
/*!*******************************************************************!*\
  !*** ../assets/dev/js/editor/document/dynamic/commands/enable.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"] = exports.Enable = 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 _disableEnable = _interopRequireDefault(__webpack_require__(/*! ./base/disable-enable */ "../assets/dev/js/editor/document/dynamic/commands/base/disable-enable.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; })(); }
var Enable = exports.Enable = /*#__PURE__*/function (_DisableEnable) {
  function Enable() {
    (0, _classCallCheck2.default)(this, Enable);
    return _callSuper(this, Enable, arguments);
  }
  (0, _inherits2.default)(Enable, _DisableEnable);
  return (0, _createClass2.default)(Enable, [{
    key: "apply",
    value: function apply(args) {
      var settings = args.settings,
        _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      containers.forEach(function (container) {
        container = container.lookup();
        container.dynamic.set(settings);
        $e.internal('document/elements/set-settings', {
          container: container,
          settings: {
            __dynamic__: container.dynamic.toJSON()
          }
        });
      });
    }
  }]);
}(_disableEnable.default);
var _default = exports["default"] = Enable;

/***/ }),

/***/ "../assets/dev/js/editor/document/dynamic/commands/index.js":
/*!******************************************************************!*\
  !*** ../assets/dev/js/editor/document/dynamic/commands/index.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Disable", ({
  enumerable: true,
  get: function get() {
    return _disable.Disable;
  }
}));
Object.defineProperty(exports, "Enable", ({
  enumerable: true,
  get: function get() {
    return _enable.Enable;
  }
}));
Object.defineProperty(exports, "Settings", ({
  enumerable: true,
  get: function get() {
    return _settings.Settings;
  }
}));
var _disable = __webpack_require__(/*! ./disable */ "../assets/dev/js/editor/document/dynamic/commands/disable.js");
var _enable = __webpack_require__(/*! ./enable */ "../assets/dev/js/editor/document/dynamic/commands/enable.js");
var _settings = __webpack_require__(/*! ./settings */ "../assets/dev/js/editor/document/dynamic/commands/settings.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/dynamic/commands/settings.js":
/*!*********************************************************************!*\
  !*** ../assets/dev/js/editor/document/dynamic/commands/settings.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"] = exports.Settings = 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 _settings = _interopRequireDefault(__webpack_require__(/*! elementor-document/elements/commands/settings */ "../assets/dev/js/editor/document/elements/commands/settings.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; })(); }
/**
 * The difference between 'document/elements/settings` and `document/dynamic/settings` is:
 * that `document/elements/settings` apply settings to `container.settings` and `document/dynamic/settings` affect
 * `container.settings.__dynamic__`, also clearing the dynamic if `args.settings` is empty.
 */
var Settings = exports.Settings = /*#__PURE__*/function (_$e$modules$editor$do) {
  function Settings() {
    (0, _classCallCheck2.default)(this, Settings);
    return _callSuper(this, Settings, arguments);
  }
  (0, _inherits2.default)(Settings, _$e$modules$editor$do);
  return (0, _createClass2.default)(Settings, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
      this.requireArgumentConstructor('settings', Object, args);
    }
  }, {
    key: "getHistory",
    value: function getHistory(args) {
      var settings = args.settings,
        _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers,
        changes = {};
      containers.forEach(function (container) {
        var id = container.id;
        if (!changes[id]) {
          changes[id] = {};
        }
        changes[id] = {
          old: container.dynamic.toJSON(),
          new: settings
        };
      });
      var subTitle = _settings.default.getSubTitle(args);
      return {
        containers: containers,
        subTitle: subTitle,
        data: {
          changes: changes
        },
        type: 'change',
        restore: this.constructor.restore
      };
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var settings = args.settings,
        _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2;
      containers.forEach(function (container) {
        container = container.lookup();
        if (!Object.keys(settings).length) {
          container.dynamic.clear();
        } else {
          container.dynamic.set(settings);
        }
        $e.internal('document/elements/set-settings', {
          container: container,
          settings: {
            __dynamic__: container.dynamic.toJSON()
          }
        });
      });
    }
  }], [{
    key: "restore",
    value: function restore(historyItem, isRedo) {
      var data = historyItem.get('data');
      historyItem.get('containers').forEach(function (container) {
        var changes = data.changes[container.id];
        $e.run('document/dynamic/settings', {
          container: container,
          settings: isRedo ? changes.new : changes.old
        });
        container.panel.refresh();
      });
    }
  }]);
}($e.modules.editor.document.CommandHistoryDebounceBase);
var _default = exports["default"] = Settings;

/***/ }),

/***/ "../assets/dev/js/editor/document/dynamic/component.js":
/*!*************************************************************!*\
  !*** ../assets/dev/js/editor/document/dynamic/component.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.js"));
var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../assets/dev/js/editor/document/dynamic/commands/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _ComponentBase);
  return (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'document/dynamic';
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands-internal/index.js":
/*!****************************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands-internal/index.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "SetSettings", ({
  enumerable: true,
  get: function get() {
    return _setSettings.SetSettings;
  }
}));
var _setSettings = __webpack_require__(/*! ./set-settings */ "../assets/dev/js/editor/document/elements/commands-internal/set-settings.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands-internal/set-settings.js":
/*!***********************************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands-internal/set-settings.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"] = exports.SetSettings = 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"));
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; })(); }
var SetSettings = exports.SetSettings = /*#__PURE__*/function (_$e$modules$editor$Co) {
  function SetSettings() {
    (0, _classCallCheck2.default)(this, SetSettings);
    return _callSuper(this, SetSettings, arguments);
  }
  (0, _inherits2.default)(SetSettings, _$e$modules$editor$Co);
  return (0, _createClass2.default)(SetSettings, [{
    key: "validateArgs",
    value: function validateArgs() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      this.requireContainer(args);
      this.requireArgumentType('settings', 'object', args);
      if ('undefined' !== typeof args.render && 'undefined' !== typeof args.renderUI) {
        throw new Error('Args: `render` and `renderUI` cannot be applied together.');
      }
    }
  }, {
    key: "apply",
    value: function apply() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers,
        settings = args.settings,
        _args$options = args.options,
        options = _args$options === void 0 ? {} : _args$options,
        external = options.external,
        _options$render = options.render,
        render = _options$render === void 0 ? true : _options$render,
        _options$renderUI = options.renderUI,
        renderUI = _options$renderUI === void 0 ? false : _options$renderUI;
      containers.forEach(function (container) {
        if (external) {
          container.settings.setExternalChange(settings);
        } else {
          container.settings.set(settings);
        }
        if (renderUI) {
          container.renderUI();
        } else if (render) {
          container.render();
        }
      });
    }
  }]);
}($e.modules.editor.CommandContainerInternalBase);
var _default = exports["default"] = SetSettings;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/copy-all.js":
/*!**********************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/copy-all.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"] = exports.CopyAll = 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"));
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; })(); }
var CopyAll = exports.CopyAll = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function CopyAll() {
    (0, _classCallCheck2.default)(this, CopyAll);
    return _callSuper(this, CopyAll, arguments);
  }
  (0, _inherits2.default)(CopyAll, _$e$modules$CommandBa);
  return (0, _createClass2.default)(CopyAll, [{
    key: "apply",
    value: function apply() {
      $e.run('document/elements/copy', {
        containers: Object.values(elementor.getPreviewView().children._views).map(function (view) {
          return view.getContainer();
        })
      });
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = CopyAll;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/copy.js":
/*!******************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/copy.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"] = exports.Copy = 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"));
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; })(); }
var Copy = exports.Copy = /*#__PURE__*/function (_$e$modules$editor$Co) {
  function Copy() {
    (0, _classCallCheck2.default)(this, Copy);
    return _callSuper(this, Copy, arguments);
  }
  (0, _inherits2.default)(Copy, _$e$modules$editor$Co);
  return (0, _createClass2.default)(Copy, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$storageKey = args.storageKey,
        storageKey = _args$storageKey === void 0 ? 'clipboard' : _args$storageKey,
        _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      if (!elementor.selection.isSameType()) {
        elementor.notifications.showToast({
          message: __('That didn’t work. Try copying one kind of element at a time.', 'elementor'),
          buttons: [{
            name: 'got_it',
            text: __('Got it', 'elementor')
          }]
        });
        return false;
      }
      var elements = elementor.getPreviewView().$el.find('.elementor-element');
      var elementsData = containers.sort(function (first, second) {
        return elements.index(first.view.el) - elements.index(second.view.el);
      }).map(function (container) {
        return container.model.toJSON({
          copyHtmlCache: true
        });
      });
      var storageData = {
        type: 'elementor',
        siteurl: elementorCommon.config.urls.rest,
        elements: elementsData
      };
      elementorCommon.storage.set(storageKey, storageData);

      // TODO: Use package for clipboard saving
      var clipboard = document.createElement('textarea');
      clipboard.value = JSON.stringify(storageData);
      document.body.appendChild(clipboard);
      clipboard.select();
      document.execCommand('copy');
      document.body.removeChild(clipboard);
    }
  }]);
}($e.modules.editor.CommandContainerBase);
var _default = exports["default"] = Copy;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/create.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/create.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"] = exports.Create = 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"));
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; })(); }
var Create = exports.Create = /*#__PURE__*/function (_$e$modules$editor$do) {
  function Create() {
    (0, _classCallCheck2.default)(this, Create);
    return _callSuper(this, Create, arguments);
  }
  (0, _inherits2.default)(Create, _$e$modules$editor$do);
  return (0, _createClass2.default)(Create, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);

      // Avoid Backbone model & etc.
      this.requireArgumentConstructor('model', Object, args);
    }
  }, {
    key: "getHistory",
    value: function getHistory(args) {
      var model = args.model,
        _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return {
        containers: containers,
        model: model,
        type: 'add',
        title: elementor.helpers.getModelLabel(model)
      };
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _this = this;
      var model = args.model,
        _args$options = args.options,
        options = _args$options === void 0 ? {} : _args$options,
        _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2;
      var result = [];
      containers.forEach(function (container) {
        var _container, _container2;
        container = container.lookup();
        if (!((_container = container) !== null && _container !== void 0 && _container.view) || container.view.isDestroyed) {
          var _$e$components$get$ut;
          container = (_$e$components$get$ut = $e.components.get('document').utils.findContainerById(container.id)) !== null && _$e$components$get$ut !== void 0 ? _$e$components$get$ut : container;
        }
        if (!((_container2 = container) !== null && _container2 !== void 0 && _container2.view) || container.view.isDestroyed) {
          $e.components.get('document').utils.addModelToParent(container.id, model, options);
          return;
        }
        var createdContainer = container.view.addElement(model, options).getContainer();
        result.push(createdContainer);

        /**
         * Acknowledge history of each created item, because we cannot pass the elements when they do not exist
         * in getHistory().
         */
        if (_this.isHistoryActive() && _this.history) {
          $e.internal('document/history/log-sub-item', {
            container: container,
            type: 'sub-add',
            restore: _this.constructor.restore,
            options: options,
            data: {
              containerToRestore: createdContainer,
              modelToRestore: createdContainer.model.toJSON()
            }
          });
        }
      });
      if (1 === result.length) {
        result = result[0];
      }
      return result;
    }
  }], [{
    key: "restore",
    value: function restore(historyItem, isRedo) {
      var _data$containerToRest, _data$containerToRest2, _data$containerToRest3, _data$containerToRest4, _data$containerToRest5, _data$containerToRest6, _data$modelToRestore;
      var data = historyItem.get('data'),
        container = historyItem.get('container'),
        options = historyItem.get('options') || {};

      // No clone when restoring. e.g: duplicate will generate unique ids while restoring.
      if (options.clone) {
        options.clone = false;
      }
      if (isRedo) {
        $e.run('document/elements/create', {
          container: container,
          model: data.modelToRestore,
          options: options
        });
        return;
      }
      if (!elementor.helpers.isAtomicWidget(data.modelToRestore)) {
        $e.run('document/elements/delete', {
          container: data.containerToRestore
        });
        return;
      }
      var containerToRestore = (_data$containerToRest = (_data$containerToRest2 = data.containerToRestore) === null || _data$containerToRest2 === void 0 || (_data$containerToRest3 = _data$containerToRest2.lookup) === null || _data$containerToRest3 === void 0 ? void 0 : _data$containerToRest3.call(_data$containerToRest2)) !== null && _data$containerToRest !== void 0 ? _data$containerToRest : data.containerToRestore;
      if (containerToRestore instanceof elementorModules.editor.Container) {
        $e.run('document/elements/delete', {
          container: containerToRestore
        });
        return;
      }
      var parentId = (_data$containerToRest4 = data.containerToRestore) === null || _data$containerToRest4 === void 0 || (_data$containerToRest4 = _data$containerToRest4.parent) === null || _data$containerToRest4 === void 0 ? void 0 : _data$containerToRest4.id;
      var childId = (_data$containerToRest5 = (_data$containerToRest6 = data.containerToRestore) === null || _data$containerToRest6 === void 0 ? void 0 : _data$containerToRest6.id) !== null && _data$containerToRest5 !== void 0 ? _data$containerToRest5 : (_data$modelToRestore = data.modelToRestore) === null || _data$modelToRestore === void 0 ? void 0 : _data$modelToRestore.id;
      if (parentId && childId) {
        $e.components.get('document').utils.removeModelFromParent(parentId, childId);
      }
    }
  }]);
}($e.modules.editor.document.CommandHistoryBase);
var _default = exports["default"] = Create;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/delete.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/delete.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"] = exports.Delete = 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"));
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; })(); }
var Delete = exports.Delete = /*#__PURE__*/function (_$e$modules$editor$do) {
  function Delete() {
    (0, _classCallCheck2.default)(this, Delete);
    return _callSuper(this, Delete, arguments);
  }
  (0, _inherits2.default)(Delete, _$e$modules$editor$do);
  return (0, _createClass2.default)(Delete, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
    }
  }, {
    key: "getHistory",
    value: function getHistory(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return {
        containers: containers,
        type: 'remove'
      };
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _this = this;
      var _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2;
      containers.forEach(function (container) {
        var _container, _container2;
        container = container.lookup();
        if (!((_container = container) !== null && _container !== void 0 && _container.view) || container.view.isDestroyed) {
          var _$e$components$get$ut;
          container = (_$e$components$get$ut = $e.components.get('document').utils.findContainerById(container.id)) !== null && _$e$components$get$ut !== void 0 ? _$e$components$get$ut : container;
        }
        if (!((_container2 = container) !== null && _container2 !== void 0 && _container2.view) || container.view.isDestroyed) {
          var _container3;
          if ((_container3 = container) !== null && _container3 !== void 0 && _container3.parent) {
            $e.components.get('document').utils.removeModelFromParent(container.parent.id, container.id);
          }
          return;
        }
        if (_this.isHistoryActive() && _this.history) {
          $e.internal('document/history/log-sub-item', {
            container: container,
            type: 'sub-remove',
            restore: _this.constructor.restore,
            data: {
              model: container.model.toJSON(),
              parent: container.parent,
              at: container.view._index
            }
          });
        }
        _this.dispatchDeleteEvent(container, args.callerName);
        _this.deselectRecursive(container.model.get('id'));
        container.model.destroy();
        container.panel.refresh();
      });
      if (1 === containers.length) {
        return containers[0];
      }
      return containers;
    }
  }, {
    key: "dispatchDeleteEvent",
    value: function dispatchDeleteEvent(container, callerName) {
      var _elementorCommon, _container$model$get, _container$model$get2, _container$parent$mod, _container$parent, _container$parent2;
      if (!((_elementorCommon = elementorCommon) !== null && _elementorCommon !== void 0 && (_elementorCommon = _elementorCommon.eventsManager) !== null && _elementorCommon !== void 0 && _elementorCommon.dispatchEvent)) {
        return;
      }
      var elType = (_container$model$get = container.model.get('elType')) !== null && _container$model$get !== void 0 ? _container$model$get : '';
      var widgetType = (_container$model$get2 = container.model.get('widgetType')) !== null && _container$model$get2 !== void 0 ? _container$model$get2 : '';
      var widgetName = 'widget' === elType ? widgetType : elType;
      var parentWidgetType = (_container$parent$mod = (_container$parent = container.parent) === null || _container$parent === void 0 || (_container$parent = _container$parent.model) === null || _container$parent === void 0 ? void 0 : _container$parent.get('widgetType')) !== null && _container$parent$mod !== void 0 ? _container$parent$mod : '';
      var parentType = parentWidgetType || ((_container$parent2 = container.parent) === null || _container$parent2 === void 0 ? void 0 : _container$parent2.type) || '';
      var eventData = {
        app_type: 'editor',
        window_name: 'editor',
        interaction_type: 'click',
        target_type: elType,
        target_name: 'delete',
        interaction_result: "".concat(elType, "_deleted"),
        target_location: 'canvas',
        location_l1: parentType,
        location_l2: widgetName,
        interaction_description: "user_deleted_".concat(widgetName, "_from_canvas")
      };
      if (callerName) {
        eventData.trigger = callerName;
      }
      elementorCommon.eventsManager.dispatchEvent('delete_element', eventData);
    }
  }, {
    key: "deselectRecursive",
    value: function deselectRecursive(id) {
      var _this2 = this;
      var container = elementor.getContainer(id);
      if (elementor.selection.has(container)) {
        $e.run('document/elements/deselect', {
          container: container
        });
      }
      container === null || container === void 0 || container.model.get('elements').forEach(function (childModel) {
        _this2.deselectRecursive(childModel.get('id'));
      });
    }
  }], [{
    key: "restore",
    value: function restore(historyItem, isRedo) {
      var container = historyItem.get('container'),
        data = historyItem.get('data');
      if (isRedo) {
        $e.run('document/elements/delete', {
          container: container
        });
      } else {
        $e.run('document/elements/create', {
          container: data.parent,
          model: data.model,
          options: {
            at: data.at
          }
        });
      }
    }
  }]);
}($e.modules.editor.document.CommandHistoryBase);
var _default = exports["default"] = Delete;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/deselect-all.js":
/*!**************************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/deselect-all.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"] = exports.DeselectAll = 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"));
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; })(); }
var DeselectAll = exports.DeselectAll = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function DeselectAll() {
    (0, _classCallCheck2.default)(this, DeselectAll);
    return _callSuper(this, DeselectAll, arguments);
  }
  (0, _inherits2.default)(DeselectAll, _$e$modules$CommandBa);
  return (0, _createClass2.default)(DeselectAll, [{
    key: "apply",
    value: function apply() {
      elementor.selection.remove([], true);
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = DeselectAll;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/deselect.js":
/*!**********************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/deselect.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"] = exports.Deselect = 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"));
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; })(); }
var Deselect = exports.Deselect = /*#__PURE__*/function (_$e$modules$editor$Co) {
  function Deselect() {
    (0, _classCallCheck2.default)(this, Deselect);
    return _callSuper(this, Deselect, arguments);
  }
  (0, _inherits2.default)(Deselect, _$e$modules$editor$Co);
  return (0, _createClass2.default)(Deselect, [{
    key: "validateArgs",
    value: function validateArgs() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      if (!args.all) {
        this.requireContainer(args);
      }
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers,
        _args$all = args.all,
        all = _args$all === void 0 ? false : _args$all;
      elementor.selection.remove(containers, all);
    }
  }]);
}($e.modules.editor.CommandContainerBase);
var _default = exports["default"] = Deselect;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/duplicate.js":
/*!***********************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/duplicate.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"] = exports.Duplicate = 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 _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"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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; })(); }
var Duplicate = exports.Duplicate = /*#__PURE__*/function (_$e$modules$editor$do) {
  function Duplicate() {
    (0, _classCallCheck2.default)(this, Duplicate);
    return _callSuper(this, Duplicate, arguments);
  }
  (0, _inherits2.default)(Duplicate, _$e$modules$editor$do);
  return (0, _createClass2.default)(Duplicate, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
    }
  }, {
    key: "getHistory",
    value: function getHistory(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return {
        containers: containers,
        type: 'duplicate'
      };
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2,
        _args$options = args.options,
        options = _args$options === void 0 ? {} : _args$options,
        result = [];
      var at = containers[containers.length - 1].view._index;
      if (!elementor.selection.isSameType()) {
        elementor.notifications.showToast({
          message: __('That didn’t work. Try duplicating one kind of element at a time.', 'elementor'),
          buttons: [{
            name: 'got_it',
            text: __('Got it', 'elementor')
          }]
        });
        return false;
      }
      containers.forEach(function (container) {
        var parent = container.parent;
        result.push($e.run('document/elements/create', {
          container: parent,
          model: container.model.toJSON(),
          options: _objectSpread(_objectSpread({}, options), {}, {
            at: ++at,
            clone: true
          })
        }));
      });
      if (1 === result.length) {
        return result[0];
      }
      return result;
    }
  }]);
}($e.modules.editor.document.CommandHistoryBase);
var _default = exports["default"] = Duplicate;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/empty.js":
/*!*******************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/empty.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"] = exports.Empty = 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"));
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; })(); }
var Empty = exports.Empty = /*#__PURE__*/function (_$e$modules$editor$do) {
  function Empty() {
    (0, _classCallCheck2.default)(this, Empty);
    return _callSuper(this, Empty, arguments);
  }
  (0, _inherits2.default)(Empty, _$e$modules$editor$do);
  return (0, _createClass2.default)(Empty, [{
    key: "getHistory",
    value: function getHistory(args) {
      if (args.force) {
        return {
          type: 'remove',
          title: __('All Content', 'elementor'),
          data: elementor.elements ? elementor.elements.toJSON() : null,
          restore: this.constructor.restore
        };
      }
      return false;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      if (args.force && elementor.elements) {
        elementor.elements.reset();
        elementor.getPreviewContainer().panel.closeEditor();
        return;
      }
      elementor.getClearPageDialog().show();
    }
  }, {
    key: "isDataChanged",
    value: function isDataChanged() {
      return this.args.force;
    }
  }], [{
    key: "restore",
    value: function restore(historyItem, isRedo) {
      if (isRedo) {
        $e.run('document/elements/empty', {
          force: true
        });
      } else {
        var data = historyItem.get('data');
        if (data) {
          elementor.getPreviewView().addChildModel(data);
        }
        $e.internal('document/save/set-is-modified', {
          status: true
        });
      }
    }
  }]);
}($e.modules.editor.document.CommandHistoryBase);
var _default = exports["default"] = Empty;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/import.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/import.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"] = exports.Import = 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"));
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; })(); }
var Import = exports.Import = /*#__PURE__*/function (_$e$modules$editor$do) {
  function Import() {
    (0, _classCallCheck2.default)(this, Import);
    return _callSuper(this, Import, arguments);
  }
  (0, _inherits2.default)(Import, _$e$modules$editor$do);
  return (0, _createClass2.default)(Import, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireArgumentInstance('model', Backbone.Model, args);
      this.requireArgumentConstructor('data', Object, args);
      if (args.containers) {
        throw new TypeError('Multi containers are not supported');
      }
      if (args.container) {
        this.requireContainer();
      }
    }
  }, {
    key: "getHistory",
    value: function getHistory(args) {
      var model = args.model;
      return {
        type: 'add',
        title: __('Template', 'elementor'),
        subTitle: model.get('title')
      };
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var data = args.data,
        _args$options = args.options,
        options = _args$options === void 0 ? args.options || {} : _args$options,
        _args$container = args.container,
        container = _args$container === void 0 ? args.container || elementor.getPreviewContainer() : _args$container,
        result = [];
      var at = isNaN(options.at) ? container.view.collection.length : options.at;

      // Each `data.content`.
      Object.values(data.content).forEach(function (model) {
        result.push($e.run('document/elements/create', {
          container: container,
          model: model,
          options: Object.assign(options, {
            at: at
          })
        }));
        at++;
      });
      if (options.withPageSettings) {
        $e.run('document/elements/settings', {
          container: elementor.settings.page.getEditedView().getContainer(),
          settings: data.page_settings,
          options: {
            external: true
          }
        });
      }
      return result;
    }
  }]);
}($e.modules.editor.document.CommandHistoryBase);
var _default = exports["default"] = Import;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/index.js":
/*!*******************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/index.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Copy", ({
  enumerable: true,
  get: function get() {
    return _copy.Copy;
  }
}));
Object.defineProperty(exports, "CopyAll", ({
  enumerable: true,
  get: function get() {
    return _copyAll.CopyAll;
  }
}));
Object.defineProperty(exports, "Create", ({
  enumerable: true,
  get: function get() {
    return _create.Create;
  }
}));
Object.defineProperty(exports, "Delete", ({
  enumerable: true,
  get: function get() {
    return _delete.Delete;
  }
}));
Object.defineProperty(exports, "Deselect", ({
  enumerable: true,
  get: function get() {
    return _deselect.Deselect;
  }
}));
Object.defineProperty(exports, "DeselectAll", ({
  enumerable: true,
  get: function get() {
    return _deselectAll.DeselectAll;
  }
}));
Object.defineProperty(exports, "Duplicate", ({
  enumerable: true,
  get: function get() {
    return _duplicate.Duplicate;
  }
}));
Object.defineProperty(exports, "Empty", ({
  enumerable: true,
  get: function get() {
    return _empty.Empty;
  }
}));
Object.defineProperty(exports, "Import", ({
  enumerable: true,
  get: function get() {
    return _import.Import;
  }
}));
Object.defineProperty(exports, "Move", ({
  enumerable: true,
  get: function get() {
    return _move.Move;
  }
}));
Object.defineProperty(exports, "Paste", ({
  enumerable: true,
  get: function get() {
    return _paste.Paste;
  }
}));
Object.defineProperty(exports, "PasteArea", ({
  enumerable: true,
  get: function get() {
    return _pasteArea.PasteArea;
  }
}));
Object.defineProperty(exports, "PasteInteractions", ({
  enumerable: true,
  get: function get() {
    return _pasteInteractions.PasteInteractions;
  }
}));
Object.defineProperty(exports, "PasteStyle", ({
  enumerable: true,
  get: function get() {
    return _pasteStyle.PasteStyle;
  }
}));
Object.defineProperty(exports, "ResetSettings", ({
  enumerable: true,
  get: function get() {
    return _resetSettings.ResetSettings;
  }
}));
Object.defineProperty(exports, "ResetStyle", ({
  enumerable: true,
  get: function get() {
    return _resetStyle.ResetStyle;
  }
}));
Object.defineProperty(exports, "Select", ({
  enumerable: true,
  get: function get() {
    return _select.Select;
  }
}));
Object.defineProperty(exports, "SelectAll", ({
  enumerable: true,
  get: function get() {
    return _selectAll.SelectAll;
  }
}));
Object.defineProperty(exports, "Settings", ({
  enumerable: true,
  get: function get() {
    return _settings.Settings;
  }
}));
Object.defineProperty(exports, "ToggleSelection", ({
  enumerable: true,
  get: function get() {
    return _toggleSelection.ToggleSelection;
  }
}));
var _copy = __webpack_require__(/*! ./copy */ "../assets/dev/js/editor/document/elements/commands/copy.js");
var _copyAll = __webpack_require__(/*! ./copy-all */ "../assets/dev/js/editor/document/elements/commands/copy-all.js");
var _create = __webpack_require__(/*! ./create */ "../assets/dev/js/editor/document/elements/commands/create.js");
var _delete = __webpack_require__(/*! ./delete */ "../assets/dev/js/editor/document/elements/commands/delete.js");
var _deselect = __webpack_require__(/*! ./deselect */ "../assets/dev/js/editor/document/elements/commands/deselect.js");
var _deselectAll = __webpack_require__(/*! ./deselect-all */ "../assets/dev/js/editor/document/elements/commands/deselect-all.js");
var _duplicate = __webpack_require__(/*! ./duplicate */ "../assets/dev/js/editor/document/elements/commands/duplicate.js");
var _empty = __webpack_require__(/*! ./empty */ "../assets/dev/js/editor/document/elements/commands/empty.js");
var _import = __webpack_require__(/*! ./import */ "../assets/dev/js/editor/document/elements/commands/import.js");
var _paste = __webpack_require__(/*! ./paste */ "../assets/dev/js/editor/document/elements/commands/paste.js");
var _pasteArea = __webpack_require__(/*! ./paste-area */ "../assets/dev/js/editor/document/elements/commands/paste-area.js");
var _pasteInteractions = __webpack_require__(/*! ./paste-interactions */ "../assets/dev/js/editor/document/elements/commands/paste-interactions.js");
var _move = __webpack_require__(/*! ./move */ "../assets/dev/js/editor/document/elements/commands/move.js");
var _pasteStyle = __webpack_require__(/*! ./paste-style */ "../assets/dev/js/editor/document/elements/commands/paste-style.js");
var _resetSettings = __webpack_require__(/*! ./reset-settings */ "../assets/dev/js/editor/document/elements/commands/reset-settings.js");
var _resetStyle = __webpack_require__(/*! ./reset-style */ "../assets/dev/js/editor/document/elements/commands/reset-style.js");
var _select = __webpack_require__(/*! ./select */ "../assets/dev/js/editor/document/elements/commands/select.js");
var _selectAll = __webpack_require__(/*! ./select-all */ "../assets/dev/js/editor/document/elements/commands/select-all.js");
var _settings = __webpack_require__(/*! ./settings */ "../assets/dev/js/editor/document/elements/commands/settings.js");
var _toggleSelection = __webpack_require__(/*! ./toggle-selection */ "../assets/dev/js/editor/document/elements/commands/toggle-selection.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/move.js":
/*!******************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/move.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"] = exports.Move = 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"));
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; })(); }
var Move = exports.Move = /*#__PURE__*/function (_$e$modules$editor$do) {
  function Move() {
    (0, _classCallCheck2.default)(this, Move);
    return _callSuper(this, Move, arguments);
  }
  (0, _inherits2.default)(Move, _$e$modules$editor$do);
  return (0, _createClass2.default)(Move, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
      this.requireArgumentInstance('target', elementorModules.editor.Container, args);
    }
  }, {
    key: "getHistory",
    value: function getHistory(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return {
        containers: containers,
        type: 'move'
      };
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var target = args.target,
        _args$options = args.options,
        options = _args$options === void 0 ? {} : _args$options,
        _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2,
        reCreate = [];
      containers.forEach(function (container) {
        reCreate.push(container.model.toJSON());
        $e.run('document/elements/delete', {
          container: container
        });
      });
      var count = 0;
      var result = [];
      reCreate.forEach(function (model) {
        // If multiple fix position.
        if (Object.prototype.hasOwnProperty.call(options, 'at') && reCreate.length > 1) {
          if (0 !== count) {
            options.at += count;
          }
        }
        var newContainer = $e.run('document/elements/create', {
          container: target,
          model: model,
          options: options
        });
        result.push(newContainer);
        count++;
      });
      if (1 === result.length) {
        return result[0];
      }
      return result;
    }
  }]);
}($e.modules.editor.document.CommandHistoryBase);
var _default = exports["default"] = Move;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/paste-area.js":
/*!************************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/paste-area.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"] = exports.PasteArea = void 0;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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 _environment = _interopRequireDefault(__webpack_require__(/*! elementor-common/utils/environment */ "../core/common/assets/js/utils/environment.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; })(); }
var PasteArea = exports.PasteArea = /*#__PURE__*/function (_$e$modules$editor$do) {
  function PasteArea() {
    (0, _classCallCheck2.default)(this, PasteArea);
    return _callSuper(this, PasteArea, arguments);
  }
  (0, _inherits2.default)(PasteArea, _$e$modules$editor$do);
  return (0, _createClass2.default)(PasteArea, [{
    key: "getHistory",
    value: function getHistory() {
      return false;
    }
  }, {
    key: "getDialog",
    value: function getDialog() {
      var _this = this;
      if (this.dialog) {
        return this.dialog;
      }
      var $messageContainer = jQuery('<div>', {
        class: 'e-dialog-description'
      }).html(__('To paste the element from your other site.', 'elementor'));
      var $inputArea = jQuery('<input>', {
        id: 'elementor-paste-area-dialog__input',
        type: 'text'
      }).attr('autocomplete', 'off').on('keypress', function (event) {
        event.preventDefault();
      }).on('blur', function () {
        _.defer(function () {
          return $inputArea.trigger('focus');
        });
      }).on('paste', /*#__PURE__*/function () {
        var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(event) {
          var $widgetContent, retVal;
          return _regenerator.default.wrap(function (_context) {
            while (1) switch (_context.prev = _context.next) {
              case 0:
                event.preventDefault();
                $widgetContent = _this.getDialog().getElements('widgetContent');
                $widgetContent.addClass('e-state-loading');
                _context.next = 1;
                return $e.run('document/ui/paste', {
                  container: _this.container,
                  storageType: 'rawdata',
                  data: event.originalEvent.clipboardData.getData('text'),
                  options: _this.options
                });
              case 1:
                retVal = _context.sent;
                $widgetContent.removeClass('e-state-loading');
                if (!retVal) {
                  _context.next = 2;
                  break;
                }
                _this.dialog.hide();
                return _context.abrupt("return");
              case 2:
                $errorArea.show();
              case 3:
              case "end":
                return _context.stop();
            }
          }, _callee);
        }));
        return function (_x) {
          return _ref.apply(this, arguments);
        };
      }());
      var $errorArea = jQuery('<div>', {
        id: 'elementor-paste-area-dialog__error',
        style: "display: none"
      }).html(__('Make sure that both sites are updated to last version of Elementor and have enabled the features relevant to the copied element before trying again.', 'elementor'));
      var $loadingArea = jQuery('<i>', {
        class: 'eicon-loading eicon-animation-spin'
      });
      $messageContainer.append($inputArea).append($errorArea).append($loadingArea);
      var ctrlLabel = _environment.default.mac ? '&#8984;' : 'Ctrl';
      this.dialog = elementorCommon.dialogsManager.createWidget('lightbox', {
        id: 'elementor-paste-area-dialog',
        headerMessage: "".concat(ctrlLabel, " + V"),
        message: $messageContainer,
        position: {
          my: 'center center',
          at: 'center center'
        },
        closeButton: true,
        closeButtonOptions: {
          iconClass: 'eicon-close'
        },
        onShow: function onShow() {
          $inputArea.trigger('focus');
          _this.getDialog().getElements('widgetContent').on('click', function () {
            $inputArea.trigger('focus');
          });
        }
      });
      return this.dialog;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      this.container = args.container;
      if (args.options) {
        this.options = args.options;
      }
      this.getDialog().show();
    }
  }]);
}($e.modules.editor.document.CommandHistoryBase);
(0, _defineProperty2.default)(PasteArea, "dialog", null);
(0, _defineProperty2.default)(PasteArea, "container", null);
(0, _defineProperty2.default)(PasteArea, "options", {});
var _default = exports["default"] = PasteArea;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/paste-interactions.js":
/*!********************************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/paste-interactions.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"] = exports.PasteInteractions = 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"));
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; })(); }
var PasteInteractions = exports.PasteInteractions = /*#__PURE__*/function (_$e$modules$editor$Co) {
  function PasteInteractions() {
    (0, _classCallCheck2.default)(this, PasteInteractions);
    return _callSuper(this, PasteInteractions, arguments);
  }
  (0, _inherits2.default)(PasteInteractions, _$e$modules$editor$Co);
  return (0, _createClass2.default)(PasteInteractions, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
      var _args$storageKey = args.storageKey,
        storageKey = _args$storageKey === void 0 ? 'clipboard' : _args$storageKey;
      var storageData = elementorCommon.storage.get(storageKey);
      this.requireArgumentType('storageData', 'object', {
        storageData: storageData
      });
    }
  }, {
    key: "apply",
    value: function apply() {}
  }]);
}($e.modules.editor.CommandContainerBase);
var _default = exports["default"] = PasteInteractions;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/paste-style.js":
/*!*************************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/paste-style.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"] = exports.PasteStyle = void 0;
var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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"));
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')} Container
 */
var PasteStyle = exports.PasteStyle = /*#__PURE__*/function (_$e$modules$editor$do) {
  function PasteStyle() {
    (0, _classCallCheck2.default)(this, PasteStyle);
    return _callSuper(this, PasteStyle, arguments);
  }
  (0, _inherits2.default)(PasteStyle, _$e$modules$editor$do);
  return (0, _createClass2.default)(PasteStyle, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);

      // Validate if storage have data.
      var _args$storageKey = args.storageKey,
        storageKey = _args$storageKey === void 0 ? 'clipboard' : _args$storageKey,
        storageData = elementorCommon.storage.get(storageKey);
      this.requireArgumentType('storageData', 'object', {
        storageData: storageData
      });
    }
  }, {
    key: "validateControls",
    value: function validateControls(source, target) {
      var result = true;

      // Cannot use `_.isEmpty()` does not pass paste style test.
      if (null === source || null === target || undefined === source || undefined === target || 'object' === (0, _typeof2.default)(source) ^ 'object' === (0, _typeof2.default)(target)) {
        result = false;
      }
      return result;
    }
  }, {
    key: "getHistory",
    value: function getHistory(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return {
        containers: containers,
        type: 'paste_style'
      };
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _storageData$elements;
      var _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2,
        _args$storageKey2 = args.storageKey,
        storageKey = _args$storageKey2 === void 0 ? 'clipboard' : _args$storageKey2,
        storageData = elementorCommon.storage.get(storageKey);
      if (!storageData || !(storageData !== null && storageData !== void 0 && (_storageData$elements = storageData.elements) !== null && _storageData$elements !== void 0 && _storageData$elements.length) || 'elementor' !== (storageData === null || storageData === void 0 ? void 0 : storageData.type)) {
        return false;
      }
      this.applyPasteStyleData(containers, storageData.elements);
    }
  }, {
    key: "applyPasteStyleData",
    value: function applyPasteStyleData(containers, data) {
      var _this = this;
      containers.forEach(function (targetContainer) {
        var targetSettings = targetContainer.settings,
          targetSettingsAttributes = targetSettings.attributes,
          targetControls = targetSettings.controls,
          diffSettings = {},
          addExtraControls = function addExtraControls(sourceSettings, extraType) {
            if (sourceSettings[extraType]) {
              Object.entries(sourceSettings[extraType]).forEach(function (_ref) {
                var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
                  controlName = _ref2[0],
                  value = _ref2[1];
                var control = targetControls[controlName];
                if (targetContainer.view.isStyleTransferControl(control)) {
                  diffSettings[extraType] = diffSettings[extraType] || {};
                  diffSettings[extraType][controlName] = value;
                }
              });
            }
          };
        data.forEach(function (sourceModel) {
          var sourceSettings = sourceModel.settings;
          addExtraControls(sourceSettings, '__globals__');
          addExtraControls(sourceSettings, '__dynamic__');
          Object.entries(targetControls).forEach(function (_ref3) {
            var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
              controlName = _ref4[0],
              control = _ref4[1];
            if (!targetContainer.view.isStyleTransferControl(control)) {
              return;
            }
            var controlSourceValue = sourceSettings[controlName],
              controlTargetValue = targetSettingsAttributes[controlName];
            if (!_this.validateControls(controlSourceValue, controlTargetValue)) {
              return;
            }
            if ('object' === (0, _typeof2.default)(controlSourceValue)) {
              // eslint-disable-next-line array-callback-return
              var isEqual = Object.keys(controlSourceValue).some(function (propertyKey) {
                if (controlSourceValue[propertyKey] !== controlTargetValue[propertyKey]) {
                  return false;
                }
              });
              if (isEqual) {
                return;
              }
            }
            if (controlSourceValue === controlTargetValue || !elementor.getControlView(control.type).onPasteStyle(control, controlSourceValue)) {
              return;
            }
            diffSettings[controlName] = controlSourceValue;
          });
          _this.pasteStyle(targetContainer, diffSettings);
        });
      });
    }

    /**
     * @param {Container} targetContainer
     * @param {{}}        settings
     */
  }, {
    key: "pasteStyle",
    value: function pasteStyle(targetContainer, settings) {
      var globals = settings.__globals__;
      if (globals) {
        delete settings.__globals__;
      }
      $e.run('document/elements/settings', {
        container: targetContainer,
        settings: settings,
        options: {
          external: true,
          render: false
        }
      });
      if (globals) {
        $e.run('document/globals/settings', {
          container: targetContainer,
          settings: globals,
          options: {
            external: true,
            render: false
          }
        });
        targetContainer.panel.refresh();
      }
      targetContainer.render();
    }
  }]);
}($e.modules.editor.document.CommandHistoryBase);
var _default = exports["default"] = PasteStyle;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/paste.js":
/*!*******************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/paste.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"] = exports.Paste = void 0;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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 _containerHelper = _interopRequireDefault(__webpack_require__(/*! elementor-editor-utils/container-helper */ "../assets/dev/js/editor/utils/container-helper.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; })(); }
var Paste = exports.Paste = /*#__PURE__*/function (_$e$modules$editor$do) {
  function Paste() {
    (0, _classCallCheck2.default)(this, Paste);
    return _callSuper(this, Paste, arguments);
  }
  (0, _inherits2.default)(Paste, _$e$modules$editor$do);
  return (0, _createClass2.default)(Paste, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
    }
  }, {
    key: "getHistory",
    value: function getHistory() {
      return {
        type: 'paste',
        title: __('Elements', 'elementor')
      };
    }
  }, {
    key: "getStorageData",
    value: function getStorageData(args) {
      var _args$storageType = args.storageType,
        storageType = _args$storageType === void 0 ? 'localstorage' : _args$storageType,
        _args$storageKey = args.storageKey,
        storageKey = _args$storageKey === void 0 ? 'clipboard' : _args$storageKey,
        _args$data = args.data,
        data = _args$data === void 0 ? '' : _args$data;
      if ('localstorage' === storageType) {
        return elementorCommon.storage.get(storageKey) || {};
      }
      try {
        return JSON.parse(data) || {};
      } catch (e) {
        return {};
      }
    }
  }, {
    key: "apply",
    value: function () {
      var _apply = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(args) {
        var _storageData$elements;
        var at, _args$rebuild, rebuild, _args$containers, containers, _args$options, options, storageData, storageDataElements, result, _t;
        return _regenerator.default.wrap(function (_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              at = args.at, _args$rebuild = args.rebuild, rebuild = _args$rebuild === void 0 ? false : _args$rebuild, _args$containers = args.containers, containers = _args$containers === void 0 ? [args.container] : _args$containers, _args$options = args.options, options = _args$options === void 0 ? {} : _args$options, storageData = this.getStorageData(args);
              if (!(!storageData || !(storageData !== null && storageData !== void 0 && (_storageData$elements = storageData.elements) !== null && _storageData$elements !== void 0 && _storageData$elements.length) || 'elementor' !== (storageData === null || storageData === void 0 ? void 0 : storageData.type))) {
                _context.next = 1;
                break;
              }
              return _context.abrupt("return", false);
            case 1:
              storageDataElements = storageData.elements;
              if (!(storageData.siteurl !== elementorCommon.config.urls.rest)) {
                _context.next = 5;
                break;
              }
              _context.prev = 2;
              _context.next = 3;
              return new Promise(function (resolve, reject) {
                return elementorCommon.ajax.addRequest('import_from_json', {
                  data: {
                    elements: JSON.stringify(storageDataElements)
                  },
                  success: resolve,
                  error: reject
                });
              });
            case 3:
              storageDataElements = _context.sent;
              _context.next = 5;
              break;
            case 4:
              _context.prev = 4;
              _t = _context["catch"](2);
              return _context.abrupt("return", false);
            case 5:
              result = []; // Paste on "Add Section" area.
              if (rebuild) {
                result = this.rebuild(containers, storageDataElements, at);
              } else {
                if (undefined !== at) {
                  options.at = at;
                }
                result.push(this.pasteTo(containers, storageDataElements, options));
              }
              if (!(1 === result.length)) {
                _context.next = 6;
                break;
              }
              return _context.abrupt("return", result[0]);
            case 6:
              return _context.abrupt("return", result);
            case 7:
            case "end":
              return _context.stop();
          }
        }, _callee, this, [[2, 4]]);
      }));
      function apply(_x) {
        return _apply.apply(this, arguments);
      }
      return apply;
    }()
  }, {
    key: "rebuild",
    value: function rebuild(containers, data, at) {
      var _this = this;
      // Paste at each target.
      var result = [];
      containers.forEach(function (targetContainer) {
        var createNewElementAtTheBottomOfThePage = 'undefined' === typeof at;
        var index = createNewElementAtTheBottomOfThePage ? targetContainer.view.collection.length : at;
        data.forEach(function (model) {
          switch (model.elType) {
            case 'container':
            case 'e-flexbox':
            case 'e-div-block':
            case 'e-grid':
              {
                // Push the cloned container to the 'document'.
                result.push(_this.pasteTo([targetContainer], [model], {
                  at: createNewElementAtTheBottomOfThePage ? ++index : index
                }));
              }
              break;
            case 'section':
              {
                // If is inner create section for `inner-section`.
                if (model.isInner) {
                  var section = $e.run('document/elements/create', {
                    container: targetContainer,
                    model: {
                      elType: 'section'
                    },
                    columns: 1,
                    options: {
                      at: index,
                      edit: false
                    }
                  });

                  // `targetContainer` = first column at `section`.
                  targetContainer = section.view.children.findByIndex(0).getContainer();
                }

                // Will be not affected by hook since it always have `model.elements`.
                result.push(_this.pasteTo([targetContainer], [model], {
                  at: index,
                  edit: false
                }));
                index++;
              }
              break;
            case 'column':
              {
                // Next code changed from original since `_checkIsEmpty()` was removed.
                var _section = $e.run('document/elements/create', {
                  container: targetContainer,
                  model: {
                    elType: 'section'
                  },
                  columns: 0,
                  // Section with no columns.
                  options: {
                    at: ++index,
                    edit: false
                  }
                });
                result.push(_this.pasteTo([_section], [model]));
              }
              break;
            default:
              {
                // The 'default' case is widget.
                var target;
                var isAtomic = elementor.helpers.isAtomicWidget(model);
                if ('section' === targetContainer.model.get('elType')) {
                  // On trying to paste widget on section, the paste should be at the first column.
                  target = [targetContainer.view.children.findByIndex(0).getContainer()];
                } else if ('container' === targetContainer.model.get('elType')) {
                  target = [targetContainer];
                } else if (isAtomic) {
                  var options = {
                    at: createNewElementAtTheBottomOfThePage ? ++index : index,
                    useHistory: false
                  };
                  target = _containerHelper.default.createContainerFromModel({
                    elType: _containerHelper.default.V4_DEFAULT_CONTAINER_TYPE
                  }, targetContainer, {
                    options: options
                  });
                  target = [target];
                } else if (elementorCommon.config.experimentalFeatures.container) {
                  // If the container experiment is active, create a new wrapper container.
                  target = $e.run('document/elements/create', {
                    container: targetContainer,
                    model: {
                      elType: 'container'
                    },
                    options: {
                      at: createNewElementAtTheBottomOfThePage ? ++index : index
                    }
                  });
                  target = [target];
                } else {
                  // Else, create section with one column for the element.
                  var _section2 = $e.run('document/elements/create', {
                    container: targetContainer,
                    model: {
                      elType: 'section'
                    },
                    columns: 1,
                    options: {
                      at: createNewElementAtTheBottomOfThePage ? ++index : index
                    }
                  });

                  // Create the element inside the column that just was created.
                  target = [_section2.view.children.first().getContainer()];
                }
                result.push(_this.pasteTo(target, [model]));
              }
          }
        });
      });
      return result;
    }
  }, {
    key: "pasteTo",
    value: function pasteTo(targetContainers, models) {
      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
      options = Object.assign({
        at: null,
        clone: true
      }, options);
      var result = [];
      models.forEach(function (model) {
        result.push($e.run('document/elements/create', {
          containers: targetContainers,
          model: model,
          options: options
        }));

        // On paste sections, increase the `at` for every section.
        if (null !== options.at) {
          options.at++;
        }
      });
      if (1 === result.length) {
        return result[0];
      }
      return result;
    }
  }]);
}($e.modules.editor.document.CommandHistoryBase);
var _default = exports["default"] = Paste;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/reset-settings.js":
/*!****************************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/reset-settings.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"] = exports.ResetSettings = void 0;
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"));
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; })(); }
var ResetSettings = exports.ResetSettings = /*#__PURE__*/function (_$e$modules$editor$do) {
  function ResetSettings() {
    (0, _classCallCheck2.default)(this, ResetSettings);
    return _callSuper(this, ResetSettings, arguments);
  }
  (0, _inherits2.default)(ResetSettings, _$e$modules$editor$do);
  return (0, _createClass2.default)(ResetSettings, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
    }
  }, {
    key: "getHistory",
    value: function getHistory(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return {
        containers: containers,
        type: 'reset_settings'
      };
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2,
        _args$options = args.options,
        options = _args$options === void 0 ? {} : _args$options,
        _args$settings = args.settings,
        settings = _args$settings === void 0 ? [] : _args$settings;
      containers.forEach(function (container) {
        var controls = Object.entries(container.settings.controls),
          defaultValues = {};
        controls.forEach(function (_ref) {
          var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
            controlName = _ref2[0],
            control = _ref2[1];
          // If settings were specific, restore only them.
          if (settings && settings.length) {
            if (!settings.find(function (key) {
              return key === controlName;
            })) {
              return;
            }
          }
          defaultValues[controlName] = control.default;
        });
        defaultValues.__globals__ = {};
        $e.run('document/elements/settings', {
          container: container,
          options: options,
          settings: defaultValues
        });
        container.render();
      });
    }
  }]);
}($e.modules.editor.document.CommandHistoryBase);
var _default = exports["default"] = ResetSettings;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/reset-style.js":
/*!*************************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/reset-style.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"] = exports.ResetStyle = void 0;
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"));
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; })(); }
var ResetStyle = exports.ResetStyle = /*#__PURE__*/function (_$e$modules$editor$do) {
  function ResetStyle() {
    (0, _classCallCheck2.default)(this, ResetStyle);
    return _callSuper(this, ResetStyle, arguments);
  }
  (0, _inherits2.default)(ResetStyle, _$e$modules$editor$do);
  return (0, _createClass2.default)(ResetStyle, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
    }
  }, {
    key: "getHistory",
    value: function getHistory(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return {
        containers: containers,
        type: 'reset_style'
      };
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2;
      containers.forEach(function (container) {
        var controls = container.settings.controls,
          settingsKeys = [];
        container.view.allowRender = false;
        Object.entries(controls).forEach(function (_ref) {
          var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
            controlName = _ref2[0],
            control = _ref2[1];
          if (!container.view.isStyleTransferControl(control)) {
            return;
          }
          settingsKeys.push(controlName);
        });
        $e.run('document/elements/reset-settings', {
          container: container,
          settings: settingsKeys,
          options: {
            external: true
          }
        });
        container.view.allowRender = true;
        container.render();
      });
    }
  }]);
}($e.modules.editor.document.CommandHistoryBase);
var _default = exports["default"] = ResetStyle;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/select-all.js":
/*!************************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/select-all.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"] = exports.SelectAll = 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"));
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; })(); }
var SelectAll = exports.SelectAll = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function SelectAll() {
    (0, _classCallCheck2.default)(this, SelectAll);
    return _callSuper(this, SelectAll, arguments);
  }
  (0, _inherits2.default)(SelectAll, _$e$modules$CommandBa);
  return (0, _createClass2.default)(SelectAll, [{
    key: "apply",
    value: function apply() {
      elementor.selection.add(this.flattenContainersList(
      // The selection mechanism keeps selected elements in a single-dimension object. Therefore, In order to
      // select all document elements, we should convert them into a flatten, single-dimension array.
      elementor.elementsModel.get('elements').map(function (element) {
        return elementor.getContainer(element.id);
      })));
    }

    /**
     * Recursively iterate over all container children and make a flatten array of their instances.
     *
     * @param {*} containers
     * @return {*[]} flattened array of container children
     */
  }, {
    key: "flattenContainersList",
    value: function flattenContainersList() {
      var containers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
      var flatten = [];
      var _iterator = _createForOfIteratorHelper(containers),
        _step;
      try {
        for (_iterator.s(); !(_step = _iterator.n()).done;) {
          var container = _step.value;
          flatten.push(container);
          if (container.children.length) {
            flatten = flatten.concat(this.flattenContainersList(container.children));
          }
        }
      } catch (err) {
        _iterator.e(err);
      } finally {
        _iterator.f();
      }
      return flatten;
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = SelectAll;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/select.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/select.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"] = exports.Select = 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"));
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; })(); }
var Select = exports.Select = /*#__PURE__*/function (_$e$modules$editor$Co) {
  function Select() {
    (0, _classCallCheck2.default)(this, Select);
    return _callSuper(this, Select, arguments);
  }
  (0, _inherits2.default)(Select, _$e$modules$editor$Co);
  return (0, _createClass2.default)(Select, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers,
        _args$append = args.append,
        append = _args$append === void 0 ? false : _args$append;
      elementor.selection.add(containers, append);
    }
  }]);
}($e.modules.editor.CommandContainerBase);
var _default = exports["default"] = Select;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/settings.js":
/*!**********************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/settings.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"] = exports.Settings = 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 _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"));
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')} Container
 */
var Settings = exports.Settings = /*#__PURE__*/function (_$e$modules$editor$do) {
  function Settings() {
    (0, _classCallCheck2.default)(this, Settings);
    return _callSuper(this, Settings, arguments);
  }
  (0, _inherits2.default)(Settings, _$e$modules$editor$do);
  return (0, _createClass2.default)(Settings, [{
    key: "addToHistory",
    value:
    /**
     * Function addToHistory().
     *
     * @param {Container} container
     * @param {{}}        newSettings
     * @param {{}}        oldSettings
     */
    function addToHistory(container, newSettings, oldSettings) {
      var changes = (0, _defineProperty2.default)({}, container.id, {
          old: oldSettings,
          new: newSettings
        }),
        historyItem = {
          containers: [container],
          data: {
            changes: changes
          },
          type: 'change',
          restore: Settings.restore
        };
      $e.internal('document/history/add-transaction', historyItem);
    }
  }, {
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
      this.requireArgumentConstructor('settings', Object, args);
    }
  }, {
    key: "getHistory",
    value: function getHistory(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers,
        subTitle = this.constructor.getSubTitle(args);
      return {
        containers: containers,
        subTitle: subTitle,
        type: 'change'
      };
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _this = this;
      var _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2,
        _args$settings = args.settings,
        settings = _args$settings === void 0 ? {} : _args$settings,
        _args$isMultiSettings = args.isMultiSettings,
        isMultiSettings = _args$isMultiSettings === void 0 ? false : _args$isMultiSettings,
        _args$options = args.options,
        options = _args$options === void 0 ? {} : _args$options;
      containers.forEach(function (container) {
        container = container.lookup();
        /**
         * Settings support multi settings for each container, eg use:
         * settings: { '{ container-id }': { someSettingKey: someSettingValue } } etc.
         */
        var newSettings = isMultiSettings ? settings[container.id] : settings,
          oldSettings = container.settings.toJSON();

        // Clear old oldValues.
        container.oldValues = {};

        // Set oldValues, For each setting is about to change save setting value.
        Object.keys(newSettings).forEach(function (key) {
          container.oldValues[key] = oldSettings[key];
        });

        // If history active, add history transaction with old and new settings.
        if (_this.isHistoryActive()) {
          _this.addToHistory(container, newSettings, container.oldValues);
        }
        $e.internal('document/elements/set-settings', {
          container: container,
          options: options,
          settings: newSettings
        });
      });
    }
  }], [{
    key: "getSubTitle",
    value:
    /**
     * Function getSubTitle().
     *
     * Get sub title by container.
     *
     * @param {{}} args
     *
     * @return {string} sub title
     */
    function getSubTitle(args) {
      var _args$containers3 = args.containers,
        containers = _args$containers3 === void 0 ? [args.container] : _args$containers3,
        _args$settings2 = args.settings,
        settings = _args$settings2 === void 0 ? {} : _args$settings2,
        isMultiSettings = args.isMultiSettings,
        settingsKeys = Object.keys(settings),
        controls = containers[0].controls,
        firstSettingKey = settingsKeys[0];
      var result = '';
      if (!isMultiSettings && 1 === settingsKeys.length && controls && controls[firstSettingKey]) {
        result = controls[firstSettingKey].label;
      }
      return result;
    }

    /**
     * Function restore().
     *
     * Redo/Restore.
     *
     * @param {{}}      historyItem
     * @param {boolean} isRedo
     */
  }, {
    key: "restore",
    value: function restore(historyItem, isRedo) {
      var data = historyItem.get('data');
      historyItem.get('containers').forEach(function (/* Container */container) {
        var changes = data.changes[container.id];
        $e.run('document/elements/settings', {
          container: container,
          settings: isRedo ? changes.new : changes.old,
          options: {
            external: true
          }
        });
      });
    }
  }]);
}($e.modules.editor.document.CommandHistoryDebounceBase);
var _default = exports["default"] = Settings;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/commands/toggle-selection.js":
/*!******************************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/commands/toggle-selection.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"] = exports.ToggleSelection = 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"));
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; })(); }
var ToggleSelection = exports.ToggleSelection = /*#__PURE__*/function (_$e$modules$editor$Co) {
  function ToggleSelection() {
    (0, _classCallCheck2.default)(this, ToggleSelection);
    return _callSuper(this, ToggleSelection, arguments);
  }
  (0, _inherits2.default)(ToggleSelection, _$e$modules$editor$Co);
  return (0, _createClass2.default)(ToggleSelection, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers,
        _args$append = args.append,
        append = _args$append === void 0 ? false : _args$append;
      containers.forEach(function (container) {
        $e.run(elementor.selection.has(container) && append ? 'document/elements/deselect' : 'document/elements/select', args);
      });
    }
  }]);
}($e.modules.editor.CommandContainerBase);
var _default = exports["default"] = ToggleSelection;

/***/ }),

/***/ "../assets/dev/js/editor/document/elements/component.js":
/*!**************************************************************!*\
  !*** ../assets/dev/js/editor/document/elements/component.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.js"));
var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../assets/dev/js/editor/document/elements/commands/index.js"));
var commandsInternal = _interopRequireWildcard(__webpack_require__(/*! ./commands-internal/ */ "../assets/dev/js/editor/document/elements/commands-internal/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _ComponentBase);
  return (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'document/elements';
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }
  }, {
    key: "defaultCommandsInternal",
    value: function defaultCommandsInternal() {
      return this.importCommands(commandsInternal);
    }
  }, {
    key: "defaultUtils",
    value: function defaultUtils() {
      var _this = this;
      return {
        isValidChild: function isValidChild(childModel, parentModel) {
          return parentModel.isValidChild(childModel);
        },
        isValidGrandChild: function isValidGrandChild(childModel, targetContainer) {
          var result;
          var childElType = childModel.get('elType');
          switch (targetContainer.model.get('elType')) {
            case 'document':
              result = true;
              break;
            case 'section':
              result = 'widget' === childElType;
              break;
            default:
              result = false;
          }
          return result;
        },
        isSameElement: function isSameElement(sourceModel, targetContainer) {
          var targetElType = targetContainer.model.get('elType'),
            sourceElType = sourceModel.get('elType');
          if (targetElType !== sourceElType) {
            return false;
          }
          if ('column' === targetElType && 'column' === sourceElType) {
            return true;
          }
          return targetContainer.model.get('isInner') === sourceModel.get('isInner');
        },
        getPasteOptions: function getPasteOptions(sourceModel, targetContainer) {
          var result = {};
          result.isValidChild = targetContainer.model.isValidChild(sourceModel);
          result.isSameElement = _this.utils.isSameElement(sourceModel, targetContainer);
          result.isValidGrandChild = _this.utils.isValidGrandChild(sourceModel, targetContainer);
          return result;
        },
        isPasteEnabled: function isPasteEnabled(targetContainer) {
          var _storage$elements;
          var storage = elementorCommon.storage.get('clipboard');

          // No storage? no paste.
          if (!storage || !(storage !== null && storage !== void 0 && (_storage$elements = storage.elements) !== null && _storage$elements !== void 0 && _storage$elements.length) || 'elementor' !== (storage === null || storage === void 0 ? void 0 : storage.type)) {
            return false;
          }
          if (!(storage.elements[0] instanceof Backbone.Model)) {
            storage.elements[0] = new Backbone.Model(storage.elements[0]);
          }
          var pasteOptions = _this.utils.getPasteOptions(storage.elements[0], targetContainer);
          return Object.values(pasteOptions).some(function (opt) {
            return !!opt;
          });
        },
        allowAddingWidgets: function allowAddingWidgets() {
          var _elementor$config$doc;
          return (_elementor$config$doc = elementor.config.document.panel.allow_adding_widgets) !== null && _elementor$config$doc !== void 0 ? _elementor$config$doc : true;
        },
        showNavigator: function showNavigator() {
          var _elementor$config$doc2;
          return (_elementor$config$doc2 = elementor.config.document.panel.show_navigator) !== null && _elementor$config$doc2 !== void 0 ? _elementor$config$doc2 : true;
        },
        showCopyAndShareButton: function showCopyAndShareButton() {
          var _elementor$config$doc3;
          return (_elementor$config$doc3 = elementor.config.document.panel.show_copy_and_share) !== null && _elementor$config$doc3 !== void 0 ? _elementor$config$doc3 : false;
        },
        getTitleForLibraryClose: function getTitleForLibraryClose() {
          var _elementor$config$doc4;
          return (_elementor$config$doc4 = elementor.config.document.panel.library_close_title) !== null && _elementor$config$doc4 !== void 0 ? _elementor$config$doc4 : '';
        },
        getTitleForPublishButton: function getTitleForPublishButton() {
          var _elementor$config$doc5;
          return (_elementor$config$doc5 = elementor.config.document.panel.publish_button_title) !== null && _elementor$config$doc5 !== void 0 ? _elementor$config$doc5 : '';
        }
      };
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/document/globals/commands/base/disable-enable.js":
/*!********************************************************************************!*\
  !*** ../assets/dev/js/editor/document/globals/commands/base/disable-enable.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 _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 _commandDisableEnable = _interopRequireDefault(__webpack_require__(/*! elementor-document/command-bases/command-disable-enable */ "../assets/dev/js/editor/document/command-bases/command-disable-enable.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; })(); }
var DisableEnable = exports["default"] = /*#__PURE__*/function (_CommandDisableEnable) {
  function DisableEnable() {
    (0, _classCallCheck2.default)(this, DisableEnable);
    return _callSuper(this, DisableEnable, arguments);
  }
  (0, _inherits2.default)(DisableEnable, _CommandDisableEnable);
  return (0, _createClass2.default)(DisableEnable, [{
    key: "getTitle",
    value: function getTitle() {
      return __('Global');
    }
  }], [{
    key: "getName",
    value: function getName() {
      return 'Global';
    }
  }, {
    key: "getEnableCommand",
    value: function getEnableCommand() {
      return 'document/globals/enable';
    }
  }, {
    key: "getDisableCommand",
    value: function getDisableCommand() {
      return 'document/globals/disable';
    }
  }]);
}(_commandDisableEnable.default);

/***/ }),

/***/ "../assets/dev/js/editor/document/globals/commands/disable.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/document/globals/commands/disable.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"] = exports.Disable = void 0;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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 _disableEnable = _interopRequireDefault(__webpack_require__(/*! ./base/disable-enable */ "../assets/dev/js/editor/document/globals/commands/base/disable-enable.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; })(); }
// TODO: Disable is the only command that extends DisableEnable which is async.
var Disable = exports.Disable = /*#__PURE__*/function (_DisableEnable) {
  function Disable() {
    (0, _classCallCheck2.default)(this, Disable);
    return _callSuper(this, Disable, arguments);
  }
  (0, _inherits2.default)(Disable, _DisableEnable);
  return (0, _createClass2.default)(Disable, [{
    key: "apply",
    value: function () {
      var _apply = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(args) {
        var settings, _args$containers, containers, _args$options, options, all;
        return _regenerator.default.wrap(function (_context3) {
          while (1) switch (_context3.prev = _context3.next) {
            case 0:
              settings = args.settings, _args$containers = args.containers, containers = _args$containers === void 0 ? [args.container] : _args$containers, _args$options = args.options, options = _args$options === void 0 ? {} : _args$options;
              all = containers.map(/*#__PURE__*/function () {
                var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(/* Container */container) {
                  var promises;
                  return _regenerator.default.wrap(function (_context2) {
                    while (1) switch (_context2.prev = _context2.next) {
                      case 0:
                        container = container.lookup();
                        promises = []; // TODO rename `options.restore` => `options.unlink`.
                        if (!options.restore) {
                          _context2.next = 1;
                          break;
                        }
                        promises = Object.entries(container.globals.attributes).map(/*#__PURE__*/function () {
                          var _ref3 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(_ref2) {
                            var _ref4, globalKey, globalValue;
                            return _regenerator.default.wrap(function (_context) {
                              while (1) switch (_context.prev = _context.next) {
                                case 0:
                                  _ref4 = (0, _slicedToArray2.default)(_ref2, 2), globalKey = _ref4[0], globalValue = _ref4[1];
                                  if (globalValue) {
                                    _context.next = 1;
                                    break;
                                  }
                                  return _context.abrupt("return");
                                case 1:
                                  return _context.abrupt("return", $e.run('document/globals/unlink', {
                                    container: container,
                                    options: {
                                      external: true
                                    },
                                    globalValue: globalValue,
                                    setting: globalKey
                                  }));
                                case 2:
                                case "end":
                                  return _context.stop();
                              }
                            }, _callee);
                          }));
                          return function (_x3) {
                            return _ref3.apply(this, arguments);
                          };
                        }());
                        _context2.next = 1;
                        return Promise.all(promises);
                      case 1:
                        // Clear globals.
                        Object.keys(settings).forEach(function (setting) {
                          return container.globals.set(setting, '');
                        });
                        $e.internal('document/elements/set-settings', {
                          container: container,
                          settings: {
                            __globals__: container.globals.toJSON()
                          },
                          options: {
                            renderUI: true
                          }
                        });
                      case 2:
                      case "end":
                        return _context2.stop();
                    }
                  }, _callee2);
                }));
                return function (_x2) {
                  return _ref.apply(this, arguments);
                };
              }());
              _context3.next = 1;
              return Promise.all(all);
            case 1:
            case "end":
              return _context3.stop();
          }
        }, _callee3);
      }));
      function apply(_x) {
        return _apply.apply(this, arguments);
      }
      return apply;
    }()
  }]);
}(_disableEnable.default);
var _default = exports["default"] = Disable;

/***/ }),

/***/ "../assets/dev/js/editor/document/globals/commands/enable.js":
/*!*******************************************************************!*\
  !*** ../assets/dev/js/editor/document/globals/commands/enable.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"] = exports.Enable = 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 _disableEnable = _interopRequireDefault(__webpack_require__(/*! ./base/disable-enable */ "../assets/dev/js/editor/document/globals/commands/base/disable-enable.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; })(); }
// Run when a global control value is chosen while the active value is custom.
var Enable = exports.Enable = /*#__PURE__*/function (_DisableEnable) {
  function Enable() {
    (0, _classCallCheck2.default)(this, Enable);
    return _callSuper(this, Enable, arguments);
  }
  (0, _inherits2.default)(Enable, _DisableEnable);
  return (0, _createClass2.default)(Enable, [{
    key: "apply",
    value: function apply(args) {
      var settings = args.settings,
        _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      containers.forEach(function (container) {
        container = container.lookup();
        container.globals.set(settings);
        $e.internal('document/elements/set-settings', {
          container: container,
          settings: {
            __globals__: container.globals.toJSON()
          },
          options: {
            renderUI: true
          }
        });

        // Clear custom local settings.
        Object.values(container.getGroupRelatedControls(settings)).forEach(function (control) {
          container.settings.set(control.name, control.default);
        });
      });
    }
  }]);
}(_disableEnable.default);
var _default = exports["default"] = Enable;

/***/ }),

/***/ "../assets/dev/js/editor/document/globals/commands/index.js":
/*!******************************************************************!*\
  !*** ../assets/dev/js/editor/document/globals/commands/index.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Disable", ({
  enumerable: true,
  get: function get() {
    return _disable.Disable;
  }
}));
Object.defineProperty(exports, "Enable", ({
  enumerable: true,
  get: function get() {
    return _enable.Enable;
  }
}));
Object.defineProperty(exports, "Settings", ({
  enumerable: true,
  get: function get() {
    return _settings.Settings;
  }
}));
Object.defineProperty(exports, "Unlink", ({
  enumerable: true,
  get: function get() {
    return _unlink.Unlink;
  }
}));
var _disable = __webpack_require__(/*! ./disable */ "../assets/dev/js/editor/document/globals/commands/disable.js");
var _enable = __webpack_require__(/*! ./enable */ "../assets/dev/js/editor/document/globals/commands/enable.js");
var _settings = __webpack_require__(/*! ./settings */ "../assets/dev/js/editor/document/globals/commands/settings.js");
var _unlink = __webpack_require__(/*! ./unlink */ "../assets/dev/js/editor/document/globals/commands/unlink.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/globals/commands/settings.js":
/*!*********************************************************************!*\
  !*** ../assets/dev/js/editor/document/globals/commands/settings.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"] = exports.Settings = 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 _settings = _interopRequireDefault(__webpack_require__(/*! elementor-document/elements/commands/settings */ "../assets/dev/js/editor/document/elements/commands/settings.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; })(); }
var Settings = exports.Settings = /*#__PURE__*/function (_$e$modules$editor$do) {
  function Settings() {
    (0, _classCallCheck2.default)(this, Settings);
    return _callSuper(this, Settings, arguments);
  }
  (0, _inherits2.default)(Settings, _$e$modules$editor$do);
  return (0, _createClass2.default)(Settings, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
      this.requireArgumentConstructor('settings', Object, args);
    }
  }, {
    key: "getHistory",
    value: function getHistory(args) {
      var settings = args.settings,
        _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers,
        changes = {};
      containers.forEach(function (container) {
        var id = container.id;
        if (!changes[id]) {
          changes[id] = {};
        }
        changes[id] = {
          old: container.globals.toJSON(),
          new: settings
        };
      });
      var subTitle = _settings.default.getSubTitle(args);
      return {
        containers: containers,
        subTitle: subTitle,
        data: {
          changes: changes
        },
        type: 'change',
        restore: this.constructor.restore
      };
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var settings = args.settings,
        _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2,
        _args$options = args.options,
        options = _args$options === void 0 ? {} : _args$options;
      containers.forEach(function (container) {
        container = container.lookup();
        if (!Object.keys(settings).length) {
          container.globals.clear();
        } else {
          container.globals.set(settings);
        }
        $e.internal('document/elements/set-settings', {
          container: container,
          options: options,
          settings: {
            __globals__: container.globals.toJSON()
          }
        });
      });
    }
  }], [{
    key: "restore",
    value: function restore(historyItem, isRedo) {
      var data = historyItem.get('data');
      historyItem.get('containers').forEach(function (container) {
        var changes = data.changes[container.id];
        $e.run('document/globals/settings', {
          container: container,
          settings: isRedo ? changes.new : changes.old
        });
        container.panel.refresh();
      });
    }
  }]);
}($e.modules.editor.document.CommandHistoryDebounceBase);
var _default = exports["default"] = Settings;

/***/ }),

/***/ "../assets/dev/js/editor/document/globals/commands/unlink.js":
/*!*******************************************************************!*\
  !*** ../assets/dev/js/editor/document/globals/commands/unlink.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"] = exports.Unlink = void 0;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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"));
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; })(); }
// TODO: Add dev-tools CSS to see if widget have globals.
var Unlink = exports.Unlink = /*#__PURE__*/function (_$e$modules$editor$Co) {
  function Unlink() {
    (0, _classCallCheck2.default)(this, Unlink);
    return _callSuper(this, Unlink, arguments);
  }
  (0, _inherits2.default)(Unlink, _$e$modules$editor$Co);
  return (0, _createClass2.default)(Unlink, [{
    key: "validateArgs",
    value: function validateArgs() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      this.requireContainer(args);
      this.requireArgumentType('setting', 'string', args);
      this.requireArgumentType('globalValue', 'string', args);

      // TODO: validate global value is command format.
    }
  }, {
    key: "apply",
    value: function () {
      var _apply = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(args) {
        var _args$containers, containers, setting, globalValue, _args$options, options, localSettings;
        return _regenerator.default.wrap(function (_context2) {
          while (1) switch (_context2.prev = _context2.next) {
            case 0:
              _args$containers = args.containers, containers = _args$containers === void 0 ? [args.container] : _args$containers, setting = args.setting, globalValue = args.globalValue, _args$options = args.options, options = _args$options === void 0 ? {} : _args$options, localSettings = {};
              _context2.next = 1;
              return Promise.all(containers.map(/*#__PURE__*/function () {
                var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(/* Container */container) {
                  var result, _container$controls$s, value, groupPrefix;
                  return _regenerator.default.wrap(function (_context) {
                    while (1) switch (_context.prev = _context.next) {
                      case 0:
                        _context.next = 1;
                        return $e.data.get(globalValue);
                      case 1:
                        result = _context.sent;
                        if (result) {
                          // Prepare global value to mapping.
                          value = result.data.value, groupPrefix = (_container$controls$s = container.controls[setting]) === null || _container$controls$s === void 0 ? void 0 : _container$controls$s.groupPrefix;
                          if (groupPrefix) {
                            Object.entries(value).forEach(function (_ref2) {
                              var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
                                dataKey = _ref3[0],
                                dataValue = _ref3[1];
                              dataKey = dataKey.replace(elementor.config.kit_config.typography_prefix, groupPrefix);
                              localSettings[dataKey] = dataValue;
                            });
                          } else {
                            localSettings[setting] = value;
                          }
                        }
                        return _context.abrupt("return", Promise.resolve());
                      case 2:
                      case "end":
                        return _context.stop();
                    }
                  }, _callee);
                }));
                return function (_x2) {
                  return _ref.apply(this, arguments);
                };
              }()));
            case 1:
              // Restore globals settings as custom local settings.
              if (Object.keys(localSettings).length) {
                $e.run('document/elements/settings', {
                  containers: containers,
                  options: options,
                  settings: localSettings
                });
              }
            case 2:
            case "end":
              return _context2.stop();
          }
        }, _callee2);
      }));
      function apply(_x) {
        return _apply.apply(this, arguments);
      }
      return apply;
    }()
  }]);
}($e.modules.editor.CommandContainerBase);
var _default = exports["default"] = Unlink;

/***/ }),

/***/ "../assets/dev/js/editor/document/globals/component.js":
/*!*************************************************************!*\
  !*** ../assets/dev/js/editor/document/globals/component.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.js"));
var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../assets/dev/js/editor/document/globals/commands/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _ComponentBase);
  return (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'document/globals';
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/document/helper-bc.js":
/*!*****************************************************!*\
  !*** ../assets/dev/js/editor/document/helper-bc.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 BackwardsCompatibility = exports["default"] = /*#__PURE__*/function () {
  function BackwardsCompatibility() {
    (0, _classCallCheck2.default)(this, BackwardsCompatibility);
  }
  return (0, _createClass2.default)(BackwardsCompatibility, null, [{
    key: "findViewRecursive",
    value:
    /**
     * @param {*}        parent
     * @param {string}   key
     * @param {string}   value
     * @param {boolean=} multiple
     * @deprecated since 2.9.0, use `$e.components.get( 'document' ).utils.findViewRecursive( parent, key, value, multiple )` instead.
     */
    function findViewRecursive(parent, key, value) {
      var multiple = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
      elementorDevTools.deprecation.deprecated('findViewRecursive()', '2.9.0', "$e.components.get( 'document' ).utils.findViewRecursive( parent, key, value, multiple )");
      return $e.components.get('document').utils.findViewRecursive(parent, key, value, multiple);
    }

    /**
     * @param {string} id - View ID.
     * @deprecated since 2.9.0, use `$e.components.get( 'document' ).utils.findViewById( id )` instead.
     */
  }, {
    key: "findViewById",
    value: function findViewById(id) {
      elementorDevTools.deprecation.deprecated('findViewById( id )', '2.9.0', "$e.components.get( 'document' ).utils.findViewById( id )");
      return $e.components.get('document').utils.findViewById(id);
    }

    /**
     * @param {string} id - Container ID.
     * @deprecated since 2.9.0, use `$e.components.get( 'document' ).utils.findContainerById( id )` instead.
     */
  }, {
    key: "findContainerById",
    value: function findContainerById(id) {
      elementorDevTools.deprecation.deprecated('findContainerById( id )', '2.9.0', "$e.components.get( 'document' ).utils.findContainerById( id )");
      return $e.components.get('document').utils.findContainerById(id);
    }

    /**
     * @param {*} childModel
     * @param {*} parentModel
     * @deprecated since 3.4.0, use `parentModel.isValidChild( childModel )` instead.
     */
  }, {
    key: "isValidChild",
    value: function isValidChild(childModel, parentModel) {
      elementorDevTools.deprecation.deprecated('isValidChild( childModel, parentModel )', '3.4.0', 'parentModel.isValidChild( childModel )');
      return parentModel.isValidChild(childModel);
    }

    /**
     * @param {*} childModel
     * @param {*} targetContainer
     * @deprecated since 3.4.0, use `$e.components.get( 'document/elements' ).utils.isValidGrandChild( childModel, targetContainer )` instead.
     */
  }, {
    key: "isValidGrandChild",
    value: function isValidGrandChild(childModel, targetContainer) {
      elementorDevTools.deprecation.deprecated('isValidGrandChild( childModel, targetContainer )', '3.4.0', "$e.components.get( 'document/elements' ).utils.isValidGrandChild( childModel, targetContainer )");
      return $e.components.get('document/elements').utils.isValidGrandChild(childModel, targetContainer);
    }

    /**
     * @param {*} sourceModel
     * @param {*} targetContainer
     * @deprecated since 3.4.0, use `$e.components.get( 'document/elements' ).utils.isSameElement( sourceModel, targetContainer )` instead.
     */
  }, {
    key: "isSameElement",
    value: function isSameElement(sourceModel, targetContainer) {
      elementorDevTools.deprecation.deprecated('isSameElement( sourceModel, targetContainer )', '3.4.0', "$e.components.get( 'document/elements' ).utils.isSameElement( sourceModel, targetContainer )");
      return $e.components.get('document/elements').utils.isSameElement(sourceModel, targetContainer);
    }

    /**
     * @param {*} sourceModel
     * @param {*} targetContainer
     * @deprecated since 3.4.0, use `$e.components.get( 'document/elements' ).utils.getPasteOptions( sourceModel, targetContainer )` instead.
     */
  }, {
    key: "getPasteOptions",
    value: function getPasteOptions(sourceModel, targetContainer) {
      elementorDevTools.deprecation.deprecated('getPasteOptions( sourceModel, targetContainer )', '3.4.0', "$e.components.get( 'document/elements' ).utils.getPasteOptions( sourceModel, targetContainer )");
      return $e.components.get('document/elements').utils.getPasteOptions(sourceModel, targetContainer);
    }

    /**
     * @param {*} targetContainer
     * @deprecated since 3.4.0, use `$e.components.get( 'document/elements' ).utils.isPasteEnabled( targetContainer )` instead.
     */
  }, {
    key: "isPasteEnabled",
    value: function isPasteEnabled(targetContainer) {
      elementorDevTools.deprecation.deprecated('isPasteEnabled( targetContainer )', '3.4.0', "$e.components.get( 'document/elements' ).utils.isPasteEnabled( targetContainer )");
      return $e.components.get('document/elements').utils.isPasteEnabled(targetContainer);
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/document/history/commands/base/command-history-internal-base.js":
/*!***********************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/history/commands/base/command-history-internal-base.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
/**
 * @typedef {import ('elementor/modules/history/assets/js/module')} HistoryManager
 */
var CommandHistoryInternalBase = exports["default"] = /*#__PURE__*/function (_$e$modules$editor$Co) {
  function CommandHistoryInternalBase() {
    (0, _classCallCheck2.default)(this, CommandHistoryInternalBase);
    return _callSuper(this, CommandHistoryInternalBase, arguments);
  }
  (0, _inherits2.default)(CommandHistoryInternalBase, _$e$modules$editor$Co);
  return (0, _createClass2.default)(CommandHistoryInternalBase, [{
    key: "initialize",
    value: function initialize(args) {
      _superPropGet(CommandHistoryInternalBase, "initialize", this, 3)([args]);

      /**
       * @type {HistoryManager}
       */
      this.history = elementor.documents.getCurrent().history;
    }
  }]);
}($e.modules.editor.CommandContainerInternalBase);

/***/ }),

/***/ "../assets/dev/js/editor/document/history/commands/do.js":
/*!***************************************************************!*\
  !*** ../assets/dev/js/editor/document/history/commands/do.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"] = exports.Do = 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"));
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; })(); }
var Do = exports.Do = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Do() {
    (0, _classCallCheck2.default)(this, Do);
    return _callSuper(this, Do, arguments);
  }
  (0, _inherits2.default)(Do, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Do, [{
    key: "apply",
    value: function apply(args) {
      var index = args.index;
      return elementor.documents.getCurrent().history.doItem(index);
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Do;

/***/ }),

/***/ "../assets/dev/js/editor/document/history/commands/index.js":
/*!******************************************************************!*\
  !*** ../assets/dev/js/editor/document/history/commands/index.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Do", ({
  enumerable: true,
  get: function get() {
    return _do.Do;
  }
}));
Object.defineProperty(exports, "Redo", ({
  enumerable: true,
  get: function get() {
    return _redo.Redo;
  }
}));
Object.defineProperty(exports, "Undo", ({
  enumerable: true,
  get: function get() {
    return _undo.Undo;
  }
}));
Object.defineProperty(exports, "UndoAll", ({
  enumerable: true,
  get: function get() {
    return _undoAll.UndoAll;
  }
}));
var _do = __webpack_require__(/*! ./do */ "../assets/dev/js/editor/document/history/commands/do.js");
var _redo = __webpack_require__(/*! ./redo */ "../assets/dev/js/editor/document/history/commands/redo.js");
var _undo = __webpack_require__(/*! ./undo */ "../assets/dev/js/editor/document/history/commands/undo.js");
var _undoAll = __webpack_require__(/*! ./undo-all */ "../assets/dev/js/editor/document/history/commands/undo-all.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/history/commands/internal/add-transaction.js":
/*!*************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/history/commands/internal/add-transaction.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"] = exports.AddTransaction = 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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _commandHistoryInternalBase = _interopRequireDefault(__webpack_require__(/*! ../base/command-history-internal-base */ "../assets/dev/js/editor/document/history/commands/base/command-history-internal-base.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var AddTransaction = exports.AddTransaction = /*#__PURE__*/function (_CommandHistoryIntern) {
  function AddTransaction() {
    (0, _classCallCheck2.default)(this, AddTransaction);
    return _callSuper(this, AddTransaction, arguments);
  }
  (0, _inherits2.default)(AddTransaction, _CommandHistoryIntern);
  return (0, _createClass2.default)(AddTransaction, [{
    key: "initialize",
    value: function initialize(args) {
      _superPropGet(AddTransaction, "initialize", this, 3)([args]);

      /**
       * Debounce always send 'add-transaction' with title & subTitle, when the transaction
       * already started, there is no need to save those args they are useless.
       */
      if (this.component.isTransactionStarted()) {
        delete args.title;
        delete args.subTitle;
      }
    }
  }, {
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer();
      this.requireArgumentType('type', 'string', args);
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var currentId = this.history.getCurrentId();
      if (currentId) {
        // If log already started chain his historyId.
        args.id = currentId;
      }
      args = this.component.normalizeLogTitle(args);
      this.component.transactions.push(args);
    }
  }]);
}(_commandHistoryInternalBase.default);
var _default = exports["default"] = AddTransaction;

/***/ }),

/***/ "../assets/dev/js/editor/document/history/commands/internal/clear-transaction.js":
/*!***************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/history/commands/internal/clear-transaction.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"] = exports.ClearTransaction = 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"));
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; })(); }
var ClearTransaction = exports.ClearTransaction = /*#__PURE__*/function (_$e$modules$CommandIn) {
  function ClearTransaction() {
    (0, _classCallCheck2.default)(this, ClearTransaction);
    return _callSuper(this, ClearTransaction, arguments);
  }
  (0, _inherits2.default)(ClearTransaction, _$e$modules$CommandIn);
  return (0, _createClass2.default)(ClearTransaction, [{
    key: "apply",
    value: function apply() {
      this.component.transactions = [];
    }
  }]);
}($e.modules.CommandInternalBase);
var _default = exports["default"] = ClearTransaction;

/***/ }),

/***/ "../assets/dev/js/editor/document/history/commands/internal/delete-log.js":
/*!********************************************************************************!*\
  !*** ../assets/dev/js/editor/document/history/commands/internal/delete-log.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"] = exports.DeleteLog = 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 _commandHistoryInternalBase = _interopRequireDefault(__webpack_require__(/*! ../base/command-history-internal-base */ "../assets/dev/js/editor/document/history/commands/base/command-history-internal-base.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; })(); }
var DeleteLog = exports.DeleteLog = /*#__PURE__*/function (_CommandHistoryIntern) {
  function DeleteLog() {
    (0, _classCallCheck2.default)(this, DeleteLog);
    return _callSuper(this, DeleteLog, arguments);
  }
  (0, _inherits2.default)(DeleteLog, _CommandHistoryIntern);
  return (0, _createClass2.default)(DeleteLog, [{
    key: "apply",
    value: function apply(args) {
      if (args.id) {
        this.history.deleteItem(args.id);
      }
    }
  }]);
}(_commandHistoryInternalBase.default);
var _default = exports["default"] = DeleteLog;

/***/ }),

/***/ "../assets/dev/js/editor/document/history/commands/internal/end-log.js":
/*!*****************************************************************************!*\
  !*** ../assets/dev/js/editor/document/history/commands/internal/end-log.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"] = exports.EndLog = 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 _commandHistoryInternalBase = _interopRequireDefault(__webpack_require__(/*! ../base/command-history-internal-base */ "../assets/dev/js/editor/document/history/commands/base/command-history-internal-base.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; })(); }
var EndLog = exports.EndLog = /*#__PURE__*/function (_CommandHistoryIntern) {
  function EndLog() {
    (0, _classCallCheck2.default)(this, EndLog);
    return _callSuper(this, EndLog, arguments);
  }
  (0, _inherits2.default)(EndLog, _CommandHistoryIntern);
  return (0, _createClass2.default)(EndLog, [{
    key: "apply",
    value: function apply(args) {
      if (args.id) {
        this.history.endItem(args.id);
      }
    }
  }]);
}(_commandHistoryInternalBase.default);
var _default = exports["default"] = EndLog;

/***/ }),

/***/ "../assets/dev/js/editor/document/history/commands/internal/end-transaction.js":
/*!*************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/history/commands/internal/end-transaction.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"] = exports.EndTransaction = 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 _commandHistoryInternalBase = _interopRequireDefault(__webpack_require__(/*! ../base/command-history-internal-base */ "../assets/dev/js/editor/document/history/commands/base/command-history-internal-base.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; })(); }
var EndTransaction = exports.EndTransaction = /*#__PURE__*/function (_CommandInternalBase) {
  function EndTransaction() {
    (0, _classCallCheck2.default)(this, EndTransaction);
    return _callSuper(this, EndTransaction, arguments);
  }
  (0, _inherits2.default)(EndTransaction, _CommandInternalBase);
  return (0, _createClass2.default)(EndTransaction, [{
    key: "apply",
    value: function apply() {
      if (!this.component.isTransactionStarted()) {
        return;
      }
      var firstItem = this.component.transactions[0],
        type = firstItem.type,
        transactions = this.component.mergeTransactions(this.component.transactions);
      var _firstItem$title = firstItem.title,
        title = _firstItem$title === void 0 ? '' : _firstItem$title,
        _firstItem$subTitle = firstItem.subTitle,
        subTitle = _firstItem$subTitle === void 0 ? '' : _firstItem$subTitle;

      // 'elements' title for multiple containers.
      if (transactions.length > 1) {
        title = __('Elements', 'elementor');
        subTitle = '';
      }
      var history = {
        title: title,
        subTitle: subTitle,
        type: type
      };

      // If firstItem have id already it means that log already started for that transaction.
      if (firstItem.id) {
        history.id = firstItem.id;
      }
      var historyId = $e.internal('document/history/start-log', history);
      Object.values(transactions).forEach(function (item) {
        var itemArgs = item;

        // If log already started chain his historyId.
        if (firstItem.id) {
          itemArgs.id = firstItem.id;
        }
        $e.internal('document/history/log-sub-item', itemArgs);
      });
      $e.internal('document/history/end-log', {
        id: historyId
      });

      // Clear transactions before leave.
      $e.internal('document/history/clear-transaction');
    }
  }]);
}(_commandHistoryInternalBase.default);
var _default = exports["default"] = EndTransaction;

/***/ }),

/***/ "../assets/dev/js/editor/document/history/commands/internal/index.js":
/*!***************************************************************************!*\
  !*** ../assets/dev/js/editor/document/history/commands/internal/index.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "AddTransaction", ({
  enumerable: true,
  get: function get() {
    return _addTransaction.AddTransaction;
  }
}));
Object.defineProperty(exports, "ClearTransaction", ({
  enumerable: true,
  get: function get() {
    return _clearTransaction.ClearTransaction;
  }
}));
Object.defineProperty(exports, "DeleteLog", ({
  enumerable: true,
  get: function get() {
    return _deleteLog.DeleteLog;
  }
}));
Object.defineProperty(exports, "EndLog", ({
  enumerable: true,
  get: function get() {
    return _endLog.EndLog;
  }
}));
Object.defineProperty(exports, "EndTransaction", ({
  enumerable: true,
  get: function get() {
    return _endTransaction.EndTransaction;
  }
}));
Object.defineProperty(exports, "LogSubItem", ({
  enumerable: true,
  get: function get() {
    return _logSubItem.LogSubItem;
  }
}));
Object.defineProperty(exports, "StartLog", ({
  enumerable: true,
  get: function get() {
    return _startLog.StartLog;
  }
}));
var _addTransaction = __webpack_require__(/*! ./add-transaction */ "../assets/dev/js/editor/document/history/commands/internal/add-transaction.js");
var _clearTransaction = __webpack_require__(/*! ./clear-transaction */ "../assets/dev/js/editor/document/history/commands/internal/clear-transaction.js");
var _deleteLog = __webpack_require__(/*! ./delete-log */ "../assets/dev/js/editor/document/history/commands/internal/delete-log.js");
var _endLog = __webpack_require__(/*! ./end-log */ "../assets/dev/js/editor/document/history/commands/internal/end-log.js");
var _endTransaction = __webpack_require__(/*! ./end-transaction */ "../assets/dev/js/editor/document/history/commands/internal/end-transaction.js");
var _logSubItem = __webpack_require__(/*! ./log-sub-item */ "../assets/dev/js/editor/document/history/commands/internal/log-sub-item.js");
var _startLog = __webpack_require__(/*! ./start-log */ "../assets/dev/js/editor/document/history/commands/internal/start-log.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/history/commands/internal/log-sub-item.js":
/*!**********************************************************************************!*\
  !*** ../assets/dev/js/editor/document/history/commands/internal/log-sub-item.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"] = exports.LogSubItem = 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 _commandHistoryInternalBase = _interopRequireDefault(__webpack_require__(/*! ../base/command-history-internal-base */ "../assets/dev/js/editor/document/history/commands/base/command-history-internal-base.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; })(); }
var LogSubItem = exports.LogSubItem = /*#__PURE__*/function (_CommandHistoryIntern) {
  function LogSubItem() {
    (0, _classCallCheck2.default)(this, LogSubItem);
    return _callSuper(this, LogSubItem, arguments);
  }
  (0, _inherits2.default)(LogSubItem, _CommandHistoryIntern);
  return (0, _createClass2.default)(LogSubItem, [{
    key: "apply",
    value: function apply(args) {
      if (!this.history.getActive()) {
        return;
      }
      var id = args.id || this.history.getCurrentId();
      args = this.component.normalizeLogTitle(args);
      var items = this.history.getItems(),
        item = items.findWhere({
          id: id
        });
      if (!item) {
        throw new Error('History item not found.');
      }

      /**
       * Sometimes `args.id` passed to `LogSubItem`, to add sub item for specific id.
       * this `id` should not be passed as sub-item.
       */
      if (args.id) {
        delete args.id;
      }
      item.get('items').unshift(args);
    }
  }]);
}(_commandHistoryInternalBase.default);
var _default = exports["default"] = LogSubItem;

/***/ }),

/***/ "../assets/dev/js/editor/document/history/commands/internal/start-log.js":
/*!*******************************************************************************!*\
  !*** ../assets/dev/js/editor/document/history/commands/internal/start-log.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"] = exports.StartLog = 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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _commandHistoryInternalBase = _interopRequireDefault(__webpack_require__(/*! ../base/command-history-internal-base */ "../assets/dev/js/editor/document/history/commands/base/command-history-internal-base.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var StartLog = exports.StartLog = /*#__PURE__*/function (_CommandHistoryIntern) {
  function StartLog() {
    (0, _classCallCheck2.default)(this, StartLog);
    return _callSuper(this, StartLog, arguments);
  }
  (0, _inherits2.default)(StartLog, _CommandHistoryIntern);
  return (0, _createClass2.default)(StartLog, [{
    key: "initialize",
    value: function initialize(args) {
      _superPropGet(StartLog, "initialize", this, 3)([args]);
      if (this.history.isItemStarted() || args.id) {
        this.isSubItem = true;
        return;
      }
      this.args = this.component.normalizeLogTitle(args);
    }
  }, {
    key: "validateArgs",
    value: function validateArgs(args) {
      if (!this.isSubItem) {
        this.requireArgumentType('type', 'string', args);
        this.requireArgumentType('title', 'string', args);
      }
    }
  }, {
    key: "apply",
    value: function apply(args) {
      if (this.isSubItem) {
        $e.internal('document/history/log-sub-item', args);
        return null;
      }
      return this.history.startItem(args);
    }
  }]);
}(_commandHistoryInternalBase.default);
var _default = exports["default"] = StartLog;

/***/ }),

/***/ "../assets/dev/js/editor/document/history/commands/redo.js":
/*!*****************************************************************!*\
  !*** ../assets/dev/js/editor/document/history/commands/redo.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"] = exports.Redo = 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"));
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; })(); }
var Redo = exports.Redo = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Redo() {
    (0, _classCallCheck2.default)(this, Redo);
    return _callSuper(this, Redo, arguments);
  }
  (0, _inherits2.default)(Redo, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Redo, [{
    key: "apply",
    value: function apply() {
      var _historyItem$get;
      var historyItem = elementor.documents.getCurrent().history.navigate(true);

      // The history item that was just redone.
      return {
        originHistoryItemId: (_historyItem$get = historyItem === null || historyItem === void 0 ? void 0 : historyItem.get('id')) !== null && _historyItem$get !== void 0 ? _historyItem$get : null
      };
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Redo;

/***/ }),

/***/ "../assets/dev/js/editor/document/history/commands/undo-all.js":
/*!*********************************************************************!*\
  !*** ../assets/dev/js/editor/document/history/commands/undo-all.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"] = exports.UndoAll = 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"));
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; })(); }
var UndoAll = exports.UndoAll = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function UndoAll() {
    (0, _classCallCheck2.default)(this, UndoAll);
    return _callSuper(this, UndoAll, arguments);
  }
  (0, _inherits2.default)(UndoAll, _$e$modules$CommandBa);
  return (0, _createClass2.default)(UndoAll, [{
    key: "apply",
    value: function apply(args) {
      var document = args.document;
      document.history.doItem(document.history.getItems().length - 1);
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = UndoAll;

/***/ }),

/***/ "../assets/dev/js/editor/document/history/commands/undo.js":
/*!*****************************************************************!*\
  !*** ../assets/dev/js/editor/document/history/commands/undo.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"] = exports.Undo = 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"));
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; })(); }
var Undo = exports.Undo = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Undo() {
    (0, _classCallCheck2.default)(this, Undo);
    return _callSuper(this, Undo, arguments);
  }
  (0, _inherits2.default)(Undo, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Undo, [{
    key: "apply",
    value: function apply() {
      var _historyItem$get;
      var historyItem = elementor.documents.getCurrent().history.navigate();

      // The history item that was just undone.
      return {
        originHistoryItemId: (_historyItem$get = historyItem === null || historyItem === void 0 ? void 0 : historyItem.get('id')) !== null && _historyItem$get !== void 0 ? _historyItem$get : null
      };
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Undo;

/***/ }),

/***/ "../assets/dev/js/editor/document/history/component.js":
/*!*************************************************************!*\
  !*** ../assets/dev/js/editor/document/history/component.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");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.js"));
var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../assets/dev/js/editor/document/history/commands/index.js"));
var commandsInternal = _interopRequireWildcard(__webpack_require__(/*! ./commands/internal/ */ "../assets/dev/js/editor/document/history/commands/internal/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _ComponentBase);
  return (0, _createClass2.default)(Component, [{
    key: "__construct",
    value: function __construct(args) {
      _superPropGet(Component, "__construct", this, 3)([args]);

      /**
       * Transactions holder.
       *
       * @type {Array}
       */
      this.transactions = [];
    }
  }, {
    key: "getNamespace",
    value: function getNamespace() {
      return 'document/history';
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }
  }, {
    key: "defaultCommandsInternal",
    value: function defaultCommandsInternal() {
      return this.importCommands(commandsInternal);
    }
  }, {
    key: "normalizeLogTitle",
    value: function normalizeLogTitle(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      if (!args.title && containers[0]) {
        if (1 === containers.length) {
          args.title = containers[0].label;
        } else {
          args.title = __('Elements', 'elementor');
        }
      }
      return args;
    }
  }, {
    key: "mergeTransactions",
    value: function mergeTransactions(transactions) {
      var result = {};
      transactions.forEach(function (itemArgs) {
        // If no containers at the current transaction.
        if (!itemArgs.container && !itemArgs.containers) {
          return;
        }
        var _itemArgs$containers = itemArgs.containers,
          containers = _itemArgs$containers === void 0 ? [itemArgs.container] : _itemArgs$containers;
        if (containers) {
          containers.forEach(function (container) {
            if (!itemArgs.data) {
              return;
            }

            // Replace new changes by current itemArgs.
            if (result[container.id]) {
              result[container.id].data.changes[container.id].new = itemArgs.data.changes[container.id].new;
              return;
            }
            result[container.id] = itemArgs;
          });
        }
      });
      return result;
    }
  }, {
    key: "isTransactionStarted",
    value: function isTransactionStarted() {
      return Boolean(this.transactions.length);
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/document/elements/base/reset-layout-base.js":
/*!***********************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/document/elements/base/reset-layout-base.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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/data/after */ "../modules/web-cli/assets/js/modules/hooks/data/after.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('../../../../../../container/container')} Container
 */
var ResetLayoutBase = exports["default"] = /*#__PURE__*/function (_After) {
  function ResetLayoutBase() {
    (0, _classCallCheck2.default)(this, ResetLayoutBase);
    return _callSuper(this, ResetLayoutBase, arguments);
  }
  (0, _inherits2.default)(ResetLayoutBase, _After);
  return (0, _createClass2.default)(ResetLayoutBase, [{
    key: "getConditions",
    value: function getConditions() {
      // On `document/elements/move` do not fire the hook!.
      return !$e.commands.isCurrentFirstTrace('document/elements/move');
    }

    /**
     * @inheritDoc
     *
     * @param {{}}                         args
     * @param {Container|Array<Container>} containers
     */
  }, {
    key: "apply",
    value: function apply(args, containers) {
      if (!Array.isArray(containers)) {
        containers = [containers];
      }
      containers.forEach(function (/** Container*/container) {
        return container.parent.view.resetLayout(false);
      });
    }
  }]);
}(_after.default);

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/document/elements/create/create-section-columns-reset-layout.js":
/*!*******************************************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/document/elements/create/create-section-columns-reset-layout.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"] = exports.CreateSectionColumnsResetLayout = 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 _resetLayoutBase = _interopRequireDefault(__webpack_require__(/*! ../base/reset-layout-base */ "../assets/dev/js/editor/document/hooks/data/document/elements/base/reset-layout-base.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; })(); }
var CreateSectionColumnsResetLayout = exports.CreateSectionColumnsResetLayout = /*#__PURE__*/function (_ResetLayoutBase) {
  function CreateSectionColumnsResetLayout() {
    (0, _classCallCheck2.default)(this, CreateSectionColumnsResetLayout);
    return _callSuper(this, CreateSectionColumnsResetLayout, arguments);
  }
  (0, _inherits2.default)(CreateSectionColumnsResetLayout, _ResetLayoutBase);
  return (0, _createClass2.default)(CreateSectionColumnsResetLayout, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/create';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'section-columns-reset-layout--document/elements/create';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'section';
    }
  }]);
}(_resetLayoutBase.default);
var _default = exports["default"] = CreateSectionColumnsResetLayout;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/document/elements/create/index.js":
/*!*************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/document/elements/create/index.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "CreateSectionColumnsResetLayout", ({
  enumerable: true,
  get: function get() {
    return _createSectionColumnsResetLayout.CreateSectionColumnsResetLayout;
  }
}));
Object.defineProperty(exports, "InnerSectionColumns", ({
  enumerable: true,
  get: function get() {
    return _innerSectionColumns.InnerSectionColumns;
  }
}));
Object.defineProperty(exports, "IsValidChild", ({
  enumerable: true,
  get: function get() {
    return _isValidChild.IsValidChild;
  }
}));
Object.defineProperty(exports, "SectionColumns", ({
  enumerable: true,
  get: function get() {
    return _sectionColumns.SectionColumns;
  }
}));
Object.defineProperty(exports, "SectionColumnsLimit", ({
  enumerable: true,
  get: function get() {
    return _sectionColumnsLimit.SectionColumnsLimit;
  }
}));
var _createSectionColumnsResetLayout = __webpack_require__(/*! ./create-section-columns-reset-layout */ "../assets/dev/js/editor/document/hooks/data/document/elements/create/create-section-columns-reset-layout.js");
var _innerSectionColumns = __webpack_require__(/*! ./inner-section-columns */ "../assets/dev/js/editor/document/hooks/data/document/elements/create/inner-section-columns.js");
var _isValidChild = __webpack_require__(/*! ./is-valid-child */ "../assets/dev/js/editor/document/hooks/data/document/elements/create/is-valid-child.js");
var _sectionColumns = __webpack_require__(/*! ./section-columns */ "../assets/dev/js/editor/document/hooks/data/document/elements/create/section-columns.js");
var _sectionColumnsLimit = __webpack_require__(/*! ./section-columns-limit */ "../assets/dev/js/editor/document/hooks/data/document/elements/create/section-columns-limit.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/document/elements/create/inner-section-columns.js":
/*!*****************************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/document/elements/create/inner-section-columns.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"] = exports.InnerSectionColumns = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/data/after */ "../modules/web-cli/assets/js/modules/hooks/data/after.js"));
var _helper = _interopRequireDefault(__webpack_require__(/*! ../helper */ "../assets/dev/js/editor/document/hooks/data/document/elements/helper.js"));
var _section = __webpack_require__(/*! elementor-elements/views/section */ "../assets/dev/js/editor/elements/views/section.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('../../../../../../container/container')} Container
 */
var InnerSectionColumns = exports.InnerSectionColumns = /*#__PURE__*/function (_After) {
  function InnerSectionColumns() {
    (0, _classCallCheck2.default)(this, InnerSectionColumns);
    return _callSuper(this, InnerSectionColumns, arguments);
  }
  (0, _inherits2.default)(InnerSectionColumns, _After);
  return (0, _createClass2.default)(InnerSectionColumns, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/create';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'create-inner-section-columns';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'column';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return args.model.isInner && !args.model.elements;
    }

    /**
     * @inheritDoc
     *
     * @param {{}}                         args
     * @param {Container|Array<Container>} containers
     */
  }, {
    key: "apply",
    value: function apply(args, containers) {
      var _args$structure = args.structure,
        structure = _args$structure === void 0 ? '20' : _args$structure,
        _args$options = args.options,
        options = _args$options === void 0 ? {} : _args$options;
      if (!Array.isArray(containers)) {
        containers = [containers];
      }
      _helper.default.createSectionColumns(containers, _section.DEFAULT_INNER_SECTION_COLUMNS, options, structure);
    }
  }]);
}(_after.default);
var _default = exports["default"] = InnerSectionColumns;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/document/elements/create/is-valid-child.js":
/*!**********************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/document/elements/create/is-valid-child.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"] = exports.IsValidChild = 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 _dependency = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/data/dependency */ "../modules/web-cli/assets/js/modules/hooks/data/dependency.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; })(); }
var IsValidChild = exports.IsValidChild = /*#__PURE__*/function (_Dependency) {
  function IsValidChild() {
    (0, _classCallCheck2.default)(this, IsValidChild);
    return _callSuper(this, IsValidChild, arguments);
  }
  (0, _inherits2.default)(IsValidChild, _Dependency);
  return (0, _createClass2.default)(IsValidChild, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/create';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'is-valid-child';
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers,
        _args$model = args.model,
        model = _args$model === void 0 ? {} : _args$model,
        modelToCreate = new Backbone.Model(model);
      return containers.some(function (/* Container */container) {
        return container.model.isValidChild(modelToCreate);
      });
    }
  }]);
}(_dependency.default);
var _default = exports["default"] = IsValidChild;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/document/elements/create/section-columns-limit.js":
/*!*****************************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/document/elements/create/section-columns-limit.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"] = exports.SectionColumnsLimit = 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 _dependency = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/data/dependency */ "../modules/web-cli/assets/js/modules/hooks/data/dependency.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; })(); }
var SectionColumnsLimit = exports.SectionColumnsLimit = /*#__PURE__*/function (_Dependency) {
  function SectionColumnsLimit() {
    (0, _classCallCheck2.default)(this, SectionColumnsLimit);
    return _callSuper(this, SectionColumnsLimit, arguments);
  }
  (0, _inherits2.default)(SectionColumnsLimit, _Dependency);
  return (0, _createClass2.default)(SectionColumnsLimit, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/create';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'section-columns-limit';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'section';
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;

      // If one of the targets have maximum columns reached break the command.
      return !containers.some(function (/** Container*/container) {
        return container.view.isCollectionFilled();
      });
    }
  }]);
}(_dependency.default);
var _default = exports["default"] = SectionColumnsLimit;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/document/elements/create/section-columns.js":
/*!***********************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/document/elements/create/section-columns.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"] = exports.SectionColumns = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/data/after */ "../modules/web-cli/assets/js/modules/hooks/data/after.js"));
var _helper = _interopRequireDefault(__webpack_require__(/*! ../helper */ "../assets/dev/js/editor/document/hooks/data/document/elements/helper.js"));
var _section = __webpack_require__(/*! elementor-elements/views/section */ "../assets/dev/js/editor/elements/views/section.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('../../../../../../container/container')} Container
 */
var SectionColumns = exports.SectionColumns = /*#__PURE__*/function (_After) {
  function SectionColumns() {
    (0, _classCallCheck2.default)(this, SectionColumns);
    return _callSuper(this, SectionColumns, arguments);
  }
  (0, _inherits2.default)(SectionColumns, _After);
  return (0, _createClass2.default)(SectionColumns, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/create';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'create-section-columns';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'document';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return !args.model.elements && 'section' === args.model.elType;
    }

    /**
     * @inheritDoc
     *
     * @param {{}}                         args
     * @param {Container|Array<Container>} containers
     */
  }, {
    key: "apply",
    value: function apply(args, containers) {
      var _args$structure = args.structure,
        structure = _args$structure === void 0 ? false : _args$structure,
        _args$options = args.options,
        options = _args$options === void 0 ? {} : _args$options;
      if (!Array.isArray(containers)) {
        containers = [containers];
      }
      var _args$columns = args.columns,
        columns = _args$columns === void 0 ? 1 : _args$columns;
      if (args.model.isInner && 1 === columns) {
        columns = _section.DEFAULT_INNER_SECTION_COLUMNS;
      }
      _helper.default.createSectionColumns(containers, columns, options, structure);
    }
  }]);
}(_after.default);
var _default = exports["default"] = SectionColumns;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/document/elements/delete/create-column-for-empty-section.js":
/*!***************************************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/document/elements/delete/create-column-for-empty-section.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"] = exports.CreateColumnForEmptySection = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/data/after */ "../modules/web-cli/assets/js/modules/hooks/data/after.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('../../../../../../container/container')} Container
 */
var CreateColumnForEmptySection = exports.CreateColumnForEmptySection = /*#__PURE__*/function (_After) {
  function CreateColumnForEmptySection() {
    (0, _classCallCheck2.default)(this, CreateColumnForEmptySection);
    return _callSuper(this, CreateColumnForEmptySection, arguments);
  }
  (0, _inherits2.default)(CreateColumnForEmptySection, _After);
  return (0, _createClass2.default)(CreateColumnForEmptySection, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/delete';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'create-column-for-empty-section--document/elements/delete';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'column';
    }
  }, {
    key: "getConditions",
    value: function getConditions() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;

      // Validate also that its a section, this is hook should not work with new flex container.
      return containers.some(function (container) {
        return 'section' === container.parent.type && 0 === container.parent.children.length;
      });
    }

    /**
     * @inheritDoc
     *
     * @param {{}}                         args
     * @param {Container|Array<Container>} containers
     */
  }, {
    key: "apply",
    value: function apply(args, containers) {
      if (!Array.isArray(containers)) {
        containers = [containers];
      }
      containers.forEach(function (/** Container*/container) {
        var parent = container.parent;

        // If deleted the last column, should recreate it.
        if (0 === parent.children.length) {
          $e.run('document/elements/create', {
            container: parent,
            model: {
              elType: 'column'
            }
          });
        }
      });
    }
  }]);
}(_after.default);
var _default = exports["default"] = CreateColumnForEmptySection;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/document/elements/delete/delete-column-columns-reset-layout.js":
/*!******************************************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/document/elements/delete/delete-column-columns-reset-layout.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"] = exports.DeleteColumnColumnsResetLayout = 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 _resetLayoutBase = _interopRequireDefault(__webpack_require__(/*! ../base/reset-layout-base */ "../assets/dev/js/editor/document/hooks/data/document/elements/base/reset-layout-base.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; })(); }
var DeleteColumnColumnsResetLayout = exports.DeleteColumnColumnsResetLayout = /*#__PURE__*/function (_ResetLayoutBase) {
  function DeleteColumnColumnsResetLayout() {
    (0, _classCallCheck2.default)(this, DeleteColumnColumnsResetLayout);
    return _callSuper(this, DeleteColumnColumnsResetLayout, arguments);
  }
  (0, _inherits2.default)(DeleteColumnColumnsResetLayout, _ResetLayoutBase);
  return (0, _createClass2.default)(DeleteColumnColumnsResetLayout, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/delete';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'section-columns-reset-layout--document/elements/delete';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'column';
    }
  }]);
}(_resetLayoutBase.default);
var _default = exports["default"] = DeleteColumnColumnsResetLayout;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/document/elements/delete/index.js":
/*!*************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/document/elements/delete/index.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "CreateColumnForEmptySection", ({
  enumerable: true,
  get: function get() {
    return _createColumnForEmptySection.CreateColumnForEmptySection;
  }
}));
Object.defineProperty(exports, "DeleteColumnColumnsResetLayout", ({
  enumerable: true,
  get: function get() {
    return _deleteColumnColumnsResetLayout.DeleteColumnColumnsResetLayout;
  }
}));
var _createColumnForEmptySection = __webpack_require__(/*! ./create-column-for-empty-section */ "../assets/dev/js/editor/document/hooks/data/document/elements/delete/create-column-for-empty-section.js");
var _deleteColumnColumnsResetLayout = __webpack_require__(/*! ./delete-column-columns-reset-layout */ "../assets/dev/js/editor/document/hooks/data/document/elements/delete/delete-column-columns-reset-layout.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/document/elements/helper.js":
/*!*******************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/document/elements/helper.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 _commands = __webpack_require__(/*! elementor-document/elements/commands */ "../assets/dev/js/editor/document/elements/commands/index.js");
var Helper = exports["default"] = /*#__PURE__*/function () {
  function Helper() {
    (0, _classCallCheck2.default)(this, Helper);
  }
  return (0, _createClass2.default)(Helper, null, [{
    key: "createSectionColumns",
    value: function createSectionColumns(containers, columns, options) {
      var structure = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
      containers.forEach(function (/** Container*/container) {
        for (var loopIndex = 0; loopIndex < columns; loopIndex++) {
          var model = {
            id: elementorCommon.helpers.getUniqueId(),
            elType: 'column',
            settings: {},
            elements: []
          };

          /**
           * TODO: Try improve performance of using 'document/elements/create` instead of manual create.
           */
          container.view.addElement(model, {
            edit: false
          });

          /**
           * Manual history & not using of `$e.run('document/elements/create')`
           * For performance reasons.
           */
          $e.internal('document/history/log-sub-item', {
            container: container,
            type: 'sub-add',
            restore: _commands.Create.restore,
            options: options,
            data: {
              containerToRestore: container,
              modelToRestore: model
            }
          });
        }
      });
      if (structure) {
        containers.forEach(function (/* Container */container) {
          container.view.setStructure(structure, false);
        });
      } else if (columns) {
        containers.forEach(function (/* Container */container) {
          return container.view.resetLayout();
        });

        // Focus on last container.
        containers[containers.length - 1].model.trigger('request:edit');
      }
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/document/elements/move/index.js":
/*!***********************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/document/elements/move/index.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "SectionColumnsSetStructure", ({
  enumerable: true,
  get: function get() {
    return _sectionColumnsSetStructure.SectionColumnsSetStructure;
  }
}));
var _sectionColumnsSetStructure = __webpack_require__(/*! ./section-columns-set-structure */ "../assets/dev/js/editor/document/hooks/data/document/elements/move/section-columns-set-structure.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/document/elements/move/section-columns-set-structure.js":
/*!***********************************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/document/elements/move/section-columns-set-structure.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"] = exports.SectionColumnsSetStructure = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/data/after */ "../modules/web-cli/assets/js/modules/hooks/data/after.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; })(); }
var SectionColumnsSetStructure = exports.SectionColumnsSetStructure = /*#__PURE__*/function (_After) {
  function SectionColumnsSetStructure() {
    (0, _classCallCheck2.default)(this, SectionColumnsSetStructure);
    return _callSuper(this, SectionColumnsSetStructure, arguments);
  }
  (0, _inherits2.default)(SectionColumnsSetStructure, _After);
  return (0, _createClass2.default)(SectionColumnsSetStructure, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/move';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'section-columns-set-structure';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'column';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers,
        target = args.target;

      // Fire the hook only when target is not equals to moved container parent.
      return containers.some(function (/* Container */container) {
        return container.parent !== target;
      });
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2,
        target = args.target;
      containers.forEach(function (/* Container */container) {
        return container.parent.view.resetLayout();
      });
      target.view.resetLayout();
      return true;
    }
  }]);
}(_after.default);
var _default = exports["default"] = SectionColumnsSetStructure;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/document/elements/paste/index.js":
/*!************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/document/elements/paste/index.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "IsPasteEnabled", ({
  enumerable: true,
  get: function get() {
    return _isPasteEnabled.IsPasteEnabled;
  }
}));
var _isPasteEnabled = __webpack_require__(/*! ./is-paste-enabled */ "../assets/dev/js/editor/document/hooks/data/document/elements/paste/is-paste-enabled.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/document/elements/paste/is-paste-enabled.js":
/*!***********************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/document/elements/paste/is-paste-enabled.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"] = exports.IsPasteEnabled = 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 _dependency = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/data/dependency */ "../modules/web-cli/assets/js/modules/hooks/data/dependency.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; })(); }
var IsPasteEnabled = exports.IsPasteEnabled = /*#__PURE__*/function (_Dependency) {
  function IsPasteEnabled() {
    (0, _classCallCheck2.default)(this, IsPasteEnabled);
    return _callSuper(this, IsPasteEnabled, arguments);
  }
  (0, _inherits2.default)(IsPasteEnabled, _Dependency);
  return (0, _createClass2.default)(IsPasteEnabled, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/paste';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'is-paste-enabled';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return !args.rebuild;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return containers.some(function (container) {
        return $e.components.get('document/elements').utils.isPasteEnabled(container);
      });
    }
  }]);
}(_dependency.default);
var _default = exports["default"] = IsPasteEnabled;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/document/elements/settings/handle-dynamic.js":
/*!************************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/document/elements/settings/handle-dynamic.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"] = exports.HandleDynamic = 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 _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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/data/after */ "../modules/web-cli/assets/js/modules/hooks/data/after.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; })(); }
var HandleDynamic = exports.HandleDynamic = /*#__PURE__*/function (_After) {
  function HandleDynamic() {
    (0, _classCallCheck2.default)(this, HandleDynamic);
    return _callSuper(this, HandleDynamic, arguments);
  }
  (0, _inherits2.default)(HandleDynamic, _After);
  return (0, _createClass2.default)(HandleDynamic, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'handle-dynamic';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'dynamic';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return containers.some(function (/** Container*/container) {
        return 'dynamic' === container.type;
      });
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2;
      containers.forEach(function (/** Container*/container) {
        if ('dynamic' === container.type) {
          var tagText = elementor.dynamicTags.tagContainerToTagText(container),
            commandArgs = {
              container: container.parent,
              settings: (0, _defineProperty2.default)({}, container.view.options.controlName, tagText)
            };
          $e.run('document/dynamic/settings', commandArgs);
        }
      });
      return true;
    }
  }]);
}(_after.default);
var _default = exports["default"] = HandleDynamic;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/document/elements/settings/index.js":
/*!***************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/document/elements/settings/index.js ***!
  \***************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "HandleDynamic", ({
  enumerable: true,
  get: function get() {
    return _handleDynamic.HandleDynamic;
  }
}));
Object.defineProperty(exports, "ResizeColumn", ({
  enumerable: true,
  get: function get() {
    return _resizeColumn.ResizeColumn;
  }
}));
Object.defineProperty(exports, "ResizeColumnLimit", ({
  enumerable: true,
  get: function get() {
    return _resizeColumnLimit.ResizeColumnLimit;
  }
}));
Object.defineProperty(exports, "SetStructure", ({
  enumerable: true,
  get: function get() {
    return _setStructure.SetStructure;
  }
}));
var _handleDynamic = __webpack_require__(/*! ./handle-dynamic */ "../assets/dev/js/editor/document/hooks/data/document/elements/settings/handle-dynamic.js");
var _resizeColumn = __webpack_require__(/*! ./resize-column */ "../assets/dev/js/editor/document/hooks/data/document/elements/settings/resize-column.js");
var _resizeColumnLimit = __webpack_require__(/*! ./resize-column-limit */ "../assets/dev/js/editor/document/hooks/data/document/elements/settings/resize-column-limit.js");
var _setStructure = __webpack_require__(/*! ./set-structure */ "../assets/dev/js/editor/document/hooks/data/document/elements/settings/set-structure.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/document/elements/settings/resize-column-limit.js":
/*!*****************************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/document/elements/settings/resize-column-limit.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"] = exports.ResizeColumnLimit = 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 _dependency = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/data/dependency */ "../modules/web-cli/assets/js/modules/hooks/data/dependency.js"));
var _section = __webpack_require__(/*! elementor-elements/views/section */ "../assets/dev/js/editor/elements/views/section.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; })(); }
var ResizeColumnLimit = exports.ResizeColumnLimit = /*#__PURE__*/function (_Dependency) {
  function ResizeColumnLimit() {
    (0, _classCallCheck2.default)(this, ResizeColumnLimit);
    return _callSuper(this, ResizeColumnLimit, arguments);
  }
  (0, _inherits2.default)(ResizeColumnLimit, _Dependency);
  return (0, _createClass2.default)(ResizeColumnLimit, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'resize-column-limit';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'column';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return args.settings._inline_size;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return containers.some(function (/** Container*/container) {
        var parentView = container.parent.view,
          columnView = container.view,
          currentSize = container.settings.get('_inline_size') || container.settings.get('_column_size'),
          newSize = args.settings._inline_size,
          nextChildView = parentView.getNextColumn(columnView) || parentView.getPreviousColumn(columnView);
        if (!nextChildView) {
          if ($e.devTools) {
            $e.devTools.log.error('There is not any next column');
          }
          return false;
        }
        var $nextElement = nextChildView.$el,
          nextElementCurrentSize = +nextChildView.model.getSetting('_inline_size') || parentView.getColumnPercentSize($nextElement, $nextElement[0].getBoundingClientRect().width),
          nextElementNewSize = +(currentSize + nextElementCurrentSize - newSize).toFixed(3);
        if (nextElementNewSize < _section.DEFAULT_INNER_SECTION_COLUMNS) {
          if ($e.devTools) {
            $e.devTools.log.error('New column width is too large');
          }
          return false;
        }
        if (newSize < _section.DEFAULT_INNER_SECTION_COLUMNS) {
          if ($e.devTools) {
            $e.devTools.log.error('New column width is too small');
          }
          return false;
        }
        return true;
      });
    }
  }]);
}(_dependency.default);
var _default = exports["default"] = ResizeColumnLimit;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/document/elements/settings/resize-column.js":
/*!***********************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/document/elements/settings/resize-column.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"] = exports.ResizeColumn = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/data/after */ "../modules/web-cli/assets/js/modules/hooks/data/after.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; })(); }
var ResizeColumn = exports.ResizeColumn = /*#__PURE__*/function (_After) {
  function ResizeColumn() {
    (0, _classCallCheck2.default)(this, ResizeColumn);
    return _callSuper(this, ResizeColumn, arguments);
  }
  (0, _inherits2.default)(ResizeColumn, _After);
  return (0, _createClass2.default)(ResizeColumn, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'resize-column';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'column';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return args.settings._inline_size;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _this = this;
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      containers.forEach(function (/** Container*/container) {
        _this.resizeColumn(container, args.settings._inline_size);
      });
      return true;
    }
  }, {
    key: "resizeColumn",
    value: function resizeColumn(container, newSize) {
      var nextContainer = container.parent.view.getNeighborContainer(container);
      if (!nextContainer) {
        return false;
      }
      var parentView = container.parent.view,
        currentColumnView = container.view;
      var currentSize = null;
      if (undefined === container.oldValues || null === container.oldValues._inline_size) {
        // Mean, that it was not set before ( first time ).
        currentSize = container.settings.get('_column_size');
      } else {
        var totalWidth = parentView.$el.find(' > .elementor-container')[0].getBoundingClientRect().width;
        currentSize = +(container.oldValues._inline_size || currentColumnView.el.getBoundingClientRect().width / totalWidth * 100);
      }
      var nextChildView = nextContainer.view,
        $nextElement = nextChildView.$el,
        nextElementCurrentSize = +nextChildView.model.getSetting('_inline_size') || container.parent.view.getColumnPercentSize($nextElement, $nextElement[0].getBoundingClientRect().width),
        nextElementNewSize = +(currentSize + nextElementCurrentSize - newSize).toFixed(3);

      /**
       * TODO: Hook prevented ( next command will not call recursive hook ), but we didnt tell the hook to be prevented
       * consider: '$e.hooks.preventRecursive()'.
       */
      $e.run('document/elements/settings', {
        containers: [nextContainer],
        settings: {
          _inline_size: nextElementNewSize
        },
        options: {
          callbacks: {
            'resize-column-limit': false
          },
          history: {
            title: elementor.config.elements.column.controls._inline_size.label
          },
          external: true,
          debounce: true
        }
      });
      return true;
    }
  }]);
}(_after.default);
var _default = exports["default"] = ResizeColumn;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/document/elements/settings/set-structure.js":
/*!***********************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/document/elements/settings/set-structure.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"] = exports.SetStructure = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/data/after */ "../modules/web-cli/assets/js/modules/hooks/data/after.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; })(); }
var SetStructure = exports.SetStructure = /*#__PURE__*/function (_After) {
  function SetStructure() {
    (0, _classCallCheck2.default)(this, SetStructure);
    return _callSuper(this, SetStructure, arguments);
  }
  (0, _inherits2.default)(SetStructure, _After);
  return (0, _createClass2.default)(SetStructure, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'set-structure';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'section';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return !!args.settings.structure;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      containers.forEach(function (/** Container*/container) {
        container.view.adjustColumns();
      });
      return true;
    }
  }]);
}(_after.default);
var _default = exports["default"] = SetStructure;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/data/index.js":
/*!************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/data/index.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
var _create = __webpack_require__(/*! ./document/elements/create/ */ "../assets/dev/js/editor/document/hooks/data/document/elements/create/index.js");
Object.keys(_create).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _create[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _create[key];
    }
  });
});
var _delete = __webpack_require__(/*! ./document/elements/delete/ */ "../assets/dev/js/editor/document/hooks/data/document/elements/delete/index.js");
Object.keys(_delete).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _delete[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _delete[key];
    }
  });
});
var _move = __webpack_require__(/*! ./document/elements/move/ */ "../assets/dev/js/editor/document/hooks/data/document/elements/move/index.js");
Object.keys(_move).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _move[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _move[key];
    }
  });
});
var _paste = __webpack_require__(/*! ./document/elements/paste/ */ "../assets/dev/js/editor/document/hooks/data/document/elements/paste/index.js");
Object.keys(_paste).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _paste[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _paste[key];
    }
  });
});
var _settings = __webpack_require__(/*! ./document/elements/settings/ */ "../assets/dev/js/editor/document/hooks/data/document/elements/settings/index.js");
Object.keys(_settings).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _settings[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _settings[key];
    }
  });
});

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/index.js":
/*!*******************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/index.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
var _data = __webpack_require__(/*! ./data/ */ "../assets/dev/js/editor/document/hooks/data/index.js");
Object.keys(_data).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _data[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _data[key];
    }
  });
});
var _ui = __webpack_require__(/*! ./ui/ */ "../assets/dev/js/editor/document/hooks/ui/index.js");
Object.keys(_ui).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _ui[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _ui[key];
    }
  });
});

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/ui/create/column-is-populated.js":
/*!*******************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/ui/create/column-is-populated.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"] = exports.ColumnIsPopulated = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/ui/after */ "../modules/web-cli/assets/js/modules/hooks/ui/after.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; })(); }
var ColumnIsPopulated = exports.ColumnIsPopulated = /*#__PURE__*/function (_After) {
  function ColumnIsPopulated() {
    (0, _classCallCheck2.default)(this, ColumnIsPopulated);
    return _callSuper(this, ColumnIsPopulated, arguments);
  }
  (0, _inherits2.default)(ColumnIsPopulated, _After);
  return (0, _createClass2.default)(ColumnIsPopulated, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/create';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'column-is-populated';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;

      // If the created element, was created at column.
      return containers.some(function (/** Container*/container) {
        return 'column' === container.model.get('elType');
      });
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2;
      containers.forEach(function (/* Container */container) {
        if ('column' === container.model.get('elType')) {
          container.view.changeChildContainerClasses();
        }
      });
    }
  }]);
}(_after.default);
var _default = exports["default"] = ColumnIsPopulated;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/ui/create/index.js":
/*!*****************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/ui/create/index.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "ColumnIsPopulated", ({
  enumerable: true,
  get: function get() {
    return _columnIsPopulated.ColumnIsPopulated;
  }
}));
Object.defineProperty(exports, "CreateSectionIsFull", ({
  enumerable: true,
  get: function get() {
    return _sectionIsFull.CreateSectionIsFull;
  }
}));
var _columnIsPopulated = __webpack_require__(/*! ../create/column-is-populated.js */ "../assets/dev/js/editor/document/hooks/ui/create/column-is-populated.js");
var _sectionIsFull = __webpack_require__(/*! ./section-is-full */ "../assets/dev/js/editor/document/hooks/ui/create/section-is-full.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/ui/create/section-is-full.js":
/*!***************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/ui/create/section-is-full.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"] = exports.CreateSectionIsFull = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/ui/after */ "../modules/web-cli/assets/js/modules/hooks/ui/after.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; })(); }
var CreateSectionIsFull = exports.CreateSectionIsFull = /*#__PURE__*/function (_After) {
  function CreateSectionIsFull() {
    (0, _classCallCheck2.default)(this, CreateSectionIsFull);
    return _callSuper(this, CreateSectionIsFull, arguments);
  }
  (0, _inherits2.default)(CreateSectionIsFull, _After);
  return (0, _createClass2.default)(CreateSectionIsFull, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/create';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'create-section-is-full';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return containers.some(function (/* Container */container) {
        return 'section' === container.model.get('elType');
      });
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2;
      containers.forEach(function (/* Container */container) {
        if ('section' === container.model.get('elType')) {
          container.view.toggleSectionIsFull();
        }
      });
    }
  }]);
}(_after.default);
var _default = exports["default"] = CreateSectionIsFull;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/ui/delete/column-is-empty.js":
/*!***************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/ui/delete/column-is-empty.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"] = exports.ColumnIsEmpty = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/ui/after */ "../modules/web-cli/assets/js/modules/hooks/ui/after.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; })(); }
var ColumnIsEmpty = exports.ColumnIsEmpty = /*#__PURE__*/function (_After) {
  function ColumnIsEmpty() {
    (0, _classCallCheck2.default)(this, ColumnIsEmpty);
    return _callSuper(this, ColumnIsEmpty, arguments);
  }
  (0, _inherits2.default)(ColumnIsEmpty, _After);
  return (0, _createClass2.default)(ColumnIsEmpty, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/delete';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'column-is-empty';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;

      // If the deleted element, was deleted from column.
      return containers.some(function (/** Container*/container) {
        return 'column' === container.parent.model.get('elType');
      });
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2;
      containers.forEach(function (/* Container */container) {
        if ('column' === container.parent.model.get('elType')) {
          container.parent.view.changeChildContainerClasses();
        }
      });
    }
  }]);
}(_after.default);
var _default = exports["default"] = ColumnIsEmpty;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/ui/delete/index.js":
/*!*****************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/ui/delete/index.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "ColumnIsEmpty", ({
  enumerable: true,
  get: function get() {
    return _columnIsEmpty.ColumnIsEmpty;
  }
}));
Object.defineProperty(exports, "DeleteSectionIsFull", ({
  enumerable: true,
  get: function get() {
    return _sectionIsFull.DeleteSectionIsFull;
  }
}));
var _columnIsEmpty = __webpack_require__(/*! ./column-is-empty */ "../assets/dev/js/editor/document/hooks/ui/delete/column-is-empty.js");
var _sectionIsFull = __webpack_require__(/*! ./section-is-full */ "../assets/dev/js/editor/document/hooks/ui/delete/section-is-full.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/ui/delete/section-is-full.js":
/*!***************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/ui/delete/section-is-full.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"] = exports.DeleteSectionIsFull = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/ui/after */ "../modules/web-cli/assets/js/modules/hooks/ui/after.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; })(); }
var DeleteSectionIsFull = exports.DeleteSectionIsFull = /*#__PURE__*/function (_After) {
  function DeleteSectionIsFull() {
    (0, _classCallCheck2.default)(this, DeleteSectionIsFull);
    return _callSuper(this, DeleteSectionIsFull, arguments);
  }
  (0, _inherits2.default)(DeleteSectionIsFull, _After);
  return (0, _createClass2.default)(DeleteSectionIsFull, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/delete';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'delete-section-is-full';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return containers.some(function (/* Container */container) {
        return 'column' === container.model.get('elType');
      });
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2;
      containers.forEach(function (/* Container */container) {
        if ('column' === container.model.get('elType')) {
          container.parent.view.toggleSectionIsFull();
        }
      });
    }
  }]);
}(_after.default);
var _default = exports["default"] = DeleteSectionIsFull;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/ui/document/elements/create/index.js":
/*!***********************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/ui/document/elements/create/index.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "MoveResizeableHandle", ({
  enumerable: true,
  get: function get() {
    return _moveResizeableHandle.MoveResizeableHandle;
  }
}));
var _moveResizeableHandle = __webpack_require__(/*! ./move-resizeable-handle */ "../assets/dev/js/editor/document/hooks/ui/document/elements/create/move-resizeable-handle.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/ui/document/elements/create/move-resizeable-handle.js":
/*!****************************************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/ui/document/elements/create/move-resizeable-handle.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"] = exports.MoveResizeableHandle = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/ui/after */ "../modules/web-cli/assets/js/modules/hooks/ui/after.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; })(); }
/**
 * Move jQuery UI Resizeable handle to the end each time an element is created inside
 * a Container, since it causes UI issues and breaks some CSS selectors.
 */
var MoveResizeableHandle = exports.MoveResizeableHandle = /*#__PURE__*/function (_After) {
  function MoveResizeableHandle() {
    (0, _classCallCheck2.default)(this, MoveResizeableHandle);
    return _callSuper(this, MoveResizeableHandle, arguments);
  }
  (0, _inherits2.default)(MoveResizeableHandle, _After);
  return (0, _createClass2.default)(MoveResizeableHandle, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/create';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'move-resizeable-handle';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;

      // If the element was created in a Container.
      return containers.some(function (/** Container*/container) {
        return 'container' === container.model.get('elType');
      });
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2;
      containers.forEach(function (/* Container */container) {
        var $el = container.view.$el,
          $resizeHandle = $el.find('> .ui-resizable-handle').first();
        if (!$resizeHandle) {
          return;
        }

        // Move the handle to the end.
        $el.append($resizeHandle);
      });
    }
  }]);
}(_after.default);
var _default = exports["default"] = MoveResizeableHandle;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/ui/index.js":
/*!**********************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/ui/index.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
var _create = __webpack_require__(/*! ./create/ */ "../assets/dev/js/editor/document/hooks/ui/create/index.js");
Object.keys(_create).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _create[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _create[key];
    }
  });
});
var _delete = __webpack_require__(/*! ./delete/ */ "../assets/dev/js/editor/document/hooks/ui/delete/index.js");
Object.keys(_delete).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _delete[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _delete[key];
    }
  });
});
var _create2 = __webpack_require__(/*! ./document/elements/create/ */ "../assets/dev/js/editor/document/hooks/ui/document/elements/create/index.js");
Object.keys(_create2).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _create2[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _create2[key];
    }
  });
});
var _settings = __webpack_require__(/*! ./settings/ */ "../assets/dev/js/editor/document/hooks/ui/settings/index.js");
Object.keys(_settings).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _settings[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _settings[key];
    }
  });
});

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/ui/settings/change-post-title.js":
/*!*******************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/ui/settings/change-post-title.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"] = exports.ChangePostTitle = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/ui/after */ "../modules/web-cli/assets/js/modules/hooks/ui/after.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; })(); }
var ChangePostTitle = exports.ChangePostTitle = /*#__PURE__*/function (_After) {
  function ChangePostTitle() {
    (0, _classCallCheck2.default)(this, ChangePostTitle);
    return _callSuper(this, ChangePostTitle, arguments);
  }
  (0, _inherits2.default)(ChangePostTitle, _After);
  return (0, _createClass2.default)(ChangePostTitle, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'change-post-title';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'document';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return undefined !== args.settings.post_title;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var $title = elementorFrontend.elements.$document.find(elementor.config.page_title_selector);
      $title.text(args.settings.post_title);
    }
  }]);
}(_after.default);
var _default = exports["default"] = ChangePostTitle;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/ui/settings/column-change-size.js":
/*!********************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/ui/settings/column-change-size.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"] = exports.ColumnChangeSize = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/ui/after */ "../modules/web-cli/assets/js/modules/hooks/ui/after.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; })(); }
var ColumnChangeSize = exports.ColumnChangeSize = /*#__PURE__*/function (_After) {
  function ColumnChangeSize() {
    (0, _classCallCheck2.default)(this, ColumnChangeSize);
    return _callSuper(this, ColumnChangeSize, arguments);
  }
  (0, _inherits2.default)(ColumnChangeSize, _After);
  return (0, _createClass2.default)(ColumnChangeSize, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'column-change-size';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return undefined !== args.settings._inline_size || undefined !== args.settings._column_size;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      containers.forEach(function (/* Container */container) {
        container.view.changeSizeUI();
      });
    }
  }]);
}(_after.default);
var _default = exports["default"] = ColumnChangeSize;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/ui/settings/draggable.js":
/*!***********************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/ui/settings/draggable.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"] = exports.Draggable = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/ui/after */ "../modules/web-cli/assets/js/modules/hooks/ui/after.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; })(); }
var Draggable = exports.Draggable = /*#__PURE__*/function (_After) {
  function Draggable() {
    (0, _classCallCheck2.default)(this, Draggable);
    return _callSuper(this, Draggable, arguments);
  }
  (0, _inherits2.default)(Draggable, _After);
  return (0, _createClass2.default)(Draggable, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'draggable';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return undefined !== args.settings._position;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      containers.forEach(function (/* Container */container) {
        if (container.view.options.draggable) {
          container.view.options.draggable.toggle();
        }
      });
    }
  }]);
}(_after.default);
var _default = exports["default"] = Draggable;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/ui/settings/exit-to.js":
/*!*********************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/ui/settings/exit-to.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"] = exports.ExitTo = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/ui/after */ "../modules/web-cli/assets/js/modules/hooks/ui/after.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; })(); }
var ExitTo = exports.ExitTo = /*#__PURE__*/function (_After) {
  function ExitTo() {
    (0, _classCallCheck2.default)(this, ExitTo);
    return _callSuper(this, ExitTo, arguments);
  }
  (0, _inherits2.default)(ExitTo, _After);
  return (0, _createClass2.default)(ExitTo, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'exit-to';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'editorPreferences_settings';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return undefined !== args.settings.exit_to;
    }
  }, {
    key: "apply",
    value: function apply() {
      elementor.getPanelView().getPages('menu').view.addExitItem();
    }
  }]);
}(_after.default);
var _default = exports["default"] = ExitTo;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/ui/settings/index.js":
/*!*******************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/ui/settings/index.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "ChangePostTitle", ({
  enumerable: true,
  get: function get() {
    return _changePostTitle.ChangePostTitle;
  }
}));
Object.defineProperty(exports, "ColumnChangeSize", ({
  enumerable: true,
  get: function get() {
    return _columnChangeSize.ColumnChangeSize;
  }
}));
Object.defineProperty(exports, "Draggable", ({
  enumerable: true,
  get: function get() {
    return _draggable.Draggable;
  }
}));
Object.defineProperty(exports, "ExitTo", ({
  enumerable: true,
  get: function get() {
    return _exitTo.ExitTo;
  }
}));
Object.defineProperty(exports, "ReloadPreview", ({
  enumerable: true,
  get: function get() {
    return _reloadPreview.ReloadPreview;
  }
}));
Object.defineProperty(exports, "Resizeable", ({
  enumerable: true,
  get: function get() {
    return _resizeable.Resizeable;
  }
}));
Object.defineProperty(exports, "SetDirectionMode", ({
  enumerable: true,
  get: function get() {
    return _setDirectionMode.SetDirectionMode;
  }
}));
var _changePostTitle = __webpack_require__(/*! ./change-post-title */ "../assets/dev/js/editor/document/hooks/ui/settings/change-post-title.js");
var _columnChangeSize = __webpack_require__(/*! ./column-change-size */ "../assets/dev/js/editor/document/hooks/ui/settings/column-change-size.js");
var _draggable = __webpack_require__(/*! ./draggable */ "../assets/dev/js/editor/document/hooks/ui/settings/draggable.js");
var _exitTo = __webpack_require__(/*! ./exit-to */ "../assets/dev/js/editor/document/hooks/ui/settings/exit-to.js");
var _resizeable = __webpack_require__(/*! ./resizeable */ "../assets/dev/js/editor/document/hooks/ui/settings/resizeable.js");
var _reloadPreview = __webpack_require__(/*! ./reload-preview */ "../assets/dev/js/editor/document/hooks/ui/settings/reload-preview.js");
var _setDirectionMode = __webpack_require__(/*! ./set-direction-mode */ "../assets/dev/js/editor/document/hooks/ui/settings/set-direction-mode.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/ui/settings/reload-preview.js":
/*!****************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/ui/settings/reload-preview.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.ReloadPreview = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/ui/after */ "../modules/web-cli/assets/js/modules/hooks/ui/after.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; })(); }
var ReloadPreview = exports.ReloadPreview = /*#__PURE__*/function (_After) {
  function ReloadPreview() {
    (0, _classCallCheck2.default)(this, ReloadPreview);
    return _callSuper(this, ReloadPreview, arguments);
  }
  (0, _inherits2.default)(ReloadPreview, _After);
  return (0, _createClass2.default)(ReloadPreview, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'save-layout';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'document';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return !!args.settings.template;
    }
  }, {
    key: "apply",
    value: function apply() {
      return $e.run('document/save/auto', {
        force: true
      }).then(function () {
        elementor.reloadPreview();

        // TODO: Fix the route change.
        elementor.once('preview:loaded', function () {
          $e.route('panel/page-settings/settings');
        });
      });
    }
  }]);
}(_after.default);

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/ui/settings/resizeable.js":
/*!************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/ui/settings/resizeable.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"] = exports.Resizeable = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/ui/after */ "../modules/web-cli/assets/js/modules/hooks/ui/after.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; })(); }
var Resizeable = exports.Resizeable = /*#__PURE__*/function (_After) {
  function Resizeable() {
    (0, _classCallCheck2.default)(this, Resizeable);
    return _callSuper(this, Resizeable, arguments);
  }
  (0, _inherits2.default)(Resizeable, _After);
  return (0, _createClass2.default)(Resizeable, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'resizeable';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return undefined !== args.settings._position || undefined !== args.settings._element_width;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      containers.forEach(function (/* Container */container) {
        if (container.view.options.resizeable) {
          container.view.options.resizeable.toggle();
        }
      });
    }
  }]);
}(_after.default);
var _default = exports["default"] = Resizeable;

/***/ }),

/***/ "../assets/dev/js/editor/document/hooks/ui/settings/set-direction-mode.js":
/*!********************************************************************************!*\
  !*** ../assets/dev/js/editor/document/hooks/ui/settings/set-direction-mode.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"] = exports.SetDirectionMode = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/ui/after */ "../modules/web-cli/assets/js/modules/hooks/ui/after.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('../../../../container/container')} Container
 */
/**
 * UI hook to set direction mode when changing element's settings.
 * Currently used to determine the direction of the flex icons in the Container element.
 * It should be generic and work with any element, and since each element might use a different
 * setting to determine its direction mode, the hook should listen to any setting change.
 * Therefore, the `getConditions()` method just checks if the view exists and has UI states.
 */
var SetDirectionMode = exports.SetDirectionMode = /*#__PURE__*/function (_After) {
  function SetDirectionMode() {
    (0, _classCallCheck2.default)(this, SetDirectionMode);
    return _callSuper(this, SetDirectionMode, arguments);
  }
  (0, _inherits2.default)(SetDirectionMode, _After);
  return (0, _createClass2.default)(SetDirectionMode, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'set-direction-mode--document/elements/settings';
    }
  }, {
    key: "hasUiStates",
    value: function hasUiStates(container) {
      var _container$renderer;
      return !!((_container$renderer = container.renderer) !== null && _container$renderer !== void 0 && (_container$renderer = _container$renderer.view) !== null && _container$renderer !== void 0 && _container$renderer.getCurrentUiStates);
    }
  }, {
    key: "getConditions",
    value: function getConditions() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var containers = args.container ? [args.container] : args.containers;
      return containers.some(this.hasUiStates);
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var containers = args.container ? [args.container] : args.containers;
      containers.filter(this.hasUiStates).forEach(function (container) {
        return SetDirectionMode.set(container);
      });
    }

    /**
     * Get the direction mode from the Container's view & set the UI state accordingly.
     *
     * @param {Container} container
     *
     * @return {void}
     */
  }], [{
    key: "set",
    value: function set(container) {
      var _view$getCurrentUiSta;
      // Determine if the direction mode should be set by the parent.
      var useParent = 'panel/editor/advanced' === $e.routes.getCurrent('panel');
      container = useParent ? container.parent : container;
      var view = container.renderer.view,
        direction = (_view$getCurrentUiSta = view.getCurrentUiStates) === null || _view$getCurrentUiSta === void 0 ? void 0 : _view$getCurrentUiSta.call(view).directionMode;
      if (direction) {
        $e.uiStates.set('document/direction-mode', direction);
        return;
      }
      $e.uiStates.remove('document/direction-mode');
    }
  }]);
}(_after.default);
var _default = exports["default"] = SetDirectionMode;

/***/ }),

/***/ "../assets/dev/js/editor/document/index.js":
/*!*************************************************!*\
  !*** ../assets/dev/js/editor/document/index.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
}));
Object.defineProperty(exports, "DynamicComponent", ({
  enumerable: true,
  get: function get() {
    return _component.default;
  }
}));
Object.defineProperty(exports, "ElementsComponent", ({
  enumerable: true,
  get: function get() {
    return _component2.default;
  }
}));
Object.defineProperty(exports, "GlobalsComponent", ({
  enumerable: true,
  get: function get() {
    return _component3.default;
  }
}));
Object.defineProperty(exports, "HistoryComponent", ({
  enumerable: true,
  get: function get() {
    return _component4.default;
  }
}));
Object.defineProperty(exports, "RepeaterComponent", ({
  enumerable: true,
  get: function get() {
    return _component5.default;
  }
}));
Object.defineProperty(exports, "SaveComponent", ({
  enumerable: true,
  get: function get() {
    return _component6.default;
  }
}));
Object.defineProperty(exports, "UIComponent", ({
  enumerable: true,
  get: function get() {
    return _component7.default;
  }
}));
var _component = _interopRequireDefault(__webpack_require__(/*! ../document/dynamic/component */ "../assets/dev/js/editor/document/dynamic/component.js"));
var _component2 = _interopRequireDefault(__webpack_require__(/*! ../document/elements/component */ "../assets/dev/js/editor/document/elements/component.js"));
var _component3 = _interopRequireDefault(__webpack_require__(/*! ../document/globals/component */ "../assets/dev/js/editor/document/globals/component.js"));
var _component4 = _interopRequireDefault(__webpack_require__(/*! ../document/history/component */ "../assets/dev/js/editor/document/history/component.js"));
var _component5 = _interopRequireDefault(__webpack_require__(/*! ../document/repeater/component */ "../assets/dev/js/editor/document/repeater/component.js"));
var _component6 = _interopRequireDefault(__webpack_require__(/*! ../document/save/component */ "../assets/dev/js/editor/document/save/component.js"));
var _component7 = _interopRequireDefault(__webpack_require__(/*! ../document/ui/component */ "../assets/dev/js/editor/document/ui/component.js"));

/***/ }),

/***/ "../assets/dev/js/editor/document/repeater/commands/duplicate.js":
/*!***********************************************************************!*\
  !*** ../assets/dev/js/editor/document/repeater/commands/duplicate.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"] = exports.Duplicate = 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"));
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; })(); }
var Duplicate = exports.Duplicate = /*#__PURE__*/function (_$e$modules$editor$do) {
  function Duplicate() {
    (0, _classCallCheck2.default)(this, Duplicate);
    return _callSuper(this, Duplicate, arguments);
  }
  (0, _inherits2.default)(Duplicate, _$e$modules$editor$do);
  return (0, _createClass2.default)(Duplicate, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
      this.requireArgumentType('name', 'string', args);
      this.requireArgumentType('index', 'number', args);
    }
  }, {
    key: "getHistory",
    value: function getHistory(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return {
        containers: containers,
        type: 'duplicate',
        subTitle: __('Item', 'elementor')
      };
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var index = args.index,
        name = args.name,
        _args$options = args.options,
        options = _args$options === void 0 ? {} : _args$options,
        _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2,
        result = [];
      containers.forEach(function (container) {
        var settingsModel = container.settings,
          collection = settingsModel.get(name),
          model = collection.at(index).toJSON();

        // Let the insert handle it, do not use the duplicated id.
        if (model._id) {
          delete model._id;
        }
        result.push($e.run('document/repeater/insert', {
          container: container,
          name: name,
          model: model,
          options: Object.assign({
            at: index + 1
          }, options),
          renderAfterInsert: args.renderAfterInsert
        }));
      });
      if (1 === result.length) {
        return result[0];
      }
      return result;
    }
  }]);
}($e.modules.editor.document.CommandHistoryBase);
var _default = exports["default"] = Duplicate;

/***/ }),

/***/ "../assets/dev/js/editor/document/repeater/commands/index.js":
/*!*******************************************************************!*\
  !*** ../assets/dev/js/editor/document/repeater/commands/index.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Duplicate", ({
  enumerable: true,
  get: function get() {
    return _duplicate.Duplicate;
  }
}));
Object.defineProperty(exports, "Insert", ({
  enumerable: true,
  get: function get() {
    return _insert.Insert;
  }
}));
Object.defineProperty(exports, "Move", ({
  enumerable: true,
  get: function get() {
    return _move.Move;
  }
}));
Object.defineProperty(exports, "Remove", ({
  enumerable: true,
  get: function get() {
    return _remove.Remove;
  }
}));
Object.defineProperty(exports, "Select", ({
  enumerable: true,
  get: function get() {
    return _select.Select;
  }
}));
var _duplicate = __webpack_require__(/*! ./duplicate */ "../assets/dev/js/editor/document/repeater/commands/duplicate.js");
var _insert = __webpack_require__(/*! ./insert */ "../assets/dev/js/editor/document/repeater/commands/insert.js");
var _move = __webpack_require__(/*! ./move */ "../assets/dev/js/editor/document/repeater/commands/move.js");
var _remove = __webpack_require__(/*! ./remove */ "../assets/dev/js/editor/document/repeater/commands/remove.js");
var _select = __webpack_require__(/*! ./select */ "../assets/dev/js/editor/document/repeater/commands/select.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/repeater/commands/insert.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/document/repeater/commands/insert.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"] = exports.Insert = 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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _utils = __webpack_require__(/*! elementor/modules/nested-elements/assets/js/editor/utils */ "../modules/nested-elements/assets/js/editor/utils.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var Insert = exports.Insert = /*#__PURE__*/function (_$e$modules$editor$do) {
  function Insert() {
    (0, _classCallCheck2.default)(this, Insert);
    return _callSuper(this, Insert, arguments);
  }
  (0, _inherits2.default)(Insert, _$e$modules$editor$do);
  return (0, _createClass2.default)(Insert, [{
    key: "initialize",
    value: function initialize(args) {
      _superPropGet(Insert, "initialize", this, 3)([args]);
      if (!args.model._id) {
        args.model._id = elementorCommon.helpers.getUniqueId();
      }
    }
  }, {
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
      this.requireArgumentType('model', 'object', args);
      this.requireArgumentConstructor('name', String, args);
    }
  }, {
    key: "getHistory",
    value: function getHistory(args) {
      var model = args.model,
        name = args.name,
        _args$options = args.options,
        options = _args$options === void 0 ? {
          at: null
        } : _args$options,
        _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return {
        containers: containers,
        type: 'add',
        subTitle: __('Item', 'elementor'),
        data: {
          model: model,
          name: name,
          index: options.at
        },
        restore: this.constructor.restore
      };
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var model = args.model,
        name = args.name,
        _args$options2 = args.options,
        options = _args$options2 === void 0 ? {
          at: null
        } : _args$options2,
        _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2,
        _args$renderAfterInse = args.renderAfterInsert,
        renderAfterInsert = _args$renderAfterInse === void 0 ? true : _args$renderAfterInse,
        _args$isRestored = args.isRestored,
        isRestored = _args$isRestored === void 0 ? false : _args$isRestored,
        result = [];
      containers.forEach(function (container) {
        container = container.lookup();
        var collection = container.settings.get(name);
        options.at = null === options.at ? collection.length : options.at;

        // On `collection.push` the renderer needs a container, the container needs a settingsModel.
        var rowSettingsModel = collection._prepareModel(model),
          repeaterContainer = container.addRepeaterItem(name, rowSettingsModel, options.at);
        result.push(collection.push(rowSettingsModel, options));
        if (renderAfterInsert) {
          var widgetType = container.settings.get('widgetType');
          if ((0, _utils.shouldUseAtomicRepeaters)(widgetType) && !isRestored) {
            var domConfig = (0, _utils.widgetNodes)(widgetType),
              containerNode = container.view.$el[0],
              targetContainer = containerNode.querySelector(domConfig.targetContainer),
              html = Marionette.Renderer.render("#tmpl-elementor-".concat(widgetType, "-content-single"), {
                data: model,
                view: repeaterContainer.view
              }),
              node = document.createElement('div');
            node.innerHTML = html;
            var nodeToInsert = node.querySelector(domConfig.node),
              targetNode = targetContainer.children[options.at] || null;
            targetContainer.insertBefore(nodeToInsert, targetNode);
          } else {
            // Trigger render on widget but with the settings of the control.
            repeaterContainer.render();
          }
        }
      });
      if (1 === result.length) {
        return result[0];
      }
      return result;
    }
  }], [{
    key: "restore",
    value: function restore(historyItem, isRedo) {
      var containers = historyItem.get('containers'),
        data = historyItem.get('data');
      if (isRedo) {
        $e.run('document/repeater/insert', {
          containers: containers,
          model: data.model,
          name: data.name,
          options: {
            at: data.index
          },
          isRestored: true
        });
      } else {
        $e.run('document/repeater/remove', {
          containers: containers,
          name: data.name,
          index: data.index,
          isRestored: true
        });
      }
    }
  }]);
}($e.modules.editor.document.CommandHistoryBase);
var _default = exports["default"] = Insert;

/***/ }),

/***/ "../assets/dev/js/editor/document/repeater/commands/move.js":
/*!******************************************************************!*\
  !*** ../assets/dev/js/editor/document/repeater/commands/move.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"] = exports.Move = 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"));
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; })(); }
var Move = exports.Move = /*#__PURE__*/function (_$e$modules$editor$do) {
  function Move() {
    (0, _classCallCheck2.default)(this, Move);
    return _callSuper(this, Move, arguments);
  }
  (0, _inherits2.default)(Move, _$e$modules$editor$do);
  return (0, _createClass2.default)(Move, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
      this.requireArgumentType('name', 'string', args);
      this.requireArgumentType('sourceIndex', 'number', args);
      this.requireArgumentType('targetIndex', 'number', args);
    }
  }, {
    key: "getHistory",
    value: function getHistory(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return {
        containers: containers,
        type: 'move',
        subTitle: __('Item', 'elementor')
      };
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var sourceIndex = args.sourceIndex,
        targetIndex = args.targetIndex,
        name = args.name,
        _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2,
        result = [];
      containers.forEach(function (container) {
        var collection = container.settings.get(name),
          model = elementorCommon.helpers.cloneObject(collection.at(sourceIndex));
        $e.run('document/repeater/remove', {
          container: container,
          name: name,
          index: sourceIndex
        });
        result.push($e.run('document/repeater/insert', {
          container: container,
          name: name,
          model: model,
          options: {
            at: targetIndex
          }
        }));
      });
      if (1 === result.length) {
        return result[0];
      }
      return result;
    }
  }]);
}($e.modules.editor.document.CommandHistoryBase);
var _default = exports["default"] = Move;

/***/ }),

/***/ "../assets/dev/js/editor/document/repeater/commands/remove.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/document/repeater/commands/remove.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"] = exports.Remove = 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 _utils = __webpack_require__(/*! elementor/modules/nested-elements/assets/js/editor/utils.js */ "../modules/nested-elements/assets/js/editor/utils.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; })(); }
var Remove = exports.Remove = /*#__PURE__*/function (_$e$modules$editor$do) {
  function Remove() {
    (0, _classCallCheck2.default)(this, Remove);
    return _callSuper(this, Remove, arguments);
  }
  (0, _inherits2.default)(Remove, _$e$modules$editor$do);
  return (0, _createClass2.default)(Remove, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
      this.requireArgumentType('name', 'string', args);
      this.requireArgument('index', args); // Sometimes null.
    }
  }, {
    key: "getHistory",
    value: function getHistory(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return {
        containers: containers,
        type: 'remove',
        subTitle: __('Item', 'elementor')
      };
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _this = this;
      var name = args.name,
        _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2,
        _args$isRestored = args.isRestored,
        isRestored = _args$isRestored === void 0 ? false : _args$isRestored,
        index = null === args.index ? -1 : args.index,
        result = [];
      containers.forEach(function (container) {
        container = container.lookup();
        var collection = container.settings.get(name),
          model = collection.at(index),
          repeaterContainer = container.repeaters[name],
          widgetType = container.settings.get('widgetType');
        if (_this.isHistoryActive()) {
          $e.internal('document/history/log-sub-item', {
            container: container,
            data: {
              name: name,
              model: model,
              index: index
            },
            restore: _this.constructor.restore
          });
        }

        // Remove from container and add to result.
        result.push(repeaterContainer.children.splice(index, 1));
        collection.remove(model);
        if ((0, _utils.shouldUseAtomicRepeaters)(widgetType) && !isRestored) {
          var widgetContainer = container.view.$el[0];
          (0, _utils.widgetNodes)(widgetType).targetContainer.forEach(function (item) {
            widgetContainer.querySelector(item).children[index].remove();
          });
        } else {
          // Trigger render on widget but with the settings of the control.
          repeaterContainer.render();
        }
      });
      if (1 === result.length) {
        return result[0];
      }
      return result;
    }
  }], [{
    key: "restore",
    value: function restore(historyItem, isRedo) {
      var data = historyItem.get('data'),
        container = historyItem.get('container');
      if (isRedo) {
        $e.run('document/repeater/remove', {
          container: container,
          name: data.name,
          index: data.index,
          isRestored: true
        });
      } else {
        $e.run('document/repeater/insert', {
          container: container,
          model: data.model,
          name: data.name,
          options: {
            at: data.index
          },
          isRestored: true
        });
      }
    }
  }]);
}($e.modules.editor.document.CommandHistoryBase);
var _default = exports["default"] = Remove;

/***/ }),

/***/ "../assets/dev/js/editor/document/repeater/commands/select.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/document/repeater/commands/select.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"] = exports.Select = 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"));
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('elementor/assets/dev/js/editor/container/container')} Container
 */
/**
 * Command used to select current working repeater item.
 */
var Select = exports.Select = /*#__PURE__*/function (_$e$modules$editor$do) {
  function Select() {
    (0, _classCallCheck2.default)(this, Select);
    return _callSuper(this, Select, arguments);
  }
  (0, _inherits2.default)(Select, _$e$modules$editor$do);
  return (0, _createClass2.default)(Select, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
      this.requireArgumentType('index', 'number', args);

      // When there multiple containers, then its not supported.
      if (args.containers) {
        throw new Error('Multiple containers are not supported.');
      }
    }
  }, {
    key: "getHistory",
    value: function getHistory(args) {
      var container = args.container,
        index = args.index,
        editSettings = container.model.get('editSettings'),
        current = editSettings.get('activeItemIndex') || 1;

      // If the index is the same, then don't save a history item.
      if (current === index) {
        return false;
      }
      return {
        container: container,
        type: 'selected',
        // Translators: %s is the current item index.
        subTitle: wp.i18n.sprintf(__('Item #%d', 'elementor'), index),
        restore: this.constructor.restore,
        data: {
          current: index,
          prev: current
        }
      };
    }

    /**
     * @param {{}}        args
     * @param {Container} args.container
     * @param {number}    args.index
     */
  }, {
    key: "apply",
    value: function apply(_ref) {
      var container = _ref.container,
        index = _ref.index;
      var editSettings = container.model.get('editSettings');
      editSettings.set('activeItemIndex', index);
    }
  }], [{
    key: "restore",
    value: function restore(historyItem, isRedo) {
      var container = historyItem.get('container'),
        data = historyItem.get('data');
      $e.run('document/repeater/select', {
        container: container,
        index: isRedo ? data.current : data.prev
      });
    }
  }]);
}($e.modules.editor.document.CommandHistoryBase);
var _default = exports["default"] = Select;

/***/ }),

/***/ "../assets/dev/js/editor/document/repeater/component.js":
/*!**************************************************************!*\
  !*** ../assets/dev/js/editor/document/repeater/component.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.js"));
var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../assets/dev/js/editor/document/repeater/commands/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _ComponentBase);
  return (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'document/repeater';
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/document/save/backwards-compatibility.js":
/*!************************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/backwards-compatibility.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var BackwardsCompatibility = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function BackwardsCompatibility() {
    (0, _classCallCheck2.default)(this, BackwardsCompatibility);
    return _callSuper(this, BackwardsCompatibility, arguments);
  }
  (0, _inherits2.default)(BackwardsCompatibility, _ComponentBase);
  return (0, _createClass2.default)(BackwardsCompatibility, [{
    key: "__construct",
    value: function __construct() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      _superPropGet(BackwardsCompatibility, "__construct", this, 3)([args]);
      Object.defineProperty(this, 'autoSaveTimer', {
        get: function get() {
          elementorDevTools.deprecation.deprecated('elementor.saver.autoSaveTimer', '2.9.0', "$e.components.get( 'editor/documents' ).autoSaveTimers");
          return $e.components.get('editor/documents').autoSaveTimers;
        },
        set: function set(value) {
          elementorDevTools.deprecation.deprecated('elementor.saver.autoSaveTimer', '2.9.0', "$e.components.get( 'editor/documents' ).autoSaveTimers[ documentId ]");
          var documentId = elementor.documents.getCurrent();
          $e.components.get('editor/documents').autoSaveTimers[documentId] = value;
        }
      });
      var onOrig = this.on;
      this.on = function (eventName, callback, context) {
        elementorDevTools.deprecation.deprecated('elementor.saver.on', '2.9.0', '$e.hooks');
        onOrig(eventName, callback, context);
      };
      elementor.on('document:loaded', function () {
        if (elementor.channels.editor._events && elementor.channels.editor._events.saved) {
          elementorDevTools.deprecation.deprecated("elementor.channels.editor.on( 'saved', ... )", '2.9.0', '$e.hooks');
        }
      });
    }

    /**
     * @deprecated since 2.9.0, use `$e.run( 'document/save/default' )` instead.
     */
  }, {
    key: "defaultSave",
    value: function defaultSave() {
      elementorDevTools.deprecation.deprecated('defaultSave()', '2.9.0', "$e.run( 'document/save/default' )");
      return $e.run('document/save/default');
    }

    /**
     * @deprecated since 2.9.0, use `$e.run( 'document/save/discard' )` instead.
     */
  }, {
    key: "discard",
    value: function discard() {
      elementorDevTools.deprecation.deprecated('discard()', '2.9.0', "$e.run( 'document/save/discard' )");
      return $e.run('document/save/discard');
    }

    /**
     * @deprecated since 2.9.0, use `$e.run( 'document/save/auto' )` instead.
     */
  }, {
    key: "doAutoSave",
    value: function doAutoSave() {
      elementorDevTools.deprecation.deprecated('doAutoSave()', '2.9.0', "$e.run( 'document/save/auto' )");
      return $e.run('document/save/auto');
    }

    /**
     * @param {*} options
     * @deprecated since 2.9.0, use `$e.run( 'document/save/publish', { options } )` instead.
     */
  }, {
    key: "publish",
    value: function publish(options) {
      elementorDevTools.deprecation.deprecated('publish( options )', '2.9.0', "$e.run( 'document/save/publish', { options } )");
      return $e.run('document/save/auto', {
        options: options
      });
    }

    /**
     * @param {*} options
     * @deprecated since 2.9.0, use `$e.run( 'document/save/auto', { force: true } )` instead.
     */
  }, {
    key: "saveAutoSave",
    value: function saveAutoSave(options) {
      elementorDevTools.deprecation.deprecated('saveAutoSave()', '2.9.0', "$e.run( 'document/save/auto', { force: true } )");
      options.force = true;
      return $e.run('document/save/auto', options);
    }

    /**
     * @deprecated since 2.9.0, use `$e.run( 'document/save/draft' )` instead.
     */
  }, {
    key: "saveDraft",
    value: function saveDraft() {
      elementorDevTools.deprecation.deprecated('saveDraft()', '2.9.0', "$e.run( 'document/save/draft' )");
      return $e.run('document/save/draft');
    }

    /**
     * @deprecated since 2.9.0, use `$e.run( 'document/save/pending' )` instead.
     */
  }, {
    key: "savePending",
    value: function savePending() {
      elementorDevTools.deprecation.deprecated('savePending()', '2.9.0', "$e.run( 'document/save/pending' )");
      return $e.run('document/save/pending');
    }

    /**
     * @param {*} options
     * @deprecated since 2.9.0, use `$e.run( 'document/save/update', options )` instead.
     */
  }, {
    key: "update",
    value: function update(options) {
      elementorDevTools.deprecation.deprecated('update( options )', '2.9.0', "$e.run( 'document/save/update', options )");
      return $e.run('document/save/update', options);
    }

    /**
     * @deprecated since 2.9.0, use `$e.components.get( 'document/save' ).startAutoSave` instead.
     */
  }, {
    key: "startTimer",
    value: function startTimer() {
      elementorDevTools.deprecation.deprecated('startTimer()', '2.9.0', "$e.components.get( 'document/save' ).startAutoSave");
      throw Error('Deprecated');
    }

    /**
     * @param {*} options
     * @deprecated since 2.9.0, use `$e.internal( 'document/save/save', options )` instead.
     */
  }, {
    key: "saveEditor",
    value: function saveEditor(options) {
      elementorDevTools.deprecation.deprecated('saveEditor( options )', '2.9.0', "$e.internal( 'document/save/save', options )");
      $e.internal('document/save/save', options);
    }

    /**
     * @param {*} status
     * @deprecated since 2.9.0, use `$e.internal( 'document/save/set-is-modified', { status } )` instead.
     */
  }, {
    key: "setFlagEditorChange",
    value: function setFlagEditorChange(status) {
      elementorDevTools.deprecation.deprecated('setFlagEditorChange( status )', '2.9.0', "$e.internal( 'document/save/set-is-modified', { status } )");
      $e.internal('document/save/set-is-modified', {
        status: status
      });
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/document/save/behaviors/footer-saver.js":
/*!***********************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/behaviors/footer-saver.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_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");
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"));
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; })(); }
module.exports = /*#__PURE__*/function (_Marionette$Behavior) {
  function FooterSaver() {
    var _this;
    (0, _classCallCheck2.default)(this, FooterSaver);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, FooterSaver, [].concat(args));
    (0, _defineProperty2.default)(_this, "previewWindow", null);
    return _this;
  }
  (0, _inherits2.default)(FooterSaver, _Marionette$Behavior);
  return (0, _createClass2.default)(FooterSaver, [{
    key: "ui",
    value: function ui() {
      return {
        buttonPreview: '#elementor-panel-footer-saver-preview',
        buttonPublish: '#elementor-panel-saver-button-publish',
        buttonSaveOptions: '#elementor-panel-saver-button-save-options',
        buttonPublishLabel: '#elementor-panel-saver-button-publish-label',
        menuSaveDraft: '#elementor-panel-footer-sub-menu-item-save-draft',
        lastEditedWrapper: '.elementor-last-edited-wrapper',
        copyAndShareLink: '#elementor-panel-footer-sub-menu-item-copy-share-link'
      };
    }
  }, {
    key: "events",
    value: function events() {
      return {
        'click @ui.buttonPreview': 'onClickButtonPreview',
        'click @ui.buttonPublish': 'onClickButtonPublish',
        'click @ui.menuSaveDraft': 'onClickMenuSaveDraft',
        'click @ui.copyAndShareLink': 'onCopyAndShareLinkClick'
      };
    }
  }, {
    key: "initialize",
    value: function initialize(options) {
      var _this2 = this;
      this.document = options.document || elementor.documents.getCurrent();
      elementor.on('document:loaded', function (document) {
        _this2.setMenuItems(document);
        _this2.setLastEdited(document.config.last_edited);
      });

      // TODO: Temp, footerSaver should be removed.
      $e.components.get('document/save').footerSaver = this;
    }
  }, {
    key: "activateSaveButtons",
    value: function activateSaveButtons(document, status) {
      var hasChanges = status || 'draft' === document.container.settings.get('post_status');
      this.ui.buttonPublish.add(this.ui.menuSaveDraft).toggleClass('elementor-disabled', !hasChanges);
      this.ui.buttonSaveOptions.toggleClass('elementor-disabled', !hasChanges);
    }
  }, {
    key: "activateCopyAndShareButton",
    value: function activateCopyAndShareButton(postStatus, status) {
      if (!status) {
        return;
      }
      if ('publish' === postStatus) {
        this.ui.copyAndShareLink.removeClass('elementor-disabled');
      } else {
        this.ui.copyAndShareLink.addClass('elementor-disabled');
      }
    }
  }, {
    key: "onCopyAndShareLinkClick",
    value: function onCopyAndShareLinkClick() {
      var _elementor$config$doc;
      var url = (_elementor$config$doc = elementor.config.document.urls.permalink) !== null && _elementor$config$doc !== void 0 ? _elementor$config$doc : '';
      if (!url) {
        return;
      }
      navigator.clipboard.writeText(url);
      var $title = this.ui.copyAndShareLink.find('.elementor-title');
      $title.text(__('Link copied!', 'elementor'));
      setTimeout(function () {
        $title.text(__('Copy and share Link', 'elementor'));
      }, 2000);
    }
  }, {
    key: "onRender",
    value: function onRender() {
      var _elementor$config$doc2, _elementor;
      this.addTooltip();
      var postStatus = (_elementor$config$doc2 = (_elementor = elementor) === null || _elementor === void 0 || (_elementor = _elementor.config) === null || _elementor === void 0 || (_elementor = _elementor.document) === null || _elementor === void 0 || (_elementor = _elementor.status) === null || _elementor === void 0 ? void 0 : _elementor.value) !== null && _elementor$config$doc2 !== void 0 ? _elementor$config$doc2 : '';
      this.activateCopyAndShareButton(postStatus, true);
    }
  }, {
    key: "setLastEdited",
    value: function setLastEdited(lastEdited) {
      this.ui.lastEditedWrapper.removeClass('elementor-button-state').find('.elementor-last-edited').html(lastEdited);
    }
  }, {
    key: "onClickButtonPreview",
    value: function onClickButtonPreview() {
      $e.run('editor/documents/preview', {
        id: elementor.documents.getCurrent().id
      });
    }
  }, {
    key: "onClickButtonPublish",
    value: function onClickButtonPublish() {
      if (this.ui.buttonPublish.hasClass('elementor-disabled')) {
        return;
      }
      $e.run('document/save/default');
    }
  }, {
    key: "onClickMenuSaveDraft",
    value: function onClickMenuSaveDraft() {
      $e.run('document/save/draft');
    }
  }, {
    key: "setMenuItems",
    value: function setMenuItems(document) {
      var postStatus = document.container.settings.get('post_status'),
        translationMap = {
          publish: __('Publish', 'elementor'),
          update: __('Update', 'elementor'),
          submit: __('Submit', 'elementor')
        };
      var publishLabel = 'publish';
      switch (postStatus) {
        case 'publish':
        case 'private':
          publishLabel = 'update';
          if (document.config.revisions.current_id !== document.id) {
            this.activateSaveButtons(document, true);
          }
          break;
        case 'draft':
          if (!document.config.user.can_publish) {
            publishLabel = 'submit';
          }
          this.activateSaveButtons(document, true);
          break;
        case 'pending': // User cannot change post status
        case undefined:
          // TODO: as a contributor it's undefined instead of 'pending'.
          if (!document.config.user.can_publish) {
            publishLabel = 'update';
          }
          break;
      }
      this.ui.buttonPublishLabel.html(translationMap[publishLabel]);
    }
  }, {
    key: "addTooltip",
    value: function addTooltip() {
      // Create tooltip on controls
      this.$el.find('.tooltip-target').each(function (index, button) {
        var $button = jQuery(button);
        $button.tipsy({
          // `n` for down, `s` for up
          gravity: 's',
          offset: $button.data('tooltip-offset'),
          title: function title() {
            return this.getAttribute('data-tooltip');
          }
        });
      });
    }

    // TODO: Consider $e.internal( 'editor/documents/preview-refresh' ); ?.
  }, {
    key: "refreshWpPreview",
    value: function refreshWpPreview() {
      if (this.previewWindow) {
        // Refresh URL form updated config.
        try {
          this.previewWindow.location.href = elementor.config.document.urls.wp_preview;
        } catch (e) {
          // If the this.previewWindow is closed or it's domain was changed.
          // Do nothing.
        }
      }
    }
  }]);
}(Marionette.Behavior);

/***/ }),

/***/ "../assets/dev/js/editor/document/save/commands/auto.js":
/*!**************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/commands/auto.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"] = exports.Auto = 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 _base = _interopRequireDefault(__webpack_require__(/*! ./base/base */ "../assets/dev/js/editor/document/save/commands/base/base.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; })(); }
var Auto = exports.Auto = /*#__PURE__*/function (_Base) {
  function Auto() {
    (0, _classCallCheck2.default)(this, Auto);
    return _callSuper(this, Auto, arguments);
  }
  (0, _inherits2.default)(Auto, _Base);
  return (0, _createClass2.default)(Auto, [{
    key: "apply",
    value: function apply(args) {
      var _args$force = args.force,
        force = _args$force === void 0 ? false : _args$force,
        _args$document = args.document,
        document = _args$document === void 0 ? this.document : _args$document;
      if (!force && !document.container.isEditable()) {
        return jQuery.Deferred().reject('Document is not editable');
      }
      if (!document.editor.isChanged) {
        return jQuery.Deferred().resolve('Document is not changed');
      }
      args.status = 'autosave';
      args.document = document;
      return $e.internal('document/save/save', args);
    }
  }]);
}(_base.default);
var _default = exports["default"] = Auto;

/***/ }),

/***/ "../assets/dev/js/editor/document/save/commands/base/base.js":
/*!*******************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/commands/base/base.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var Base = exports["default"] = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Base() {
    (0, _classCallCheck2.default)(this, Base);
    return _callSuper(this, Base, arguments);
  }
  (0, _inherits2.default)(Base, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Base, [{
    key: "initialize",
    value: function initialize(args) {
      _superPropGet(Base, "initialize", this, 3)([args]);
      var _args$document = args.document,
        document = _args$document === void 0 ? elementor.documents.getCurrent() : _args$document;
      this.document = document;
    }
  }]);
}($e.modules.CommandBase);

/***/ }),

/***/ "../assets/dev/js/editor/document/save/commands/default.js":
/*!*****************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/commands/default.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"] = 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 _base = _interopRequireDefault(__webpack_require__(/*! ./base/base */ "../assets/dev/js/editor/document/save/commands/base/base.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; })(); }
var Default = exports.Default = /*#__PURE__*/function (_Base) {
  function Default() {
    (0, _classCallCheck2.default)(this, Default);
    return _callSuper(this, Default, arguments);
  }
  (0, _inherits2.default)(Default, _Base);
  return (0, _createClass2.default)(Default, [{
    key: "apply",
    value: function apply() {
      var document = this.document,
        postStatus = document.container.settings.get('post_status');
      var deferred;
      switch (postStatus) {
        case 'publish':
        case 'future':
        case 'private':
          deferred = $e.run('document/save/update', {
            document: document
          });
          break;
        case 'draft':
          if (document.config.user.can_publish) {
            deferred = $e.run('document/save/publish', {
              document: document
            });
          } else {
            deferred = $e.run('document/save/pending', {
              document: document
            });
          }
          break;
        case 'pending': // User cannot change post status
        case undefined:
          // TODO: as a contributor it's undefined instead of 'pending'.
          if (document.config.user.can_publish) {
            deferred = $e.run('document/save/publish', {
              document: document
            });
          } else {
            deferred = $e.run('document/save/update', {
              document: document
            });
          }
      }
      return deferred;
    }
  }]);
}(_base.default);
var _default = exports["default"] = Default;

/***/ }),

/***/ "../assets/dev/js/editor/document/save/commands/discard.js":
/*!*****************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/commands/discard.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"] = exports.Discard = 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 _base = _interopRequireDefault(__webpack_require__(/*! ./base/base */ "../assets/dev/js/editor/document/save/commands/base/base.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; })(); }
var Discard = exports.Discard = /*#__PURE__*/function (_Base) {
  function Discard() {
    (0, _classCallCheck2.default)(this, Discard);
    return _callSuper(this, Discard, arguments);
  }
  (0, _inherits2.default)(Discard, _Base);
  return (0, _createClass2.default)(Discard, [{
    key: "apply",
    value: function apply(args) {
      var _args$document = args.document,
        document = _args$document === void 0 ? elementor.documents.getCurrent() : _args$document;

      // Start server request before undo, because the undo can take time.
      var deferred = elementorCommon.ajax.addRequest('discard_changes');
      $e.run('document/history/undo-all', {
        document: document
      });

      // Discard autosave revision if exist.
      return deferred;
    }
  }]);
}(_base.default);
var _default = exports["default"] = Discard;

/***/ }),

/***/ "../assets/dev/js/editor/document/save/commands/draft.js":
/*!***************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/commands/draft.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"] = exports.Draft = 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 _base = _interopRequireDefault(__webpack_require__(/*! ./base/base */ "../assets/dev/js/editor/document/save/commands/base/base.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; })(); }
var Draft = exports.Draft = /*#__PURE__*/function (_Base) {
  function Draft() {
    (0, _classCallCheck2.default)(this, Draft);
    return _callSuper(this, Draft, arguments);
  }
  (0, _inherits2.default)(Draft, _Base);
  return (0, _createClass2.default)(Draft, [{
    key: "apply",
    value: function apply() {
      var document = this.document,
        postStatus = document.container.settings.get('post_status');

      // If no changes - don't save but allow un-publish.
      if (!document.editor.isChanged && 'draft' !== postStatus) {
        return jQuery.Deferred().reject('Document is not editable');
      }
      var deferred;
      switch (postStatus) {
        case 'publish':
        case 'private':
          deferred = $e.run('document/save/auto', {
            document: document
          });
          break;
        default:
          // Update and create a revision
          deferred = $e.run('document/save/update', {
            document: document
          });
      }
      return deferred;
    }
  }]);
}(_base.default);
var _default = exports["default"] = Draft;

/***/ }),

/***/ "../assets/dev/js/editor/document/save/commands/index.js":
/*!***************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/commands/index.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Auto", ({
  enumerable: true,
  get: function get() {
    return _auto.Auto;
  }
}));
Object.defineProperty(exports, "Default", ({
  enumerable: true,
  get: function get() {
    return _default.Default;
  }
}));
Object.defineProperty(exports, "Discard", ({
  enumerable: true,
  get: function get() {
    return _discard.Discard;
  }
}));
Object.defineProperty(exports, "Draft", ({
  enumerable: true,
  get: function get() {
    return _draft.Draft;
  }
}));
Object.defineProperty(exports, "Pending", ({
  enumerable: true,
  get: function get() {
    return _pending.Pending;
  }
}));
Object.defineProperty(exports, "Publish", ({
  enumerable: true,
  get: function get() {
    return _publish.Publish;
  }
}));
Object.defineProperty(exports, "Update", ({
  enumerable: true,
  get: function get() {
    return _update.Update;
  }
}));
var _auto = __webpack_require__(/*! ./auto */ "../assets/dev/js/editor/document/save/commands/auto.js");
var _default = __webpack_require__(/*! ./default */ "../assets/dev/js/editor/document/save/commands/default.js");
var _discard = __webpack_require__(/*! ./discard */ "../assets/dev/js/editor/document/save/commands/discard.js");
var _draft = __webpack_require__(/*! ./draft */ "../assets/dev/js/editor/document/save/commands/draft.js");
var _pending = __webpack_require__(/*! ./pending */ "../assets/dev/js/editor/document/save/commands/pending.js");
var _publish = __webpack_require__(/*! ./publish */ "../assets/dev/js/editor/document/save/commands/publish.js");
var _update = __webpack_require__(/*! ./update */ "../assets/dev/js/editor/document/save/commands/update.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/save/commands/internal/index.js":
/*!************************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/commands/internal/index.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Save", ({
  enumerable: true,
  get: function get() {
    return _save.Save;
  }
}));
Object.defineProperty(exports, "SetIsModified", ({
  enumerable: true,
  get: function get() {
    return _setIsModified.SetIsModified;
  }
}));
var _save = __webpack_require__(/*! ./save.js */ "../assets/dev/js/editor/document/save/commands/internal/save.js");
var _setIsModified = __webpack_require__(/*! ./set-is-modified */ "../assets/dev/js/editor/document/save/commands/internal/set-is-modified.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/save/commands/internal/save.js":
/*!***********************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/commands/internal/save.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"] = exports.Save = void 0;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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"));
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; })(); }
var Save = exports.Save = /*#__PURE__*/function (_$e$modules$CommandIn) {
  function Save() {
    (0, _classCallCheck2.default)(this, Save);
    return _callSuper(this, Save, arguments);
  }
  (0, _inherits2.default)(Save, _$e$modules$CommandIn);
  return (0, _createClass2.default)(Save, [{
    key: "apply",
    value: function () {
      var _apply = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(args) {
        var _elementorCommon$conf,
          _this = this;
        var _args$status, status, _args$force, force, _args$onSuccess, onSuccess, _args$document, document, container, _elementorCommon$__be, _elementorCommon, settings, oldStatus, elements, successArgs, deferred;
        return _regenerator.default.wrap(function (_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              _args$status = args.status, status = _args$status === void 0 ? 'draft' : _args$status, _args$force = args.force, force = _args$force === void 0 ? false : _args$force, _args$onSuccess = args.onSuccess, onSuccess = _args$onSuccess === void 0 ? null : _args$onSuccess, _args$document = args.document, document = _args$document === void 0 ? elementor.documents.getCurrent() : _args$document;
              if (!(!force && document.editor.isSaving)) {
                _context.next = 1;
                break;
              }
              return _context.abrupt("return", jQuery.Deferred().reject('Document already in save progress'));
            case 1:
              container = document.container;
              if (!((_elementorCommon$conf = elementorCommon.config.experimentalFeatures) !== null && _elementorCommon$conf !== void 0 && _elementorCommon$conf.e_components)) {
                _context.next = 2;
                break;
              }
              _context.next = 2;
              return (_elementorCommon$__be = (_elementorCommon = elementorCommon).__beforeSave) === null || _elementorCommon$__be === void 0 ? void 0 : _elementorCommon$__be.call(_elementorCommon, {
                container: container,
                status: status
              });
            case 2:
              settings = container.settings.toJSON({
                remove: ['default']
              });
              oldStatus = container.settings.get('post_status');
              this.addPersistentSettingsToPayload(settings, container);

              // TODO: Remove - Backwards compatibility.
              elementor.saver.trigger('before:save', args).trigger('before:save:' + status, args);
              document.editor.isSaving = true;
              document.editor.isChangedDuringSave = false;
              settings.post_status = status;
              elements = [];
              if (elementor.config.document.panel.has_elements) {
                elements = container.model.get('elements').toJSON({
                  remove: ['default', 'editSettings', 'defaultEditSettings']
                });
              }
              successArgs = {
                status: status,
                oldStatus: oldStatus,
                elements: elements,
                document: document,
                currentHistoryId: document.history.currentItem.get('id')
              };
              deferred = elementorCommon.ajax.addRequest('save_builder', {
                data: {
                  status: status,
                  elements: elements,
                  settings: settings
                },
                error: function error(data) {
                  return _this.onSaveError(data, status, document);
                }
              }).then(function (data) {
                return _this.onSaveSuccess(data, successArgs, onSuccess);
              }); // TODO: Remove - Backwards compatibility
              elementor.saver.trigger('save', args);
              return _context.abrupt("return", deferred);
            case 3:
            case "end":
              return _context.stop();
          }
        }, _callee, this);
      }));
      function apply(_x) {
        return _apply.apply(this, arguments);
      }
      return apply;
    }()
  }, {
    key: "onSaveSuccess",
    value: function onSaveSuccess(data, args) {
      var callback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
      var status = args.status,
        oldStatus = args.oldStatus,
        elements = args.elements,
        document = args.document,
        currentHistoryId = args.currentHistoryId;
      this.onAfterAjax(document);
      document.editor.lastSaveHistoryId = currentHistoryId;

      // Remove document cache.
      elementor.documents.invalidateCache(document.id);
      var statusChanged = status !== oldStatus,
        result = {
          data: data,
          statusChanged: statusChanged
        };

      // Document is switched during the save, do nothing.
      if (document !== elementor.documents.getCurrent()) {
        return result;
      }
      if (!document.editor.isChangedDuringSave) {
        document.editor.isSaved = true;
      }

      // TODO: Move to hook.
      if ('autosave' !== status) {
        if (statusChanged) {
          $e.run('document/elements/settings', {
            container: elementor.settings.page.getEditedView().getContainer(),
            settings: {
              post_status: status
            },
            options: {
              external: true
            }
          });
        }

        // Notice: Must be after update page.model.post_status to the new status.
        if (!document.editor.isChangedDuringSave) {
          $e.internal('document/save/set-is-modified', {
            status: false
          });
        }
      }
      if (data.config) {
        // TODO: Move to es6.
        jQuery.extend(true, document.config, data.config.document);
      }
      if (document.config.elements) {
        document.config.elements = elements;
      }

      // TODO: Remove - Backwards compatibility
      elementor.channels.editor.trigger('saved', data);

      // TODO: Remove - Backwards compatibility
      elementor.saver.trigger('after:save', data).trigger('after:save:' + status, data);

      // TODO: Remove - Backwards compatibility
      if (statusChanged) {
        elementor.saver.trigger('page:status:change', status, oldStatus);
      }
      if (_.isFunction(callback)) {
        callback.call(this, result);
      }
      return result;
    }
  }, {
    key: "onSaveError",
    value: function onSaveError(data, status, document) {
      this.onAfterAjax(document);

      // TODO: Remove - Backwards compatibility
      elementor.saver.trigger('after:saveError', data).trigger('after:saveError:' + status, data);
      var message;
      if (_.isString(data)) {
        message = data;
      } else if (data.statusText) {
        message = elementor.createAjaxErrorMessage(data);
        if (0 === data.readyState) {
          message += ' ' + __('Saving has been disabled until you’re reconnected.', 'elementor');
        }
      } else if (data[0] && data[0].code) {
        message = __('Server Error', 'elementor') + ' ' + data[0].code;
      }
      elementor.notifications.showToast({
        message: message
      });
    }
  }, {
    key: "onAfterAjax",
    value: function onAfterAjax(document) {
      document.editor.isSaving = false;
    }
  }, {
    key: "addPersistentSettingsToPayload",
    value: function addPersistentSettingsToPayload(settings, container) {
      var _elementor;
      (_elementor = elementor) === null || _elementor === void 0 || (_elementor = _elementor.config) === null || _elementor === void 0 || (_elementor = _elementor.persistent_keys) === null || _elementor === void 0 || _elementor.forEach(function (setting) {
        if (container.settings.defaults.hasOwnProperty(setting) && !settings.hasOwnProperty(setting)) {
          settings[setting] = container.settings.defaults[setting];
        }
      });
    }
  }]);
}($e.modules.CommandInternalBase);
var _default = exports["default"] = Save;

/***/ }),

/***/ "../assets/dev/js/editor/document/save/commands/internal/set-is-modified.js":
/*!**********************************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/commands/internal/set-is-modified.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"] = exports.SetIsModified = 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"));
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; })(); }
var SetIsModified = exports.SetIsModified = /*#__PURE__*/function (_$e$modules$CommandIn) {
  function SetIsModified() {
    (0, _classCallCheck2.default)(this, SetIsModified);
    return _callSuper(this, SetIsModified, arguments);
  }
  (0, _inherits2.default)(SetIsModified, _$e$modules$CommandIn);
  return (0, _createClass2.default)(SetIsModified, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireArgumentType('status', 'boolean', args);
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var status = args.status,
        _args$document = args.document,
        document = _args$document === void 0 ? elementor.documents.getCurrent() : _args$document;

      // Save document for hooks.
      args.document = document;
      document.editor.isChanged = status;
      if (status && document.editor.isSaving) {
        document.editor.isChangedDuringSave = true;
      }
      if (status) {
        document.editor.isSaved = false;
      }

      // TODO: BC.
      elementor.channels.editor.reply('status', status).trigger('status:change', status);
      if (document.editor.isChanged) {
        this.component.startAutoSave(document);
      }
    }
  }]);
}($e.modules.CommandInternalBase);
var _default = exports["default"] = SetIsModified;

/***/ }),

/***/ "../assets/dev/js/editor/document/save/commands/pending.js":
/*!*****************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/commands/pending.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.Pending = 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 _base = _interopRequireDefault(__webpack_require__(/*! ./base/base */ "../assets/dev/js/editor/document/save/commands/base/base.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; })(); }
var Pending = exports.Pending = /*#__PURE__*/function (_Base) {
  function Pending() {
    (0, _classCallCheck2.default)(this, Pending);
    return _callSuper(this, Pending, arguments);
  }
  (0, _inherits2.default)(Pending, _Base);
  return (0, _createClass2.default)(Pending, [{
    key: "apply",
    value: function apply(args) {
      var _args$status = args.status,
        status = _args$status === void 0 ? 'pending' : _args$status,
        _args$document = args.document,
        document = _args$document === void 0 ? this.document : _args$document;
      return $e.internal('document/save/save', {
        status: status,
        document: document
      });
    }
  }]);
}(_base.default);

/***/ }),

/***/ "../assets/dev/js/editor/document/save/commands/publish.js":
/*!*****************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/commands/publish.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.Publish = 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 _base = _interopRequireDefault(__webpack_require__(/*! ./base/base */ "../assets/dev/js/editor/document/save/commands/base/base.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; })(); }
var Publish = exports.Publish = /*#__PURE__*/function (_Base) {
  function Publish() {
    (0, _classCallCheck2.default)(this, Publish);
    return _callSuper(this, Publish, arguments);
  }
  (0, _inherits2.default)(Publish, _Base);
  return (0, _createClass2.default)(Publish, [{
    key: "apply",
    value: function apply(args) {
      var _args$status = args.status,
        status = _args$status === void 0 ? 'publish' : _args$status,
        _args$document = args.document,
        document = _args$document === void 0 ? this.document : _args$document;
      return $e.internal('document/save/save', {
        status: status,
        document: document
      });
    }
  }]);
}(_base.default);

/***/ }),

/***/ "../assets/dev/js/editor/document/save/commands/update.js":
/*!****************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/commands/update.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.Update = 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 _base = _interopRequireDefault(__webpack_require__(/*! ./base/base */ "../assets/dev/js/editor/document/save/commands/base/base.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; })(); }
var Update = exports.Update = /*#__PURE__*/function (_Base) {
  function Update() {
    (0, _classCallCheck2.default)(this, Update);
    return _callSuper(this, Update, arguments);
  }
  (0, _inherits2.default)(Update, _Base);
  return (0, _createClass2.default)(Update, [{
    key: "apply",
    value: function apply(args) {
      var _args$document = args.document,
        document = _args$document === void 0 ? this.document : _args$document,
        _args$status = args.status,
        status = _args$status === void 0 ? document.container.settings.get('post_status') : _args$status;
      return $e.internal('document/save/save', {
        status: status,
        document: document
      });
    }
  }]);
}(_base.default);

/***/ }),

/***/ "../assets/dev/js/editor/document/save/component.js":
/*!**********************************************************!*\
  !*** ../assets/dev/js/editor/document/save/component.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");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.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 _backwardsCompatibility = _interopRequireDefault(__webpack_require__(/*! ./backwards-compatibility */ "../assets/dev/js/editor/document/save/backwards-compatibility.js"));
var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../assets/dev/js/editor/document/save/commands/index.js"));
var commandsInternal = _interopRequireWildcard(__webpack_require__(/*! ./commands/internal */ "../assets/dev/js/editor/document/save/commands/internal/index.js"));
var hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/ */ "../assets/dev/js/editor/document/save/hooks/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
/**
 * @typedef {import('./behaviors/footer-saver')} FooterSaver
 */
var Component = exports["default"] = /*#__PURE__*/function (_BackwardsCompatibili) {
  function Component() {
    var _this;
    (0, _classCallCheck2.default)(this, Component);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, Component, [].concat(args));
    /**
     * Footer saver behavior.
     *
     * @type {FooterSaver}
     */
    (0, _defineProperty2.default)(_this, "footerSaver", void 0);
    return _this;
  }
  (0, _inherits2.default)(Component, _BackwardsCompatibili);
  return (0, _createClass2.default)(Component, [{
    key: "__construct",
    value: function __construct() {
      var _this2 = this;
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      _superPropGet(Component, "__construct", this, 3)([args]);

      /**
       * Auto save timer handlers.
       *
       * @type {Object}
       */
      this.autoSaveTimers = {};

      /**
       * Auto save interval.
       *
       * @type {number}
       */
      this.autoSaveInterval = elementor.config.autosave_interval * 1000;
      elementorCommon.elements.$window.on('beforeunload', function () {
        if (_this2.isEditorChanged()) {
          // Returns a message to confirm dialog.
          return __('Please note: All unsaved changes will be lost.', 'elementor');
        }
      });
    }
  }, {
    key: "getNamespace",
    value: function getNamespace() {
      return 'document/save';
    }

    /**
     * TODO: test
     *
     * @param {Document} document
     */
  }, {
    key: "startAutoSave",
    value: function startAutoSave(document) {
      var _this3 = this;
      this.stopAutoSave(document);
      this.autoSaveTimers[document.id] = setTimeout(function () {
        $e.run('document/save/auto', {
          document: document
        });
        delete _this3.autoSaveTimers[document.id];
      }, this.autoSaveInterval);
    }

    /**
     * TODO: test
     *
     * @param {Document} document
     */
  }, {
    key: "stopAutoSave",
    value: function stopAutoSave(document) {
      if (this.autoSaveTimers[document.id]) {
        clearTimeout(this.autoSaveTimers[document.id]);
        delete this.autoSaveTimers[document.id];
      }
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }
  }, {
    key: "defaultCommandsInternal",
    value: function defaultCommandsInternal() {
      return this.importCommands(commandsInternal);
    }
  }, {
    key: "defaultHooks",
    value: function defaultHooks() {
      return this.importHooks(hooks);
    }
  }, {
    key: "isEditorChanged",
    value: function isEditorChanged() {
      return true === elementor.channels.editor.request('status');
    }
  }]);
}(_backwardsCompatibility.default);

/***/ }),

/***/ "../assets/dev/js/editor/document/save/hooks/index.js":
/*!************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/hooks/index.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
var _ui = __webpack_require__(/*! ./ui/ */ "../assets/dev/js/editor/document/save/hooks/ui/index.js");
Object.keys(_ui).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _ui[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _ui[key];
    }
  });
});

/***/ }),

/***/ "../assets/dev/js/editor/document/save/hooks/ui/index.js":
/*!***************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/hooks/ui/index.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
var _save = __webpack_require__(/*! ./save/ */ "../assets/dev/js/editor/document/save/hooks/ui/save/index.js");
Object.keys(_save).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _save[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _save[key];
    }
  });
});
var _setIsModified = __webpack_require__(/*! ./set-is-modified/ */ "../assets/dev/js/editor/document/save/hooks/ui/set-is-modified/index.js");
Object.keys(_setIsModified).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _setIsModified[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _setIsModified[key];
    }
  });
});
var _settings = __webpack_require__(/*! ./settings */ "../assets/dev/js/editor/document/save/hooks/ui/settings/index.js");
Object.keys(_settings).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _settings[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _settings[key];
    }
  });
});

/***/ }),

/***/ "../assets/dev/js/editor/document/save/hooks/ui/save/after.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/hooks/ui/save/after.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"] = exports.FooterSaverAfterSave = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/ui/after */ "../modules/web-cli/assets/js/modules/hooks/ui/after.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; })(); }
var FooterSaverAfterSave = exports.FooterSaverAfterSave = /*#__PURE__*/function (_HookUIAfter) {
  function FooterSaverAfterSave() {
    (0, _classCallCheck2.default)(this, FooterSaverAfterSave);
    return _callSuper(this, FooterSaverAfterSave, arguments);
  }
  (0, _inherits2.default)(FooterSaverAfterSave, _HookUIAfter);
  return (0, _createClass2.default)(FooterSaverAfterSave, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/save/save';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'footer-saver-after-save';
    }
  }, {
    key: "apply",
    value: function apply(args, result) {
      var status = args.status,
        data = result.data,
        _$e$components$get = $e.components.get('document/save'),
        footerSaver = _$e$components$get.footerSaver;
      NProgress.done();
      footerSaver.ui.buttonPublish.removeClass('elementor-button-state');
      footerSaver.ui.lastEditedWrapper.removeClass('elementor-state-active');
      footerSaver.refreshWpPreview();
      footerSaver.setLastEdited(data.config.document.last_edited);
      if (result.statusChanged && 'publish' === status && elementor.config.document.urls.have_a_look) {
        this.onPageStatusChange();
      }
    }
  }, {
    key: "onPageStatusChange",
    value: function onPageStatusChange() {
      var buttons = [];
      buttons.push({
        name: 'view_page',
        text: __('Have a look', 'elementor'),
        callback: function callback() {
          open(elementor.config.document.urls.have_a_look);
        }
      });
      elementor.notifications.showToast({
        message: elementor.config.document.panel.messages.publish_notification,
        buttons: buttons
      });
    }
  }]);
}(_after.default);
var _default = exports["default"] = FooterSaverAfterSave;

/***/ }),

/***/ "../assets/dev/js/editor/document/save/hooks/ui/save/before.js":
/*!*********************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/hooks/ui/save/before.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"] = exports.FooterSaverBeforeSave = 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 _before = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/ui/before */ "../modules/web-cli/assets/js/modules/hooks/ui/before.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; })(); }
var FooterSaverBeforeSave = exports.FooterSaverBeforeSave = /*#__PURE__*/function (_HookUIBefore) {
  function FooterSaverBeforeSave() {
    (0, _classCallCheck2.default)(this, FooterSaverBeforeSave);
    return _callSuper(this, FooterSaverBeforeSave, arguments);
  }
  (0, _inherits2.default)(FooterSaverBeforeSave, _HookUIBefore);
  return (0, _createClass2.default)(FooterSaverBeforeSave, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/save/save';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'footer-saver-before-save';
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var status = args.status,
        _$e$components$get = $e.components.get('document/save'),
        footerSaver = _$e$components$get.footerSaver;
      NProgress.start();
      if ('autosave' === status) {
        footerSaver.ui.lastEditedWrapper.addClass('elementor-state-active');
      } else {
        footerSaver.ui.buttonPublish.addClass('elementor-button-state');
      }
    }
  }]);
}(_before.default);
var _default = exports["default"] = FooterSaverBeforeSave;

/***/ }),

/***/ "../assets/dev/js/editor/document/save/hooks/ui/save/catch.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/hooks/ui/save/catch.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"] = exports.FooterSaverCatchSave = 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 _catch = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/ui/catch */ "../modules/web-cli/assets/js/modules/hooks/ui/catch.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; })(); }
var FooterSaverCatchSave = exports.FooterSaverCatchSave = /*#__PURE__*/function (_HookUICatch) {
  function FooterSaverCatchSave() {
    (0, _classCallCheck2.default)(this, FooterSaverCatchSave);
    return _callSuper(this, FooterSaverCatchSave, arguments);
  }
  (0, _inherits2.default)(FooterSaverCatchSave, _HookUICatch);
  return (0, _createClass2.default)(FooterSaverCatchSave, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/save/save';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'footer-saver-catch-save';
    }
  }, {
    key: "apply",
    value: function apply() {
      NProgress.done();
      $e.components.get('document/save').footerSaver.ui.buttonPublish.removeClass('elementor-button-state');
    }
  }]);
}(_catch.default);
var _default = exports["default"] = FooterSaverCatchSave;

/***/ }),

/***/ "../assets/dev/js/editor/document/save/hooks/ui/save/index.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/hooks/ui/save/index.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "FooterSaverAfterSave", ({
  enumerable: true,
  get: function get() {
    return _after.FooterSaverAfterSave;
  }
}));
Object.defineProperty(exports, "FooterSaverBeforeSave", ({
  enumerable: true,
  get: function get() {
    return _before.FooterSaverBeforeSave;
  }
}));
Object.defineProperty(exports, "FooterSaverCatchSave", ({
  enumerable: true,
  get: function get() {
    return _catch.FooterSaverCatchSave;
  }
}));
var _after = __webpack_require__(/*! ./after */ "../assets/dev/js/editor/document/save/hooks/ui/save/after.js");
var _before = __webpack_require__(/*! ./before */ "../assets/dev/js/editor/document/save/hooks/ui/save/before.js");
var _catch = __webpack_require__(/*! ./catch */ "../assets/dev/js/editor/document/save/hooks/ui/save/catch.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/save/hooks/ui/set-is-modified/after.js":
/*!*******************************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/hooks/ui/set-is-modified/after.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"] = exports.FooterSaverActiveSaveButtons = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/ui/after */ "../modules/web-cli/assets/js/modules/hooks/ui/after.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; })(); }
var FooterSaverActiveSaveButtons = exports.FooterSaverActiveSaveButtons = /*#__PURE__*/function (_HookUIAfter) {
  function FooterSaverActiveSaveButtons() {
    (0, _classCallCheck2.default)(this, FooterSaverActiveSaveButtons);
    return _callSuper(this, FooterSaverActiveSaveButtons, arguments);
  }
  (0, _inherits2.default)(FooterSaverActiveSaveButtons, _HookUIAfter);
  return (0, _createClass2.default)(FooterSaverActiveSaveButtons, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/save/set-is-modified';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'footer-saver-activate-save-buttons';
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var status = args.status,
        document = args.document;
      $e.components.get('document/save').footerSaver.activateSaveButtons(document, status);
    }
  }]);
}(_after.default);
var _default = exports["default"] = FooterSaverActiveSaveButtons;

/***/ }),

/***/ "../assets/dev/js/editor/document/save/hooks/ui/set-is-modified/index.js":
/*!*******************************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/hooks/ui/set-is-modified/index.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "FooterSaverActiveSaveButtons", ({
  enumerable: true,
  get: function get() {
    return _after.FooterSaverActiveSaveButtons;
  }
}));
var _after = __webpack_require__(/*! ./after */ "../assets/dev/js/editor/document/save/hooks/ui/set-is-modified/after.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/save/hooks/ui/settings/index.js":
/*!************************************************************************!*\
  !*** ../assets/dev/js/editor/document/save/hooks/ui/settings/index.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"] = exports.FooterSeverRefreshMenu = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/ui/after */ "../modules/web-cli/assets/js/modules/hooks/ui/after.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; })(); }
var FooterSeverRefreshMenu = exports.FooterSeverRefreshMenu = /*#__PURE__*/function (_HookUIAfter) {
  function FooterSeverRefreshMenu() {
    (0, _classCallCheck2.default)(this, FooterSeverRefreshMenu);
    return _callSuper(this, FooterSeverRefreshMenu, arguments);
  }
  (0, _inherits2.default)(FooterSeverRefreshMenu, _HookUIAfter);
  return (0, _createClass2.default)(FooterSeverRefreshMenu, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'footer-saver-refresh-menu';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'document';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return args.settings && 'undefined' !== typeof args.settings.post_status;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _$e$components$get = $e.components.get('document/save'),
        footerSaver = _$e$components$get.footerSaver;
      footerSaver.setMenuItems(args.container.document);
      footerSaver.refreshWpPreview();
    }
  }]);
}(_after.default);
var _default = exports["default"] = FooterSeverRefreshMenu;

/***/ }),

/***/ "../assets/dev/js/editor/document/ui-states/direction-mode.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/document/ui-states/direction-mode.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.DirectionMode = exports.DIRECTION_ROW_REVERSE = exports.DIRECTION_ROW = exports.DIRECTION_COLUMN_REVERSE = exports.DIRECTION_COLUMN = 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 _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 _uiStateBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/core/states/ui-state-base */ "../modules/web-cli/assets/js/core/states/ui-state-base.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; })(); }
var DIRECTION_ROW = exports.DIRECTION_ROW = 'row';
var DIRECTION_ROW_REVERSE = exports.DIRECTION_ROW_REVERSE = 'row-reverse';
var DIRECTION_COLUMN = exports.DIRECTION_COLUMN = 'column';
var DIRECTION_COLUMN_REVERSE = exports.DIRECTION_COLUMN_REVERSE = 'column-reverse';
var DirectionMode = exports.DirectionMode = /*#__PURE__*/function (_UiStateBase) {
  function DirectionMode() {
    (0, _classCallCheck2.default)(this, DirectionMode);
    return _callSuper(this, DirectionMode, arguments);
  }
  (0, _inherits2.default)(DirectionMode, _UiStateBase);
  return (0, _createClass2.default)(DirectionMode, [{
    key: "getId",
    value: function getId() {
      return 'direction-mode';
    }
  }, {
    key: "getOptions",
    value: function getOptions() {
      return (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, DIRECTION_ROW, ''), DIRECTION_ROW_REVERSE, ''), DIRECTION_COLUMN, ''), DIRECTION_COLUMN_REVERSE, '');
    }
  }, {
    key: "getScopes",
    value: function getScopes() {
      return [window.document.body, elementor.$previewContents[0].body];
    }
  }]);
}(_uiStateBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/document/ui-states/index.js":
/*!***********************************************************!*\
  !*** ../assets/dev/js/editor/document/ui-states/index.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "DirectionMode", ({
  enumerable: true,
  get: function get() {
    return _directionMode.DirectionMode;
  }
}));
Object.defineProperty(exports, "ScrubbingMode", ({
  enumerable: true,
  get: function get() {
    return _scrubbingMode.ScrubbingMode;
  }
}));
var _directionMode = __webpack_require__(/*! ./direction-mode */ "../assets/dev/js/editor/document/ui-states/direction-mode.js");
var _scrubbingMode = __webpack_require__(/*! ./scrubbing-mode */ "../assets/dev/js/editor/document/ui-states/scrubbing-mode.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/ui-states/scrubbing-mode.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/document/ui-states/scrubbing-mode.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.ScrubbingMode = 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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _uiStateBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/core/states/ui-state-base */ "../modules/web-cli/assets/js/core/states/ui-state-base.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; })(); } // TODO: Move the `editor` component when it's available, because it's not a document related state.
var ScrubbingMode = exports.ScrubbingMode = /*#__PURE__*/function (_UiStateBase) {
  function ScrubbingMode() {
    (0, _classCallCheck2.default)(this, ScrubbingMode);
    return _callSuper(this, ScrubbingMode, arguments);
  }
  (0, _inherits2.default)(ScrubbingMode, _UiStateBase);
  return (0, _createClass2.default)(ScrubbingMode, [{
    key: "getId",
    value: function getId() {
      return 'scrubbing-mode';
    }
  }, {
    key: "getOptions",
    value: function getOptions() {
      // When scrubbing mode is on, body gets class 'e-ui-state--document-scrubbing-mode__on'
      return (0, _defineProperty2.default)({}, this.constructor.ON, '');
    }
  }, {
    key: "getScopes",
    value: function getScopes() {
      return [window.document.body];
    }
  }]);
}(_uiStateBase.default);
(0, _defineProperty2.default)(ScrubbingMode, "ON", 'on');

/***/ }),

/***/ "../assets/dev/js/editor/document/ui/commands/copy.js":
/*!************************************************************!*\
  !*** ../assets/dev/js/editor/document/ui/commands/copy.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"] = exports.Copy = 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"));
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; })(); }
var Copy = exports.Copy = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Copy() {
    (0, _classCallCheck2.default)(this, Copy);
    return _callSuper(this, Copy, arguments);
  }
  (0, _inherits2.default)(Copy, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Copy, [{
    key: "apply",
    value: function apply() {
      var selectedElements = elementor.selection.getElements();
      if (selectedElements.length) {
        return $e.run('document/elements/copy', {
          containers: selectedElements
        });
      }
      return false;
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Copy;

/***/ }),

/***/ "../assets/dev/js/editor/document/ui/commands/delete.js":
/*!**************************************************************!*\
  !*** ../assets/dev/js/editor/document/ui/commands/delete.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"] = exports.Delete = 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"));
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; })(); }
var Delete = exports.Delete = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Delete() {
    (0, _classCallCheck2.default)(this, Delete);
    return _callSuper(this, Delete, arguments);
  }
  (0, _inherits2.default)(Delete, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Delete, [{
    key: "apply",
    value: function apply() {
      var selectedElements = elementor.selection.getElements();
      if (selectedElements.length) {
        return $e.run('document/elements/delete', {
          containers: selectedElements,
          callerName: 'keyboard'
        });
      }
      return false;
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Delete;

/***/ }),

/***/ "../assets/dev/js/editor/document/ui/commands/duplicate.js":
/*!*****************************************************************!*\
  !*** ../assets/dev/js/editor/document/ui/commands/duplicate.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"] = exports.Duplicate = 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"));
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; })(); }
var Duplicate = exports.Duplicate = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Duplicate() {
    (0, _classCallCheck2.default)(this, Duplicate);
    return _callSuper(this, Duplicate, arguments);
  }
  (0, _inherits2.default)(Duplicate, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Duplicate, [{
    key: "apply",
    value: function apply() {
      var selectedElements = elementor.selection.getElements();
      if (selectedElements.length) {
        return $e.run('document/elements/duplicate', {
          containers: selectedElements
        });
      }
      return false;
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Duplicate;

/***/ }),

/***/ "../assets/dev/js/editor/document/ui/commands/index.js":
/*!*************************************************************!*\
  !*** ../assets/dev/js/editor/document/ui/commands/index.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Copy", ({
  enumerable: true,
  get: function get() {
    return _copy.Copy;
  }
}));
Object.defineProperty(exports, "Delete", ({
  enumerable: true,
  get: function get() {
    return _delete.Delete;
  }
}));
Object.defineProperty(exports, "Duplicate", ({
  enumerable: true,
  get: function get() {
    return _duplicate.Duplicate;
  }
}));
Object.defineProperty(exports, "Paste", ({
  enumerable: true,
  get: function get() {
    return _paste.Paste;
  }
}));
Object.defineProperty(exports, "PasteStyle", ({
  enumerable: true,
  get: function get() {
    return _pasteStyle.PasteStyle;
  }
}));
var _copy = __webpack_require__(/*! ./copy */ "../assets/dev/js/editor/document/ui/commands/copy.js");
var _delete = __webpack_require__(/*! ./delete */ "../assets/dev/js/editor/document/ui/commands/delete.js");
var _duplicate = __webpack_require__(/*! ./duplicate */ "../assets/dev/js/editor/document/ui/commands/duplicate.js");
var _paste = __webpack_require__(/*! ./paste */ "../assets/dev/js/editor/document/ui/commands/paste.js");
var _pasteStyle = __webpack_require__(/*! ./paste-style */ "../assets/dev/js/editor/document/ui/commands/paste-style.js");

/***/ }),

/***/ "../assets/dev/js/editor/document/ui/commands/paste-style.js":
/*!*******************************************************************!*\
  !*** ../assets/dev/js/editor/document/ui/commands/paste-style.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"] = exports.PasteStyle = 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"));
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; })(); }
var PasteStyle = exports.PasteStyle = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function PasteStyle() {
    (0, _classCallCheck2.default)(this, PasteStyle);
    return _callSuper(this, PasteStyle, arguments);
  }
  (0, _inherits2.default)(PasteStyle, _$e$modules$CommandBa);
  return (0, _createClass2.default)(PasteStyle, [{
    key: "apply",
    value: function apply() {
      var selectedElement = elementor.getCurrentElement();
      if (selectedElement) {
        return $e.run('document/elements/paste-style', {
          container: selectedElement.getContainer()
        });
      }
      return false;
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = PasteStyle;

/***/ }),

/***/ "../assets/dev/js/editor/document/ui/commands/paste.js":
/*!*************************************************************!*\
  !*** ../assets/dev/js/editor/document/ui/commands/paste.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"] = exports.Paste = 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"));
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; })(); }
var Paste = exports.Paste = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Paste() {
    (0, _classCallCheck2.default)(this, Paste);
    return _callSuper(this, Paste, arguments);
  }
  (0, _inherits2.default)(Paste, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Paste, [{
    key: "getPasteData",
    value: function getPasteData(_ref) {
      var _ref$storageType = _ref.storageType,
        storageType = _ref$storageType === void 0 ? 'localstorage' : _ref$storageType,
        _ref$data = _ref.data,
        data = _ref$data === void 0 ? '' : _ref$data;
      if ('localstorage' === storageType) {
        return elementorCommon.storage.get('clipboard') || {};
      }
      try {
        return JSON.parse(data) || {};
      } catch (e) {
        return {};
      }
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _this$storage,
        _this$storage2,
        _this = this;
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      this.storage = this.getPasteData(args);
      if (!this.storage || !((_this$storage = this.storage) !== null && _this$storage !== void 0 && (_this$storage = _this$storage.elements) !== null && _this$storage !== void 0 && _this$storage.length) || 'elementor' !== ((_this$storage2 = this.storage) === null || _this$storage2 === void 0 ? void 0 : _this$storage2.type)) {
        return false;
      }
      this.storage.elements = this.storage.elements.map(function (model) {
        return new Backbone.Model(model);
      });
      this.target = this.getTarget(containers);
      if (!this.target || 0 === this.storage.elements.length) {
        return false;
      }
      var result = [];
      this.target.forEach(function (/* Container */container) {
        var _args$options = args.options,
          options = _args$options === void 0 ? {} : _args$options,
          pasteOptions = $e.components.get('document/elements').utils.getPasteOptions(_this.storage.elements[0], container);
        if (!pasteOptions.isValidChild) {
          if (pasteOptions.isSameElement) {
            options.at = container.parent.model.get('elements').findIndex(container.model) + 1;

            // For same element always paste on his parent.
            container = container.parent;
          } else if (pasteOptions.isValidGrandChild) {
            options.rebuild = true;
          }
        }
        if (Object.values(pasteOptions).some(function (opt) {
          return !!opt;
        })) {
          var commandArgs = {
            container: container
          };
          if (undefined !== options.rebuild) {
            commandArgs.rebuild = options.rebuild;
          }
          if (undefined !== options.at) {
            commandArgs.at = options.at;
          }
          commandArgs.storageType = args.storageType || 'localstorage';
          if (undefined !== args.data) {
            commandArgs.data = args.data;
          }
          result.push($e.run('document/elements/paste', commandArgs));
        }
      });
      if (0 === result.length) {
        return false;
      } else if (1 === result.length) {
        return result[0];
      }
      return result;
    }
  }, {
    key: "getTarget",
    value: function getTarget(containers) {
      var _elementor$selection, _elementor$getCurrent;
      if (containers[0]) {
        return containers;
      }
      var selectedContainers = ((_elementor$selection = elementor.selection) === null || _elementor$selection === void 0 ? void 0 : _elementor$selection.getElements()) || [];
      var currentElementContainer = (_elementor$getCurrent = elementor.getCurrentElement()) === null || _elementor$getCurrent === void 0 ? void 0 : _elementor$getCurrent.getContainer();
      return selectedContainers.length ? selectedContainers : currentElementContainer;
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Paste;

/***/ }),

/***/ "../assets/dev/js/editor/document/ui/component.js":
/*!********************************************************!*\
  !*** ../assets/dev/js/editor/document/ui/component.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.js"));
var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../assets/dev/js/editor/document/ui/commands/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _ComponentBase);
  return (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'document/ui';
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }
  }, {
    key: "defaultShortcuts",
    value: function defaultShortcuts() {
      var shouldRun = function shouldRun() {
        var selectedElements = elementor.selection.getElements();
        if (!selectedElements.length) {
          return false;
        }
        var hasLockedContainers = selectedElements.some(function (container) {
          var _container$isLocked;
          return container === null || container === void 0 || (_container$isLocked = container.isLocked) === null || _container$isLocked === void 0 ? void 0 : _container$isLocked.call(container);
        });
        return !hasLockedContainers;
      };
      return {
        copy: {
          keys: 'ctrl+c',
          exclude: ['input'],
          dependency: function dependency() {
            return shouldRun();
          }
        },
        delete: {
          keys: 'del',
          exclude: ['input'],
          dependency: function dependency() {
            return shouldRun();
          }
        },
        duplicate: {
          keys: 'ctrl+d',
          dependency: function dependency() {
            return shouldRun() && $e.components.get('document/elements').utils.allowAddingWidgets();
          }
        },
        paste: {
          keys: 'ctrl+v',
          exclude: ['input'],
          dependency: function dependency() {
            return $e.components.get('document/elements').utils.allowAddingWidgets();
          }
        },
        'paste-style': {
          keys: 'ctrl+shift+v',
          exclude: ['input']
        }
      };
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/editor-base.js":
/*!**********************************************!*\
  !*** ../assets/dev/js/editor/editor-base.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");
var _typeof3 = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports["default"] = void 0;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.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 _color = _interopRequireDefault(__webpack_require__(/*! ./controls/color */ "../assets/dev/js/editor/controls/color.js"));
var _dateTime = _interopRequireDefault(__webpack_require__(/*! elementor-controls/date-time */ "../assets/dev/js/editor/controls/date-time.js"));
var _component = _interopRequireDefault(__webpack_require__(/*! ./components/documents/component */ "../assets/dev/js/editor/components/documents/component.js"));
var _environment = _interopRequireDefault(__webpack_require__(/*! elementor-common/utils/environment */ "../core/common/assets/js/utils/environment.js"));
var _manager = _interopRequireDefault(__webpack_require__(/*! ./elements/manager */ "../assets/dev/js/editor/elements/manager.js"));
var _manager2 = _interopRequireDefault(__webpack_require__(/*! ./introduction-tooltips/manager */ "../assets/dev/js/editor/introduction-tooltips/manager.js"));
var _module = _interopRequireDefault(__webpack_require__(/*! elementor/modules/favorites/assets/js/editor/module */ "../modules/favorites/assets/js/editor/module.js"));
var _module2 = _interopRequireDefault(__webpack_require__(/*! elementor/modules/history/assets/js/module */ "../modules/history/assets/js/module.js"));
var _hotkeys = _interopRequireDefault(__webpack_require__(/*! ./components/hotkeys/hotkeys */ "../assets/dev/js/editor/components/hotkeys/hotkeys.js"));
var _iconsManager = _interopRequireDefault(__webpack_require__(/*! ./components/icons-manager/icons-manager */ "../assets/dev/js/editor/components/icons-manager/icons-manager.js"));
var _manager3 = _interopRequireDefault(__webpack_require__(/*! ./components/browser-import/manager */ "../assets/dev/js/editor/components/browser-import/manager.js"));
var _component2 = _interopRequireDefault(__webpack_require__(/*! ./components/preview/component */ "../assets/dev/js/editor/components/preview/component.js"));
var _menu = _interopRequireDefault(__webpack_require__(/*! elementor-panel/pages/menu/menu */ "../assets/dev/js/editor/regions/panel/pages/menu/menu.js"));
var _promotion = _interopRequireDefault(__webpack_require__(/*! ./utils/promotion */ "../assets/dev/js/editor/utils/promotion.js"));
var _manager4 = _interopRequireDefault(__webpack_require__(/*! ../../../../core/kits/assets/js/manager.js */ "../core/kits/assets/js/manager.js"));
var _navigator = _interopRequireDefault(__webpack_require__(/*! ./regions/navigator/navigator */ "../assets/dev/js/editor/regions/navigator/navigator.js"));
var _noticeBar = _interopRequireDefault(__webpack_require__(/*! ./utils/notice-bar */ "../assets/dev/js/editor/utils/notice-bar.js"));
var _preview = _interopRequireDefault(__webpack_require__(/*! elementor-views/preview */ "../assets/dev/js/editor/views/preview.js"));
var _popoverToggle = _interopRequireDefault(__webpack_require__(/*! elementor-controls/popover-toggle */ "../assets/dev/js/editor/controls/popover-toggle.js"));
var _manager5 = _interopRequireDefault(__webpack_require__(/*! ./components/selection/manager */ "../assets/dev/js/editor/components/selection/manager.js"));
var _module3 = _interopRequireDefault(__webpack_require__(/*! elementor/modules/landing-pages/assets/js/editor/module */ "../modules/landing-pages/assets/js/editor/module.js"));
var _module4 = _interopRequireDefault(__webpack_require__(/*! elementor/modules/elements-color-picker/assets/js/editor/module */ "../modules/elements-color-picker/assets/js/editor/module.js"));
var _breakpoints = _interopRequireDefault(__webpack_require__(/*! elementor-utils/breakpoints */ "../assets/dev/js/utils/breakpoints.js"));
var _events = _interopRequireDefault(__webpack_require__(/*! elementor-utils/events */ "../assets/dev/js/utils/events.js"));
var _component3 = _interopRequireDefault(__webpack_require__(/*! ./document/component */ "../assets/dev/js/editor/document/component.js"));
var _component4 = _interopRequireDefault(__webpack_require__(/*! ./data/globals/component */ "../assets/dev/js/editor/data/globals/component.js"));
var _controlConditions = _interopRequireDefault(__webpack_require__(/*! ./utils/control-conditions */ "../assets/dev/js/editor/utils/control-conditions.js"));
var _module5 = _interopRequireDefault(__webpack_require__(/*! elementor/modules/promotions/assets/js/editor/module */ "../modules/promotions/assets/js/editor/module.js"));
var _module6 = _interopRequireDefault(__webpack_require__(/*! elementor/modules/floating-buttons/assets/js/floating-buttons/editor/module */ "../modules/floating-buttons/assets/js/floating-buttons/editor/module.js"));
var _module7 = _interopRequireDefault(__webpack_require__(/*! elementor/modules/floating-buttons/assets/js/floating-bars/editor/module */ "../modules/floating-buttons/assets/js/floating-bars/editor/module.js"));
var _module8 = _interopRequireDefault(__webpack_require__(/*! elementor/modules/link-in-bio/assets/js/editor/module */ "../modules/link-in-bio/assets/js/editor/module.js"));
var _module9 = _interopRequireDefault(__webpack_require__(/*! elementor/modules/cloud-library/assets/js/editor/module */ "../modules/cloud-library/assets/js/editor/module.js"));
var elementTypes = _interopRequireWildcard(__webpack_require__(/*! ./elements/types */ "../assets/dev/js/editor/elements/types/index.js"));
var hints = _interopRequireWildcard(__webpack_require__(/*! ./hints */ "../assets/dev/js/editor/hints/index.js"));
var _elementBase = _interopRequireDefault(__webpack_require__(/*! ./elements/types/base/element-base */ "../assets/dev/js/editor/elements/types/base/element-base.js"));
var _fontVariables = __webpack_require__(/*! ./utils/font-variables */ "../assets/dev/js/editor/utils/font-variables.js");
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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; })(); } /* global ElementorConfig */
/**
 * @typedef {import('./container/container')} Container
 */
var EditorBase = exports["default"] = /*#__PURE__*/function (_Marionette$Applicati) {
  function EditorBase() {
    var _this;
    (0, _classCallCheck2.default)(this, EditorBase);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, EditorBase, [].concat(args));
    (0, _defineProperty2.default)(_this, "widgetsCache", {});
    (0, _defineProperty2.default)(_this, "config", {});
    (0, _defineProperty2.default)(_this, "loaded", false);
    (0, _defineProperty2.default)(_this, "previewLoadedOnce", false);
    (0, _defineProperty2.default)(_this, "activeBreakpointsUpdated", false);
    (0, _defineProperty2.default)(_this, "helpers", __webpack_require__(/*! elementor-editor-utils/helpers */ "../assets/dev/js/editor/utils/helpers.js"));
    (0, _defineProperty2.default)(_this, "imagesManager", __webpack_require__(/*! elementor-editor-utils/images-manager */ "../assets/dev/js/editor/utils/images-manager.js"));
    // TODO: Unused.
    (0, _defineProperty2.default)(_this, "presetsFactory", __webpack_require__(/*! elementor-editor-utils/presets-factory */ "../assets/dev/js/editor/utils/presets-factory.js"));
    (0, _defineProperty2.default)(_this, "templates", __webpack_require__(/*! elementor-templates/manager */ "../assets/dev/js/editor/components/template-library/manager.js"));
    // TODO = BC Since 2.3.0
    (0, _defineProperty2.default)(_this, "ajax", elementorCommon.ajax);
    (0, _defineProperty2.default)(_this, "conditions", new _controlConditions.default());
    (0, _defineProperty2.default)(_this, "history", __webpack_require__(/*! elementor/modules/history/assets/js/module */ "../modules/history/assets/js/module.js"));
    (0, _defineProperty2.default)(_this, "hints", new hints.Ally());
    (0, _defineProperty2.default)(_this, "channels", {
      editor: Backbone.Radio.channel('ELEMENTOR:editor'),
      data: Backbone.Radio.channel('ELEMENTOR:data'),
      panelElements: Backbone.Radio.channel('ELEMENTOR:panelElements'),
      dataEditMode: Backbone.Radio.channel('ELEMENTOR:editmode'),
      deviceMode: Backbone.Radio.channel('ELEMENTOR:deviceMode'),
      templates: Backbone.Radio.channel('ELEMENTOR:templates'),
      responsivePreview: Backbone.Radio.channel('ELEMENTOR:responsivePreview')
    });
    (0, _defineProperty2.default)(_this, "backgroundClickListeners", {
      tooltip: {
        element: '.dialog-tooltip-widget',
        ignore: '.dialog-widget, .elementor-controls-popover, .pcr-selection'
      },
      popover: {
        element: '.elementor-controls-popover',
        ignore: '.elementor-control-popover-toggle-toggle, .elementor-control-popover-toggle-toggle-label, .select2-container, .pcr-app, .dialog-tooltip-widget'
      },
      globalControlsSelect: {
        element: '.e-global__popover',
        ignore: '.e-global__popover-toggle'
      },
      tagsList: {
        element: '.elementor-tags-list',
        ignore: '.elementor-control-dynamic-switcher'
      },
      panelFooterSubMenus: {
        element: '.elementor-panel-footer-tool.elementor-toggle-state',
        ignore: '.elementor-panel-footer-tool.elementor-toggle-state, #elementor-panel-saver-button-publish-label',
        callback: function callback($elementsToHide) {
          $elementsToHide.removeClass('e-open');
        }
      },
      panelResponsiveSwitchers: {
        element: '.elementor-control-responsive-switchers',
        callback: function callback($elementsToHide) {
          $elementsToHide.removeClass('elementor-responsive-switchers-open');
        }
      },
      panelUnitControlSwitchers: {
        element: '.e-units-choices',
        callback: function callback($elementsToHide) {
          $elementsToHide.removeClass('e-units-choices-open');
        }
      },
      promotion: {
        ignore: '.elementor-responsive-panel',
        callback: function callback() {
          var dialog = elementor.promotion.dialog;
          if (dialog) {
            dialog.hide();
          }
        }
      }
    });
    /**
     * Exporting modules that can be used externally
     * TODO: All of the following entries should move to `elementorModules.editor`
     */
    (0, _defineProperty2.default)(_this, "modules", {
      /**
       * @deprecated since 2.3.0, use `elementorModules.Module` instead.
       */
      get Module() {
        elementorDevTools.deprecation.deprecated('elementor.modules.Module', '2.3.0', 'elementorModules.Module');
        return elementorModules.Module;
      },
      components: {
        templateLibrary: {
          views: {
            /**
             * @deprecated since 2.4.0, use `lementorModules.common.views.modal.Layout` instead.
             */
            get BaseModalLayout() {
              elementorDevTools.deprecation.deprecated('elementor.modules.components.templateLibrary.views.BaseModalLayout', '2.4.0', 'elementorModules.common.views.modal.Layout');
              return elementorModules.common.views.modal.Layout;
            }
          }
        },
        saver: {
          behaviors: {
            FooterSaver: __webpack_require__(/*! ./document/save/behaviors/footer-saver */ "../assets/dev/js/editor/document/save/behaviors/footer-saver.js")
          }
        }
      },
      saver: {
        /**
         * @deprecated since 2.9.0, use `elementor.modules.components.saver.behaviors.FooterSaver` instead.
         */
        get footerBehavior() {
          elementorDevTools.deprecation.deprecated('elementor.modules.saver.footerBehavior.', '2.9.0', 'elementor.modules.components.saver.behaviors.FooterSaver');
          return elementor.modules.components.saver.behaviors.FooterSaver;
        }
      },
      controls: {
        Animation: __webpack_require__(/*! elementor-controls/select2 */ "../assets/dev/js/editor/controls/select2.js"),
        Base: __webpack_require__(/*! elementor-controls/base */ "../assets/dev/js/editor/controls/base.js"),
        BaseData: __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"),
        BaseMultiple: __webpack_require__(/*! elementor-controls/base-multiple */ "../assets/dev/js/editor/controls/base-multiple.js"),
        Box_shadow: __webpack_require__(/*! elementor-controls/box-shadow */ "../assets/dev/js/editor/controls/box-shadow.js"),
        Button: __webpack_require__(/*! elementor-controls/button */ "../assets/dev/js/editor/controls/button.js"),
        Choose: __webpack_require__(/*! elementor-controls/choose */ "../assets/dev/js/editor/controls/choose.js"),
        Visual_choice: __webpack_require__(/*! elementor-controls/visual-choice */ "../assets/dev/js/editor/controls/visual-choice.js"),
        Code: __webpack_require__(/*! elementor-controls/code */ "../assets/dev/js/editor/controls/code.js"),
        Color: _color.default,
        Date_time: _dateTime.default,
        Dimensions: __webpack_require__(/*! elementor-controls/dimensions */ "../assets/dev/js/editor/controls/dimensions.js"),
        Exit_animation: __webpack_require__(/*! elementor-controls/select2 */ "../assets/dev/js/editor/controls/select2.js"),
        Font: __webpack_require__(/*! elementor-controls/font */ "../assets/dev/js/editor/controls/font.js"),
        Gaps: __webpack_require__(/*! elementor-controls/gaps */ "../assets/dev/js/editor/controls/gaps.js"),
        Gallery: __webpack_require__(/*! elementor-controls/gallery */ "../assets/dev/js/editor/controls/gallery.js"),
        Hidden: __webpack_require__(/*! elementor-controls/hidden */ "../assets/dev/js/editor/controls/hidden.js"),
        Hover_animation: __webpack_require__(/*! elementor-controls/select2 */ "../assets/dev/js/editor/controls/select2.js"),
        Icon: __webpack_require__(/*! elementor-controls/icon */ "../assets/dev/js/editor/controls/icon.js"),
        Icons: __webpack_require__(/*! elementor-controls/icons */ "../assets/dev/js/editor/controls/icons.js"),
        Image_dimensions: __webpack_require__(/*! elementor-controls/image-dimensions */ "../assets/dev/js/editor/controls/image-dimensions.js"),
        Media: __webpack_require__(/*! elementor-controls/media */ "../assets/dev/js/editor/controls/media.js"),
        Notice: __webpack_require__(/*! elementor-controls/notice */ "../assets/dev/js/editor/controls/notice.js"),
        Number: __webpack_require__(/*! elementor-controls/number */ "../assets/dev/js/editor/controls/number.js"),
        Popover_toggle: _popoverToggle.default,
        Repeater: __webpack_require__(/*! elementor-controls/repeater */ "../assets/dev/js/editor/controls/repeater.js"),
        RepeaterRow: __webpack_require__(/*! elementor-controls/repeater-row */ "../assets/dev/js/editor/controls/repeater-row.js"),
        Section: __webpack_require__(/*! elementor-controls/section */ "../assets/dev/js/editor/controls/section.js"),
        Select: __webpack_require__(/*! elementor-controls/select */ "../assets/dev/js/editor/controls/select.js"),
        Select2: __webpack_require__(/*! elementor-controls/select2 */ "../assets/dev/js/editor/controls/select2.js"),
        Slider: __webpack_require__(/*! elementor-controls/slider */ "../assets/dev/js/editor/controls/slider.js"),
        Structure: __webpack_require__(/*! elementor-controls/structure */ "../assets/dev/js/editor/controls/structure.js"),
        Switcher: __webpack_require__(/*! elementor-controls/switcher */ "../assets/dev/js/editor/controls/switcher.js"),
        Tab: __webpack_require__(/*! elementor-controls/tab */ "../assets/dev/js/editor/controls/tab.js"),
        Text_shadow: __webpack_require__(/*! elementor-controls/box-shadow */ "../assets/dev/js/editor/controls/box-shadow.js"),
        Url: __webpack_require__(/*! elementor-controls/url */ "../assets/dev/js/editor/controls/url.js"),
        Wp_widget: __webpack_require__(/*! elementor-controls/wp_widget */ "../assets/dev/js/editor/controls/wp_widget.js"),
        Wysiwyg: __webpack_require__(/*! elementor-controls/wysiwyg */ "../assets/dev/js/editor/controls/wysiwyg.js")
      },
      elements: {
        types: _objectSpread({
          Base: _elementBase.default
        }, elementTypes),
        models: {
          /**
           * @deprecated since 2.4.0, use `elementorModules.editor.elements.models.BaseSettings` instead.
           */
          get BaseSettings() {
            elementorDevTools.deprecation.deprecated('elementor.modules.elements.models.BaseSettings', '2.4.0', 'elementorModules.editor.elements.models.BaseSettings');
            return elementorModules.editor.elements.models.BaseSettings;
          },
          Element: __webpack_require__(/*! elementor-elements/models/element */ "../assets/dev/js/editor/elements/models/element.js")
        },
        views: {
          BaseElement: __webpack_require__(/*! elementor-elements/views/base */ "../assets/dev/js/editor/elements/views/base.js"),
          BaseWidget: __webpack_require__(/*! elementor-elements/views/base-widget */ "../assets/dev/js/editor/elements/views/base-widget.js"),
          Widget: __webpack_require__(/*! elementor-elements/views/widget */ "../assets/dev/js/editor/elements/views/widget.js")
        },
        components: {
          AddSectionView: (__webpack_require__(/*! elementor-views/add-section/inline */ "../assets/dev/js/editor/views/add-section/inline.js")["default"])
        }
      },
      layouts: {
        panel: {
          pages: {
            elements: {
              views: {
                Global: __webpack_require__(/*! elementor-panel/pages/elements/views/global */ "../assets/dev/js/editor/regions/panel/pages/elements/views/global.js"),
                Elements: __webpack_require__(/*! elementor-panel/pages/elements/views/elements */ "../assets/dev/js/editor/regions/panel/pages/elements/views/elements.js")
              }
            },
            menu: {
              Menu: _menu.default
            }
          }
        }
      },
      views: {
        /**
         * @deprecated since 2.4.0, use `elementorModules.editor.views.ControlsStack` instead.
         */
        get ControlsStack() {
          elementorDevTools.deprecation.deprecated('elementor.modules.views.ControlsStack', '2.4.0', 'elementorModules.editor.views.ControlsStack');
          return elementorModules.editor.views.ControlsStack;
        }
      }
    });
    return _this;
  }
  (0, _inherits2.default)(EditorBase, _Marionette$Applicati);
  return (0, _createClass2.default)(EditorBase, [{
    key: "debug",
    get:
    /**
     * @deprecated since 3.0.0, use `elementorCommon.debug` instead.
     */
    function get() {
      elementorDevTools.deprecation.deprecated('elementor.debug', '3.0.0', 'elementorCommon.debug');
      return elementorCommon.debug;
    }
  }, {
    key: "userCan",
    value: function userCan(capability) {
      return -1 === this.config.user.restrictions.indexOf(capability);
    }
  }, {
    key: "addControlView",
    value: function addControlView(controlID, ControlView) {
      this.modules.controls[elementorCommon.helpers.upperCaseWords(controlID)] = ControlView;
    }
  }, {
    key: "checkEnvCompatibility",
    value: function checkEnvCompatibility() {
      return _environment.default.firefox || _environment.default.webkit;
    }
  }, {
    key: "getElementData",
    value: function getElementData(model) {
      var elType = model.get('elType');
      if ('widget' === elType) {
        var widgetType = model.get('widgetType');
        if (!this.widgetsCache[widgetType]) {
          return false;
        }
        if (!this.widgetsCache[widgetType].commonMerged && !this.widgetsCache[widgetType].atomic_controls) {
          var _this$widgetsCache$wi;
          var commonControls = this.widgetsCache.common.controls;

          /**
           * Filter widgets common controls.
           *
           * @param array  commonControls - An array of the default common controls.
           * @param string widgetType     - The widget type.
           */
          commonControls = elementor.hooks.applyFilters('elements/widget/controls/common/default', commonControls, widgetType);
          jQuery.extend(this.widgetsCache[widgetType].controls, commonControls);
          if (!this.widgetsCache[widgetType].has_widget_inner_wrapper && elementorCommon.config.experimentalFeatures.e_optimized_markup) {
            var commonOptimizedControls = this.widgetsCache['common-optimized'].controls;
            /**
             * Filter widgets common-optimized controls.
             *
             * @param array  commonOptimizedControls - An array of the default common controls.
             * @param string widgetType     - The widget type.
             */
            commonOptimizedControls = elementor.hooks.applyFilters('elements/widget/controls/common-optimized/default', commonOptimizedControls, widgetType);
            jQuery.extend(this.widgetsCache[widgetType].controls, commonOptimizedControls);
          }
          this.widgetsCache[widgetType].controls = elementor.hooks.applyFilters('elements/widget/controls/common', this.widgetsCache[widgetType].controls, widgetType, this.widgetsCache[widgetType]);

          // TODO: Move this code to own file.
          if ((_this$widgetsCache$wi = this.widgetsCache[widgetType].controls) !== null && _this$widgetsCache$wi !== void 0 && _this$widgetsCache$wi._element_cache) {
            var _this$widgetsCache$wi2;
            var elementCacheDescription = __('The default cache status for this element:', 'elementor');
            elementCacheDescription += ' <strong>';
            if ((_this$widgetsCache$wi2 = this.widgetsCache[widgetType]) !== null && _this$widgetsCache$wi2 !== void 0 && _this$widgetsCache$wi2.is_dynamic_content) {
              elementCacheDescription += __('Inactive', 'elementor');
            } else {
              elementCacheDescription += __('Active', 'elementor');
            }
            elementCacheDescription += '</strong><br />';
            elementCacheDescription += __('Activating cache improves loading times by storing a static version of this element.', 'elementor');
            elementCacheDescription += ' <a href="https://go.elementor.com/element-caching-help/" target="_blank">' + __('Learn more', 'elementor') + '</a>.';
            this.widgetsCache[widgetType].controls._element_cache.description = elementCacheDescription;
          }
          // TODO: End of code to move.

          this.widgetsCache[widgetType].commonMerged = true;
        }
        return this.widgetsCache[widgetType];
      }
      if (!this.config.elements[elType]) {
        return false;
      }
      var elementConfig = structuredClone(this.config.elements[elType]);
      if ('section' === elType && model.get('isInner')) {
        elementConfig.title = __('Inner Section', 'elementor');
      }
      return elementConfig;
    }
  }, {
    key: "getElementControls",
    value: function getElementControls(modelElement) {
      var elementData = this.getElementData(modelElement);
      if (!elementData) {
        return false;
      }
      var isInner = modelElement.get('isInner'),
        controls = {};
      _.each(elementData.controls, function (controlData, controlKey) {
        if (isInner && controlData.hide_in_inner || !isInner && controlData.hide_in_top) {
          return;
        }
        controls[controlKey] = controlData;
      });
      return controls;
    }
  }, {
    key: "mergeControlsSettings",
    value: function mergeControlsSettings(controls) {
      var _this2 = this;
      _.each(controls, function (controlData, controlKey) {
        controls[controlKey] = jQuery.extend(true, {}, _this2.config.controls[controlData.type], controlData);
      });
      return controls;
    }
  }, {
    key: "getControlView",
    value: function getControlView(controlID) {
      var capitalizedControlName = elementorCommon.helpers.upperCaseWords(controlID);
      var View = this.modules.controls[capitalizedControlName];
      if (!View) {
        var controlData = this.config.controls[controlID],
          isUIControl = controlData && -1 !== controlData.features.indexOf('ui');
        View = this.modules.controls[isUIControl ? 'Base' : 'BaseData'];
      }
      return View;
    }
  }, {
    key: "getPanelView",
    value: function getPanelView() {
      return this.panel.currentView;
    }
  }, {
    key: "getPreviewView",
    value: function getPreviewView() {
      return this.previewView;
    }

    /**
     * @return {Container} container
     */
  }, {
    key: "getPreviewContainer",
    value: function getPreviewContainer() {
      var _this$getPreviewView;
      return (_this$getPreviewView = this.getPreviewView()) === null || _this$getPreviewView === void 0 ? void 0 : _this$getPreviewView.getContainer();
    }
  }, {
    key: "getContainer",
    value: function getContainer(id) {
      if ('document' === id) {
        return this.getPreviewContainer();
      }
      return $e.components.get('document').utils.findContainerById(id);
    }
  }, {
    key: "getContainerByKeyValue",
    value: function getContainerByKeyValue(args) {
      var _view$0$getContainer, _view$;
      var key = args.key,
        value = args.value,
        _args$parent = args.parent,
        parent = _args$parent === void 0 ? this.getPreviewView() : _args$parent;
      if (this.getPreviewContainer().model.get(key) === value) {
        return this.getPreviewContainer();
      }
      var view = $e.components.get('document').utils.findViewRecursive(parent.children, key, value, false);
      return (_view$0$getContainer = view === null || view === void 0 || (_view$ = view[0]) === null || _view$ === void 0 ? void 0 : _view$.getContainer()) !== null && _view$0$getContainer !== void 0 ? _view$0$getContainer : null;
    }
  }, {
    key: "initComponents",
    value: function initComponents() {
      var EventManager = __webpack_require__(/*! elementor-utils/hooks */ "../assets/dev/js/utils/hooks.js"),
        DynamicTags = __webpack_require__(/*! elementor-dynamic-tags/manager */ "../assets/dev/js/editor/components/dynamic-tags/manager.js"),
        Settings = __webpack_require__(/*! elementor-editor/components/settings/settings */ "../assets/dev/js/editor/components/settings/settings.js"),
        Notifications = __webpack_require__(/*! elementor-utils/notifications */ "../assets/dev/js/utils/notifications.js");
      this.elementsManager = new _manager.default();
      this.hooks = new EventManager();
      this.selection = new _manager5.default();
      this.settings = new Settings();
      this.dynamicTags = new DynamicTags();
      this.initDialogsManager();
      this.notifications = new Notifications();
      this.kitManager = new _manager4.default();
      this.hotkeysScreen = new _hotkeys.default();
      this.iconManager = new _iconsManager.default();
      this.noticeBar = new _noticeBar.default();
      this.favorites = new _module.default();
      this.history = new _module2.default();
      this.promotion = new _promotion.default();
      this.browserImport = new _manager3.default();
      this.introductionTooltips = new _manager2.default();
      this.editorEvents = elementorCommon.eventsManager;
      this.documents = $e.components.register(new _component.default());

      // Adds the Landing Page tab to the Template library modal when editing Landing Pages.
      if (elementorCommon.config.experimentalFeatures['landing-pages']) {
        this.modules.landingLibraryPageModule = new _module3.default();
      }
      if (elementorCommon.config.experimentalFeatures.container) {
        this.modules.floatingButtonsLibraryModule = new _module6.default();
      }
      this.modules.linkInBioLibraryModule = new _module8.default();
      this.modules.floatingBarsLibraryModule = new _module7.default();
      this.modules.elementsColorPicker = new _module4.default();
      this.modules.promotionModule = new _module5.default();
      this.modules.cloudLibraryModule = new _module9.default();

      // TODO: Move to elementor:init-data-components
      $e.components.register(new _component4.default());
      $e.components.register(new _component3.default());
      $e.components.register(new _component2.default());

      // TODO: Remove, BC Since 2.9.0.
      elementor.saver = $e.components.get('document/save');
      new _fontVariables.FontVariables();
      _events.default.dispatch(elementorCommon.elements.$window, 'elementor/init-components', null, 'elementor:init-components');
    }

    /**
     * Toggle sortable state globally.
     *
     * @param {boolean} state
     */
  }, {
    key: "toggleSortableState",
    value: function toggleSortableState() {
      var _elementor$documents$,
        _this3 = this;
      var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
      var sections = [jQuery('#elementor-navigator'), (_elementor$documents$ = elementor.documents.getCurrent()) === null || _elementor$documents$ === void 0 ? void 0 : _elementor$documents$.$element];
      for (var _i = 0, _sections = sections; _i < _sections.length; _i++) {
        var $section = _sections[_i];
        if ($section) {
          $section.find('.ui-sortable').each(function () {
            var $element = jQuery(_this3);
            if ($element.sortable('instance')) {
              $element.sortable(state ? 'enable' : 'disable');
            }
          });
        }
      }
    }

    // TODO: BC method since 2.3.0
  }, {
    key: "initDialogsManager",
    value: function initDialogsManager() {
      this.dialogsManager = elementorCommon.dialogsManager;
    }
  }, {
    key: "initElements",
    value: function initElements() {
      var config = this.config.document.elements;

      // If it's an reload, use the not-saved data
      if (this.elements && this.elements.length && this.config.document.id === this.config.initial_document.id) {
        config = this.elements.toJSON();
      }
      this.elements = this.createBackboneElementsCollection(config);
      this.elementsModel = this.createBackboneElementsModel(this.elements);
    }
  }, {
    key: "createBackboneElementsCollection",
    value: function createBackboneElementsCollection(json) {
      var ElementCollection = __webpack_require__(/*! elementor-elements/collections/elements */ "../assets/dev/js/editor/elements/collections/elements.js");
      return new ElementCollection(json);
    }
  }, {
    key: "createBackboneElementsModel",
    value: function createBackboneElementsModel(elementsCollection) {
      return new Backbone.Model({
        elements: elementsCollection
      });
    }
  }, {
    key: "initPreview",
    value: function initPreview() {
      var $ = jQuery,
        previewIframeId = 'elementor-preview-iframe';
      this.$previewWrapper = $('#elementor-preview');
      this.$previewResponsiveWrapper = $('#elementor-preview-responsive-wrapper');

      // Make sure the iFrame does not exist.
      if (!this.$preview) {
        this.$preview = $('<iframe>', {
          id: previewIframeId,
          src: this.config.initial_document.urls.preview,
          title: __('Preview', 'elementor'),
          allowfullscreen: 1
        });
        this.$previewResponsiveWrapper.append(this.$preview);
      }
      this.$preview.on('load', this.onPreviewLoaded.bind(this));
    }
  }, {
    key: "initPreviewView",
    value: function initPreviewView(document) {
      elementor.trigger('document:before:preview', document);
      this.previewView = this.createPreviewView(document.$element[0], elementor.elementsModel);
      this.renderPreview(this.previewView);
    }
  }, {
    key: "createPreviewView",
    value: function createPreviewView(targetElement, model) {
      var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
      var preview = new _preview.default({
        el: targetElement,
        model: model
      });
      preview.setConfig(config);
      preview.$el.empty();
      return preview;
    }
  }, {
    key: "renderPreview",
    value: function renderPreview(preview) {
      // In order to force rendering of children
      preview.isRendered = true;
      preview._renderChildren();
      preview.triggerMethod('render');
    }
  }, {
    key: "initFrontend",
    value: function initFrontend() {
      var frontendWindow = this.$preview[0].contentWindow;
      window.elementorFrontend = frontendWindow.elementorFrontend;
      frontendWindow.elementor = this;
      frontendWindow.elementorCommon = elementorCommon;
      elementorFrontend.init();
      this.trigger('frontend:init');
    }
  }, {
    key: "initClearPageDialog",
    value: function initClearPageDialog() {
      var dialog;
      this.getClearPageDialog = function () {
        if (dialog) {
          return dialog;
        }
        dialog = elementorCommon.dialogsManager.createWidget('confirm', {
          id: 'elementor-clear-page-dialog',
          headerMessage: __('Delete All Content', 'elementor'),
          message: __('Attention: We are going to DELETE ALL CONTENT from this page. Are you sure you want to do that?', 'elementor'),
          position: {
            my: 'center center',
            at: 'center center'
          },
          strings: {
            confirm: __('Delete', 'elementor'),
            cancel: __('Cancel', 'elementor')
          },
          onConfirm: function onConfirm() {
            return $e.run('document/elements/empty', {
              force: true
            });
          }
        });
        return dialog;
      };
    }
  }, {
    key: "getCurrentElement",
    value: function getCurrentElement() {
      // eslint-disable-next-line @wordpress/no-global-active-element
      var isPreview = -1 !== ['BODY', 'IFRAME'].indexOf(document.activeElement.tagName) && 'BODY' === elementorFrontend.elements.window.document.activeElement.tagName;
      if (!isPreview) {
        return false;
      }
      var targetElement = elementor.channels.editor.request('contextMenu:targetView');
      if (!targetElement) {
        var panel = elementor.getPanelView();
        if ($e.routes.isPartOf('panel/editor')) {
          targetElement = panel.getCurrentPageView().getOption('editedElementView');
        }
      }
      if (!targetElement) {
        targetElement = elementor.getPreviewView();
      }
      return targetElement;
    }
  }, {
    key: "initPanel",
    value: function initPanel() {
      this.addRegions({
        panel: __webpack_require__(/*! elementor-regions/panel/panel */ "../assets/dev/js/editor/regions/panel/panel.js")
      });
      window.dispatchEvent(new CustomEvent('elementor/panel/init'));
      this.trigger('panel:init');
    }
  }, {
    key: "initNavigator",
    value: function initNavigator() {
      if (!$e.components.get('document/elements').utils.showNavigator()) {
        return;
      }
      this.addRegions({
        navigator: {
          el: '#elementor-navigator',
          regionClass: _navigator.default
        }
      });
      this.trigger('navigator:init');
    }
  }, {
    key: "setAjax",
    value: function setAjax() {
      elementorCommon.ajax.addRequestConstant('editor_post_id', this.config.document.id);
      elementorCommon.ajax.addRequestConstant('initial_document_id', this.config.initial_document.id);
      elementorCommon.ajax.on('request:unhandledError', function (xmlHttpRequest) {
        elementor.notifications.showToast({
          message: elementor.createAjaxErrorMessage(xmlHttpRequest)
        });
      });
    }
  }, {
    key: "createAjaxErrorMessage",
    value: function createAjaxErrorMessage(xmlHttpRequest) {
      var message;
      if (4 === xmlHttpRequest.readyState) {
        message = __('Server Error', 'elementor');
        if (200 !== xmlHttpRequest.status) {
          message += ' (' + xmlHttpRequest.status + ' ' + xmlHttpRequest.statusText + ')';
        }
      } else if (0 === xmlHttpRequest.readyState) {
        message = __('Connection Lost', 'elementor');
      } else {
        message = __('Unknown Error', 'elementor');
      }
      return message + '.';
    }
  }, {
    key: "activatePreviewResizable",
    value: function activatePreviewResizable() {
      var $responsiveWrapper = this.$previewResponsiveWrapper;
      if ($responsiveWrapper.resizable('instance')) {
        return;
      }
      $responsiveWrapper.resizable({
        handles: 'e, s, w',
        stop: function stop() {
          $responsiveWrapper.css({
            width: '',
            height: '',
            left: '',
            right: '',
            top: '',
            bottom: ''
          });
        },
        resize: function resize(event, ui) {
          $responsiveWrapper.css({
            right: '0',
            left: '0',
            top: '0',
            bottom: '0'
          });

          // Old versions of jQuery don't support custom properties
          var style = $responsiveWrapper[0].style;
          style.setProperty('--e-editor-preview-width', ui.size.width + 'px');
          style.setProperty('--e-editor-preview-height', ui.size.height + 'px');
        }
      });
    }
  }, {
    key: "destroyPreviewResizable",
    value: function destroyPreviewResizable() {
      if (this.$previewResponsiveWrapper.resizable('instance')) {
        this.$previewResponsiveWrapper.resizable('destroy');
      }
    }
  }, {
    key: "broadcastPreviewResize",
    value: function broadcastPreviewResize() {
      this.channels.responsivePreview.reply('size', {
        width: this.$preview.innerWidth(),
        height: this.$preview.innerHeight()
      }).trigger('resize');
    }
  }, {
    key: "getCurrentDeviceConstrains",
    value: function getCurrentDeviceConstrains() {
      var currentBreakpoint = elementor.channels.deviceMode.request('currentMode'),
        activeBreakpoints = elementorFrontend.config.responsive.activeBreakpoints,
        currentBreakpointData = activeBreakpoints[currentBreakpoint],
        currentBreakpointMaxPoint = 'widescreen' === currentBreakpoint ? 9999 : currentBreakpointData.value;
      var currentBreakpointMinPoint = this.breakpoints.getDeviceMinBreakpoint(currentBreakpoint);

      // If the device under the current device mode's breakpoint has a larger max value - use the current device's
      // value as the min width point.
      if (currentBreakpointMinPoint > currentBreakpointData.value) {
        currentBreakpointMinPoint = currentBreakpointData.value;
      }
      return {
        maxWidth: currentBreakpointMaxPoint,
        minWidth: currentBreakpointMinPoint
      };
    }
  }, {
    key: "getBreakpointResizeOptions",
    value: function getBreakpointResizeOptions(currentBreakpoint) {
      var previewHeight = elementor.$previewWrapper.height(),
        specialBreakpointsHeights = {
          mobile: {
            minHeight: 480,
            height: 736,
            width: 360,
            maxHeight: 896
          },
          mobile_extra: {
            minHeight: 480,
            height: 736,
            maxHeight: 896
          },
          tablet: {
            minHeight: 320,
            height: previewHeight,
            maxHeight: 1024
          },
          tablet_extra: {
            minHeight: 320,
            height: previewHeight,
            maxHeight: 1024
          },
          laptop: {
            minHeight: 320,
            height: previewHeight,
            maxHeight: 1024
          },
          widescreen: {
            minHeight: 320,
            height: previewHeight,
            maxHeight: 1200
          }
        };
      var deviceConstrains = this.getCurrentDeviceConstrains();
      if (specialBreakpointsHeights[currentBreakpoint]) {
        deviceConstrains = _objectSpread(_objectSpread({}, deviceConstrains), specialBreakpointsHeights[currentBreakpoint]);
      }
      return deviceConstrains;
    }
  }, {
    key: "updatePreviewResizeOptions",
    value: function updatePreviewResizeOptions() {
      var preserveCurrentSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
      var $responsiveWrapper = this.$previewResponsiveWrapper,
        currentBreakpoint = elementor.channels.deviceMode.request('currentMode');
      if ('desktop' === currentBreakpoint) {
        this.destroyPreviewResizable();

        // Old versions of jQuery don't support custom properties
        var style = $responsiveWrapper[0].style;
        style.setProperty('--e-editor-preview-width', '');
        style.setProperty('--e-editor-preview-height', '');
      } else {
        var _breakpointResizeOpti;
        this.activatePreviewResizable();
        var breakpointResizeOptions = this.getBreakpointResizeOptions(currentBreakpoint);
        var widthToShow = (_breakpointResizeOpti = breakpointResizeOptions.width) !== null && _breakpointResizeOpti !== void 0 ? _breakpointResizeOpti : breakpointResizeOptions.minWidth;
        if (preserveCurrentSize) {
          var currentSize = elementor.channels.responsivePreview.request('size');
          if (currentSize.width > breakpointResizeOptions.maxWidth) {
            widthToShow = breakpointResizeOptions.maxWidth;
          } else if (currentSize.width >= breakpointResizeOptions.minWidth) {
            widthToShow = currentSize.width;
          }
        }
        $responsiveWrapper.resizable('option', _objectSpread({}, breakpointResizeOptions));

        // Old versions of jQuery don't support custom properties
        var _style = $responsiveWrapper[0].style;
        _style.setProperty('--e-editor-preview-width', widthToShow + 'px');
        _style.setProperty('--e-editor-preview-height', breakpointResizeOptions.height + 'px');
      }
    }
  }, {
    key: "preventClicksInsideEditor",
    value: function preventClicksInsideEditor() {
      this.$previewContents.on('submit', function (event) {
        return event.preventDefault();
      });

      // Cannot use arrow function here since it use `this.contains`.
      this.$previewContents.on('click', function (event) {
        var _elementor$documents$2;
        var $target = jQuery(event.target),
          isClickInsideElementor = !!$target.closest('.elementor-edit-area, .pen-menu').length,
          isTargetInsideDocument = this.contains($target[0]);
        if ($target.closest('a:not(.elementor-clickable)').length) {
          event.preventDefault();
        }
        if (isClickInsideElementor && elementor.getPreviewContainer().isEditable() || !isTargetInsideDocument) {
          return;
        }

        // It's a click on the preview area, not in the edit area,
        // and a document is open and has an edit area.
        if (!isClickInsideElementor && (_elementor$documents$2 = elementor.documents.getCurrent()) !== null && _elementor$documents$2 !== void 0 && _elementor$documents$2.$element) {
          $e.run('document/elements/deselect-all');
        }
      });
    }
  }, {
    key: "addBackgroundClickArea",
    value: function addBackgroundClickArea(element) {
      element.addEventListener('click', this.onBackgroundClick.bind(this), true);
    }
  }, {
    key: "addBackgroundClickListener",
    value: function addBackgroundClickListener(key, listener) {
      this.backgroundClickListeners[key] = listener;
    }
  }, {
    key: "removeBackgroundClickListener",
    value: function removeBackgroundClickListener(key) {
      delete this.backgroundClickListeners[key];
    }
  }, {
    key: "showFatalErrorDialog",
    value: function showFatalErrorDialog(options) {
      var defaultOptions = {
        id: 'elementor-fatal-error-dialog',
        headerMessage: '',
        message: '',
        position: {
          my: 'center center',
          at: 'center center'
        },
        strings: {
          confirm: __('Learn More', 'elementor'),
          cancel: __('Go Back', 'elementor')
        },
        onConfirm: null,
        onCancel: function onCancel() {
          return parent.history.go(-1);
        },
        hide: {
          onBackgroundClick: false,
          onButtonClick: false
        }
      };
      options = jQuery.extend(true, defaultOptions, options);
      elementorCommon.dialogsManager.createWidget('confirm', options).show();
    }
  }, {
    key: "showFlexBoxAttentionDialog",
    value: function showFlexBoxAttentionDialog() {
      var _this4 = this;
      var introduction = new elementorModules.editor.utils.Introduction({
        introductionKey: 'flexbox',
        dialogType: 'confirm',
        dialogOptions: {
          id: 'elementor-flexbox-attention-dialog',
          headerMessage: __('Note: Flexbox Changes', 'elementor'),
          message: __('Elementor 2.5 introduces key changes to the layout using CSS Flexbox. Your existing pages might have been affected, please review your page before publishing.', 'elementor'),
          position: {
            my: 'center center',
            at: 'center center'
          },
          strings: {
            confirm: __('Learn More', 'elementor'),
            cancel: __('Got It', 'elementor')
          },
          hide: {
            onButtonClick: false
          },
          onCancel: function onCancel() {
            introduction.setViewed();
            introduction.getDialog().hide();
          },
          onConfirm: function onConfirm() {
            return open(_this4.config.help_flexbox_bc_url, '_blank');
          }
        }
      });
      introduction.show();
    }
  }, {
    key: "checkPageStatus",
    value: function checkPageStatus() {
      if (elementor.documents.getCurrent().isDraft()) {
        this.notifications.showToast({
          message: __('This is just a draft. Play around and when you\'re done - click update.', 'elementor'),
          buttons: [{
            name: 'view_revisions',
            text: __('View All Revisions', 'elementor'),
            callback: function callback() {
              return $e.route('panel/history/revisions');
            }
          }]
        });
      }
    }
  }, {
    key: "enterDeviceMode",
    value: function enterDeviceMode() {
      var _this5 = this;
      this.channels.responsivePreview.trigger('open');
      elementorCommon.elements.$body.addClass('e-is-device-mode');
      this.activatePreviewResizable();
      this.resizeListenerThrottled = false;
      this.broadcastPreviewResize();
      elementorFrontend.elements.$window.on('resize.deviceModeDesktop', function () {
        if (_this5.resizeListenerThrottled) {
          return;
        }
        _this5.resizeListenerThrottled = true;
        _this5.broadcastPreviewResize();
        setTimeout(function () {
          _this5.resizeListenerThrottled = false;
          _this5.broadcastPreviewResize();
        }, 300);
      });
    }
  }, {
    key: "exitDeviceMode",
    value: function exitDeviceMode() {
      elementorCommon.elements.$body.removeClass('e-is-device-mode');
      this.destroyPreviewResizable();
      elementorCommon.elements.$window.off('resize.deviceModeDesktop');
      this.channels.deviceMode.trigger('close');
    }
  }, {
    key: "isDeviceModeActive",
    value: function isDeviceModeActive() {
      return elementorCommon.elements.$body.hasClass('e-is-device-mode');
    }
  }, {
    key: "updatePreviewSize",
    value: function updatePreviewSize(size) {
      // Old versions of jQuery don't support custom properties
      var style = this.$previewResponsiveWrapper[0].style;
      style.setProperty('--e-editor-preview-width', size.width + 'px');
      style.setProperty('--e-editor-preview-height', size.height + 'px');
    }
  }, {
    key: "enterPreviewMode",
    value: function enterPreviewMode(hidePanel) {
      var $elements = elementorFrontend.elements.$body;
      if (hidePanel) {
        $elements = $elements.add(elementorCommon.elements.$body);
      }
      $elements.removeClass('elementor-editor-active').addClass('elementor-editor-preview');
      var $element = this.documents.getCurrent().$element;
      if ($element) {
        $element.removeClass('elementor-edit-area-active');
      }
    }
  }, {
    key: "exitPreviewMode",
    value: function exitPreviewMode() {
      elementorFrontend.elements.$body.add(elementorCommon.elements.$body).removeClass('elementor-editor-preview').addClass('elementor-editor-active');
      if (elementor.config.document.panel.has_elements) {
        this.documents.getCurrent().$element.addClass('elementor-edit-area-active');
      }
    }
  }, {
    key: "changeEditMode",
    value: function changeEditMode(newMode) {
      var dataEditMode = elementor.channels.dataEditMode,
        oldEditMode = dataEditMode.request('activeMode');
      dataEditMode.reply('activeMode', newMode);
      if (newMode !== oldEditMode) {
        dataEditMode.trigger('switch', newMode);
      }
    }
  }, {
    key: "reloadPreview",
    value: function reloadPreview() {
      // TODO: Should be command?
      jQuery('#elementor-preview-loading').show();
      this.$preview[0].src = this.config.initial_document.urls.preview;
    }
  }, {
    key: "changeDeviceMode",
    value: function changeDeviceMode(newDeviceMode) {
      var hideBarOnDesktop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
      var oldDeviceMode = this.channels.deviceMode.request('currentMode');
      if (oldDeviceMode === newDeviceMode) {
        return;
      }
      elementorCommon.elements.$body.removeClass('elementor-device-' + oldDeviceMode).addClass('elementor-device-' + newDeviceMode);
      this.channels.deviceMode.reply('previousMode', oldDeviceMode).reply('currentMode', newDeviceMode).trigger('change');
      if (this.isDeviceModeActive() && hideBarOnDesktop) {
        if ('desktop' === newDeviceMode) {
          this.exitDeviceMode();
        }
      } else if ('desktop' !== newDeviceMode) {
        this.enterDeviceMode();
      }
      dispatchEvent(new CustomEvent('elementor/device-mode/change', {
        detail: {
          activeMode: newDeviceMode
        }
      }));
    }
  }, {
    key: "translate",
    value: function translate(stringKey, templateArgs, i18nStack) {
      // TODO: BC since 2.3.0, it always should be `this.config.i18n`
      if (!i18nStack) {
        i18nStack = this.config.i18n;
      }
      return elementorCommon.translate(stringKey, null, templateArgs, i18nStack);
    }
  }, {
    key: "requestWidgetsConfig",
    value: function requestWidgetsConfig() {
      var _this6 = this;
      var excludeWidgets = {};
      jQuery.each(this.widgetsCache, function (widgetName, widgetConfig) {
        if (widgetConfig.controls) {
          excludeWidgets[widgetName] = true;
        }
      });
      elementorCommon.ajax.addRequest('get_widgets_config', {
        data: {
          exclude: excludeWidgets
        },
        success: function success(data) {
          _this6.addWidgetsCache(data);
          if (elementor.config.locale !== elementor.config.user.locale) {
            _this6.translateControlsDefaults(elementor.config.locale);
          }
          if (_this6.loaded) {
            _this6.kitManager.renderGlobalsDefaultCSS();
            $e.internal('panel/state-ready');
          } else {
            _this6.once('panel:init', function () {
              $e.internal('panel/state-ready');
            });
          }
        }
      });
    }
  }, {
    key: "refreshWidgets",
    value: function () {
      var _refreshWidgets = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
        var data;
        return _regenerator.default.wrap(function (_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              _context.next = 1;
              return elementorCommon.ajax.addRequest('refresh_widgets_config');
            case 1:
              data = _context.sent;
              this.widgetsCache = {};
              this.addWidgetsCache(data.widgets);
              elementor.config.document.panel.elements_categories = data.categories;
              if (elementor.config.locale !== elementor.config.user.locale) {
                this.translateControlsDefaults(elementor.config.locale);
              }
              this.kitManager.renderGlobalsDefaultCSS();
              elementor.hooks.doAction('elementor/widgets/refreshed');
              $e.routes.refreshContainer('panel');
              $e.run('preview/reload');
              return _context.abrupt("return", data);
            case 2:
            case "end":
              return _context.stop();
          }
        }, _callee, this);
      }));
      function refreshWidgets() {
        return _refreshWidgets.apply(this, arguments);
      }
      return refreshWidgets;
    }()
  }, {
    key: "translateControlsDefaults",
    value: function translateControlsDefaults(locale) {
      var _this7 = this;
      elementorCommon.ajax.addRequest('get_widgets_default_value_translations', {
        data: {
          locale: locale
        },
        success: function success(data) {
          _this7.addWidgetsCache(data);
        }
      }, true);
    }
  }, {
    key: "getPreferences",
    value: function getPreferences(key) {
      var settings = elementor.settings.editorPreferences.model.attributes;
      if (key) {
        return settings[key];
      }
      return settings;
    }
  }, {
    key: "getConfig",
    value: function getConfig() {
      return ElementorConfig;
    }
  }, {
    key: "onStart",
    value: function onStart() {
      var _this8 = this;
      this.config = this.getConfig();
      Backbone.Radio.DEBUG = false;
      Backbone.Radio.tuneIn('ELEMENTOR');
      this.populateActiveBreakpointsConfig();
      this.breakpoints = new _breakpoints.default(this.config.responsive);
      if (elementorCommon.config.experimentalFeatures.additional_custom_breakpoints) {
        // Duplicate responsive controls for section and column default configs.
        this.generateResponsiveControlsForElements();
      }
      this.elementsManager = new _manager.default();
      this.initComponents();
      if (!this.checkEnvCompatibility()) {
        this.onEnvNotCompatible();
      }
      this.initPreview();
      this.requestWidgetsConfig();
      this.channels.dataEditMode.reply('activeMode', 'edit');
      this.listenTo(this.channels.dataEditMode, 'switch', this.onEditModeSwitched);
      this.listenTo(elementor.channels.deviceMode, 'change', this.updatePreviewResizeOptions);
      this.initClearPageDialog();
      this.addBackgroundClickArea(document);
      this.addDeprecatedConfigProperties();
      _events.default.dispatch(elementorCommon.elements.$window, 'elementor/loaded', null, 'elementor:loaded');
      $e.run('editor/documents/open', {
        id: this.config.initial_document.id
      }).then(function () {
        _events.default.dispatch(elementorCommon.elements.$window, 'elementor/init', null, 'elementor:init');
        _this8.initNavigator();
      });
    }
  }, {
    key: "onPreviewLoaded",
    value: function onPreviewLoaded() {
      var previewWindow = this.$preview[0].contentWindow;
      if (!previewWindow.elementorFrontend) {
        this.onPreviewLoadingError();
        return;
      }

      // Cannot load editor without kit.
      if (!elementor.config.kit_id) {
        this.kitNotExistsError();
        return;
      }
      this.$previewContents = this.$preview.contents();
      this.initFrontend();
      this.preventClicksInsideEditor();
      this.addBackgroundClickArea(elementorFrontend.elements.window.document);
      if (!this.previewLoadedOnce) {
        this.onFirstPreviewLoaded();
      }
      this.$previewContents.children().addClass('elementor-html');
      var $frontendBody = elementorFrontend.elements.$body;
      $frontendBody.addClass('elementor-editor-active');
      if (!elementor.userCan('design')) {
        $frontendBody.addClass('elementor-editor-content-only');
      }
      this.changeDeviceMode('desktop');
      _.defer(function () {
        elementorFrontend.elements.window.jQuery.holdReady(false);
      });
      $e.shortcuts.bindListener(elementorFrontend.elements.$window);
      this.trigger('preview:loaded', !this.loaded /* IsFirst */);
      $e.internal('editor/documents/attach-preview').then(function () {
        return jQuery('#elementor-loading, #elementor-preview-loading').fadeOut(600);
      });
      this.loaded = true;
    }
  }, {
    key: "onFirstPreviewLoaded",
    value: function onFirstPreviewLoaded() {
      this.initPanel();
      this.previewLoadedOnce = true;
      var eventsManager = elementorCommon.eventsManager;
      if (eventsManager) {
        var _eventsManager$config;
        eventsManager.dispatchEvent((_eventsManager$config = eventsManager.config) === null || _eventsManager$config === void 0 || (_eventsManager$config = _eventsManager$config.names) === null || _eventsManager$config === void 0 || (_eventsManager$config = _eventsManager$config.elementorEditor) === null || _eventsManager$config === void 0 ? void 0 : _eventsManager$config.editorLoaded, {});
      }
    }
  }, {
    key: "onEditModeSwitched",
    value: function onEditModeSwitched() {
      var activeMode = this.channels.dataEditMode.request('activeMode');
      dispatchEvent(new CustomEvent('elementor/edit-mode/change', {
        detail: {
          activeMode: activeMode
        }
      }));
      if ('edit' === activeMode) {
        this.exitPreviewMode();
      } else {
        this.enterPreviewMode('preview' === activeMode);
      }
    }
  }, {
    key: "onEnvNotCompatible",
    value: function onEnvNotCompatible() {
      var _this9 = this;
      this.showFatalErrorDialog({
        headerMessage: __('Your browser isn\'t compatible', 'elementor'),
        message: __('Your browser isn\'t compatible with all of Elementor\'s editing features. We recommend you switch to another browser like Chrome or Firefox.', 'elementor'),
        strings: {
          confirm: __('Proceed Anyway', 'elementor')
        },
        hide: {
          onButtonClick: true
        },
        onConfirm: function onConfirm() {
          return _this9.hide();
        }
      });
    }
  }, {
    key: "kitNotExistsError",
    value: function kitNotExistsError() {
      this.showFatalErrorDialog({
        className: 'elementor-preview-loading-error',
        headerMessage: __('Your site doesn\'t have a default kit', 'elementor'),
        message: __('Seems like your kit was deleted, please create new one or try restore it from trash.', 'elementor'),
        strings: {
          confirm: __('Recreate Kit', 'elementor'),
          cancel: __('Go Back', 'elementor')
        },
        onConfirm: function onConfirm() {
          return open(elementor.config.admin_tools_url, '_blank');
        }
      });
    }
  }, {
    key: "onPreviewLoadingError",
    value: function onPreviewLoadingError() {
      var _this0 = this;
      var debugUrl = this.config.document.urls.preview + '&preview-debug',
        previewDebugLinkText = __('Click here for preview debug', 'elementor'),
        previewDebugLink = '<div id="elementor-preview-debug-link-text"><a href="' + debugUrl + '" target="_blank">' + previewDebugLinkText + '</a></div>',
        debugData = elementor.config.preview.debug_data,
        dialogOptions = {
          className: 'elementor-preview-loading-error',
          headerMessage: debugData.header,
          message: debugData.message + previewDebugLink,
          onConfirm: function onConfirm() {
            return open(debugData.doc_url, '_blank');
          }
        };
      if (debugData.error) {
        this.showFatalErrorDialog(dialogOptions);
        return;
      }
      jQuery.get(debugUrl, function () {
        _this0.showFatalErrorDialog(dialogOptions);
      }).fail(function (response) {
        // Iframe can't be loaded
        _this0.showFatalErrorDialog({
          className: 'elementor-preview-loading-error',
          headerMessage: debugData.header,
          message: response.statusText + ' ' + response.status + ' ' + previewDebugLink,
          onConfirm: function onConfirm() {
            var url = 500 <= response.status ? elementor.config.preview.help_preview_http_error_500_url : elementor.config.preview.help_preview_http_error_url;
            open(url, '_blank');
          }
        });
      });
    }
  }, {
    key: "onPreviewElNotFound",
    value: function onPreviewElNotFound() {
      var args = this.$preview[0].contentWindow.elementorPreviewErrorArgs;
      if (!args) {
        args = {
          headerMessage: __('Sorry, the content area was not found in your page.', 'elementor'),
          message: __('You must call \'the_content\' function in the current template, in order for Elementor to work on this page.', 'elementor'),
          confirmURL: elementor.config.help_the_content_url
        };
      }
      args.onConfirm = function () {
        return open(args.confirmURL, '_blank');
      };
      this.showFatalErrorDialog(args);
    }
  }, {
    key: "onBackgroundClick",
    value: function onBackgroundClick(event) {
      jQuery.each(this.backgroundClickListeners, function (index, config) {
        var $clickedTarget = jQuery(event.target);
        // If it's a label that associated with an input
        if ($clickedTarget[0].control) {
          $clickedTarget = $clickedTarget.add($clickedTarget[0].control);
        }
        if (config.ignore && $clickedTarget.closest(config.ignore).length) {
          return;
        }
        var $clickedTargetClosestElement = $clickedTarget.closest(config.element),
          $elementsToHide = jQuery(config.element).not($clickedTargetClosestElement);
        if (config.callback) {
          config.callback($elementsToHide);
          return;
        }
        $elementsToHide.each(function (elementIndex, element) {
          var $element = jQuery(element);
          var isVisible = $element.is(':visible');
          $element.hide();
          if (isVisible) {
            $element.trigger('hide');
          }
        });
      });
    }
  }, {
    key: "compileTemplate",
    value: function compileTemplate(template, data) {
      return Marionette.TemplateCache.prototype.compileTemplate(template)(data);
    }
  }, {
    key: "addWidgetsCache",
    value: function addWidgetsCache(widgets) {
      var _this1 = this;
      jQuery.each(widgets, function (widgetName, widgetConfig) {
        if (elementorCommon.config.experimentalFeatures.additional_custom_breakpoints) {
          // When the Responsive Optimization experiment is active, the responsive controls are generated on the
          // JS side instead of the PHP.
          widgetConfig.controls = _this1.generateResponsiveControls(widgetConfig.controls);
        }
        _this1.widgetsCache[widgetName] = jQuery.extend(true, {}, _this1.widgetsCache[widgetName], widgetConfig);
      });
    }
  }, {
    key: "generateResponsiveControls",
    value: function generateResponsiveControls(controls) {
      var _this10 = this;
      var activeBreakpoints = this.config.responsive.activeBreakpoints,
        devices = this.breakpoints.getActiveBreakpointsList({
          largeToSmall: true,
          withDesktop: true
        }),
        newControlsStack = {},
        secondDesktopChild = devices[devices.indexOf('desktop') + 1];

      // Set the desktop to be the first device, so desktop will the the parent of all devices.
      devices.unshift(devices.splice(devices.indexOf('desktop'), 1)[0]);
      jQuery.each(controls, function (controlName, controlConfig) {
        var _controlConfig$respon, _controlConfig$popove;
        var responsiveControlName, controlDevices;

        // Handle repeater controls.
        if ('object' === (0, _typeof2.default)(controlConfig.fields)) {
          controlConfig.fields = _this10.generateResponsiveControls(controlConfig.fields);
        }

        // Only handle responsive controls in this loop.
        if (!controlConfig.is_responsive) {
          newControlsStack[controlName] = controlConfig;
          return;
        }
        if ((_controlConfig$respon = controlConfig.responsive) !== null && _controlConfig$respon !== void 0 && _controlConfig$respon.devices) {
          // Because of an `array_intersect` that happens on the PHP side, the devices array can become an object.
          if ('object' === (0, _typeof2.default)(controlConfig.responsive.devices)) {
            controlConfig.responsive.devices = Object.values(controlConfig.responsive.devices);
          }

          // Filter the devices list according to the control's passed devices list.
          controlDevices = devices.filter(function (device) {
            return controlConfig.responsive.devices.includes(device);
          });
          delete controlConfig.responsive.devices;
        }
        var popoverEndProperty = (_controlConfig$popove = controlConfig.popover) === null || _controlConfig$popove === void 0 ? void 0 : _controlConfig$popove.end;

        // Since the `popoverEndProperty` variable now holds the value, we want to prevent this property from
        // being duplicated to all responsive control instances. It should only be applied in the LAST responsive
        // control.
        if (popoverEndProperty) {
          var _controlConfig$popove2;
          (_controlConfig$popove2 = controlConfig.popover) === null || _controlConfig$popove2 === void 0 || delete _controlConfig$popove2.end;
        }

        // Move the control's default to the desktop control
        if (controlConfig.default) {
          controlConfig.desktop_default = controlConfig.default;
        }
        var multipleDefaultValue = _this10.config.controls[controlConfig.type].default_value;
        var deleteControlDefault = true;

        // For multiple controls that implement get_default_value() in the control class, make sure the duplicated
        // controls receive that default value.
        if (multipleDefaultValue) {
          controlConfig.default = multipleDefaultValue;
          deleteControlDefault = false;
        }

        // If the control passed its own 'devices' array, run through that. Otherwise, use the default devices list.
        var devicesArrayToDuplicate = controlDevices || devices;
        devicesArrayToDuplicate.forEach(function (device, index) {
          var _controlArgs$popover;
          var controlArgs = structuredClone(controlConfig);
          if (controlArgs.device_args) {
            if (controlArgs.device_args[device]) {
              controlArgs = _objectSpread(_objectSpread({}, controlArgs), controlArgs.device_args[device]);
            }
            delete controlArgs.device_args;
          }

          // If there is a prefix class with a device modifier in it, add in the device modifier.
          if (controlArgs.prefix_class && -1 !== controlArgs.prefix_class.indexOf('%s')) {
            var deviceModifier = 'desktop' === device ? '' : '-' + device;
            controlArgs.prefix_class = controlArgs.prefix_class.replace('%s', deviceModifier);
          }

          // If the 'responsive' property is empty, it is transferred from the PHP to JS as an array and not an
          // object.
          if (Array.isArray(controlArgs.responsive)) {
            controlArgs.responsive = {};
          }
          var direction = 'max';
          controlArgs.parent = null;
          if ('desktop' !== device) {
            direction = activeBreakpoints[device].direction;

            // Set the parent to be the previous device
            controlArgs.parent = device === secondDesktopChild ? controlName : responsiveControlName;
          }
          controlArgs.responsive[direction] = device;
          if (controlArgs.min_affected_device) {
            if (controlArgs.min_affected_device[device]) {
              controlArgs.responsive.min = controlArgs.min_affected_device[device];
            }
            delete controlArgs.min_affected_device;
          }
          if (controlArgs[device + '_default']) {
            if ('object' === (0, _typeof2.default)(controlArgs[device + '_default'])) {
              controlArgs.default = _objectSpread(_objectSpread({}, controlArgs.default), controlArgs[device + '_default']);
            } else {
              controlArgs.default = controlArgs[device + '_default'];
            }
          } else if (deleteControlDefault) {
            // In the Editor, controls without default values should have an empty string as the default value.
            controlArgs.default = '';
          }

          // If the control is the first inside a popover, only the first device starts the popover,
          // so the 'start' property has to be deleted from all other devices.
          if (0 !== index && (_controlArgs$popover = controlArgs.popover) !== null && _controlArgs$popover !== void 0 && _controlArgs$popover.start) {
            delete controlArgs.popover.start;
          }

          // If the control is inside a popover, AND this control is the last one in the popover, AND this is the
          // last device in the devices array - add the 'popover.end = true' value to it to make sure it closes
          // the popover.
          if (index === devicesArrayToDuplicate.length - 1 && popoverEndProperty) {
            controlArgs.popover = {
              end: true
            };
          }

          // For each new responsive control, delete the responsive defaults
          devicesArrayToDuplicate.forEach(function (breakpoint) {
            delete controlArgs[breakpoint + '_default'];
          });
          delete controlArgs.is_responsive;
          responsiveControlName = 'desktop' === device ? controlName : controlName + '_' + device;
          if (controlArgs.parent) {
            var parentControlArgs = newControlsStack[controlArgs.parent];
            if (!parentControlArgs.inheritors) {
              parentControlArgs.inheritors = [];
            }
            parentControlArgs.inheritors.push(responsiveControlName);
          }
          controlArgs.name = responsiveControlName;
          newControlsStack[responsiveControlName] = controlArgs;
        });
      });
      return newControlsStack;
    }
  }, {
    key: "generateResponsiveControlsForElements",
    value: function generateResponsiveControlsForElements() {
      var _this11 = this;
      // Handle the default config for section and column.
      var elementNames = Object.keys(this.config.elements);
      elementNames.forEach(function (elementName) {
        _this11.config.elements[elementName].controls = _this11.generateResponsiveControls(_this11.config.elements[elementName].controls);
      });
    }
  }, {
    key: "populateActiveBreakpointsConfig",
    value: function populateActiveBreakpointsConfig() {
      var _this12 = this;
      this.config.responsive.activeBreakpoints = {};
      Object.entries(this.config.responsive.breakpoints).forEach(function (_ref) {
        var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
          breakpointKey = _ref2[0],
          breakpointData = _ref2[1];
        if (breakpointData.is_enabled) {
          _this12.config.responsive.activeBreakpoints[breakpointKey] = breakpointData;
        }
      });
    }
  }, {
    key: "addDeprecatedConfigProperties",
    value: function addDeprecatedConfigProperties() {
      var _this13 = this;
      var map = {
        data: {
          replacement: 'elements',
          value: function value() {
            return elementor.config.document.elements;
          }
        },
        current_user_can_publish: {
          replacement: 'user.can_publish',
          value: function value() {
            return elementor.config.document.user.can_publish;
          }
        },
        locked_user: {
          replacement: '',
          value: function value() {
            return elementor.config.document.user.locked;
          }
        },
        revisions_enabled: {
          replacement: 'revisions.enabled',
          value: function value() {
            return elementor.config.document.revisions.enabled;
          }
        },
        current_revision_id: {
          replacement: 'revisions.current_id',
          value: function value() {
            return elementor.config.document.revisions.current_id;
          }
        }
      };
      jQuery.each(map, function (key, data) {
        // Use `defineProperty` because `get property()` fails during the `Marionette...extend`.
        Object.defineProperty(_this13.config, key, {
          get: function get() {
            var replacement = data.replacement ? 'elementor.config.document.' + data.replacement : '';
            elementorDevTools.deprecation.deprecated('elementor.config.' + key, '2.9.0', replacement);
            // Return from current document.
            return data.value();
          },
          set: function set() {
            elementorDevTools.deprecation.deprecated('elementor.config.' + key, '2.9.0', 'elementor.config.document.' + data.replacement);
            throw Error('Deprecated');
          }
        });
      });
      Object.defineProperty(this.config.settings, 'page', {
        get: function get() {
          elementorDevTools.deprecation.deprecated('elementor.config.settings.page', '2.9.0', 'elementor.config.document.settings');
          return elementor.config.document.settings;
        }
      });
      Object.defineProperty(this.config, 'widgets', {
        get: function get() {
          elementorDevTools.deprecation.deprecated('elementor.config.widgets', '2.9.0', 'elementor.widgetsCache');
          return elementor.widgetsCache;
        }
      });
      Object.defineProperty(this, '$previewElementorEl', {
        get: function get() {
          elementorDevTools.deprecation.deprecated('elementor.$previewElementorEl', '2.9.4', 'elementor.documents.getCurrent().$element');
          return elementor.documents.getCurrent().$element;
        }
      });
    }
  }, {
    key: "toggleDocumentCssFiles",
    value: function toggleDocumentCssFiles(document, state) {
      var selectors = ["#elementor-post-".concat(document.config.id, "-css"), "#elementor-preview-".concat(document.config.revisions.current_id)],
        $files = this.$previewContents.find(selectors.join(',')),
        type = state ? 'text/css' : 'elementor/disabled-css';
      $files.attr({
        type: type
      });
    }
  }]);
}(Marionette.Application);

/***/ }),

/***/ "../assets/dev/js/editor/elements/collections/elements.js":
/*!****************************************************************!*\
  !*** ../assets/dev/js/editor/elements/collections/elements.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 _elementTypeNotFound = _interopRequireDefault(__webpack_require__(/*! elementor-editor/errors/element-type-not-found */ "../assets/dev/js/editor/errors/element-type-not-found.js"));
var ElementsCollection = Backbone.Collection.extend({
  add: function add(models, options, isCorrectSet) {
    if ((!options || !options.silent) && !isCorrectSet) {
      throw 'Call Error: Adding model to element collection is allowed only by the dedicated addChildModel() method.';
    }
    return Backbone.Collection.prototype.add.call(this, models, options);
  },
  model: function model(attrs, options) {
    var ModelClass = Backbone.Model;
    if (attrs.elType) {
      var elementType = attrs.widgetType || attrs.elType,
        elementTypeClass = elementor.elementsManager.getElementTypeClass(elementType);
      if (!elementTypeClass) {
        throw new _elementTypeNotFound.default(elementType);
      }
      ModelClass = elementor.hooks.applyFilters('element/model', elementTypeClass.getModel(), attrs);
    }
    return new ModelClass(attrs, options);
  },
  clone: function clone() {
    var tempCollection = Backbone.Collection.prototype.clone.apply(this, arguments),
      newCollection = new ElementsCollection();
    tempCollection.forEach(function (model) {
      newCollection.add(model.clone(), null, true);
    });
    return newCollection;
  }
});
ElementsCollection.prototype.sync = ElementsCollection.prototype.fetch = ElementsCollection.prototype.save = _.noop;
module.exports = ElementsCollection;

/***/ }),

/***/ "../assets/dev/js/editor/elements/manager.js":
/*!***************************************************!*\
  !*** ../assets/dev/js/editor/elements/manager.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _elementBase = _interopRequireDefault(__webpack_require__(/*! ./types/base/element-base */ "../assets/dev/js/editor/elements/types/base/element-base.js"));
var elementsTypes = _interopRequireWildcard(__webpack_require__(/*! ./types/ */ "../assets/dev/js/editor/elements/types/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
var ElementsManager = exports["default"] = /*#__PURE__*/function () {
  function ElementsManager() {
    (0, _classCallCheck2.default)(this, ElementsManager);
    /**
     * Registered elements types.
     *
     * @type {Object.<ElementBase>}
     */
    (0, _defineProperty2.default)(this, "elementTypes", {});
    this.registerElements();
  }

  /**
   * Function getElementTypeClass().
   *
   * @param {string} type
   *
   * @return {ElementBase} Element type class.
   */
  return (0, _createClass2.default)(ElementsManager, [{
    key: "getElementTypeClass",
    value: function getElementTypeClass(type) {
      var typeClass = this.elementTypes[type];

      // When exact widget is not registered, return widget base instead.
      if (!typeClass && elementor.widgetsCache[type]) {
        typeClass = this.elementTypes.widget;
      }
      return typeClass;
    }

    /**
     * Function registerElementType().
     *
     * @param {ElementBase} element
     */
  }, {
    key: "registerElementType",
    value: function registerElementType(element) {
      // Validate instanceOf `element`.
      if (!(element instanceof _elementBase.default)) {
        throw new TypeError('The element argument must be an instance of ElementBase.');
      }
      var type = element.getType();
      if (this.elementTypes[type]) {
        throw new Error('Element type already registered');
      }
      this.elementTypes[type] = element;
    }

    /**
     * Function registerElements().
     *
     * Register all base elements types.
     */
  }, {
    key: "registerElements",
    value: function registerElements() {
      var _this = this;
      Object.values(elementsTypes).forEach(function (ElementClass) {
        var element = new ElementClass();
        _this.registerElementType(element);
      });

      // TODO: Find better place, since container is not module.
      if (elementorCommon.config.experimentalFeatures.container) {
        var ContainerClass = (__webpack_require__(/*! ./types/container */ "../assets/dev/js/editor/elements/types/container.js")["default"]);
        this.registerElementType(new ContainerClass());
      }
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/elements/models/base-element-model.js":
/*!*********************************************************************!*\
  !*** ../assets/dev/js/editor/elements/models/base-element-model.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"));
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('elementor/assets/lib/backbone/backbone.marionette')} Backbone
 */
/**
 * The class purpose is to share the common methods and properties between all available models.
 */
var BaseElementModel = exports["default"] = /*#__PURE__*/function (_Backbone$Model) {
  function BaseElementModel() {
    (0, _classCallCheck2.default)(this, BaseElementModel);
    return _callSuper(this, BaseElementModel, arguments);
  }
  (0, _inherits2.default)(BaseElementModel, _Backbone$Model);
  return (0, _createClass2.default)(BaseElementModel, [{
    key: "isValidChild",
    value:
    // eslint-disable-next-line jsdoc/require-returns-check
    /**
     * Function isValidChild().
     *
     * Validates if `childModel` can be added to this model as a child.
     * Each model should have its own implementation of this method against all possible child models.
     *
     * @param {Backbone.Model} childModel
     *
     * @return {boolean} Whether the child model is valid or not.
     */
    function isValidChild(childModel) {
      // eslint-disable-line no-unused-vars
      elementorModules.ForceMethodImplementation({
        attributes: this.attributes
      });
    }
  }]);
}(Backbone.Model);

/***/ }),

/***/ "../assets/dev/js/editor/elements/models/column-settings.js":
/*!******************************************************************!*\
  !*** ../assets/dev/js/editor/elements/models/column-settings.js ***!
  \******************************************************************/
/***/ ((module) => {

"use strict";


module.exports = elementorModules.editor.elements.models.BaseSettings.extend({
  defaults: {
    _column_size: 100
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/elements/models/column.js":
/*!*********************************************************!*\
  !*** ../assets/dev/js/editor/elements/models/column.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 _element = _interopRequireDefault(__webpack_require__(/*! ./element */ "../assets/dev/js/editor/elements/models/element.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('../../../editor/elements/models/base-element-model')} BaseModel
 */
var Column = exports["default"] = /*#__PURE__*/function (_Element) {
  function Column() {
    (0, _classCallCheck2.default)(this, Column);
    return _callSuper(this, Column, arguments);
  }
  (0, _inherits2.default)(Column, _Element);
  return (0, _createClass2.default)(Column, [{
    key: "isValidChild",
    value:
    /**
     * Allow only widget, container and inner-section.
     *
     * @param {BaseModel} childModel
     */
    function isValidChild(childModel) {
      var childElType = childModel.get('elType');
      if ('section' === childElType && childModel.get('isInner')) {
        return true;
      }
      return ['widget', 'container'].includes(childElType);
    }
  }]);
}(_element.default);

/***/ }),

/***/ "../assets/dev/js/editor/elements/models/container.js":
/*!************************************************************!*\
  !*** ../assets/dev/js/editor/elements/models/container.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 _element = _interopRequireDefault(__webpack_require__(/*! ./element */ "../assets/dev/js/editor/elements/models/element.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; })(); }
var Container = exports["default"] = /*#__PURE__*/function (_ElementModel) {
  function Container() {
    (0, _classCallCheck2.default)(this, Container);
    return _callSuper(this, Container, arguments);
  }
  (0, _inherits2.default)(Container, _ElementModel);
  return (0, _createClass2.default)(Container, [{
    key: "isValidChild",
    value:
    /**
     * Do not allow section or column be placed in the container.
     *
     * @param {*} childModel
     */
    function isValidChild(childModel) {
      // Get elType.
      var elType = childModel.get('elType');
      return 'section' !== elType && 'column' !== elType;
    }
  }]);
}(_element.default);

/***/ }),

/***/ "../assets/dev/js/editor/elements/models/document.js":
/*!***********************************************************!*\
  !*** ../assets/dev/js/editor/elements/models/document.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 _baseElementModel = _interopRequireDefault(__webpack_require__(/*! ./base-element-model */ "../assets/dev/js/editor/elements/models/base-element-model.js"));
var _elementTypes = __webpack_require__(/*! elementor-editor/utils/element-types */ "../assets/dev/js/editor/utils/element-types.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; })(); }
var Document = exports["default"] = /*#__PURE__*/function (_BaseElementModel) {
  function Document() {
    (0, _classCallCheck2.default)(this, Document);
    return _callSuper(this, Document, arguments);
  }
  (0, _inherits2.default)(Document, _BaseElementModel);
  return (0, _createClass2.default)(Document, [{
    key: "isValidChild",
    value: function isValidChild(childModel) {
      var childElType = childModel.get('elType');

      // Valid children.
      return (0, _elementTypes.getAllElementTypes)().includes(childElType);
    }
  }]);
}(_baseElementModel.default);

/***/ }),

/***/ "../assets/dev/js/editor/elements/models/element.js":
/*!**********************************************************!*\
  !*** ../assets/dev/js/editor/elements/models/element.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _baseElementModel = _interopRequireDefault(__webpack_require__(/*! ./base-element-model */ "../assets/dev/js/editor/elements/models/base-element-model.js"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var ColumnSettingsModel = __webpack_require__(/*! elementor-elements/models/column-settings */ "../assets/dev/js/editor/elements/models/column-settings.js"),
  ElementModel;

/**
 * @name ElementModel
 */
ElementModel = _baseElementModel.default.extend({
  defaults: {
    id: '',
    elType: '',
    isInner: false,
    isLocked: false,
    settings: {},
    defaultEditSettings: {
      defaultEditRoute: 'content'
    },
    interactions: {}
  },
  remoteRender: false,
  _htmlCache: null,
  _jqueryXhr: null,
  renderOnLeave: false,
  initialize: function initialize(options) {
    var elType = this.get('elType'),
      elements = this.get('elements');
    if (undefined !== elements) {
      var ElementsCollection = __webpack_require__(/*! elementor-elements/collections/elements */ "../assets/dev/js/editor/elements/collections/elements.js");
      this.set('elements', new ElementsCollection(elements));
    }
    if ('widget' === elType) {
      this.remoteRender = true;
      this.setHtmlCache(options.htmlCache || '');
    }

    // No need this variable anymore
    delete options.htmlCache;

    // Make call to remote server as throttle function
    this.renderRemoteServer = _.throttle(this.renderRemoteServer, 1000);
    this.initSettings();
    this.initEditSettings();
    this.on({
      destroy: this.onDestroy,
      'editor:close': this.onCloseEditor
    });
  },
  initSettings: function initSettings() {
    var elType = this.get('elType'),
      settings = this.get('settings'),
      settingModels = {
        column: ColumnSettingsModel
      },
      SettingsModel = settingModels[elType] || elementorModules.editor.elements.models.BaseSettings;
    if (jQuery.isEmptyObject(settings)) {
      settings = structuredClone(settings);
    }
    if ('widget' === elType) {
      settings.widgetType = this.get('widgetType');
    }
    settings = _objectSpread(_objectSpread({}, settings), {}, {
      elType: elType
    }); // Create a shallow copy as elType is sometimes read only when trying to drop a widget preset.
    settings.isInner = this.get('isInner');

    // Allow passing custom `_title` from model.
    var customTitle = this.get('_title');
    if (customTitle) {
      settings._title = customTitle;
    }
    settings = new SettingsModel(settings, {
      controls: elementor.getElementControls(this)
    });
    this.set('settings', settings);
    elementorFrontend.config.elements.data[this.cid] = settings;
  },
  initEditSettings: function initEditSettings() {
    var editSettings = new Backbone.Model(this.get('defaultEditSettings'));
    this.set('editSettings', editSettings);
    elementorFrontend.config.elements.editSettings[this.cid] = editSettings;
  },
  setSetting: function setSetting(key, value) {
    var settings = this.get('settings');
    if ('object' !== (0, _typeof2.default)(key)) {
      var keyParts = key.split('.'),
        isRepeaterKey = 3 === keyParts.length;
      key = keyParts[0];
      if (isRepeaterKey) {
        settings = settings.get(key).models[keyParts[1]];
        key = keyParts[2];
      }
    }
    settings.setExternalChange(key, value);
  },
  getSetting: function getSetting(key) {
    var keyParts = key.split('.'),
      isRepeaterKey = 3 === keyParts.length,
      settings = this.get('settings');
    key = keyParts[0];
    var value = settings.get(key);
    if (undefined === value) {
      return '';
    }
    if (isRepeaterKey) {
      value = value.models[keyParts[1]].get(keyParts[2]);
    }
    return value;
  },
  setHtmlCache: function setHtmlCache(htmlCache) {
    this._htmlCache = htmlCache;
  },
  getHtmlCache: function getHtmlCache() {
    return this._htmlCache;
  },
  getDefaultTitle: function getDefaultTitle() {
    return elementor.getElementData(this).title;
  },
  getTitle: function getTitle() {
    var _custom$isPreset;
    var editorSettings = this.get('editor_settings');
    var title = (editorSettings === null || editorSettings === void 0 ? void 0 : editorSettings.title) || this.getSetting('_title') || this.getSetting('presetTitle');
    var custom = this.get('custom');
    if (!title && ((_custom$isPreset = custom === null || custom === void 0 ? void 0 : custom.isPreset) !== null && _custom$isPreset !== void 0 ? _custom$isPreset : false)) {
      return this.get('title') || title;
    }
    if (!title) {
      title = this.getDefaultTitle();
    }
    return title;
  },
  getVisibility: function getVisibility() {
    if (elementor.helpers.isAtomicWidget(this)) {
      var _this$get;
      return !!((_this$get = this.get('editor_settings')) !== null && _this$get !== void 0 && _this$get.is_hidden);
    }
    return !!this.get('hidden');
  },
  setVisibility: function setVisibility() {
    var isHidden = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
    if (elementor.helpers.isAtomicWidget(this)) {
      var prevEditorSettings = this.get('editor_settings') || {};
      this.set('editor_settings', _objectSpread(_objectSpread({}, prevEditorSettings), {}, {
        is_hidden: isHidden
      }));
    } else {
      this.set('hidden', isHidden);
    }
  },
  toggleVisibility: function toggleVisibility() {
    var isHidden = this.getVisibility();
    this.setVisibility(!isHidden);
  },
  getIcon: function getIcon() {
    var _custom$isPreset2;
    var mainIcon = elementor.getElementData(this).icon,
      custom = this.get('custom');
    if ((_custom$isPreset2 = custom === null || custom === void 0 ? void 0 : custom.isPreset) !== null && _custom$isPreset2 !== void 0 ? _custom$isPreset2 : false) {
      return this.attributes.custom.preset_settings.presetIcon || mainIcon;
    }
    var savedPresetIcon = this.getSetting('presetIcon');
    if ('string' === typeof savedPresetIcon && '' !== savedPresetIcon.trim()) {
      return savedPresetIcon;
    }
    return mainIcon;
  },
  createRemoteRenderRequest: function createRemoteRenderRequest() {
    var data = this.toJSON();
    return elementorCommon.ajax.addRequest('render_widget', {
      unique_id: this.cid,
      data: {
        data: data
      },
      success: this.onRemoteGetHtml.bind(this)
    }, true).jqXhr;
  },
  renderRemoteServer: function renderRemoteServer() {
    if (!this.remoteRender) {
      return;
    }
    this.renderOnLeave = false;
    this.trigger('before:remote:render');
    if (this.isRemoteRequestActive()) {
      this._jqueryXhr.abort();
    }
    this._jqueryXhr = this.createRemoteRenderRequest();
  },
  isRemoteRequestActive: function isRemoteRequestActive() {
    return this._jqueryXhr && 4 !== this._jqueryXhr.readyState;
  },
  onRemoteGetHtml: function onRemoteGetHtml(data) {
    this.setHtmlCache(data.render);
    this.trigger('remote:render');
  },
  clone: function clone() {
    var newModel = new this.constructor(elementorCommon.helpers.cloneObject(this.attributes));
    newModel.set('id', elementorCommon.helpers.getUniqueId());
    newModel.setHtmlCache(this.getHtmlCache());
    var elements = this.get('elements');
    if (!_.isEmpty(elements)) {
      newModel.set('elements', elements.clone());
    }
    return newModel;
  },
  toJSON: function toJSON(options) {
    options = options || {};

    // Call parent's toJSON method
    var data = Backbone.Model.prototype.toJSON.call(this);
    _.each(data, function (attribute, key) {
      if (attribute && attribute.toJSON) {
        data[key] = attribute.toJSON(options);
      }
    });
    if (options.copyHtmlCache) {
      data.htmlCache = this.getHtmlCache();
    } else {
      delete data.htmlCache;
    }
    if (options.remove) {
      options.remove.forEach(function (key) {
        return delete data[key];
      });
    }
    return data;
  },
  onCloseEditor: function onCloseEditor() {
    if (this.renderOnLeave) {
      this.renderRemoteServer();
    }
  },
  onDestroy: function onDestroy() {
    // Clean the memory for all use instances
    var settings = this.get('settings'),
      elements = this.get('elements');
    if (undefined !== elements) {
      _.each(_.clone(elements.models), function (model) {
        model.destroy();
      });
    }
    settings.destroy();
  }
});
ElementModel.prototype.sync = ElementModel.prototype.fetch = ElementModel.prototype.save = _.noop;
module.exports = ElementModel;

/***/ }),

/***/ "../assets/dev/js/editor/elements/models/section.js":
/*!**********************************************************!*\
  !*** ../assets/dev/js/editor/elements/models/section.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 _element = _interopRequireDefault(__webpack_require__(/*! ./element */ "../assets/dev/js/editor/elements/models/element.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('../../../editor/elements/models/base-element-model')} BaseModel
 */
var Section = exports["default"] = /*#__PURE__*/function (_ElementModel) {
  function Section() {
    (0, _classCallCheck2.default)(this, Section);
    return _callSuper(this, Section, arguments);
  }
  (0, _inherits2.default)(Section, _ElementModel);
  return (0, _createClass2.default)(Section, [{
    key: "isValidChild",
    value:
    /**
     * Allow only column.
     *
     * @param {BaseModel} childModel
     */
    function isValidChild(childModel) {
      return 'column' === childModel.get('elType');
    }
  }]);
}(_element.default);

/***/ }),

/***/ "../assets/dev/js/editor/elements/models/widget.js":
/*!*********************************************************!*\
  !*** ../assets/dev/js/editor/elements/models/widget.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 _element = _interopRequireDefault(__webpack_require__(/*! ./element */ "../assets/dev/js/editor/elements/models/element.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; })(); }
var Widget = exports["default"] = /*#__PURE__*/function (_ElementModel) {
  function Widget() {
    (0, _classCallCheck2.default)(this, Widget);
    return _callSuper(this, Widget, arguments);
  }
  (0, _inherits2.default)(Widget, _ElementModel);
  return (0, _createClass2.default)(Widget, [{
    key: "isValidChild",
    value: function isValidChild() {
      // By default widget cannot contain any element.
      return false;
    }
  }]);
}(_element.default);

/***/ }),

/***/ "../assets/dev/js/editor/elements/types/base/element-base.js":
/*!*******************************************************************!*\
  !*** ../assets/dev/js/editor/elements/types/base/element-base.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"));
/* eslint-disable jsdoc/require-returns-check */
/**
 * @typedef {import('elementor/assets/lib/backbone/backbone.marionette')} Marionette
 * @typedef {import('../../../elements/models/base-element-model')} BaseModel
 */
var ElementBase = exports["default"] = /*#__PURE__*/function () {
  function ElementBase() {
    (0, _classCallCheck2.default)(this, ElementBase);
  }
  return (0, _createClass2.default)(ElementBase, [{
    key: "getType",
    value:
    /**
     * @return {string} Element Type.
     */
    function getType() {
      elementorModules.ForceMethodImplementation();
    }

    /**
     * @return {Marionette.View} Element Marionette View.
     */
  }, {
    key: "getView",
    value: function getView() {
      elementorModules.ForceMethodImplementation();
    }

    /**
     * @return {React.Component} React Component.
     */
  }, {
    key: "getEmptyView",
    value: function getEmptyView() {
      elementorModules.ForceMethodImplementation();
    }

    /**
     * @return {BaseModel} Element Model.
     */
  }, {
    key: "getModel",
    value: function getModel() {
      elementorModules.ForceMethodImplementation();
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/elements/types/column.js":
/*!********************************************************!*\
  !*** ../assets/dev/js/editor/elements/types/column.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 _elementBase = _interopRequireDefault(__webpack_require__(/*! ../types/base/element-base */ "../assets/dev/js/editor/elements/types/base/element-base.js"));
var _column = _interopRequireDefault(__webpack_require__(/*! elementor-elements/models/column */ "../assets/dev/js/editor/elements/models/column.js"));
var _column2 = _interopRequireDefault(__webpack_require__(/*! elementor-elements/views/column */ "../assets/dev/js/editor/elements/views/column.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; })(); }
var Column = exports["default"] = /*#__PURE__*/function (_Base) {
  function Column() {
    (0, _classCallCheck2.default)(this, Column);
    return _callSuper(this, Column, arguments);
  }
  (0, _inherits2.default)(Column, _Base);
  return (0, _createClass2.default)(Column, [{
    key: "getType",
    value: function getType() {
      return 'column';
    }
  }, {
    key: "getView",
    value: function getView() {
      return _column2.default;
    }
  }, {
    key: "getModel",
    value: function getModel() {
      return _column.default;
    }
  }]);
}(_elementBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/elements/types/container.js":
/*!***********************************************************!*\
  !*** ../assets/dev/js/editor/elements/types/container.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 _elementBase = _interopRequireDefault(__webpack_require__(/*! ../types/base/element-base */ "../assets/dev/js/editor/elements/types/base/element-base.js"));
var _emptyComponent = _interopRequireDefault(__webpack_require__(/*! elementor-elements/views/container/empty-component */ "../assets/dev/js/editor/elements/views/container/empty-component.js"));
var _container = _interopRequireDefault(__webpack_require__(/*! elementor-elements/models/container */ "../assets/dev/js/editor/elements/models/container.js"));
var _container2 = _interopRequireDefault(__webpack_require__(/*! elementor-elements/views/container */ "../assets/dev/js/editor/elements/views/container.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; })(); } // TODO: Is this file in use?
// eslint-disable-next-line import/no-unresolved
var Container = exports["default"] = /*#__PURE__*/function (_Base) {
  function Container() {
    (0, _classCallCheck2.default)(this, Container);
    return _callSuper(this, Container, arguments);
  }
  (0, _inherits2.default)(Container, _Base);
  return (0, _createClass2.default)(Container, [{
    key: "getType",
    value: function getType() {
      return 'container';
    }
  }, {
    key: "getView",
    value: function getView() {
      return _container2.default;
    }
  }, {
    key: "getEmptyView",
    value: function getEmptyView() {
      return _emptyComponent.default;
    }
  }, {
    key: "getModel",
    value: function getModel() {
      return _container.default;
    }
  }]);
}(_elementBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/elements/types/document.js":
/*!**********************************************************!*\
  !*** ../assets/dev/js/editor/elements/types/document.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 _elementBase = _interopRequireDefault(__webpack_require__(/*! ../types/base/element-base */ "../assets/dev/js/editor/elements/types/base/element-base.js"));
var _document = _interopRequireDefault(__webpack_require__(/*! elementor-elements/models/document */ "../assets/dev/js/editor/elements/models/document.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; })(); }
var Document = exports["default"] = /*#__PURE__*/function (_Base) {
  function Document() {
    (0, _classCallCheck2.default)(this, Document);
    return _callSuper(this, Document, arguments);
  }
  (0, _inherits2.default)(Document, _Base);
  return (0, _createClass2.default)(Document, [{
    key: "getType",
    value: function getType() {
      return 'document';
    }
  }, {
    key: "getModel",
    value: function getModel() {
      return _document.default;
    }
  }]);
}(_elementBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/elements/types/index.js":
/*!*******************************************************!*\
  !*** ../assets/dev/js/editor/elements/types/index.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
}));
Object.defineProperty(exports, "Column", ({
  enumerable: true,
  get: function get() {
    return _column.default;
  }
}));
Object.defineProperty(exports, "Document", ({
  enumerable: true,
  get: function get() {
    return _document.default;
  }
}));
Object.defineProperty(exports, "InnerSection", ({
  enumerable: true,
  get: function get() {
    return _innerSection.default;
  }
}));
Object.defineProperty(exports, "Section", ({
  enumerable: true,
  get: function get() {
    return _section.default;
  }
}));
Object.defineProperty(exports, "Widget", ({
  enumerable: true,
  get: function get() {
    return _widget.default;
  }
}));
var _column = _interopRequireDefault(__webpack_require__(/*! ./column */ "../assets/dev/js/editor/elements/types/column.js"));
var _document = _interopRequireDefault(__webpack_require__(/*! ./document */ "../assets/dev/js/editor/elements/types/document.js"));
var _innerSection = _interopRequireDefault(__webpack_require__(/*! ./inner-section */ "../assets/dev/js/editor/elements/types/inner-section.js"));
var _section = _interopRequireDefault(__webpack_require__(/*! ./section */ "../assets/dev/js/editor/elements/types/section.js"));
var _widget = _interopRequireDefault(__webpack_require__(/*! ./widget */ "../assets/dev/js/editor/elements/types/widget.js"));

/***/ }),

/***/ "../assets/dev/js/editor/elements/types/inner-section.js":
/*!***************************************************************!*\
  !*** ../assets/dev/js/editor/elements/types/inner-section.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 _section = _interopRequireDefault(__webpack_require__(/*! ./section */ "../assets/dev/js/editor/elements/types/section.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; })(); }
var InnerSection = exports["default"] = /*#__PURE__*/function (_Section) {
  function InnerSection() {
    (0, _classCallCheck2.default)(this, InnerSection);
    return _callSuper(this, InnerSection, arguments);
  }
  (0, _inherits2.default)(InnerSection, _Section);
  return (0, _createClass2.default)(InnerSection, [{
    key: "getType",
    value: function getType() {
      return 'inner-section';
    }
  }]);
}(_section.default);

/***/ }),

/***/ "../assets/dev/js/editor/elements/types/section.js":
/*!*********************************************************!*\
  !*** ../assets/dev/js/editor/elements/types/section.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 _elementBase = _interopRequireDefault(__webpack_require__(/*! ../types/base/element-base */ "../assets/dev/js/editor/elements/types/base/element-base.js"));
var _section = _interopRequireDefault(__webpack_require__(/*! elementor-elements/models/section */ "../assets/dev/js/editor/elements/models/section.js"));
var _section2 = _interopRequireDefault(__webpack_require__(/*! elementor-elements/views/section */ "../assets/dev/js/editor/elements/views/section.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; })(); }
var Section = exports["default"] = /*#__PURE__*/function (_Base) {
  function Section() {
    (0, _classCallCheck2.default)(this, Section);
    return _callSuper(this, Section, arguments);
  }
  (0, _inherits2.default)(Section, _Base);
  return (0, _createClass2.default)(Section, [{
    key: "getType",
    value: function getType() {
      return 'section';
    }
  }, {
    key: "getView",
    value: function getView() {
      return _section2.default;
    }
  }, {
    key: "getModel",
    value: function getModel() {
      return _section.default;
    }
  }]);
}(_elementBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/elements/types/widget.js":
/*!********************************************************!*\
  !*** ../assets/dev/js/editor/elements/types/widget.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 _elementBase = _interopRequireDefault(__webpack_require__(/*! ../types/base/element-base */ "../assets/dev/js/editor/elements/types/base/element-base.js"));
var _widget = _interopRequireDefault(__webpack_require__(/*! elementor-elements/models/widget */ "../assets/dev/js/editor/elements/models/widget.js"));
var _widget2 = _interopRequireDefault(__webpack_require__(/*! elementor-elements/views/widget */ "../assets/dev/js/editor/elements/views/widget.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; })(); }
var Widget = exports["default"] = /*#__PURE__*/function (_Base) {
  function Widget() {
    (0, _classCallCheck2.default)(this, Widget);
    return _callSuper(this, Widget, arguments);
  }
  (0, _inherits2.default)(Widget, _Base);
  return (0, _createClass2.default)(Widget, [{
    key: "getType",
    value: function getType() {
      return 'widget';
    }
  }, {
    key: "getView",
    value: function getView() {
      return _widget2.default;
    }
  }, {
    key: "getModel",
    value: function getModel() {
      return _widget.default;
    }
  }]);
}(_elementBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/elements/views/base-widget.js":
/*!*************************************************************!*\
  !*** ../assets/dev/js/editor/elements/views/base-widget.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var BaseElementView = __webpack_require__(/*! elementor-elements/views/base */ "../assets/dev/js/editor/elements/views/base.js");

/**
 * @augments BaseElementView
 */
var BaseWidgetView = /*#__PURE__*/function (_BaseElementView) {
  function BaseWidgetView() {
    (0, _classCallCheck2.default)(this, BaseWidgetView);
    return _callSuper(this, BaseWidgetView, arguments);
  }
  (0, _inherits2.default)(BaseWidgetView, _BaseElementView);
  return (0, _createClass2.default)(BaseWidgetView, [{
    key: "initialize",
    value: function initialize(options) {
      var _this = this;
      _superPropGet(BaseWidgetView, "initialize", this, 3)([options]);
      var editModel = this.getEditModel();
      editModel.on({
        'before:remote:render': this.onModelBeforeRemoteRender.bind(this),
        'remote:render': this.onModelRemoteRender.bind(this),
        'settings:loaded': function settingsLoaded() {
          return setTimeout(_this.render.bind(_this));
        }
      });
      if ('remote' === this.getTemplateType() && !this.getEditModel().getHtmlCache()) {
        editModel.renderRemoteServer();
      }
      var onRenderMethod = this.onRender;
      this.render = _.throttle(this.render, 300);
      this.onRender = function () {
        _.defer(onRenderMethod.bind(this));
      };
    }
  }, {
    key: "className",
    value: function className() {
      var baseClasses = _superPropGet(BaseWidgetView, "className", this, 3)([]);
      return baseClasses + ' elementor-widget ' + elementor.getElementData(this.getEditModel()).html_wrapper_class;
    }
  }, {
    key: "normalizeAttributes",
    value: function normalizeAttributes() {
      var editModel = this.getEditModel(),
        skinType = editModel.getSetting('_skin') || 'default';
      this.$el.attr('data-widget_type', editModel.get('widgetType') + '.' + skinType).removeClass('elementor-widget-empty').children('.elementor-widget-empty-icon').remove();
    }
  }, {
    key: "getTemplate",
    value: function getTemplate() {
      var editModel = this.getEditModel();
      if ('remote' !== this.getTemplateType()) {
        return Marionette.TemplateCache.get('#tmpl-elementor-' + editModel.get('widgetType') + '-content');
      }
      return _.template('');
    }
  }, {
    key: "getEditButtons",
    value: function getEditButtons() {
      var elementData = elementor.getElementData(this.model),
        editTools = {};
      editTools.edit = {
        /* Translators: %s: Element name. */
        title: sprintf(__('Edit %s', 'elementor'), elementData.title),
        icon: 'edit'
      };
      if (elementor.getPreferences('edit_buttons')) {
        editTools.duplicate = {
          /* Translators: %s: Element name. */
          title: sprintf(__('Duplicate %s', 'elementor'), elementData.title),
          icon: 'clone'
        };
      }
      return editTools;
    }
  }, {
    key: "getRepeaterSettingKey",
    value: function getRepeaterSettingKey(settingKey, repeaterKey, repeaterItemIndex) {
      return [repeaterKey, repeaterItemIndex, settingKey].join('.');
    }
  }, {
    key: "onModelBeforeRemoteRender",
    value: function onModelBeforeRemoteRender() {
      this.$el.addClass('elementor-loading');
    }
  }, {
    key: "onModelRemoteRender",
    value: function onModelRemoteRender() {
      if (this.isDestroyed) {
        return;
      }
      this.$el.removeClass('elementor-loading');

      // If container document has been changed during the remote request, don't render.
      if (this.getContainer().document.id !== elementor.documents.getCurrent().id) {
        return;
      }
      this.render();
    }
  }, {
    key: "onBeforeDestroy",
    value: function onBeforeDestroy() {
      // Remove old style from the DOM.
      elementor.$previewContents.find('#elementor-style-' + this.model.get('id')).remove();
    }
  }]);
}(BaseElementView);
module.exports = BaseWidgetView;

/***/ }),

/***/ "../assets/dev/js/editor/elements/views/base.js":
/*!******************************************************!*\
  !*** ../assets/dev/js/editor/elements/views/base.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"));
var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
var _awaitAsyncGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/awaitAsyncGenerator */ "../node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js"));
var _wrapAsyncGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/wrapAsyncGenerator */ "../node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js"));
var _environment = _interopRequireDefault(__webpack_require__(/*! elementor-common/utils/environment */ "../core/common/assets/js/utils/environment.js"));
var _elementTypeNotFound = _interopRequireDefault(__webpack_require__(/*! elementor-editor/errors/element-type-not-found */ "../assets/dev/js/editor/errors/element-type-not-found.js"));
var _elementTypes = __webpack_require__(/*! elementor-editor/utils/element-types */ "../assets/dev/js/editor/utils/element-types.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 _asyncIterator(r) { var n, t, o, e = 2; for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) { if (t && null != (n = r[t])) return n.call(r); if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r)); t = "@@asyncIterator", o = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
function AsyncFromSyncIterator(r) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var n = r.done; return Promise.resolve(r.value).then(function (r) { return { value: r, done: n }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(r) { this.s = r, this.n = r.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function _return(r) { var n = this.s.return; return void 0 === n ? Promise.resolve({ value: r, done: !0 }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); }, throw: function _throw(r) { var n = this.s.return; return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(r); }
var ControlsCSSParser = __webpack_require__(/*! elementor-editor-utils/controls-css-parser */ "../assets/dev/js/editor/utils/controls-css-parser.js"),
  Validator = __webpack_require__(/*! elementor-validator/base */ "../assets/dev/js/editor/components/validator/base.js"),
  BaseContainer = __webpack_require__(/*! elementor-views/base-container */ "../assets/dev/js/editor/views/base-container.js"),
  BaseElementView;

/**
 * @typedef {{}} DataBinding
 * @property {DOMStringMap} dataset The dataset of the element.
 * @property {HTMLElement}  el      The element.
 */

/**
 * @name BaseElementView
 * @augments {BaseContainer}
 */
BaseElementView = BaseContainer.extend({
  tagName: 'div',
  controlsCSSParser: null,
  allowRender: true,
  toggleEditTools: false,
  renderAttributes: {},
  isRendering: false,
  className: function className() {
    var classes = 'elementor-element elementor-element-edit-mode ' + this.getElementUniqueID();
    if (this.toggleEditTools) {
      classes += ' elementor-element--toggle-edit-tools';
    }
    return classes;
  },
  attributes: function attributes() {
    return {
      'data-id': this.getID(),
      'data-element_type': this.model.get('elType'),
      'data-model-cid': this.model.cid
    };
  },
  ui: function ui() {
    return {
      tools: '> .elementor-element-overlay > .elementor-editor-element-settings',
      editButton: '> .elementor-element-overlay .elementor-editor-element-edit',
      duplicateButton: '> .elementor-element-overlay .elementor-editor-element-duplicate',
      addButton: '> .elementor-element-overlay .elementor-editor-element-add',
      removeButton: '> .elementor-element-overlay .elementor-editor-element-remove'
    };
  },
  behaviors: function behaviors() {
    var elementType = this.options.model.get('elType');
    var groups = elementor.hooks.applyFilters("elements/".concat(elementType, "/contextMenuGroups"), this.getContextMenuGroups(), this);
    var behaviors = {
      contextMenu: {
        behaviorClass: __webpack_require__(/*! elementor-behaviors/context-menu */ "../assets/dev/js/editor/elements/views/behaviors/context-menu.js"),
        groups: groups
      }
    };
    return elementor.hooks.applyFilters('elements/base/behaviors', behaviors, this);
  },
  getBehavior: function getBehavior(name) {
    return this._behaviors[Object.keys(this.behaviors()).indexOf(name)];
  },
  events: function events() {
    return {
      mousedown: 'onMouseDown',
      click: 'handleAnchorClick',
      'click @ui.editButton': 'onEditButtonClick',
      'click @ui.duplicateButton': 'onDuplicateButtonClick',
      'click @ui.addButton': 'onAddButtonClick',
      'click @ui.removeButton': 'onRemoveButtonClick'
    };
  },
  getElementType: function getElementType() {
    return this.model.get('elType');
  },
  getIDInt: function getIDInt() {
    return parseInt(this.getID(), 16);
  },
  getChildType: function getChildType() {
    return elementor.helpers.getElementChildType(this.getElementType());
  },
  getChildView: function getChildView(model) {
    var elementType = model.get('widgetType') || model.get('elType'),
      elementTypeClass = elementor.elementsManager.getElementTypeClass(elementType);
    if (!elementTypeClass) {
      throw new _elementTypeNotFound.default(elementType);
    }
    return elementor.hooks.applyFilters('element/view', elementTypeClass.getView(), model, this);
  },
  getTemplateType: function getTemplateType() {
    return 'js';
  },
  getEditModel: function getEditModel() {
    return this.model;
  },
  getContainer: function getContainer() {
    if (!this.container) {
      var settingsModel = this.model.get('settings');
      this.container = new elementorModules.editor.Container({
        type: this.model.get('elType'),
        id: this.model.id,
        model: this.model,
        settings: settingsModel,
        view: this,
        parent: this._parent ? this._parent.getContainer() : false,
        label: elementor.helpers.getModelLabel(this.model),
        controls: settingsModel.options.controls
      });
    }
    return this.container;
  },
  getContextMenuGroups: function getContextMenuGroups() {
    var _this2 = this;
    var controlSign = _environment.default.mac ? '&#8984;' : '^';
    var groups = [{
      name: 'general',
      actions: [{
        name: 'edit',
        icon: 'eicon-edit',
        /* Translators: %s: Element Name. */
        title: function title() {
          return sprintf(__('Edit %s', 'elementor'), elementor.selection.isMultiple() ? '' : _this2.options.model.getTitle());
        },
        isEnabled: function isEnabled() {
          return !elementor.selection.isMultiple();
        },
        callback: function callback() {
          return $e.run('document/elements/select', {
            container: _this2.getContainer()
          });
        }
      }, {
        name: 'duplicate',
        icon: 'eicon-clone',
        title: __('Duplicate', 'elementor'),
        shortcut: controlSign + '+D',
        isEnabled: function isEnabled() {
          return elementor.selection.isSameType() && !_this2.getContainer().isLocked();
        },
        callback: function callback() {
          return $e.run('document/elements/duplicate', {
            containers: elementor.selection.getElements(_this2.getContainer())
          });
        }
      }]
    }, {
      name: 'clipboard',
      actions: [{
        name: 'copy',
        title: __('Copy', 'elementor'),
        shortcut: controlSign + '+C',
        isEnabled: function isEnabled() {
          return elementor.selection.isSameType() && !_this2.getContainer().isLocked();
        },
        callback: function callback() {
          return $e.run('document/elements/copy', {
            containers: elementor.selection.getElements(_this2.getContainer())
          });
        }
      }, {
        name: 'paste',
        title: __('Paste', 'elementor'),
        shortcut: controlSign + '+V',
        isEnabled: function isEnabled() {
          return $e.components.get('document/elements').utils.isPasteEnabled(_this2.getContainer()) && elementor.selection.isSameType();
        },
        callback: function callback() {
          return $e.run('document/ui/paste', {
            container: _this2.getContainer()
          });
        }
      }, {
        name: 'pasteStyle',
        title: __('Paste style', 'elementor'),
        shortcut: controlSign + '+⇧+V',
        isEnabled: function isEnabled() {
          return !!elementorCommon.storage.get('clipboard');
        },
        callback: function callback() {
          return $e.run('document/elements/paste-style', {
            containers: elementor.selection.getElements(_this2.getContainer())
          });
        }
      }, {
        name: 'pasteInteractions',
        title: __('Paste interactions', 'elementor'),
        isEnabled: function isEnabled() {
          var clipboard = elementorCommon.storage.get('clipboard');
          if (!clipboard) {
            return false;
          }
          var elements = elementor.selection.getElements(_this2.getContainer());
          return elements.length > 0 && elements.every(function (c) {
            return elementor.helpers.isAtomicWidget(c.model);
          });
        },
        callback: function callback() {
          $e.run('document/elements/paste-interactions', {
            containers: elementor.selection.getElements(_this2.getContainer())
          });
        }
      }, {
        name: 'pasteArea',
        icon: 'eicon-import-export',
        title: __('Paste from other site', 'elementor'),
        callback: function callback() {
          return $e.run('document/elements/paste-area', {
            container: _this2.getContainer()
          });
        }
      }, {
        name: 'resetStyle',
        title: __('Reset style', 'elementor'),
        callback: function callback() {
          return $e.run('document/elements/reset-style', {
            containers: elementor.selection.getElements(_this2.getContainer())
          });
        }
      }]
    }];
    var customGroups = [];

    /**
     * Filter Additional Context Menu Groups.
     *
     * This filter allows adding new context menu groups to elements.
     *
     * @param array  customGroups - An array of group objects.
     * @param string elementType - The current element type.
     */
    customGroups = elementor.hooks.applyFilters('elements/context-menu/groups', customGroups, this.options.model.get('elType'));
    if (customGroups.length) {
      groups = [].concat((0, _toConsumableArray2.default)(groups), (0, _toConsumableArray2.default)(customGroups));
    }
    groups.push({
      name: 'delete',
      actions: [{
        name: 'delete',
        icon: 'eicon-trash',
        title: function title() {
          if (elementor.selection.isMultiple()) {
            // Translators: %d: Elements count.
            return sprintf(__('Delete %d items', 'elementor'), elementor.selection.getElements().length);
          }
          return __('Delete', 'elementor');
        },
        shortcut: '⌦',
        callback: function callback() {
          return $e.run('document/elements/delete', {
            containers: elementor.selection.getElements(_this2.getContainer()),
            callerName: 'context_menu'
          });
        },
        isEnabled: function isEnabled() {
          return !_this2.getContainer().isLocked();
        }
      }]
    });
    return groups;
  },
  getEditButtons: function getEditButtons() {
    return {};
  },
  initialize: function initialize() {
    var _this3 = this;
    BaseContainer.prototype.initialize.apply(this, arguments);
    var editModel = this.getEditModel();
    if (this.collection && this.onCollectionChanged) {
      elementorDevTools.deprecation.deprecated('onCollectionChanged', '2.8.0', '$e.hooks');
      this.listenTo(this.collection, 'add remove reset', this.onCollectionChanged, this);
    }
    if (this.onSettingsChanged) {
      elementorDevTools.deprecation.deprecated('onSettingsChanged', '2.8.0', '$e.hooks');
      this.listenTo(editModel.get('settings'), 'change', this.onSettingsChanged);
    }
    this.listenTo(editModel.get('editSettings'), 'change', this.onEditSettingsChanged).listenTo(this.model, 'request:edit', this.onEditRequest).listenTo(this.model, 'request:toggleVisibility', this.toggleVisibility);
    this.initControlsCSSParser();
    if (!this.onDynamicServerRequestEnd) {
      this.onDynamicServerRequestEnd = _.debounce(function () {
        _this3.render();
        _this3.$el.removeClass('elementor-loading');
      }, 100);
    }
  },
  getHandlesOverlay: function getHandlesOverlay() {
    var elementType = this.getElementType();
    if (!elementor.userCan('design') && elementType !== 'widget') {
      return;
    }
    if (!this.getContainer().isEditable()) {
      return;
    }
    var isElement = (0, _elementTypes.getAllElementTypes)().includes(elementType);
    var $handlesOverlay = jQuery('<div>', {
        class: 'elementor-element-overlay'
      }),
      $overlayList = jQuery('<ul>', {
        class: "elementor-editor-element-settings elementor-editor-".concat(elementType, "-settings ").concat(isElement ? 'elementor-editor-element-overlay-settings' : '')
      }),
      editButtonsEnabled = elementor.getPreferences('edit_buttons'),
      elementData = elementor.getElementData(this.model);
    var editButtons = this.getEditButtons();
    var shouldShowEditButtons = editButtonsEnabled || 'widget' === elementType;

    // We should only allow external modification to edit buttons if the user enabled edit buttons or it's a widget.
    if (shouldShowEditButtons) {
      /**
       * Filter edit buttons.
       *
       * This filter allows adding edit buttons to all element types.
       *
       * @since 3.5.0
       *
       * @param array editButtons An array of buttons.
       */
      editButtons = elementor.hooks.applyFilters("elements/edit-buttons", editButtons);

      /**
       * Filter edit buttons.
       *
       * This filter allows adding edit buttons only to a specific element type.
       *
       * The dynamic portion of the hook name, `elementType`, refers to element type (widget, column, section).
       *
       * @since 3.5.0
       *
       * @param array editButtons An array of buttons.
       */
      editButtons = elementor.hooks.applyFilters("elements/edit-buttons/".concat(elementType), editButtons);
    }

    // Only sections always have the remove button, even if the Editing Handles preference is off.
    if ('section' === elementType || editButtonsEnabled) {
      editButtons.remove = {
        /* Translators: %s: Element Name. */
        title: sprintf(__('Delete %s', 'elementor'), elementData.title),
        icon: 'close'
      };
    }
    jQuery.each(editButtons, function (toolName, tool) {
      var $item = jQuery('<li>', {
        class: "elementor-editor-element-setting elementor-editor-element-".concat(toolName),
        title: tool.title,
        'aria-label': tool.title
      });
      var $icon = jQuery('<i>', {
        class: "eicon-".concat(tool.icon),
        'aria-hidden': true
      });
      $item.append($icon);
      $overlayList.append($item);
    });
    $handlesOverlay.append($overlayList);
    return $handlesOverlay;
  },
  attachElContent: function attachElContent(html) {
    this.$el.empty().append(this.getHandlesOverlay(), html);
  },
  isStyleTransferControl: function isStyleTransferControl(control) {
    if (undefined !== control.style_transfer) {
      return control.style_transfer;
    }
    return 'content' !== control.tab || control.selectors || control.prefix_class;
  },
  toggleVisibility: function toggleVisibility() {
    this.model.toggleVisibility();
    this.toggleVisibilityClass();
  },
  toggleVisibilityClass: function toggleVisibilityClass() {
    var isVisible = this.model.getVisibility();
    if (!elementor.helpers.isAtomicWidget(this.model)) {
      this.$el.toggleClass('elementor-edit-hidden', isVisible);
      return;
    }

    /**
     * We cannot know for sure the nature of this.$el in atomic widgets in terms of its css display value.
     * Though most atomic widgets are wrapped with a { display: contents !important } inline styled div, not all are, i.e. div-block and flexbox - both have display: flex.
     *
     * The simplest solution might be to switch the inline display value to 'none',
     * but that would require us to also store the original display value to revert to upon showing back the widget.
     *
     * This leaves us with a slightly less elegant workaround - to wrap/unwrap it with a {display: none} inline styled div
     */
    var isWrappedWithHiddenElement = this.$el.parent().is('div[data-type="hide-atomic-widget"]');
    if (isVisible) {
      if (!isWrappedWithHiddenElement) {
        this.$el.wrap('<div data-type="hide-atomic-widget" style="display: none" />');
      }
      return;
    }
    if (isWrappedWithHiddenElement) {
      this.$el.unwrap();
    }
  },
  addElementFromPanel: function addElementFromPanel(options) {
    options = options || {};
    var elementView = elementor.channels.panelElements.request('element:selected'),
      model = {
        elType: elementView.model.get('elType')
      };
    if (elementor.helpers.maybeDisableWidget()) {
      return;
    }
    if ('widget' === model.elType) {
      model.widgetType = elementView.model.get('widgetType');
    } else if ('section' === model.elType) {
      model.isInner = true;
    } else if ('container' !== model.elType) {
      // Don't allow adding anything other than widget, inner-section or a container.
      return;
    }

    // Don't allow adding inner-sections inside inner-sections.
    if ('section' === model.elType && this.isInner()) {
      return;
    }
    var customData = elementView.model.get('custom');
    if (customData) {
      jQuery.extend(model, customData);
    }

    // Reset the selected element cache.
    elementor.channels.panelElements.reply('element:selected', null);
    return $e.run('document/elements/create', {
      container: this.getContainer(),
      model: model,
      options: options
    });
  },
  // TODO: Unused function.
  addControlValidator: function addControlValidator(controlName, validationCallback) {
    validationCallback = validationCallback.bind(this);
    var validator = new Validator({
        customValidationMethod: validationCallback
      }),
      validators = this.getEditModel().get('settings').validators;
    if (!validators[controlName]) {
      validators[controlName] = [];
    }
    validators[controlName].push(validator);
  },
  addRenderAttribute: function addRenderAttribute(element, key, value, overwrite) {
    var self = this;
    if ('object' === (0, _typeof2.default)(element)) {
      jQuery.each(element, function (elementKey, elementValue) {
        self.addRenderAttribute(elementKey, elementValue, null, overwrite);
      });
      return self;
    }
    if ('object' === (0, _typeof2.default)(key)) {
      jQuery.each(key, function (attributeKey, attributeValue) {
        self.addRenderAttribute(element, attributeKey, attributeValue, overwrite);
      });
      return self;
    }
    if (!self.renderAttributes[element]) {
      self.renderAttributes[element] = {};
    }
    if (!self.renderAttributes[element][key]) {
      self.renderAttributes[element][key] = [];
    }
    if (!Array.isArray(value)) {
      value = [value];
    }
    if (overwrite) {
      self.renderAttributes[element][key] = value;
    } else {
      self.renderAttributes[element][key] = self.renderAttributes[element][key].concat(value);
    }
  },
  getRenderAttributeString: function getRenderAttributeString(element) {
    if (!this.renderAttributes[element]) {
      return '';
    }
    var renderAttributes = this.renderAttributes[element],
      attributes = [];
    jQuery.each(renderAttributes, function (attributeKey, attributeValue) {
      attributes.push(attributeKey + '="' + _.escape(attributeValue.join(' ')) + '"');
    });
    return attributes.join(' ');
  },
  isInner: function isInner() {
    return !!this.model.get('isInner');
  },
  initControlsCSSParser: function initControlsCSSParser() {
    this.controlsCSSParser = new ControlsCSSParser({
      id: this.model.get('id'),
      context: this,
      settingsModel: this.getEditModel().get('settings'),
      dynamicParsing: this.getDynamicParsingSettings()
    });
  },
  enqueueFonts: function enqueueFonts() {
    var editModel = this.getEditModel(),
      settings = editModel.get('settings');

    // Enqueue Icon Fonts
    jQuery.each(settings.getIconsControls(), function (index, control) {
      var iconType = editModel.getSetting(control.name);
      if (!iconType || !iconType.library) {
        return;
      }
      elementor.helpers.enqueueIconFonts(iconType.library);
    });
  },
  renderStyles: function renderStyles(settings) {
    if (!settings) {
      settings = this.getEditModel().get('settings');
    }
    this.controlsCSSParser.stylesheet.empty();
    this.controlsCSSParser.addStyleRules(settings.getStyleControls(), settings.attributes, this.getEditModel().get('settings').controls, [/{{ID}}/g, /{{WRAPPER}}/g], [this.getID(), '.elementor-' + elementor.config.document.id + ' .elementor-element.' + this.getElementUniqueID()]);
    this.controlsCSSParser.addStyleToDocument();
  },
  renderCustomClasses: function renderCustomClasses() {
    var self = this;
    var settings = self.getEditModel().get('settings'),
      classControls = settings.getClassControls();

    // Remove all previous classes
    _.each(classControls, function (control) {
      var previousClassValue = settings.previous(control.name);
      if (control.classes_dictionary) {
        if (undefined !== control.classes_dictionary[previousClassValue]) {
          previousClassValue = control.classes_dictionary[previousClassValue];
        }
      }
      self.$el.removeClass(control.prefix_class + previousClassValue);
    });

    // Add new classes
    _.each(classControls, function (control) {
      var value = settings.attributes[control.name];
      var classValue = value;
      if (control.classes_dictionary) {
        if (undefined !== control.classes_dictionary[value]) {
          classValue = control.classes_dictionary[value];
        }
      }
      var isVisible = elementor.helpers.isActiveControl(control, settings.attributes, settings.controls);
      if (isVisible && (classValue || 0 === classValue)) {
        self.$el.addClass(control.prefix_class + classValue);
      }
    });
    self.$el.addClass(_.result(self, 'className'));
    self.toggleVisibilityClass();
  },
  renderCustomElementID: function renderCustomElementID() {
    var customElementID = this.getEditModel().get('settings').get('_element_id');
    if (customElementID) {
      this.$el.attr('id', customElementID);
    }
  },
  renderUI: function renderUI() {
    this.renderStyles();
    this.renderCustomClasses();
    this.renderCustomElementID();
    this.enqueueFonts();
  },
  runReadyTrigger: function runReadyTrigger() {
    var self = this;
    _.defer(function () {
      elementorFrontend.elementsHandler.runReadyTrigger(self.el);
      if (!elementorFrontend.isEditMode()) {
        return;
      }

      // In edit mode - handle an external elements that loaded by another elements like shortcode etc.
      self.$el.find('.elementor-element.elementor-' + self.model.get('elType') + ':not(.elementor-element-edit-mode)').each(function () {
        elementorFrontend.elementsHandler.runReadyTrigger(this);
      });
    });
  },
  getID: function getID() {
    return this.model.get('id');
  },
  getElementUniqueID: function getElementUniqueID() {
    return 'elementor-element-' + this.getID();
  },
  renderHTML: function renderHTML() {
    var templateType = this.getTemplateType(),
      editModel = this.getEditModel();
    if ('js' === templateType) {
      this.getEditModel().setHtmlCache();
      this.render();
      editModel.renderOnLeave = true;
    } else {
      editModel.renderRemoteServer();
    }
  },
  renderChanges: function renderChanges(settings) {
    // Make sure is correct model
    if (settings instanceof elementorModules.editor.elements.models.BaseSettings) {
      var hasChanged = settings.hasChanged();
      var isContentChanged = !hasChanged,
        isRenderRequired = !hasChanged;
      _.each(settings.changedAttributes(), function (settingValue, settingKey) {
        if ('_column_size' === settingKey) {
          isRenderRequired = true;
          return;
        }
        var control = settings.getControl(settingKey);
        if (!control) {
          isRenderRequired = true;
          isContentChanged = true;
          return;
        }
        if ('none' !== control.render_type) {
          isRenderRequired = true;
        }
        if (-1 !== ['none', 'ui'].indexOf(control.render_type)) {
          return;
        }
        if ('template' === control.render_type || !settings.isStyleControl(settingKey) && !settings.isClassControl(settingKey) && '_element_id' !== settingKey) {
          isContentChanged = true;
        }
      });
      if (!isRenderRequired) {
        return;
      }
      if (!isContentChanged) {
        this.renderUI();
        return;
      }
    }
    this.renderHTML();
  },
  isAtomicDynamic: function isAtomicDynamic(changedSettings, dataBinding, changedControl, bindingDynamicCssId) {
    return '__dynamic__' in changedSettings && dataBinding.el.hasAttribute('data-binding-dynamic') && (dataBinding.el.getAttribute('data-binding-setting') === changedControl || this.isCssIdControl(changedControl, bindingDynamicCssId));
  },
  getDynamicValue: function getDynamicValue(settings, changedControlKey, bindingSetting) {
    var _this4 = this;
    return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
      var dynamicSettings, valueToParse;
      return _regenerator.default.wrap(function (_context) {
        while (1) switch (_context.prev = _context.next) {
          case 0:
            dynamicSettings = {
              active: true
            }, valueToParse = _this4.getChangedData(settings, changedControlKey, bindingSetting);
            if (valueToParse) {
              _context.next = 1;
              break;
            }
            return _context.abrupt("return", settings.attributes[changedControlKey]);
          case 1:
            _context.next = 2;
            return _this4.getDataFromCacheOrBackend(valueToParse, dynamicSettings);
          case 2:
            return _context.abrupt("return", _context.sent);
          case 3:
          case "end":
            return _context.stop();
        }
      }, _callee);
    }))();
  },
  findUniqueKey: function findUniqueKey(obj1, obj2) {
    if ('object' !== (0, _typeof2.default)(obj1) || 'object' !== (0, _typeof2.default)(obj2)) {
      return false;
    }
    var keys1 = Object.keys(obj1),
      keys2 = Object.keys(obj2);
    var allKeys = keys1.concat(keys2);
    return allKeys.filter(function (item, index, arr) {
      return arr.indexOf(item) === arr.lastIndexOf(item);
    });
  },
  /**
   * Function linkDataBindings().
   *
   * Link data to allow partial render, instead of full re-render
   *
   * How to use?
   *  If the element which should be rendered for a setting key is known in advance, it's possible to add the following attributes to the element to avoid full re-render:
   *  Example for repeater item:
   * 'data-binding-type': 'repeater-item',               // Type of binding (to know how to behave).
   * 'data-binding-setting': 'tab_title',                // Setting key that effect the binding.
   * 'data-binding-index': tabCount,                     // Index is required for repeater items.
   *
   * Example for content:
   * 'data-binding-type': 'content',                     // Type of binding.
   * 'data-binding-setting': 'testimonial_content',      // Setting change to capture, the value will replace the link.
   *
   * By adding the following example attributes inside the widget the element innerHTML will be linked to the 'testimonial_content' setting value.
   *
   *
   * Current Limitation:
   * Not working with dynamics, will required full re-render.
   * UPDATE: Support for dynamics has experimentally been added in v3.23
   */
  linkDataBindings: function linkDataBindings() {
    var _this5 = this;
    /**
     * @type {Array.<DataBinding>}
     */
    this.dataBindings = [];
    var id = this.$el.data('id');
    if (!id) {
      return;
    }
    var $dataBinding = this.$el.find('[data-binding-type]');
    if (!$dataBinding.length) {
      return;
    }
    $dataBinding.each(function (index, current) {
      // To support nested data-binding bypass nested data-binding that are not part of the current.
      if (jQuery(current).closest('.elementor-element').data('id') === id) {
        if (current.dataset.bindingType) {
          _this5.dataBindings.push({
            el: current,
            dataset: current.dataset
          });
        }
      }
    });
  },
  /**
   * Function renderDataBindings().
   *
   * Render linked data.
   *
   * @param {Object}              settings
   * @param {Array.<DataBinding>} dataBindings
   *
   * @return {boolean} - false on fail.
   */
  renderDataBindings: function renderDataBindings(settings, dataBindings) {
    var _this$dataBindings,
      _this6 = this;
    if (!((_this$dataBindings = this.dataBindings) !== null && _this$dataBindings !== void 0 && _this$dataBindings.length)) {
      return false;
    }
    var changed = false;
    var renderDataBinding = /*#__PURE__*/function () {
      var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(dataBinding) {
        var _dataBinding$dataset, bindingSetting, bindingConfig, bindingSettings, config, isChangeHandled, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, currentChange, key, value, _t;
        return _regenerator.default.wrap(function (_context2) {
          while (1) switch (_context2.prev = _context2.next) {
            case 0:
              _dataBinding$dataset = dataBinding.dataset, bindingSetting = _dataBinding$dataset.bindingSetting, bindingConfig = _dataBinding$dataset.bindingConfig; // BindingSetting is kept for backward compatibility, should be removed once two versions from ED-17823 has been merged
              // And use only the bindingConfig which contains all the needed information
              bindingSettings = bindingSetting.split(' '); // Multiple binding settings can appear
              config = JSON.parse(bindingConfig);
              isChangeHandled = false;
              _iteratorAbruptCompletion = false;
              _didIteratorError = false;
              _context2.prev = 1;
              _iterator = _asyncIterator(_this6.bindingChangesGenerator(settings, bindingSettings, config));
            case 2:
              _context2.next = 3;
              return _iterator.next();
            case 3:
              if (!(_iteratorAbruptCompletion = !(_step = _context2.sent).done)) {
                _context2.next = 5;
                break;
              }
              currentChange = _step.value;
              key = currentChange.key, value = currentChange.value;
              if ('string' === typeof value) {
                _this6.renderDataBoundChange(value, dataBinding.el, config[key]);
                isChangeHandled = true;
              }
            case 4:
              _iteratorAbruptCompletion = false;
              _context2.next = 2;
              break;
            case 5:
              _context2.next = 7;
              break;
            case 6:
              _context2.prev = 6;
              _t = _context2["catch"](1);
              _didIteratorError = true;
              _iteratorError = _t;
            case 7:
              _context2.prev = 7;
              _context2.prev = 8;
              if (!(_iteratorAbruptCompletion && _iterator.return != null)) {
                _context2.next = 9;
                break;
              }
              _context2.next = 9;
              return _iterator.return();
            case 9:
              _context2.prev = 9;
              if (!_didIteratorError) {
                _context2.next = 10;
                break;
              }
              throw _iteratorError;
            case 10:
              return _context2.finish(9);
            case 11:
              return _context2.finish(7);
            case 12:
              return _context2.abrupt("return", isChangeHandled);
            case 13:
            case "end":
              return _context2.stop();
          }
        }, _callee2, null, [[1, 6, 7, 12], [8,, 9, 11]]);
      }));
      return function renderDataBinding(_x) {
        return _ref.apply(this, arguments);
      };
    }();
    var _iterator2 = _createForOfIteratorHelper(dataBindings),
      _step2;
    try {
      for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
        var dataBinding = _step2.value;
        switch (dataBinding.dataset.bindingType) {
          case 'repeater-item':
            {
              var _container$parent;
              var repeater = this.container.repeaters[dataBinding.dataset.bindingRepeaterName];
              if (!repeater) {
                break;
              }
              var container = repeater.children.find(function (i) {
                return i.id === settings.attributes._id;
              });
              if ((container === null || container === void 0 || (_container$parent = container.parent) === null || _container$parent === void 0 ? void 0 : _container$parent.children.indexOf(container)) + 1 === parseInt(dataBinding.dataset.bindingIndex)) {
                changed = renderDataBinding(dataBinding);
              } else if (dataBindings.indexOf(dataBinding) + 1 === this.getRepeaterItemActiveIndex()) {
                changed = this.tryHandleDynamicCoverSettings(dataBinding, settings);
              }
            }
            break;
          case 'content':
            {
              changed = renderDataBinding(dataBinding);
            }
            break;
        }
        if (changed) {
          break;
        }
      }
    } catch (err) {
      _iterator2.e(err);
    } finally {
      _iterator2.f();
    }
    return changed;
  },
  bindingChangesGenerator: function bindingChangesGenerator(settings, bindingSettings, config) {
    var _this = this;
    return (0, _wrapAsyncGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
      var _i, _Object$entries, _Object$entries$_i, key, value, _i2, _Object$keys, dynamicKey, actual;
      return _regenerator.default.wrap(function (_context3) {
        while (1) switch (_context3.prev = _context3.next) {
          case 0:
            _i = 0, _Object$entries = Object.entries(settings.changed);
          case 1:
            if (!(_i < _Object$entries.length)) {
              _context3.next = 9;
              break;
            }
            _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2), key = _Object$entries$_i[0], value = _Object$entries$_i[1];
            if (!('__dynamic__' !== key && !_this.isHandledAsDatabinding(key, bindingSettings, config))) {
              _context3.next = 2;
              break;
            }
            return _context3.abrupt("continue", 8);
          case 2:
            if (!('__dynamic__' !== key)) {
              _context3.next = 4;
              break;
            }
            _context3.next = 3;
            return {
              key: key,
              value: value
            };
          case 3:
            return _context3.abrupt("continue", 8);
          case 4:
            _i2 = 0, _Object$keys = Object.keys(value);
          case 5:
            if (!(_i2 < _Object$keys.length)) {
              _context3.next = 8;
              break;
            }
            dynamicKey = _Object$keys[_i2];
            if (!_this.isHandledAsDatabinding(dynamicKey, bindingSettings, config)) {
              _context3.next = 7;
              break;
            }
            _context3.next = 6;
            return (0, _awaitAsyncGenerator2.default)(_this.getDynamicValue(settings, dynamicKey, dynamicKey));
          case 6:
            actual = _context3.sent;
            _context3.next = 7;
            return {
              key: dynamicKey,
              value: actual
            };
          case 7:
            _i2++;
            _context3.next = 5;
            break;
          case 8:
            _i++;
            _context3.next = 1;
            break;
          case 9:
          case "end":
            return _context3.stop();
        }
      }, _callee3);
    }))();
  },
  isHandledAsDatabinding: function isHandledAsDatabinding(key, bindingSettings, config) {
    return bindingSettings.some(function (x) {
      return x === key;
    }) || config[key] !== undefined;
  },
  renderDataBoundChange: function renderDataBoundChange(change, element, config) {
    switch (config === null || config === void 0 ? void 0 : config.editType) {
      case 'attribute':
        element.closest(config.selector).setAttribute(config.attr, change);
        break;
      case 'text':
        element.innerHTML = change;
        break;
      // Backward compatibility should be deleted once two versions from ED-17823 has been merged
      default:
        element.innerHTML = change;
    }
  },
  /**
   * Function renderOnChange().
   *
   * Render the changes in the settings according to the current situation.
   *
   * @param {Object} settings
   */
  renderOnChange: function renderOnChange(settings) {
    var _this7 = this;
    if (!this.allowRender) {
      return;
    }
    if (this.isRendering) {
      this.isRendering = false;
      return;
    }
    var renderResult = this.renderDataBindings(settings, this.dataBindings);
    if (renderResult instanceof Promise) {
      renderResult.then(function (result) {
        if (!result) {
          _this7.renderChanges(settings);
        }
      });
    }
    if (!renderResult) {
      this.renderChanges(settings);
    }
  },
  getDynamicParsingSettings: function getDynamicParsingSettings() {
    var self = this;
    return {
      onServerRequestStart: function onServerRequestStart() {
        self.$el.addClass('elementor-loading');
      },
      onServerRequestEnd: self.onDynamicServerRequestEnd
    };
  },
  serializeData: function serializeData() {
    var data = BaseContainer.prototype.serializeData.apply(this, arguments);
    data.settings = this.getEditModel().get('settings').parseDynamicSettings(data.settings, this.getDynamicParsingSettings());
    return data;
  },
  save: function save() {
    elementor.templates.eventManager.sendNewSaveTemplateClickedEvent();
    $e.route('library/save-template', {
      model: this.model
    });
  },
  onBeforeRender: function onBeforeRender() {
    this.renderAttributes = {};
  },
  render: function render() {
    this.getContainer();
    BaseContainer.prototype.render.apply(this, arguments);
  },
  onRender: function onRender() {
    var _this8 = this;
    this.linkDataBindings();
    this.renderUI();
    this.runReadyTrigger();
    if (this.toggleEditTools) {
      var editButton = this.ui.editButton;

      // Since this.ui.tools does not exist while testing.
      if (this.ui.tools) {
        this.ui.tools.hoverIntent(function () {
          editButton.addClass('elementor-active');
        }, function () {
          editButton.removeClass('elementor-active');
        }, {
          timeout: 500
        });
      }
    }

    // Defer to wait for all of the children to render.
    setTimeout(function () {
      _this8.initDraggable();
      _this8.dispatchElementLifeCycleEvent('rendered');
      elementorFrontend.elements.$window.on('elementor/elements/link-data-bindings', _this8.linkDataBindings.bind(_this8));
    });
  },
  dispatchElementLifeCycleEvent: function dispatchElementLifeCycleEvent(eventType) {
    var event;

    // Event name set like this for maintainability.
    switch (eventType) {
      case 'rendered':
        event = 'elementor/editor/element-rendered';
        break;
      case 'destroyed':
        event = 'elementor/editor/element-destroyed';
        break;
    }
    var renderedEvent = new CustomEvent(event, {
      detail: {
        elementView: this
      }
    });
    elementor.$preview[0].contentWindow.dispatchEvent(renderedEvent);
    window.top.dispatchEvent(renderedEvent);
  },
  onEditSettingsChanged: function onEditSettingsChanged(changedModel) {
    elementor.channels.editor.trigger('change:editSettings', changedModel, this);
  },
  onEditButtonClick: function onEditButtonClick(event) {
    this.model.trigger('request:edit', {
      append: event.ctrlKey || event.metaKey
    });
  },
  onEditRequest: function onEditRequest() {
    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    if (!this.container.isEditable()) {
      return;
    }
    var model = this.getEditModel(),
      panel = elementor.getPanelView();
    if ($e.routes.isPartOf('panel/editor') && panel.getCurrentPageView().model === model) {
      return;
    }
    if (options.scrollIntoView) {
      elementor.helpers.scrollToView(this.getDomElement(), 200);
    }
    $e.run('document/elements/toggle-selection', {
      container: this.getContainer(),
      append: options.append
    });
  },
  /**
   * Select current element.
   */
  select: function select() {
    this.$el.addClass('elementor-element-editable');
  },
  /**
   * Deselect current element.
   */
  deselect: function deselect() {
    this.$el.removeClass('elementor-element-editable');
  },
  onDuplicateButtonClick: function onDuplicateButtonClick(event) {
    event.stopPropagation();
    $e.run('document/elements/duplicate', {
      container: this.getContainer()
    });
  },
  onRemoveButtonClick: function onRemoveButtonClick(event) {
    event.stopPropagation();
    this.handleAnchorClick(event);
    $e.run('document/elements/delete', {
      container: this.getContainer(),
      callerName: 'remove_button'
    });
  },
  handleAnchorClick: function handleAnchorClick(event) {
    var _this$model;
    var anchor = event.target.closest('a');
    var hash = (anchor === null || anchor === void 0 ? void 0 : anchor.getAttribute('href')) || ((_this$model = this.model) === null || _this$model === void 0 || (_this$model = _this$model.get('settings')) === null || _this$model === void 0 || (_this$model = _this$model.get('link')) === null || _this$model === void 0 ? void 0 : _this$model.url) || '';
    if (hash && hash.startsWith('#') && !hash.includes('elementor-action')) {
      var _event$target;
      var scrollTargetElem = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.ownerDocument.querySelector(hash);
      if (scrollTargetElem) {
        scrollTargetElem.scrollIntoView();
      }
    }
    if (elementor.helpers.isElementAtomic(this.getContainer().id)) {
      event.preventDefault();
    }
  },
  /* jQuery ui sortable preventing any `mousedown` event above any element, and as a result is preventing the `blur`
   * event on the currently active element. Therefor, we need to blur the active element manually.
   */
  onMouseDown: function onMouseDown(event) {
    if (jQuery(event.target).closest('.elementor-inline-editing').length) {
      return;
    }
    elementorFrontend.elements.window.document.activeElement.blur();
  },
  onDestroy: function onDestroy() {
    var _this9 = this;
    if (this.dataBindings) {
      delete this.dataBindings;
    }
    this.controlsCSSParser.removeStyleFromDocument();
    this.getEditModel().get('settings').validators = {};
    elementor.channels.data.trigger('element:destroy', this.model);

    // Defer so the event is fired after the element is removed from the DOM.
    setTimeout(function () {
      return _this9.dispatchElementLifeCycleEvent('destroyed');
    });
  },
  // eslint-disable-next-line jsdoc/require-returns-check
  /**
   * On `$el` drag start event.
   * Used inside `Draggable` and can be overridden by the extending views.
   */
  onDragStart: function onDragStart() {
    // TODO: Override if needed.
  },
  /**
   * On `$el` drag end event.
   * Used inside `Draggable` and can be overridden by the extending views.
   */
  onDragEnd: function onDragEnd() {
    // TODO: Override if needed.
  },
  /**
   * Create a drag helper element.
   * Copied from `behaviors/sortable.js` with some refactor.
   *
   * @return {HTMLDivElement} helper
   */
  getDraggableHelper: function getDraggableHelper() {
    var model = this.getEditModel();
    var helper = document.createElement('div');
    helper.classList.add('elementor-sortable-helper', "elementor-sortable-helper-".concat(model.get('elType')));
    helper.innerHTML = "\n\t\t\t<div class=\"icon\">\n\t\t\t\t<i class=\"".concat(model.getIcon(), "\"></i>\n\t\t\t</div>\n\t\t\t<div class=\"title-wrapper\">\n\t\t\t\t<div class=\"title\">").concat(model.getTitle(), "</div>\n\t\t\t</div>\n\t\t");
    return helper;
  },
  getDomElement: function getDomElement() {
    return this.$el;
  },
  /**
   * Initialize the Droppable instance.
   */
  initDraggable: function initDraggable() {
    var _this0 = this;
    if (!elementor.userCan('design')) {
      return;
    }

    // Init the draggable only for Containers and their children.
    if (!this.$el.hasClass('.e-con') && !this.$el.parents('.e-con').length) {
      return;
    }
    if (!this.getContainer().isEditable()) {
      return;
    }
    this.getDomElement().html5Draggable({
      onDragStart: function onDragStart(e) {
        var _this0$options$dragga;
        e.stopPropagation();
        if (_this0.getContainer().isLocked()) {
          e.originalEvent.preventDefault();
          return;
        }

        // Need to stop this event when the element is absolute since it clashes with this one.
        // See `behaviors/widget-draggable.js`.
        if ((_this0$options$dragga = _this0.options.draggable) !== null && _this0$options$dragga !== void 0 && _this0$options$dragga.isActive) {
          return;
        }
        var helper = _this0.getDraggableHelper();
        _this0.$el[0].appendChild(helper);

        // Set the x & y coordinates of the helper the same as the legacy jQuery sortable.
        e.originalEvent.dataTransfer.setDragImage(helper, 25, 20);

        // Remove the helper element as soon as it's set as a drag image, since the element must be
        // rendered for at least a fraction of a second in order to set it as a drag image.
        setTimeout(function () {
          helper.remove();
        });
        _this0.onDragStart(e);
        elementor.channels.editor.reply('element:dragged', _this0);
      },
      onDragEnd: function onDragEnd(e) {
        e.stopPropagation();
        _this0.onDragEnd(e);
      },
      groups: ['elementor-element']
    });
  },
  getDataFromCacheOrBackend: function getDataFromCacheOrBackend(valueToParse, dynamicSettings) {
    return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4() {
      var _t2;
      return _regenerator.default.wrap(function (_context4) {
        while (1) switch (_context4.prev = _context4.next) {
          case 0:
            _context4.prev = 0;
            return _context4.abrupt("return", elementor.dynamicTags.parseTagsText(valueToParse, dynamicSettings, elementor.dynamicTags.getTagDataContent));
          case 1:
            _context4.prev = 1;
            _t2 = _context4["catch"](0);
            _context4.next = 2;
            return new Promise(function (resolve) {
              elementor.dynamicTags.refreshCacheFromServer(function () {
                resolve();
              });
            });
          case 2:
            return _context4.abrupt("return", !_.isEmpty(elementor.dynamicTags.cache) ? elementor.dynamicTags.parseTagsText(valueToParse, dynamicSettings, elementor.dynamicTags.getTagDataContent) : false);
          case 3:
          case "end":
            return _context4.stop();
        }
      }, _callee4, null, [[0, 1]]);
    }))();
  },
  getChangedDynamicControlKey: function getChangedDynamicControlKey(settings) {
    var _settings$changed, _settings$_previousAt;
    var changedControlKey = this.findUniqueKey(settings === null || settings === void 0 || (_settings$changed = settings.changed) === null || _settings$changed === void 0 ? void 0 : _settings$changed.__dynamic__, settings === null || settings === void 0 || (_settings$_previousAt = settings._previousAttributes) === null || _settings$_previousAt === void 0 ? void 0 : _settings$_previousAt.__dynamic__)[0];
    if (changedControlKey) {
      return changedControlKey;
    }
    return Object.keys(settings.changed)[0] !== '__dynamic__' ? Object.keys(settings.changed)[0] : Object.keys(settings.changed.__dynamic__)[0];
  },
  getChangedDataForRemovedItem: function getChangedDataForRemovedItem(settings, changedControlKey, bindingSetting) {
    var _settings$attributes, _settings$attributes2;
    return ((_settings$attributes = settings.attributes) === null || _settings$attributes === void 0 || (_settings$attributes = _settings$attributes[changedControlKey]) === null || _settings$attributes === void 0 ? void 0 : _settings$attributes[bindingSetting]) || ((_settings$attributes2 = settings.attributes) === null || _settings$attributes2 === void 0 ? void 0 : _settings$attributes2[changedControlKey]);
  },
  getChangedDataForAddedItem: function getChangedDataForAddedItem(settings, changedControlKey, bindingSetting) {
    var _settings$attributes3, _settings$attributes4;
    return ((_settings$attributes3 = settings.attributes) === null || _settings$attributes3 === void 0 || (_settings$attributes3 = _settings$attributes3.__dynamic__) === null || _settings$attributes3 === void 0 || (_settings$attributes3 = _settings$attributes3[changedControlKey]) === null || _settings$attributes3 === void 0 ? void 0 : _settings$attributes3[bindingSetting]) || ((_settings$attributes4 = settings.attributes) === null || _settings$attributes4 === void 0 || (_settings$attributes4 = _settings$attributes4.__dynamic__) === null || _settings$attributes4 === void 0 ? void 0 : _settings$attributes4[changedControlKey]);
  },
  getChangedData: function getChangedData(settings, changedControlKey, bindingSetting) {
    var changedDataForRemovedItem = this.getChangedDataForRemovedItem(settings, changedControlKey, bindingSetting),
      changedDataForAddedItem = this.getChangedDataForAddedItem(settings, changedControlKey, bindingSetting);
    return changedDataForAddedItem || changedDataForRemovedItem;
  },
  /**
   * Function getTitleWithAdvancedValues().
   *
   * Renders before / after / fallback for dynamic item titles.
   *
   * @param {Object} settings
   * @param {string} text
   */
  getTitleWithAdvancedValues: function getTitleWithAdvancedValues(settings, text) {
    var attributes = settings.attributes,
      previousAttributes = settings._previousAttributes;
    if (this.compareSettings(attributes, previousAttributes, 'fallback')) {
      text = text.replace(new RegExp(previousAttributes.fallback), '');
    }
    if (!text || attributes.fallback === text) {
      return attributes.fallback || '';
    }
    if (this.compareSettings(attributes, previousAttributes, 'before')) {
      text = text.replace(previousAttributes.before, '');
    }
    if (this.compareSettings(attributes, previousAttributes, 'after')) {
      text = text.replace(new RegExp(previousAttributes.after + '$'), '');
    }
    if (!text) {
      return attributes.fallback || '';
    }
    var newBefore = this.getNewSettingsValue(attributes, previousAttributes, 'before'),
      newAfter = this.getNewSettingsValue(attributes, previousAttributes, 'after');
    text = newBefore + text;
    text += newAfter;
    return text;
  },
  compareSettings: function compareSettings(attributes, previousAttributes, key) {
    return previousAttributes[key] && previousAttributes[key] !== attributes[key];
  },
  getNewSettingsValue: function getNewSettingsValue(attributes, previousAttributes, key) {
    return previousAttributes[key] !== attributes[key] ? attributes[key] || '' : '';
  },
  getRepeaterItemActiveIndex: function getRepeaterItemActiveIndex() {
    return this.getContainer().renderer.view.model.changed.editSettings.changed.activeItemIndex || this.getContainer().renderer.view.model.changed.editSettings.attributes.activeItemIndex;
  },
  tryHandleDynamicCoverSettings: function tryHandleDynamicCoverSettings(dataBinding, settings) {
    if (!this.isAdvancedDynamicSettings(settings.attributes)) {
      return false;
    }
    this.isRendering = true;
    dataBinding.el.textContent = this.getTitleWithAdvancedValues(settings, dataBinding.el.textContent);
    return true;
  },
  isAdvancedDynamicSettings: function isAdvancedDynamicSettings(attributes) {
    return 'before' in attributes && 'after' in attributes && 'fallback' in attributes;
  }
});
module.exports = BaseElementView;

/***/ }),

/***/ "../assets/dev/js/editor/elements/views/behaviors/column-resizable.js":
/*!****************************************************************************!*\
  !*** ../assets/dev/js/editor/elements/views/behaviors/column-resizable.js ***!
  \****************************************************************************/
/***/ ((module) => {

"use strict";


var ResizableBehavior;
ResizableBehavior = Marionette.Behavior.extend({
  defaults: {
    handles: elementorCommon.config.isRTL ? 'w' : 'e'
  },
  events: {
    resizestart: 'onResizeStart',
    resizestop: 'onResizeStop',
    resize: 'onResize'
  },
  initialize: function initialize() {
    Marionette.Behavior.prototype.initialize.apply(this, arguments);
    this.listenTo(elementor.channels.dataEditMode, 'switch', this.onEditModeSwitched);
  },
  active: function active() {
    if (!elementor.userCan('design')) {
      return;
    }
    this.deactivate();
    var options = _.clone(this.options);
    delete options.behaviorClass;
    var $childViewContainer = this.getChildViewContainer(),
      defaultResizableOptions = {},
      resizableOptions = _.extend(defaultResizableOptions, options);
    $childViewContainer.resizable(resizableOptions);
  },
  deactivate: function deactivate() {
    if (this.getChildViewContainer().resizable('instance')) {
      this.getChildViewContainer().resizable('destroy');
    }
  },
  onEditModeSwitched: function onEditModeSwitched(activeMode) {
    if ('edit' === activeMode) {
      this.active();
    } else {
      this.deactivate();
    }
  },
  onRender: function onRender() {
    var self = this;
    _.defer(function () {
      self.onEditModeSwitched(elementor.channels.dataEditMode.request('activeMode'));
    });
  },
  onDestroy: function onDestroy() {
    this.deactivate();
  },
  onResizeStart: function onResizeStart(event) {
    event.stopPropagation();
    this.view.$el.data('originalWidth', this.view.el.getBoundingClientRect().width);
    this.view.triggerMethod('request:resize:start', event);
  },
  onResizeStop: function onResizeStop(event) {
    event.stopPropagation();
    this.view.triggerMethod('request:resize:stop');
  },
  onResize: function onResize(event, ui) {
    event.stopPropagation();
    this.view.triggerMethod('request:resize', ui, event);
  },
  getChildViewContainer: function getChildViewContainer() {
    return this.$el;
  }
});
module.exports = ResizableBehavior;

/***/ }),

/***/ "../assets/dev/js/editor/elements/views/behaviors/context-menu.js":
/*!************************************************************************!*\
  !*** ../assets/dev/js/editor/elements/views/behaviors/context-menu.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_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");
var _environment = _interopRequireDefault(__webpack_require__(/*! elementor-common/utils/environment */ "../core/common/assets/js/utils/environment.js"));
var _base = _interopRequireDefault(__webpack_require__(/*! elementor-views/add-section/base */ "../assets/dev/js/editor/views/add-section/base.js"));
var ContextMenu = __webpack_require__(/*! elementor-editor-utils/context-menu */ "../assets/dev/js/editor/utils/context-menu.js");
module.exports = Marionette.Behavior.extend({
  defaults: {
    context: 'preview',
    groups: [],
    eventTargets: ['el']
  },
  events: function events() {
    var events = {};
    this.getOption('eventTargets').forEach(function (eventTarget) {
      var eventName = 'contextmenu';
      if ('el' !== eventTarget) {
        eventName += ' ' + eventTarget;
      }
      events[eventName] = 'onContextMenu';
    });
    return events;
  },
  initialize: function initialize() {
    this.listenTo(this.view.options.model, 'request:contextmenu', this.onRequestContextMenu);
  },
  initContextMenu: function initContextMenu() {
    var _this = this;
    var controlSign = _environment.default.mac ? '&#8984;' : '^';
    var contextMenuGroups = this.getOption('groups'),
      deleteGroup = _.findWhere(contextMenuGroups, {
        name: 'delete'
      }),
      afterGroupIndex = contextMenuGroups.indexOf(deleteGroup);
    if (-1 === afterGroupIndex) {
      afterGroupIndex = contextMenuGroups.length;
    }
    if ('preview' === this.getOption('context') && $e.components.get('document/elements').utils.showNavigator()) {
      contextMenuGroups.splice(afterGroupIndex, 0, {
        name: 'tools',
        actions: [{
          name: 'navigator',
          icon: 'eicon-navigator',
          title: __('Structure', 'elementor'),
          shortcut: controlSign + '+I',
          callback: function callback() {
            return $e.route('navigator', {
              reOpen: true,
              model: _this.view.model
            });
          }
        }]
      });
    }
    this.contextMenu = new ContextMenu({
      groups: contextMenuGroups,
      context: this.getOption('context')
    });
    this.contextMenu.getModal().on('hide', function () {
      return _this.onContextMenuHide();
    });
  },
  getContextMenu: function getContextMenu() {
    var _this$view$getContain, _this$view;
    if (!this.contextMenu) {
      this.initContextMenu();
    }
    if ('preview' === this.getOption('context') && !elementor.selection.has((_this$view$getContain = (_this$view = this.view).getContainer) === null || _this$view$getContain === void 0 ? void 0 : _this$view$getContain.call(_this$view))) {
      $e.run('document/elements/deselect-all');
    }
    return this.contextMenu;
  },
  onContextMenu: function onContextMenu(event) {
    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    if ($e.shortcuts.isControlEvent(event)) {
      return;
    }
    if ('preview' === this.getOption('context')) {
      var isAddSectionView = this.view instanceof _base.default;
      if (!isAddSectionView && (!this.view.container || !this.view.container.isDesignable())) {
        return;
      }
    }
    event.preventDefault();
    event.stopPropagation();

    // Disable sortable when context menu opened
    // TODO: Should be in UI hook when the context menu will move to command
    if (this.view._parent) {
      this.view._parent.triggerMethod('toggleSortMode', false);
    }
    var location = options.location || elementorCommon.eventsManager.config.locations.canvas;
    this.getContextMenu().show(event, {
      location: location
    });
    elementor.channels.editor.reply('contextMenu:targetView', this.view);
  },
  onRequestContextMenu: function onRequestContextMenu(event, options) {
    var modal = this.getContextMenu().getModal(),
      iframe = modal.getSettings('iframe'),
      toolsGroup = _.findWhere(this.contextMenu.getSettings('groups'), {
        name: 'tools'
      });
    toolsGroup.isVisible = false;
    modal.setSettings('iframe', null);
    this.onContextMenu(event, options);
    toolsGroup.isVisible = true;
    modal.setSettings('iframe', iframe);
  },
  onContextMenuHide: function onContextMenuHide() {
    // Enable sortable when context menu closed
    // TODO: Should be in UI hook when the context menu will move to command
    if (this.view._parent) {
      this.view._parent.triggerMethod('toggleSortMode', true);
    }
    elementor.channels.editor.reply('contextMenu:targetView', null);
  },
  onDestroy: function onDestroy() {
    if (this.contextMenu) {
      this.contextMenu.destroy();
    }
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/elements/views/behaviors/inline-editing.js":
/*!**************************************************************************!*\
  !*** ../assets/dev/js/editor/elements/views/behaviors/inline-editing.js ***!
  \**************************************************************************/
/***/ ((module, __unused_webpack_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");
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var InlineEditingBehavior;
InlineEditingBehavior = Marionette.Behavior.extend({
  editing: false,
  $currentEditingArea: null,
  ui: function ui() {
    return {
      inlineEditingArea: '.' + this.getOption('inlineEditingClass')
    };
  },
  events: function events() {
    return {
      'click @ui.inlineEditingArea': 'onInlineEditingClick',
      'input @ui.inlineEditingArea': 'onInlineEditingUpdate'
    };
  },
  initialize: function initialize() {
    this.onInlineEditingBlur = this.onInlineEditingBlur.bind(this);
  },
  getEditingSettingKey: function getEditingSettingKey() {
    return this.$currentEditingArea.data().elementorSettingKey;
  },
  startEditing: function startEditing($element) {
    if (this.editing || !this.view.container.isEditable() || this.view.model.isRemoteRequestActive()) {
      return;
    }
    var elementorSettingKey = $element.data().elementorSettingKey,
      settingKey = elementorSettingKey,
      keyParts = elementorSettingKey.split('.'),
      isRepeaterKey = 3 === keyParts.length,
      settingsModel = this.view.getEditModel().get('settings');
    if (isRepeaterKey) {
      settingsModel = settingsModel.get(keyParts[0]).models[keyParts[1]];
      settingKey = keyParts[2];
    }
    var dynamicSettings = settingsModel.get('__dynamic__'),
      isDynamic = dynamicSettings && dynamicSettings[settingKey];
    if (isDynamic) {
      return;
    }
    this.$currentEditingArea = $element;
    var elementData = this.$currentEditingArea.data(),
      elementDataToolbar = elementData.elementorInlineEditingToolbar,
      mode = 'advanced' === elementDataToolbar ? 'advanced' : 'basic',
      editModel = this.view.getEditModel(),
      inlineEditingConfig = elementor.config.inlineEditing,
      contentHTML = editModel.getSetting(this.getEditingSettingKey());
    if ('advanced' === mode) {
      contentHTML = wp.editor.autop(contentHTML);
    }

    /**
     *  Replace rendered content with unrendered content.
     *  This way the user can edit the original content, before shortcodes and oEmbeds are fired.
     */
    this.$currentEditingArea.html(contentHTML);
    var ElementorInlineEditor = elementorFrontend.elements.window.ElementorInlineEditor;
    this.editing = true;
    this.view.allowRender = false;

    // Avoid retrieving of old content (e.g. in case of sorting)
    this.view.model.setHtmlCache('');
    this.editor = new ElementorInlineEditor({
      linksInNewWindow: true,
      stay: false,
      editor: this.$currentEditingArea[0],
      mode: mode,
      list: 'none' === elementDataToolbar ? [] : inlineEditingConfig.toolbar[elementDataToolbar || 'basic'],
      cleanAttrs: ['id', 'class', 'name'],
      placeholder: __('Type Here', 'elementor') + '...',
      toolbarIconsPrefix: 'eicon-editor-',
      toolbarIconsDictionary: {
        externalLink: {
          className: 'eicon-editor-external-link'
        },
        list: {
          className: 'eicon-editor-list-ul'
        },
        insertOrderedList: {
          className: 'eicon-editor-list-ol'
        },
        insertUnorderedList: {
          className: 'eicon-editor-list-ul'
        },
        createlink: {
          className: 'eicon-editor-link'
        },
        unlink: {
          className: 'eicon-editor-unlink'
        },
        blockquote: {
          className: 'eicon-editor-quote'
        },
        p: {
          className: 'eicon-editor-paragraph'
        },
        pre: {
          className: 'eicon-editor-code'
        }
      }
    });
    var $menuItems = jQuery(this.editor._menu).children();

    /**
     * When the edit area is not focused (on blur) the inline editing is stopped.
     * In order to prevent blur event when the user clicks on toolbar buttons while editing the
     * content, we need the prevent their mousedown event. This also prevents the blur event.
     */
    $menuItems.on('mousedown', function (event) {
      event.preventDefault();
    });
    this.$currentEditingArea.on('blur', this.onInlineEditingBlur);
    elementorCommon.elements.$body.on('mousedown', this.onInlineEditingBlur);
  },
  stopEditing: function stopEditing() {
    this.editing = false;
    this.$currentEditingArea.off('blur', this.onInlineEditingBlur);
    elementorCommon.elements.$body.off('mousedown', this.onInlineEditingBlur);
    this.editor.destroy();
    this.view.allowRender = true;

    /**
     * Inline editing has several toolbar types (advanced, basic and none). When editing is stopped,
     * we need to rerender the area. To prevent multiple renderings, we will render only areas that
     * use advanced toolbars.
     */
    if ('advanced' === this.$currentEditingArea.data().elementorInlineEditingToolbar) {
      this.view.getEditModel().renderRemoteServer();
    }
  },
  onInlineEditingClick: function onInlineEditingClick(event) {
    var self = this,
      $targetElement = jQuery(event.currentTarget);

    /**
     * When starting inline editing we need to set timeout, this allows other inline items to finish
     * their operations before focusing new editing area.
     */
    setTimeout(function () {
      self.startEditing($targetElement);
    }, 30);
  },
  onInlineEditingBlur: function onInlineEditingBlur(event) {
    var _this = this;
    if ('mousedown' === event.type) {
      this.stopEditing();
      return;
    }

    /**
     * When exiting inline editing we need to set timeout, to make sure there is no focus on internal
     * toolbar action. This prevent the blur and allows the user to continue the inline editing.
     */
    setTimeout(function () {
      var selection = elementorFrontend.elements.window.getSelection(),
        $focusNode = jQuery(selection.focusNode);
      if ($focusNode.closest('.pen-input-wrapper').length) {
        return;
      }
      _this.stopEditing();
    }, 20);
  },
  onInlineEditingUpdate: function onInlineEditingUpdate() {
    var key = this.getEditingSettingKey(),
      container = this.view.getContainer();
    var parts = key.split('.');
    var isRepeaterKey = 3 === parts.length;
    if (isRepeaterKey) {
      var repeaterId = parts[0];
      var repeater = container.repeaters[repeaterId];
      var repeaterChildIndex = parts[1];
      container = repeater.children[repeaterChildIndex];
      var fieldToUpdate = parts[2];
      key = fieldToUpdate;
    }
    $e.run('document/elements/settings', {
      container: container,
      settings: (0, _defineProperty2.default)({}, key, this.editor.getContent()),
      options: {
        external: true
      }
    });
  }
});
module.exports = InlineEditingBehavior;

/***/ }),

/***/ "../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/elements/views/behaviors/sortable.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/elements/views/behaviors/sortable.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var SortableBehavior;

/**
 * @typedef {import('../../../container/container')} Container
 */
SortableBehavior = Marionette.Behavior.extend({
  defaults: {
    elChildType: 'widget'
  },
  events: {
    sortstart: 'onSortStart',
    sortreceive: 'onSortReceive',
    sortupdate: 'onSortUpdate',
    sortover: 'onSortOver',
    sortout: 'onSortOut'
  },
  initialize: function initialize() {
    this.listenTo(elementor.channels.dataEditMode, 'switch', this.onEditModeSwitched).listenTo(this.view.options.model, 'request:sort:start', this.startSort).listenTo(this.view.options.model, 'request:sort:update', this.updateSort).listenTo(this.view.options.model, 'request:sort:receive', this.receiveSort);
  },
  onEditModeSwitched: function onEditModeSwitched(activeMode) {
    this.onToggleSortMode('edit' === activeMode);
  },
  refresh: function refresh() {
    this.onEditModeSwitched(elementor.channels.dataEditMode.request('activeMode'));
  },
  onRender: function onRender() {
    var _this = this;
    this.view.collection.on('update', function () {
      return _this.refresh();
    });
    _.defer(function () {
      return _this.refresh();
    });
  },
  onDestroy: function onDestroy() {
    this.deactivate();
  },
  /**
   * Create an item placeholder in order to avoid UI jumps due to flex.
   *
   * @param {Object}  $element  - jQuery element instance to create placeholder for.
   * @param {string}  className - Placeholder class.
   * @param {boolean} hide      - Whether to hide the original element.
   *
   * @return {void}
   */
  createPlaceholder: function createPlaceholder($element) {
    var className = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
    var hide = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
    // Get the actual item size.
    $element.css('display', '');
    var _$element$ = $element[0],
      width = _$element$.clientWidth,
      height = _$element$.clientHeight;
    if (hide) {
      $element.css('display', 'none');
    }
    jQuery('<div />').css(_objectSpread(_objectSpread({}, $element.css(['flex-basis', 'flex-grow', 'flex-shrink', 'position'])), {}, {
      width: width,
      height: height
    })).addClass(className).insertAfter($element);
  },
  /**
   * Return a settings object for jQuery UI sortable to make it swappable.
   *
   * @return {{stop: Function, start: Function}} options
   */
  getSwappableOptions: function getSwappableOptions() {
    var _this2 = this;
    var $childViewContainer = this.getChildViewContainer(),
      placeholderClass = 'e-swappable--item-placeholder';
    return {
      start: function start(event, ui) {
        $childViewContainer.sortable('refreshPositions');

        // TODO: Find a better solution than this hack.
        // Used in order to prevent dragging a container into itself.
        _this2.createPlaceholder(ui.item, placeholderClass);
      },
      stop: function stop() {
        // Cleanup.
        $childViewContainer.find(".".concat(placeholderClass)).remove();
      }
    };
  },
  onToggleSortMode: function onToggleSortMode(isActive) {
    if (isActive) {
      this.activate();
    } else {
      this.deactivate();
    }
  },
  applySortable: function applySortable() {
    if (!elementor.userCan('design')) {
      return;
    }
    var $childViewContainer = this.getChildViewContainer(),
      defaultSortableOptions = {
        placeholder: 'elementor-sortable-placeholder elementor-' + this.getOption('elChildType') + '-placeholder',
        cursorAt: {
          top: 20,
          left: 25
        },
        helper: this._getSortableHelper.bind(this),
        cancel: 'input, textarea, button, select, option, .elementor-inline-editing, .elementor-tab-title',
        // Fix: Sortable - Unable to drag and drop sections with huge height.
        start: function start() {
          $childViewContainer.sortable('refreshPositions');
        }
      };
    var sortableOptions = _.extend(defaultSortableOptions, this.view.getSortableOptions());

    // Add a swappable behavior (used for flex containers).
    if (this.isSwappable()) {
      $childViewContainer.addClass('e-swappable');
      sortableOptions = _.extend(sortableOptions, this.getSwappableOptions());
    }

    // TODO: Temporary hack for Container.
    //  Will be removed in the future when the Navigator will use React.
    if (sortableOptions.preventInit) {
      return;
    }
    $childViewContainer.sortable(sortableOptions);
  },
  /**
   * Enable sorting for this element, and generate sortable instance for it unless already generated.
   */
  activate: function activate() {
    if (!this.getChildViewContainer().sortable('instance')) {
      // Generate sortable instance for this element. Since fresh instances of sortable already allowing sorting,
      // we can return.
      this.applySortable();
      return;
    }
    this.getChildViewContainer().sortable('enable');
  },
  _getSortableHelper: function _getSortableHelper(event, $item) {
    var model = this.view.collection.get({
      cid: $item.data('model-cid')
    });
    return '<div style="height: 84px; width: 125px;" class="elementor-sortable-helper elementor-sortable-helper-' + model.get('elType') + '"><div class="icon"><i class="' + model.getIcon() + '"></i></div><div class="title-wrapper"><div class="title">' + model.getTitle() + '</div></div></div>';
  },
  getChildViewContainer: function getChildViewContainer() {
    return this.view.getChildViewContainer(this.view);
  },
  // The natural widget index in the column is wrong, since there are other elements
  // at the beginning of the column (background-overlay, element-overlay, resizeable-handle)
  getSortedElementNewIndex: function getSortedElementNewIndex($element) {
    var widgets = Object.values($element.parent().find('> .elementor-element'));
    return widgets.indexOf($element[0]);
  },
  /**
   * Disable sorting of the element unless no sortable instance exists, in which case there is already no option to
   * sort.
   */
  deactivate: function deactivate() {
    var childViewContainer = this.getChildViewContainer();
    if (childViewContainer.sortable('instance')) {
      childViewContainer.sortable('disable');
    }
  },
  /**
   * Determine if the current instance of Sortable is swappable.
   *
   * @return {boolean} is swappable
   */
  isSwappable: function isSwappable() {
    return !!this.view.getSortableOptions().swappable;
  },
  startSort: function startSort(event, ui) {
    event.stopPropagation();
    var container = elementor.getContainer(ui.item.attr('data-id'));
    elementor.channels.data.reply('dragging:model', container.model).reply('dragging:view', container.view).reply('dragging:parent:view', this.view).trigger('drag:start', container.model).trigger(container.model.get('elType') + ':drag:start');
  },
  // On sorting element
  updateSort: function updateSort(ui, newIndex) {
    if (undefined === newIndex) {
      newIndex = ui.item.index();
    }
    var child = elementor.channels.data.request('dragging:view').getContainer();
    var result = this.moveChild(child, newIndex);
    if (!result) {
      jQuery(ui.sender).sortable('cancel');
    }
  },
  // On receiving element from another container
  receiveSort: function receiveSort(event, ui, newIndex) {
    event.stopPropagation();
    if (this.view.isCollectionFilled()) {
      jQuery(ui.sender).sortable('cancel');
      return;
    }
    var model = elementor.channels.data.request('dragging:model'),
      draggedElType = model.get('elType'),
      draggedIsInnerSection = 'section' === draggedElType && model.get('isInner'),
      targetIsInnerColumn = 'column' === this.view.getElementType() && this.view.isInner();
    if (draggedIsInnerSection && targetIsInnerColumn) {
      jQuery(ui.sender).sortable('cancel');
      return;
    }
    if (undefined === newIndex) {
      newIndex = ui.item.index();
    }
    var child = elementor.channels.data.request('dragging:view').getContainer();
    var result = this.moveChild(child, newIndex);
    if (!result) {
      jQuery(ui.sender).sortable('cancel');
    }
  },
  onSortStart: function onSortStart(event, ui) {
    if ('column' === this.options.elChildType) {
      var uiData = ui.item.data('sortableItem'),
        uiItems = uiData.items,
        itemHeight = 0;
      uiItems.forEach(function (item) {
        if (item.item[0] === ui.item[0]) {
          itemHeight = item.height;
          return false;
        }
      });
      ui.placeholder.height(itemHeight);
    }
    this.startSort(event, ui);
  },
  onSortOver: function onSortOver(event) {
    event.stopPropagation();
    var model = elementor.channels.data.request('dragging:model');
    jQuery(event.target).addClass('elementor-draggable-over').attr({
      'data-dragged-element': model.get('elType'),
      'data-dragged-is-inner': model.get('isInner')
    });
    this.$el.addClass('elementor-dragging-on-child');
  },
  onSortOut: function onSortOut(event) {
    event.stopPropagation();
    jQuery(event.target).removeClass('elementor-draggable-over').removeAttr('data-dragged-element data-dragged-is-inner');
    this.$el.removeClass('elementor-dragging-on-child');
  },
  onSortReceive: function onSortReceive(event, ui) {
    this.receiveSort(event, ui, this.getSortedElementNewIndex(ui.item));
  },
  onSortUpdate: function onSortUpdate(event, ui) {
    event.stopPropagation();
    if (this.getChildViewContainer()[0] !== ui.item.parent()[0]) {
      return;
    }
    this.updateSort(ui, this.getSortedElementNewIndex(ui.item));
  },
  onAddChild: function onAddChild(view) {
    view.$el.attr('data-model-cid', view.model.cid);
  },
  /**
   * Move a child container to another position.
   *
   * @param {Container}     child - The child container to move.
   * @param {number|string} index - New index.
   *
   * @return {Container|boolean}
   */
  moveChild: function moveChild(child, index) {
    return $e.run('document/elements/move', {
      container: child,
      target: this.view.getContainer(),
      options: {
        at: index
      }
    });
  }
});
module.exports = SortableBehavior;

/***/ }),

/***/ "../assets/dev/js/editor/elements/views/behaviors/widget-draggable.js":
/*!****************************************************************************!*\
  !*** ../assets/dev/js/editor/elements/views/behaviors/widget-draggable.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var _default = exports["default"] = /*#__PURE__*/function (_Marionette$Behavior) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _Marionette$Behavior);
  return (0, _createClass2.default)(_default, [{
    key: "events",
    value: function events() {
      return {
        dragstart: 'onDragStart',
        dragstop: 'onDragStop'
      };
    }
  }, {
    key: "initialize",
    value: function initialize() {
      _superPropGet(_default, "initialize", this, 3)([]);
      this.listenTo(elementor.channels.dataEditMode, 'switch', this.toggle);

      // Save this instance for external use eg: ( hooks ).
      this.view.options.draggable = this;
      this.isActive = false;
    }
  }, {
    key: "activate",
    value: function activate() {
      this.isActive = true;
      this.$el.draggable({
        addClasses: false
      });
    }
  }, {
    key: "deactivate",
    value: function deactivate() {
      if (!this.$el.draggable('instance')) {
        return;
      }
      this.isActive = false;
      this.$el.draggable('destroy');
    }
  }, {
    key: "toggle",
    value: function toggle() {
      var isAbsolute = this.view.getEditModel().getSetting('_position');
      this.deactivate();
      if (isAbsolute && this.view.getContainer().isDesignable()) {
        this.activate();
      }
    }
  }, {
    key: "onRender",
    value: function onRender() {
      var _this = this;
      _.defer(function () {
        return _this.toggle();
      });
    }
  }, {
    key: "onDestroy",
    value: function onDestroy() {
      this.deactivate();
    }
  }, {
    key: "onDragStart",
    value: function onDragStart(event) {
      event.stopPropagation();
      this.view.model.trigger('request:edit');
    }
  }, {
    key: "onDragStop",
    value: function onDragStop(event, ui) {
      var _this2 = this;
      event.stopPropagation();
      var currentDeviceMode = elementorFrontend.getCurrentDeviceMode(),
        deviceSuffix = 'desktop' === currentDeviceMode ? '' : '_' + currentDeviceMode,
        editModel = this.view.getEditModel(),
        hOrientation = editModel.getSetting('_offset_orientation_h'),
        vOrientation = editModel.getSetting('_offset_orientation_v'),
        settingToChange = {},
        isRTL = elementorFrontend.config.is_rtl;
      var parentWidth = this.$el.offsetParent().width(),
        elementWidth = this.$el.outerWidth(true),
        left = ui.position.left,
        right = parentWidth - left - elementWidth;
      var xPos = isRTL ? right : left,
        yPos = ui.position.top,
        offsetX = '_offset_x',
        offsetY = '_offset_y';
      if ('end' === hOrientation) {
        xPos = parentWidth - xPos - elementWidth;
        offsetX = '_offset_x_end';
      }
      var offsetXUnit = editModel.getSetting(offsetX + deviceSuffix).unit;
      xPos = elementor.helpers.elementSizeToUnit(this.$el, xPos, offsetXUnit);
      var parentHeight = this.$el.offsetParent().height(),
        elementHeight = this.$el.outerHeight(true);
      if ('end' === vOrientation) {
        yPos = parentHeight - yPos - elementHeight;
        offsetY = '_offset_y_end';
      }
      var offsetYUnit = editModel.getSetting(offsetY + deviceSuffix).unit;
      yPos = elementor.helpers.elementSizeToUnit(this.$el, yPos, offsetYUnit);
      settingToChange[offsetX + deviceSuffix] = {
        size: xPos,
        unit: offsetXUnit
      };
      settingToChange[offsetY + deviceSuffix] = {
        size: yPos,
        unit: offsetYUnit
      };
      $e.run('document/elements/settings', {
        container: this.view.container,
        settings: settingToChange,
        options: {
          external: true
        }
      });
      setTimeout(function () {
        _this2.$el.css({
          top: '',
          left: '',
          right: '',
          bottom: '',
          width: '',
          height: ''
        });
      }, 250);
    }
  }]);
}(Marionette.Behavior);

/***/ }),

/***/ "../assets/dev/js/editor/elements/views/behaviors/widget-resizeable.js":
/*!*****************************************************************************!*\
  !*** ../assets/dev/js/editor/elements/views/behaviors/widget-resizeable.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 _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 _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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var _default = exports["default"] = /*#__PURE__*/function (_Marionette$Behavior) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _Marionette$Behavior);
  return (0, _createClass2.default)(_default, [{
    key: "events",
    value: function events() {
      return {
        resizestart: 'onResizeStart',
        resizestop: 'onResizeStop',
        resize: 'onResize'
      };
    }
  }, {
    key: "initialize",
    value: function initialize() {
      _superPropGet(_default, "initialize", this, 3)([]);
      this.listenTo(elementor.channels.dataEditMode, 'switch', this.toggle);

      // Save this instance for external use eg: ( hooks ).
      this.view.options.resizeable = this;
    }

    /**
     * Get the resizable options object.
     *
     * @return {Object} options object
     */
  }, {
    key: "getOptions",
    value: function getOptions() {
      // jQuery UI handles are using Cardinal Directions (n, e, s, w, etc.).
      var handles = 'e, w';

      // If it's a container item, add resize handles only at the end of the element in order to prevent UI
      // glitches when resizing from start.
      if (this.isContainerItem()) {
        handles = elementorCommon.config.isRTL ? 'w' : 'e';
      }
      return {
        handles: handles
      };
    }
  }, {
    key: "activate",
    value: function activate() {
      this.$el.resizable(this.getOptions());
    }
  }, {
    key: "deactivate",
    value: function deactivate() {
      if (!this.$el.resizable('instance')) {
        return;
      }
      this.$el.resizable('destroy');
    }
  }, {
    key: "toggle",
    value: function toggle() {
      this.deactivate();
      if (this.view.container.isDesignable() && !this.view.container.isGridContainer()) {
        this.activate();
      }
    }

    /**
     * Determine if the current element is a Container element.
     *
     * @return {boolean} is a container
     */
  }, {
    key: "isContainer",
    value: function isContainer() {
      return 'container' === this.view.model.get('elType');
    }

    /**
     * Determine if the current element is a flex container item.
     *
     * @return {boolean} is a container item
     */
  }, {
    key: "isContainerItem",
    value: function isContainerItem() {
      var _this$view$getContain;
      return 'container' === ((_this$view$getContain = this.view.getContainer().parent) === null || _this$view$getContain === void 0 || (_this$view$getContain = _this$view$getContain.model) === null || _this$view$getContain === void 0 ? void 0 : _this$view$getContain.get('elType'));
    }

    /**
     * Determine if the Container element is active.
     *
     * @return {boolean} is container active
     */
  }, {
    key: "isContainerActive",
    value: function isContainerActive() {
      return !!elementorCommon.config.experimentalFeatures.container;
    }

    /**
     * Get the width control ID to change when resizing.
     *
     * @return {string} width key
     */
  }, {
    key: "getWidthKey",
    value: function getWidthKey() {
      return this.isContainer() ? 'width' : '_element_custom_width';
    }

    /**
     * Get a device-suffixed setting.
     *
     * @param {string} setting - Setting name.
     *
     * @return {string} device setting
     */
  }, {
    key: "getDeviceSetting",
    value: function getDeviceSetting(setting) {
      var currentDeviceMode = elementorFrontend.getCurrentDeviceMode(),
        deviceSuffix = 'desktop' === currentDeviceMode ? '' : '_' + currentDeviceMode;
      return setting + deviceSuffix;
    }

    /**
     * Get a setting value from the current edited model.
     *
     * @param {string} setting - Setting name.
     *
     * @return {*} setting
     */
  }, {
    key: "getSetting",
    value: function getSetting(setting) {
      var editModel = this.view.getEditModel();
      return editModel.getSetting(setting);
    }
  }, {
    key: "onRender",
    value: function onRender() {
      var _this = this;
      _.defer(function () {
        return _this.toggle();
      });
    }
  }, {
    key: "onDestroy",
    value: function onDestroy() {
      this.deactivate();
    }
  }, {
    key: "onResizeStart",
    value: function onResizeStart(event) {
      event.stopPropagation();
      if (this.view.onResizeStart) {
        this.view.onResizeStart(event);
      }

      // Don't open edit mode when the item is a Container item ( for UX ).
      if (!this.isContainerItem()) {
        this.view.model.trigger('request:edit');
      }
    }
  }, {
    key: "onResizeStop",
    value: function onResizeStop(event, ui) {
      var _this2 = this;
      event.stopPropagation();
      if (this.view.onResizeStop) {
        this.view.onResizeStop(event, ui);
      }
      var elementWidthSettingKey = this.getDeviceSetting('_element_width'),
        widthSettingKey = this.getDeviceSetting(this.getWidthKey());
      var _this$getSetting = this.getSetting(widthSettingKey),
        unit = _this$getSetting.unit,
        width = elementor.helpers.elementSizeToUnit(this.$el, ui.size.width, unit);
      var settingToChange = _objectSpread(_objectSpread(_objectSpread({}, this.isContainerActive() ? {
        _flex_size: 'none'
      } : {}), this.isContainer() ? {
        content_width: 'full'
      } : {}), {}, (0, _defineProperty2.default)((0, _defineProperty2.default)({}, elementWidthSettingKey, 'initial'), widthSettingKey, {
        unit: unit,
        size: width
      }));
      $e.run('document/elements/settings', {
        container: this.view.container,
        settings: settingToChange,
        options: {
          external: true
        }
      });

      // Defer to wait for the widget to re-render and prevent UI glitches.
      setTimeout(function () {
        _this2.$el.css({
          width: '',
          height: '',
          left: '',
          'flex-shrink': '',
          'flex-grow': '',
          'flex-basis': ''
        });
      });
    }
  }, {
    key: "onResize",
    value: function onResize(event, ui) {
      event.stopPropagation();
      if (this.view.onResize) {
        this.view.onResize(event, ui);
      }
      if (!this.isContainerItem()) {
        return;
      }

      // Set grow & shrink to 0 in order to set a specific size and prevent UI glitches.
      this.$el.css({
        left: '',
        right: '',
        'flex-shrink': 0,
        'flex-grow': 0
      });
    }
  }]);
}(Marionette.Behavior);

/***/ }),

/***/ "../assets/dev/js/editor/elements/views/column-empty.js":
/*!**************************************************************!*\
  !*** ../assets/dev/js/editor/elements/views/column-empty.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


module.exports = Marionette.ItemView.extend({
  template: '#tmpl-elementor-empty-preview',
  className: 'elementor-empty-view',
  events: {
    click: 'onClickAdd'
  },
  behaviors: function behaviors() {
    return {
      contextMenu: {
        behaviorClass: __webpack_require__(/*! elementor-behaviors/context-menu */ "../assets/dev/js/editor/elements/views/behaviors/context-menu.js"),
        groups: this.getContextMenuGroups()
      }
    };
  },
  getContextMenuGroups: function getContextMenuGroups() {
    var _this = this;
    return [{
      name: 'general',
      actions: [{
        name: 'paste',
        title: __('Paste', 'elementor'),
        isEnabled: function isEnabled() {
          return $e.components.get('document/elements').utils.isPasteEnabled(_this._parent.getContainer());
        },
        callback: function callback() {
          return $e.run('document/ui/paste', {
            container: _this._parent.getContainer()
          });
        }
      }]
    }];
  },
  onClickAdd: function onClickAdd() {
    $e.route('panel/elements/categories');
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/elements/views/column.js":
/*!********************************************************!*\
  !*** ../assets/dev/js/editor/elements/views/column.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var _section = __webpack_require__(/*! elementor-elements/views/section */ "../assets/dev/js/editor/elements/views/section.js");
var BaseElementView = __webpack_require__(/*! elementor-elements/views/base */ "../assets/dev/js/editor/elements/views/base.js"),
  ColumnEmptyView = __webpack_require__(/*! elementor-elements/views/column-empty */ "../assets/dev/js/editor/elements/views/column-empty.js"),
  ColumnView;
ColumnView = BaseElementView.extend({
  template: Marionette.TemplateCache.get('#tmpl-elementor-column-content'),
  emptyView: ColumnEmptyView,
  childViewContainer: '> .elementor-widget-wrap',
  toggleEditTools: true,
  behaviors: function behaviors() {
    var behaviors = BaseElementView.prototype.behaviors.apply(this, arguments);
    _.extend(behaviors, {
      Sortable: {
        behaviorClass: __webpack_require__(/*! elementor-behaviors/sortable */ "../assets/dev/js/editor/elements/views/behaviors/sortable.js"),
        elChildType: 'widget'
      },
      Resizable: {
        behaviorClass: __webpack_require__(/*! elementor-behaviors/column-resizable */ "../assets/dev/js/editor/elements/views/behaviors/column-resizable.js")
      }
    });
    return elementor.hooks.applyFilters('elements/column/behaviors', behaviors, this);
  },
  className: function className() {
    var classes = BaseElementView.prototype.className.apply(this, arguments),
      type = this.isInner() ? 'inner' : 'top';
    return classes + ' elementor-column elementor-' + type + '-column';
  },
  tagName: function tagName() {
    return this.model.getSetting('html_tag') || 'div';
  },
  ui: function ui() {
    var ui = BaseElementView.prototype.ui.apply(this, arguments);
    ui.columnInner = '> .elementor-widget-wrap';
    ui.percentsTooltip = '> .elementor-element-overlay .elementor-column-percents-tooltip';
    return ui;
  },
  getEditButtons: function getEditButtons() {
    var elementData = elementor.getElementData(this.model),
      editTools = {};
    editTools.edit = {
      /* Translators: %s: Element name. */
      title: sprintf(__('Edit %s', 'elementor'), elementData.title),
      icon: 'column'
    };
    if (elementor.getPreferences('edit_buttons')) {
      editTools.duplicate = {
        /* Translators: %s: Element name. */
        title: sprintf(__('Duplicate %s', 'elementor'), elementData.title),
        icon: 'clone'
      };
      editTools.add = {
        /* Translators: %s: Element name. */
        title: sprintf(__('Add %s', 'elementor'), elementData.title),
        icon: 'plus'
      };
    }
    return editTools;
  },
  initialize: function initialize() {
    BaseElementView.prototype.initialize.apply(this, arguments);
    this.model.get('editSettings').set('defaultEditRoute', 'layout');
  },
  attachElContent: function attachElContent() {
    BaseElementView.prototype.attachElContent.apply(this, arguments);
    var $tooltip = jQuery('<div>', {
      class: 'elementor-column-percents-tooltip'
    });
    this.$el.children('.elementor-element-overlay').append($tooltip);
  },
  getContextMenuGroups: function getContextMenuGroups() {
    var self = this,
      groups = BaseElementView.prototype.getContextMenuGroups.apply(this, arguments),
      generalGroupIndex = groups.indexOf(_.findWhere(groups, {
        name: 'general'
      }));
    groups.splice(generalGroupIndex + 1, 0, {
      name: 'addNew',
      actions: [{
        name: 'addNew',
        icon: 'eicon-plus',
        title: __('Add New Column', 'elementor'),
        callback: this.addNewColumn.bind(this),
        isEnabled: function isEnabled() {
          return self.model.collection.length < _section.DEFAULT_MAX_COLUMNS && !elementor.selection.isMultiple();
        }
      }]
    });
    return groups;
  },
  isDroppingAllowed: function isDroppingAllowed() {
    // Don't allow dragging items to document which is not editable.
    if (!this.getContainer().isEditable()) {
      return false;
    }
    var elementView = elementor.channels.panelElements.request('element:selected');
    if (!elementView) {
      return false;
    }
    var elType = elementView.model.get('elType');
    if ('container' === elType) {
      return true;
    }
    if ('section' === elType) {
      return !this.isInner();
    }
    return 'widget' === elType;
  },
  getPercentsForDisplay: function getPercentsForDisplay() {
    var inlineSize = +this.model.getSetting('_inline_size') || this.getPercentSize();
    return inlineSize.toFixed(1) + '%';
  },
  changeSizeUI: function changeSizeUI() {
    var self = this,
      columnSize = self.model.getSetting('_column_size');
    self.$el.attr('data-col', columnSize);
    _.defer(function () {
      // Wait for the column size to be applied
      if (self.ui.percentsTooltip) {
        self.ui.percentsTooltip.text(self.getPercentsForDisplay());
      }
    });
  },
  getPercentSize: function getPercentSize(size) {
    if (!size) {
      size = this.el.getBoundingClientRect().width;
    }
    return +(size / this.$el.parent().width() * 100).toFixed(3);
  },
  getSortableOptions: function getSortableOptions() {
    return {
      connectWith: '.elementor-widget-wrap',
      items: '> .elementor-element'
    };
  },
  changeChildContainerClasses: function changeChildContainerClasses() {
    var emptyClass = 'elementor-element-empty',
      populatedClass = 'elementor-element-populated';
    if (this.ui.columnInner) {
      if (this.collection.isEmpty()) {
        this.ui.columnInner.removeClass(populatedClass).addClass(emptyClass);
      } else {
        this.ui.columnInner.removeClass(emptyClass).addClass(populatedClass);
      }
    }
  },
  addNewColumn: function addNewColumn() {
    $e.run('document/elements/create', {
      model: {
        elType: 'column'
      },
      container: this.getContainer().parent,
      options: {
        at: this.$el.index() + 1
      }
    });
  },
  onRender: function onRender() {
    var _this = this;
    var getDropIndex = function getDropIndex(side, event) {
      var newIndex = jQuery(event.currentTarget).index();
      if ('top' === side) {
        newIndex--;
      }
      return newIndex;
    };
    BaseElementView.prototype.onRender.apply(this, arguments);
    this.changeChildContainerClasses();
    this.changeSizeUI();
    this.$el.html5Droppable({
      items: ' > .elementor-widget-wrap > .elementor-element, >.elementor-widget-wrap > .elementor-empty-view > .elementor-first-add',
      axis: ['vertical'],
      groups: ['elementor-element'],
      isDroppingAllowed: this.isDroppingAllowed.bind(this),
      currentElementClass: 'elementor-html5dnd-current-element',
      placeholderClass: 'elementor-sortable-placeholder elementor-widget-placeholder',
      hasDraggingOnChildClass: 'elementor-dragging-on-child',
      onDropping: function onDropping(side, event) {
        // Triggering drag end manually, since it won't fired above iframe
        elementor.getPreviewView().onPanelElementDragEnd();
        _this.onDrop(event, {
          side: side,
          at: getDropIndex(side, event)
        });
      }
    });
  },
  onAddButtonClick: function onAddButtonClick(event) {
    event.stopPropagation();
    this.addNewColumn();
  }
});
module.exports = ColumnView;

/***/ }),

/***/ "../assets/dev/js/editor/elements/views/container.js":
/*!***********************************************************!*\
  !*** ../assets/dev/js/editor/elements/views/container.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
var _inline = _interopRequireDefault(__webpack_require__(/*! elementor-views/add-section/inline */ "../assets/dev/js/editor/views/add-section/inline.js"));
var _widgetResizeable = _interopRequireDefault(__webpack_require__(/*! ./behaviors/widget-resizeable */ "../assets/dev/js/editor/elements/views/behaviors/widget-resizeable.js"));
var _containerHelper = _interopRequireDefault(__webpack_require__(/*! elementor-editor-utils/container-helper */ "../assets/dev/js/editor/utils/container-helper.js"));
var _emptyView = _interopRequireDefault(__webpack_require__(/*! elementor-elements/views/container/empty-view */ "../assets/dev/js/editor/elements/views/container/empty-view.js"));
var _hooks = __webpack_require__(/*! elementor-document/hooks */ "../assets/dev/js/editor/document/hooks/index.js");
var _utils = __webpack_require__(/*! elementor/modules/nested-elements/assets/js/editor/utils */ "../modules/nested-elements/assets/js/editor/utils.js");
var _elementTypes = __webpack_require__(/*! elementor-editor/utils/element-types */ "../assets/dev/js/editor/utils/element-types.js");
// Most of the code has been copied from `section.js`.

var BaseElementView = __webpack_require__(/*! elementor-elements/views/base */ "../assets/dev/js/editor/elements/views/base.js");
var ContainerView = BaseElementView.extend({
  template: Marionette.TemplateCache.get('#tmpl-elementor-container-content'),
  emptyView: _emptyView.default,
  destroyEmptyView: function destroyEmptyView() {
    // Do not remove the empty view for Grid Containers.
    if (this.isFlexContainer()) {
      return Marionette.CompositeView.prototype.destroyEmptyView.apply(this, arguments);
    }
  },
  getChildViewContainer: function getChildViewContainer() {
    this.childViewContainer = this.isBoxedWidth() ? '> .e-con-inner' : '';
    return Marionette.CompositeView.prototype.getChildViewContainer.apply(this, arguments);
  },
  getChildType: function getChildType() {
    var allowedElementTypes = (0, _elementTypes.getAllElementTypes)().filter(function (elType) {
      return elType !== 'section' && elType !== 'column';
    });
    return [].concat((0, _toConsumableArray2.default)(allowedElementTypes), ['widget']);
  },
  className: function className() {
    var isNestedClassName = this.model.get('isInner') ? 'e-child' : 'e-parent';
    return "".concat(BaseElementView.prototype.className.apply(this), " e-con ").concat(isNestedClassName);
  },
  filterSettings: function filterSettings(newItem) {
    if (!(0, _elementTypes.getAllElementTypes)().includes(newItem.elType)) {
      return;
    }
    var parentContainer = this;
    if (parentContainer.isBoxedWidth()) {
      newItem.settings.content_width = 'full';
    } else if (0 !== parentContainer.getNestingLevel()) {
      newItem.settings.content_width = 'full';
    }
  },
  childViewOptions: function childViewOptions() {
    return {
      emptyViewOwner: this
    };
  },
  tagName: function tagName() {
    return this.model.getSetting('html_tag') || 'div';
  },
  // TODO: Copied from `views/column.js`.
  ui: function ui() {
    var ui = BaseElementView.prototype.ui.apply(this, arguments);
    ui.percentsTooltip = '> .elementor-element-overlay .elementor-column-percents-tooltip';
    return ui;
  },
  getCurrentUiStates: function getCurrentUiStates() {
    var currentDeviceMode = elementor.channels.deviceMode.request('currentMode'),
      deviceSuffix = 'desktop' === currentDeviceMode ? '' : '_' + currentDeviceMode,
      directionSettingKey = this.getDirectionSettingKey() + deviceSuffix,
      currentDirection = this.container.settings.get(directionSettingKey);
    return {
      directionMode: currentDirection || _containerHelper.default.DIRECTION_DEFAULT
    };
  },
  onDeviceModeChange: function onDeviceModeChange() {
    _hooks.SetDirectionMode.set(this.getContainer());
  },
  getDirectionSettingKey: function getDirectionSettingKey() {
    var containerType = this.container.settings.get('container_type'),
      directionSettingKey = 'grid' === containerType ? 'grid_auto_flow' : 'flex_direction';
    return directionSettingKey;
  },
  behaviors: function behaviors() {
    var behaviors = BaseElementView.prototype.behaviors.apply(this, arguments);
    _.extend(behaviors, {
      // TODO: Remove. It's a temporary solution for the Navigator sortable.
      Sortable: {
        behaviorClass: __webpack_require__(/*! elementor-behaviors/sortable */ "../assets/dev/js/editor/elements/views/behaviors/sortable.js"),
        elChildType: 'widget'
      },
      Resizable: {
        behaviorClass: _widgetResizeable.default
      }
    });
    return elementor.hooks.applyFilters('elements/container/behaviors', behaviors, this);
  },
  initialize: function initialize() {
    BaseElementView.prototype.initialize.apply(this, arguments);
    this.model.get('editSettings').set('defaultEditRoute', 'layout');
    this.onDeviceModeChange = this.onDeviceModeChange.bind(this);
    elementor.listenTo(elementor.channels.deviceMode, 'change', this.onDeviceModeChange);
  },
  onDestroy: function onDestroy() {
    BaseElementView.prototype.onDestroy.apply(this, arguments);
    elementor.stopListening(elementor.channels.deviceMode, 'change', this.onDeviceModeChange);
  },
  /**
   * TODO: Remove. It's a temporary solution for the Navigator sortable.
   *
   * @return {{}} options
   */
  getSortableOptions: function getSortableOptions() {
    // TODO: Temporary hack.
    return {
      preventInit: true
    };
  },
  /**
   * Get the Container nesting level recursively.
   * The farthest parent Container is level 0.
   *
   * @return {number} nesting level
   */
  getNestingLevel: function getNestingLevel() {
    // Use the memoized value if present, to prevent too many calculations.
    if (this.nestingLevel) {
      return this.nestingLevel;
    }
    var parent = this.container.parent;

    // Start counting nesting level only from the closest Container parent.
    if ('container' !== parent.type) {
      return 0;
    }
    return parent.view.getNestingLevel() + 1;
  },
  isNestedElementContentContainer: function isNestedElementContentContainer() {
    var widgetType = this.container.parent.model.get('widgetType');
    return widgetType && widgetType.trim() !== '' && (0, _utils.isWidgetSupportNesting)(widgetType);
  },
  getDroppableAxis: function getDroppableAxis() {
    var isColumnDefault = _containerHelper.default.DIRECTION_DEFAULT === _containerHelper.default.DIRECTION_COLUMN,
      currentDirection = this.getContainer().settings.get(this.getDirectionSettingKey());
    var axisMap = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _containerHelper.default.DIRECTION_COLUMN, 'vertical'), _containerHelper.default.DIRECTION_COLUMN_REVERSED, 'vertical'), _containerHelper.default.DIRECTION_ROW, 'horizontal'), _containerHelper.default.DIRECTION_ROW_REVERSED, 'horizontal'), '', isColumnDefault ? 'vertical' : 'horizontal');
    return axisMap[currentDirection];
  },
  getDroppableOptions: function getDroppableOptions() {
    var _this = this;
    var items = this.isBoxedWidth() ? '> .elementor-widget, > .e-con-full, > .e-con > .e-con-inner, > .elementor-empty-view > .elementor-first-add' : '> .elementor-element, > .elementor-empty-view .elementor-first-add';
    return {
      axis: this.getDroppableAxis(),
      items: items,
      groups: ['elementor-element'],
      horizontalThreshold: 5,
      // TODO: Stop the magic.
      isDroppingAllowed: this.isDroppingAllowed.bind(this),
      currentElementClass: 'elementor-html5dnd-current-element',
      placeholderClass: 'elementor-sortable-placeholder elementor-widget-placeholder',
      hasDraggingOnChildClass: 'e-dragging-over',
      getDropContainer: function getDropContainer() {
        return _this.getContainer();
      },
      onDropping: function onDropping(side, event) {
        event.stopPropagation();

        // Triggering drag end manually, since it won't fired above iframe
        elementor.getPreviewView().onPanelElementDragEnd();
        var draggedView = elementor.channels.editor.request('element:dragged'),
          draggingInSameParent = (draggedView === null || draggedView === void 0 ? void 0 : draggedView.parent) === _this,
          hasInnerContainer = jQuery(event.currentTarget).hasClass('e-con-inner'),
          containerSelector = hasInnerContainer ? event.currentTarget.parentElement.parentElement : event.currentTarget.parentElement;
        var $elements = jQuery(containerSelector).find('> .elementor-element');

        // Exclude the dragged element from the indexing calculations.
        if (draggingInSameParent) {
          $elements = $elements.not(draggedView.$el);
        }
        var widgetsArray = Object.values($elements);
        var newIndex = hasInnerContainer ? widgetsArray.indexOf(event.currentTarget.parentElement) : widgetsArray.indexOf(event.currentTarget);

        // Plus one in order to insert it after the current target element.
        if (_this.shouldIncrementIndex(side)) {
          newIndex++;
        }

        // User is sorting inside a Container.
        if (draggedView) {
          // Prevent the user from dragging a parent container into its own child container
          var draggedId = draggedView.getContainer().id;
          var currentTargetParentContainer = _this.container;
          while (currentTargetParentContainer) {
            if (currentTargetParentContainer.id === draggedId) {
              return;
            }
            currentTargetParentContainer = currentTargetParentContainer.parent;
          }

          // Reset the dragged element cache.
          elementor.channels.editor.reply('element:dragged', null);
          $e.run('document/elements/move', {
            container: draggedView.getContainer(),
            target: _this.getContainer(),
            options: {
              at: newIndex
            }
          });
          return;
        }

        // User is dragging an element from the panel.
        _this.onDrop(event, {
          at: newIndex
        });
      }
    };
  },
  /**
   * Save container as a template.
   *
   * @return {void}
   */
  saveAsTemplate: function saveAsTemplate() {
    elementor.templates.eventManager.sendNewSaveTemplateClickedEvent();
    $e.route('library/save-template', {
      model: this.model
    });
  },
  /**
   * Insert a new container inside an existing container.
   *
   * @since 3.7.0
   *
   * @return {void}
   */
  addNewContainer: function addNewContainer() {
    /* Check if the current container has a parent container */
    var containerAncestry = this.getContainer().getParentAncestry(),
      targetContainer = 'container' !== containerAncestry[1].type ? this.getContainer() : this.getContainer().parent;
    $e.run('document/elements/create', {
      model: {
        elType: 'container',
        settings: {
          content_width: 'full'
        }
      },
      container: targetContainer
    });
  },
  /**
   * Add a `Save as a Template` button to the context menu.
   *
   * @return {Object} groups
   */
  getContextMenuGroups: function getContextMenuGroups() {
    var _this2 = this;
    var groups = BaseElementView.prototype.getContextMenuGroups.apply(this, arguments),
      transferGroupClipboardIndex = groups.indexOf(_.findWhere(groups, {
        name: 'clipboard'
      })),
      transferGroupGeneralIndex = groups.indexOf(_.findWhere(groups, {
        name: 'general'
      }));
    groups.splice(transferGroupClipboardIndex + 1, 0, {
      name: 'save',
      actions: [{
        name: 'save',
        title: __('Save as a template', 'elementor'),
        shortcut: "<span class=\"elementor-context-menu-list__item__shortcut__new-badge\">".concat(__('New', 'elementor'), "</span>"),
        callback: this.saveAsTemplate.bind(this),
        isEnabled: function isEnabled() {
          return !_this2.getContainer().isLocked();
        }
      }]
    });
    groups.splice(transferGroupGeneralIndex + 1, 0, {
      name: 'newContainerGroup',
      actions: [{
        name: 'newContainer',
        icon: 'eicon-plus',
        title: __('Add New Container', 'elementor'),
        callback: this.addNewContainer.bind(this)
      }]
    });
    return groups;
  },
  isDroppingAllowed: function isDroppingAllowed() {
    // Don't allow dragging items to document which is not editable.
    if (!this.getContainer().isEditable()) {
      return false;
    }
    var elementView = elementor.channels.panelElements.request('element:selected') || elementor.channels.editor.request('element:dragged');
    if (!elementView) {
      return false;
    }
    return [].concat((0, _toConsumableArray2.default)((0, _elementTypes.getAllElementTypes)()), ['widget']).includes(elementView.model.get('elType'));
  },
  /**
   * Determine if the current container is a nested container.
   *
   * @return {boolean} is a nested container
   */
  isNested: function isNested() {
    return 'document' !== this.getContainer().parent.model.get('elType');
  },
  getEditButtons: function getEditButtons() {
    var elementData = elementor.getElementData(this.model),
      editTools = {};
    if ($e.components.get('document/elements').utils.allowAddingWidgets()) {
      editTools.add = {
        /* Translators: %s: Element Name. */
        title: sprintf(__('Add %s', 'elementor'), elementData.title),
        icon: 'plus'
      };
      editTools.edit = {
        /* Translators: %s: Element Name. */
        title: sprintf(__('Edit %s', 'elementor'), elementData.title),
        icon: 'handle'
      };
    }
    if (!this.getContainer().isLocked()) {
      if (elementor.getPreferences('edit_buttons') && $e.components.get('document/elements').utils.allowAddingWidgets()) {
        editTools.duplicate = {
          /* Translators: %s: Element Name. */
          title: sprintf(__('Duplicate %s', 'elementor'), elementData.title),
          icon: 'clone'
        };
      }
      editTools.remove = {
        /* Translators: %s: Element Name. */
        title: sprintf(__('Delete %s', 'elementor'), elementData.title),
        icon: 'close'
      };
    }
    return editTools;
  },
  /**
   * Toggle the `New Section` view when clicking the `add` button in the edit tools.
   *
   * @return {void}
   */
  onAddButtonClick: function onAddButtonClick() {
    if (this.addSectionView && !this.addSectionView.isDestroyed) {
      this.addSectionView.fadeToDeath();
      return;
    }
    var addSectionView = new _inline.default({
      at: this.model.collection.indexOf(this.model)
    });
    addSectionView.render();
    this.$el.before(addSectionView.$el);
    addSectionView.$el.hide();

    // Delaying the slide down for slow-render browsers (such as FF)
    setTimeout(function () {
      addSectionView.$el.slideDown(null, function () {
        // Remove inline style, for preview mode.
        jQuery(this).css('display', '');
      });
    });
    this.addSectionView = addSectionView;
  },
  onRender: function onRender() {
    var _this3 = this;
    BaseElementView.prototype.onRender.apply(this, arguments);

    // Defer to wait for everything to render.
    setTimeout(function () {
      _this3.nestingLevel = _this3.getNestingLevel();
      _this3.$el[0].dataset.nestingLevel = _this3.nestingLevel;
      if (!_this3.model.get('isInner')) {
        _this3.model.set('isInner', _this3.isNestedElementContentContainer() || _this3.getNestingLevel() > 0);
      }

      // Add the EmptyView to the end of the Grid Container on initial page load if there are already some widgets.
      if (_this3.isGridContainer()) {
        _this3.reInitEmptyView();
      }
      _this3.droppableInitialize(_this3.container.settings);
    });
  },
  onRenderEmpty: function onRenderEmpty() {
    this.$el.addClass('e-empty');
  },
  onAddChild: function onAddChild() {
    this.$el.removeClass('e-empty');
    if (this.isGridContainer()) {
      this.handleGridEmptyView();
    }
  },
  renderOnChange: function renderOnChange(settings) {
    BaseElementView.prototype.renderOnChange.apply(this, arguments);
    if (settings.changed.flex_direction || settings.changed.content_width || settings.changed.grid_auto_flow || settings.changed.container_type) {
      if (this.isGridContainer()) {
        this.reInitEmptyView();
      }

      // Make sure the Empty view is removed if we changed from grid to flex and there were widgets.
      if (this.isFlexContainer() && !this.isEmpty()) {
        this.getCorrectContainerElement().find('> .elementor-empty-view').remove();
      }
      this.droppableDestroy();
      this.droppableInitialize(settings);
    }
    if (settings.changed.container_type) {
      this.updatePanelTitlesAndIcons();
    }
  },
  updatePanelTitlesAndIcons: function updatePanelTitlesAndIcons() {
    var title = this.getPanelTitle(),
      icon = this.getPanelIcon();
    this.model.set('icon', icon);
    this.model.set('title', title);
    this.model.get('settings').set('presetTitle', title);
    this.model.get('settings').set('presetIcon', icon);

    /* Translators: %s: Element name. */
    jQuery('#elementor-panel-header-title').html(sprintf(__('Edit %s', 'elementor'), title));
    this.updateNeedHelpLink();
  },
  getPanelTitle: function getPanelTitle() {
    return this.isFlexContainer() ? __('Container', 'elementor') : __('Grid', 'elementor');
  },
  getPanelIcon: function getPanelIcon() {
    return this.isFlexContainer() ? 'eicon-container' : 'eicon-container-grid';
  },
  onDragStart: function onDragStart() {
    this.droppableDestroy();
  },
  onDragEnd: function onDragEnd() {
    this.droppableInitialize(this.container.settings);
  },
  // TODO: Copied from `views/column.js`.
  attachElContent: function attachElContent() {
    BaseElementView.prototype.attachElContent.apply(this, arguments);
    var $tooltip = jQuery('<div>', {
      class: 'elementor-column-percents-tooltip',
      'data-side': elementorCommon.config.isRTL ? 'right' : 'left'
    });
    this.$el.children('.elementor-element-overlay').append($tooltip);
  },
  // TODO: Copied from `views/column.js`.
  getPercentSize: function getPercentSize(size) {
    if (!size) {
      size = this.el.getBoundingClientRect().width;
    }
    return +(size / this.$el.parent().width() * 100).toFixed(3);
  },
  // TODO: Copied from `views/column.js`.
  getPercentsForDisplay: function getPercentsForDisplay() {
    var width = +this.model.getSetting('width') || this.getPercentSize();
    return width.toFixed(1) + '%';
  },
  onResizeStart: function onResizeStart() {
    if (this.ui.percentsTooltip) {
      this.ui.percentsTooltip.show();
    }
  },
  onResize: function onResize() {
    // TODO: Copied from `views/column.js`.
    if (this.ui.percentsTooltip) {
      this.ui.percentsTooltip.text(this.getPercentsForDisplay());
    }
  },
  onResizeStop: function onResizeStop() {
    if (this.ui.percentsTooltip) {
      this.ui.percentsTooltip.hide();
    }
  },
  droppableDestroy: function droppableDestroy() {
    this.$el.html5Droppable('destroy');
    this.$el.find('> .e-con-inner').html5Droppable('destroy');
  },
  droppableInitialize: function droppableInitialize(settings) {
    if ('boxed' === settings.get('content_width')) {
      this.$el.find('> .e-con-inner').html5Droppable(this.getDroppableOptions());
    } else {
      this.$el.html5Droppable(this.getDroppableOptions());
    }
  },
  handleGridEmptyView: function handleGridEmptyView() {
    var currentContainer = this.getCorrectContainerElement();
    var emptyViewItem = currentContainer.find('> .elementor-empty-view');
    this.moveElementToLastChild(currentContainer, emptyViewItem);
  },
  moveElementToLastChild: function moveElementToLastChild(parentWrapperElement, childElementToMove) {
    var parent = parentWrapperElement.get(0),
      child = childElementToMove.get(0);
    if (!parent || !child) {
      return;
    }
    if (parent.lastChild === child) {
      return;
    }
    parent.appendChild(child);
  },
  getCorrectContainerElement: function getCorrectContainerElement() {
    return this.isBoxedWidth() ? this.$el.find('> .e-con-inner') : this.$el;
  },
  shouldIncrementIndex: function shouldIncrementIndex(side) {
    if (!this.draggingOnBottomOrRightSide(side)) {
      return false;
    }
    return !(this.isGridContainer() && this.emptyViewIsCurrentlyBeingDraggedOver());
  },
  draggingOnBottomOrRightSide: function draggingOnBottomOrRightSide(side) {
    return ['bottom', 'right'].includes(side);
  },
  isGridContainer: function isGridContainer() {
    return 'grid' === this.getContainer().settings.get('container_type');
  },
  isFlexContainer: function isFlexContainer() {
    return 'flex' === this.getContainer().settings.get('container_type');
  },
  isBoxedWidth: function isBoxedWidth() {
    return 'boxed' === this.getContainer().settings.get('content_width');
  },
  emptyViewIsCurrentlyBeingDraggedOver: function emptyViewIsCurrentlyBeingDraggedOver() {
    return this.getCorrectContainerElement().find('> .elementor-empty-view > .elementor-first-add.elementor-html5dnd-current-element').length > 0;
  },
  reInitEmptyView: function reInitEmptyView() {
    if (!this.getCorrectContainerElement().find('> .elementor-empty-view').length) {
      delete this._showingEmptyView; // Marionette property that needs to be falsy for showEmptyView() to fully execute.
      this.showEmptyView(); // Marionette function.
      this.handleGridEmptyView();
    }
  },
  updateNeedHelpLink: function updateNeedHelpLink() {
    var $linkElement = jQuery('#elementor-panel__editor__help__link');
    var href = this.isGridContainer() ? 'https://go.elementor.com/widget-container-grid' : 'https://go.elementor.com/widget-container';
    if ($linkElement) {
      $linkElement.attr('href', href);
    }
  }
});
module.exports = ContainerView;

/***/ }),

/***/ "../assets/dev/js/editor/elements/views/container/empty-component.js":
/*!***************************************************************************!*\
  !*** ../assets/dev/js/editor/elements/views/container/empty-component.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"] = EmptyComponent;
var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
var _editorOneEvents = __webpack_require__(/*! elementor-editor-utils/editor-one-events */ "../assets/dev/js/editor/utils/editor-one-events.js");
/* eslint-disable jsx-a11y/no-static-element-interactions */
/* eslint-disable jsx-a11y/click-events-have-key-events */

function EmptyComponent() {
  var handleClick = function handleClick() {
    _editorOneEvents.EditorOneEventManager.sendCanvasEmptyBoxAction({
      targetName: 'add_container'
    });
    $e.route('panel/elements/categories');
  };
  return /*#__PURE__*/_react.default.createElement("div", {
    className: "elementor-first-add"
  }, /*#__PURE__*/_react.default.createElement("div", {
    className: "elementor-icon eicon-plus",
    onClick: handleClick
  }));
}

/***/ }),

/***/ "../assets/dev/js/editor/elements/views/container/empty-view.js":
/*!**********************************************************************!*\
  !*** ../assets/dev/js/editor/elements/views/container/empty-view.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 _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.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 _react2 = _interopRequireDefault(__webpack_require__(/*! elementor-utils/react */ "../assets/dev/js/utils/react.js"));
var _emptyComponent = _interopRequireDefault(__webpack_require__(/*! elementor-elements/views/container/empty-component */ "../assets/dev/js/editor/elements/views/container/empty-component.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
/**
 * This empty view used when the container is empty, then it writes React component into the view.
 * In case of rendering different/custom React component, the switch in 'renderReactDefaultElement' method,
 * can be used to print custom React component in case it registered in `elementsManager`.
 */
var EmptyView = exports["default"] = /*#__PURE__*/function (_Marionette$ItemView) {
  function EmptyView() {
    var _this;
    (0, _classCallCheck2.default)(this, EmptyView);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, EmptyView, [].concat(args));
    (0, _defineProperty2.default)(_this, "template", '<div></div>');
    (0, _defineProperty2.default)(_this, "className", 'elementor-empty-view');
    return _this;
  }
  (0, _inherits2.default)(EmptyView, _Marionette$ItemView);
  return (0, _createClass2.default)(EmptyView, [{
    key: "initialize",
    value: function initialize(options) {
      _superPropGet(EmptyView, "initialize", this, 3)([options]);
      this.ownerView = options.emptyViewOwner;
    }
  }, {
    key: "renderReactDefaultElement",
    value: function renderReactDefaultElement(container) {
      var parent = container.parent;
      var defaultElement;

      // If the emptyView is parent of widget. then the emptyView can be searched for in `elementor.elementsManager`,
      // according to the `widgetType`.
      if ('widget' === parent.model.get('elType')) {
        var elementType = elementor.elementsManager.getElementTypeClass(parent.model.get('widgetType'));
        if (elementType) {
          var Type = elementType.getEmptyView();
          defaultElement = /*#__PURE__*/_react.default.createElement(Type, {
            container: container
          });
        }
      } else {
        defaultElement = /*#__PURE__*/_react.default.createElement(_emptyComponent.default, {
          container: container
        });
      }
      var _ReactUtils$render = _react2.default.render(defaultElement, this.el),
        unmount = _ReactUtils$render.unmount;
      this.unmount = unmount;
    }
  }, {
    key: "onRender",
    value: function onRender() {
      this.$el.addClass(this.className);
      this.renderReactDefaultElement(this.ownerView.container);
    }
  }, {
    key: "onDestroy",
    value: function onDestroy() {
      this.unmount();
    }
  }]);
}(Marionette.ItemView);

/***/ }),

/***/ "../assets/dev/js/editor/elements/views/section.js":
/*!*********************************************************!*\
  !*** ../assets/dev/js/editor/elements/views/section.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _inline = _interopRequireDefault(__webpack_require__(/*! ../../views/add-section/inline */ "../assets/dev/js/editor/views/add-section/inline.js"));
var BaseElementView = __webpack_require__(/*! elementor-elements/views/base */ "../assets/dev/js/editor/elements/views/base.js");
var DEFAULT_INNER_SECTION_COLUMNS = 2,
  DEFAULT_MIN_COLUMN_SIZE = 2,
  DEFAULT_MAX_COLUMNS = 10;
var SectionView = BaseElementView.extend({
  childViewContainer: function childViewContainer() {
    return '> .elementor-container';
  },
  template: Marionette.TemplateCache.get('#tmpl-elementor-section-content'),
  addSectionView: null,
  /**
   * @deprecated since 2.9.0, use `toggleSectionIsFull()` instead.
   */
  _checkIsFull: function _checkIsFull() {
    this.toggleSectionIsFull();
    elementorDevTools.deprecation.deprecated('_checkIsFull()', '2.9.0', 'toggleSectionIsFull()');
  },
  toggleSectionIsFull: function toggleSectionIsFull() {
    this.$el.toggleClass('elementor-section-filled', this.isCollectionFilled());
  },
  addChildModel: function addChildModel(model) {
    // TODO: maybe should be part of $e.hooks.
    var isModelInstance = model instanceof Backbone.Model,
      isInner = this.isInner();
    if (isModelInstance) {
      // TODO: change to command.
      model.set('isInner', isInner);
    } else {
      model.isInner = isInner;
    }
    return BaseElementView.prototype.addChildModel.apply(this, arguments);
  },
  className: function className() {
    var classes = BaseElementView.prototype.className.apply(this, arguments),
      type = this.isInner() ? 'inner' : 'top';
    return classes + ' elementor-section elementor-' + type + '-section';
  },
  tagName: function tagName() {
    return this.model.getSetting('html_tag') || 'section';
  },
  behaviors: function behaviors() {
    var behaviors = BaseElementView.prototype.behaviors.apply(this, arguments);
    _.extend(behaviors, {
      Sortable: {
        behaviorClass: __webpack_require__(/*! elementor-behaviors/sortable */ "../assets/dev/js/editor/elements/views/behaviors/sortable.js"),
        elChildType: 'column'
      }
    });
    return elementor.hooks.applyFilters('elements/section/behaviors', behaviors, this);
  },
  initialize: function initialize() {
    BaseElementView.prototype.initialize.apply(this, arguments);
    this.model.get('editSettings').set('defaultEditRoute', 'layout');
  },
  getEditButtons: function getEditButtons() {
    if (!$e.components.get('document/elements').utils.allowAddingWidgets()) {
      return {};
    }
    var elementData = elementor.getElementData(this.model),
      editTools = {};
    if (!this.isInner()) {
      editTools.add = {
        /* Translators: %s: Element name. */
        title: sprintf(__('Add %s', 'elementor'), elementData.title),
        icon: 'plus'
      };
    }
    editTools.edit = {
      /* Translators: %s: Element name. */
      title: sprintf(__('Edit %s', 'elementor'), elementData.title),
      icon: 'handle'
    };
    if (elementor.getPreferences('edit_buttons')) {
      editTools.duplicate = {
        /* Translators: %s: Element name. */
        title: sprintf(__('Duplicate %s', 'elementor'), elementData.title),
        icon: 'clone'
      };
    }
    return editTools;
  },
  getContextMenuGroups: function getContextMenuGroups() {
    var groups = BaseElementView.prototype.getContextMenuGroups.apply(this, arguments),
      transferGroupIndex = groups.indexOf(_.findWhere(groups, {
        name: 'clipboard'
      }));
    groups.splice(transferGroupIndex + 1, 0, {
      name: 'save',
      actions: [{
        name: 'save',
        title: __('Save as a template', 'elementor'),
        shortcut: "<span class=\"elementor-context-menu-list__item__shortcut__new-badge\">".concat(__('New', 'elementor'), "</span>"),
        isEnabled: function isEnabled() {
          return !elementor.selection.isMultiple();
        },
        callback: this.save.bind(this)
      }]
    });
    return groups;
  },
  getSortableOptions: function getSortableOptions() {
    var sectionConnectClass = this.isInner() ? '.elementor-inner-section' : '.elementor-top-section';
    return {
      connectWith: sectionConnectClass + this.childViewContainer(),
      handle: '> .elementor-element-overlay .elementor-editor-element-edit',
      items: '> .elementor-column',
      forcePlaceholderSize: true,
      tolerance: 'pointer'
    };
  },
  getColumnPercentSize: function getColumnPercentSize(element, size) {
    return +(size / element.parent().width() * 100).toFixed(3);
  },
  getDefaultStructure: function getDefaultStructure() {
    return this.collection.length + '0';
  },
  getStructure: function getStructure() {
    return this.model.getSetting('structure');
  },
  getColumnAt: function getColumnAt(index) {
    var model = this.collection.at(index);
    return model ? this.children.findByModelCid(model.cid) : null;
  },
  getNextColumn: function getNextColumn(columnView) {
    return this.getColumnAt(this.collection.indexOf(columnView.model) + 1);
  },
  getPreviousColumn: function getPreviousColumn(columnView) {
    return this.getColumnAt(this.collection.indexOf(columnView.model) - 1);
  },
  getNeighborContainer: function getNeighborContainer(container) {
    var parentView = container.parent.view,
      nextView = parentView.getNextColumn(container.view) || parentView.getPreviousColumn(container.view);
    if (!nextView) {
      return false;
    }
    return nextView.getContainer();
  },
  setStructure: function setStructure(structure) {
    var shouldAdjustColumns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
    var parsedStructure = elementor.presetsFactory.getParsedStructure(structure);
    if (+parsedStructure.columnsCount !== this.collection.length) {
      throw new TypeError('The provided structure doesn\'t match the columns count.');
    }
    $e.run('document/elements/settings', {
      container: this.getContainer(),
      settings: {
        structure: structure
      },
      options: {
        external: true
      }
    });
    if (shouldAdjustColumns) {
      this.adjustColumns();
    }
  },
  adjustColumns: function adjustColumns() {
    var preset = elementor.presetsFactory.getPresetByStructure(this.getStructure());
    this.children.each(function (columnView, index) {
      var container = columnView.getContainer();
      $e.run('document/elements/settings', {
        container: container,
        settings: {
          _column_size: preset.preset[index],
          _inline_size: null
        }
      });
    });
  },
  resetLayout: function resetLayout() {
    var shouldAdjustColumns = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
    this.setStructure(this.getDefaultStructure(), shouldAdjustColumns);
  },
  resetColumnsCustomSize: function resetColumnsCustomSize() {
    this.children.each(function (columnView) {
      $e.run('document/elements/settings', {
        container: columnView.getContainer(),
        settings: {
          _inline_size: null
        },
        options: {
          external: true
        }
      });
    });
  },
  isCollectionFilled: function isCollectionFilled() {
    return DEFAULT_MAX_COLUMNS <= this.collection.length;
  },
  showChildrenPercentsTooltip: function showChildrenPercentsTooltip(columnView, nextColumnView) {
    columnView.ui.percentsTooltip.show();
    columnView.ui.percentsTooltip.attr('data-side', elementorCommon.config.isRTL ? 'right' : 'left');
    nextColumnView.ui.percentsTooltip.show();
    nextColumnView.ui.percentsTooltip.attr('data-side', elementorCommon.config.isRTL ? 'left' : 'right');
  },
  hideChildrenPercentsTooltip: function hideChildrenPercentsTooltip(columnView, nextColumnView) {
    columnView.ui.percentsTooltip.hide();
    nextColumnView.ui.percentsTooltip.hide();
  },
  destroyAddSectionView: function destroyAddSectionView() {
    if (this.addSectionView && !this.addSectionView.isDestroyed) {
      this.addSectionView.destroy();
    }
  },
  onRender: function onRender() {
    BaseElementView.prototype.onRender.apply(this, arguments);
    this.toggleSectionIsFull();
  },
  onAddButtonClick: function onAddButtonClick() {
    if (this.addSectionView && !this.addSectionView.isDestroyed) {
      this.addSectionView.fadeToDeath();
      return;
    }
    var addSectionView = new _inline.default({
      at: this.model.collection.indexOf(this.model)
    });
    addSectionView.render();
    this.$el.before(addSectionView.$el);
    addSectionView.$el.hide();

    // Delaying the slide down for slow-render browsers (such as FF)
    setTimeout(function () {
      addSectionView.$el.slideDown(null, function () {
        // Remove inline style, for preview mode.
        jQuery(this).css('display', '');
      });
    });
    this.addSectionView = addSectionView;
  },
  onChildviewRequestResizeStart: function onChildviewRequestResizeStart(columnView) {
    var nextColumnView = this.getNextColumn(columnView);
    if (!nextColumnView) {
      return;
    }
    this.showChildrenPercentsTooltip(columnView, nextColumnView);
    var $iframes = columnView.$el.find('iframe').add(nextColumnView.$el.find('iframe'));
    elementor.helpers.disableElementEvents($iframes);
  },
  onChildviewRequestResizeStop: function onChildviewRequestResizeStop(columnView) {
    var nextColumnView = this.getNextColumn(columnView);
    if (!nextColumnView) {
      return;
    }
    this.hideChildrenPercentsTooltip(columnView, nextColumnView);
    var $iframes = columnView.$el.find('iframe').add(nextColumnView.$el.find('iframe'));
    elementor.helpers.enableElementEvents($iframes);
  },
  onChildviewRequestResize: function onChildviewRequestResize(columnView, ui) {
    ui.element.css({
      width: '',
      left: 'initial' // Fix for RTL resizing
    });
    $e.run('document/elements/settings', {
      container: columnView.getContainer(),
      settings: {
        _inline_size: this.getColumnPercentSize(ui.element, ui.size.width)
      }
    });
  },
  onDestroy: function onDestroy() {
    BaseElementView.prototype.onDestroy.apply(this, arguments);
    this.destroyAddSectionView();
  }
});
module.exports = SectionView;
module.exports.DEFAULT_INNER_SECTION_COLUMNS = DEFAULT_INNER_SECTION_COLUMNS;
module.exports.DEFAULT_MIN_COLUMN_SIZE = DEFAULT_MIN_COLUMN_SIZE;
module.exports.DEFAULT_MAX_COLUMNS = DEFAULT_MAX_COLUMNS;

/***/ }),

/***/ "../assets/dev/js/editor/elements/views/widget.js":
/*!********************************************************!*\
  !*** ../assets/dev/js/editor/elements/views/widget.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_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");
var _widgetDraggable = _interopRequireDefault(__webpack_require__(/*! ./behaviors/widget-draggable */ "../assets/dev/js/editor/elements/views/behaviors/widget-draggable.js"));
var _widgetResizeable = _interopRequireDefault(__webpack_require__(/*! ./behaviors/widget-resizeable */ "../assets/dev/js/editor/elements/views/behaviors/widget-resizeable.js"));
var _baseWidget = _interopRequireDefault(__webpack_require__(/*! ./base-widget */ "../assets/dev/js/editor/elements/views/base-widget.js"));
var BaseElementView = __webpack_require__(/*! elementor-elements/views/base */ "../assets/dev/js/editor/elements/views/base.js");
var WidgetView = _baseWidget.default.extend({
  _templateType: null,
  toggleEditTools: true,
  events: function events() {
    var events = _baseWidget.default.prototype.events.apply(this, arguments);
    events.click = 'onClickEdit';
    return events;
  },
  behaviors: function behaviors() {
    var behaviors = _baseWidget.default.prototype.behaviors.apply(this, arguments);
    _.extend(behaviors, {
      InlineEditing: {
        behaviorClass: __webpack_require__(/*! elementor-behaviors/inline-editing */ "../assets/dev/js/editor/elements/views/behaviors/inline-editing.js"),
        inlineEditingClass: 'elementor-inline-editing'
      },
      Draggable: {
        behaviorClass: _widgetDraggable.default
      },
      Resizable: {
        behaviorClass: _widgetResizeable.default
      }
    });
    return elementor.hooks.applyFilters('elements/widget/behaviors', behaviors, this);
  },
  getContextMenuGroups: function getContextMenuGroups() {
    var _this = this;
    var groups = _baseWidget.default.prototype.getContextMenuGroups.apply(this, arguments),
      transferGroupIndex = groups.indexOf(_.findWhere(groups, {
        name: 'clipboard'
      }));
    groups.splice(transferGroupIndex + 1, 0, {
      name: 'save',
      actions: [{
        name: 'save',
        title: __('Save as a global', 'elementor'),
        shortcut: jQuery('<i>', {
          class: 'eicon-pro-icon'
        }),
        promotionURL: 'https://go.elementor.com/go-pro-global-widget-context-menu/',
        isEnabled: function isEnabled() {
          return 'global' !== _this.options.model.get('widgetType') && !elementor.selection.isMultiple();
        }
      }]
    });
    return groups;
  },
  render: function render() {
    if (this.model.isRemoteRequestActive()) {
      this.handleEmptyWidget();
      this.$el.addClass('elementor-element');
      return;
    }
    if (this.isDestroyed) {
      return;
    }
    BaseElementView.prototype.render.apply(this, arguments);
  },
  handleEmptyWidget: function handleEmptyWidget() {
    this.$el.addClass('elementor-widget-empty').append('<i class="elementor-widget-empty-icon ' + this.getEditModel().getIcon() + '"></i>');
  },
  getTemplateType: function getTemplateType() {
    if (null === this._templateType) {
      var editModel = this.getEditModel(),
        $template = jQuery('#tmpl-elementor-' + editModel.get('widgetType') + '-content');
      this._templateType = $template.length ? 'js' : 'remote';
    }
    return this._templateType;
  },
  getHTMLContent: function getHTMLContent(html) {
    var htmlCache = this.getEditModel().getHtmlCache();
    return htmlCache || html;
  },
  attachElContent: function attachElContent(html) {
    var _this2 = this;
    _.defer(function () {
      elementorFrontend.elements.window.jQuery(_this2.el).empty().append(_this2.getHandlesOverlay(), _this2.getHTMLContent(html));
      _this2.bindUIElements(); // Build again the UI elements since the content attached just now
    });
    return this;
  },
  addInlineEditingAttributes: function addInlineEditingAttributes(key, toolbar) {
    this.addRenderAttribute(key, {
      class: 'elementor-inline-editing',
      'data-elementor-setting-key': key
    });
    if (toolbar) {
      this.addRenderAttribute(key, {
        'data-elementor-inline-editing-toolbar': toolbar
      });
    }
  },
  onRender: function onRender() {
    var self = this;
    _baseWidget.default.prototype.onRender.apply(self, arguments);
    this.normalizeAttributes();

    // TODO: Find a better way to detect if all the images have been loaded
    self.$el.imagesLoaded().always(function () {
      setTimeout(function () {
        // Since 'outerHeight' will not handle hidden elements, and mark them as empty (e.g. nested tabs).
        var $widgetContainer = self.$el.children('.elementor-widget-container').length ? self.$el.children('.elementor-widget-container') : self.$el;
        if (self.shouldGetEmptyView($widgetContainer)) {
          self.handleEmptyWidget();
        }
      }, 200);
      // Is element empty?
    });
  },
  shouldGetEmptyView: function shouldGetEmptyView($widgetContainer) {
    if (!$widgetContainer.is(':visible')) {
      return false;
    }
    var hasZeroHeight = !$widgetContainer.outerHeight();
    var isEmpty = $widgetContainer.is(':empty');
    return hasZeroHeight || isEmpty;
  },
  onClickEdit: function onClickEdit(event) {
    var _this$container;
    if ((_this$container = this.container) !== null && _this$container !== void 0 && _this$container.isEditable()) {
      this.onEditButtonClick(event);
    }
  }
});
module.exports = WidgetView;

/***/ }),

/***/ "../assets/dev/js/editor/errors/element-type-not-found.js":
/*!****************************************************************!*\
  !*** ../assets/dev/js/editor/errors/element-type-not-found.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"] = exports.ElementTypeNotFound = void 0;
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.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 _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; })(); }
var ElementTypeNotFound = exports.ElementTypeNotFound = /*#__PURE__*/function (_Error) {
  function ElementTypeNotFound(elementType) {
    (0, _classCallCheck2.default)(this, ElementTypeNotFound);
    return _callSuper(this, ElementTypeNotFound, ["Element type not found: '".concat(elementType, "'")]);
  }
  (0, _inherits2.default)(ElementTypeNotFound, _Error);
  return (0, _createClass2.default)(ElementTypeNotFound);
}(/*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
var _default = exports["default"] = ElementTypeNotFound;

/***/ }),

/***/ "../assets/dev/js/editor/hints/ally.js":
/*!*********************************************!*\
  !*** ../assets/dev/js/editor/hints/ally.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.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; })(); }
var Ally = /*#__PURE__*/function (_elementorModules$edi) {
  function Ally() {
    var _this;
    (0, _classCallCheck2.default)(this, Ally);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, Ally, [].concat(args));
    (0, _defineProperty2.default)(_this, "eventName", 'ally_heading_notice');
    (0, _defineProperty2.default)(_this, "suffix", '');
    (0, _defineProperty2.default)(_this, "control", null);
    return _this;
  }
  (0, _inherits2.default)(Ally, _elementorModules$edi);
  return (0, _createClass2.default)(Ally, [{
    key: "onSectionActive",
    value: function onSectionActive(sectionName) {
      // Check if the section is the section_title of heading widget
      if (!['section_title'].includes(sectionName)) {
        return;
      }
      this.control = null;

      // Check if control exists
      if (!this.hasPromoControl()) {
        return;
      }

      // Check if the user has dismissed the hint
      if (elementor.config.user.dismissed_editor_notices.includes('ally_heading_notice')) {
        this.getPromoControl().remove();
        return;
      }
      this.registerEvents();
    }
  }, {
    key: "registerEvents",
    value: function registerEvents() {
      var _this2 = this;
      // Handle dismiss and action buttons
      var dismissBtn = this.getPromoControl().$el.find('.elementor-control-notice-dismiss');
      var _onDismissBtnClick = function onDismissBtnClick(event) {
        dismissBtn.off('click', _onDismissBtnClick); // Remove the event listener
        event.preventDefault();
        _this2.dismiss();
        _this2.getPromoControl().remove();
      };
      dismissBtn.on('click', _onDismissBtnClick);

      // Handle action button
      var actionBtn = this.getPromoControl().$el.find('.e-btn-1');
      var _onActionBtn = function onActionBtn(event) {
        actionBtn.off('click', _onActionBtn); // Remove the event listener
        event.preventDefault();
        _this2.onAction(event);
        _this2.getPromoControl().remove();
      };
      actionBtn.on('click', _onActionBtn);
    }
  }, {
    key: "getPromoControl",
    value: function getPromoControl() {
      if (!this.control) {
        this.control = this.getEditorControlView('ally_heading_notice');
      }
      return this.control;
    }
  }, {
    key: "hasPromoControl",
    value: function hasPromoControl() {
      return !!this.getPromoControl();
    }
  }, {
    key: "ajaxRequest",
    value: function ajaxRequest(name, data) {
      elementorCommon.ajax.addRequest(name, {
        data: data
      });
    }
  }, {
    key: "dismiss",
    value: function dismiss() {
      this.ajaxRequest('dismissed_editor_notices', {
        dismissId: this.eventName
      });

      // Prevent opening the same hint again in current editor session.
      this.ensureNoPromoControlInSession();
    }
  }, {
    key: "ensureNoPromoControlInSession",
    value: function ensureNoPromoControlInSession() {
      // Prevent opening the same hint again in current editor session.
      elementor.config.user.dismissed_editor_notices.push(this.eventName);
    }
  }, {
    key: "onAction",
    value: function onAction(event) {
      var _JSON$parse = JSON.parse(event.target.closest('button').dataset.settings),
        _JSON$parse$action_ur = _JSON$parse.action_url,
        actionURL = _JSON$parse$action_ur === void 0 ? null : _JSON$parse$action_ur;
      if (actionURL) {
        window.open(actionURL, '_blank');
      }
      this.ensureNoPromoControlInSession();
    }
  }, {
    key: "onElementorLoaded",
    value: function onElementorLoaded() {
      elementor.channels.editor.on('section:activated', this.onSectionActive.bind(this));
    }
  }]);
}(elementorModules.editor.utils.Module);
var _default = exports["default"] = Ally;

/***/ }),

/***/ "../assets/dev/js/editor/hints/index.js":
/*!**********************************************!*\
  !*** ../assets/dev/js/editor/hints/index.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
}));
Object.defineProperty(exports, "Ally", ({
  enumerable: true,
  get: function get() {
    return _ally.default;
  }
}));
var _ally = _interopRequireDefault(__webpack_require__(/*! ./ally */ "../assets/dev/js/editor/hints/ally.js"));

/***/ }),

/***/ "../assets/dev/js/editor/introduction-tooltips/manager.js":
/*!****************************************************************!*\
  !*** ../assets/dev/js/editor/introduction-tooltips/manager.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 _globalColorIntroduction = _interopRequireDefault(__webpack_require__(/*! ./tooltips/global-color-introduction */ "../assets/dev/js/editor/introduction-tooltips/tooltips/global-color-introduction.js"));
var _globalFontIntroduction = _interopRequireDefault(__webpack_require__(/*! ./tooltips/global-font-introduction */ "../assets/dev/js/editor/introduction-tooltips/tooltips/global-font-introduction.js"));
var IntroductionTooltipsManager = exports["default"] = /*#__PURE__*/function () {
  function IntroductionTooltipsManager() {
    (0, _classCallCheck2.default)(this, IntroductionTooltipsManager);
    this.registerTooltipWidget();
    this.registerTooltips();
  }
  return (0, _createClass2.default)(IntroductionTooltipsManager, [{
    key: "registerTooltipWidget",
    value: function registerTooltipWidget() {
      DialogsManager.addWidgetType('tooltip', DialogsManager.getWidgetType('buttons').extend('tooltip', {
        buildWidget: function buildWidget() {
          var _this = this;
          DialogsManager.getWidgetType('buttons').prototype.buildWidget.apply(this, arguments);
          var elements = this.getElements();
          elements.$title = jQuery('<div>', {
            class: 'dialog-tooltip-widget__title'
          });
          elements.$closeButton = jQuery('<i>', {
            class: 'eicon-close'
          });
          elements.$closeButton.on('click', function () {
            return _this.hide();
          });
          elements.header.append(elements.$title, elements.$closeButton);
        }
      }));
    }
  }, {
    key: "registerTooltips",
    value: function registerTooltips() {
      var tooltips = [new _globalColorIntroduction.default('globals_introduction'), new _globalFontIntroduction.default('globals_introduction')];
      tooltips.forEach(function (tooltip) {
        if (!elementor.config.user.introduction[tooltip.introductionKey]) {
          tooltip.initTooltip();
          tooltip.bindEvent();
        }
      });
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/introduction-tooltips/tooltips/global-color-introduction.js":
/*!*******************************************************************************************!*\
  !*** ../assets/dev/js/editor/introduction-tooltips/tooltips/global-color-introduction.js ***!
  \*******************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];


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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var GlobalColorIntroduction = exports["default"] = /*#__PURE__*/function () {
  function GlobalColorIntroduction(introductionKey) {
    (0, _classCallCheck2.default)(this, GlobalColorIntroduction);
    (0, _defineProperty2.default)(this, "introductionKey", void 0);
    this.introductionKey = introductionKey;
  }
  return (0, _createClass2.default)(GlobalColorIntroduction, [{
    key: "bindEvent",
    value: function bindEvent() {
      var _this = this;
      $e.routes.on('run:after', function (component, route, args) {
        var _controlView$model;
        // Prevent the Tooltip from appearing when the event is triggered from site-settings.
        if (!$e.routes.isPartOf('panel/editor')) {
          return;
        }
        var controlView = _this.getControlView(args.activeControl);
        if ('color' !== (controlView === null || controlView === void 0 || (_controlView$model = controlView.model) === null || _controlView$model === void 0 || (_controlView$model = _controlView$model.attributes) === null || _controlView$model === void 0 ? void 0 : _controlView$model.type)) {
          return;
        }
        _this.tooltip.show(controlView.el);
        _this.tooltip.setViewed();
      });
    }
  }, {
    key: "getControlView",
    value: function getControlView(control) {
      if (!control) {
        return null;
      }
      var editor = elementor.getPanelView().getCurrentPageView();
      var currentView = editor.content ? editor.content.currentView : editor;
      return $e.components.get('panel').getControlViewByPath(currentView, control);
    }
  }, {
    key: "initTooltip",
    value: function initTooltip() {
      var _this2 = this;
      this.tooltip = new elementorModules.editor.utils.Introduction({
        introductionKey: this.introductionKey,
        dialogType: 'tooltip',
        dialogOptions: {
          headerMessage: __('Check out Global Colors', 'elementor'),
          message: sprintf(
          // eslint-disable-next-line @wordpress/i18n-translator-comments
          __('Save time by applying Global Colors to change the style of multiple elements at once. Click %s to see what Global Colors you already have.', 'elementor'), "<i class='eicon-globe'></i>"),
          position: {
            my: (elementorCommon.config.isRTL ? 'left' : 'right') + '0 top0',
            at: (elementorCommon.config.isRTL ? 'left' : 'right') + ' top-10'
          },
          hide: {
            onOutsideClick: false,
            onBackgroundClick: false,
            onEscKeyPress: false
          }
        }
      });
      this.tooltip.getDialog().addButton({
        name: 'action',
        text: __('Got it!', 'elementor'),
        classes: 'elementor-button e-primary',
        callback: function callback() {
          return _this2.tooltip.getDialog().hide();
        }
      });
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/introduction-tooltips/tooltips/global-font-introduction.js":
/*!******************************************************************************************!*\
  !*** ../assets/dev/js/editor/introduction-tooltips/tooltips/global-font-introduction.js ***!
  \******************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];


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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var GlobalFontIntroduction = exports["default"] = /*#__PURE__*/function () {
  function GlobalFontIntroduction(introductionKey) {
    (0, _classCallCheck2.default)(this, GlobalFontIntroduction);
    (0, _defineProperty2.default)(this, "introductionKey", void 0);
    this.introductionKey = introductionKey;
  }
  return (0, _createClass2.default)(GlobalFontIntroduction, [{
    key: "bindEvent",
    value: function bindEvent() {
      var _this = this;
      $e.routes.on('run:after', function (component, route, args) {
        var _controlView$model;
        // Prevent the Tooltip from appearing when the event is triggered from site-settings.
        if (!$e.routes.isPartOf('panel/editor')) {
          return;
        }
        var controlView = _this.getControlView(args.activeControl);
        if ('popover_toggle' !== (controlView === null || controlView === void 0 || (_controlView$model = controlView.model) === null || _controlView$model === void 0 || (_controlView$model = _controlView$model.attributes) === null || _controlView$model === void 0 ? void 0 : _controlView$model.type)) {
          return;
        }
        _this.tooltip.show(controlView.el);
        _this.tooltip.setViewed();
      });
    }
  }, {
    key: "getControlView",
    value: function getControlView(control) {
      if (!control) {
        return null;
      }
      var editor = elementor.getPanelView().getCurrentPageView();
      var currentView = editor.content ? editor.content.currentView : editor;
      return $e.components.get('panel').getControlViewByPath(currentView, control);
    }
  }, {
    key: "initTooltip",
    value: function initTooltip() {
      var _this2 = this;
      this.tooltip = new elementorModules.editor.utils.Introduction({
        introductionKey: this.introductionKey,
        dialogType: 'tooltip',
        dialogOptions: {
          headerMessage: __('Check out Global Fonts', 'elementor'),
          message: sprintf(
          // eslint-disable-next-line @wordpress/i18n-translator-comments
          __('Save time by applying Global Fonts to change the style of multiple elements at once. Click %s to see what Global Fonts you already have.', 'elementor'), "<i class='eicon-globe'></i>"),
          position: {
            my: (elementorCommon.config.isRTL ? 'left' : 'right') + '0 top0',
            at: (elementorCommon.config.isRTL ? 'left' : 'right') + ' top-10'
          },
          hide: {
            onOutsideClick: false,
            onBackgroundClick: false,
            onEscKeyPress: false
          }
        }
      });
      this.tooltip.getDialog().addButton({
        name: 'action',
        text: __('Got it!', 'elementor'),
        classes: 'elementor-button e-primary',
        callback: function callback() {
          return _this2.tooltip.getDialog().hide();
        }
      });
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/regions/base.js":
/*!***********************************************!*\
  !*** ../assets/dev/js/editor/regions/base.js ***!
  \***********************************************/
/***/ ((module) => {

"use strict";


module.exports = Marionette.Region.extend({
  storage: null,
  storageSizeKeys: null,
  constructor: function constructor() {
    Marionette.Region.prototype.constructor.apply(this, arguments);
    var savedStorage = elementorCommon.storage.get(this.getStorageKey());
    this.storage = savedStorage ? savedStorage : this.getDefaultStorage();
    this.storageSizeKeys = Object.keys(this.storage.size);
  },
  saveStorage: function saveStorage(key, value) {
    this.storage[key] = value;
    elementorCommon.storage.set(this.getStorageKey(), this.storage);
  },
  saveSize: function saveSize(size) {
    if (!size) {
      size = elementor.helpers.getElementInlineStyle(this.$el, this.storageSizeKeys);
    }
    this.saveStorage('size', size);
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/regions/navigator/commands/close.js":
/*!*******************************************************************!*\
  !*** ../assets/dev/js/editor/regions/navigator/commands/close.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"] = exports.Close = 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"));
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; })(); }
var Close = exports.Close = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Close() {
    (0, _classCallCheck2.default)(this, Close);
    return _callSuper(this, Close, arguments);
  }
  (0, _inherits2.default)(Close, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Close, [{
    key: "apply",
    value: function apply() {
      return this.component.close();
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Close;

/***/ }),

/***/ "../assets/dev/js/editor/regions/navigator/commands/expand-all.js":
/*!************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/navigator/commands/expand-all.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"] = exports.ExpandAll = 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"));
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; })(); }
var ExpandAll = exports.ExpandAll = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function ExpandAll() {
    (0, _classCallCheck2.default)(this, ExpandAll);
    return _callSuper(this, ExpandAll, arguments);
  }
  (0, _inherits2.default)(ExpandAll, _$e$modules$CommandBa);
  return (0, _createClass2.default)(ExpandAll, [{
    key: "apply",
    value: function apply() {
      if (this.component.isOpen) {
        this.expandAllElements();
      } else {
        this.openNavigator();
      }
    }
  }, {
    key: "openNavigator",
    value: function openNavigator() {
      $e.run('navigator/open', {
        expandAllElements: true
      });
    }
  }, {
    key: "expandAllElements",
    value: function expandAllElements() {
      this.component.manager.currentView.elements.currentView.recursiveChildInvoke('toggleList', true);
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = ExpandAll;

/***/ }),

/***/ "../assets/dev/js/editor/regions/navigator/commands/index.js":
/*!*******************************************************************!*\
  !*** ../assets/dev/js/editor/regions/navigator/commands/index.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Close", ({
  enumerable: true,
  get: function get() {
    return _close.Close;
  }
}));
Object.defineProperty(exports, "ExpandAll", ({
  enumerable: true,
  get: function get() {
    return _expandAll.ExpandAll;
  }
}));
Object.defineProperty(exports, "Open", ({
  enumerable: true,
  get: function get() {
    return _open.Open;
  }
}));
Object.defineProperty(exports, "Toggle", ({
  enumerable: true,
  get: function get() {
    return _toggle.Toggle;
  }
}));
var _close = __webpack_require__(/*! ./close */ "../assets/dev/js/editor/regions/navigator/commands/close.js");
var _expandAll = __webpack_require__(/*! ./expand-all */ "../assets/dev/js/editor/regions/navigator/commands/expand-all.js");
var _open = __webpack_require__(/*! ./open */ "../assets/dev/js/editor/regions/navigator/commands/open.js");
var _toggle = __webpack_require__(/*! ./toggle */ "../assets/dev/js/editor/regions/navigator/commands/toggle.js");

/***/ }),

/***/ "../assets/dev/js/editor/regions/navigator/commands/open.js":
/*!******************************************************************!*\
  !*** ../assets/dev/js/editor/regions/navigator/commands/open.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"] = exports.Open = 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"));
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; })(); }
var Open = exports.Open = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Open() {
    (0, _classCallCheck2.default)(this, Open);
    return _callSuper(this, Open, arguments);
  }
  (0, _inherits2.default)(Open, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Open, [{
    key: "apply",
    value: function apply(args) {
      $e.route(this.component.getNamespace(), args);
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Open;

/***/ }),

/***/ "../assets/dev/js/editor/regions/navigator/commands/toggle.js":
/*!********************************************************************!*\
  !*** ../assets/dev/js/editor/regions/navigator/commands/toggle.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"] = exports.Toggle = 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"));
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; })(); }
var Toggle = exports.Toggle = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Toggle() {
    (0, _classCallCheck2.default)(this, Toggle);
    return _callSuper(this, Toggle, arguments);
  }
  (0, _inherits2.default)(Toggle, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Toggle, [{
    key: "apply",
    value: function apply() {
      if (this.component.isOpen) {
        $e.run('navigator/close');
      } else {
        $e.run('navigator/open');
      }
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Toggle;

/***/ }),

/***/ "../assets/dev/js/editor/regions/navigator/component.js":
/*!**************************************************************!*\
  !*** ../assets/dev/js/editor/regions/navigator/component.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.js"));
var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../assets/dev/js/editor/regions/navigator/commands/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _ComponentBase);
  return (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'navigator';
    }
  }, {
    key: "defaultRoutes",
    value: function defaultRoutes() {
      return {
        '': function _() {}
      };
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }
  }, {
    key: "defaultShortcuts",
    value: function defaultShortcuts() {
      return {
        toggle: {
          keys: 'ctrl+i',
          dependency: function dependency() {
            return elementor.getPreviewContainer().isEditable();
          }
        }
      };
    }
  }, {
    key: "open",
    value: function open(args) {
      var _args$model = args.model,
        model = _args$model === void 0 ? false : _args$model,
        _args$expandAllElemen = args.expandAllElements,
        expandAllElements = _args$expandAllElemen === void 0 ? false : _args$expandAllElemen;
      this.manager.open(model, {
        expandAllElements: expandAllElements
      });
      return true;
    }
  }, {
    key: "close",
    value: function close(silent) {
      if (!_superPropGet(Component, "close", this, 3)([])) {
        return false;
      }
      this.manager.close(silent);
      return true;
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/regions/navigator/element-empty.js":
/*!******************************************************************!*\
  !*** ../assets/dev/js/editor/regions/navigator/element-empty.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"));
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; })(); }
var _default = exports["default"] = /*#__PURE__*/function (_Marionette$ItemView) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _Marionette$ItemView);
  return (0, _createClass2.default)(_default, [{
    key: "getTemplate",
    value: function getTemplate() {
      return '#tmpl-elementor-navigator__elements--empty';
    }
  }, {
    key: "className",
    value: function className() {
      return 'elementor-empty-view';
    }
  }, {
    key: "onRender",
    value: function onRender() {
      this.$el.css('padding-inline-start', this.getOption('indent') + 'px');
    }
  }]);
}(Marionette.ItemView);

/***/ }),

/***/ "../assets/dev/js/editor/regions/navigator/element.js":
/*!************************************************************!*\
  !*** ../assets/dev/js/editor/regions/navigator/element.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 _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 _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 _elementEmpty = _interopRequireDefault(__webpack_require__(/*! ./element-empty */ "../assets/dev/js/editor/regions/navigator/element-empty.js"));
var _rootEmpty = _interopRequireDefault(__webpack_require__(/*! ./root-empty */ "../assets/dev/js/editor/regions/navigator/root-empty.js"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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; })(); }
var NEW_NESTABLE_CLASS = 'elementor-navigator__element-new-nestable';
var _default = exports["default"] = /*#__PURE__*/function (_Marionette$Composite) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _Marionette$Composite);
  return (0, _createClass2.default)(_default, [{
    key: "getTemplate",
    value: function getTemplate() {
      return '#tmpl-elementor-navigator__elements';
    }
  }, {
    key: "ui",
    value: function ui() {
      return {
        item: '> .elementor-navigator__item',
        title: '> .elementor-navigator__item .elementor-navigator__element__title__text',
        toggle: '> .elementor-navigator__item > .elementor-navigator__element__toggle',
        toggleList: '> .elementor-navigator__item > .elementor-navigator__element__list-toggle',
        indicators: '> .elementor-navigator__item > .elementor-navigator__element__indicators',
        indicator: '> .elementor-navigator__item > .elementor-navigator__element__indicators > .elementor-navigator__element__indicator',
        elements: '> .elementor-navigator__elements',
        icon: '> .elementor-navigator__item .elementor-navigator__element__element-type'
      };
    }
  }, {
    key: "events",
    value: function events() {
      return {
        contextmenu: 'onContextMenu',
        'click @ui.item': 'onItemClick',
        'keydown @ui.item': 'onItemPress',
        'click @ui.toggle': 'onToggleClick',
        'click @ui.toggleList': 'onToggleListClick',
        'click @ui.indicator': 'onIndicatorClick',
        'dblclick @ui.title': 'onTitleDoubleClick',
        'keydown @ui.title': 'onTitleKeyDown',
        'paste @ui.title': 'onTitlePaste',
        'sortstart @ui.elements': 'onSortStart',
        'sortover @ui.elements': 'onSortOver',
        'sortout @ui.elements': 'onSortOut',
        'sortstop @ui.elements': 'onSortStop',
        'sortupdate @ui.elements': 'onSortUpdate',
        'sortreceive @ui.elements': 'onSortReceive'
      };
    }
  }, {
    key: "getEmptyView",
    value: function getEmptyView() {
      if (this.isNavigatorContainer()) {
        return _rootEmpty.default;
      }
      if (this.hasChildren()) {
        return _elementEmpty.default;
      }
      return null;
    }
  }, {
    key: "childViewOptions",
    value: function childViewOptions() {
      return {
        indent: this.getIndent() + 10
      };
    }
  }, {
    key: "className",
    value: function className() {
      var classes = 'elementor-navigator__element';
      var elType = this.model.get('elType');
      if (!this.isNavigatorContainer()) {
        classes += ' elementor-navigator__element-' + elType;
        if (!this.isExcludedNestableElement()) {
          classes += ' ' + NEW_NESTABLE_CLASS;
        }
      }
      if (this.hasChildren()) {
        classes += ' elementor-navigator__element--has-children';
      }
      return classes;
    }
  }, {
    key: "getSortableClassName",
    value: function getSortableClassName() {
      var elType = this.model.get('elType');
      // Excluded nestable elements (section, column) should have their own unique class,
      // so that they won't be connected with new nestable elements (container, div-block).
      if (this.isExcludedNestableElement()) {
        return 'elementor-navigator__element-' + elType;
      }
      return NEW_NESTABLE_CLASS;
    }
  }, {
    key: "attributes",
    value: function attributes() {
      return {
        'data-id': this.model.id,
        'data-model-cid': this.model.cid
      };
    }
  }, {
    key: "templateHelpers",
    value: function templateHelpers() {
      var helpers = {};
      if (!this.isNavigatorContainer()) {
        helpers.title = this.model.getTitle();
        helpers.icon = 'section' === this.model.get('elType') ? '' : this.model.getIcon();
      }
      return helpers;
    }
  }, {
    key: "isProPromotion",
    value: function isProPromotion() {
      var _elementor$widgetsCac;
      var elType = this.model.get('elType');
      return !!((_elementor$widgetsCac = elementor.widgetsCache) !== null && _elementor$widgetsCac !== void 0 && (_elementor$widgetsCac = _elementor$widgetsCac[elType]) !== null && _elementor$widgetsCac !== void 0 && (_elementor$widgetsCac = _elementor$widgetsCac.meta) !== null && _elementor$widgetsCac !== void 0 && _elementor$widgetsCac.is_pro_promotion);
    }
  }, {
    key: "shouldShowChildrenInStructure",
    value: function shouldShowChildrenInStructure() {
      if (this.isProPromotion()) {
        return false;
      }
      return elementor.hooks.applyFilters('navigator/element/show-children', true, this.model);
    }
  }, {
    key: "initialize",
    value: function initialize() {
      this.collection = this.isProPromotion() ? new Backbone.Collection() : this.model.get('elements');
      this.childViewContainer = '.elementor-navigator__elements';
      this.listenTo(this.model, 'change', this.onModelChange).listenTo(this.model.get('settings'), 'change', this.onModelSettingsChange);
      this.listenTo(this.model, 'change:editor_settings', this.onModelEditorSettingsChange);
      this.listenTo(this.model, 'title_external_change', this.onTitleExternalChange);
      this.listenTo(this.model, 'navigator:add', this.onNavigatorAdd);
      this._onRefreshChildrenRequest = this._onRefreshChildrenRequest.bind(this);
      window.addEventListener('elementor/navigator/refresh-children', this._onRefreshChildrenRequest);
    }
  }, {
    key: "onDestroy",
    value: function onDestroy() {
      window.removeEventListener('elementor/navigator/refresh-children', this._onRefreshChildrenRequest);
    }
  }, {
    key: "_onRefreshChildrenRequest",
    value: function _onRefreshChildrenRequest(event) {
      var _event$detail;
      var targetId = event === null || event === void 0 || (_event$detail = event.detail) === null || _event$detail === void 0 ? void 0 : _event$detail.elementId;
      if (targetId && this.model.get('id') !== targetId) {
        return;
      }
      this.render();
      this.syncNavigatorStructureState();
      this.updateSelection();
    }
  }, {
    key: "addChild",
    value: function addChild(child, ChildView, index) {
      if (!this.shouldShowChildrenInStructure()) {
        return;
      }
      return Marionette.CompositeView.prototype.addChild.call(this, child, ChildView, index);
    }
  }, {
    key: "onNavigatorAdd",
    value: function onNavigatorAdd(childModel, options) {
      this._onCollectionAdd(childModel, this.collection, options || {});
    }
  }, {
    key: "onTitleExternalChange",
    value: function onTitleExternalChange() {
      this.ui.title.text(this.model.getTitle());
    }
  }, {
    key: "onModelEditorSettingsChange",
    value: function onModelEditorSettingsChange(elementModel, editorSettings) {
      var _elementModel$changed;
      if (undefined !== ((_elementModel$changed = elementModel.changed) === null || _elementModel$changed === void 0 || (_elementModel$changed = _elementModel$changed.editor_settings) === null || _elementModel$changed === void 0 ? void 0 : _elementModel$changed.title)) {
        this.ui.title.text(editorSettings.title);
      }
      window.dispatchEvent(new CustomEvent('elementor/element/update_editor_settings', {
        detail: {
          element: elementModel,
          editorSettings: editorSettings
        }
      }));
    }
  }, {
    key: "getIndent",
    value: function getIndent() {
      return this.getOption('indent') || 0;
    }
  }, {
    key: "isExcludedNestableElement",
    value: function isExcludedNestableElement() {
      return ['section', 'column'].includes(this.model.get('elType'));
    }
  }, {
    key: "isNavigatorContainer",
    value: function isNavigatorContainer() {
      return !this.model.get('elType');
    }
  }, {
    key: "hasChildren",
    value: function hasChildren() {
      var _this$model$get;
      if (!this.shouldShowChildrenInStructure()) {
        return false;
      }
      return ((_this$model$get = this.model.get('elements')) === null || _this$model$get === void 0 ? void 0 : _this$model$get.length) || 'widget' !== this.model.get('elType');
    }
  }, {
    key: "toggleList",
    value: function toggleList(state, callback) {
      if (!this.hasChildren() || this.isNavigatorContainer()) {
        return;
      }
      var isActive = this.ui.item.hasClass('elementor-active');
      if (isActive === state) {
        return;
      }
      this.ui.item.toggleClass('elementor-active', state);
      var slideMethod = 'slideToggle';
      if (undefined !== state) {
        slideMethod = 'slide' + (state ? 'Down' : 'Up');
      }
      this.ui.elements[slideMethod](300, callback);
    }
  }, {
    key: "toggleHiddenClass",
    value: function toggleHiddenClass() {
      this.$el.toggleClass('elementor-navigator__element--hidden', this.model.getVisibility());
    }
  }, {
    key: "recursiveChildInvoke",
    value: function recursiveChildInvoke(method) {
      var _arguments = arguments,
        _this = this;
      for (var _len = arguments.length, restArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
        restArgs[_key - 1] = arguments[_key];
      }
      this[method].apply(this, restArgs);
      this.children.each(function (child) {
        if (!(child instanceof _this.constructor)) {
          return;
        }
        child.recursiveChildInvoke.apply(child, _arguments);
      });
    }
  }, {
    key: "recursiveParentInvoke",
    value: function recursiveParentInvoke(method) {
      for (var _len2 = arguments.length, restArgs = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
        restArgs[_key2 - 1] = arguments[_key2];
      }
      if (!(this._parent instanceof this.constructor)) {
        return;
      }
      this._parent[method].apply(this._parent, restArgs);
      this._parent.recursiveParentInvoke.apply(this._parent, arguments);
    }
  }, {
    key: "recursiveChildAgreement",
    value: function recursiveChildAgreement(method) {
      for (var _len3 = arguments.length, restArgs = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
        restArgs[_key3 - 1] = arguments[_key3];
      }
      if (!this[method].apply(this, restArgs)) {
        return false;
      }
      var hasAgreement = true;
      for (var _i = 0, _Object$values = Object.values(this.children._views); _i < _Object$values.length; _i++) {
        var child = _Object$values[_i];
        if (!(child instanceof this.constructor)) {
          continue;
        }
        if (!child.recursiveChildAgreement.apply(child, arguments)) {
          hasAgreement = false;
          break;
        }
      }
      return hasAgreement;
    }
  }, {
    key: "activateMouseInteraction",
    value: function activateMouseInteraction() {
      this.$el.on({
        mouseenter: this.onMouseEnter.bind(this),
        mouseleave: this.onMouseLeave.bind(this)
      });
    }
  }, {
    key: "deactivateMouseInteraction",
    value: function deactivateMouseInteraction() {
      this.$el.off('mouseenter mouseleave');
    }
  }, {
    key: "dragShouldBeIgnored",
    value: function dragShouldBeIgnored(draggedModel) {
      return !this.model.isValidChild(draggedModel);
    }
  }, {
    key: "addEditingClass",
    value: function addEditingClass() {
      this.ui.item.addClass('elementor-editing');
    }
  }, {
    key: "removeEditingClass",
    value: function removeEditingClass() {
      this.ui.item.removeClass('elementor-editing');
    }
  }, {
    key: "enterTitleEditing",
    value: function enterTitleEditing() {
      this.ui.title.attr('contenteditable', true).focus();
      document.execCommand('selectAll');
      elementor.addBackgroundClickListener('navigator', {
        ignore: this.ui.title,
        callback: this.exitTitleEditing.bind(this)
      });
    }
  }, {
    key: "exitTitleEditing",
    value: function exitTitleEditing() {
      this.ui.title.attr('contenteditable', false);
      var settingsModel = this.model.get('settings'),
        oldTitle = settingsModel.get('_title'),
        newTitle = this.ui.title.text().trim();

      // When there isn't an old title and a new title, allow backbone to recognize the `set` as a change
      if (!oldTitle) {
        settingsModel.unset('_title', {
          silent: true
        });
      }
      if (elementor.helpers.isAtomicWidget(this.model)) {
        var prevEditorSettings = this.model.get('editor_settings');
        this.model.set('editor_settings', _objectSpread(_objectSpread({}, prevEditorSettings), {}, {
          title: newTitle
        }));
      } else {
        settingsModel.set('_title', newTitle);
      }

      // TODO: Remove - After merge pull request #13605.
      $e.internal('document/save/set-is-modified', {
        status: true
      });
      elementor.removeBackgroundClickListener('navigator');
    }

    /*
    * This will initialize all the sortables https://jqueryui.com/sortable/
    * each component in the navigator is a sortable.
    * We connect the sortables of the same type so items can be moved between them using the 'connectWith' parameter.
     */
  }, {
    key: "activateSortable",
    value: function activateSortable() {
      if (!elementor.userCan('design')) {
        return;
      }
      this.ui.elements.sortable({
        items: '> .elementor-navigator__element',
        placeholder: 'ui-sortable-placeholder',
        axis: 'y',
        forcePlaceholderSize: true,
        connectWith: '.' + this.getSortableClassName() + ' > .elementor-navigator__elements',
        cancel: '[contenteditable="true"], [data-locked="true"]'
      });
    }
  }, {
    key: "renderIndicators",
    value: function renderIndicators() {
      var _this2 = this;
      var settings = this.model.get('settings').attributes;
      this.ui.indicators.empty();
      jQuery.each(elementor.navigator.indicators, function (indicatorName, indicatorSettings) {
        var isShouldBeIndicated = indicatorSettings.settingKeys.some(function (key) {
          return settings[key];
        });
        if (!isShouldBeIndicated) {
          return;
        }
        var $indicator = jQuery('<div>', {
          class: 'elementor-navigator__element__indicator',
          title: indicatorSettings.title
        }).attr('data-section', indicatorSettings.section).html("<i class=\"eicon-".concat(indicatorSettings.icon, "\"></i>"));
        _this2.ui.indicators.append($indicator);

        // Added delay of 500ms because the indicators bar has a CSS transition attribute of .5s
        $indicator.tipsy({
          delayIn: 300,
          gravity: 's'
        });
      });
    }

    /**
     * Update the selection of the current navigator element according to it's corresponding document element.
     */
  }, {
    key: "updateSelection",
    value: function updateSelection() {
      if (Object.keys(elementor.selection.elements).includes(this.model.get('id'))) {
        this.select();
      } else {
        this.deselect();
      }
    }

    /**
     * Select the element.
     */
  }, {
    key: "select",
    value: function select() {
      this.recursiveParentInvoke('toggleList', true);
      this.addEditingClass();
      elementor.helpers.scrollToView(this.$el, 400, elementor.navigator.getLayout().elements.$el);
    }

    /**
     * Deselect the element.
     */
  }, {
    key: "deselect",
    value: function deselect() {
      this.removeEditingClass();
    }
  }, {
    key: "onRender",
    value: function onRender() {
      this.activateSortable();
      if (this.isNavigatorContainer()) {
        return;
      }
      this.ui.item.css('padding-inline-start', this.getIndent() + 'px');
      this.toggleHiddenClass();
      this.renderIndicators();
      this.syncNavigatorStructureState();
    }
  }, {
    key: "onModelChange",
    value: function onModelChange() {
      var _this$model$changed$e;
      if (undefined !== this.model.changed.hidden || undefined !== ((_this$model$changed$e = this.model.changed.editor_settings) === null || _this$model$changed$e === void 0 ? void 0 : _this$model$changed$e.is_hidden)) {
        this.toggleHiddenClass();
      }
    }
  }, {
    key: "onModelSettingsChange",
    value: function onModelSettingsChange(settingsModel) {
      var _this3 = this;
      if (undefined !== settingsModel.changed._title) {
        this.ui.title.text(this.model.getTitle());
      }
      if (undefined !== settingsModel.changed.presetTitle && undefined === settingsModel._title) {
        this.ui.title.text(this.model.getTitle());
      }
      if (undefined !== settingsModel.changed.presetIcon) {
        this.ui.icon.html("<i class=\"".concat(this.model.attributes.icon, "\"></i>"));
      }
      jQuery.each(elementor.navigator.indicators, function (indicatorName, indicatorSettings) {
        if (Object.keys(settingsModel.changed).filter(function (key) {
          return indicatorSettings.settingKeys.includes(key);
        }).length) {
          _this3.renderIndicators();
          return false;
        }
      });
    }
  }, {
    key: "syncNavigatorStructureState",
    value: function syncNavigatorStructureState() {
      if (this.isNavigatorContainer()) {
        return;
      }
      this.$el.toggleClass('elementor-navigator__element--has-children', !!this.hasChildren());
    }
  }, {
    key: "onItemPress",
    value: function onItemPress(event) {
      var ENTER_KEY = 13,
        SPACE_KEY = 32;
      if (ENTER_KEY === event.keyCode) {
        this.onItemClick(event);
        return;
      }
      if (SPACE_KEY === event.keyCode) {
        this.onToggleListClick(event);
      }
    }
  }, {
    key: "onItemClick",
    value: function onItemClick(event) {
      window.dispatchEvent(new CustomEvent('elementor/navigator/item/click', {
        detail: {
          id: this.model.get('id'),
          type: this.model.get('elType')
        }
      }));
      this.model.trigger('request:edit', {
        append: event.ctrlKey || event.metaKey,
        scrollIntoView: true
      });
    }
  }, {
    key: "onToggleClick",
    value: function onToggleClick(event) {
      event.stopPropagation();
      this.model.trigger('request:toggleVisibility');
    }
  }, {
    key: "onTitleDoubleClick",
    value: function onTitleDoubleClick() {
      this.enterTitleEditing();
    }
  }, {
    key: "onTitleKeyDown",
    value: function onTitleKeyDown(event) {
      var ENTER_KEY = 13;
      if (ENTER_KEY === event.which) {
        event.preventDefault();
        this.exitTitleEditing();
      }
    }
  }, {
    key: "onTitlePaste",
    value: function onTitlePaste(event) {
      event.preventDefault();
      document.execCommand('insertHTML', false, event.originalEvent.clipboardData.getData('text/plain'));
    }
  }, {
    key: "onToggleListClick",
    value: function onToggleListClick(event) {
      event.stopPropagation();
      this.toggleList();
    }
  }, {
    key: "onSortStart",
    value: function onSortStart(event, ui) {
      this.model.trigger('request:sort:start', event, ui);
      jQuery(ui.item).children('.elementor-navigator__item').trigger('click');
      elementor.navigator.getLayout().activateElementsMouseInteraction();
    }
  }, {
    key: "onSortStop",
    value: function onSortStop() {
      elementor.navigator.getLayout().deactivateElementsMouseInteraction();
    }
  }, {
    key: "onSortOver",
    value: function onSortOver(event) {
      event.stopPropagation();
      this.$el.addClass('elementor-dragging-on-child');
    }
  }, {
    key: "onSortOut",
    value: function onSortOut(event) {
      event.stopPropagation();
      this.$el.removeClass('elementor-dragging-on-child');
    }
  }, {
    key: "onSortUpdate",
    value: function onSortUpdate(event, ui) {
      event.stopPropagation();
      if (!this.ui.elements.is(ui.item.parent())) {
        return;
      }
      this.model.trigger('request:sort:update', ui);
    }
  }, {
    key: "onSortReceive",
    value: function onSortReceive(event, ui) {
      this.model.trigger('request:sort:receive', event, ui);
    }
  }, {
    key: "onMouseEnter",
    value: function onMouseEnter(event) {
      var _this4 = this;
      event.stopPropagation();
      var dragShouldBeIgnored = this.recursiveChildAgreement('dragShouldBeIgnored', elementor.channels.data.request('dragging:model'));
      if (dragShouldBeIgnored) {
        return;
      }
      this.autoExpandTimeout = setTimeout(function () {
        _this4.toggleList(true, function () {
          _this4.ui.elements.sortable('refreshPositions');
        });
      }, 500);
    }
  }, {
    key: "onMouseLeave",
    value: function onMouseLeave(event) {
      event.stopPropagation();
      clearTimeout(this.autoExpandTimeout);
    }
  }, {
    key: "onContextMenu",
    value: function onContextMenu(event) {
      this.model.trigger('request:contextmenu', event, {
        location: elementorCommon.eventsManager.config.locations.structurePanel
      });
    }
  }, {
    key: "onEditRequest",
    value: function onEditRequest() {
      elementor.navigator.getLayout().elements.currentView.recursiveChildInvoke('removeEditingClass');
      this.select(true);
    }
  }, {
    key: "onIndicatorClick",
    value: function onIndicatorClick(event) {
      var section = event.currentTarget.dataset.section;
      setTimeout(function () {
        var editor = elementor.getPanelView().currentPageView,
          tab = editor.getControlModel(section).get('tab');
        editor.activateSection(section);
        editor.activateTab(tab);
        editor.render();
      });
    }
  }]);
}(Marionette.CompositeView);

/***/ }),

/***/ "../assets/dev/js/editor/regions/navigator/layout.js":
/*!***********************************************************!*\
  !*** ../assets/dev/js/editor/regions/navigator/layout.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 _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 _element = _interopRequireDefault(__webpack_require__(/*! ./element */ "../assets/dev/js/editor/regions/navigator/element.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; })(); }
var _default = exports["default"] = /*#__PURE__*/function (_Marionette$LayoutVie) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _Marionette$LayoutVie);
  return (0, _createClass2.default)(_default, [{
    key: "getTemplate",
    value: function getTemplate() {
      return '#tmpl-elementor-navigator';
    }
  }, {
    key: "id",
    value: function id() {
      return 'elementor-navigator__inner';
    }
  }, {
    key: "ui",
    value: function ui() {
      return {
        toggleButton: '#elementor-navigator__toggle-all',
        toggleButtonIcon: '#elementor-navigator__toggle-all i',
        toggleButtonA11yText: '#elementor-navigator__toggle-all span',
        closeButton: '#elementor-navigator__close'
      };
    }
  }, {
    key: "behaviors",
    value: function behaviors() {
      var behaviors = {};
      return elementor.hooks.applyFilters('navigator/layout/behaviors', behaviors, this);
    }
  }, {
    key: "events",
    value: function events() {
      return {
        'click @ui.toggleButton': 'toggleElements',
        'click @ui.closeButton': 'onCloseButtonClick',
        'keyup @ui.closeButton': 'onCloseButtonKeyPress'
      };
    }
  }, {
    key: "regions",
    value: function regions() {
      return {
        elements: '#elementor-navigator__elements'
      };
    }
  }, {
    key: "toggleElements",
    value: function toggleElements() {
      var state = 'expand' === this.ui.toggleButton.data('elementor-action'),
        a11yText = state ? __('Collapse all elements', 'elementor') : __('Expand all elements', 'elementor'),
        classes = ['eicon-collapse', 'eicon-expand'];
      this.ui.toggleButton.data('elementor-action', state ? 'collapse' : 'expand');
      this.ui.toggleButtonIcon.removeClass(classes[+state]).addClass(classes[+!state]);
      this.ui.toggleButtonA11yText.text(a11yText);
      this.elements.currentView.recursiveChildInvoke('toggleList', state);
    }
  }, {
    key: "activateElementsMouseInteraction",
    value: function activateElementsMouseInteraction() {
      this.elements.currentView.recursiveChildInvoke('activateMouseInteraction');
    }
  }, {
    key: "deactivateElementsMouseInteraction",
    value: function deactivateElementsMouseInteraction() {
      this.elements.currentView.recursiveChildInvoke('deactivateMouseInteraction');
    }

    /**
     * Recursively update elements selection in the navigator.
     */
  }, {
    key: "updateSelection",
    value: function updateSelection() {
      this.elements.currentView.recursiveChildInvoke('updateSelection');
    }
  }, {
    key: "onShow",
    value: function onShow() {
      this.elements.show(new _element.default({
        model: elementor.elementsModel
      }));
    }
  }, {
    key: "onCloseButtonClick",
    value: function onCloseButtonClick() {
      $e.components.get('navigator').close();
    }
  }, {
    key: "onCloseButtonKeyPress",
    value: function onCloseButtonKeyPress(event) {
      var ENTER_KEY = 13;
      if (ENTER_KEY === event.keyCode) {
        this.onCloseButtonClick();
      }
    }
  }]);
}(Marionette.LayoutView);

/***/ }),

/***/ "../assets/dev/js/editor/regions/navigator/navigator.js":
/*!**************************************************************!*\
  !*** ../assets/dev/js/editor/regions/navigator/navigator.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 _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 _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../assets/dev/js/editor/regions/navigator/component.js"));
var _layout = _interopRequireDefault(__webpack_require__(/*! ./layout */ "../assets/dev/js/editor/regions/navigator/layout.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; })(); }
var BaseRegion = __webpack_require__(/*! elementor-regions/base */ "../assets/dev/js/editor/regions/base.js");
var _default = exports["default"] = /*#__PURE__*/function (_BaseRegion) {
  function _default(options) {
    var _this;
    (0, _classCallCheck2.default)(this, _default);
    _this = _callSuper(this, _default, [options]);
    _this.component = $e.components.register(new _component.default({
      manager: _this
    }));
    _this.isDocked = false;
    _this.setSize();
    _this.indicators = {
      customPosition: {
        title: __('Custom Positioning', 'elementor'),
        icon: 'cursor-move',
        settingKeys: ['_position'],
        section: '_section_position'
      }
    };
    _this.ensurePosition = _this.ensurePosition.bind(_this);
    _this.listenTo(elementor.channels.dataEditMode, 'switch', _this.onEditModeSwitched);

    // TODO: Move to hook on 'editor/documents/load'.
    elementor.on('document:loaded', _this.onDocumentLoaded.bind(_this));
    elementor.on('document:unloaded', _this.onDocumentUnloaded.bind(_this));
    return _this;
  }
  (0, _inherits2.default)(_default, _BaseRegion);
  return (0, _createClass2.default)(_default, [{
    key: "getStorageKey",
    value: function getStorageKey() {
      return 'navigator';
    }
  }, {
    key: "getDefaultStorage",
    value: function getDefaultStorage() {
      return {
        visible: true,
        size: {
          width: '',
          height: '',
          top: '',
          bottom: '',
          right: '',
          left: ''
        }
      };
    }
  }, {
    key: "getLayout",
    value: function getLayout() {
      return this.currentView;
    }
  }, {
    key: "getDraggableOptions",
    value: function getDraggableOptions() {
      return {
        iframeFix: true,
        handle: '#elementor-navigator__header',
        drag: this.onDrag.bind(this),
        stop: this.onDragStop.bind(this)
      };
    }
  }, {
    key: "getResizableOptions",
    value: function getResizableOptions() {
      var _this2 = this;
      return {
        handles: 'all',
        containment: 'document',
        minWidth: 150,
        maxWidth: 500,
        minHeight: 240,
        start: function start() {
          elementor.$previewWrapper.addClass('ui-resizable-resizing');
        },
        stop: function stop() {
          elementor.$previewWrapper.removeClass('ui-resizable-resizing');
          if (_this2.isDocked) {
            _this2.storage.size.width = elementor.helpers.getElementInlineStyle(_this2.$el, ['width']).width;
            elementorCommon.storage.set('navigator', _this2.storage);
          } else {
            _this2.saveSize();
          }
        },
        resize: function resize(event, ui) {
          _this2.setSize(ui.size.width + 'px');
        }
      };
    }
  }, {
    key: "initLayout",
    value: function initLayout() {
      this.show(new _layout.default());
      this.$el.draggable(this.getDraggableOptions());
      this.$el.resizable(this.getResizableOptions());
    }
  }, {
    key: "open",
    value: function open(model, options) {
      this.$el.show();
      this.setSize();
      if (this.storage.docked) {
        this.dock();
      }
      if (model) {
        model.trigger('request:edit');
      }
      if (options !== null && options !== void 0 && options.expandAllElements) {
        this.currentView.elements.currentView.recursiveChildInvoke('toggleList', true);
      }
      this.saveStorage('visible', true);
      this.ensurePosition();
      elementorCommon.elements.$window.on('resize', this.ensurePosition);
    }
  }, {
    key: "close",
    value: function close(silent) {
      this.$el.hide();
      if (this.isDocked) {
        this.undock(true);
      }
      if (!silent) {
        this.saveStorage('visible', false);
      }
      if (this.$el.resizable('instance')) {
        this.$el.resizable('destroy');
      }
      elementorCommon.elements.$window.off('resize', this.ensurePosition);
    }
  }, {
    key: "isOpen",
    value: function isOpen() {
      return this.$el.is(':visible');
    }
  }, {
    key: "dock",
    value: function dock() {
      elementorCommon.elements.$body.addClass('elementor-navigator-docked');
      this.setSize();
      var resizableOptions = this.getResizableOptions();
      this.$el.css({
        height: '',
        top: '',
        bottom: '',
        left: '',
        right: ''
      });
      if (this.$el.resizable('instance')) {
        this.$el.resizable('destroy');
      }
      resizableOptions.handles = elementorCommon.config.isRTL ? 'e' : 'w';
      this.$el.resizable(resizableOptions);
      this.isDocked = true;
      this.saveStorage('docked', true);
    }
  }, {
    key: "undock",
    value: function undock(silent) {
      elementorCommon.elements.$body.removeClass('elementor-navigator-docked');
      this.setSize();
      elementor.$previewWrapper.css(elementorCommon.config.isRTL ? 'left' : 'right', '');
      if (this.$el.resizable('instance')) {
        this.$el.resizable('destroy');
        this.$el.resizable(this.getResizableOptions());
      }
      this.isDocked = false;
      if (!silent) {
        this.saveStorage('docked', false);
      }
    }

    /**
     * Set the navigator size to a specific value or default to the storage-saved value.
     *
     * @param {string} size A specific new size.
     */
  }, {
    key: "setSize",
    value: function setSize() {
      var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
      if (size) {
        this.storage.size.width = size;
      } else {
        this.storage.size.width = this.storage.size.width || elementorCommon.elements.$body.css('--e-editor-navigator-width');
      }

      // Set the navigator size using a CSS variable, and remove the inline CSS that was set by jQuery Resizeable.
      elementorCommon.elements.$body.css('--e-editor-navigator-width', this.storage.size.width);
      this.$el.css('width', '');
    }
  }, {
    key: "ensurePosition",
    value: function ensurePosition() {
      if (this.isDocked) {
        return;
      }
      var offset = this.$el.offset();
      if (offset.left > innerWidth) {
        this.$el.css({
          left: '',
          right: ''
        });
      }
      if (offset.top > innerHeight) {
        this.$el.css({
          top: '',
          bottom: ''
        });
      }
    }
  }, {
    key: "onDrag",
    value: function onDrag(event, ui) {
      if (this.isDocked) {
        if (ui.position.left === ui.originalPosition.left) {
          if (ui.position.top !== ui.originalPosition.top) {
            return false;
          }
        } else {
          this.undock();
        }
        return;
      }
      if (0 > ui.position.top) {
        ui.position.top = 0;
      }
      var isOutOfLeft = 0 > ui.position.left,
        isOutOfRight = ui.position.left + this.el.offsetWidth > innerWidth;
      if (elementorCommon.config.isRTL) {
        if (isOutOfRight) {
          ui.position.left = innerWidth - this.el.offsetWidth;
        }
      } else if (isOutOfLeft) {
        ui.position.left = 0;
      }
      elementorCommon.elements.$body.toggleClass('elementor-navigator--dock-hint', elementorCommon.config.isRTL ? isOutOfLeft : isOutOfRight);
    }
  }, {
    key: "onDragStop",
    value: function onDragStop(event, ui) {
      if (this.isDocked) {
        return;
      }
      this.saveSize();
      var elementRight = ui.position.left + this.el.offsetWidth;
      if (0 > ui.position.left || elementRight > innerWidth) {
        this.dock();
      }
      elementorCommon.elements.$body.removeClass('elementor-navigator--dock-hint');
    }
  }, {
    key: "onEditModeSwitched",
    value: function onEditModeSwitched(activeMode) {
      // Determine when the navigator should be visible.
      var visibleModes = ['edit', 'picker'];
      if (visibleModes.includes(activeMode) && this.storage.visible) {
        this.open();
      } else {
        this.close(true);
      }
    }
  }, {
    key: "onDocumentLoaded",
    value: function onDocumentLoaded(document) {
      if (document.config.panel.has_elements) {
        this.initLayout();
        if (false !== this.storage.visible && !elementor.config.starter) {
          $e.route('navigator');
        }
      }
    }
  }, {
    key: "onDocumentUnloaded",
    value: function onDocumentUnloaded() {
      if (this.component.isOpen) {
        this.component.close(true);
      }
    }
  }]);
}(BaseRegion);

/***/ }),

/***/ "../assets/dev/js/editor/regions/navigator/root-empty.js":
/*!***************************************************************!*\
  !*** ../assets/dev/js/editor/regions/navigator/root-empty.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"));
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; })(); }
var _default = exports["default"] = /*#__PURE__*/function (_Marionette$ItemView) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _Marionette$ItemView);
  return (0, _createClass2.default)(_default, [{
    key: "getTemplate",
    value: function getTemplate() {
      return '#tmpl-elementor-navigator__root--empty';
    }
  }, {
    key: "className",
    value: function className() {
      return 'elementor-nerd-box';
    }
  }]);
}(Marionette.ItemView);

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/commands/change-device-mode.js":
/*!****************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/commands/change-device-mode.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"] = exports.ChangeDeviceMode = 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"));
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; })(); }
var ChangeDeviceMode = exports.ChangeDeviceMode = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function ChangeDeviceMode() {
    (0, _classCallCheck2.default)(this, ChangeDeviceMode);
    return _callSuper(this, ChangeDeviceMode, arguments);
  }
  (0, _inherits2.default)(ChangeDeviceMode, _$e$modules$CommandBa);
  return (0, _createClass2.default)(ChangeDeviceMode, [{
    key: "apply",
    value: function apply() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var devices = elementor.breakpoints.getActiveBreakpointsList({
        largeToSmall: true,
        withDesktop: true
      });
      var device = args.device;
      if (!device) {
        var currentDeviceMode = elementor.channels.deviceMode.request('currentMode');
        var modeIndex = devices.indexOf(currentDeviceMode);
        modeIndex++;
        if (modeIndex >= devices.length) {
          modeIndex = 0;
        }
        device = devices[modeIndex];
      }
      elementor.changeDeviceMode(device);
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = ChangeDeviceMode;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/commands/close.js":
/*!***************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/commands/close.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"] = exports.Close = 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"));
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; })(); }
var Close = exports.Close = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Close() {
    (0, _classCallCheck2.default)(this, Close);
    return _callSuper(this, Close, arguments);
  }
  (0, _inherits2.default)(Close, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Close, [{
    key: "apply",
    value: function apply() {
      elementor.changeEditMode('preview');
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Close;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/commands/editor-preferences.js":
/*!****************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/commands/editor-preferences.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"] = exports.EditorPreferences = 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"));
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; })(); }
var EditorPreferences = exports.EditorPreferences = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function EditorPreferences() {
    (0, _classCallCheck2.default)(this, EditorPreferences);
    return _callSuper(this, EditorPreferences, arguments);
  }
  (0, _inherits2.default)(EditorPreferences, _$e$modules$CommandBa);
  return (0, _createClass2.default)(EditorPreferences, [{
    key: "apply",
    value: function apply() {
      $e.route('panel/editor-preferences');
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = EditorPreferences;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/commands/exit.js":
/*!**************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/commands/exit.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"] = exports.Exit = 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"));
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; })(); }
var Exit = exports.Exit = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Exit() {
    (0, _classCallCheck2.default)(this, Exit);
    return _callSuper(this, Exit, arguments);
  }
  (0, _inherits2.default)(Exit, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Exit, [{
    key: "apply",
    value: function apply() {
      $e.route('panel/menu');
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Exit;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/commands/index.js":
/*!***************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/commands/index.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "ChangeDeviceMode", ({
  enumerable: true,
  get: function get() {
    return _changeDeviceMode.ChangeDeviceMode;
  }
}));
Object.defineProperty(exports, "Close", ({
  enumerable: true,
  get: function get() {
    return _close.Close;
  }
}));
Object.defineProperty(exports, "EditorPreferences", ({
  enumerable: true,
  get: function get() {
    return _editorPreferences.EditorPreferences;
  }
}));
Object.defineProperty(exports, "Exit", ({
  enumerable: true,
  get: function get() {
    return _exit.Exit;
  }
}));
Object.defineProperty(exports, "Open", ({
  enumerable: true,
  get: function get() {
    return _open.Open;
  }
}));
Object.defineProperty(exports, "PageSettings", ({
  enumerable: true,
  get: function get() {
    return _pageSettings.PageSettings;
  }
}));
Object.defineProperty(exports, "Publish", ({
  enumerable: true,
  get: function get() {
    return _publish.Publish;
  }
}));
Object.defineProperty(exports, "Save", ({
  enumerable: true,
  get: function get() {
    return _save.Save;
  }
}));
Object.defineProperty(exports, "Toggle", ({
  enumerable: true,
  get: function get() {
    return _toggle.Toggle;
  }
}));
var _changeDeviceMode = __webpack_require__(/*! ./change-device-mode */ "../assets/dev/js/editor/regions/panel/commands/change-device-mode.js");
var _pageSettings = __webpack_require__(/*! ./page-settings */ "../assets/dev/js/editor/regions/panel/commands/page-settings.js");
var _editorPreferences = __webpack_require__(/*! ./editor-preferences */ "../assets/dev/js/editor/regions/panel/commands/editor-preferences.js");
var _close = __webpack_require__(/*! ./close */ "../assets/dev/js/editor/regions/panel/commands/close.js");
var _exit = __webpack_require__(/*! ./exit */ "../assets/dev/js/editor/regions/panel/commands/exit.js");
var _open = __webpack_require__(/*! ./open */ "../assets/dev/js/editor/regions/panel/commands/open.js");
var _publish = __webpack_require__(/*! ./publish */ "../assets/dev/js/editor/regions/panel/commands/publish.js");
var _save = __webpack_require__(/*! ./save */ "../assets/dev/js/editor/regions/panel/commands/save.js");
var _toggle = __webpack_require__(/*! ./toggle */ "../assets/dev/js/editor/regions/panel/commands/toggle.js");

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/commands/internal/index.js":
/*!************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/commands/internal/index.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "OpenDefault", ({
  enumerable: true,
  get: function get() {
    return _openDefault.OpenDefault;
  }
}));
Object.defineProperty(exports, "StateLoading", ({
  enumerable: true,
  get: function get() {
    return _stateLoading.StateLoading;
  }
}));
Object.defineProperty(exports, "StateReady", ({
  enumerable: true,
  get: function get() {
    return _stateReady.StateReady;
  }
}));
var _openDefault = __webpack_require__(/*! ./open-default */ "../assets/dev/js/editor/regions/panel/commands/internal/open-default.js");
var _stateLoading = __webpack_require__(/*! ./state-loading */ "../assets/dev/js/editor/regions/panel/commands/internal/state-loading.js");
var _stateReady = __webpack_require__(/*! ./state-ready */ "../assets/dev/js/editor/regions/panel/commands/internal/state-ready.js");

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/commands/internal/open-default.js":
/*!*******************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/commands/internal/open-default.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"] = exports.OpenDefault = 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"));
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; })(); }
var OpenDefault = exports.OpenDefault = /*#__PURE__*/function (_$e$modules$CommandIn) {
  function OpenDefault() {
    (0, _classCallCheck2.default)(this, OpenDefault);
    return _callSuper(this, OpenDefault, arguments);
  }
  (0, _inherits2.default)(OpenDefault, _$e$modules$CommandIn);
  return (0, _createClass2.default)(OpenDefault, [{
    key: "apply",
    value: function apply() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      $e.route(elementor.documents.getCurrent().config.panel.default_route, args);
      return Promise.resolve();
    }
  }]);
}($e.modules.CommandInternalBase);
var _default = exports["default"] = OpenDefault;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/commands/internal/state-loading.js":
/*!********************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/commands/internal/state-loading.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"] = exports.StateLoading = 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"));
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; })(); }
var StateLoading = exports.StateLoading = /*#__PURE__*/function (_$e$modules$CommandIn) {
  function StateLoading() {
    (0, _classCallCheck2.default)(this, StateLoading);
    return _callSuper(this, StateLoading, arguments);
  }
  (0, _inherits2.default)(StateLoading, _$e$modules$CommandIn);
  return (0, _createClass2.default)(StateLoading, [{
    key: "apply",
    value: function apply() {
      elementorCommon.elements.$body.addClass('elementor-panel-loading');
    }
  }]);
}($e.modules.CommandInternalBase);
var _default = exports["default"] = StateLoading;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/commands/internal/state-ready.js":
/*!******************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/commands/internal/state-ready.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"] = exports.StateReady = 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"));
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; })(); }
var StateReady = exports.StateReady = /*#__PURE__*/function (_$e$modules$CommandIn) {
  function StateReady() {
    (0, _classCallCheck2.default)(this, StateReady);
    return _callSuper(this, StateReady, arguments);
  }
  (0, _inherits2.default)(StateReady, _$e$modules$CommandIn);
  return (0, _createClass2.default)(StateReady, [{
    key: "apply",
    value: function apply() {
      elementorCommon.elements.$body.removeClass('elementor-panel-loading');

      // Cannot be hook because not sure if it affects UI or data.
      if (!this.component.stateReadyOnce) {
        this.component.stateReadyOnce = true;
        $e.extras.hashCommands.runOnce();
      }
    }
  }]);
}($e.modules.CommandInternalBase);
var _default = exports["default"] = StateReady;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/commands/open.js":
/*!**************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/commands/open.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"] = exports.Open = 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"));
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; })(); }
var Open = exports.Open = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Open() {
    (0, _classCallCheck2.default)(this, Open);
    return _callSuper(this, Open, arguments);
  }
  (0, _inherits2.default)(Open, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Open, [{
    key: "apply",
    value: function apply() {
      elementor.changeEditMode('edit');
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Open;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/commands/page-settings.js":
/*!***********************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/commands/page-settings.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"] = exports.PageSettings = 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"));
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; })(); }
var PageSettings = exports.PageSettings = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function PageSettings() {
    (0, _classCallCheck2.default)(this, PageSettings);
    return _callSuper(this, PageSettings, arguments);
  }
  (0, _inherits2.default)(PageSettings, _$e$modules$CommandBa);
  return (0, _createClass2.default)(PageSettings, [{
    key: "apply",
    value: function apply() {
      $e.route('panel/page-settings/settings');
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = PageSettings;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/commands/publish.js":
/*!*****************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/commands/publish.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"] = exports.Publish = 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"));
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; })(); }
var Publish = exports.Publish = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Publish() {
    (0, _classCallCheck2.default)(this, Publish);
    return _callSuper(this, Publish, arguments);
  }
  (0, _inherits2.default)(Publish, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Publish, [{
    key: "apply",
    value: function apply() {
      $e.run('document/save/publish');
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Publish;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/commands/save.js":
/*!**************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/commands/save.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"] = exports.Save = 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"));
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; })(); }
var Save = exports.Save = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Save() {
    (0, _classCallCheck2.default)(this, Save);
    return _callSuper(this, Save, arguments);
  }
  (0, _inherits2.default)(Save, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Save, [{
    key: "apply",
    value: function apply() {
      $e.run('document/save/draft');
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Save;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/commands/toggle.js":
/*!****************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/commands/toggle.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"] = exports.Toggle = 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"));
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; })(); }
var Toggle = exports.Toggle = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Toggle() {
    (0, _classCallCheck2.default)(this, Toggle);
    return _callSuper(this, Toggle, arguments);
  }
  (0, _inherits2.default)(Toggle, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Toggle, [{
    key: "apply",
    value: function apply() {
      elementor.getPanelView().modeSwitcher.currentView.toggleMode();
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Toggle;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/component.js":
/*!**********************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/component.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-editor/component-base */ "../assets/dev/js/editor/component-base.js"));
var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../assets/dev/js/editor/regions/panel/commands/index.js"));
var commandsInternal = _interopRequireWildcard(__webpack_require__(/*! ./commands/internal/ */ "../assets/dev/js/editor/regions/panel/commands/internal/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
var _userInteractionsBlocked = /*#__PURE__*/new WeakMap();
var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function Component() {
    var _this;
    (0, _classCallCheck2.default)(this, Component);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, Component, [].concat(args));
    (0, _defineProperty2.default)(_this, "stateReadyOnce", false);
    _classPrivateFieldInitSpec(_this, _userInteractionsBlocked, false);
    return _this;
  }
  (0, _inherits2.default)(Component, _ComponentBase);
  return (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'panel';
    }
  }, {
    key: "defaultRoutes",
    value: function defaultRoutes() {
      var _this2 = this;
      return {
        menu: function menu() {
          return _this2.manager.setPage('menu');
        },
        'global-colors': function globalColors() {
          return _this2.manager.setPage('colorScheme');
        },
        'global-fonts': function globalFonts() {
          return _this2.manager.setPage('typographyScheme');
        },
        'editor-preferences': function editorPreferences() {
          return _this2.manager.setPage('editorPreferences_settings').activateTab('settings');
        }
      };
    }
  }, {
    key: "defaultCommandsInternal",
    value: function defaultCommandsInternal() {
      return this.importCommands(commandsInternal);
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }
  }, {
    key: "defaultShortcuts",
    value: function defaultShortcuts() {
      var _this3 = this;
      return {
        toggle: {
          keys: 'ctrl+p',
          dependency: function dependency() {
            return !_this3.isUserInteractionsBlocked();
          }
        },
        save: {
          keys: 'ctrl+s'
        },
        exit: {
          keys: 'esc',
          // TODO: replace dependency with scopes.
          dependency: function dependency() {
            return !jQuery('.dialog-widget:visible').length && isEditMode();
          },
          scopes: ['panel', 'preview']
        },
        'change-device-mode': {
          keys: 'ctrl+shift+m'
        },
        'page-settings': {
          keys: 'ctrl+shift+y',
          dependency: function dependency() {
            return isEditMode();
          }
        },
        'editor-preferences': {
          keys: 'ctrl+shift+u',
          dependency: function dependency() {
            return isEditMode();
          }
        }
      };
    }
  }, {
    key: "blockUserInteractions",
    value: function blockUserInteractions() {
      elementor.panel.$el.addClass('e-panel-block-interactions');
      _classPrivateFieldSet(_userInteractionsBlocked, this, true);
    }
  }, {
    key: "unblockUserInteractions",
    value: function unblockUserInteractions() {
      elementor.panel.$el.removeClass('e-panel-block-interactions');
      _classPrivateFieldSet(_userInteractionsBlocked, this, false);
    }
  }, {
    key: "isUserInteractionsBlocked",
    value: function isUserInteractionsBlocked() {
      return _classPrivateFieldGet(_userInteractionsBlocked, this);
    }
  }]);
}(_componentBase.default);
function isEditMode() {
  return 'edit' === elementor.channels.dataEditMode.request('activeMode');
}

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/edit-mode.js":
/*!**********************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/edit-mode.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_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");
var _environment = _interopRequireDefault(__webpack_require__(/*! elementor-common/utils/environment */ "../core/common/assets/js/utils/environment.js"));
var EditModeItemView;
EditModeItemView = Marionette.ItemView.extend({
  template: '#tmpl-elementor-mode-switcher-content',
  id: 'elementor-mode-switcher-inner',
  ui: {
    previewButton: '#elementor-mode-switcher-preview-input',
    previewLabel: '#elementor-mode-switcher-preview',
    previewLabelIcon: '#elementor-mode-switcher-preview i',
    previewLabelA11yText: '#elementor-mode-switcher-preview .elementor-screen-only'
  },
  events: {
    'change @ui.previewButton': 'onPreviewButtonChange',
    'keyup @ui.previewLabelIcon': 'onPreviewButtonKeyUp'
  },
  initialize: function initialize() {
    this.listenTo(elementor.channels.dataEditMode, 'switch', this.onEditModeChanged);
  },
  getCurrentMode: function getCurrentMode() {
    return this.ui.previewButton.is(':checked') ? 'preview' : 'edit';
  },
  setMode: function setMode(mode) {
    this.ui.previewButton.prop('checked', 'preview' === mode).trigger('change');
  },
  toggleMode: function toggleMode() {
    this.setMode(this.ui.previewButton.prop('checked') ? 'edit' : 'preview');
  },
  onRender: function onRender() {
    this.onEditModeChanged();
  },
  onPreviewButtonKeyUp: function onPreviewButtonKeyUp(event) {
    var ENTER_KEY = 13;
    if (ENTER_KEY === event.keyCode) {
      this.toggleMode();
      this.onPreviewButtonChange();
    }
  },
  onPreviewButtonChange: function onPreviewButtonChange() {
    var mode = this.getCurrentMode();
    if ('edit' === mode) {
      $e.run('panel/open');
    } else if ('preview' === mode) {
      $e.run('panel/close');
    } else {
      throw Error("Invalid mode: '".concat(mode, "'"));
    }
  },
  onEditModeChanged: function onEditModeChanged(activeMode) {
    var ctrlLabel = _environment.default.mac ? "\u2318" : 'Ctrl';
    var text = 'preview' === activeMode ? __('Show Panel', 'elementor') : __('Hide Panel', 'elementor');
    text += " (".concat(ctrlLabel, " + P)");
    this.ui.previewLabel.attr('title', text);
    this.ui.previewLabelA11yText.text(text);
  }
});
module.exports = EditModeItemView;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/footer.js":
/*!*******************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/footer.js ***!
  \*******************************************************/
/***/ ((module) => {

"use strict";


module.exports = Marionette.ItemView.extend({
  template: '#tmpl-elementor-panel-footer-content',
  tagName: 'nav',
  id: 'elementor-panel-footer-tools',
  possibleRotateModes: ['portrait', 'landscape'],
  ui: {
    menuButtons: '.elementor-panel-footer-tool',
    settings: '#elementor-panel-footer-settings',
    deviceModeIcon: '#elementor-panel-footer-responsive',
    saveTemplate: '#elementor-panel-footer-sub-menu-item-save-template',
    history: '#elementor-panel-footer-history',
    navigator: '#elementor-panel-footer-navigator'
  },
  events: {
    'click @ui.menuButtons': 'onMenuButtonsClick',
    'click @ui.settings': 'onSettingsClick',
    'click @ui.deviceModeIcon': 'onDeviceModeIconClick',
    'click @ui.saveTemplate': 'onSaveTemplateClick',
    'click @ui.history': 'onHistoryClick',
    'click @ui.navigator': 'onNavigatorClick'
  },
  behaviors: function behaviors() {
    var behaviors = {
      saver: {
        behaviorClass: elementor.modules.components.saver.behaviors.FooterSaver
      }
    };
    return elementor.hooks.applyFilters('panel/footer/behaviors', behaviors, this);
  },
  initialize: function initialize() {
    this.listenTo(elementor.channels.deviceMode, 'change', this.onDeviceModeChange);
  },
  addSubMenuItem: function addSubMenuItem(subMenuName, itemData) {
    var $newItem = jQuery('<div>', {
        id: 'elementor-panel-footer-sub-menu-item-' + itemData.name,
        class: 'elementor-panel-footer-sub-menu-item'
      }),
      $itemIcon = jQuery('<i>', {
        class: 'elementor-icon ' + itemData.icon,
        'aria-hidden': true
      }),
      $itemTitle = jQuery('<div>', {
        class: 'elementor-title'
      }).text(itemData.title);
    $newItem.append($itemIcon, $itemTitle);
    if (itemData.description) {
      var $itemDescription = jQuery('<div>', {
        class: 'elementor-description'
      }).text(itemData.description);
      $newItem.append($itemDescription);
    }
    if (itemData.callback) {
      $newItem.on('click', itemData.callback);
    }
    var $menuTool = this.ui.menuButtons.filter('#elementor-panel-footer-' + subMenuName);
    if (itemData.before) {
      var $beforeItem = $menuTool.find('#elementor-panel-footer-sub-menu-item-' + itemData.before);
      if ($beforeItem.length) {
        return $newItem.insertBefore($beforeItem);
      }
    }
    var $subMenu = $menuTool.find('.elementor-panel-footer-sub-menu');
    return $newItem.appendTo($subMenu);
  },
  removeSubMenuItem: function removeSubMenuItem(subMenuName, itemData) {
    var $item = jQuery('#elementor-panel-footer-sub-menu-item-' + itemData.name);
    return $item.remove();
  },
  showSettingsPage: function showSettingsPage() {
    $e.route('panel/page-settings/settings');
  },
  onMenuButtonsClick: function onMenuButtonsClick(event) {
    var $tool = jQuery(event.currentTarget);

    // If the tool is not toggleable or the click is inside of a tool
    if (!$tool.hasClass('elementor-toggle-state') || jQuery(event.target).closest('.elementor-panel-footer-sub-menu-item').length) {
      return;
    }
    var isOpen = $tool.hasClass('e-open');
    this.ui.menuButtons.not('.elementor-leave-open').removeClass('e-open');
    if (!isOpen) {
      $tool.addClass('e-open');
    }
  },
  onSettingsClick: function onSettingsClick() {
    $e.route('panel/page-settings/settings');
  },
  onDeviceModeIconClick: function onDeviceModeIconClick() {
    if (elementor.isDeviceModeActive()) {
      elementor.changeDeviceMode('desktop');

      // Force exit if device mode is already desktop
      elementor.exitDeviceMode();
    } else {
      var deviceView = 'desktop';
      elementor.changeDeviceMode(deviceView);
      if ('desktop' === deviceView) {
        elementor.enterDeviceMode();
      }
    }
  },
  onSaveTemplateClick: function onSaveTemplateClick() {
    $e.route('library/save-template');
  },
  onHistoryClick: function onHistoryClick() {
    $e.route('panel/history/actions');
  },
  onNavigatorClick: function onNavigatorClick() {
    $e.run('navigator/toggle');
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/header.js":
/*!*******************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/header.js ***!
  \*******************************************************/
/***/ ((module) => {

"use strict";


var PanelHeaderItemView;
PanelHeaderItemView = Marionette.ItemView.extend({
  template: '#tmpl-elementor-panel-header',
  id: 'elementor-panel-header',
  ui: {
    menuButton: '#elementor-panel-header-menu-button',
    menuIcon: '#elementor-panel-header-menu-button i',
    title: '#elementor-panel-header-title',
    addButton: '#elementor-panel-header-add-button'
  },
  events: {
    'click @ui.addButton': 'onClickAdd',
    'click @ui.menuButton': 'onClickMenu'
  },
  behaviors: function behaviors() {
    return elementor.hooks.applyFilters('panel/header/behaviors', {}, this);
  },
  setTitle: function setTitle(title) {
    this.ui.title.html(title);
  },
  onClickAdd: function onClickAdd() {
    $e.route('panel/elements/categories');
  },
  onClickMenu: function onClickMenu() {
    if ($e.routes.is('panel/menu')) {
      $e.route('panel/elements/categories');
    } else {
      $e.route('panel/menu');
    }
  }
});
module.exports = PanelHeaderItemView;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/layout.js":
/*!*******************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/layout.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 _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../assets/dev/js/editor/regions/panel/component.js"));
var _component2 = _interopRequireDefault(__webpack_require__(/*! ./pages/elements/component */ "../assets/dev/js/editor/regions/panel/pages/elements/component.js"));
var _component3 = _interopRequireDefault(__webpack_require__(/*! ./pages/editor/component */ "../assets/dev/js/editor/regions/panel/pages/editor/component.js"));
var EditModeItemView = __webpack_require__(/*! elementor-regions/panel/edit-mode */ "../assets/dev/js/editor/regions/panel/edit-mode.js"),
  PanelLayoutView;
PanelLayoutView = Marionette.LayoutView.extend({
  template: '#tmpl-elementor-panel',
  id: 'elementor-panel-inner',
  regions: {
    content: '#elementor-panel-content-wrapper',
    header: '#elementor-panel-header-wrapper',
    footer: '#elementor-panel-footer',
    modeSwitcher: '#elementor-mode-switcher'
  },
  pages: {},
  childEvents: {
    'click:add': function clickAdd() {
      $e.route('panel/elements/categories');
    },
    'editor:destroy': function editorDestroy() {
      $e.route('panel/elements/categories', {
        autoFocusSearch: false
      });
    }
  },
  currentPageName: null,
  currentPageView: null,
  perfectScrollbar: null,
  initialize: function initialize() {
    $e.components.register(new _component.default({
      manager: this
    }));
    $e.internal('panel/state-loading');
    $e.components.register(new _component2.default({
      manager: this
    }));
    $e.components.register(new _component3.default({
      manager: this
    }));
    this.initPages();
  },
  buildPages: function buildPages() {
    var pages = {
      elements: {
        view: __webpack_require__(/*! elementor-panel/pages/elements/elements */ "../assets/dev/js/editor/regions/panel/pages/elements/elements.js"),
        title: '<img src="' + elementorCommon.config.urls.assets + 'images/logo-panel.svg">'
      },
      editor: {
        view: __webpack_require__(/*! elementor-panel/pages/editor */ "../assets/dev/js/editor/regions/panel/pages/editor.js")
      },
      menu: {
        view: elementor.modules.layouts.panel.pages.menu.Menu,
        title: '<img src="' + elementorCommon.config.urls.assets + 'images/logo-panel.svg">'
      }
    };
    return pages;
  },
  initPages: function initPages() {
    var pages;
    this.getPages = function (page) {
      if (!pages) {
        pages = this.buildPages();
      }
      return page ? pages[page] : pages;
    };
    this.addPage = function (pageName, pageData) {
      if (!pages) {
        pages = this.buildPages();
      }
      pages[pageName] = pageData;
    };
  },
  getHeaderView: function getHeaderView() {
    return this.getChildView('header');
  },
  getFooterView: function getFooterView() {
    return this.getChildView('footer');
  },
  getCurrentPageName: function getCurrentPageName() {
    return this.currentPageName;
  },
  getCurrentPageView: function getCurrentPageView() {
    return this.currentPageView;
  },
  setPage: function setPage(page, title, viewOptions) {
    var pages = this.getPages();
    if ('elements' === page && !elementor.userCan('design')) {
      if (pages.page_settings) {
        page = 'page_settings';
      }
    }
    var pageData = pages[page];
    if (!pageData) {
      throw new ReferenceError('Elementor panel doesn\'t have page named \'' + page + '\'');
    }
    if (pageData.options) {
      viewOptions = _.extend(pageData.options, viewOptions);
    }
    var View = pageData.view;
    if (pageData.getView) {
      View = pageData.getView();
    }
    this.currentPageName = page;
    this.currentPageView = new View(viewOptions);
    this.showChildView('content', this.currentPageView);
    this.getHeaderView().setTitle(title || pageData.title);
    this.trigger('set:page', this.currentPageView).trigger('set:page:' + page, this.currentPageView);
    if (elementor.promotion.dialog) {
      elementor.promotion.dialog.hide();
    }
    return this.currentPageView;
  },
  onBeforeShow: function onBeforeShow() {
    var PanelFooterItemView = __webpack_require__(/*! elementor-regions/panel/footer */ "../assets/dev/js/editor/regions/panel/footer.js"),
      PanelHeaderItemView = __webpack_require__(/*! elementor-regions/panel/header */ "../assets/dev/js/editor/regions/panel/header.js");

    // Edit Mode
    this.showChildView('modeSwitcher', new EditModeItemView());

    // Header
    this.showChildView('header', new PanelHeaderItemView());

    // Footer
    this.showChildView('footer', new PanelFooterItemView());

    // Added Editor events
    this.updateScrollbar = _.throttle(this.updateScrollbar, 100);
    this.getRegion('content').on('before:show', this.onEditorBeforeShow.bind(this)).on('empty', this.onEditorEmpty.bind(this)).on('show', this.updateScrollbar.bind(this));
  },
  onEditorBeforeShow: function onEditorBeforeShow() {
    _.defer(this.updateScrollbar.bind(this));
  },
  onEditorEmpty: function onEditorEmpty() {
    this.updateScrollbar();
  },
  updateScrollbar: function updateScrollbar() {
    if (!this.perfectScrollbar) {
      this.perfectScrollbar = new PerfectScrollbar(this.content.el, {
        suppressScrollX: true
      });

      // The RTL is buggy, so always keep it LTR.
      this.perfectScrollbar.isRtl = false;
      return;
    }
    this.perfectScrollbar.update();
  }
});
module.exports = PanelLayoutView;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/pages/editor.js":
/*!*************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/pages/editor.js ***!
  \*************************************************************/
/***/ ((module) => {

"use strict";


var ControlsStack = elementorModules.editor.views.ControlsStack,
  EditorView;
EditorView = ControlsStack.extend({
  template: Marionette.TemplateCache.get('#tmpl-editor-content'),
  id: 'elementor-panel-page-editor',
  childViewContainer: '#elementor-controls',
  childViewOptions: function childViewOptions() {
    return {
      element: this.getOption('editedElementView'),
      container: this.getOption('editedElementView').getContainer(),
      // TODO: elementSettingsModel is deprecated since 2.8.0.
      elementSettingsModel: this.model.get('settings'),
      elementEditSettings: this.model.get('editSettings')
    };
  },
  getNamespaceArray: function getNamespaceArray() {
    var eventNamespace = elementorModules.editor.views.ControlsStack.prototype.getNamespaceArray();
    var model = this.getOption('editedElementView').getEditModel(),
      currentElementType = model.get('elType');

    // Element Type: section / column / widget.
    eventNamespace.push(currentElementType);
    if ('widget' === currentElementType) {
      // Widget Type: heading / button and etc.
      eventNamespace.push(model.get('widgetType'));
    }
    return eventNamespace;
  },
  initialize: function initialize() {
    ControlsStack.prototype.initialize.apply(this, arguments);
    var editSettings = this.model.get('editSettings');
    if (editSettings) {
      var panelSettings = editSettings.get('panel');
      if (panelSettings) {
        this.activeTab = panelSettings.activeTab;
        this.activeSection = panelSettings.activeSection;
      }
    }
  },
  activateSection: function activateSection() {
    ControlsStack.prototype.activateSection.apply(this, arguments);
    this.model.get('editSettings').set('panel', {
      activeTab: this.activeTab,
      activeSection: this.activeSection
    });
    return this;
  },
  openActiveSection: function openActiveSection() {
    ControlsStack.prototype.openActiveSection.apply(this, arguments);
    elementor.channels.editor.trigger('section:activated', this.activeSection, this);
  },
  isVisibleSectionControl: function isVisibleSectionControl(sectionControlModel) {
    return ControlsStack.prototype.isVisibleSectionControl.apply(this, arguments) && elementor.helpers.isActiveControl(sectionControlModel, this.model.get('settings').attributes, this.model.get('settings').controls);
  },
  scrollToEditedElement: function scrollToEditedElement() {
    elementor.helpers.scrollToView(this.getOption('editedElementView').$el);
  },
  onDestroy: function onDestroy() {
    this.model.trigger('editor:close');
    this.triggerMethod('editor:destroy');
  },
  onDeviceModeChange: function onDeviceModeChange() {
    ControlsStack.prototype.onDeviceModeChange.apply(this, arguments);
    this.scrollToEditedElement();
  },
  onChildviewSettingsChange: function onChildviewSettingsChange(childView) {
    var editedElementView = this.getOption('editedElementView'),
      editedElementType = editedElementView.model.get('elType');
    if ('widget' === editedElementType) {
      editedElementType = editedElementView.model.get('widgetType');
    }
    elementor.channels.editor.trigger('change', childView, editedElementView).trigger('change:' + editedElementType, childView, editedElementView).trigger('change:' + editedElementType + ':' + childView.model.get('name'), childView, editedElementView);
  }
});
module.exports = EditorView;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/pages/editor/commands/index.js":
/*!****************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/pages/editor/commands/index.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Open", ({
  enumerable: true,
  get: function get() {
    return _open.Open;
  }
}));
var _open = __webpack_require__(/*! ./open */ "../assets/dev/js/editor/regions/panel/pages/editor/commands/open.js");

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/pages/editor/commands/open.js":
/*!***************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/pages/editor/commands/open.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"] = exports.Open = 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"));
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; })(); }
var Open = exports.Open = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Open() {
    (0, _classCallCheck2.default)(this, Open);
    return _callSuper(this, Open, arguments);
  }
  (0, _inherits2.default)(Open, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Open, [{
    key: "apply",
    value: function apply(args) {
      if (!this.component.setDefaultTab(args)) {
        elementorDevTools.deprecation.deprecated("model.trigger( 'request:edit' )", '2.9.0', 'editSettings.defaultEditRoute');
        args.model.trigger('request:edit');
      } else {
        $e.route(this.component.getDefaultRoute(), args);
      }

      // BC: Run hooks after the route render's the view

      var elementType = args.model.get('elType'),
        widgetType = args.model.get('widgetType');

      // Example: panel/open_editor/widget
      elementor.hooks.doAction("panel/open_editor/".concat(elementType), this.component.manager, args.model, args.view);

      // Example: panel/open_editor/widget/heading
      elementor.hooks.doAction("panel/open_editor/".concat(elementType, "/").concat(widgetType), this.component.manager, args.model, args.view);
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Open;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/pages/editor/component.js":
/*!***********************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/pages/editor/component.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-editor/component-base */ "../assets/dev/js/editor/component-base.js"));
var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../assets/dev/js/editor/regions/panel/pages/editor/commands/index.js"));
var _hooks = __webpack_require__(/*! elementor-document/hooks */ "../assets/dev/js/editor/document/hooks/index.js");
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _ComponentBase);
  return (0, _createClass2.default)(Component, [{
    key: "__construct",
    value: function __construct(args) {
      _superPropGet(Component, "__construct", this, 3)([args]);

      // Remember last used tab.
      this.activeTabs = {};
      this.activeModelId = null;
    }
  }, {
    key: "getNamespace",
    value: function getNamespace() {
      return 'panel/editor';
    }
  }, {
    key: "defaultTabs",
    value: function defaultTabs() {
      return {
        content: {
          title: __('Content', 'elementor')
        },
        style: {
          title: __('Style', 'elementor')
        },
        advanced: {
          title: __('Advanced', 'elementor')
        },
        layout: {
          title: __('Layout', 'elementor')
        }
      };
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }
  }, {
    key: "getTabsWrapperSelector",
    value: function getTabsWrapperSelector() {
      return '.elementor-panel-navigation';
    }
  }, {
    key: "renderTab",
    value: function renderTab(tab, args) {
      var _model$attributes, _model$changed;
      var model = args.model,
        view = args.view,
        activeControl = args.activeControl;
      var elementTitle = model !== null && model !== void 0 && (_model$attributes = model.attributes) !== null && _model$attributes !== void 0 && (_model$attributes = _model$attributes.custom) !== null && _model$attributes !== void 0 && _model$attributes.isPreset || model !== null && model !== void 0 && (_model$changed = model.changed) !== null && _model$changed !== void 0 && _model$changed.title ? model.attributes.title : elementor.getElementData(model).title;
      if (model.attributes.settings.attributes.presetTitle) {
        elementTitle = model.attributes.settings.attributes.presetTitle;
      }

      /* Translators: %s: Element name. */
      var title = sprintf(__('Edit %s', 'elementor'), elementTitle);
      if (this.shouldRenderPage(tab, args.model.id)) {
        this.activeModelId = args.model.id;
        this.activeTabs[args.model.id] = tab;
        elementor.getPanelView().setPage('editor', title, {
          tab: tab,
          model: model,
          controls: elementor.getElementControls(model),
          editedElementView: view
        });
      }
      this.activateControl(activeControl);
    }
  }, {
    key: "shouldRenderPage",
    value: function shouldRenderPage(tab, modelId) {
      var currentPanelView = elementor.getPanelView();
      var isSamePage = 'editor' === currentPanelView.getCurrentPageName();
      var isSameTab = tab === currentPanelView.getCurrentPageView().activeTab;
      var isEditingSameModel = modelId === this.activeModelId;
      return !isSamePage || !isSameTab || !isEditingSameModel;
    }
  }, {
    key: "setDefaultTab",
    value: function setDefaultTab(args) {
      var defaultTab;
      var editSettings = args.model.get('editSettings');
      if (this.activeTabs[args.model.id]) {
        defaultTab = this.activeTabs[args.model.id];
      } else if (editSettings && editSettings.get('defaultEditRoute')) {
        defaultTab = editSettings.get('defaultEditRoute');
      }
      if (defaultTab) {
        // Ensure tab is exist.
        var controlsTabs = elementor.getElementData(args.model).tabs_controls;

        // Fallback to first tab.
        if (!controlsTabs[defaultTab]) {
          defaultTab = Object.keys(controlsTabs)[0];
        }
        this.setDefaultRoute(defaultTab);
        return true;
      }
      return false;
    }

    /**
     * Callback on route open under the current namespace.
     *
     * @param {string} route
     * @param {Object} routeArgs
     *
     * @return {void}
     */
  }, {
    key: "onRoute",
    value: function onRoute(route) {
      var routeArgs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      _superPropGet(Component, "onRoute", this, 3)([route]);
      var view = routeArgs.view;
      if (!(view !== null && view !== void 0 && view.getContainer())) {
        return;
      }
      _hooks.SetDirectionMode.set(view.getContainer());
    }

    /**
     * Callback on route close under the current namespace.
     *
     * @param {string } route - Route ID.
     *
     * @return {void}
     */
  }, {
    key: "onCloseRoute",
    value: function onCloseRoute(route) {
      _superPropGet(Component, "onCloseRoute", this, 3)([route]);
      $e.uiStates.remove('document/direction-mode');
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/pages/elements/collections/categories.js":
/*!**************************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/pages/elements/collections/categories.js ***!
  \**************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var PanelElementsCategory = __webpack_require__(/*! ../models/element */ "../assets/dev/js/editor/regions/panel/pages/elements/models/element.js"),
  PanelElementsCategoriesCollection;
PanelElementsCategoriesCollection = Backbone.Collection.extend({
  model: PanelElementsCategory
});
module.exports = PanelElementsCategoriesCollection;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/pages/elements/collections/elements.js":
/*!************************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/pages/elements/collections/elements.js ***!
  \************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var PanelElementsElementModel = __webpack_require__(/*! ../models/element */ "../assets/dev/js/editor/regions/panel/pages/elements/models/element.js"),
  PanelElementsElementsCollection;
PanelElementsElementsCollection = Backbone.Collection.extend({
  model: PanelElementsElementModel /* ,
                                   comparator: 'title'*/
});
module.exports = PanelElementsElementsCollection;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/pages/elements/component.js":
/*!*************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/pages/elements/component.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 _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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _ComponentBase);
  return (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'panel/elements';
    }
  }, {
    key: "defaultTabs",
    value: function defaultTabs() {
      return {
        categories: {
          title: __('Elements', 'elementor')
        },
        global: {
          title: __('Global', 'elementor')
        }
      };
    }
  }, {
    key: "getTabsWrapperSelector",
    value: function getTabsWrapperSelector() {
      return '#elementor-panel-elements-navigation';
    }
  }, {
    key: "renderTab",
    value: function renderTab(tab) {
      var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      this.manager.setPage('elements', null, args).showView(tab);
    }
  }, {
    key: "activateTab",
    value: function activateTab(tab) {
      _superPropGet(Component, "activateTab", this, 3)([tab]);
      elementorCommon.eventsManager.dispatchEvent(elementorCommon.eventsManager.config.names.v1[tab], {
        location: elementorCommon.eventsManager.config.locations.widgetPanel,
        secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations[tab],
        trigger: elementorCommon.eventsManager.config.triggers.click,
        element: elementorCommon.eventsManager.config.elements.accordionSection
      });
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/pages/elements/elements.js":
/*!************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/pages/elements/elements.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var PanelElementsCategoriesCollection = __webpack_require__(/*! ./collections/categories */ "../assets/dev/js/editor/regions/panel/pages/elements/collections/categories.js"),
  PanelElementsElementsCollection = __webpack_require__(/*! ./collections/elements */ "../assets/dev/js/editor/regions/panel/pages/elements/collections/elements.js"),
  PanelElementsCategoriesView = __webpack_require__(/*! ./views/categories */ "../assets/dev/js/editor/regions/panel/pages/elements/views/categories.js"),
  PanelElementsElementsView = elementor.modules.layouts.panel.pages.elements.views.Elements,
  PanelElementsGlobalView = __webpack_require__(/*! ./views/global */ "../assets/dev/js/editor/regions/panel/pages/elements/views/global.js"),
  PanelElementsSearchView = __webpack_require__(/*! ./views/search */ "../assets/dev/js/editor/regions/panel/pages/elements/views/search.js"),
  PanelElementsWidgetCreationView = __webpack_require__(/*! ./views/widget-creation */ "../assets/dev/js/editor/regions/panel/pages/elements/views/widget-creation.js"),
  PanelElementsLayoutView;
function elementorIsAngieIframeInDocument() {
  return !!document.querySelector('iframe[src*="angie/"]');
}
PanelElementsLayoutView = Marionette.LayoutView.extend({
  template: '#tmpl-elementor-panel-elements',
  id: 'elementor-panel-page-elements',
  options: {
    autoFocusSearch: true
  },
  regions: {
    elements: '#elementor-panel-elements-wrapper',
    widgetCreation: '#elementor-panel-elements-widget-creation-area',
    search: '#elementor-panel-elements-search-area',
    notice: '#elementor-panel-elements-notice-area'
  },
  regionViews: {},
  elementsCollection: null,
  categoriesCollection: null,
  initialize: function initialize() {
    this.listenTo(elementor.channels.panelElements, 'element:selected', this.destroy);
    this.initElementsCollection();
    this.initCategoriesCollection();
    this.initRegionViews();
  },
  initRegionViews: function initRegionViews() {
    var regionViews = {
      elements: {
        region: this.elements,
        view: PanelElementsElementsView,
        options: {
          collection: this.elementsCollection
        }
      },
      categories: {
        region: this.elements,
        view: PanelElementsCategoriesView,
        options: {
          collection: this.categoriesCollection
        }
      },
      search: {
        region: this.search,
        view: PanelElementsSearchView
      },
      global: {
        region: this.elements,
        view: PanelElementsGlobalView
      }
    };
    this.regionViews = elementor.hooks.applyFilters('panel/elements/regionViews', regionViews, {
      notice: this.notice,
      elements: this.elements,
      search: this.search
    });
  },
  initElementsCollection: function initElementsCollection() {
    var _this = this;
    var elementsCollection = new PanelElementsElementsCollection();

    // Deprecated widget handling.
    Object.entries(elementor.widgetsCache).forEach(function (_ref) {
      var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
        widgetName = _ref2[0],
        widgetData = _ref2[1];
      if (widgetData.deprecation && elementor.widgetsCache[widgetData.deprecation.replacement]) {
        // Hide the old version.
        elementor.widgetsCache[widgetName].show_in_panel = false;
      }
    });

    // TODO: Change the array from server syntax, and no need each loop for initialize
    _.each(elementor.widgetsCache, function (widget) {
      if (elementor.config.document.panel.widgets_settings[widget.widget_type]) {
        widget = _.extend(widget, elementor.config.document.panel.widgets_settings[widget.widget_type]);
      }
      if (!_this.shouldAddWidget(widget)) {
        return;
      }
      elementsCollection.add(_this.getCollectionItem(widget));
    });
    jQuery.each(elementor.config.promotionWidgets, function (index, widget) {
      elementsCollection.add({
        name: widget.name,
        title: widget.title,
        icon: widget.icon,
        categories: JSON.parse(widget.categories),
        editable: false
      });
    });
    (elementor.config.atomicWidgetPromotions || []).forEach(function (_ref3) {
      var type = _ref3.type,
        widgets = _ref3.widgets;
      (widgets || []).forEach(function (widget) {
        elementsCollection.add({
          name: widget.name,
          title: widget.title,
          icon: widget.icon,
          categories: JSON.parse(widget.categories),
          editable: false,
          promotionType: type,
          widgetType: widget.name
        });
      });
    });
    if (elementor.config.integrationWidgets) {
      var injectionPoint = elementsCollection.findIndex({
        widgetType: 'image-carousel'
      }) + 1;
      jQuery.each(elementor.config.integrationWidgets, function (index, widget) {
        elementsCollection.add({
          name: widget.name,
          title: widget.title,
          icon: widget.icon,
          categories: JSON.parse(widget.categories),
          editable: false,
          integration: true,
          keywords: widget.keywords || []
        }, {
          at: injectionPoint
        });
      });
    }
    if (elementorCommon.config.experimentalFeatures.container) {
      jQuery.each(elementor.config.elementsPresets, function (index, widget) {
        var originalWidget = elementor.widgetsCache[widget.replacements.custom.originalWidget];
        if (!originalWidget) {
          return;
        }
        var replacements = widget.replacements,
          presetWidget = _this.deepMerge(originalWidget, replacements);
        if (!_this.shouldAddWidget(presetWidget)) {
          return;
        }
        elementsCollection.add(_this.getCollectionItem(presetWidget));
      });
    }
    this.elementsCollection = elementsCollection;
  },
  getCollectionItem: function getCollectionItem(item) {
    return {
      title: item.title,
      elType: item.elType,
      categories: item.categories,
      keywords: item.keywords,
      icon: item.icon,
      widgetType: item.widget_type,
      custom: item.custom,
      editable: item.editable,
      hideOnSearch: item.hide_on_search
    };
  },
  initCategoriesCollection: function initCategoriesCollection() {
    var categories = {};
    this.elementsCollection.each(function (element) {
      _.each(element.get('categories'), function (category) {
        if (!categories[category]) {
          categories[category] = [];
        }
        categories[category].push(element);
      });
    });
    var categoriesCollection = new PanelElementsCategoriesCollection();
    _.each(elementor.config.document.panel.elements_categories, function (categoryConfig, categoryName) {
      var _categoryConfig$promo;
      // Set defaults.
      if ('undefined' === typeof categoryConfig.active) {
        categoryConfig.active = true;
      }
      if ('undefined' === typeof categoryConfig.icon) {
        categoryConfig.icon = 'font';
      }
      categoriesCollection.add({
        name: categoryName,
        title: categoryConfig.title,
        icon: categoryConfig.icon,
        defaultActive: categoryConfig.active,
        sort: categoryConfig.sort,
        hideIfEmpty: undefined !== categoryConfig.hideIfEmpty ? categoryConfig.hideIfEmpty : true,
        items: categories[categoryName],
        promotion: (_categoryConfig$promo = categoryConfig.promotion) !== null && _categoryConfig$promo !== void 0 ? _categoryConfig$promo : null
      });
    });
    this.categoriesCollection = categoriesCollection;
  },
  shouldAddWidget: function shouldAddWidget(widget) {
    var isContainerActive = elementorCommon.config.experimentalFeatures.container;
    return widget.show_in_panel && ('inner-section' !== widget.name || !isContainerActive);
  },
  deepMerge: function deepMerge(originalObj, replacementObj) {
    var mergedObj = _objectSpread({}, originalObj);
    for (var key in replacementObj) {
      this.deepMergeKey(mergedObj, originalObj, replacementObj, key);
    }
    return mergedObj;
  },
  deepMergeKey: function deepMergeKey(mergedObj, originalObj, replacementObj, key) {
    if (!replacementObj.hasOwnProperty(key)) {
      return;
    }
    var isMergeableObject = 'object' === (0, _typeof2.default)(replacementObj[key]) && null !== replacementObj[key] && originalObj.hasOwnProperty(key) && 'object' === (0, _typeof2.default)(originalObj[key]) && null !== originalObj[key];
    if (isMergeableObject) {
      mergedObj[key] = this.deepMerge(originalObj[key], replacementObj[key]);
    } else {
      mergedObj[key] = replacementObj[key];
    }
  },
  showView: function showView(viewName) {
    if (!$e.components.get('document/elements').utils.allowAddingWidgets()) {
      return;
    }
    var viewDetails = this.regionViews[viewName],
      options = viewDetails.options || {};
    viewDetails.region.show(new viewDetails.view(options));
    if ('elements' === viewName) {
      this.appendStickyPromotion();
    }
  },
  appendStickyPromotion: function appendStickyPromotion() {
    if (this.$('#elementor-panel-get-pro-elements-sticky').length) {
      return;
    }
    var html = Marionette.Renderer.render('#tmpl-elementor-panel-element-sticky-promotion', {}).trim();
    if (html) {
      this.$el.append(html);
    }
  },
  clearSearchInput: function clearSearchInput() {
    this.getChildView('search').clearInput();
  },
  changeFilter: function changeFilter(filterValue) {
    elementor.channels.panelElements.reply('filter:value', filterValue).trigger('filter:change');
  },
  clearFilters: function clearFilters() {
    this.changeFilter(null);
    this.clearSearchInput();
  },
  focusSearch: function focusSearch() {
    if (!elementor.userCan('design') || !this.search /* Default panel is not elements */ || !this.search.currentView /* On global elements empty */) {
      return;
    }
    this.search.currentView.ui.input.trigger('focus');
  },
  onChildviewChildrenRender: function onChildviewChildrenRender() {
    this.updateWidgetCreation();
    elementor.getPanelView().updateScrollbar();
  },
  onChildviewSearchChangeInput: function onChildviewSearchChangeInput(child) {
    this.changeFilter(child.ui.input.val(), 'search');
  },
  updateWidgetCreation: function updateWidgetCreation() {
    var filterValue = elementor.channels.panelElements.request('filter:value');
    if (!filterValue) {
      this.widgetCreation.empty();
      return;
    }
    var isAngiePresent = elementorIsAngieIframeInDocument();
    var isAdministrator = elementor.config.user.is_administrator;
    if (!isAngiePresent && !isAdministrator) {
      this.widgetCreation.empty();
      return;
    }
    var elementsView = this.elements.currentView;
    if (!elementsView || !(elementsView instanceof PanelElementsElementsView)) {
      this.widgetCreation.empty();
      return;
    }
    var emptyResults = 0 === elementsView.children.length;
    var widgetCreationView = new PanelElementsWidgetCreationView({
      emptyResults: emptyResults,
      searchTerm: filterValue
    });
    if (!widgetCreationView.hasTemplate()) {
      this.widgetCreation.empty();
      return;
    }
    this.widgetCreation.show(widgetCreationView);
  },
  onDestroy: function onDestroy() {
    elementor.channels.panelElements.reply('filter:value', null);
  },
  onShow: function onShow() {
    this.showView('search');
    if (this.options.autoFocusSearch) {
      setTimeout(this.focusSearch.bind(this));
    }
  }
});
module.exports = PanelElementsLayoutView;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/pages/elements/models/element.js":
/*!******************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/pages/elements/models/element.js ***!
  \******************************************************************************/
/***/ ((module) => {

"use strict";


var PanelElementsElementModel;
PanelElementsElementModel = Backbone.Model.extend({
  defaults: {
    title: '',
    categories: [],
    keywords: [],
    icon: '',
    elType: 'widget',
    widgetType: ''
  }
});
module.exports = PanelElementsElementModel;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/pages/elements/views/categories.js":
/*!********************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/pages/elements/views/categories.js ***!
  \********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var PanelElementsCategoryView = __webpack_require__(/*! ./category */ "../assets/dev/js/editor/regions/panel/pages/elements/views/category.js"),
  PanelElementsCategoriesView;
PanelElementsCategoriesView = Marionette.CompositeView.extend({
  template: '#tmpl-elementor-panel-categories',
  childView: PanelElementsCategoryView,
  childViewContainer: '#elementor-panel-categories',
  id: 'elementor-panel-elements-categories',
  initialize: function initialize() {
    this.listenTo(elementor.channels.panelElements, 'filter:change', this.onPanelElementsFilterChange);
  },
  onPanelElementsFilterChange: function onPanelElementsFilterChange() {
    if (elementor.channels.panelElements.request('filter:value')) {
      elementor.getPanelView().getCurrentPageView().showView('elements');
    }
  }
});
module.exports = PanelElementsCategoriesView;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/pages/elements/views/category.js":
/*!******************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/pages/elements/views/category.js ***!
  \******************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var CREATE_WIDGET_PROMPT = (__webpack_require__(/*! ./widget-creation */ "../assets/dev/js/editor/regions/panel/pages/elements/views/widget-creation.js").CREATE_WIDGET_PROMPT),
  PanelElementsElementsCollection = __webpack_require__(/*! ../collections/elements */ "../assets/dev/js/editor/regions/panel/pages/elements/collections/elements.js"),
  PanelElementsCategoryView;
PanelElementsCategoryView = Marionette.CompositeView.extend({
  template: '#tmpl-elementor-panel-elements-category',
  className: 'elementor-panel-category',
  ui: {
    title: '.elementor-panel-category-title',
    items: '.elementor-panel-category-items',
    chip: '.elementor-panel-heading-category-chip'
  },
  events: {
    'click @ui.title': 'onTitleClick',
    'click @ui.chip': 'onChipClick',
    'click .elementor-panel-custom-widgets__cta': 'onCustomWidgetsCtaClick',
    'click .elementor-panel-heading-promotion a': 'onPromotionLinkClick'
  },
  id: function id() {
    return 'elementor-panel-category-' + this.model.get('name');
  },
  childView: __webpack_require__(/*! elementor-panel/pages/elements/views/element */ "../assets/dev/js/editor/regions/panel/pages/elements/views/element.js"),
  childViewContainer: '.elementor-panel-category-items',
  initialize: function initialize() {
    var items = this.model.get('items') || [];
    switch (this.model.get('sort')) {
      case 'a-z':
        items = items.sort(function (a, b) {
          return a.get('title') > b.get('title') ? 1 : -1;
        });
        break;
    }
    this.collection = new PanelElementsElementsCollection(items);
  },
  behaviors: function behaviors() {
    return elementor.hooks.applyFilters('panel/category/behaviors', {}, this);
  },
  onRender: function onRender() {
    var isActive = elementor.channels.panelElements.request('category:' + this.model.get('name') + ':active');
    if (undefined === isActive) {
      isActive = this.model.get('defaultActive');
    }
    if (!this.collection.length && this.model.get('hideIfEmpty')) {
      this.$el.css('display', 'none');
    }
    if (isActive) {
      this.$el.addClass('elementor-active');
    } else {
      this.ui.items.css('display', 'none');
    }
  },
  onTitleClick: function onTitleClick() {
    var _elementorCommon$even;
    this.toggle();
    elementorCommon.eventsManager.dispatchEvent((_elementorCommon$even = elementorCommon.eventsManager.config.names[this.model.get('name')]) === null || _elementorCommon$even === void 0 ? void 0 : _elementorCommon$even.v1, {
      location: elementorCommon.eventsManager.config.locations.widgetPanel,
      secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations[this.model.get('name')],
      trigger: elementorCommon.eventsManager.config.triggers.accordionClick,
      element: elementorCommon.eventsManager.config.elements.accordionSection
    });
  },
  toggle: function toggle(state) {
    var animate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
    var $items = this.ui.items,
      activeClass = 'elementor-active',
      isActive = undefined !== state ? !state : this.$el.hasClass(activeClass),
      visibilityFn = isActive ? 'hide' : 'show',
      slideFn = isActive ? 'slideUp' : 'slideDown',
      updateScrollbar = function updateScrollbar() {
        return elementor.getPanelView().updateScrollbar();
      };
    elementor.channels.panelElements.reply('category:' + this.model.get('name') + ':active', !isActive);
    this.$el.toggleClass(activeClass, !isActive);
    if (animate) {
      $items[slideFn](300, updateScrollbar);
    } else {
      $items[visibilityFn](0, updateScrollbar);
    }
  },
  onChipClick: function onChipClick(event) {
    event.stopPropagation();
    document.dispatchEvent(new CustomEvent('alphachip:open', {
      detail: {
        target: this.$el
      }
    }));
  },
  onCustomWidgetsCtaClick: function onCustomWidgetsCtaClick(event) {
    event.stopPropagation();
    window.dispatchEvent(new CustomEvent('elementor/editor/create-widget', {
      detail: {
        prompt: CREATE_WIDGET_PROMPT,
        entry_point: 'widgets_panel'
      }
    }));
  },
  onPromotionLinkClick: function onPromotionLinkClick(event) {
    event.stopPropagation();
  }
});
module.exports = PanelElementsCategoryView;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/pages/elements/views/element.js":
/*!*****************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/pages/elements/views/element.js ***!
  \*****************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
var _contextMenu = _interopRequireDefault(__webpack_require__(/*! elementor-behaviors/context-menu */ "../assets/dev/js/editor/elements/views/behaviors/context-menu.js"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
module.exports = Marionette.ItemView.extend({
  template: '#tmpl-elementor-element-library-element',
  className: function className() {
    var className = 'elementor-element-wrapper';
    if (!this.isEditable() && !this.isAtomicWidgetPromotion()) {
      className += ' elementor-element--promotion';
    }
    if (this.isIntegration()) {
      className += ' elementor-element--integration';
    }
    return className;
  },
  events: function events() {
    var events = {};
    if (!this.isEditable()) {
      events.mousedown = 'onMouseDown';
    }
    return events;
  },
  ui: {
    element: '.elementor-element'
  },
  behaviors: function behaviors() {
    var groups = elementor.hooks.applyFilters('panel/element/contextMenuGroups', [], this),
      behaviors = {};
    if (groups.length) {
      behaviors.contextMenu = {
        behaviorClass: _contextMenu.default,
        context: 'panel',
        groups: groups
      };
    }
    return elementor.hooks.applyFilters('panel/element/behaviors', behaviors, this);
  },
  isEditable: function isEditable() {
    return false !== this.model.get('editable');
  },
  isIntegration: function isIntegration() {
    return !!this.model.get('integration');
  },
  isAtomicWidgetPromotion: function isAtomicWidgetPromotion() {
    return !!this.model.get('promotionType');
  },
  onRender: function onRender() {
    var _this = this;
    if (!elementor.userCan('design') || !this.isEditable()) {
      return;
    }
    this.ui.element.on('click', function () {
      return _this.addToPage();
    });
    this.ui.element.html5Draggable({
      onDragStart: function onDragStart() {
        // Reset the sort cache.
        elementor.channels.editor.reply('element:dragged', null);
        elementor.channels.panelElements.reply('element:selected', _this).trigger('element:drag:start');
      },
      onDragEnd: function onDragEnd() {
        elementor.channels.panelElements.trigger('element:drag:end');
      },
      groups: ['elementor-element']
    });
  },
  onMouseDown: function onMouseDown(event) {
    event.stopPropagation();
    if (this.isAtomicWidgetPromotion()) {
      var promotionType = this.model.get('promotionType');
      document.dispatchEvent(new CustomEvent("".concat(promotionType, "-promotion:open"), {
        detail: {
          target: this.el
        }
      }));
      return;
    }
    var widgetTitle = this.model.get('title'),
      widgetType = this.model.get('name') || this.model.get('widgetType'),
      isIntegration = this.isIntegration(),
      configPromotion = elementor.config.promotion;
    var ctaUrl, ctaText, title, content;
    if (isIntegration) {
      var _configPromotion$inte;
      var integrationPromo = configPromotion === null || configPromotion === void 0 || (_configPromotion$inte = configPromotion.integration) === null || _configPromotion$inte === void 0 ? void 0 : _configPromotion$inte[widgetType];
      ctaUrl = integrationPromo.action_button.url.toString().replaceAll('&amp;', '&');
      ctaText = integrationPromo.action_button.text;
      // eslint-disable-next-line @wordpress/valid-sprintf
      title = sprintf(integrationPromo.title, widgetTitle);
      // eslint-disable-next-line @wordpress/valid-sprintf
      content = sprintf(integrationPromo.content, widgetTitle);
    }
    document.dispatchEvent(new CustomEvent('widget-promotion:open', {
      detail: {
        target: this.el,
        widgetType: widgetType,
        widgetTitle: widgetTitle,
        title: title,
        content: content,
        ctaUrl: ctaUrl,
        ctaText: ctaText,
        hideProTag: isIntegration
      }
    }));
  },
  addToPage: function addToPage() {
    var _this$model$attribute, _this$model$attribute2, _elementorCommon;
    var selectedElements = this.getSelectedElements();
    var isMultiSelect = selectedElements.length > 1;

    // Currently, we don't support multi-selected elements.
    if (isMultiSelect) {
      return;
    }
    var _selectedElements = (0, _slicedToArray2.default)(selectedElements, 1),
      element = _selectedElements[0];

    // Order matters.
    var scenariosMap = {
      addToDocument: {
        check: function check() {
          return !element;
        },
        getArgs: function getArgs() {
          return {
            view: elementor.getPreviewView(),
            options: {}
          };
        }
      },
      addToFirstColumn: {
        check: function check() {
          return 'section' === element.model.get('elType');
        },
        getArgs: function getArgs() {
          var _element$view$childre;
          return {
            view: (_element$view$childre = element.view.children) === null || _element$view$childre === void 0 ? void 0 : _element$view$childre.findByIndex(0),
            options: {}
          };
        }
      },
      addToParent: {
        check: function check() {
          return 'widget' === element.model.get('elType');
        },
        getArgs: function getArgs() {
          var parent = element.parent,
            model = element.model;
          return {
            view: parent.view,
            options: {
              at: parent.model.get('elements').findIndex(model) + 1
            }
          };
        }
      },
      default: {
        check: function check() {
          return true;
        },
        getArgs: function getArgs() {
          return {
            view: element.view,
            options: {}
          };
        }
      }
    };
    var _Object$values$find = Object.values(scenariosMap).find(function (_ref) {
        var check = _ref.check;
        return check();
      }),
      getArgs = _Object$values$find.getArgs;
    var _getArgs = getArgs(),
      view = _getArgs.view,
      options = _getArgs.options;
    var container = view.getContainer();
    if (!container) {
      throw new Error("View doesn't support adding from panel", view);
    }
    if ((_this$model$attribute = (_this$model$attribute2 = this.model.attributes) === null || _this$model$attribute2 === void 0 || (_this$model$attribute2 = _this$model$attribute2.custom) === null || _this$model$attribute2 === void 0 ? void 0 : _this$model$attribute2.isPreset) !== null && _this$model$attribute !== void 0 ? _this$model$attribute : false) {
      this.model.set('settings', this.model.get('custom').preset_settings);
    }
    var modelData = this.model.toJSON();
    $e.run('preview/drop', {
      container: container,
      options: _objectSpread(_objectSpread({}, options), {}, {
        scrollIntoView: true
      }),
      model: modelData
    });
    if ((_elementorCommon = elementorCommon) !== null && _elementorCommon !== void 0 && (_elementorCommon = _elementorCommon.eventsManager) !== null && _elementorCommon !== void 0 && _elementorCommon.dispatchEvent) {
      var _modelData$elType, _modelData$widgetType;
      var elType = (_modelData$elType = modelData === null || modelData === void 0 ? void 0 : modelData.elType) !== null && _modelData$elType !== void 0 ? _modelData$elType : '';
      var widgetType = (_modelData$widgetType = modelData === null || modelData === void 0 ? void 0 : modelData.widgetType) !== null && _modelData$widgetType !== void 0 ? _modelData$widgetType : '';
      var elementName = 'widget' === elType ? widgetType : elType;
      elementorCommon.eventsManager.dispatchEvent('add_element', {
        location: 'editor_panel',
        element_name: elementName,
        element_type: elType,
        widget_type: widgetType
      });
    }
  },
  getSelectedElements: function getSelectedElements() {
    return elementor.selection.getElements().filter(function (_ref2) {
      var _elementor$documents$;
      var view = _ref2.view;
      // Remove elements that don't exist in the current document's DOM, because of a bug in
      // the selection manager that doesn't deselect elements properly.
      return (_elementor$documents$ = elementor.documents.getCurrent().$element) === null || _elementor$documents$ === void 0 ? void 0 : _elementor$documents$[0].contains(view.$el[0]);
    });
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/pages/elements/views/elements.js":
/*!******************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/pages/elements/views/elements.js ***!
  \******************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var PanelElementsElementsView;
PanelElementsElementsView = Marionette.CollectionView.extend({
  childView: __webpack_require__(/*! elementor-panel/pages/elements/views/element */ "../assets/dev/js/editor/regions/panel/pages/elements/views/element.js"),
  id: 'elementor-panel-elements',
  className: 'elementor-responsive-panel',
  initialize: function initialize() {
    this.listenTo(elementor.channels.panelElements, 'filter:change', this.onFilterChanged);
  },
  filter: function filter(childModel) {
    var filterValue = elementor.channels.panelElements.request('filter:value');
    if (!filterValue) {
      return true;
    }

    // Prevent from wordpress widgets to show in search result.
    if (childModel.get('hideOnSearch')) {
      return false;
    }
    if (-1 !== childModel.get('title').toLowerCase().indexOf(filterValue.toLowerCase())) {
      return true;
    }

    // Get the filter input localized value.
    var localized = elementor.channels.panelElements.request('filter:localized') || '';
    return _.any(childModel.get('keywords'), function (keyword) {
      keyword = keyword.toLowerCase();
      var regularFilter = -1 !== keyword.indexOf(filterValue.toLowerCase()),
        localizedFilter = localized && -1 !== keyword.indexOf(localized.toLowerCase());
      return regularFilter || localizedFilter;
    });
  },
  onFilterChanged: function onFilterChanged() {
    var filterValue = elementor.channels.panelElements.request('filter:value');
    if (!filterValue) {
      this.onFilterEmpty();
    }
    this._renderChildren();
    this.triggerMethod('children:render');
  },
  onFilterEmpty: function onFilterEmpty() {
    $e.routes.refreshContainer('panel');
  }
});
module.exports = PanelElementsElementsView;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/pages/elements/views/global.js":
/*!****************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/pages/elements/views/global.js ***!
  \****************************************************************************/
/***/ ((module) => {

"use strict";


module.exports = Marionette.ItemView.extend({
  template: '#tmpl-elementor-panel-global',
  id: 'elementor-panel-global',
  initialize: function initialize() {
    elementor.getPanelView().getCurrentPageView().search.reset();
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/pages/elements/views/search.js":
/*!****************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/pages/elements/views/search.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 _localizedValueStore = _interopRequireDefault(__webpack_require__(/*! elementor-editor-utils/localized-value-store */ "../assets/dev/js/editor/utils/localized-value-store.js"));
var _editorOneEvents = __webpack_require__(/*! elementor-editor-utils/editor-one-events */ "../assets/dev/js/editor/utils/editor-one-events.js");
var WIDGET_PANEL_SEARCH_DEBOUNCE_MS = 2000;
var PanelElementsSearchView = Marionette.ItemView.extend({
  template: '#tmpl-elementor-panel-element-search',
  localizedValue: '',
  localizedValueStore: new _localizedValueStore.default(),
  debouncedTrackSearch: null,
  tagName: 'search',
  id: 'elementor-panel-elements-search-wrapper',
  ui: {
    input: 'input'
  },
  events: {
    'keydown @ui.input': 'onInputChanged',
    // Used to capture the ctrl+V
    'input @ui.input': 'onInputChanged' // Will capture the context menu paste
  },
  initialize: function initialize() {
    this.debouncedTrackSearch = (0, _editorOneEvents.createDebouncedWidgetPanelSearch)(WIDGET_PANEL_SEARCH_DEBOUNCE_MS);
  },
  clearInput: function clearInput() {
    this.ui.input.val('');
  },
  getVisibleWidgetsCount: function getVisibleWidgetsCount() {
    var $widgetsContainer = jQuery('#elementor-panel-elements');
    return $widgetsContainer.find('.elementor-element:visible').length;
  },
  trackWidgetSearch: function trackWidgetSearch() {
    var _this = this;
    var userInput = this.ui.input.val();
    if (!userInput) {
      return;
    }
    setTimeout(function () {
      var resultsCount = _this.getVisibleWidgetsCount();
      _this.debouncedTrackSearch(resultsCount, userInput);
    }, 100);
  },
  onInputChanged: function onInputChanged(event) {
    var ESC_KEY = 27;
    if (ESC_KEY === event.keyCode) {
      this.clearInput();
    }
    this.localizedValue = this.localizedValueStore.appendAndParseLocalizedData(event);
    elementor.channels.panelElements.reply('filter:localized', this.localizedValue);
    this.triggerMethod('search:change:input');
    this.trackWidgetSearch();
  },
  onDestroy: function onDestroy() {
    var _this$debouncedTrackS;
    if ((_this$debouncedTrackS = this.debouncedTrackSearch) !== null && _this$debouncedTrackS !== void 0 && _this$debouncedTrackS.cancel) {
      this.debouncedTrackSearch.cancel();
    }
  }
});
module.exports = PanelElementsSearchView;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/pages/elements/views/widget-creation.js":
/*!*************************************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/pages/elements/views/widget-creation.js ***!
  \*************************************************************************************/
/***/ ((module) => {

"use strict";


var PanelElementsWidgetCreationView;
var TEMPLATES = {
  EMPTY_STATE: '#tmpl-elementor-panel-elements-widget-creation-empty-state',
  SEARCH_FOOTER: '#tmpl-elementor-panel-elements-widget-creation-search-footer'
};
var CREATE_WIDGET_PROMPT = "Create a widget for me.\nGoal: [What should this widget help me accomplish?]\nPlacement: [Where will I see it in the editor/UI?]\nHow it should work: ";
PanelElementsWidgetCreationView = Marionette.ItemView.extend({
  getTemplate: function getTemplate() {
    return this.options.emptyResults ? TEMPLATES.EMPTY_STATE : TEMPLATES.SEARCH_FOOTER;
  },
  className: function className() {
    var baseClass = 'elementor-panel-elements-widget-creation';
    var modifierClass = this.options.emptyResults ? "".concat(baseClass, "--empty-state") : "".concat(baseClass, "--search-footer");
    return "".concat(baseClass, " ").concat(modifierClass);
  },
  templateHelpers: function templateHelpers() {
    return {
      searchTerm: this.options.searchTerm || ''
    };
  },
  hasTemplate: function hasTemplate() {
    return !!jQuery(this.getTemplate()).length;
  },
  events: {
    'click .elementor-panel-elements-widget-creation__cta': 'onCtaClick'
  },
  onCtaClick: function onCtaClick() {
    window.dispatchEvent(new CustomEvent('elementor/editor/create-widget', {
      detail: {
        prompt: CREATE_WIDGET_PROMPT,
        entry_point: 'search_widget'
      }
    }));
  }
});
module.exports = PanelElementsWidgetCreationView;
module.exports.CREATE_WIDGET_PROMPT = CREATE_WIDGET_PROMPT;

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/pages/menu/base.js":
/*!****************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/pages/menu/base.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 _group = _interopRequireDefault(__webpack_require__(/*! elementor-panel/pages/menu/views/group */ "../assets/dev/js/editor/regions/panel/pages/menu/views/group.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; })(); }
var MenuPageView = exports["default"] = /*#__PURE__*/function (_Marionette$Composite) {
  function MenuPageView() {
    (0, _classCallCheck2.default)(this, MenuPageView);
    return _callSuper(this, MenuPageView, arguments);
  }
  (0, _inherits2.default)(MenuPageView, _Marionette$Composite);
  return (0, _createClass2.default)(MenuPageView, [{
    key: "id",
    value: function id() {
      return 'elementor-panel-page-menu';
    }
  }, {
    key: "getTemplate",
    value: function getTemplate() {
      return '#tmpl-elementor-panel-menu';
    }
  }, {
    key: "getChildView",
    value: function getChildView() {
      return _group.default;
    }
  }, {
    key: "childViewContainer",
    value: function childViewContainer() {
      return '#elementor-panel-page-menu-content';
    }

    // Remove empty groups that exist for BC.
  }, {
    key: "filter",
    value: function filter(child) {
      return child.get('items').length;
    }
  }]);
}(Marionette.CompositeView);
MenuPageView.addItem = function (groups, itemData, groupName, before) {
  var group = groups.findWhere({
    name: groupName
  });
  if (!group) {
    return;
  }
  var items = group.get('items'),
    exists = _.findWhere(items, {
      name: itemData.name
    }); // Remove if exist.

  var beforeItem;
  if (exists) {
    items.splice(items.indexOf(exists), 1);
  }
  if (before) {
    beforeItem = _.findWhere(items, {
      name: before
    });
  }
  if (beforeItem) {
    items.splice(items.indexOf(beforeItem), 0, itemData);
  } else {
    items.push(itemData);
  }
};

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/pages/menu/menu.js":
/*!****************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/pages/menu/menu.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 _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
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 _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 _base = _interopRequireDefault(__webpack_require__(/*! elementor-panel/pages/menu/base */ "../assets/dev/js/editor/regions/panel/pages/menu/base.js"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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; })(); }
var PanelMenu = exports["default"] = /*#__PURE__*/function (_MenuPageView) {
  function PanelMenu() {
    (0, _classCallCheck2.default)(this, PanelMenu);
    return _callSuper(this, PanelMenu, arguments);
  }
  (0, _inherits2.default)(PanelMenu, _MenuPageView);
  return (0, _createClass2.default)(PanelMenu, [{
    key: "initialize",
    value: function initialize() {
      this.collection = PanelMenu.getGroups();
    }
  }, {
    key: "getArrowClass",
    value: function getArrowClass() {
      return 'eicon-chevron-' + (elementorCommon.config.isRTL ? 'right' : 'left');
    }
  }, {
    key: "onRender",
    value: function onRender() {
      elementor.getPanelView().getHeaderView().ui.menuIcon.removeClass('eicon-menu-bar').addClass(this.getArrowClass());
    }
  }, {
    key: "onDestroy",
    value: function onDestroy() {
      elementor.getPanelView().getHeaderView().ui.menuIcon.removeClass(this.getArrowClass()).addClass('eicon-menu-bar');
    }
  }]);
}(_base.default);
PanelMenu.groups = null;
PanelMenu.initGroups = function () {
  PanelMenu.groups = new Backbone.Collection([]);

  // Keep the old `more` for BC, since 3.0.0.
  PanelMenu.groups.add({
    name: 'more',
    title: __('More', 'elementor'),
    items: []
  });
  PanelMenu.groups.add({
    name: 'navigate_from_page',
    title: __('Navigate From Page', 'elementor'),
    items: [
    // Todo: internal command.
    {
      name: 'view-page',
      icon: 'eicon-preview-thin',
      title: __('View Page', 'elementor'),
      type: 'link',
      link: elementor.config.document.urls.permalink
    }]
  });
  if (elementor.config.user.is_administrator) {
    PanelMenu.addAdminMenu();
  }
  PanelMenu.addExitItem();
};
PanelMenu.addAdminMenu = function () {
  PanelMenu.groups.add({
    name: 'style',
    title: __('Settings', 'elementor'),
    items: [{
      name: 'editor-preferences',
      icon: 'eicon-user-preferences',
      title: __('User Preferences', 'elementor'),
      type: 'page',
      callback: function callback() {
        return $e.route('panel/editor-preferences');
      }
    }]
  }, {
    at: 0
  });
  PanelMenu.addItem({
    name: 'finder',
    icon: 'eicon-search',
    title: __('Finder', 'elementor'),
    callback: function callback() {
      return $e.route('finder');
    }
  }, 'navigate_from_page', 'view-page');
  PanelMenu.addItem({
    name: 'apps',
    icon: 'eicon-apps',
    title: __('Add-ons', 'elementor'),
    type: 'link',
    link: elementor.config.admin_apps_url,
    newTab: true
  }, 'navigate_from_page', 'finder');
};
PanelMenu.addExitItem = function () {
  var itemArgs;
  if (!elementor.config.user.introduction.exit_to && elementor.config.user.is_administrator) {
    PanelMenu.exitShouldRedirect = false;
    itemArgs = {
      callback: function callback() {
        return PanelMenu.clickExitItem();
      }
    };
  } else {
    itemArgs = {
      type: 'link',
      link: PanelMenu.getExitUrl()
    };
  }
  PanelMenu.addItem(_objectSpread({
    name: 'exit',
    icon: 'eicon-exit',
    title: __('Exit', 'elementor')
  }, itemArgs), 'navigate_from_page');
};

// Callback being used to determine when to open the modal or redirect the user.
PanelMenu.clickExitItem = function () {
  var currentValue = elementor.getPreferences('exit_to');
  var defaultValue = elementor.settings.editorPreferences.getEditedView().getContainer().controls.exit_to.default;

  // The modal will pop if the user has not set the exit to preference yet or if the model never showed before.
  if (currentValue !== defaultValue || PanelMenu.exitShouldRedirect) {
    window.location.href = PanelMenu.getExitUrl();
  } else {
    var exitIntroduction = PanelMenu.createExitIntroductionDialog();
    exitIntroduction.show();
  }
};
PanelMenu.createExitIntroductionDialog = function () {
  var template = document.querySelector('#tmpl-elementor-exit-dialog');
  var options = elementor.settings.editorPreferences.getEditedView().getContainer().controls.exit_to.options;
  var introduction = new elementorModules.editor.utils.Introduction({
    introductionKey: 'exit_to',
    dialogType: 'confirm',
    dialogOptions: {
      id: 'elementor-change-exit-preference-dialog',
      className: 'dialog-exit-preferences',
      headerMessage: __('New options for "Exit to..."', 'elementor'),
      message: template.innerHTML,
      position: {
        my: 'center center',
        at: 'center center'
      },
      strings: {
        confirm: __('Apply', 'elementor'),
        cancel: __('Decide Later', 'elementor')
      },
      effects: {
        show: 'fadeIn',
        hide: 'fadeOut'
      },
      onShow: function onShow() {
        introduction.setViewed();
        elementor.config.user.introduction.exit_to = true;
        PanelMenu.exitShouldRedirect = true;
      },
      onConfirm: function () {
        var _onConfirm = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
          return _regenerator.default.wrap(function (_context) {
            while (1) switch (_context.prev = _context.next) {
              case 0:
                $e.run('document/elements/settings', {
                  container: elementor.settings.editorPreferences.getEditedView().getContainer(),
                  settings: {
                    exit_to: select.value
                  },
                  options: {
                    external: true
                  }
                });
                _context.next = 1;
                return elementor.settings.editorPreferences.save();
              case 1:
                window.location.href = PanelMenu.getExitUrl();
              case 2:
              case "end":
                return _context.stop();
            }
          }, _callee);
        }));
        function onConfirm() {
          return _onConfirm.apply(this, arguments);
        }
        return onConfirm;
      }(),
      onCancel: function onCancel() {
        window.location.href = PanelMenu.getExitUrl();
      }
    }
  });

  // Edit the template inside the dialog
  var messageContainer = introduction.getDialog().getElements().message[0],
    select = messageContainer.querySelector('#exit-to-preferences'),
    link = messageContainer.querySelector('#user-preferences');
  for (var _i = 0, _Object$entries = Object.entries(options); _i < _Object$entries.length; _i++) {
    var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
      key = _Object$entries$_i[0],
      value = _Object$entries$_i[1];
    var option = document.createElement('option');
    option.innerText = value;
    option.value = key;
    select.appendChild(option);
  }

  // Bind click event to the link in the dialog to open the editor preferences.
  link.addEventListener('click', function (e) {
    e.preventDefault();
    introduction.getDialog().hide();
    $e.route('panel/editor-preferences');

    // Force the exit button to rerender by creating new exit button.
    PanelMenu.addExitItem();
  });
  return introduction;
};

/**
 * Get the exit url according to the 'exit_to' user preference.
 */
PanelMenu.getExitUrl = function () {
  var exitPreference = elementor.getPreferences('exit_to');
  switch (exitPreference) {
    case 'dashboard':
      return elementor.config.document.urls.main_dashboard;
    case 'all_posts':
      return elementor.config.document.urls.all_post_type;
    case 'this_post':
    default:
      return elementor.config.document.urls.exit_to_dashboard;
  }
};
PanelMenu.getGroups = function () {
  if (!PanelMenu.groups) {
    PanelMenu.initGroups();
  }
  return PanelMenu.groups;
};
PanelMenu.addItem = function (itemData, groupName, before) {
  _base.default.addItem(PanelMenu.getGroups(), itemData, groupName, before);
};

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/pages/menu/views/group.js":
/*!***********************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/pages/menu/views/group.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var PanelMenuItemView = __webpack_require__(/*! elementor-panel/pages/menu/views/item */ "../assets/dev/js/editor/regions/panel/pages/menu/views/item.js");
module.exports = Marionette.CompositeView.extend({
  template: '#tmpl-elementor-panel-menu-group',
  className: 'elementor-panel-menu-group',
  childView: PanelMenuItemView,
  childViewContainer: '.elementor-panel-menu-items',
  initialize: function initialize() {
    this.collection = new Backbone.Collection(this.model.get('items'));
  },
  onChildviewClick: function onChildviewClick(childView) {
    var callback = childView.model.get('callback');
    if (_.isFunction(callback)) {
      callback.call(childView);
    }
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/pages/menu/views/item.js":
/*!**********************************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/pages/menu/views/item.js ***!
  \**********************************************************************/
/***/ ((module) => {

"use strict";


module.exports = Marionette.ItemView.extend({
  template: '#tmpl-elementor-panel-menu-item',
  tagName: 'button',
  className: function className() {
    return 'elementor-panel-menu-item elementor-panel-menu-item-' + this.model.get('name');
  },
  triggers: {
    click: {
      event: 'click',
      preventDefault: false
    }
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/regions/panel/panel.js":
/*!******************************************************!*\
  !*** ../assets/dev/js/editor/regions/panel/panel.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var BaseRegion = __webpack_require__(/*! elementor-regions/base */ "../assets/dev/js/editor/regions/base.js");
module.exports = BaseRegion.extend({
  el: '#elementor-panel',
  getStorageKey: function getStorageKey() {
    return 'panel';
  },
  getDefaultStorage: function getDefaultStorage() {
    return {
      size: {
        width: ''
      }
    };
  },
  constructor: function constructor() {
    BaseRegion.prototype.constructor.apply(this, arguments);
    var PanelLayoutView = __webpack_require__(/*! elementor-regions/panel/layout */ "../assets/dev/js/editor/regions/panel/layout.js");
    this.show(new PanelLayoutView());
    this.resizable();
    this.setSize();
    this.listenTo(elementor.channels.dataEditMode, 'switch', this.onEditModeSwitched);
  },
  setSize: function setSize() {
    var savedWidth = this.storage.size.width;
    elementorCommon.elements.$body.css('--e-editor-panel-width', savedWidth);
  },
  resizable: function resizable() {
    var self = this;
    self.$el.resizable({
      handles: elementorCommon.config.isRTL ? 'w' : 'e',
      minWidth: 250,
      maxWidth: 680,
      start: function start() {
        elementor.$previewWrapper.addClass('ui-resizable-resizing');
      },
      stop: function stop(event, ui) {
        elementor.$previewWrapper.removeClass('ui-resizable-resizing');
        elementor.getPanelView().updateScrollbar();
        self.saveSize({
          width: ui.size.width + 'px'
        });
      },
      resize: function resize(event, ui) {
        elementorCommon.elements.$body.css('--e-editor-panel-width', ui.size.width + 'px');
        self.$el.css({
          width: '',
          // For RTL
          left: ''
        });
      }
    });
  },
  onEditModeSwitched: function onEditModeSwitched(activeMode) {
    if ('edit' !== activeMode) {
      return;
    }
    this.setSize();
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/utils/color-picker.js":
/*!*****************************************************!*\
  !*** ../assets/dev/js/editor/utils/color-picker.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 _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"));
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; })(); }
var ColorPicker = exports["default"] = /*#__PURE__*/function (_elementorModules$Mod) {
  function ColorPicker() {
    var _this;
    (0, _classCallCheck2.default)(this, ColorPicker);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, ColorPicker, [].concat(args));
    _this.createPicker();
    return _this;
  }
  (0, _inherits2.default)(ColorPicker, _elementorModules$Mod);
  return (0, _createClass2.default)(ColorPicker, [{
    key: "getDefaultSettings",
    value: function getDefaultSettings() {
      return {
        picker: {
          theme: 'monolith',
          position: 'bottom-middle',
          components: {
            opacity: true,
            hue: true,
            interaction: {
              input: true,
              hex: true,
              rgba: true,
              hsla: true
            }
          }
        },
        classes: {
          active: 'elementor-active',
          pickerHeader: 'elementor-color-picker__header',
          pickerToolsContainer: 'e-color-picker__tools',
          pickerTool: 'e-control-tool',
          clearButton: 'e-color-picker__clear',
          plusIcon: 'eicon-plus'
        }
      };
    }
  }, {
    key: "createPicker",
    value: function createPicker() {
      var _this2 = this;
      var pickerSettings = this.getSettings('picker');
      pickerSettings.default = pickerSettings.default || null;
      this.picker = new Pickr(pickerSettings);

      // Set a default palette. It doesn't affect the selected value.
      this.picker.setColor(pickerSettings.default || '#020101');
      this.color = this.processColor();
      this.picker.on('change', function () {
        return _this2.onPickerChange();
      }).on('clear', function () {
        return _this2.onPickerClear();
      }).on('show', function () {
        return _this2.onPickerShow();
      }).on('hide', function () {
        return _this2.onPickerHide();
      });
      this.$pickerAppContainer = jQuery(this.picker.getRoot().app);
      this.createPickerHeader();
    }
  }, {
    key: "addTipsyToClearButton",
    value: function addTipsyToClearButton() {
      this.$clearButton.tipsy({
        title: function title() {
          return __('Clear', 'elementor');
        },
        gravity: function gravity() {
          return 's';
        }
      });
    }
  }, {
    key: "processColor",
    value: function processColor() {
      var color = this.picker.getColor();
      var colorRepresentation;
      if (1 === color.a) {
        colorRepresentation = color.toHEXA();
      } else {
        colorRepresentation = color.toRGBA();
      }
      return colorRepresentation.toString();
    }
  }, {
    key: "getColor",
    value: function getColor() {
      return this.color;
    }
  }, {
    key: "createPickerHeader",
    value: function createPickerHeader() {
      var _this$getSettings = this.getSettings(),
        classes = _this$getSettings.classes,
        $pickerHeader = jQuery('<div>', {
          class: classes.pickerHeader
        }).text(__('Color Picker', 'elementor')),
        $pickerToolsContainer = jQuery('<div>', {
          class: classes.pickerToolsContainer
        }),
        addButton = this.getSettings('addButton');
      this.$pickerToolsContainer = $pickerToolsContainer;
      if (addButton) {
        this.createAddButton();
      }
      this.createClearButton();
      $pickerToolsContainer.append(this.$clearButton, this.$addButton);
      $pickerHeader.append($pickerToolsContainer);
      this.$pickerAppContainer.prepend($pickerHeader);
    }
  }, {
    key: "createAddButton",
    value: function createAddButton() {
      var _this3 = this;
      var _this$getSettings2 = this.getSettings(),
        classes = _this$getSettings2.classes;
      this.$addButton = jQuery('<button>', {
        class: classes.pickerTool
      }).html(jQuery('<i>', {
        class: classes.plusIcon
      }));
      this.$addButton.on('click', function () {
        return _this3.onAddButtonClick();
      });
      this.$addButton.tipsy({
        title: function title() {
          return __('Create New Global Color', 'elementor');
        },
        gravity: function gravity() {
          return 's';
        }
      });
    }

    // Move the clear button from Pickr's default location into the Color Picker header.
  }, {
    key: "createClearButton",
    value: function createClearButton() {
      var _this4 = this;
      var _this$getSettings3 = this.getSettings(),
        classes = _this$getSettings3.classes;
      this.$clearButton = jQuery('<button>', {
        class: classes.clearButton + ' ' + classes.pickerTool
      }).html('<i class="eicon-undo"></i>');
      this.$clearButton.on('click', function () {
        return _this4.picker._clearColor();
      });
      this.addTipsyToClearButton();
    }
  }, {
    key: "destroy",
    value: function destroy() {
      this.picker.destroyAndRemove();
    }

    // TODO: CHECK IF THIS IS STILL NECESSARY
  }, {
    key: "fixTipsyForFF",
    value: function fixTipsyForFF($button) {
      // There's a bug in FireFox about hiding the tooltip after the button was clicked,
      // So let's force it to hide.
      $button.data('tipsy').hide();
    }
  }, {
    key: "introductionViewed",
    value: function introductionViewed() {
      return ColorPicker.droppingIntroductionViewed || elementor.config.user.introduction.colorPickerDropping;
    }
  }, {
    key: "toggleClearButtonState",
    value: function toggleClearButtonState(active) {
      this.$clearButton.toggleClass('e-control-tool-disabled', !active);
    }
  }, {
    key: "onPickerChange",
    value: function onPickerChange() {
      this.picker.applyColor();
      var newColor = this.processColor();
      if (newColor === this.color) {
        return;
      }
      this.color = newColor;
      var onChange = this.getSettings('onChange');
      if (onChange) {
        onChange();
      }
    }
  }, {
    key: "onPickerClear",
    value: function onPickerClear() {
      this.color = '';
      var onClear = this.getSettings('onClear');
      if (onClear) {
        onClear();
      }
    }
  }, {
    key: "onPickerShow",
    value: function onPickerShow() {
      var resultInput = this.picker.getRoot().interaction.result;
      var onPickerShow = this.getSettings('onPickerShow');
      if (onPickerShow) {
        onPickerShow();
      }
      setTimeout(function () {
        resultInput.select();
      }, 100);
    }
  }, {
    key: "onPickerHide",
    value: function onPickerHide() {
      var onPickerHide = this.getSettings('onPickerHide');
      if (onPickerHide) {
        onPickerHide();
      }
    }
  }, {
    key: "onAddButtonClick",
    value: function onAddButtonClick() {
      this.picker.hide();
      var onPickerAddButtonClick = this.getSettings('onAddButtonClick');
      if (onPickerAddButtonClick) {
        onPickerAddButtonClick();
      }
      this.fixTipsyForFF(this.$addButton);
    }
  }]);
}(elementorModules.Module);

/***/ }),

/***/ "../assets/dev/js/editor/utils/conditions.js":
/*!***************************************************!*\
  !*** ../assets/dev/js/editor/utils/conditions.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 _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 Conditions = exports["default"] = /*#__PURE__*/function () {
  function Conditions() {
    (0, _classCallCheck2.default)(this, Conditions);
  }
  return (0, _createClass2.default)(Conditions, [{
    key: "compare",
    value: function compare(leftValue, rightValue, operator) {
      switch (operator) {
        /* eslint-disable eqeqeq */
        case '==':
          return leftValue == rightValue;
        case '!=':
          return leftValue != rightValue;
        /* eslint-enable eqeqeq */
        case '!==':
          return leftValue !== rightValue;
        case 'in':
          return -1 !== rightValue.indexOf(leftValue);
        case '!in':
          return -1 === rightValue.indexOf(leftValue);
        case 'contains':
          return -1 !== leftValue.indexOf(rightValue);
        case '!contains':
          return -1 === leftValue.indexOf(rightValue);
        case '<':
          return leftValue < rightValue;
        case '<=':
          return leftValue <= rightValue;
        case '>':
          return leftValue > rightValue;
        case '>=':
          return leftValue >= rightValue;
        default:
          return leftValue === rightValue;
      }
    }

    /**
     * Get Operator
     *
     * Returns the condition's comparison operator according to the structure of the condition and item values.
     *
     * @since 3.7.0
     *
     * @param {*}       conditionValue
     * @param {boolean} isNegativeCondition
     * @param {8}       currentValue
     * @return {string} The operator to use.
     */
  }, {
    key: "getOperator",
    value: function getOperator(conditionValue, isNegativeCondition, currentValue) {
      var operator;
      if (Array.isArray(conditionValue) && conditionValue.length) {
        operator = isNegativeCondition ? '!in' : 'in';
      } else if (Array.isArray(currentValue) && currentValue.length) {
        operator = isNegativeCondition ? '!contains' : 'contains';
      } else if (isNegativeCondition) {
        operator = '!==';
      }
      return operator;
    }

    /**
     * Get Condition Value
     *
     * Retrieves a passed condition's value.
     *
     * @since 3.7.0
     *
     * @param {{}}     comparisonObject A settings object (e.g. element settings - keys and values)
     * @param {string} conditionName    The conditioning item's name
     * @param {string} subConditionName If the conditioning item's value is an object, and the condition checks for a
     *                                  specific property, this is the property name.
     * @return {*} Condition Value
     */
  }, {
    key: "getConditionValue",
    value: function getConditionValue(comparisonObject, conditionName, subConditionName) {
      var value;
      if ('object' === (0, _typeof2.default)(comparisonObject[conditionName]) && subConditionName) {
        value = comparisonObject[conditionName][subConditionName];
      } else {
        value = comparisonObject[conditionName];
      }
      return value;
    }
  }, {
    key: "check",
    value: function check(conditions, comparisonObject) {
      var _this = this;
      var isOrCondition = 'or' === conditions.relation;
      var conditionSucceed = !isOrCondition;
      conditions.terms.forEach(function (term) {
        var comparisonResult;
        if (term.terms) {
          comparisonResult = _this.check(term, comparisonObject);
        } else {
          // A term consists of a condition name (id) to be examined, and a sub key if the condition source is
          // an object. For example, a term can look like 'image_overlay[url]' (the 'url' is the sub key). Here
          // we want to isolate the condition name and the sub key, so later it can be retrieved and examined.
          var parsedName = term.name.match(/([\w-]+)(?:\[([\w-]+)])?/),
            conditionRealName = parsedName[1],
            conditionSubKey = parsedName[2];
          var value = _this.getConditionValue(comparisonObject, conditionRealName, conditionSubKey);
          comparisonResult = undefined !== value && _this.compare(value, term.value, term.operator);
        }
        if (isOrCondition) {
          if (comparisonResult) {
            conditionSucceed = true;
          }
          return !comparisonResult;
        }
        if (!comparisonResult) {
          return conditionSucceed = false;
        }
      });
      return conditionSucceed;
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/utils/container-helper.js":
/*!*********************************************************!*\
  !*** ../assets/dev/js/editor/utils/container-helper.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"] = exports.ContainerHelper = 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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _v4FlexboxPreset = __webpack_require__(/*! ./v4-flexbox-preset */ "../assets/dev/js/editor/utils/v4-flexbox-preset.js");
var _ContainerHelper;
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
/**
 * @typedef {import('../container/container')} Container
 */
/**
 * Container element helper functions.
 */
var ContainerHelper = exports.ContainerHelper = /*#__PURE__*/function () {
  function ContainerHelper() {
    (0, _classCallCheck2.default)(this, ContainerHelper);
  }
  return (0, _createClass2.default)(ContainerHelper, null, [{
    key: "isV4OptIn",
    value: function isV4OptIn() {
      var _elementorCommon;
      return !!((_elementorCommon = elementorCommon) !== null && _elementorCommon !== void 0 && (_elementorCommon = _elementorCommon.config) !== null && _elementorCommon !== void 0 && (_elementorCommon = _elementorCommon.experimentalFeatures) !== null && _elementorCommon !== void 0 && _elementorCommon.e_opt_in_v4);
    }

    /**
     * Create multiple container elements.
     *
     * @param {number}    count    - Count of Containers to create.
     * @param {Object}    settings - Settings to set to each Container.
     * @param {Container} target   - The Container object to create the new Container elements inside.
     * @param {Object}    options  - Additional command options.
     *
     * @return {Container[]} - Array of the newly created Containers.
     */
  }, {
    key: "createContainers",
    value: function createContainers(count, settings) {
      var target = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
      var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
      var containers = [];
      for (var i = 0; i < count; i++) {
        containers.push(this.createContainer(settings, target, options));
      }
      return containers;
    }

    /**
     * Create a Container element.
     *
     * @param {Object}    settings        - Settings to set to each Container.
     * @param {Container} target          - The Container object to create the new Container elements inside.
     * @param {Object}    options         - Additional command options.
     * @param {Object}    modelAttributes - Additional model attributes.
     *
     * @return {Container} - The newly created Container.
     */
  }, {
    key: "createContainer",
    value: function createContainer() {
      var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var target = arguments.length > 1 ? arguments[1] : undefined;
      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
      var modelAttributes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
      return $e.run('document/elements/create', {
        container: target,
        model: _objectSpread({
          elType: 'container',
          settings: settings
        }, modelAttributes),
        options: options
      });
    }

    /**
     * Change Container settings.
     *
     * @param {Object}    settings  - New settings.
     * @param {Container} container - Container to set the settings to.
     *
     * @return {void}
     */
  }, {
    key: "setContainerSettings",
    value: function setContainerSettings(settings, container) {
      $e.run('document/elements/settings', {
        container: container,
        settings: settings,
        options: {
          external: true
        }
      });
    }

    /**
     * Create a Container element based on a sizes.
     *
     * @param {Array}     sizes                        - Preset sizes.
     * @param {Container} target                       - The target of new created element.
     * @param {Object}    options                      - Additional command options.
     * @param {boolean}   [options.createWrapper=true] - Create a wrapper container for the preset.
     *
     * @return {Container} - Container created on.
     */
  }, {
    key: "createContainerFromSizes",
    value: function createContainerFromSizes(sizes, target) {
      var _this = this;
      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
      var _options$createWrappe = options.createWrapper,
        createWrapper = _options$createWrappe === void 0 ? true : _options$createWrappe,
        sizesMap = {
          33: '33.3333',
          66: '66.6666'
        },
        sizesSum = sizes.reduce(function (sum, size) {
          return sum + parseInt(size);
        }, 0),
        shouldWrap = sizesSum > 100,
        settings = _objectSpread(_objectSpread({
          flex_direction: this.DIRECTION_ROW
        }, shouldWrap ? {
          flex_wrap: 'wrap'
        } : {}), {}, {
          flex_gap: {
            unit: 'px',
            size: 0,
            // Set the gap to 0 to override the default inherited from `Site Settings`.
            column: '0',
            row: '0'
          }
        });

      // Create a parent container to contain all of the sub containers.
      var parentContainer;

      // The `createWrapper` false option is used in nested-modules for creating containers from preset for custom target(s).
      if (!createWrapper) {
        $e.run('document/elements/settings', {
          container: target,
          settings: settings
        });
        parentContainer = target;
      } else {
        parentContainer = this.createContainer(settings, target, options);
      }

      // Create all sub containers using the sizes array.
      // Use flex basis to make the sizes explicit.
      sizes.forEach(function (size) {
        size = sizesMap[size] || size;
        _this.createContainer({
          flex_direction: _this.DIRECTION_COLUMN,
          content_width: 'full',
          width: {
            unit: '%',
            size: size
          }
        }, parentContainer, {
          edit: false
        });
      });
      return parentContainer;
    }

    /**
     * Create a Container element based on a preset.
     *
     * @param {string}    preset                       - Preset structure of the sub containers (e.g. `33-66-66-33`).
     * @param {Container} target                       - The target container of the newly created Container.
     * @param {Object}    options                      - Additional command options.
     * @param {boolean}   [options.createWrapper=true] - Create a wrapper container for the preset.
     *
     * @return {Container} - Container created on.
     */
  }, {
    key: "createContainerFromPreset",
    value: function createContainerFromPreset(preset) {
      var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : elementor.getPreviewContainer();
      var options = arguments.length > 2 ? arguments[2] : undefined;
      if (ContainerHelper.isV4OptIn()) {
        return (0, _v4FlexboxPreset.createV4FlexboxFromPreset)(preset, target, options);
      }
      var historyId = $e.internal('document/history/start-log', {
          type: 'add',
          title: __('Container', 'elementor')
        }),
        _options$createWrappe2 = options.createWrapper,
        createWrapper = _options$createWrappe2 === void 0 ? true : _options$createWrappe2;
      var newContainer, settings;
      try {
        switch (preset) {
          // Single column Container without sub Containers.
          case 'c100':
            newContainer = ContainerHelper.createContainer({
              flex_direction: ContainerHelper.DIRECTION_COLUMN
            }, target, options);
            break;

          // Single row Container without sub Containers.
          case 'r100':
            newContainer = ContainerHelper.createContainer({
              flex_direction: ContainerHelper.DIRECTION_ROW
            }, target, options);
            break;

          // Exceptional preset.
          case 'c100-c50-50':
            {
              settings = {
                flex_direction: ContainerHelper.DIRECTION_ROW,
                flex_gap: {
                  unit: 'px',
                  size: 0,
                  // Set the gap to 0 to override the default inherited from `Site Settings`.
                  column: '0',
                  row: '0'
                }
              };
              if (!createWrapper) {
                $e.run('document/elements/settings', {
                  container: target,
                  settings: settings
                });
                newContainer = target;
              } else {
                newContainer = ContainerHelper.createContainer(settings, target, options);
              }
              settings = {
                content_width: 'full',
                width: {
                  unit: '%',
                  size: '50'
                }
              };
              ContainerHelper.createContainer(settings, newContainer, {
                edit: false
              });
              var rightContainer = ContainerHelper.createContainer(_objectSpread(_objectSpread({}, settings), {}, {
                padding: {
                  unit: 'px',
                  top: 0,
                  right: 0,
                  bottom: 0,
                  left: 0,
                  isLinked: true
                },
                // Create the right Container with 0 padding (default is 10px).
                flex_gap: {
                  unit: 'px',
                  size: 0,
                  // Set the gap to 0 to override the default inherited from `Site Settings`.
                  column: '0',
                  row: '0'
                }
              }), newContainer, {
                edit: false
              });
              ContainerHelper.createContainers(2, {}, rightContainer, {
                edit: false
              });
              break;
            }
          // Containers by preset.
          default:
            {
              var sizes = preset.split('-');
              newContainer = ContainerHelper.createContainerFromSizes(sizes, target, options);
            }
        }
        $e.internal('document/history/end-log', {
          id: historyId
        });
      } catch (e) {
        $e.internal('document/history/delete-log', {
          id: historyId
        });
      }
      return newContainer;
    }

    /**
     * Open edit mode of a Container.
     *
     * @param {Container} container - Container to open edit mode for.
     */
  }, {
    key: "openEditMode",
    value: function openEditMode(container) {
      $e.run('document/elements/select', {
        container: container
      });
    }
  }, {
    key: "createContainerFromModel",
    value: function createContainerFromModel(model, target) {
      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
      return $e.run('document/elements/create', _objectSpread({
        model: model,
        container: target
      }, options));
    }
  }]);
}();
_ContainerHelper = ContainerHelper;
// Flex directions.
(0, _defineProperty2.default)(ContainerHelper, "DIRECTION_ROW", 'row');
(0, _defineProperty2.default)(ContainerHelper, "DIRECTION_COLUMN", 'column');
(0, _defineProperty2.default)(ContainerHelper, "DIRECTION_ROW_REVERSED", 'row-reverse');
(0, _defineProperty2.default)(ContainerHelper, "DIRECTION_COLUMN_REVERSED", 'column-reverse');
(0, _defineProperty2.default)(ContainerHelper, "DIRECTION_DEFAULT", _ContainerHelper.DIRECTION_COLUMN);
(0, _defineProperty2.default)(ContainerHelper, "CONTAINER_TYPE_GRID", 'grid');
(0, _defineProperty2.default)(ContainerHelper, "V4_DEFAULT_CONTAINER_TYPE", 'e-flexbox');
var _default = exports["default"] = ContainerHelper;

/***/ }),

/***/ "../assets/dev/js/editor/utils/context-menu.js":
/*!*****************************************************!*\
  !*** ../assets/dev/js/editor/utils/context-menu.js ***!
  \*****************************************************/
/***/ ((module) => {

"use strict";


module.exports = elementorModules.Module.extend({
  openMenuEvent: null,
  location: null,
  getDefaultSettings: function getDefaultSettings() {
    return {
      context: 'preview',
      actions: {},
      classes: {
        list: 'elementor-context-menu-list',
        group: 'elementor-context-menu-list__group',
        groupPrefix: 'elementor-context-menu-list__group-',
        item: 'elementor-context-menu-list__item',
        itemTypePrefix: 'elementor-context-menu-list__item-',
        itemTitle: 'elementor-context-menu-list__item__title',
        itemShortcut: 'elementor-context-menu-list__item__shortcut',
        iconShortcut: 'elementor-context-menu-list__item__icon',
        itemDisabled: 'elementor-context-menu-list__item--disabled',
        itemHasShortcutAction: 'elementor-context-menu-list__item--has-shortcut-action',
        divider: 'elementor-context-menu-list__divider',
        hidden: 'elementor-hidden',
        promotionLink: 'elementor-context-menu-list__item__shortcut--link-fullwidth'
      }
    };
  },
  buildActionItem: function buildActionItem(action) {
    var self = this,
      classes = self.getSettings('classes'),
      $item = jQuery('<div>', {
        class: classes.item + ' ' + classes.itemTypePrefix + action.name,
        role: 'menuitem',
        tabindex: '0'
      }),
      $itemTitle = jQuery('<div>', {
        class: classes.itemTitle
      }).text(action.title),
      $itemIcon = jQuery('<div>', {
        class: classes.iconShortcut
      });
    if (action.icon) {
      $itemIcon.html(jQuery('<i>', {
        class: action.icon
      }));
    }
    $item.append($itemIcon, $itemTitle);
    if (action.shortcut) {
      var $itemShortcut = jQuery('<div>', {
        class: classes.itemShortcut
      }).html(action.shortcut);
      $item.append($itemShortcut);
    }
    if (action.callback) {
      $item.on('click', function () {
        self.runAction(action);
      });
      $item.on('keyup', function (event) {
        var ENTER_KEY = 13,
          SPACE_KEY = 32;
        if (ENTER_KEY === event.keyCode || SPACE_KEY === event.keyCode) {
          self.runAction(action);
        }
      });
    }
    action.$item = $item;
    return $item;
  },
  buildActionsList: function buildActionsList() {
    var self = this,
      classes = self.getSettings('classes'),
      groups = self.getSettings('groups'),
      $list = jQuery('<div>', {
        class: classes.list,
        role: 'menu'
      });
    groups.forEach(function (group) {
      var $group = jQuery('<div>', {
        class: classes.group + ' ' + classes.groupPrefix + group.name,
        role: 'group'
      });
      group.actions.forEach(function (action) {
        $group.append(self.buildActionItem(action));
      });
      $list.append($group);
      group.$item = $group;
    });
    return $list;
  },
  toggleGroupVisibility: function toggleGroupVisibility(group, state) {
    group.$item.toggleClass(this.getSettings('classes.hidden'), !state);
  },
  toggleActionVisibility: function toggleActionVisibility(action, state) {
    action.$item.toggleClass(this.getSettings('classes.hidden'), !state);
  },
  toggleActionUsability: function toggleActionUsability(action, state) {
    this.maybeAddPromotionLink(action);
    action.$item.toggleClass(this.getSettings('classes.itemDisabled'), !state);
    if (action.hasShortcutAction) {
      action.$item.toggleClass(this.getSettings('classes.itemHasShortcutAction'), !state);
    }
  },
  maybeAddPromotionLink: function maybeAddPromotionLink(action) {
    if (this.shouldAddPromotionLink(action)) {
      var iconContainer = action.$item.find('div.elementor-context-menu-list__item__shortcut')[0];
      iconContainer.insertAdjacentHTML('beforeend', "<a href='".concat(action.promotionURL, "' target=\"_blank\" class=\"").concat(this.getSettings('classes.promotionLink'), "\"></a>"));
    }
  },
  shouldAddPromotionLink: function shouldAddPromotionLink(action) {
    return !!(action.promotionURL && !action.$item.find('a.elementor-context-menu-list__item__shortcut--link-fullwidth')[0] && action.$item.find('i.eicon-pro-icon')[0]);
  },
  /**
   * Update the action title.
   *
   * Sometimes the action title should dynamically change. This can be done by passing a function as the `title`
   * property when initializing the context-menu, and here it actually invoked and assigned as the title.
   *
   * @param {*} action
   */
  updateActionTitle: function updateActionTitle(action) {
    if ('function' === typeof action.title) {
      action.$item.find('.' + this.getSettings('classes').itemTitle).text(action.title());
    }
  },
  isActionEnabled: function isActionEnabled(action) {
    if (!action.callback && !action.groups) {
      return false;
    }
    return action.isEnabled ? action.isEnabled() : true;
  },
  isActionVisible: function isActionVisible(action) {
    if ('function' === typeof action.isVisible) {
      return action.isVisible();
    }
    return false !== action.isVisible;
  },
  runAction: function runAction(action) {
    if (!this.isActionEnabled(action) || !this.isActionVisible(action)) {
      return;
    }
    action.callback(this.openMenuEvent, {
      location: this.location,
      secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations.contextMenu,
      trigger: elementorCommon.eventsManager.config.triggers.rightClick
    });
    this.getModal().hide();
  },
  initModal: function initModal() {
    var modal;
    this.getModal = function () {
      if (!modal) {
        modal = elementorCommon.dialogsManager.createWidget('simple', {
          className: 'elementor-context-menu',
          message: this.buildActionsList(),
          iframe: 'preview' === this.getSettings('context') ? elementor.$preview : null,
          effects: {
            hide: 'hide',
            show: 'show'
          },
          hide: {
            onOutsideContextMenu: true
          },
          position: {
            my: (elementorCommon.config.isRTL ? 'right' : 'left') + ' top',
            collision: 'fit'
          }
        });
      }
      return modal;
    };
  },
  show: function show(event) {
    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    var self = this,
      modal = self.getModal();
    this.openMenuEvent = event;
    this.location = options.location;
    modal.setSettings('position', {
      of: event
    });
    self.getSettings('groups').forEach(function (group) {
      var isGroupVisible = false !== group.isVisible;
      self.toggleGroupVisibility(group, isGroupVisible);
      if (isGroupVisible) {
        group.actions.forEach(function (action) {
          var isActionVisible = self.isActionVisible(action);
          self.toggleActionVisibility(action, isActionVisible);
          self.updateActionTitle(action);
          if (isActionVisible) {
            self.toggleActionUsability(action, self.isActionEnabled(action));
          }
        });
      }
    });
    modal.show();
    elementor.templates.eventManager.sendContextMenuExposureEvent();
  },
  destroy: function destroy() {
    this.getModal().destroy();
  },
  onInit: function onInit() {
    this.initModal();
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/utils/control-conditions.js":
/*!***********************************************************!*\
  !*** ../assets/dev/js/editor/utils/control-conditions.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _conditions = _interopRequireDefault(__webpack_require__(/*! ./conditions */ "../assets/dev/js/editor/utils/conditions.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
/**
 * Control Conditions Class
 *
 * This class Handles conditions checks specifically related to element controls.
 *
 * @since 3.7.0
 */
var ControlConditions = exports["default"] = /*#__PURE__*/function (_Conditions) {
  function ControlConditions() {
    (0, _classCallCheck2.default)(this, ControlConditions);
    return _callSuper(this, ControlConditions, arguments);
  }
  (0, _inherits2.default)(ControlConditions, _Conditions);
  return (0, _createClass2.default)(ControlConditions, [{
    key: "convertConditionToConditions",
    value:
    /**
     * Convert Condition to Conditions
     *
     * "Condition" is the simple form of Elementor's control conditioning system, which allows to create one or more
     * conditions with an "AND" relationship between them.
     *
     * "Conditions" is the advanced system for conditioning controls, which allows combining AND and/or OR conditions,
     * performing checks for larger/smaller than, checking if keys/values contain other keys/values, and more.
     *
     * This method receives a simple Condition (name and value) and converts it into the advanced Conditions format.
     * format.
     *
     * @since 3.7.0
     *
     * @param {string} conditionName
     * @param {string} conditionValue
     * @param {{}}     controlModel   - The control being tested.
     * @param {{}}     values         - The containing widget's array of control values.
     * @param {{}}     controls       - The containing widget's array of control models.
     * @return {{name, value: ({length}|*), operator: (string)}} A converted condition
     */
    function convertConditionToConditions(conditionName, conditionValue, controlModel, values, controls) {
      var _controlModel$attribu, _controls$conditionNa;
      // The first step is to isolate the term from the negative operator if exists. For example, a condition format
      // can look like 'selected_icon[value]!', so we examine this term with a negative connotation.
      var conditionNameParts = conditionName.match(/([\w-]+(?:\[[\w-]+])?)?(!?)$/i),
        conditionRealName = conditionNameParts[1],
        isNegativeCondition = !!conditionNameParts[2];
      var parsedControlName = conditionRealName.match(/([\w-]+)(?:\[([\w-]+)])?/),
        // ConditionNameWithoutSubKey example: the condition key 'image[url]' will give the value of 'image'.
        conditionNameWithoutSubKey = parsedControlName[1],
        // ConditionSubKey example: the condition key 'image[url]' will give the value of 'url'.
        conditionSubKey = parsedControlName[2],
        // In some cases the control's attributes will be under the 'attributes' property, and in some
        // cases they will be directly on the model object.
        controlResponsiveProp = ((_controlModel$attribu = controlModel.attributes) === null || _controlModel$attribu === void 0 ? void 0 : _controlModel$attribu.responsive) || controlModel.responsive;
      var conditionNameToCheck = conditionRealName,
        controlValue;

      // If the conditioning control is responsive, get the appropriate device's value.
      if (!!controlResponsiveProp && (_controls$conditionNa = controls[conditionNameWithoutSubKey]) !== null && _controls$conditionNa !== void 0 && _controls$conditionNa.responsive) {
        var deviceSuffix = this.getResponsiveControlDeviceSuffix(controlResponsiveProp);
        conditionNameToCheck = conditionNameWithoutSubKey + deviceSuffix;
        if (conditionSubKey) {
          conditionNameToCheck += "[".concat(conditionSubKey, "]");
        }

        // If the control is not desktop, take the value of the conditioning control of the corresponding device.
        controlValue = values[conditionNameWithoutSubKey + deviceSuffix];
      } else {
        controlValue = values[conditionRealName];
      }
      return {
        name: conditionNameToCheck,
        operator: this.getOperator(conditionValue, isNegativeCondition, controlValue),
        value: conditionValue
      };
    }

    /**
     * Get Responsive Control Device Suffix
     *
     * @param {Object} controlResponsiveProp
     * @return {string|string}
     */
  }, {
    key: "getResponsiveControlDeviceSuffix",
    value: function getResponsiveControlDeviceSuffix(controlResponsiveProp) {
      var queryDevice = controlResponsiveProp.max || controlResponsiveProp.min;
      return 'desktop' === queryDevice ? '' : '_' + queryDevice;
    }

    /**
     * Get Condition Value
     *
     * Retrieves a passed condition's value. Dynamic values take precedence. If there is no dynamic value, this method
     * checks for a regular item value.
     *
     * @since 3.7.0
     *
     * @param {{}}     comparisonObject A settings object (e.g. element settings - keys and values)
     * @param {string} conditionName    The conditioning item's name
     * @param {string} subConditionName If the conditioning item's value is an object, and the condition checks for a
     *                                  specific property, this is the property name.
     * @return {*} Condition Value.
     */
  }, {
    key: "getConditionValue",
    value: function getConditionValue(comparisonObject, conditionName, subConditionName) {
      var _comparisonObject$__d;
      var value;
      var dynamicValue = (_comparisonObject$__d = comparisonObject.__dynamic__) === null || _comparisonObject$__d === void 0 ? void 0 : _comparisonObject$__d[conditionName];
      if (dynamicValue) {
        value = dynamicValue;
      } else {
        value = _superPropGet(ControlConditions, "getConditionValue", this, 3)([comparisonObject, conditionName, subConditionName]);
      }
      return value;
    }

    /**
     * Check
     *
     * Iterates over an control's array of conditions and checks if all of them are met.
     *
     * @since 3.7.0
     *
     * @param {Array<*>} conditions       A control's array of conditions to be tested
     * @param {{}}       comparisonObject The widget's settings object (setting keys and values)
     * @param {{}}       controls         An object containing a widget's control models
     * @return {boolean} id all conditions passes./
     */
  }, {
    key: "check",
    value: function check(conditions, comparisonObject, controls) {
      var _this = this;
      var isOrCondition = 'or' === conditions.relation;
      var conditionSucceed = !isOrCondition;
      conditions.terms.forEach(function (term) {
        var comparisonResult;
        if (term.terms) {
          comparisonResult = _this.check(term, comparisonObject, controls);
        } else {
          // A term consists of a control name to be examined, and a sub key if needed. For example, a term
          // can look like 'image_overlay[url]' (the 'url' is the sub key). Here we want to isolate the
          // condition name and the sub key, so later it can be retrieved and examined.
          var parsedName = term.name.match(/([\w-]+)(?:\[([\w-]+)])?/),
            conditionRealName = parsedName[1],
            conditionSubKey = parsedName[2];
          var value = _this.getConditionValue(comparisonObject, conditionRealName, conditionSubKey);
          if (!value) {
            var _controls$conditionRe;
            var parent = (_controls$conditionRe = controls[conditionRealName]) === null || _controls$conditionRe === void 0 ? void 0 : _controls$conditionRe.parent;
            while (parent) {
              var _controls$parent;
              value = _this.getConditionValue(comparisonObject, parent, conditionSubKey);
              if (value) {
                break;
              }
              parent = (_controls$parent = controls[parent]) === null || _controls$parent === void 0 ? void 0 : _controls$parent.parent;
            }
          }
          comparisonResult = undefined !== value && _this.compare(value, term.value, term.operator);
        }
        if (isOrCondition) {
          if (comparisonResult) {
            conditionSucceed = true;
          }
          return !comparisonResult;
        }
        if (!comparisonResult) {
          return conditionSucceed = false;
        }
      });
      return conditionSucceed;
    }
  }]);
}(_conditions.default);

/***/ }),

/***/ "../assets/dev/js/editor/utils/controls-css-parser.js":
/*!************************************************************!*\
  !*** ../assets/dev/js/editor/utils/controls-css-parser.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 _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
var Stylesheet = __webpack_require__(/*! elementor-editor-utils/stylesheet */ "../assets/dev/js/editor/utils/stylesheet.js"),
  ControlsCSSParser;
ControlsCSSParser = elementorModules.ViewModule.extend({
  stylesheet: null,
  getDefaultSettings: function getDefaultSettings() {
    return {
      id: 0,
      context: null,
      settingsModel: null,
      dynamicParsing: {}
    };
  },
  getDefaultElements: function getDefaultElements() {
    var id = "elementor-style-".concat(this.getSettings('id'));
    var $stylesheet = elementor.$previewContents.find("#".concat(id));
    if (!$stylesheet.length) {
      $stylesheet = jQuery('<style>', {
        id: id
      });
    }
    return {
      $stylesheetElement: $stylesheet
    };
  },
  initStylesheet: function initStylesheet() {
    var _this = this;
    var breakpoints = elementorFrontend.config.responsive.activeBreakpoints;
    this.stylesheet = new Stylesheet();
    Object.entries(breakpoints).forEach(function (_ref) {
      var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
        breakpointName = _ref2[0],
        breakpointConfig = _ref2[1];
      _this.stylesheet.addDevice(breakpointName, breakpointConfig.value);
    });
  },
  addStyleRules: function addStyleRules(styleControls, values, controls, placeholders, replacements) {
    var _this2 = this;
    // If the current element contains dynamic values, parse these values
    var dynamicParsedValues = this.getSettings('settingsModel').parseDynamicSettings(values, this.getSettings('dynamicParsing'), styleControls);
    _.each(styleControls, function (control) {
      var _control$dynamic, _values$__dynamic__;
      if (control.styleFields && control.styleFields.length) {
        _this2.addRepeaterControlsStyleRules(values[control.name], control.styleFields, control.fields, placeholders, replacements);
      }

      // If a dynamic tag includes controls with CSS implementations, Take their CSS and apply it.
      if ((_control$dynamic = control.dynamic) !== null && _control$dynamic !== void 0 && _control$dynamic.active && (_values$__dynamic__ = values.__dynamic__) !== null && _values$__dynamic__ !== void 0 && _values$__dynamic__[control.name]) {
        _this2.addDynamicControlStyleRules(values.__dynamic__[control.name], control);
      }
      if (!control.selectors) {
        return;
      }
      var context = _this2.getSettings('context');
      var globalKeys;
      if (context) {
        globalKeys = context.model.get('settings').get('__globals__');
      }
      _this2.addControlStyleRules(control, dynamicParsedValues, controls, placeholders, replacements, globalKeys);
    });
  },
  addControlStyleRules: function addControlStyleRules(control, values, controls, placeholders, replacements, globalKeys) {
    var _this3 = this;
    var globalKey;
    if (globalKeys) {
      var controlGlobalKey = control.name;
      if (control.groupType) {
        controlGlobalKey = control.groupPrefix + control.groupType;
      }
      globalKey = globalKeys[controlGlobalKey];
    }
    var value;
    if (!globalKey) {
      value = this.getStyleControlValue(control, values);
      if (undefined === value) {
        return;
      }
    }
    _.each(control.selectors, function (cssProperty, selector) {
      var outputCssProperty;
      if (globalKey) {
        var selectorGlobalValue = _this3.getSelectorGlobalValue(control, globalKey);
        if (selectorGlobalValue) {
          if ('font' === control.type) {
            $e.data.get(globalKey).then(function (response) {
              elementor.helpers.enqueueFont(response.data.value.typography_font_family);
            });
          }

          // This regex handles a case where a control's selector property value includes more than one CSS selector.
          // Example: 'selector' => 'background: {{VALUE}}; background-color: {{VALUE}};'.
          outputCssProperty = cssProperty.replace(/(:)[^;]+(;?)/g, '$1' + selectorGlobalValue + '$2');
        }
      } else {
        try {
          if (_this3.unitHasCustomSelector(control, value)) {
            cssProperty = control.unit_selectors_dictionary[value.unit];
          }
          if (_this3.shouldDoUpgradeMap(control, value)) {
            var _control$upgrade_conv;
            (_control$upgrade_conv = control.upgrade_conversion_map) === null || _control$upgrade_conv === void 0 || _control$upgrade_conv.new_keys.forEach(function (key) {
              value[key] = '' + value[control.upgrade_conversion_map.old_key];
            });
          }
          outputCssProperty = cssProperty.replace(/{{(?:([^.}]+)\.)?([^}| ]*)(?: *\|\| *(?:([^.}]+)\.)?([^}| ]*) *)*}}/g, function (originalPhrase, controlName, placeholder, fallbackControlName, fallbackValue) {
            var externalControlMissing = controlName && !controls[controlName];
            var parsedValue = '';
            if (!externalControlMissing) {
              parsedValue = _this3.parsePropertyPlaceholder(control, value, controls, values, placeholder, controlName);
            }
            if (!parsedValue && 0 !== parsedValue) {
              if (fallbackValue) {
                parsedValue = fallbackValue;
                var stringValueMatches = parsedValue.match(/^(['"])(.*)\1$/);
                if (stringValueMatches) {
                  parsedValue = stringValueMatches[2];
                } else if (!isFinite(parsedValue)) {
                  if (fallbackControlName && !controls[fallbackControlName]) {
                    return '';
                  }
                  parsedValue = _this3.parsePropertyPlaceholder(control, value, controls, values, fallbackValue, fallbackControlName);
                }
              }
              if (!parsedValue && 0 !== parsedValue) {
                if (externalControlMissing) {
                  return '';
                }
                throw '';
              }
            }
            if ('font' === control.type) {
              elementor.helpers.enqueueFont(parsedValue);
            }
            if ('__EMPTY__' === parsedValue) {
              parsedValue = '';
            }
            return parsedValue;
          });
        } catch (e) {
          return;
        }
      }
      if (_.isEmpty(outputCssProperty)) {
        return;
      }
      var devicePattern = /^(?:\([^)]+\)){1,2}/,
        deviceRules = selector.match(devicePattern),
        query = {};
      if (deviceRules) {
        deviceRules = deviceRules[0];
        selector = selector.replace(devicePattern, '');
        var pureDevicePattern = /\(([^)]+)\)/g,
          pureDeviceRules = [],
          matches;
        matches = pureDevicePattern.exec(deviceRules);
        while (matches) {
          pureDeviceRules.push(matches[1]);
          matches = pureDevicePattern.exec(deviceRules);
        }
        _.each(pureDeviceRules, function (deviceRule) {
          if ('desktop' === deviceRule) {
            return;
          }
          var device = deviceRule.replace(/\+$/, ''),
            endPoint = device === deviceRule ? 'max' : 'min';
          query[endPoint] = device;
        });
      }
      _.each(placeholders, function (placeholder, index) {
        // Check if it's a RegExp
        var regexp = placeholder.source ? placeholder.source : placeholder,
          placeholderPattern = new RegExp(regexp, 'g');
        selector = selector.replace(placeholderPattern, replacements[index]);
      });
      if (!Object.keys(query).length && control.responsive) {
        query = _.pick(elementorCommon.helpers.cloneObject(control.responsive), ['min', 'max']);
        if ('desktop' === query.max) {
          delete query.max;
        }
      }
      _this3.stylesheet.addRules(selector, outputCssProperty, query);
    });
  },
  unitHasCustomSelector: function unitHasCustomSelector(control, value) {
    return control.unit_selectors_dictionary && undefined !== control.unit_selectors_dictionary[value.unit];
  },
  shouldDoUpgradeMap: function shouldDoUpgradeMap(control, value) {
    return control.upgrade_conversion_map && !!value.hasOwnProperty(control.upgrade_conversion_map.old_key) && '' !== value[control.upgrade_conversion_map.old_key] && !value.hasOwnProperty(control.upgrade_conversion_map.new_keys[0]);
  },
  parsePropertyPlaceholder: function parsePropertyPlaceholder(control, value, controls, values, placeholder, parserControlName) {
    if (parserControlName) {
      if (control.responsive && controls[parserControlName]) {
        var _$findWhere;
        var deviceSuffix = elementor.conditions.getResponsiveControlDeviceSuffix(control.responsive);
        control = (_$findWhere = _.findWhere(controls, {
          name: parserControlName + deviceSuffix
        })) !== null && _$findWhere !== void 0 ? _$findWhere : _.findWhere(controls, {
          name: parserControlName
        });
      } else {
        control = _.findWhere(controls, {
          name: parserControlName
        });
      }
      value = this.getStyleControlValue(control, values);
    }
    return elementor.getControlView(control.type).getStyleValue(placeholder, value, control);
  },
  getStyleControlValue: function getStyleControlValue(control, values) {
    var _this$getSettings, _values$__globals__, _control$global;
    var container = (_this$getSettings = this.getSettings()) === null || _this$getSettings === void 0 || (_this$getSettings = _this$getSettings.context) === null || _this$getSettings === void 0 ? void 0 : _this$getSettings.container,
      isGlobalApplied = container === null || container === void 0 ? void 0 : container.isGlobalApplied(control.name),
      globalKey = ((_values$__globals__ = values.__globals__) === null || _values$__globals__ === void 0 ? void 0 : _values$__globals__[control.name]) || ((_control$global = control.global) === null || _control$global === void 0 ? void 0 : _control$global.default);

    // Set a global value only if it is applied.
    if (isGlobalApplied && globalKey) {
      // When the control itself has no global value, but it refers to another control global value
      return this.getSelectorGlobalValue(control, globalKey);
    }
    var value = values[control.name];
    if (control.selectors_dictionary) {
      value = control.selectors_dictionary[value] || value;
    }
    if (!_.isNumber(value) && _.isEmpty(value)) {
      return;
    }
    return value;
  },
  getSelectorGlobalValue: function getSelectorGlobalValue(control, globalKey) {
    var 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;
  },
  addRepeaterControlsStyleRules: function addRepeaterControlsStyleRules(repeaterValues, repeaterControlsItems, controls, placeholders, replacements) {
    var _this4 = this;
    repeaterControlsItems.forEach(function (item, index) {
      var itemModel = repeaterValues.models[index];
      _this4.addStyleRules(item, itemModel.attributes, controls, placeholders.concat(['{{CURRENT_ITEM}}']), replacements.concat(['.elementor-repeater-item-' + itemModel.get('_id')]));
    });
  },
  addDynamicControlStyleRules: function addDynamicControlStyleRules(value, control) {
    var self = this;
    elementor.dynamicTags.parseTagsText(value, control.dynamic, function (id, name, settings) {
      var tag = elementor.dynamicTags.createTag(id, name, settings);
      if (!tag) {
        return;
      }
      var tagSettingsModel = tag.model,
        styleControls = tagSettingsModel.getStyleControls();
      if (!styleControls.length) {
        return;
      }
      self.addStyleRules(tagSettingsModel.getStyleControls(), tagSettingsModel.attributes, tagSettingsModel.controls, ['{{WRAPPER}}'], ['#elementor-tag-' + id]);
    });
  },
  addStyleToDocument: function addStyleToDocument(position) {
    var $head = elementor.$previewContents.find('head');
    var insertMethod = 'append',
      $insertBy = $head;
    if (position) {
      var $targetElement = $head.children(position.of);
      if ($targetElement.length) {
        insertMethod = position.at;
        $insertBy = $targetElement;
      }
    }
    $insertBy[insertMethod](this.elements.$stylesheetElement);
    var extraCSS = elementor.hooks.applyFilters('editor/style/styleText', '', this.getSettings('context'));
    this.elements.$stylesheetElement.text(this.stylesheet + extraCSS);
  },
  removeStyleFromDocument: function removeStyleFromDocument() {
    this.elements.$stylesheetElement.remove();
  },
  onInit: function onInit() {
    elementorModules.ViewModule.prototype.onInit.apply(this, arguments);
    this.initStylesheet();
  }
});
module.exports = ControlsCSSParser;

/***/ }),

/***/ "../assets/dev/js/editor/utils/editor-one-events.js":
/*!**********************************************************!*\
  !*** ../assets/dev/js/editor/utils/editor-one-events.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"] = exports.createDebouncedWidgetPanelSearch = exports.createDebouncedFinderSearch = exports.EditorOneEventManager = 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"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var EditorOneEventManager = exports.EditorOneEventManager = /*#__PURE__*/function () {
  function EditorOneEventManager() {
    (0, _classCallCheck2.default)(this, EditorOneEventManager);
  }
  return (0, _createClass2.default)(EditorOneEventManager, null, [{
    key: "getEventsManager",
    value: function getEventsManager() {
      var _elementorCommon;
      return (_elementorCommon = elementorCommon) === null || _elementorCommon === void 0 ? void 0 : _elementorCommon.eventsManager;
    }
  }, {
    key: "getConfig",
    value: function getConfig() {
      var _this$getEventsManage;
      return (_this$getEventsManage = this.getEventsManager()) === null || _this$getEventsManage === void 0 ? void 0 : _this$getEventsManage.config;
    }
  }, {
    key: "canSendEvents",
    value: function canSendEvents() {
      var _elementorCommon2;
      return ((_elementorCommon2 = elementorCommon) === null || _elementorCommon2 === void 0 || (_elementorCommon2 = _elementorCommon2.config) === null || _elementorCommon2 === void 0 || (_elementorCommon2 = _elementorCommon2.editor_events) === null || _elementorCommon2 === void 0 ? void 0 : _elementorCommon2.can_send_events) || false;
    }
  }, {
    key: "isEventsManagerAvailable",
    value: function isEventsManagerAvailable() {
      var eventsManager = this.getEventsManager();
      return eventsManager && 'function' === typeof eventsManager.dispatchEvent;
    }
  }, {
    key: "dispatchEvent",
    value: function dispatchEvent(eventName, payload) {
      try {
        if (!this.isEventsManagerAvailable() || !this.canSendEvents()) {
          return false;
        }
        this.getEventsManager().dispatchEvent(eventName, payload);
        return true;
      } catch (error) {
        return false;
      }
    }
  }, {
    key: "toLowerSnake",
    value: function toLowerSnake(value) {
      if (!value || 'string' !== typeof value) {
        return value;
      }
      return value.replace(/\s+/g, '_').toLowerCase();
    }
  }, {
    key: "decodeHtmlEntities",
    value: function decodeHtmlEntities(text) {
      if (!text || 'string' !== typeof text) {
        return text;
      }
      var doc = new DOMParser().parseFromString(text, 'text/html');
      return doc.body.textContent || text;
    }
  }, {
    key: "isInEditorContext",
    value: function isInEditorContext() {
      var _window$elementor;
      return 'undefined' !== typeof window.elementor && !!((_window$elementor = window.elementor) !== null && _window$elementor !== void 0 && _window$elementor.documents);
    }
  }, {
    key: "getFinderContext",
    value: function getFinderContext() {
      var _config$appTypes, _config$appTypes2, _config$locations, _config$locations2;
      var config = this.getConfig();
      var isEditor = this.isInEditorContext();
      return {
        windowName: isEditor ? config === null || config === void 0 || (_config$appTypes = config.appTypes) === null || _config$appTypes === void 0 ? void 0 : _config$appTypes.editor : config === null || config === void 0 || (_config$appTypes2 = config.appTypes) === null || _config$appTypes2 === void 0 ? void 0 : _config$appTypes2.wpAdmin,
        targetLocation: this.toLowerSnake(isEditor ? config === null || config === void 0 || (_config$locations = config.locations) === null || _config$locations === void 0 ? void 0 : _config$locations.topBar : config === null || config === void 0 || (_config$locations2 = config.locations) === null || _config$locations2 === void 0 ? void 0 : _config$locations2.sidebar)
      };
    }
  }, {
    key: "createBasePayload",
    value: function createBasePayload() {
      var _config$appTypes$edit, _config$appTypes3, _config$appTypes$edit2, _config$appTypes4;
      var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var config = this.getConfig();
      return _objectSpread({
        app_type: (_config$appTypes$edit = config === null || config === void 0 || (_config$appTypes3 = config.appTypes) === null || _config$appTypes3 === void 0 ? void 0 : _config$appTypes3.editor) !== null && _config$appTypes$edit !== void 0 ? _config$appTypes$edit : 'editor',
        window_name: (_config$appTypes$edit2 = config === null || config === void 0 || (_config$appTypes4 = config.appTypes) === null || _config$appTypes4 === void 0 ? void 0 : _config$appTypes4.editor) !== null && _config$appTypes$edit2 !== void 0 ? _config$appTypes$edit2 : 'editor'
      }, overrides);
    }
  }, {
    key: "sendTopBarPublishDropdown",
    value: function sendTopBarPublishDropdown(targetName) {
      var _config$names, _config$triggers, _config$targetTypes, _config$interactionRe, _config$locations3, _config$secondaryLoca, _config$targetTypes2;
      var config = this.getConfig();
      return this.dispatchEvent(config === null || config === void 0 || (_config$names = config.names) === null || _config$names === void 0 || (_config$names = _config$names.editorOne) === null || _config$names === void 0 ? void 0 : _config$names.topBarPublishDropdown, this.createBasePayload({
        interaction_type: this.toLowerSnake(config === null || config === void 0 || (_config$triggers = config.triggers) === null || _config$triggers === void 0 ? void 0 : _config$triggers.click),
        target_type: config === null || config === void 0 || (_config$targetTypes = config.targetTypes) === null || _config$targetTypes === void 0 ? void 0 : _config$targetTypes.dropdownItem,
        target_name: targetName,
        interaction_result: config === null || config === void 0 || (_config$interactionRe = config.interactionResults) === null || _config$interactionRe === void 0 ? void 0 : _config$interactionRe.actionSelected,
        target_location: this.toLowerSnake(config === null || config === void 0 || (_config$locations3 = config.locations) === null || _config$locations3 === void 0 ? void 0 : _config$locations3.topBar),
        location_l1: this.toLowerSnake(config === null || config === void 0 || (_config$secondaryLoca = config.secondaryLocations) === null || _config$secondaryLoca === void 0 ? void 0 : _config$secondaryLoca.publishDropdown),
        location_l2: config === null || config === void 0 || (_config$targetTypes2 = config.targetTypes) === null || _config$targetTypes2 === void 0 ? void 0 : _config$targetTypes2.dropdownItem,
        interaction_description: 'User selected an action from the publish dropdown'
      }));
    }
  }, {
    key: "sendTopBarPageList",
    value: function sendTopBarPageList(targetName) {
      var _config$names2, _config$triggers2, _config$targetTypes3, _config$interactionRe2, _config$interactionRe3, _config$locations4, _config$secondaryLoca2, _config$targetTypes4;
      var isCreate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
      var config = this.getConfig();
      return this.dispatchEvent(config === null || config === void 0 || (_config$names2 = config.names) === null || _config$names2 === void 0 || (_config$names2 = _config$names2.editorOne) === null || _config$names2 === void 0 ? void 0 : _config$names2.topBarPageList, this.createBasePayload({
        interaction_type: this.toLowerSnake(config === null || config === void 0 || (_config$triggers2 = config.triggers) === null || _config$triggers2 === void 0 ? void 0 : _config$triggers2.click),
        target_type: config === null || config === void 0 || (_config$targetTypes3 = config.targetTypes) === null || _config$targetTypes3 === void 0 ? void 0 : _config$targetTypes3.dropdownItem,
        target_name: targetName,
        interaction_result: isCreate ? config === null || config === void 0 || (_config$interactionRe2 = config.interactionResults) === null || _config$interactionRe2 === void 0 ? void 0 : _config$interactionRe2.create : config === null || config === void 0 || (_config$interactionRe3 = config.interactionResults) === null || _config$interactionRe3 === void 0 ? void 0 : _config$interactionRe3.navigate,
        target_location: this.toLowerSnake(config === null || config === void 0 || (_config$locations4 = config.locations) === null || _config$locations4 === void 0 ? void 0 : _config$locations4.topBar),
        location_l1: this.toLowerSnake(config === null || config === void 0 || (_config$secondaryLoca2 = config.secondaryLocations) === null || _config$secondaryLoca2 === void 0 ? void 0 : _config$secondaryLoca2.pageListDropdown),
        location_l2: config === null || config === void 0 || (_config$targetTypes4 = config.targetTypes) === null || _config$targetTypes4 === void 0 ? void 0 : _config$targetTypes4.dropdownItem,
        interaction_description: 'User selected an action from the page list dropdown'
      }));
    }
  }, {
    key: "sendSiteSettingsSession",
    value: function sendSiteSettingsSession(_ref) {
      var _config$names3, _config$triggers3, _config$interactionRe4, _config$locations5, _config$secondaryLoca3;
      var targetType = _ref.targetType,
        _ref$visitedItems = _ref.visitedItems,
        visitedItems = _ref$visitedItems === void 0 ? [] : _ref$visitedItems,
        _ref$savedItems = _ref.savedItems,
        savedItems = _ref$savedItems === void 0 ? [] : _ref$savedItems,
        state = _ref.state;
      var config = this.getConfig();
      return this.dispatchEvent(config === null || config === void 0 || (_config$names3 = config.names) === null || _config$names3 === void 0 || (_config$names3 = _config$names3.editorOne) === null || _config$names3 === void 0 ? void 0 : _config$names3.siteSettingsSession, this.createBasePayload({
        interaction_type: this.toLowerSnake(config === null || config === void 0 || (_config$triggers3 = config.triggers) === null || _config$triggers3 === void 0 ? void 0 : _config$triggers3.click),
        target_type: targetType,
        target_name: 'site_settings',
        interaction_result: config === null || config === void 0 || (_config$interactionRe4 = config.interactionResults) === null || _config$interactionRe4 === void 0 ? void 0 : _config$interactionRe4.sessionEnd,
        target_location: this.toLowerSnake(config === null || config === void 0 || (_config$locations5 = config.locations) === null || _config$locations5 === void 0 ? void 0 : _config$locations5.leftPanel),
        location_l1: this.toLowerSnake(config === null || config === void 0 || (_config$secondaryLoca3 = config.secondaryLocations) === null || _config$secondaryLoca3 === void 0 ? void 0 : _config$secondaryLoca3.siteSettings),
        interaction_description: 'Records areas visited as part of the site setting session',
        metadata: {
          visited_items: visitedItems,
          saved_items: savedItems
        },
        state: state
      }));
    }
  }, {
    key: "sendELibraryNav",
    value: function sendELibraryNav(tabName) {
      var _config$names4, _config$triggers4, _config$targetTypes5, _config$interactionRe5, _config$locations6, _config$secondaryLoca4;
      var config = this.getConfig();
      return this.dispatchEvent(config === null || config === void 0 || (_config$names4 = config.names) === null || _config$names4 === void 0 || (_config$names4 = _config$names4.editorOne) === null || _config$names4 === void 0 ? void 0 : _config$names4.eLibraryNav, this.createBasePayload({
        interaction_type: this.toLowerSnake(config === null || config === void 0 || (_config$triggers4 = config.triggers) === null || _config$triggers4 === void 0 ? void 0 : _config$triggers4.tabSelect),
        target_type: config === null || config === void 0 || (_config$targetTypes5 = config.targetTypes) === null || _config$targetTypes5 === void 0 ? void 0 : _config$targetTypes5.tab,
        target_name: this.toLowerSnake(tabName),
        interaction_result: config === null || config === void 0 || (_config$interactionRe5 = config.interactionResults) === null || _config$interactionRe5 === void 0 ? void 0 : _config$interactionRe5.tabChanged,
        target_location: this.toLowerSnake(config === null || config === void 0 || (_config$locations6 = config.locations) === null || _config$locations6 === void 0 ? void 0 : _config$locations6.elementorLibrary),
        location_l1: this.toLowerSnake(config === null || config === void 0 || (_config$secondaryLoca4 = config.secondaryLocations) === null || _config$secondaryLoca4 === void 0 ? void 0 : _config$secondaryLoca4.libraryTabs),
        interaction_description: 'User navigates within elementor library'
      }));
    }
  }, {
    key: "sendELibraryInsert",
    value: function sendELibraryInsert(_ref2) {
      var _config$triggers5, _config$targetTypes6, _config$interactionRe6, _config$locations7, _config$secondaryLoca5, _config$names5;
      var assetId = _ref2.assetId,
        assetName = _ref2.assetName,
        libraryType = _ref2.libraryType,
        _ref2$proRequired = _ref2.proRequired,
        proRequired = _ref2$proRequired === void 0 ? false : _ref2$proRequired;
      var config = this.getConfig();
      var payload = this.createBasePayload({
        interaction_type: this.toLowerSnake(config === null || config === void 0 || (_config$triggers5 = config.triggers) === null || _config$triggers5 === void 0 ? void 0 : _config$triggers5.insert),
        target_type: config === null || config === void 0 || (_config$targetTypes6 = config.targetTypes) === null || _config$targetTypes6 === void 0 ? void 0 : _config$targetTypes6.button,
        target_name: String(assetId),
        interaction_result: config === null || config === void 0 || (_config$interactionRe6 = config.interactionResults) === null || _config$interactionRe6 === void 0 ? void 0 : _config$interactionRe6.assetInserted,
        target_location: this.toLowerSnake(config === null || config === void 0 || (_config$locations7 = config.locations) === null || _config$locations7 === void 0 ? void 0 : _config$locations7.elementorLibrary),
        location_l1: this.toLowerSnake(libraryType),
        location_l2: this.toLowerSnake(config === null || config === void 0 || (_config$secondaryLoca5 = config.secondaryLocations) === null || _config$secondaryLoca5 === void 0 ? void 0 : _config$secondaryLoca5.assetCard),
        interaction_description: 'User inserts block/pages from elementor library',
        metadata: {
          template_id: String(assetId),
          template_name: this.decodeHtmlEntities(assetName) || ''
        }
      });
      if (proRequired) {
        payload.state = 'pro_plan_required';
      }
      return this.dispatchEvent(config === null || config === void 0 || (_config$names5 = config.names) === null || _config$names5 === void 0 || (_config$names5 = _config$names5.editorOne) === null || _config$names5 === void 0 ? void 0 : _config$names5.eLibraryInsert, payload);
    }
  }, {
    key: "sendELibraryFavorite",
    value: function sendELibraryFavorite(_ref3) {
      var _config$triggers6, _config$targetTypes7, _config$interactionRe7, _config$locations8, _config$secondaryLoca6, _config$names6;
      var assetId = _ref3.assetId,
        assetName = _ref3.assetName,
        libraryType = _ref3.libraryType,
        isFavorite = _ref3.isFavorite,
        _ref3$proRequired = _ref3.proRequired,
        proRequired = _ref3$proRequired === void 0 ? false : _ref3$proRequired;
      var config = this.getConfig();
      var payload = this.createBasePayload({
        interaction_type: this.toLowerSnake(config === null || config === void 0 || (_config$triggers6 = config.triggers) === null || _config$triggers6 === void 0 ? void 0 : _config$triggers6.click),
        target_type: config === null || config === void 0 || (_config$targetTypes7 = config.targetTypes) === null || _config$targetTypes7 === void 0 ? void 0 : _config$targetTypes7.toggle,
        target_name: String(assetId),
        interaction_result: config === null || config === void 0 || (_config$interactionRe7 = config.interactionResults) === null || _config$interactionRe7 === void 0 ? void 0 : _config$interactionRe7.assetFavorite,
        target_value: Boolean(isFavorite),
        target_location: this.toLowerSnake(config === null || config === void 0 || (_config$locations8 = config.locations) === null || _config$locations8 === void 0 ? void 0 : _config$locations8.elementorLibrary),
        location_l1: this.toLowerSnake(libraryType),
        location_l2: this.toLowerSnake(config === null || config === void 0 || (_config$secondaryLoca6 = config.secondaryLocations) === null || _config$secondaryLoca6 === void 0 ? void 0 : _config$secondaryLoca6.assetCard),
        interaction_description: 'User favorite block/pages from elementor library',
        metadata: {
          template_id: String(assetId),
          template_name: this.decodeHtmlEntities(assetName) || ''
        }
      });
      if (proRequired) {
        payload.state = 'pro_plan_required';
      }
      return this.dispatchEvent(config === null || config === void 0 || (_config$names6 = config.names) === null || _config$names6 === void 0 || (_config$names6 = _config$names6.editorOne) === null || _config$names6 === void 0 ? void 0 : _config$names6.eLibraryFavorite, payload);
    }
  }, {
    key: "sendELibraryGenerateAi",
    value: function sendELibraryGenerateAi(_ref4) {
      var _config$names7, _config$triggers7, _config$targetTypes8, _config$interactionRe8, _config$locations9, _config$secondaryLoca7;
      var assetId = _ref4.assetId,
        assetName = _ref4.assetName,
        libraryType = _ref4.libraryType;
      var config = this.getConfig();
      return this.dispatchEvent(config === null || config === void 0 || (_config$names7 = config.names) === null || _config$names7 === void 0 || (_config$names7 = _config$names7.editorOne) === null || _config$names7 === void 0 ? void 0 : _config$names7.eLibraryGenerateAi, this.createBasePayload({
        interaction_type: this.toLowerSnake(config === null || config === void 0 || (_config$triggers7 = config.triggers) === null || _config$triggers7 === void 0 ? void 0 : _config$triggers7.click),
        target_type: config === null || config === void 0 || (_config$targetTypes8 = config.targetTypes) === null || _config$targetTypes8 === void 0 ? void 0 : _config$targetTypes8.button,
        target_name: String(assetId),
        interaction_result: config === null || config === void 0 || (_config$interactionRe8 = config.interactionResults) === null || _config$interactionRe8 === void 0 ? void 0 : _config$interactionRe8.aiGenerate,
        target_location: this.toLowerSnake(config === null || config === void 0 || (_config$locations9 = config.locations) === null || _config$locations9 === void 0 ? void 0 : _config$locations9.elementorLibrary),
        location_l1: this.toLowerSnake(libraryType),
        location_l2: this.toLowerSnake(config === null || config === void 0 || (_config$secondaryLoca7 = config.secondaryLocations) === null || _config$secondaryLoca7 === void 0 ? void 0 : _config$secondaryLoca7.assetCard),
        interaction_description: 'User generated block/page based on a library asset',
        metadata: {
          template_id: String(assetId),
          template_name: this.decodeHtmlEntities(assetName) || ''
        }
      }));
    }
  }, {
    key: "sendFinderSearchInput",
    value: function sendFinderSearchInput(_ref5) {
      var _config$triggers8, _config$targetTypes9, _config$interactionRe9, _config$interactionRe0, _config$secondaryLoca8, _config$names8;
      var resultsCount = _ref5.resultsCount,
        _ref5$searchTerm = _ref5.searchTerm,
        searchTerm = _ref5$searchTerm === void 0 ? null : _ref5$searchTerm;
      var config = this.getConfig();
      var hasResults = resultsCount > 0;
      var finderContext = this.getFinderContext();
      var payload = this.createBasePayload({
        window_name: finderContext.windowName,
        interaction_type: this.toLowerSnake(config === null || config === void 0 || (_config$triggers8 = config.triggers) === null || _config$triggers8 === void 0 ? void 0 : _config$triggers8.typing),
        target_type: config === null || config === void 0 || (_config$targetTypes9 = config.targetTypes) === null || _config$targetTypes9 === void 0 ? void 0 : _config$targetTypes9.searchInput,
        target_name: 'finder',
        interaction_result: hasResults ? config === null || config === void 0 || (_config$interactionRe9 = config.interactionResults) === null || _config$interactionRe9 === void 0 ? void 0 : _config$interactionRe9.resultsUpdated : config === null || config === void 0 || (_config$interactionRe0 = config.interactionResults) === null || _config$interactionRe0 === void 0 ? void 0 : _config$interactionRe0.noResults,
        target_location: finderContext.targetLocation,
        location_l1: this.toLowerSnake(config === null || config === void 0 || (_config$secondaryLoca8 = config.secondaryLocations) === null || _config$secondaryLoca8 === void 0 ? void 0 : _config$secondaryLoca8.finder),
        interaction_description: 'Finder search input, follows debounce behavior',
        metadata: {
          results_count: resultsCount
        }
      });
      if (!hasResults && searchTerm) {
        payload.metadata.search_term = searchTerm;
      }
      return this.dispatchEvent(config === null || config === void 0 || (_config$names8 = config.names) === null || _config$names8 === void 0 || (_config$names8 = _config$names8.editorOne) === null || _config$names8 === void 0 ? void 0 : _config$names8.finderSearchInput, payload);
    }
  }, {
    key: "sendFinderResultSelect",
    value: function sendFinderResultSelect(choice) {
      var _config$names9, _config$triggers9, _config$targetTypes0, _config$interactionRe1, _config$secondaryLoca9, _config$secondaryLoca0;
      var config = this.getConfig();
      var finderContext = this.getFinderContext();
      return this.dispatchEvent(config === null || config === void 0 || (_config$names9 = config.names) === null || _config$names9 === void 0 || (_config$names9 = _config$names9.editorOne) === null || _config$names9 === void 0 ? void 0 : _config$names9.finderResultSelect, this.createBasePayload({
        window_name: finderContext.windowName,
        interaction_type: this.toLowerSnake(config === null || config === void 0 || (_config$triggers9 = config.triggers) === null || _config$triggers9 === void 0 ? void 0 : _config$triggers9.click),
        target_type: config === null || config === void 0 || (_config$targetTypes0 = config.targetTypes) === null || _config$targetTypes0 === void 0 ? void 0 : _config$targetTypes0.searchResult,
        target_name: choice,
        interaction_result: config === null || config === void 0 || (_config$interactionRe1 = config.interactionResults) === null || _config$interactionRe1 === void 0 ? void 0 : _config$interactionRe1.selected,
        target_location: finderContext.targetLocation,
        location_l1: this.toLowerSnake(config === null || config === void 0 || (_config$secondaryLoca9 = config.secondaryLocations) === null || _config$secondaryLoca9 === void 0 ? void 0 : _config$secondaryLoca9.finder),
        location_l2: this.toLowerSnake(config === null || config === void 0 || (_config$secondaryLoca0 = config.secondaryLocations) === null || _config$secondaryLoca0 === void 0 ? void 0 : _config$secondaryLoca0.finderResults),
        interaction_description: 'Finder search results was selected'
      }));
    }
  }, {
    key: "sendCanvasEmptyBoxAction",
    value: function sendCanvasEmptyBoxAction(_ref6) {
      var _config$triggers0, _config$targetTypes1, _config$interactionRe10, _config$locations0, _config$secondaryLoca1, _config$names0;
      var targetName = _ref6.targetName,
        _ref6$metadata = _ref6.metadata,
        metadata = _ref6$metadata === void 0 ? {} : _ref6$metadata,
        _ref6$containerCreate = _ref6.containerCreated,
        containerCreated = _ref6$containerCreate === void 0 ? null : _ref6$containerCreate;
      var config = this.getConfig();
      var payload = this.createBasePayload({
        interaction_type: this.toLowerSnake(config === null || config === void 0 || (_config$triggers0 = config.triggers) === null || _config$triggers0 === void 0 ? void 0 : _config$triggers0.click),
        target_type: config === null || config === void 0 || (_config$targetTypes1 = config.targetTypes) === null || _config$targetTypes1 === void 0 ? void 0 : _config$targetTypes1.buttons,
        target_name: targetName,
        interaction_result: config === null || config === void 0 || (_config$interactionRe10 = config.interactionResults) === null || _config$interactionRe10 === void 0 ? void 0 : _config$interactionRe10.selected,
        target_location: this.toLowerSnake(config === null || config === void 0 || (_config$locations0 = config.locations) === null || _config$locations0 === void 0 ? void 0 : _config$locations0.canvas),
        location_l1: this.toLowerSnake(config === null || config === void 0 || (_config$secondaryLoca1 = config.secondaryLocations) === null || _config$secondaryLoca1 === void 0 ? void 0 : _config$secondaryLoca1.emptyBox),
        interaction_description: 'Empty box on canvas actions'
      });
      if (Object.keys(metadata).length > 0) {
        payload.metadata = metadata;
      }
      if (containerCreated !== null) {
        payload.state = containerCreated;
      }
      return this.dispatchEvent(config === null || config === void 0 || (_config$names0 = config.names) === null || _config$names0 === void 0 || (_config$names0 = _config$names0.editorOne) === null || _config$names0 === void 0 ? void 0 : _config$names0.canvasEmptyBoxAction, payload);
    }
  }, {
    key: "sendWidgetPanelSearch",
    value: function sendWidgetPanelSearch(_ref7) {
      var _config$triggers1, _config$targetTypes10, _config$interactionRe11, _config$interactionRe12, _config$locations1, _config$locations10, _config$secondaryLoca10, _config$names1;
      var resultsCount = _ref7.resultsCount,
        _ref7$userInput = _ref7.userInput,
        userInput = _ref7$userInput === void 0 ? null : _ref7$userInput;
      var config = this.getConfig();
      var hasResults = resultsCount > 0;
      var payload = this.createBasePayload({
        interaction_type: this.toLowerSnake(config === null || config === void 0 || (_config$triggers1 = config.triggers) === null || _config$triggers1 === void 0 ? void 0 : _config$triggers1.typing),
        target_type: config === null || config === void 0 || (_config$targetTypes10 = config.targetTypes) === null || _config$targetTypes10 === void 0 ? void 0 : _config$targetTypes10.searchWidget,
        target_name: 'search_widget',
        interaction_result: hasResults ? config === null || config === void 0 || (_config$interactionRe11 = config.interactionResults) === null || _config$interactionRe11 === void 0 ? void 0 : _config$interactionRe11.resultsUpdated : config === null || config === void 0 || (_config$interactionRe12 = config.interactionResults) === null || _config$interactionRe12 === void 0 ? void 0 : _config$interactionRe12.noResults,
        target_location: this.toLowerSnake(config === null || config === void 0 || (_config$locations1 = config.locations) === null || _config$locations1 === void 0 ? void 0 : _config$locations1.leftPanel),
        location_l1: this.toLowerSnake(config === null || config === void 0 || (_config$locations10 = config.locations) === null || _config$locations10 === void 0 ? void 0 : _config$locations10.widgetPanel),
        location_l2: this.toLowerSnake(config === null || config === void 0 || (_config$secondaryLoca10 = config.secondaryLocations) === null || _config$secondaryLoca10 === void 0 ? void 0 : _config$secondaryLoca10.searchBar),
        interaction_description: 'Widget search input, follows debounce behavior'
      });
      if (!hasResults && userInput) {
        payload.metadata = {
          user_input: userInput
        };
      }
      return this.dispatchEvent(config === null || config === void 0 || (_config$names1 = config.names) === null || _config$names1 === void 0 || (_config$names1 = _config$names1.editorOne) === null || _config$names1 === void 0 ? void 0 : _config$names1.widgetPanelSearch, payload);
    }
  }, {
    key: "createWpDashPayload",
    value: function createWpDashPayload() {
      var _config$appTypes$wpDa, _config$appTypes5, _config$locations11;
      var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var config = this.getConfig();
      return this.createBasePayload(_objectSpread({
        window_name: (_config$appTypes$wpDa = config === null || config === void 0 || (_config$appTypes5 = config.appTypes) === null || _config$appTypes5 === void 0 ? void 0 : _config$appTypes5.wpDash) !== null && _config$appTypes$wpDa !== void 0 ? _config$appTypes$wpDa : 'wpdash',
        target_location: this.toLowerSnake(config === null || config === void 0 || (_config$locations11 = config.locations) === null || _config$locations11 === void 0 ? void 0 : _config$locations11.wpDashAdmin),
        location_l2: ''
      }, overrides));
    }
  }, {
    key: "sendWpDashElementorMenuClick",
    value: function sendWpDashElementorMenuClick() {
      var _config$names10, _config$triggers10, _config$targetTypes11, _config$interactionRe13, _config$secondaryLoca11;
      var config = this.getConfig();
      return this.dispatchEvent(config === null || config === void 0 || (_config$names10 = config.names) === null || _config$names10 === void 0 || (_config$names10 = _config$names10.editorOne) === null || _config$names10 === void 0 ? void 0 : _config$names10.wpDashElementorMenuClick, this.createWpDashPayload({
        interaction_type: this.toLowerSnake(config === null || config === void 0 || (_config$triggers10 = config.triggers) === null || _config$triggers10 === void 0 ? void 0 : _config$triggers10.click),
        target_type: config === null || config === void 0 || (_config$targetTypes11 = config.targetTypes) === null || _config$targetTypes11 === void 0 ? void 0 : _config$targetTypes11.wpDashAdminMenuItem,
        target_name: 'elementor_menu_item',
        interaction_result: config === null || config === void 0 || (_config$interactionRe13 = config.interactionResults) === null || _config$interactionRe13 === void 0 ? void 0 : _config$interactionRe13.elementorSideMenuOpened,
        location_l1: this.toLowerSnake(config === null || config === void 0 || (_config$secondaryLoca11 = config.secondaryLocations) === null || _config$secondaryLoca11 === void 0 ? void 0 : _config$secondaryLoca11.wpDashElementorCoreMenu),
        interaction_description: 'core_user_clicked_elementor_menu_item'
      }));
    }
  }, {
    key: "sendWpDashEditorSubMenuHover",
    value: function sendWpDashEditorSubMenuHover() {
      var _config$names11, _config$triggers11, _config$targetTypes12, _config$interactionRe14, _config$secondaryLoca12;
      var config = this.getConfig();
      return this.dispatchEvent(config === null || config === void 0 || (_config$names11 = config.names) === null || _config$names11 === void 0 || (_config$names11 = _config$names11.editorOne) === null || _config$names11 === void 0 ? void 0 : _config$names11.wpDashEditorSubMenuHover, this.createWpDashPayload({
        interaction_type: this.toLowerSnake(config === null || config === void 0 || (_config$triggers11 = config.triggers) === null || _config$triggers11 === void 0 ? void 0 : _config$triggers11.hover),
        target_type: config === null || config === void 0 || (_config$targetTypes12 = config.targetTypes) === null || _config$targetTypes12 === void 0 ? void 0 : _config$targetTypes12.wpDashEditorMenu,
        target_name: 'wpdash_editor_sub_menu',
        interaction_result: config === null || config === void 0 || (_config$interactionRe14 = config.interactionResults) === null || _config$interactionRe14 === void 0 ? void 0 : _config$interactionRe14.editorSubMenuOpened,
        location_l1: this.toLowerSnake(config === null || config === void 0 || (_config$secondaryLoca12 = config.secondaryLocations) === null || _config$secondaryLoca12 === void 0 ? void 0 : _config$secondaryLoca12.wpDashElementorCoreSubMenu),
        interaction_description: 'core_user_hovered_sub_menu'
      }));
    }
  }, {
    key: "sendWpDashThemeBuilderClick",
    value: function sendWpDashThemeBuilderClick() {
      var _config$names12, _config$triggers12, _config$targetTypes13, _config$interactionRe15, _config$secondaryLoca13;
      var config = this.getConfig();
      return this.dispatchEvent(config === null || config === void 0 || (_config$names12 = config.names) === null || _config$names12 === void 0 || (_config$names12 = _config$names12.editorOne) === null || _config$names12 === void 0 ? void 0 : _config$names12.wpDashThemeBuilderClick, this.createWpDashPayload({
        interaction_type: this.toLowerSnake(config === null || config === void 0 || (_config$triggers12 = config.triggers) === null || _config$triggers12 === void 0 ? void 0 : _config$triggers12.click),
        target_type: config === null || config === void 0 || (_config$targetTypes13 = config.targetTypes) === null || _config$targetTypes13 === void 0 ? void 0 : _config$targetTypes13.wpDashSubMenuItem,
        target_name: 'theme_builder_menu_item',
        interaction_result: config === null || config === void 0 || (_config$interactionRe15 = config.interactionResults) === null || _config$interactionRe15 === void 0 ? void 0 : _config$interactionRe15.themeBuilderPromotionWindow,
        location_l1: this.toLowerSnake(config === null || config === void 0 || (_config$secondaryLoca13 = config.secondaryLocations) === null || _config$secondaryLoca13 === void 0 ? void 0 : _config$secondaryLoca13.wpDashThemeBuilder),
        interaction_description: 'core_user_clicked_theme_builder_menu_item'
      }));
    }
  }, {
    key: "sendSidebarMenuItemClicked",
    value: function sendSidebarMenuItemClicked(_ref8) {
      var eventId = _ref8.eventId,
        groupEventId = _ref8.groupEventId;
      try {
        var _config$windowNames, _config$triggers13, _config$targetTypes14, _config$interactionRe16, _config$locations12, _config$names13;
        var config = this.getConfig();
        var payload = this.createBasePayload({
          window_name: config === null || config === void 0 || (_config$windowNames = config.windowNames) === null || _config$windowNames === void 0 ? void 0 : _config$windowNames.sidebarMenu,
          interaction_type: this.toLowerSnake(config === null || config === void 0 || (_config$triggers13 = config.triggers) === null || _config$triggers13 === void 0 ? void 0 : _config$triggers13.click),
          target_type: config === null || config === void 0 || (_config$targetTypes14 = config.targetTypes) === null || _config$targetTypes14 === void 0 ? void 0 : _config$targetTypes14.link,
          target_name: eventId,
          interaction_result: config === null || config === void 0 || (_config$interactionRe16 = config.interactionResults) === null || _config$interactionRe16 === void 0 ? void 0 : _config$interactionRe16.pageOpened,
          target_location: this.toLowerSnake(config === null || config === void 0 || (_config$locations12 = config.locations) === null || _config$locations12 === void 0 ? void 0 : _config$locations12.sidebar)
        });
        if (groupEventId) {
          payload.location_l1 = groupEventId;
        }
        return this.dispatchEvent(config === null || config === void 0 || (_config$names13 = config.names) === null || _config$names13 === void 0 || (_config$names13 = _config$names13.editorOne) === null || _config$names13 === void 0 ? void 0 : _config$names13.sidebarMenuItemClicked, payload);
      } catch (error) {
        return false;
      }
    }
  }, {
    key: "sendSidebarMenuGroupToggled",
    value: function sendSidebarMenuGroupToggled(_ref9) {
      var eventId = _ref9.eventId,
        isExpanded = _ref9.isExpanded;
      try {
        var _config$interactionRe17, _config$interactionRe18, _config$names14, _config$windowNames2, _config$triggers14, _config$targetTypes15, _config$locations13;
        var config = this.getConfig();
        var interactionResult = isExpanded ? config === null || config === void 0 || (_config$interactionRe17 = config.interactionResults) === null || _config$interactionRe17 === void 0 ? void 0 : _config$interactionRe17.expanded : config === null || config === void 0 || (_config$interactionRe18 = config.interactionResults) === null || _config$interactionRe18 === void 0 ? void 0 : _config$interactionRe18.collapsed;
        return this.dispatchEvent(config === null || config === void 0 || (_config$names14 = config.names) === null || _config$names14 === void 0 || (_config$names14 = _config$names14.editorOne) === null || _config$names14 === void 0 ? void 0 : _config$names14.sidebarMenuGroupToggled, this.createBasePayload({
          window_name: config === null || config === void 0 || (_config$windowNames2 = config.windowNames) === null || _config$windowNames2 === void 0 ? void 0 : _config$windowNames2.sidebarMenu,
          interaction_type: this.toLowerSnake(config === null || config === void 0 || (_config$triggers14 = config.triggers) === null || _config$triggers14 === void 0 ? void 0 : _config$triggers14.click),
          target_type: config === null || config === void 0 || (_config$targetTypes15 = config.targetTypes) === null || _config$targetTypes15 === void 0 ? void 0 : _config$targetTypes15.toggle,
          target_name: eventId,
          interaction_result: interactionResult,
          target_location: this.toLowerSnake(config === null || config === void 0 || (_config$locations13 = config.locations) === null || _config$locations13 === void 0 ? void 0 : _config$locations13.sidebar)
        }));
      } catch (error) {
        return false;
      }
    }
  }]);
}();
var createDebouncedFinderSearch = exports.createDebouncedFinderSearch = function createDebouncedFinderSearch() {
  var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 300;
  return _.debounce(function (resultsCount, searchTerm) {
    EditorOneEventManager.sendFinderSearchInput({
      resultsCount: resultsCount,
      searchTerm: searchTerm
    });
  }, delay);
};
var createDebouncedWidgetPanelSearch = exports.createDebouncedWidgetPanelSearch = function createDebouncedWidgetPanelSearch() {
  var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 2000;
  return _.debounce(function (resultsCount, userInput) {
    EditorOneEventManager.sendWidgetPanelSearch({
      resultsCount: resultsCount,
      userInput: userInput
    });
  }, delay);
};
var _default = exports["default"] = EditorOneEventManager;

/***/ }),

/***/ "../assets/dev/js/editor/utils/element-types.js":
/*!******************************************************!*\
  !*** ../assets/dev/js/editor/utils/element-types.js ***!
  \******************************************************/
/***/ ((module) => {

"use strict";


/**
 * Returns an array of all available element types.
 *
 * @return {string[]} Array of element type strings.
 */
var getAllElementTypes = function getAllElementTypes() {
  return Object.keys(elementor.getConfig().elements);
};
module.exports = {
  getAllElementTypes: getAllElementTypes
};

/***/ }),

/***/ "../assets/dev/js/editor/utils/files-upload-handler.js":
/*!*************************************************************!*\
  !*** ../assets/dev/js/editor/utils/files-upload-handler.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 _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 FilesUploadHandler = exports["default"] = /*#__PURE__*/function () {
  function FilesUploadHandler() {
    (0, _classCallCheck2.default)(this, FilesUploadHandler);
  }
  return (0, _createClass2.default)(FilesUploadHandler, null, [{
    key: "isUploadEnabled",
    value: function isUploadEnabled(mediaType) {
      var unfilteredFilesTypes = ['svg', 'application/json'];
      if (!unfilteredFilesTypes.includes(mediaType)) {
        return true;
      }
      return elementorCommon.config.filesUpload.unfilteredFiles;
    }
  }, {
    key: "setUploadTypeCaller",
    value: function setUploadTypeCaller(frame) {
      frame.uploader.uploader.param('uploadTypeCaller', 'elementor-wp-media-upload');
    }
  }, {
    key: "getUnfilteredFilesNonAdminDialog",
    value: function getUnfilteredFilesNonAdminDialog() {
      return elementorCommon.dialogsManager.createWidget('alert', {
        id: 'e-unfiltered-files-disabled-dialog',
        headerMessage: __('Sorry, you can\'t upload that file yet', 'elementor'),
        message: __('This is because JSON files may pose a security risk.', 'elementor') + '<br><br>' + __('To upload them anyway, ask the site administrator to enable unfiltered file uploads.', 'elementor'),
        strings: {
          confirm: __('Got it', 'elementor')
        }
      });
    }
  }, {
    key: "getUnfilteredFilesNotEnabledDialog",
    value: function getUnfilteredFilesNotEnabledDialog(callback) {
      var elementorInstance = window.elementorAdmin || window.elementor;
      if (!elementorInstance.config.user.is_administrator) {
        return this.getUnfilteredFilesNonAdminDialog();
      }
      var onConfirm = function onConfirm() {
        elementorCommon.ajax.addRequest('enable_unfiltered_files_upload', {}, true);
        elementorCommon.config.filesUpload.unfilteredFiles = true;
        callback();
      };
      return elementorInstance.helpers.getSimpleDialog('e-enable-unfiltered-files-dialog', __('Enable Unfiltered File Uploads', 'elementor'), __('Before you enable unfiltered files upload, note that such files include a security risk. Elementor does run a process to remove possible malicious code, but there is still risk involved when using such files.', 'elementor'), __('Enable', 'elementor'), onConfirm);
    }
  }, {
    key: "getUnfilteredFilesNotEnabledImportTemplateDialog",
    value: function getUnfilteredFilesNotEnabledImportTemplateDialog(callback) {
      if (!(window.elementorAdmin || window.elementor).config.user.is_administrator) {
        return this.getUnfilteredFilesNonAdminDialog();
      }
      return elementorCommon.dialogsManager.createWidget('confirm', {
        id: 'e-enable-unfiltered-files-dialog-import-template',
        headerMessage: __('Enable Unfiltered File Uploads', 'elementor'),
        message: __('Before you enable unfiltered files upload, note that such files include a security risk. Elementor does run a process to remove possible malicious code, but there is still risk involved when using such files.', 'elementor') + '<br /><br />' + __('If you do not enable uploading unfiltered files, any SVG or JSON (including lottie) files used in the uploaded template will not be imported.', 'elementor'),
        position: {
          my: 'center center',
          at: 'center center'
        },
        strings: {
          confirm: __('Enable and Import', 'elementor'),
          cancel: __('Import Without Enabling', 'elementor')
        },
        onConfirm: function onConfirm() {
          elementorCommon.ajax.addRequest('enable_unfiltered_files_upload', {
            success: function success() {
              // This utility is used in both the admin and the Editor.
              elementorCommon.config.filesUpload.unfilteredFiles = true;
              callback();
            }
          }, true);
        },
        onCancel: function onCancel() {
          return callback();
        }
      });
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/utils/font-variables.js":
/*!*******************************************************!*\
  !*** ../assets/dev/js/editor/utils/font-variables.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.FontVariables = void 0;
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 FontVariables = exports.FontVariables = /*#__PURE__*/function () {
  function FontVariables() {
    (0, _classCallCheck2.default)(this, FontVariables);
    this.init();
  }
  return (0, _createClass2.default)(FontVariables, [{
    key: "init",
    value: function init() {
      var _this = this;
      $e.routes.on('run:after', function (component, route, args) {
        if ('panel/editor' !== component.getNamespace()) {
          return;
        }
        _this.onTypographyControlOpen(args);
      });
      $e.commands.on('run:after', function (_component, command, args) {
        if ('document/elements/settings' !== command) {
          return;
        }
        _this.onControlChanged(args);
      });
    }
  }, {
    key: "onTypographyControlOpen",
    value: function onTypographyControlOpen(args) {
      var _this2 = this;
      if (!(args !== null && args !== void 0 && args.activeControl)) {
        return;
      }
      var currentPageView = elementor.getPanelView().getCurrentPageView();
      var mainTypographyControl = currentPageView.collection.find(function (model) {
        return args.activeControl === model.get('name') && 'typography' === model.get('groupType');
      });
      if (!mainTypographyControl) {
        return;
      }
      var currentGroupPrefix = mainTypographyControl.get('groupPrefix');
      var allTypographyControls = currentPageView.collection.filter(function (model) {
        return currentGroupPrefix === model.get('groupPrefix');
      });
      var fontControlModel = allTypographyControls.find(function (model) {
        return currentGroupPrefix === model.get('groupPrefix') && 'font' === model.get('type');
      });
      var settingName = fontControlModel.get('name');
      var controlValue = elementor.getCurrentElement().model.get('settings').get(settingName);
      if (!controlValue) {
        return;
      }
      var fontOptions = this.getFontOptions(controlValue);
      if (!fontOptions) {
        return;
      }
      var _loop = function _loop() {
        var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
          fieldKey = _Object$entries$_i[0],
          fieldData = _Object$entries$_i[1];
        var controlKey = fontControlModel.get('groupPrefix') + fieldKey;
        var controlData = allTypographyControls.find(function (model) {
          return controlKey === model.get('name');
        });
        if (!controlData) {
          return 1; // continue
        }
        _this2.applyFontVariableRange([], controlKey, fieldData);
      };
      for (var _i = 0, _Object$entries = Object.entries(fontOptions); _i < _Object$entries.length; _i++) {
        if (_loop()) continue;
      }
    }
  }, {
    key: "getCurrentControlData",
    value: function getCurrentControlData(args) {
      var _args$container;
      if (!(args !== null && args !== void 0 && (_args$container = args.container) !== null && _args$container !== void 0 && _args$container.controls)) {
        return null;
      }
      var currentSettingKey = this.getCurrentSettingKey(args);
      return args.container.controls[currentSettingKey];
    }
  }, {
    key: "getCurrentSettingKey",
    value: function getCurrentSettingKey(args) {
      var currentSettingsKeys = Object.keys(args.settings);
      return currentSettingsKeys[0];
    }
  }, {
    key: "getControlValue",
    value: function getControlValue(args) {
      var currentSettingKey = this.getCurrentSettingKey(args);
      return args.settings[currentSettingKey];
    }
  }, {
    key: "applyFontVariableRange",
    value: function applyFontVariableRange(controls, controlKey, fieldData) {
      var _this3 = this;
      var controlView = $e.components.get('panel').getControlViewByPath(elementor.getPanelView().getCurrentPageView(), controlKey);
      var range = controlView.model.get('range');
      range.px.min = fieldData.min;
      range.px.max = fieldData.max;
      controlView.model.set('range', range);
      controlView.render();
      var inheritors = controlView.model.get('inheritors');
      if (!inheritors) {
        return;
      }
      inheritors.forEach(function (inheritorControlKey) {
        _this3.applyFontVariableRange(controls, inheritorControlKey, fieldData);
      });
    }
  }, {
    key: "onControlChanged",
    value: function onControlChanged(args) {
      var controlData = this.getCurrentControlData(args);
      if ('font' !== (controlData === null || controlData === void 0 ? void 0 : controlData.type)) {
        return;
      }
      var controls = args.container.controls;
      var fontOptions = this.getFontOptions(this.getControlValue(args));
      if (!fontOptions) {
        return;
      }
      for (var _i2 = 0, _Object$entries2 = Object.entries(fontOptions); _i2 < _Object$entries2.length; _i2++) {
        var _Object$entries2$_i = (0, _slicedToArray2.default)(_Object$entries2[_i2], 2),
          fieldKey = _Object$entries2$_i[0],
          fieldData = _Object$entries2$_i[1];
        var controlKey = controlData.groupPrefix + fieldKey;
        if (!controls[controlKey]) {
          continue;
        }
        this.applyFontVariableRange(controls, controlKey, fieldData);
      }
    }
  }, {
    key: "getFontOptions",
    value: function getFontOptions(fontFamily) {
      var _elementor$config;
      if (!((_elementor$config = elementor.config) !== null && _elementor$config !== void 0 && _elementor$config.fontVariableRanges)) {
        return null;
      }
      return elementor.config.fontVariableRanges[fontFamily];
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/utils/heartbeat.js":
/*!**************************************************!*\
  !*** ../assets/dev/js/editor/utils/heartbeat.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];


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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var Heartbeat = exports["default"] = /*#__PURE__*/function () {
  function Heartbeat(document) {
    var _this = this;
    (0, _classCallCheck2.default)(this, Heartbeat);
    (0, _defineProperty2.default)(this, "modal", null);
    (0, _defineProperty2.default)(this, "document", null);
    (0, _defineProperty2.default)(this, "getModal", function () {
      if (!_this.modal) {
        _this.modal = _this.initModal();
      }
      return _this.modal;
    });
    this.document = document;
    this.onSend = this.onSend.bind(this);
    this.onTick = this.onTick.bind(this);
    this.onRefreshNonce = this.onRefreshNonce.bind(this);
    this.bindEvents();
    wp.heartbeat.connectNow();
  }
  return (0, _createClass2.default)(Heartbeat, [{
    key: "initModal",
    value: function initModal() {
      var modal = elementorCommon.dialogsManager.createWidget('confirm', {
        headerMessage: __('Take Over', 'elementor'),
        strings: {
          confirm: __('Take Over', 'elementor'),
          cancel: __('Go Back', 'elementor')
        },
        defaultOption: 'confirm',
        onConfirm: function onConfirm() {
          wp.heartbeat.enqueue('elementor_force_post_lock', true);
          wp.heartbeat.connectNow();
        },
        onCancel: function onCancel() {
          parent.history.go(-1);
        }
      });
      return modal;
    }
  }, {
    key: "showLockMessage",
    value: function showLockMessage(lockedUser) {
      var modal = this.getModal();

      // Translators: %s is locked username.
      modal.setMessage(sprintf(__('%s has taken over and is currently editing. Do you want to take over this page editing?', 'elementor'), lockedUser)).show();
    }
  }, {
    key: "onSend",
    value: function onSend(event, data) {
      data.elementor_post_lock = {
        post_ID: this.document.id
      };
    }
  }, {
    key: "onTick",
    value: function onTick(event, response) {
      if (response.locked_user) {
        if (this.document.editor.isChanged) {
          $e.run('document/save/auto', {
            document: this.document
          });
        }
        this.showLockMessage(response.locked_user);
      } else {
        this.getModal().hide();
      }
      elementorCommon.ajax.addRequestConstant('_nonce', response.elementorNonce);
    }
  }, {
    key: "onRefreshNonce",
    value: function onRefreshNonce(event, response) {
      var nonces = response['elementor-refresh-nonces'];
      if (nonces) {
        if (nonces.heartbeatNonce) {
          elementorCommon.ajax.addRequestConstant('_nonce', nonces.elementorNonce);
        }
        if (nonces.heartbeatNonce) {
          window.heartbeatSettings.nonce = nonces.heartbeatNonce;
        }
      }
    }
  }, {
    key: "bindEvents",
    value: function bindEvents() {
      jQuery(document).on({
        'heartbeat-send': this.onSend,
        'heartbeat-tick': this.onTick,
        'heartbeat-tick.wp-refresh-nonces': this.onRefreshNonce
      });
    }
  }, {
    key: "destroy",
    value: function destroy() {
      jQuery(document).off({
        'heartbeat-send': this.onSend,
        'heartbeat-tick': this.onTick,
        'heartbeat-tick.wp-refresh-nonces': this.onRefreshNonce
      });
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/utils/helpers.js":
/*!************************************************!*\
  !*** ../assets/dev/js/editor/utils/helpers.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_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");
var _typeof = __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 _colorPicker = _interopRequireDefault(__webpack_require__(/*! ./color-picker */ "../assets/dev/js/editor/utils/color-picker.js"));
var _helperBc = _interopRequireDefault(__webpack_require__(/*! elementor-editor/document/helper-bc */ "../assets/dev/js/editor/document/helper-bc.js"));
var _containerHelper = _interopRequireDefault(__webpack_require__(/*! elementor-editor-utils/container-helper */ "../assets/dev/js/editor/utils/container-helper.js"));
var _dompurify = _interopRequireWildcard(__webpack_require__(/*! dompurify */ "../node_modules/dompurify/dist/purify.cjs.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
var allowedHTMLWrapperTags = ['article', 'aside', 'div', 'footer', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'main', 'nav', 'p', 'section', 'span'];
module.exports = {
  container: _containerHelper.default,
  document: _helperBc.default,
  _enqueuedFonts: {
    editor: [],
    preview: []
  },
  _enqueuedIconFonts: [],
  _inlineSvg: [],
  elementsHierarchy: {
    document: {
      section: {
        column: {
          widget: null,
          section: null,
          container: {
            widget: null,
            container: null
          }
        }
      }
    }
  },
  /**
   * @param {string}                   url
   * @param {jQuery}                   $document
   * @param {{ crossOrigin: boolean }} options
   */
  enqueueCSS: function enqueueCSS(url, $document) {
    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
    var selector = 'link[href="' + url + '"]';
    var link = document.createElement('link');
    link.href = url;
    link.rel = 'stylesheet';
    link.type = 'text/css';
    if (options.crossOrigin) {
      link.crossOrigin = 'anonymous';
    }
    if (!$document) {
      return;
    }
    if (!$document.find(selector).length) {
      $document.find('link').last().after(link);
    }
  },
  enqueuePreviewStylesheet: function enqueuePreviewStylesheet(url) {
    this.enqueueCSS(url, elementor.$previewContents);
  },
  enqueueEditorStylesheet: function enqueueEditorStylesheet(url) {
    this.enqueueCSS(url, elementorCommon.elements.$document);
  },
  /**
   * @param {string} url
   * @deprecated since 2.6.0, use `elementor.helpers.enqueuePreviewStylesheet()` instead.
   */
  enqueueStylesheet: function enqueueStylesheet(url) {
    elementorDevTools.deprecation.deprecated('elementor.helpers.enqueueStylesheet()', '2.6.0', 'elementor.helpers.enqueuePreviewStylesheet()');
    this.enqueuePreviewStylesheet(url);
  },
  fetchInlineSvg: function fetchInlineSvg(svgUrl) {
    var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
    fetch(svgUrl).then(function (response) {
      return response.ok ? response.text() : '';
    }).then(function (data) {
      if (callback) {
        callback(data);
      }
    });
  },
  getInlineSvg: function getInlineSvg(value, view) {
    if (!value.id) {
      return;
    }
    if (Object.prototype.hasOwnProperty.call(this._inlineSvg, value.id)) {
      return this._inlineSvg[value.id];
    }
    var self = this;
    this.fetchInlineSvg(value.url, function (data) {
      if (data) {
        self._inlineSvg[value.id] = data; // $( data ).find( 'svg' )[ 0 ].outerHTML;
        if (view) {
          view.render();
        }
        elementor.channels.editor.trigger('svg:insertion', data, value.id);
      }
    });
  },
  enqueueIconFonts: function enqueueIconFonts(iconType) {
    var _this = this;
    if (-1 !== this._enqueuedIconFonts.indexOf(iconType) || !!elementor.config.icons_update_needed) {
      return;
    }
    var iconSetting = this.getIconLibrarySettings(iconType);
    if (!iconSetting) {
      return;
    }
    if (iconSetting.enqueue) {
      iconSetting.enqueue.forEach(function (assetURL) {
        var versionAddedURL = "".concat(assetURL).concat(iconSetting !== null && iconSetting !== void 0 && iconSetting.ver ? '?ver=' + iconSetting.ver : '');
        _this.enqueuePreviewStylesheet(versionAddedURL);
        _this.enqueueEditorStylesheet(versionAddedURL);
      });
    }
    if (iconSetting.url) {
      var versionAddedURL = "".concat(iconSetting.url).concat(iconSetting !== null && iconSetting !== void 0 && iconSetting.ver ? '?ver=' + iconSetting.ver : '');
      this.enqueuePreviewStylesheet(versionAddedURL);
      this.enqueueEditorStylesheet(versionAddedURL);
    }
    this._enqueuedIconFonts.push(iconType);
    elementor.channels.editor.trigger('fontIcon:insertion', iconType, iconSetting);
  },
  getIconLibrarySettings: function getIconLibrarySettings(iconType) {
    var iconSetting = elementor.config.icons.libraries.filter(function (library) {
      return iconType === library.name;
    });
    if (iconSetting[0] && iconSetting[0].name) {
      return iconSetting[0];
    }
    return false;
  },
  /**
   *
   * @param {*}      view       - view to refresh if needed
   * @param {*}      icon       - icon control data
   * @param {*}      attributes - default {} - attributes to attach to rendered html tag
   * @param {string} tag        - default i - html tag to render
   * @param {*}      returnType - default value - return type
   * @return {string|undefined|*} result
   */
  renderIcon: function renderIcon(view, icon) {
    var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
    var tag = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'i';
    var returnType = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'value';
    if (!icon || !icon.library) {
      if ('object' === returnType) {
        return {
          rendered: false
        };
      }
      return;
    }
    var iconType = icon.library,
      iconValue = icon.value;
    if ('svg' === iconType) {
      if ('panel' === returnType) {
        return '<img src="' + iconValue.url + '">';
      }
      return {
        rendered: true,
        value: this.getInlineSvg(iconValue, view)
      };
    }
    var iconSettings = this.getIconLibrarySettings(iconType);
    if (iconSettings && !Object.prototype.hasOwnProperty.call(iconSettings, 'isCustom')) {
      this.enqueueIconFonts(iconType);
      if ('panel' === returnType) {
        return '<' + tag + ' class="' + iconValue + '"></' + tag + '>';
      }
      var tagUniqueID = tag + elementorCommon.helpers.getUniqueId();
      view.addRenderAttribute(tagUniqueID, attributes);
      view.addRenderAttribute(tagUniqueID, 'class', iconValue);
      var htmlTag = '<' + tag + ' ' + view.getRenderAttributeString(tagUniqueID) + '></' + tag + '>';
      if ('object' === returnType) {
        return {
          rendered: true,
          value: htmlTag
        };
      }
      return htmlTag;
    }
    elementor.channels.editor.trigger('Icon:insertion', iconType, iconValue, attributes, tag, view);
    if ('object' === returnType) {
      return {
        rendered: false
      };
    }
  },
  isIconMigrated: function isIconMigrated(settings, controlName) {
    return settings.__fa4_migrated && settings.__fa4_migrated[controlName];
  },
  fetchFa4ToFa5Mapping: function fetchFa4ToFa5Mapping() {
    var storageKey = 'fa4Tofa5Mapping';
    var mapping = elementorCommon.storage.get(storageKey);
    if (!mapping) {
      jQuery.getJSON(elementor.config.fa4_to_fa5_mapping_url, function (data) {
        mapping = data;
        elementorCommon.storage.set(storageKey, data);
      });
    }
    return mapping;
  },
  mapFa4ToFa5: function mapFa4ToFa5(fa4Value) {
    var mapping = this.fetchFa4ToFa5Mapping();
    if (mapping[fa4Value]) {
      return mapping[fa4Value];
    }
    // Every thing else is converted to solid
    return {
      value: 'fas' + fa4Value.replace('fa ', ' '),
      library: 'fa-solid'
    };
  },
  // The target parameter = 'editor'/'preview'. Defaults to 'preview' for backwards compatibility.
  enqueueFont: function enqueueFont(font) {
    var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'preview';
    if ($e.devTools) {
      $e.devTools.log.info("enqueueFont font: '".concat(font, "', target: '").concat(target, "'"));
    }
    if (-1 !== this._enqueuedFonts[target].indexOf(font)) {
      return;
    }
    var fontType = elementor.config.controls.font.options[font],
      subsets = {
        ru_RU: 'cyrillic',
        uk: 'cyrillic',
        bg_BG: 'cyrillic',
        vi: 'vietnamese',
        el: 'greek',
        he_IL: 'hebrew'
      };
    var enqueueOptions = {};
    var fontUrl;
    switch (fontType) {
      case 'googlefonts':
        fontUrl = 'https://fonts.googleapis.com/css?family=' + font + ':100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic';
        if (subsets[elementor.config.locale]) {
          fontUrl += '&subset=' + subsets[elementor.config.locale];
        }
        enqueueOptions.crossOrigin = true;
        if ('preview' === target) {
          elementorCommon.ajax.addRequest('enqueue_google_fonts', {
            data: {
              font_name: font
            },
            unique_id: 'enqueue_google_fonts_' + font
          }, true);
        }
        break;
      case 'earlyaccess':
        {
          var fontLowerString = font.replace(/\s+/g, '').toLowerCase();
          fontUrl = 'https://fonts.googleapis.com/earlyaccess/' + fontLowerString + '.css';
          enqueueOptions.crossOrigin = true;
          break;
        }
    }
    if (!_.isEmpty(fontUrl)) {
      if ('editor' === target) {
        // TODO: Find better solution, temporary fix, covering issue: 'fonts does not rendered in global styles'.
        this.enqueueCSS(fontUrl, elementorCommon.elements.$document);
      } else {
        this.enqueueCSS(fontUrl, elementor.$previewContents, enqueueOptions);
      }
    }
    this._enqueuedFonts[target].push(font);
    elementor.channels.editor.trigger('font:insertion', fontType, font);
  },
  resetEnqueuedFontsCache: function resetEnqueuedFontsCache() {
    this._enqueuedFonts = {
      editor: [],
      preview: []
    };
    this._enqueuedIconFonts = [];
  },
  getElementChildType: function getElementChildType(elementType, container) {
    var _this2 = this;
    if (!container) {
      container = this.elementsHierarchy;
    }
    if (undefined !== container[elementType]) {
      if (jQuery.isPlainObject(container[elementType])) {
        return Object.keys(container[elementType]);
      }
      return null;
    }
    var result = null;
    jQuery.each(container, function (index, type) {
      if (!jQuery.isPlainObject(type)) {
        return;
      }
      var childType = _this2.getElementChildType(elementType, type);
      if (childType) {
        result = childType;
        return false;
      }
    });
    return result;
  },
  /**
   * @deprecated since 3.0.0, use `elementorCommon.helpers.getUniqueId()` instead.
   */
  getUniqueID: function getUniqueID() {
    elementorDevTools.deprecation.deprecated('elementor.helpers.getUniqueID()', '3.0.0', 'elementorCommon.helpers.getUniqueId()');
    return elementorCommon.helpers.getUniqueId();
  },
  getSocialNetworkNameFromIcon: function getSocialNetworkNameFromIcon(iconsControl, fallbackControl) {
    var toUpperCase = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
    var migrated = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
    var withIcon = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
    var social = '',
      icon = '';
    if (fallbackControl && !migrated) {
      social = fallbackControl.replace('fa fa-', '');
      icon = '<i class="' + fallbackControl + '"></i>';
    } else if (iconsControl.value && 'svg' !== iconsControl.library) {
      social = iconsControl.value.split(' ')[1];
      if (!social) {
        social = '';
      } else {
        social = social.replace('fa-', '');
      }
      icon = this.renderIcon(null, iconsControl, {}, 'i', 'panel');
    } else {
      icon = this.renderIcon(null, iconsControl, {}, 'i', 'panel');
    }
    if ('' !== social && toUpperCase) {
      social = social.split('-').join(' ');
      social = social.replace(/\b\w/g, function (letter) {
        return letter.toUpperCase();
      });
    }
    social = elementor.hooks.applyFilters('elementor/social_icons/network_name', social, iconsControl, fallbackControl, toUpperCase, withIcon);
    if (withIcon) {
      social = icon + ' ' + social;
    }
    return social;
  },
  getSimpleDialog: function getSimpleDialog(id, title, message, confirmString, onConfirm) {
    return elementorCommon.dialogsManager.createWidget('confirm', {
      id: id,
      headerMessage: title,
      message: message,
      position: {
        my: 'center center',
        at: 'center center'
      },
      strings: {
        confirm: confirmString,
        cancel: __('Cancel', 'elementor')
      },
      onConfirm: onConfirm
    });
  },
  maybeDisableWidget: function maybeDisableWidget() {
    var givenWidgetType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
    if (!elementor.config.icons_update_needed) {
      return false;
    }
    var elementView = elementor.channels.panelElements.request('element:selected'),
      widgetType = givenWidgetType || elementView.model.get('widgetType'),
      widgetData = elementor.widgetsCache[widgetType],
      _hasControlOfType = function hasControlOfType(controls, type) {
        var has = false;
        jQuery.each(controls, function (controlName, controlData) {
          if (type === controlData.type) {
            has = true;
            return false;
          }
          if (controlData.is_repeater) {
            has = _hasControlOfType(controlData.fields, type);
            if (has) {
              return false;
            }
          }
        });
        return has;
      };
    if (widgetData) {
      var hasIconsControl = _hasControlOfType(widgetData.controls, 'icons');
      if (hasIconsControl) {
        var onConfirm = function onConfirm() {
          var _elementor$documents$;
          window.location.href = elementor.config.tools_page_link + '&redirect_to_document=' + ((_elementor$documents$ = elementor.documents.getCurrent()) === null || _elementor$documents$ === void 0 ? void 0 : _elementor$documents$.id) + '&_wpnonce=' + elementor.config.tools_page_nonce + '#tab-fontawesome4_migration';
        };
        elementor.helpers.getSimpleDialog('elementor-enable-fa5-dialog', __('Elementor\'s New Icon Library', 'elementor'), __('Elementor v2.6 includes an upgrade from Font Awesome 4 to 5. In order to continue using icons, be sure to click "Update".', 'elementor') + ' <a href="https://go.elementor.com/fontawesome-migration/" target="_blank">' + __('Learn More', 'elementor') + '</a>', __('Update', 'elementor'), onConfirm).show();
        return true;
      }
    }
    return false;
  },
  /**
   * @param {string} string
   * @param {string} replaces
   * @deprecated since 2.0.0, use native JS `.replace()` method.
   */
  stringReplaceAll: function stringReplaceAll(string, replaces) {
    elementorDevTools.deprecation.deprecated('elementor.helpers.stringReplaceAll()', '2.0.0', 'Use native JS `.replace()` method.');
    var re = new RegExp(Object.keys(replaces).join('|'), 'gi');
    return string.replace(re, function (matched) {
      return replaces[matched];
    });
  },
  isActiveControl: function isActiveControl(controlModel, values, controls) {
    var _controlModel$get, _controlModel$get2;
    var condition = controlModel.condition || ((_controlModel$get = controlModel.get) === null || _controlModel$get === void 0 ? void 0 : _controlModel$get.call(controlModel, 'condition'));
    var conditions = controlModel.conditions || ((_controlModel$get2 = controlModel.get) === null || _controlModel$get2 === void 0 ? void 0 : _controlModel$get2.call(controlModel, 'conditions'));

    // If there is a 'condition' format, convert it to a 'conditions' format.
    if (condition) {
      var terms = [];
      Object.entries(condition).forEach(function (_ref) {
        var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
          conditionName = _ref2[0],
          conditionValue = _ref2[1];
        var convertedCondition = elementor.conditions.convertConditionToConditions(conditionName, conditionValue, controlModel, values, controls);
        terms.push(convertedCondition);
      });
      conditions = {
        relation: 'and',
        terms: conditions ? terms.concat(conditions) : terms
      };
    }
    return !(conditions && !elementor.conditions.check(conditions, values, controls));
  },
  /**
   * @param {Object} object - An object to clone.
   * @deprecated since 2.3.0, use `elementorCommon.helpers.cloneObject()` instead.
   */
  cloneObject: function cloneObject(object) {
    elementorDevTools.deprecation.deprecated('elementor.helpers.cloneObject( object )', '2.3.0', 'elementorCommon.helpers.cloneObject( object )');
    return elementorCommon.helpers.cloneObject(object);
  },
  disableElementEvents: function disableElementEvents($element) {
    $element.each(function () {
      var currentPointerEvents = this.style.pointerEvents;
      if ('none' === currentPointerEvents) {
        return;
      }
      jQuery(this).data('backup-pointer-events', currentPointerEvents).css('pointer-events', 'none');
    });
  },
  enableElementEvents: function enableElementEvents($element) {
    $element.each(function () {
      var $this = jQuery(this),
        backupPointerEvents = $this.data('backup-pointer-events');
      if (undefined === backupPointerEvents) {
        return;
      }
      $this.removeData('backup-pointer-events').css('pointer-events', backupPointerEvents);
    });
  },
  /**
   * @param {*} $element
   * @deprecated since 2.8.0, use `new ColorPicker( { picker: { el: $element } } )` instead.
   */
  wpColorPicker: function wpColorPicker($element) {
    elementorDevTools.deprecation.deprecated('elementor.helpers.wpColorPicker( $element )', '2.8.0', 'new ColorPicker( { picker: { el: $element } } )');
    return new _colorPicker.default({
      picker: {
        el: $element
      }
    });
  },
  isInViewport: function isInViewport(element, html) {
    var rect = element.getBoundingClientRect();
    html = html || document.documentElement;
    return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || html.clientHeight) && rect.right <= (window.innerWidth || html.clientWidth);
  },
  scrollToView: function scrollToView($element, timeout, $parent) {
    if (undefined === timeout) {
      timeout = 500;
    }
    var $scrolled = $parent;
    var $elementorFrontendWindow = elementorFrontend.elements.$window;
    if (!$parent) {
      $parent = $elementorFrontendWindow;
      $scrolled = elementor.$previewContents.find('html, body');
    }
    setTimeout(function () {
      var _$element$;
      // Sometimes element removed during the timeout.
      if (!((_$element$ = $element[0]) !== null && _$element$ !== void 0 && _$element$.isConnected)) {
        return;
      }
      var parentHeight = $parent.height(),
        parentScrollTop = $parent.scrollTop(),
        elementTop = $parent === $elementorFrontendWindow ? $element.offset().top : $element[0].offsetTop,
        topToCheck = elementTop - parentScrollTop;
      if (topToCheck > 0 && topToCheck < parentHeight) {
        return;
      }
      var scrolling = elementTop - parentHeight / 2;
      $scrolled.stop(true).animate({
        scrollTop: scrolling
      }, 1000);
    }, timeout);
  },
  getElementInlineStyle: function getElementInlineStyle($element, properties) {
    var style = {},
      elementStyle = $element[0].style;
    properties.forEach(function (property) {
      style[property] = undefined !== elementStyle[property] ? elementStyle[property] : '';
    });
    return style;
  },
  cssWithBackup: function cssWithBackup($element, backupState, rules) {
    var cssBackup = this.getElementInlineStyle($element, Object.keys(rules));
    $element.data('css-backup-' + backupState, cssBackup).css(rules);
  },
  recoverCSSBackup: function recoverCSSBackup($element, backupState) {
    var backupKey = 'css-backup-' + backupState;
    $element.css($element.data(backupKey));
    $element.removeData(backupKey);
  },
  elementSizeToUnit: function elementSizeToUnit($element, size, unit) {
    var window = elementorFrontend.elements.window;
    switch (unit) {
      case '%':
        size = size / ($element.offsetParent().width() / 100);
        break;
      case 'vw':
        size = size / (window.innerWidth / 100);
        break;
      case 'vh':
        size = size / (window.innerHeight / 100);
    }
    return Math.round(size * 1000) / 1000;
  },
  compareVersions: function compareVersions(versionA, versionB, operator) {
    var prepareVersion = function prepareVersion(version) {
      version = version + '';
      return version.replace(/[^\d.]+/, '.-1.');
    };
    versionA = prepareVersion(versionA);
    versionB = prepareVersion(versionB);
    if (versionA === versionB) {
      return !operator || /^={2,3}$/.test(operator);
    }
    var versionAParts = versionA.split('.').map(Number),
      versionBParts = versionB.split('.').map(Number),
      longestVersionParts = Math.max(versionAParts.length, versionBParts.length);
    for (var i = 0; i < longestVersionParts; i++) {
      var valueA = versionAParts[i] || 0,
        valueB = versionBParts[i] || 0;
      if (valueA !== valueB) {
        return elementor.conditions.compare(valueA, valueB, operator);
      }
    }
  },
  getModelLabel: function getModelLabel(model) {
    var result;
    if (!(model instanceof Backbone.Model)) {
      model = new Backbone.Model(model);
    }
    if (model.get('labelSuffix')) {
      result = model.get('title') + ' ' + model.get('labelSuffix');
    } else if ('global' === model.get('widgetType')) {
      if (model.getTitle) {
        result = model.getTitle();
      }
    }
    if (!result) {
      result = elementor.getElementData(model).title;
    }
    return result;
  },
  hasPro: function hasPro() {
    return !!window.elementorPro;
  },
  hasProAndNotConnected: function hasProAndNotConnected() {
    return elementor.helpers.hasPro() && elementorProEditorConfig.urls.connect;
  },
  /**
   * Function validateHTMLTag().
   *
   * Validate an HTML tag against a safe allowed list.
   *
   * @param {string} tag
   *
   * @return {string} the tag, if it is valid, otherwise, 'div'
   */
  validateHTMLTag: function validateHTMLTag(tag) {
    return allowedHTMLWrapperTags.includes(tag === null || tag === void 0 ? void 0 : tag.toLowerCase()) ? tag : 'div';
  },
  convertSizeToFrString: function convertSizeToFrString(size) {
    if ('number' !== typeof size || size <= 0) {
      return size;
    }
    var frString = Array.from({
      length: size
    }, function () {
      return '1fr';
    }).join(' ');
    return frString;
  },
  sanitize: function sanitize(value, options) {
    return _dompurify.default.sanitize(value, options);
  },
  sanitizeUrl: function sanitizeUrl(url) {
    var isValidUrl = !!url ? (0, _dompurify.isValidAttribute)('a', 'href', url) : false;
    if (!isValidUrl) {
      return '';
    }
    try {
      return encodeURI(url);
    } catch (e) {
      return '';
    }
  },
  /**
   * @param {HTMLElement} element - The referenced element whose children are searched.
   * @return {HTMLAnchorElement | null} The closest anchor child element, or null if none is found.
   */
  findChildWithAnchor: function findChildWithAnchor(element) {
    return (element === null || element === void 0 ? void 0 : element.querySelector('a')) || null;
  },
  /**
   * @param {HTMLElement} element - The referenced element whose parents are searched.
   * @return {HTMLAnchorElement | null} The closest anchor parent element, or null if none is found.
   */
  findParentWithAnchor: function findParentWithAnchor(element) {
    return (element === null || element === void 0 ? void 0 : element.closest('a')) || null;
  },
  getAtomicElementTypes: function getAtomicElementTypes() {
    var elements = elementor.config.elements;
    return Object.keys(elements).filter(function (elementKey) {
      return Object.keys(elements[elementKey]).some(function (key) {
        return key.includes('atom');
      });
    });
  },
  isElementAtomic: function isElementAtomic(elementId) {
    var _ref3 = elementor.getContainer(elementId) || {},
      _ref3$type = _ref3.type,
      elType = _ref3$type === void 0 ? null : _ref3$type;
    return this.getAtomicElementTypes().includes(elType);
  },
  getWidgetCache: function getWidgetCache(model) {
    var isModel = model && 'function' === typeof model.get;
    var elType = isModel ? model.get('elType') : model === null || model === void 0 ? void 0 : model.elType;
    var widgetType = isModel ? model.get('widgetType') : model === null || model === void 0 ? void 0 : model.widgetType;
    var elementType = 'widget' === elType ? widgetType : elType;
    return elementor.widgetsCache[elementType];
  },
  isAtomicWidget: function isAtomicWidget(model) {
    var widgetCache = this.getWidgetCache(model);
    return !!(widgetCache !== null && widgetCache !== void 0 && widgetCache.atomic_props_schema);
  },
  getAtomicWidgetBaseStyles: function getAtomicWidgetBaseStyles(model) {
    if (!this.isAtomicWidget(model)) {
      return;
    }
    var widgetCache = this.getWidgetCache(model);
    return widgetCache.base_styles;
  }
};

/***/ }),

/***/ "../assets/dev/js/editor/utils/images-manager.js":
/*!*******************************************************!*\
  !*** ../assets/dev/js/editor/utils/images-manager.js ***!
  \*******************************************************/
/***/ ((module) => {

"use strict";


var ImagesManager;
ImagesManager = function ImagesManager() {
  var self = this;
  var cache = {};
  var debounceDelay = 300;
  var registeredItems = [];
  var getNormalizedSize = function getNormalizedSize(image) {
    var size,
      imageSize = image.size;
    if ('custom' === imageSize) {
      var customDimension = image.dimension;
      if (customDimension.width || customDimension.height) {
        size = 'custom_' + customDimension.width + 'x' + customDimension.height;
      } else {
        return 'full';
      }
    } else {
      size = imageSize;
    }
    return size;
  };
  var viewsToUpdate = {};
  self.updateOnReceiveImage = function () {
    var elementView = elementor.getPanelView().getCurrentPageView().getOption('editedElementView');
    elementView.$el.addClass('elementor-loading');
    // Add per cid for multiple images in a single view.
    viewsToUpdate[elementView.cid] = elementView;
    elementor.channels.editor.once('imagesManager:detailsReceived', function () {
      if (!_.isEmpty(viewsToUpdate)) {
        _(viewsToUpdate).each(function (view) {
          view.render();
          view.$el.removeClass('elementor-loading');
        });
      }
      viewsToUpdate = {};
    });
  };
  self.getImageUrl = function (image) {
    // Register for AJAX checking
    self.registerItem(image);
    var imageUrl = self.getItem(image);

    // If it's not in cache, like a new dropped widget or a custom size - get from settings
    if (!imageUrl) {
      if ('custom' === image.size) {
        if ($e.routes.isPartOf('panel/editor') && image.model) {
          self.updateOnReceiveImage();
        }
        return;
      }

      // If it's a new dropped widget
      imageUrl = image.url;
    }
    return imageUrl;
  };
  self.getItem = function (image) {
    var size = getNormalizedSize(image),
      id = image.id;
    if (!size) {
      return false;
    }
    if (cache[id] && cache[id][size]) {
      return cache[id][size];
    }
    return false;
  };
  self.registerItem = function (image) {
    if ('' === image.id) {
      // It's a new dropped widget
      return;
    }
    if (self.getItem(image)) {
      // It's already in cache
      return;
    }
    registeredItems.push(image);
    self.debounceGetRemoteItems();
  };
  self.getRemoteItems = function () {
    var requestedItems = [],
      registeredItemsLength = Object.keys(registeredItems).length,
      image,
      index;

    // It's one item, so we can render it from remote server
    if (0 === registeredItemsLength) {
      return;
    }
    for (index in registeredItems) {
      image = registeredItems[index];
      var size = getNormalizedSize(image),
        id = image.id,
        isFirstTime = !cache[id] || 0 === Object.keys(cache[id]).length;
      requestedItems.push({
        id: id,
        size: size,
        is_first_time: isFirstTime
      });
    }
    elementorCommon.ajax.send('get_images_details', {
      data: {
        items: requestedItems
      },
      success: function success(data) {
        var imageId, imageSize;
        for (imageId in data) {
          if (!cache[imageId]) {
            cache[imageId] = {};
          }
          for (imageSize in data[imageId]) {
            cache[imageId][imageSize] = data[imageId][imageSize];
          }
        }
        registeredItems = [];
        elementor.channels.editor.trigger('imagesManager:detailsReceived', data);
      }
    });
  };
  self.debounceGetRemoteItems = _.debounce(self.getRemoteItems, debounceDelay);
};
module.exports = new ImagesManager();

/***/ }),

/***/ "../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/keyboard-nav.js":
/*!*****************************************************!*\
  !*** ../assets/dev/js/editor/utils/keyboard-nav.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.rovingTabindex = rovingTabindex;
exports.suppressEscapeKeyUp = suppressEscapeKeyUp;
/**
 * Handles arrow-key roving tabindex navigation within a group.
 *
 * @param {Object}       options
 * @param {jQuery.Event} options.event                      - The keydown event
 * @param {jQuery}       options.$items                     - All navigable items
 * @param {string}       [options.orientation='horizontal'] - 'horizontal' | 'vertical' | 'both'
 * @param {boolean}      [options.wrap=true]                - Wrap at boundaries
 * @param {boolean}      [options.activateOnFocus=false]    - Trigger click on arrow navigation
 * @param {Function}     [options.onActivate]               - Callback when Enter/Space pressed
 * @param {boolean}      [options.homeEnd=true]             - Support Home/End keys
 * @return {boolean} Whether the event was handled
 */
function rovingTabindex(_ref) {
  var event = _ref.event,
    $items = _ref.$items,
    _ref$orientation = _ref.orientation,
    orientation = _ref$orientation === void 0 ? 'horizontal' : _ref$orientation,
    _ref$wrap = _ref.wrap,
    wrap = _ref$wrap === void 0 ? true : _ref$wrap,
    _ref$activateOnFocus = _ref.activateOnFocus,
    activateOnFocus = _ref$activateOnFocus === void 0 ? false : _ref$activateOnFocus,
    onActivate = _ref.onActivate,
    _ref$homeEnd = _ref.homeEnd,
    homeEnd = _ref$homeEnd === void 0 ? true : _ref$homeEnd;
  // Use event.currentTarget when the event is bound directly to items,
  // fall back to event.target when the event is bound to a container.
  var current = $items.index(event.currentTarget) !== -1 ? event.currentTarget : event.target;
  var currentIndex = $items.index(current);
  var targetIndex = currentIndex;
  var isHorizontal = 'horizontal' === orientation || 'both' === orientation;
  var isVertical = 'vertical' === orientation || 'both' === orientation;
  switch (event.key) {
    case 'ArrowLeft':
    case 'ArrowUp':
      if ('ArrowLeft' === event.key && !isHorizontal || 'ArrowUp' === event.key && !isVertical) {
        return false;
      }
      event.preventDefault();
      if (currentIndex > 0) {
        targetIndex = currentIndex - 1;
      } else {
        targetIndex = wrap ? $items.length - 1 : currentIndex;
      }
      break;
    case 'ArrowRight':
    case 'ArrowDown':
      if ('ArrowRight' === event.key && !isHorizontal || 'ArrowDown' === event.key && !isVertical) {
        return false;
      }
      event.preventDefault();
      if (currentIndex < $items.length - 1) {
        targetIndex = currentIndex + 1;
      } else {
        targetIndex = wrap ? 0 : currentIndex;
      }
      break;
    case 'Home':
      if (!homeEnd) {
        return false;
      }
      event.preventDefault();
      targetIndex = 0;
      break;
    case 'End':
      if (!homeEnd) {
        return false;
      }
      event.preventDefault();
      targetIndex = $items.length - 1;
      break;
    case 'Enter':
    case ' ':
      event.preventDefault();
      if (onActivate) {
        onActivate(event, $items.eq(currentIndex));
      }
      return true;
    default:
      return false;
  }
  if (targetIndex !== currentIndex) {
    $items.attr('tabindex', '-1');
    $items.eq(targetIndex).attr('tabindex', '0').trigger('focus');
    if (activateOnFocus) {
      $items.eq(targetIndex).trigger('click');
    }
  }
  return true;
}

/**
 * Prevents Escape keydown from propagating to close the modal,
 * and suppresses the subsequent keyup event.
 *
 * @param {KeyboardEvent} event - The keydown event
 */
function suppressEscapeKeyUp(event) {
  event.stopPropagation();
  var _handler = function handler(e) {
    if ('Escape' === e.key) {
      e.stopImmediatePropagation();
    }
    window.removeEventListener('keyup', _handler, true);
  };
  window.addEventListener('keyup', _handler, true);
}

/***/ }),

/***/ "../assets/dev/js/editor/utils/localized-value-store.js":
/*!**************************************************************!*\
  !*** ../assets/dev/js/editor/utils/localized-value-store.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 LocalizedValueStore = exports["default"] = /*#__PURE__*/function () {
  function LocalizedValueStore() {
    (0, _classCallCheck2.default)(this, LocalizedValueStore);
    this.store = [];
  }

  /**
   * Receives the incoming event and returns the stored localized value
   * English values will be returned as is
   * Paste will return an empty value
   *
   * @param event - the incoming event
   * @return string
   */
  return (0, _createClass2.default)(LocalizedValueStore, [{
    key: "appendAndParseLocalizedData",
    value: function appendAndParseLocalizedData(event) {
      if (this.isPaste(event)) {
        this.resetStore();
      } else if (this.isInputValueShorterThanStoreLength(event)) {
        this.rebuildStore(event);
      } else if (this.isLetter(event) || this.isSpace(event)) {
        this.addCharToStore(event);
      }
      return this.store.map(function (x) {
        return x.localized;
      }).join('');
    }
  }, {
    key: "resetStore",
    value: function resetStore() {
      this.store = [];
    }
  }, {
    key: "isPaste",
    value: function isPaste(event) {
      var PASTE_EVENT = 'insertFromPaste';
      var KEY_V = 'KeyV';
      var originalEventPaste = PASTE_EVENT === event.originalEvent.inputType;
      var ctrlPlusV = event.code === KEY_V && event.ctrlKey;
      return originalEventPaste || ctrlPlusV;
    }
  }, {
    key: "isInputValueShorterThanStoreLength",
    value: function isInputValueShorterThanStoreLength(event) {
      var _event$target$value;
      return ((_event$target$value = event.target.value) === null || _event$target$value === void 0 ? void 0 : _event$target$value.length) < this.store.length;
    }
  }, {
    key: "addCharToStore",
    value: function addCharToStore(event) {
      var localizedValue = String.fromCharCode(event.keyCode);
      if (!this.localizationRequired(localizedValue, event)) {
        localizedValue = event.originalEvent.key;
      }
      this.store.push({
        original: event.originalEvent.key,
        localized: localizedValue
      });
    }
  }, {
    key: "localizationRequired",
    value: function localizationRequired(localizedValue, event) {
      return localizedValue.toLowerCase() !== event.originalEvent.key.toLowerCase();
    }
  }, {
    key: "isSpace",
    value: function isSpace(event) {
      return 32 === event.keyCode || ' ' === event.originalEvent.data;
    }
  }, {
    key: "isLetter",
    value: function isLetter(event) {
      return event.keyCode >= 65 && event.keyCode <= 90;
    }
  }, {
    key: "rebuildStore",
    value: function rebuildStore(event) {
      var _this = this;
      var chars = event.target.value.split('');
      this.store = chars.map(function (char) {
        return _this.buildLocalizationElement(char);
      });
    }
  }, {
    key: "buildLocalizationElement",
    value: function buildLocalizationElement(char) {
      return {
        original: char,
        localized: this.store.find(function (element) {
          return element.original === char;
        }).localized
      };
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/utils/notice-bar.js":
/*!***************************************************!*\
  !*** ../assets/dev/js/editor/utils/notice-bar.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"));
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; })(); }
var _default = exports["default"] = /*#__PURE__*/function (_elementorModules$Vie) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _elementorModules$Vie);
  return (0, _createClass2.default)(_default, [{
    key: "getDefaultSettings",
    value: function getDefaultSettings() {
      return {
        selectors: {
          notice: '#e-notice-bar',
          close: '#e-notice-bar__close'
        }
      };
    }
  }, {
    key: "getDefaultElements",
    value: function getDefaultElements() {
      var settings = this.getSettings();
      return {
        $notice: jQuery(settings.selectors.notice),
        $close: jQuery(settings.selectors.close)
      };
    }
  }, {
    key: "bindEvents",
    value: function bindEvents() {
      this.elements.$close.on('click', this.onCloseClick.bind(this));
    }
  }, {
    key: "onCloseClick",
    value: function onCloseClick() {
      this.elements.$notice.slideUp();
      elementorCommon.ajax.addRequest('notice_bar_dismiss');
    }
  }]);
}(elementorModules.ViewModule);

/***/ }),

/***/ "../assets/dev/js/editor/utils/presets-factory.js":
/*!********************************************************!*\
  !*** ../assets/dev/js/editor/utils/presets-factory.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var presetsFactory;
presetsFactory = {
  getPresetsDictionary: function getPresetsDictionary() {
    return {
      11: 100 / 9,
      12: 100 / 8,
      14: 100 / 7,
      16: 100 / 6,
      33: 100 / 3,
      66: 2 / 3 * 100,
      83: 5 / 6 * 100
    };
  },
  getAbsolutePresetValues: function getAbsolutePresetValues(preset) {
    var clonedPreset = structuredClone(preset),
      presetDictionary = this.getPresetsDictionary();
    _.each(clonedPreset, function (unitValue, unitIndex) {
      if (presetDictionary[unitValue]) {
        clonedPreset[unitIndex] = presetDictionary[unitValue];
      }
    });
    return clonedPreset;
  },
  getPresets: function getPresets(columnsCount, presetIndex) {
    var presets = structuredClone(elementor.config.elements.section.presets);
    if (columnsCount) {
      presets = presets[columnsCount];
    }
    if (presetIndex) {
      presets = presets[presetIndex];
    }
    return presets;
  },
  getPresetByStructure: function getPresetByStructure(structure) {
    var parsedStructure = this.getParsedStructure(structure);
    return this.getPresets(parsedStructure.columnsCount, parsedStructure.presetIndex);
  },
  // Grid preset looks like 1-2 ( 1 rows, 2 columns )
  getParsedGridStructure: function getParsedGridStructure(selectedStructure) {
    selectedStructure += ''; // Make sure this is a string

    var chunks = selectedStructure.split('-');
    return {
      rows: chunks[0],
      columns: chunks[1]
    };
  },
  getParsedStructure: function getParsedStructure(structure) {
    structure += ''; // Make sure this is a string

    return {
      columnsCount: structure.slice(0, -1),
      presetIndex: structure.substr(-1)
    };
  },
  getPresetSVG: function getPresetSVG(preset, svgWidth, svgHeight, separatorWidth) {
    svgWidth = svgWidth || 100;
    svgHeight = svgHeight || 50;
    separatorWidth = separatorWidth || 2;
    var absolutePresetValues = this.getAbsolutePresetValues(preset),
      presetSVGPath = this._generatePresetSVGPath(absolutePresetValues, svgWidth, svgHeight, separatorWidth);
    return this._createSVGPreset(presetSVGPath, svgWidth, svgHeight);
  },
  _createSVGPreset: function _createSVGPreset(presetPath, svgWidth, svgHeight) {
    // This is here to avoid being picked up by https re-write systems
    var protocol = 'ht' + 'tp';
    var svg = document.createElementNS(protocol + '://www.w3.org/2000/svg', 'svg');
    svg.setAttributeNS(protocol + '://www.w3.org/2000/xmlns/', 'xmlns:xlink', protocol + '://www.w3.org/1999/xlink');
    svg.setAttribute('viewBox', '0 0 ' + svgWidth + ' ' + svgHeight);
    var path = document.createElementNS(protocol + '://www.w3.org/2000/svg', 'path');
    path.setAttribute('d', presetPath);
    svg.appendChild(path);
    return svg;
  },
  _generatePresetSVGPath: function _generatePresetSVGPath(preset, svgWidth, svgHeight, separatorWidth) {
    var DRAW_SIZE = svgWidth - separatorWidth * (preset.length - 1);
    var xPointer = 0,
      dOutput = '';
    for (var i = 0; i < preset.length; i++) {
      if (i) {
        dOutput += ' ';
      }
      var increment = preset[i] / 100 * DRAW_SIZE;
      xPointer += increment;
      dOutput += 'M' + +xPointer.toFixed(4) + ',0';
      dOutput += 'V' + svgHeight;
      dOutput += 'H' + +(xPointer - increment).toFixed(4);
      dOutput += 'V0Z';
      xPointer += separatorWidth;
    }
    return dOutput;
  },
  /**
   * Return an SVG markup with text of a Container element (e.g. flex, grid, etc.).
   *
   * @param {string} presetId - Preset ID to retrieve.
   * @param {string} text     - The text to show on the preset (Optional - Used only in the default preset).
   *
   * @return {string} preset
   */
  generateContainerPreset: function generateContainerPreset(presetId) {
    var text = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
    var presets = {
      '33-33-33': "\n\t\t\t\t<svg viewBox=\"0 0 90 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<rect x=\"0.5\" width=\"29\" height=\"44\" />\n\t\t\t\t\t<rect x=\"30.5\" width=\"29\" height=\"44\" />\n\t\t\t\t\t<rect x=\"60.5\" width=\"29\" height=\"44\" />\n\t\t\t\t</svg>\n\t\t\t",
      '50-50': "\n\t\t\t\t<svg viewBox=\"0 0 90 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<rect x=\"0.5\" width=\"44\" height=\"44\" />\n\t\t\t\t\t<rect x=\"45.5\" width=\"44\" height=\"44\" />\n\t\t\t\t</svg>\n\t\t\t",
      'c100-c50-50': "\n\t\t\t\t<svg viewBox=\"0 0 90 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<rect x=\"0.5\" width=\"44\" height=\"44\" />\n\t\t\t\t\t<rect x=\"45.5\" width=\"44\" height=\"21.5\" />\n\t\t\t\t\t<rect x=\"45.5\" y=\"22.5\" width=\"44\" height=\"21.5\" />\n\t\t\t\t</svg>\n\t\t\t",
      '50-50-50-50': "\n\t\t\t\t<svg viewBox=\"0 0 90 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<rect x=\"0.5\" width=\"44\" height=\"21.5\" />\n\t\t\t\t\t<rect x=\"45.5\" width=\"44\" height=\"21.5\" />\n\t\t\t\t\t<rect x=\"0.5\" y=\"22.5\" width=\"44\" height=\"21.5\" />\n\t\t\t\t\t<rect x=\"45.5\" y=\"22.5\" width=\"44\" height=\"21.5\" />\n\t\t\t\t</svg>\n\t\t\t",
      '33-66': "\n\t\t\t\t<svg viewBox=\"0 0 89 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<rect width=\"29\" height=\"44\"/>\n\t\t\t\t\t<rect x=\"30\" width=\"59\" height=\"44\"/>\n\t\t\t\t</svg>\n\t\t\t",
      '25-25-25-25': "\n\t\t\t\t<svg viewBox=\"0 0 89 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<rect width=\"21.5\" height=\"44\"/>\n\t\t\t\t\t<rect x=\"22.5\" width=\"21.5\" height=\"44\"/>\n\t\t\t\t\t<rect x=\"45\" width=\"21.5\" height=\"44\"/>\n\t\t\t\t\t<rect x=\"67.5\" width=\"21.5\" height=\"44\"/>\n\t\t\t\t</svg>\n\t\t\t",
      '25-50-25': "\n\t\t\t\t<svg viewBox=\"0 0 89 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<rect width=\"21.5\" height=\"44\"/>\n\t\t\t\t\t<rect x=\"22.5\" width=\"44\" height=\"44\"/>\n\t\t\t\t\t<rect x=\"67.5\" width=\"21.5\" height=\"44\"/>\n\t\t\t\t</svg>\n\t\t\t",
      '50-50-100': "\n\t\t\t\t<svg viewBox=\"0 0 89 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<rect width=\"44\" height=\"21.5\"/>\n\t\t\t\t\t<rect x=\"45\" width=\"44\" height=\"21.5\"/>\n\t\t\t\t\t<rect y=\"22.5\" width=\"89\" height=\"21.5\"/>\n\t\t\t\t</svg>\n\t\t\t",
      '33-33-33-33-33-33': "\n\t\t\t\t<svg viewBox=\"0 0 89 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<rect width=\"29\" height=\"21.5\"/>\n\t\t\t\t\t<rect x=\"30\" width=\"29\" height=\"21.5\"/>\n\t\t\t\t\t<rect x=\"60\" width=\"29\" height=\"21.5\"/>\n\t\t\t\t\t<rect y=\"22.5\" width=\"29\" height=\"21.5\"/>\n\t\t\t\t\t<rect x=\"30\" y=\"22.5\" width=\"29\" height=\"21.5\"/>\n\t\t\t\t\t<rect x=\"60\" y=\"22.5\" width=\"29\" height=\"21.5\"/>\n\t\t\t\t</svg>\n\t\t\t",
      '33-33-33-33-66': "\n\t\t\t\t<svg viewBox=\"0 0 89 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<rect width=\"29\" height=\"21.5\"/>\n\t\t\t\t\t<rect x=\"30\" width=\"29\" height=\"21.5\"/>\n\t\t\t\t\t<rect x=\"60\" width=\"29\" height=\"21.5\"/>\n\t\t\t\t\t<rect y=\"22.5\" width=\"29\" height=\"21.5\"/>\n\t\t\t\t\t<rect x=\"30\" y=\"22.5\" width=\"59\" height=\"21.5\"/>\n\t\t\t\t</svg>\n\t\t\t",
      '66-33-33-66': "\n\t\t\t\t<svg viewBox=\"0 0 89 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<rect width=\"59\" height=\"21.5\"/>\n\t\t\t\t\t<rect x=\"60\" width=\"29\" height=\"21.5\"/>\n\t\t\t\t\t<rect y=\"22.5\" width=\"29\" height=\"21.5\"/>\n\t\t\t\t\t<rect x=\"30\" y=\"22.5\" width=\"59\" height=\"21.5\"/>\n\t\t\t\t</svg>\n\t\t\t",
      c100: "\n\t\t\t\t<svg viewBox=\"0 0 89 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<title>".concat(__('Direction Column', 'elementor'), "</title>\n\t\t\t\t\t<rect width=\"89\" height=\"44\" />\n\t\t\t\t\t<path d=\"M43.956 24.644L42 22.748C41.848 22.596 41.672 22.52 41.472 22.52C41.28 22.52 41.108 22.596 40.956 22.748C40.804 22.9 40.728 23.076 40.728 23.276C40.728 23.476 40.804 23.652 40.956 23.804L44.304 27.056C44.456 27.208 44.628 27.284 44.82 27.284C45.02 27.284 45.196 27.208 45.348 27.056L48.504 23.852C48.656 23.7 48.732 23.524 48.732 23.324C48.732 23.124 48.656 22.948 48.504 22.796C48.352 22.644 48.176 22.568 47.976 22.568C47.776 22.568 47.6 22.644 47.448 22.796L45.456 24.848L45.504 17.048C45.504 16.848 45.428 16.676 45.276 16.532C45.124 16.38 44.948 16.304 44.748 16.304C44.548 16.304 44.372 16.38 44.22 16.532C44.076 16.676 44.004 16.848 44.004 17.048L43.956 24.644Z\"/>\n\t\t\t\t</svg>\n\t\t\t"),
      r100: "\n\t\t\t\t<svg class=\"exclude-rtl-scale\" viewBox=\"0 0 89 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<title>".concat(__('Direction Row', 'elementor'), "</title>\n\t\t\t\t\t<rect width=\"89\" height=\"44\"/>\n\t\t\t\t\t<path d=\"M47.856 23.352L45.948 25.296C45.796 25.448 45.72 25.624 45.72 25.824C45.72 26.024 45.796 26.2 45.948 26.352C46.1 26.504 46.276 26.58 46.476 26.58C46.676 26.58 46.852 26.504 47.004 26.352L50.256 23.004C50.408 22.852 50.484 22.676 50.484 22.476C50.484 22.276 50.408 22.1 50.256 21.948L47.052 18.804C46.9 18.652 46.724 18.576 46.524 18.576C46.324 18.576 46.148 18.652 45.996 18.804C45.844 18.956 45.768 19.132 45.768 19.332C45.768 19.524 45.844 19.696 45.996 19.848L48.048 21.852L40.248 21.804C40.048 21.804 39.872 21.88 39.72 22.032C39.576 22.176 39.504 22.348 39.504 22.548C39.504 22.748 39.576 22.924 39.72 23.076C39.872 23.228 40.048 23.304 40.248 23.304L47.856 23.352Z\"/>\n\t\t\t\t</svg>\n\t\t\t"),
      default: "\n\t\t\t\t<div style=\"--text:'".concat(text, "'\" class=\"e-preset--container\">\n\t\t\t\t\t<svg viewBox=\"0 0 90 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t\t<rect width=\"89\" height=\"44\" transform=\"translate(0.5)\" />\n\t\t\t\t\t\t<rect x=\"3\" y=\"2.5\" width=\"84\" height=\"39\" rx=\"2.5\" stroke=\"#FCFCFC\" stroke-linejoin=\"round\" stroke-dasharray=\"3 2\"/>\n\t\t\t\t\t</svg>\n\t\t\t\t</div>\n\t\t\t")
    };
    return presets[presetId] || presets.default;
  },
  getContainerPresets: function getContainerPresets() {
    return ['c100', 'r100', '50-50', '33-66', '25-25-25-25', '25-50-25', '50-50-50-50', '50-50-100', 'c100-c50-50', '33-33-33-33-33-33', '33-33-33-33-66', '66-33-33-66'];
  },
  generateContainerGridPreset: function generateContainerGridPreset(preset) {
    var presets = {
      '1-2': "\n\t\t\t\t<svg width=\"92\" height=\"46\" viewBox=\"0 0 92 46\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<g opacity=\"0.8\">\n\t\t\t\t\t\t<rect x=\"0.941406\" y=\"1\" width=\"90\" height=\"44.5\" fill=\"white\" stroke=\"#515962\" stroke-dasharray=\"3 3\"/>\n\t\t\t\t\t\t<path d=\"M45.9414 1.12402V45.3768\" stroke=\"#515962\" stroke-dasharray=\"3 3\"/>\n\t\t\t\t\t</g>\n\t\t\t\t</svg>\n\t\t\t",
      '2-1': "\n\t\t\t\t<svg width=\"92\" height=\"47\" viewBox=\"0 0 92 47\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<rect x=\"91.2227\" y=\"1.35059\" width=\"44.5\" height=\"90\" transform=\"rotate(90 91.2227 1.35059)\" fill=\"white\" stroke=\"#515962\" stroke-dasharray=\"3 3\"/>\n\t\t\t\t\t<path d=\"M91.0957 23.6006L1.34961 23.6006\" stroke=\"#515962\" stroke-dasharray=\"3 3\"/>\n\t\t\t\t</svg>\n\t\t\t",
      '1-3': "\n\t\t\t\t<svg width=\"92\" height=\"46\" viewBox=\"0 0 92 46\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<g opacity=\"0.8\">\n\t\t\t\t\t\t<rect x=\"0.941895\" y=\"0.944336\" width=\"90\" height=\"44.5\" fill=\"white\" stroke=\"#515962\" stroke-dasharray=\"3 3\"/>\n\t\t\t\t\t\t<path d=\"M30.9419 1.19824V45.4443\" stroke=\"#515962\" stroke-dasharray=\"3 3\"/>\n\t\t\t\t\t\t<path d=\"M60.9419 1.19824V45.4443\" stroke=\"#515962\" stroke-dasharray=\"3 3\"/>\n\t\t\t\t\t</g>\n\t\t\t\t</svg>\n\t\t\t",
      '3-1': "\n\t\t\t\t<svg width=\"92\" height=\"46\" viewBox=\"0 0 92 46\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<g opacity=\"0.8\">\n\t\t\t\t\t\t<rect x=\"90.9419\" y=\"0.944336\" width=\"44.5\" height=\"90\" transform=\"rotate(90 90.9419 0.944336)\" fill=\"white\" stroke=\"#515962\" stroke-dasharray=\"3 3\"/>\n\t\t\t\t\t\t<path d=\"M90.6155 15.5654L1.26713 15.5654\" stroke=\"#515962\" stroke-dasharray=\"3 3\"/>\n\t\t\t\t\t\t<path d=\"M90.6155 30.1875L1.26713 30.1875\" stroke=\"#515962\" stroke-dasharray=\"3 3\"/>\n\t\t\t\t\t</g>\n\t\t\t\t</svg>\n\t\t\t",
      '2-2': "\n\t\t\t\t<svg width=\"92\" height=\"46\" viewBox=\"0 0 92 46\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<g opacity=\"0.8\">\n\t\t\t\t\t\t<rect x=\"0.941895\" y=\"0.944336\" width=\"90\" height=\"44.5\" fill=\"white\" stroke=\"#515962\" stroke-dasharray=\"3 3\"/>\n\t\t\t\t\t\t<path d=\"M45.9419 1.19727V45.4443\" stroke=\"#515962\" stroke-dasharray=\"3 3\"/>\n\t\t\t\t\t\t<path d=\"M90.9419 23.3213L0.941896 23.3213\" stroke=\"#515962\" stroke-dasharray=\"3 3\"/>\n\t\t\t\t\t</g>\n\t\t\t\t</svg>\n\t\t\t",
      '2-3': "\n\t\t\t\t<svg width=\"92\" height=\"46\" viewBox=\"0 0 92 46\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<rect opacity=\"0.8\" x=\"90.9419\" y=\"0.944336\" width=\"44.5\" height=\"90\" transform=\"rotate(90 90.9419 0.944336)\" fill=\"white\" stroke=\"#515962\" stroke-dasharray=\"3 3\"/>\n\t\t\t\t\t<path d=\"M0.941895 22.3711L90.9419 22.3711\" stroke=\"#515962\" stroke-dasharray=\"3 3\"/>\n\t\t\t\t\t<path d=\"M60.9419 45.4443L60.9419 1.56836\" stroke=\"#515962\" stroke-dasharray=\"3 3\"/>\n\t\t\t\t\t<path d=\"M30.9419 45.4443L30.9419 1.56836\" stroke=\"#515962\" stroke-dasharray=\"3 3\"/>\n\t\t\t\t</svg>\n\t\t\t"
    };
    return presets[preset];
  },
  getContainerGridPresets: function getContainerGridPresets() {
    return ['1-2', '2-1', '1-3', '3-1', '2-2', '2-3'];
  }
};
module.exports = presetsFactory;

/***/ }),

/***/ "../assets/dev/js/editor/utils/promotion.js":
/*!**************************************************!*\
  !*** ../assets/dev/js/editor/utils/promotion.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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; })(); }
var _default = exports["default"] = /*#__PURE__*/function (_elementorModules$Mod) {
  function _default() {
    var _this;
    (0, _classCallCheck2.default)(this, _default);
    _this = _callSuper(this, _default);
    (0, _defineProperty2.default)(_this, "defaultOptions", {
      title: '',
      content: '',
      targetElement: null,
      position: {
        blockStart: null,
        inlineStart: null
      },
      actionButton: {
        url: null,
        text: null,
        classes: ['elementor-button', 'e-accent']
      },
      hideProTag: false
    });
    (0, _defineProperty2.default)(_this, "elements", {
      $title: null,
      $titleBadge: null,
      $closeButton: null,
      $header: null
    });
    _this.initDialog();
    return _this;
  }
  (0, _inherits2.default)(_default, _elementorModules$Mod);
  return (0, _createClass2.default)(_default, [{
    key: "initDialog",
    value: function initDialog() {
      var _this2 = this;
      this.dialog = elementor.dialogsManager.createWidget('buttons', {
        id: 'elementor-element--promotion__dialog',
        effects: {
          show: 'show',
          hide: 'hide'
        },
        hide: {
          onOutsideClick: false
        },
        position: {
          my: (elementorCommon.config.isRTL ? 'right' : 'left') + '+5 top'
        },
        onHide: function onHide() {
          if (_this2.hideProTag) {
            _this2.resetProTag();
          }
        }
      });
      this.elements.$header = this.dialog.getElements('header');
      this.elements.$title = jQuery('<div>', {
        id: 'elementor-element--promotion__dialog__title'
      });
      this.elements.$titleBadge = jQuery('<i>', {
        class: 'eicon-pro-icon'
      });
      this.elements.$closeButton = jQuery('<i>', {
        class: 'eicon-close'
      });
      this.elements.$closeButton.on('click', function () {
        return _this2.dialog.hide();
      });
      this.elements.$header.append(this.elements.$title, this.elements.$titleBadge, this.elements.$closeButton);
    }
  }, {
    key: "getElements",
    value: function getElements() {
      return this.elements;
    }
  }, {
    key: "updateElements",
    value: function updateElements(elements) {
      this.elements = elements;
    }
  }, {
    key: "hideProTag",
    value: function hideProTag() {
      var elements = this.getElements();
      elements.$titleBadge.css('display', 'none');
      if (!elements.$freeBadgeContainer) {
        elements.$freeBadgeContainer = jQuery('<div>', {
          class: 'e-free-badge-container'
        });
        elements.$freeBadge = jQuery('<span>', {
          class: 'e-free-badge'
        });
        elements.$freeBadge.text('Free');
        elements.$freeBadgeContainer.append(elements.$freeBadge);
        elements.$titleBadge.after(elements.$freeBadgeContainer);
        this.updateElements(elements);
      }
      var $actionButton = this.dialog.getElements('action');
      $actionButton.removeClass('go-pro');
      $actionButton.css('background-color', 'var(--e-a-btn-bg-info)');
    }
  }, {
    key: "resetProTag",
    value: function resetProTag() {
      var _elements$$freeBadgeC;
      var elements = this.getElements();
      elements.$titleBadge.css('display', 'inline-block');
      if ((_elements$$freeBadgeC = elements.$freeBadgeContainer) !== null && _elements$$freeBadgeC !== void 0 && _elements$$freeBadgeC.remove) {
        elements.$freeBadgeContainer.remove();
      }
      elements.$freeBadgeContainer = null;
      elements.$freeBadge = null;
      this.updateElements(elements);
      this.dialog.getElements('action').addClass('go-pro');
    }
  }, {
    key: "createButton",
    value: function createButton(options) {
      var $actionButton = this.dialog.getElements('action');
      if ($actionButton) {
        $actionButton.remove();
      }
      this.dialog.addButton({
        name: 'action',
        text: options.text,
        classes: options.classes.join(' '),
        callback: function callback() {
          return open(options.url, '_blank');
        }
      });
    }
  }, {
    key: "parseOptions",
    value: function parseOptions() {
      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      return _objectSpread(_objectSpread(_objectSpread({}, this.defaultOptions), options), {}, {
        position: _objectSpread(_objectSpread({}, this.defaultOptions.position), (options === null || options === void 0 ? void 0 : options.position) || {}),
        actionButton: _objectSpread(_objectSpread({}, this.defaultOptions.actionButton), (options === null || options === void 0 ? void 0 : options.actionButton) || {})
      });
    }
  }, {
    key: "showDialog",
    value: function showDialog() {
      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      if (!this.dialog) {
        this.initDialog();
      }
      options = this.parseOptions(options);
      this.createButton(options.actionButton);
      this.elements.$title.text(options.title);
      var inlineStartKey = elementorCommon.config.isRTL ? 'left' : 'right';
      this.dialog.setMessage(options.content).setSettings('position', {
        of: options.targetElement,
        at: "".concat(inlineStartKey).concat(options.position.inlineStart || '', " top").concat(options.position.blockStart || '')
      });
      if (options.hideProTag) {
        this.hideProTag();
      } else {
        this.resetProTag();
      }
      return this.dialog.show();
    }
  }]);
}(elementorModules.Module);

/***/ }),

/***/ "../assets/dev/js/editor/utils/query-params.js":
/*!*****************************************************!*\
  !*** ../assets/dev/js/editor/utils/query-params.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.getQueryParam = getQueryParam;
exports.removeQueryParam = removeQueryParam;
exports.setQueryParam = setQueryParam;
function getQueryParam(name) {
  var queryParams = new URLSearchParams(window.location.search);
  return queryParams.get(name);
}
function setQueryParam(name, value) {
  var url = new URL(window.location.href);
  if (null === value) {
    url.searchParams.delete(name);
  } else {
    url.searchParams.set(name, value);
  }
  history.replaceState({}, '', url);
}
function removeQueryParam(name) {
  setQueryParam(name, null);
}

/***/ }),

/***/ "../assets/dev/js/editor/utils/select2.js":
/*!************************************************!*\
  !*** ../assets/dev/js/editor/utils/select2.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var Select2 = exports["default"] = /*#__PURE__*/function (_elementorModules$Vie) {
  function Select2() {
    (0, _classCallCheck2.default)(this, Select2);
    return _callSuper(this, Select2, arguments);
  }
  (0, _inherits2.default)(Select2, _elementorModules$Vie);
  return (0, _createClass2.default)(Select2, [{
    key: "getDefaultSettings",
    value: function getDefaultSettings() {
      return {
        selectors: {
          plusButton: '.select2-selection__e-plus-button',
          // The select2InlineSearch selector can not be changed.
          select2InlineSearch: '.select2-selection__rendered .select2-search--inline'
        },
        classes: {
          plusButton: 'select2-selection__e-plus-button',
          // The select2Choice class name can not be changed to get the select2 choice style.
          select2Choice: 'select2-selection__choice'
        }
      };
    }
  }, {
    key: "isAllSelected",
    value: function isAllSelected() {
      var _this = this;
      var isAllSelected = false;
      this.select2.dataAdapter.query({}, function (data) {
        var totalOptionsCount = data.results.length,
          currentSelectionsCount = _this.elements.$element.select2('data').length;
        if (currentSelectionsCount === totalOptionsCount) {
          isAllSelected = true;
        }
      });
      return isAllSelected;
    }
  }, {
    key: "addPlusButton",
    value: function addPlusButton() {
      var _this$getSettings = this.getSettings('classes'),
        plusButton = _this$getSettings.plusButton,
        select2Choice = _this$getSettings.select2Choice,
        plusButtonClasses = [select2Choice, plusButton].join(' ');
      this.elements.$plusButton = jQuery('<li>', {
        class: plusButtonClasses
      }).text('+');
      this.elements.$plusButton.insertBefore(this.elements.$inlineSearch);
    }
  }, {
    key: "togglePlusButton",
    value: function togglePlusButton() {
      if (this.isAllSelected()) {
        if (this.elements.$plusButton) {
          this.elements.$plusButton.remove();
        }
      } else {
        this.addPlusButton();
      }
    }
  }, {
    key: "addSelect2Events",
    value: function addSelect2Events() {
      var _this2 = this;
      this.select2.on('select', function () {
        return _this2.onSelectionChange();
      });
      this.select2.on('unselect', function () {
        return _this2.onSelectionChange();
      });
    }
  }, {
    key: "onSelectionChange",
    value: function onSelectionChange() {
      this.togglePlusButton();
    }
  }, {
    key: "extendBaseFunctionality",
    value: function extendBaseFunctionality() {
      var config = this.select2.options.options;

      // When select2 has ajax the selected items re-render multiple times and deletes the injected plus-button.
      if (config.multiple && !config.ajax) {
        this.togglePlusButton();
        this.addSelect2Events();
      }
    }
  }, {
    key: "initSelect2Elements",
    value: function initSelect2Elements() {
      var select2InlineSearch = this.getSettings('selectors.select2InlineSearch');
      this.elements.$element = this.select2.$element;
      this.elements.$container = this.select2.$container;
      this.elements.$inlineSearch = this.elements.$container.find(select2InlineSearch);
    }
  }, {
    key: "destroy",
    value: function destroy() {
      this.elements.$element.select2('destroy');
    }
  }, {
    key: "onInit",
    value: function onInit() {
      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }
      _superPropGet(Select2, "onInit", this, 3)(args);
      var _this$getSettings2 = this.getSettings(),
        $element = _this$getSettings2.$element,
        options = _this$getSettings2.options;
      this.select2 = $element.select2(options).data('select2');
      this.initSelect2Elements();
      this.extendBaseFunctionality();
    }
  }]);
}(elementorModules.ViewModule);

/***/ }),

/***/ "../assets/dev/js/editor/utils/stylesheet.js":
/*!***************************************************!*\
  !*** ../assets/dev/js/editor/utils/stylesheet.js ***!
  \***************************************************/
/***/ ((module) => {

"use strict";


(function ($) {
  var _Stylesheet = function Stylesheet() {
    var self = this,
      rules = {},
      rawCSS = {},
      devices = {};
    var queryToHash = function queryToHash(query) {
      var hash = [];
      $.each(query, function (endPoint) {
        hash.push(endPoint + '_' + this);
      });
      return hash.join('-');
    };
    var hashToQuery = function hashToQuery(hash) {
      var query = {};
      hash = hash.split('-').filter(String);
      hash.forEach(function (singleQuery) {
        // Split {max}/{min}_{device name} to separate strings
        var queryParts = singleQuery.split(/_(.+)/),
          endPoint = queryParts[0],
          deviceName = queryParts[1];
        query[endPoint] = 'max' === endPoint ? devices[deviceName] : elementorFrontend.breakpoints.getDeviceMinBreakpoint(deviceName);
      });
      return query;
    };
    var addQueryHash = function addQueryHash(queryHash) {
      rules[queryHash] = {};
      var hashes = Object.keys(rules);
      if (hashes.length < 2) {
        return;
      }

      // Sort the devices from narrowest to widest
      hashes.sort(function (a, b) {
        var _aQuery$max, _bQuery$max;
        if ('all' === a) {
          return -1;
        }
        if ('all' === b) {
          return 1;
        }
        var aQuery = hashToQuery(a),
          bQuery = hashToQuery(b);

        // Calculation should be either `max - max` or `min - min`.
        // Caused when the `min_affected_device` is equal to the current responsive control.
        // (e.g. `min_affected_device = tablet`, and the user is changing a tablet control).
        if (aQuery.max && bQuery.max) {
          return bQuery.max - aQuery.max;
        }
        if (aQuery.min && bQuery.min) {
          return bQuery.min - aQuery.min;
        }

        // If one of the queries has only `min` and the other has only `max`.
        var aQueryValue = (_aQuery$max = aQuery.max) !== null && _aQuery$max !== void 0 ? _aQuery$max : aQuery.min;
        var bQueryValue = (_bQuery$max = bQuery.max) !== null && _bQuery$max !== void 0 ? _bQuery$max : bQuery.min;
        return bQueryValue - aQueryValue;
      });
      var sortedRules = {};
      hashes.forEach(function (deviceName) {
        sortedRules[deviceName] = rules[deviceName];
      });
      rules = sortedRules;
    };
    var getQueryHashStyleFormat = function getQueryHashStyleFormat(queryHash) {
      var query = hashToQuery(queryHash),
        styleFormat = [];
      $.each(query, function (endPoint) {
        styleFormat.push('(' + endPoint + '-width:' + this + 'px)');
      });
      return '@media' + styleFormat.join(' and ');
    };
    this.addDevice = function (newDeviceName, deviceValue) {
      devices[newDeviceName] = deviceValue;
      var deviceNames = Object.keys(devices);
      if (deviceNames.length < 2) {
        return self;
      }

      // Sort the devices from narrowest to widest
      deviceNames.sort(function (a, b) {
        return devices[a] - devices[b];
      });
      var sortedDevices = {};
      deviceNames.forEach(function (deviceName) {
        sortedDevices[deviceName] = devices[deviceName];
      });
      devices = sortedDevices;
      return self;
    };
    this.addRawCSS = function (key, css) {
      rawCSS[key] = css;
    };
    this.addRules = function (selector, styleRules, query) {
      var queryHash = 'all';
      if (!_.isEmpty(query)) {
        queryHash = queryToHash(query);
      }
      if (!rules[queryHash]) {
        addQueryHash(queryHash);
      }
      if (!styleRules) {
        var parsedRules = selector.match(/[^{]+\{[^}]+}/g);
        $.each(parsedRules, function () {
          var parsedRule = this.match(/([^{]+)\{([^}]+)}/);
          if (parsedRule) {
            self.addRules(parsedRule[1].trim(), parsedRule[2].trim(), query);
          }
        });
        return;
      }
      if (!rules[queryHash][selector]) {
        rules[queryHash][selector] = {};
      }
      if ('string' === typeof styleRules) {
        styleRules = styleRules.split(';').filter(String);
        var orderedRules = {};
        try {
          $.each(styleRules, function () {
            var property = this.split(/:(.*)?/);
            orderedRules[property[0].trim()] = property[1].trim().replace(';', '');
          });
        } catch (error) {
          // At least one of the properties is incorrect
          return;
        }
        styleRules = orderedRules;
      }
      $.extend(rules[queryHash][selector], styleRules);
      return self;
    };
    this.getRules = function () {
      return rules;
    };
    this.empty = function () {
      rules = {};
      rawCSS = {};
    };
    this.toString = function () {
      var styleText = '';
      $.each(rules, function (queryHash) {
        var deviceText = _Stylesheet.parseRules(this);
        if ('all' !== queryHash) {
          deviceText = getQueryHashStyleFormat(queryHash) + '{' + deviceText + '}';
        }
        styleText += deviceText;
      });
      $.each(rawCSS, function () {
        styleText += this;
      });
      return styleText;
    };
  };
  _Stylesheet.parseRules = function (rules) {
    var parsedRules = '';
    $.each(rules, function (selector) {
      var selectorContent = _Stylesheet.parseProperties(this);
      if (selectorContent) {
        parsedRules += selector + '{' + selectorContent + '}';
      }
    });
    return parsedRules;
  };
  _Stylesheet.parseProperties = function (properties) {
    var parsedProperties = '';
    $.each(properties, function (propertyKey) {
      if (this) {
        parsedProperties += propertyKey + ':' + this + ';';
      }
    });
    return parsedProperties;
  };
  module.exports = _Stylesheet;
})(jQuery);

/***/ }),

/***/ "../assets/dev/js/editor/utils/v4-flexbox-preset.js":
/*!**********************************************************!*\
  !*** ../assets/dev/js/editor/utils/v4-flexbox-preset.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.createV4FlexboxFromPreset = createV4FlexboxFromPreset;
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var V4_ELEMENT_TYPE = 'e-flexbox';
var DIRECTION_ROW = 'row';
var DIRECTION_COLUMN = 'column';
var SIZES_MAP = {
  33: '33.3333',
  66: '66.6666'
};
var sizeProp = function sizeProp(size) {
  var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'px';
  return {
    $$type: 'size',
    value: {
      size: size,
      unit: unit
    }
  };
};
var stringProp = function stringProp(value) {
  return {
    $$type: 'string',
    value: value
  };
};
var widthPercent = function widthPercent(size) {
  var _SIZES_MAP$size;
  return {
    width: sizeProp(Number((_SIZES_MAP$size = SIZES_MAP[size]) !== null && _SIZES_MAP$size !== void 0 ? _SIZES_MAP$size : size), '%')
  };
};
var FULL_WIDTH_MOBILE = {
  width: sizeProp(100, '%')
};
var ROW = {
  'flex-direction': stringProp(DIRECTION_ROW)
};
var COLUMN = {
  'flex-direction': stringProp(DIRECTION_COLUMN)
};
var ROW_WRAP = _objectSpread(_objectSpread({}, ROW), {}, {
  'flex-wrap': stringProp('wrap')
});
var widthChild = function widthChild(size) {
  return {
    parent: _objectSpread(_objectSpread({}, COLUMN), widthPercent(size)),
    parentMobile: FULL_WIDTH_MOBILE,
    children: []
  };
};
var bareChild = function bareChild() {
  return {
    parent: COLUMN,
    children: []
  };
};
var rowOfSizes = function rowOfSizes(sizes) {
  var sum = sizes.reduce(function (s, n) {
    return s + Number(n);
  }, 0);
  return {
    parent: sum > 100 ? ROW_WRAP : ROW,
    children: sizes.map(widthChild)
  };
};
var PRESET_DEFINITIONS = {
  c100: {
    parent: COLUMN,
    children: []
  },
  r100: {
    parent: ROW,
    children: []
  },
  'c100-c50-50': {
    parent: ROW,
    children: [widthChild('50'), {
      parent: _objectSpread(_objectSpread(_objectSpread({}, COLUMN), widthPercent('50')), {}, {
        padding: sizeProp(0, 'px')
      }),
      parentMobile: FULL_WIDTH_MOBILE,
      children: [bareChild(), bareChild()]
    }]
  }
};
function getPresetDefinition(preset) {
  if (PRESET_DEFINITIONS[preset]) {
    return PRESET_DEFINITIONS[preset];
  }
  return rowOfSizes(preset.split('-'));
}
function buildModel(cssProps, mobileProps) {
  var model = {
    id: elementorCommon.helpers.getUniqueId(),
    elType: V4_ELEMENT_TYPE,
    elements: []
  };
  var hasBase = cssProps && Object.keys(cssProps).length > 0;
  var hasMobile = mobileProps && Object.keys(mobileProps).length > 0;
  if (!hasBase && !hasMobile) {
    return model;
  }
  var styleId = "e-".concat(elementorCommon.helpers.getUniqueId());
  var variants = [{
    meta: {
      breakpoint: 'desktop',
      state: null
    },
    props: cssProps !== null && cssProps !== void 0 ? cssProps : {},
    custom_css: null
  }];
  if (hasMobile) {
    variants.push({
      meta: {
        breakpoint: 'mobile',
        state: null
      },
      props: mobileProps,
      custom_css: null
    });
  }
  model.styles = (0, _defineProperty2.default)({}, styleId, {
    id: styleId,
    label: 'local',
    type: 'class',
    variants: variants
  });
  model.settings = {
    classes: {
      $$type: 'classes',
      value: [styleId]
    }
  };
  return model;
}
function buildTreeModel(definition) {
  var parentProps = definition.parent,
    parentMobile = definition.parentMobile,
    _definition$children = definition.children,
    children = _definition$children === void 0 ? [] : _definition$children;
  var model = buildModel(parentProps, parentMobile);
  model.elements = children.map(function (childDef) {
    return buildTreeModel(childDef);
  });
  return model;
}
function createFlexboxElement(target, model, options) {
  var _elementorModules;
  var containerClass = (_elementorModules = elementorModules) === null || _elementorModules === void 0 || (_elementorModules = _elementorModules.editor) === null || _elementorModules === void 0 ? void 0 : _elementorModules.Container;
  var getDocumentUtils = function getDocumentUtils() {
    var _$e, _$e$get;
    return (_$e = $e) === null || _$e === void 0 || (_$e = _$e.components) === null || _$e === void 0 || (_$e$get = _$e.get) === null || _$e$get === void 0 || (_$e$get = _$e$get.call(_$e, 'document')) === null || _$e$get === void 0 ? void 0 : _$e$get.utils;
  };
  var getContainerById = function getContainerById(id) {
    var _getDocumentUtils$fin, _getDocumentUtils, _getDocumentUtils$fin2;
    return (_getDocumentUtils$fin = (_getDocumentUtils = getDocumentUtils()) === null || _getDocumentUtils === void 0 || (_getDocumentUtils$fin2 = _getDocumentUtils.findContainerById) === null || _getDocumentUtils$fin2 === void 0 ? void 0 : _getDocumentUtils$fin2.call(_getDocumentUtils, id)) !== null && _getDocumentUtils$fin !== void 0 ? _getDocumentUtils$fin : null;
  };
  var isContainerInstance = function isContainerInstance(candidate) {
    var _candidate$constructo, _containerClass$proto;
    if (!containerClass || !candidate) {
      return false;
    }
    return candidate instanceof containerClass || ((_candidate$constructo = candidate.constructor) === null || _candidate$constructo === void 0 ? void 0 : _candidate$constructo.name) === ((_containerClass$proto = containerClass.prototype) === null || _containerClass$proto === void 0 ? void 0 : _containerClass$proto[Symbol.toStringTag]);
  };
  var resolveContainer = function resolveContainer(candidate) {
    var _candidate$lookup;
    if (!containerClass) {
      return candidate;
    }
    if (isContainerInstance(candidate)) {
      return candidate;
    }
    var lookedUp = candidate === null || candidate === void 0 || (_candidate$lookup = candidate.lookup) === null || _candidate$lookup === void 0 ? void 0 : _candidate$lookup.call(candidate);
    if (isContainerInstance(lookedUp)) {
      return lookedUp;
    }
    var byId = candidate !== null && candidate !== void 0 && candidate.id ? getContainerById(candidate.id) : null;
    if (isContainerInstance(byId)) {
      return byId;
    }
    return null;
  };
  var resolvedTarget = resolveContainer(target);
  if (!resolvedTarget && containerClass && target !== null && target !== void 0 && target.id) {
    var _getDocumentUtils2, _getDocumentUtils2$ad;
    (_getDocumentUtils2 = getDocumentUtils()) === null || _getDocumentUtils2 === void 0 || (_getDocumentUtils2$ad = _getDocumentUtils2.addModelToParent) === null || _getDocumentUtils2$ad === void 0 || _getDocumentUtils2$ad.call(_getDocumentUtils2, target.id, model, options);
    var inserted = getContainerById(model.id);
    if (inserted) {
      return inserted;
    }
    return {
      id: model.id,
      lookup: function lookup() {
        return getContainerById(model.id);
      }
    };
  }
  var created = $e.run('document/elements/create', {
    container: resolvedTarget !== null && resolvedTarget !== void 0 ? resolvedTarget : target,
    model: model,
    options: options
  });
  var resolvedCreated = resolveContainer(created);
  if (resolvedCreated || !containerClass) {
    return resolvedCreated !== null && resolvedCreated !== void 0 ? resolvedCreated : created;
  }
  return {
    id: model.id,
    lookup: function lookup() {
      return getContainerById(model.id);
    }
  };
}
function buildNode(definition, target, options, isRoot) {
  var _target$lookup, _target$lookup2;
  var parentProps = definition.parent,
    parentMobile = definition.parentMobile,
    children = definition.children;
  var reuseTarget = isRoot && false === options.createWrapper;
  var node = reuseTarget ? (_target$lookup = target === null || target === void 0 || (_target$lookup2 = target.lookup) === null || _target$lookup2 === void 0 ? void 0 : _target$lookup2.call(target)) !== null && _target$lookup !== void 0 ? _target$lookup : target : createFlexboxElement(target, buildModel(parentProps, parentMobile), isRoot ? options : {
    edit: false
  });
  children.forEach(function (childDef) {
    var _childDef$children;
    var hasNestedChildren = !!((_childDef$children = childDef.children) !== null && _childDef$children !== void 0 && _childDef$children.length);
    if (hasNestedChildren) {
      createFlexboxElement(node, buildTreeModel(childDef), {
        edit: false
      });
      return;
    }
    buildNode(childDef, node, options, false);
  });
  return node;
}
function createV4FlexboxFromPreset(preset) {
  var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : elementor.getPreviewContainer();
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
  var historyId = $e.internal('document/history/start-log', {
    type: 'add',
    title: __('Container', 'elementor')
  });
  var result;
  try {
    var definition = getPresetDefinition(preset);
    result = buildNode(definition, target, options, true);
    $e.internal('document/history/end-log', {
      id: historyId
    });
  } catch (e) {
    $e.internal('document/history/delete-log', {
      id: historyId
    });
  }
  return result;
}

/***/ }),

/***/ "../assets/dev/js/editor/views/add-section/base.js":
/*!*********************************************************!*\
  !*** ../assets/dev/js/editor/views/add-section/base.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 _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 _containerHelper = _interopRequireDefault(__webpack_require__(/*! elementor-editor-utils/container-helper */ "../assets/dev/js/editor/utils/container-helper.js"));
var _environment = _interopRequireDefault(__webpack_require__(/*! elementor-common/utils/environment */ "../core/common/assets/js/utils/environment.js"));
var _editorOneEvents = __webpack_require__(/*! elementor-editor-utils/editor-one-events */ "../assets/dev/js/editor/utils/editor-one-events.js");
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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')} Container
 */
var AddSectionBase = /*#__PURE__*/function (_Marionette$ItemView) {
  function AddSectionBase() {
    (0, _classCallCheck2.default)(this, AddSectionBase);
    return _callSuper(this, AddSectionBase, arguments);
  }
  (0, _inherits2.default)(AddSectionBase, _Marionette$ItemView);
  return (0, _createClass2.default)(AddSectionBase, [{
    key: "template",
    value: function template() {
      return Marionette.TemplateCache.get('#tmpl-elementor-add-section');
    }
  }, {
    key: "attributes",
    value: function attributes() {
      return {
        'aria-label': __('Add new layout element', 'elementor'),
        'data-view': AddSectionBase.VIEW_CHOOSE_ACTION
      };
    }
  }, {
    key: "ui",
    value: function ui() {
      return {
        addNewSection: '.elementor-add-new-section',
        closeButton: '.elementor-add-section-close',
        backButton: '.elementor-add-section-back',
        addSectionButton: '.elementor-add-section-button',
        addTemplateButton: '.elementor-add-template-button',
        selectPreset: '.elementor-select-preset',
        presets: '.elementor-preset',
        flexPresetButton: '.flex-preset-button',
        gridPresetButton: '.grid-preset-button',
        chooseFlexPreset: '.e-con-select-preset-flex .e-con-preset',
        chooseGridPreset: '.e-con-select-preset-grid .e-con-preset'
      };
    }
  }, {
    key: "events",
    value: function events() {
      var _this = this;
      return {
        'click @ui.addSectionButton': 'onAddSectionButtonClick',
        'click @ui.addTemplateButton': 'onAddTemplateButtonClick',
        'click @ui.closeButton': 'onCloseButtonClick',
        'click @ui.backButton': function click_UiBackButton() {
          return _this.setView(AddSectionBase.getSelectType());
        },
        'click @ui.presets': 'onPresetSelected',
        'click @ui.flexPresetButton': function click_UiFlexPresetButton() {
          return _this.setView(AddSectionBase.VIEW_CONTAINER_FLEX_PRESET);
        },
        'click @ui.gridPresetButton': function click_UiGridPresetButton() {
          return _this.setView(AddSectionBase.VIEW_CONTAINER_GRID_PRESET);
        },
        'click @ui.chooseFlexPreset': 'onFlexPresetSelected',
        'click @ui.chooseGridPreset': 'onGridPresetSelected'
      };
    }
  }, {
    key: "behaviors",
    value: function behaviors() {
      var behaviors = {
        contextMenu: {
          behaviorClass: __webpack_require__(/*! elementor-behaviors/context-menu */ "../assets/dev/js/editor/elements/views/behaviors/context-menu.js"),
          groups: this.getContextMenuGroups(),
          eventTargets: ['.elementor-add-section-inner']
        }
      };
      return elementor.hooks.applyFilters('views/add-section/behaviors', behaviors, this);
    }
  }, {
    key: "tagName",
    value: function tagName() {
      return 'section';
    }
  }, {
    key: "className",
    value: function className() {
      return 'elementor-add-section elementor-visible-desktop';
    }
  }, {
    key: "setView",
    value: function setView(view) {
      this.$el.attr('data-view', view);
    }
  }, {
    key: "showSelectPresets",
    value: function showSelectPresets() {
      this.setView(AddSectionBase.getSelectType());
    }
  }, {
    key: "closeSelectPresets",
    value: function closeSelectPresets() {
      this.setView(AddSectionBase.VIEW_CHOOSE_ACTION);
    }
  }, {
    key: "getTemplatesModalOptions",
    value: function getTemplatesModalOptions() {
      return {
        importOptions: {
          at: this.getOption('at')
        }
      };
    }
  }, {
    key: "getContextMenuGroups",
    value: function getContextMenuGroups() {
      var _this2 = this;
      var hasContent = function hasContent() {
        return elementor.elements.length > 0;
      };
      var controlSign = _environment.default.mac ? '&#8984;' : '^';
      return [{
        name: 'paste',
        actions: [{
          name: 'paste',
          title: __('Paste', 'elementor'),
          shortcut: controlSign + '+V',
          isEnabled: function isEnabled() {
            return $e.components.get('document/elements').utils.isPasteEnabled(elementor.getPreviewContainer());
          },
          callback: function callback() {
            return $e.run('document/ui/paste', {
              container: elementor.getPreviewContainer(),
              options: {
                at: _this2.getOption('at'),
                rebuild: true
              },
              onAfter: function onAfter() {
                return _this2.onAfterPaste();
              }
            });
          }
        }, {
          name: 'paste_area',
          icon: 'eicon-import-export',
          title: __('Paste from other site', 'elementor'),
          callback: function callback() {
            return $e.run('document/elements/paste-area', {
              container: elementor.getPreviewContainer(),
              options: {
                at: _this2.getOption('at'),
                rebuild: true
              }
            });
          }
        }]
      }, {
        name: 'content',
        actions: [{
          name: 'copy_all_content',
          title: __('Copy All Content', 'elementor'),
          isEnabled: hasContent,
          callback: function callback() {
            return $e.run('document/elements/copy-all');
          }
        }, {
          name: 'delete_all_content',
          title: __('Delete All Content', 'elementor'),
          isEnabled: hasContent,
          callback: function callback() {
            return $e.run('document/elements/empty');
          }
        }]
      }];
    }
  }, {
    key: "onAddSectionButtonClick",
    value: function onAddSectionButtonClick() {
      this.showSelectPresets();
    }
  }, {
    key: "onAddTemplateButtonClick",
    value: function onAddTemplateButtonClick() {
      _editorOneEvents.EditorOneEventManager.sendCanvasEmptyBoxAction({
        targetName: 'e_library'
      });
      $e.run('library/open', this.getTemplatesModalOptions());
    }
  }, {
    key: "onRender",
    value: function onRender() {
      this.$el.html5Droppable(_objectSpread({
        axis: ['vertical'],
        groups: ['elementor-element'],
        placeholder: false,
        currentElementClass: 'elementor-html5dnd-current-element',
        hasDraggingOnChildClass: 'elementor-dragging-on-child'
      }, this.getDroppableOptions()));
    }
  }, {
    key: "getDroppableOptions",
    value: function getDroppableOptions() {
      var _this3 = this;
      return {
        isDroppingAllowed: function isDroppingAllowed() {
          var _elementor$channels$e;
          return !((_elementor$channels$e = elementor.channels.editor.request('element:dragged')) !== null && _elementor$channels$e !== void 0 && (_elementor$channels$e = _elementor$channels$e.el) !== null && _elementor$channels$e !== void 0 && (_elementor$channels$e = _elementor$channels$e.dataset) !== null && _elementor$channels$e !== void 0 && _elementor$channels$e.id);
        },
        onDropping: function onDropping(side, event) {
          elementor.getPreviewView().onDrop(event, {
            side: side,
            at: _this3.getOption('at')
          });
        }
      };
    }
  }, {
    key: "onGridPresetSelected",
    value: function onGridPresetSelected(event) {
      this.closeSelectPresets();
      var selectedStructure = event.currentTarget.dataset.structure,
        parsedStructure = elementor.presetsFactory.getParsedGridStructure(selectedStructure),
        isAddedAboveAnotherContainer = !!this.options.at || 0 === this.options.at;
      _editorOneEvents.EditorOneEventManager.sendCanvasEmptyBoxAction({
        targetName: 'add_container',
        metadata: {
          container_type: 'grid',
          structure_type: selectedStructure
        },
        containerCreated: true
      });
      var newContainer = _containerHelper.default.createContainer({
        container_type: _containerHelper.default.CONTAINER_TYPE_GRID,
        grid_columns_grid: {
          unit: 'fr',
          size: parsedStructure.columns
        },
        grid_rows_grid: {
          unit: 'fr',
          size: parsedStructure.rows
        },
        grid_rows_grid_mobile: {
          unit: 'fr',
          size: parsedStructure.rows
        }
      }, elementor.getPreviewContainer(), this.options, {
        title: __('Grid', 'elementor'),
        custom: {
          isPreset: true,
          preset_settings: {
            presetIcon: 'eicon-container-grid'
          }
        }
      });
      if (isAddedAboveAnotherContainer) {
        this.destroy();
      }
      return newContainer;
    }
  }, {
    key: "onPresetSelected",
    value: function onPresetSelected(event) {
      this.closeSelectPresets();
      var selectedStructure = event.currentTarget.dataset.structure,
        parsedStructure = elementor.presetsFactory.getParsedStructure(selectedStructure);
      $e.run('document/elements/create', {
        model: {
          elType: 'section'
        },
        container: elementor.getPreviewContainer(),
        columns: parsedStructure.columnsCount,
        structure: selectedStructure,
        options: Object.assign({}, this.options)
      });
    }

    /**
     * Create a Container preset when the user chooses a preset.
     *
     * @param {MouseEvent} e - Click event.
     *
     * @return {Container} container
     */
  }, {
    key: "onFlexPresetSelected",
    value: function onFlexPresetSelected(e) {
      this.closeSelectPresets();
      var preset = e.currentTarget.dataset.preset;
      _editorOneEvents.EditorOneEventManager.sendCanvasEmptyBoxAction({
        targetName: 'add_container',
        metadata: {
          container_type: 'flexbox',
          structure_type: preset
        },
        containerCreated: true
      });
      return _containerHelper.default.createContainerFromPreset(preset, elementor.getPreviewContainer(), this.options);
    }
  }, {
    key: "onDropping",
    value: function onDropping() {
      elementor.getPreviewView().addElementFromPanel();
    }
  }, {
    key: "onAfterPaste",
    value: function onAfterPaste() {}
  }], [{
    key: "getSelectType",
    value: function getSelectType() {
      return AddSectionBase.IS_CONTAINER_ACTIVE ? AddSectionBase.getSelectTypePreset() : 'select-preset';
    }
  }, {
    key: "getSelectTypePreset",
    value: function getSelectTypePreset() {
      return AddSectionBase.IS_CONTAINER_ACTIVE ? 'select-type' : 'select-container-preset';
    }
  }]);
}(Marionette.ItemView);
(0, _defineProperty2.default)(AddSectionBase, "IS_CONTAINER_ACTIVE", !!elementorCommon.config.experimentalFeatures.container);
// Views.
(0, _defineProperty2.default)(AddSectionBase, "VIEW_CHOOSE_ACTION", 'choose-action');
(0, _defineProperty2.default)(AddSectionBase, "VIEW_CONTAINER_FLEX_PRESET", 'select-container-preset');
(0, _defineProperty2.default)(AddSectionBase, "VIEW_CONTAINER_GRID_PRESET", 'select-container-preset-grid');
var _default = exports["default"] = AddSectionBase;

/***/ }),

/***/ "../assets/dev/js/editor/views/add-section/independent.js":
/*!****************************************************************!*\
  !*** ../assets/dev/js/editor/views/add-section/independent.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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../assets/dev/js/editor/views/add-section/base.js"));
var _editorOneEvents = __webpack_require__(/*! elementor-editor-utils/editor-one-events */ "../assets/dev/js/editor/utils/editor-one-events.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; })(); }
var AddSectionView = exports["default"] = /*#__PURE__*/function (_BaseAddSectionView) {
  function AddSectionView() {
    (0, _classCallCheck2.default)(this, AddSectionView);
    return _callSuper(this, AddSectionView, arguments);
  }
  (0, _inherits2.default)(AddSectionView, _BaseAddSectionView);
  return (0, _createClass2.default)(AddSectionView, [{
    key: "id",
    get: function get() {
      return 'elementor-add-new-section';
    }
  }, {
    key: "onCloseButtonClick",
    value: function onCloseButtonClick() {
      _editorOneEvents.EditorOneEventManager.sendCanvasEmptyBoxAction({
        targetName: 'close',
        containerCreated: false
      });
      this.closeSelectPresets();
    }
  }]);
}(_base.default);

/***/ }),

/***/ "../assets/dev/js/editor/views/add-section/inline.js":
/*!***********************************************************!*\
  !*** ../assets/dev/js/editor/views/add-section/inline.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../assets/dev/js/editor/views/add-section/base.js"));
var _editorOneEvents = __webpack_require__(/*! elementor-editor-utils/editor-one-events */ "../assets/dev/js/editor/utils/editor-one-events.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var AddSectionView = /*#__PURE__*/function (_BaseAddSectionView) {
  function AddSectionView() {
    (0, _classCallCheck2.default)(this, AddSectionView);
    return _callSuper(this, AddSectionView, arguments);
  }
  (0, _inherits2.default)(AddSectionView, _BaseAddSectionView);
  return (0, _createClass2.default)(AddSectionView, [{
    key: "className",
    value: function className() {
      return _superPropGet(AddSectionView, "className", this, 3)([]) + ' elementor-add-section-inline';
    }
  }, {
    key: "fadeToDeath",
    value: function fadeToDeath() {
      var self = this;
      self.$el.slideUp(function () {
        self.destroy();
      });
    }
  }, {
    key: "onAfterPaste",
    value: function onAfterPaste() {
      _superPropGet(AddSectionView, "onAfterPaste", this, 3)([]);
      this.destroy();
    }
  }, {
    key: "onCloseButtonClick",
    value: function onCloseButtonClick() {
      _editorOneEvents.EditorOneEventManager.sendCanvasEmptyBoxAction({
        targetName: 'close',
        containerCreated: false
      });
      this.fadeToDeath();
    }
  }, {
    key: "onPresetSelected",
    value: function onPresetSelected(event) {
      _superPropGet(AddSectionView, "onPresetSelected", this, 3)([event]);
      this.destroy();
    }
  }, {
    key: "onFlexPresetSelected",
    value: function onFlexPresetSelected(e) {
      _superPropGet(AddSectionView, "onFlexPresetSelected", this, 3)([e]);
      this.destroy();
    }
  }, {
    key: "onAddTemplateButtonClick",
    value: function onAddTemplateButtonClick() {
      _superPropGet(AddSectionView, "onAddTemplateButtonClick", this, 3)([]);
      this.destroy();
    }
  }, {
    key: "getDroppableOptions",
    value: function getDroppableOptions() {
      var _this = this;
      return {
        onDropping: function onDropping(side, event) {
          _superPropGet(AddSectionView, "getDroppableOptions", _this, 3)([]).onDropping(side, event);
          _this.destroy();
        }
      };
    }
  }, {
    key: "onDropping",
    value: function onDropping() {
      var droppableOptions = this.getDroppableOptions();
      _superPropGet(AddSectionView, "onDropping", this, 3)([]);
      if (droppableOptions.onDropping) {
        droppableOptions.onDropping();
      }
    }
  }]);
}(_base.default);
var _default = exports["default"] = AddSectionView;

/***/ }),

/***/ "../assets/dev/js/editor/views/base-container.js":
/*!*******************************************************!*\
  !*** ../assets/dev/js/editor/views/base-container.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 _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
var _containerHelper = _interopRequireDefault(__webpack_require__(/*! elementor-editor-utils/container-helper */ "../assets/dev/js/editor/utils/container-helper.js"));
/**
 * @typedef {import('elementor/assets/lib/backbone/backbone.marionette')} Marionette
 * @name BaseContainer
 * @augments {Marionette.CompositeView}
 */
module.exports = Marionette.CompositeView.extend({
  templateHelpers: function templateHelpers() {
    return {
      view: this
    };
  },
  getBehavior: function getBehavior(name) {
    return this._behaviors[Object.keys(this.behaviors()).indexOf(name)];
  },
  initialize: function initialize() {
    this.collection = this.model.get('elements');
  },
  addChildModel: function addChildModel(model, options) {
    return this.collection.add(model, options, true);
  },
  addElement: function addElement(data, options) {
    if (this.isCollectionFilled()) {
      return;
    }
    options = jQuery.extend({
      trigger: false,
      edit: true,
      onBeforeAdd: null,
      onAfterAdd: null
    }, options);
    var childTypes = this.getChildType();
    var newItem, elType;
    if (data instanceof Backbone.Model) {
      newItem = data;
      elType = newItem.get('elType');
    } else {
      newItem = {
        id: elementorCommon.helpers.getUniqueId(),
        elType: childTypes[0],
        settings: {},
        elements: []
      };
      if (data) {
        jQuery.extend(newItem, data);
      }
      elType = newItem.elType;
    }
    if (-1 === childTypes.indexOf(elType)) {
      return this.children.last().addElement(newItem, options);
    }
    if (options.clone) {
      newItem = this.cloneItem(newItem);
    }
    if (options.trigger) {
      elementor.channels.data.trigger(options.trigger.beforeAdd, newItem);
    }
    if (options.onBeforeAdd) {
      options.onBeforeAdd();
    }
    if (this.filterSettings) {
      this.filterSettings(newItem);
    }
    var newModel = this.addChildModel(newItem, {
        at: options.at
      }),
      newView = this.children.findByModel(newModel);
    if (options.onAfterAdd) {
      options.onAfterAdd(newModel, newView);
    }
    if (options.trigger) {
      elementor.channels.data.trigger(options.trigger.afterAdd, newItem);
    }
    if (options.edit && elementor.documents.getCurrent().history.getActive()) {
      // Ensure container is created. TODO: Open editor via UI hook after `document/elements/create`.
      newView.getContainer();
      newView._openEditingPanel(options);
    }
    return newView;
  },
  _openEditingPanel: function _openEditingPanel(options) {
    this.model.trigger('request:edit', {
      scrollIntoView: options.scrollIntoView
    });
  },
  createElementFromContainer: function createElementFromContainer(container) {
    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    return this.createElementFromModel(container.model, options);
  },
  createElementFromModel: function createElementFromModel(model) {
    var _model$isPreset, _model;
    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    if (model instanceof Backbone.Model) {
      model = model.toJSON();
    }
    if (elementor.helpers.maybeDisableWidget(model.widgetType)) {
      return;
    }
    model = Object.assign(model, model.custom);

    // Check whether the container cannot contain a section, in which case we should use an inner-section.
    if ('section' === model.elType) {
      model.isInner = true;
    }
    if ((_model$isPreset = (_model = model) === null || _model === void 0 ? void 0 : _model.isPreset) !== null && _model$isPreset !== void 0 ? _model$isPreset : false) {
      model.settings = model.preset_settings;
    }
    var _options$useHistory = options.useHistory,
      useHistory = _options$useHistory === void 0 ? true : _options$useHistory;
    var historyId;
    if (useHistory) {
      historyId = $e.internal('document/history/start-log', {
        type: this.getHistoryType(options.event),
        title: elementor.helpers.getModelLabel(model)
      });
    }
    var container = this.getContainer();
    if (options.shouldWrap) {
      container = this.getWrappingContainer(container, model, options);
    }

    // Create the element in column.
    var widget = $e.run('document/elements/create', {
      container: container,
      model: model,
      options: options
    });
    if (useHistory) {
      $e.internal('document/history/end-log', {
        id: historyId
      });
    }
    return widget;
  },
  getWrappingContainer: function getWrappingContainer(container, model, settings) {
    var _settings$useHistory;
    var isAtomic = elementor.helpers.isAtomicWidget(model);
    var options = {
      at: settings.at,
      scrollIntoView: settings.scrollIntoView,
      useHistory: (_settings$useHistory = settings === null || settings === void 0 ? void 0 : settings.useHistory) !== null && _settings$useHistory !== void 0 ? _settings$useHistory : true
    };
    if (isAtomic) {
      return _containerHelper.default.createContainerFromModel({
        elType: _containerHelper.default.V4_DEFAULT_CONTAINER_TYPE
      }, container, {
        options: options
      });
    }
    return this.getV3Container(container, options);
  },
  getV3Container: function getV3Container(container, options) {
    var isContainerExperimentActive = elementorCommon.config.experimentalFeatures.container;
    container = _containerHelper.default.createContainerFromModel({
      elType: isContainerExperimentActive ? 'container' : 'section'
    }, container, {
      columns: Number(!isContainerExperimentActive),
      options: options
    });

    // Since wrapping an element with container doesn't produce a column, we shouldn't try to access it.
    if (!isContainerExperimentActive) {
      container = container.view.children.findByIndex(0).getContainer();
    }
    return container;
  },
  onDrop: function onDrop(event, options) {
    var _elementor$channels$p, _elementorCommon;
    var input = event.originalEvent.dataTransfer.files;
    if (input.length) {
      $e.run('editor/browser-import/import', {
        input: input,
        target: this.getContainer(),
        options: {
          event: event,
          target: {
            at: options.at
          }
        }
      });
      return;
    }
    var args = {};
    args.model = Object.fromEntries(Object.entries((_elementor$channels$p = elementor.channels.panelElements.request('element:selected')) === null || _elementor$channels$p === void 0 ? void 0 : _elementor$channels$p.model.attributes)
    // The `custom` property is responsible for storing global-widgets related data.
    .filter(function (_ref) {
      var _ref2 = (0, _slicedToArray2.default)(_ref, 1),
        key = _ref2[0];
      return ['elType', 'widgetType', 'custom', 'editor_settings'].includes(key);
    }));
    args.container = this.getContainer();
    args.options = options;
    $e.run('preview/drop', args);
    if ((_elementorCommon = elementorCommon) !== null && _elementorCommon !== void 0 && (_elementorCommon = _elementorCommon.eventsManager) !== null && _elementorCommon !== void 0 && _elementorCommon.dispatchEvent && args !== null && args !== void 0 && args.model) {
      var _args$model$elType, _args$model, _args$model$widgetTyp, _args$model2;
      var elType = (_args$model$elType = (_args$model = args.model) === null || _args$model === void 0 ? void 0 : _args$model.elType) !== null && _args$model$elType !== void 0 ? _args$model$elType : '';
      var widgetType = (_args$model$widgetTyp = (_args$model2 = args.model) === null || _args$model2 === void 0 ? void 0 : _args$model2.widgetType) !== null && _args$model$widgetTyp !== void 0 ? _args$model$widgetTyp : '';
      var elementName = 'widget' === elType ? widgetType : elType;
      elementorCommon.eventsManager.dispatchEvent('add_element', {
        location: 'editor_panel',
        element_name: elementName,
        element_type: elType,
        widget_type: widgetType
      });
    }
  },
  getHistoryType: function getHistoryType(event) {
    if (event) {
      if (event.originalEvent) {
        event = event.originalEvent;
      }
      switch (event.constructor.name) {
        case 'DragEvent':
          return 'import';
        case 'ClipboardEvent':
          return 'paste';
      }
    }
    return 'add';
  },
  cloneItem: function cloneItem(item) {
    var self = this;
    if (item instanceof Backbone.Model) {
      return item.clone();
    }
    item.id = elementorCommon.helpers.getUniqueId();
    item.settings._element_id = '';
    item.elements.forEach(function (childItem, index) {
      item.elements[index] = self.cloneItem(childItem);
    });
    return item;
  },
  lookup: function lookup() {
    var element = this;
    if (element.isDisconnected()) {
      element = $e.components.get('document').utils.findViewById(element.model.id);
    }
    return element;
  },
  isDisconnected: function isDisconnected() {
    return this.isDestroyed || !this.el.isConnected;
  },
  isCollectionFilled: function isCollectionFilled() {
    return false;
  }
});

/**
 * Source: https://marionettejs.com/docs/v2.4.5/marionette.collectionview.html#collectionviews-buildchildview
 *
 * Since Elementor created custom container(bridge) between view, model, settings, children, parent and so on,
 * the container requires the parent view for proper work, but in 'marionettejs', the parent view is not available
 * during the `buildChildView` method, but actually exist, Elementor modified the `buildChildView` method to
 * set the parent view as a property `_parent` of the child view.
 * Anyways later, the `_parent` property is set by: 'marionettejs' to same view.
 */

/**
 * @inheritDoc
 */
Marionette.CollectionView.prototype.buildChildView = function (child, ChildViewClass, childViewOptions) {
  var options = _.extend({
      model: child
    }, childViewOptions),
    childView = new ChildViewClass(options);

  // `ELEMENTOR EDITING`: Fix `_parent` not available on render.
  childView._parent = this;
  Marionette.MonitorDOMRefresh(childView);
  return childView;
};

/**
 * This function overrides the original Marionette `attachBuffer` function.
 * This modification targets nested widgets that should contain a container within a wrapper.
 * The goal is to load the container inside the wrapper when initially loading in the editor.
 * This function updates the `buffer.childNodes` content by checking if an item should be interlaced.
 * If interlacing is needed, it places the container inside the widget's `child_container_placeholder_selector`.
 */

/**
 * @inheritDoc
 */
Marionette.CompositeView.prototype.attachBuffer = function (compositeView, buffer) {
  var _this$model, _this$model2;
  var $container = this.getChildViewContainer(compositeView);
  if ((_this$model = this.model) !== null && _this$model !== void 0 && (_this$model = _this$model.config) !== null && _this$model !== void 0 && _this$model.support_improved_repeaters && (_this$model2 = this.model) !== null && _this$model2 !== void 0 && (_this$model2 = _this$model2.config) !== null && _this$model2 !== void 0 && _this$model2.is_interlaced) {
    var _this$model3;
    var $items = $container.find((_this$model3 = this.model) === null || _this$model3 === void 0 || (_this$model3 = _this$model3.config) === null || _this$model3 === void 0 || (_this$model3 = _this$model3.defaults) === null || _this$model3 === void 0 ? void 0 : _this$model3.child_container_placeholder_selector);
    _.each($items, function (item) {
      item.appendChild(buffer.childNodes[0]);
      buffer.appendChild(item);
    });
  }
  $container.append(buffer);
};

/***/ }),

/***/ "../assets/dev/js/editor/views/base-sections-container.js":
/*!****************************************************************!*\
  !*** ../assets/dev/js/editor/views/base-sections-container.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var BaseContainer = __webpack_require__(/*! elementor-views/base-container */ "../assets/dev/js/editor/views/base-container.js"),
  BaseSectionsContainerView,
  _require = __webpack_require__(/*! elementor-editor/utils/element-types */ "../assets/dev/js/editor/utils/element-types.js"),
  getAllElementTypes = _require.getAllElementTypes;
BaseSectionsContainerView = BaseContainer.extend({
  getChildView: function getChildView(model) {
    var elType = model.get('elType');
    var type = elementor.elementsManager.getElementTypeClass(elType);
    if (!type) {
      throw new Error("Element type \"".concat(elType, "\" is not registered."));
    }
    return type.getView();
  },
  behaviors: function behaviors() {
    var sectionElementType = 'section';
    var behaviors = {
      Sortable: {
        behaviorClass: __webpack_require__(/*! elementor-behaviors/sortable */ "../assets/dev/js/editor/elements/views/behaviors/sortable.js"),
        elChildType: sectionElementType
      }
    };
    return elementor.hooks.applyFilters('elements/base-section-container/behaviors', behaviors, this);
  },
  getSortableOptions: function getSortableOptions() {
    return {
      handle: '> .elementor-element-overlay .elementor-editor-element-edit',
      items: '> .elementor-section, > .e-con'
    };
  },
  getChildType: function getChildType() {
    return getAllElementTypes();
  },
  initialize: function initialize() {
    BaseContainer.prototype.initialize.apply(this, arguments);
    this.listenTo(elementor.channels.panelElements, 'element:drag:start', this.onPanelElementDragStart).listenTo(elementor.channels.panelElements, 'element:drag:end', this.onPanelElementDragEnd);
  },
  onPanelElementDragStart: function onPanelElementDragStart() {
    // A temporary workaround in order to fix Chrome's 70+ dragging above nested iframe bug
    this.$el.find('.elementor-background-video-embed').hide();
    elementor.helpers.disableElementEvents(this.$el.find('iframe'));
  },
  onPanelElementDragEnd: function onPanelElementDragEnd() {
    this.$el.find('.elementor-background-video-embed').show();
    elementor.helpers.enableElementEvents(this.$el.find('iframe'));
  }
});
module.exports = BaseSectionsContainerView;

/***/ }),

/***/ "../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('<div>', {
      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('<div>', {
        class: 'e-group-control-header'
      }).html('<span>' + __('Typography', 'elementor') + '</span>');
      this.$headerControlsWrapper = jQuery('<div>', {
        class: 'e-control-tools'
      });

      // Give the reset button the control tool styling, and add a click event so clicking on it closes the popover.
      $resetLabel.addClass('e-control-tool').on('click', function () {
        return _this.onResetButtonClick();
      });

      // Move the popover toggle reset button into the popover header.
      this.$headerControlsWrapper.append($resetLabel);
      this.$popoverHeader.append(this.$headerControlsWrapper);
      var globalConfig = this.popoverToggleView.model.get('global');
      if (globalConfig !== null && globalConfig !== void 0 && globalConfig.active) {
        this.createAddButton();
      }
      this.$popover.prepend(this.$popoverHeader).addClass('e-controls-popover--typography');
    }
  }, {
    key: "onResetButtonClick",
    value: function onResetButtonClick() {
      this.$popover.hide();
      this.$popover.trigger('hide');
      var groupControlName = this.child.model.get('groupPrefix') + 'typography',
        args = {
          container: this.child.options.container,
          settings: (0, _defineProperty2.default)({}, groupControlName, '')
        };
      if (this.child.options.container.globals.get(groupControlName)) {
        // The Disable Globals command applies global settings locally,
        // so disabling the global shouldn't actually change the appearance of the widget.
        $e.run('document/globals/disable', args);
      } else {
        $e.run('document/elements/settings', args);
      }
    }
  }, {
    key: "onAddButtonClick",
    value: function onAddButtonClick() {
      this.popoverToggleView.onAddGlobalButtonClick();
    }
  }, {
    key: "createAddButton",
    value: function createAddButton() {
      var _this2 = this;
      this.$addButton = jQuery('<button>', {
        class: 'e-control-tool'
      }).html(jQuery('<i>', {
        class: 'eicon-plus'
      }));
      this.$headerControlsWrapper.append(this.$addButton);
      this.$addButton.on('click', function () {
        return _this2.onAddButtonClick();
      });
      this.$addButton.tipsy({
        title: function title() {
          return __('Create New Global Font', 'elementor');
        },
        gravity: function gravity() {
          return 's';
        }
      });
    }
  }, {
    key: "destroy",
    value: function destroy() {
      this.$popover.remove();
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/editor/views/controls-stack.js":
/*!*******************************************************!*\
  !*** ../assets/dev/js/editor/views/controls-stack.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 _controlsPopover = _interopRequireDefault(__webpack_require__(/*! ./controls-popover */ "../assets/dev/js/editor/views/controls-popover.js"));
var ControlsStack;
ControlsStack = Marionette.CompositeView.extend({
  classes: {
    popover: 'elementor-controls-popover'
  },
  activeTab: null,
  activeSection: null,
  className: function className() {
    return 'elementor-controls-stack';
  },
  templateHelpers: function templateHelpers() {
    return {
      elementData: elementor.getElementData(this.model)
    };
  },
  childViewOptions: function childViewOptions() {
    return {
      // TODO: elementSettingsModel is deprecated since 2.8.0.
      elementSettingsModel: this.model
    };
  },
  ui: function ui() {
    return {
      tabs: '.elementor-panel-navigation-tab',
      reloadButton: '.elementor-update-preview-button'
    };
  },
  events: function events() {
    return {
      'click @ui.reloadButton': 'onReloadButtonClick'
    };
  },
  modelEvents: {
    destroy: 'onModelDestroy'
  },
  behaviors: {
    HandleInnerTabs: {
      behaviorClass: __webpack_require__(/*! elementor-behaviors/inner-tabs */ "../assets/dev/js/editor/elements/views/behaviors/inner-tabs.js")
    }
  },
  initialize: function initialize(options) {
    this.initCollection();
    if (options.tab) {
      this.activeTab = options.tab;
      this.activateFirstSection();
    }
    this.listenTo(elementor.channels.deviceMode, 'change', this.onDeviceModeChange);
  },
  onDestroy: function onDestroy() {
    this.stopListening(elementor.channels.deviceMode, 'change', this.onDeviceModeChange);
  },
  initCollection: function initCollection() {
    this.collection = new Backbone.Collection(_.values(elementor.mergeControlsSettings(this.getOption('controls'))));
  },
  filter: function filter(controlModel) {
    if (controlModel.get('tab') !== this.activeTab) {
      return false;
    }
    if ('section' === controlModel.get('type')) {
      return true;
    }
    var section = controlModel.get('section');
    return !section || section === this.activeSection;
  },
  getControlViewByModel: function getControlViewByModel(model) {
    return this.children.findByModelCid(model.cid);
  },
  getControlViewByName: function getControlViewByName(name) {
    return this.getControlViewByModel(this.getControlModel(name));
  },
  getControlModel: function getControlModel(name) {
    return this.collection.findWhere({
      name: name
    });
  },
  isVisibleSectionControl: function isVisibleSectionControl(sectionControlModel) {
    return this.activeTab === sectionControlModel.get('tab');
  },
  activateTab: function activateTab(tab) {
    this.activeTab = tab;
    this.activateFirstSection();
    this._renderChildren();
    return this;
  },
  activateSection: function activateSection(sectionName) {
    this.activeSection = sectionName;
    return this;
  },
  activateFirstSection: function activateFirstSection() {
    var self = this;
    var sectionControls = self.collection.filter(function (controlModel) {
      return 'section' === controlModel.get('type') && self.isVisibleSectionControl(controlModel);
    });
    var sectionToActivate;
    if (!sectionControls[0]) {
      self.activeSection = null;
      sectionToActivate = null;
    } else {
      sectionToActivate = sectionControls[0].get('name');
    }
    var preActivatedSection = sectionControls.filter(function (controlModel) {
      return self.activeSection === controlModel.get('name');
    });
    if (preActivatedSection[0]) {
      return;
    }
    self.activateSection(sectionToActivate);
    return this;
  },
  getChildView: function getChildView(item) {
    var controlType = item.get('type');
    return elementor.getControlView(controlType);
  },
  getNamespaceArray: function getNamespaceArray() {
    return [elementor.getPanelView().getCurrentPageName()];
  },
  openActiveSection: function openActiveSection() {
    var activeSection = this.activeSection,
      activeSectionView = this.children.filter(function (view) {
        return activeSection === view.model.get('name');
      });
    if (activeSectionView[0]) {
      activeSectionView[0].$el.addClass('e-open');
      var eventNamespace = this.getNamespaceArray();
      eventNamespace.push(activeSection, 'activated');
      elementor.channels.editor.trigger(eventNamespace.join(':'), this);
    }
  },
  onRenderCollection: function onRenderCollection() {
    this.openActiveSection();
    ControlsStack.handlePopovers(this);
  },
  onModelDestroy: function onModelDestroy() {
    this.destroy();
  },
  onReloadButtonClick: function onReloadButtonClick() {
    elementor.reloadPreview();
  },
  onDeviceModeChange: function onDeviceModeChange() {
    if ('desktop' === elementor.channels.deviceMode.request('currentMode')) {
      this.$el.removeClass('elementor-responsive-switchers-open');
    }
  },
  onChildviewControlSectionClicked: function onChildviewControlSectionClicked(childView) {
    var isSectionOpen = childView.$el.hasClass('e-open');
    this.activateSection(isSectionOpen ? null : childView.model.get('name'));
    this._renderChildren();
  },
  onChildviewResponsiveSwitcherClick: function onChildviewResponsiveSwitcherClick(childView, device) {
    if ('desktop' === device) {
      this.$el.toggleClass('elementor-responsive-switchers-open');
    }
  }
}, {
  handlePopovers: function handlePopovers(view) {
    var popover;
    this.removePopovers(view);
    view.popovers = [];
    view.children.each(function (control) {
      if (popover) {
        popover.addChild(control);
      }
      var popoverData = control.model.get('popover');
      if (!popoverData) {
        return;
      }
      if (popoverData.start) {
        popover = new _controlsPopover.default(control);
        view.popovers.push(popover);
      }
      if (popoverData.end) {
        popover = null;
      }
    });
  },
  removePopovers: function removePopovers(view) {
    var _view$popovers;
    (_view$popovers = view.popovers) === null || _view$popovers === void 0 || _view$popovers.forEach(function (popover) {
      return popover.destroy();
    });
  }
});
var _default = exports["default"] = ControlsStack;

/***/ }),

/***/ "../assets/dev/js/editor/views/preview.js":
/*!************************************************!*\
  !*** ../assets/dev/js/editor/views/preview.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_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");
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _independent = _interopRequireDefault(__webpack_require__(/*! ./add-section/independent */ "../assets/dev/js/editor/views/add-section/independent.js"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var BaseSectionsContainerView = __webpack_require__(/*! elementor-views/base-sections-container */ "../assets/dev/js/editor/views/base-sections-container.js");
var Preview = BaseSectionsContainerView.extend({
  initialize: function initialize() {
    this.$childViewContainer = jQuery('<div>', {
      class: 'elementor-section-wrap'
    });
    this.config = {
      allowEdit: true
    };
    BaseSectionsContainerView.prototype.initialize.apply(this, arguments);
  },
  setConfig: function setConfig(config) {
    this.config = Object.assign(this.config, config);
  },
  getChildViewContainer: function getChildViewContainer() {
    return this.$childViewContainer;
  },
  behaviors: function behaviors() {
    var parentBehaviors = BaseSectionsContainerView.prototype.behaviors.apply(this, arguments),
      behaviors = {
        contextMenu: {
          behaviorClass: __webpack_require__(/*! elementor-behaviors/context-menu */ "../assets/dev/js/editor/elements/views/behaviors/context-menu.js"),
          groups: this.getContextMenuGroups()
        }
      };
    return jQuery.extend(parentBehaviors, behaviors);
  },
  getContainer: function getContainer() {
    return elementor.settings.page.getEditedView().getContainer();
  },
  getContextMenuGroups: function getContextMenuGroups() {
    var _this = this;
    var hasContent = function hasContent() {
      return elementor.elements.length > 0;
    };
    return [{
      name: 'paste',
      actions: [{
        name: 'paste',
        title: __('Paste', 'elementor'),
        isEnabled: function isEnabled() {
          return $e.components.get('document/elements').utils.isPasteEnabled(_this.getContainer());
        },
        callback: function callback(at) {
          return $e.run('document/ui/paste', {
            container: _this.getContainer(),
            options: {
              at: at,
              rebuild: true
            }
          });
        }
      }]
    }, {
      name: 'content',
      actions: [{
        name: 'copy_all_content',
        title: __('Copy All Content', 'elementor'),
        isEnabled: hasContent,
        callback: function callback() {
          return $e.run('document/elements/copy-all');
        }
      }, {
        name: 'delete_all_content',
        title: __('Delete All Content', 'elementor'),
        isEnabled: hasContent,
        callback: function callback() {
          return $e.run('document/elements/empty');
        }
      }]
    }];
  },
  createElementFromModel: function createElementFromModel(model) {
    var _model$widgetType;
    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    var wrappedElementTypes = ['widget', 'section', 'column'];
    return BaseSectionsContainerView.prototype.createElementFromModel.call(this, model, _objectSpread(_objectSpread({}, options), {}, {
      shouldWrap: wrappedElementTypes.includes(model.elType) && !((_model$widgetType = model.widgetType) !== null && _model$widgetType !== void 0 && _model$widgetType.startsWith('e-form-'))
    }));
  },
  addElementFromPanel: function addElementFromPanel(options) {
    if (!this.config.allowEdit || elementor.helpers.maybeDisableWidget()) {
      return;
    }
    var isContainerActive = !!elementorCommon.config.experimentalFeatures.container;
    var selectedElement = elementor.channels.panelElements.request('element:selected'),
      historyId = $e.internal('document/history/start-log', {
        type: 'add',
        title: elementor.helpers.getModelLabel(selectedElement.model)
      }),
      containingElement = $e.run('document/elements/create', {
        model: {
          elType: isContainerActive ? 'container' : 'section'
        },
        container: elementor.getPreviewContainer(),
        columns: 1,
        options: _objectSpread({
          at: this.getOption('at')
        }, options)
      });
    if (!isContainerActive) {
      // Create the element in column.
      containingElement.view.children.findByIndex(0).addElementFromPanel(options);
    } else if ('container' !== selectedElement.model.get('elType')) {
      // Create the element in a Container, only if the dragged element is not a Container already.
      containingElement.view.addElementFromPanel(options);
    }
    $e.internal('document/history/end-log', {
      id: historyId
    });
  },
  shouldRenderAddNewSectionArea: function shouldRenderAddNewSectionArea() {
    return this.config.allowEdit && elementor.userCan('design');
  },
  onRender: function onRender() {
    this.$el.html(this.$childViewContainer);
    if (this.shouldRenderAddNewSectionArea()) {
      var addNewSectionView = new _independent.default();
      addNewSectionView.render();
      this.$el.append(addNewSectionView.$el);
    }
  }
});
module.exports = Preview;

/***/ }),

/***/ "../assets/dev/js/frontend/utils/filter-unknown-elements.js":
/*!******************************************************************!*\
  !*** ../assets/dev/js/frontend/utils/filter-unknown-elements.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.filterUnknownElements = void 0;
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var filterUnknownElements = exports.filterUnknownElements = function filterUnknownElements(data) {
  var _data$elements;
  if (data !== null && data !== void 0 && (_data$elements = data.elements) !== null && _data$elements !== void 0 && _data$elements.length) {
    return _objectSpread(_objectSpread({}, data), {}, {
      elements: filterChildren(data.elements)
    });
  }
  return data;
};
function filterChildren(elements) {
  return elements.reduce(function (acc, element) {
    var _element$widgetType, _element$elements;
    if (!element) {
      return acc;
    }
    var isKnownType = elementor.elementsManager.getElementTypeClass((_element$widgetType = element.widgetType) !== null && _element$widgetType !== void 0 ? _element$widgetType : element.elType);
    if (!isKnownType) {
      return acc;
    }
    var processedElement = (_element$elements = element.elements) !== null && _element$elements !== void 0 && _element$elements.length ? _objectSpread(_objectSpread({}, element), {}, {
      elements: filterChildren(element.elements)
    }) : element;
    acc.push(processedElement);
    return acc;
  }, []);
}

/***/ }),

/***/ "../assets/dev/js/modules/imports/args-object.js":
/*!*******************************************************!*\
  !*** ../assets/dev/js/modules/imports/args-object.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 _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _instanceType = _interopRequireDefault(__webpack_require__(/*! ./instance-type */ "../assets/dev/js/modules/imports/instance-type.js"));
var _isInstanceof = _interopRequireDefault(__webpack_require__(/*! ../../editor/utils/is-instanceof */ "../assets/dev/js/editor/utils/is-instanceof.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; })(); }
var ArgsObject = exports["default"] = /*#__PURE__*/function (_InstanceType) {
  /**
   * Function constructor().
   *
   * Create ArgsObject.
   *
   * @param {{}} args
   */
  function ArgsObject(args) {
    var _this;
    (0, _classCallCheck2.default)(this, ArgsObject);
    _this = _callSuper(this, ArgsObject);
    _this.args = args;
    return _this;
  }

  /**
   * Function requireArgument().
   *
   * Validate property in args.
   *
   * @param {string} property
   * @param {{}}     args
   *
   * @throws {Error}
   */
  (0, _inherits2.default)(ArgsObject, _InstanceType);
  return (0, _createClass2.default)(ArgsObject, [{
    key: "requireArgument",
    value: function requireArgument(property) {
      var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.args;
      if (!Object.prototype.hasOwnProperty.call(args, property)) {
        throw Error("".concat(property, " is required."));
      }
    }

    /**
     * Function requireArgumentType().
     *
     * Validate property in args using `type === typeof(args.whatever)`.
     *
     * @param {string} property
     * @param {string} type
     * @param {{}}     args
     *
     * @throws {Error}
     */
  }, {
    key: "requireArgumentType",
    value: function requireArgumentType(property, type) {
      var args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.args;
      this.requireArgument(property, args);
      if ((0, _typeof2.default)(args[property]) !== type) {
        throw Error("".concat(property, " invalid type: ").concat(type, "."));
      }
    }

    /**
     * Function requireArgumentInstance().
     *
     * Validate property in args using `args.whatever instanceof instance`.
     *
     * @param {string} property
     * @param {*}      instance
     * @param {{}}     args
     *
     * @throws {Error}
     */
  }, {
    key: "requireArgumentInstance",
    value: function requireArgumentInstance(property, instance) {
      var args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.args;
      this.requireArgument(property, args);
      if (!(args[property] instanceof instance) && !(0, _isInstanceof.default)(args[property], instance)) {
        throw Error("".concat(property, " invalid instance."));
      }
    }

    /**
     * Function requireArgumentConstructor().
     *
     * Validate property in args using `type === args.whatever.constructor`.
     *
     * @param {string} property
     * @param {*}      type
     * @param {{}}     args
     *
     * @throws {Error}
     */
  }, {
    key: "requireArgumentConstructor",
    value: function requireArgumentConstructor(property, type) {
      var args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.args;
      this.requireArgument(property, args);

      // Note: Converting the constructor to string in order to avoid equation issues
      // due to different memory addresses between iframes (window.Object !== window.top.Object).
      if (args[property].constructor.toString() !== type.prototype.constructor.toString()) {
        throw Error("".concat(property, " invalid constructor type."));
      }
    }
  }], [{
    key: "getInstanceType",
    value: function getInstanceType() {
      return 'ArgsObject';
    }
  }]);
}(_instanceType.default);

/***/ }),

/***/ "../assets/dev/js/modules/imports/instance-type.js":
/*!*********************************************************!*\
  !*** ../assets/dev/js/modules/imports/instance-type.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 _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var InstanceType = exports["default"] = /*#__PURE__*/function () {
  function InstanceType() {
    var _this = this;
    (0, _classCallCheck2.default)(this, InstanceType);
    // Since anonymous classes sometimes do not get validated by babel, do it manually.
    var target = this instanceof InstanceType ? this.constructor : void 0;
    var prototypes = [];
    while (target.__proto__ && target.__proto__.name) {
      prototypes.push(target.__proto__);
      target = target.__proto__;
    }
    prototypes.reverse().forEach(function (proto) {
      return _this instanceof proto;
    });
  }
  return (0, _createClass2.default)(InstanceType, null, [{
    key: Symbol.hasInstance,
    value: function value(target) {
      /**
       * This is function extending being called each time JS uses instanceOf, since babel use it each time it create new class
       * its give's opportunity to mange capabilities of instanceOf operator.
       * saving current class each time will give option later to handle instanceOf manually.
       */
      var result = _superPropGet(InstanceType, Symbol.hasInstance, this, 2)([target]);

      // Act normal when validate a class, which does not have instance type.
      if (target && !target.constructor.getInstanceType) {
        return result;
      }
      if (target) {
        if (!target.instanceTypes) {
          target.instanceTypes = [];
        }
        if (!result) {
          if (this.getInstanceType() === target.constructor.getInstanceType()) {
            result = true;
          }
        }
        if (result) {
          var name = this.getInstanceType === InstanceType.getInstanceType ? 'BaseInstanceType' : this.getInstanceType();
          if (-1 === target.instanceTypes.indexOf(name)) {
            target.instanceTypes.push(name);
          }
        }
      }
      if (!result && target) {
        // Check if the given 'target', is instance of known types.
        result = target.instanceTypes && Array.isArray(target.instanceTypes) && -1 !== target.instanceTypes.indexOf(this.getInstanceType());
      }
      return result;
    }
  }, {
    key: "getInstanceType",
    value: function getInstanceType() {
      elementorModules.ForceMethodImplementation();
    }
  }]);
}();

/***/ }),

/***/ "../assets/dev/js/modules/imports/module.js":
/*!**************************************************!*\
  !*** ../assets/dev/js/modules/imports/module.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 Module = function Module() {
  var $ = jQuery,
    instanceParams = arguments,
    self = this,
    events = {};
  var settings;
  var ensureClosureMethods = function ensureClosureMethods() {
    $.each(self, function (methodName) {
      var oldMethod = self[methodName];
      if ('function' !== typeof oldMethod) {
        return;
      }
      self[methodName] = function () {
        return oldMethod.apply(self, arguments);
      };
    });
  };
  var initSettings = function initSettings() {
    settings = self.getDefaultSettings();
    var instanceSettings = instanceParams[0];
    if (instanceSettings) {
      $.extend(true, settings, instanceSettings);
    }
  };
  var init = function init() {
    self.__construct.apply(self, instanceParams);
    ensureClosureMethods();
    initSettings();
    self.trigger('init');
  };
  this.getItems = function (items, itemKey) {
    if (itemKey) {
      var keyStack = itemKey.split('.'),
        currentKey = keyStack.splice(0, 1);
      if (!keyStack.length) {
        return items[currentKey];
      }
      if (!items[currentKey]) {
        return;
      }
      return this.getItems(items[currentKey], keyStack.join('.'));
    }
    return items;
  };
  this.getSettings = function (setting) {
    return this.getItems(settings, setting);
  };
  this.setSettings = function (settingKey, value, settingsContainer) {
    if (!settingsContainer) {
      settingsContainer = settings;
    }
    if ('object' === (0, _typeof2.default)(settingKey)) {
      $.extend(settingsContainer, settingKey);
      return self;
    }
    var keyStack = settingKey.split('.'),
      currentKey = keyStack.splice(0, 1);
    if (!keyStack.length) {
      settingsContainer[currentKey] = value;
      return self;
    }
    if (!settingsContainer[currentKey]) {
      settingsContainer[currentKey] = {};
    }
    return self.setSettings(keyStack.join('.'), value, settingsContainer[currentKey]);
  };
  this.getErrorMessage = function (type, functionName) {
    var message;
    switch (type) {
      case 'forceMethodImplementation':
        message = "The method '".concat(functionName, "' must to be implemented in the inheritor child.");
        break;
      default:
        message = 'An error occurs';
    }
    return message;
  };

  // TODO: This function should be deleted ?.
  this.forceMethodImplementation = function (functionName) {
    throw new Error(this.getErrorMessage('forceMethodImplementation', functionName));
  };
  this.on = function (eventName, callback) {
    if ('object' === (0, _typeof2.default)(eventName)) {
      $.each(eventName, function (singleEventName) {
        self.on(singleEventName, this);
      });
      return self;
    }
    var eventNames = eventName.split(' ');
    eventNames.forEach(function (singleEventName) {
      if (!events[singleEventName]) {
        events[singleEventName] = [];
      }
      events[singleEventName].push(callback);
    });
    return self;
  };
  this.off = function (eventName, callback) {
    if (!events[eventName]) {
      return self;
    }
    if (!callback) {
      delete events[eventName];
      return self;
    }
    var callbackIndex = events[eventName].indexOf(callback);
    if (-1 !== callbackIndex) {
      delete events[eventName][callbackIndex];

      // Reset array index (for next off on same event).
      events[eventName] = events[eventName].filter(function (val) {
        return val;
      });
    }
    return self;
  };
  this.trigger = function (eventName) {
    var methodName = 'on' + eventName[0].toUpperCase() + eventName.slice(1),
      params = Array.prototype.slice.call(arguments, 1);
    if (self[methodName]) {
      self[methodName].apply(self, params);
    }
    var callbacks = events[eventName];
    if (!callbacks) {
      return self;
    }
    $.each(callbacks, function (index, callback) {
      callback.apply(self, params);
    });
    return self;
  };
  init();
};
Module.prototype.__construct = function () {};
Module.prototype.getDefaultSettings = function () {
  return {};
};
Module.prototype.getConstructorID = function () {
  return this.constructor.name;
};
Module.extend = function (properties) {
  var $ = jQuery,
    parent = this;
  var child = function child() {
    return parent.apply(this, arguments);
  };
  $.extend(child, parent);
  child.prototype = Object.create($.extend({}, parent.prototype, properties));
  child.prototype.constructor = child;
  child.__super__ = parent.prototype;
  return child;
};
module.exports = Module;

/***/ }),

/***/ "../assets/dev/js/utils/breakpoints.js":
/*!*********************************************!*\
  !*** ../assets/dev/js/utils/breakpoints.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 _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 _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"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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; })(); }
/**
 * Breakpoints
 *
 * This utility class contains helper functions relating to Elementor's breakpoints system.
 *
 * @since 3.4.0
 */
var Breakpoints = exports["default"] = /*#__PURE__*/function (_elementorModules$Mod) {
  function Breakpoints(responsiveConfig) {
    var _this;
    (0, _classCallCheck2.default)(this, Breakpoints);
    _this = _callSuper(this, Breakpoints);

    // The passed config is either `elementor.config.responsive` or `elementorFrontend.config.responsive`
    _this.responsiveConfig = responsiveConfig;
    return _this;
  }

  /**
   * Get Active Breakpoints List
   *
   * Returns a flat array containing the active breakpoints/devices. By default, it returns the li
   * the list ordered from smallest to largest breakpoint. If `true` is passed as a parameter, it reverses the order.
   *
   * @since 3.4.0
   *
   * @param {Object} args
   */
  (0, _inherits2.default)(Breakpoints, _elementorModules$Mod);
  return (0, _createClass2.default)(Breakpoints, [{
    key: "getActiveBreakpointsList",
    value: function getActiveBreakpointsList() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var defaultArgs = {
        largeToSmall: false,
        withDesktop: false
      };
      args = _objectSpread(_objectSpread({}, defaultArgs), args);
      var breakpointKeys = Object.keys(this.responsiveConfig.activeBreakpoints);
      if (args.withDesktop) {
        // If there is an active 'widescreen' breakpoint, insert the artificial 'desktop' device below it.
        var widescreenIndex = breakpointKeys.indexOf('widescreen'),
          indexToInsertDesktopDevice = -1 === widescreenIndex ? breakpointKeys.length : breakpointKeys.length - 1;
        breakpointKeys.splice(indexToInsertDesktopDevice, 0, 'desktop');
      }
      if (args.largeToSmall) {
        breakpointKeys.reverse();
      }
      return breakpointKeys;
    }

    /**
     * Get Active Breakpoint Values
     *
     * Returns a flat array containing the list of active breakpoint values, from smallest to largest.
     *
     * @since 3.4.0
     */
  }, {
    key: "getBreakpointValues",
    value: function getBreakpointValues() {
      var activeBreakpoints = this.responsiveConfig.activeBreakpoints,
        breakpointValues = [];
      Object.values(activeBreakpoints).forEach(function (breakpointConfig) {
        breakpointValues.push(breakpointConfig.value);
      });
      return breakpointValues;
    }

    /**
     * Get Desktop Previous Device Key
     *
     * Returns the key of the device directly under desktop (can be 'tablet', 'tablet_extra', 'laptop').
     *
     * @since 3.4.0
     *
     * @return {string} device key
     */
  }, {
    key: "getDesktopPreviousDeviceKey",
    value: function getDesktopPreviousDeviceKey() {
      var desktopPreviousDevice = '';
      var activeBreakpoints = this.responsiveConfig.activeBreakpoints,
        breakpointKeys = Object.keys(activeBreakpoints),
        numOfDevices = breakpointKeys.length;
      if ('min' === activeBreakpoints[breakpointKeys[numOfDevices - 1]].direction) {
        // If the widescreen breakpoint is active, the device that's previous to desktop is the last one before
        // widescreen.
        desktopPreviousDevice = breakpointKeys[numOfDevices - 2];
      } else {
        // If the widescreen breakpoint isn't active, we just take the last device returned by the config.
        desktopPreviousDevice = breakpointKeys[numOfDevices - 1];
      }
      return desktopPreviousDevice;
    }

    /**
     * Get Device Minimum Breakpoint
     *
     * Returns the minimum point in the device's display range. For each device, the minimum point of its display range
     * is the max point of the device below it + 1px. For example, if the active devices are mobile, tablet,
     * and desktop, and the mobile breakpoint is 767px, the minimum display point for tablet devices is 768px.
     *
     * @since 3.4.0
     *
     * @return {number|*} minimum breakpoint
     */
  }, {
    key: "getDesktopMinPoint",
    value: function getDesktopMinPoint() {
      var activeBreakpoints = this.responsiveConfig.activeBreakpoints,
        desktopPreviousDevice = this.getDesktopPreviousDeviceKey();
      return activeBreakpoints[desktopPreviousDevice].value + 1;
    }

    /**
     * Get Device Minimum Breakpoint
     *
     * Returns the minimum point in the device's display range. For each device, the minimum point of its display range
     * is the max point of the device below it + 1px. For example, if the active devices are mobile, tablet,
     * and desktop, and the mobile breakpoint is 767px, the minimum display point for tablet devices is 768px.
     *
     * @since 3.4.0
     *
     * @param {string} device
     * @return {number|*} minimum breakpoint
     */
  }, {
    key: "getDeviceMinBreakpoint",
    value: function getDeviceMinBreakpoint(device) {
      if ('desktop' === device) {
        return this.getDesktopMinPoint();
      }
      var activeBreakpoints = this.responsiveConfig.activeBreakpoints,
        breakpointNames = Object.keys(activeBreakpoints);
      var minBreakpoint;
      if (breakpointNames[0] === device) {
        // For the lowest breakpoint, the min point is always 320.
        minBreakpoint = 320;
      } else if ('widescreen' === device) {
        // Widescreen only has a minimum point. In this case, the breakpoint
        // value in the Breakpoints config is itself the device min point.
        if (activeBreakpoints[device]) {
          minBreakpoint = activeBreakpoints[device].value;
        } else {
          // If the widescreen breakpoint does not exist in the active breakpoints config (for example, in the
          // case this method runs as the breakpoint is being added), get the value from the full config.
          minBreakpoint = this.responsiveConfig.breakpoints.widescreen;
        }
      } else {
        var deviceNameIndex = breakpointNames.indexOf(device),
          previousIndex = deviceNameIndex - 1;
        minBreakpoint = activeBreakpoints[breakpointNames[previousIndex]].value + 1;
      }
      return minBreakpoint;
    }

    /**
     * Get Active Match Regex
     *
     * Returns a regular expression containing all active breakpoints prefixed with an underscore.
     *
     * @return {RegExp} Active Match Regex
     */
  }, {
    key: "getActiveMatchRegex",
    value: function getActiveMatchRegex() {
      return new RegExp(this.getActiveBreakpointsList().map(function (device) {
        return '_' + device;
      }).join('|') + '$');
    }
  }]);
}(elementorModules.Module);

/***/ }),

/***/ "../assets/dev/js/utils/events.js":
/*!****************************************!*\
  !*** ../assets/dev/js/utils/events.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"] = exports.Events = 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 Events = exports.Events = /*#__PURE__*/function () {
  function Events() {
    (0, _classCallCheck2.default)(this, Events);
  }
  return (0, _createClass2.default)(Events, null, [{
    key: "dispatch",
    value:
    /**
     * Dispatch an Elementor event.
     *
     * Will dispatch both native event & jQuery event (as BC).
     * By default, `bcEvent` is `null`.
     *
     * @param {Object}      context - The context that will dispatch the event.
     * @param {string}      event   - Event to dispatch.
     * @param {*}           data    - Data to pass to the event, default to `null`.
     * @param {string|null} bcEvent - BC event to dispatch, default to `null`.
     *
     * @return {void}
     */
    function dispatch(context, event) {
      var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
      var bcEvent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
      // Make sure to use the native context if it's a jQuery instance.
      context = context instanceof jQuery ? context[0] : context;

      // Dispatch the BC event only if exists.
      if (bcEvent) {
        context.dispatchEvent(new CustomEvent(bcEvent, {
          detail: data
        }));
      }

      // jQuery's `.on()` listens also to native custom events, so there is no need
      // to dispatch also a jQuery event.
      context.dispatchEvent(new CustomEvent(event, {
        detail: data
      }));
    }
  }]);
}();
var _default = exports["default"] = Events;

/***/ }),

/***/ "../assets/dev/js/utils/hooks.js":
/*!***************************************!*\
  !*** ../assets/dev/js/utils/hooks.js ***!
  \***************************************/
/***/ ((module) => {

"use strict";


/**
 * Handles managing all events for whatever you plug it into. Priorities for hooks are based on lowest to highest in
 * that, lowest priority hooks are fired first.
 */
var EventManager = function EventManager() {
  var slice = Array.prototype.slice,
    MethodsAvailable;

  /**
   * Contains the hooks that get registered with this EventManager. The array for storage utilizes a "flat"
   * object literal such that looking up the hook utilizes the native object literal hash.
   */
  var STORAGE = {
    actions: {},
    filters: {}
  };

  /**
   * Removes the specified hook by resetting the value of it.
   *
   * @param {string}   type     Type of hook, either 'actions' or 'filters'
   * @param {Function} hook     The hook (namespace.identifier) to remove
   * @param {Function} callback
   * @param {*}        context
   * @private
   */
  function _removeHook(type, hook, callback, context) {
    var handlers, handler, i;
    if (!STORAGE[type][hook]) {
      return;
    }
    if (!callback) {
      STORAGE[type][hook] = [];
    } else {
      handlers = STORAGE[type][hook];
      if (!context) {
        for (i = handlers.length; i--;) {
          if (handlers[i].callback === callback) {
            handlers.splice(i, 1);
          }
        }
      } else {
        for (i = handlers.length; i--;) {
          handler = handlers[i];
          if (handler.callback === callback && handler.context === context) {
            handlers.splice(i, 1);
          }
        }
      }
    }
  }

  /**
   * Use an insert sort for keeping our hooks organized based on priority. This function is ridiculously faster
   * than bubble sort, etc: http://jsperf.com/javascript-sort
   *
   * @param {Array<*>} hooks The custom array containing all of the appropriate hooks to perform an insert sort on.
   * @private
   */
  function _hookInsertSort(hooks) {
    var tmpHook, j, prevHook;
    for (var i = 1, len = hooks.length; i < len; i++) {
      tmpHook = hooks[i];
      j = i;
      while ((prevHook = hooks[j - 1]) && prevHook.priority > tmpHook.priority) {
        hooks[j] = hooks[j - 1];
        --j;
      }
      hooks[j] = tmpHook;
    }
    return hooks;
  }

  /**
   * Adds the hook to the appropriate storage container
   *
   * @param {string}   type      'actions' or 'filters'
   * @param {Array<*>} hook      The hook (namespace.identifier) to add to our event manager
   * @param {Function} callback  The function that will be called when the hook is executed.
   * @param {number}   priority  The priority of this hook. Must be an integer.
   * @param {*}        [context] A value to be used for this
   * @private
   */
  function _addHook(type, hook, callback, priority, context) {
    var hookObject = {
      callback: callback,
      priority: priority,
      context: context
    };

    // Utilize 'prop itself' : http://jsperf.com/hasownproperty-vs-in-vs-undefined/19
    var hooks = STORAGE[type][hook];
    if (hooks) {
      // TEMP FIX BUG
      var hasSameCallback = false;
      jQuery.each(hooks, function () {
        if (this.callback === callback) {
          hasSameCallback = true;
          return false;
        }
      });
      if (hasSameCallback) {
        return;
      }
      // END TEMP FIX BUG

      hooks.push(hookObject);
      hooks = _hookInsertSort(hooks);
    } else {
      hooks = [hookObject];
    }
    STORAGE[type][hook] = hooks;
  }

  /**
   * Runs the specified hook. If it is an action, the value is not modified but if it is a filter, it is.
   *
   * @param {string}   type 'actions' or 'filters'
   * @param {*}        hook The hook ( namespace.identifier ) to be ran.
   * @param {Array<*>} args Arguments to pass to the action/filter. If it's a filter, args is actually a single parameter.
   * @private
   */
  function _runHook(type, hook, args) {
    var handlers = STORAGE[type][hook],
      i,
      len;
    if (!handlers) {
      return 'filters' === type ? args[0] : false;
    }
    len = handlers.length;
    if ('filters' === type) {
      for (i = 0; i < len; i++) {
        args[0] = handlers[i].callback.apply(handlers[i].context, args);
      }
    } else {
      for (i = 0; i < len; i++) {
        handlers[i].callback.apply(handlers[i].context, args);
      }
    }
    return 'filters' === type ? args[0] : true;
  }

  /**
   * Adds an action to the event manager.
   *
   * @param {string}   action        Must contain namespace.identifier
   * @param {Function} callback      Must be a valid callback function before this action is added
   * @param {number}   [priority=10] Used to control when the function is executed in relation to other callbacks bound to the same hook
   * @param {*}        [context]     Supply a value to be used for this
   */
  function addAction(action, callback, priority, context) {
    if ('string' === typeof action && 'function' === typeof callback) {
      priority = parseInt(priority || 10, 10);
      _addHook('actions', action, callback, priority, context);
    }
    return MethodsAvailable;
  }

  /**
   * Performs an action if it exists. You can pass as many arguments as you want to this function; the only rule is
   * that the first argument must always be the action.
   */
  function doAction(/* Action, arg1, arg2, ... */
  ) {
    var args = slice.call(arguments);
    var action = args.shift();
    if ('string' === typeof action) {
      _runHook('actions', action, args);
    }
    return MethodsAvailable;
  }

  /**
   * Removes the specified action if it contains a namespace.identifier & exists.
   *
   * @param {string}   action     The action to remove
   * @param {Function} [callback] Callback function to remove
   */
  function removeAction(action, callback) {
    if ('string' === typeof action) {
      _removeHook('actions', action, callback);
    }
    return MethodsAvailable;
  }

  /**
   * Adds a filter to the event manager.
   *
   * @param {string}   filter        Must contain namespace.identifier
   * @param {Function} callback      Must be a valid callback function before this action is added
   * @param {number}   [priority=10] Used to control when the function is executed in relation to other callbacks bound to the same hook
   * @param {*}        [context]     Supply a value to be used for this
   */
  function addFilter(filter, callback, priority, context) {
    if ('string' === typeof filter && 'function' === typeof callback) {
      priority = parseInt(priority || 10, 10);
      _addHook('filters', filter, callback, priority, context);
    }
    return MethodsAvailable;
  }

  /**
   * Performs a filter if it exists. You should only ever pass 1 argument to be filtered. The only rule is that
   * the first argument must always be the filter.
   */
  function applyFilters(/* Filter, filtered arg, arg2, ... */
  ) {
    var args = slice.call(arguments);
    var filter = args.shift();
    if ('string' === typeof filter) {
      return _runHook('filters', filter, args);
    }
    return MethodsAvailable;
  }

  /**
   * Removes the specified filter if it contains a namespace.identifier & exists.
   *
   * @param {string}   filter     The action to remove
   * @param {Function} [callback] Callback function to remove
   */
  function removeFilter(filter, callback) {
    if ('string' === typeof filter) {
      _removeHook('filters', filter, callback);
    }
    return MethodsAvailable;
  }

  /**
   * Maintain a reference to the object scope so our public methods never get confusing.
   */
  MethodsAvailable = {
    removeFilter: removeFilter,
    applyFilters: applyFilters,
    addFilter: addFilter,
    removeAction: removeAction,
    doAction: doAction,
    addAction: addAction
  };

  // Return all of the publicly available methods
  return MethodsAvailable;
};
module.exports = EventManager;

/***/ }),

/***/ "../assets/dev/js/utils/json-upload-warning-message.js":
/*!*************************************************************!*\
  !*** ../assets/dev/js/utils/json-upload-warning-message.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.showJsonUploadWarningMessageIfNeeded = showJsonUploadWarningMessageIfNeeded;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
var genericMessageIntroductionKey = 'upload_json_warning_generic_message';
/**
 * @type {import('../utils/introduction').default | null}
 */
var genericWarningModal = null;
function showJsonUploadWarningMessageIfNeeded(_ref) {
  var introductionMap = _ref.introductionMap,
    IntroductionClass = _ref.IntroductionClass,
    _ref$waitForSetViewed = _ref.waitForSetViewed,
    waitForSetViewed = _ref$waitForSetViewed === void 0 ? false : _ref$waitForSetViewed;
  if (!genericWarningModal) {
    genericWarningModal = createGenericWarningModal(IntroductionClass);
  }
  genericWarningModal.setIntroductionMap(introductionMap);
  if (genericWarningModal.introductionViewed) {
    return Promise.resolve();
  }
  var dialog = genericWarningModal.getDialog();
  return new Promise(function (resolve, reject) {
    dialog.onHide = function () {
      // When closing the dialog (esc, click on background, etc.) we need to reject the promise.
      reject();
    };
    dialog.onConfirm = /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
      return _regenerator.default.wrap(function (_context) {
        while (1) switch (_context.prev = _context.next) {
          case 0:
            if (!dialog.getElements('checkbox-dont-show-again').prop('checked')) {
              _context.next = 3;
              break;
            }
            if (!waitForSetViewed) {
              _context.next = 2;
              break;
            }
            _context.next = 1;
            return genericWarningModal.setViewed();
          case 1:
            _context.next = 3;
            break;
          case 2:
            genericWarningModal.setViewed();
          case 3:
            // Hack: we need to resolve the promise and then hide it manually, to avoid rejecting the promise.
            // this because when closing the dialog (esc, click on background, etc.) it does not trigger `onCancel` method.
            resolve();
            dialog.hide();
          case 4:
          case "end":
            return _context.stop();
        }
      }, _callee);
    }));
    dialog.onCancel = function () {
      dialog.hide();
    };
    genericWarningModal.show();
  });
}

/**
 * @param {import('../utils/introduction').default.prototype.constructor} IntroductionClass
 *
 * @return {import('../utils/introduction').default}
 */
function createGenericWarningModal(IntroductionClass) {
  var _introduction$getDial, _introduction$getDial2;
  var dialogId = 'e-generic-warning-modal-for-json-upload';
  var introduction = new IntroductionClass({
    introductionKey: genericMessageIntroductionKey,
    dialogType: 'confirm',
    dialogOptions: {
      id: dialogId,
      headerMessage: __('Warning: JSON files may be unsafe', 'elementor'),
      message: __('Uploading JSON files from unknown sources can be harmful and put your site at risk. For maximum safety, only install JSON files from trusted sources.', 'elementor'),
      effects: {
        show: 'fadeIn',
        hide: 'fadeOut'
      },
      hide: {
        onBackgroundClick: true,
        onButtonClick: false
      },
      strings: {
        confirm: __('Continue', 'elementor'),
        cancel: __('Cancel', 'elementor')
      }
    }
  });
  var _createCheckboxAndLab = createCheckboxAndLabel(dialogId),
    checkbox = _createCheckboxAndLab.checkbox,
    label = _createCheckboxAndLab.label;
  introduction.getDialog().addElement('checkbox-dont-show-again', checkbox);
  (_introduction$getDial = introduction.getDialog().getElements('message')) === null || _introduction$getDial === void 0 || (_introduction$getDial2 = _introduction$getDial.append) === null || _introduction$getDial2 === void 0 || _introduction$getDial2.call(_introduction$getDial, label); // `getElements` return JQuery object.

  return introduction;
}
function createCheckboxAndLabel(dialogId) {
  var checkboxId = "".concat(dialogId, "-dont-show-again");
  var checkbox = document.createElement('input');
  checkbox.type = 'checkbox';
  checkbox.name = checkboxId;
  checkbox.id = checkboxId;
  var label = document.createElement('label');
  label.htmlFor = checkboxId;
  label.textContent = __('Do not show this message again', 'elementor');
  label.style.display = 'block';
  label.style.marginTop = '20px';
  label.style.marginBottom = '20px';
  label.prepend(checkbox);
  return {
    checkbox: checkbox,
    label: label
  };
}

/***/ }),

/***/ "../assets/dev/js/utils/notifications.js":
/*!***********************************************!*\
  !*** ../assets/dev/js/utils/notifications.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
module.exports = elementorModules.Module.extend({
  initToast: function initToast() {
    var toast = elementorCommon.dialogsManager.createWidget('buttons', {
      id: 'elementor-toast',
      position: {
        my: 'center bottom',
        at: 'center bottom-10',
        of: '#elementor-panel-inner',
        autoRefresh: true
      },
      hide: {
        onClick: true,
        auto: true,
        autoDelay: 10000
      },
      effects: {
        show: function show() {
          var $widget = toast.getElements('widget');
          $widget.show();
          toast.refreshPosition();
          var top = parseInt($widget.css('top'), 10);
          $widget.hide().css('top', top + 100);
          $widget.animate({
            opacity: 'show',
            height: 'show',
            paddingBottom: 'show',
            paddingTop: 'show',
            top: top
          }, {
            easing: 'linear',
            duration: 300
          });
        },
        hide: function hide() {
          var $widget = toast.getElements('widget'),
            top = parseInt($widget.css('top'), 10);
          $widget.animate({
            opacity: 'hide',
            height: 'hide',
            paddingBottom: 'hide',
            paddingTop: 'hide',
            top: top + 100
          }, {
            easing: 'linear',
            duration: 300
          });
        }
      },
      button: {
        tag: 'button'
      }
    });

    // Add role="status" and aria-live for screen reader announcement
    toast.getElements('widget').attr({
      role: 'status',
      'aria-live': 'polite',
      'aria-atomic': 'true'
    });
    this.getToast = function () {
      return toast;
    };
  },
  showToast: function showToast(options) {
    var toast = this.getToast();
    toast.setMessage(options.message);
    toast.getElements('buttonsWrapper').empty();
    toast.focusedButton = null;
    toast.buttons = [];
    var isPositionValid = this.isPositionValid(options === null || options === void 0 ? void 0 : options.position);
    if (!isPositionValid) {
      this.positionToWindow();
    }
    if (options !== null && options !== void 0 && options.position && isPositionValid) {
      toast.setSettings('position', options.position);
    }
    if (options.buttons) {
      options.buttons.forEach(function (button) {
        toast.addButton(button);
      });
    }
    if (options.classes) {
      toast.getElements('widget').addClass(options.classes);
    }
    if (options.sticky) {
      toast.setSettings({
        hide: {
          auto: false,
          onClick: false
        }
      });
    }
    return toast.show();
  },
  isPositionValid: function isPositionValid(position) {
    var _position$of;
    var positionToCheck = (_position$of = position === null || position === void 0 ? void 0 : position.of) !== null && _position$of !== void 0 ? _position$of : this.getToast().getSettings('position').of;
    if (!positionToCheck) {
      return false;
    }
    return !!document.querySelector(positionToCheck);
  },
  positionToWindow: function positionToWindow() {
    var toast = this.getToast();
    var position = _objectSpread(_objectSpread({}, toast.getSettings('position')), {}, {
      my: 'right top',
      at: 'right-10 top+42',
      // 42px is the default admin bar height + 10px
      of: ''
    });
    toast.setSettings('position', position);
    toast.getElements('widget').addClass('dialog-position-window');
  },
  onInit: function onInit() {
    this.initToast();
  }
});

/***/ }),

/***/ "../assets/dev/js/utils/react.js":
/*!***************************************!*\
  !*** ../assets/dev/js/utils/react.js ***!
  \***************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports["default"] = void 0;
var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
var ReactDOM = _interopRequireWildcard(__webpack_require__(/*! react-dom */ "react-dom"));
var _client = __webpack_require__(/*! react-dom/client */ "../node_modules/react-dom/client.js");
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
/**
 * Support conditional rendering of a React App to the DOM, based on the React version.
 * We use `createRoot` when available, but fallback to `ReactDOM.render` for older versions.
 *
 * @param { React.ReactElement } app        The app to render.
 * @param { HTMLElement }        domElement The DOM element to render the app into.
 *
 * @return {{ unmount: () => void }} The unmount function.
 */
function render(app, domElement) {
  var unmountFunction;
  try {
    var root = (0, _client.createRoot)(domElement);
    root.render(app);
    unmountFunction = function unmountFunction() {
      root.unmount();
    };
  } catch (e) {
    // eslint-disable-next-line react/no-deprecated
    ReactDOM.render(app, domElement);
    unmountFunction = function unmountFunction() {
      // eslint-disable-next-line react/no-deprecated
      ReactDOM.unmountComponentAtNode(domElement);
    };
  }
  return {
    unmount: unmountFunction
  };
}
var _default = exports["default"] = {
  render: render
};

/***/ }),

/***/ "../assets/dev/js/utils/tiers.js":
/*!***************************************!*\
  !*** ../assets/dev/js/utils/tiers.js ***!
  \***************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.isTierAtLeast = exports.TIERS_PRIORITY = exports.TIERS = void 0;
var TIERS_PRIORITY = exports.TIERS_PRIORITY = Object.freeze(['free', 'essential', 'essential-oct2023', 'advanced', 'expert', 'agency']);

/**
 * @type {Readonly<{
 *     free: string;
 *     essential: string;
 *     'essential-oct2023': string;
 *     advanced: string;
 *     expert: string;
 *     agency: string;
 * }>}
 */
var TIERS = exports.TIERS = Object.freeze(TIERS_PRIORITY.reduce(function (acc, tier) {
  acc[tier] = tier;
  return acc;
}, {}));
var isTierAtLeast = exports.isTierAtLeast = function isTierAtLeast(currentTier, expectedTier) {
  var currentTierIndex = TIERS_PRIORITY.indexOf(currentTier);
  var expectedTierIndex = TIERS_PRIORITY.indexOf(expectedTier);
  if (-1 === currentTierIndex || -1 === expectedTierIndex) {
    return false;
  }
  return currentTierIndex >= expectedTierIndex;
};

/***/ }),

/***/ "../core/common/assets/js/utils/environment.js":
/*!*****************************************************!*\
  !*** ../core/common/assets/js/utils/environment.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports["default"] = void 0;
var matchUserAgent = function matchUserAgent(UserAgentStr) {
    return userAgent.indexOf(UserAgentStr) >= 0;
  },
  userAgent = navigator.userAgent,
  // Solution influenced by https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser

  // Opera 8.0+
  isOpera = !!window.opr && !!opr.addons || !!window.opera || matchUserAgent(' OPR/'),
  // Firefox 1.0+
  isFirefox = matchUserAgent('Firefox'),
  // Safari 3.0+ "[object HTMLElementConstructor]"
  isSafari = /^((?!chrome|android).)*safari/i.test(userAgent) || /constructor/i.test(window.HTMLElement) || function (p) {
    return '[object SafariRemoteNotification]' === p.toString();
  }(!window.safari || typeof safari !== 'undefined' && safari.pushNotification),
  // Internet Explorer 6-11
  isIE = /Trident|MSIE/.test(userAgent) && (/* @cc_on!@*/ false || !!document.documentMode),
  // Edge 20+
  isEdge = !isIE && !!window.StyleMedia || matchUserAgent('Edg'),
  // Google Chrome (Not accurate)
  isChrome = !!window.chrome && matchUserAgent('Chrome') && !(isEdge || isOpera),
  // Blink engine
  isBlink = matchUserAgent('Chrome') && !!window.CSS,
  // Apple Webkit engine
  isAppleWebkit = matchUserAgent('AppleWebKit') && !isBlink,
  isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0,
  environment = {
    isTouchDevice: isTouchDevice,
    appleWebkit: isAppleWebkit,
    blink: isBlink,
    chrome: isChrome,
    edge: isEdge,
    firefox: isFirefox,
    ie: isIE,
    mac: matchUserAgent('Macintosh'),
    opera: isOpera,
    safari: isSafari,
    webkit: matchUserAgent('AppleWebKit')
  };
var _default = exports["default"] = environment;

/***/ }),

/***/ "../core/common/assets/js/views/modal/header.js":
/*!******************************************************!*\
  !*** ../core/common/assets/js/views/modal/header.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"));
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; })(); }
var _default = exports["default"] = /*#__PURE__*/function (_Marionette$LayoutVie) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _Marionette$LayoutVie);
  return (0, _createClass2.default)(_default, [{
    key: "tagName",
    value: function tagName() {
      return 'header';
    }
  }, {
    key: "className",
    value: function className() {
      return 'elementor-templates-modal__header';
    }
  }, {
    key: "getTemplate",
    value: function getTemplate() {
      return '#tmpl-elementor-templates-modal__header';
    }
  }, {
    key: "regions",
    value: function regions() {
      return {
        logoArea: '.elementor-templates-modal__header__logo-area',
        tools: '#elementor-template-library-header-tools',
        menuArea: '.elementor-templates-modal__header__menu-area'
      };
    }
  }, {
    key: "ui",
    value: function ui() {
      return {
        closeModal: '.elementor-templates-modal__header__close'
      };
    }
  }, {
    key: "events",
    value: function events() {
      return {
        'click @ui.closeModal': 'onCloseModalClick'
      };
    }
  }, {
    key: "onRender",
    value: function onRender() {
      this.bindEscapeKey();
    }
  }, {
    key: "bindEscapeKey",
    value: function bindEscapeKey() {
      var _this = this;
      this.onDocumentKeyDown = function (event) {
        if ('Escape' === event.key) {
          _this.onCloseModalClick();
        }
      };
      document.addEventListener('keydown', this.onDocumentKeyDown);
    }
  }, {
    key: "onDestroy",
    value: function onDestroy() {
      if (this.onDocumentKeyDown) {
        document.removeEventListener('keydown', this.onDocumentKeyDown);
      }
    }
  }, {
    key: "templateHelpers",
    value: function templateHelpers() {
      return {
        closeType: this.getOption('closeType')
      };
    }
  }, {
    key: "onCloseModalClick",
    value: function onCloseModalClick() {
      this._parent._parent._parent.hideModal();
      var documentType = this.getDocumentType();
      var customEvent = new CustomEvent("core/modal/close/".concat(documentType));
      window.dispatchEvent(customEvent);
      if (this.isFloatingButtonLibraryClose()) {
        $e.internal('document/save/set-is-modified', {
          status: false
        });
        window.location.href = elementor.config.admin_floating_button_admin_url;
      }
    }
  }, {
    key: "getDocumentType",
    value: function getDocumentType() {
      var _elementor$config$doc, _elementor;
      var DEFAULT_TYPE = 'default';
      if ('undefined' === typeof window.elementor) {
        return DEFAULT_TYPE;
      }
      return (_elementor$config$doc = (_elementor = elementor) === null || _elementor === void 0 || (_elementor = _elementor.config) === null || _elementor === void 0 || (_elementor = _elementor.document) === null || _elementor === void 0 ? void 0 : _elementor.type) !== null && _elementor$config$doc !== void 0 ? _elementor$config$doc : DEFAULT_TYPE;
    }
  }, {
    key: "isFloatingButtonLibraryClose",
    value: function isFloatingButtonLibraryClose() {
      var _elementor$config, _elementor$config2;
      return window.elementor && ((_elementor$config = elementor.config) === null || _elementor$config === void 0 ? void 0 : _elementor$config.admin_floating_button_admin_url) && 'floating-buttons' === ((_elementor$config2 = elementor.config) === null || _elementor$config2 === void 0 || (_elementor$config2 = _elementor$config2.document) === null || _elementor$config2 === void 0 ? void 0 : _elementor$config2.type) && (this.$el.closest('.dialog-lightbox-widget-content').find('.elementor-template-library-template-floating_button').length || this.$el.closest('.dialog-lightbox-widget-content').find('#elementor-template-library-preview').length || this.$el.closest('.dialog-lightbox-widget-content').find('#elementor-template-library-templates-empty').length);
    }
  }]);
}(Marionette.LayoutView);

/***/ }),

/***/ "../core/common/assets/js/views/modal/layout.js":
/*!******************************************************!*\
  !*** ../core/common/assets/js/views/modal/layout.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 _header = _interopRequireDefault(__webpack_require__(/*! ./header */ "../core/common/assets/js/views/modal/header.js"));
var _logo = _interopRequireDefault(__webpack_require__(/*! ./logo */ "../core/common/assets/js/views/modal/logo.js"));
var _loading = _interopRequireDefault(__webpack_require__(/*! ./loading */ "../core/common/assets/js/views/modal/loading.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; })(); }
var _default = exports["default"] = /*#__PURE__*/function (_Marionette$LayoutVie) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _Marionette$LayoutVie);
  return (0, _createClass2.default)(_default, [{
    key: "el",
    value: function el() {
      return this.getModal().getElements('widget');
    }
  }, {
    key: "regions",
    value: function regions() {
      return {
        modalHeader: '.dialog-header',
        modalContent: '.dialog-lightbox-content',
        modalLoading: '.dialog-lightbox-loading'
      };
    }
  }, {
    key: "initialize",
    value: function initialize() {
      this.modalHeader.show(new _header.default(this.getHeaderOptions()));
    }
  }, {
    key: "getModal",
    value: function getModal() {
      if (!this.modal) {
        this.initModal();
      }
      return this.modal;
    }
  }, {
    key: "initModal",
    value: function initModal() {
      var modalOptions = {
        className: 'elementor-templates-modal',
        closeButton: false,
        draggable: false,
        hide: {
          onOutsideClick: false,
          onEscKeyPress: false
        }
      };
      jQuery.extend(true, modalOptions, this.getModalOptions());
      this.modal = elementorCommon.dialogsManager.createWidget('lightbox', modalOptions);
      this.modal.getElements('message').append(this.modal.addElement('content'), this.modal.addElement('loading'));
      if (modalOptions.draggable) {
        this.draggableModal();
      }
    }
  }, {
    key: "showModal",
    value: function showModal() {
      this.getModal().show();
    }
  }, {
    key: "hideModal",
    value: function hideModal() {
      this.getModal().hide();
    }
  }, {
    key: "draggableModal",
    value: function draggableModal() {
      var $modalWidgetContent = this.getModal().getElements('widgetContent');
      $modalWidgetContent.draggable({
        containment: 'parent',
        stop: function stop() {
          $modalWidgetContent.height('');
        }
      });
      $modalWidgetContent.css('position', 'absolute');
    }
  }, {
    key: "getModalOptions",
    value: function getModalOptions() {
      return {};
    }
  }, {
    key: "getLogoOptions",
    value: function getLogoOptions() {
      return {};
    }
  }, {
    key: "getHeaderOptions",
    value: function getHeaderOptions() {
      return {
        closeType: 'normal'
      };
    }
  }, {
    key: "getHeaderView",
    value: function getHeaderView() {
      return this.modalHeader.currentView;
    }
  }, {
    key: "showLoadingView",
    value: function showLoadingView() {
      this.modalLoading.show(new _loading.default());
      this.modalLoading.$el.show();
      this.modalContent.$el.hide();
    }
  }, {
    key: "hideLoadingView",
    value: function hideLoadingView() {
      this.modalContent.$el.show();
      this.modalLoading.$el.hide();
    }
  }, {
    key: "showLogo",
    value: function showLogo() {
      this.getHeaderView().logoArea.show(new _logo.default(this.getLogoOptions()));
    }
  }]);
}(Marionette.LayoutView);

/***/ }),

/***/ "../core/common/assets/js/views/modal/loading.js":
/*!*******************************************************!*\
  !*** ../core/common/assets/js/views/modal/loading.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"));
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; })(); }
var _default = exports["default"] = /*#__PURE__*/function (_Marionette$ItemView) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _Marionette$ItemView);
  return (0, _createClass2.default)(_default, [{
    key: "id",
    value: function id() {
      return 'elementor-template-library-loading';
    }
  }, {
    key: "getTemplate",
    value: function getTemplate() {
      return '#tmpl-elementor-template-library-loading';
    }
  }]);
}(Marionette.ItemView);

/***/ }),

/***/ "../core/common/assets/js/views/modal/logo.js":
/*!****************************************************!*\
  !*** ../core/common/assets/js/views/modal/logo.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"));
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; })(); }
var _default = exports["default"] = /*#__PURE__*/function (_Marionette$ItemView) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _Marionette$ItemView);
  return (0, _createClass2.default)(_default, [{
    key: "getTemplate",
    value: function getTemplate() {
      return '#tmpl-elementor-templates-modal__header__logo';
    }
  }, {
    key: "className",
    value: function className() {
      return 'elementor-templates-modal__header__logo';
    }
  }, {
    key: "events",
    value: function events() {
      return {
        click: 'onClick'
      };
    }
  }, {
    key: "templateHelpers",
    value: function templateHelpers() {
      return {
        title: this.getOption('title')
      };
    }
  }, {
    key: "onClick",
    value: function onClick() {
      var clickCallback = this.getOption('click');
      if (clickCallback) {
        clickCallback();
      }
    }
  }]);
}(Marionette.ItemView);

/***/ }),

/***/ "../core/kits/assets/js/commands/back.js":
/*!***********************************************!*\
  !*** ../core/kits/assets/js/commands/back.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"] = exports.Back = 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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _editorOneEvents = __webpack_require__(/*! elementor-editor-utils/editor-one-events */ "../assets/dev/js/editor/utils/editor-one-events.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; })(); }
var Back = exports.Back = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Back() {
    var _this;
    (0, _classCallCheck2.default)(this, Back);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, Back, [].concat(args));
    (0, _defineProperty2.default)(_this, "document", null);
    (0, _defineProperty2.default)(_this, "confirmDialog", null);
    (0, _defineProperty2.default)(_this, "unsavedChangesDialog", []);
    return _this;
  }
  (0, _inherits2.default)(Back, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Back, [{
    key: "apply",
    value: function apply() {
      var _panelHistory;
      var panelHistory = $e.routes.getHistory('panel');
      var currentRoute = (_panelHistory = panelHistory[panelHistory.length - 1]) === null || _panelHistory === void 0 ? void 0 : _panelHistory.route;

      // When at the root Site Settings page, back should behave like close —
      // switching back to the initial document and clearing the active-document query param.
      if (currentRoute === this.component.getNamespace() + '/menu') {
        this.getCloseConfirmDialog(event).show();
        return;
      }

      // If the user is on the global colors/typography page, and there are unsaved changes,
      // prompt the user with a confirmation dialog asking if they would like to save the changes.
      if (this.isGlobalRoute()) {
        var kit = elementor.config.kit_id;
        this.document = elementor.documents.get(kit);
        if (this.isDocumentChanged()) {
          this.resolveChanges().then(function () {
            return $e.routes.back('panel');
          });
          return;
        }
      }
      return $e.routes.back('panel');
    }
  }, {
    key: "markSessionSaved",
    value: function markSessionSaved() {
      var globalComponent = this.component;
      if (!globalComponent) {
        return;
      }
      globalComponent.siteSettingsSession.hasSaved = true;
      var currentTab = globalComponent.currentTab;
      var activeSection = null;
      try {
        var _panelView$getCurrent, _currentPage$content;
        var panelView = elementor.getPanelView();
        var currentPage = panelView === null || panelView === void 0 || (_panelView$getCurrent = panelView.getCurrentPageView) === null || _panelView$getCurrent === void 0 ? void 0 : _panelView$getCurrent.call(panelView);
        var contentView = currentPage === null || currentPage === void 0 || (_currentPage$content = currentPage.content) === null || _currentPage$content === void 0 ? void 0 : _currentPage$content.currentView;
        activeSection = (contentView === null || contentView === void 0 ? void 0 : contentView.activeSection) || null;
      } catch (e) {}
      var savedItem = activeSection ? "".concat(currentTab, " - ").concat(activeSection) : currentTab;
      if (savedItem) {
        globalComponent.trackSavedItem(savedItem);
      }
    }
  }, {
    key: "trackSiteSettingsSession",
    value: function trackSiteSettingsSession(targetType, state) {
      var _this$component$getSi, _this$component, _this$component$reset, _this$component2;
      var sessionData = ((_this$component$getSi = (_this$component = this.component).getSiteSettingsSessionData) === null || _this$component$getSi === void 0 ? void 0 : _this$component$getSi.call(_this$component)) || {};
      _editorOneEvents.EditorOneEventManager.sendSiteSettingsSession({
        targetType: targetType,
        visitedItems: sessionData.visitedItems || [],
        savedItems: sessionData.savedItems || [],
        state: state
      });
      (_this$component$reset = (_this$component2 = this.component).resetSiteSettingsSession) === null || _this$component$reset === void 0 || _this$component$reset.call(_this$component2);
    }
  }, {
    key: "getCloseConfirmDialog",
    value: function getCloseConfirmDialog(event) {
      var _this2 = this;
      if (!this.confirmDialog) {
        var modalOptions = {
          id: 'elementor-kit-warn-on-close',
          headerMessage: __('Exit', 'elementor'),
          message: __('Would you like to exit?', 'elementor'),
          position: {
            my: 'center center',
            at: 'center center'
          },
          strings: {
            confirm: __('Exit', 'elementor'),
            cancel: __('Cancel', 'elementor')
          },
          onConfirm: function onConfirm() {
            _this2.trackSiteSettingsSession('back', 'discard');
            $e.run('panel/global/close');
          }
        };
        this.confirmDialog = elementorCommon.dialogsManager.createWidget('confirm', modalOptions);
      }
      this.confirmDialog.setSettings('hide', {
        onEscKeyPress: !event
      });
      return this.confirmDialog;
    }
  }, {
    key: "isGlobalRoute",
    value: function isGlobalRoute() {
      var panelHistory = $e.routes.getHistory('panel');
      return /global\/\bglobal-colors|global-typography\b/.test(panelHistory[panelHistory.length - 1].route);
    }
  }, {
    key: "isDocumentChanged",
    value: function isDocumentChanged() {
      return this.document && this.document.editor.isChanged;
    }
  }, {
    key: "resolveChanges",
    value: function resolveChanges() {
      var _this3 = this;
      return new Promise(function (resolve) {
        _this3.getUnsavedChangesDialog(resolve).show();
      });
    }
  }, {
    key: "getUnsavedChangesDialog",
    value: function getUnsavedChangesDialog(resolve) {
      var _this4 = this;
      if (!this.document) {
        resolve();
        return;
      }
      var document = this.document;
      if (!this.unsavedChangesDialog[document]) {
        var modalOptions = {
          id: "elementor-".concat(document, "-save-changes"),
          headerMessage: __('Save Changes', 'elementor'),
          message: __("Would you like to save the changes you've made?", 'elementor'),
          position: {
            my: 'center center',
            at: 'center center'
          },
          strings: {
            confirm: __('Save', 'elementor'),
            cancel: __('Discard', 'elementor')
          },
          onConfirm: function onConfirm() {
            _this4.markSessionSaved();
            $e.run('document/save/update').then(function () {
              _this4.trackSiteSettingsSession('save', 'saved');
              resolve();
            });
          },
          onCancel: function onCancel() {
            $e.run('document/save/discard', {
              document: document
            }).then(function () {
              _this4.trackSiteSettingsSession('back', 'discard');
              resolve();
            });
          }
        };
        this.unsavedChangesDialog[document] = elementorCommon.dialogsManager.createWidget('confirm', modalOptions);
      }
      this.unsavedChangesDialog[document].setSettings('hide', {
        onEscKeyPress: !event
      });
      return this.unsavedChangesDialog[document];
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Back;

/***/ }),

/***/ "../core/kits/assets/js/commands/close.js":
/*!************************************************!*\
  !*** ../core/kits/assets/js/commands/close.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"] = exports.Close = 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 _editorOneEvents = __webpack_require__(/*! elementor-editor-utils/editor-one-events */ "../assets/dev/js/editor/utils/editor-one-events.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; })(); }
var Close = exports.Close = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Close() {
    (0, _classCallCheck2.default)(this, Close);
    return _callSuper(this, Close, arguments);
  }
  (0, _inherits2.default)(Close, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Close, [{
    key: "apply",
    value: function apply(args) {
      var _this$component$getSi2,
        _this$component3,
        _this = this;
      var mode = args.mode;

      // The kit is opened directly — no document switch needed, safe to track immediately.
      if (elementor.config.initial_document.id === parseInt(elementor.config.kit_id)) {
        var _this$component$siteS, _this$component$getSi, _this$component, _this$component$reset, _this$component2;
        var hasSaved = ((_this$component$siteS = this.component.siteSettingsSession) === null || _this$component$siteS === void 0 ? void 0 : _this$component$siteS.hasSaved) || false;
        var sessionData = ((_this$component$getSi = (_this$component = this.component).getSiteSettingsSessionData) === null || _this$component$getSi === void 0 ? void 0 : _this$component$getSi.call(_this$component)) || {};
        _editorOneEvents.EditorOneEventManager.sendSiteSettingsSession({
          targetType: 'close',
          visitedItems: sessionData.visitedItems || [],
          savedItems: sessionData.savedItems || [],
          state: hasSaved ? 'saved' : 'discard'
        });
        (_this$component$reset = (_this$component2 = this.component).resetSiteSettingsSession) === null || _this$component$reset === void 0 || _this$component$reset.call(_this$component2);
        return $e.run('panel/global/exit');
      }

      // Capture session data before the switch (it may be reset during onClose).
      var sessionSnapshot = ((_this$component$getSi2 = (_this$component3 = this.component).getSiteSettingsSessionData) === null || _this$component$getSi2 === void 0 ? void 0 : _this$component$getSi2.call(_this$component3)) || {};
      $e.internal('panel/state-loading');
      return $e.run('editor/documents/switch', {
        mode: mode,
        id: elementor.config.initial_document.id,
        onClose: function onClose(document) {
          if (document.isDraft()) {
            elementor.toggleDocumentCssFiles(document, true);
            elementor.settings.page.destroyControlsCSS();
          }
          $e.components.get('panel/global').close();
          $e.routes.clearHistory(_this.component.getServiceName());

          // The kit shouldn't be cached for next open. (it may be changed via create colors/typography).
          elementor.documents.invalidateCache(elementor.config.kit_id);
        }
      }).then(function () {
        var _sessionSnapshot$visi, _this$component$siteS2, _this$component$reset2, _this$component4;
        // Skip if session was already tracked and reset (e.g. by back.js dialog).
        if (!((_sessionSnapshot$visi = sessionSnapshot.visitedItems) !== null && _sessionSnapshot$visi !== void 0 && _sessionSnapshot$visi.length)) {
          return;
        }

        // Re-read hasSaved in case a save happened during the switch (e.g. "Save & leave").
        var hasSaved = sessionSnapshot.hasSaved || ((_this$component$siteS2 = _this.component.siteSettingsSession) === null || _this$component$siteS2 === void 0 ? void 0 : _this$component$siteS2.hasSaved) || false;
        var state = hasSaved ? 'saved' : 'discard';
        _editorOneEvents.EditorOneEventManager.sendSiteSettingsSession({
          targetType: 'close',
          visitedItems: sessionSnapshot.visitedItems,
          savedItems: sessionSnapshot.savedItems || [],
          state: state
        });
        (_this$component$reset2 = (_this$component4 = _this.component).resetSiteSettingsSession) === null || _this$component$reset2 === void 0 || _this$component$reset2.call(_this$component4);
      }).catch(function () {}).finally(function () {
        return $e.internal('panel/state-ready');
      });
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Close;

/***/ }),

/***/ "../core/kits/assets/js/commands/exit.js":
/*!***********************************************!*\
  !*** ../core/kits/assets/js/commands/exit.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"] = exports.Exit = 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"));
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; })(); }
var Exit = exports.Exit = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Exit() {
    (0, _classCallCheck2.default)(this, Exit);
    return _callSuper(this, Exit, arguments);
  }
  (0, _inherits2.default)(Exit, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Exit, [{
    key: "apply",
    value: function apply() {
      return $e.run('editor/documents/close', {
        id: elementor.config.kit_id,
        onClose: function onClose(document) {
          location = document.config.urls.exit_to_dashboard;
        }
      });
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Exit;

/***/ }),

/***/ "../core/kits/assets/js/commands/index.js":
/*!************************************************!*\
  !*** ../core/kits/assets/js/commands/index.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Back", ({
  enumerable: true,
  get: function get() {
    return _back.Back;
  }
}));
Object.defineProperty(exports, "Close", ({
  enumerable: true,
  get: function get() {
    return _close.Close;
  }
}));
Object.defineProperty(exports, "Exit", ({
  enumerable: true,
  get: function get() {
    return _exit.Exit;
  }
}));
Object.defineProperty(exports, "Open", ({
  enumerable: true,
  get: function get() {
    return _open.Open;
  }
}));
var _back = __webpack_require__(/*! ./back */ "../core/kits/assets/js/commands/back.js");
var _close = __webpack_require__(/*! ./close */ "../core/kits/assets/js/commands/close.js");
var _exit = __webpack_require__(/*! ./exit */ "../core/kits/assets/js/commands/exit.js");
var _open = __webpack_require__(/*! ./open */ "../core/kits/assets/js/commands/open.js");

/***/ }),

/***/ "../core/kits/assets/js/commands/open.js":
/*!***********************************************!*\
  !*** ../core/kits/assets/js/commands/open.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"] = exports.Open = 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"));
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; })(); }
var Open = exports.Open = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Open() {
    (0, _classCallCheck2.default)(this, Open);
    return _callSuper(this, Open, arguments);
  }
  (0, _inherits2.default)(Open, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Open, [{
    key: "apply",
    value: function apply() {
      var kit = elementor.documents.get(elementor.config.kit_id);
      if (kit && 'open' === kit.editor.status) {
        return jQuery.Deferred().resolve();
      }
      $e.routes.clearHistory(this.component.getServiceName());
      this.component.toggleHistoryClass();
      $e.internal('panel/state-loading');
      return $e.run('editor/documents/switch', {
        id: elementor.config.kit_id,
        mode: 'autosave'
      }).finally(function () {
        return $e.internal('panel/state-ready');
      });
    }
  }], [{
    key: "getInfo",
    value: function getInfo() {
      return {
        isSafe: true
      };
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Open;

/***/ }),

/***/ "../core/kits/assets/js/component.js":
/*!*******************************************!*\
  !*** ../core/kits/assets/js/component.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.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 hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks */ "../core/kits/assets/js/hooks/index.js"));
var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../core/kits/assets/js/commands/index.js"));
var _repeater = _interopRequireDefault(__webpack_require__(/*! ./repeater */ "../core/kits/assets/js/repeater.js"));
var _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-editor/component-base */ "../assets/dev/js/editor/component-base.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var _default = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function _default() {
    var _this;
    (0, _classCallCheck2.default)(this, _default);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, _default, [].concat(args));
    (0, _defineProperty2.default)(_this, "pages", {});
    (0, _defineProperty2.default)(_this, "siteSettingsSession", {
      visitedItems: [],
      savedItems: [],
      hasSaved: false
    });
    return _this;
  }
  (0, _inherits2.default)(_default, _ComponentBase);
  return (0, _createClass2.default)(_default, [{
    key: "__construct",
    value: function __construct(args) {
      _superPropGet(_default, "__construct", this, 3)([args]);
      elementor.on('panel:init', function () {
        args.manager.addPanelPages();
        args.manager.addPanelMenuItem();
      });
      elementor.hooks.addFilter('panel/header/behaviors', args.manager.addHeaderBehavior);
      elementor.addControlView('global-style-repeater', _repeater.default);
    }
  }, {
    key: "getNamespace",
    value: function getNamespace() {
      return 'panel/global';
    }
  }, {
    key: "defaultRoutes",
    value: function defaultRoutes() {
      var _this2 = this;
      return {
        menu: function menu() {
          elementor.getPanelView().setPage('kit_menu');
          _this2.currentTab = 'menu';
        }
      };
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }
  }, {
    key: "defaultShortcuts",
    value: function defaultShortcuts() {
      return {
        open: {
          keys: 'ctrl+k',
          dependency: function dependency() {
            return 'kit' !== elementor.documents.getCurrent().config.type && 'edit' === elementor.channels.dataEditMode.request('activeMode');
          }
        },
        back: {
          keys: 'esc',
          scopes: ['panel'],
          dependency: function dependency() {
            return elementor.documents.isCurrent(elementor.config.kit_id) && !jQuery('.dialog-widget:visible').length;
          }
        }
      };
    }
  }, {
    key: "defaultHooks",
    value: function defaultHooks() {
      return this.importHooks(hooks);
    }
  }, {
    key: "renderTab",
    value: function renderTab(tab, args) {
      if (tab !== this.currentTab) {
        this.currentTab = tab;
        this.trackVisitedTab(tab);
        elementor.getPanelView().setPage('kit_settings').content.currentView.activateTab(tab);
      }
      this.activateControl(args.activeControl);
    }
  }, {
    key: "trackVisitedTab",
    value: function trackVisitedTab(tabName) {
      if (tabName && !this.siteSettingsSession.visitedItems.includes(tabName)) {
        this.siteSettingsSession.visitedItems.push(tabName);
      }
    }
  }, {
    key: "trackSavedItem",
    value: function trackSavedItem(itemName) {
      if (itemName && !this.siteSettingsSession.savedItems.includes(itemName)) {
        this.siteSettingsSession.savedItems.push(itemName);
      }
    }
  }, {
    key: "getSiteSettingsSessionData",
    value: function getSiteSettingsSessionData() {
      return _objectSpread({}, this.siteSettingsSession);
    }
  }, {
    key: "resetSiteSettingsSession",
    value: function resetSiteSettingsSession() {
      this.siteSettingsSession = {
        visitedItems: [],
        savedItems: [],
        hasSaved: false
      };
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../core/kits/assets/js/globals/global-select-behavior.js":
/*!****************************************************************!*\
  !*** ../core/kits/assets/js/globals/global-select-behavior.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 _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"));
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; })(); }
var GlobalControlSelect = exports["default"] = /*#__PURE__*/function (_Marionette$Behavior) {
  function GlobalControlSelect() {
    (0, _classCallCheck2.default)(this, GlobalControlSelect);
    return _callSuper(this, GlobalControlSelect, arguments);
  }
  (0, _inherits2.default)(GlobalControlSelect, _Marionette$Behavior);
  return (0, _createClass2.default)(GlobalControlSelect, [{
    key: "getClassNames",
    value: function getClassNames() {
      return {
        previewItemsContainer: 'e-global__preview-items-container',
        previewItem: 'e-global__preview-item',
        selectedPreviewItem: 'e-global__preview-item--selected',
        manageButton: 'e-global__manage-button',
        popover: 'e-global__popover',
        popoverToggle: 'e-global__popover-toggle',
        popoverToggleActive: 'e-global__popover-toggle--active',
        controlGlobal: 'e-control-global',
        globalPopoverContainer: 'e-global__popover-container',
        globalPopoverTitle: 'e-global__popover-title',
        globalPopoverTitleText: 'e-global__popover-title-text',
        globalPopoverInfo: 'e-global__popover-info',
        globalPopoverInfoTooltip: 'e-global__popover-info-tooltip',
        confirmAddNewGlobal: 'e-global__confirm-add',
        confirmMessageText: '.e-global__confirm-message-text'
      };
    }

    // This method exists because the UI elements are printed after controls are already rendered.
  }, {
    key: "registerUiElements",
    value: function registerUiElements() {
      var popoverWidget = this.popover.getElements('widget');
      this.ui.manageGlobalsButton = popoverWidget.find(".".concat(this.getClassNames().manageButton));
    }
  }, {
    key: "registerPreviewElements",
    value: function registerPreviewElements() {
      var popoverWidget = this.popover.getElements('widget'),
        classes = this.getClassNames();
      this.ui.globalPreviewItems = popoverWidget.find(".".concat(classes.previewItem));
    }

    // This method exists because the UI elements are printed after controls are already rendered.
  }, {
    key: "registerEvents",
    value: function registerEvents() {
      var _this = this;
      this.ui.globalPopoverToggle.on('click', function (event) {
        return _this.toggleGlobalPopover(event);
      });
      this.ui.manageGlobalsButton.on('click', function () {
        var _this$view$getGlobalM = _this.view.getGlobalMeta(),
          route = _this$view$getGlobalM.route,
          args = {
            route: $e.routes.getHistory('panel').reverse()[0].route,
            container: _this.view.options.container
          };
        $e.run('panel/global/open', args).then(function () {
          return $e.route(route);
        });
        _this.popover.hide();
      });
    }
  }, {
    key: "addPreviewItemsClickListener",
    value: function addPreviewItemsClickListener() {
      var _this2 = this;
      this.ui.$globalPreviewItemsContainer.on('click', ".".concat(this.getClassNames().previewItem), function (event) {
        return _this2.applySavedGlobalValue(event.currentTarget.dataset.globalId);
      });
    }
  }, {
    key: "fetchGlobalValue",
    value: function fetchGlobalValue() {
      var _this3 = this;
      return $e.data.get(this.view.getGlobalKey()).then(function (globalData) {
        _this3.view.globalValue = globalData.data.value;
        _this3.onValueTypeChange();
        elementor.kitManager.renderGlobalVariables();
        _this3.view.applySavedValue();
        return globalData.data;
      }).catch(function (e) {
        var _e$data;
        // TODO: Need to be replaced by "e instanceof NotFoundError"
        if (404 !== (e === null || e === void 0 || (_e$data = e.data) === null || _e$data === void 0 ? void 0 : _e$data.status)) {
          return Promise.reject(e);
        }
        _this3.disableGlobalValue(false);
      });
    }
  }, {
    key: "setCurrentActivePreviewItem",
    value: function setCurrentActivePreviewItem() {
      var selectedClass = this.getClassNames().selectedPreviewItem,
        defaultGlobalsAreEnabled = elementor.config.globals.defaults_enabled[this.view.getGlobalMeta().controlType];
      if (this.activePreviewItem) {
        this.resetActivePreviewItem();
      }

      // If there is an active global on the control, get it.
      var globalKey = this.view.getGlobalKey();

      // If the control has no active global and no active custom value, check if there is a default global and use it.
      if (!globalKey && !this.view.getControlValue() && defaultGlobalsAreEnabled) {
        var _this$view$model$get;
        globalKey = (_this$view$model$get = this.view.model.get('global')) === null || _this$view$model$get === void 0 ? void 0 : _this$view$model$get.default;
      }
      if (!globalKey) {
        // If there is no active global or global default, reset the active preview item.
        this.activePreviewItem = null;
        return;
      }

      // Extract the Global's ID from the Global key
      var _$e$data$commandExtra = $e.data.commandExtractArgs(globalKey),
        args = _$e$data$commandExtra.args,
        globalId = args.query.id;

      // Get the active global's corresponding preview item in the Global Select Popover
      var $item = this.ui.globalPreviewItems.filter("[data-global-id=\"".concat(globalId, "\"]"));
      if (!$item) {
        return;
      }
      this.activePreviewItem = $item;
      this.activePreviewItem.addClass(selectedClass);
    }
  }, {
    key: "resetActivePreviewItem",
    value: function resetActivePreviewItem() {
      if (this.activePreviewItem) {
        this.activePreviewItem.removeClass(this.getClassNames().selectedPreviewItem);
      }
      this.activePreviewItem = null;
    }
  }, {
    key: "applySavedGlobalValue",
    value: function applySavedGlobalValue(globalId) {
      this.setGlobalValue(globalId);
      this.fetchGlobalValue();
      this.popover.hide();
    }

    // Update the behavior's components.
  }, {
    key: "onValueTypeChange",
    value: function onValueTypeChange() {
      this.updateCurrentGlobalName();
    }
  }, {
    key: "updateCurrentGlobalName",
    value: function updateCurrentGlobalName(value) {
      var _this4 = this;
      var classes = this.getClassNames();
      var globalTooltipText = '';
      if (value) {
        globalTooltipText = value;
      } else {
        value = this.view.getControlValue();
        var globalValue = this.view.getGlobalKey();
        if (!globalValue && !value && elementor.config.globals.defaults_enabled[this.view.getGlobalMeta().controlType]) {
          var _this$view$model$get2;
          globalValue = (_this$view$model$get2 = this.view.model.get('global')) === null || _this$view$model$get2 === void 0 ? void 0 : _this$view$model$get2.default;
        }
        if (globalValue) {
          // If there is a global value saved, get the global's name and display it.
          $e.data.get(globalValue).then(function (result) {
            var text = '';
            if (result.data.title) {
              text = result.data.title;
            } else {
              text = __('Default', 'elementor');
            }
            _this4.updateCurrentGlobalName(text);
          });
          this.ui.globalPopoverToggle.addClass(classes.popoverToggleActive);
          return;
        } else if (value) {
          // If there is a value and it is not a global, set the text to custom.
          globalTooltipText = __('Custom', 'elementor');
        } else {
          // If there is no value, set the text as default.
          globalTooltipText = __('Default', 'elementor');
        }

        // If there is no value, remove the 'active' class from the Global Toggle button.
        this.ui.globalPopoverToggle.removeClass(classes.popoverToggleActive);
      }

      // This is used in the Global Toggle Button's tooltip.
      this.globalName = globalTooltipText;
    }

    // The Global Control elements are initialized onRender and not with initialize() because their position depends
    // on elements that are not yet rendered when initialize() is called.
  }, {
    key: "onRender",
    value: function onRender() {
      var _this5 = this;
      this.printGlobalToggleButton();
      this.initGlobalPopover();
      if (this.view.getGlobalKey()) {
        // This setTimeout is here to overcome an issue with a requestAnimationFrame that runs in the Pickr library.
        setTimeout(function () {
          return _this5.fetchGlobalValue();
        }, 50);
      } else {
        this.onValueTypeChange();
      }
      this.$el.addClass(this.getClassNames().controlGlobal);
    }
  }, {
    key: "toggleGlobalPopover",
    value: function toggleGlobalPopover() {
      var _this6 = this;
      if (this.popover.isVisible()) {
        this.popover.hide();
      } else {
        if (this.ui.$globalPreviewItemsContainer) {
          // This element is not defined when the controls popover is first loaded.
          this.ui.$globalPreviewItemsContainer.remove();
        }
        this.view.getGlobalsList().then(function (globalsList) {
          // We just deleted the existing list of global preview items, so we need to rebuild it
          // with the updated list of globals, register the elements and re-add the on click listeners.
          _this6.addGlobalsListToPopover(globalsList);
          _this6.registerPreviewElements();
          _this6.addPreviewItemsClickListener();
          _this6.popover.show();
          _this6.setCurrentActivePreviewItem();
        });
      }
    }
  }, {
    key: "buildGlobalPopover",
    value: function buildGlobalPopover() {
      var _this7 = this;
      var classes = this.getClassNames(),
        $popover = jQuery('<div>', {
          class: classes.globalPopoverContainer
        }),
        $popoverTitle = jQuery('<div>', {
          class: classes.globalPopoverTitle
        }).html('<div class="' + classes.globalPopoverInfo + '"><i class="eicon-info-circle"></i></div><span class="' + classes.globalPopoverTitleText + '">' + this.getOption('popoverTitle') + '</span>'),
        $manageGlobalsLink = jQuery('<div>', {
          class: classes.manageButton
        }).html('<i class="eicon-cog"></i>');
      $popoverTitle.append($manageGlobalsLink);
      $popover.append($popoverTitle);
      this.manageButtonTooltipText = this.getOption('manageButtonText');
      $manageGlobalsLink.tipsy({
        title: function title() {
          return _this7.manageButtonTooltipText;
        },
        offset: 3,
        gravity: function gravity() {
          return 's';
        }
      });
      return $popover;
    }
  }, {
    key: "printGlobalToggleButton",
    value: function printGlobalToggleButton() {
      var _this8 = this;
      var $globalToggleButton = jQuery('<div>', {
          class: this.getClassNames().popoverToggle + ' elementor-control-unit-1'
        }),
        $globalPopoverToggleIcon = jQuery('<i>', {
          class: 'eicon-globe'
        }),
        $globalsLoadingSpinner = jQuery('<span>', {
          class: 'elementor-control-spinner'
        }).html('<i class="eicon-spinner eicon-animation-spin"></i></span>');
      $globalToggleButton.append($globalPopoverToggleIcon);
      this.$el.find('.elementor-control-input-wrapper').prepend($globalToggleButton);
      this.ui.globalPopoverToggle = $globalToggleButton;
      this.ui.globalPopoverToggleIcon = $globalPopoverToggleIcon;
      this.ui.$globalsLoadingSpinner = $globalsLoadingSpinner;

      // Add tooltip to the Global Popover toggle button, displaying the current Global Name / 'Default' / 'Custom'.
      this.ui.globalPopoverToggleIcon.tipsy({
        title: function title() {
          return _this8.globalName;
        },
        offset: 7,
        gravity: function gravity() {
          return 's';
        }
      });
      $globalToggleButton.before($globalsLoadingSpinner);
      this.ui.$globalsLoadingSpinner.hide();
    }
  }, {
    key: "initGlobalPopover",
    value: function initGlobalPopover() {
      this.popover = elementorCommon.dialogsManager.createWidget('simple', {
        className: this.getClassNames().popover,
        message: this.buildGlobalPopover(),
        effects: {
          show: 'show',
          hide: 'hide'
        },
        hide: {
          onOutsideClick: false
        },
        position: {
          my: "right top",
          at: "right bottom+5",
          of: this.ui.globalPopoverToggle,
          collision: 'fit flip',
          autoRefresh: true
        }
      });

      // Add Popover elements to the this.ui object and register click events.
      this.registerUiElementsAndEvents();
      this.createGlobalInfoTooltip();
    }
  }, {
    key: "addGlobalsListToPopover",
    value: function addGlobalsListToPopover(globalsList) {
      var $globalPreviewItemsContainer = jQuery('<div>', {
        class: 'e-global__preview-items-container'
      });
      this.view.buildGlobalsList(globalsList, $globalPreviewItemsContainer);
      this.popover.getElements('widget').find(".".concat(this.getClassNames().globalPopoverTitle)).after($globalPreviewItemsContainer);

      // The populated list is nested under the previews container element.
      this.ui.$globalPreviewItemsContainer = $globalPreviewItemsContainer;
    }
  }, {
    key: "registerUiElementsAndEvents",
    value: function registerUiElementsAndEvents() {
      // Instead of ui()
      this.registerUiElements();

      // Instead of events()
      this.registerEvents();
    }

    // This method is not called directly, but triggered by Marionette's .triggerMethod(),
    // in the onAddGlobalButtonClick() method in the color and typography global controls.
  }, {
    key: "onAddGlobalToList",
    value: function onAddGlobalToList($confirmMessage) {
      var _this9 = this;
      var classes = this.getClassNames();
      this.confirmNewGlobalModal = elementorCommon.dialogsManager.createWidget('confirm', {
        className: classes.confirmAddNewGlobal,
        headerMessage: this.getOption('newGlobalConfirmTitle'),
        message: $confirmMessage,
        strings: {
          confirm: __('Create', 'elementor'),
          cancel: __('Cancel', 'elementor')
        },
        hide: {
          onBackgroundClick: false
        },
        onConfirm: function onConfirm() {
          return _this9.onConfirmNewGlobal();
        },
        onShow: function onShow() {
          // Put focus on the naming input.
          var modalWidget = _this9.confirmNewGlobalModal.getElements('widget');
          _this9.ui.globalNameInput = modalWidget.find('input').focus();
          _this9.ui.confirmMessageText = modalWidget.find(classes.confirmMessageText);
          _this9.ui.globalNameInput.on('input', function () {
            return _this9.onAddGlobalConfirmInputChange();
          });
        }
      });
      this.confirmNewGlobalModal.show();
    }
  }, {
    key: "onAddGlobalConfirmInputChange",
    value: function onAddGlobalConfirmInputChange() {
      if (!this.view.globalsList) {
        return;
      }
      var messageContent;
      for (var _i = 0, _Object$values = Object.values(this.view.globalsList); _i < _Object$values.length; _i++) {
        var globalValue = _Object$values[_i];
        if (this.ui.globalNameInput.val() === globalValue.title) {
          messageContent = this.view.getNameAlreadyExistsMessage();
          break;
        } else {
          messageContent = this.view.getConfirmTextMessage();
        }
      }
      this.ui.confirmMessageText.html(messageContent);
    }
  }, {
    key: "onConfirmNewGlobal",
    value: function onConfirmNewGlobal() {
      var globalMeta = this.view.getGlobalMeta();
      globalMeta.title = this.ui.globalNameInput.val();
      this.createNewGlobal(globalMeta);
    }
  }, {
    key: "createNewGlobal",
    value: function createNewGlobal(globalMeta) {
      var _this0 = this;
      this.ui.$globalsLoadingSpinner.show();
      $e.run(globalMeta.commandName + '/create', {
        container: this.view.container,
        setting: globalMeta.key,
        // Group control name
        title: globalMeta.title
      }).then(function (result) {
        _this0.applySavedGlobalValue(result.data.id);
        _this0.ui.$globalsLoadingSpinner.hide();
      });
    }
  }, {
    key: "setGlobalValue",
    value: function setGlobalValue(globalId) {
      var command = '';
      var settings = {};
      if (this.view.getGlobalKey()) {
        // If a global setting is already active, switch them without disabling globals.
        command = 'document/globals/settings';
      } else {
        // If the active setting is NOT a global, enable globals and apply the selected global.
        command = 'document/globals/enable';
      }

      // Colors / typography
      settings[this.view.model.get('name')] = this.view.getGlobalCommand() + '?id=' + globalId;

      // Trigger async render.
      $e.run(command, {
        container: this.view.options.container,
        settings: settings
      });
    }

    // The unset method is triggered from the controls via triggerMethod.
  }, {
    key: "onUnsetGlobalValue",
    value: function onUnsetGlobalValue() {
      this.disableGlobalValue();
    }
  }, {
    key: "onUnlinkGlobalDefault",
    value: function onUnlinkGlobalDefault() {
      var _this1 = this;
      var globalMeta = this.view.getGlobalMeta();
      $e.run('document/globals/unlink', {
        container: this.view.container,
        globalValue: this.view.model.get('global').default,
        setting: globalMeta.key,
        options: {
          external: true
        }
      }).then(function () {
        _this1.onValueTypeChange();
        _this1.view.globalValue = null;
        _this1.resetActivePreviewItem();
      });
    }
  }, {
    key: "createGlobalInfoTooltip",
    value: function createGlobalInfoTooltip() {
      var _this10 = this;
      var classes = this.getClassNames(),
        $infoIcon = this.popover.getElements('widget').find(".".concat(classes.globalPopoverInfo));
      this.globalInfoTooltip = elementorCommon.dialogsManager.createWidget('simple', {
        className: classes.globalPopoverInfoTooltip,
        message: this.getOption('tooltipText'),
        effects: {
          show: 'show',
          hide: 'hide'
        },
        position: {
          my: "left bottom",
          at: "left top+9",
          of: this.popover.getElements('widget'),
          autoRefresh: true
        }
      });
      $infoIcon.on({
        mouseenter: function mouseenter() {
          return _this10.globalInfoTooltip.show();
        },
        mouseleave: function mouseleave() {
          return _this10.globalInfoTooltip.hide();
        }
      });
    }
  }, {
    key: "disableGlobalValue",
    value: function disableGlobalValue() {
      var _this11 = this;
      var restore = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
      var globalMeta = this.view.getGlobalMeta();
      return $e.run('document/globals/disable', {
        container: this.view.container,
        settings: (0, _defineProperty2.default)({}, globalMeta.key, ''),
        options: {
          restore: restore
        }
      }).then(function () {
        _this11.onValueTypeChange();
        _this11.view.globalValue = null;
        _this11.resetActivePreviewItem();
      });
    }
  }]);
}(Marionette.Behavior);

/***/ }),

/***/ "../core/kits/assets/js/hooks/data/globals/base-globals-update.js":
/*!************************************************************************!*\
  !*** ../core/kits/assets/js/hooks/data/globals/base-globals-update.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"] = exports.BaseGlobalsUpdate = 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"));
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; })(); }
var BaseGlobalsUpdate = exports.BaseGlobalsUpdate = /*#__PURE__*/function (_$e$modules$hookData$) {
  function BaseGlobalsUpdate() {
    (0, _classCallCheck2.default)(this, BaseGlobalsUpdate);
    return _callSuper(this, BaseGlobalsUpdate, arguments);
  }
  (0, _inherits2.default)(BaseGlobalsUpdate, _$e$modules$hookData$);
  return (0, _createClass2.default)(BaseGlobalsUpdate, [{
    key: "getContainerType",
    value: function getContainerType() {
      return 'document';
    }
  }, {
    key: "getConditions",
    value: function getConditions() {
      return $e.routes.isPartOf('panel/global');
    }
  }, {
    key: "getRepeaterName",
    value: function getRepeaterName() {
      elementorModules.ForceMethodImplementation();
    }
  }, {
    key: "applyModel",
    value: function applyModel(model, id, value) {
      // eslint-disable-line no-unused-vars
      elementorModules.ForceMethodImplementation();
    }
  }, {
    key: "apply",
    value: function apply(args, result) {
      var _this = this;
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers,
        model = Object.assign({}, result.data);
      var id = model.id,
        value = model.value;
      delete model.id;
      delete model.value;
      model._id = id;
      this.applyModel(model, value);
      containers.forEach(function (container) {
        $e.run('document/repeater/insert', {
          container: container,
          model: model,
          name: _this.getRepeaterName()
        });
      });
    }
  }]);
}($e.modules.hookData.After);
var _default = exports["default"] = BaseGlobalsUpdate;

/***/ }),

/***/ "../core/kits/assets/js/hooks/data/globals/colors/globals-update-colors.js":
/*!*********************************************************************************!*\
  !*** ../core/kits/assets/js/hooks/data/globals/colors/globals-update-colors.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"] = exports.KitGlobalsUpdateColors = 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 _baseGlobalsUpdate = _interopRequireDefault(__webpack_require__(/*! ../base-globals-update */ "../core/kits/assets/js/hooks/data/globals/base-globals-update.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; })(); }
var KitGlobalsUpdateColors = exports.KitGlobalsUpdateColors = /*#__PURE__*/function (_BaseGlobalsUpdate) {
  function KitGlobalsUpdateColors() {
    (0, _classCallCheck2.default)(this, KitGlobalsUpdateColors);
    return _callSuper(this, KitGlobalsUpdateColors, arguments);
  }
  (0, _inherits2.default)(KitGlobalsUpdateColors, _BaseGlobalsUpdate);
  return (0, _createClass2.default)(KitGlobalsUpdateColors, [{
    key: "getCommand",
    value: function getCommand() {
      return 'globals/colors/create';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'globals-update-colors-/globals/colors/create';
    }
  }, {
    key: "getRepeaterName",
    value: function getRepeaterName() {
      return 'custom_colors';
    }
  }, {
    key: "applyModel",
    value: function applyModel(model, value) {
      model.color = value;
    }
  }]);
}(_baseGlobalsUpdate.default);
var _default = exports["default"] = KitGlobalsUpdateColors;

/***/ }),

/***/ "../core/kits/assets/js/hooks/data/globals/typography/globals-update-typography.js":
/*!*****************************************************************************************!*\
  !*** ../core/kits/assets/js/hooks/data/globals/typography/globals-update-typography.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"] = exports.KitGlobalsUpdateTypography = 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 _baseGlobalsUpdate = _interopRequireDefault(__webpack_require__(/*! ../base-globals-update */ "../core/kits/assets/js/hooks/data/globals/base-globals-update.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; })(); }
var KitGlobalsUpdateTypography = exports.KitGlobalsUpdateTypography = /*#__PURE__*/function (_BaseGlobalsUpdate) {
  function KitGlobalsUpdateTypography() {
    (0, _classCallCheck2.default)(this, KitGlobalsUpdateTypography);
    return _callSuper(this, KitGlobalsUpdateTypography, arguments);
  }
  (0, _inherits2.default)(KitGlobalsUpdateTypography, _BaseGlobalsUpdate);
  return (0, _createClass2.default)(KitGlobalsUpdateTypography, [{
    key: "getCommand",
    value: function getCommand() {
      return 'globals/typography/create';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'globals-update-typography-/globals/typography/create';
    }
  }, {
    key: "getRepeaterName",
    value: function getRepeaterName() {
      return 'custom_typography';
    }
  }, {
    key: "applyModel",
    value: function applyModel(model, value) {
      Object.assign(model, value);
    }
  }]);
}(_baseGlobalsUpdate.default);
var _default = exports["default"] = KitGlobalsUpdateTypography;

/***/ }),

/***/ "../core/kits/assets/js/hooks/index.js":
/*!*********************************************!*\
  !*** ../core/kits/assets/js/hooks/index.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "KitAddMenuItems", ({
  enumerable: true,
  get: function get() {
    return _addMenuItems.KitAddMenuItems;
  }
}));
Object.defineProperty(exports, "KitAfterSave", ({
  enumerable: true,
  get: function get() {
    return _after.KitAfterSave;
  }
}));
Object.defineProperty(exports, "KitBackToRouteHistory", ({
  enumerable: true,
  get: function get() {
    return _backToRouteHistory.KitBackToRouteHistory;
  }
}));
Object.defineProperty(exports, "KitDeleteGlobalsCache", ({
  enumerable: true,
  get: function get() {
    return _deleteGlobalsCache.KitDeleteGlobalsCache;
  }
}));
Object.defineProperty(exports, "KitGlobalsUpdateColors", ({
  enumerable: true,
  get: function get() {
    return _globalsUpdateColors.KitGlobalsUpdateColors;
  }
}));
Object.defineProperty(exports, "KitGlobalsUpdateTypography", ({
  enumerable: true,
  get: function get() {
    return _globalsUpdateTypography.KitGlobalsUpdateTypography;
  }
}));
Object.defineProperty(exports, "KitRemoveEditorActiveCSSDocumentsOpen", ({
  enumerable: true,
  get: function get() {
    return _removeEditorActiveCss.KitRemoveEditorActiveCSSDocumentsOpen;
  }
}));
Object.defineProperty(exports, "KitRemoveEditorActiveCSSPanelOpen", ({
  enumerable: true,
  get: function get() {
    return _removeEditorActiveCss2.KitRemoveEditorActiveCSSPanelOpen;
  }
}));
Object.defineProperty(exports, "KitRemovePreviewDeletedVariables", ({
  enumerable: true,
  get: function get() {
    return _removePreviewDeletedVariables.KitRemovePreviewDeletedVariables;
  }
}));
Object.defineProperty(exports, "KitSaveRouteHistory", ({
  enumerable: true,
  get: function get() {
    return _saveRouteHistory.KitSaveRouteHistory;
  }
}));
Object.defineProperty(exports, "KitUpdateBreakpointsPreview", ({
  enumerable: true,
  get: function get() {
    return _updateBreakpointsPreview.KitUpdateBreakpointsPreview;
  }
}));
Object.defineProperty(exports, "KitUpdateLightboxPreview", ({
  enumerable: true,
  get: function get() {
    return _updateLightboxPreview.KitUpdateLightboxPreview;
  }
}));
Object.defineProperty(exports, "KitUpdateStretchContainer", ({
  enumerable: true,
  get: function get() {
    return _updateStretchContainer.KitUpdateStretchContainer;
  }
}));
var _globalsUpdateColors = __webpack_require__(/*! ./data/globals/colors/globals-update-colors */ "../core/kits/assets/js/hooks/data/globals/colors/globals-update-colors.js");
var _globalsUpdateTypography = __webpack_require__(/*! ./data/globals/typography/globals-update-typography */ "../core/kits/assets/js/hooks/data/globals/typography/globals-update-typography.js");
var _deleteGlobalsCache = __webpack_require__(/*! ./ui/document/save/save/delete-globals-cache */ "../core/kits/assets/js/hooks/ui/document/save/save/delete-globals-cache.js");
var _after = __webpack_require__(/*! ./ui/document/save/save/after */ "../core/kits/assets/js/hooks/ui/document/save/save/after.js");
var _updateBreakpointsPreview = __webpack_require__(/*! ./ui/document/elements/settings/update-breakpoints-preview */ "../core/kits/assets/js/hooks/ui/document/elements/settings/update-breakpoints-preview.js");
var _updateLightboxPreview = __webpack_require__(/*! ./ui/document/elements/settings/update-lightbox-preview */ "../core/kits/assets/js/hooks/ui/document/elements/settings/update-lightbox-preview.js");
var _updateStretchContainer = __webpack_require__(/*! ./ui/document/elements/settings/update-stretch-container */ "../core/kits/assets/js/hooks/ui/document/elements/settings/update-stretch-container.js");
var _saveRouteHistory = __webpack_require__(/*! ./ui/panel/global/open/save-route-history */ "../core/kits/assets/js/hooks/ui/panel/global/open/save-route-history.js");
var _removeEditorActiveCss = __webpack_require__(/*! ./ui/editor/documents/open/remove-editor-active-css */ "../core/kits/assets/js/hooks/ui/editor/documents/open/remove-editor-active-css.js");
var _removeEditorActiveCss2 = __webpack_require__(/*! ./ui/panel/open/remove-editor-active-css */ "../core/kits/assets/js/hooks/ui/panel/open/remove-editor-active-css.js");
var _backToRouteHistory = __webpack_require__(/*! ./ui/panel/global/close/back-to-route-history */ "../core/kits/assets/js/hooks/ui/panel/global/close/back-to-route-history.js");
var _removePreviewDeletedVariables = __webpack_require__(/*! ./ui/document/repeater/remove/remove-preview-deleted-variables */ "../core/kits/assets/js/hooks/ui/document/repeater/remove/remove-preview-deleted-variables.js");
var _addMenuItems = __webpack_require__(/*! ./ui/editor/documents/load/add-menu-items */ "../core/kits/assets/js/hooks/ui/editor/documents/load/add-menu-items.js");

/***/ }),

/***/ "../core/kits/assets/js/hooks/ui/document/elements/settings/update-breakpoints-preview.js":
/*!************************************************************************************************!*\
  !*** ../core/kits/assets/js/hooks/ui/document/elements/settings/update-breakpoints-preview.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.KitUpdateBreakpointsPreview = void 0;
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"));
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; })(); }
var KitUpdateBreakpointsPreview = exports.KitUpdateBreakpointsPreview = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  function KitUpdateBreakpointsPreview() {
    (0, _classCallCheck2.default)(this, KitUpdateBreakpointsPreview);
    return _callSuper(this, KitUpdateBreakpointsPreview, arguments);
  }
  (0, _inherits2.default)(KitUpdateBreakpointsPreview, _$e$modules$hookUI$Af);
  return (0, _createClass2.default)(KitUpdateBreakpointsPreview, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'kit-update-breakpoints-preview';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'document';
    }
  }, {
    key: "getConditions",
    value: function getConditions() {
      return 'kit' === elementor.documents.getCurrent().config.type;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var settings = args.settings;
      if (settings.active_breakpoints) {
        // Updating the current document config necessary, even if the page has to be reloaded for these settings
        // to take place, because users can add breakpoints and then immediately choose a value for them, before
        // saving the site settings. The breakpoint control's validator needs to have the actual active breakpoints
        // in the panel at that moment breakpoints config in order to validate the user input properly.
        elementor.documents.currentDocument.config.settings.settings.active_breakpoints = settings.active_breakpoints;

        // This flag is used to notify users that if they make a change to the active breakpoints list, they need
        // to reload the editor for the changes to take effect.
        elementor.activeBreakpointsUpdated = true;

        // If this is the modified setting, no need to do further checks.
        return;
      }

      // If a breakpoint value was updated, update the value in the config.
      Object.entries(settings).forEach(function (_ref) {
        var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
          key = _ref2[0],
          value = _ref2[1];
        if (key.startsWith('viewport_')) {
          var keyWithoutPrefix = key.replace('viewport_', '');
          // Update both the config for all breakpoints and the one for active breakpoints.

          if (!value) {
            value = elementorFrontend.config.responsive.breakpoints[keyWithoutPrefix].default_value;
          }
          elementorFrontend.config.responsive.breakpoints[keyWithoutPrefix].value = value;
        }
      });
      elementor.updatePreviewResizeOptions(true);
    }
  }]);
}($e.modules.hookUI.After);

/***/ }),

/***/ "../core/kits/assets/js/hooks/ui/document/elements/settings/update-lightbox-preview.js":
/*!*********************************************************************************************!*\
  !*** ../core/kits/assets/js/hooks/ui/document/elements/settings/update-lightbox-preview.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"] = exports.KitUpdateLightboxPreview = void 0;
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"));
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; })(); }
/**
 * On change kit lightbox settings - update the lightbox preview config.
 */
var KitUpdateLightboxPreview = exports.KitUpdateLightboxPreview = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  function KitUpdateLightboxPreview() {
    (0, _classCallCheck2.default)(this, KitUpdateLightboxPreview);
    return _callSuper(this, KitUpdateLightboxPreview, arguments);
  }
  (0, _inherits2.default)(KitUpdateLightboxPreview, _$e$modules$hookUI$Af);
  return (0, _createClass2.default)(KitUpdateLightboxPreview, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'kit-update-lightbox-preview';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'document';
    }
  }, {
    key: "getConditions",
    value: function getConditions() {
      return 'kit' === elementor.documents.getCurrent().config.type;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var settings = args.settings;
      Object.entries(settings).forEach(function (_ref) {
        var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
          key = _ref2[0],
          value = _ref2[1];
        if (-1 !== key.indexOf('lightbox')) {
          elementorFrontend.config.kit[key] = value;
        }
      });
    }
  }]);
}($e.modules.hookUI.After);
var _default = exports["default"] = KitUpdateLightboxPreview;

/***/ }),

/***/ "../core/kits/assets/js/hooks/ui/document/elements/settings/update-stretch-container.js":
/*!**********************************************************************************************!*\
  !*** ../core/kits/assets/js/hooks/ui/document/elements/settings/update-stretch-container.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"] = exports.KitUpdateStretchContainer = void 0;
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"));
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; })(); }
/**
 * On change kit stretch container settings - update the preview stretched sections.
 */
var KitUpdateStretchContainer = exports.KitUpdateStretchContainer = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  function KitUpdateStretchContainer() {
    (0, _classCallCheck2.default)(this, KitUpdateStretchContainer);
    return _callSuper(this, KitUpdateStretchContainer, arguments);
  }
  (0, _inherits2.default)(KitUpdateStretchContainer, _$e$modules$hookUI$Af);
  return (0, _createClass2.default)(KitUpdateStretchContainer, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'kit-update-stretch-container';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'document';
    }
  }, {
    key: "getConditions",
    value: function getConditions() {
      return 'kit' === elementor.documents.getCurrent().config.type;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var settings = args.settings;
      Object.entries(settings).forEach(function (_ref) {
        var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
          key = _ref2[0],
          value = _ref2[1];
        if ('stretched_section_container' === key) {
          elementorFrontend.config.kit[key] = value;
          elementor.channels.editor.trigger('kit:change:stretchContainer');
        }
      });
    }
  }]);
}($e.modules.hookUI.After);
var _default = exports["default"] = KitUpdateStretchContainer;

/***/ }),

/***/ "../core/kits/assets/js/hooks/ui/document/repeater/remove/remove-preview-deleted-variables.js":
/*!****************************************************************************************************!*\
  !*** ../core/kits/assets/js/hooks/ui/document/repeater/remove/remove-preview-deleted-variables.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.KitRemovePreviewDeletedVariables = 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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.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; })(); }
/**
 * On delete a design system item - the used variables on the preview frame are
 * invalid and cause the elements to get the user-agent default style instead of
 * inherit higher CSS rules.
 *
 * The hook finds and removes all deleted item variables from the preview inline styles.
 */
var KitRemovePreviewDeletedVariables = exports.KitRemovePreviewDeletedVariables = /*#__PURE__*/function (_$e$modules$hookUI$Be) {
  function KitRemovePreviewDeletedVariables() {
    var _this;
    (0, _classCallCheck2.default)(this, KitRemovePreviewDeletedVariables);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, KitRemovePreviewDeletedVariables, [].concat(args));
    (0, _defineProperty2.default)(_this, "controls", ['custom_colors', 'custom_typography']);
    return _this;
  }
  (0, _inherits2.default)(KitRemovePreviewDeletedVariables, _$e$modules$hookUI$Be);
  return (0, _createClass2.default)(KitRemovePreviewDeletedVariables, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/repeater/remove';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'kit-remove-preview-deleted-variables';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'document';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return this.controls.includes(args.name) && 'kit' === elementor.documents.getCurrent().config.type;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _this2 = this;
      // Store on component in order to use it in undo hook.
      this.component = $e.components.get('panel/global');
      this.component.tempStyle = this.component.tempStyle || {};
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers,
        kitCSSId = "elementor-style-page-".concat(elementor.config.kit_id);
      containers.forEach(function (container) {
        var item = container.repeaters[args.name].children[args.index],
          stylesheets = Object.values(elementor.$previewContents[0].styleSheets).filter(function (stylesheet) {
            // Don't touch the kit CSS itself.
            return kitCSSId !== stylesheet.ownerNode.id && stylesheet.ownerNode.innerHTML.includes(item.id);
          });
        stylesheets.forEach(function (stylesheet) {
          _this2.component.tempStyle[item.id] = _this2.extractVariables(stylesheet.cssRules, item.id);
        });
      });
    }
  }, {
    key: "extractVariables",
    value: function extractVariables(cssRules, id) {
      var variablesRules = {};
      Object.values(cssRules).forEach(function (rule) {
        if (!rule.style) {
          // TODO Handle CSSMediaRule.
          return;
        }
        variablesRules[rule.selectorText] = {};

        // Get the original properties for undo.
        for (var i = 0; i < rule.style.length; i++) {
          var property = rule.style[i],
            value = rule.style[property];
          if (value.includes(id)) {
            variablesRules[rule.selectorText][property] = value;
          }
        }

        // Delete in a separated loop, because it changes the `style.length`.
        Object.keys(variablesRules[rule.selectorText]).forEach(function (property) {
          rule.style[property] = '';
        });
      });
      return variablesRules;
    }
  }]);
}($e.modules.hookUI.Before);

/***/ }),

/***/ "../core/kits/assets/js/hooks/ui/document/save/save/after.js":
/*!*******************************************************************!*\
  !*** ../core/kits/assets/js/hooks/ui/document/save/save/after.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"] = exports.KitAfterSave = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/data/after */ "../modules/web-cli/assets/js/modules/hooks/data/after.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; })(); }
var KitAfterSave = exports.KitAfterSave = /*#__PURE__*/function (_After) {
  function KitAfterSave() {
    (0, _classCallCheck2.default)(this, KitAfterSave);
    return _callSuper(this, KitAfterSave, arguments);
  }
  (0, _inherits2.default)(KitAfterSave, _After);
  return (0, _createClass2.default)(KitAfterSave, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/save/save';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var status = args.status,
        _args$document = args.document,
        document = _args$document === void 0 ? elementor.documents.getCurrent() : _args$document;
      return 'publish' === status && 'kit' === document.config.type;
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'kit-footer-saver-after-save';
    }
  }, {
    key: "apply",
    value: function apply(args) {
      this.trackSiteSettingsSave();

      // On save clear cache of all edited documents and dynamic tags.
      // This is needed because when returning to the editor after saving the kit, it was still displaying the old data.
      this.clearDocumentCache();
      this.clearDynamicTagsCache();
      if ('publish' === args.status) {
        elementor.notifications.showToast({
          message: __('Your changes have been updated.', 'elementor'),
          buttons: [{
            name: 'back_to_editor',
            text: __('Back to Editor', 'elementor'),
            callback: function callback() {
              $e.run('panel/global/close');
            }
          }]
        });
      }
      if (elementor.activeBreakpointsUpdated) {
        var reloadConfirm = elementorCommon.dialogsManager.createWidget('alert', {
          id: 'elementor-save-kit-refresh-page',
          headerMessage: __('Reload Elementor Editor', 'elementor'),
          message: __('You have made modifications to the list of Active Breakpoints. For these changes to take effect, you need to reload Elementor Editor.', 'elementor'),
          position: {
            my: 'center center',
            at: 'center center'
          },
          strings: {
            confirm: __('Reload Now', 'elementor')
          },
          onConfirm: function onConfirm() {
            return location.reload();
          }
        });
        reloadConfirm.show();
      }
    }
  }, {
    key: "trackSiteSettingsSave",
    value: function trackSiteSettingsSave() {
      var globalComponent = $e.components.get('panel/global');
      if (!globalComponent) {
        return;
      }
      var currentTab = globalComponent.currentTab;
      var activeSection = null;
      try {
        var _panelView$getCurrent, _currentPage$content;
        var panelView = elementor.getPanelView();
        var currentPage = panelView === null || panelView === void 0 || (_panelView$getCurrent = panelView.getCurrentPageView) === null || _panelView$getCurrent === void 0 ? void 0 : _panelView$getCurrent.call(panelView);
        var contentView = currentPage === null || currentPage === void 0 || (_currentPage$content = currentPage.content) === null || _currentPage$content === void 0 ? void 0 : _currentPage$content.currentView;
        activeSection = (contentView === null || contentView === void 0 ? void 0 : contentView.activeSection) || null;
      } catch (e) {}
      var savedItem = activeSection ? "".concat(currentTab, " - ").concat(activeSection) : currentTab;
      if (savedItem) {
        globalComponent.trackSavedItem(savedItem);
      }
      globalComponent.siteSettingsSession.hasSaved = true;
    }
  }, {
    key: "clearDocumentCache",
    value: function clearDocumentCache() {
      Object.keys(elementor.documents.documents).forEach(function (id) {
        elementor.documents.invalidateCache(id);
      });
    }
  }, {
    key: "clearDynamicTagsCache",
    value: function clearDynamicTagsCache() {
      elementor.dynamicTags.cleanCache();
      elementor.dynamicTags.loadCacheRequests();
    }
  }]);
}(_after.default);
var _default = exports["default"] = KitAfterSave;

/***/ }),

/***/ "../core/kits/assets/js/hooks/ui/document/save/save/delete-globals-cache.js":
/*!**********************************************************************************!*\
  !*** ../core/kits/assets/js/hooks/ui/document/save/save/delete-globals-cache.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"] = exports.KitDeleteGlobalsCache = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/data/after */ "../modules/web-cli/assets/js/modules/hooks/data/after.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; })(); }
var KitDeleteGlobalsCache = exports.KitDeleteGlobalsCache = /*#__PURE__*/function (_After) {
  function KitDeleteGlobalsCache() {
    (0, _classCallCheck2.default)(this, KitDeleteGlobalsCache);
    return _callSuper(this, KitDeleteGlobalsCache, arguments);
  }
  (0, _inherits2.default)(KitDeleteGlobalsCache, _After);
  return (0, _createClass2.default)(KitDeleteGlobalsCache, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/save/save';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var status = args.status,
        _args$document = args.document,
        document = _args$document === void 0 ? elementor.documents.getCurrent() : _args$document;
      return 'publish' === status && 'kit' === document.config.type;
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'document/save/save::update-globals-cache';
    }
  }, {
    key: "apply",
    value: function apply() {
      // After kit updates - remove globals from cache and force re-request from server.
      $e.components.get('globals').refreshGlobalData();
    }
  }]);
}(_after.default);
var _default = exports["default"] = KitDeleteGlobalsCache;

/***/ }),

/***/ "../core/kits/assets/js/hooks/ui/editor/documents/load/add-menu-items.js":
/*!*******************************************************************************!*\
  !*** ../core/kits/assets/js/hooks/ui/editor/documents/load/add-menu-items.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"] = exports.KitAddMenuItems = void 0;
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"));
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; })(); }
var KitAddMenuItems = exports.KitAddMenuItems = /*#__PURE__*/function (_$e$modules$hookUI$Be) {
  function KitAddMenuItems() {
    (0, _classCallCheck2.default)(this, KitAddMenuItems);
    return _callSuper(this, KitAddMenuItems, arguments);
  }
  (0, _inherits2.default)(KitAddMenuItems, _$e$modules$hookUI$Be);
  return (0, _createClass2.default)(KitAddMenuItems, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/attach-preview';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'kit-add-menu-item';
    }
  }, {
    key: "getConditions",
    value: function getConditions() {
      return 'kit' === elementor.documents.getCurrent().config.type && !Object.keys($e.components.get('panel/global').getTabs()).length;
    }
  }, {
    key: "apply",
    value: function apply() {
      var document = elementor.documents.getCurrent();
      Object.entries(document.config.tabs).forEach(function (_ref) {
        var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
          tabId = _ref2[0],
          tabConfig = _ref2[1];
        $e.components.get('panel/global').addTab(tabId, tabConfig);
      });
    }
  }]);
}($e.modules.hookUI.Before);
var _default = exports["default"] = KitAddMenuItems;

/***/ }),

/***/ "../core/kits/assets/js/hooks/ui/editor/documents/open/remove-editor-active-css.js":
/*!*****************************************************************************************!*\
  !*** ../core/kits/assets/js/hooks/ui/editor/documents/open/remove-editor-active-css.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"] = exports.KitRemoveEditorActiveCSSDocumentsOpen = 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"));
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; })(); }
var KitRemoveEditorActiveCSSDocumentsOpen = exports.KitRemoveEditorActiveCSSDocumentsOpen = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  function KitRemoveEditorActiveCSSDocumentsOpen() {
    (0, _classCallCheck2.default)(this, KitRemoveEditorActiveCSSDocumentsOpen);
    return _callSuper(this, KitRemoveEditorActiveCSSDocumentsOpen, arguments);
  }
  (0, _inherits2.default)(KitRemoveEditorActiveCSSDocumentsOpen, _$e$modules$hookUI$Af);
  return (0, _createClass2.default)(KitRemoveEditorActiveCSSDocumentsOpen, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/open';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'kit-remove-editor-active-css--editor/documents/open';
    }
  }, {
    key: "getConditions",
    value: function getConditions() {
      return 'kit' === elementor.documents.getCurrent().config.type;
    }
  }, {
    key: "apply",
    value: function apply() {
      // TODO: Remove - Temporary fix to avoid conflict with `elementor.exitPreviewMode()`.
      setTimeout(function () {
        elementorFrontend.elements.$body.removeClass('elementor-editor-active');
      });
    }
  }]);
}($e.modules.hookUI.After);
var _default = exports["default"] = KitRemoveEditorActiveCSSDocumentsOpen;

/***/ }),

/***/ "../core/kits/assets/js/hooks/ui/panel/global/base/base-open-close.js":
/*!****************************************************************************!*\
  !*** ../core/kits/assets/js/hooks/ui/panel/global/base/base-open-close.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"));
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; })(); }
var BaseOpenClose = exports["default"] = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  function BaseOpenClose() {
    (0, _classCallCheck2.default)(this, BaseOpenClose);
    return _callSuper(this, BaseOpenClose, arguments);
  }
  (0, _inherits2.default)(BaseOpenClose, _$e$modules$hookUI$Af);
  return (0, _createClass2.default)(BaseOpenClose, [{
    key: "initialize",
    value: function initialize() {
      var _this = this;
      elementor.on('preview:loaded', function () {
        _this.component = $e.components.get('panel/global');
      });
    }
  }]);
}($e.modules.hookUI.After);

/***/ }),

/***/ "../core/kits/assets/js/hooks/ui/panel/global/close/back-to-route-history.js":
/*!***********************************************************************************!*\
  !*** ../core/kits/assets/js/hooks/ui/panel/global/close/back-to-route-history.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"] = exports.KitBackToRouteHistory = 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 _baseOpenClose = _interopRequireDefault(__webpack_require__(/*! ../base/base-open-close */ "../core/kits/assets/js/hooks/ui/panel/global/base/base-open-close.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; })(); }
var KitBackToRouteHistory = exports.KitBackToRouteHistory = /*#__PURE__*/function (_BaseOpenClose) {
  function KitBackToRouteHistory() {
    (0, _classCallCheck2.default)(this, KitBackToRouteHistory);
    return _callSuper(this, KitBackToRouteHistory, arguments);
  }
  (0, _inherits2.default)(KitBackToRouteHistory, _BaseOpenClose);
  return (0, _createClass2.default)(KitBackToRouteHistory, [{
    key: "getCommand",
    value: function getCommand() {
      return 'panel/global/close';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'back-to-route-history-/panel/global/close';
    }
  }, {
    key: "getConditions",
    value: function getConditions() {
      return this.component.routeHistory;
    }
  }, {
    key: "apply",
    value: function apply() {
      var historyBeforeOpen = this.component.routeHistory;
      delete this.component.routeHistory;

      /**
       * TODO: Find better solution.
       * Since cache deleted after leaving globals.
       * Cover issue: When back to route, it back to style, it causes the UI ask for styles separately and since,
       * Cache deleted, it asks the remote ( $e.data ) for specific colors/typography endpoints and causes a delay in global select box.
       * To handle the the issue, request globals manually, then back to route.
       */
      if (historyBeforeOpen.container) {
        $e.data.get('globals/index').then(function () {
          // Since the container comes from history, its not connected element.
          historyBeforeOpen.container = historyBeforeOpen.container.lookup();
          historyBeforeOpen.container.model.trigger('request:edit', {
            scrollIntoView: true
          });
          $e.route(historyBeforeOpen.route, {
            model: historyBeforeOpen.container.model,
            view: historyBeforeOpen.container.view
          });
        });
      }
    }
  }]);
}(_baseOpenClose.default);
var _default = exports["default"] = KitBackToRouteHistory;

/***/ }),

/***/ "../core/kits/assets/js/hooks/ui/panel/global/open/save-route-history.js":
/*!*******************************************************************************!*\
  !*** ../core/kits/assets/js/hooks/ui/panel/global/open/save-route-history.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"] = exports.KitSaveRouteHistory = 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 _baseOpenClose = _interopRequireDefault(__webpack_require__(/*! ../base/base-open-close */ "../core/kits/assets/js/hooks/ui/panel/global/base/base-open-close.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; })(); }
var KitSaveRouteHistory = exports.KitSaveRouteHistory = /*#__PURE__*/function (_BaseOpenClose) {
  function KitSaveRouteHistory() {
    (0, _classCallCheck2.default)(this, KitSaveRouteHistory);
    return _callSuper(this, KitSaveRouteHistory, arguments);
  }
  (0, _inherits2.default)(KitSaveRouteHistory, _BaseOpenClose);
  return (0, _createClass2.default)(KitSaveRouteHistory, [{
    key: "getCommand",
    value: function getCommand() {
      return 'panel/global/open';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'save-route-history--/panel/global/open';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return !!args.route;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      this.component.routeHistory = args;
    }
  }]);
}(_baseOpenClose.default);
var _default = exports["default"] = KitSaveRouteHistory;

/***/ }),

/***/ "../core/kits/assets/js/hooks/ui/panel/open/remove-editor-active-css.js":
/*!******************************************************************************!*\
  !*** ../core/kits/assets/js/hooks/ui/panel/open/remove-editor-active-css.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"] = exports.KitRemoveEditorActiveCSSPanelOpen = 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"));
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; })(); }
var KitRemoveEditorActiveCSSPanelOpen = exports.KitRemoveEditorActiveCSSPanelOpen = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  function KitRemoveEditorActiveCSSPanelOpen() {
    (0, _classCallCheck2.default)(this, KitRemoveEditorActiveCSSPanelOpen);
    return _callSuper(this, KitRemoveEditorActiveCSSPanelOpen, arguments);
  }
  (0, _inherits2.default)(KitRemoveEditorActiveCSSPanelOpen, _$e$modules$hookUI$Af);
  return (0, _createClass2.default)(KitRemoveEditorActiveCSSPanelOpen, [{
    key: "getCommand",
    value: function getCommand() {
      return 'panel/open';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'kit-remove-editor-active-css--/panel/open';
    }
  }, {
    key: "getConditions",
    value: function getConditions() {
      return 'kit' === elementor.documents.getCurrent().config.type;
    }
  }, {
    key: "apply",
    value: function apply() {
      // TODO: Remove - Temporary fix to avoid conflict with `elementor.exitPreviewMode()`.
      setTimeout(function () {
        elementorFrontend.elements.$body.removeClass('elementor-editor-active');
      });
    }
  }]);
}($e.modules.hookUI.After);
var _default = exports["default"] = KitRemoveEditorActiveCSSPanelOpen;

/***/ }),

/***/ "../core/kits/assets/js/manager.js":
/*!*****************************************!*\
  !*** ../core/kits/assets/js/manager.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 _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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.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 _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../core/kits/assets/js/component.js"));
var _panel = _interopRequireDefault(__webpack_require__(/*! ./panel */ "../core/kits/assets/js/panel.js"));
var _panelMenu = _interopRequireDefault(__webpack_require__(/*! ./panel-menu */ "../core/kits/assets/js/panel-menu.js"));
var _panelHeaderBehavior = _interopRequireDefault(__webpack_require__(/*! ./panel-header-behavior */ "../core/kits/assets/js/panel-header-behavior.js"));
var _globalSelectBehavior = _interopRequireDefault(__webpack_require__(/*! ./globals/global-select-behavior */ "../core/kits/assets/js/globals/global-select-behavior.js"));
var _controlsCssParser = _interopRequireDefault(__webpack_require__(/*! elementor-assets-js/editor/utils/controls-css-parser */ "../assets/dev/js/editor/utils/controls-css-parser.js"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var V4_GROUP = 'v4';
var Manager = exports["default"] = /*#__PURE__*/function (_elementorModules$edi) {
  function Manager() {
    var _this;
    (0, _classCallCheck2.default)(this, Manager);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, Manager, [].concat(args));
    (0, _defineProperty2.default)(_this, "loadingTriggers", {
      preview: false,
      globals: false
    });
    /**
     * @type {ControlsCSSParser}
     */
    (0, _defineProperty2.default)(_this, "variablesCSS", null);
    return _this;
  }
  (0, _inherits2.default)(Manager, _elementorModules$edi);
  return (0, _createClass2.default)(Manager, [{
    key: "initialize",
    value: function initialize() {
      var _this2 = this;
      elementor.on('preview:loaded', function () {
        _this2.loadingTriggers.preview = true;
        _this2.renderGlobalsDefaultCSS();
      });
      elementor.on('document:loaded', function () {
        _this2.renderGlobalVariables();
      });
      elementor.once('globals:loaded', function () {
        _this2.loadingTriggers.globals = true;
        _this2.renderGlobalsDefaultCSS();
      });
      elementor.hooks.addFilter('controls/base/behaviors', this.addGlobalsBehavior);
      if (!elementor.config.user.can_edit_kit) {
        return;
      }
      $e.components.register(new _component.default({
        manager: this
      }));
    }
  }, {
    key: "addPanelPages",
    value: function addPanelPages() {
      elementor.getPanelView().addPage('kit_settings', {
        view: _panel.default,
        title: __('Site Settings', 'elementor')
      });
      elementor.getPanelView().addPage('kit_menu', {
        view: _panelMenu.default,
        title: __('Site Settings', 'elementor')
      });
    }
  }, {
    key: "addPanelMenuItem",
    value: function addPanelMenuItem() {
      var menu = elementor.modules.layouts.panel.pages.menu.Menu;
      menu.addItem({
        name: 'global-settings',
        icon: 'eicon-global-settings',
        title: __('Site Settings', 'elementor'),
        type: 'page',
        callback: function callback() {
          $e.run('panel/global/open', {
            route: $e.routes.getHistory('panel').reverse()[0].route
          });
        }
      }, 'style', 'editor-preferences');
      menu.addItem({
        name: 'site-editor',
        icon: 'eicon-theme-builder',
        title: __('Theme Builder', 'elementor'),
        type: 'page',
        callback: function callback() {
          return $e.run('app/open');
        }
      }, 'style', 'editor-preferences');
    }
  }, {
    key: "addHeaderBehavior",
    value: function addHeaderBehavior(behaviors) {
      behaviors.kit = {
        behaviorClass: _panelHeaderBehavior.default
      };
      return behaviors;
    }
  }, {
    key: "addGlobalsBehavior",
    value: function addGlobalsBehavior(behaviors, view) {
      // The view can be a UI control which does not have this method.
      if (!view.isGlobalActive) {
        return;
      }
      var isGlobalActive = view.isGlobalActive();
      if ('color' === view.options.model.get('type') && isGlobalActive) {
        behaviors.globals = {
          behaviorClass: _globalSelectBehavior.default,
          popoverTitle: __('Global Colors', 'elementor'),
          manageButtonText: __('Manage Global Colors', 'elementor'),
          tooltipText: __('Global Colors help you work smarter. Save a color, and use it anywhere throughout your site. Access and edit your global colors by clicking the Manage button.', 'elementor'),
          newGlobalConfirmTitle: __('Create New Global Color', 'elementor')
        };
      }
      if ('popover_toggle' === view.options.model.get('type') && 'typography' === view.options.model.get('groupType') && isGlobalActive) {
        behaviors.globals = {
          behaviorClass: _globalSelectBehavior.default,
          popoverTitle: __('Global Fonts', 'elementor'),
          manageButtonText: __('Manage Global Fonts', 'elementor'),
          tooltipText: __('Global Fonts help you work smarter. Save a Typography, and use it anywhere throughout your site. Access and edit your Global Fonts by clicking the Manage button.', 'elementor'),
          newGlobalConfirmTitle: __('Create New Global Font', 'elementor')
        };
      }
      return behaviors;
    }

    /**
     * In case there is a new global color/typography convert current globals to CSS variables.
     */
  }, {
    key: "renderGlobalVariables",
    value: function renderGlobalVariables() {
      var _this3 = this;
      if (!this.variablesCSS) {
        this.variablesCSS = new _controlsCssParser.default({
          id: 'e-kit-variables',
          settingsModel: new elementorModules.editor.elements.models.BaseSettings({}, {})
        });
      }

      // The kit document has its own CSS.
      if ('kit' === elementor.documents.getCurrent().config.type) {
        this.variablesCSS.removeStyleFromDocument();
        return;
      }
      $e.data.get('globals/index').then(function (_ref) {
        var data = _ref.data;
        if (data.colors) {
          Object.values(data.colors).forEach(function (item) {
            if ('v4' === item.group) {
              return;
            }
            var controls = elementor.config.kit_config.design_system_controls.colors,
              values = {
                _id: item.id,
                color: item.value
              };
            _this3.variablesCSS.addStyleRules(controls, values, controls, ['{{WRAPPER}}'], ['body']);
          });
        }
        if (data.typography) {
          Object.values(data.typography).forEach(function (item) {
            if (V4_GROUP === item.group) {
              return;
            }
            var controls = elementor.config.kit_config.design_system_controls.typography,
              values = _objectSpread({
                _id: item.id
              }, item.value);

            // Enqueue fonts.
            if (item.value.typography_font_family) {
              elementor.helpers.enqueueFont(item.value.typography_font_family);
            }
            _this3.variablesCSS.addStyleRules(controls, values, controls, ['{{WRAPPER}}'], ['body']);
          });
        }
        _this3.variablesCSS.addStyleToDocument();
      });
    }

    // Use the Controls CSS Parser to add the global defaults CSS to the page.
  }, {
    key: "renderGlobalsDefaultCSS",
    value: function renderGlobalsDefaultCSS() {
      if (!this.loadingTriggers.preview || !this.loadingTriggers.globals) {
        return;
      }
      var cssParser = new _controlsCssParser.default({
          id: 'e-global-style'
        }),
        defaultColorsEnabled = elementor.config.globals.defaults_enabled.colors,
        defaultTypographyEnabled = elementor.config.globals.defaults_enabled.typography;

      // If both default colors and typography are disabled, there is no need to render schemes and default global css.
      if (!defaultColorsEnabled && !defaultTypographyEnabled) {
        return;
      }
      Object.values(elementor.widgetsCache).forEach(function (widget) {
        if (!widget.controls) {
          return;
        }
        var globalControls = [],
          globalValues = {};
        Object.values(widget.controls).forEach(function (control) {
          var _control$global, _globalControl$global;
          var isColorControl = 'color' === control.type,
            isTypographyControl = 'typography' === control.groupType;
          if (isColorControl && !defaultColorsEnabled || isTypographyControl && !defaultTypographyEnabled) {
            return;
          }
          var globalControl = control;
          if (control.groupType) {
            globalControl = widget.controls[control.groupPrefix + control.groupType];
          }
          if ((_control$global = control.global) !== null && _control$global !== void 0 && _control$global.default) {
            globalValues[control.name] = globalControl.global.default;
          }
          if ((_globalControl$global = globalControl.global) !== null && _globalControl$global !== void 0 && _globalControl$global.default) {
            globalControls.push(control);
          }
        });
        globalControls.forEach(function (control) {
          cssParser.addControlStyleRules(control, widget.controls,
          // Values
          widget.controls,
          // Controls
          ['{{WRAPPER}}'], ['.elementor-widget-' + widget.widget_type], globalValues);
        });
      });
      cssParser.addStyleToDocument();
    }
  }, {
    key: "onInit",
    value: function onInit() {
      var _this4 = this;
      _superPropGet(Manager, "onInit", this, 3)([]);
      elementorCommon.elements.$window.on('elementor:loaded', function () {
        if (elementor.config.initial_document.panel.support_kit) {
          _this4.initialize();
        }
      });
    }
  }]);
}(elementorModules.editor.utils.Module);

/***/ }),

/***/ "../core/kits/assets/js/panel-content.js":
/*!***********************************************!*\
  !*** ../core/kits/assets/js/panel-content.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"));
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; })(); }
var _default = exports["default"] = /*#__PURE__*/function (_elementorModules$edi) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _elementorModules$edi);
  return (0, _createClass2.default)(_default, [{
    key: "id",
    value: function id() {
      return 'elementor-kit-panel-content';
    }
  }, {
    key: "getTemplate",
    value: function getTemplate() {
      return '#tmpl-elementor-kit-panel-content';
    }
  }, {
    key: "childViewContainer",
    value: function childViewContainer() {
      return '#elementor-kit-panel-content-controls';
    }
  }, {
    key: "onBeforeShow",
    value: function onBeforeShow() {
      var tabConfig = $e.components.get('panel/global').getActiveTabConfig();
      elementor.hooks.doAction("panel/".concat(tabConfig.group, "/tab/before-show"), {
        id: tabConfig.id
      });
    }
  }, {
    key: "onBeforeDestroy",
    value: function onBeforeDestroy() {
      var tabConfig = $e.components.get('panel/global').getActiveTabConfig();
      elementor.hooks.doAction("panel/".concat(tabConfig.group, "/tab/before-destroy"), {
        id: tabConfig.id
      });
    }
  }, {
    key: "childViewOptions",
    value: function childViewOptions() {
      var container = this.getOption('container');
      return {
        elementSettingsModel: container.settings,
        container: container
      };
    }
  }]);
}(elementorModules.editor.views.ControlsStack);

/***/ }),

/***/ "../core/kits/assets/js/panel-header-behavior.js":
/*!*******************************************************!*\
  !*** ../core/kits/assets/js/panel-header-behavior.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 _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 _panelHeaderButtons = __webpack_require__(/*! ./panel-header-buttons */ "../core/kits/assets/js/panel-header-buttons.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; })(); }
var _default = exports["default"] = /*#__PURE__*/function (_Marionette$Behavior) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _Marionette$Behavior);
  return (0, _createClass2.default)(_default, [{
    key: "ui",
    value: function ui() {
      return {
        buttonClose: '#elementor-panel-header-kit-close',
        buttonBack: '#elementor-panel-header-kit-back'
      };
    }
  }, {
    key: "events",
    value: function events() {
      return {
        'click @ui.buttonClose': 'onClickClose',
        'click @ui.buttonBack': 'onClickBack'
      };
    }
  }, {
    key: "onBeforeShow",
    value: function onBeforeShow() {
      this.$el.prepend(elementor.compileTemplate(_panelHeaderButtons.buttonBack, {
        Back: __('Back', 'elementor')
      }));
      this.$el.append(elementor.compileTemplate(_panelHeaderButtons.buttonClose, {
        Close: __('Close', 'elementor')
      }));
    }
  }, {
    key: "onClickClose",
    value: function onClickClose() {
      $e.run('panel/global/close');
    }
  }, {
    key: "onClickBack",
    value: function onClickBack() {
      $e.run('panel/global/back');
    }
  }]);
}(Marionette.Behavior);

/***/ }),

/***/ "../core/kits/assets/js/panel-header-buttons.js":
/*!******************************************************!*\
  !*** ../core/kits/assets/js/panel-header-buttons.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.buttonClose = exports.buttonBack = void 0;
var arrowIconClass = 'eicon-chevron-' + (elementorCommon.config.isRTL ? 'right' : 'left');
var buttonBack = exports.buttonBack = "\n<button id=\"elementor-panel-header-kit-back\" class=\"elementor-header-button\" aria-label=\"{{ Back }}\">\n\t<i class=\"elementor-icon ".concat(arrowIconClass, " tooltip-target\" aria-hidden=\"true\" data-tooltip=\"{{ Back }}\"></i>\n</button>\n");
var buttonClose = exports.buttonClose = "\n<button id=\"elementor-panel-header-kit-close\" class=\"elementor-header-button\" aria-label=\"{{ Close }}\">\n\t<i class=\"elementor-icon eicon-close tooltip-target\" aria-hidden=\"true\" data-tooltip=\"{{ Close }}\"></i>\n</button>\n";

/***/ }),

/***/ "../core/kits/assets/js/panel-menu.js":
/*!********************************************!*\
  !*** ../core/kits/assets/js/panel-menu.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 _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 _base = _interopRequireDefault(__webpack_require__(/*! elementor-panel/pages/menu/base */ "../assets/dev/js/editor/regions/panel/pages/menu/base.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; })(); }
var PanelMenu = exports["default"] = /*#__PURE__*/function (_MenuPageView) {
  function PanelMenu() {
    (0, _classCallCheck2.default)(this, PanelMenu);
    return _callSuper(this, PanelMenu, arguments);
  }
  (0, _inherits2.default)(PanelMenu, _MenuPageView);
  return (0, _createClass2.default)(PanelMenu, [{
    key: "initialize",
    value: function initialize() {
      this.collection = PanelMenu.getGroups();
    }
  }]);
}(_base.default);
PanelMenu.groups = null;
PanelMenu.createGroupItems = function (groupName) {
  var tabs = $e.components.get('panel/global').getTabs(),
    groupTabs = Object.entries(tabs).filter(function (_ref) {
      var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
        tabConfig = _ref2[1];
      return groupName === tabConfig.group;
    });
  return groupTabs.map(function (_ref3) {
    var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
      tabId = _ref4[0],
      tabConfig = _ref4[1];
    return {
      name: tabId,
      icon: tabConfig.icon,
      title: tabConfig.title,
      callback: function callback() {
        return $e.route('panel/global/' + tabId);
      }
    };
  });
};
PanelMenu.initGroups = function () {
  var settingsItems = PanelMenu.createGroupItems('settings'),
    additionalSettingsProps = {
      name: 'settings-additional-settings',
      icon: 'eicon-tools',
      title: __('Additional Settings', 'elementor'),
      type: 'link',
      link: elementor.config.admin_settings_url,
      newTab: true
    };
  settingsItems.push(additionalSettingsProps);
  PanelMenu.groups = new Backbone.Collection([{
    name: 'design_system',
    title: __('Design System', 'elementor'),
    items: PanelMenu.createGroupItems('global')
  }, {
    name: 'theme_style',
    title: __('Theme Style', 'elementor'),
    items: PanelMenu.createGroupItems('theme-style')
  }, {
    name: 'settings',
    title: __('Settings', 'elementor'),
    items: settingsItems
  }]);
};
PanelMenu.getGroups = function () {
  if (!PanelMenu.groups) {
    PanelMenu.initGroups();
  }
  return PanelMenu.groups;
};

/***/ }),

/***/ "../core/kits/assets/js/panel.js":
/*!***************************************!*\
  !*** ../core/kits/assets/js/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 _panelContent = _interopRequireDefault(__webpack_require__(/*! ./panel-content */ "../core/kits/assets/js/panel-content.js"));
var _default = exports["default"] = Marionette.LayoutView.extend({
  id: 'elementor-kit-panel',
  template: '#tmpl-elementor-kit-panel',
  regions: {
    content: '#elementor-kit__panel-content__wrapper'
  },
  onBeforeShow: function onBeforeShow() {
    var container = elementor.documents.getCurrent().container,
      options = {
        container: container,
        model: container.model,
        controls: container.settings.controls,
        name: 'kit'
      };
    this.showChildView('content', new _panelContent.default(options));
  }
});

/***/ }),

/***/ "../core/kits/assets/js/repeater-row.js":
/*!**********************************************!*\
  !*** ../core/kits/assets/js/repeater-row.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];


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 _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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _repeaterRow = _interopRequireDefault(__webpack_require__(/*! elementor-controls/repeater-row */ "../assets/dev/js/editor/controls/repeater-row.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var _default = exports["default"] = /*#__PURE__*/function (_RepeaterRow) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _RepeaterRow);
  return (0, _createClass2.default)(_default, [{
    key: "ui",
    value: function ui() {
      var ui = _superPropGet(_default, "ui", this, 3)([]);
      ui.sortButton = '.elementor-repeater-tool-sort';
      return ui;
    }
  }, {
    key: "getTemplate",
    value: function getTemplate() {
      return '#tmpl-elementor-global-style-repeater-row';
    }
  }, {
    key: "events",
    value: function events() {
      return {
        'click @ui.removeButton': 'onRemoveButtonClick',
        'keyup @ui.removeButton': 'onRemoveButtonPress'
      };
    }
  }, {
    key: "updateColorValue",
    value: function updateColorValue() {
      this.$colorValue.text(this.model.get('color'));
    }
  }, {
    key: "getDisabledRemoveButtons",
    value: function getDisabledRemoveButtons() {
      if (!this.ui.disabledRemoveButtons) {
        this.ui.disabledRemoveButtons = this.$el.find('.elementor-repeater-tool-remove--disabled');
      }
      return this.ui.disabledRemoveButtons;
    }
  }, {
    key: "getRemoveButton",
    value: function getRemoveButton() {
      return this.ui.removeButton.add(this.getDisabledRemoveButtons());
    }
  }, {
    key: "triggers",
    value: function triggers() {
      return {};
    }
  }, {
    key: "onChildviewRender",
    value: function onChildviewRender(childView) {
      var isColor = 'color' === childView.model.get('type'),
        isPopoverToggle = 'popover_toggle' === childView.model.get('type'),
        $controlInputWrapper = childView.$el.find('.elementor-control-input-wrapper');
      var globalType = '',
        globalTypeTranslated = '';
      if (isColor) {
        this.$colorValue = jQuery('<div>', {
          class: 'e-global-colors__color-value elementor-control-unit-3'
        });
        $controlInputWrapper.prepend(this.getRemoveButton(), this.$colorValue).prepend(this.ui.sortButton);
        globalType = 'color';
        globalTypeTranslated = __('Color', 'elementor');
        this.updateColorValue();
      }
      if (isPopoverToggle) {
        $controlInputWrapper.append(this.getRemoveButton()).append(this.ui.sortButton);
        globalType = 'font';
        globalTypeTranslated = __('Font', 'elementor');
      }
      if (isColor || isPopoverToggle) {
        var removeButtons = this.getDisabledRemoveButtons();
        this.ui.removeButton.data('e-global-type', globalType);
        this.ui.removeButton.tipsy({
          /* Translators: %s: Font/Color. */
          title: function title() {
            return sprintf(__('Delete Global %s', 'elementor'), globalTypeTranslated);
          },
          gravity: function gravity() {
            return 's';
          }
        });
        removeButtons.tipsy({
          /* Translators: %s: Font/Color. */
          title: function title() {
            return sprintf(__('System %s can\'t be deleted', 'elementor'), globalTypeTranslated);
          },
          gravity: function gravity() {
            return 's';
          }
        });
      }
    }
  }, {
    key: "onModelChange",
    value: function onModelChange(model) {
      if (undefined !== model.changed.color) {
        this.updateColorValue();
      }
    }
  }, {
    key: "onRemoveButtonClick",
    value: function onRemoveButtonClick() {
      var _this = this;
      var globalType = this.ui.removeButton.data('e-global-type'),
        globalTypeTranslatedCapitalized = 'font' === globalType ? __('Font', 'elementor') : __('Color', 'elementor'),
        globalTypeTranslatedLowercase = 'font' === globalType ? __('font', 'elementor') : __('color', 'elementor'),
        /* Translators: 1: Font/Color, 2: typography/color. */
        translatedMessage = sprintf(__('You\'re about to delete a Global %1$s. Note that if it\'s being used anywhere on your site, it will inherit a default %1$s.', 'elementor'), globalTypeTranslatedCapitalized, globalTypeTranslatedLowercase);
      this.confirmDeleteModal = elementorCommon.dialogsManager.createWidget('confirm', {
        className: 'e-global__confirm-delete',
        /* Translators: %s: Font/Color. */
        headerMessage: sprintf(__('Delete Global %s', 'elementor'), globalTypeTranslatedCapitalized),
        message: '<i class="eicon-info-circle"></i> ' + translatedMessage,
        strings: {
          confirm: __('Delete', 'elementor'),
          cancel: __('Cancel', 'elementor')
        },
        hide: {
          onBackgroundClick: false
        },
        onConfirm: function onConfirm() {
          _this.trigger('click:remove');
        }
      });
      this.confirmDeleteModal.show();
    }
  }, {
    key: "onRemoveButtonPress",
    value: function onRemoveButtonPress(event) {
      var ENTER_KEY = 13,
        SPACE_KEY = 32;
      if (ENTER_KEY === event.keyCode || SPACE_KEY === event.keyCode) {
        event.currentTarget.click();
        event.stopPropagation();
      }
    }
  }]);
}(_repeaterRow.default);

/***/ }),

/***/ "../core/kits/assets/js/repeater.js":
/*!******************************************!*\
  !*** ../core/kits/assets/js/repeater.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 _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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _repeater = _interopRequireDefault(__webpack_require__(/*! ../../../../assets/dev/js/editor/controls/repeater */ "../assets/dev/js/editor/controls/repeater.js"));
var _repeaterRow = _interopRequireDefault(__webpack_require__(/*! ./repeater-row */ "../core/kits/assets/js/repeater-row.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var _default = exports["default"] = /*#__PURE__*/function (_Repeater) {
  function _default() {
    var _this;
    (0, _classCallCheck2.default)(this, _default);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, _default, [].concat(args));
    _this.childView = _repeaterRow.default;
    return _this;
  }
  (0, _inherits2.default)(_default, _Repeater);
  return (0, _createClass2.default)(_default, [{
    key: "templateHelpers",
    value: function templateHelpers() {
      var templateHelpers = _superPropGet(_default, "templateHelpers", this, 3)([]);
      templateHelpers.addButtonText = 'custom_colors' === this.model.get('name') ? __('Add Color', 'elementor') : __('Add Style', 'elementor');
      return templateHelpers;
    }
  }, {
    key: "getDefaults",
    value: function getDefaults() {
      var defaults = _superPropGet(_default, "getDefaults", this, 3)([]);
      defaults.title = "".concat(__('New Item', 'elementor'), " #").concat(this.children.length + 1);
      return defaults;
    }
  }, {
    key: "getSortableParams",
    value: function getSortableParams() {
      var sortableParams = _superPropGet(_default, "getSortableParams", this, 3)([]);
      sortableParams.placeholder = 'e-sortable-placeholder';
      sortableParams.cursor = 'move';
      return sortableParams;
    }
  }]);
}(_repeater.default);

/***/ }),

/***/ "../modules/cloud-library/assets/js/editor/component.js":
/*!**************************************************************!*\
  !*** ../modules/cloud-library/assets/js/editor/component.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.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; })(); }
var Component = exports["default"] = /*#__PURE__*/function (_$e$modules$Component) {
  function Component() {
    var _this;
    (0, _classCallCheck2.default)(this, Component);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, Component, [].concat(args));
    (0, _defineProperty2.default)(_this, "promise", null);
    (0, _defineProperty2.default)(_this, "request", null);
    (0, _defineProperty2.default)(_this, "maybeSendQuotaCapacityEvent", function (data) {
      var value = data ? Math.round(data.currentUsage / data.threshold * 100) : 0;
      var quotaUsageAlert = null;
      if (value < 80) {
        return;
      } else if (80 <= value < 100) {
        quotaUsageAlert = '80%';
      } else {
        quotaUsageAlert = '100%';
      }
      elementor.templates.eventManager.sendQuotaBarCapacityEvent({
        quota_usage_alert: quotaUsageAlert
      });
    });
    return _this;
  }
  (0, _inherits2.default)(Component, _$e$modules$Component);
  return (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'cloud-library';
    }
  }, {
    key: "cancelPendingRequest",
    value: function cancelPendingRequest() {
      if (this.request) {
        elementorCommon.ajax.cancelRequest('get_templates_quota');
      }
      this.promise = null;
      this.request = null;
    }
  }, {
    key: "getQuotaConfig",
    value: function getQuotaConfig() {
      var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
      if (force) {
        this.cancelPendingRequest();
        return this.setQuotaConfig();
      }
      if (this.promise && !force) {
        return this.promise;
      }
      return Promise.resolve(elementorAppConfig['cloud-library'].quota);
    }
  }, {
    key: "setQuotaConfig",
    value: function setQuotaConfig() {
      var _this2 = this;
      var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
      if (force) {
        this.cancelPendingRequest();
      }
      this.promise = new Promise(function (resolve, reject) {
        _this2.request = elementorCommon.ajax.addRequest('get_templates_quota', {
          data: {
            source: 'cloud'
          },
          success: function success(data) {
            elementorAppConfig['cloud-library'].quota = data;
            _this2.maybeSendQuotaCapacityEvent(data);
            resolve(data);
            _this2.promise = null;
            _this2.request = null;
            elementor.channels.templates.trigger('quota:updated', data);
          },
          error: function error(_error) {
            if ((_error === null || _error === void 0 ? void 0 : _error.statusText) !== 'abort') {
              delete elementorAppConfig['cloud-library'].quota;
            }
            reject(_error);
            _this2.request = null;
            _this2.promise = null;
          }
        });
      });
      return this.promise;
    }
  }, {
    key: "defaultUtils",
    value: function defaultUtils() {
      return {
        setQuotaConfig: this.setQuotaConfig.bind(this),
        getQuotaConfig: this.getQuotaConfig.bind(this)
      };
    }
  }]);
}($e.modules.ComponentBase);

/***/ }),

/***/ "../modules/cloud-library/assets/js/editor/module.js":
/*!***********************************************************!*\
  !*** ../modules/cloud-library/assets/js/editor/module.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 _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/cloud-library/assets/js/editor/component.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; })(); }
var TemplatesModule = exports["default"] = /*#__PURE__*/function (_elementorModules$edi) {
  function TemplatesModule() {
    (0, _classCallCheck2.default)(this, TemplatesModule);
    return _callSuper(this, TemplatesModule, arguments);
  }
  (0, _inherits2.default)(TemplatesModule, _elementorModules$edi);
  return (0, _createClass2.default)(TemplatesModule, [{
    key: "onElementorInit",
    value: function onElementorInit() {
      $e.components.register(new _component.default({
        manager: this
      }));
      this.registerTemplateTypes();
    }
  }, {
    key: "registerTemplateTypes",
    value: function registerTemplateTypes() {
      elementor.templates.getDefaultTemplateTypeData().then(function (templateTypesData) {
        var _elementor;
        jQuery.each((_elementor = elementor) === null || _elementor === void 0 || (_elementor = _elementor.config) === null || _elementor === void 0 || (_elementor = _elementor.library) === null || _elementor === void 0 ? void 0 : _elementor.doc_types, function (type, title) {
          elementor.templates.getDefaultTemplateTypeSafeData(title).then(function (defaultData) {
            var safeData = jQuery.extend(true, {}, templateTypesData, defaultData);
            elementor.templates.registerTemplateType(type, safeData);
          });
        });
      });
    }
  }]);
}(elementorModules.editor.utils.Module);

/***/ }),

/***/ "../modules/elements-color-picker/assets/js/editor/commands/apply.js":
/*!***************************************************************************!*\
  !*** ../modules/elements-color-picker/assets/js/editor/commands/apply.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.Apply = 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 _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"));
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; })(); }
/**
 * Apply & Save the selected color on click.
 */
var Apply = exports.Apply = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Apply() {
    (0, _classCallCheck2.default)(this, Apply);
    return _callSuper(this, Apply, arguments);
  }
  (0, _inherits2.default)(Apply, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Apply, [{
    key: "validateArgs",
    value:
    /**
     * Validate the command arguments.
     *
     * @param {Object} args
     */
    function validateArgs(args) {
      this.requireArgumentType('value', 'string', args);
    }

    /**
     * Execute the color apply command.
     *
     * @param {Object}      root0
     * @param {string}      root0.value   The new color to apply.
     * @param {HTMLElement} root0.trigger The element which triggered the Apply command. Used to show `Selected` text & listen to `mouseleave`.
     *
     * @return {void}
     */
  }, {
    key: "apply",
    value: function apply(_ref) {
      var value = _ref.value,
        trigger = _ref.trigger;
      this.setColor(value);
      if (trigger) {
        var prevText = trigger.swatch.dataset.text;

        // Show `Selected!` message.
        trigger.swatch.dataset.text = __('Selected', 'elementor');

        // Hide message after a second.
        setTimeout(function () {
          trigger.swatch.dataset.text = prevText;
        }, 1000);

        // End picking only after the user leaves the swatch container.
        trigger.palette.addEventListener('mouseleave', function handler(e) {
          e.currentTarget.removeEventListener('mouseleave', handler);
          $e.run('elements-color-picker/end');
        });
      } else {
        $e.run('elements-color-picker/end');
      }
    }

    /**
     * Set a color to the current selected element.
     *
     * @param {*} color
     *
     * @return {void}
     */
  }, {
    key: "setColor",
    value: function setColor(color) {
      $e.run('document/elements/settings', {
        container: this.component.currentPicker.container,
        settings: (0, _defineProperty2.default)({}, this.component.currentPicker.control, color),
        options: {
          external: true
        }
      });
      this.component.currentPicker.initialColor = color;
    }
  }]);
}($e.modules.CommandBase);

/***/ }),

/***/ "../modules/elements-color-picker/assets/js/editor/commands/end.js":
/*!*************************************************************************!*\
  !*** ../modules/elements-color-picker/assets/js/editor/commands/end.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.End = 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 _utils = __webpack_require__(/*! ../utils */ "../modules/elements-color-picker/assets/js/editor/utils.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; })(); }
/**
 * End the color picking process and return to the normal editor state.
 */
var End = exports.End = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function End() {
    (0, _classCallCheck2.default)(this, End);
    return _callSuper(this, End, arguments);
  }
  (0, _inherits2.default)(End, _$e$modules$CommandBa);
  return (0, _createClass2.default)(End, [{
    key: "apply",
    value:
    /**
     * Initialize the command.
     *
     * @return {void}
     */
    function apply() {
      var _this$component$curre;
      // In-Activate the component since the default behavior will in-activate it only on route change,
      // but this component doesn't have any routes.
      this.component.inactivate();

      // Remove all elements & event listeners.
      elementor.$previewContents[0].querySelectorAll('.e-element-color-picker').forEach(function (picker) {
        jQuery(picker).tipsy('hide');
        picker.remove();
      });
      var elementorElements = elementor.$previewContents[0].querySelectorAll('.elementor-element');
      (0, _utils.removeNamespaceHandler)(elementorElements, 'click.color-picker');
      (0, _utils.removeNamespaceHandler)(elementor.$previewWrapper[0], 'mouseleave.color-picker');

      // Set the picking process trigger to inactive mode.
      // eslint-disable-next-line no-unused-expressions
      (_this$component$curre = this.component.currentPicker.trigger) === null || _this$component$curre === void 0 || _this$component$curre.classList.remove('e-control-tool-disabled');

      // Reset the current picker.
      this.component.resetPicker();

      // Exit color picking mode.
      $e.uiStates.remove('elements-color-picker/color-picking');
    }
  }]);
}($e.modules.CommandBase);

/***/ }),

/***/ "../modules/elements-color-picker/assets/js/editor/commands/enter-preview.js":
/*!***********************************************************************************!*\
  !*** ../modules/elements-color-picker/assets/js/editor/commands/enter-preview.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.EnterPreview = 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"));
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; })(); }
/**
 * Show the user a UI preview of the currently hovered color.
 */
var EnterPreview = exports.EnterPreview = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function EnterPreview() {
    (0, _classCallCheck2.default)(this, EnterPreview);
    return _callSuper(this, EnterPreview, arguments);
  }
  (0, _inherits2.default)(EnterPreview, _$e$modules$CommandBa);
  return (0, _createClass2.default)(EnterPreview, [{
    key: "apply",
    value:
    /**
     * Initialize the command.
     *
     * @param {Object} args
     *
     * @return {void}
     */
    function apply(args) {
      this.component.renderUI(args.value);
    }
  }]);
}($e.modules.CommandBase);

/***/ }),

/***/ "../modules/elements-color-picker/assets/js/editor/commands/exit-preview.js":
/*!**********************************************************************************!*\
  !*** ../modules/elements-color-picker/assets/js/editor/commands/exit-preview.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.ExitPreview = 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"));
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; })(); }
/**
 * Exit the UI preview mode on mouseout.
 */
var ExitPreview = exports.ExitPreview = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function ExitPreview() {
    (0, _classCallCheck2.default)(this, ExitPreview);
    return _callSuper(this, ExitPreview, arguments);
  }
  (0, _inherits2.default)(ExitPreview, _$e$modules$CommandBa);
  return (0, _createClass2.default)(ExitPreview, [{
    key: "apply",
    value:
    /**
     * Initialize the command.
     *
     * @return {void}
     */
    function apply() {
      var initialColor = this.component.currentPicker.initialColor;
      if (null === initialColor) {
        return;
      }
      this.component.renderUI(initialColor);
    }
  }]);
}($e.modules.CommandBase);

/***/ }),

/***/ "../modules/elements-color-picker/assets/js/editor/commands/index.js":
/*!***************************************************************************!*\
  !*** ../modules/elements-color-picker/assets/js/editor/commands/index.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Apply", ({
  enumerable: true,
  get: function get() {
    return _apply.Apply;
  }
}));
Object.defineProperty(exports, "End", ({
  enumerable: true,
  get: function get() {
    return _end.End;
  }
}));
Object.defineProperty(exports, "EnterPreview", ({
  enumerable: true,
  get: function get() {
    return _enterPreview.EnterPreview;
  }
}));
Object.defineProperty(exports, "ExitPreview", ({
  enumerable: true,
  get: function get() {
    return _exitPreview.ExitPreview;
  }
}));
Object.defineProperty(exports, "ShowSwatches", ({
  enumerable: true,
  get: function get() {
    return _showSwatches.ShowSwatches;
  }
}));
Object.defineProperty(exports, "Start", ({
  enumerable: true,
  get: function get() {
    return _start.Start;
  }
}));
var _apply = __webpack_require__(/*! ./apply */ "../modules/elements-color-picker/assets/js/editor/commands/apply.js");
var _end = __webpack_require__(/*! ./end */ "../modules/elements-color-picker/assets/js/editor/commands/end.js");
var _enterPreview = __webpack_require__(/*! ./enter-preview */ "../modules/elements-color-picker/assets/js/editor/commands/enter-preview.js");
var _exitPreview = __webpack_require__(/*! ./exit-preview */ "../modules/elements-color-picker/assets/js/editor/commands/exit-preview.js");
var _showSwatches = __webpack_require__(/*! ./show-swatches */ "../modules/elements-color-picker/assets/js/editor/commands/show-swatches.js");
var _start = __webpack_require__(/*! ./start */ "../modules/elements-color-picker/assets/js/editor/commands/start.js");

/***/ }),

/***/ "../modules/elements-color-picker/assets/js/editor/commands/show-swatches.js":
/*!***********************************************************************************!*\
  !*** ../modules/elements-color-picker/assets/js/editor/commands/show-swatches.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.ShowSwatches = void 0;
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 _utils = __webpack_require__(/*! elementor-app/utils/utils */ "../app/assets/js/utils/utils.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('../../../../../../assets/dev/js/editor/container/container')} Container
 */
/**
 * Show a palette of color swatches on click.
 */
var ShowSwatches = exports.ShowSwatches = /*#__PURE__*/function (_$e$modules$CommandBa) {
  /**
   * Initialize the command.
   *
   * @param {Object} args
   *
   * @return {void}
   */
  function ShowSwatches(args) {
    var _this;
    (0, _classCallCheck2.default)(this, ShowSwatches);
    _this = _callSuper(this, ShowSwatches, [args]);
    _this.colors = {};
    _this.classes = {
      picker: 'e-element-color-picker',
      tooltip: 'e-element-color-picker__tooltip',
      swatch: 'e-element-color-picker__swatch',
      hidden: 'e-picker-hidden'
    };
    _this.selectors = {
      picker: ".".concat(_this.classes.picker),
      tooltip: ".".concat(_this.classes.tooltip)
    };
    _this.container = null;
    _this.backgroundImages = [];
    return _this;
  }

  /**
   * Validate the command arguments.
   *
   * @param {Object} args
   *
   * @return {void}
   */
  (0, _inherits2.default)(ShowSwatches, _$e$modules$CommandBa);
  return (0, _createClass2.default)(ShowSwatches, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireArgument('event', args);
    }

    /**
     * Execute the command.
     *
     * @param {Object} args
     *
     * @return {void}
     */
  }, {
    key: "apply",
    value: function apply(args) {
      var _this2 = this;
      var e = args.event;
      var id = e.currentTarget.dataset.id;

      // Calculate swatch location.
      var rect = e.currentTarget.getBoundingClientRect(),
        x = Math.round(e.clientX - rect.left) + 'px',
        y = Math.round(e.clientY - rect.top) + 'px';
      this.container = elementor.getContainer(id);
      var activePicker = elementor.$previewContents[0].querySelector(this.selectors.picker);

      // If there is a picker already, remove it.
      if (activePicker) {
        this.removeTooltip(activePicker);
        activePicker.remove();
      }
      e.stopPropagation();

      // Hack to wait for the images to load before picking the colors from it
      // when extracting colors from a background image control.
      // TODO: Find a better solution.
      setTimeout(function () {
        var isImage = 'img' === e.target.tagName.toLowerCase();
        if (isImage) {
          _this2.extractColorsFromImage(e.target);
        } else {
          // Colors from the parent container.
          _this2.extractColorsFromSettings();

          // Colors from repeaters.
          _this2.extractColorsFromRepeaters();
          _this2.extractColorsFromImages();
        }
        _this2.initSwatch(x, y);
      }, 100);
    }

    /**
     * Extract colors from color controls of the current selected element.
     *
     * @param {Container} container - A container to extract colors from its settings.
     *
     * @return {void}
     */
  }, {
    key: "extractColorsFromSettings",
    value: function extractColorsFromSettings() {
      var _this3 = this;
      var container = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.container;
      // Iterate over the widget controls.
      // eslint-disable-next-line array-callback-return
      Object.keys(container.settings.attributes).map(function (control) {
        var _container$controls$c;
        // Limit colors count.
        if (_this3.reachedColorsLimit()) {
          // eslint-disable-next-line array-callback-return
          return;
        }
        if (!(control in container.controls)) {
          // eslint-disable-next-line array-callback-return
          return;
        }
        var isColor = 'color' === ((_container$controls$c = container.controls[control]) === null || _container$controls$c === void 0 ? void 0 : _container$controls$c.type);
        var isBgImage = control.includes('background_image');

        // Determine if the current control is active.
        var isActive = function isActive() {
          return elementor.helpers.isActiveControl(container.controls[control], container.settings.attributes, container.settings.controls);
        };

        // Throw non-color and non-background-image controls.
        if (!isColor && !isBgImage) {
          // eslint-disable-next-line array-callback-return
          return;
        }

        // Throw non-active controls.
        if (!isActive()) {
          // eslint-disable-next-line array-callback-return
          return;
        }

        // Handle background images.
        if (isBgImage) {
          _this3.addTempBackgroundImage(container.getSetting(control));
          // eslint-disable-next-line array-callback-return
          return;
        }
        var value = container.getSetting(control);
        var globalValue = container.globals.get(control);

        // Extract global value if present.
        if (globalValue) {
          var matches = globalValue.match(/id=(.+)/i);

          // Build the global color CSS variable & resolve it to a HEX value.
          // It's used instead of `$e.data.get( globalValue )` in order to avoid async/await hell.
          if (matches) {
            var cssVar = "--e-global-color-".concat(matches[1]);
            value = getComputedStyle(container.view.$el[0]).getPropertyValue(cssVar);
          }
        }
        if (value && !Object.values(_this3.colors).includes(value)) {
          // Create a unique index based on the container ID and the control name.
          // Used in order to avoid key overriding when used with repeaters (which share the same controls names).
          _this3.colors["".concat(container.id, " - ").concat(control)] = value;
        }
      });
    }

    /**
     * Extract colors from repeater controls.
     *
     * @return {void}
     */
  }, {
    key: "extractColorsFromRepeaters",
    value: function extractColorsFromRepeaters() {
      var _this4 = this;
      // Iterate over repeaters.
      Object.values(this.container.repeaters).forEach(function (repeater) {
        // Iterate over each repeater items.
        repeater.children.forEach(function (child) {
          _this4.extractColorsFromSettings(child);
        });
      });
    }

    /**
     * Create a temporary image element in order to extract colors from it using ColorThief.
     * Used with background images from background controls.
     *
     * @param {Object} setting     - A settings object from URL control.
     * @param {string} setting.url
     *
     * @return {void}
     */
  }, {
    key: "addTempBackgroundImage",
    value: function addTempBackgroundImage(_ref) {
      var url = _ref.url;
      if (!url) {
        return;
      }

      // Create the image.
      var img = document.createElement('img');
      img.src = url;

      // Push the image to the temporary images array.
      this.backgroundImages.push(img);
    }

    /**
     * Extract colors from image and push it to the colors array.
     *
     * @param {Object} image  - The image element to extract colors from
     * @param {string} suffix - An optional suffix for the key in the colors array.
     *
     * @return {void}
     */
  }, {
    key: "extractColorsFromImage",
    value: function extractColorsFromImage(image) {
      var _this5 = this;
      var suffix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
      var colorThief = new ColorThief();
      var palette;
      try {
        palette = colorThief.getPalette(image);
      } catch (e) {
        return;
      }

      // Add the palette to the colors array.
      palette.forEach(function (color, index) {
        // Limit colors count.
        if (_this5.reachedColorsLimit()) {
          return;
        }
        var hex = (0, _utils.rgbToHex)(color[0], color[1], color[2]);
        if (!Object.values(_this5.colors).includes(hex)) {
          _this5.colors["palette-".concat(suffix, "-").concat(index)] = hex;
        }
      });
    }

    /**
     * Iterate over all images in the current selected element and extract colors from them.
     *
     * @return {void}
     */
  }, {
    key: "extractColorsFromImages",
    value: function extractColorsFromImages() {
      var _this6 = this;
      // Iterate over all images in the widget.
      var images = this.backgroundImages;
      images.forEach(function (img, i) {
        _this6.extractColorsFromImage(img, i);
      });
      this.backgroundImages = [];
    }

    /**
     * Add the color swatches to a picker container.
     *
     * @param {HTMLElement} picker - Picker HTML element to append the swatches to.
     *
     * @return {void}
     */
  }, {
    key: "addColorSwatches",
    value: function addColorSwatches(picker) {
      var _this7 = this;
      Object.entries(this.colors).forEach(function (_ref2) {
        var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
          value = _ref3[1];
        var swatch = document.createElement('div');
        swatch.classList.add(_this7.classes.swatch);
        swatch.style = "--color: ".concat(value);
        swatch.dataset.text = value.replace('#', '');
        swatch.addEventListener('mouseenter', function () {
          $e.run('elements-color-picker/enter-preview', {
            value: value
          });
        });
        swatch.addEventListener('mouseleave', function () {
          $e.run('elements-color-picker/exit-preview');
        });
        swatch.addEventListener('click', function (e) {
          $e.run('elements-color-picker/apply', {
            value: value,
            trigger: {
              palette: picker,
              swatch: e.target
            }
          });
          e.stopPropagation();
        });
        picker.append(swatch);
      });
    }

    /**
     * Add a tooltip to a picker container.
     *
     * @param {HTMLElement} picker - Picker HTML element to add the tooltip to.
     *
     * @return {void}
     */
  }, {
    key: "addTooltip",
    value: function addTooltip(picker) {
      jQuery(picker).tipsy({
        gravity: 's',
        className: this.classes.tooltip,
        trigger: 'manual',
        title: function title() {
          return __('Select a color from any image, or from an element whose color you\'ve manually defined.', 'elementor');
        }
      }).tipsy('show');

      // Hack to move Tipsy to the preview wrapper because it defaults to the editor's `document.body`.
      // TODO: Use something other than Tipsy.
      var tooltip = document.querySelector(this.selectors.tooltip);
      elementor.$previewWrapper[0].appendChild(tooltip);

      // Hack to prevent hover on tooltip triggering a `mouseleave` event on the preview wrapper.
      tooltip.style.pointerEvents = 'none';
    }

    /**
     * Remove a tooltip from a picker container.
     *
     * @param {HTMLElement} picker - Picker HTML element to remove the tooltip from.
     *
     * @return {void}
     */
  }, {
    key: "removeTooltip",
    value: function removeTooltip(picker) {
      jQuery(picker).tipsy('hide');
    }

    /**
     * Initialize the swatch with the color palette, using x & y positions, relative to the parent.
     *
     * @param {number} x
     * @param {number} y
     *
     * @return {void}
     */
  }, {
    key: "initSwatch",
    value: function initSwatch() {
      var _this8 = this;
      var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
      var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
      var count = Object.entries(this.colors).length;
      var picker = document.createElement('div');
      picker.dataset.count = count;
      picker.classList.add(this.classes.picker, this.classes.hidden);
      picker.style = "\n\t\t\t--count: ".concat(count, ";\n\t\t\t--left: ").concat(x, ";\n\t\t\t--top: ").concat(y, ";\n\t\t");

      // Append the swatch before adding colors to it in order to avoid the click event of the swatches,
      // which will fire the `apply` command and will close everything.
      this.container.view.$el[0].append(picker);

      // Check if the picker is overflowing out of the parent.
      var observer = elementorModules.utils.Scroll.scrollObserver({
        callback: function callback(event) {
          observer.unobserve(picker);
          if (!event.isInViewport) {
            picker.style.setProperty('--left', 'unset');
            picker.style.setProperty('--right', '0');
          }
          picker.classList.remove(_this8.classes.hidden);
        },
        root: this.container.view.$el[0],
        offset: "0px -".concat(parseInt(picker.getBoundingClientRect().width), "px 0px")
      });
      observer.observe(picker);
      if (0 === count) {
        // Show a Tipsy tooltip.
        this.addTooltip(picker);
      } else {
        // Add the colors swatches.
        this.addColorSwatches(picker);
      }

      // Remove the picker on mouse leave.
      this.container.view.$el[0].addEventListener('mouseleave', function () {
        _this8.removeTooltip(picker);

        // Remove only after the animation has finished.
        setTimeout(function () {
          picker.remove();
        }, 300);
      }, {
        once: true
      });
    }

    /**
     * Check if the palette reached its colors limit.
     *
     * @return {boolean} true if limit has been reached
     */
  }, {
    key: "reachedColorsLimit",
    value: function reachedColorsLimit() {
      var COLORS_LIMIT = 5;
      return COLORS_LIMIT <= Object.keys(this.colors).length;
    }
  }]);
}($e.modules.CommandBase);

/***/ }),

/***/ "../modules/elements-color-picker/assets/js/editor/commands/start.js":
/*!***************************************************************************!*\
  !*** ../modules/elements-color-picker/assets/js/editor/commands/start.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.Start = 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 _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 _utils = __webpack_require__(/*! ../utils */ "../modules/elements-color-picker/assets/js/editor/utils.js");
var _colorPicking = __webpack_require__(/*! ../ui-states/color-picking */ "../modules/elements-color-picker/assets/js/editor/ui-states/color-picking.js");
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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; })(); }
/**
 * Start the color picking process.
 */
var Start = exports.Start = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Start() {
    (0, _classCallCheck2.default)(this, Start);
    return _callSuper(this, Start, arguments);
  }
  (0, _inherits2.default)(Start, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Start, [{
    key: "apply",
    value: function apply(args) {
      // Activate the component since the default behavior will activate it only on route change,
      // but this component doesn't have any routes.
      this.component.activate();

      // Enter color picking mode.
      $e.uiStates.set('elements-color-picker/color-picking', _colorPicking.COLOR_PICKING_ON);
      this.component.currentPicker = _objectSpread(_objectSpread({}, args), {}, {
        initialColor: args.container.getSetting(args.control)
      });

      // Set the picking process trigger to active mode.
      this.component.currentPicker.trigger.classList.add('e-control-tool-disabled');

      // Initialize a swatch on click.
      var elementorElements = elementor.$previewContents[0].querySelectorAll('.elementor-element');
      (0, _utils.addNamespaceHandler)(elementorElements, 'click.color-picker', function (e) {
        e.preventDefault();
        $e.run('elements-color-picker/show-swatches', {
          event: e
        });
      });

      // Stop the picking process when the user leaves the preview area.
      (0, _utils.addNamespaceHandler)(elementor.$previewWrapper[0], 'mouseleave.color-picker', function () {
        $e.run('elements-color-picker/end');
      });
    }
  }]);
}($e.modules.CommandBase);

/***/ }),

/***/ "../modules/elements-color-picker/assets/js/editor/component.js":
/*!**********************************************************************!*\
  !*** ../modules/elements-color-picker/assets/js/editor/component.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.js"));
var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../modules/elements-color-picker/assets/js/editor/commands/index.js"));
var uiStates = _interopRequireWildcard(__webpack_require__(/*! ./ui-states/ */ "../modules/elements-color-picker/assets/js/editor/ui-states/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function Component() {
    var _this;
    (0, _classCallCheck2.default)(this, Component);
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    _this = _callSuper(this, Component, [].concat(args));
    (0, _defineProperty2.default)(_this, "currentPicker", _this.getDefaultPicker());
    return _this;
  }
  (0, _inherits2.default)(Component, _ComponentBase);
  return (0, _createClass2.default)(Component, [{
    key: "getDefaultPicker",
    value:
    /**
     * Get the default picker object.
     *
     * @return {Object} picker
     */
    function getDefaultPicker() {
      return {
        kit: null,
        container: null,
        control: null,
        trigger: null,
        initialColor: null
      };
    }

    /**
     * Reset the current picker to its default.
     *
     * @return {void}
     */
  }, {
    key: "resetPicker",
    value: function resetPicker() {
      this.currentPicker = this.getDefaultPicker();
    }

    /**
     * Silently render the UI using a new color value.
     *
     * @param {string} value - The new color to set.
     *
     * @return {void}
     */
  }, {
    key: "renderUI",
    value: function renderUI(value) {
      var _this$currentPicker = this.currentPicker,
        container = _this$currentPicker.container,
        control = _this$currentPicker.control,
        kit = _this$currentPicker.kit;

      // Silent.
      container.settings.set(control, value);
      var view = container.view;

      // If the container has a View that can be rendered.
      if (view !== null && view !== void 0 && view.renderUI) {
        view.renderUI();
      }

      // If it's a kit which uses CSS variables.
      if (kit) {
        var id = kit.config.id,
          cssVar = "--e-global-color-".concat(container.id);
        elementor.$previewContents[0].querySelector(".elementor-kit-".concat(id)).style.setProperty(cssVar, value);
      }
    }

    /**
     * Retrieve the Eye-Dropper namespace.
     *
     * @return {string} Eye-Dropper namespace
     */
  }, {
    key: "getNamespace",
    value: function getNamespace() {
      return 'elements-color-picker';
    }

    /**
     * Import the component commands.
     *
     * @return {Object} commands
     */
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }

    /**
     * Import the component UI states.
     *
     * @return {Object} UI States
     */
  }, {
    key: "defaultUiStates",
    value: function defaultUiStates() {
      return this.importUiStates(uiStates);
    }

    /**
     * Set the commands keyboard shortcuts.
     *
     * @return {Object} shortcut
     */
  }, {
    key: "defaultShortcuts",
    value: function defaultShortcuts() {
      return {
        end: {
          keys: 'esc',
          scopes: [this.getNamespace()]
        }
      };
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../modules/elements-color-picker/assets/js/editor/module.js":
/*!*******************************************************************!*\
  !*** ../modules/elements-color-picker/assets/js/editor/module.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/elements-color-picker/assets/js/editor/component.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var ElementsColorPicker = exports["default"] = /*#__PURE__*/function (_elementorModules$Vie) {
  function ElementsColorPicker() {
    (0, _classCallCheck2.default)(this, ElementsColorPicker);
    return _callSuper(this, ElementsColorPicker, arguments);
  }
  (0, _inherits2.default)(ElementsColorPicker, _elementorModules$Vie);
  return (0, _createClass2.default)(ElementsColorPicker, [{
    key: "onInit",
    value:
    /**
     * Initialize the Eye-Dropper module.
     *
     * @return {void}
     */
    function onInit() {
      _superPropGet(ElementsColorPicker, "onInit", this, 3)([]);
      $e.components.register(new _component.default());
    }
  }]);
}(elementorModules.ViewModule);

/***/ }),

/***/ "../modules/elements-color-picker/assets/js/editor/ui-states/color-picking.js":
/*!************************************************************************************!*\
  !*** ../modules/elements-color-picker/assets/js/editor/ui-states/color-picking.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.ColorPicking = exports.COLOR_PICKING_ON = 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 _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 _uiStateBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/core/states/ui-state-base */ "../modules/web-cli/assets/js/core/states/ui-state-base.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; })(); }
var COLOR_PICKING_ON = exports.COLOR_PICKING_ON = 'on';

/**
 * UI state to determine if the Editor is in Color Picking mode.
 */
var ColorPicking = exports.ColorPicking = /*#__PURE__*/function (_UiStateBase) {
  function ColorPicking() {
    (0, _classCallCheck2.default)(this, ColorPicking);
    return _callSuper(this, ColorPicking, arguments);
  }
  (0, _inherits2.default)(ColorPicking, _UiStateBase);
  return (0, _createClass2.default)(ColorPicking, [{
    key: "getId",
    value: function getId() {
      return 'color-picking';
    }
  }, {
    key: "getScopes",
    value: function getScopes() {
      return [elementor.$previewContents[0].body];
    }
  }, {
    key: "getOptions",
    value: function getOptions() {
      return (0, _defineProperty2.default)({}, COLOR_PICKING_ON, '');
    }

    /**
     * Listen to UI state changes and execute the color picker side effects.
     *
     * @param {string} oldValue
     * @param {string} newValue
     *
     * @return {void}
     */
  }, {
    key: "onChange",
    value: function onChange(oldValue, newValue) {
      var editAreaClass = 'elementor-edit-area-active',
        isColorPickingOn = COLOR_PICKING_ON === newValue,
        editMode = isColorPickingOn ? 'picker' : 'edit';
      elementor.changeEditMode(editMode);
      this.toggleScopesClass(editAreaClass, isColorPickingOn);
    }

    /**
     * Toggle CSS class to the scopes.
     *
     * @param {string}  className - CSS class to toggle.
     * @param {boolean} state     - The class state (on/off).
     *
     * @return {void}
     */
  }, {
    key: "toggleScopesClass",
    value: function toggleScopesClass(className, state) {
      this.getScopes().forEach(function (scope) {
        scope.classList.toggle(className, state);
      });
    }
  }]);
}(_uiStateBase.default);

/***/ }),

/***/ "../modules/elements-color-picker/assets/js/editor/ui-states/index.js":
/*!****************************************************************************!*\
  !*** ../modules/elements-color-picker/assets/js/editor/ui-states/index.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "ColorPicking", ({
  enumerable: true,
  get: function get() {
    return _colorPicking.ColorPicking;
  }
}));
var _colorPicking = __webpack_require__(/*! ./color-picking */ "../modules/elements-color-picker/assets/js/editor/ui-states/color-picking.js");

/***/ }),

/***/ "../modules/elements-color-picker/assets/js/editor/utils.js":
/*!******************************************************************!*\
  !*** ../modules/elements-color-picker/assets/js/editor/utils.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.removeNamespaceHandler = exports.addNamespaceHandler = void 0;
var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
/**
 * Add custom namespaced event using ES6. Equivalent to jQuery's `.on()`.
 * NOTE: Might cause memory leaks if the element is removed from then DOM without removing its `nsEvents`.
 *
 * @param {HTMLElement|NodeList} elements - An HTML element to attach the event to.
 * @param {string}               nsEvent  - Namespaced event name, e.g. `click.color-picker`.
 * @param {Function}             callback - Callback handler to the attached event.
 * @param {Object}               options  - Additional event options.
 *
 * @return {void}
 */
var addNamespaceHandler = exports.addNamespaceHandler = function addNamespaceHandler(elements, nsEvent, callback) {
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
  var _nsEvent$split = nsEvent.split('.'),
    _nsEvent$split2 = (0, _slicedToArray2.default)(_nsEvent$split, 1),
    event = _nsEvent$split2[0];

  // Add support for multi elements.
  if (!(Symbol.iterator in Object(elements))) {
    elements = [elements];
  }
  elements.forEach(function (element) {
    if (!element.nsEvents) {
      element.nsEvents = {};
    }
    element.addEventListener(event, callback, options);
    element.nsEvents[nsEvent] = callback;
  });
};

/**
 * Remove custom namespaced event using ES6. Equivalent to jQuery's `.off()`.
 *
 * @param {NodeList} elements - An HTML element to remove the event from.
 * @param {string}   nsEvent  - Namespaced event name, e.g. `click.color-picker`.
 *
 * @return {void}
 */
var removeNamespaceHandler = exports.removeNamespaceHandler = function removeNamespaceHandler(elements, nsEvent) {
  var _nsEvent$split3 = nsEvent.split('.'),
    _nsEvent$split4 = (0, _slicedToArray2.default)(_nsEvent$split3, 1),
    event = _nsEvent$split4[0];

  // Add support for multi elements.
  if (!(Symbol.iterator in Object(elements))) {
    elements = [elements];
  }
  elements.forEach(function (element) {
    var _element$nsEvents, _element$nsEvents2;
    element.removeEventListener(event, (_element$nsEvents = element.nsEvents) === null || _element$nsEvents === void 0 ? void 0 : _element$nsEvents[nsEvent]);
    (_element$nsEvents2 = element.nsEvents) === null || _element$nsEvents2 === void 0 || delete _element$nsEvents2[nsEvent];
  });
};

/***/ }),

/***/ "../modules/favorites/assets/js/editor/commands-data/index.js":
/*!********************************************************************!*\
  !*** ../modules/favorites/assets/js/editor/commands-data/index.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.Index = 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"));
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; })(); }
var Index = exports.Index = /*#__PURE__*/function (_$e$modules$CommandDa) {
  function Index() {
    (0, _classCallCheck2.default)(this, Index);
    return _callSuper(this, Index, arguments);
  }
  (0, _inherits2.default)(Index, _$e$modules$CommandDa);
  return (0, _createClass2.default)(Index, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return 'favorites/{type}';
    }
  }]);
}($e.modules.CommandData);

/***/ }),

/***/ "../modules/favorites/assets/js/editor/commands/base.js":
/*!**************************************************************!*\
  !*** ../modules/favorites/assets/js/editor/commands/base.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"));
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; })(); }
var CommandsBase = exports["default"] = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function CommandsBase() {
    (0, _classCallCheck2.default)(this, CommandsBase);
    return _callSuper(this, CommandsBase, arguments);
  }
  (0, _inherits2.default)(CommandsBase, _$e$modules$CommandBa);
  return (0, _createClass2.default)(CommandsBase, [{
    key: "validateArgs",
    value: function validateArgs() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      this.requireArgumentType('type', 'string', args);
      this.requireArgumentType('favorite', 'string', args);
    }
  }]);
}($e.modules.CommandBase);

/***/ }),

/***/ "../modules/favorites/assets/js/editor/commands/create.js":
/*!****************************************************************!*\
  !*** ../modules/favorites/assets/js/editor/commands/create.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"] = exports.Create = 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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/favorites/assets/js/editor/commands/base.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; })(); }
var Create = exports.Create = /*#__PURE__*/function (_CommandsBase) {
  function Create() {
    (0, _classCallCheck2.default)(this, Create);
    return _callSuper(this, Create, arguments);
  }
  (0, _inherits2.default)(Create, _CommandsBase);
  return (0, _createClass2.default)(Create, [{
    key: "apply",
    value: function apply(args) {
      var _manager$typeInstance;
      var manager = this.component.manager;
      return (_manager$typeInstance = manager.typeInstance(args.type)) === null || _manager$typeInstance === void 0 ? void 0 : _manager$typeInstance.create(args.favorite);
    }
  }]);
}(_base.default);
var _default = exports["default"] = Create;

/***/ }),

/***/ "../modules/favorites/assets/js/editor/commands/delete.js":
/*!****************************************************************!*\
  !*** ../modules/favorites/assets/js/editor/commands/delete.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"] = exports.Delete = 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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/favorites/assets/js/editor/commands/base.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; })(); }
var Delete = exports.Delete = /*#__PURE__*/function (_CommandsBase) {
  function Delete() {
    (0, _classCallCheck2.default)(this, Delete);
    return _callSuper(this, Delete, arguments);
  }
  (0, _inherits2.default)(Delete, _CommandsBase);
  return (0, _createClass2.default)(Delete, [{
    key: "apply",
    value: function apply(args) {
      var _manager$typeInstance;
      var manager = this.component.manager;
      return (_manager$typeInstance = manager.typeInstance(args.type)) === null || _manager$typeInstance === void 0 ? void 0 : _manager$typeInstance.delete(args.favorite);
    }
  }]);
}(_base.default);
var _default = exports["default"] = Delete;

/***/ }),

/***/ "../modules/favorites/assets/js/editor/commands/index.js":
/*!***************************************************************!*\
  !*** ../modules/favorites/assets/js/editor/commands/index.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Create", ({
  enumerable: true,
  get: function get() {
    return _create.Create;
  }
}));
Object.defineProperty(exports, "Delete", ({
  enumerable: true,
  get: function get() {
    return _delete.Delete;
  }
}));
Object.defineProperty(exports, "Toggle", ({
  enumerable: true,
  get: function get() {
    return _toggle.Toggle;
  }
}));
var _create = __webpack_require__(/*! ./create */ "../modules/favorites/assets/js/editor/commands/create.js");
var _delete = __webpack_require__(/*! ./delete */ "../modules/favorites/assets/js/editor/commands/delete.js");
var _toggle = __webpack_require__(/*! ./toggle */ "../modules/favorites/assets/js/editor/commands/toggle.js");

/***/ }),

/***/ "../modules/favorites/assets/js/editor/commands/toggle.js":
/*!****************************************************************!*\
  !*** ../modules/favorites/assets/js/editor/commands/toggle.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"] = exports.Toggle = 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"));
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; })(); }
var Toggle = exports.Toggle = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Toggle() {
    (0, _classCallCheck2.default)(this, Toggle);
    return _callSuper(this, Toggle, arguments);
  }
  (0, _inherits2.default)(Toggle, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Toggle, [{
    key: "apply",
    value: function apply(args) {
      var _manager$typeInstance;
      var manager = this.component.manager;
      return (_manager$typeInstance = manager.typeInstance(args.type)) === null || _manager$typeInstance === void 0 ? void 0 : _manager$typeInstance.toggle(args.favorite);
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Toggle;

/***/ }),

/***/ "../modules/favorites/assets/js/editor/component.js":
/*!**********************************************************!*\
  !*** ../modules/favorites/assets/js/editor/component.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 commands = _interopRequireWildcard(__webpack_require__(/*! ./commands */ "../modules/favorites/assets/js/editor/commands/index.js"));
var dataCommands = _interopRequireWildcard(__webpack_require__(/*! ./commands-data */ "../modules/favorites/assets/js/editor/commands-data/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
var Component = exports["default"] = /*#__PURE__*/function (_$e$modules$Component) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _$e$modules$Component);
  return (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'favorites';
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }
  }, {
    key: "defaultData",
    value: function defaultData() {
      return this.importCommands(dataCommands);
    }
  }]);
}($e.modules.ComponentBase);

/***/ }),

/***/ "../modules/favorites/assets/js/editor/favorite-type.js":
/*!**************************************************************!*\
  !*** ../modules/favorites/assets/js/editor/favorite-type.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 FavoriteType = exports["default"] = /*#__PURE__*/function () {
  function FavoriteType() {
    (0, _classCallCheck2.default)(this, FavoriteType);
  }
  return (0, _createClass2.default)(FavoriteType, [{
    key: "getName",
    value:
    // eslint-disable-next-line jsdoc/require-returns-check
    /**
     * Get the name of the type.
     *
     * @return {string} name
     */
    function getName() {}

    // eslint-disable-next-line jsdoc/require-returns-check
    /**
     * Create new user favorite to the type.
     *
     * @param {*} slug
     *
     * @return {*} result
     */
  }, {
    key: "create",
    value: function create(slug) {} // eslint-disable-line no-unused-vars

    // eslint-disable-next-line jsdoc/require-returns-check
    /**
     * Delete existing favorite from the type.
     *
     * @param {*} slug
     *
     * @return {*} result
     */
  }, {
    key: "delete",
    value: function _delete(slug) {} // eslint-disable-line no-unused-vars

    // eslint-disable-next-line jsdoc/require-returns-check
    /**
     * Toggle favorite of this type.
     *
     * @param {*} slug
     *
     * @return {*} result
     */
  }, {
    key: "toggle",
    value: function toggle(slug) {} // eslint-disable-line no-unused-vars
  }]);
}();

/***/ }),

/***/ "../modules/favorites/assets/js/editor/module.js":
/*!*******************************************************!*\
  !*** ../modules/favorites/assets/js/editor/module.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/favorites/assets/js/editor/component.js"));
var _widgets = _interopRequireDefault(__webpack_require__(/*! ./types/widgets/widgets */ "../modules/favorites/assets/js/editor/types/widgets/widgets.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('./favorite-type')} FavoriteType
 */
var FavoritesModule = /*#__PURE__*/function (_elementorModules$edi) {
  function FavoritesModule() {
    var _this;
    (0, _classCallCheck2.default)(this, FavoritesModule);
    _this = _callSuper(this, FavoritesModule);
    (0, _defineProperty2.default)(_this, "types", {});
    var types = [_widgets.default];
    types.forEach(function (classRef) {
      return _this.register(classRef);
    });
    return _this;
  }
  (0, _inherits2.default)(FavoritesModule, _elementorModules$edi);
  return (0, _createClass2.default)(FavoritesModule, [{
    key: "onElementorLoaded",
    value: function onElementorLoaded() {
      this.component = $e.components.register(new _component.default({
        manager: this
      }));
    }

    /**
     * Get registered favorites type instance.
     *
     * @param {string} type
     * @return { FavoriteType } type
     */
  }, {
    key: "typeInstance",
    value: function typeInstance(type) {
      if (undefined === this.types[type]) {
        throw new Error("Type '".concat(type, "' is not found"));
      }
      return this.types[type];
    }

    /**
     * @param {*} classRef
     */
  }, {
    key: "register",
    value: function register(classRef) {
      var instance = new classRef();
      this.types[instance.getName()] = instance;
    }
  }]);
}(elementorModules.editor.utils.Module);
var _default = exports["default"] = FavoritesModule;

/***/ }),

/***/ "../modules/favorites/assets/js/editor/types/widgets/behaviors/panel-category-behavior.js":
/*!************************************************************************************************!*\
  !*** ../modules/favorites/assets/js/editor/types/widgets/behaviors/panel-category-behavior.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"));
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; })(); }
var PanelCategoryBehavior = exports["default"] = /*#__PURE__*/function (_Marionette$Behavior) {
  function PanelCategoryBehavior() {
    (0, _classCallCheck2.default)(this, PanelCategoryBehavior);
    return _callSuper(this, PanelCategoryBehavior, arguments);
  }
  (0, _inherits2.default)(PanelCategoryBehavior, _Marionette$Behavior);
  return (0, _createClass2.default)(PanelCategoryBehavior, [{
    key: "onRender",
    value: function onRender() {
      if (this.isFavoritesCategory()) {
        var hasFavorites = this.view.collection.length;
        if (!hasFavorites) {
          this.$el.hide();
        }
      }
    }
  }, {
    key: "isFavoritesCategory",
    value: function isFavoritesCategory() {
      return 'favorites' === this.view.options.model.get('name');
    }
  }]);
}(Marionette.Behavior);

/***/ }),

/***/ "../modules/favorites/assets/js/editor/types/widgets/widgets.js":
/*!**********************************************************************!*\
  !*** ../modules/favorites/assets/js/editor/types/widgets/widgets.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 _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 _favoriteType = _interopRequireDefault(__webpack_require__(/*! ../../favorite-type */ "../modules/favorites/assets/js/editor/favorite-type.js"));
var _panelCategoryBehavior = _interopRequireDefault(__webpack_require__(/*! ./behaviors/panel-category-behavior */ "../modules/favorites/assets/js/editor/types/widgets/behaviors/panel-category-behavior.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; })(); }
var Widgets = exports["default"] = /*#__PURE__*/function (_FavoriteType) {
  function Widgets() {
    var _this;
    (0, _classCallCheck2.default)(this, Widgets);
    _this = _callSuper(this, Widgets);
    elementor.hooks.addFilter('panel/category/behaviors', _this.addCategoryBehavior.bind(_this));
    elementor.hooks.addFilter('panel/element/contextMenuGroups', _this.addContextMenuGroups.bind(_this));
    return _this;
  }
  (0, _inherits2.default)(Widgets, _FavoriteType);
  return (0, _createClass2.default)(Widgets, [{
    key: "getName",
    value: function getName() {
      return 'widgets';
    }
  }, {
    key: "create",
    value: function create(favorite) {
      var widgetCache = this.getWidgetCache(favorite);
      if (undefined !== widgetCache) {
        widgetCache.categories.push(this.getCategorySlug());
        var result = $e.data.create('favorites/index', {}, {
          type: this.getName(),
          favorite: favorite
        });
        this.refreshCategories();
        return result;
      }
      return false;
    }
  }, {
    key: "delete",
    value: function _delete(favorite) {
      var widgetCache = this.getWidgetCache(favorite);
      if (undefined !== widgetCache) {
        widgetCache.categories.splice(widgetCache.categories.indexOf(this.getCategorySlug()), 1);
        var result = $e.data.delete('favorites/index', {
          type: this.getName(),
          favorite: favorite
        });
        this.refreshCategories();
        return result;
      }
      return false;
    }
  }, {
    key: "toggle",
    value: function toggle(favorite) {
      var widgetCache = this.getWidgetCache(favorite);
      if (undefined !== widgetCache) {
        var args = {
          type: this.getName(),
          favorite: favorite
        };
        if (this.isFavorite(favorite)) {
          return $e.run('favorites/delete', args);
        }
        return $e.run('favorites/create', args);
      }
      return false;
    }

    /**
     * Check whether a given widget is already favorite.
     *
     * @param {*} widget
     * @return {boolean} true if this widget is a favorite widget
     */
  }, {
    key: "isFavorite",
    value: function isFavorite(widget) {
      var widgetCache = this.getWidgetCache(widget);
      if (undefined !== widgetCache) {
        return widgetCache.categories.includes(this.getCategorySlug());
      }
      return false;
    }

    /**
     * Get favorites category name in widgets panel.
     *
     * @return {string} favorites category
     */
  }, {
    key: "getCategorySlug",
    value: function getCategorySlug() {
      return 'favorites';
    }
  }, {
    key: "addCategoryBehavior",
    value: function addCategoryBehavior(behaviors) {
      return Object.assign({}, behaviors, {
        favoriteWidgets: {
          behaviorClass: _panelCategoryBehavior.default
        }
      });
    }

    /**
     * A filter callback to add the favorites context menu groups to
     * element view.
     *
     * @param {*} groups
     * @param {*} context
     * @return {[]} groups
     */
  }, {
    key: "addContextMenuGroups",
    value: function addContextMenuGroups(groups, context) {
      var _this2 = this;
      var widget = context.options.model.get('widgetType') || context.options.model.get('elType');
      return groups.concat([{
        name: 'favorite-toggle',
        actions: [{
          name: 'toggle',
          icon: this.isFavorite(widget) ? 'eicon-heart-o' : 'eicon-heart',
          title: this.isFavorite(widget) ? __('Remove from Favorites', 'elementor') : __('Add to Favorites', 'elementor'),
          callback: function callback() {
            _this2.toggle(widget);
            if (_this2.isFavorite(widget)) {
              elementor.notifications.showToast({
                message: __('Added', 'elementor')
              });
            }
          }
        }]
      }]);
    }

    /**
     * Re-render the categories view to reflect changes, while restoring
     * scroll position.
     */
  }, {
    key: "refreshCategories",
    value: function refreshCategories() {
      var psElement = elementor.getPanelView().perfectScrollbar.element,
        psScrollTop = psElement.scrollTop,
        psHeight = psElement.scrollHeight;
      $e.route('panel/elements/categories', {
        refresh: true,
        onAfter: function onAfter() {
          psElement.scrollTop = psScrollTop + (psElement.scrollHeight - psHeight);
        }
      });
    }

    /**
     * Get the widget cache object which stores the widgets config.
     *
     * @param {*} widget
     * @return {{}} widget cache object
     */
  }, {
    key: "getWidgetCache",
    value: function getWidgetCache(widget) {
      return elementor.widgetsCache[widget];
    }
  }]);
}(_favoriteType.default);

/***/ }),

/***/ "../modules/floating-buttons/assets/js/floating-bars/editor/module.js":
/*!****************************************************************************!*\
  !*** ../modules/floating-buttons/assets/js/floating-bars/editor/module.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"));
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; })(); }
var FloatingBarsLibraryModule = /*#__PURE__*/function (_elementorModules$edi) {
  function FloatingBarsLibraryModule() {
    (0, _classCallCheck2.default)(this, FloatingBarsLibraryModule);
    return _callSuper(this, FloatingBarsLibraryModule, arguments);
  }
  (0, _inherits2.default)(FloatingBarsLibraryModule, _elementorModules$edi);
  return (0, _createClass2.default)(FloatingBarsLibraryModule, [{
    key: "onElementorLoaded",
    value: function onElementorLoaded() {
      elementor.channels.editor.on('section:activated', this.hideAdvancedTab.bind(this));
    }
  }, {
    key: "hideAdvancedTab",
    value: function hideAdvancedTab(sectionName, editor) {
      var _editor$model;
      var widgetType = (editor === null || editor === void 0 || (_editor$model = editor.model) === null || _editor$model === void 0 ? void 0 : _editor$model.get('widgetType')) || '';
      if (!widgetType.startsWith('floating-bars')) {
        return;
      }
      var advancedTab = (editor === null || editor === void 0 ? void 0 : editor.el.querySelector('.elementor-tab-control-advanced')) || false;
      if (advancedTab) {
        advancedTab.style.display = 'none';
      }
    }
  }, {
    key: "onElementorInit",
    value: function onElementorInit() {
      var urlParams = new URLSearchParams(window.location.search);
      if ('floating-bars' === urlParams.get('floating_element')) {
        elementor.hooks.addFilter('elementor/editor/template-library/template/classes', function (classes) {
          return classes.replace('elementor-template-library-template-floating_button', 'elementor-template-library-template-floating_bar');
        }, 10, 1);
      }
    }
  }]);
}(elementorModules.editor.utils.Module);
var _default = exports["default"] = FloatingBarsLibraryModule;

/***/ }),

/***/ "../modules/floating-buttons/assets/js/floating-buttons/editor/component.js":
/*!**********************************************************************************!*\
  !*** ../modules/floating-buttons/assets/js/floating-buttons/editor/component.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/ */ "../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
var LinksPageComponent = exports["default"] = /*#__PURE__*/function (_$e$modules$Component) {
  function LinksPageComponent() {
    (0, _classCallCheck2.default)(this, LinksPageComponent);
    return _callSuper(this, LinksPageComponent, arguments);
  }
  (0, _inherits2.default)(LinksPageComponent, _$e$modules$Component);
  return (0, _createClass2.default)(LinksPageComponent, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'document/floating-buttons';
    }
  }, {
    key: "defaultHooks",
    value: function defaultHooks() {
      return this.importHooks(hooks);
    }
  }]);
}($e.modules.ComponentBase);

/***/ }),

/***/ "../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/index.js":
/*!************************************************************************************!*\
  !*** ../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/index.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "AfterSelect", ({
  enumerable: true,
  get: function get() {
    return _select.AfterSelect;
  }
}));
Object.defineProperty(exports, "DeleteParentIfWidget", ({
  enumerable: true,
  get: function get() {
    return _delete.DeleteParentIfWidget;
  }
}));
Object.defineProperty(exports, "FloatingButtonsAddLibraryTab", ({
  enumerable: true,
  get: function get() {
    return _addFloatingButtonsTab.FloatingButtonsAddLibraryTab;
  }
}));
Object.defineProperty(exports, "FloatingButtonsRemoveLibraryTab", ({
  enumerable: true,
  get: function get() {
    return _removeFloatingButtonsTab.FloatingButtonsRemoveLibraryTab;
  }
}));
Object.defineProperty(exports, "OpenLibraryAfterDelete", ({
  enumerable: true,
  get: function get() {
    return _openLibraryAfterDelete.OpenLibraryAfterDelete;
  }
}));
Object.defineProperty(exports, "SelectLoadingButtonOnOpen", ({
  enumerable: true,
  get: function get() {
    return _selectFloatingButtonOnOpen.SelectLoadingButtonOnOpen;
  }
}));
var _addFloatingButtonsTab = __webpack_require__(/*! ./ui/editor/documents/open/add-floating-buttons-tab */ "../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/ui/editor/documents/open/add-floating-buttons-tab.js");
var _removeFloatingButtonsTab = __webpack_require__(/*! ./ui/editor/documents/close/remove-floating-buttons-tab */ "../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/ui/editor/documents/close/remove-floating-buttons-tab.js");
var _openLibraryAfterDelete = __webpack_require__(/*! ./ui/editor/delete/open-library-after-delete */ "../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/ui/editor/delete/open-library-after-delete.js");
var _select = __webpack_require__(/*! ./ui/editor/document/select */ "../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/ui/editor/document/select.js");
var _selectFloatingButtonOnOpen = __webpack_require__(/*! ./ui/editor/documents/attach-preview/select-floating-button-on-open */ "../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/ui/editor/documents/attach-preview/select-floating-button-on-open.js");
var _delete = __webpack_require__(/*! ./ui/editor/document/delete */ "../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/ui/editor/document/delete.js");

/***/ }),

/***/ "../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/ui/editor/delete/open-library-after-delete.js":
/*!*************************************************************************************************************************!*\
  !*** ../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/ui/editor/delete/open-library-after-delete.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"] = exports.OpenLibraryAfterDelete = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/ui/after */ "../modules/web-cli/assets/js/modules/hooks/ui/after.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; })(); }
var OpenLibraryAfterDelete = exports.OpenLibraryAfterDelete = /*#__PURE__*/function (_After) {
  function OpenLibraryAfterDelete() {
    (0, _classCallCheck2.default)(this, OpenLibraryAfterDelete);
    return _callSuper(this, OpenLibraryAfterDelete, arguments);
  }
  (0, _inherits2.default)(OpenLibraryAfterDelete, _After);
  return (0, _createClass2.default)(OpenLibraryAfterDelete, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/delete';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'open-library-after-delete';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var _args$container;
      var type = args === null || args === void 0 || (_args$container = args.container) === null || _args$container === void 0 || (_args$container = _args$container.document) === null || _args$container === void 0 || (_args$container = _args$container.config) === null || _args$container === void 0 ? void 0 : _args$container.type;
      if (!type) {
        var _args$containers$;
        type = args === null || args === void 0 || (_args$containers$ = args.containers[0]) === null || _args$containers$ === void 0 || (_args$containers$ = _args$containers$.document) === null || _args$containers$ === void 0 || (_args$containers$ = _args$containers$.config) === null || _args$containers$ === void 0 ? void 0 : _args$containers$.type;
      }
      return 'floating-buttons' === type;
    }
  }, {
    key: "apply",
    value: function apply() {
      $e.run('library/open');
    }
  }]);
}(_after.default);
var _default = exports["default"] = OpenLibraryAfterDelete;

/***/ }),

/***/ "../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/ui/editor/document/delete.js":
/*!********************************************************************************************************!*\
  !*** ../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/ui/editor/document/delete.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"] = exports.DeleteParentIfWidget = void 0;
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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/ui/after */ "../modules/web-cli/assets/js/modules/hooks/ui/after.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; })(); }
var DeleteParentIfWidget = exports.DeleteParentIfWidget = /*#__PURE__*/function (_After) {
  function DeleteParentIfWidget() {
    (0, _classCallCheck2.default)(this, DeleteParentIfWidget);
    return _callSuper(this, DeleteParentIfWidget, arguments);
  }
  (0, _inherits2.default)(DeleteParentIfWidget, _After);
  return (0, _createClass2.default)(DeleteParentIfWidget, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/delete';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'delete-parent-if-widget';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var _args$containers = args.containers,
        containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return containers.some(function (/** Container*/container) {
        var _container$document;
        return 'floating-buttons' === (container === null || container === void 0 || (_container$document = container.document) === null || _container$document === void 0 || (_container$document = _container$document.config) === null || _container$document === void 0 ? void 0 : _container$document.type) && 'widget' === container.model.get('elType');
      });
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers2 = args.containers,
        containers = _args$containers2 === void 0 ? [args.container] : _args$containers2;
      var _containers = (0, _slicedToArray2.default)(containers, 1),
        firstContainer = _containers[0];
      if (!firstContainer) {
        return;
      }
      var parent = firstContainer.parent;
      if (!parent) {
        return;
      }
      $e.run('document/elements/delete', {
        container: parent
      });
    }
  }]);
}(_after.default);
var _default = exports["default"] = DeleteParentIfWidget;

/***/ }),

/***/ "../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/ui/editor/document/select.js":
/*!********************************************************************************************************!*\
  !*** ../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/ui/editor/document/select.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"] = exports.AfterSelect = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/ui/after */ "../modules/web-cli/assets/js/modules/hooks/ui/after.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; })(); }
var AfterSelect = exports.AfterSelect = /*#__PURE__*/function (_After) {
  function AfterSelect() {
    (0, _classCallCheck2.default)(this, AfterSelect);
    return _callSuper(this, AfterSelect, arguments);
  }
  (0, _inherits2.default)(AfterSelect, _After);
  return (0, _createClass2.default)(AfterSelect, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/select';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'prevent-container-selection';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var _args$container;
      var type = args === null || args === void 0 || (_args$container = args.container) === null || _args$container === void 0 || (_args$container = _args$container.document) === null || _args$container === void 0 || (_args$container = _args$container.config) === null || _args$container === void 0 ? void 0 : _args$container.type;
      if (!type) {
        var _args$containers$;
        type = args === null || args === void 0 || (_args$containers$ = args.containers[0]) === null || _args$containers$ === void 0 || (_args$containers$ = _args$containers$.document) === null || _args$containers$ === void 0 || (_args$containers$ = _args$containers$.config) === null || _args$containers$ === void 0 ? void 0 : _args$containers$.type;
      }
      return 'floating-buttons' === type;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$container$type = args.container.type,
        type = _args$container$type === void 0 ? '' : _args$container$type;
      switch (type) {
        case 'section':
        case 'container':
          $e.run('document/elements/select', {
            container: args.container.children[0],
            append: false
          });
          break;
        default:
          break;
      }
    }
  }]);
}(_after.default);
var _default = exports["default"] = AfterSelect;

/***/ }),

/***/ "../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/ui/editor/documents/attach-preview/select-floating-button-on-open.js":
/*!************************************************************************************************************************************************!*\
  !*** ../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/ui/editor/documents/attach-preview/select-floating-button-on-open.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"] = exports.SelectLoadingButtonOnOpen = 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"));
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; })(); }
var SelectLoadingButtonOnOpen = exports.SelectLoadingButtonOnOpen = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  function SelectLoadingButtonOnOpen() {
    (0, _classCallCheck2.default)(this, SelectLoadingButtonOnOpen);
    return _callSuper(this, SelectLoadingButtonOnOpen, arguments);
  }
  (0, _inherits2.default)(SelectLoadingButtonOnOpen, _$e$modules$hookUI$Af);
  return (0, _createClass2.default)(SelectLoadingButtonOnOpen, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/attach-preview';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-floating-buttons-select-on-open';
    }
  }, {
    key: "getConditions",
    value: function getConditions() {
      var _elementor;
      return 'floating-buttons' === ((_elementor = elementor) === null || _elementor === void 0 || (_elementor = _elementor.config) === null || _elementor === void 0 || (_elementor = _elementor.document) === null || _elementor === void 0 ? void 0 : _elementor.type);
    }
  }, {
    key: "apply",
    value: function apply() {
      var _elementor2;
      var children = (_elementor2 = elementor) === null || _elementor2 === void 0 || (_elementor2 = _elementor2.documents) === null || _elementor2 === void 0 || (_elementor2 = _elementor2.currentDocument) === null || _elementor2 === void 0 || (_elementor2 = _elementor2.container) === null || _elementor2 === void 0 ? void 0 : _elementor2.children;
      if (Array.isArray(children) && children.length) {
        $e.run('document/elements/select', {
          container: children[0],
          append: false
        });
      } else {
        $e.run('library/open');
      }
    }
  }]);
}($e.modules.hookUI.After);
var _default = exports["default"] = SelectLoadingButtonOnOpen;

/***/ }),

/***/ "../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/ui/editor/documents/close/remove-floating-buttons-tab.js":
/*!************************************************************************************************************************************!*\
  !*** ../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/ui/editor/documents/close/remove-floating-buttons-tab.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"] = exports.FloatingButtonsRemoveLibraryTab = 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"));
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; })(); }
var FloatingButtonsRemoveLibraryTab = exports.FloatingButtonsRemoveLibraryTab = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  function FloatingButtonsRemoveLibraryTab() {
    (0, _classCallCheck2.default)(this, FloatingButtonsRemoveLibraryTab);
    return _callSuper(this, FloatingButtonsRemoveLibraryTab, arguments);
  }
  (0, _inherits2.default)(FloatingButtonsRemoveLibraryTab, _$e$modules$hookUI$Af);
  return (0, _createClass2.default)(FloatingButtonsRemoveLibraryTab, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/unload';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-floating-buttons-remove-library-tab';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var document = args.document;
      return 'floating-buttons' === document.config.type;
    }
  }, {
    key: "apply",
    value: function apply() {
      $e.components.get('library').removeTab('templates/floating-buttons');
      $e.components.get('library').addTab('templates/pages');
      $e.components.get('library').addTab('templates/blocks');
    }
  }]);
}($e.modules.hookUI.After);
var _default = exports["default"] = FloatingButtonsRemoveLibraryTab;

/***/ }),

/***/ "../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/ui/editor/documents/open/add-floating-buttons-tab.js":
/*!********************************************************************************************************************************!*\
  !*** ../modules/floating-buttons/assets/js/floating-buttons/editor/hooks/ui/editor/documents/open/add-floating-buttons-tab.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"] = exports.FloatingButtonsAddLibraryTab = 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"));
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; })(); }
var FloatingButtonsAddLibraryTab = exports.FloatingButtonsAddLibraryTab = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  function FloatingButtonsAddLibraryTab() {
    (0, _classCallCheck2.default)(this, FloatingButtonsAddLibraryTab);
    return _callSuper(this, FloatingButtonsAddLibraryTab, arguments);
  }
  (0, _inherits2.default)(FloatingButtonsAddLibraryTab, _$e$modules$hookUI$Af);
  return (0, _createClass2.default)(FloatingButtonsAddLibraryTab, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/open';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-floating-buttons-add-library-tab';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var document = elementor.documents.get(args.id);
      return 'floating-buttons' === document.config.type;
    }
  }, {
    key: "getSubtype",
    value: function getSubtype() {
      var urlParams = new URLSearchParams(window.location.search);
      switch (urlParams.get('floating_element')) {
        case 'floating-bars':
          return 'Floating Bar';
        case 'floating-buttons':
          return 'Floating Button';
        default:
          return 'Floating Button';
      }
    }
  }, {
    key: "getTitle",
    value: function getTitle() {
      var urlParams = new URLSearchParams(window.location.search);
      switch (urlParams.get('floating_element')) {
        case 'floating-bars':
          return __('Floating Bars', 'elementor');
        case 'floating-buttons':
          return __('Floating Buttons', 'elementor');
        default:
          return __('Floating Buttons', 'elementor');
      }
    }
  }, {
    key: "apply",
    value: function apply() {
      $e.components.get('library').addTab('templates/floating-buttons', {
        title: this.getTitle(),
        filter: {
          source: 'remote',
          type: 'floating_button',
          subtype: this.getSubtype()
        }
      }, 2);
      $e.components.get('library').removeTab('templates/blocks');
      $e.components.get('library').removeTab('templates/pages');
    }
  }]);
}($e.modules.hookUI.After);
var _default = exports["default"] = FloatingButtonsAddLibraryTab;

/***/ }),

/***/ "../modules/floating-buttons/assets/js/floating-buttons/editor/module.js":
/*!*******************************************************************************!*\
  !*** ../modules/floating-buttons/assets/js/floating-buttons/editor/module.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 _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/floating-buttons/assets/js/floating-buttons/editor/component.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; })(); }
var FloatingButtonsLibraryModule = /*#__PURE__*/function (_elementorModules$edi) {
  function FloatingButtonsLibraryModule() {
    (0, _classCallCheck2.default)(this, FloatingButtonsLibraryModule);
    return _callSuper(this, FloatingButtonsLibraryModule, arguments);
  }
  (0, _inherits2.default)(FloatingButtonsLibraryModule, _elementorModules$edi);
  return (0, _createClass2.default)(FloatingButtonsLibraryModule, [{
    key: "onElementorLoaded",
    value: function onElementorLoaded() {
      this.component = $e.components.register(new _component.default({
        manager: this
      }));
      elementor.channels.editor.on('section:activated', this.hideAdvancedTab.bind(this));
    }
  }, {
    key: "hideAdvancedTab",
    value: function hideAdvancedTab(sectionName, editor) {
      var _editor$model;
      var widgetType = (editor === null || editor === void 0 || (_editor$model = editor.model) === null || _editor$model === void 0 ? void 0 : _editor$model.get('widgetType')) || '';
      if (!widgetType.startsWith('contact-buttons')) {
        return;
      }
      var advancedTab = (editor === null || editor === void 0 ? void 0 : editor.el.querySelector('.elementor-tab-control-advanced')) || false;
      if (advancedTab) {
        advancedTab.style.display = 'none';
      }
    }
  }, {
    key: "onElementorInit",
    value: function onElementorInit() {
      var _this = this;
      elementor.hooks.addFilter('elements/base/behaviors', function (behaviors) {
        if (_this.isFloatingButtonDocument()) {
          var groups = behaviors.contextMenu.groups;
          behaviors.contextMenu.groups = groups.map(_this.filterOutUnsupportedActions()).filter(function (group) {
            return group.actions.length;
          });
        }
        return behaviors;
      }, 1000);
      elementor.hooks.addFilter('component/modal/close', function (close, component) {
        if ('library' === component.getNamespace() && 'library/templates/floating-buttons' === component.defaultRoute) {
          return function () {};
        }
        return close;
      }, 1000);
      elementor.hooks.addFilter('elementor/editor/template-library/template/promotion-link-search-params', function (queryString, templateData) {
        var type = templateData.type;
        if ('floating_button' === type) {
          try {
            var searchParams = new URLSearchParams(queryString);
            if (searchParams.has('utm_source')) {
              searchParams.set('utm_source', 'template-library-floating-buttons');
            }
            return searchParams.toString();
          } catch (e) {
            return queryString;
          }
        }
        return queryString;
      }, 1000);
    }
  }, {
    key: "filterOutUnsupportedActions",
    value: function filterOutUnsupportedActions() {
      return function (group) {
        var enabledCommands = elementor.helpers.hasPro() ? ['edit', 'delete', 'resetStyle'] : ['edit', 'delete', 'resetStyle', 'save'];
        var name = group.name,
          actions = group.actions;
        return {
          name: name,
          actions: actions.filter(function (action) {
            return enabledCommands.includes(action.name);
          })
        };
      };
    }
  }, {
    key: "isFloatingButtonDocument",
    value: function isFloatingButtonDocument() {
      return 'floating-buttons' === elementor.config.document.type;
    }
  }]);
}(elementorModules.editor.utils.Module);
var _default = exports["default"] = FloatingButtonsLibraryModule;

/***/ }),

/***/ "../modules/history/assets/js/component.js":
/*!*************************************************!*\
  !*** ../modules/history/assets/js/component.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 _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 _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.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; })(); }
var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _ComponentBase);
  return (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'panel/history';
    }
  }, {
    key: "defaultTabs",
    value: function defaultTabs() {
      return {
        actions: {
          title: __('Actions', 'elementor')
        },
        revisions: {
          title: __('Revisions', 'elementor')
        }
      };
    }
  }, {
    key: "defaultShortcuts",
    value: function defaultShortcuts() {
      return {
        actions: {
          keys: 'ctrl+shift+h',
          dependency: function dependency() {
            return 'edit' === elementor.channels.dataEditMode.request('activeMode');
          }
        }
      };
    }
  }, {
    key: "renderTab",
    value: function renderTab(tab) {
      elementor.getPanelView().setPage('historyPage').showView(tab);
    }
  }, {
    key: "activate",
    value: function activate() {
      // Activate the tab component itself.
      $e.components.activate(this.getTabRoute(this.currentTab));
    }
  }, {
    key: "getTabsWrapperSelector",
    value: function getTabsWrapperSelector() {
      return '#elementor-panel-elements-navigation';
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../modules/history/assets/js/history/component.js":
/*!*********************************************************!*\
  !*** ../modules/history/assets/js/history/component.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 _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.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; })(); }
var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _ComponentBase);
  return (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'panel/history/actions';
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return {
        do: function _do(args) {
          return $e.run('document/history/do', args);
        },
        undo: function undo() {
          return $e.run('document/history/undo');
        },
        redo: function redo() {
          return $e.run('document/history/redo');
        }
      };
    }
  }, {
    key: "defaultShortcuts",
    value: function defaultShortcuts() {
      return {
        undo: {
          keys: 'ctrl+z',
          exclude: ['input'],
          scopes: ['panel', 'navigator']
        },
        redo: {
          keys: 'ctrl+shift+z, ctrl+y',
          exclude: ['input'],
          scopes: ['panel', 'navigator']
        }
      };
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../modules/history/assets/js/history/empty.js":
/*!*****************************************************!*\
  !*** ../modules/history/assets/js/history/empty.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"));
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; })(); }
var _default = exports["default"] = /*#__PURE__*/function (_Marionette$ItemView) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _Marionette$ItemView);
  return (0, _createClass2.default)(_default, [{
    key: "getTemplate",
    value: function getTemplate() {
      return '#tmpl-elementor-panel-history-no-items';
    }
  }, {
    key: "id",
    value: function id() {
      return 'elementor-panel-history-no-items';
    }
  }, {
    key: "onDestroy",
    value: function onDestroy() {
      this._parent.$el.removeClass('elementor-empty');
    }
  }]);
}(Marionette.ItemView);

/***/ }),

/***/ "../modules/history/assets/js/history/item-model.js":
/*!**********************************************************!*\
  !*** ../modules/history/assets/js/history/item-model.js ***!
  \**********************************************************/
/***/ ((module) => {

"use strict";


module.exports = Backbone.Model.extend({
  defaults: {
    id: 0,
    type: '',
    status: 'not_applied',
    title: '',
    subTitle: '',
    action: '',
    history: {}
  },
  initialize: function initialize() {
    this.set('items', new Backbone.Collection());
  }
});

/***/ }),

/***/ "../modules/history/assets/js/history/item-view.js":
/*!*********************************************************!*\
  !*** ../modules/history/assets/js/history/item-view.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"));
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; })(); }
var _default = exports["default"] = /*#__PURE__*/function (_Marionette$ItemView) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _Marionette$ItemView);
  return (0, _createClass2.default)(_default, [{
    key: "tagName",
    value: function tagName() {
      return 'button';
    }
  }, {
    key: "getTemplate",
    value: function getTemplate() {
      return '#tmpl-elementor-panel-history-item';
    }
  }, {
    key: "className",
    value: function className() {
      return 'elementor-history-item elementor-history-item-' + this.model.get('status');
    }
  }, {
    key: "triggers",
    value: function triggers() {
      return {
        click: 'click'
      };
    }
  }]);
}(Marionette.ItemView);

/***/ }),

/***/ "../modules/history/assets/js/history/manager.js":
/*!*******************************************************!*\
  !*** ../modules/history/assets/js/history/manager.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 _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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _itemModel = _interopRequireDefault(__webpack_require__(/*! ./item-model */ "../modules/history/assets/js/history/item-model.js"));
/**
 * TODO: consider refactor this class.
 * TODO: should be `Document/History` component.
 * TODO: should be attached to elementor.history.history + BC.
 */
var HistoryManager = exports["default"] = /*#__PURE__*/function () {
  function HistoryManager(document) {
    (0, _classCallCheck2.default)(this, HistoryManager);
    (0, _defineProperty2.default)(this, "currentItemID", null);
    (0, _defineProperty2.default)(this, "items", new Backbone.Collection([], {
      model: _itemModel.default
    }));
    (0, _defineProperty2.default)(this, "active", true);
    (0, _defineProperty2.default)(this, "translations", {
      // Alphabetical order.
      add: __('Added', 'elementor'),
      change: __('Edited', 'elementor'),
      disable: __('Disabled', 'elementor'),
      duplicate: __('Duplicate', 'elementor'),
      enable: __('Enabled', 'elementor'),
      import: __('Imported', 'elementor'),
      move: __('Moved', 'elementor'),
      paste: __('Pasted', 'elementor'),
      paste_style: __('Style Pasted', 'elementor'),
      remove: __('Removed', 'elementor'),
      reset_settings: __('Settings Reset', 'elementor'),
      reset_style: __('Style Reset', 'elementor'),
      selected: __('Selected', 'elementor')
    });
    this.document = document;
    this.currentItem = new Backbone.Model({
      id: 0
    });
  }
  return (0, _createClass2.default)(HistoryManager, [{
    key: "getActionLabel",
    value: function getActionLabel(itemData) {
      // TODO: this function should be static.
      if (this.translations[itemData.type]) {
        return this.translations[itemData.type];
      }
      return itemData.type;
    }
  }, {
    key: "navigate",
    value: function navigate(isRedo) {
      var currentItem = this.items.find(function (model) {
          return 'not_applied' === model.get('status');
        }),
        currentItemIndex = this.items.indexOf(currentItem),
        requiredIndex = isRedo ? currentItemIndex - 1 : currentItemIndex + 1;
      if (!isRedo && !currentItem || requiredIndex < 0 || requiredIndex >= this.items.length) {
        return;
      }
      this.doItem(requiredIndex);
      var matchingDoItem = isRedo ? this.items.at(requiredIndex) : this.items.at(requiredIndex - 1);
      return matchingDoItem;
    }
  }, {
    key: "setActive",
    value: function setActive(value) {
      this.active = value;
    }
  }, {
    key: "getActive",
    value: function getActive() {
      return this.active;
    }
  }, {
    key: "getItems",
    value: function getItems() {
      return this.items;
    }
  }, {
    key: "startItem",
    value: function startItem(itemData) {
      this.currentItemID = this.addItem(itemData);
      return this.currentItemID;
    }
  }, {
    key: "endItem",
    value: function endItem(id) {
      if (this.currentItemID !== id) {
        return;
      }
      this.currentItemID = null;
    }
  }, {
    key: "deleteItem",
    value: function deleteItem(id) {
      var item = this.items.findWhere({
        id: id
      });
      this.items.remove(item);
      this.currentItemID = null;
    }
  }, {
    key: "isItemStarted",
    value: function isItemStarted() {
      return null !== this.currentItemID;
    }
  }, {
    key: "getCurrentId",
    value: function getCurrentId() {
      return this.currentItemID;
    }
  }, {
    key: "addItem",
    value: function addItem(itemData) {
      if (!this.getActive()) {
        return;
      }
      if (!this.items.length) {
        this.items.add({
          status: 'not_applied',
          title: __('Editing Started', 'elementor'),
          subTitle: '',
          action: '',
          editing_started: true
        });
      }

      // Remove old applied items from top of list
      while (this.items.length && 'applied' === this.items.first().get('status')) {
        this.items.shift();
      }
      var id = this.currentItemID ? this.currentItemID : new Date().getTime();
      var currentItem = this.items.findWhere({
        id: id
      });
      if (!currentItem) {
        currentItem = new _itemModel.default({
          id: id,
          title: itemData.title,
          subTitle: itemData.subTitle,
          action: this.getActionLabel(itemData),
          type: itemData.type
        });
        this.startItemTitle = '';
        this.startItemAction = '';
      }
      currentItem.get('items').add(itemData, {
        at: 0
      });
      this.items.add(currentItem, {
        at: 0
      });
      this.updateCurrentItem(currentItem);
      return id;
    }
  }, {
    key: "doItem",
    value: function doItem(index) {
      // Don't track while restoring the item
      this.setActive(false);
      var item = this.items.at(index);
      if ('not_applied' === item.get('status')) {
        this.undoItem(index);
      } else {
        this.redoItem(index);
      }
      this.setActive(true);
      var panel = elementor.getPanelView(),
        panelPage = panel.getCurrentPageView(),
        editedElementView = panelPage.getOption('editedElementView');
      var viewToScroll;
      if ($e.routes.isPartOf('panel/editor') && editedElementView) {
        if (editedElementView.isDestroyed) {
          // If the the element isn't exist - show the history panel
          $e.route('panel/history/actions');
        } else {
          // If element exist - render again, maybe the settings has been changed
          viewToScroll = editedElementView;
        }
      } else if (item instanceof Backbone.Model && item.get('items').length) {
        var historyItem = item.get('items').first();
        if (historyItem.get('restore')) {
          var container = 'sub-add' === historyItem.get('type') ? historyItem.get('data').containerToRestore : historyItem.get('container') || historyItem.get('containers');
          if (Array.isArray(container)) {
            container = container[0];
          }
          if (container) {
            viewToScroll = container.lookup().view;
          }
        }
      }
      $e.internal('document/save/set-is-modified', {
        status: item.get('id') !== this.document.editor.lastSaveHistoryId
      });
      this.updateCurrentItem(item);
      if (viewToScroll && !elementor.helpers.isInViewport(viewToScroll.$el[0], elementor.$previewContents.find('html')[0])) {
        elementor.helpers.scrollToView(viewToScroll.$el);
      }
    }
  }, {
    key: "undoItem",
    value: function undoItem(index) {
      for (var stepNum = 0; stepNum < index; stepNum++) {
        var item = this.items.at(stepNum);
        if ('not_applied' === item.get('status')) {
          item.get('items').each(function (subItem) {
            var restore = subItem.get('restore');
            if (restore) {
              restore(subItem);
            }
          });
          item.set('status', 'applied');
        }
      }
    }
  }, {
    key: "redoItem",
    value: function redoItem(index) {
      for (var stepNum = this.items.length - 1; stepNum >= index; stepNum--) {
        var item = this.items.at(stepNum);
        if ('applied' === item.get('status')) {
          var reversedSubItems = _.toArray(item.get('items').models).reverse();
          _(reversedSubItems).each(function (subItem) {
            var restore = subItem.get('restore');
            if (restore) {
              restore(subItem, true);
            }
          });
          item.set('status', 'not_applied');
        }
      }
    }
  }, {
    key: "updateCurrentItem",
    value: function updateCurrentItem(item) {
      // Save last selected item.
      this.currentItem = item;
      this.updatePanelPageCurrentItem();
    }
  }, {
    key: "updatePanelPageCurrentItem",
    value: function updatePanelPageCurrentItem() {
      if ($e.routes.is('panel/history/actions')) {
        elementor.getPanelView().getCurrentPageView().getCurrentTab().updateCurrentItem();
      }
    }
  }]);
}();

/***/ }),

/***/ "../modules/history/assets/js/history/panel-tab.js":
/*!*********************************************************!*\
  !*** ../modules/history/assets/js/history/panel-tab.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 _itemView = _interopRequireDefault(__webpack_require__(/*! ./item-view */ "../modules/history/assets/js/history/item-view.js"));
var _empty = _interopRequireDefault(__webpack_require__(/*! ./empty */ "../modules/history/assets/js/history/empty.js"));
module.exports = Marionette.CompositeView.extend({
  id: 'elementor-panel-history',
  template: '#tmpl-elementor-panel-history-tab',
  childView: _itemView.default,
  childViewContainer: '#elementor-history-list',
  emptyView: _empty.default,
  currentItem: null,
  updateCurrentItem: function updateCurrentItem() {
    var _this = this;
    if (this.children.length <= 1) {
      return;
    }
    _.defer(function () {
      // Set current item - the first not applied item
      var currentItem = _this.collection.find(function (model) {
          return 'not_applied' === model.get('status');
        }),
        currentView = _this.children.findByModel(currentItem);
      if (!currentView) {
        return;
      }
      var currentItemClass = 'elementor-history-item-current';
      if (_this.currentItem) {
        _this.currentItem.removeClass(currentItemClass);
      }
      _this.currentItem = currentView.$el;
      _this.currentItem.addClass(currentItemClass);
    });
  },
  onRender: function onRender() {
    this.updateCurrentItem();
  },
  onRenderEmpty: function onRenderEmpty() {
    this.$el.addClass('elementor-empty');
  },
  onChildviewClick: function onChildviewClick(childView, event) {
    if (childView.$el === this.currentItem) {
      return;
    }
    var collection = event.model.collection,
      index = collection.findIndex(event.model);
    $e.run('panel/history/actions/do', {
      index: index
    });
  }
});

/***/ }),

/***/ "../modules/history/assets/js/module.js":
/*!**********************************************!*\
  !*** ../modules/history/assets/js/module.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 _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 _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/history/assets/js/component.js"));
var _component2 = _interopRequireDefault(__webpack_require__(/*! ./history/component */ "../modules/history/assets/js/history/component.js"));
var _component3 = _interopRequireDefault(__webpack_require__(/*! ./revisions/component */ "../modules/history/assets/js/revisions/component.js"));
var _panelPage = _interopRequireDefault(__webpack_require__(/*! ./panel-page */ "../modules/history/assets/js/panel-page.js"));
var Manager = exports["default"] = /*#__PURE__*/function () {
  function Manager() {
    (0, _classCallCheck2.default)(this, Manager);
    elementorCommon.elements.$window.on('elementor:loaded', this.init);
  }
  return (0, _createClass2.default)(Manager, [{
    key: "init",
    value: function init() {
      $e.components.register(new _component.default());
      $e.components.register(new _component2.default());
      $e.components.register(new _component3.default());
      elementor.on('panel:init', function () {
        elementor.getPanelView().addPage('historyPage', {
          view: _panelPage.default,
          title: __('History', 'elementor')
        });
      });
    }

    /**
     * @deprecated since 2.9.0, use `elementor.documents.getCurrent().history` instead.
     */
  }, {
    key: "history",
    get: function get() {
      elementorDevTools.deprecation.deprecated('elementor.history.history', '2.9.0', 'elementor.documents.getCurrent().history');
      return elementor.documents.getCurrent().history;
    }

    /**
     * @deprecated since 2.9.0, use `elementor.documents.getCurrent().revisions` instead.
     */
  }, {
    key: "revisions",
    get: function get() {
      elementorDevTools.deprecation.deprecated('elementor.history.revisions', '2.9.0', 'elementor.documents.getCurrent().revisions');
      return elementor.documents.getCurrent().revisions;
    }
  }]);
}();

/***/ }),

/***/ "../modules/history/assets/js/panel-page.js":
/*!**************************************************!*\
  !*** ../modules/history/assets/js/panel-page.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 _loading = _interopRequireDefault(__webpack_require__(/*! ./revisions/panel/loading */ "../modules/history/assets/js/revisions/panel/loading.js"));
var _tab = _interopRequireDefault(__webpack_require__(/*! ./revisions/panel/tab */ "../modules/history/assets/js/revisions/panel/tab.js"));
var _empty = _interopRequireDefault(__webpack_require__(/*! ./revisions/panel/empty */ "../modules/history/assets/js/revisions/panel/empty.js"));
var TabHistoryView = __webpack_require__(/*! ./history/panel-tab */ "../modules/history/assets/js/history/panel-tab.js");
var _default = exports["default"] = Marionette.LayoutView.extend({
  template: '#tmpl-elementor-panel-history-page',
  regions: {
    content: '#elementor-panel-history-content'
  },
  ui: {
    tabs: '.elementor-panel-navigation-tab'
  },
  regionViews: {},
  currentTab: null,
  /**
   * @type {Document}
   */
  document: null,
  initialize: function initialize(options) {
    this.document = options.document || elementor.documents.getCurrent();
    this.initRegionViews();
  },
  initRegionViews: function initRegionViews() {
    var _this = this;
    var historyItems = this.document.history.getItems();
    this.regionViews = {
      actions: {
        view: function view() {
          return TabHistoryView;
        },
        options: {
          collection: historyItems,
          history: this.document.history
        }
      },
      revisions: {
        view: function view() {
          var revisionsItems = _this.document.revisions.getItems();
          if (!revisionsItems) {
            return _loading.default;
          }
          if (1 === revisionsItems.length && 'current' === revisionsItems.models[0].get('type')) {
            return _empty.default;
          }
          return _tab.default;
        },
        options: {
          document: this.document
        }
      }
    };
  },
  getCurrentTab: function getCurrentTab() {
    return this.currentTab;
  },
  showView: function showView(viewName) {
    var viewDetails = this.regionViews[viewName],
      options = viewDetails.options || {},
      View = viewDetails.view();
    if (this.currentTab && this.currentTab.constructor === View) {
      return;
    }
    this.currentTab = new View(options);
    this.content.show(this.currentTab);
  }
});

/***/ }),

/***/ "../modules/history/assets/js/revisions/collection.js":
/*!************************************************************!*\
  !*** ../modules/history/assets/js/revisions/collection.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var RevisionModel = __webpack_require__(/*! ./model */ "../modules/history/assets/js/revisions/model.js");
module.exports = Backbone.Collection.extend({
  model: RevisionModel,
  comparator: function comparator(model) {
    return -model.get('timestamp');
  }
});

/***/ }),

/***/ "../modules/history/assets/js/revisions/commands/down.js":
/*!***************************************************************!*\
  !*** ../modules/history/assets/js/revisions/commands/down.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"] = exports.Down = 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"));
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; })(); }
var Down = exports.Down = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Down() {
    (0, _classCallCheck2.default)(this, Down);
    return _callSuper(this, Down, arguments);
  }
  (0, _inherits2.default)(Down, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Down, [{
    key: "apply",
    value: function apply() {
      this.component.navigate();
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Down;

/***/ }),

/***/ "../modules/history/assets/js/revisions/commands/index.js":
/*!****************************************************************!*\
  !*** ../modules/history/assets/js/revisions/commands/index.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Down", ({
  enumerable: true,
  get: function get() {
    return _down.Down;
  }
}));
Object.defineProperty(exports, "Up", ({
  enumerable: true,
  get: function get() {
    return _up.Up;
  }
}));
var _down = __webpack_require__(/*! ./down */ "../modules/history/assets/js/revisions/commands/down.js");
var _up = __webpack_require__(/*! ./up */ "../modules/history/assets/js/revisions/commands/up.js");

/***/ }),

/***/ "../modules/history/assets/js/revisions/commands/up.js":
/*!*************************************************************!*\
  !*** ../modules/history/assets/js/revisions/commands/up.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"] = exports.Up = 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"));
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; })(); }
var Up = exports.Up = /*#__PURE__*/function (_$e$modules$CommandBa) {
  function Up() {
    (0, _classCallCheck2.default)(this, Up);
    return _callSuper(this, Up, arguments);
  }
  (0, _inherits2.default)(Up, _$e$modules$CommandBa);
  return (0, _createClass2.default)(Up, [{
    key: "apply",
    value: function apply() {
      this.component.navigate(true);
    }
  }]);
}($e.modules.CommandBase);
var _default = exports["default"] = Up;

/***/ }),

/***/ "../modules/history/assets/js/revisions/component.js":
/*!***********************************************************!*\
  !*** ../modules/history/assets/js/revisions/component.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _componentBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/component-base */ "../modules/web-cli/assets/js/modules/component-base.js"));
var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../modules/history/assets/js/revisions/commands/index.js"));
var hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/ */ "../modules/history/assets/js/revisions/hooks/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
var Component = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _callSuper(this, Component, arguments);
  }
  (0, _inherits2.default)(Component, _ComponentBase);
  return (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'panel/history/revisions';
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }
  }, {
    key: "defaultHooks",
    value: function defaultHooks() {
      return this.importHooks(hooks);
    }
  }, {
    key: "defaultShortcuts",
    value: function defaultShortcuts() {
      return {
        up: {
          keys: 'up',
          scopes: [this.getNamespace()]
        },
        down: {
          keys: 'down',
          scopes: [this.getNamespace()]
        }
      };
    }
  }, {
    key: "navigate",
    value: function navigate(up) {
      if (elementor.documents.getCurrent().revisions.getItems().length > 1) {
        elementor.getPanelView().getCurrentPageView().currentTab.navigate(up);
      }
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../modules/history/assets/js/revisions/hooks/data/save.js":
/*!*****************************************************************!*\
  !*** ../modules/history/assets/js/revisions/hooks/data/save.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"] = exports.RevisionsAfterSave = 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 _after = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hooks/data/after */ "../modules/web-cli/assets/js/modules/hooks/data/after.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; })(); }
var RevisionsAfterSave = exports.RevisionsAfterSave = /*#__PURE__*/function (_HookDataAfter) {
  function RevisionsAfterSave() {
    (0, _classCallCheck2.default)(this, RevisionsAfterSave);
    return _callSuper(this, RevisionsAfterSave, arguments);
  }
  (0, _inherits2.default)(RevisionsAfterSave, _HookDataAfter);
  return (0, _createClass2.default)(RevisionsAfterSave, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/save/save';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'revisions-after-save';
    }
  }, {
    key: "apply",
    value: function apply(args, result) {
      var data = result.data,
        revisionsModule = elementor.documents.getCurrent().revisions;
      if (data.latest_revisions) {
        revisionsModule.addRevisions(data.latest_revisions);
      }
      revisionsModule.requestRevisions(function () {
        if (data.revisions_ids) {
          var revisionsToKeep = revisionsModule.revisions.filter(function (revision) {
            return -1 !== data.revisions_ids.indexOf(revision.get('id'));
          });
          revisionsModule.revisions.reset(revisionsToKeep);
        }
      });
    }
  }]);
}(_after.default);
var _default = exports["default"] = RevisionsAfterSave;

/***/ }),

/***/ "../modules/history/assets/js/revisions/hooks/index.js":
/*!*************************************************************!*\
  !*** ../modules/history/assets/js/revisions/hooks/index.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "RevisionsAfterSave", ({
  enumerable: true,
  get: function get() {
    return _save.RevisionsAfterSave;
  }
}));
var _save = __webpack_require__(/*! ./data/save */ "../modules/history/assets/js/revisions/hooks/data/save.js");

/***/ }),

/***/ "../modules/history/assets/js/revisions/manager.js":
/*!*********************************************************!*\
  !*** ../modules/history/assets/js/revisions/manager.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var RevisionsCollection = __webpack_require__(/*! ./collection */ "../modules/history/assets/js/revisions/collection.js");

/**
 * TODO: consider refactor this class.
 * TODO: Rename to RevisionsModule.
 */
var RevisionsManager = exports["default"] = /*#__PURE__*/function () {
  function RevisionsManager(document) {
    (0, _classCallCheck2.default)(this, RevisionsManager);
    (0, _defineProperty2.default)(this, "document", void 0);
    (0, _defineProperty2.default)(this, "revisions", void 0);
    this.document = document;
  }
  return (0, _createClass2.default)(RevisionsManager, [{
    key: "getItems",
    value: function getItems() {
      return this.revisions;
    }
  }, {
    key: "requestRevisions",
    value: function requestRevisions(callback) {
      var _this = this;
      if (this.revisions) {
        callback(this.revisions);
        return;
      }
      elementorCommon.ajax.addRequest('get_revisions', {
        success: function success(data) {
          _this.revisions = new RevisionsCollection(data);
          _this.revisions.on('update', _this.onRevisionsUpdate.bind(_this));
          callback(_this.revisions);
        }
      });
    }
  }, {
    key: "setEditorData",
    value: function setEditorData(data) {
      var collection = elementor.getPreviewView().collection;
      collection.reset(data);
    }
  }, {
    key: "getRevisionDataAsync",
    value: function getRevisionDataAsync(id, options) {
      _.extend(options, {
        data: {
          id: id
        }
      });
      return elementorCommon.ajax.addRequest('get_revision_data', options);
    }
  }, {
    key: "addRevisions",
    value: function addRevisions(items) {
      var _this2 = this;
      this.requestRevisions(function () {
        items.forEach(function (item) {
          var existedModel = _this2.revisions.findWhere({
            id: item.id
          });
          if (existedModel) {
            _this2.revisions.remove(existedModel, {
              silent: true
            });
          }
          _this2.revisions.add(item, {
            silent: true
          });
        });
        _this2.revisions.trigger('update');
      });
    }
  }, {
    key: "deleteRevision",
    value: function deleteRevision(revisionModel, options) {
      var params = {
        data: {
          id: revisionModel.get('id')
        },
        success: function success() {
          if (options.success) {
            options.success();
          }
          revisionModel.destroy();
        }
      };
      if (options.error) {
        params.error = options.error;
      }
      elementorCommon.ajax.addRequest('delete_revision', params);
    }
  }, {
    key: "onRevisionsUpdate",
    value: function onRevisionsUpdate() {
      if ($e.routes.is('panel/history/revisions')) {
        $e.routes.refreshContainer('panel');
      }
    }
  }]);
}();

/***/ }),

/***/ "../modules/history/assets/js/revisions/model.js":
/*!*******************************************************!*\
  !*** ../modules/history/assets/js/revisions/model.js ***!
  \*******************************************************/
/***/ ((module) => {

"use strict";


var RevisionModel;
RevisionModel = Backbone.Model.extend();
RevisionModel.prototype.sync = function () {
  return null;
};
module.exports = RevisionModel;

/***/ }),

/***/ "../modules/history/assets/js/revisions/panel/empty.js":
/*!*************************************************************!*\
  !*** ../modules/history/assets/js/revisions/panel/empty.js ***!
  \*************************************************************/
/***/ ((module) => {

"use strict";


module.exports = Marionette.ItemView.extend({
  template: '#tmpl-elementor-panel-revisions-no-revisions',
  id: 'elementor-panel-revisions-no-revisions',
  className: 'elementor-nerd-box'
});

/***/ }),

/***/ "../modules/history/assets/js/revisions/panel/loading.js":
/*!***************************************************************!*\
  !*** ../modules/history/assets/js/revisions/panel/loading.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"));
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; })(); }
var _default = exports["default"] = /*#__PURE__*/function (_Marionette$ItemView) {
  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _callSuper(this, _default, arguments);
  }
  (0, _inherits2.default)(_default, _Marionette$ItemView);
  return (0, _createClass2.default)(_default, [{
    key: "getTemplate",
    value: function getTemplate() {
      return '#tmpl-elementor-panel-revisions-loading';
    }
  }, {
    key: "id",
    value: function id() {
      return 'elementor-panel-revisions-loading';
    }
  }, {
    key: "onRender",
    value: function onRender() {
      this.options.document.revisions.requestRevisions(function () {
        setTimeout(function () {
          return $e.routes.refreshContainer('panel');
        });
      });
    }
  }]);
}(Marionette.ItemView);

/***/ }),

/***/ "../modules/history/assets/js/revisions/panel/tab.js":
/*!***********************************************************!*\
  !*** ../modules/history/assets/js/revisions/panel/tab.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports["default"] = void 0;
var _filterUnknownElements = __webpack_require__(/*! elementor-frontend-utils/filter-unknown-elements */ "../assets/dev/js/frontend/utils/filter-unknown-elements.js");
var _default = exports["default"] = Marionette.CompositeView.extend({
  id: 'elementor-panel-revisions',
  template: '#tmpl-elementor-panel-revisions',
  childView: __webpack_require__(/*! ./view */ "../modules/history/assets/js/revisions/panel/view.js"),
  childViewContainer: '#elementor-revisions-list',
  ui: {
    discard: '.elementor-button.e-revision-discard',
    apply: '.elementor-button.e-revision-save'
  },
  events: {
    'click @ui.discard': 'onDiscardClick',
    'click @ui.apply': 'onApplyClick'
  },
  isRevisionApplied: false,
  currentPreviewId: null,
  currentPreviewItem: null,
  document: null,
  initialize: function initialize(options) {
    this.document = options.document;
    this.collection = this.document.revisions.getItems();
    this.listenTo(elementor.channels.editor, 'saved', this.onEditorSaved);
    this.currentPreviewId = elementor.config.document.revisions.current_id;
  },
  getRevisionViewData: function getRevisionViewData(revisionView) {
    var _this = this;
    this.document.revisions.getRevisionDataAsync(revisionView.model.get('id'), {
      success: function success(data) {
        var sanitizedData = (0, _filterUnknownElements.filterUnknownElements)(data);
        if (_this.document.config.panel.has_elements) {
          _this.document.revisions.setEditorData(sanitizedData.elements);
        }
        elementor.settings.page.model.set(sanitizedData.settings);
        _this.setRevisionsButtonsActive(true);
        revisionView.$el.removeClass('elementor-revision-item-loading');
        _this.enterReviewMode();
      },
      error: function error(errorMessage) {
        revisionView.$el.removeClass('elementor-revision-item-loading');
        _this.currentPreviewItem = null;
        _this.currentPreviewId = null;

        // eslint-disable-next-line no-alert
        alert(errorMessage);
      }
    });
  },
  setRevisionsButtonsActive: function setRevisionsButtonsActive(active) {
    // Check the tab is open.
    if (!this.isDestroyed) {
      this.ui.apply.add(this.ui.discard).prop('disabled', !active);
    }
  },
  deleteRevision: function deleteRevision(revisionView) {
    var _this2 = this;
    revisionView.$el.addClass('elementor-revision-item-loading');
    this.document.revisions.deleteRevision(revisionView.model, {
      success: function success() {
        if (revisionView.model.get('id') === _this2.currentPreviewId) {
          _this2.onDiscardClick();
        }
        _this2.currentPreviewId = null;
      },
      error: function error() {
        revisionView.$el.removeClass('elementor-revision-item-loading');

        // eslint-disable-next-line no-alert
        alert('An error occurred.');
      }
    });
  },
  enterReviewMode: function enterReviewMode() {
    elementor.changeEditMode('review');
  },
  exitReviewMode: function exitReviewMode() {
    elementor.changeEditMode('edit');
  },
  navigate: function navigate(reverse) {
    if (!this.currentPreviewId || !this.currentPreviewItem || this.children.length <= 1) {
      return;
    }
    var currentPreviewItemIndex = this.collection.indexOf(this.currentPreviewItem.model),
      requiredIndex = reverse ? currentPreviewItemIndex - 1 : currentPreviewItemIndex + 1;
    if (requiredIndex < 0) {
      requiredIndex = this.collection.length - 1;
    }
    if (requiredIndex >= this.collection.length) {
      requiredIndex = 0;
    }
    this.children.findByIndex(requiredIndex).ui.detailsArea.trigger('click');
  },
  onEditorSaved: function onEditorSaved() {
    this.exitReviewMode();
    this.setRevisionsButtonsActive(false);
    this.currentPreviewId = elementor.config.document.revisions.current_id;
  },
  onApplyClick: function onApplyClick() {
    $e.internal('document/save/set-is-modified', {
      status: true
    });
    $e.run('document/save/auto', {
      force: true
    });
    this.isRevisionApplied = true;
    this.currentPreviewId = null;
    this.document.history.getItems().reset();
  },
  onDiscardClick: function onDiscardClick() {
    if (this.document.config.panel.has_elements) {
      this.document.revisions.setEditorData(elementor.config.document.elements);
    }
    $e.internal('document/save/set-is-modified', {
      status: this.isRevisionApplied
    });
    this.isRevisionApplied = false;
    this.setRevisionsButtonsActive(false);
    this.currentPreviewId = null;
    this.exitReviewMode();
  },
  onDestroy: function onDestroy() {
    if (this.currentPreviewId && this.currentPreviewId !== elementor.config.document.revisions.current_id) {
      this.onDiscardClick();
    }
  },
  onRenderCollection: function onRenderCollection() {
    if (!this.currentPreviewId) {
      return;
    }
    var currentPreviewModel = this.collection.findWhere({
      id: this.currentPreviewId
    });

    // Ensure the model is exist and not deleted during a save.
    if (currentPreviewModel) {
      this.currentPreviewItem = this.children.findByModelCid(currentPreviewModel.cid);
      this.currentPreviewItem.$el.addClass('elementor-revision-current-preview');
    }
  },
  onChildviewDetailsAreaClick: function onChildviewDetailsAreaClick(childView) {
    var _this3 = this;
    var revisionID = childView.model.get('id');
    if (revisionID === this.currentPreviewId) {
      return;
    }
    if (this.currentPreviewItem) {
      this.currentPreviewItem.$el.removeClass('elementor-revision-current-preview elementor-revision-item-loading');
    }
    childView.$el.addClass('elementor-revision-current-preview elementor-revision-item-loading');
    var revision = null === this.currentPreviewId || elementor.config.document.revisions.current_id === this.currentPreviewId;
    if (revision && elementor.saver.isEditorChanged()) {
      // TODO: Change to 'document/save/auto' ?.
      $e.internal('document/save/save', {
        status: 'autosave',
        onSuccess: function onSuccess() {
          _this3.getRevisionViewData(childView);
        }
      });
    } else {
      this.getRevisionViewData(childView);
    }
    this.currentPreviewItem = childView;
    this.currentPreviewId = revisionID;
  }
});

/***/ }),

/***/ "../modules/history/assets/js/revisions/panel/view.js":
/*!************************************************************!*\
  !*** ../modules/history/assets/js/revisions/panel/view.js ***!
  \************************************************************/
/***/ ((module) => {

"use strict";


module.exports = Marionette.ItemView.extend({
  template: '#tmpl-elementor-panel-revisions-revision-item',
  className: 'elementor-revision-item',
  ui: {
    detailsArea: '.elementor-revision-item__details'
  },
  triggers: {
    'click @ui.detailsArea': 'detailsArea:click'
  }
});

/***/ }),

/***/ "../modules/landing-pages/assets/js/editor/component.js":
/*!**************************************************************!*\
  !*** ../modules/landing-pages/assets/js/editor/component.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/ */ "../modules/landing-pages/assets/js/editor/hooks/index.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
var LandingPageComponent = exports["default"] = /*#__PURE__*/function (_$e$modules$Component) {
  function LandingPageComponent() {
    (0, _classCallCheck2.default)(this, LandingPageComponent);
    return _callSuper(this, LandingPageComponent, arguments);
  }
  (0, _inherits2.default)(LandingPageComponent, _$e$modules$Component);
  return (0, _createClass2.default)(LandingPageComponent, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'document/landing-page';
    }
  }, {
    key: "defaultHooks",
    value: function defaultHooks() {
      return this.importHooks(hooks);
    }
  }]);
}($e.modules.ComponentBase);

/***/ }),

/***/ "../modules/landing-pages/assets/js/editor/hooks/index.js":
/*!****************************************************************!*\
  !*** ../modules/landing-pages/assets/js/editor/hooks/index.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "LandingPageAddLibraryTab", ({
  enumerable: true,
  get: function get() {
    return _addLandingPagesTab.LandingPageAddLibraryTab;
  }
}));
Object.defineProperty(exports, "LandingPageRemoveLibraryTab", ({
  enumerable: true,
  get: function get() {
    return _removeLandingPagesTab.LandingPageRemoveLibraryTab;
  }
}));
var _addLandingPagesTab = __webpack_require__(/*! ./ui/editor/documents/open/add-landing-pages-tab */ "../modules/landing-pages/assets/js/editor/hooks/ui/editor/documents/open/add-landing-pages-tab.js");
var _removeLandingPagesTab = __webpack_require__(/*! ./ui/editor/documents/close/remove-landing-pages-tab */ "../modules/landing-pages/assets/js/editor/hooks/ui/editor/documents/close/remove-landing-pages-tab.js");

/***/ }),

/***/ "../modules/landing-pages/assets/js/editor/hooks/ui/editor/documents/close/remove-landing-pages-tab.js":
/*!*************************************************************************************************************!*\
  !*** ../modules/landing-pages/assets/js/editor/hooks/ui/editor/documents/close/remove-landing-pages-tab.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"] = exports.LandingPageRemoveLibraryTab = 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"));
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; })(); }
var LandingPageRemoveLibraryTab = exports.LandingPageRemoveLibraryTab = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  function LandingPageRemoveLibraryTab() {
    (0, _classCallCheck2.default)(this, LandingPageRemoveLibraryTab);
    return _callSuper(this, LandingPageRemoveLibraryTab, arguments);
  }
  (0, _inherits2.default)(LandingPageRemoveLibraryTab, _$e$modules$hookUI$Af);
  return (0, _createClass2.default)(LandingPageRemoveLibraryTab, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/unload';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-landing-pages-remove-library-tab';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var document = args.document;
      return 'landing-page' === document.config.type;
    }
  }, {
    key: "apply",
    value: function apply() {
      $e.components.get('library').removeTab('templates/landing-pages');

      // Pages are replaced by landing pages so when Landing Pages are removed, the Pages have to be re-added.
      $e.components.get('library').addTab('templates/pages');
    }
  }]);
}($e.modules.hookUI.After);
var _default = exports["default"] = LandingPageRemoveLibraryTab;

/***/ }),

/***/ "../modules/landing-pages/assets/js/editor/hooks/ui/editor/documents/open/add-landing-pages-tab.js":
/*!*********************************************************************************************************!*\
  !*** ../modules/landing-pages/assets/js/editor/hooks/ui/editor/documents/open/add-landing-pages-tab.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"] = exports.LandingPageAddLibraryTab = 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"));
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; })(); }
var LandingPageAddLibraryTab = exports.LandingPageAddLibraryTab = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  function LandingPageAddLibraryTab() {
    (0, _classCallCheck2.default)(this, LandingPageAddLibraryTab);
    return _callSuper(this, LandingPageAddLibraryTab, arguments);
  }
  (0, _inherits2.default)(LandingPageAddLibraryTab, _$e$modules$hookUI$Af);
  return (0, _createClass2.default)(LandingPageAddLibraryTab, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/open';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-landing-pages-add-library-tab';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var document = elementor.documents.get(args.id);
      return 'landing-page' === document.config.type;
    }
  }, {
    key: "apply",
    value: function apply() {
      $e.components.get('library').addTab('templates/landing-pages', {
        title: __('Landing Pages', 'elementor'),
        filter: {
          source: 'remote',
          type: 'lp'
        }
      }, 2);

      // Pages are replaced by landing pages so they need to be removed.
      $e.components.get('library').removeTab('templates/pages');
    }
  }]);
}($e.modules.hookUI.After);
var _default = exports["default"] = LandingPageAddLibraryTab;

/***/ }),

/***/ "../modules/landing-pages/assets/js/editor/module.js":
/*!***********************************************************!*\
  !*** ../modules/landing-pages/assets/js/editor/module.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 _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/landing-pages/assets/js/editor/component.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; })(); }
var LandingPageLibraryModule = /*#__PURE__*/function (_elementorModules$edi) {
  function LandingPageLibraryModule() {
    (0, _classCallCheck2.default)(this, LandingPageLibraryModule);
    return _callSuper(this, LandingPageLibraryModule, arguments);
  }
  (0, _inherits2.default)(LandingPageLibraryModule, _elementorModules$edi);
  return (0, _createClass2.default)(LandingPageLibraryModule, [{
    key: "onElementorLoaded",
    value: function onElementorLoaded() {
      this.component = $e.components.register(new _component.default({
        manager: this
      }));
    }
  }]);
}(elementorModules.editor.utils.Module);
var _default = exports["default"] = LandingPageLibraryModule;

/***/ }),

/***/ "../modules/link-in-bio/assets/js/editor/module.js":
/*!*********************************************************!*\
  !*** ../modules/link-in-bio/assets/js/editor/module.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"));
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; })(); }
var LinkInBioLibraryModule = /*#__PURE__*/function (_elementorModules$edi) {
  function LinkInBioLibraryModule() {
    (0, _classCallCheck2.default)(this, LinkInBioLibraryModule);
    return _callSuper(this, LinkInBioLibraryModule, arguments);
  }
  (0, _inherits2.default)(LinkInBioLibraryModule, _elementorModules$edi);
  return (0, _createClass2.default)(LinkInBioLibraryModule, [{
    key: "onElementorInit",
    value: function onElementorInit() {
      elementor.hooks.addFilter('elementor/editor/template-library/template/promotion-link-search-params', function (queryString, templateData) {
        var subtype = templateData.subtype;
        if ('Link in Bio' === subtype) {
          try {
            var searchParams = new URLSearchParams(queryString);
            if (searchParams.has('utm_source')) {
              searchParams.set('utm_source', 'template-library-link-in-bio');
            }
            return searchParams.toString();
          } catch (e) {
            return queryString;
          }
        }
        return queryString;
      }, 1000);
    }
  }]);
}(elementorModules.editor.utils.Module);
var _default = exports["default"] = LinkInBioLibraryModule;

/***/ }),

/***/ "../modules/nested-elements/assets/js/editor/utils.js":
/*!************************************************************!*\
  !*** ../modules/nested-elements/assets/js/editor/utils.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var sprintf = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["sprintf"];


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.extractNestedItemTitle = extractNestedItemTitle;
exports.findChildContainerOrFail = findChildContainerOrFail;
exports.isWidgetSupportAtomicRepeaters = isWidgetSupportAtomicRepeaters;
exports.isWidgetSupportNesting = isWidgetSupportNesting;
exports.shouldUseAtomicRepeaters = shouldUseAtomicRepeaters;
exports.sortViewsByModels = sortViewsByModels;
exports.widgetNodes = widgetNodes;
function extractNestedItemTitle(container, index) {
  var title = container.view.model.config.defaults.elements_title;

  // Translations comes from server side.
  return sprintf(title, index);
}
function isWidgetSupportNesting(widgetType) {
  var widgetConfig = elementor.widgetsCache[widgetType];
  if (!widgetConfig) {
    return false;
  }
  return widgetConfig.support_nesting;
}
function isWidgetSupportAtomicRepeaters(widgetType) {
  var widgetConfig = elementor.widgetsCache[widgetType];
  if (!widgetConfig) {
    return false;
  }
  return widgetConfig.support_improved_repeaters;
}
function widgetNodes(widgetType) {
  var widgetConfig = elementor.widgetsCache[widgetType];
  if (!widgetConfig) {
    return false;
  }
  return {
    targetContainer: widgetConfig.target_container,
    node: widgetConfig.node
  };
}
function findChildContainerOrFail(container, index) {
  var childView = container.view.children.findByIndex(index);
  if (!childView) {
    throw new Error('Child container was not found for the current repeater item.');
  }
  return childView.getContainer();
}
function shouldUseAtomicRepeaters(widgetType) {
  return isWidgetSupportNesting(widgetType) && isWidgetSupportAtomicRepeaters(widgetType);
}
function sortViewsByModels(container) {
  var models = container.model.get('elements').models,
    children = container.view.children,
    updatedViews = {};
  models.forEach(function (model, index) {
    var view = children.findByModel(model);
    view._index = index;
    updatedViews[view.cid] = view;
  });
  return updatedViews;
}

/***/ }),

/***/ "../modules/promotions/assets/js/editor/behavior.js":
/*!**********************************************************!*\
  !*** ../modules/promotions/assets/js/editor/behavior.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 _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"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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; })(); }
var PromotionBehavior = exports["default"] = /*#__PURE__*/function (_Marionette$Behavior) {
  function PromotionBehavior() {
    (0, _classCallCheck2.default)(this, PromotionBehavior);
    return _callSuper(this, PromotionBehavior, arguments);
  }
  (0, _inherits2.default)(PromotionBehavior, _Marionette$Behavior);
  return (0, _createClass2.default)(PromotionBehavior, [{
    key: "ui",
    value: function ui() {
      return {
        displayConditionsButton: '.eicon-flow.e-control-display-conditions-promotion',
        scrollingEffectsButton: '.e-control-scrolling-effects-promotion',
        mouseEffectsButton: '.e-control-mouse-effects-promotion',
        stickyEffectsButton: '.e-control-sticky-effects-promotion'
      };
    }
  }, {
    key: "events",
    value: function events() {
      return {
        'click @ui.displayConditionsButton': 'onClickControlButtonDisplayConditions',
        'click @ui.scrollingEffectsButton': 'onClickControlButtonScrollingEffects',
        'click @ui.mouseEffectsButton': 'onClickControlButtonMouseEffects',
        'click @ui.stickyEffectsButton': 'onClickControlButtonStickyEffects'
      };
    }
  }, {
    key: "dispatchPromotionEvent",
    value: function dispatchPromotionEvent(widgetType, promotion) {
      document.dispatchEvent(new CustomEvent('widget-promotion:open', {
        detail: _objectSpread({
          target: this.el,
          widgetType: widgetType
        }, promotion)
      }));
    }
  }, {
    key: "onClickControlButtonDisplayConditions",
    value: function onClickControlButtonDisplayConditions(event) {
      event.stopPropagation();
      this.dispatchPromotionEvent('displayConditions', {
        title: __('Display Conditions', 'elementor'),
        content: __('Upgrade to Elementor Pro Advanced to get the Display Conditions Feature as well as additional professional and ecommerce widgets', 'elementor'),
        ctaUrl: 'https://go.elementor.com/go-pro-display-conditions/'
      });
    }
  }, {
    key: "onClickControlButtonScrollingEffects",
    value: function onClickControlButtonScrollingEffects(event) {
      event.stopPropagation();
      this.dispatchPromotionEvent('scrollingEffects', {
        title: __('Scrolling Effects', 'elementor'),
        content: __('Get Scrolling Effects such as vertical/horizontal scroll, transparency, and more with Elementor Pro.', 'elementor'),
        ctaUrl: 'https://go.elementor.com/go-pro-scrolling-effects-advanced/'
      });
    }
  }, {
    key: "onClickControlButtonMouseEffects",
    value: function onClickControlButtonMouseEffects(event) {
      event.stopPropagation();
      this.dispatchPromotionEvent('mouseEffects', {
        title: __('Mouse Effects', 'elementor'),
        content: __('Add a Mouse Track or 3d Tilt effect with Elementor Pro.', 'elementor'),
        ctaUrl: 'https://go.elementor.com/go-pro-motion-effects-advanced/'
      });
    }
  }, {
    key: "onClickControlButtonStickyEffects",
    value: function onClickControlButtonStickyEffects(event) {
      event.stopPropagation();
      this.dispatchPromotionEvent('sticky', {
        title: __('Sticky', 'elementor'),
        content: __('Make any element on your page sticky and keep them in sight at the top or bottom of the screen.', 'elementor'),
        ctaUrl: 'https://go.elementor.com/go-pro-sticky-element-advanced/'
      });
    }
  }]);
}(Marionette.Behavior);

/***/ }),

/***/ "../modules/promotions/assets/js/editor/module.js":
/*!********************************************************!*\
  !*** ../modules/promotions/assets/js/editor/module.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 _behavior = _interopRequireDefault(__webpack_require__(/*! ./behavior */ "../modules/promotions/assets/js/editor/behavior.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; })(); }
var Module = exports["default"] = /*#__PURE__*/function (_elementorModules$edi) {
  function Module() {
    (0, _classCallCheck2.default)(this, Module);
    return _callSuper(this, Module, arguments);
  }
  (0, _inherits2.default)(Module, _elementorModules$edi);
  return (0, _createClass2.default)(Module, [{
    key: "onElementorInit",
    value: function onElementorInit() {
      if (!this.hasPromotionWidgets() && !this.hasIntegrationWidgets()) {
        return;
      }
      elementor.hooks.addFilter('element/view', function (DefaultView, model) {
        var _config$promotionWidg, _config$integrationWi;
        var widgetType = model.get('widgetType');
        var _elementor = elementor,
          config = _elementor.config;
        var hasWidget = function hasWidget(path) {
          return !!config[path].find(function (item) {
            return widgetType === item.name;
          });
        };
        var isProWidget = false,
          isIntegrationWidget = false;
        if (config !== null && config !== void 0 && (_config$promotionWidg = config.promotionWidgets) !== null && _config$promotionWidg !== void 0 && _config$promotionWidg.length) {
          isProWidget = hasWidget('promotionWidgets');
        }
        if (config !== null && config !== void 0 && (_config$integrationWi = config.integrationWidgets) !== null && _config$integrationWi !== void 0 && _config$integrationWi.length && !isProWidget) {
          isIntegrationWidget = hasWidget('integrationWidgets');
        }
        if (isProWidget || isIntegrationWidget) {
          return (__webpack_require__(/*! ./widget/view */ "../modules/promotions/assets/js/editor/widget/view.js")["default"]);
        }
        return DefaultView;
      });
      elementor.hooks.addFilter('controls/base/behaviors', this.registerControlBehavior);
    }
  }, {
    key: "hasWidgetsElements",
    value: function hasWidgetsElements(path) {
      var _elementor$config;
      return (_elementor$config = elementor.config) === null || _elementor$config === void 0 || (_elementor$config = _elementor$config[path]) === null || _elementor$config === void 0 ? void 0 : _elementor$config.length;
    }
  }, {
    key: "hasPromotionWidgets",
    value: function hasPromotionWidgets() {
      return this.hasWidgetsElements('promotionWidgets');
    }
  }, {
    key: "hasIntegrationWidgets",
    value: function hasIntegrationWidgets() {
      return this.hasWidgetsElements('integrationWidgets');
    }
  }, {
    key: "registerControlBehavior",
    value: function registerControlBehavior(behaviors, view) {
      var promotionsToSkip = ['display_conditions_pro', 'scrolling_effects_pro', 'mouse_effects_pro', 'sticky_pro'];
      if (!promotionsToSkip.includes(view.options.model.get('name'))) {
        return behaviors;
      }
      if (!behaviors) {
        behaviors = {};
      }
      behaviors.promotions = {
        behaviorClass: _behavior.default
      };
      return behaviors;
    }
  }]);
}(elementorModules.editor.utils.Module);

/***/ }),

/***/ "../modules/promotions/assets/js/editor/widget/view.js":
/*!*************************************************************!*\
  !*** ../modules/promotions/assets/js/editor/widget/view.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var WidgetView = elementor.modules.elements.views.Widget;
var View = exports["default"] = /*#__PURE__*/function (_WidgetView) {
  function View() {
    (0, _classCallCheck2.default)(this, View);
    return _callSuper(this, View, arguments);
  }
  (0, _inherits2.default)(View, _WidgetView);
  return (0, _createClass2.default)(View, [{
    key: "events",
    value: function events() {
      return {
        'click .e-promotion-delete': 'onRemoveButtonClick',
        'click .e-promotion-go-pro': 'onGoProButtonClick'
      };
    }
  }, {
    key: "className",
    value: function className() {
      return _superPropGet(View, "className", this, 3)([]).replace(/elementor-element-edit-mode/g, '') + ' e-widget-pro-promotion';
    }
  }, {
    key: "getHandlesOverlay",
    value: function getHandlesOverlay() {
      return '';
    }
  }, {
    key: "getContextMenuGroups",
    value: function getContextMenuGroups() {
      return _superPropGet(View, "getContextMenuGroups", this, 3)([]).filter(function (group) {
        return 'clipboard' !== group.name && 'save' !== group.name && 'general' !== group.name;
      });
    }
  }, {
    key: "onGoProButtonClick",
    value: function onGoProButtonClick(event) {
      event.preventDefault();
      event.stopPropagation();
      window.open(event.currentTarget.href, '_blank');
    }
  }]);
}(WidgetView);

/***/ }),

/***/ "../modules/web-cli/assets/js/core/data/storages/base-prefix-storage.js":
/*!******************************************************************************!*\
  !*** ../modules/web-cli/assets/js/core/data/storages/base-prefix-storage.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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.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 _baseStorage = _interopRequireDefault(__webpack_require__(/*! elementor-api/core/data/storages/base-storage */ "../modules/web-cli/assets/js/core/data/storages/base-storage.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var BasePrefixStorage = exports["default"] = /*#__PURE__*/function (_BaseStorage) {
  function BasePrefixStorage() {
    (0, _classCallCheck2.default)(this, BasePrefixStorage);
    return _callSuper(this, BasePrefixStorage, arguments);
  }
  (0, _inherits2.default)(BasePrefixStorage, _BaseStorage);
  return (0, _createClass2.default)(BasePrefixStorage, [{
    key: "clear",
    value: function clear() {
      var _this = this;
      Object.keys(this.getAll()).forEach(function (key) {
        return _this.removeItem(key);
      });
    }
  }, {
    key: "getItem",
    value: function getItem(key) {
      return _superPropGet(BasePrefixStorage, "getItem", this, 3)([BasePrefixStorage.DEFAULT_KEY_PREFIX + key]);
    }
  }, {
    key: "removeItem",
    value: function removeItem(key) {
      return _superPropGet(BasePrefixStorage, "removeItem", this, 3)([BasePrefixStorage.DEFAULT_KEY_PREFIX + key]);
    }
  }, {
    key: "setItem",
    value: function setItem(key, value) {
      return _superPropGet(BasePrefixStorage, "setItem", this, 3)([BasePrefixStorage.DEFAULT_KEY_PREFIX + key, value]);
    }
  }, {
    key: "getAll",
    value: function getAll() {
      var _this2 = this;
      var DEFAULT_KEY_PREFIX = BasePrefixStorage.DEFAULT_KEY_PREFIX,
        keys = Object.keys(this.provider),
        result = {};
      keys.forEach(function (key) {
        if (key.startsWith(DEFAULT_KEY_PREFIX)) {
          key = key.replace(DEFAULT_KEY_PREFIX, '');
          result[key] = _this2.getItem(key);
        }
      });
      return result;
    }
  }]);
}(_baseStorage.default);
(0, _defineProperty2.default)(BasePrefixStorage, "DEFAULT_KEY_PREFIX", 'e_');

/***/ }),

/***/ "../modules/web-cli/assets/js/core/data/storages/base-storage.js":
/*!***********************************************************************!*\
  !*** ../modules/web-cli/assets/js/core/data/storages/base-storage.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"));
/**
 * TODO: Merge all storage's to one.
 * Using this technique give's the ability to use JSDOC from 'window.storage'.
 *
 * @implements {Storage}
 */
var BaseStorage = exports["default"] = /*#__PURE__*/function () {
  /**
   * Create storage wrapper.
   *
   * @param {Storage} provider
   */
  function BaseStorage(provider) {
    (0, _classCallCheck2.default)(this, BaseStorage);
    if (BaseStorage === (this instanceof BaseStorage ? this.constructor : void 0)) {
      throw new TypeError('Cannot construct BaseStorage instances directly');
    }
    this.provider = provider;
  }
  return (0, _createClass2.default)(BaseStorage, [{
    key: "clear",
    value: function clear() {
      return this.provider.clear();
    }
  }, {
    key: "getItem",
    value: function getItem(key) {
      var result = this.provider.getItem(key);
      if (null !== result) {
        return JSON.parse(result);
      }
      return result;
    }
  }, {
    key: "key",
    value: function key(index) {
      return this.provider.key(index);
    }
  }, {
    key: "removeItem",
    value: function removeItem(key) {
      return this.provider.removeItem(key);
    }
  }, {
    key: "setItem",
    value: function setItem(key, value) {
      return this.provider.setItem(key, JSON.stringify(value));
    }
  }, {
    key: "getAll",
    value: function getAll() {
      var _this = this;
      var keys = Object.keys(this.provider),
        result = {};
      keys.forEach(function (key) {
        result[key] = _this.getItem(key);
      });
      return result;
    }
  }]);
}();

/***/ }),

/***/ "../modules/web-cli/assets/js/core/data/storages/local-storage.js":
/*!************************************************************************!*\
  !*** ../modules/web-cli/assets/js/core/data/storages/local-storage.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 _basePrefixStorage = _interopRequireDefault(__webpack_require__(/*! ./base-prefix-storage */ "../modules/web-cli/assets/js/core/data/storages/base-prefix-storage.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; })(); }
var LocalStorage = exports["default"] = /*#__PURE__*/function (_BasePrefixStorage) {
  function LocalStorage() {
    (0, _classCallCheck2.default)(this, LocalStorage);
    return _callSuper(this, LocalStorage, [localStorage]);
  }
  (0, _inherits2.default)(LocalStorage, _BasePrefixStorage);
  return (0, _createClass2.default)(LocalStorage, [{
    key: "debug",
    value: function debug() {
      var entries = this.getAll(),
        ordered = {};
      Object.keys(entries).sort().forEach(function (key) {
        var value = entries[key];
        ordered[key] = value;
      });
      return ordered;
    }
  }]);
}(_basePrefixStorage.default);

/***/ }),

/***/ "../modules/web-cli/assets/js/core/states/ui-state-base.js":
/*!*****************************************************************!*\
  !*** ../modules/web-cli/assets/js/core/states/ui-state-base.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 _forceMethodImplementation = _interopRequireDefault(__webpack_require__(/*! ../../utils/force-method-implementation */ "../modules/web-cli/assets/js/utils/force-method-implementation.js"));
/**
 * @typedef {import('../../modules/component-base')} ComponentBase
 */
var UiStateBase = exports["default"] = /*#__PURE__*/function () {
  /**
   * Initialize the state object.
   *
   * @param {ComponentBase} component - Optional. The component that the state belongs to.
   *
   * @return {void}
   */
  function UiStateBase(component) {
    (0, _classCallCheck2.default)(this, UiStateBase);
    this.component = component;
    this.id = this.getId();
    this.options = this.getOptions();
    this.currentState = null;
  }

  /**
   * Set the current state.
   *
   * @param {string} newValue - The new value to set as state. Has to be one of `this.options`.
   *
   * @return {void}
   */
  return (0, _createClass2.default)(UiStateBase, [{
    key: "set",
    value: function set(newValue) {
      if (newValue && !Object.prototype.hasOwnProperty.call(this.options, newValue)) {
        throw "Option '".concat(newValue, "' for state '").concat(this.id, "' is invalid.");
      }
      var callback = this.options[newValue],
        oldValue = this.currentState;

      // Change the current state.
      this.currentState = newValue;

      // Trigger the `onChange` method before the option's callback.
      this.onChange(oldValue, newValue);

      // Run the callback if it's callable.
      if ('function' === typeof callback) {
        callback(oldValue, newValue);
      }
    }

    /**
     * Get current state value.
     *
     * @return {string} current state
     */
  }, {
    key: "getCurrent",
    value: function getCurrent() {
      return this.currentState;
    }

    // eslint-disable-next-line jsdoc/require-returns-check
    /**
     * Get state ID.
     *
     * @return {string} state ID
     */
  }, {
    key: "getId",
    value: function getId() {
      (0, _forceMethodImplementation.default)();
    }

    /**
     * Return the state ID prefix.
     *
     * @return {string} state ID prefix
     */
  }, {
    key: "getPrefix",
    value: function getPrefix() {
      var _this$component;
      return ((_this$component = this.component) === null || _this$component === void 0 ? void 0 : _this$component.getNamespace()) || '';
    }

    /**
     * Get the prefixed state ID.
     *
     * @return {string} prefixed state ID
     */
  }, {
    key: "getPrefixedId",
    value: function getPrefixedId() {
      var prefix = this.getPrefix();
      if (!prefix) {
        return this.getId();
      }
      return "".concat(prefix, "/").concat(this.getId());
    }

    /**
     * Get state options.
     * Each option should have unique ID as key and a callback if needed (should be an inner class method).
     *
     * @return {Object} state options
     */
  }, {
    key: "getOptions",
    value: function getOptions() {
      return {
        on: '',
        off: ''
      };
    }

    /**
     * Triggered on every UI state change.
     *
     * @param {string} oldValue - Previous UI state value.
     * @param {string} newValue - New UI state value.
     *
     * @return {void}
     */
  }, {
    key: "onChange",
    value: function onChange(oldValue, newValue) {// eslint-disable-line no-unused-vars
      // Override this method if needed.
    }

    /**
     * Retrieve an array of scopes that the state will be applied to.
     *
     * @return {HTMLElement[]} scopes
     */
  }, {
    key: "getScopes",
    value: function getScopes() {
      return [window.document.body];
    }
  }]);
}();

/***/ }),

/***/ "../modules/web-cli/assets/js/modules/command-base.js":
/*!************************************************************!*\
  !*** ../modules/web-cli/assets/js/modules/command-base.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 _commandInfra = _interopRequireDefault(__webpack_require__(/*! ./command-infra */ "../modules/web-cli/assets/js/modules/command-infra.js"));
var _deprecation = _interopRequireDefault(__webpack_require__(/*! elementor-api/utils/deprecation */ "../modules/web-cli/assets/js/utils/deprecation.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; })(); }
/**
 * @name $e.modules.CommandBase
 */
var CommandBase = exports["default"] = /*#__PURE__*/function (_CommandInfra) {
  function CommandBase() {
    (0, _classCallCheck2.default)(this, CommandBase);
    return _callSuper(this, CommandBase, arguments);
  }
  (0, _inherits2.default)(CommandBase, _CommandInfra);
  return (0, _createClass2.default)(CommandBase, [{
    key: "onBeforeRun",
    value: function onBeforeRun() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      $e.hooks.runUIBefore(this.command, args);
    }
  }, {
    key: "onAfterRun",
    value: function onAfterRun() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var result = arguments.length > 1 ? arguments[1] : undefined;
      $e.hooks.runUIAfter(this.command, args, result);
    }
  }, {
    key: "onBeforeApply",
    value: function onBeforeApply() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      $e.hooks.runDataDependency(this.command, args);
    }
  }, {
    key: "onAfterApply",
    value: function onAfterApply() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var result = arguments.length > 1 ? arguments[1] : undefined;
      return $e.hooks.runDataAfter(this.command, args, result);
    }
  }, {
    key: "onCatchApply",
    value: function onCatchApply(e) {
      this.runCatchHooks(e);
    }

    /**
     * Run all the catch hooks.
     *
     * @param {Error} e
     */
  }, {
    key: "runCatchHooks",
    value: function runCatchHooks(e) {
      $e.hooks.runDataCatch(this.command, this.args, e);
      $e.hooks.runUICatch(this.command, this.args, e);
    }

    /**
     * TODO - Remove - Backwards compatibility.
     *
     * Function requireContainer().
     *
     * Validate `arg.container` & `arg.containers`.
     *
     * @param {{}} args
     * @deprecated since 3.7.0, extend `$e.modules.editor.CommandContainerBase` or `$e.modules.editor.CommandContainerInternalBase` instead.
     *
     * @throws {Error}
     */
  }, {
    key: "requireContainer",
    value: function requireContainer() {
      var _this = this;
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.args;
      _deprecation.default.deprecated('requireContainer()', '3.7.0', 'Extend `$e.modules.editor.CommandContainerBase` or `$e.modules.editor.CommandContainerInternalBase`');
      if (!args.container && !args.containers) {
        throw Error('container or containers are required.');
      }
      if (args.container && args.containers) {
        throw Error('container and containers cannot go together please select one of them.');
      }
      var containers = args.containers || [args.container];
      containers.forEach(function (container) {
        _this.requireArgumentInstance('container', elementorModules.editor.Container, {
          container: container
        });
      });
    }
  }], [{
    key: "getInstanceType",
    value: function getInstanceType() {
      return 'CommandBase';
    }
  }]);
}(_commandInfra.default);

/***/ }),

/***/ "../modules/web-cli/assets/js/modules/command-callback-base.js":
/*!*********************************************************************!*\
  !*** ../modules/web-cli/assets/js/modules/command-callback-base.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 _commandBase = _interopRequireDefault(__webpack_require__(/*! ./command-base */ "../modules/web-cli/assets/js/modules/command-base.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; })(); }
/**
 * To support pure callbacks in the API(commands.js), to ensure they have registered with the proper context.
 */
var CommandCallbackBase = exports["default"] = /*#__PURE__*/function (_CommandBase) {
  function CommandCallbackBase() {
    (0, _classCallCheck2.default)(this, CommandCallbackBase);
    return _callSuper(this, CommandCallbackBase, arguments);
  }
  (0, _inherits2.default)(CommandCallbackBase, _CommandBase);
  return (0, _createClass2.default)(CommandCallbackBase, [{
    key: "apply",
    value: function apply() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      return this.constructor.getCallback()(args);
    }
  }], [{
    key: "getInstanceType",
    value: function getInstanceType() {
      return 'CommandCallbackBase';
    }

    /**
     * Get original callback of the command.
     *
     * Support pure callbacks ( Non command-base ).
     *
     * @return {()=>{}} Command Results.
     */
  }, {
    key: "getCallback",
    value: function getCallback() {
      return this.registerConfig.callback;
    }
  }]);
}(_commandBase.default);

/***/ }),

/***/ "../modules/web-cli/assets/js/modules/command-infra.js":
/*!*************************************************************!*\
  !*** ../modules/web-cli/assets/js/modules/command-infra.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _argsObject = _interopRequireDefault(__webpack_require__(/*! elementor-assets-js/modules/imports/args-object */ "../assets/dev/js/modules/imports/args-object.js"));
var _deprecation = _interopRequireDefault(__webpack_require__(/*! elementor-api/utils/deprecation */ "../modules/web-cli/assets/js/utils/deprecation.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('../modules/component-base')} ComponentBase
 */
var CommandInfra = exports["default"] = /*#__PURE__*/function (_ArgsObject) {
  /**
   * Function constructor().
   *
   * Create Commands Base.
   *
   * @param {{}} args
   */
  function CommandInfra() {
    var _this;
    var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    (0, _classCallCheck2.default)(this, CommandInfra);
    _this = _callSuper(this, CommandInfra, [args]);
    if (!_this.constructor.registerConfig) {
      throw RangeError('Doing it wrong: Each command type should have `registerConfig`.');
    }

    // Acknowledge self about which command it run.
    _this.command = _this.constructor.getCommand();

    // Assign instance of current component.
    _this.component = _this.constructor.getComponent();

    // Who ever need do something before without `super` the constructor can use `initialize` method.
    _this.initialize(args);

    // Refresh args, maybe the changed via `initialize`.
    args = _this.args;

    // Validate args before run.
    _this.validateArgs(args);
    return _this;
  }

  /**
   * Function initialize().
   *
   * Initialize command, called after construction.
   *
   * @param {{}} args
   */
  (0, _inherits2.default)(CommandInfra, _ArgsObject);
  return (0, _createClass2.default)(CommandInfra, [{
    key: "currentCommand",
    get:
    /**
     * @deprecated since 3.7.0, use `this.command` instead.
     */
    function get() {
      _deprecation.default.deprecated('this.currentCommand', '3.7.0', 'this.command');
      return this.command;
    }
  }, {
    key: "initialize",
    value: function initialize() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    } // eslint-disable-line no-unused-vars

    /**
     * Function validateArgs().
     *
     * Validate command arguments.
     *
     * @param {{}} args
     */
  }, {
    key: "validateArgs",
    value: function validateArgs() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    } // eslint-disable-line no-unused-vars

    // eslint-disable-next-line jsdoc/require-returns-check
    /**
     * Function apply().
     *
     * Do the actual command.
     *
     * @param {{}} args
     *
     * @return {*} Command results.
     */
  }, {
    key: "apply",
    value: function apply() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      // eslint-disable-line no-unused-vars
      elementorModules.ForceMethodImplementation();
    }

    /**
     * Function run().
     *
     * Run command with history & hooks.
     *
     * @return {*} Command results.
     */
  }, {
    key: "run",
    value: function run() {
      return this.apply(this.args);
    }

    /**
     * Function onBeforeRun.
     *
     * Called before run().
     *
     * @param {{}} args
     */
  }, {
    key: "onBeforeRun",
    value: function onBeforeRun() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    } // eslint-disable-line no-unused-vars

    /**
     * Function onAfterRun.
     *
     * Called after run().
     *
     * @param {{}} args
     * @param {*}  result
     */
  }, {
    key: "onAfterRun",
    value: function onAfterRun() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var result = arguments.length > 1 ? arguments[1] : undefined;
    } // eslint-disable-line no-unused-vars

    /**
     * Function onBeforeApply.
     *
     * Called before apply().
     *
     * @param {{}} args
     */
  }, {
    key: "onBeforeApply",
    value: function onBeforeApply() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    } // eslint-disable-line no-unused-vars

    /**
     * Function onAfterApply.
     *
     * Called after apply().
     *
     * @param {{}} args
     * @param {*}  result
     */
  }, {
    key: "onAfterApply",
    value: function onAfterApply() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var result = arguments.length > 1 ? arguments[1] : undefined;
    } // eslint-disable-line no-unused-vars

    /**
     * Function onCatchApply.
     *
     * Called after apply() failed.
     *
     * @param {Error} e
     */
  }, {
    key: "onCatchApply",
    value: function onCatchApply(e) {} // eslint-disable-line no-unused-vars
  }], [{
    key: "getInstanceType",
    value: function getInstanceType() {
      return 'CommandInfra';
    }

    /**
     * Get info of command.
     *
     * @return {Object} Extra information about the command.
     */
  }, {
    key: "getInfo",
    value: function getInfo() {
      return {};
    }

    /**
     * @return {string} Self command name.
     */
  }, {
    key: "getCommand",
    value: function getCommand() {
      return this.registerConfig.command;
    }

    /**
     * @return {ComponentBase} Self component
     */
  }, {
    key: "getComponent",
    value: function getComponent() {
      return this.registerConfig.component;
    }
  }, {
    key: "setRegisterConfig",
    value: function setRegisterConfig(config) {
      this.registerConfig = Object.freeze(config);
    }
  }]);
}(_argsObject.default);
/**
 * @type {Object}
 */
(0, _defineProperty2.default)(CommandInfra, "registerConfig", null);

/***/ }),

/***/ "../modules/web-cli/assets/js/modules/commands/close.js":
/*!**************************************************************!*\
  !*** ../modules/web-cli/assets/js/modules/commands/close.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"] = exports.Close = 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 _commandBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/command-base */ "../modules/web-cli/assets/js/modules/command-base.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; })(); }
var Close = exports.Close = /*#__PURE__*/function (_CommandBase) {
  function Close() {
    (0, _classCallCheck2.default)(this, Close);
    return _callSuper(this, Close, arguments);
  }
  (0, _inherits2.default)(Close, _CommandBase);
  return (0, _createClass2.default)(Close, [{
    key: "apply",
    value: function apply() {
      this.component.close();
    }
  }]);
}(_commandBase.default);
var _default = exports["default"] = Close;

/***/ }),

/***/ "../modules/web-cli/assets/js/modules/commands/index.js":
/*!**************************************************************!*\
  !*** ../modules/web-cli/assets/js/modules/commands/index.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
Object.defineProperty(exports, "Close", ({
  enumerable: true,
  get: function get() {
    return _close.Close;
  }
}));
Object.defineProperty(exports, "Open", ({
  enumerable: true,
  get: function get() {
    return _open.Open;
  }
}));
Object.defineProperty(exports, "Toggle", ({
  enumerable: true,
  get: function get() {
    return _toggle.Toggle;
  }
}));
var _close = __webpack_require__(/*! ./close */ "../modules/web-cli/assets/js/modules/commands/close.js");
var _open = __webpack_require__(/*! ./open */ "../modules/web-cli/assets/js/modules/commands/open.js");
var _toggle = __webpack_require__(/*! ./toggle */ "../modules/web-cli/assets/js/modules/commands/toggle.js");

/***/ }),

/***/ "../modules/web-cli/assets/js/modules/commands/open.js":
/*!*************************************************************!*\
  !*** ../modules/web-cli/assets/js/modules/commands/open.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"] = exports.Open = 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 _commandBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/command-base */ "../modules/web-cli/assets/js/modules/command-base.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; })(); }
var Open = exports.Open = /*#__PURE__*/function (_CommandBase) {
  function Open() {
    (0, _classCallCheck2.default)(this, Open);
    return _callSuper(this, Open, arguments);
  }
  (0, _inherits2.default)(Open, _CommandBase);
  return (0, _createClass2.default)(Open, [{
    key: "apply",
    value: function apply() {
      $e.route(this.component.getNamespace());
    }
  }]);
}(_commandBase.default);
var _default = exports["default"] = Open;

/***/ }),

/***/ "../modules/web-cli/assets/js/modules/commands/toggle.js":
/*!***************************************************************!*\
  !*** ../modules/web-cli/assets/js/modules/commands/toggle.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"] = exports.Toggle = 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 _commandBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/command-base */ "../modules/web-cli/assets/js/modules/command-base.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; })(); }
var Toggle = exports.Toggle = /*#__PURE__*/function (_CommandBase) {
  function Toggle() {
    (0, _classCallCheck2.default)(this, Toggle);
    return _callSuper(this, Toggle, arguments);
  }
  (0, _inherits2.default)(Toggle, _CommandBase);
  return (0, _createClass2.default)(Toggle, [{
    key: "apply",
    value: function apply() {
      if (this.component.isOpen) {
        this.component.close();
      } else {
        $e.route(this.component.getNamespace());
      }
    }
  }]);
}(_commandBase.default);
var _default = exports["default"] = Toggle;

/***/ }),

/***/ "../modules/web-cli/assets/js/modules/component-base.js":
/*!**************************************************************!*\
  !*** ../modules/web-cli/assets/js/modules/component-base.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.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 _commandCallbackBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/command-callback-base */ "../modules/web-cli/assets/js/modules/command-callback-base.js"));
var _toolkit = __webpack_require__(/*! @reduxjs/toolkit */ "@reduxjs/toolkit");
var _module = _interopRequireDefault(__webpack_require__(/*! elementor/assets/dev/js/modules/imports/module.js */ "../assets/dev/js/modules/imports/module.js"));
var _forceMethodImplementation = _interopRequireDefault(__webpack_require__(/*! ../utils/force-method-implementation */ "../modules/web-cli/assets/js/utils/force-method-implementation.js"));
var _deprecation = _interopRequireDefault(__webpack_require__(/*! elementor-api/utils/deprecation */ "../modules/web-cli/assets/js/utils/deprecation.js"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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('./command-infra')} CommandInfra
 * @typedef {import('./hook-base')} HookBase
 * @typedef {import('../core/states/ui-state-base')} UiStateBase
 */
var ComponentBase = exports["default"] = /*#__PURE__*/function (_Module) {
  function ComponentBase() {
    (0, _classCallCheck2.default)(this, ComponentBase);
    return _callSuper(this, ComponentBase, arguments);
  }
  (0, _inherits2.default)(ComponentBase, _Module);
  return (0, _createClass2.default)(ComponentBase, [{
    key: "__construct",
    value: function __construct() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      if (args.manager) {
        this.manager = args.manager;
      }
      this.commands = this.defaultCommands();
      this.commandsInternal = this.defaultCommandsInternal();
      this.hooks = this.defaultHooks();
      this.routes = this.defaultRoutes();
      this.tabs = this.defaultTabs();
      this.shortcuts = this.defaultShortcuts();
      this.utils = this.defaultUtils();
      this.data = this.defaultData();
      this.uiStates = this.defaultUiStates();
      this.states = this.defaultStates();
      this.defaultRoute = '';
      this.currentTab = '';
    }
  }, {
    key: "registerAPI",
    value: function registerAPI() {
      var _this = this;
      Object.entries(this.getTabs()).forEach(function (tab) {
        return _this.registerTabRoute(tab[0]);
      });
      Object.entries(this.getRoutes()).forEach(function (_ref) {
        var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
          route = _ref2[0],
          callback = _ref2[1];
        return _this.registerRoute(route, callback);
      });
      Object.entries(this.getCommands()).forEach(function (_ref3) {
        var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
          command = _ref4[0],
          callback = _ref4[1];
        return _this.registerCommand(command, callback);
      });
      Object.entries(this.getCommandsInternal()).forEach(function (_ref5) {
        var _ref6 = (0, _slicedToArray2.default)(_ref5, 2),
          command = _ref6[0],
          callback = _ref6[1];
        return _this.registerCommandInternal(command, callback);
      });
      Object.values(this.getHooks()).forEach(function (instance) {
        return _this.registerHook(instance);
      });
      Object.entries(this.getData()).forEach(function (_ref7) {
        var _ref8 = (0, _slicedToArray2.default)(_ref7, 2),
          command = _ref8[0],
          callback = _ref8[1];
        return _this.registerData(command, callback);
      });
      Object.values(this.getUiStates()).forEach(function (instance) {
        return _this.registerUiState(instance);
      });
      Object.entries(this.getStates()).forEach(function (_ref9) {
        var _ref0 = (0, _slicedToArray2.default)(_ref9, 2),
          id = _ref0[0],
          state = _ref0[1];
        return _this.registerState(id, state);
      });
    }

    // eslint-disable-next-line jsdoc/require-returns-check
    /**
     * @return {string} namespace
     */
  }, {
    key: "getNamespace",
    value: function getNamespace() {
      (0, _forceMethodImplementation.default)();
    }

    /**
     * @deprecated since 3.7.0, use `getServiceName()` instead.
     */
  }, {
    key: "getRootContainer",
    value: function getRootContainer() {
      _deprecation.default.deprecated('getRootContainer()', '3.7.0', 'getServiceName()');
      return this.getServiceName();
    }
  }, {
    key: "getServiceName",
    value: function getServiceName() {
      return this.getNamespace().split('/')[0];
    }
  }, {
    key: "store",
    get: function get() {
      return $e.store.get(this.getNamespace());
    }
  }, {
    key: "defaultTabs",
    value: function defaultTabs() {
      return {};
    }
  }, {
    key: "defaultRoutes",
    value: function defaultRoutes() {
      return {};
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return {};
    }
  }, {
    key: "defaultCommandsInternal",
    value: function defaultCommandsInternal() {
      return {};
    }
  }, {
    key: "defaultHooks",
    value: function defaultHooks() {
      return {};
    }

    /**
     * Get the component's default UI states.
     *
     * @return {Object} default UI states
     */
  }, {
    key: "defaultUiStates",
    value: function defaultUiStates() {
      return {};
    }

    /**
     * Get the component's Redux slice settings.
     *
     * @return {Object} Redux slice settings
     */
  }, {
    key: "defaultStates",
    value: function defaultStates() {
      return {};
    }
  }, {
    key: "defaultShortcuts",
    value: function defaultShortcuts() {
      return {};
    }
  }, {
    key: "defaultUtils",
    value: function defaultUtils() {
      return {};
    }
  }, {
    key: "defaultData",
    value: function defaultData() {
      return {};
    }
  }, {
    key: "getCommands",
    value: function getCommands() {
      return this.commands;
    }
  }, {
    key: "getCommandsInternal",
    value: function getCommandsInternal() {
      return this.commandsInternal;
    }
  }, {
    key: "getHooks",
    value: function getHooks() {
      return this.hooks;
    }

    /**
     * Retrieve the component's UI states.
     *
     * @return {Object} UI states
     */
  }, {
    key: "getUiStates",
    value: function getUiStates() {
      return this.uiStates;
    }

    /**
     * Retrieve the component's Redux Slice.
     *
     * @return {Object} Redux Slice
     */
  }, {
    key: "getStates",
    value: function getStates() {
      return this.states;
    }
  }, {
    key: "getRoutes",
    value: function getRoutes() {
      return this.routes;
    }
  }, {
    key: "getTabs",
    value: function getTabs() {
      return this.tabs;
    }
  }, {
    key: "getShortcuts",
    value: function getShortcuts() {
      return this.shortcuts;
    }
  }, {
    key: "getData",
    value: function getData() {
      return this.data;
    }

    /**
     * @param {string}                      command
     * @param {(()=>{}|CommandInfra)}       context
     * @param {'default'|'internal'|'data'} commandsType
     */
  }, {
    key: "registerCommand",
    value: function registerCommand(command, context) {
      var commandsType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'default';
      var commandsManager;
      switch (commandsType) {
        case 'default':
          commandsManager = $e.commands;
          break;
        case 'internal':
          commandsManager = $e.commandsInternal;
          break;
        case 'data':
          commandsManager = $e.data;
          break;
        default:
          throw new Error("Invalid commands type: '".concat(command, "'"));
      }
      var fullCommand = this.getNamespace() + '/' + command,
        instanceType = context.getInstanceType ? context.getInstanceType() : false,
        registerConfig = {
          command: fullCommand,
          component: this
        };

      // Support pure callback.
      if (!instanceType) {
        if ($e.devTools) {
          $e.devTools.log.warn("Attach command-callback-base, on command: '".concat(fullCommand, "', context is unknown type."));
        }
        registerConfig.callback = context;

        // Unique class.
        context = /*#__PURE__*/function (_CommandCallbackBase) {
          function context() {
            (0, _classCallCheck2.default)(this, context);
            return _callSuper(this, context, arguments);
          }
          (0, _inherits2.default)(context, _CommandCallbackBase);
          return (0, _createClass2.default)(context);
        }(_commandCallbackBase.default);
      }
      context.setRegisterConfig(registerConfig);
      commandsManager.register(this, command, context);
    }

    /**
     * @param {HookBase} instance
     */
  }, {
    key: "registerHook",
    value: function registerHook(instance) {
      return instance.register();
    }
  }, {
    key: "registerCommandInternal",
    value: function registerCommandInternal(command, context) {
      this.registerCommand(command, context, 'internal');
    }

    /**
     * Register a UI state.
     *
     * @param {UiStateBase} instance - UI state instance.
     *
     * @return {void}
     */
  }, {
    key: "registerUiState",
    value: function registerUiState(instance) {
      $e.uiStates.register(instance);
    }

    /**
     * Register a Redux Slice.
     *
     * @param {string} id          - State id.
     * @param {Object} stateConfig - The state config.
     *
     * @return {void}
     */
  }, {
    key: "registerState",
    value: function registerState(id, stateConfig) {
      id = this.getNamespace() + (id ? "/".concat(id) : '');
      var slice = (0, _toolkit.createSlice)(_objectSpread(_objectSpread({}, stateConfig), {}, {
        name: id
      }));
      $e.store.register(id, slice);
    }
  }, {
    key: "registerRoute",
    value: function registerRoute(route, callback) {
      $e.routes.register(this, route, callback);
    }
  }, {
    key: "registerData",
    value: function registerData(command, context) {
      this.registerCommand(command, context, 'data');
    }
  }, {
    key: "unregisterRoute",
    value: function unregisterRoute(route) {
      $e.routes.unregister(this, route);
    }
  }, {
    key: "registerTabRoute",
    value: function registerTabRoute(tab) {
      var _this2 = this;
      this.registerRoute(tab, function (args) {
        return _this2.activateTab(tab, args);
      });
    }
  }, {
    key: "dependency",
    value: function dependency() {
      return true;
    }
  }, {
    key: "open",
    value: function open() {
      return true;
    }
  }, {
    key: "close",
    value: function close() {
      if (!this.isOpen) {
        return false;
      }
      this.isOpen = false;
      this.inactivate();
      $e.routes.clearCurrent(this.getNamespace());
      $e.routes.clearHistory(this.getServiceName());
      return true;
    }
  }, {
    key: "activate",
    value: function activate() {
      $e.components.activate(this.getNamespace());
    }
  }, {
    key: "inactivate",
    value: function inactivate() {
      $e.components.inactivate(this.getNamespace());
    }
  }, {
    key: "isActive",
    value: function isActive() {
      return $e.components.isActive(this.getNamespace());
    }
  }, {
    key: "onRoute",
    value: function onRoute(route) {
      this.toggleRouteClass(route, true);
      this.toggleHistoryClass();
      this.activate();
      this.trigger('route/open', route);
    }
  }, {
    key: "onCloseRoute",
    value: function onCloseRoute(route) {
      this.toggleRouteClass(route, false);
      this.inactivate();
      this.trigger('route/close', route);
    }
  }, {
    key: "setDefaultRoute",
    value: function setDefaultRoute(route) {
      this.defaultRoute = this.getNamespace() + '/' + route;
    }
  }, {
    key: "getDefaultRoute",
    value: function getDefaultRoute() {
      return this.defaultRoute;
    }
  }, {
    key: "removeTab",
    value: function removeTab(tab) {
      delete this.tabs[tab];
      this.unregisterRoute(tab);
    }
  }, {
    key: "hasTab",
    value: function hasTab(tab) {
      return !!this.tabs[tab];
    }
  }, {
    key: "addTab",
    value: function addTab(tab, args, position) {
      var _this3 = this;
      this.tabs[tab] = args;
      // It can be 0.
      if ('undefined' !== typeof position) {
        var newTabs = {};
        var ids = Object.keys(this.tabs);
        // Remove new tab
        ids.pop();

        // Add it to position.
        ids.splice(position, 0, tab);
        ids.forEach(function (id) {
          newTabs[id] = _this3.tabs[id];
        });
        this.tabs = newTabs;
      }
      this.registerTabRoute(tab);
    }
  }, {
    key: "getTabsWrapperSelector",
    value: function getTabsWrapperSelector() {
      return '';
    }
  }, {
    key: "getTabRoute",
    value: function getTabRoute(tab) {
      return this.getNamespace() + '/' + tab;
    }
  }, {
    key: "renderTab",
    value: function renderTab(tab) {} // eslint-disable-line
  }, {
    key: "activateTab",
    value: function activateTab(tab, args) {
      var _this4 = this;
      this.renderTab(tab, args);
      jQuery(this.getTabsWrapperSelector() + ' .elementor-component-tab').off('click').on('click', function (event) {
        $e.route(_this4.getTabRoute(event.currentTarget.dataset.tab), args);
      }).removeClass('elementor-active').filter('[data-tab="' + tab + '"]').addClass('elementor-active');
    }
  }, {
    key: "getActiveTabConfig",
    value: function getActiveTabConfig() {
      return this.tabs[this.currentTab] || {};
    }
  }, {
    key: "getBodyClass",
    value: function getBodyClass(route) {
      return 'e-route-' + route.replace(/\//g, '-');
    }

    /**
     * If command includes uppercase character convert it to lowercase and add `-`.
     * e.g: `CopyAll` is converted to `copy-all`.
     *
     * @param {string} commandName
     */
  }, {
    key: "normalizeCommandName",
    value: function normalizeCommandName(commandName) {
      return commandName.replace(/[A-Z]/g, function (match, offset) {
        return (offset > 0 ? '-' : '') + match.toLowerCase();
      });
    }

    /**
     * @param {{}} commandsFromImport
     * @return {{}} imported commands
     */
  }, {
    key: "importCommands",
    value: function importCommands(commandsFromImport) {
      var _this5 = this;
      var commands = {};

      // Convert `Commands` to `ComponentBase` workable format.
      Object.entries(commandsFromImport).forEach(function (_ref1) {
        var _ref10 = (0, _slicedToArray2.default)(_ref1, 2),
          className = _ref10[0],
          Class = _ref10[1];
        var command = _this5.normalizeCommandName(className);
        commands[command] = Class;
      });
      return commands;
    }
  }, {
    key: "importHooks",
    value: function importHooks(hooksFromImport) {
      var hooks = {};
      for (var key in hooksFromImport) {
        var hook = new hooksFromImport[key]();
        hooks[hook.getId()] = hook;
      }
      return hooks;
    }

    /**
     * Import & initialize the component's UI states.
     * Should be used inside `defaultUiState()`.
     *
     * @param {Object} statesFromImport - UI states from import.
     *
     * @return {Object} UI States
     */
  }, {
    key: "importUiStates",
    value: function importUiStates(statesFromImport) {
      var _this6 = this;
      var uiStates = {};
      Object.values(statesFromImport).forEach(function (className) {
        var uiState = new className(_this6);
        uiStates[uiState.getId()] = uiState;
      });
      return uiStates;
    }

    /**
     * Set a UI state value.
     * TODO: Should we provide such function? Maybe the developer should implicitly pass the full state ID?
     *
     * @param {string} state - Non-prefixed state ID.
     * @param {*}      value - New state value.
     *
     * @return {void}
     */
  }, {
    key: "setUiState",
    value: function setUiState(state, value) {
      $e.uiStates.set("".concat(this.getNamespace(), "/").concat(state), value);
    }
  }, {
    key: "toggleRouteClass",
    value: function toggleRouteClass(route, state) {
      document.body.classList.toggle(this.getBodyClass(route), state);
    }
  }, {
    key: "toggleHistoryClass",
    value: function toggleHistoryClass() {
      document.body.classList.toggle('e-routes-has-history', !!$e.routes.getHistory(this.getServiceName()).length);
    }
  }]);
}(_module.default);

/***/ }),

/***/ "../modules/web-cli/assets/js/modules/component-modal-base.js":
/*!********************************************************************!*\
  !*** ../modules/web-cli/assets/js/modules/component-modal-base.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.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 _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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _componentBase = _interopRequireDefault(__webpack_require__(/*! ./component-base */ "../modules/web-cli/assets/js/modules/component-base.js"));
var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../modules/web-cli/assets/js/modules/commands/index.js"));
var _forceMethodImplementation = _interopRequireDefault(__webpack_require__(/*! ../utils/force-method-implementation */ "../modules/web-cli/assets/js/utils/force-method-implementation.js"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var ComponentModalBase = exports["default"] = /*#__PURE__*/function (_ComponentBase) {
  function ComponentModalBase() {
    (0, _classCallCheck2.default)(this, ComponentModalBase);
    return _callSuper(this, ComponentModalBase, arguments);
  }
  (0, _inherits2.default)(ComponentModalBase, _ComponentBase);
  return (0, _createClass2.default)(ComponentModalBase, [{
    key: "registerAPI",
    value: function registerAPI() {
      var _this = this;
      _superPropGet(ComponentModalBase, "registerAPI", this, 3)([]);
      $e.shortcuts.register('esc', {
        scopes: [this.getNamespace()],
        callback: function callback() {
          return _this.close();
        }
      });
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }
  }, {
    key: "defaultRoutes",
    value: function defaultRoutes() {
      return {
        '': function _() {/* Nothing to do, it's already rendered. */}
      };
    }
  }, {
    key: "open",
    value: function open() {
      var _this2 = this;
      if (!this.layout) {
        var layout = this.getModalLayout();
        this.layout = new layout({
          component: this
        });
        this.layout.getModal().on('hide', function () {
          return _this2.close();
        });
      }
      this.layout.showModal();
      return true;
    }
  }, {
    key: "close",
    value: function close() {
      if (!_superPropGet(ComponentModalBase, "close", this, 3)([])) {
        return false;
      }
      var close = elementor.hooks.applyFilters('component/modal/close', this.layout.getModal().hide.bind(this.layout.getModal()), this);
      close();
      return true;
    }
  }, {
    key: "getModalLayout",
    value: function getModalLayout() {
      (0, _forceMethodImplementation.default)();
    }
  }]);
}(_componentBase.default);

/***/ }),

/***/ "../modules/web-cli/assets/js/modules/hook-base.js":
/*!*********************************************************!*\
  !*** ../modules/web-cli/assets/js/modules/hook-base.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _forceMethodImplementation = _interopRequireDefault(__webpack_require__(/*! ../utils/force-method-implementation */ "../modules/web-cli/assets/js/utils/force-method-implementation.js"));
var HookBase = exports["default"] = /*#__PURE__*/function () {
  /**
   * Function constructor().
   *
   * Create callback base.
   */
  function HookBase() {
    (0, _classCallCheck2.default)(this, HookBase);
    /**
     * Callback type, eg ( hook, event ).
     *
     * @type {string}
     */
    (0, _defineProperty2.default)(this, "type", void 0);
    /**
     * Full command address, that will hook the callback.
     *
     * @type {string}
     */
    (0, _defineProperty2.default)(this, "command", void 0);
    /**
     * Unique id of the callback.
     *
     * @type {string}
     */
    (0, _defineProperty2.default)(this, "id", void 0);
    this.initialize();
    this.type = this.getType();
    this.command = this.getCommand();
    this.id = this.getId();
  }

  /**
   * Function initialize().
   *
   * Called after creation of the base, used for initialize extras.
   * Without expending constructor.
   */
  return (0, _createClass2.default)(HookBase, [{
    key: "initialize",
    value: function initialize() {}

    /**
     * Function register().
     *
     * Used to register the callback.
     *
     * @throws {Error}
     */
  }, {
    key: "register",
    value: function register() {
      (0, _forceMethodImplementation.default)();
    }

    // eslint-disable-next-line jsdoc/require-returns-check
    /**
     * Function getType().
     *
     * Get type eg: ( hook, event, etc ... ).
     *
     * @return {string} type
     *
     * @throws {Error}
     */
  }, {
    key: "getType",
    value: function getType() {
      (0, _forceMethodImplementation.default)();
    }

    // eslint-disable-next-line jsdoc/require-returns-check
    /**
     * Function getCommand().
     *
     * Returns the full command path for callback binding.
     *
     * Supports array of strings ( commands ).
     *
     * @return {string} command
     *
     * @throws {Error}
     */
  }, {
    key: "getCommand",
    value: function getCommand() {
      (0, _forceMethodImplementation.default)();
    }

    // eslint-disable-next-line jsdoc/require-returns-check
    /**
     * Function getId().
     *
     * Returns command id for the hook (should be unique).
     *
     * @return {string} id
     *
     * @throws {Error}
     */
  }, {
    key: "getId",
    value: function getId() {
      (0, _forceMethodImplementation.default)();
    }

    // eslint-disable-next-line jsdoc/require-returns-check
    /**
     * Function getContainerType().
     *
     * Bind eContainer type to callback.
     *
     * Used to gain performance.
     *
     * @return {string} type
     */
  }, {
    key: "getContainerType",
    value: function getContainerType() {}

    /**
     * Function getConditions().
     *
     * Condition for running the callback, if true, call to apply().
     *
     * @param {*} [args={}]
     * @param {*} [result=*]
     *
     * @return {boolean} conditions
     */
  }, {
    key: "getConditions",
    value: function getConditions() {
      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var result = arguments.length > 1 ? arguments[1] : undefined;
      // eslint-disable-line no-unused-vars
      return true;
    }

    // eslint-disable-next-line jsdoc/require-returns-check
    /**
     * Function apply().
     *
     * Apply the callback, ( The actual affect of the callback ).
     *
     * @param {*} [args={}]
     *
     * @return {*} results
     */
  }, {
    key: "apply",
    value: function apply(args) {
      // eslint-disable-line no-unused-vars
      (0, _forceMethodImplementation.default)();
    }

    /**
     * Function run().
     *
     * Run the callback.
     *
     * @param {*} args
     *
     * @return {*} results
     */
  }, {
    key: "run",
    value: function run() {
      var _ref = arguments.length <= 0 ? undefined : arguments[0],
        _ref$options = _ref.options,
        options = _ref$options === void 0 ? {} : _ref$options;

      // Disable callback if requested by args.options.
      if (options.callbacks && false === options.callbacks[this.id]) {
        return true;
      }
      if (this.getConditions.apply(this, arguments)) {
        if ($e.devTools) {
          $e.devTools.log.callbacks().active(this.type, this.command, this.id);
        }
        return this.apply.apply(this, arguments);
      }
      return true;
    }
  }]);
}();

/***/ }),

/***/ "../modules/web-cli/assets/js/modules/hooks/data/after.js":
/*!****************************************************************!*\
  !*** ../modules/web-cli/assets/js/modules/hooks/data/after.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"] = exports.After = 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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/web-cli/assets/js/modules/hooks/data/base.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; })(); }
var After = exports.After = /*#__PURE__*/function (_Base) {
  function After() {
    (0, _classCallCheck2.default)(this, After);
    return _callSuper(this, After, arguments);
  }
  (0, _inherits2.default)(After, _Base);
  return (0, _createClass2.default)(After, [{
    key: "register",
    value: function register() {
      $e.hooks.registerDataAfter(this);
    }
  }]);
}(_base.default);
var _default = exports["default"] = After;

/***/ }),

/***/ "../modules/web-cli/assets/js/modules/hooks/data/base.js":
/*!***************************************************************!*\
  !*** ../modules/web-cli/assets/js/modules/hooks/data/base.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"] = exports.Base = 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 _hookBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hook-base */ "../modules/web-cli/assets/js/modules/hook-base.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; })(); }
var Base = exports.Base = /*#__PURE__*/function (_HookBase) {
  function Base() {
    (0, _classCallCheck2.default)(this, Base);
    return _callSuper(this, Base, arguments);
  }
  (0, _inherits2.default)(Base, _HookBase);
  return (0, _createClass2.default)(Base, [{
    key: "getType",
    value: function getType() {
      return 'data';
    }
  }]);
}(_hookBase.default);
var _default = exports["default"] = Base;

/***/ }),

/***/ "../modules/web-cli/assets/js/modules/hooks/data/dependency.js":
/*!*********************************************************************!*\
  !*** ../modules/web-cli/assets/js/modules/hooks/data/dependency.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"] = exports.Dependency = 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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/web-cli/assets/js/modules/hooks/data/base.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; })(); }
var Dependency = exports.Dependency = /*#__PURE__*/function (_Base) {
  function Dependency() {
    (0, _classCallCheck2.default)(this, Dependency);
    return _callSuper(this, Dependency, arguments);
  }
  (0, _inherits2.default)(Dependency, _Base);
  return (0, _createClass2.default)(Dependency, [{
    key: "register",
    value: function register() {
      $e.hooks.registerDataDependency(this);
    }
  }]);
}(_base.default);
var _default = exports["default"] = Dependency;

/***/ }),

/***/ "../modules/web-cli/assets/js/modules/hooks/ui/after.js":
/*!**************************************************************!*\
  !*** ../modules/web-cli/assets/js/modules/hooks/ui/after.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"] = exports.After = 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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/web-cli/assets/js/modules/hooks/ui/base.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; })(); }
var After = exports.After = /*#__PURE__*/function (_Base) {
  function After() {
    (0, _classCallCheck2.default)(this, After);
    return _callSuper(this, After, arguments);
  }
  (0, _inherits2.default)(After, _Base);
  return (0, _createClass2.default)(After, [{
    key: "register",
    value: function register() {
      $e.hooks.registerUIAfter(this);
    }
  }]);
}(_base.default);
var _default = exports["default"] = After;

/***/ }),

/***/ "../modules/web-cli/assets/js/modules/hooks/ui/base.js":
/*!*************************************************************!*\
  !*** ../modules/web-cli/assets/js/modules/hooks/ui/base.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"] = exports.Base = 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 _hookBase = _interopRequireDefault(__webpack_require__(/*! elementor-api/modules/hook-base */ "../modules/web-cli/assets/js/modules/hook-base.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; })(); }
var Base = exports.Base = /*#__PURE__*/function (_HookBase) {
  function Base() {
    (0, _classCallCheck2.default)(this, Base);
    return _callSuper(this, Base, arguments);
  }
  (0, _inherits2.default)(Base, _HookBase);
  return (0, _createClass2.default)(Base, [{
    key: "getType",
    value: function getType() {
      return 'ui';
    }
  }]);
}(_hookBase.default);
var _default = exports["default"] = Base;

/***/ }),

/***/ "../modules/web-cli/assets/js/modules/hooks/ui/before.js":
/*!***************************************************************!*\
  !*** ../modules/web-cli/assets/js/modules/hooks/ui/before.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"] = exports.Before = 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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/web-cli/assets/js/modules/hooks/ui/base.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; })(); }
var Before = exports.Before = /*#__PURE__*/function (_Base) {
  function Before() {
    (0, _classCallCheck2.default)(this, Before);
    return _callSuper(this, Before, arguments);
  }
  (0, _inherits2.default)(Before, _Base);
  return (0, _createClass2.default)(Before, [{
    key: "register",
    value: function register() {
      $e.hooks.registerUIBefore(this);
    }
  }]);
}(_base.default);
var _default = exports["default"] = Before;

/***/ }),

/***/ "../modules/web-cli/assets/js/modules/hooks/ui/catch.js":
/*!**************************************************************!*\
  !*** ../modules/web-cli/assets/js/modules/hooks/ui/catch.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"] = exports.Catch = 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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/web-cli/assets/js/modules/hooks/ui/base.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; })(); }
var Catch = exports.Catch = /*#__PURE__*/function (_Base) {
  function Catch() {
    (0, _classCallCheck2.default)(this, Catch);
    return _callSuper(this, Catch, arguments);
  }
  (0, _inherits2.default)(Catch, _Base);
  return (0, _createClass2.default)(Catch, [{
    key: "register",
    value: function register() {
      $e.hooks.registerUICatch(this);
    }
  }]);
}(_base.default);
var _default = exports["default"] = Catch;

/***/ }),

/***/ "../modules/web-cli/assets/js/utils/console.js":
/*!*****************************************************!*\
  !*** ../modules/web-cli/assets/js/utils/console.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 Console = exports["default"] = /*#__PURE__*/function () {
  function Console() {
    (0, _classCallCheck2.default)(this, Console);
  }
  return (0, _createClass2.default)(Console, null, [{
    key: "error",
    value: function error(message) {
      // Show an error if devTools is available.
      if ($e.devTools) {
        $e.devTools.log.error(message);
      }

      // If not a 'Hook-Break' then show error.
      if (!(message instanceof $e.modules.HookBreak)) {
        // eslint-disable-next-line no-console
        console.error(message);
      }
    }
  }, {
    key: "warn",
    value: function warn() {
      var _console;
      var style = "font-size: 12px; background-image: url(\"".concat(elementorWebCliConfig.urls.assets, "images/logo-icon.png\"); background-repeat: no-repeat; background-size: contain;");
      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }
      args.unshift('%c  %c', style, '');
      (_console = console).warn.apply(_console, args); // eslint-disable-line no-console
    }
  }]);
}();

/***/ }),

/***/ "../modules/web-cli/assets/js/utils/deprecation.js":
/*!*********************************************************!*\
  !*** ../modules/web-cli/assets/js/utils/deprecation.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 _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 _console = _interopRequireDefault(__webpack_require__(/*! elementor-api/utils/console */ "../modules/web-cli/assets/js/utils/console.js"));
// Copied from `modules/dev-tools/assets/js/deprecation.js`
/**
 * @typedef {Object} Version
 * @property {number} major1 The first number
 * @property {number} major2 The second number
 * @property {number} minor  The third number
 * @property {string} build  The fourth number
 */

var softDeprecated = function softDeprecated(name, version, replacement) {
  if (elementorWebCliConfig.isDebug) {
    deprecatedMessage('soft', name, version, replacement);
  }
};
var hardDeprecated = function hardDeprecated(name, version, replacement) {
  deprecatedMessage('hard', name, version, replacement);
};
var deprecatedMessage = function deprecatedMessage(type, name, version, replacement) {
  var message = "`".concat(name, "` is ").concat(type, " deprecated since ").concat(version);
  if (replacement) {
    message += " - Use `".concat(replacement, "` instead");
  }
  _console.default.warn(message);
};
var Deprecation = exports["default"] = /*#__PURE__*/function () {
  function Deprecation() {
    (0, _classCallCheck2.default)(this, Deprecation);
  }
  return (0, _createClass2.default)(Deprecation, null, [{
    key: "deprecated",
    value: function deprecated(name, version, replacement) {
      if (this.isHardDeprecated(version)) {
        hardDeprecated(name, version, replacement);
      } else {
        softDeprecated(name, version, replacement);
      }
    }

    /**
     * @param {string} version
     *
     * @return {Version}
     */
  }, {
    key: "parseVersion",
    value: function parseVersion(version) {
      var versionParts = version.split('.');
      if (versionParts.length < 3 || versionParts.length > 4) {
        throw new RangeError('Invalid Semantic Version string provided');
      }
      var _versionParts = (0, _slicedToArray2.default)(versionParts, 4),
        major1 = _versionParts[0],
        major2 = _versionParts[1],
        minor = _versionParts[2],
        _versionParts$ = _versionParts[3],
        build = _versionParts$ === void 0 ? '' : _versionParts$;
      return {
        major1: parseInt(major1),
        major2: parseInt(major2),
        minor: parseInt(minor),
        build: build
      };
    }

    /**
     * Get total of major.
     *
     * Since `get_total_major` cannot determine how much really versions between 2.9.0 and 3.3.0 if there is 2.10.0 version for example,
     * versions with major2 more then 9 will be added to total.
     *
     * @param {Version} versionObj
     *
     * @return {number}
     */
  }, {
    key: "getTotalMajor",
    value: function getTotalMajor(versionObj) {
      var total = parseInt("".concat(versionObj.major1).concat(versionObj.major2, "0"));
      total = Number((total / 10).toFixed(0));
      if (versionObj.major2 > 9) {
        total = versionObj.major2 - 9;
      }
      return total;
    }

    /**
     * @param {string} version1
     * @param {string} version2
     *
     * @return {number}
     */
  }, {
    key: "compareVersion",
    value: function compareVersion(version1, version2) {
      var _this = this;
      return [this.parseVersion(version1), this.parseVersion(version2)].map(function (versionObj) {
        return _this.getTotalMajor(versionObj);
      }).reduce(function (acc, major) {
        return acc - major;
      });
    }

    /**
     * @param {string} version
     *
     * @return {boolean}
     */
  }, {
    key: "isSoftDeprecated",
    value: function isSoftDeprecated(version) {
      var total = this.compareVersion(version, elementorWebCliConfig.version);
      return total <= 4;
    }

    /**
     * @param {string} version
     * @return {boolean}
     */
  }, {
    key: "isHardDeprecated",
    value: function isHardDeprecated(version) {
      var total = this.compareVersion(version, elementorWebCliConfig.version);
      return total < 0 || total >= 8;
    }
  }]);
}();

/***/ }),

/***/ "../modules/web-cli/assets/js/utils/force-method-implementation.js":
/*!*************************************************************************!*\
  !*** ../modules/web-cli/assets/js/utils/force-method-implementation.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"] = exports.ForceMethodImplementation = void 0;
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.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 _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; })(); }
// TODO: Copied from `assets/dev/js/modules/imports/force-method-implementation.js`;
var ForceMethodImplementation = exports.ForceMethodImplementation = /*#__PURE__*/function (_Error) {
  function ForceMethodImplementation() {
    var _this;
    var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    (0, _classCallCheck2.default)(this, ForceMethodImplementation);
    _this = _callSuper(this, ForceMethodImplementation, ["".concat(info.isStatic ? 'static ' : '').concat(info.fullName, "() should be implemented, please provide '").concat(info.functionName || info.fullName, "' functionality.")]);
    Error.captureStackTrace(_this, ForceMethodImplementation);
    return _this;
  }
  (0, _inherits2.default)(ForceMethodImplementation, _Error);
  return (0, _createClass2.default)(ForceMethodImplementation);
}(/*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
var _default = exports["default"] = function _default() {
  var stack = Error().stack,
    caller = stack.split('\n')[2].trim(),
    callerName = caller.startsWith('at new') ? 'constructor' : caller.split(' ')[1],
    info = {};
  info.functionName = callerName;
  info.fullName = callerName;
  if (info.functionName.includes('.')) {
    var parts = info.functionName.split('.');
    info.className = parts[0];
    info.functionName = parts[1];
  } else {
    info.isStatic = true;
  }
  throw new ForceMethodImplementation(info);
};

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/OverloadYield.js":
/*!***************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/OverloadYield.js ***!
  \***************************************************************/
/***/ ((module) => {

function _OverloadYield(e, d) {
  this.v = e, this.k = d;
}
module.exports = _OverloadYield, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
/*!******************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
  \******************************************************************/
/***/ ((module) => {

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;
}
module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js":
/*!****************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
  \****************************************************************/
/***/ ((module) => {

function _arrayWithHoles(r) {
  if (Array.isArray(r)) return r;
}
module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js":
/*!*******************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
function _arrayWithoutHoles(r) {
  if (Array.isArray(r)) return arrayLikeToArray(r);
}
module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
  \***********************************************************************/
/***/ ((module) => {

function _assertThisInitialized(e) {
  if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  return e;
}
module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js":
/*!******************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
  \******************************************************************/
/***/ ((module) => {

function asyncGeneratorStep(n, t, e, r, o, a, c) {
  try {
    var i = n[a](c),
      u = i.value;
  } catch (n) {
    return void e(n);
  }
  i.done ? t(u) : Promise.resolve(u).then(r, o);
}
function _asyncToGenerator(n) {
  return function () {
    var t = this,
      e = arguments;
    return new Promise(function (r, o) {
      var a = n.apply(t, e);
      function _next(n) {
        asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
      }
      function _throw(n) {
        asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
      }
      _next(void 0);
    });
  };
}
module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "../node_modules/@babel/runtime/helpers/OverloadYield.js");
function _awaitAsyncGenerator(e) {
  return new OverloadYield(e, 0);
}
module.exports = _awaitAsyncGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/classCallCheck.js":
/*!****************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/classCallCheck.js ***!
  \****************************************************************/
/***/ ((module) => {

function _classCallCheck(a, n) {
  if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
}
module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/construct.js":
/*!***********************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/construct.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct.js */ "../node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js");
var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js");
function _construct(t, e, r) {
  if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
  var o = [null];
  o.push.apply(o, e);
  var p = new (t.bind.apply(t, o))();
  return r && setPrototypeOf(p, r.prototype), p;
}
module.exports = _construct, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/createClass.js":
/*!*************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/createClass.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
function _defineProperties(e, r) {
  for (var t = 0; t < r.length; t++) {
    var o = r[t];
    o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);
  }
}
function _createClass(e, r, t) {
  return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
    writable: !1
  }), e;
}
module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
/*!****************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
function _defineProperty(e, r, t) {
  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
    value: t,
    enumerable: !0,
    configurable: !0,
    writable: !0
  }) : e[r] = t, e;
}
module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/extends.js":
/*!*********************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/extends.js ***!
  \*********************************************************/
/***/ ((module) => {

function _extends() {
  return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {
    for (var e = 1; e < arguments.length; e++) {
      var t = arguments[e];
      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
    }
    return n;
  }, module.exports.__esModule = true, module.exports["default"] = module.exports, _extends.apply(null, arguments);
}
module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/get.js":
/*!*****************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/get.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var superPropBase = __webpack_require__(/*! ./superPropBase.js */ "../node_modules/@babel/runtime/helpers/superPropBase.js");
function _get() {
  return module.exports = _get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {
    var p = superPropBase(e, t);
    if (p) {
      var n = Object.getOwnPropertyDescriptor(p, t);
      return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;
    }
  }, module.exports.__esModule = true, module.exports["default"] = module.exports, _get.apply(null, arguments);
}
module.exports = _get, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js":
/*!****************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/getPrototypeOf.js ***!
  \****************************************************************/
/***/ ((module) => {

function _getPrototypeOf(t) {
  return module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
    return t.__proto__ || Object.getPrototypeOf(t);
  }, module.exports.__esModule = true, module.exports["default"] = module.exports, _getPrototypeOf(t);
}
module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/inherits.js":
/*!**********************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/inherits.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js");
function _inherits(t, e) {
  if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
  t.prototype = Object.create(e && e.prototype, {
    constructor: {
      value: t,
      writable: !0,
      configurable: !0
    }
  }), Object.defineProperty(t, "prototype", {
    writable: !1
  }), e && setPrototypeOf(t, e);
}
module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
  \***********************************************************************/
/***/ ((module) => {

function _interopRequireDefault(e) {
  return e && e.__esModule ? e : {
    "default": e
  };
}
module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/isNativeFunction.js":
/*!******************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/isNativeFunction.js ***!
  \******************************************************************/
/***/ ((module) => {

function _isNativeFunction(t) {
  try {
    return -1 !== Function.toString.call(t).indexOf("[native code]");
  } catch (n) {
    return "function" == typeof t;
  }
}
module.exports = _isNativeFunction, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js":
/*!**************************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js ***!
  \**************************************************************************/
/***/ ((module) => {

function _isNativeReflectConstruct() {
  try {
    var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
  } catch (t) {}
  return (module.exports = _isNativeReflectConstruct = function _isNativeReflectConstruct() {
    return !!t;
  }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
}
module.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/iterableToArray.js":
/*!*****************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/iterableToArray.js ***!
  \*****************************************************************/
/***/ ((module) => {

function _iterableToArray(r) {
  if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
}
module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
/*!**********************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
  \**********************************************************************/
/***/ ((module) => {

function _iterableToArrayLimit(r, l) {
  var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
  if (null != t) {
    var e,
      n,
      i,
      u,
      a = [],
      f = !0,
      o = !1;
    try {
      if (i = (t = t.call(r)).next, 0 === l) {
        if (Object(t) !== t) return;
        f = !1;
      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
    } catch (r) {
      o = !0, n = r;
    } finally {
      try {
        if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
      } finally {
        if (o) throw n;
      }
    }
    return a;
  }
}
module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/nonIterableRest.js":
/*!*****************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
  \*****************************************************************/
/***/ ((module) => {

function _nonIterableRest() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js":
/*!*******************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/nonIterableSpread.js ***!
  \*******************************************************************/
/***/ ((module) => {

function _nonIterableSpread() {
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js":
/*!*************************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/objectWithoutProperties.js ***!
  \*************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var objectWithoutPropertiesLoose = __webpack_require__(/*! ./objectWithoutPropertiesLoose.js */ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js");
function _objectWithoutProperties(e, t) {
  if (null == e) return {};
  var o,
    r,
    i = objectWithoutPropertiesLoose(e, t);
  if (Object.getOwnPropertySymbols) {
    var n = Object.getOwnPropertySymbols(e);
    for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
  }
  return i;
}
module.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js":
/*!******************************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js ***!
  \******************************************************************************/
/***/ ((module) => {

function _objectWithoutPropertiesLoose(r, e) {
  if (null == r) return {};
  var t = {};
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
    if (-1 !== e.indexOf(n)) continue;
    t[n] = r[n];
  }
  return t;
}
module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js");
function _possibleConstructorReturn(t, e) {
  if (e && ("object" == _typeof(e) || "function" == typeof e)) return e;
  if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
  return assertThisInitialized(t);
}
module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/readOnlyError.js":
/*!***************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/readOnlyError.js ***!
  \***************************************************************/
/***/ ((module) => {

function _readOnlyError(r) {
  throw new TypeError('"' + r + '" is read-only');
}
module.exports = _readOnlyError, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/regenerator.js":
/*!*************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/regenerator.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js");
function _regenerator() {
  /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
  var e,
    t,
    r = "function" == typeof Symbol ? Symbol : {},
    n = r.iterator || "@@iterator",
    o = r.toStringTag || "@@toStringTag";
  function i(r, n, o, i) {
    var c = n && n.prototype instanceof Generator ? n : Generator,
      u = Object.create(c.prototype);
    return regeneratorDefine(u, "_invoke", function (r, n, o) {
      var i,
        c,
        u,
        f = 0,
        p = o || [],
        y = !1,
        G = {
          p: 0,
          n: 0,
          v: e,
          a: d,
          f: d.bind(e, 4),
          d: function d(t, r) {
            return i = t, c = 0, u = e, G.n = r, a;
          }
        };
      function d(r, n) {
        for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
          var o,
            i = p[t],
            d = G.p,
            l = i[2];
          r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
        }
        if (o || r > 1) return a;
        throw y = !0, n;
      }
      return function (o, p, l) {
        if (f > 1) throw TypeError("Generator is already running");
        for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
          i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
          try {
            if (f = 2, i) {
              if (c || (o = "next"), t = i[o]) {
                if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
                if (!t.done) return t;
                u = t.value, c < 2 && (c = 0);
              } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
              i = e;
            } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
          } catch (t) {
            i = e, c = 1, u = t;
          } finally {
            f = 1;
          }
        }
        return {
          value: t,
          done: y
        };
      };
    }(r, o, i), !0), u;
  }
  var a = {};
  function Generator() {}
  function GeneratorFunction() {}
  function GeneratorFunctionPrototype() {}
  t = Object.getPrototypeOf;
  var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {
      return this;
    }), t),
    u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
  function f(e) {
    return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
  }
  return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), regeneratorDefine(u), regeneratorDefine(u, o, "Generator"), regeneratorDefine(u, n, function () {
    return this;
  }), regeneratorDefine(u, "toString", function () {
    return "[object Generator]";
  }), (module.exports = _regenerator = function _regenerator() {
    return {
      w: i,
      m: f
    };
  }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
}
module.exports = _regenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/regeneratorAsync.js":
/*!******************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/regeneratorAsync.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js");
function _regeneratorAsync(n, e, r, t, o) {
  var a = regeneratorAsyncGen(n, e, r, t, o);
  return a.next().then(function (n) {
    return n.done ? n.value : a.next();
  });
}
module.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var regenerator = __webpack_require__(/*! ./regenerator.js */ "../node_modules/@babel/runtime/helpers/regenerator.js");
var regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js");
function _regeneratorAsyncGen(r, e, t, o, n) {
  return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);
}
module.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js":
/*!**************************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js ***!
  \**************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "../node_modules/@babel/runtime/helpers/OverloadYield.js");
var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js");
function AsyncIterator(t, e) {
  function n(r, o, i, f) {
    try {
      var c = t[r](o),
        u = c.value;
      return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {
        n("next", t, i, f);
      }, function (t) {
        n("throw", t, i, f);
      }) : e.resolve(u).then(function (t) {
        c.value = t, i(c);
      }, function (t) {
        return n("throw", t, i, f);
      });
    } catch (t) {
      f(t);
    }
  }
  var r;
  this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function () {
    return this;
  })), regeneratorDefine(this, "_invoke", function (t, o, i) {
    function f() {
      return new e(function (e, r) {
        n(t, i, e, r);
      });
    }
    return r = r ? r.then(f, f) : f();
  }, !0);
}
module.exports = AsyncIterator, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js":
/*!*******************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/regeneratorDefine.js ***!
  \*******************************************************************/
/***/ ((module) => {

function _regeneratorDefine(e, r, n, t) {
  var i = Object.defineProperty;
  try {
    i({}, "", {});
  } catch (e) {
    i = 0;
  }
  module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {
    function o(r, n) {
      _regeneratorDefine(e, r, function (e) {
        return this._invoke(r, n, e);
      });
    }
    r ? i ? i(e, r, {
      value: n,
      enumerable: !t,
      configurable: !t,
      writable: !t
    }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
  }, module.exports.__esModule = true, module.exports["default"] = module.exports, _regeneratorDefine(e, r, n, t);
}
module.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/regeneratorKeys.js":
/*!*****************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/regeneratorKeys.js ***!
  \*****************************************************************/
/***/ ((module) => {

function _regeneratorKeys(e) {
  var n = Object(e),
    r = [];
  for (var t in n) r.unshift(t);
  return function e() {
    for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;
    return e.done = !0, e;
  };
}
module.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js":
/*!********************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "../node_modules/@babel/runtime/helpers/OverloadYield.js");
var regenerator = __webpack_require__(/*! ./regenerator.js */ "../node_modules/@babel/runtime/helpers/regenerator.js");
var regeneratorAsync = __webpack_require__(/*! ./regeneratorAsync.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsync.js");
var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js");
var regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js");
var regeneratorKeys = __webpack_require__(/*! ./regeneratorKeys.js */ "../node_modules/@babel/runtime/helpers/regeneratorKeys.js");
var regeneratorValues = __webpack_require__(/*! ./regeneratorValues.js */ "../node_modules/@babel/runtime/helpers/regeneratorValues.js");
function _regeneratorRuntime() {
  "use strict";

  var r = regenerator(),
    e = r.m(_regeneratorRuntime),
    t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;
  function n(r) {
    var e = "function" == typeof r && r.constructor;
    return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name));
  }
  var o = {
    "throw": 1,
    "return": 2,
    "break": 3,
    "continue": 3
  };
  function a(r) {
    var e, t;
    return function (n) {
      e || (e = {
        stop: function stop() {
          return t(n.a, 2);
        },
        "catch": function _catch() {
          return n.v;
        },
        abrupt: function abrupt(r, e) {
          return t(n.a, o[r], e);
        },
        delegateYield: function delegateYield(r, o, a) {
          return e.resultName = o, t(n.d, regeneratorValues(r), a);
        },
        finish: function finish(r) {
          return t(n.f, r);
        }
      }, t = function t(r, _t, o) {
        n.p = e.prev, n.n = e.next;
        try {
          return r(_t, o);
        } finally {
          e.next = n.n;
        }
      }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;
      try {
        return r.call(this, e);
      } finally {
        n.p = e.prev, n.n = e.next;
      }
    };
  }
  return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
    return {
      wrap: function wrap(e, t, n, o) {
        return r.w(a(e), t, n, o && o.reverse());
      },
      isGeneratorFunction: n,
      mark: r.m,
      awrap: function awrap(r, e) {
        return new OverloadYield(r, e);
      },
      AsyncIterator: regeneratorAsyncIterator,
      async: function async(r, e, t, o, u) {
        return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);
      },
      keys: regeneratorKeys,
      values: regeneratorValues
    };
  }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
}
module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/regeneratorValues.js":
/*!*******************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/regeneratorValues.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
function _regeneratorValues(e) {
  if (null != e) {
    var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"],
      r = 0;
    if (t) return t.call(e);
    if ("function" == typeof e.next) return e;
    if (!isNaN(e.length)) return {
      next: function next() {
        return e && r >= e.length && (e = void 0), {
          value: e && e[r++],
          done: !e
        };
      }
    };
  }
  throw new TypeError(_typeof(e) + " is not iterable");
}
module.exports = _regeneratorValues, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js":
/*!****************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
  \****************************************************************/
/***/ ((module) => {

function _setPrototypeOf(t, e) {
  return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
    return t.__proto__ = e, t;
  }, module.exports.__esModule = true, module.exports["default"] = module.exports, _setPrototypeOf(t, e);
}
module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/slicedToArray.js":
/*!***************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/slicedToArray.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js");
var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");
var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime/helpers/nonIterableRest.js");
function _slicedToArray(r, e) {
  return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();
}
module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/superPropBase.js":
/*!***************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/superPropBase.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js");
function _superPropBase(t, o) {
  for (; !{}.hasOwnProperty.call(t, o) && null !== (t = getPrototypeOf(t)););
  return t;
}
module.exports = _superPropBase, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/toConsumableArray.js":
/*!*******************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/toConsumableArray.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js");
var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ "../node_modules/@babel/runtime/helpers/iterableToArray.js");
var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ "../node_modules/@babel/runtime/helpers/nonIterableSpread.js");
function _toConsumableArray(r) {
  return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();
}
module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
/*!*************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
function toPrimitive(t, r) {
  if ("object" != _typeof(t) || !t) return t;
  var e = t[Symbol.toPrimitive];
  if (void 0 !== e) {
    var i = e.call(t, r || "default");
    if ("object" != _typeof(i)) return i;
    throw new TypeError("@@toPrimitive must return a primitive value.");
  }
  return ("string" === r ? String : Number)(t);
}
module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
/*!***************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
function toPropertyKey(t) {
  var i = toPrimitive(t, "string");
  return "symbol" == _typeof(i) ? i : i + "";
}
module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/typeof.js":
/*!********************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
  \********************************************************/
/***/ ((module) => {

function _typeof(o) {
  "@babel/helpers - typeof";

  return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
    return typeof o;
  } : function (o) {
    return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
  }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o);
}
module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
/*!****************************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
  \****************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
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;
  }
}
module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js":
/*!********************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "../node_modules/@babel/runtime/helpers/OverloadYield.js");
function _wrapAsyncGenerator(e) {
  return function () {
    return new AsyncGenerator(e.apply(this, arguments));
  };
}
function AsyncGenerator(e) {
  var r, t;
  function resume(r, t) {
    try {
      var n = e[r](t),
        o = n.value,
        u = o instanceof OverloadYield;
      Promise.resolve(u ? o.v : o).then(function (t) {
        if (u) {
          var i = "return" === r ? "return" : "next";
          if (!o.k || t.done) return resume(i, t);
          t = e[i](t).value;
        }
        settle(n.done ? "return" : "normal", t);
      }, function (e) {
        resume("throw", e);
      });
    } catch (e) {
      settle("throw", e);
    }
  }
  function settle(e, n) {
    switch (e) {
      case "return":
        r.resolve({
          value: n,
          done: !0
        });
        break;
      case "throw":
        r.reject(n);
        break;
      default:
        r.resolve({
          value: n,
          done: !1
        });
    }
    (r = r.next) ? resume(r.key, r.arg) : t = null;
  }
  this._invoke = function (e, n) {
    return new Promise(function (o, u) {
      var i = {
        key: e,
        arg: n,
        resolve: o,
        reject: u,
        next: null
      };
      t ? t = t.next = i : (r = t = i, resume(e, n));
    });
  }, "function" != typeof e["return"] && (this["return"] = void 0);
}
AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function () {
  return this;
}, AsyncGenerator.prototype.next = function (e) {
  return this._invoke("next", e);
}, AsyncGenerator.prototype["throw"] = function (e) {
  return this._invoke("throw", e);
}, AsyncGenerator.prototype["return"] = function (e) {
  return this._invoke("return", e);
};
module.exports = _wrapAsyncGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/wrapNativeSuper.js":
/*!*****************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/wrapNativeSuper.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js");
var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js");
var isNativeFunction = __webpack_require__(/*! ./isNativeFunction.js */ "../node_modules/@babel/runtime/helpers/isNativeFunction.js");
var construct = __webpack_require__(/*! ./construct.js */ "../node_modules/@babel/runtime/helpers/construct.js");
function _wrapNativeSuper(t) {
  var r = "function" == typeof Map ? new Map() : void 0;
  return module.exports = _wrapNativeSuper = function _wrapNativeSuper(t) {
    if (null === t || !isNativeFunction(t)) return t;
    if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function");
    if (void 0 !== r) {
      if (r.has(t)) return r.get(t);
      r.set(t, Wrapper);
    }
    function Wrapper() {
      return construct(t, arguments, getPrototypeOf(this).constructor);
    }
    return Wrapper.prototype = Object.create(t.prototype, {
      constructor: {
        value: Wrapper,
        enumerable: !1,
        writable: !0,
        configurable: !0
      }
    }), setPrototypeOf(Wrapper, t);
  }, module.exports.__esModule = true, module.exports["default"] = module.exports, _wrapNativeSuper(t);
}
module.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports["default"] = module.exports;

/***/ }),

/***/ "../node_modules/@babel/runtime/regenerator/index.js":
/*!***********************************************************!*\
  !*** ../node_modules/@babel/runtime/regenerator/index.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// TODO(Babel 8): Remove this file.

var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();
module.exports = runtime;

// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
try {
  regeneratorRuntime = runtime;
} catch (accidentalStrictMode) {
  if (typeof globalThis === "object") {
    globalThis.regeneratorRuntime = runtime;
  } else {
    Function("r", "regeneratorRuntime = r")(runtime);
  }
}


/***/ }),

/***/ "../node_modules/dompurify/dist/purify.cjs.js":
/*!****************************************************!*\
  !*** ../node_modules/dompurify/dist/purify.cjs.js ***!
  \****************************************************/
/***/ ((module) => {

"use strict";
/*! @license DOMPurify 3.3.0 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.0/LICENSE */



const {
  entries,
  setPrototypeOf,
  isFrozen,
  getPrototypeOf,
  getOwnPropertyDescriptor
} = Object;
let {
  freeze,
  seal,
  create
} = Object; // eslint-disable-line import/no-mutable-exports
let {
  apply,
  construct
} = typeof Reflect !== 'undefined' && Reflect;
if (!freeze) {
  freeze = function freeze(x) {
    return x;
  };
}
if (!seal) {
  seal = function seal(x) {
    return x;
  };
}
if (!apply) {
  apply = function apply(func, thisArg) {
    for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
      args[_key - 2] = arguments[_key];
    }
    return func.apply(thisArg, args);
  };
}
if (!construct) {
  construct = function construct(Func) {
    for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
      args[_key2 - 1] = arguments[_key2];
    }
    return new Func(...args);
  };
}
const arrayForEach = unapply(Array.prototype.forEach);
const arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);
const arrayPop = unapply(Array.prototype.pop);
const arrayPush = unapply(Array.prototype.push);
const arraySplice = unapply(Array.prototype.splice);
const stringToLowerCase = unapply(String.prototype.toLowerCase);
const stringToString = unapply(String.prototype.toString);
const stringMatch = unapply(String.prototype.match);
const stringReplace = unapply(String.prototype.replace);
const stringIndexOf = unapply(String.prototype.indexOf);
const stringTrim = unapply(String.prototype.trim);
const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);
const regExpTest = unapply(RegExp.prototype.test);
const typeErrorCreate = unconstruct(TypeError);
/**
 * Creates a new function that calls the given function with a specified thisArg and arguments.
 *
 * @param func - The function to be wrapped and called.
 * @returns A new function that calls the given function with a specified thisArg and arguments.
 */
function unapply(func) {
  return function (thisArg) {
    if (thisArg instanceof RegExp) {
      thisArg.lastIndex = 0;
    }
    for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
      args[_key3 - 1] = arguments[_key3];
    }
    return apply(func, thisArg, args);
  };
}
/**
 * Creates a new function that constructs an instance of the given constructor function with the provided arguments.
 *
 * @param func - The constructor function to be wrapped and called.
 * @returns A new function that constructs an instance of the given constructor function with the provided arguments.
 */
function unconstruct(Func) {
  return function () {
    for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
      args[_key4] = arguments[_key4];
    }
    return construct(Func, args);
  };
}
/**
 * Add properties to a lookup table
 *
 * @param set - The set to which elements will be added.
 * @param array - The array containing elements to be added to the set.
 * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.
 * @returns The modified set with added elements.
 */
function addToSet(set, array) {
  let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;
  if (setPrototypeOf) {
    // Make 'in' and truthy checks like Boolean(set.constructor)
    // independent of any properties defined on Object.prototype.
    // Prevent prototype setters from intercepting set as a this value.
    setPrototypeOf(set, null);
  }
  let l = array.length;
  while (l--) {
    let element = array[l];
    if (typeof element === 'string') {
      const lcElement = transformCaseFunc(element);
      if (lcElement !== element) {
        // Config presets (e.g. tags.js, attrs.js) are immutable.
        if (!isFrozen(array)) {
          array[l] = lcElement;
        }
        element = lcElement;
      }
    }
    set[element] = true;
  }
  return set;
}
/**
 * Clean up an array to harden against CSPP
 *
 * @param array - The array to be cleaned.
 * @returns The cleaned version of the array
 */
function cleanArray(array) {
  for (let index = 0; index < array.length; index++) {
    const isPropertyExist = objectHasOwnProperty(array, index);
    if (!isPropertyExist) {
      array[index] = null;
    }
  }
  return array;
}
/**
 * Shallow clone an object
 *
 * @param object - The object to be cloned.
 * @returns A new object that copies the original.
 */
function clone(object) {
  const newObject = create(null);
  for (const [property, value] of entries(object)) {
    const isPropertyExist = objectHasOwnProperty(object, property);
    if (isPropertyExist) {
      if (Array.isArray(value)) {
        newObject[property] = cleanArray(value);
      } else if (value && typeof value === 'object' && value.constructor === Object) {
        newObject[property] = clone(value);
      } else {
        newObject[property] = value;
      }
    }
  }
  return newObject;
}
/**
 * This method automatically checks if the prop is function or getter and behaves accordingly.
 *
 * @param object - The object to look up the getter function in its prototype chain.
 * @param prop - The property name for which to find the getter function.
 * @returns The getter function found in the prototype chain or a fallback function.
 */
function lookupGetter(object, prop) {
  while (object !== null) {
    const desc = getOwnPropertyDescriptor(object, prop);
    if (desc) {
      if (desc.get) {
        return unapply(desc.get);
      }
      if (typeof desc.value === 'function') {
        return unapply(desc.value);
      }
    }
    object = getPrototypeOf(object);
  }
  function fallbackValue() {
    return null;
  }
  return fallbackValue;
}

const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'search', 'section', 'select', 'shadow', 'slot', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);
const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'enterkeyhint', 'exportparts', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'inputmode', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'part', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);
const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);
// List of SVG elements that are disallowed by default.
// We still need to know them so that we can do namespace
// checks properly in case one wants to add them to
// allow-list.
const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);
const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);
// Similarly to SVG, we want to know all MathML elements,
// even those that we disallow by default.
const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);
const text = freeze(['#text']);

const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'exportparts', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inert', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'part', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);
const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'mask-type', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);
const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);
const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);

// eslint-disable-next-line unicorn/better-regex
const MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode
const ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm);
const TMPLIT_EXPR = seal(/\$\{[\w\W]*/gm); // eslint-disable-line unicorn/better-regex
const DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]+$/); // eslint-disable-line no-useless-escape
const ARIA_ATTR = seal(/^aria-[\-\w]+$/); // eslint-disable-line no-useless-escape
const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i // eslint-disable-line no-useless-escape
);
const IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i);
const ATTR_WHITESPACE = seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g // eslint-disable-line no-control-regex
);
const DOCTYPE_NAME = seal(/^html$/i);
const CUSTOM_ELEMENT = seal(/^[a-z][.\w]*(-[.\w]+)+$/i);

var EXPRESSIONS = /*#__PURE__*/Object.freeze({
  __proto__: null,
  ARIA_ATTR: ARIA_ATTR,
  ATTR_WHITESPACE: ATTR_WHITESPACE,
  CUSTOM_ELEMENT: CUSTOM_ELEMENT,
  DATA_ATTR: DATA_ATTR,
  DOCTYPE_NAME: DOCTYPE_NAME,
  ERB_EXPR: ERB_EXPR,
  IS_ALLOWED_URI: IS_ALLOWED_URI,
  IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,
  MUSTACHE_EXPR: MUSTACHE_EXPR,
  TMPLIT_EXPR: TMPLIT_EXPR
});

/* eslint-disable @typescript-eslint/indent */
// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType
const NODE_TYPE = {
  element: 1,
  attribute: 2,
  text: 3,
  cdataSection: 4,
  entityReference: 5,
  // Deprecated
  entityNode: 6,
  // Deprecated
  progressingInstruction: 7,
  comment: 8,
  document: 9,
  documentType: 10,
  documentFragment: 11,
  notation: 12 // Deprecated
};
const getGlobal = function getGlobal() {
  return typeof window === 'undefined' ? null : window;
};
/**
 * Creates a no-op policy for internal use only.
 * Don't export this function outside this module!
 * @param trustedTypes The policy factory.
 * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).
 * @return The policy created (or null, if Trusted Types
 * are not supported or creating the policy failed).
 */
const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {
  if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {
    return null;
  }
  // Allow the callers to control the unique policy name
  // by adding a data-tt-policy-suffix to the script element with the DOMPurify.
  // Policy creation with duplicate names throws in Trusted Types.
  let suffix = null;
  const ATTR_NAME = 'data-tt-policy-suffix';
  if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {
    suffix = purifyHostElement.getAttribute(ATTR_NAME);
  }
  const policyName = 'dompurify' + (suffix ? '#' + suffix : '');
  try {
    return trustedTypes.createPolicy(policyName, {
      createHTML(html) {
        return html;
      },
      createScriptURL(scriptUrl) {
        return scriptUrl;
      }
    });
  } catch (_) {
    // Policy creation failed (most likely another DOMPurify script has
    // already run). Skip creating the policy, as this will only cause errors
    // if TT are enforced.
    console.warn('TrustedTypes policy ' + policyName + ' could not be created.');
    return null;
  }
};
const _createHooksMap = function _createHooksMap() {
  return {
    afterSanitizeAttributes: [],
    afterSanitizeElements: [],
    afterSanitizeShadowDOM: [],
    beforeSanitizeAttributes: [],
    beforeSanitizeElements: [],
    beforeSanitizeShadowDOM: [],
    uponSanitizeAttribute: [],
    uponSanitizeElement: [],
    uponSanitizeShadowNode: []
  };
};
function createDOMPurify() {
  let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
  const DOMPurify = root => createDOMPurify(root);
  DOMPurify.version = '3.3.0';
  DOMPurify.removed = [];
  if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
    // Not running in a browser, provide a factory function
    // so that you can pass your own Window
    DOMPurify.isSupported = false;
    return DOMPurify;
  }
  let {
    document
  } = window;
  const originalDocument = document;
  const currentScript = originalDocument.currentScript;
  const {
    DocumentFragment,
    HTMLTemplateElement,
    Node,
    Element,
    NodeFilter,
    NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,
    HTMLFormElement,
    DOMParser,
    trustedTypes
  } = window;
  const ElementPrototype = Element.prototype;
  const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');
  const remove = lookupGetter(ElementPrototype, 'remove');
  const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');
  const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');
  const getParentNode = lookupGetter(ElementPrototype, 'parentNode');
  // As per issue #47, the web-components registry is inherited by a
  // new document created via createHTMLDocument. As per the spec
  // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)
  // a new empty registry is used when creating a template contents owner
  // document, so we use that as our parent document to ensure nothing
  // is inherited.
  if (typeof HTMLTemplateElement === 'function') {
    const template = document.createElement('template');
    if (template.content && template.content.ownerDocument) {
      document = template.content.ownerDocument;
    }
  }
  let trustedTypesPolicy;
  let emptyHTML = '';
  const {
    implementation,
    createNodeIterator,
    createDocumentFragment,
    getElementsByTagName
  } = document;
  const {
    importNode
  } = originalDocument;
  let hooks = _createHooksMap();
  /**
   * Expose whether this browser supports running the full DOMPurify.
   */
  DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;
  const {
    MUSTACHE_EXPR,
    ERB_EXPR,
    TMPLIT_EXPR,
    DATA_ATTR,
    ARIA_ATTR,
    IS_SCRIPT_OR_DATA,
    ATTR_WHITESPACE,
    CUSTOM_ELEMENT
  } = EXPRESSIONS;
  let {
    IS_ALLOWED_URI: IS_ALLOWED_URI$1
  } = EXPRESSIONS;
  /**
   * We consider the elements and attributes below to be safe. Ideally
   * don't add any new ones but feel free to remove unwanted ones.
   */
  /* allowed element names */
  let ALLOWED_TAGS = null;
  const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);
  /* Allowed attribute names */
  let ALLOWED_ATTR = null;
  const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);
  /*
   * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.
   * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)
   * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)
   * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.
   */
  let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {
    tagNameCheck: {
      writable: true,
      configurable: false,
      enumerable: true,
      value: null
    },
    attributeNameCheck: {
      writable: true,
      configurable: false,
      enumerable: true,
      value: null
    },
    allowCustomizedBuiltInElements: {
      writable: true,
      configurable: false,
      enumerable: true,
      value: false
    }
  }));
  /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */
  let FORBID_TAGS = null;
  /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */
  let FORBID_ATTR = null;
  /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */
  const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {
    tagCheck: {
      writable: true,
      configurable: false,
      enumerable: true,
      value: null
    },
    attributeCheck: {
      writable: true,
      configurable: false,
      enumerable: true,
      value: null
    }
  }));
  /* Decide if ARIA attributes are okay */
  let ALLOW_ARIA_ATTR = true;
  /* Decide if custom data attributes are okay */
  let ALLOW_DATA_ATTR = true;
  /* Decide if unknown protocols are okay */
  let ALLOW_UNKNOWN_PROTOCOLS = false;
  /* Decide if self-closing tags in attributes are allowed.
   * Usually removed due to a mXSS issue in jQuery 3.0 */
  let ALLOW_SELF_CLOSE_IN_ATTR = true;
  /* Output should be safe for common template engines.
   * This means, DOMPurify removes data attributes, mustaches and ERB
   */
  let SAFE_FOR_TEMPLATES = false;
  /* Output should be safe even for XML used within HTML and alike.
   * This means, DOMPurify removes comments when containing risky content.
   */
  let SAFE_FOR_XML = true;
  /* Decide if document with <html>... should be returned */
  let WHOLE_DOCUMENT = false;
  /* Track whether config is already set on this instance of DOMPurify. */
  let SET_CONFIG = false;
  /* Decide if all elements (e.g. style, script) must be children of
   * document.body. By default, browsers might move them to document.head */
  let FORCE_BODY = false;
  /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html
   * string (or a TrustedHTML object if Trusted Types are supported).
   * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead
   */
  let RETURN_DOM = false;
  /* Decide if a DOM `DocumentFragment` should be returned, instead of a html
   * string  (or a TrustedHTML object if Trusted Types are supported) */
  let RETURN_DOM_FRAGMENT = false;
  /* Try to return a Trusted Type object instead of a string, return a string in
   * case Trusted Types are not supported  */
  let RETURN_TRUSTED_TYPE = false;
  /* Output should be free from DOM clobbering attacks?
   * This sanitizes markups named with colliding, clobberable built-in DOM APIs.
   */
  let SANITIZE_DOM = true;
  /* Achieve full DOM Clobbering protection by isolating the namespace of named
   * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.
   *
   * HTML/DOM spec rules that enable DOM Clobbering:
   *   - Named Access on Window (§7.3.3)
   *   - DOM Tree Accessors (§3.1.5)
   *   - Form Element Parent-Child Relations (§4.10.3)
   *   - Iframe srcdoc / Nested WindowProxies (§4.8.5)
   *   - HTMLCollection (§4.2.10.2)
   *
   * Namespace isolation is implemented by prefixing `id` and `name` attributes
   * with a constant string, i.e., `user-content-`
   */
  let SANITIZE_NAMED_PROPS = false;
  const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';
  /* Keep element content when removing element? */
  let KEEP_CONTENT = true;
  /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead
   * of importing it into a new Document and returning a sanitized copy */
  let IN_PLACE = false;
  /* Allow usage of profiles like html, svg and mathMl */
  let USE_PROFILES = {};
  /* Tags to ignore content of when KEEP_CONTENT is true */
  let FORBID_CONTENTS = null;
  const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);
  /* Tags that are safe for data: URIs */
  let DATA_URI_TAGS = null;
  const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);
  /* Attributes safe for values like "javascript:" */
  let URI_SAFE_ATTRIBUTES = null;
  const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);
  const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';
  const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';
  const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';
  /* Document namespace */
  let NAMESPACE = HTML_NAMESPACE;
  let IS_EMPTY_INPUT = false;
  /* Allowed XHTML+XML namespaces */
  let ALLOWED_NAMESPACES = null;
  const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);
  let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);
  let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);
  // Certain elements are allowed in both SVG and HTML
  // namespace. We need to specify them explicitly
  // so that they don't get erroneously deleted from
  // HTML namespace.
  const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);
  /* Parsing of strict XHTML documents */
  let PARSER_MEDIA_TYPE = null;
  const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];
  const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';
  let transformCaseFunc = null;
  /* Keep a reference to config to pass to hooks */
  let CONFIG = null;
  /* Ideally, do not touch anything below this line */
  /* ______________________________________________ */
  const formElement = document.createElement('form');
  const isRegexOrFunction = function isRegexOrFunction(testValue) {
    return testValue instanceof RegExp || testValue instanceof Function;
  };
  /**
   * _parseConfig
   *
   * @param cfg optional config literal
   */
  // eslint-disable-next-line complexity
  const _parseConfig = function _parseConfig() {
    let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    if (CONFIG && CONFIG === cfg) {
      return;
    }
    /* Shield configuration object from tampering */
    if (!cfg || typeof cfg !== 'object') {
      cfg = {};
    }
    /* Shield configuration object from prototype pollution */
    cfg = clone(cfg);
    PARSER_MEDIA_TYPE =
    // eslint-disable-next-line unicorn/prefer-includes
    SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;
    // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.
    transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;
    /* Set configuration parameters */
    ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;
    ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;
    ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;
    URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;
    DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;
    FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;
    FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : clone({});
    FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : clone({});
    USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;
    ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true
    ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true
    ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false
    ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true
    SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false
    SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true
    WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false
    RETURN_DOM = cfg.RETURN_DOM || false; // Default false
    RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false
    RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false
    FORCE_BODY = cfg.FORCE_BODY || false; // Default false
    SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true
    SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false
    KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true
    IN_PLACE = cfg.IN_PLACE || false; // Default false
    IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;
    NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;
    MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;
    HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;
    CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};
    if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {
      CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;
    }
    if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {
      CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;
    }
    if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {
      CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;
    }
    if (SAFE_FOR_TEMPLATES) {
      ALLOW_DATA_ATTR = false;
    }
    if (RETURN_DOM_FRAGMENT) {
      RETURN_DOM = true;
    }
    /* Parse profile info */
    if (USE_PROFILES) {
      ALLOWED_TAGS = addToSet({}, text);
      ALLOWED_ATTR = [];
      if (USE_PROFILES.html === true) {
        addToSet(ALLOWED_TAGS, html$1);
        addToSet(ALLOWED_ATTR, html);
      }
      if (USE_PROFILES.svg === true) {
        addToSet(ALLOWED_TAGS, svg$1);
        addToSet(ALLOWED_ATTR, svg);
        addToSet(ALLOWED_ATTR, xml);
      }
      if (USE_PROFILES.svgFilters === true) {
        addToSet(ALLOWED_TAGS, svgFilters);
        addToSet(ALLOWED_ATTR, svg);
        addToSet(ALLOWED_ATTR, xml);
      }
      if (USE_PROFILES.mathMl === true) {
        addToSet(ALLOWED_TAGS, mathMl$1);
        addToSet(ALLOWED_ATTR, mathMl);
        addToSet(ALLOWED_ATTR, xml);
      }
    }
    /* Merge configuration parameters */
    if (cfg.ADD_TAGS) {
      if (typeof cfg.ADD_TAGS === 'function') {
        EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;
      } else {
        if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
          ALLOWED_TAGS = clone(ALLOWED_TAGS);
        }
        addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
      }
    }
    if (cfg.ADD_ATTR) {
      if (typeof cfg.ADD_ATTR === 'function') {
        EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;
      } else {
        if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
          ALLOWED_ATTR = clone(ALLOWED_ATTR);
        }
        addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
      }
    }
    if (cfg.ADD_URI_SAFE_ATTR) {
      addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
    }
    if (cfg.FORBID_CONTENTS) {
      if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
        FORBID_CONTENTS = clone(FORBID_CONTENTS);
      }
      addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
    }
    /* Add #text in case KEEP_CONTENT is set to true */
    if (KEEP_CONTENT) {
      ALLOWED_TAGS['#text'] = true;
    }
    /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */
    if (WHOLE_DOCUMENT) {
      addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);
    }
    /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */
    if (ALLOWED_TAGS.table) {
      addToSet(ALLOWED_TAGS, ['tbody']);
      delete FORBID_TAGS.tbody;
    }
    if (cfg.TRUSTED_TYPES_POLICY) {
      if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {
        throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');
      }
      if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {
        throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
      }
      // Overwrite existing TrustedTypes policy.
      trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;
      // Sign local variables required by `sanitize`.
      emptyHTML = trustedTypesPolicy.createHTML('');
    } else {
      // Uninitialized policy, attempt to initialize the internal dompurify policy.
      if (trustedTypesPolicy === undefined) {
        trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);
      }
      // If creating the internal policy succeeded sign internal variables.
      if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {
        emptyHTML = trustedTypesPolicy.createHTML('');
      }
    }
    // Prevent further manipulation of configuration.
    // Not available in IE8, Safari 5, etc.
    if (freeze) {
      freeze(cfg);
    }
    CONFIG = cfg;
  };
  /* Keep track of all possible SVG and MathML tags
   * so that we can perform the namespace checks
   * correctly. */
  const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);
  const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);
  /**
   * @param element a DOM element whose namespace is being checked
   * @returns Return false if the element has a
   *  namespace that a spec-compliant parser would never
   *  return. Return true otherwise.
   */
  const _checkValidNamespace = function _checkValidNamespace(element) {
    let parent = getParentNode(element);
    // In JSDOM, if we're inside shadow DOM, then parentNode
    // can be null. We just simulate parent in this case.
    if (!parent || !parent.tagName) {
      parent = {
        namespaceURI: NAMESPACE,
        tagName: 'template'
      };
    }
    const tagName = stringToLowerCase(element.tagName);
    const parentTagName = stringToLowerCase(parent.tagName);
    if (!ALLOWED_NAMESPACES[element.namespaceURI]) {
      return false;
    }
    if (element.namespaceURI === SVG_NAMESPACE) {
      // The only way to switch from HTML namespace to SVG
      // is via <svg>. If it happens via any other tag, then
      // it should be killed.
      if (parent.namespaceURI === HTML_NAMESPACE) {
        return tagName === 'svg';
      }
      // The only way to switch from MathML to SVG is via`
      // svg if parent is either <annotation-xml> or MathML
      // text integration points.
      if (parent.namespaceURI === MATHML_NAMESPACE) {
        return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
      }
      // We only allow elements that are defined in SVG
      // spec. All others are disallowed in SVG namespace.
      return Boolean(ALL_SVG_TAGS[tagName]);
    }
    if (element.namespaceURI === MATHML_NAMESPACE) {
      // The only way to switch from HTML namespace to MathML
      // is via <math>. If it happens via any other tag, then
      // it should be killed.
      if (parent.namespaceURI === HTML_NAMESPACE) {
        return tagName === 'math';
      }
      // The only way to switch from SVG to MathML is via
      // <math> and HTML integration points
      if (parent.namespaceURI === SVG_NAMESPACE) {
        return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];
      }
      // We only allow elements that are defined in MathML
      // spec. All others are disallowed in MathML namespace.
      return Boolean(ALL_MATHML_TAGS[tagName]);
    }
    if (element.namespaceURI === HTML_NAMESPACE) {
      // The only way to switch from SVG to HTML is via
      // HTML integration points, and from MathML to HTML
      // is via MathML text integration points
      if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {
        return false;
      }
      if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {
        return false;
      }
      // We disallow tags that are specific for MathML
      // or SVG and should never appear in HTML namespace
      return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
    }
    // For XHTML and XML documents that support custom namespaces
    if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {
      return true;
    }
    // The code should never reach this place (this means
    // that the element somehow got namespace that is not
    // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).
    // Return false just in case.
    return false;
  };
  /**
   * _forceRemove
   *
   * @param node a DOM node
   */
  const _forceRemove = function _forceRemove(node) {
    arrayPush(DOMPurify.removed, {
      element: node
    });
    try {
      // eslint-disable-next-line unicorn/prefer-dom-node-remove
      getParentNode(node).removeChild(node);
    } catch (_) {
      remove(node);
    }
  };
  /**
   * _removeAttribute
   *
   * @param name an Attribute name
   * @param element a DOM node
   */
  const _removeAttribute = function _removeAttribute(name, element) {
    try {
      arrayPush(DOMPurify.removed, {
        attribute: element.getAttributeNode(name),
        from: element
      });
    } catch (_) {
      arrayPush(DOMPurify.removed, {
        attribute: null,
        from: element
      });
    }
    element.removeAttribute(name);
    // We void attribute values for unremovable "is" attributes
    if (name === 'is') {
      if (RETURN_DOM || RETURN_DOM_FRAGMENT) {
        try {
          _forceRemove(element);
        } catch (_) {}
      } else {
        try {
          element.setAttribute(name, '');
        } catch (_) {}
      }
    }
  };
  /**
   * _initDocument
   *
   * @param dirty - a string of dirty markup
   * @return a DOM, filled with the dirty markup
   */
  const _initDocument = function _initDocument(dirty) {
    /* Create a HTML document */
    let doc = null;
    let leadingWhitespace = null;
    if (FORCE_BODY) {
      dirty = '<remove></remove>' + dirty;
    } else {
      /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */
      const matches = stringMatch(dirty, /^[\r\n\t ]+/);
      leadingWhitespace = matches && matches[0];
    }
    if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {
      // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)
      dirty = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + dirty + '</body></html>';
    }
    const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;
    /*
     * Use the DOMParser API by default, fallback later if needs be
     * DOMParser not work for svg when has multiple root element.
     */
    if (NAMESPACE === HTML_NAMESPACE) {
      try {
        doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);
      } catch (_) {}
    }
    /* Use createHTMLDocument in case DOMParser is not available */
    if (!doc || !doc.documentElement) {
      doc = implementation.createDocument(NAMESPACE, 'template', null);
      try {
        doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;
      } catch (_) {
        // Syntax error if dirtyPayload is invalid xml
      }
    }
    const body = doc.body || doc.documentElement;
    if (dirty && leadingWhitespace) {
      body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);
    }
    /* Work on whole document or just its body */
    if (NAMESPACE === HTML_NAMESPACE) {
      return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];
    }
    return WHOLE_DOCUMENT ? doc.documentElement : body;
  };
  /**
   * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.
   *
   * @param root The root element or node to start traversing on.
   * @return The created NodeIterator
   */
  const _createNodeIterator = function _createNodeIterator(root) {
    return createNodeIterator.call(root.ownerDocument || root, root,
    // eslint-disable-next-line no-bitwise
    NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);
  };
  /**
   * _isClobbered
   *
   * @param element element to check for clobbering attacks
   * @return true if clobbered, false if safe
   */
  const _isClobbered = function _isClobbered(element) {
    return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');
  };
  /**
   * Checks whether the given object is a DOM node.
   *
   * @param value object to check whether it's a DOM node
   * @return true is object is a DOM node
   */
  const _isNode = function _isNode(value) {
    return typeof Node === 'function' && value instanceof Node;
  };
  function _executeHooks(hooks, currentNode, data) {
    arrayForEach(hooks, hook => {
      hook.call(DOMPurify, currentNode, data, CONFIG);
    });
  }
  /**
   * _sanitizeElements
   *
   * @protect nodeName
   * @protect textContent
   * @protect removeChild
   * @param currentNode to check for permission to exist
   * @return true if node was killed, false if left alive
   */
  const _sanitizeElements = function _sanitizeElements(currentNode) {
    let content = null;
    /* Execute a hook if present */
    _executeHooks(hooks.beforeSanitizeElements, currentNode, null);
    /* Check if element is clobbered or can clobber */
    if (_isClobbered(currentNode)) {
      _forceRemove(currentNode);
      return true;
    }
    /* Now let's check the element's type and name */
    const tagName = transformCaseFunc(currentNode.nodeName);
    /* Execute a hook if present */
    _executeHooks(hooks.uponSanitizeElement, currentNode, {
      tagName,
      allowedTags: ALLOWED_TAGS
    });
    /* Detect mXSS attempts abusing namespace confusion */
    if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\w!]/g, currentNode.textContent)) {
      _forceRemove(currentNode);
      return true;
    }
    /* Remove any occurrence of processing instructions */
    if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {
      _forceRemove(currentNode);
      return true;
    }
    /* Remove any kind of possibly harmful comments */
    if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\w]/g, currentNode.data)) {
      _forceRemove(currentNode);
      return true;
    }
    /* Remove element if anything forbids its presence */
    if (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName])) {
      /* Check if we have a custom element to handle */
      if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
        if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {
          return false;
        }
        if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {
          return false;
        }
      }
      /* Keep content except for bad-listed elements */
      if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
        const parentNode = getParentNode(currentNode) || currentNode.parentNode;
        const childNodes = getChildNodes(currentNode) || currentNode.childNodes;
        if (childNodes && parentNode) {
          const childCount = childNodes.length;
          for (let i = childCount - 1; i >= 0; --i) {
            const childClone = cloneNode(childNodes[i], true);
            childClone.__removalCount = (currentNode.__removalCount || 0) + 1;
            parentNode.insertBefore(childClone, getNextSibling(currentNode));
          }
        }
      }
      _forceRemove(currentNode);
      return true;
    }
    /* Check whether element has a valid namespace */
    if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {
      _forceRemove(currentNode);
      return true;
    }
    /* Make sure that older browsers don't get fallback-tag mXSS */
    if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\/no(script|embed|frames)/i, currentNode.innerHTML)) {
      _forceRemove(currentNode);
      return true;
    }
    /* Sanitize element content to be template-safe */
    if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {
      /* Get the element's text content */
      content = currentNode.textContent;
      arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {
        content = stringReplace(content, expr, ' ');
      });
      if (currentNode.textContent !== content) {
        arrayPush(DOMPurify.removed, {
          element: currentNode.cloneNode()
        });
        currentNode.textContent = content;
      }
    }
    /* Execute a hook if present */
    _executeHooks(hooks.afterSanitizeElements, currentNode, null);
    return false;
  };
  /**
   * _isValidAttribute
   *
   * @param lcTag Lowercase tag name of containing element.
   * @param lcName Lowercase attribute name.
   * @param value Attribute value.
   * @return Returns true if `value` is valid, otherwise false.
   */
  // eslint-disable-next-line complexity
  const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {
    /* Make sure attribute cannot clobber */
    if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {
      return false;
    }
    /* Allow valid data-* attributes: At least one character after "-"
        (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)
        XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)
        We don't need to check the value; it's always URI safe. */
    if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
      if (
      // First condition does a very basic check if a) it's basically a valid custom element tagname AND
      // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
      // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
      _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName, lcTag)) ||
      // Alternative, second condition checks if it's an `is`-attribute, AND
      // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
      lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {
        return false;
      }
      /* Check value is safe. First, is attr inert? If so, is safe */
    } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {
      return false;
    } else ;
    return true;
  };
  /**
   * _isBasicCustomElement
   * checks if at least one dash is included in tagName, and it's not the first char
   * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name
   *
   * @param tagName name of the tag of the node to sanitize
   * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.
   */
  const _isBasicCustomElement = function _isBasicCustomElement(tagName) {
    return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);
  };
  /**
   * _sanitizeAttributes
   *
   * @protect attributes
   * @protect nodeName
   * @protect removeAttribute
   * @protect setAttribute
   *
   * @param currentNode to sanitize
   */
  const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {
    /* Execute a hook if present */
    _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);
    const {
      attributes
    } = currentNode;
    /* Check if we have attributes; if not we might have a text node */
    if (!attributes || _isClobbered(currentNode)) {
      return;
    }
    const hookEvent = {
      attrName: '',
      attrValue: '',
      keepAttr: true,
      allowedAttributes: ALLOWED_ATTR,
      forceKeepAttr: undefined
    };
    let l = attributes.length;
    /* Go backwards over all attributes; safely remove bad ones */
    while (l--) {
      const attr = attributes[l];
      const {
        name,
        namespaceURI,
        value: attrValue
      } = attr;
      const lcName = transformCaseFunc(name);
      const initValue = attrValue;
      let value = name === 'value' ? initValue : stringTrim(initValue);
      /* Execute a hook if present */
      hookEvent.attrName = lcName;
      hookEvent.attrValue = value;
      hookEvent.keepAttr = true;
      hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set
      _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);
      value = hookEvent.attrValue;
      /* Full DOM Clobbering protection via namespace isolation,
       * Prefix id and name attributes with `user-content-`
       */
      if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {
        // Remove the attribute with this value
        _removeAttribute(name, currentNode);
        // Prefix the value and later re-create the attribute with the sanitized value
        value = SANITIZE_NAMED_PROPS_PREFIX + value;
      }
      /* Work around a security issue with comments inside attributes */
      if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title|textarea)/i, value)) {
        _removeAttribute(name, currentNode);
        continue;
      }
      /* Make sure we cannot easily use animated hrefs, even if animations are allowed */
      if (lcName === 'attributename' && stringMatch(value, 'href')) {
        _removeAttribute(name, currentNode);
        continue;
      }
      /* Did the hooks approve of the attribute? */
      if (hookEvent.forceKeepAttr) {
        continue;
      }
      /* Did the hooks approve of the attribute? */
      if (!hookEvent.keepAttr) {
        _removeAttribute(name, currentNode);
        continue;
      }
      /* Work around a security issue in jQuery 3.0 */
      if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\/>/i, value)) {
        _removeAttribute(name, currentNode);
        continue;
      }
      /* Sanitize attribute content to be template-safe */
      if (SAFE_FOR_TEMPLATES) {
        arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {
          value = stringReplace(value, expr, ' ');
        });
      }
      /* Is `value` valid for this attribute? */
      const lcTag = transformCaseFunc(currentNode.nodeName);
      if (!_isValidAttribute(lcTag, lcName, value)) {
        _removeAttribute(name, currentNode);
        continue;
      }
      /* Handle attributes that require Trusted Types */
      if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {
        if (namespaceURI) ; else {
          switch (trustedTypes.getAttributeType(lcTag, lcName)) {
            case 'TrustedHTML':
              {
                value = trustedTypesPolicy.createHTML(value);
                break;
              }
            case 'TrustedScriptURL':
              {
                value = trustedTypesPolicy.createScriptURL(value);
                break;
              }
          }
        }
      }
      /* Handle invalid data-* attribute set by try-catching it */
      if (value !== initValue) {
        try {
          if (namespaceURI) {
            currentNode.setAttributeNS(namespaceURI, name, value);
          } else {
            /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. "x-schema". */
            currentNode.setAttribute(name, value);
          }
          if (_isClobbered(currentNode)) {
            _forceRemove(currentNode);
          } else {
            arrayPop(DOMPurify.removed);
          }
        } catch (_) {
          _removeAttribute(name, currentNode);
        }
      }
    }
    /* Execute a hook if present */
    _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);
  };
  /**
   * _sanitizeShadowDOM
   *
   * @param fragment to iterate over recursively
   */
  const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {
    let shadowNode = null;
    const shadowIterator = _createNodeIterator(fragment);
    /* Execute a hook if present */
    _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);
    while (shadowNode = shadowIterator.nextNode()) {
      /* Execute a hook if present */
      _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);
      /* Sanitize tags and elements */
      _sanitizeElements(shadowNode);
      /* Check attributes next */
      _sanitizeAttributes(shadowNode);
      /* Deep shadow DOM detected */
      if (shadowNode.content instanceof DocumentFragment) {
        _sanitizeShadowDOM(shadowNode.content);
      }
    }
    /* Execute a hook if present */
    _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);
  };
  // eslint-disable-next-line complexity
  DOMPurify.sanitize = function (dirty) {
    let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    let body = null;
    let importedNode = null;
    let currentNode = null;
    let returnNode = null;
    /* Make sure we have a string to sanitize.
      DO NOT return early, as this will return the wrong type if
      the user has requested a DOM object rather than a string */
    IS_EMPTY_INPUT = !dirty;
    if (IS_EMPTY_INPUT) {
      dirty = '<!-->';
    }
    /* Stringify, in case dirty is an object */
    if (typeof dirty !== 'string' && !_isNode(dirty)) {
      if (typeof dirty.toString === 'function') {
        dirty = dirty.toString();
        if (typeof dirty !== 'string') {
          throw typeErrorCreate('dirty is not a string, aborting');
        }
      } else {
        throw typeErrorCreate('toString is not a function');
      }
    }
    /* Return dirty HTML if DOMPurify cannot run */
    if (!DOMPurify.isSupported) {
      return dirty;
    }
    /* Assign config vars */
    if (!SET_CONFIG) {
      _parseConfig(cfg);
    }
    /* Clean up removed elements */
    DOMPurify.removed = [];
    /* Check if dirty is correctly typed for IN_PLACE */
    if (typeof dirty === 'string') {
      IN_PLACE = false;
    }
    if (IN_PLACE) {
      /* Do some early pre-sanitization to avoid unsafe root nodes */
      if (dirty.nodeName) {
        const tagName = transformCaseFunc(dirty.nodeName);
        if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
          throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');
        }
      }
    } else if (dirty instanceof Node) {
      /* If dirty is a DOM element, append to an empty document to avoid
         elements being stripped by the parser */
      body = _initDocument('<!---->');
      importedNode = body.ownerDocument.importNode(dirty, true);
      if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {
        /* Node is already a body, use as is */
        body = importedNode;
      } else if (importedNode.nodeName === 'HTML') {
        body = importedNode;
      } else {
        // eslint-disable-next-line unicorn/prefer-dom-node-append
        body.appendChild(importedNode);
      }
    } else {
      /* Exit directly if we have nothing to do */
      if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&
      // eslint-disable-next-line unicorn/prefer-includes
      dirty.indexOf('<') === -1) {
        return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;
      }
      /* Initialize the document to work on */
      body = _initDocument(dirty);
      /* Check we have a DOM node from the data */
      if (!body) {
        return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';
      }
    }
    /* Remove first element node (ours) if FORCE_BODY is set */
    if (body && FORCE_BODY) {
      _forceRemove(body.firstChild);
    }
    /* Get node iterator */
    const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);
    /* Now start iterating over the created document */
    while (currentNode = nodeIterator.nextNode()) {
      /* Sanitize tags and elements */
      _sanitizeElements(currentNode);
      /* Check attributes next */
      _sanitizeAttributes(currentNode);
      /* Shadow DOM detected, sanitize it */
      if (currentNode.content instanceof DocumentFragment) {
        _sanitizeShadowDOM(currentNode.content);
      }
    }
    /* If we sanitized `dirty` in-place, return it. */
    if (IN_PLACE) {
      return dirty;
    }
    /* Return sanitized string or DOM */
    if (RETURN_DOM) {
      if (RETURN_DOM_FRAGMENT) {
        returnNode = createDocumentFragment.call(body.ownerDocument);
        while (body.firstChild) {
          // eslint-disable-next-line unicorn/prefer-dom-node-append
          returnNode.appendChild(body.firstChild);
        }
      } else {
        returnNode = body;
      }
      if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {
        /*
          AdoptNode() is not used because internal state is not reset
          (e.g. the past names map of a HTMLFormElement), this is safe
          in theory but we would rather not risk another attack vector.
          The state that is cloned by importNode() is explicitly defined
          by the specs.
        */
        returnNode = importNode.call(originalDocument, returnNode, true);
      }
      return returnNode;
    }
    let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;
    /* Serialize doctype if allowed */
    if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {
      serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\n' + serializedHTML;
    }
    /* Sanitize final string template-safe */
    if (SAFE_FOR_TEMPLATES) {
      arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {
        serializedHTML = stringReplace(serializedHTML, expr, ' ');
      });
    }
    return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
  };
  DOMPurify.setConfig = function () {
    let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    _parseConfig(cfg);
    SET_CONFIG = true;
  };
  DOMPurify.clearConfig = function () {
    CONFIG = null;
    SET_CONFIG = false;
  };
  DOMPurify.isValidAttribute = function (tag, attr, value) {
    /* Initialize shared config vars if necessary. */
    if (!CONFIG) {
      _parseConfig({});
    }
    const lcTag = transformCaseFunc(tag);
    const lcName = transformCaseFunc(attr);
    return _isValidAttribute(lcTag, lcName, value);
  };
  DOMPurify.addHook = function (entryPoint, hookFunction) {
    if (typeof hookFunction !== 'function') {
      return;
    }
    arrayPush(hooks[entryPoint], hookFunction);
  };
  DOMPurify.removeHook = function (entryPoint, hookFunction) {
    if (hookFunction !== undefined) {
      const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);
      return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];
    }
    return arrayPop(hooks[entryPoint]);
  };
  DOMPurify.removeHooks = function (entryPoint) {
    hooks[entryPoint] = [];
  };
  DOMPurify.removeAllHooks = function () {
    hooks = _createHooksMap();
  };
  return DOMPurify;
}
var purify = createDOMPurify();

module.exports = purify;
//# sourceMappingURL=purify.cjs.js.map


/***/ }),

/***/ "../node_modules/mime/Mime.js":
/*!************************************!*\
  !*** ../node_modules/mime/Mime.js ***!
  \************************************/
/***/ ((module) => {

"use strict";


/**
 * @param typeMap [Object] Map of MIME type -> Array[extensions]
 * @param ...
 */
function Mime() {
  this._types = Object.create(null);
  this._extensions = Object.create(null);

  for (let i = 0; i < arguments.length; i++) {
    this.define(arguments[i]);
  }

  this.define = this.define.bind(this);
  this.getType = this.getType.bind(this);
  this.getExtension = this.getExtension.bind(this);
}

/**
 * Define mimetype -> extension mappings.  Each key is a mime-type that maps
 * to an array of extensions associated with the type.  The first extension is
 * used as the default extension for the type.
 *
 * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']});
 *
 * If a type declares an extension that has already been defined, an error will
 * be thrown.  To suppress this error and force the extension to be associated
 * with the new type, pass `force`=true.  Alternatively, you may prefix the
 * extension with "*" to map the type to extension, without mapping the
 * extension to the type.
 *
 * e.g. mime.define({'audio/wav', ['wav']}, {'audio/x-wav', ['*wav']});
 *
 *
 * @param map (Object) type definitions
 * @param force (Boolean) if true, force overriding of existing definitions
 */
Mime.prototype.define = function(typeMap, force) {
  for (let type in typeMap) {
    let extensions = typeMap[type].map(function(t) {
      return t.toLowerCase();
    });
    type = type.toLowerCase();

    for (let i = 0; i < extensions.length; i++) {
      const ext = extensions[i];

      // '*' prefix = not the preferred type for this extension.  So fixup the
      // extension, and skip it.
      if (ext[0] === '*') {
        continue;
      }

      if (!force && (ext in this._types)) {
        throw new Error(
          'Attempt to change mapping for "' + ext +
          '" extension from "' + this._types[ext] + '" to "' + type +
          '". Pass `force=true` to allow this, otherwise remove "' + ext +
          '" from the list of extensions for "' + type + '".'
        );
      }

      this._types[ext] = type;
    }

    // Use first extension as default
    if (force || !this._extensions[type]) {
      const ext = extensions[0];
      this._extensions[type] = (ext[0] !== '*') ? ext : ext.substr(1);
    }
  }
};

/**
 * Lookup a mime type based on extension
 */
Mime.prototype.getType = function(path) {
  path = String(path);
  let last = path.replace(/^.*[/\\]/, '').toLowerCase();
  let ext = last.replace(/^.*\./, '').toLowerCase();

  let hasPath = last.length < path.length;
  let hasDot = ext.length < last.length - 1;

  return (hasDot || !hasPath) && this._types[ext] || null;
};

/**
 * Return file extension associated with a mime type
 */
Mime.prototype.getExtension = function(type) {
  type = /^\s*([^;\s]*)/.test(type) && RegExp.$1;
  return type && this._extensions[type.toLowerCase()] || null;
};

module.exports = Mime;


/***/ }),

/***/ "../node_modules/mime/index.js":
/*!*************************************!*\
  !*** ../node_modules/mime/index.js ***!
  \*************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


let Mime = __webpack_require__(/*! ./Mime */ "../node_modules/mime/Mime.js");
module.exports = new Mime(__webpack_require__(/*! ./types/standard */ "../node_modules/mime/types/standard.js"), __webpack_require__(/*! ./types/other */ "../node_modules/mime/types/other.js"));


/***/ }),

/***/ "../node_modules/mime/types/other.js":
/*!*******************************************!*\
  !*** ../node_modules/mime/types/other.js ***!
  \*******************************************/
/***/ ((module) => {

module.exports = {"application/prs.cww":["cww"],"application/vnd.1000minds.decision-model+xml":["1km"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.keynote":["key"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.numbers":["numbers"],"application/vnd.apple.pages":["pages"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.balsamiq.bmml+xml":["bmml"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.citationstyles.style+xml":["csl"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dbf":["dbf"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mapbox-vector-tile":["mvt"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["*stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.ac+xml":["*ac"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openblox.game+xml":["obgx"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openstreetmap.data+xml":["osm"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.rar":["rar"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.software602.filler.form+xml":["fo"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.syncml.dmddf+xml":["ddf"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":["*dmg"],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":["*bdoc"],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["*deb","udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":["*iso"],"application/x-iwork-keynote-sffkey":["*key"],"application/x-iwork-numbers-sffnumbers":["*numbers"],"application/x-iwork-pages-sffpages":["*pages"],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-keepass2":["kdbx"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":["*exe"],"application/x-msdownload":["*exe","*dll","com","bat","*msi"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["*wmf","*wmz","*emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":["*prc","*pdb"],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["*rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["*obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["*xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":["*m4a"],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":["*ra"],"audio/x-wav":["*wav"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"image/prs.btif":["btif"],"image/prs.pti":["pti"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.airzip.accelerator.azv":["azv"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":["*sub"],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.microsoft.icon":["ico"],"image/vnd.ms-dds":["dds"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.pco.b16":["b16"],"image/vnd.tencent.tap":["tap"],"image/vnd.valve.source.texture":["vtf"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/vnd.zbrush.pcx":["pcx"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["*ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":["*bmp"],"image/x-pcx":["*pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/vnd.wfa.wsc":["wsc"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.opengex":["ogex"],"model/vnd.parasolid.transmit.binary":["x_b"],"model/vnd.parasolid.transmit.text":["x_t"],"model/vnd.sap.vds":["vds"],"model/vnd.usdz+zip":["usdz"],"model/vnd.valve.source.compiled-map":["bsp"],"model/vnd.vtu":["vtu"],"text/prs.lines.tag":["dsc"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":["*org"],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]};

/***/ }),

/***/ "../node_modules/mime/types/standard.js":
/*!**********************************************!*\
  !*** ../node_modules/mime/types/standard.js ***!
  \**********************************************/
/***/ ((module) => {

module.exports = {"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomdeleted+xml":["atomdeleted"],"application/atomsvc+xml":["atomsvc"],"application/atsc-dwd+xml":["dwd"],"application/atsc-held+xml":["held"],"application/atsc-rsat+xml":["rsat"],"application/bdoc":["bdoc"],"application/calendar+xml":["xcs"],"application/ccxml+xml":["ccxml"],"application/cdfx+xml":["cdfx"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["es","ecma"],"application/emma+xml":["emma"],"application/emotionml+xml":["emotionml"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/express":["exp"],"application/fdt+xml":["fdt"],"application/font-tdpfr":["pfr"],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hjson":["hjson"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/its+xml":["its"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lgr+xml":["lgr"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mmt-aei+xml":["maei"],"application/mmt-usd+xml":["musd"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/n-quads":["nq"],"application/n-triples":["nt"],"application/node":["cjs"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/p2p-overlay+xml":["relo"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/provenance+xml":["provx"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf","owl"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/route-apd+xml":["rapd"],"application/route-s-tsid+xml":["sls"],"application/route-usd+xml":["rusd"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/senml+xml":["senmlx"],"application/sensml+xml":["sensmlx"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/sieve":["siv","sieve"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/swid+xml":["swidtag"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/toml":["toml"],"application/trig":["trig"],"application/ttml+xml":["ttml"],"application/ubjson":["ubj"],"application/urc-ressheet+xml":["rsheet"],"application/urc-targetdesc+xml":["td"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/xaml+xml":["xaml"],"application/xcap-att+xml":["xav"],"application/xcap-caps+xml":["xca"],"application/xcap-diff+xml":["xdf"],"application/xcap-el+xml":["xel"],"application/xcap-ns+xml":["xns"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xliff+xml":["xlf"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["*xsl","xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":["*3gpp"],"audio/adpcm":["adp"],"audio/amr":["amr"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mobile-xmf":["mxmf"],"audio/mp3":["*mp3"],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx","opus"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/wav":["wav"],"audio/wave":["*wav"],"audio/webm":["weba"],"audio/xm":["xm"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/aces":["exr"],"image/apng":["apng"],"image/avif":["avif"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/dicom-rle":["drle"],"image/emf":["emf"],"image/fits":["fits"],"image/g3fax":["g3"],"image/gif":["gif"],"image/heic":["heic"],"image/heic-sequence":["heics"],"image/heif":["heif"],"image/heif-sequence":["heifs"],"image/hej2k":["hej2"],"image/hsj2":["hsj2"],"image/ief":["ief"],"image/jls":["jls"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jph":["jph"],"image/jphc":["jhc"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/jxr":["jxr"],"image/jxra":["jxra"],"image/jxrs":["jxrs"],"image/jxs":["jxs"],"image/jxsc":["jxsc"],"image/jxsi":["jxsi"],"image/jxss":["jxss"],"image/ktx":["ktx"],"image/ktx2":["ktx2"],"image/png":["png"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/t38":["t38"],"image/tiff":["tif","tiff"],"image/tiff-fx":["tfx"],"image/webp":["webp"],"image/wmf":["wmf"],"message/disposition-notification":["disposition-notification"],"message/global":["u8msg"],"message/global-delivery-status":["u8dsn"],"message/global-disposition-notification":["u8mdn"],"message/global-headers":["u8hdr"],"message/rfc822":["eml","mime"],"model/3mf":["3mf"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/mtl":["mtl"],"model/obj":["obj"],"model/step+xml":["stpx"],"model/step+zip":["stpz"],"model/step-xml+zip":["stpxz"],"model/stl":["stl"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["*x3db","x3dbz"],"model/x3d+fastinfoset":["x3db"],"model/x3d+vrml":["*x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"model/x3d-vrml":["x3dv"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/mdx":["mdx"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/richtext":["rtx"],"text/rtf":["*rtf"],"text/sgml":["sgml","sgm"],"text/shex":["shex"],"text/slim":["slim","slm"],"text/spdx":["spdx"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vtt":["vtt"],"text/xml":["*xml"],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/iso.segment":["m4s"],"video/jpeg":["jpgv"],"video/jpm":["*jpm","jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/webm":["webm"]};

/***/ }),

/***/ "../node_modules/object-assign/index.js":
/*!**********************************************!*\
  !*** ../node_modules/object-assign/index.js ***!
  \**********************************************/
/***/ ((module) => {

"use strict";
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/


/* eslint-disable no-unused-vars */
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;

function toObject(val) {
	if (val === null || val === undefined) {
		throw new TypeError('Object.assign cannot be called with null or undefined');
	}

	return Object(val);
}

function shouldUseNative() {
	try {
		if (!Object.assign) {
			return false;
		}

		// Detect buggy property enumeration order in older V8 versions.

		// https://bugs.chromium.org/p/v8/issues/detail?id=4118
		var test1 = new String('abc');  // eslint-disable-line no-new-wrappers
		test1[5] = 'de';
		if (Object.getOwnPropertyNames(test1)[0] === '5') {
			return false;
		}

		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
		var test2 = {};
		for (var i = 0; i < 10; i++) {
			test2['_' + String.fromCharCode(i)] = i;
		}
		var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
			return test2[n];
		});
		if (order2.join('') !== '0123456789') {
			return false;
		}

		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
		var test3 = {};
		'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
			test3[letter] = letter;
		});
		if (Object.keys(Object.assign({}, test3)).join('') !==
				'abcdefghijklmnopqrst') {
			return false;
		}

		return true;
	} catch (err) {
		// We don't expect any of the above to throw, but better to be safe.
		return false;
	}
}

module.exports = shouldUseNative() ? Object.assign : function (target, source) {
	var from;
	var to = toObject(target);
	var symbols;

	for (var s = 1; s < arguments.length; s++) {
		from = Object(arguments[s]);

		for (var key in from) {
			if (hasOwnProperty.call(from, key)) {
				to[key] = from[key];
			}
		}

		if (getOwnPropertySymbols) {
			symbols = getOwnPropertySymbols(from);
			for (var i = 0; i < symbols.length; i++) {
				if (propIsEnumerable.call(from, symbols[i])) {
					to[symbols[i]] = from[symbols[i]];
				}
			}
		}
	}

	return to;
};


/***/ }),

/***/ "../node_modules/prop-types/checkPropTypes.js":
/*!****************************************************!*\
  !*** ../node_modules/prop-types/checkPropTypes.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var printWarning = function() {};

if (true) {
  var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
  var loggedTypeFailures = {};
  var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");

  printWarning = function(text) {
    var message = 'Warning: ' + text;
    if (typeof console !== 'undefined') {
      console.error(message);
    }
    try {
      // --- Welcome to debugging React ---
      // This error was thrown as a convenience so that you can use this stack
      // to find the callsite that caused this warning to fire.
      throw new Error(message);
    } catch (x) { /**/ }
  };
}

/**
 * Assert that the values match with the type specs.
 * Error messages are memorized and will only be shown once.
 *
 * @param {object} typeSpecs Map of name to a ReactPropType
 * @param {object} values Runtime values that need to be type-checked
 * @param {string} location e.g. "prop", "context", "child context"
 * @param {string} componentName Name of the component for error messages.
 * @param {?Function} getStack Returns the component stack.
 * @private
 */
function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
  if (true) {
    for (var typeSpecName in typeSpecs) {
      if (has(typeSpecs, typeSpecName)) {
        var error;
        // Prop type validation may throw. In case they do, we don't want to
        // fail the render phase where it didn't fail before. So we log it.
        // After these have been cleaned up, we'll let them throw.
        try {
          // This is intentionally an invariant that gets caught. It's the same
          // behavior as without this statement except with a better message.
          if (typeof typeSpecs[typeSpecName] !== 'function') {
            var err = Error(
              (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
              'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
              'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
            );
            err.name = 'Invariant Violation';
            throw err;
          }
          error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
        } catch (ex) {
          error = ex;
        }
        if (error && !(error instanceof Error)) {
          printWarning(
            (componentName || 'React class') + ': type specification of ' +
            location + ' `' + typeSpecName + '` is invalid; the type checker ' +
            'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
            'You may have forgotten to pass an argument to the type checker ' +
            'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
            'shape all require an argument).'
          );
        }
        if (error instanceof Error && !(error.message in loggedTypeFailures)) {
          // Only monitor this failure once because there tends to be a lot of the
          // same error.
          loggedTypeFailures[error.message] = true;

          var stack = getStack ? getStack() : '';

          printWarning(
            'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
          );
        }
      }
    }
  }
}

/**
 * Resets warning cache when testing.
 *
 * @private
 */
checkPropTypes.resetWarningCache = function() {
  if (true) {
    loggedTypeFailures = {};
  }
}

module.exports = checkPropTypes;


/***/ }),

/***/ "../node_modules/prop-types/factoryWithTypeCheckers.js":
/*!*************************************************************!*\
  !*** ../node_modules/prop-types/factoryWithTypeCheckers.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
var assign = __webpack_require__(/*! object-assign */ "../node_modules/object-assign/index.js");

var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "../node_modules/prop-types/checkPropTypes.js");

var printWarning = function() {};

if (true) {
  printWarning = function(text) {
    var message = 'Warning: ' + text;
    if (typeof console !== 'undefined') {
      console.error(message);
    }
    try {
      // --- Welcome to debugging React ---
      // This error was thrown as a convenience so that you can use this stack
      // to find the callsite that caused this warning to fire.
      throw new Error(message);
    } catch (x) {}
  };
}

function emptyFunctionThatReturnsNull() {
  return null;
}

module.exports = function(isValidElement, throwOnDirectAccess) {
  /* global Symbol */
  var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
  var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.

  /**
   * Returns the iterator method function contained on the iterable object.
   *
   * Be sure to invoke the function with the iterable as context:
   *
   *     var iteratorFn = getIteratorFn(myIterable);
   *     if (iteratorFn) {
   *       var iterator = iteratorFn.call(myIterable);
   *       ...
   *     }
   *
   * @param {?object} maybeIterable
   * @return {?function}
   */
  function getIteratorFn(maybeIterable) {
    var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
    if (typeof iteratorFn === 'function') {
      return iteratorFn;
    }
  }

  /**
   * Collection of methods that allow declaration and validation of props that are
   * supplied to React components. Example usage:
   *
   *   var Props = require('ReactPropTypes');
   *   var MyArticle = React.createClass({
   *     propTypes: {
   *       // An optional string prop named "description".
   *       description: Props.string,
   *
   *       // A required enum prop named "category".
   *       category: Props.oneOf(['News','Photos']).isRequired,
   *
   *       // A prop named "dialog" that requires an instance of Dialog.
   *       dialog: Props.instanceOf(Dialog).isRequired
   *     },
   *     render: function() { ... }
   *   });
   *
   * A more formal specification of how these methods are used:
   *
   *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
   *   decl := ReactPropTypes.{type}(.isRequired)?
   *
   * Each and every declaration produces a function with the same signature. This
   * allows the creation of custom validation functions. For example:
   *
   *  var MyLink = React.createClass({
   *    propTypes: {
   *      // An optional string or URI prop named "href".
   *      href: function(props, propName, componentName) {
   *        var propValue = props[propName];
   *        if (propValue != null && typeof propValue !== 'string' &&
   *            !(propValue instanceof URI)) {
   *          return new Error(
   *            'Expected a string or an URI for ' + propName + ' in ' +
   *            componentName
   *          );
   *        }
   *      }
   *    },
   *    render: function() {...}
   *  });
   *
   * @internal
   */

  var ANONYMOUS = '<<anonymous>>';

  // Important!
  // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
  var ReactPropTypes = {
    array: createPrimitiveTypeChecker('array'),
    bigint: createPrimitiveTypeChecker('bigint'),
    bool: createPrimitiveTypeChecker('boolean'),
    func: createPrimitiveTypeChecker('function'),
    number: createPrimitiveTypeChecker('number'),
    object: createPrimitiveTypeChecker('object'),
    string: createPrimitiveTypeChecker('string'),
    symbol: createPrimitiveTypeChecker('symbol'),

    any: createAnyTypeChecker(),
    arrayOf: createArrayOfTypeChecker,
    element: createElementTypeChecker(),
    elementType: createElementTypeTypeChecker(),
    instanceOf: createInstanceTypeChecker,
    node: createNodeChecker(),
    objectOf: createObjectOfTypeChecker,
    oneOf: createEnumTypeChecker,
    oneOfType: createUnionTypeChecker,
    shape: createShapeTypeChecker,
    exact: createStrictShapeTypeChecker,
  };

  /**
   * inlined Object.is polyfill to avoid requiring consumers ship their own
   * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
   */
  /*eslint-disable no-self-compare*/
  function is(x, y) {
    // SameValue algorithm
    if (x === y) {
      // Steps 1-5, 7-10
      // Steps 6.b-6.e: +0 != -0
      return x !== 0 || 1 / x === 1 / y;
    } else {
      // Step 6.a: NaN == NaN
      return x !== x && y !== y;
    }
  }
  /*eslint-enable no-self-compare*/

  /**
   * We use an Error-like object for backward compatibility as people may call
   * PropTypes directly and inspect their output. However, we don't use real
   * Errors anymore. We don't inspect their stack anyway, and creating them
   * is prohibitively expensive if they are created too often, such as what
   * happens in oneOfType() for any type before the one that matched.
   */
  function PropTypeError(message, data) {
    this.message = message;
    this.data = data && typeof data === 'object' ? data: {};
    this.stack = '';
  }
  // Make `instanceof Error` still work for returned errors.
  PropTypeError.prototype = Error.prototype;

  function createChainableTypeChecker(validate) {
    if (true) {
      var manualPropTypeCallCache = {};
      var manualPropTypeWarningCount = 0;
    }
    function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
      componentName = componentName || ANONYMOUS;
      propFullName = propFullName || propName;

      if (secret !== ReactPropTypesSecret) {
        if (throwOnDirectAccess) {
          // New behavior only for users of `prop-types` package
          var err = new Error(
            'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
            'Use `PropTypes.checkPropTypes()` to call them. ' +
            'Read more at http://fb.me/use-check-prop-types'
          );
          err.name = 'Invariant Violation';
          throw err;
        } else if ( true && typeof console !== 'undefined') {
          // Old behavior for people using React.PropTypes
          var cacheKey = componentName + ':' + propName;
          if (
            !manualPropTypeCallCache[cacheKey] &&
            // Avoid spamming the console because they are often not actionable except for lib authors
            manualPropTypeWarningCount < 3
          ) {
            printWarning(
              'You are manually calling a React.PropTypes validation ' +
              'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +
              'and will throw in the standalone `prop-types` package. ' +
              'You may be seeing this warning due to a third-party PropTypes ' +
              'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
            );
            manualPropTypeCallCache[cacheKey] = true;
            manualPropTypeWarningCount++;
          }
        }
      }
      if (props[propName] == null) {
        if (isRequired) {
          if (props[propName] === null) {
            return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
          }
          return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
        }
        return null;
      } else {
        return validate(props, propName, componentName, location, propFullName);
      }
    }

    var chainedCheckType = checkType.bind(null, false);
    chainedCheckType.isRequired = checkType.bind(null, true);

    return chainedCheckType;
  }

  function createPrimitiveTypeChecker(expectedType) {
    function validate(props, propName, componentName, location, propFullName, secret) {
      var propValue = props[propName];
      var propType = getPropType(propValue);
      if (propType !== expectedType) {
        // `propValue` being instance of, say, date/regexp, pass the 'object'
        // check, but we can offer a more precise error message here rather than
        // 'of type `object`'.
        var preciseType = getPreciseType(propValue);

        return new PropTypeError(
          'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),
          {expectedType: expectedType}
        );
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createAnyTypeChecker() {
    return createChainableTypeChecker(emptyFunctionThatReturnsNull);
  }

  function createArrayOfTypeChecker(typeChecker) {
    function validate(props, propName, componentName, location, propFullName) {
      if (typeof typeChecker !== 'function') {
        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
      }
      var propValue = props[propName];
      if (!Array.isArray(propValue)) {
        var propType = getPropType(propValue);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
      }
      for (var i = 0; i < propValue.length; i++) {
        var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
        if (error instanceof Error) {
          return error;
        }
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createElementTypeChecker() {
    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      if (!isValidElement(propValue)) {
        var propType = getPropType(propValue);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createElementTypeTypeChecker() {
    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      if (!ReactIs.isValidElementType(propValue)) {
        var propType = getPropType(propValue);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createInstanceTypeChecker(expectedClass) {
    function validate(props, propName, componentName, location, propFullName) {
      if (!(props[propName] instanceof expectedClass)) {
        var expectedClassName = expectedClass.name || ANONYMOUS;
        var actualClassName = getClassName(props[propName]);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createEnumTypeChecker(expectedValues) {
    if (!Array.isArray(expectedValues)) {
      if (true) {
        if (arguments.length > 1) {
          printWarning(
            'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
            'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
          );
        } else {
          printWarning('Invalid argument supplied to oneOf, expected an array.');
        }
      }
      return emptyFunctionThatReturnsNull;
    }

    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      for (var i = 0; i < expectedValues.length; i++) {
        if (is(propValue, expectedValues[i])) {
          return null;
        }
      }

      var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
        var type = getPreciseType(value);
        if (type === 'symbol') {
          return String(value);
        }
        return value;
      });
      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
    }
    return createChainableTypeChecker(validate);
  }

  function createObjectOfTypeChecker(typeChecker) {
    function validate(props, propName, componentName, location, propFullName) {
      if (typeof typeChecker !== 'function') {
        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
      }
      var propValue = props[propName];
      var propType = getPropType(propValue);
      if (propType !== 'object') {
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
      }
      for (var key in propValue) {
        if (has(propValue, key)) {
          var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
          if (error instanceof Error) {
            return error;
          }
        }
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createUnionTypeChecker(arrayOfTypeCheckers) {
    if (!Array.isArray(arrayOfTypeCheckers)) {
       true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;
      return emptyFunctionThatReturnsNull;
    }

    for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
      var checker = arrayOfTypeCheckers[i];
      if (typeof checker !== 'function') {
        printWarning(
          'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
          'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
        );
        return emptyFunctionThatReturnsNull;
      }
    }

    function validate(props, propName, componentName, location, propFullName) {
      var expectedTypes = [];
      for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
        var checker = arrayOfTypeCheckers[i];
        var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);
        if (checkerResult == null) {
          return null;
        }
        if (checkerResult.data && has(checkerResult.data, 'expectedType')) {
          expectedTypes.push(checkerResult.data.expectedType);
        }
      }
      var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';
      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
    }
    return createChainableTypeChecker(validate);
  }

  function createNodeChecker() {
    function validate(props, propName, componentName, location, propFullName) {
      if (!isNode(props[propName])) {
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function invalidValidatorError(componentName, location, propFullName, key, type) {
    return new PropTypeError(
      (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +
      'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'
    );
  }

  function createShapeTypeChecker(shapeTypes) {
    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      var propType = getPropType(propValue);
      if (propType !== 'object') {
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
      }
      for (var key in shapeTypes) {
        var checker = shapeTypes[key];
        if (typeof checker !== 'function') {
          return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
        }
        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
        if (error) {
          return error;
        }
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createStrictShapeTypeChecker(shapeTypes) {
    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      var propType = getPropType(propValue);
      if (propType !== 'object') {
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
      }
      // We need to check all keys in case some are required but missing from props.
      var allKeys = assign({}, props[propName], shapeTypes);
      for (var key in allKeys) {
        var checker = shapeTypes[key];
        if (has(shapeTypes, key) && typeof checker !== 'function') {
          return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
        }
        if (!checker) {
          return new PropTypeError(
            'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
            '\nBad object: ' + JSON.stringify(props[propName], null, '  ') +
            '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, '  ')
          );
        }
        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
        if (error) {
          return error;
        }
      }
      return null;
    }

    return createChainableTypeChecker(validate);
  }

  function isNode(propValue) {
    switch (typeof propValue) {
      case 'number':
      case 'string':
      case 'undefined':
        return true;
      case 'boolean':
        return !propValue;
      case 'object':
        if (Array.isArray(propValue)) {
          return propValue.every(isNode);
        }
        if (propValue === null || isValidElement(propValue)) {
          return true;
        }

        var iteratorFn = getIteratorFn(propValue);
        if (iteratorFn) {
          var iterator = iteratorFn.call(propValue);
          var step;
          if (iteratorFn !== propValue.entries) {
            while (!(step = iterator.next()).done) {
              if (!isNode(step.value)) {
                return false;
              }
            }
          } else {
            // Iterator will provide entry [k,v] tuples rather than values.
            while (!(step = iterator.next()).done) {
              var entry = step.value;
              if (entry) {
                if (!isNode(entry[1])) {
                  return false;
                }
              }
            }
          }
        } else {
          return false;
        }

        return true;
      default:
        return false;
    }
  }

  function isSymbol(propType, propValue) {
    // Native Symbol.
    if (propType === 'symbol') {
      return true;
    }

    // falsy value can't be a Symbol
    if (!propValue) {
      return false;
    }

    // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
    if (propValue['@@toStringTag'] === 'Symbol') {
      return true;
    }

    // Fallback for non-spec compliant Symbols which are polyfilled.
    if (typeof Symbol === 'function' && propValue instanceof Symbol) {
      return true;
    }

    return false;
  }

  // Equivalent of `typeof` but with special handling for array and regexp.
  function getPropType(propValue) {
    var propType = typeof propValue;
    if (Array.isArray(propValue)) {
      return 'array';
    }
    if (propValue instanceof RegExp) {
      // Old webkits (at least until Android 4.0) return 'function' rather than
      // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
      // passes PropTypes.object.
      return 'object';
    }
    if (isSymbol(propType, propValue)) {
      return 'symbol';
    }
    return propType;
  }

  // This handles more types than `getPropType`. Only used for error messages.
  // See `createPrimitiveTypeChecker`.
  function getPreciseType(propValue) {
    if (typeof propValue === 'undefined' || propValue === null) {
      return '' + propValue;
    }
    var propType = getPropType(propValue);
    if (propType === 'object') {
      if (propValue instanceof Date) {
        return 'date';
      } else if (propValue instanceof RegExp) {
        return 'regexp';
      }
    }
    return propType;
  }

  // Returns a string that is postfixed to a warning about an invalid type.
  // For example, "undefined" or "of type array"
  function getPostfixForTypeWarning(value) {
    var type = getPreciseType(value);
    switch (type) {
      case 'array':
      case 'object':
        return 'an ' + type;
      case 'boolean':
      case 'date':
      case 'regexp':
        return 'a ' + type;
      default:
        return type;
    }
  }

  // Returns class name of the object, if any.
  function getClassName(propValue) {
    if (!propValue.constructor || !propValue.constructor.name) {
      return ANONYMOUS;
    }
    return propValue.constructor.name;
  }

  ReactPropTypes.checkPropTypes = checkPropTypes;
  ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
  ReactPropTypes.PropTypes = ReactPropTypes;

  return ReactPropTypes;
};


/***/ }),

/***/ "../node_modules/prop-types/index.js":
/*!*******************************************!*\
  !*** ../node_modules/prop-types/index.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

if (true) {
  var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");

  // By explicitly using `prop-types` you are opting into new development behavior.
  // http://fb.me/prop-types-in-prod
  var throwOnDirectAccess = true;
  module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "../node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess);
} else // removed by dead control flow
{}


/***/ }),

/***/ "../node_modules/prop-types/lib/ReactPropTypesSecret.js":
/*!**************************************************************!*\
  !*** ../node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
  \**************************************************************/
/***/ ((module) => {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';

module.exports = ReactPropTypesSecret;


/***/ }),

/***/ "../node_modules/prop-types/lib/has.js":
/*!*********************************************!*\
  !*** ../node_modules/prop-types/lib/has.js ***!
  \*********************************************/
/***/ ((module) => {

module.exports = Function.call.bind(Object.prototype.hasOwnProperty);


/***/ }),

/***/ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js":
/*!************************************************************************************!*\
  !*** ../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
/** @license React v16.13.1
 * react-is.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */





if (true) {
  (function() {
'use strict';

// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
// nor polyfill, then a plain number is used for performance.
var hasSymbol = typeof Symbol === 'function' && Symbol.for;
var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
// (unstable) APIs that have been removed. Can we remove the symbols?

var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;

function isValidElementType(type) {
  return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
  type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
}

function typeOf(object) {
  if (typeof object === 'object' && object !== null) {
    var $$typeof = object.$$typeof;

    switch ($$typeof) {
      case REACT_ELEMENT_TYPE:
        var type = object.type;

        switch (type) {
          case REACT_ASYNC_MODE_TYPE:
          case REACT_CONCURRENT_MODE_TYPE:
          case REACT_FRAGMENT_TYPE:
          case REACT_PROFILER_TYPE:
          case REACT_STRICT_MODE_TYPE:
          case REACT_SUSPENSE_TYPE:
            return type;

          default:
            var $$typeofType = type && type.$$typeof;

            switch ($$typeofType) {
              case REACT_CONTEXT_TYPE:
              case REACT_FORWARD_REF_TYPE:
              case REACT_LAZY_TYPE:
              case REACT_MEMO_TYPE:
              case REACT_PROVIDER_TYPE:
                return $$typeofType;

              default:
                return $$typeof;
            }

        }

      case REACT_PORTAL_TYPE:
        return $$typeof;
    }
  }

  return undefined;
} // AsyncMode is deprecated along with isAsyncMode

var AsyncMode = REACT_ASYNC_MODE_TYPE;
var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
var ContextConsumer = REACT_CONTEXT_TYPE;
var ContextProvider = REACT_PROVIDER_TYPE;
var Element = REACT_ELEMENT_TYPE;
var ForwardRef = REACT_FORWARD_REF_TYPE;
var Fragment = REACT_FRAGMENT_TYPE;
var Lazy = REACT_LAZY_TYPE;
var Memo = REACT_MEMO_TYPE;
var Portal = REACT_PORTAL_TYPE;
var Profiler = REACT_PROFILER_TYPE;
var StrictMode = REACT_STRICT_MODE_TYPE;
var Suspense = REACT_SUSPENSE_TYPE;
var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated

function isAsyncMode(object) {
  {
    if (!hasWarnedAboutDeprecatedIsAsyncMode) {
      hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint

      console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
    }
  }

  return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
}
function isConcurrentMode(object) {
  return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
}
function isContextConsumer(object) {
  return typeOf(object) === REACT_CONTEXT_TYPE;
}
function isContextProvider(object) {
  return typeOf(object) === REACT_PROVIDER_TYPE;
}
function isElement(object) {
  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
}
function isForwardRef(object) {
  return typeOf(object) === REACT_FORWARD_REF_TYPE;
}
function isFragment(object) {
  return typeOf(object) === REACT_FRAGMENT_TYPE;
}
function isLazy(object) {
  return typeOf(object) === REACT_LAZY_TYPE;
}
function isMemo(object) {
  return typeOf(object) === REACT_MEMO_TYPE;
}
function isPortal(object) {
  return typeOf(object) === REACT_PORTAL_TYPE;
}
function isProfiler(object) {
  return typeOf(object) === REACT_PROFILER_TYPE;
}
function isStrictMode(object) {
  return typeOf(object) === REACT_STRICT_MODE_TYPE;
}
function isSuspense(object) {
  return typeOf(object) === REACT_SUSPENSE_TYPE;
}

exports.AsyncMode = AsyncMode;
exports.ConcurrentMode = ConcurrentMode;
exports.ContextConsumer = ContextConsumer;
exports.ContextProvider = ContextProvider;
exports.Element = Element;
exports.ForwardRef = ForwardRef;
exports.Fragment = Fragment;
exports.Lazy = Lazy;
exports.Memo = Memo;
exports.Portal = Portal;
exports.Profiler = Profiler;
exports.StrictMode = StrictMode;
exports.Suspense = Suspense;
exports.isAsyncMode = isAsyncMode;
exports.isConcurrentMode = isConcurrentMode;
exports.isContextConsumer = isContextConsumer;
exports.isContextProvider = isContextProvider;
exports.isElement = isElement;
exports.isForwardRef = isForwardRef;
exports.isFragment = isFragment;
exports.isLazy = isLazy;
exports.isMemo = isMemo;
exports.isPortal = isPortal;
exports.isProfiler = isProfiler;
exports.isStrictMode = isStrictMode;
exports.isSuspense = isSuspense;
exports.isValidElementType = isValidElementType;
exports.typeOf = typeOf;
  })();
}


/***/ }),

/***/ "../node_modules/prop-types/node_modules/react-is/index.js":
/*!*****************************************************************!*\
  !*** ../node_modules/prop-types/node_modules/react-is/index.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


if (false) // removed by dead control flow
{} else {
  module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js");
}


/***/ }),

/***/ "../node_modules/react-dom/client.js":
/*!*******************************************!*\
  !*** ../node_modules/react-dom/client.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var m = __webpack_require__(/*! react-dom */ "react-dom");
if (false) // removed by dead control flow
{} else {
  var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
  exports.createRoot = function(c, o) {
    i.usingClientEntryPoint = true;
    try {
      return m.createRoot(c, o);
    } finally {
      i.usingClientEntryPoint = false;
    }
  };
  exports.hydrateRoot = function(c, h, o) {
    i.usingClientEntryPoint = true;
    try {
      return m.hydrateRoot(c, h, o);
    } finally {
      i.usingClientEntryPoint = false;
    }
  };
}


/***/ }),

/***/ "@reduxjs/toolkit":
/*!************************************************!*\
  !*** external "elementorVendors.reduxToolkit" ***!
  \************************************************/
/***/ ((module) => {

"use strict";
module.exports = elementorVendors.reduxToolkit;

/***/ }),

/***/ "@wordpress/i18n":
/*!**************************!*\
  !*** external "wp.i18n" ***!
  \**************************/
/***/ ((module) => {

"use strict";
module.exports = wp.i18n;

/***/ }),

/***/ "react":
/*!************************!*\
  !*** external "React" ***!
  \************************/
/***/ ((module) => {

"use strict";
module.exports = React;

/***/ }),

/***/ "react-dom":
/*!***************************!*\
  !*** external "ReactDOM" ***!
  \***************************/
/***/ ((module) => {

"use strict";
module.exports = ReactDOM;

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
(() => {
"use strict";
/*!****************************************************************!*\
  !*** ../assets/dev/js/editor/utils/jquery-serialize-object.js ***!
  \****************************************************************/


/* eslint-disable */
/*
 * jQuery Serialize Object v1.0.1
 */
(function ($) {
  $.fn.elementorSerializeObject = function () {
    var serializedArray = this.serializeArray(),
      data = {};
    var _parseObject = function parseObject(dataContainer, key, value) {
      var isArrayKey = /^[^\[\]]+\[]/.test(key),
        isObjectKey = /^[^\[\]]+\[[^\[\]]+]/.test(key),
        keyName = key.replace(/\[.*/, '');
      if (isArrayKey) {
        if (!dataContainer[keyName]) {
          dataContainer[keyName] = [];
        }
      } else {
        if (!isObjectKey) {
          if (dataContainer.push) {
            dataContainer.push(value);
          } else {
            dataContainer[keyName] = value;
          }
          return;
        }
        if (!dataContainer[keyName]) {
          dataContainer[keyName] = {};
        }
      }
      var nextKeys = key.match(/\[[^\[\]]*]/g);
      nextKeys[0] = nextKeys[0].replace(/\[|]/g, '');
      return _parseObject(dataContainer[keyName], nextKeys.join(''), value);
    };
    $.each(serializedArray, function () {
      _parseObject(data, this.name, this.value);
    });
    return data;
  };
})(jQuery);
})();

// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
(() => {
"use strict";
/*!*********************************************************!*\
  !*** ../assets/dev/js/editor/utils/jquery-html5-dnd.js ***!
  \*********************************************************/


/**
 * HTML5 - Drag and Drop
 *
 * @param {jQuery} $
 */
(function ($) {
  var hasFullDataTransferSupport = function hasFullDataTransferSupport(event) {
    try {
      event.originalEvent.dataTransfer.setData('test', 'test');
      event.originalEvent.dataTransfer.clearData('test');
      return true;
    } catch (e) {
      return false;
    }
  };
  var Draggable = function Draggable(userSettings) {
    var self = this,
      settings = {},
      elementsCache = {},
      defaultSettings = {
        element: '',
        groups: null,
        onDragStart: null,
        onDragEnd: null
      };
    var initSettings = function initSettings() {
      $.extend(true, settings, defaultSettings, userSettings);
    };
    var initElementsCache = function initElementsCache() {
      elementsCache.$element = $(settings.element);
    };
    var buildElements = function buildElements() {
      elementsCache.$element.attr('draggable', true);
    };
    var onDragEnd = function onDragEnd(event) {
      if ('function' === typeof settings.onDragEnd) {
        settings.onDragEnd.call(elementsCache.$element, event, self);
      }
    };
    var onDragStart = function onDragStart(event) {
      var groups = settings.groups || [],
        dataContainer = {
          groups: groups
        };
      if (hasFullDataTransferSupport(event)) {
        event.originalEvent.dataTransfer.setData(JSON.stringify(dataContainer), true);
      }
      if ('function' === typeof settings.onDragStart) {
        settings.onDragStart.call(elementsCache.$element, event, self);
      }
    };
    var attachEvents = function attachEvents() {
      elementsCache.$element.on('dragstart', onDragStart).on('dragend', onDragEnd);
    };
    var init = function init() {
      initSettings();
      initElementsCache();
      buildElements();
      attachEvents();
    };
    this.destroy = function () {
      elementsCache.$element.off('dragstart', onDragStart);
      elementsCache.$element.removeAttr('draggable');
    };
    init();
  };
  var Droppable = function Droppable(userSettings) {
    var self = this,
      settings = {},
      elementsCache = {},
      currentElement,
      currentSide,
      isDroppingAllowedState = false,
      originalCurrentElementOpacity = null,
      placeholderContext = {},
      defaultSettings = {
        element: '',
        items: '>',
        horizontalThreshold: 0,
        horizontalSensitivity: '10%',
        axis: ['vertical', 'horizontal'],
        placeholder: true,
        currentElementClass: 'html5dnd-current-element',
        placeholderClass: 'html5dnd-placeholder',
        hasDraggingOnChildClass: 'html5dnd-has-dragging-on-child',
        groups: null,
        isDroppingAllowed: null,
        onDragEnter: null,
        onDragging: null,
        onDropping: null,
        onDragLeave: null
      };
    var initSettings = function initSettings() {
      $.extend(settings, defaultSettings, userSettings);
    };
    var initElementsCache = function initElementsCache() {
      elementsCache.$element = $(settings.element);
      elementsCache.$placeholder = $('<div>', {
        class: settings.placeholderClass
      });
    };
    var hasHorizontalDetection = function hasHorizontalDetection() {
      if (!!settings.axis) {
        return -1 !== settings.axis.indexOf('horizontal');
      }
      return placeholderContext.isFlexRowContainer;
    };
    var hasVerticalDetection = function hasVerticalDetection() {
      if (!!settings.axis) {
        return -1 !== settings.axis.indexOf('vertical');
      }
      return !placeholderContext.isFlexRowContainer;
    };
    var checkHorizontal = function checkHorizontal(offsetX, clientX, elementWidth) {
      var isPercentValue, sensitivity;
      if (!hasHorizontalDetection()) {
        return false;
      }
      if (!hasVerticalDetection()) {
        var threshold = settings.horizontalThreshold,
          _placeholderContext$p = placeholderContext.placeholderTarget.getBoundingClientRect(),
          left = _placeholderContext$p.left,
          right = _placeholderContext$p.right;

        // For cases when the event is actually dispatched on the parent element, but
        // `currentElement` is the actual element that the offset should be calculated by.
        if (clientX - threshold <= left) {
          return 'left';
        }
        if (clientX + threshold >= right) {
          return 'right';
        }
        return offsetX > elementWidth / 2 ? 'right' : 'left';
      }
      sensitivity = settings.horizontalSensitivity.match(/\d+/);
      if (!sensitivity) {
        return false;
      }
      sensitivity = sensitivity[0];
      isPercentValue = /%$/.test(settings.horizontalSensitivity);
      if (isPercentValue) {
        sensitivity = elementWidth / sensitivity;
      }
      if (offsetX > elementWidth - sensitivity) {
        return 'right';
      } else if (offsetX < sensitivity) {
        return 'left';
      }
      return false;
    };
    var setSide = function setSide(event) {
      var _placeholderContext = placeholderContext,
        placeholderTarget = _placeholderContext.placeholderTarget;
      var $element = $(placeholderTarget);
      var elementHeight = $element.outerHeight() - elementsCache.$placeholder.outerHeight();
      var elementWidth = $element.outerWidth();
      event = event.originalEvent;
      currentSide = checkHorizontal(event.offsetX, event.clientX, elementWidth);
      if (currentSide) {
        return;
      }
      if (!hasVerticalDetection()) {
        currentSide = null;
        return;
      }
      var elementPosition = placeholderTarget.getBoundingClientRect();
      currentSide = event.clientY > elementPosition.top + elementHeight / 2 ? 'bottom' : 'top';
    };
    var insertPlaceholder = function insertPlaceholder() {
      if (!settings.placeholder) {
        return;
      }
      clearPreviousPlaceholder();
      var insertMode = getInsertMode();
      switch (insertMode) {
        case 'atomicGrid':
          insertAtomicGridPlaceholder();
          break;
        case 'gridRow':
          insertGridRowPlaceholder();
          break;
        case 'flexRow':
          insertFlexRowPlaceholder();
          break;
        default:
          insertDefaultPlaceholder();
          break;
      }
    };
    var createPlaceholderContext = function createPlaceholderContext() {
      if (!currentElement || !currentElement.nodeType) {
        return;
      }
      var $currentElement = $(currentElement);
      var hasLogicalWrapper = 'contents' === getComputedStyle(currentElement).display;
      var container = currentElement.closest('.e-con');
      var containerDisplayStyle = container ? getComputedStyle(container).display : null;
      var innerContainer = container === null || container === void 0 ? void 0 : container.querySelector(':scope > .e-con-inner');
      var containerWrapperStyle = !!container ? getComputedStyle(innerContainer || container) : null;
      var isFlexContainer = !!container && ['flex', 'inline-flex'].includes(containerWrapperStyle.display);
      var isRowDirection = !!container && ['row', 'row-reverse'].includes(containerWrapperStyle.flexDirection);
      maybeAddFlexRowClass(container);
      return {
        $currentElement: $currentElement,
        placeholderTarget: hasLogicalWrapper ? currentElement.querySelector(':scope > :not(.elementor-widget-placeholder)') : currentElement,
        $parentContainer: $currentElement.closest('.e-con').parent().closest('.e-con'),
        isFirstInsert: $currentElement.hasClass('elementor-first-add'),
        isInnerContainer: $currentElement.hasClass('e-con-inner'),
        isGridRowContainer: 0 !== $currentElement.parents('.e-grid.e-con--row').length,
        isAtomicGridContainer: 0 !== $currentElement.closest('.e-grid-base').length,
        isFlexContainer: isFlexContainer,
        isRowDirection: isRowDirection,
        isFlexRowContainer: isFlexContainer && isRowDirection,
        isBlockContainer: ['block', 'inline-block'].includes(containerDisplayStyle),
        hasLogicalWrapper: hasLogicalWrapper,
        isAtomicContainer: ['e-div-block', 'e-flexbox', 'e-grid'].includes(currentElement.dataset.element_type)
      };
    };
    var maybeAddFlexRowClass = function maybeAddFlexRowClass(container) {
      if (!container || container.classList.contains('e-grid')) {
        return;
      }
      var _placeholderContext2 = placeholderContext,
        isFlexRowContainer = _placeholderContext2.isFlexRowContainer;
      if (isFlexRowContainer) {
        container.classList.add('e-con--row');
        return;
      }
      container.classList.remove('e-con--row');
    };
    var getInsertMode = function getInsertMode() {
      if (placeholderContext.isFirstInsert) {
        return 'default';
      }
      if (placeholderContext.isAtomicGridContainer) {
        return 'atomicGrid';
      }
      if (placeholderContext.isGridRowContainer) {
        return 'gridRow';
      }
      if (placeholderContext.isFlexRowContainer) {
        return 'flexRow';
      }
      if (placeholderContext.isBlockContainer) {
        return 'block';
      }
      return 'default';
    };
    var clearPreviousPlaceholder = function clearPreviousPlaceholder() {
      placeholderContext.$parentContainer.find('.elementor-widget-placeholder').remove();
      elementsCache.$placeholder.removeClass('e-dragging-left e-dragging-right e-dragging-top e-dragging-bottom is-logical');
      elementsCache.$placeholder.css('--e-placeholder-margin-top', '');
      elementsCache.$placeholder.css('--e-placeholder-margin-bottom', '');
      elementsCache.$placeholder.css('--e-placeholder-margin-inline-start', '');
      elementsCache.$placeholder.css('--e-placeholder-width', '');
    };
    var insertPlaceholderInsideElement = function insertPlaceholderInsideElement() {
      var targetElement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
      if (!targetElement) {
        targetElement = currentElement;
      }
      var insertMethod = ['bottom', 'right'].includes(currentSide) ? 'appendTo' : 'prependTo';
      elementsCache.$placeholder[insertMethod](targetElement);
    };
    var insertPlaceholderOutsideElement = function insertPlaceholderOutsideElement() {
      var targetElement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
      if (!targetElement) {
        targetElement = currentElement;
      }
      var insertMethod = ['bottom', 'right'].includes(currentSide) ? 'after' : 'before';
      $(targetElement)[insertMethod](elementsCache.$placeholder);
    };
    var VOID_PLACEHOLDER_TAGS = new Set(['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', 'track', 'wbr']);
    var isVoidPlaceholderTarget = function isVoidPlaceholderTarget(element) {
      return !!(element !== null && element !== void 0 && element.tagName) && VOID_PLACEHOLDER_TAGS.has(element.tagName.toLowerCase());
    };
    var insertPlaceholderOutsideLogicalWrapperChild = function insertPlaceholderOutsideLogicalWrapperChild() {
      var _placeholderContext3 = placeholderContext,
        hasLogicalWrapper = _placeholderContext3.hasLogicalWrapper,
        placeholderTarget = _placeholderContext3.placeholderTarget;
      if (!hasLogicalWrapper || !placeholderTarget) {
        return false;
      }
      insertPlaceholderOutsideElement(placeholderTarget);
      return true;
    };
    var getDefaultPlaceholderInsertPlan = function getDefaultPlaceholderInsertPlan() {
      var _placeholderContext4 = placeholderContext,
        placeholderTarget = _placeholderContext4.placeholderTarget,
        hasLogicalWrapper = _placeholderContext4.hasLogicalWrapper,
        isAtomicContainer = _placeholderContext4.isAtomicContainer;
      var insertTarget = placeholderTarget || currentElement;
      return {
        insertTarget: insertTarget,
        insertOutside: hasLogicalWrapper || isVoidPlaceholderTarget(insertTarget),
        useLogicalAttributes: hasLogicalWrapper || isAtomicContainer
      };
    };
    var insertAtomicGridPlaceholder = function insertAtomicGridPlaceholder() {
      if (!['top', 'bottom'].includes(currentSide)) {
        return;
      }
      var _placeholderContext5 = placeholderContext,
        placeholderTarget = _placeholderContext5.placeholderTarget;
      elementsCache.$placeholder.addClass('e-dragging-' + currentSide);
      insertPlaceholderInsideElement(placeholderTarget);
    };
    var insertGridRowPlaceholder = function insertGridRowPlaceholder() {
      var _placeholderContext6 = placeholderContext,
        hasLogicalWrapper = _placeholderContext6.hasLogicalWrapper,
        placeholderTarget = _placeholderContext6.placeholderTarget;

      // If we want to use horizontal placeholders inside V3, then we should remove these 3 lines of the code.
      if (!hasLogicalWrapper) {
        elementsCache.$placeholder.addClass('e-dragging-' + currentSide);
      }
      insertPlaceholderInsideElement(placeholderTarget);
    };
    var insertFlexRowPlaceholder = function insertFlexRowPlaceholder() {
      var _placeholderContext7 = placeholderContext,
        $currentElement = _placeholderContext7.$currentElement,
        isInnerContainer = _placeholderContext7.isInnerContainer;
      if (insertPlaceholderOutsideLogicalWrapperChild()) {
        return;
      }
      var $target = isInnerContainer ? $currentElement.closest('.e-con') : $currentElement;
      insertPlaceholderOutsideElement($target[0]);
    };
    var insertDefaultPlaceholder = function insertDefaultPlaceholder() {
      var _getDefaultPlaceholde = getDefaultPlaceholderInsertPlan(),
        insertTarget = _getDefaultPlaceholde.insertTarget,
        insertOutside = _getDefaultPlaceholde.insertOutside,
        useLogicalAttributes = _getDefaultPlaceholde.useLogicalAttributes;
      if (useLogicalAttributes) {
        addLogicalAttributesToPlaceholder();
      }
      if (insertOutside) {
        insertPlaceholderOutsideElement(insertTarget);
        return;
      }
      insertPlaceholderInsideElement(insertTarget);
    };
    var addLogicalAttributesToPlaceholder = function addLogicalAttributesToPlaceholder() {
      var PLACEHOLDER_HEIGHT = 10;
      var _placeholderContext8 = placeholderContext,
        placeholderTarget = _placeholderContext8.placeholderTarget;
      var placeholder = elementsCache.$placeholder[0];
      placeholder.classList.add('is-logical');
      var styles = getComputedStyle(placeholderTarget);
      var paddingTop = parseFloat(styles.paddingTop) || 0;
      var borderTop = parseFloat(styles.borderTopWidth) || 0;
      var paddingBottom = parseFloat(styles.paddingBottom) || 0;
      var borderBottom = parseFloat(styles.borderBottomWidth) || 0;
      var paddingInlineStart = parseFloat(styles.paddingInlineStart) || 0;
      var borderInlineStart = parseFloat(styles.borderInlineStartWidth) || 0;
      var width = parseFloat(styles.width) || '100%';
      var totalTopOffset = paddingTop + borderTop;
      var totalBottomOffset = paddingBottom + borderBottom;
      var totalInlineStartOffset = paddingInlineStart + borderInlineStart;
      placeholder.style.setProperty('--e-placeholder-width', "".concat(width, "px"));
      placeholder.style.setProperty('--e-placeholder-margin-inline-start', "-".concat(totalInlineStartOffset, "px"));
      if ('top' === currentSide) {
        placeholder.style.setProperty('--e-placeholder-margin-top', "-".concat(totalTopOffset, "px"));
        placeholder.style.setProperty('--e-placeholder-margin-bottom', "".concat(PLACEHOLDER_HEIGHT, "px"));
      } else if ('bottom' === currentSide) {
        placeholder.style.setProperty('--e-placeholder-margin-bottom', "-".concat(totalBottomOffset, "px"));
        placeholder.style.setProperty('--e-placeholder-margin-top', "".concat(PLACEHOLDER_HEIGHT, "px"));
      }
    };
    var isDroppingAllowed = function isDroppingAllowed(event) {
      var dataTransferTypes, draggableGroups, isGroupMatch, droppingAllowed;
      if (settings.groups && hasFullDataTransferSupport(event)) {
        dataTransferTypes = event.originalEvent.dataTransfer.types;
        isGroupMatch = false;
        dataTransferTypes = Array.prototype.slice.apply(dataTransferTypes); // Convert to array, since Firefox hold it as DOMStringList

        dataTransferTypes.forEach(function (type) {
          try {
            draggableGroups = JSON.parse(type);
            if (!draggableGroups.groups.slice) {
              return;
            }
            settings.groups.forEach(function (groupName) {
              if (-1 !== draggableGroups.groups.indexOf(groupName)) {
                isGroupMatch = true;
                return false; // Stops the forEach from extra loops
              }
            });
            // eslint-disable-next-line no-empty
          } catch (e) {}
        });
        if (!isGroupMatch) {
          return false;
        }
      }
      if ('function' === typeof settings.isDroppingAllowed) {
        droppingAllowed = settings.isDroppingAllowed.call(currentElement, currentSide, event, self);
        if (!droppingAllowed) {
          return false;
        }
      }
      return true;
    };
    var onDragEnter = function onDragEnter(event) {
      event.stopPropagation();
      if (currentElement) {
        return;
      }
      currentElement = this;

      // Get both parents and children and do a drag-leave on them in order to prevent UI glitches
      // of the placeholder that happen when the user drags from parent to child and vice versa.
      var $parents = elementsCache.$element.parents(),
        $children = elementsCache.$element.children();

      // Remove all current element classes to take in account nested Droppable instances.
      // TODO #1: Move to `doDragLeave()`?
      // TODO #2: Find a better solution.
      $children.find('.' + settings.currentElementClass).removeClass(settings.currentElementClass);
      $parents.add($children).each(function () {
        var droppableInstance = $(this).data('html5Droppable');
        if (!droppableInstance) {
          return;
        }
        droppableInstance.doDragLeave();
      });
      placeholderContext = createPlaceholderContext();
      setSide(event);
      $e.internal('editor/browser-import/validate', {
        input: event.originalEvent.dataTransfer.items
      }).then(function (importAllowed) {
        var _currentElement, _currentElement$close, _currentElement2;
        isDroppingAllowedState = isDroppingAllowed(event) || importAllowed;
        if (!isDroppingAllowedState) {
          return;
        }
        if ((_currentElement = currentElement) !== null && _currentElement !== void 0 && (_currentElement = _currentElement.classList) !== null && _currentElement !== void 0 && _currentElement.contains('elementor-first-add') && (_currentElement$close = (_currentElement2 = currentElement).closest) !== null && _currentElement$close !== void 0 && _currentElement$close.call(_currentElement2, '.e-grid-base')) {
          originalCurrentElementOpacity = currentElement.style.opacity || '';
          currentElement.style.opacity = '1';
          $(document).on('dragend', _onDocumentDragEnd);
        }
        insertPlaceholder();
        elementsCache.$element.addClass(settings.hasDraggingOnChildClass);
        $(currentElement).addClass(settings.currentElementClass);
        if ('function' === typeof settings.onDragEnter) {
          settings.onDragEnter.call(currentElement, currentSide, event, self);
        }
      });
    };
    var onDragOver = function onDragOver(event) {
      event.stopPropagation();
      if (!currentElement) {
        onDragEnter.call(this, event);
      }
      var oldSide = currentSide;
      setSide(event);
      if (!isDroppingAllowedState) {
        return;
      }
      event.preventDefault();
      if (oldSide !== currentSide) {
        insertPlaceholder();
      }
      if ('function' === typeof settings.onDragging) {
        settings.onDragging.call(this, currentSide, event, self);
      }
    };
    var restoreFirstAddOpacity = function restoreFirstAddOpacity() {
      var _currentElement3;
      if (null !== originalCurrentElementOpacity && (_currentElement3 = currentElement) !== null && _currentElement3 !== void 0 && _currentElement3.style) {
        currentElement.style.opacity = originalCurrentElementOpacity;
        originalCurrentElementOpacity = null;
      }
    };
    var _onDocumentDragEnd = function onDocumentDragEnd() {
      $(document).off('dragend', _onDocumentDragEnd);
      restoreFirstAddOpacity();
    };
    var onDragLeave = function onDragLeave(event) {
      var elementPosition = this.getBoundingClientRect();
      if ('dragleave' === event.type && !(event.clientX < elementPosition.left || event.clientX >= elementPosition.right || event.clientY < elementPosition.top || event.clientY >= elementPosition.bottom)) {
        return;
      }
      $(currentElement).removeClass(settings.currentElementClass);
      self.doDragLeave();
      isDroppingAllowedState = false;
    };
    var onDrop = function onDrop(event) {
      event.preventDefault();
      setSide(event);
      if (!isDroppingAllowedState) {
        return;
      }

      // Trigger a Droppable-specific `onDropping` callback.
      if (settings.onDropping) {
        settings.onDropping(currentSide, event);
      }
    };
    var attachEvents = function attachEvents() {
      elementsCache.$element.on('dragenter', settings.items, onDragEnter).on('dragover', settings.items, onDragOver).on('drop', settings.items, onDrop).on('dragleave drop', settings.items, onDragLeave);
    };
    var init = function init() {
      initSettings();
      initElementsCache();
      attachEvents();
    };
    this.doDragLeave = function () {
      if (settings.placeholder) {
        elementsCache.$placeholder.remove();
      }
      elementsCache.$element.removeClass(settings.hasDraggingOnChildClass);
      $(document).off('dragend', _onDocumentDragEnd);
      restoreFirstAddOpacity();
      if ('function' === typeof settings.onDragLeave) {
        settings.onDragLeave.call(currentElement, event, self);
      }
      currentElement = currentSide = null;
    };
    this.destroy = function () {
      elementsCache.$element.off('dragenter', settings.items, onDragEnter).off('dragover', settings.items, onDragOver).off('drop', settings.items, onDrop).off('dragleave drop', settings.items, onDragLeave);
    };
    init();
  };
  var plugins = {
    html5Draggable: Draggable,
    html5Droppable: Droppable
  };
  $.each(plugins, function (pluginName, Plugin) {
    $.fn[pluginName] = function (options) {
      options = options || {};
      this.each(function () {
        var instance = $.data(this, pluginName),
          hasInstance = instance instanceof Plugin;
        if (hasInstance) {
          if ('destroy' === options) {
            instance.destroy();
            $.removeData(this, pluginName);
          }
          return;
        } else if ('destroy' === options) {
          // Escape the loop when an element is destroyed before initialisation.
          return;
        }
        options.element = this;
        $.data(this, pluginName, new Plugin(options));
      });
      return this;
    };
  });
})(jQuery);
})();

// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
(() => {
"use strict";
var exports = __webpack_exports__;
/*!*****************************************!*\
  !*** ../assets/dev/js/editor/editor.js ***!
  \*****************************************/


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.Editor = 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 _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _editorBase = _interopRequireDefault(__webpack_require__(/*! ./editor-base */ "../assets/dev/js/editor/editor-base.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; })(); }
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
var Editor = exports.Editor = /*#__PURE__*/function (_EditorBase) {
  function Editor() {
    (0, _classCallCheck2.default)(this, Editor);
    return _callSuper(this, Editor, arguments);
  }
  (0, _inherits2.default)(Editor, _EditorBase);
  return (0, _createClass2.default)(Editor, [{
    key: "onStart",
    value: function onStart(options) {
      NProgress.start();
      NProgress.inc(0.2);
      _superPropGet(Editor, "onStart", this, 3)([options]);
    }
  }, {
    key: "onPreviewLoaded",
    value: function onPreviewLoaded() {
      NProgress.done();
      _superPropGet(Editor, "onPreviewLoaded", this, 3)([]);
    }
  }]);
}(_editorBase.default);
window.elementor = new Editor();
})();

/******/ })()
;
//# sourceMappingURL=editor.js.map