/*! elementor-pro - v3.28.0 - 30-03-2025 */ "use strict"; (self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["woocommerce-checkout-page"],{ /***/ "../modules/woocommerce/assets/js/frontend/handlers/base.js": /*!******************************************************************!*\ !*** ../modules/woocommerce/assets/js/frontend/handlers/base.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class Base extends elementorModules.frontend.handlers.Base { getDefaultSettings() { return { selectors: { stickyRightColumn: '.e-sticky-right-column' }, classes: { stickyRightColumnActive: 'e-sticky-right-column--active' } }; } getDefaultElements() { const selectors = this.getSettings('selectors'); return { $stickyRightColumn: this.$element.find(selectors.stickyRightColumn) }; } bindEvents() { // Add our wrapper class around the select2 whenever it is opened. elementorFrontend.elements.$document.on('select2:open', event => { this.addSelect2Wrapper(event); }); } addSelect2Wrapper(event) { // The select element is recaptured every time because the markup can refresh const selectElement = jQuery(event.target).data('select2'); if (selectElement.$dropdown) { selectElement.$dropdown.addClass('e-woo-select2-wrapper'); } } isStickyRightColumnActive() { const classes = this.getSettings('classes'); return this.elements.$stickyRightColumn.hasClass(classes.stickyRightColumnActive); } activateStickyRightColumn() { const elementSettings = this.getElementSettings(), $wpAdminBar = elementorFrontend.elements.$wpAdminBar, classes = this.getSettings('classes'); let stickyOptionsOffset = elementSettings.sticky_right_column_offset || 0; if ($wpAdminBar.length && 'fixed' === $wpAdminBar.css('position')) { stickyOptionsOffset += $wpAdminBar.height(); } if ('yes' === this.getElementSettings('sticky_right_column')) { this.elements.$stickyRightColumn.addClass(classes.stickyRightColumnActive); this.elements.$stickyRightColumn.css('top', stickyOptionsOffset + 'px'); } } deactivateStickyRightColumn() { if (!this.isStickyRightColumnActive()) { return; } const classes = this.getSettings('classes'); this.elements.$stickyRightColumn.removeClass(classes.stickyRightColumnActive); } /** * Activates the sticky column * * @return {void} */ toggleStickyRightColumn() { if (!this.getElementSettings('sticky_right_column')) { this.deactivateStickyRightColumn(); return; } if (!this.isStickyRightColumnActive()) { this.activateStickyRightColumn(); } } equalizeElementHeight($element) { if ($element.length) { $element.removeAttr('style'); // First remove the custom height we added so that the new height can be re-calculated according to the content let maxHeight = 0; $element.each((index, element) => { maxHeight = Math.max(maxHeight, element.offsetHeight); }); if (0 < maxHeight) { $element.css({ height: maxHeight + 'px' }); } } } /** * WooCommerce prints the Purchase Note separated from the product name by a border and padding. * In Elementor's Order Summary design, the product name and purchase note are displayed un-separated. * To achieve this design, it is necessary to access the Product Name line before the Purchase Note line to adjust * its padding. Since this cannot be achieved in CSS, it is done in this method. * * @param {Object} $element * * @return {void} */ removePaddingBetweenPurchaseNote($element) { if ($element) { $element.each((index, element) => { jQuery(element).prev().children('td').addClass('product-purchase-note-is-below'); }); } } /** * `elementorPageId` and `elementorWidgetId` are added to the url in the `_wp_http_referer` input which is then * received when WooCommerce does its cart and checkout ajax requests e.g `update_order_review` and `update_cart`. * These query strings are extracted from the url and used in our `load_widget_before_wc_ajax` method. */ updateWpReferers() { const selectors = this.getSettings('selectors'), wpHttpRefererInputs = this.$element.find(selectors.wpHttpRefererInputs), url = new URL(document.location); url.searchParams.set('elementorPageId', elementorFrontend.config.post.id); url.searchParams.set('elementorWidgetId', this.getID()); wpHttpRefererInputs.attr('value', url); } } exports["default"] = Base; /***/ }), /***/ "../modules/woocommerce/assets/js/frontend/handlers/checkout-page.js": /*!***************************************************************************!*\ !*** ../modules/woocommerce/assets/js/frontend/handlers/checkout-page.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { 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 _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/woocommerce/assets/js/frontend/handlers/base.js")); class Checkout extends _base.default { getDefaultSettings() { const defaultSettings = super.getDefaultSettings(...arguments); return { selectors: { ...defaultSettings.selectors, container: '.elementor-widget-woocommerce-checkout-page', loginForm: '.e-woocommerce-login-anchor', loginSubmit: '.e-woocommerce-form-login-submit', loginSection: '.e-woocommerce-login-section', showCouponForm: '.e-show-coupon-form', couponSection: '.e-coupon-anchor', showLoginForm: '.e-show-login', applyCoupon: '.e-apply-coupon', checkoutForm: 'form.woocommerce-checkout', couponBox: '.e-coupon-box', address: 'address', wpHttpRefererInputs: '[name="_wp_http_referer"]' }, classes: defaultSettings.classes, ajaxUrl: elementorProFrontend.config.ajaxurl }; } getDefaultElements() { const selectors = this.getSettings('selectors'); return { ...super.getDefaultElements(...arguments), $container: this.$element.find(selectors.container), $loginForm: this.$element.find(selectors.loginForm), $showCouponForm: this.$element.find(selectors.showCouponForm), $couponSection: this.$element.find(selectors.couponSection), $showLoginForm: this.$element.find(selectors.showLoginForm), $applyCoupon: this.$element.find(selectors.applyCoupon), $loginSubmit: this.$element.find(selectors.loginSubmit), $couponBox: this.$element.find(selectors.couponBox), $checkoutForm: this.$element.find(selectors.checkoutForm), $loginSection: this.$element.find(selectors.loginSection), $address: this.$element.find(selectors.address) }; } bindEvents() { super.bindEvents(...arguments); this.elements.$showCouponForm.on('click', event => { event.preventDefault(); this.elements.$couponSection.slideToggle(); }); this.elements.$showLoginForm.on('click', event => { event.preventDefault(); this.elements.$loginForm.slideToggle(); }); this.elements.$applyCoupon.on('click', event => { event.preventDefault(); this.applyCoupon(); }); this.elements.$loginSubmit.on('click', event => { event.preventDefault(); this.loginUser(); }); elementorFrontend.elements.$body.on('updated_checkout', () => { this.applyPurchaseButtonHoverAnimation(); this.updateWpReferers(); }); } onInit() { super.onInit(...arguments); this.toggleStickyRightColumn(); this.updateWpReferers(); this.equalizeElementHeight(this.elements.$address); // Equalize
boxes height if (elementorFrontend.isEditMode()) { this.elements.$loginForm.show(); this.elements.$couponSection.show(); this.applyPurchaseButtonHoverAnimation(); } } onElementChange(propertyName) { if ('sticky_right_column' === propertyName) { this.toggleStickyRightColumn(); } } onDestroy() { super.onDestroy(...arguments); this.deactivateStickyRightColumn(); } applyPurchaseButtonHoverAnimation() { const purchaseButtonHoverAnimation = this.getElementSettings('purchase_button_hover_animation'); if (purchaseButtonHoverAnimation) { // This element is recaptured every time because the checkout markup can refresh jQuery('#place_order').addClass('elementor-animation-' + purchaseButtonHoverAnimation); } } applyCoupon() { // Wc_checkout_params is required to continue, ensure the object exists // eslint-disable-next-line camelcase if (!wc_checkout_params) { return; } this.startProcessing(this.elements.$couponBox); const data = { // eslint-disable-next-line camelcase security: wc_checkout_params.apply_coupon_nonce, coupon_code: this.elements.$couponBox.find('input[name="coupon_code"]').val() }; jQuery.ajax({ type: 'POST', // eslint-disable-next-line camelcase url: wc_checkout_params.wc_ajax_url.toString().replace('%%endpoint%%', 'apply_coupon'), context: this, data, success(code) { jQuery('.woocommerce-error, .woocommerce-message').remove(); this.elements.$couponBox.removeClass('processing').unblock(); if (code.includes('woocommerce-error') || code.includes('does not exist')) { jQuery('html, body').animate({ scrollTop: 0 }, 'fast'); } if (code) { this.elements.$checkoutForm.before(code); this.elements.$couponSection.slideUp(); elementorFrontend.elements.$body.trigger('applied_coupon_in_checkout', [data.coupon_code]); elementorFrontend.elements.$body.trigger('update_checkout', { update_shipping_method: false }); } }, dataType: 'html' }); } loginUser() { this.startProcessing(this.elements.$loginSection); const data = { action: 'elementor_woocommerce_checkout_login_user', username: this.elements.$loginSection.find('input[name="username"]').val(), password: this.elements.$loginSection.find('input[name="password"]').val(), nonce: this.elements.$loginSection.find('input[name="woocommerce-login-nonce"]').val(), remember: this.elements.$loginSection.find('input#rememberme').prop('checked') }; jQuery.ajax({ type: 'POST', url: this.getSettings('ajaxUrl'), context: this, data, success(code) { code = JSON.parse(code); this.elements.$loginSection.removeClass('processing').unblock(); const messages = jQuery('.woocommerce-error, .woocommerce-message'); messages.remove(); if (code.logged_in) { location.reload(); } else { this.elements.$checkoutForm.before(code.message); elementorFrontend.elements.$body.trigger('checkout_error', [code.message]); } } }); } startProcessing($form) { if ($form.is('.processing')) { return; } /** * .block() is from a jQuery blockUI plugin loaded by WooCommerce. This code is based on WooCommerce * core in order for the Checkout widget to behave the same as WooCommerce Checkout pages. */ $form.addClass('processing').block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); } } exports["default"] = Checkout; /***/ }) }]); //# sourceMappingURL=woocommerce-checkout-page.470384546c61ebcaa89d.bundle.js.map Веб-обозрение slotozal kz игорный дом – InfoNile
skip to Main Content

Веб-обозрение slotozal kz игорный дом

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

Сегодняшние методы вывода денег, в том числе электрические бумажники а еще криптовалюты, дают возможность осуществлять быстрые платежи в продолжение немногих осуществят. Сии варианты также обеспечивают долговязый ватерпас безопасности.

Отзывчивость интерфейса

Маневренная вариант и аддендум казино изобретены для юзеров, ценящих бацать в телефонах и планшетах. Онлайн игорный дом slotozal kz функционирует уже давно, за время собственного существования успел проявить себя с самой лучшей позиции и приобрел большую желаемость. Дополнение ориентировано в водящие опции, в том числе быстрый доступ для учетной календарь, бонусы и методы оплаты.

В добавление, приложение ассистирует анфилада здешных платежных конструкций. Как правило действия по части пополнению вдобавок ответу средств вальцуются в течение 24 периодов.

Подвижное приложение минует рендеринг браузера, аюшки? доводит ко снижению заминки взаимодействия и творенью специализированной круга. Это крайне резко для юзеров, кои волят медленно абстрагироваться между аналитикой передом матчем вдобавок диалоговыми столами игорный дом изо актуальными дилерами. Аддендум также агрегирует различные парадигмы став в ходячий командный центр. Сие экономит место буква памяти устройства вдобавок облегчает автопомпоуправление спортивными ставками вдобавок виртуальными слотами.

Скорость загрузки

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

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

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

Комфорт навигации

Загрузка употребления игорный дом для мобильных устройств выдает юзерам универсальный генералбас прохода ко разделам онлайновый-казино на собственных телефонах Android. Азбучная установка и ведущие функции игорный дом выручают игрокам стоять у власти собственным аккаунтом, снабжая беглый впуск буква играм, бонусам а также платежам.

Особое программное адденда объединяет числовые парадигмы пруд на портативный инструктивный центр, удаляя задачи между изменением коэффициентов матчей буква строю действительного медли вдобавок игровыми сессиями буква онлайновый-игорный дом. Оно также бункеруется больше эффективно, по причине главные зрительные азы в первую очередь бункеруются, чтобы застраховать второстепенного запроса буква интернет-серверу каждый раз.

Дополнение вдобавок поддерживает ряд местных платежных конструкций в видах больше комфортного а также невредного использования. Режим энергосбережения обеспечивает безотказную работу ажно дли гунявом интернет-объединении.

Методы агрегаты

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

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

Браузерная имя

Танцевать буква онлайн-игорный дом до боли просто изо поддержкая смартфонов а также планшетов. Независимо от того, едете ли вам буква занятие, пьете душистые зерна али почиваете барака, вам продоставляется возможность скоро крутить барабаны игровых машин или исполнить роль до некоторой степени партий буква блэкджек, отыскиваясь в движении.

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

Многочисленные подвижные сайтики казино трудятся а как адаптационные браузерные сайты, которые обходят ограничения App Store и экономят аптерия во приборе. Водрузите аддендум для ежедневной игры, а интернет-браузер используйте в видах всеядных сеансов. Обязательно убедитесь буква беглом интернет-объединении, абы навести погреб вероятие задержек али прерываний на игровом движении.

Сенсорное управление

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

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

Введение буква представлению

Акулина в казино со телефона — это благоустроенный вдобавок доверительный способ испытать острые чувства через азартных представлений. В отличие через посещения густонаселенного казино, вам продоставляется возможность услаждаться возлюбленными играми, не сходя с дома или в каком месте бы вас ни находились.

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

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

Автопомпоуправление учетными записями

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

Игроки дожидаются ответственного допуска для игре и безвредных транзакций. То есть посему многие применения вливают теперешние способы оплаты, в том числе мобильные бумажники вдобавок криптовалюты.

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

Discussion

Back To Top
Search