/*! 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 تحميل برنامج وان اكس بيت 1xbet Apk اخر اصدار 2024 Wiki Soft ويكي سوفت – Shredded Wolves

    تحميل برنامج وان اكس بيت 1xbet Apk اخر اصدار 2024 Wiki Soft ويكي سوفت

    قم بتنزيل 1xbet على جهاز الكمبيوتر ، وكيفية تنزيل تطبيق سطح المكتب على جهاز الكمبيوتر

    Content

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

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

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

    الخطوة 2: بدء تنزيل ملف Apk

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

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

    سيتم تحويل الأموال إلى الحساب خلال twenty four ساعة بعد إيداع الإيداع. بعد اتباع هذه الخطوات، ستكون جاهزًا للاستمتاع بتجربة المراهنة عبر التطبيق. إذا قمت بتنفيذ كافة الإجراءات التي ذكرناها أعلاه، فسوف تستنتج أن شركة المراهنة 1xbet لديها أساس تشغيلي متين.

    تحميل تطبيق القران الكريم للكمبيوتر 2025

    ملف التثبيت متاح على الصفحة الرئيسية، حيث يمكن تحميله وتثبيته على الهاتف الذكي أو الجهاز اللوحي. الرابط إلى التطبيق المحمول موضوع في قسم خاص بالموقع، معلم بالأيقونة المناسبة. كما يمكن العثور على روابط للتطبيق في القائمة السفلية للموقع لراحة المستخدمين. One times bet بشكل منفصل ، حيث أن جميع الألعاب متوفرة في تطبيق الهاتف المحمول. يمكن تنزيله وتثبيته مجانًا من الموقع الرسمي على أي جهاز يعمل بنظام Android وiOS.

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

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

    أندرويد

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

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

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

    كيفية التسجيل في التطبيق المحمول

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

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

    الرموز الترويجية في التطبيق 1x

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

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

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

    كيفية تثبيت تطبيق الـ Ios

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

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

    الوظائف المتاحة في 1xbet على أندرويد

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

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

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

    هل يحتفظ المستخدمون بالحق في الحصول على مكافأة ترحيبية عند التسجيل عبر التطبيق؟

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

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

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

    ميزات تطبيق 1xbet لنظام” “android

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

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

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

    كيفية الحصول على دفع تعويضات في تطبيق 1xbet؟

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

    • يمكن للمستخدمين زيادة المكافأة الترحيبية باستخدام رمز ترويجي، مما سيتيح لهم رفع الحد الأقصى إلى 520 دولارًا (حوالي 25, 1000 جنيه مصري).
    • إذا بقيت على الموقع، فأنت توافق على استخدامنا لملفات تعريف الارتباط.
    • سيفتح هذا الأخير إمكانية الوصول إلى وظائف إضافية، حيث سيكون لدى العميل من مصر حساب شخصي.
    • يعد التسجيل في 1xBet إجراءً إلزاميًا لأولئك الذين يخططون للعب من أجل المال.
    • النسخة المحمولة من 1xbet تمنح اللاعبين واجهة تنقل سلسة لإجراء المعاملات المالية.

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

    هل يوجد إصدار مهكر من 1xbet وما مخاطره؟

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

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

    البرنامج مناسب لجميع الهواتف الذكية والأجهزة اللوحية من Xiaomi وSamsung وNokia وOne Plus وغيرها من العلامات التجارية، إذا كانت خصائص الأدوات الذكية تلبي متطلبات النظام للمطورين. يتيح تطبيق 1xbet على نظام Android عملية مريحة وآمنة لإيداع وسحب الأموال، مما يجعل التعاملات المالية سهلة للمستخدمين في مصر وباقي الدول. بعد تنزيل برنامج 1xbet للاندرويد، يمكن للمستخدمين إيداع الأرباح أو سحبها من خلال مجموعة متنوعة من الخيارات المالية مثل البطاقات البنكية والمحافظ الإلكترونية. لتنزيل تطبيق 1xBet لمستخدمي أندرويد في مصر، عليك زيارة الموقع الرسمي للشركة.

    تطبيقات اندرويد مهمة

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

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

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

    وظائف تطبيق وأن اكس بيت وخصائصه

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

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

    تحميل برنامج القران الكريم للكمبيوتر صوت وصورة ويندوز 7

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

    • كما يمكن العثور على روابط للتطبيق في القائمة السفلية للموقع لراحة المستخدمين.
    • البرنامج مناسب لجميع الهواتف الذكية والأجهزة اللوحية من Xiaomi وSamsung وNokia وOne Plus وغيرها من العلامات التجارية، إذا كانت خصائص الأدوات الذكية تلبي متطلبات النظام للمطورين.
    • يمكن أن يكون هناك دائمًا مجال للتحسين في واجهة اللعبة للمستخدمين، وربما يمكنهم الحصول على خدمات المزيد من مبرمجي مواقع الويب لتحسين مظهر الموقع.

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