/*! 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 ما هي أهم 5 عوامل تدفع 1xbet الى قمة مواقع المراهنات لعام 2021 – Shredded Wolves

    ما هي أهم 5 عوامل تدفع 1xbet الى قمة مواقع المراهنات لعام 2021

    وان إكس بت

    Content

    صراحة لا ترقى هذه الملاحظات لمستوى اعتبارها عيوبا جوهرية، فكل منصات المقامرة والمراهنات الرياضية المنافسة تستخدم نفس الأساليب. تُعتبَّر هذه الخيارات هي الأفضل لدى موقع 1xbet، لكن توجد العديد من الخيارات الأخرى التي يُمكنك التعرف عليها واختيارها عندما تقوم بالحصول على حسابك الجديد في الموقع.” “[newline]الهدف الأساسي الذي يدفعك للاستمتاع بلعبة 1xbet collision computer video game الممتعة مقابل مال حقيقي هو بسيط، ولكن عليك أولًا الحصول على حساب في الموقع. أبرز الملاحظات السلبية حول تطبيق 1XBET تنحصر في فرض بعض القيود الجغرافية، فطبيعة الألعاب المتوفرة للرهان تختلف من بلد لآخر وفقا” “للقوانين المحلية المنظمة لمجال المراهنات اونلاين. أيضا العوائد من تداول عقود الخيارات الثنائية أفضل إذ تصل لحدود 98%، وبالتالي لا مجال لمقارنتها مع الأرباح الهزيلة من المقامرة على نتائج المباريات الرياضية.

    • Algorithm steps 1xbet، هل هو مجرد سكربت باهظ الثمن أم أنه حقيقيي يمكن الاستفادة منه؟ يُعَدُّ موقع remedy steps مصدرًا لسكربت الطيارة الذي يُقدم مقابل تكلفة تتراوح بين 500$ و600$.
    • لتنفيذ العملية ، يمكنك استخدامها تسجيل الدخول للجوال 1xBet إصدار سطح المكتب أو البوابة الرسمية المألوفة للكثيرين.
    • وفي وقتًا سابق أكد الأمين العام لهيئة كبار العلماء في الأزهر الشريف إن ممارسة الألعاب مقابل دفع أموال لتحقيق مكاسب أو خسارة يُعد من القمار المحرم شرعًا.
    • يمكن للاعبين أيضًا استخدام الوظائف الإضافية للمستعرض الأخف وزناً ، إما لنظام التشغيل Windows أو Linux.
    • إذا كنت تبحث عن “algorithm steps 1xbet”، فأنت بالتأكيد على دراية بالميزات التي يقدمها والذي يعرف بسكربت” “بالطيارة 1xbet.

    لعلك واجهت صعوبة في كيفية الحصول عليه مجانا هل هو مجرد سكربت عادي أم هناك قيمة حقيقية يقدمها، في هذا المقال سنشرح موقع formula actions 1xbet وكيفية استخدامه. للقيام بذلك ، من الأفضل استخدام نظام دفع مثبت وموقع موثوق به لشركات المراهنات. من أجل تسجيل xBet بهذه الطريقة ، تحتاج إلى ملء ملف تعريف مستخدم جديد كامل. الميزة الرئيسية لهذه الطريقة هي عدم الحاجة إلى العودة لملء جميع حقول الاستبيان في المستقبل.

    أفضل Seven منصات للتدوين الإلكتروني لإنشاء مدونة احترافية بسهولة

    أود الاشارة إلى أن Curacao Video clip gaming يعد من أشهر تراخيص المراهنات والقمار أونلاين، إذ يشتغل تحت مظلته أزيد من 400 موقع للألعاب. فإذا كُنت تنوي فتح حسابٍ في 1xbet للمراهنات الرياضية اون لاين، فكل ما عليك فعله هو التوجه إلى” “موقع 1xbet الموجود في هذه الصفحة. تم حظر تطبيق 1XBET في العديد من الدول مثل أمريكا وروسيا لعدة أسباب أهمها مخالفة اللوائح المحلية المنظمة لمجال القمار أو ممارسة” “التهرب الضريبي. مثلا تم سحب ترخيص 1XBET في أمريكا لأنه ينظم المراهنات في مجالات ممنوعة محليا مثل مصارعة الديوك والمباريات الرياضية لفئة أقل من eighteen سنة. ومع ذلك ، بالنسبة لشركة المراهنات ، فإن الأولوية بالطبع هي كرة القدم. الجانب الرئيسي الذي يبرز في كثير من الأحيان في خدمات مراهنات عربي 1xBet, – أسعار صرف عالية 1xbet.

    • مع ذلك، فقد تضطر إلى الانتظار لمدة تصل إلى خمسة أيام للحصول على أموالك.
    • باعتبارها واحدة من كبرى شركات المراهنات، تقدم 1XBET الفرصة لكل شخص لتحقيق أرباح.
    • هذا هو السبب في المراهنة مصر 1xBet يمكن اعتباره موقعًا موثوقًا وآمنًا للمراهنات ، على الرغم من تاريخه القصير.
    • من المستحسن أن تتخذ اختيار” “العملة بمسؤولية قدر الإمكان ، حيث سيتم حساب جميع الرهانات فيها ، وتغييرها في حسابك بعد فشل التسجيل.

    يمكن لمستخدمي iPhone تنزيل تطبيق 1xBet بالانتقال إلى إصدار الهاتف المحمول من موقع 1xBet، والتمرير أسفل الشاشة واختيار «تطبيقات الهاتف المحمول». يمكنهم بعد ذلك اتباع التعليمات لتنزيل التطبيق وتثبيته من متجر التطبيقات. تضمن هذه الطريقة لمستخدمي iOS الوصول السريع والسهل إلى النظام الأساسي 1xBet على أجهزتهم.

    💎ما الذي يجعل 1xbet مُميزًا عن وكلاء المراهنة اونلاين الآخرين؟

    ويتم تقديم هذه الألعاب من قبل مجموعة كبيرة من المُطورين المشهورين بالإضافة إلى الإستوديوهات المباشرة أيضًا إلى بعض الشركات الناشئة. هذا جيد لأنك سوف تتمكن من الإستمتاع بالألعاب الشهيرة، وفي نفس الوقت سُتتاح لك فرصة تجربة عناوين جديدة ربما لم تلعبها من قبل. أبرز الملاحظات السلبية حول تطبيق 1XBET تنحصر في فرض بعض القيود الجغرافية، فطبيعة الألعاب المتوفرة للرهان تختلف من بلد لآخر وفقا للقوانين المحلية المنظمة لمجال المراهنات اونلاين. أيضا يلاحظ بطئ نسبي في عملية التحقق من الحسابات الجديدة، وهذا راجع بالأساس إلى الحجم الكبير للمشتركين الجدد من المبتدئين والذي يفتقر اغلبهم للخبرة في التعامل مع إجراءات تفعيل الحسابات. ملاحظة أخرى مهمة هي اعتماد شركة 1XBET لسياسة استخدام صارمة، لذلك يتم طرد المخالفين بسرعة مع حجز حساباتهم على التطبيق.

    من المهم ربط رقم الهاتف الجوال بالحساب إذ أنه يزيد من أمان الحساب كما أنه يمكن الزبون من زيادة الفرص في الربح، خاصةً الفوز بالجائزة الكبرى والعديد من المكافآت. بعد إدخال رقم الهاتف، يجب النقر على “تمكن التحقق من خلال الهاتف في الحساب”، بعد ذلك يتم تلقي رسالة على الهاتف تحتوي على رمزٍ، يجب ادخله لربط الهاتف. سيطلب موقع 1xBet عربي من المستخدم التحقق من البريد الإلكتروني لحماية الحساب وتنشيطه.

    تجربة اللعب السهلة الاستخدام في موقع 1xbet

    كما أنه يُقدم أيضًا أكثر من 3،000 لعبة يُمكنك الإستمتاع بها بشكلٍ مجاني أو بمال حقيقي. علاوة على ذلك، فإنك سوف تحص على مكافأة حصرية بقيمة 130 يورو عند تنزيل هذا التطبيق واللعب من خلاله. شخصيا اتداول فقط على منصة Quotex أو Trousers pocket Option، لكن يمكنك التعرف على” “بقية المنصات المنافسة في الدليل الذي سبق اقتراحه. بدأ موقع 1XBET في تقديم خدماته سنة 3 years ago انطلاقا من دولة قبرص، لكنه سرعان ما وسع نطاق أعماله وخضع لاعادة هيكلة شاملة سنة 2012 مع التركيز أكثر على سوق المراهنات الرياضية وألعاب كازينو أون لاين. حاليا تمتلك شركة وان اكس بيت عشرات الملايين من العملاء وتحقق مداخيل” “صافية تفوق ملايير الدولارات سنويا، كما أنها تتمتع بسمعة طيبة خصوصا مع دعمها لوسائل دفع متنوعة مع امكانية السحب السريع للأرباح دون قيود. الهدف الأساسي الذي يدفعك للاستمتاع بلعبة 1xbet crash sport الممتعة مقابل مال حقيقي هو بسيط، ولكن عليك أولًا الحصول على حساب في الموقع.

    • ما هذا الدوري؟ قبل التسجيل ، تحتاج إلى التحقق مما إذا كان الموقع يحتوي على ما تحتاجه ، إذا كان هناك.
    • فإذا كُنت تنوي فتح حسابٍ في 1xbet للمراهنات الرياضية اون لاين، فكل ما عليك فعله هو التوجه إلى” “موقع 1xbet الموجود في هذه الصفحة.
    • توفر التطبيقات تجربة مراهنة كاملة عبر الهاتف المحمول، مع خيارات المراهنة المباشرة والإشعارات في الوقت الفعلي وأمان محسّن لحماية بياناتك.
    • يقدم تطبيق الهاتف المحمول 1xBet مجموعة كبيرة من الأحداث والأسواق، بما في ذلك أكثر من 60 رياضة مثل كرة القدم وكرة السلة والتنس وهوكي الجليد والكرة الطائرة.

    لعبة العجلة المحظوظة مثلاً، تكون مجانية مرةً كل أربعين و عشرين ساعة، وتمكن المستخدم من التدوير مجاناً،يمكن أن تفوز ب X2 وهي مضاعفة الرهان في لعبة تفاحة الحظ في حالة الفوز مثلاً. كيف يتم التحصل على هذا الفوز؟ يكفي الدخول إلى بوابة المكافآت من خلال النقر على بوابة المكافآت التي توجد على يمين الصفحة وتحتوي على عدد ثلاثة نجوم. أما لعبة التفاحة المحظوظة التي تمثل في إختيار عشر تفاحات جيدة دون إختيار تفاحة سيئة، يكفي إدخال المبلغ المراهن عليه، ثم النقر على زر ضع الرهان. إذا كنت من عشاق الرهان، ولكن لا تريد المراهنة على المباريات، يقدم لك 1xBet المغرب طرق سهلةً جداً لربح المال دون أن تكون من أكبر متابعي الرياضة. هذه الطرق تتمثل في 1XGAMES، والعاب TV علاوة على غيرها من الألعاب التفاعلية.

    مواضيع ذات صلة بـ 1xbet ما لا تعرفه عن أشهر شركة رياضية

    المراهنة على احتمالات مباريات كرة القدم ، المقدمة بشكل صحيح هنا ، يمكن أن تحسد عليها أيضًا في العديد من مجالات العمل البديلة. يثبت هذا النوع بالسرعة نفسها مرة أخرى أن bônus bata 1xbet تحصل على المزيد من خلال اختيار التعاون أثناء استخدام شركة متخصصة. ربما تكون كرة القدم بشكل عام هي أنشطة الأنشطة الرياضية الأكثر تطورًا بشكل صحيح في جميع أنحاء مكان العمل. هناك بعض الدول العربية التي” “تسمح للاعبيها بالمُقامرة والمُراهنة مثل مصر ولبنان والمغرب. أما بقية الدول العربية فهي تحظر كل أنشطة المُقامرة والمراهنة في المنشآت العامة والخاصة.

    هذا شيء يجب أن توليه اهتمامًا خاصًا للأشخاص الذين لم يقرروا استخدامه الرمز الترويجي ل 1xBet. الرمز الترويجي المجاني 1xBet نصائح الرهان المهنية التي يقدمها الخبراء هي الحل المثالي للأشخاص الذين بدأوا للتو طريقهم في مجال الرهان. بهذه الطريقة فقط يستطيع المراهنون المبتدئون حماية أنفسهم من خيبة الأمل. فيما يلي بعض النصائح والتوصيات حول أفضل العاب وان اكس بت ، والتي يمكن أن تزيد من فرصك في الفوز وتجعل تجربة الرهان والألعاب الخاصة بك أكثر متعة. يقع المقر الرئيسي لشركة 1xbet عربي في قبرص، وتحمل الشركة ترخيص لجنة كوراساو لألعاب القمار. وقد دخلت الشركة في عقود رعاية مع كيانات رياضية مُتعددة مثل الإتحاد الإفريقي لكرة القدم، والدوري الإسباني، ونادي برشلونة الإسباني، ونادي ليفربول الإنجليزي.

    “وان إكس بت

    بدأ موقع 1XBET في تقديم خدماته سنة 2007 انطلاقا من دولة قبرص، لكنه سرعان ما وسع نطاق أعماله وخضع لاعادة هيكلة شاملة سنة this particular past year مع التركيز أكثر على سوق المراهنات الرياضية وألعاب كازينو أون لاين. شخصيا اتداول فقط على منصة Quotex أو Traditional bank account Option، لكن يمكنك التعرف على بقية المنصات المنافسة في الدليل الذي سبق اقتراحه. هل صادفت أحد المنشورات الدعائية المشابهة، وترغب بمعرفة المزيد من المعلومات عن شركة 1XBET والتحري عن مصداقيتها بدقة. خصوصا أن دليلنا سيتطرق لكل الجوانب الايجابية والسلبية، كما سنشرح بالتفصيل كيفية التعامل مع التطبيق بكفاءة.

    • الميزة الرئيسية لهذه الطريقة هي عدم الحاجة إلى العودة لملء جميع حقول الاستبيان في المستقبل.
    • سيطلب موقع 1xBet عربي من المستخدم التحقق من البريد الإلكتروني لحماية الحساب وتنشيطه.
    • أيضا العوائد من تداول عقود الخيارات الثنائية أفضل إذ تصل لحدود 98%، وبالتالي لا مجال لمقارنتها مع الأرباح الهزيلة من المقامرة على نتائج المباريات الرياضية.
    • موقع الهاتف المحمول وسطح المكتب لشركة المراهنة بعيد عن الفرصة الوحيدة للوصول إلى منصة الرهان.

    يُقدم Xbet أيضًا أكثر من 5،000 لعبة كازينو عالية الجودة يُمكنك الإستمتاع بها على هاتفك الذكي أو جهازك اللوحي بسهولة، ويتم تقديم هذه الألعاب من قِبل كبار المُطورين العالميين. يمنح 1xbet bonus للاعبيه مجموعة رائعة من المكافآت والعروض الترويجية الجذّابة التي يُمكنك الحصول عليها في كل جلسة لعب تقريبًا! بالإضافة إلى ذلك، فإنه يُقدم للاعبيه بثًّا مباشرًا ومجانيًا للمباريات العالمية في كافة الرياضات ويُمكنك مشاهدته عبر هاتفك الذكي أو جهازك” “اللوحي أو الكمبيوتر. يخدم موقع 1xbet أكثر من مليون عميل حول العالم، وهو يتوسع بمُعدَّل مرتفع.

    كيفية تقديم مكافأة 1xbet العربية?

    أود مسبقا الإشارة الى أن فتح حساب على تطبيق 1XBET يتطلب بلوغ eighteen سنة على الأقل، والإقامة في بلد غير مقيد جغرافيا من طرف الشركة. ومثلما توجد الكثير من الرياضات التقليدية، فإن الرياضات الإلكترونية مفضلة أيضا لمن يهمهم ربح مال حقيقي عبر المراهنات على موقع 1xbet الرياضي. فعلى موقع وان إكس بيت مثلا،” “توجد عشرات الأنواع من الرياضة الإلكترونية التي أنت ربما ستجيد بها وتكون بارعاً بالفوز بها ويمكنك إيجاد” “ثغرة الربح من ألعاب 1xbet. شركة 1XBET موثوقة وامنة فهي تشتغل وفق ترخيص رسمي صادر عن هيئة Curacao Betting المنظمة لسوق المراهنات الالكترونية والذي يغطي كل أنشطتها حول العالم. لعلك واجهت صعوبة في كيفية الحصول عليه مجانا هل هو مجرد سكربت عادي أم هناك قيمة حقيقية يقدمها، في هذا المقال سنشرح موقع requirements techniques 1xbet وكيفية استخدامه. مع ذلك، إذا كنت ترغب في الاستمتاع باللعبة مجانا، يمكنك الوصول للنسخة التجريبية من لعبة impact 1xbet بدون إنشاء حساب.

    • زاد الجدل حول” “هكر لعبة الطيارة 1XBETCrash Hack كيفية تنزيل هاك الطيارة وتفعيله بشكل مجاني، لتعويض أي خسارة على موقع المراهنات 1XBET، وسوف نتحدث عن 1XBET Aviator Predictor” “ذلك بالتفصيل.
    • أيضا يلاحظ” “بطئ نسبي في عملية التحقق من الحسابات الجديدة، وهذا راجع بالأساس إلى الحجم الكبير للمشتركين الجدد من المبتدئين والذي يفتقر اغلبهم للخبرة في التعامل مع إجراءات تفعيل الحسابات.
    • شخصيا اتداول فقط على منصة Quotex أو Wallet Option، لكن يمكنك التعرف على” “بقية المنصات المنافسة في الدليل الذي سبق اقتراحه.
    • منذ العام 2019، أصبحت 1XBET الشريك الرسمي لمراهنات نادي برشلونة، ما يؤكد على التزامها بالتميز والعمل مع النخبة فقط.

    يعد سباق الخيل خيارًا شائعًا آخر في 1xbet، حيث يقدم مجموعة متنوعة من خيارات الرهان، بما في ذلك الرهانات الفردية والزوجية والرهانات الثلاثية ورهان بدون مخاطر 1xbet. تقدم 1xBet مجموعة واسعة من عروض البونص المغرية للاعبين الجدد والحاليين. يمكن للمستخدمين الاستفادة من مجموعة متنوعة من العروض الترحيبية والمكافآت الخاصة التي تضيف قيمة إضافية إلى تجربة اللعب.

    من أين تحصل عليه 1xbet مراهنات الرمز الترويجي المجاني؟

    ولهذا السبب نقدم مجموعة” “متنوعة من طرق الدفع التي تجمع بين الأمان والسرعة والبساطة. وأضاف بدوي أن اللجنة عقدت اجتماعًا عاجلاً مؤخرًا، حيث قامت بإرسال توصيات متعددة للجهاز القومي لتنظيم الاتصالات بشأن تطبيق 1xbet بالتنسيق مع المجلس الأعلى للإعلام الذي يتولى رصد التطبيقات المخالفة للمعايير ويعمل على التنسيق مع قطاعات الاتصالات الأخرى. وفي وقتًا سابق أكد الأمين العام لهيئة كبار العلماء في الأزهر الشريف إن ممارسة الألعاب مقابل دفع أموال لتحقيق مكاسب أو خسارة يُعد من القمار المحرم شرعًا. إذا كانت لديك مشكلة في الوصول لزيارة موقع ويب Betwinner ، فقد يعني ذلك أن بلدك قد تم حظر جهاز الكمبيوتر أو الهاتف الذكي الخاص بك.

    “كذلك شحن الحساب متوفر عبر طرق متعددة مثل استخدام البطاقات المصرفية، البنوك الالكترونية أو العملات الرقمية. لعبة 1xbet accident هي لعبة قيادة طائرة، وتمثل مفهوم جديد نسبيًا في ألعاب القمار التي يقدمها لنا شركة برمجيات Spribe Game playing ضمن 1xbet game online games. ساهم في ذلك ليست مربحة واحدة الرمز الترويجي في مصر 1xBet, علاوة, من خلالها استرداد النقود في حالة الخسارة ، وكذلك تصبح صاحب هدايا قيمة. تسمح 1xBet لك المكافأة من شركة المراهنات بالمراهنة رياضة أكثر ربحية وكذلك زيادة فرص يفوز. يقدم الموقع الرسمي لشركة المراهنة 1xBet المراهنات الرياضية ألعاب كل يوم. لاستخدام خدمات مراهنات ، يجب أن تمر التسجيل عبر الإنترنت 1xBet. الخيار متاح لجميع البالغين المصريين.

    قُم بالتسجيل للحصول على أفضل المكافآت

    يُمكن للاعبين الوصول إلى خيارات الرهان والعاب الكازينو من خلال علامات التبويب الموجودة بأعلى الصفحة الرئيسية، بالإضافة إلى القوائم التي تجدها على يمين ويسار الصفحة الرئيسية. تدعم واجهة الموقع التنقل السهل والسريع بغض النظر عن الجهاز الذي تستخدمه. إذا كنت لا ترغب في تحميل تطبيق app 1xbet على هاتفك، فيُمكنك استخدام مُتصفحك للدخول على لفتح موقع الويب والدخول منه على حسابك للإستمتاع بالرهان الرياضي أو العاب الكازينو اون لاين.

    • Betwinner هي شركة مراهنات تأسست في روسيا في عام this year (Curaçao eGaming n°8048/JAZ) والتي يمكنها منذ عام 2020 أن تتباهى بكونها المشغل رقم واحد” “في العالم فيما يتعلق بعدد المراهنين الذين يأتون من جميع قارات الأرض.
    • ومثلما توجد الكثير من الرياضات التقليدية، فإن الرياضات الإلكترونية مفضلة أيضا لمن يهمهم ربح مال حقيقي عبر المراهنات على موقع 1xbet الرياضي.
    • البعض قد يتسائل ما هو أحسن بروكو كود لموقع المراهنات الرياضية 1XBET لسنة 2024؟ الرمز الترويجي MAXBONUSXXX أفضل بونص إيداع يقدمه موقع وان اكس بت للمراهنات، والذي يتيح الحصول على رصيد إضافي في حدود 200% من المبلغ المودع لأول مرة.
    • أغلب هذه المنصات تقدم فرصة التداول على حسابات تجريبية، وهو ما يضمن لك أخذ الوقت الكافي للتعلم وتجنب المغامرة بالرأس مال.
    • تسمح 1xBet لك المكافأة من شركة المراهنات بالمراهنة رياضة أكثر ربحية وكذلك زيادة فرص يفوز.

    لتجنب الخسارة في لعبة الطائرة، كل ما عليك هو تحميل سكربت الطيارة 1xbet مجانا لتحصل على اكتمالات كبيرة بالفوز. كذلك شحن الحساب متوفر عبر طرق متعددة مثل استخدام البطاقات المصرفية، البنوك الالكترونية أو العملات الرقمية. أيضا كازينو 1XBET يقدم ميزة الاسترداد النقدي لكبار المراهنين (VIP cashback)، والذي ينقسم إلي 6 ستويات VIP. باختصار كلما ارتفعت قيمة الرهانات و” “المستوى، إلا وارتفعت قيمة” “الاسترداد النقدي الذي يعود لرصيد” “الحساب. لعبة 1xbet crash هي لعبة قيادة طائرة، وتمثل مفهوم جديد نسبيًا في ألعاب القمار التي يقدمها لنا شركة برمجيات Spribe Game playing ضمن 1xbet video game titles.

    Xbet: مدى السرعة تسجيل على موقع شركة المراهنة

    هذه الهامش الكبير من حيث معدل الربح تم استغلالها بشكل سي من طرف النصابين في الدعاية لبرامج تهكير العاب 1XBET، والتي” “يجب التحذير ن استخدامها بكل تأكيد. تتمتع التطبيقات المخصصة للهاتف المحمول وسطح المكتب بسمعة طيبة في أدائها، بينما يحافظ حوالي 1000 حدث يوميًا على سرعة وتيرة الحركة. إذا تلقيت الرمز الترويجي في مصر 1xBet, يمكنك التأكد من أنها قانونية تمامًا. تسجيل xBet وفقًا لبيانات الأشخاص الآخرين ، وكذلك في سن أقل من 18 عامًا ، من غير الممكن تمنع الشركة هؤلاء المستخدمي. إذا تم إصدار رد للرهان الذي تم إجراؤه ، فلا يمكنك إعادة استخدام رمز المكافأة.

    • ضع في اعتبارك ، يمكن فقط للأفراد الذين بلغوا سن 18 عامًا أن يتحولوا إلى عميل لدى الشركة.
    • كذلك شحن الحساب متوفر عبر طرق متعددة مثل استخدام البطاقات المصرفية، البنوك الالكترونية أو العملات الرقمية.
    • احصل على آخر المستجدات المتعلقة بالعرض الخاصة وتحصل على أفضل رمز مجاني كل يوم.
    • نود أن نكون صريحين معكم، فلعبة الطيارة تعتمد على توليد الأرقام العشوائية، وهذا بالفعل ما يقوم به السكربت الذي يُقدمه موقع situations ، لذا، يُعتبر الأمر محتملًا أن يخطئ أو يصيب.
    • تقدم 1xbet المساعدة التقنية على مدار 24 ساعة في اليوم عبر البريد الإلكتروني والهاتف والرسائل الحية.
    • يضمن هذا التخصيص أن المستخدمين يمكنهم تكييف تجربتهم لتلبية احتياجاتهم وتفضيلاتهم المحددة، مما يجعل التطبيق أكثر سهولة في الاستخدام وكفاءة.

    إذا كنت من هذا النوع فبكل تأكيد صادفت أحد المناشير الدعائية” “لمنصة 1XBET، والتي تعد من أشهر مواقع المراهنات الرياضية التي عرفت انتشارا واسعا خلال السنين الماضية. زاد الجدل حول” “هكر لعبة الطيارة 1XBETCrash Endanger كيفية تنزيل هاك الطيارة وتفعيله بشكل مجاني، لتعويض أي خسارة على موقع المراهنات 1XBET، وسوف” “نتحدث عن 1XBET Aviator Predictor ذلك بالتفصيل. زاد الجدل حول” “هكر لعبة الطيارة 1XBETCrash Hack كيفية تنزيل هاك الطيارة وتفعيله بشكل مجاني، لتعويض أي خسارة على موقع المراهنات 1XBET، وسوف نتحدث عن 1XBET Aviator Predictor” “ذلك بالتفصيل.

    ما مدى صعوبة الفوز في 1xbet؟

    بعد أن تمت عملية التسجيل كاملةً، وتم إدخال العنوان البريدي وكلمة السر لدخول للصفحة الرئيسية. بشكل عام، 1xBet هي شركة مراهنات عبر الإنترنت تتمتع بسمعة طيبة وموثوقة وتوفر مجموعة متنوعة من خدمات المراهنة والألعاب، ورغم أن الفوز في 1xBet قد لا يكون سهلاً، إلا أن هناك استراتيجيات ونصائح معينة يمكن أن تكون أكثر نجاحًا. وتتمثل طريقة اللعب في وضع مبلغ رهان ثم الضغط على زر “بدء اللعبة”، ويبدأ بعدها اللعب حيث ترتفع الطائرة في الجو، وكلما زاد ارتفاع الطائرة زاد معدل الربح.

    • في متجر الرموز الترويجية للعرض ، لدى المستخدم فرصة للاختيار أهلا بك العرض وشرائه.
    • ومن الجدير بالذكر أن هذا تطبيق 1xbet عربي مُتاح بلغتيْن فقط وهما اللغة الإنجليزية والروسية فقط.
    • سيتيح لك هذا الأمر الانتقال بين العديد من الإصدارات التجريبية للألعاب على 1XBet، وستجد من ضمنها 1XBet Collision و Aviator.
    • يُمكنك من” “خلال هذا السكربت تحديد لحظة سقوط الطائرة في لعبة الطيارة، مما يُمكِّنك من التوقع والرهان بنجاح.

    مثلا لو كانت شركة” “1XBET متورطة في أنشطة غير قانونية لما تم السماح لها بالدعاية في كبريات المنافسات الرياضية مثل الدوري الانجليزي والاسباني، والمتعارف على فرضها لوائح صارمة لقبول الاشهارات. يشتهر موقع 1xBet بمجموعة الألعاب الكثيرة والمكافآت السخية والالتزام الكبير بأمن اللاعب، وتوفر الخلفية المثالية لمغامرات لعبةCrash. لاستخدام وان اكس بت، منصة المراهنة الرياضية المفضلة عبر الإنترنت للمراهنين من دول العالم العربي. نريد أن نقدم أفضل شرح للمبتدئين، ولذلك صممت هذه المقالة بشكل يراعي عدم تمرسك في المراهنات الرياضية. وبالمثل، إذا كنت خبيرا، ستساعدك على تحقيق أقصى قدر من أرباحك في من خلال تزويدك بالنصائح والإرشادات والشروحات التفصيلية لميزات المنصة. في الختام، يمكن القول إن 1xBet-كازينو/ يبرز كوجهة مميزة لعشاق الرهانات والألعاب عبر الإنترنت.

    شرح موقع 1xbet – عن شركة الرهانات الرياضيّة 1xbet

    تأسست شركة التي يتبعها تطبيق 1XBET للمراهنات في روسيا عام 3 years ago ومنذ عام 2020 أصبحت واحدة من أبرز المشغلين في هذا المجال على مستوى العالم، حيث جذبت عددًا كبيرًا من المراهقين من جميع القارات. Betwinner هي شركة مراهنات تأسست في روسيا في عام spring 2012 (Curaçao eGaming n°8048/JAZ) والتي يمكنها منذ عام 2020 أن تتباهى بكونها المشغل رقم واحد” “في العالم فيما يتعلق بعدد المراهنين الذين يأتون من جميع قارات الأرض. ومن الجدير بالذكر أن الودائع التي تتم باستخدام العملات الرقمية المُشفرة لا تكون مُؤهلَّة لهذه المكافأة ولا أي مكافأة أخرى يُقدمها x bet.

    • سنحاول استغلال هذه الفقرة للإجابة على أبرز التساؤلات المتداولة حول 1XBET، والتي ستساعدك على التحقق من مصداقية التطبيق وشروط استخدامه بكفاءة.
    • أود مسبقا الإشارة الى أن فتح حساب على تطبيق 1XBET يتطلب بلوغ eighteen سنة على الأقل، والإقامة في بلد غير مقيد جغرافيا من طرف الشركة.
    • إذا كانت لديك مشكلة في الوصول لزيارة موقع ويب Betwinner ، فقد يعني ذلك أن بلدك قد تم حظر جهاز الكمبيوتر أو الهاتف الذكي الخاص بك.
    • لذلك، إن لم يكن للمستعمل بريد إلكتروني، فمن الأفضل انشائه قبل إنشاء الصفحة الخاصة على 1xBet عربي.

    لعلك واجهت صعوبة في كيفية الحصول عليه مجانا هل هو مجرد سكربت عادي أم هناك قيمة حقيقية يقدمها، في هذا المقال سنشرح موقع conditions actions 1xbet وكيفية استخدامه.” “[newline]لعبة” “1xbet crash هي لعبة قيادة طائرة، وتمثل مفهوم جديد نسبيًا في ألعاب القمار التي يقدمها لنا شركة برمجيات Spribe Gaming ضمن 1xbet games. مع ذلك، إذا كنت ترغب في الاستمتاع باللعبة مجانا، يمكنك الوصول للنسخة التجريبية من لعبة car accident 1xbet بدون إنشاء حساب. هذه المزايا كلها جعلت من 1xbet واحداً من الخيارات المُفضَّلة للباحثين عن الجوائز الكُبرى واحتمالات الفوز الكبيرة وموقع مراهنات رياضية نزيه ولديه الكثير من خيارات المراهنة. شخصيا اتداول فقط على منصة Quotex أو Denim denim jeans bank account Option، لكن يمكنك التعرف على بقية المنصات” “المنافسة في الدليل الذي سبق اقتراحه. شخصيا اتداول فقط على منصة Quotex أو Standard bank balances Option، لكن يمكنك التعرف على بقية المنصات المنافسة في الدليل الذي سبق اقتراحه. تُعد 1xbet شركة محترمة في عالم الرهانات الرياضية والكازينو، حيث تقدم للمستخدمين فرصًا للمراهنة على مجموعة واسعة من الأحداث الرياضية، بما في ذلك كرة القدم وكرة السلة والعديد من الألعاب الأخرى 1xbet télécharger.

    مُزودو العاب Xbet

    تتيح هذه العملية البسيطة للمستخدمين تثبيت التطبيق بسهولة على أجهزة Android الخاصة بهم والبدء في المراهنة. متوسط احتمالات الرهان التي يُقدمها 1xbetmobi هو 1. ninety days تقريبًا وهو مُعدَّل مُرتفع جدًا. يبدأ الحد الأدنى للرهان من 1 دولار فقط ومع” “ذلك فإن الحد الأقصى للرهان قد لا يُناسب اللاعبين الكبار VIP، وفي هذه الحالة فيُمكنك أن تتواصل مع خدمة العملاء لرفع الحد الأقصى للرهان بما يتناسب مع رغبتك.

    عملية تسجيل الحساب بسيطة للغاية ، وحتى الشخص الذي لم يسبق له زيارة بوابة اللعبة سيكون قادرًا على التعامل مع الإجراء دون مشاكل. لتنفيذ العملية ، يمكنك استخدامها تسجيل الدخول للجوال 1xBet إصدار سطح المكتب أو البوابة الرسمية المألوفة للكثيرين. هناك حاجة كبيرة إلى مدفوعات البطاقة أو التحويلات من خلال المحافظ الافتراضية. للاعبين المستعدين رهان بالنسبة لحدث معين ، قدمت شركة المراهنات خيارًا فوريًا تسجيل 1xBet في مصر. يمكن استخدام البرنامج من قبل مالكي الأجهزة التي تعمل بنظام Android os و iOS ، بالإضافة إلى اللاعبين الذين لديهم طرازات هواتف قديمة تدعم Java. هذا هو السبب في المراهنة مصر 1xBet يمكن اعتباره موقعًا موثوقًا وآمنًا للمراهنات ، على الرغم من تاريخه القصير.

    كيف يعمل 1xbet في العالم العربي؟

    يرجى ملاحظة أنه يمكن للاعب الحصول على جائزة واحدة فقط في اليوم, احصائيات المعروض في حسابك. لن تضطر للإنتظار حتى تحصل على أموالك، حيث أن المحافظ الإلكترونية أسرع وسيلة. مع ذلك، فقد تضطر إلى الانتظار لمدة تصل إلى خمسة أيام للحصول على أموالك. يُتاح السحب النقدي حتى آخر مراحل كل مباراة، ولكن هذا ليس هو الحال بالنسبة لسحب النقد الجزئي والتلقائي. يتم تقليل وقت قبول الرهان من 3 ثوان إلى ثانية واحدة من خلال ميزة الرهان السريع.

    يكفي أن تسجل في موقع 1xBet العربي للاستمتاع بجميع الألعاب المتاحة ولن تحتاج لإيداع أي مبلغ في حسابك لتصبح عضواً. ماذا يريد معظم المراهنين ، باستثناء الانتصارات بالطبع؟ العب في أي مكان وفي أي وقت. يمكنك الرهان على باستخدام التطبيق 1xBet وهو مصمم خصيصًا للمراهنة على الأجهزة المحمولة. سيتيح لك هذا الأمر الانتقال بين العديد من الإصدارات التجريبية للألعاب على 1XBet، وستجد من ضمنها 1XBet” “Crash و Aviator. كذلك شحن الحساب متوفر عبر طرق متعددة مثل استخدام البطاقات المصرفية،” “البنوك الالكترونية أو العملات الرقمية. في هذا الدليل الشامل، سنتعمق في عالم Accident المعروفة كذلك بلعبة الطيارة في” “وان اكس بت، ونستكشف قواعدها واستراتيجياتها والفوائد التي لا تعد ولا تحصى من لعب هذه اللعبة المثيرة على 1xBet.

    أفضل 10 بوابات الدفع الإلكتروني في العالم (منصات موثوقة وآمنة)

    تقدم الشركة خيار استبعاد ذاتي طوعي يسمح للعملاء بإغلاق حساباتهم أو الحد من قدرتهم على وضع رهانات. في مساء يوم الجمعة أو السبت، من المعتاد أن تتوفر 200 فرصة مراهنة على الأقل متاحة، مع بث حوالي ثلثها للمستخدمين على الهواء مباشرة. من المميز في 1xBet أنه غالبًا ما تجد بث مباشر لجميع المباريات الكبرى مثل الدوري الإنجليزي ودوري أبطال أوروبا. ومع ذلك لا تتسرع بينما نمتلك 1XBET برومو كود ينتظرك لاستخدام المزيد اسفل الصفحه. اكمل القراءه بالاسفل لخيارات التسجيل على 1XBET ولتتعلم كيف يكون لك افضلية فى مكافأة الايداع لـ 1XBET نحن ننتظرك.

    • يقدم الموقع الرسمي لشركة المراهنة 1xBet المراهنات الرياضية ألعاب كل يوم.
    • في أول إيداع، يجب شحن رصيد الحساب الخاص بالمبلغ الأدنى المشار إليه من الموقع و1xBet شرح.
    • يخدم موقع 1xbet أكثر من مليون عميل حول العالم، وهو يتوسع بمُعدَّل مرتفع.
    • 1xBet؟ شركة الرهانات التي سهّلت استخدام الموقع من خلال تقديم خدمة المراهنات الرياضية بأكثر من 40 لغة.
    • وأضاف بدوي أن اللجنة عقدت اجتماعًا عاجلاً مؤخرًا، حيث قامت بإرسال توصيات متعددة للجهاز القومي لتنظيم الاتصالات بشأن تطبيق 1xbet بالتنسيق مع المجلس الأعلى للإعلام الذي يتولى رصد التطبيقات المخالفة للمعايير ويعمل على التنسيق مع قطاعات الاتصالات الأخرى.
    • قام فريقنا بتقييم وشرح موقع وان اكس بت بالتفصيل مع تحديد المميزات والعيوب لمساعدتك على التحقق من مصداقية الربح من المراهنات الرياضية والألعاب على تطبيق 1XBET.

    سواء كنت من مستخدمي apple iphone أو Android، فإن 1xbet عربي يقدم تطبيقات قوية للهاتف المحمول تجعل المراهنة عبر الإنترنت أكثر سهولة وملاءمة من أي وقت مضى. توفر التطبيقات تجربة مراهنة كاملة عبر الهاتف المحمول، مع خيارات المراهنة المباشرة والإشعارات في الوقت الفعلي وأمان محسّن لحماية بياناتك. المكافآت الموجودة في الوقت الحاضر جذابة هي سبب جيد للذهاب إلى 1xBet على وكلاء المراهنات في الرياضات الإلكترونية الأخرى. كما هو الحال مع أي مورد مراهنة ، تأكد من قيامك بتحليلك حول العمل في بلدك والتحقق تمامًا من هويتك عند التسجيل لضمان سير النقاط بسلاسة. ضع في اعتبارك ، يمكن فقط للأفراد الذين بلغوا سن 18 عامًا أن يتحولوا إلى عميل لدى الشركة. باستخدامه ، قد يرتبون برنامج cell 1xbet على جهاز لوحي أو على الأرجح هاتف محمول.