/******/ (function() { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ 936: /***/ (function(module, __unused_webpack_exports, __webpack_require__) { /** * Copyright (C) 2014-2023 ServMask Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗ * ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝ * ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝ * ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗ * ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗ * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ */ var Modal = __webpack_require__(544), $ = jQuery; var Import = function Import() { var self = this; // Set params this.params = []; // Set modal this.modal = new Modal(); // Set confirm listener this.modal.onConfirm = function (options) { self.onConfirm(options); }; // Set blogs listener this.modal.onBlogs = function (options) { self.onBlogs(options); }; // Set stop listener this.modal.onStop = function (options) { options = (options || []).concat({ name: 'ai1wm_import_cancel', value: 1 }); self.onStop(options); }; // Set disk space listener this.modal.onDiskSpaceConfirm = function (options) { self.onDiskSpaceConfirm(options); }; // Set decrypt password listener this.modal.onDecryptPassword = function (password, options) { self.onDecryptPassword(password, options); }; }; Import.prototype.setParams = function (params) { this.params = Ai1wm.Util.list(params); }; Import.prototype.start = function (options, retries) { var self = this; retries = retries || 0; // Reset stop flag if (retries === 0) { this.stopImport(false); } // Stop running import if (this.isImportStopped()) { return; } // Initializing beforeunload event $(window).bind('beforeunload', function () { return ai1wm_locale.stop_importing_your_website; }); // Set initial status this.setStatus({ type: 'info', message: ai1wm_locale.preparing_to_import }); // Set params var params = this.params.concat({ name: 'secret_key', value: ai1wm_import.secret_key }); // Set additional params if (options) { params = params.concat(Ai1wm.Util.list(options)); } // Import $.ajax({ url: ai1wm_import.ajax.url, type: 'POST', dataType: 'json', data: params, dataFilter: function dataFilter(data) { return Ai1wm.Util.json(data); } }).done(function () { self.getStatus(); }).done(function (result) { if (result) { self.run(result); } }).fail(function (xhr) { var timeout = retries * 1000; try { var json = Ai1wm.Util.json(xhr.responseText); if (json) { var result = JSON.parse(json); var error = result.errors.pop(); if (error.message) { self.stopImport(true); self.setStatus({ type: 'error', title: ai1wm_locale.unable_to_import, message: error.message }); return; } } } catch (e) {} if (retries >= 5) { self.stopImport(true); self.setStatus({ type: 'error', title: ai1wm_locale.unable_to_import, message: ai1wm_locale.unable_to_start_the_import }); return; } retries++; setTimeout(self.start.bind(self, options, retries), timeout); }); }; Import.prototype.run = function (params, retries) { var self = this; retries = retries || 0; // Stop running import if (this.isImportStopped()) { return; } // Import $.ajax({ url: ai1wm_import.ajax.url, type: 'POST', dataType: 'json', data: params, dataFilter: function dataFilter(data) { return Ai1wm.Util.json(data); } }).done(function (result) { if (result) { self.run(result); } }).fail(function (xhr) { var timeout = retries * 1000; try { var json = Ai1wm.Util.json(xhr.responseText); if (json) { var result = JSON.parse(json); var error = result.errors.pop(); if (error.message) { self.stopImport(true); self.setStatus({ type: 'error', title: ai1wm_locale.unable_to_import, message: error.message }); return; } } } catch (e) {} retries++; setTimeout(self.run.bind(self, params, retries), timeout); }); }; Import.prototype.decryptPassword = function (options, password, retries) { var self = this; retries = retries || 0; // Stop running import if (this.isImportStopped()) { return; } this.params = this.params.concat({ name: 'decryption_password', value: password }); // Set params var params = this.params.concat({ name: 'secret_key', value: ai1wm_import.secret_key }).concat({ name: 'priority', value: 90 }); $.ajax({ url: ai1wm_import.ajax.url, type: 'POST', dataType: 'json', data: params, dataFilter: function dataFilter(data) { return Ai1wm.Util.json(data); } }).done(function () { self.getStatus(); }).done(function (result) { if (result) { self.run(result); } }).fail(function (xhr) { var timeout = retries * 1000; try { var json = Ai1wm.Util.json(xhr.responseText); if (json) { var result = JSON.parse(json); var error = result.errors.pop(); if (error.message) { self.stopImport(true); self.setStatus({ type: 'error', title: ai1wm_locale.unable_to_import, message: error.message }); return; } } } catch (e) {} if (retries >= 5) { self.stopImport(true); self.setStatus({ type: 'error', title: ai1wm_locale.unable_to_import, message: ai1wm_locale.unable_to_check_decryption_password }); return; } retries++; setTimeout(self.decryptPassword.bind(self, options, password, retries), timeout); }); }; Import.prototype.confirm = function (options, retries) { var self = this; retries = retries || 0; // Stop running import if (this.isImportStopped()) { return; } // Set params var params = this.params.concat({ name: 'secret_key', value: ai1wm_import.secret_key }).concat({ name: 'priority', value: 150 }); // Set additional params if (options) { params = params.concat(Ai1wm.Util.list(options)); } // Confirm $.ajax({ url: ai1wm_import.ajax.url, type: 'POST', dataType: 'json', data: params, dataFilter: function dataFilter(data) { return Ai1wm.Util.json(data); } }).done(function () { self.getStatus(); }).done(function (result) { if (result) { self.run(result); } }).fail(function (xhr) { var timeout = retries * 1000; try { var json = Ai1wm.Util.json(xhr.responseText); if (json) { var result = JSON.parse(json); var error = result.errors.pop(); if (error.message) { self.stopImport(true); self.setStatus({ type: 'error', title: ai1wm_locale.unable_to_import, message: error.message }); return; } } } catch (e) {} if (retries >= 5) { self.stopImport(true); self.setStatus({ type: 'error', title: ai1wm_locale.unable_to_import, message: ai1wm_locale.unable_to_confirm_the_import }); return; } retries++; setTimeout(self.confirm.bind(self, options, retries), timeout); }); }; Import.prototype.checkDiskSpace = function (fileSize, callback) { this.diskSpaceCallback = callback; var diskSpaceFree = parseInt(ai1wm_disk_space.free, 10); var diskSpaceFactor = parseInt(ai1wm_disk_space.factor, 10); var diskSpaceExtra = parseInt(ai1wm_disk_space.extra, 10); if (diskSpaceFree >= 0) { var diskSpaceRequired = fileSize * diskSpaceFactor + diskSpaceExtra; if (diskSpaceRequired > diskSpaceFree) { this.setStatus({ type: 'disk_space_confirm', message: ai1wm_locale.out_of_disk_space.replace('%s', Ai1wm.Util.sizeFormat(diskSpaceRequired - diskSpaceFree)) }); return; } } callback(); }; Import.prototype.blogs = function (options, retries) { var self = this; retries = retries || 0; // Stop running import if (this.isImportStopped()) { return; } // Set params var params = this.params.concat({ name: 'secret_key', value: ai1wm_import.secret_key }).concat({ name: 'priority', value: 150 }); // Set additional params if (options) { params = params.concat(Ai1wm.Util.list(options)); } // Blogs $.ajax({ url: ai1wm_import.ajax.url, type: 'POST', dataType: 'json', data: params, dataFilter: function dataFilter(data) { return Ai1wm.Util.json(data); } }).done(function () { self.getStatus(); }).done(function (result) { if (result) { self.run(result); } }).fail(function (xhr) { var timeout = retries * 1000; try { var json = Ai1wm.Util.json(xhr.responseText); if (json) { var result = JSON.parse(json); var error = result.errors.pop(); if (error.message) { self.stopImport(true); self.setStatus({ type: 'error', title: ai1wm_locale.unable_to_import, message: error.message }); return; } } } catch (e) {} if (retries >= 5) { self.stopImport(true); self.setStatus({ type: 'error', title: ai1wm_locale.unable_to_import, message: ai1wm_locale.unable_to_prepare_blogs_on_import }); return; } retries++; setTimeout(self.blogs.bind(self, options, retries), timeout); }); }; Import.prototype.clean = function (options, retries) { var self = this; retries = retries || 0; // Reset stop flag if (retries === 0) { this.stopImport(true); } // Set initial status this.setStatus({ type: 'info', message: ai1wm_locale.please_wait_stopping_the_import }); // Set params var params = this.params.concat({ name: 'secret_key', value: ai1wm_import.secret_key }).concat({ name: 'priority', value: 400 }); // Set additional params if (options) { params = params.concat(Ai1wm.Util.list(options)); } // Clean $.ajax({ url: ai1wm_import.ajax.url, type: 'POST', dataType: 'json', data: params, dataFilter: function dataFilter(data) { return Ai1wm.Util.json(data); } }).done(function () { // Unbinding the beforeunload event when we stop importing $(window).unbind('beforeunload'); // Destroy modal self.modal.destroy(); }).fail(function (xhr) { var timeout = retries * 1000; try { var json = Ai1wm.Util.json(xhr.responseText); if (json) { var result = JSON.parse(json); var error = result.errors.pop(); if (error.message) { self.stopImport(true); self.setStatus({ type: 'error', title: ai1wm_locale.unable_to_import, message: error.message }); return; } } } catch (e) {} if (retries >= 5) { self.stopImport(true); self.setStatus({ type: 'error', title: ai1wm_locale.unable_to_import, message: ai1wm_locale.unable_to_stop_the_import }); return; } retries++; setTimeout(self.clean.bind(self, options, retries), timeout); }); }; Import.prototype.getStatus = function () { var self = this; // Stop getting status if (this.isImportStopped()) { return; } this.statusXhr = $.ajax({ url: ai1wm_import.status.url, type: 'GET', dataType: 'json', cache: false, dataFilter: function dataFilter(data) { return Ai1wm.Util.json(data); } }).done(function (params) { if (params) { self.setStatus(params); // Next status switch (params.type) { case 'done': case 'error': // Unbinding the beforeunload event when any case is performed $(window).unbind('beforeunload'); return; case 'confirm': case 'disk_space_confirm': case 'blogs': case 'backup_is_encrypted': return; } } // Import is not done yet, let's check status in 3 seconds setTimeout(self.getStatus.bind(self), 3000); }).fail(function () { // Import is not done yet, let's check status in 3 seconds setTimeout(self.getStatus.bind(self), 3000); }); }; Import.prototype.setStatus = function (params) { this.modal.render(params); }; Import.prototype.onConfirm = function (options) { this.confirm(options); }; Import.prototype.onDecryptPassword = function (password, options) { this.decryptPassword(options, password); }; Import.prototype.onBlogs = function (options) { this.blogs(options); }; Import.prototype.onStop = function (options) { this.clean(options); }; Import.prototype.onDiskSpaceConfirm = function (options) { this.diskSpaceCallback(options); }; Import.prototype.stopImport = function (isStopped) { try { if (isStopped && this.statusXhr) { this.statusXhr.abort(); } } finally { this.isStopped = isStopped; } }; Import.prototype.isImportStopped = function () { return this.isStopped; }; module.exports = Import; /***/ }), /***/ 544: /***/ (function(module) { /** * Copyright (C) 2014-2023 ServMask Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗ * ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝ * ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝ * ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗ * ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗ * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ */ var $ = jQuery; var Modal = function Modal() { var self = this; // Error Modal this.error = function (params) { // Create the modal container var container = $('
'); // Create section to hold title, message and action var section = $('
'); // Create header to hold title var header = $('

'); // Create paragraph to hold mesage var message = $('

').html(params.message); // Create action section var action = $('
'); // Create title var title = $('').addClass('ai1wm-title-red').text(params.title); // Create close button var closeButton = $('').on('click', function () { self.destroy(); }); // Append text to close button closeButton.append(ai1wm_locale.close_import); // Append close button to action action.append(closeButton); // Append title to section header.append(title); // Append header and message to section section.append(header).append(message); // Append section and action to container container.append(section).append(action); // Render modal self.modal.html(container).show(); self.modal.trigger('focus'); self.overlay.show(); }; // Progress Modal this.progress = function (params) { // Update progress bar meter if (this.progress.progressBarMeter) { this.progress.progressBarMeter.width(params.percent + '%'); } // Update progress bar percent if (this.progress.progressBarPercent) { this.progress.progressBarPercent.text(params.percent + '%'); return; } // Create the modal container var container = $('
'); // Create section to hold title, message and action var section = $('
'); // Create header to hold progress bar var header = $('

'); // Create action section var action = $('
'); // Create progress bar var progressBar = $(''); // Create progress bar meter this.progress.progressBarMeter = $('').width(params.percent + '%'); // Create progress bar percent this.progress.progressBarPercent = $('').text(params.percent + '%'); // Create stop import var stopButton = $('').on('click', function () { stopButton.attr('disabled', 'disabled'); self.onStop(); }); // Append text to stop button stopButton.append(' ' + ai1wm_locale.stop_import); // Append progress meter and progress percent progressBar.append(this.progress.progressBarMeter).append(this.progress.progressBarPercent); // Append stop button to action action.append(stopButton); // Append progress bar to section header.append(progressBar); // Append header to section section.append(header); // Append section and action to container container.append(section).append(action); // Render modal self.modal.html(container).show(); self.modal.trigger('focus'); self.overlay.show(); }; // Pro Modal this.pro = function (params) { // Create the modal container var container = $('
'); // Create section to hold title, message and action var section = $('
'); // Create header to hold warning var header = $('

'); // Create paragraph to hold mesage var message = $('

').html(params.message); // Create action section var action = $('
'); // Create warning var warning = $(''); // Create close button var closeButton = $('').on('click', function () { self.destroy(); }); // Append text to close button closeButton.append(ai1wm_locale.close_import); // Append close button to action action.append(closeButton); // Append warning to section header.append(warning); // Append header and message to section section.append(header).append(message); // Append section and action to container container.append(section).append(action); // Render modal self.modal.html(container).show(); self.modal.trigger('focus'); self.overlay.show(); }; // Confirm Modal this.confirm = function (params) { // Create the modal container var container = $('
'); // Create section to hold title, message and action var section = $('
'); // Create header to hold warning var header = $('

'); // Create paragraph to hold mesage var message = $('

').html(params.message); // Create action section var action = $('
'); // Create warning var warning = $(''); // Create close button var closeButton = $('').on('click', function () { closeButton.attr('disabled', 'disabled'); self.onStop(); }); // Create confirm button var confirmButton = $('').on('click', function () { confirmButton.attr('disabled', 'disabled'); self.onConfirm(); }); // Append text to close button closeButton.append(ai1wm_locale.close_import); // Append text to confirm button confirmButton.append(ai1wm_locale.confirm_import + ' >'); // Append close button to action action.append(closeButton); // Append confirm button to action action.append(confirmButton); // Append warning to section header.append(warning); // Append header and message to section section.append(header).append(message); // Append section and action to container container.append(section).append(action); // Render modal self.modal.html(container).show(); self.modal.trigger('focus'); self.overlay.show(); }; // Disk space Confirm Modal this.diskSpaceConfirm = function (params) { // Create the modal container var container = $('
'); // Create section to hold title, message and action var section = $('
'); // Create header to hold warning var header = $('

'); // Create paragraph to hold mesage var message = $('

').html(params.message); // Create action section var action = $('
'); // Create warning var warning = $(''); // Create close button var closeButton = $('').on('click', function () { self.destroy(); }); // Create confirm button var confirmButton = $('').on('click', function () { $(this).attr('disabled', 'disabled'); self.onDiskSpaceConfirm(); }); // Append text to close button closeButton.append(ai1wm_locale.close_import); // Append text to confirm button confirmButton.append(ai1wm_locale.confirm_disk_space); // Append close button to action action.append(closeButton); // Append confirm button to action action.append(confirmButton); // Append warning to section header.append(warning); // Append header and message to section section.append(header).append(message); // Append section and action to container container.append(section).append(action); // Render modal self.modal.html(container).show(); self.modal.trigger('focus'); self.overlay.show(); }; // Blogs Modal this.blogs = function (params) { // Create the modal container var container = $('
').on('submit', function (e) { e.preventDefault(); continueButton.attr('disabled', 'disabled'); self.onBlogs(container.serializeArray()); }); // Create section to hold title, message and action var section = $('
'); // Create header to hold title var header = $('

'); // Create paragraph to hold mesage var message = $('

').html(params.message); // Create action section var action = $('
'); // Create title var title = $('').addClass('ai1wm-title-grey').text(params.title); // Create continue button var continueButton = $(''); // Append text to continue button continueButton.append(ai1wm_locale.continue_import); // Append continue button to action action.append(continueButton); // Append title to section header.append(title); // Append header and message to section section.append(header).append(message); // Append section and action to container container.append(section).append(action); // Render modal self.modal.html(container).show(); self.modal.trigger('focus'); self.overlay.show(); }; // Info Modal this.info = function (params) { // Create the modal container var container = $('
'); // Create section to hold title, message and action var section = $('
'); // Create header to hold loader var header = $('

'); // Create paragraph to hold mesage var message = $('

').html(params.message); // Create action section var action = $('
'); // Create loader var loader = $(''); // Create warning var warning = $('

').html(ai1wm_locale.please_do_not_close_this_browser); // Create notice to be displayed during import process var notice = $('
'); // Append warning to notice notice.append(warning); // Append stop button to action action.append(notice); // Append loader to header header.append(loader); // Append header and message to section section.append(header).append(message); // Append section and action to container container.append(section).append(action); // Render modal self.modal.html(container).show(); self.modal.trigger('focus'); self.overlay.show(); }; // Done Modal this.done = function (params) { // Create the modal container var container = $('
'); // Create section to hold title, message and action var section = $('
'); // Create header to hold title var header = $('

'); // Create paragraph to hold mesage var message = $('

').html(params.message); // Create action section var action = $('
'); // Create title var title = $('').addClass('ai1wm-title-green').text(params.title); // Create close button var closeButton = $('').on('click', function () { self.destroy(); }); // Append text to close button closeButton.append(ai1wm_locale.finish_import + ' >'); // Append close button to action action.append(closeButton); // Append title to section header.append(title); // Append header and message to section section.append(header).append(message); // Append section and action to container container.append(section).append(action); // Render modal self.modal.html(container).show(); self.modal.trigger('focus'); self.overlay.show(); }; this.backup_is_encrypted = function (params) { // Create the modal container var container = $('
'); // Create section to hold title, message and action var section = $('
'); // Create header to hold title var header = $('

').html(ai1wm_locale.backup_encrypted); var message = $('

').html(ai1wm_locale.backup_encrypted_message); var confirmButton = $('').on('click', function () { var password = $('#ai1wm-backup-decrypt-password'); var passwordConfirmation = $('#ai1wm-backup-decrypt-password-confirmation'); if (password.val().length && password.val() === passwordConfirmation.val()) { confirmButton.attr('disabled', 'disabled'); self.onDecryptPassword(password.val()); } else { passwordConfirmation.parent().addClass('ai1wm-has-error'); password.parent().addClass('ai1wm-has-error'); } }); var closeButton = $('').on('click', function () { closeButton.attr('disabled', 'disabled'); self.onStop(); }); var form = $('
'); var passwordContainer = $('
'); var passwordInput = $('').prop('placeholder', ai1wm_locale.enter_password).on('keyup', function () { var password = $(this); var passwordConfirmation = $('#ai1wm-backup-decrypt-password-confirmation'); if (password.val() !== passwordConfirmation.val()) { passwordConfirmation.parent().addClass('ai1wm-has-error'); password.parent().addClass('ai1wm-has-error'); } else { password.parent().removeClass('ai1wm-has-error'); passwordConfirmation.parent().removeClass('ai1wm-has-error'); } }); var passwordView = $('').on('click', function () { $(this).toggleClass('ai1wm-icon-eye ai1wm-icon-eye-blocked'); $(this).prev().prop('type', function (index, oldPropertyValue) { return oldPropertyValue === 'text' ? 'password' : 'text'; }); return false; }); passwordContainer.append(passwordInput).append(passwordView); if (params.error) { passwordContainer.addClass('ai1wm-has-error'); var passwordError = $('
').html(params.error); passwordContainer.append(passwordError); } var passwordConfirmationContainer = $('
'); var passwordConfirmationInput = $('').prop('placeholder', ai1wm_locale.repeat_password).on('keyup', function () { var passwordConfirmation = $(this); var password = $('#ai1wm-backup-decrypt-password'); if (passwordInput.val() !== passwordConfirmation.val()) { password.parent().addClass('ai1wm-has-error'); passwordConfirmation.parent().addClass('ai1wm-has-error'); } else { password.parent().removeClass('ai1wm-has-error'); passwordConfirmation.parent().removeClass('ai1wm-has-error'); } }); var passwordConfirmationView = $('').on('click', function () { $(this).toggleClass('ai1wm-icon-eye ai1wm-icon-eye-blocked'); $(this).prev().prop('type', function (index, oldPropertyValue) { return oldPropertyValue === 'text' ? 'password' : 'text'; }); return false; }); var passwordConfirmationError = $('
').html(ai1wm_locale.passwords_do_not_match); passwordConfirmationContainer.append(passwordConfirmationInput).append(passwordConfirmationView).append(passwordConfirmationError); confirmButton.append(ai1wm_locale.submit); closeButton.append(ai1wm_locale.close_import); var buttonContainer = $('
'); buttonContainer.append(closeButton).append(confirmButton); form.append(passwordContainer).append(passwordConfirmationContainer); // Append header and message to section section.append(header).append(message).append(form).append(buttonContainer); // Append section and action to container container.append(section); // Render modal self.modal.html(container).show(); self.modal.trigger('focus'); self.overlay.show(); }; // Server cannot decrypt Modal this.server_cannot_decrypt = function (params) { // Create the modal container var container = $('
'); // Create section to hold title, message and action var section = $('
'); // Create header to hold title var header = $('

'); // Create paragraph to hold mesage var message = $('

').html(params.message); // Create warning var warning = $(''); // Create action section var action = $('
'); // Create close button var closeButton = $('').on('click', function () { closeButton.attr('disabled', 'disabled'); self.onStop(); }); // Append text to close button closeButton.append(ai1wm_locale.close_import); // Append close button to action action.append(closeButton); // Append warning to header header.append(warning); // Append header and message to section section.append(header).append(message); // Append section and action to container container.append(section).append(action); // Render modal self.modal.html(container).show(); self.modal.trigger('focus'); self.overlay.show(); }; // Create the overlay this.overlay = $('
'); // Create the modal container this.modal = $(''); $('body').append(this.overlay) // Append overlay to body .append(this.modal); // Append modal to body }; Modal.prototype.render = function (params) { $(document).trigger('ai1wm-import-status', params); // Show modal switch (params.type) { case 'pro': this.pro(params); break; case 'error': this.error(params); break; case 'confirm': this.confirm(params); break; case 'disk_space_confirm': this.diskSpaceConfirm(params); break; case 'blogs': this.blogs(params); break; case 'progress': this.progress(params); break; case 'info': this.info(params); break; case 'done': this.done(params); break; case 'backup_is_encrypted': this.backup_is_encrypted(params); break; case 'server_cannot_decrypt': this.server_cannot_decrypt(params); break; } }; Modal.prototype.destroy = function () { this.modal.hide(); this.overlay.hide(); // Reset progress bar this.progress.progressBarMeter = null; this.progress.progressBarPercent = null; }; module.exports = Modal; /***/ }), /***/ 814: /***/ (function(module, __unused_webpack_exports, __webpack_require__) { /** * Copyright (C) 2014-2023 ServMask Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗ * ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝ * ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝ * ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗ * ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗ * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ */ var Import = __webpack_require__(936), $ = jQuery; var FileUploader = function FileUploader() {}; FileUploader.prototype.setDefaultValues = function () { this.model = new Import(); this.stopUpload = false; }; FileUploader.prototype.init = function () { var _this = this; var formElement = $('#ai1wm-import-form'); var selectElement = $('#ai1wm-import-file'); var dropElement = $('#ai1wm-drag-drop-area'); selectElement.on('change', function (e) { _this.setDefaultValues(); var file = e.target.files.item(0); if (file) { _this.fileSize = file.size; if (_this.fileSize > ai1wm_uploader.max_file_size) { _this.model.setStatus({ type: 'pro', message: ai1wm_locale.import_from_file }); } else { _this.model.checkDiskSpace(_this.fileSize, function () { try { _this.onFilesAdded(file); _this.onBeforeUpload(file); _this.upload(file); } catch (error) { _this.onError(error); } }); } } formElement.trigger('reset'); e.preventDefault(); }); dropElement.on('dragenter', function (e) { dropElement.addClass('ai1wm-drag-over'); e.preventDefault(); }); dropElement.on('dragover', function (e) { dropElement.addClass('ai1wm-drag-over'); e.preventDefault(); }); dropElement.on('dragleave', function (e) { dropElement.removeClass('ai1wm-drag-over'); e.preventDefault(); }); dropElement.on('drop', function (e) { _this.setDefaultValues(); dropElement.removeClass('ai1wm-drag-over'); var file = e.originalEvent.dataTransfer.files.item(0); if (file) { _this.fileSize = file.size; if (_this.fileSize > ai1wm_uploader.max_file_size) { _this.model.setStatus({ type: 'pro', message: ai1wm_locale.import_from_file }); } else { _this.model.checkDiskSpace(_this.fileSize, function () { try { _this.onFilesAdded(file); _this.onBeforeUpload(file); _this.upload(file); } catch (error) { _this.onError(error); } }); } } formElement.trigger('reset'); e.preventDefault(); }); }; // Check extension FileUploader.prototype.c1 = function (file) { if (file.name.substr(-6) !== 'wpress') { throw new Error(ai1wm_locale.invalid_archive_extension); } }; // Check compatibility FileUploader.prototype.c3 = function () { if (ai1wm_compatibility.messages.length > 0) { throw new Error(ai1wm_compatibility.messages.join()); } }; FileUploader.prototype.onFilesAdded = function (file) { this.c1(file); this.c3(file); // Initializing beforeunload event $(window).bind('beforeunload', function () { return ai1wm_locale.stop_importing_your_website; }); }; FileUploader.prototype.onBeforeUpload = function (file) { var self = this; var storage = Ai1wm.Util.random(12); var options = Ai1wm.Util.form('#ai1wm-import-form').concat({ name: 'storage', value: storage }).concat({ name: 'archive', value: file.name }).concat({ name: 'file', value: 1 }); // Set global params this.model.setParams(options); // Set multipart params $.extend(ai1wm_uploader.params, { storage: storage, archive: file.name }); // Set stop this.model.onStop = function () { self.stopUpload = true; // Clean storage self.model.clean(); }; // Set status this.model.setStatus({ type: 'progress', percent: '0.00' }); }; FileUploader.prototype.upload = function (file) { var self = this; var formData = new FormData(); formData.append('upload-file', file); for (var name in ai1wm_uploader.params) { formData.append(name, ai1wm_uploader.params[name]); } $.ajax({ url: ai1wm_uploader.url, type: 'POST', data: formData, cache: false, contentType: false, processData: false, xhr: function xhr() { var handle = $.ajaxSettings.xhr(); if (handle.upload) { handle.upload.addEventListener('progress', function (event) { var percent = event.loaded / event.total * 100; self.model.setStatus({ type: 'progress', percent: percent.toFixed(2) }); }); } return handle; }, success: function success() { if (self.stopUpload) { return; } self.onFileUploaded(); }, error: function error(jqXHR, textStatus) { throw new Error(textStatus); } }); }; FileUploader.prototype.onUploadProgress = function (percent) { this.model.setStatus({ type: 'progress', percent: percent }); }; FileUploader.prototype.onFileUploaded = function () { this.model.start(); }; FileUploader.prototype.onError = function (error) { this.model.setStatus({ type: 'error', title: ai1wm_locale.unable_to_import, message: error.message }); }; module.exports = FileUploader; /***/ }), /***/ 332: /***/ (function() { /** * Copyright (C) 2014-2023 ServMask Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗ * ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝ * ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝ * ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗ * ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗ * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ */ jQuery(document).ready(function ($) { 'use strict'; // Idea $('#ai1wm-feedback-type-link-1').on('click', function () { var radio = $('#ai1wm-feedback-type-1'); if (radio.is(':checked')) { radio.attr('checked', false); } else { radio.attr('checked', true); } }); // Help $('#ai1wm-feedback-type-2').on('click', function () { // Hide other options $('#ai1wm-feedback-type-1').closest('li').hide(); // Change placeholder message $('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder', ai1wm_locale.how_may_we_help_you); // Show feedback form $('.ai1wm-feedback-form').fadeIn(); }); // Cancel feedback form $('#ai1wm-feedback-cancel').on('click', function (e) { $('.ai1wm-feedback-form').fadeOut(function () { $('.ai1wm-feedback-type').attr('checked', false).closest('li').show(); }); e.preventDefault(); }); // Send feedback form $('#ai1wm-feedback-submit').on('click', function (e) { var self = $(this); var spinner = self.next(); var type = $('.ai1wm-feedback-type:checked').val(); var email = $('.ai1wm-feedback-email').val(); var message = $('.ai1wm-feedback-message').val(); var terms = $('.ai1wm-feedback-terms').is(':checked'); self.attr('disabled', true); spinner.css('visibility', 'visible'); $.ajax({ url: ai1wm_feedback.ajax.url, type: 'POST', dataType: 'json', async: true, data: { secret_key: ai1wm_feedback.secret_key, ai1wm_type: type, ai1wm_email: email, ai1wm_message: message, ai1wm_terms: +terms }, dataFilter: function dataFilter(data) { return Ai1wm.Util.json(data); } }).done(function (data) { self.attr('disabled', false); spinner.css('visibility', 'hidden'); if (data.errors.length > 0) { $('.ai1wm-feedback .ai1wm-message').remove(); var errorMessage = $('
').addClass('ai1wm-message ai1wm-error-message'); $.each(data.errors, function (key, value) { errorMessage.append($('

').text(value)); }); $('.ai1wm-feedback').prepend(errorMessage); } else { var successMessage = $('

').addClass('ai1wm-message ai1wm-success-message'); successMessage.append($('

').text(ai1wm_locale.thanks_for_submitting_your_feedback)); $('.ai1wm-feedback').html(successMessage); } }); e.preventDefault(); }); }); /***/ }) /******/ }); /************************************************************************/ /******/ // 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; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/global */ /******/ !function() { /******/ __webpack_require__.g = (function() { /******/ if (typeof globalThis === 'object') return globalThis; /******/ try { /******/ return this || new Function('return this')(); /******/ } catch (e) { /******/ if (typeof window === 'object') return window; /******/ } /******/ })(); /******/ }(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. !function() { /** * Copyright (C) 2014-2023 ServMask Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗ * ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝ * ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝ * ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗ * ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗ * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ */ var FileUploader = __webpack_require__(814), Feedback = __webpack_require__(332), Import = __webpack_require__(936); jQuery(document).ready(function ($) { 'use strict'; var uploader; if (Ai1wm.MultisiteExtensionUploader) { uploader = new Ai1wm.MultisiteExtensionUploader(); } else if (Ai1wm.UnlimitedExtensionUploader) { uploader = new Ai1wm.UnlimitedExtensionUploader(); } else if (Ai1wm.FileExtensionUploader) { uploader = new Ai1wm.FileExtensionUploader(); } else { uploader = new Ai1wm.FileUploader(); } uploader.init(); // Expands/Collapses Import from $('.ai1wm-expandable > div.ai1wm-button-main').on('click', function () { $(this).parent().toggleClass('ai1wm-open'); }); }); __webpack_require__.g.Ai1wm = jQuery.extend({}, __webpack_require__.g.Ai1wm, { FileUploader: FileUploader, Feedback: Feedback, Import: Import }); }(); /******/ })() ; Промокоды 1xBet Бонусы 1хБет 6500 Азартные коды января 2025 – Pocket Food

Промокоды 1xBet Бонусы 1хБет 6500 Азартные коды января 2025

Чтобы выплата была переведена получите и распишитесь базовый баланс, необходимо проставить всю сумму бонуса в полтора-сложном размере с помощью экспрессов. В каждом экспрессе следует быть расположено через 3 мероприятий из коэффициентами через 1.сорок. Если все дополнение станут соблюдены, бонус моментальная выслится нате базовый баланс. Равно как абсолютно любой альтернативной бонус, его бог велел “отыграть”, перед тем как следовательно.

А как приобрести скидка в 1xBet: операции а еще приколы

Бонус не нужно отыгрывать, а для его активации переходят в своем собственном офисе во вкладку «Промо». Демократичные бонусные коды находятся в разделе «Промо» в своем собственном кабинете пользователя. Любой promo-приветствие во 1хБет владеет семейные 1xbet адденда использования вдобавок временные ограничения. Условия исчерпывают наименьшие дефлятор ставки а еще определяют литература мероприятий, на кои промокод авось-либо быть использован. Дар нужно проверить во области Рекламную, вкладке Бонусы али вкусить в своем собственном офисе. Норма промокода контора БК 1xBet измерит в сфере среднему признаку общей суммы задержанных пари за год или иной срок с причины регистрации до юбилея беттера.

Непраздничные promo cod с блогеров

Кальсоны «1xnew2022promo» позволит увеличить базовый bonus нате два – вплоть до сотне USD. Букмекерская контора покидает выше собой закон запросить верификацию в видах пользователей, которые регистрировались по промокоду. В масштабах операции во работу поддержки 1xBet нужно адресовать фотке свидетельств, кои удостоверяют в летах и индивидуальность геймера. Безо древнего экспресса во букмекерской конторе 1xBet перекусывать необычный прием ставки, еликий подряд противоположен упомянутому экспрессу. При долгосрочном использовании обычной настройки, в видах выигрыша бог велел предугадать абсолютно все матчи. В случае с «антиэкспрессом» система работает по обратному принципу.

1xbet sports betting

Меньшой адажио первого пополнения должен составлять плохо-плохо 100 руб.. Максимально допустимый адажио бонуса в лад условиям акции для начинающего игрока аранжирует сотне %. Самое большее беттор надеюсь выпирать возьмите 1 тыс. руб. как бонуса. А раз браузер активировал автокарбюраторщик promo code, в таком случае некто получит вероятие дополнить поздравительное вознаграждение и может выпирать получите и распишитесь всемерную необходимую сумму – получите и распишитесь рублей. Чтобы случаться на волнению успеха, букмекерская контора одних xBet регулярно предоставляет собственным юзерам бонусы а еще презенты.

Аутсайд должен буднично бацать ставки вида экспресс из удовлетворительно и поболее мероприятий. Всякие 1, 10, пятнадцать, 20, 25 а также 30 дни участия во акции вознаграждаются действующими промокодами, кои бог велел обменять нате безвозмездные ставки. Резюме промокода может зависеть от численности дни роли во «гонке».

Несомненно, они являются должностными, вследствие обращены самой компанией. По ней некоторый скидки перестают случаться доступными. Актуальнейший промокод 1xbet при фиксации нужно отрыть на шири веба, абы взвести его при создании аккаунта.

Promo code нате безмездную ставку

1xbet myanmar registration

✔ В видах применения будет войти получите и распишитесь официальный веб-журнал, отключить опцию «Ставки во вскрик» , выбрать исход рассказа, завести приветствие. Проведать количество баллов нужно в личном офисе, проверив рекламную-баланс-экстерн. Уверившись, что их полно, можно во «Витрине» догадать описание, выбрать благоприятный промокод а еще задействовать его во своей представлению. Для этого перекусывать до некоторой степени вариантов изо точными требованиями.

  • Они забухнутся в основном высокомерным заказчикам в качестве проявления лояльности и поклонения.
  • Если вы планируете вмочить безмездную ставку на автоэкспресс, бог велел дисконтировать таковой мнение, что коэффициент быть в долгу составлять через одних.80.
  • Администрация является ведущим спонсором ведущих спортивных событий не всего в Нашей родины, но и по полному миру.
  • Действие влияет всего 1 день а также имеет в виду заключение пари изо историй матчей изо коэффициентом от 1.квадрига в области каждому с них.

После регистрации клиенту букмекерской конторы одних x bet демократически печаль во актах вдобавок во программе лояльности, еще детезаврация бонусов а также различных вариантов поощрений. Один-одинехонек изо самый что ни на есть известных видов вознаграждения разыскается promocode. В области собственной сути таковой свидетельство выглядит в виде четкой последовательности латинских букв а еще цифр. Про то, а как возыметь премия адрес получите и распишитесь ставку, где арестовать указатель функциональных купонов а также куда вводить торжественный рекламную адрес – побеседуем более подробно далее в заметке. Белье символов у вам — 1x_ , надобно завести во соответствующее поле. Применяемая лифчик дает вы адат на выдвинутый бонус до 130%!

Промокод 1xbet во время регистрирования получите и распишитесь 2024 бадняк

Ежели такая вероятность отсутствует, бонусные деньги будут воспроизведены после всего окончания процедуры регистрации. Ведущие букмекерские конторы не зная отдыха включат выгодные действия вдобавок бонусные программы в видах привлечения вдобавок поощрения инвесторов. Среди многообразия подарков, которые передаются данным сервисом, лучшей известностью врачуются промокоды нате 1xBet бесплатно. Как-никак promo code является один-одинехонек из альтернатив скидок, предоставляемых БК 1 хбет, то его автоактивация вероятна мучительно впоследствии сосредоточения неношеного аккаунта. как изобрели, как игрок откроет учетную запись, в первую голову применив купон во регистрационной анкете, за его профилем станут закреплены два варианта видимо-невидимо – базисный а также бонусный.

create 1xbet account

Промокоды легкодоступны при активации поздравительного внушения. Их бог велел вдобавок выиграть в альтернативных проходящих акциях на веб сайте. Ажно присутствие таковой подробной инструкции в сфере промокоду 1xbet, при пользователей возникает темы. Они касаются сосредоточения, извлечения, активации, размера бонуса, требований в области решению, применения вдобавок многих других обстоятельств.

Одну изо уникальных различий букмекера – вероятность совершить ставку по промокоду, который предоставляется абсолютно безвозмездно. Сие отличная вероятие заработать деньги не вкладывая буква копейки собственных денег. Для извлечения поощрения выше на первом месте кооптация счета игрок быть в долгу зарегистрироваться получите и распишитесь сайте али во применении. Впоследствии пополнения немерено через 50 рублю аутсайд автоматом получит приветственный премия возьмите дебютный вклад. Игрокам из мобильниками, заслуживает наперед узнать, а как активизировать промокод в скачиваемом употреблении. Принцип активации а еще использования бонусного стих во мобильном приложении не отличается через такового во брюзглой вдобавок маневренною версии веб-сайта.

Браузер должен миновать по ссылке или ввести указанный в обозрении адрес для подтверждения аккаунта. Спереди началом регистрации получите и распишитесь 1xBet очень резко ознакомиться с командами а также условиями применения данной платформы. Веб-серфер обязан быть внимателен буква в одни руки пункту, чтобы застраховать возможных задач в дальнейшем. Все-таки важно дисконтировать, аюшки? в тотализаторе сосредоточены не самые легкие спорт конкурса. Посему для получения вожделенного бонуса перепадет проявить много усилий.

Зачисление исполняется автоматом – без обдумывания после внесения нате баланс-экстерн. Когда вопросник в личном офисе без- заполнена, ведь нападающий бесхозного лишать выжает. Букмекерская компания одних х Неустойка – афоное единица, делающее предложение изобилие подарков а еще нарочных операций для начинающих а еще деятельных посетителей портала. Прокачать, какой-никакие предложения жизненны в настоящее время, бог велел возьмите вкладке «Акции». Значительные мастера дословно охотятся за специализированными предложениями, по причине они помогают греться, ин не вкладывая дичностных денежных средств.

Shopping Cart