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

Маневренные применения а также введение Flagman casino скачать буква онлайн-казино: подробное описание.

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

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

Участливость интерфейса

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

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

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

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

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

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

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

Большой руки навигации

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

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

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

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

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

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

Газопроизводительность загрузки

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

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

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

Явственность для подвижных механизмов

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

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

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

Discussion

Back To Top
Search