/*! elementor - v3.11.5 - 14-03-2023 */ /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "../assets/dev/js/admin/maintenance-mode.js": /*!**************************************************!*\ !*** ../assets/dev/js/admin/maintenance-mode.js ***! \**************************************************/ /***/ ((module) => { "use strict"; module.exports = elementorModules.ViewModule.extend({ getDefaultSettings: function getDefaultSettings() { return { selectors: { modeSelect: '.elementor_maintenance_mode_mode select', maintenanceModeTable: '#tab-maintenance_mode table', maintenanceModeDescriptions: '.elementor-maintenance-mode-description', excludeModeSelect: '.elementor_maintenance_mode_exclude_mode select', excludeRolesArea: '.elementor_maintenance_mode_exclude_roles', templateSelect: '.elementor_maintenance_mode_template_id select', editTemplateButton: '.elementor-edit-template', maintenanceModeError: '.elementor-maintenance-mode-error' }, classes: { isEnabled: 'elementor-maintenance-mode-is-enabled' } }; }, getDefaultElements: function getDefaultElements() { var elements = {}, selectors = this.getSettings('selectors'); elements.$modeSelect = jQuery(selectors.modeSelect); elements.$maintenanceModeTable = elements.$modeSelect.parents(selectors.maintenanceModeTable); elements.$excludeModeSelect = elements.$maintenanceModeTable.find(selectors.excludeModeSelect); elements.$excludeRolesArea = elements.$maintenanceModeTable.find(selectors.excludeRolesArea); elements.$templateSelect = elements.$maintenanceModeTable.find(selectors.templateSelect); elements.$editTemplateButton = elements.$maintenanceModeTable.find(selectors.editTemplateButton); elements.$maintenanceModeDescriptions = elements.$maintenanceModeTable.find(selectors.maintenanceModeDescriptions); elements.$maintenanceModeError = elements.$maintenanceModeTable.find(selectors.maintenanceModeError); return elements; }, handleModeSelectChange: function handleModeSelectChange() { var settings = this.getSettings(), elements = this.elements; elements.$maintenanceModeTable.toggleClass(settings.classes.isEnabled, !!elements.$modeSelect.val()); elements.$maintenanceModeDescriptions.hide(); elements.$maintenanceModeDescriptions.filter('[data-value="' + elements.$modeSelect.val() + '"]').show(); }, handleExcludeModeSelectChange: function handleExcludeModeSelectChange() { var elements = this.elements; elements.$excludeRolesArea.toggle('custom' === elements.$excludeModeSelect.val()); }, handleTemplateSelectChange: function handleTemplateSelectChange() { var elements = this.elements; var templateID = elements.$templateSelect.val(); if (!templateID) { elements.$editTemplateButton.hide(); elements.$maintenanceModeError.show(); return; } var editUrl = elementorAdmin.config.home_url + '?p=' + templateID + '&elementor'; elements.$editTemplateButton.prop('href', editUrl).show(); elements.$maintenanceModeError.hide(); }, bindEvents: function bindEvents() { var elements = this.elements; elements.$modeSelect.on('change', this.handleModeSelectChange.bind(this)); elements.$excludeModeSelect.on('change', this.handleExcludeModeSelectChange.bind(this)); elements.$templateSelect.on('change', this.handleTemplateSelectChange.bind(this)); }, onAdminInit: function onAdminInit() { this.handleModeSelectChange(); this.handleExcludeModeSelectChange(); this.handleTemplateSelectChange(); }, onInit: function onInit() { elementorModules.ViewModule.prototype.onInit.apply(this, arguments); elementorCommon.elements.$window.on('elementor/admin/init', this.onAdminInit); } }); /***/ }), /***/ "../assets/dev/js/admin/menu-handler.js": /*!**********************************************!*\ !*** ../assets/dev/js/admin/menu-handler.js ***! \**********************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "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 _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 _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var MenuHandler = /*#__PURE__*/function (_elementorModules$Vie) { (0, _inherits2.default)(MenuHandler, _elementorModules$Vie); var _super = _createSuper(MenuHandler); function MenuHandler() { (0, _classCallCheck2.default)(this, MenuHandler); return _super.apply(this, arguments); } (0, _createClass2.default)(MenuHandler, [{ key: "getDefaultSettings", value: function getDefaultSettings() { return { selectors: { currentSubmenuItems: '#adminmenu .current' } }; } }, { key: "getDefaultElements", value: function getDefaultElements() { var settings = this.getSettings(); return { $currentSubmenuItems: jQuery(settings.selectors.currentSubmenuItems), $adminPageMenuLink: jQuery("a[href=\"".concat(settings.path, "\"]")) }; } // This method highlights the currently visited submenu item for the slug provided as an argument to this handler. // This method also accepts a jQuery instance of a custom submenu item to highlight. If provided, the provided // item will be the one highlighted. }, { key: "highlightSubMenuItem", value: function highlightSubMenuItem() { var $element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; var $submenuItem = $element || this.elements.$adminPageMenuLink; if (this.elements.$currentSubmenuItems.length) { this.elements.$currentSubmenuItems.removeClass('current'); } $submenuItem.addClass('current'); // Need to add the 'current' class to the link element's parent `
  • ` element as well. $submenuItem.parent().addClass('current'); } }, { key: "highlightTopLevelMenuItem", value: function highlightTopLevelMenuItem($elementToHighlight) { var $elementToRemove = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var activeClasses = 'wp-has-current-submenu wp-menu-open current'; $elementToHighlight.parent().addClass(activeClasses).removeClass('wp-not-current-submenu'); if ($elementToRemove) { $elementToRemove.removeClass(activeClasses); } } }, { key: "onInit", value: function onInit() { (0, _get2.default)((0, _getPrototypeOf2.default)(MenuHandler.prototype), "onInit", this).call(this); var settings = this.getSettings(); if (window.location.href.includes(settings.path)) { this.highlightSubMenuItem(); } } }]); return MenuHandler; }(elementorModules.ViewModule); exports["default"] = MenuHandler; /***/ }), /***/ "../assets/dev/js/admin/new-template/template-controls.js": /*!****************************************************************!*\ !*** ../assets/dev/js/admin/new-template/template-controls.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "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 TemplateControls = /*#__PURE__*/function () { function TemplateControls() { (0, _classCallCheck2.default)(this, TemplateControls); } (0, _createClass2.default)(TemplateControls, [{ key: "setDynamicControlsVisibility", value: function setDynamicControlsVisibility(lookupControlIdPrefix, controls) { if (undefined === controls) { return; } var controlsArray = Object.entries(controls); for (var _i = 0, _controlsArray = controlsArray; _i < _controlsArray.length; _i++) { var _controlsArray$_i = (0, _slicedToArray2.default)(_controlsArray[_i], 2), controlId = _controlsArray$_i[0], controlSettings = _controlsArray$_i[1]; this.setVisibilityForControl(lookupControlIdPrefix, controlSettings, controlId); } } }, { key: "setVisibilityForControl", value: function setVisibilityForControl(lookupControlIdPrefix, controlSettings, controlId) { var _controlSettings$cond, _this = this; var conditions = Object.entries((_controlSettings$cond = controlSettings.conditions) !== null && _controlSettings$cond !== void 0 ? _controlSettings$cond : {}); conditions.forEach(function (condition) { _this.changeVisibilityBasedOnCondition(lookupControlIdPrefix, condition, controlId); }); } }, { key: "changeVisibilityBasedOnCondition", value: function changeVisibilityBasedOnCondition(lookupControlIdPrefix, condition, controlId) { var _condition = (0, _slicedToArray2.default)(condition, 2), conditionKey = _condition[0], conditionValue = _condition[1]; var targetControlWrapper = document.getElementById(lookupControlIdPrefix + controlId + '__wrapper'); var lookupControl = document.getElementById(lookupControlIdPrefix + conditionKey); targetControlWrapper.classList.toggle('elementor-hidden', !lookupControl || conditionValue !== lookupControl.value); } }]); return TemplateControls; }(); exports["default"] = TemplateControls; /***/ }), /***/ "../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 = /*#__PURE__*/function () { function FilesUploadHandler() { (0, _classCallCheck2.default)(this, FilesUploadHandler); } (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: "getUnfilteredFilesNotEnabledDialog", value: function getUnfilteredFilesNotEnabledDialog(callback) { var onConfirm = function onConfirm() { elementorCommon.ajax.addRequest('enable_unfiltered_files_upload', {}, true); elementorCommon.config.filesUpload.unfilteredFiles = true; callback(); }; return elementor.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) { 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') + '

    ' + __('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(); } }); } }]); return FilesUploadHandler; }(); exports["default"] = FilesUploadHandler; /***/ }), /***/ "../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 = /*#__PURE__*/function () { function Events() { (0, _classCallCheck2.default)(this, Events); } (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 })); } }]); return Events; }(); exports.Events = Events; var _default = Events; exports["default"] = _default; /***/ }), /***/ "../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, environment = { appleWebkit: isAppleWebkit, blink: isBlink, chrome: isChrome, edge: isEdge, firefox: isFirefox, ie: isIE, mac: matchUserAgent('Macintosh'), opera: isOpera, safari: isSafari, webkit: matchUserAgent('AppleWebKit') }; var _default = environment; exports["default"] = _default; /***/ }), /***/ "../core/experiments/assets/js/admin/behaviors/experiments-dependency.js": /*!*******************************************************************************!*\ !*** ../core/experiments/assets/js/admin/behaviors/experiments-dependency.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 _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.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 _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var STATE_ACTIVE = 'active'; var STATE_INACTIVE = 'inactive'; var STATE_DEFAULT = 'default'; var ExperimentsDependency = /*#__PURE__*/function () { function ExperimentsDependency(_ref) { var selects = _ref.selects, submit = _ref.submit; (0, _classCallCheck2.default)(this, ExperimentsDependency); (0, _defineProperty2.default)(this, "elements", {}); this.elements = { /** * @type {HTMLSelectElement[]} */ selects: selects, /** * @type {HTMLInputElement} */ submit: submit }; } (0, _createClass2.default)(ExperimentsDependency, [{ key: "bindEvents", value: function bindEvents() { var _this = this; this.elements.selects.forEach(function (select) { select.addEventListener('change', function (e) { return _this.onExperimentStateChange(e); }); }); } }, { key: "onExperimentStateChange", value: function onExperimentStateChange(e) { var experimentId = e.currentTarget.dataset.experimentId, experimentNewState = this.getExperimentActualState(experimentId); switch (experimentNewState) { case STATE_ACTIVE: if (this.shouldShowDependenciesDialog(experimentId)) { this.showDependenciesDialog(experimentId); } break; case STATE_INACTIVE: this.deactivateDependantExperiments(experimentId); break; default: break; } } }, { key: "getExperimentData", value: function getExperimentData(experimentId) { return elementorAdminConfig.experiments[experimentId]; } }, { key: "getExperimentDependencies", value: function getExperimentDependencies(experimentId) { var _this2 = this; return this.getExperimentData(experimentId).dependencies.map(function (dependencyId) { return _this2.getExperimentData(dependencyId); }); } }, { key: "getExperimentSelect", value: function getExperimentSelect(experimentId) { return this.elements.selects.find(function (select) { return select.matches("[data-experiment-id=\"".concat(experimentId, "\"]")); }); } }, { key: "setExperimentState", value: function setExperimentState(experimentId, state) { this.getExperimentSelect(experimentId).value = state; } }, { key: "getExperimentActualState", value: function getExperimentActualState(experimentId) { var state = this.getExperimentSelect(experimentId).value; if (state !== STATE_DEFAULT) { return state; } // Normalize the "default" state to the actual state value. return this.isExperimentActiveByDefault(experimentId) ? STATE_ACTIVE : STATE_INACTIVE; } }, { key: "isExperimentActive", value: function isExperimentActive(experimentId) { return this.getExperimentActualState(experimentId) === STATE_ACTIVE; } }, { key: "isExperimentActiveByDefault", value: function isExperimentActiveByDefault(experimentId) { return this.getExperimentData(experimentId).default === STATE_ACTIVE; } }, { key: "areAllDependenciesActive", value: function areAllDependenciesActive(dependencies) { var _this3 = this; return dependencies.every(function (dependency) { return _this3.isExperimentActive(dependency.name); }); } }, { key: "deactivateDependantExperiments", value: function deactivateDependantExperiments(experimentId) { var _this4 = this; Object.entries(elementorAdminConfig.experiments).forEach(function (_ref2) { var _ref3 = (0, _slicedToArray2.default)(_ref2, 2), id = _ref3[0], experimentData = _ref3[1]; var isDependant = experimentData.dependencies.includes(experimentId); if (isDependant) { _this4.setExperimentState(id, STATE_INACTIVE); } }); } }, { key: "shouldShowDependenciesDialog", value: function shouldShowDependenciesDialog(experimentId) { var dependencies = this.getExperimentDependencies(experimentId); return !this.areAllDependenciesActive(dependencies); } }, { key: "showDependenciesDialog", value: function showDependenciesDialog(experimentId) { var _this5 = this; var experiment = this.getExperimentData(experimentId), dependencies = this.getExperimentDependencies(experimentId); var dependenciesList = this.joinDepenednciesNames(dependencies.map(function (d) { return d.title; }), ', ', ' & '); // Translators: %1$s: Experiment title, %2$s: Experiment dependencies list var message = __('In order to use %1$s, first you need to activate %2$s.', 'elementor').replace('%1$s', "".concat(experiment.title, "")).replace('%2$s', "".concat(dependenciesList, "")); elementorCommon.dialogsManager.createWidget('confirm', { id: 'e-experiments-dependency-dialog', headerMessage: __('First, activate another experiment.', 'elementor'), message: message, position: { my: 'center center', at: 'center center' }, strings: { confirm: __('Activate', 'elementor'), cancel: __('Cancel', 'elementor') }, hide: { onOutsideClick: false, onBackgroundClick: false, onEscKeyPress: false }, onConfirm: function onConfirm() { dependencies.forEach(function (dependency) { _this5.setExperimentState(dependency.name, STATE_ACTIVE); }); _this5.elements.submit.click(); }, onCancel: function onCancel() { _this5.setExperimentState(experimentId, STATE_INACTIVE); } }).show(); } }, { key: "joinDepenednciesNames", value: function joinDepenednciesNames(array, glue) { var finalGlue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; if ('' === finalGlue) { return array.join(glue); } if (!array.length) { return ''; } if (1 === array.length) { return array[0]; } var clone = (0, _toConsumableArray2.default)(array), lastItem = clone.pop(); return clone.join(glue) + finalGlue + lastItem; } }]); return ExperimentsDependency; }(); exports["default"] = ExperimentsDependency; /***/ }), /***/ "../core/experiments/assets/js/admin/module.js": /*!*****************************************************!*\ !*** ../core/experiments/assets/js/admin/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 _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 _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _experimentsDependency = _interopRequireDefault(__webpack_require__(/*! ./behaviors/experiments-dependency */ "../core/experiments/assets/js/admin/behaviors/experiments-dependency.js")); function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var ExperimentsModule = /*#__PURE__*/function (_elementorModules$Vie) { (0, _inherits2.default)(ExperimentsModule, _elementorModules$Vie); var _super = _createSuper(ExperimentsModule); function ExperimentsModule() { (0, _classCallCheck2.default)(this, ExperimentsModule); return _super.apply(this, arguments); } (0, _createClass2.default)(ExperimentsModule, [{ key: "getDefaultSettings", value: function getDefaultSettings() { return { selectors: { experimentIndicators: '.e-experiment__title__indicator', experimentForm: '#elementor-settings-form', experimentSelects: '.e-experiment__select', experimentsButtons: '.e-experiment__button' } }; } }, { key: "getDefaultElements", value: function getDefaultElements() { var _this$getSettings = this.getSettings(), selectors = _this$getSettings.selectors; return { $experimentIndicators: jQuery(selectors.experimentIndicators), $experimentForm: jQuery(selectors.experimentForm), $experimentSelects: jQuery(selectors.experimentSelects), $experimentsButtons: jQuery(selectors.experimentsButtons) }; } }, { key: "bindEvents", value: function bindEvents() { var _this = this; this.elements.$experimentsButtons.on('click', function (event) { return _this.onExperimentsButtonsClick(event); }); } }, { key: "onExperimentsButtonsClick", value: function onExperimentsButtonsClick(event) { var submitButton = jQuery(event.currentTarget); this.elements.$experimentSelects.val(submitButton.val()); this.elements.$experimentForm.find('#submit').trigger('click'); } }, { key: "addTipsy", value: function addTipsy($element) { $element.tipsy({ gravity: 's', offset: 8, title: function title() { return this.getAttribute('data-tooltip'); } }); } }, { key: "addIndicatorsTooltips", value: function addIndicatorsTooltips() { var _this2 = this; this.elements.$experimentIndicators.each(function (index, experimentIndicator) { return _this2.addTipsy(jQuery(experimentIndicator)); }); } }, { key: "onInit", value: function onInit() { var _this3 = this; (0, _get2.default)((0, _getPrototypeOf2.default)(ExperimentsModule.prototype), "onInit", this).call(this); this.experimentsDependency = new _experimentsDependency.default({ selects: this.elements.$experimentSelects.toArray(), submit: this.elements.$experimentForm.find('#submit').get(0) }); this.experimentsDependency.bindEvents(); if (this.elements.$experimentIndicators.length) { import( /* webpackIgnore: true */"".concat(elementorCommon.config.urls.assets, "lib/tipsy/tipsy.min.js?ver=1.0.0")).then(function () { return _this3.addIndicatorsTooltips(); }); } } }]); return ExperimentsModule; }(elementorModules.ViewModule); exports["default"] = ExperimentsModule; /***/ }), /***/ "../modules/landing-pages/assets/js/admin/landing-pages.js": /*!*****************************************************************!*\ !*** ../modules/landing-pages/assets/js/admin/landing-pages.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "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 _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 _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _menuHandler = _interopRequireDefault(__webpack_require__(/*! elementor-admin/menu-handler */ "../assets/dev/js/admin/menu-handler.js")); function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var LandingPagesHandler = /*#__PURE__*/function (_AdminMenuHandler) { (0, _inherits2.default)(LandingPagesHandler, _AdminMenuHandler); var _super = _createSuper(LandingPagesHandler); function LandingPagesHandler() { (0, _classCallCheck2.default)(this, LandingPagesHandler); return _super.apply(this, arguments); } (0, _createClass2.default)(LandingPagesHandler, [{ key: "getDefaultSettings", value: function getDefaultSettings() { var pageName = 'e-landing-page', adminMenuSelectors = { // The escaping is done because jQuery requires it for selectors. landingPagesTablePage: 'a[href="edit.php?post_type=' + pageName + '"]', landingPagesAddNewPage: 'a[href="edit.php?post_type=elementor_library&page=' + pageName + '"]' }; return { selectors: { addButton: '.page-title-action:first', pagesMenuItemAndLink: '#menu-pages, #menu-pages > a', landingPagesMenuItem: "".concat(adminMenuSelectors.landingPagesTablePage, ", ").concat(adminMenuSelectors.landingPagesAddNewPage), templatesMenuItem: '.menu-icon-elementor_library' } }; } }, { key: "getDefaultElements", value: function getDefaultElements() { var selectors = this.getSettings('selectors'), elements = (0, _get2.default)((0, _getPrototypeOf2.default)(LandingPagesHandler.prototype), "getDefaultElements", this).call(this); elements.$landingPagesMenuItem = jQuery(selectors.landingPagesMenuItem); elements.$templatesMenuItem = jQuery(selectors.templatesMenuItem); elements.$pagesMenuItemAndLink = jQuery(selectors.pagesMenuItemAndLink); return elements; } }, { key: "onInit", value: function onInit() { (0, _get2.default)((0, _getPrototypeOf2.default)(LandingPagesHandler.prototype), "onInit", this).call(this); var settings = this.getSettings(), isLandingPagesTablePage = !!window.location.href.includes(settings.paths.landingPagesTablePage), isLandingPagesTrashPage = !!window.location.href.includes(settings.paths.landingPagesTrashPage), isLandingPagesCreateYourFirstPage = !!window.location.href.includes(settings.paths.landingPagesAddNewPage); // If the current page is a Landing Pages Page (the Posts Table page, "Create Your First.." page, or a native // WordPress dashboard page edit screen when using WordPress' Classic Editor). if (isLandingPagesTablePage || isLandingPagesTrashPage || isLandingPagesCreateYourFirstPage || settings.isLandingPageAdminEdit) { // Make sure the active admin top level menu item is 'Templates', and not 'Pages'. this.highlightTopLevelMenuItem(this.elements.$templatesMenuItem, this.elements.$pagesMenuItemAndLink); this.highlightSubMenuItem(this.elements.$landingPagesMenuItem); // Overwrite the 'Add New' button at the top of the page to open in Elementor with the library module open. jQuery(settings.selectors.addButton).attr('href', elementorAdminConfig.urls.addNewLandingPageUrl); } } }]); return LandingPagesHandler; }(_menuHandler.default); exports["default"] = LandingPagesHandler; /***/ }), /***/ "../modules/landing-pages/assets/js/admin/module.js": /*!**********************************************************!*\ !*** ../modules/landing-pages/assets/js/admin/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 _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js")); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js")); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _landingPages = _interopRequireDefault(__webpack_require__(/*! ./landing-pages */ "../modules/landing-pages/assets/js/admin/landing-pages.js")); function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var _default = /*#__PURE__*/function (_elementorModules$Mod) { (0, _inherits2.default)(_default, _elementorModules$Mod); var _super = _createSuper(_default); function _default() { var _this; (0, _classCallCheck2.default)(this, _default); _this = _super.call(this); elementorCommon.elements.$window.on('elementor/admin/init', function () { _this.runHandler(); }); return _this; } (0, _createClass2.default)(_default, [{ key: "runHandler", value: function runHandler() { var _elementorAdmin$confi, _elementorAdmin$confi2; var pageName = 'e-landing-page', paths = { landingPagesTablePage: 'edit.php?post_type=' + pageName, landingPagesAddNewPage: 'edit.php?post_type=elementor_library&page=' + pageName, landingPagesTrashPage: 'edit.php?post_status=trash&post_type=' + pageName }, args = { path: (_elementorAdmin$confi = elementorAdmin.config.landingPages) !== null && _elementorAdmin$confi !== void 0 && _elementorAdmin$confi.landingPagesHasPages ? paths.landingPagesTablePage : paths.landingPagesAddNewPage, isLandingPageAdminEdit: (_elementorAdmin$confi2 = elementorAdmin.config.landingPages) === null || _elementorAdmin$confi2 === void 0 ? void 0 : _elementorAdmin$confi2.isLandingPageAdminEdit, paths: paths }; // This class modifies elements in the WordPress admin that are rendered "wrong" by the WordPress core // and could not be modified in the backend. new _landingPages.default(args); } }]); return _default; }(elementorModules.Module); exports["default"] = _default; /***/ }), /***/ "@wordpress/i18n": /*!**************************!*\ !*** external "wp.i18n" ***! \**************************/ /***/ ((module) => { "use strict"; module.exports = wp.i18n; /***/ }), /***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js": /*!******************************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***! \******************************************************************/ /***/ ((module) => { function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } 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(arr) { if (Array.isArray(arr)) return arr; } 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(arr) { if (Array.isArray(arr)) return arrayLikeToArray(arr); } 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(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } module.exports = _assertThisInitialized, 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(instance, Constructor) { if (!(instance instanceof Constructor)) { 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/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(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } 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(obj, key, value) { key = toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } module.exports = _defineProperty, 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() { if (typeof Reflect !== "undefined" && Reflect.get) { module.exports = _get = Reflect.get.bind(), module.exports.__esModule = true, module.exports["default"] = module.exports; } else { module.exports = _get = function _get(target, property, receiver) { var base = superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }, module.exports.__esModule = true, module.exports["default"] = module.exports; } return _get.apply(this, 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(o) { module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }, module.exports.__esModule = true, module.exports["default"] = module.exports; return _getPrototypeOf(o); } 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(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) setPrototypeOf(subClass, superClass); } 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(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } module.exports = _interopRequireDefault, 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(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } 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(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } 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/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(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return assertThisInitialized(self); } module.exports = _possibleConstructorReturn, 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(o, p) { module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }, module.exports.__esModule = true, module.exports["default"] = module.exports; return _setPrototypeOf(o, p); } 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(arr, i) { return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || 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(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = getPrototypeOf(object); if (object === null) break; } return object; } 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(arr) { return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || 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(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } 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(arg) { var key = toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } 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(obj) { "@babel/helpers - typeof"; return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj); } 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(o, minLen) { if (!o) return; if (typeof o === "string") return arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen); } module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }) /******/ }); /************************************************************************/ /******/ // 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 need to be wrapped in an IIFE because it need to be in strict mode. (() => { "use strict"; /*!***************************************!*\ !*** ../assets/dev/js/admin/admin.js ***! \***************************************/ /* 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 _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js")); var _module = _interopRequireDefault(__webpack_require__(/*! elementor/modules/landing-pages/assets/js/admin/module */ "../modules/landing-pages/assets/js/admin/module.js")); var _module2 = _interopRequireDefault(__webpack_require__(/*! elementor/core/experiments/assets/js/admin/module */ "../core/experiments/assets/js/admin/module.js")); var _environment = _interopRequireDefault(__webpack_require__(/*! ../../../../core/common/assets/js/utils/environment */ "../core/common/assets/js/utils/environment.js")); var _events = _interopRequireDefault(__webpack_require__(/*! elementor-utils/events */ "../assets/dev/js/utils/events.js")); var _filesUploadHandler = _interopRequireDefault(__webpack_require__(/*! ../editor/utils/files-upload-handler */ "../assets/dev/js/editor/utils/files-upload-handler.js")); var _templateControls = _interopRequireDefault(__webpack_require__(/*! ./new-template/template-controls.js */ "../assets/dev/js/admin/new-template/template-controls.js")); (function ($) { var ElementorAdmin = elementorModules.ViewModule.extend({ maintenanceMode: null, config: elementorAdminConfig, getDefaultElements: function getDefaultElements() { var elements = { $switchMode: $('#elementor-switch-mode'), $goToEditLink: $('#elementor-go-to-edit-page-link'), $switchModeInput: $('#elementor-switch-mode-input'), $switchModeButton: $('#elementor-switch-mode-button'), $elementorLoader: $('.elementor-loader'), $builderEditor: $('#elementor-editor'), $importButton: $('#elementor-import-template-trigger'), $importNowButton: $('#e-import-template-action'), $importArea: $('#elementor-import-template-area'), $importForm: $('#elementor-import-template-form'), $importFormFileInput: $('#elementor-import-template-form input[type="file"]'), $settingsForm: $('#elementor-settings-form'), $settingsTabsWrapper: $('#elementor-settings-tabs-wrapper'), $menuGetHelpLink: $('a[href="admin.php?page=go_knowledge_base_site"]'), $menuGoProLink: $('a[href="admin.php?page=go_elementor_pro"]'), $reMigrateGlobalsButton: $('.elementor-re-migrate-globals-button') }; elements.$settingsFormPages = elements.$settingsForm.find('.elementor-settings-form-page'); elements.$activeSettingsPage = elements.$settingsFormPages.filter('.elementor-active'); elements.$settingsTabs = elements.$settingsTabsWrapper.children(); elements.$activeSettingsTab = elements.$settingsTabs.filter('.nav-tab-active'); return elements; }, toggleStatus: function toggleStatus() { var isElementorMode = this.isElementorMode(); elementorCommon.elements.$body.toggleClass('elementor-editor-active', isElementorMode).toggleClass('elementor-editor-inactive', !isElementorMode); }, bindEvents: function bindEvents() { var self = this; self.elements.$switchModeButton.on('click', function (event) { event.preventDefault(); if (self.isElementorMode()) { elementorCommon.dialogsManager.createWidget('confirm', { message: __('Please note that you are switching to WordPress default editor. Your current layout, design and content might break.', 'elementor'), headerMessage: __('Back to WordPress Editor', 'elementor'), strings: { confirm: __('Continue', 'elementor'), cancel: __('Cancel', 'elementor') }, defaultOption: 'confirm', onConfirm: function onConfirm() { self.elements.$switchModeInput.val(''); self.toggleStatus(); } }).show(); } else { self.elements.$switchModeInput.val(true); var $wpTitle = $('#title'); if (!$wpTitle.val()) { $wpTitle.val('Elementor #' + $('#post_ID').val()); } if (wp.autosave) { wp.autosave.server.triggerSave(); } self.animateLoader(); $(document).on('heartbeat-tick.autosave', function () { elementorCommon.elements.$window.off('beforeunload.edit-post'); location.href = self.elements.$goToEditLink.attr('href'); }); self.toggleStatus(); } }); self.elements.$goToEditLink.on('click', function () { self.animateLoader(); }); $('.e-notice--dismissible').on('click', '.e-notice__dismiss, .e-notice-dismiss', function (event) { event.preventDefault(); var $wrapperElm = $(this).closest('.e-notice--dismissible'); $.post(ajaxurl, { action: 'elementor_set_admin_notice_viewed', notice_id: $wrapperElm.data('notice_id') }); $wrapperElm.fadeTo(100, 0, function () { $wrapperElm.slideUp(100, function () { $wrapperElm.remove(); }); }); }); $('#elementor-clear-cache-button').on('click', function (event) { event.preventDefault(); var $thisButton = $(this); $thisButton.removeClass('success').addClass('loading'); $.post(ajaxurl, { action: 'elementor_clear_cache', _nonce: $thisButton.data('nonce') }).done(function () { $thisButton.removeClass('loading').addClass('success'); }); }); $('#elementor-library-sync-button').on('click', function (event) { event.preventDefault(); var $thisButton = $(this); $thisButton.removeClass('success').addClass('loading'); $.post(ajaxurl, { action: 'elementor_reset_library', _nonce: $thisButton.data('nonce') }).done(function () { $thisButton.removeClass('loading').addClass('success'); }); }); $('#elementor-recreate-kit-button').on('click', function (event) { event.preventDefault(); var $thisButton = $(this); $thisButton.removeClass('success error').addClass('loading').next('.e-recreate-kit-error-message').remove(); $.post(ajaxurl, { action: 'elementor_recreate_kit', _nonce: $thisButton.data('nonce') }).done(function () { $thisButton.removeClass('loading').addClass('success'); }).fail(function (_ref) { var _responseJSON$data; var responseJSON = _ref.responseJSON; $thisButton.removeClass('loading').addClass('error'); if ((_responseJSON$data = responseJSON.data) !== null && _responseJSON$data !== void 0 && _responseJSON$data.message) { $thisButton.after("
    ".concat(responseJSON.data.message, "
    ")); } }); }); $('#elementor-replace-url-button').on('click', function (event) { event.preventDefault(); var $this = $(this), $tr = $this.parents('tr'), $from = $tr.find('[name="from"]'), $to = $tr.find('[name="to"]'); $this.removeClass('success').addClass('loading'); $.post(ajaxurl, { action: 'elementor_replace_url', from: $from.val(), to: $to.val(), _nonce: $this.data('nonce') }).done(function (response) { $this.removeClass('loading'); if (response.success) { $this.addClass('success'); } elementorCommon.dialogsManager.createWidget('alert', { message: response.data }).show(); }); }); $('#elementor_upgrade_fa_button').on('click', function (event) { event.preventDefault(); var $updateButton = $(this); $updateButton.addClass('loading'); elementorCommon.dialogsManager.createWidget('confirm', { id: 'confirm_fa_migration_admin_modal', message: __('I understand that by upgrading to Font Awesome 5,', 'elementor') + '
    ' + __('I acknowledge that some changes may affect my website and that this action cannot be undone.', 'elementor'), headerMessage: __('Font Awesome 5 Migration', 'elementor'), strings: { confirm: __('Continue', 'elementor'), cancel: __('Cancel', 'elementor') }, defaultOption: 'confirm', onConfirm: function onConfirm() { $updateButton.removeClass('error').addClass('loading'); var _$updateButton$data = $updateButton.data(), _nonce = _$updateButton$data._nonce, action = _$updateButton$data.action, redirectUrl = _$updateButton$data.redirectUrl; $.post(ajaxurl, { action: action, _nonce: _nonce }).done(function (response) { $updateButton.removeClass('loading').addClass('success'); var messageElement = document.createElement('p'); messageElement.appendChild(document.createTextNode(response.data.message)); $('#elementor_upgrade_fa_button').parent().append(messageElement); if (redirectUrl) { location.href = decodeURIComponent(redirectUrl); return; } history.go(-1); }).fail(function () { $updateButton.removeClass('loading').addClass('error'); }); }, onCancel: function onCancel() { $updateButton.removeClass('loading').addClass('error'); } }).show(); }); self.elements.$settingsTabs.on({ click: function click(event) { event.preventDefault(); event.currentTarget.focus(); // Safari does not focus the tab automatically }, focus: function focus() { // Using focus event to enable navigation by tab key var hrefWithoutHash = location.href.replace(/#.*/, ''); history.pushState({}, '', hrefWithoutHash + this.hash); self.goToSettingsTabFromHash(); } }); $('select.elementor-rollback-select').on('change', function () { var $this = $(this), $rollbackButton = $this.next('.elementor-rollback-button'), placeholderText = $rollbackButton.data('placeholder-text'), placeholderUrl = $rollbackButton.data('placeholder-url'); $rollbackButton.html(placeholderText.replace('{VERSION}', $this.val())); $rollbackButton.attr('href', placeholderUrl.replace('VERSION', $this.val())); }).trigger('change'); $('.elementor-rollback-button').on('click', function (event) { event.preventDefault(); var $this = $(this); elementorCommon.dialogsManager.createWidget('confirm', { headerMessage: __('Rollback to Previous Version', 'elementor'), message: __('Are you sure you want to reinstall previous version?', 'elementor'), strings: { confirm: __('Continue', 'elementor'), cancel: __('Cancel', 'elementor') }, onConfirm: function onConfirm() { $this.addClass('loading'); location.href = $this.attr('href'); } }).show(); }); self.elements.$reMigrateGlobalsButton.on('click', function (event) { event.preventDefault(); var $this = $(event.currentTarget); elementorCommon.dialogsManager.createWidget('confirm', { headerMessage: __('Migrate to v3.0', 'elementor'), message: __('Please note that this process will revert all changes made to Global Colors and Fonts since upgrading to v3.x.', 'elementor'), strings: { confirm: __('Continue', 'elementor'), cancel: __('Cancel', 'elementor') }, onConfirm: function onConfirm() { $this.removeClass('success').addClass('loading'); elementorCommon.ajax.addRequest('re_migrate_globals', { success: function success() { return $this.removeClass('loading').addClass('success'); } }); } }).show(); }); $('.elementor_css_print_method select').on('change', function () { var $descriptions = $('.elementor-css-print-method-description'); $descriptions.hide(); $descriptions.filter('[data-value="' + $(this).val() + '"]').show(); }).trigger('change'); $('.elementor_google_font select').on('change', function () { $('.elementor_font_display').toggle('1' === $(this).val()); }).trigger('change'); }, onInit: function onInit() { elementorModules.ViewModule.prototype.onInit.apply(this, arguments); this.initTemplatesImport(); this.initMaintenanceMode(); this.goToSettingsTabFromHash(); this.openLinksInNewTab(); this.addUserAgentClasses(); this.roleManager.init(); if (elementorCommon.config.experimentalFeatures['landing-pages']) { new _module.default(); } this.templateControls = new _templateControls.default(); new _module2.default(); }, addUserAgentClasses: function addUserAgentClasses() { var body = document.querySelector('body'); Object.entries(_environment.default).forEach(function (_ref2) { var _ref3 = (0, _slicedToArray2.default)(_ref2, 2), key = _ref3[0], value = _ref3[1]; if (!value) { return; } body.classList.add('e--ua-' + key); }); }, /** * Open Links in New Tab * * Adds a `target="_blank"` attribute to the Admin Dashboard menu items specified in the `elements` array, * if the elements are found in the DOM. The items in the `elements` array should be jQuery instances. * * @since 3.6.0 */ openLinksInNewTab: function openLinksInNewTab() { var elements = [this.elements.$menuGetHelpLink, this.elements.$menuGoProLink]; elements.forEach(function ($element) { // Only add the attribute if the element is found. if ($element.length) { $element.attr('target', '_blank'); } }); }, initTemplatesImport: function initTemplatesImport() { if (!elementorCommon.elements.$body.hasClass('post-type-elementor_library')) { return; } var self = this, $importForm = self.elements.$importForm, $importButton = self.elements.$importButton, $importArea = self.elements.$importArea, $importNowButton = self.elements.$importNowButton, $importFormFileInput = self.elements.$importFormFileInput; self.elements.$formAnchor = $('.wp-header-end'); $('#wpbody-content').find('.page-title-action').last().after($importButton); self.elements.$formAnchor.after($importArea); $importButton.on('click', function () { $('#elementor-import-template-area').toggle(); }); $importForm.on('submit', function (event) { $importNowButton[0].disabled = true; $importNowButton[0].value = __('Importing...', 'elementor'); if ($importFormFileInput[0].files.length && !elementorCommon.config.filesUpload.unfilteredFiles) { event.preventDefault(); var enableUnfilteredFilesModal = _filesUploadHandler.default.getUnfilteredFilesNotEnabledImportTemplateDialog(function () { $importForm.trigger('submit'); }); enableUnfilteredFilesModal.show(); } }); }, initMaintenanceMode: function initMaintenanceMode() { var MaintenanceMode = __webpack_require__(/*! elementor-admin/maintenance-mode */ "../assets/dev/js/admin/maintenance-mode.js"); this.maintenanceMode = new MaintenanceMode(); }, isElementorMode: function isElementorMode() { return !!this.elements.$switchModeInput.val(); }, animateLoader: function animateLoader() { this.elements.$goToEditLink.addClass('elementor-animate'); }, goToSettingsTabFromHash: function goToSettingsTabFromHash() { var hash = location.hash.slice(1); if (hash) { this.goToSettingsTab(hash); } }, goToSettingsTab: function goToSettingsTab(tabName) { var $pages = this.elements.$settingsFormPages; if (!$pages.length) { return; } var $activePage = $pages.filter('#' + tabName); this.elements.$activeSettingsPage.removeClass('elementor-active'); this.elements.$activeSettingsTab.removeClass('nav-tab-active'); var $activeTab = this.elements.$settingsTabs.filter('#elementor-settings-' + tabName); $activePage.addClass('elementor-active'); $activeTab.addClass('nav-tab-active'); this.elements.$settingsForm.attr('action', 'options.php#' + tabName); this.elements.$activeSettingsPage = $activePage; this.elements.$activeSettingsTab = $activeTab; }, translate: function translate(stringKey, templateArgs) { return elementorCommon.translate(stringKey, null, templateArgs, this.config.i18n); }, roleManager: { selectors: { body: 'elementor-role-manager', row: '.elementor-role-row', label: '.elementor-role-label', excludedIndicator: '.elementor-role-excluded-indicator', excludedField: 'input[name="elementor_exclude_user_roles[]"]', controlsContainer: '.elementor-role-controls', toggleHandle: '.elementor-role-toggle', arrowUp: 'dashicons-arrow-up', arrowDown: 'dashicons-arrow-down' }, toggle: function toggle($trigger) { var self = this, $row = $trigger.closest(self.selectors.row), $toggleHandleIcon = $row.find(self.selectors.toggleHandle).find('.dashicons'), $controls = $row.find(self.selectors.controlsContainer); $controls.toggleClass('hidden'); if ($controls.hasClass('hidden')) { $toggleHandleIcon.removeClass(self.selectors.arrowUp).addClass(self.selectors.arrowDown); } else { $toggleHandleIcon.removeClass(self.selectors.arrowDown).addClass(self.selectors.arrowUp); } self.updateLabel($row); }, updateLabel: function updateLabel($row) { var self = this, $indicator = $row.find(self.selectors.excludedIndicator), excluded = $row.find(self.selectors.excludedField).is(':checked'); if (excluded) { $indicator.html($indicator.data('excluded-label')); } else { $indicator.html(''); } self.setAdvancedState($row, excluded); }, setAdvancedState: function setAdvancedState($row, state) { var self = this, $controls = $row.find('input[type="checkbox"]').not(self.selectors.excludedField); $controls.each(function (index, input) { $(input).prop('disabled', state); }); }, bind: function bind() { var self = this; $(document).on('click', self.selectors.label + ',' + self.selectors.toggleHandle, function (event) { event.stopPropagation(); event.preventDefault(); self.toggle($(this)); }).on('change', self.selectors.excludedField, function () { self.updateLabel($(this).closest(self.selectors.row)); }); }, init: function init() { var self = this; if (!$('body[class*="' + self.selectors.body + '"]').length) { return; } self.bind(); $(self.selectors.row).each(function (index, row) { self.updateLabel($(row)); }); } } }); $(function () { window.elementorAdmin = new ElementorAdmin(); _events.default.dispatch(elementorCommon.elements.$window, 'elementor/admin/init'); }); })(jQuery); })(); /******/ })() ; //# sourceMappingURL=admin.js.map How To Win At Slots: The Best On The Internet Guid – Shredded Wolves

    How To Win At Slots: The Best On The Internet Guid

    How To Win At Slots: The Best On The Internet Guide

    How To Earn At Slot Machines

    These percentages invariably is an indication regarding the returns regarding the casino tend to be not a promise of what players will win. Unfortunately, your chance of winning the big a single is about nearly as good a chance as you have at winning the state lottery. But, players just cannot get away from the temptation of changing their own lives.

    • Cheating certified casinos is a new felony and may carry stiff prison terms.
    • But these relates more to roulette, and this seems pretty extreme to be used on slot machine machines as you want to double typically the stake after every single loss.
    • Usually, on three-reel slots there are not many, if any kind of, special bonus characteristics.
    • These progressive jackpots are like a new rolling jackpot; together with every spin or even bet placed by a player, some goes towards the jackpot.

    Pay desk returns are proportionate, meaning the average payback percentage is usually the same irrespective of whether you’re betting one gold coin per line or the max. In addition to movie results, you’ll find sites that concentrate in reviewing new games. There will be no blackjack- or perhaps video poker-like methods that can reduce” “to the house’s mathematical edge. There’s nothing you can do legally that will certainly change the outcome, even though scam artists sometimes have succeeded right up until caught, arrested and imprisoned.

    How To Be Able To Win At Slot Machines – Faq

    There is zero foolproof way to be able to win playing slot machines, although there are tips and techniques to aid in increasing your own chances of winning. The best slot machine game strategy will differ from player to be able to player and will depend on personal preferences. Slot games along with high ratings possess usually received the sterling review regarding a reason. Decent graphics, a simple graphical user interface, impressive characteristics, and enticing pay-out odds will assist you to give a new slot game the positive review.

    • That’s just how the odds work on modernized computerized slot devices.
    • These will tell an individual how bonus games are triggered, virtually any extra features the game has, and be it even worth enjoying for real funds.
    • ​​✅ Making use of ​the same percentage of the bankroll is one of the reliable slot machine game machine strategies.
    • Before placing your signature to up to an internet casino, find typically the site that offers the best bonus for your gameplay.
    • Normal slots can also offer” “a fixed jackpot or a high-paying bonus function.

    Superior design” “plus six bonus characteristics combine to offer players multi-level video games with cash awards. The jackpot wins on this high-class lifestyle-themed slot are as flashy because the game’s symbols. In 2013, a guy in Finland, earned over €17. ninety million playing Super Fortune online. Being realistic, although you may not locate actual figures, a review of the payout numbers will give a person a fair indication of the actual volatility of that game mostbet.

    Popular Pages

    Here are usually some of typically the best casinos bonuses on offer at this time… Here are a few more online slot machines that you can play with an RTP of over 96%. If you start thinking, “Well, they’re just credits, ” or even, “They’re already paid for, ” it’s harder to convince you to ultimately protect your bankroll. When playing for cash, always stay mindful those credits symbolize cash and right now there is a genuine expense to overbetting. Slot machine jackpots will be triggered by lining up the correct symbols. Every spin will be completely random in addition to usually nothing otherwise is necessary to trigger a win.

    • To be extremely clear, there is no way that will you can assure that you can earn at slots every time.
    • Now, there is no real guarantee of which this type of jackpot hunting program works.
    • The volatility of any slot machine sport measures the chance involved in participating in a particular slot machine game for real money.
    • So we suggest you don’t exceed 16x associated with your initial risk, as it may get costly.

    Therefore, for many regarding us players, the bottom volatility slots are a much better option. Plus, with online casinos growing considerably, it truly is no uncertainty that players could expect more becomes come. When compared to the original mechanised slot games, the particular modern video slots are unrecognizable to be able to those machines in the 1890s and earlier 1900s. Pay awareness of the paytable and the number of distinctive symbols in the game. Ideally, you want little-to-no symbols that just trigger bonus methods in a sport and some payout icons. Few “bonus” emblems around the slot allow you boost the likelihood of winning each and every spin.

    Fixed Portion Betting

    Video slots are an even more modernized creation in comparison to the traditional three-reel slot. These five-reel slots offer you notably larger wins of up in order to 50 paylines or even more. Some video slots enable players to pick their chosen quantity of active lines per spin mostbet app.

    • To be the winner, you want to rank leading of the” “tournament leaderboard by striking big.
    • If you had been to raise the bet regarding your spins larger, say to a point to were inserting spins that have been costing you $1 per spin, then the house edge might be as low since 6%.
    • Meanwhile, progressive jackpots can only end up being triggered with max bets so end up being sure to keep an eye on your bankroll in order to to hit these.
    • The inclusion regarding progressive jackpots could influence a slot’s RTP.
    • It’s simply that, when they’re regularly tested with regard to fairness, some slot machines are found to be able to pay out more regularly to players compared to others.
    • At 20 in a new row, there’s still a 7. 8% chance of every rewrite being a loser.

    Beyond basic commonalities, slots differ considerably in their amount of reels and lines, features, payouts, added bonus rounds and additional. To make typically the most out associated with your slot knowledge, you need to locate a slot that will suits your gameplay, personality, and technique. Nearly all on-line casinos reward loyal customers and new players alike. These rewards will appear in the type of bonus codes and other special offers like free spins, cashback, no first deposit bonuses plus much more.

    Can I Have Fun With Slots For No Cost And Win Genuine Money?

    A very good way to practice the way to win at slots is to play them for free. Free slot machines will let you test many game titles and find slots that suit your current playing style. It may also give you an opportunity to be able to practice your slot machine strategy. So you can hit the ground working when you start betting real cash.

    • Bonus game features such as scatters, wild symbols, in addition to multipliers, bonus times, and free moves can greatly increase a player’s possibility of” “succeeding cash.
    • This would be to create the thought that the equipment are all connected up; however, this may not be often the circumstance.
    • Playing online slot machine games responsibly is crucial to ensure you have an enjoyable and safe gambling experience.
    • Some video slots allow players to choose their chosen amount of active lines per spin.
    • These slots can become looked at as chipping away at smaller but more at ease to handle wins.
    • Other benefits include deposit bonus deals that double or triple your 1st deposit.

    Even on different machines with the similar game, we don’t know if the paybacks are identical. Game manufacturers make many versions of the identical video game available to casino operators, and each and every version has the own payback percentage. Two machines can look identical, but have got different payback percentages. Like other on line casino games, slot machines are available to play for a large range of bets from one cent up to hundreds regarding dollars. This slot game features only one bonus game but it offers players four opportunities to win lucrative multipliers, free rounds in addition to cash prizes.

    Slot Tip 9:  Try Online Slots Regarding Extra Variety

    Regular slots have a set jackpot amount you can win whereas progressive slots can reach any value (even record-breaking amounts). One associated with the most unappreciated aspects of these bonuses is not that you can get free cash-value but that having free spins lets you test out the game and familiarize yourself first. Always ensure that a person execute some due diligence, particularly” “whenever deciding on which often casinos or nearby casino to perform with. Make certain that sites are legitimate and feature reputable gaming permits set up with government bodies like the Malta Gaming Authority or the particular United Kingdom Playing Commission. Return to player percentages are the estimated amount regarding bets over a few time that typically the casino would expect to win.

    Volatility is really a measure of the slot’s payout rate after a set quantity of spins. The best trick to get better chances to beat slot machines would be to pick game titles using the highest theoretical Return to Player percentage. Using devices or software to manipulate slot machines is not only illegal but also highly unlikely to succeed. Casinos commit in security measures to prevent like activities. You find a full list of all the on the internet casinos allowed within your country about this page.

    Playing Progressive Jackpots For Once Within A Lifetime Wins

    For this cause, exactly, it is essential to go through the terms and conditions in the on line casino. This helps to discover any secrets or fine print which may stop you from winning. Typically talking, on progressive jackpot slot machines – your bets must be for the” “greatest bet amount to qualify.

    • Take your moment, relax and think about every maneuver you make – especially in added bonus games.
    • Online casino reviews should inspect a site’s game selection, bank processes, and the ranked fairness therefore you can assess if it’s the ideal site to play slots for you.
    • The theoretical RTP on the paytable of a new slot is frequently misunderstood.
    • Welcome added bonus 100% up to be able to 1 BTC plus 100 free spins
    • But among typically the most pragmatic ideas for slot machines is practicing along with free games before you start to pay real money.

    For indication, a RTP of 90%+ means it provides a good chance of paying away. Then follow guidelines step-by-step and listen to your intuition. This is the greatest technique when it will come on gambling, whether or not it’s playing video poker or playing slots.

    How To Be Able To Win Big In Slots Online

    We suggest finding an on-line casino that has certain offers and additional bonuses that don’t need a high gamble. Check out the list of respected casinos that have some of the lowest wagering needs in online gaming. Make sure to bear in mind this, though, and It is considerably more difficult to get the genuine variance or volatility of individual slot machine machine games compared with how seeking information about RTP percentages. While more casinos are beginning to demonstrate this information” “on their lobby, you may need to do a couple of pre-plan researching to look for. These progressive jackpots are like the rolling jackpot; along with every spin or even bet placed simply by a player, some goes towards typically the jackpot. The slot machine continues like this specific until someone is lucky enough in order to trigger the jackpot.

    • Yes, all regulated on-line slot machines are usually completely random.
    • Loose slots have a minimum” “RTP of 97%, although tight slots provide an RTP of below 94%, and regular slots range from 95% to 96% RTP.
    • Machines are never “due” to go very hot or cold, and recent paybacks do not offer any” “hint as to just how a machine may perform for you.
    • All the newest news about legal gambling within the regulated US states.
    • Popular games include the particular Mega Moolah series, Hall of Gods, and Loot’enkhamun.
    • What these types of bonuses did has been provide players along with an opportunity in order to use their skills to win a new bonus event.

    There” “is no doubt that these wins are impressive, but they are nowhere around a Swedish student’s January 2013 globe record earnings associated with €17. 8 million. Players make numerous mistakes when playing, meaning some carry out not get the very best out of their casino experience. Let us look from what they are, so you can incorporate all of them into the gambling strategies. We suggest obtaining slots with high RTP rates of anything over 96% and low or even medium volatility, dependent on your chance levels. In a new casino with old equipment, you nevertheless might spot many of these games occasionally. The notion that slots are both programmed in addition to random can become difficult to fathom.

    Find Your On-line Slots Casino

    The low volatility on the internet slot games consist of Mystery joker 6000, Starburst, Jack Hammer 2, and Jurassic Park. The randomly number generator gives the element associated with luck towards the gameplay, with factors just like variance and unpredictability giving slots the particular exciting potential of producing huge wins at random. The first guideline on how to be able to win slots is usually to never gamble on money which you can not afford to shed. You must arranged up price range in addition to time limits plus keep a very close eye upon your bankroll. Learning how slots function seems easy enough, nevertheless did you understand that a far more complete understanding of the particular ins and outs of your selected game could see your chances of winning improve? If you know how numerous paylines your chosen game has, likely to know very well what your possibilities of winning are.

    • Like typically the string on a coin cheat, participants would yo-yo typically the coin over the particular laser sensor, which usually would trick that into believing you needed topped it up and let you perform for free.
    • If there were a winning slot machine technique, it would’ve already been discovered chances are.
    • It’s another of our own slot machine machine hacks, nevertheless slightly more included.
    • Some variations include piled wilds, expanding wilds, walking wilds, plus sticky wild emblems.
    • A check regarding free online games will discover slots from Essential Game Technology, Scientific Games, Aristocrat Technology and other acquainted game makers.

    🚀 It could be the most effective strategy for slots if we look for typically the green side within the long run. 💡 Therefore , a few start referring to exactly what we do within just the gaming method. Defining the most effective method for slots is definitely difficult, but that one is often beneficial. It is also referred to as Levels betting since it is related to raising and lowering the stake based on the outcome.” “[newline]If you have invested those twenty money, don’t throw more money in ahead of the end of typically the week as typically the UK gambling commission recommends. Yes, gaming is an journey, but discipline is the anchor that may save you from becoming caught up. No slots strategy will become of use nearby know how in order to control your cash.

    Question One: Does The House Gets An Advantage On Slots By Blocking Winning Combinations?

    Lines can be a small blurred as video game designers experiment in all formats nevertheless there are a few general suggestions. Three-reel games set more emphasis on their top jackpots nevertheless have a lower hit frequency together with more losing re-writes. They give you the ideal chance to win big, but likewise the most effective chance in order to lose fast. In video slots along with pick’em bonuses, you” “feel the screen to select gift boxes, eating place dishes, alien creatures or other sport icons to uncover your bonuses. Video slots that feature pick’em bonuses typically have high reach frequencies with many little wins that provide an individual extended play, yet a lesser possibility at a huge jackpot. Video slots that feature free spins his or her primary bonus events generally fall between the three-reel games and the pick’em games in the volatility and the opportunity at a huge win.

    • The “strategies” you can find simply give players the illusion they could manage the game.
    • Strategies such as these can help increase your odds associated with winning slots.
    • The participant videos can offer you a sense of a game’s peaks and miles, the losing streaks and also lucrative bonus deals.
    • Take Mega Moolah, Microgaming’s most popular progressive jackpot slots, since an example, having its RTP of just 88. 12%.

    The similar number can change up three or 4 or five times in a row. But over period, the odds of the particular game lead to of which percent-edge. This sport consistently matures jackpots, but the largest one at €8. 6 million attended a player through Finland in 2015. These fancy themes draw players in order to them whilst they might not have the best RTP outcomes. Many of typically the licensed slots of which are being introduced pay more to permit holders of intellectual property because regarding the well-known or even marketable aspects associated with particular brands. Whatever game you enjoy, whether it be a table game or typically the slots, there will just always be additional players around you with comments or perhaps reactions to the particular game.

    How In Order To Play Online Slot Machines: Our Top 10 Tips

    If you decide to play for real cash, make sure that a person do not enjoy more than you can afford shedding. Always choose safe online casinos accredited in your legislation. Constantly winning your bets is the form of anxiety relief among participants. By paying focus to a slot’s stats and features and the many out of a new casino’s promotion, a person can keep rotating and winning regarding a long time period. Determining how much cash a person can afford to pay on slot gambling without negatively affecting your financial health is important to do before you start playing.

    • But presently there are approaches that will will help you get the many out of the games.
    • We also touched on some sport options that may provide better probabilities of winning, from your mathematical standpoint.
    • Our rankings, opinions, and evaluations are based on industry knowledge, item testing, and private opinion of those providers.
    • The State of Nevada legalized fully skill-based electronic video games in 2015, and it’s expected some games will help to make their way onto casino floors within 2016.
    • But you still have to have a risk-free environment to check typically the tactics we advise.

    However, the outcome of a free spin and rewrite and a real-money spin is just as random. And subject to the particular casino’s wagering specifications, whatever you win through free spins is yours to retain. Betting the greatest number of money a game practically always gives you an improved payback percent. There’s often a new disproportionate jump within percentage once you bet a third or maybe, rather than 2. If you’re performing real-money slot equipment, you might end up being tempted to enjoy fewer win ranges with an elevated bet per range.

    Other Best Slot Machines To Play

    The top was a metal pole that was bent on one end, and the bottom the strand of cable. The wire might be inserted in the coin slot machine to hit a metal contact, in addition to then the top would certainly be jammed inside the coin slot. The combination completed a new circuit that would certainly activate a gold coin dispenser and deliver free coins serving to the slot dish.

    The abbreviation RTP represents the percentage regarding the money of which a slot machine returns to a new player. It ranges between 90% plus 97%, plus the information can often be obtained online. Slot machine odds work within a similar fashion to the roulette example, except presently there are many more possibilities on typically the slots.

    Choosing Plus Playing Games

    In some cases, for example, if you choose to register at a suggested online casino, we may get a percentage or other economic compensation when you go to an outbound hyperlink on the website. Although you may not need to be able to be logged into an account, winnings from demo have fun will not be available to declare. Bonus rounds are usually key if a person want to win jackpots and uncover free spins, and are an excellent chance to make typically the most of your current winnings. You nonetheless need to adhere to some of the earlier tips for slots.

    Playing the particular free versions of real money slots is usually a great method to learn the rules before putting your money at risk. So, if you may afford to enjoy these, you can definitely find you have a better chance of winning larger and more frequently. However, if you fail to afford in order to lose the money most likely betting on these types of machines, it’s best to stay with lower denomination options. One of any selection of fantastic progressive jackpot game titles from NetEnt casino, Hall of Gods is really a five-reel, 20 payline game. That’s where you’ll get the chance to play for the incredible Mega Jackpot.

    Understanding Your Slot

    Free re-writes bonuses are induced within games, and permit you to rewrite the reels again for free. It’s common to win many free spins at once when playing online slots. 📌 Prior to starting real-money gaming, check a particular game’s Return to Player percentage.

    • Most online casinos provide lucrative welcome additional bonuses to entice fresh players.
    • Some were not any more than a rounded piece of metal, with no design.
    • This way an individual can usually get started on slot machine game machines wonderfully.
    • If you’re searching for tips plus advice for a game, we suggest studying a few on-line slot reviews.
    • By placing wagers in accordance with your spending budget, you’ll be in a position to keep playing more time even when an individual don’t win virtually any huge amounts.

    💵 The first point you must do is to think that about the amount of money you can pay for to spend” “on gambling. Setting the budget is among the vital techniques for casino slots. You have in order to use funds inside moderate volumes of which will not ruin your or your family’s everyday needs in any approach. For example, this can be $20 per week or $50 per 30 days – pick an amount that will not necessarily affect your capability of covering the fundamental expenditures.

    Is There A 100% Succeeding Slots Strategy?

    But if we earn 11 dollars on our first spin, it raises the bankroll to $60, so the following stake requires to be $1, 20. ​​✅ Applying ​the same portion of the bankroll is probably the reliable slot machine game machine strategies. The only inconvenience is that we need to calculate prior to every spin.

    Picking the right slots involves understanding just how slots are created plus the potential distinctions between games. The main two components inside your gameplay are the RTP and the volatility. It works best upon games with even money odds, so we have got to adjust the particular strategy somewhat to suit slots. We also recommend always setting yourself a maximum limit whenever using this tactic.

      Leave a Reply

      Your email address will not be published. Required fields are marked *