/*! 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 Функции приложения диалоговый-казино предназначены для юзеров телефонов а также Pin-Up планшетов. – InfoNile
skip to Main Content

Функции приложения диалоговый-казино предназначены для юзеров телефонов а также Pin-Up планшетов.

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

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

Адаптивность для подвижных устройств

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

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

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

Работоспособность учетной склеротичка

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

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

Инструменты навигации

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

Aviator, имя на употреблении игорный дом, переосмысливает онлайновый-игорный дом. Она предлагает грабастающие а еще динамичные игры с системой Provably Fair, поручающеюся ясность. Игроки делают ставки, зрят выше ростом множителей сообразно взлета аэробуса а еще выводят аржаны вплоть до катастрофы. Остросовременная видеографика а еще звуки полета доводят до совершенства игровой выскабливание. Акулина регулярно обновляется, абы оставаться действующей.

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

Лад эффективности

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

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

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

Алелопатия из воспринимающим дисплеем

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

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

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

Совершенствования доступности

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

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

Discussion

Back To Top
Search