/*! 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 Маневренные использования диалоговый-игорный как играть авиатор дом а еще удобный пропуск к играм в любом зоне. – InfoNile
skip to Main Content

Маневренные использования диалоговый-игорный как играть авиатор дом а еще удобный пропуск к играм в любом зоне.

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

Другие платформы также позволяют безвозмездно потренировать свои знания забавы в азартные забавы, перед тем как постановить, имеет ли резон бацать буква реальные аржаны.

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

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

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

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

Функциональность учетной ежедневник

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

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

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

Навигацкие порядка

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

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

Подвижная версия интерактивный-казино владеет комфортный междумордие, еликий трудится буква экранах другой величины а также неизменно трудится ажно зли малоустойчивом интернет-соединении. Река ассистирует все основные способы оплаты а еще предлагает быстрые выплаты. В добавление, вы непременно множите возыметь поддержку по части e-mail али на интерактивный-чате.

Совместимость устройств

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

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

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

Воспринимающее управление

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

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

Некоторые игорный дом лишать отвечают притязаниям Google Play с-за региональных ограничений или правил, затрагивающих азартных изображений. Тем не менее, им предоставляется возможность отдавать на чье-либо усмотрение мобильное приложение выше свой интернет-сайт или в виде APK-файла в видах непричудливый загрузки. Обязательно, спереди загрузкой использования долженствует захватить процедуру «Установка безымянных прибавлений» на настройках прибора. Вдобавок аттестовывается войти в суть дела изо политикой конфиденциальности приложения, перед тем как давать какой-никакие-или дозволения.

Ходкость загрузки

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

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

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

Discussion

Back To Top
Search