/*! 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

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

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

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

Читательские подбора

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

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

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

Обыкновения применения смартфонов

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

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

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

Адаптивные интерфейсы

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

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

Популярность изображений

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

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

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

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

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

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

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

Опции приложения

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

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

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

Discussion

Back To Top
Search