"use strict"; (self["webpackChunkelementorFrontend"] = self["webpackChunkelementorFrontend"] || []).push([["accordion"],{ /***/ "../assets/dev/js/frontend/handlers/accordion.js": /*!*******************************************************!*\ !*** ../assets/dev/js/frontend/handlers/accordion.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 _baseTabs = _interopRequireDefault(__webpack_require__(/*! ./base-tabs */ "../assets/dev/js/frontend/handlers/base-tabs.js")); class Accordion extends _baseTabs.default { getDefaultSettings() { const defaultSettings = super.getDefaultSettings(); return { ...defaultSettings, showTabFn: 'slideDown', hideTabFn: 'slideUp' }; } } exports["default"] = Accordion; /***/ }), /***/ "../assets/dev/js/frontend/handlers/base-tabs.js": /*!*******************************************************!*\ !*** ../assets/dev/js/frontend/handlers/base-tabs.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ "../node_modules/core-js/modules/esnext.iterator.filter.js"); __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js"); class baseTabs extends elementorModules.frontend.handlers.Base { getDefaultSettings() { return { selectors: { tablist: '[role="tablist"]', tabTitle: '.elementor-tab-title', tabContent: '.elementor-tab-content' }, classes: { active: 'elementor-active' }, showTabFn: 'show', hideTabFn: 'hide', toggleSelf: true, hidePrevious: true, autoExpand: true, keyDirection: { ArrowLeft: elementorFrontendConfig.is_rtl ? 1 : -1, ArrowUp: -1, ArrowRight: elementorFrontendConfig.is_rtl ? -1 : 1, ArrowDown: 1 } }; } getDefaultElements() { const selectors = this.getSettings('selectors'); return { $tabTitles: this.findElement(selectors.tabTitle), $tabContents: this.findElement(selectors.tabContent) }; } activateDefaultTab() { const settings = this.getSettings(); if (!settings.autoExpand || 'editor' === settings.autoExpand && !this.isEdit) { return; } const defaultActiveTab = this.getEditSettings('activeItemIndex') || 1, originalToggleMethods = { showTabFn: settings.showTabFn, hideTabFn: settings.hideTabFn }; // Toggle tabs without animation to avoid jumping this.setSettings({ showTabFn: 'show', hideTabFn: 'hide' }); this.changeActiveTab(defaultActiveTab); // Return back original toggle effects this.setSettings(originalToggleMethods); } handleKeyboardNavigation(event) { const tab = event.currentTarget, $tabList = jQuery(tab.closest(this.getSettings('selectors').tablist)), // eslint-disable-next-line @wordpress/no-unused-vars-before-return $tabs = $tabList.find(this.getSettings('selectors').tabTitle), isVertical = 'vertical' === $tabList.attr('aria-orientation'); switch (event.key) { case 'ArrowLeft': case 'ArrowRight': if (isVertical) { return; } break; case 'ArrowUp': case 'ArrowDown': if (!isVertical) { return; } event.preventDefault(); break; case 'Home': event.preventDefault(); $tabs.first().trigger('focus'); return; case 'End': event.preventDefault(); $tabs.last().trigger('focus'); return; default: return; } const tabIndex = tab.getAttribute('data-tab') - 1, direction = this.getSettings('keyDirection')[event.key], nextTab = $tabs[tabIndex + direction]; if (nextTab) { nextTab.focus(); } else if (-1 === tabIndex + direction) { $tabs.last().trigger('focus'); } else { $tabs.first().trigger('focus'); } } deactivateActiveTab(tabIndex) { const settings = this.getSettings(), activeClass = settings.classes.active, activeFilter = tabIndex ? '[data-tab="' + tabIndex + '"]' : '.' + activeClass, $activeTitle = this.elements.$tabTitles.filter(activeFilter), $activeContent = this.elements.$tabContents.filter(activeFilter); $activeTitle.add($activeContent).removeClass(activeClass); $activeTitle.attr({ tabindex: '-1', 'aria-selected': 'false', 'aria-expanded': 'false' }); $activeContent[settings.hideTabFn](); $activeContent.attr('hidden', 'hidden'); } activateTab(tabIndex) { const settings = this.getSettings(), activeClass = settings.classes.active, $requestedTitle = this.elements.$tabTitles.filter('[data-tab="' + tabIndex + '"]'), $requestedContent = this.elements.$tabContents.filter('[data-tab="' + tabIndex + '"]'), animationDuration = 'show' === settings.showTabFn ? 0 : 400; $requestedTitle.add($requestedContent).addClass(activeClass); $requestedTitle.attr({ tabindex: '0', 'aria-selected': 'true', 'aria-expanded': 'true' }); $requestedContent[settings.showTabFn](animationDuration, () => elementorFrontend.elements.$window.trigger('elementor-pro/motion-fx/recalc')); $requestedContent.removeAttr('hidden'); } isActiveTab(tabIndex) { return this.elements.$tabTitles.filter('[data-tab="' + tabIndex + '"]').hasClass(this.getSettings('classes.active')); } bindEvents() { this.elements.$tabTitles.on({ keydown: event => { // Support for old markup that includes an `` tag in the tab if (jQuery(event.target).is('a') && `Enter` === event.key) { event.preventDefault(); } // We listen to keydowon event for these keys in order to prevent undesired page scrolling if (['End', 'Home', 'ArrowUp', 'ArrowDown'].includes(event.key)) { this.handleKeyboardNavigation(event); } }, keyup: event => { switch (event.code) { case 'ArrowLeft': case 'ArrowRight': this.handleKeyboardNavigation(event); break; case 'Enter': case 'Space': event.preventDefault(); this.changeActiveTab(event.currentTarget.getAttribute('data-tab')); break; } }, click: event => { event.preventDefault(); this.changeActiveTab(event.currentTarget.getAttribute('data-tab')); } }); } onInit(...args) { super.onInit(...args); this.activateDefaultTab(); } onEditSettingsChange(propertyName) { if ('activeItemIndex' === propertyName) { this.activateDefaultTab(); } } changeActiveTab(tabIndex) { const isActiveTab = this.isActiveTab(tabIndex), settings = this.getSettings(); if ((settings.toggleSelf || !isActiveTab) && settings.hidePrevious) { this.deactivateActiveTab(); } if (!settings.hidePrevious && isActiveTab) { this.deactivateActiveTab(tabIndex); } if (!isActiveTab) { this.activateTab(tabIndex); } } } exports["default"] = baseTabs; /***/ }) }]); //# sourceMappingURL=accordion.b9a0ab19c7c872c405d7.bundle.js.map developer – Page 24 – Crystal Detailing

Spinko Casino DE – Einzahlungslimits und Auszahlungsbedingungen

Spinko Casino DE – Einzahlungslimits und Auszahlungsbedingungen ▶️ SPIELEN Содержимое Einzahlungslimits pro Transaktion und Tag Verfügbare Zahlungsmethoden und deren Limits Kreditkarten E‑Wallets Auszahlungsbedingungen: Nachweise und Fristen Im spinko casino de können Spieler aus Deutschland von einer breiten Palette an Zahlungsoptionen profitieren, wobei die Einzahlungslimits klar definiert sind, um sowohl Sicherheit als auch Komfort zu gewährleisten. […]

Spinko Online-Casino – Einzahlungen, Auszahlungen und Zahlungsoptionen

Spinko Online-Casino – Einzahlungen, Auszahlungen und Zahlungsoptionen ▶️ SPIELEN Содержимое Verfügbare Zahlungsmethoden für Einzahlungen Kredit‑ und Debitkarten E‑Wallets und alternative Lösungen Schritte zur schnellen Einzahlung Auswahl der bevorzugten Zahlungsmethode Auszahlungsprozesse und Bearbeitungszeiten Das spinko casino bietet ein breites Spektrum an Zahlungswegen, die sowohl für Anfänger als auch für erfahrene Spieler optimiert sind. Spinko legt besonderen […]

Xon kasyno online – metody płatności i czas realizacji wypłat

Xon kasyno online – metody płatności i czas realizacji wypłat ▶️ GRAĆ Содержимое Szybkie i bezpieczne metody płatności w Xon kasyno Średni czas realizacji wypłat w Xon kasyno Metody wypłat i ich ramy czasowe Czynniki wpływające na szybkość wypłaty W xon kasyno gracze mogą liczyć na szeroką gamę metod płatności, które zostały zoptymalizowane pod kątem […]

Wild Tokyo Casino online em Portugal – visão geral da plataforma

Wild Tokyo Casino online em Portugal – visão geral da plataforma ▶️ JOGAR Содержимое Como criar e validar a conta: passo a passo para jogadores portugueses Preenchimento dos dados pessoais Escolha e verificação da senha O wild tokyo casino portugal chegou ao mercado português trazendo uma proposta inovadora de jogos de casino e apostas esportivas, […]

VipLuck Casino Portugal – utilização em telemóvel e tablet

VipLuck Casino Portugal – utilização em telemóvel e tablet ▶️ JOGAR Содержимое Como instalar a aplicação VipLuck no Android e iOS Instalação no Android Instalação no iOS Requisitos de sistema para telemóveis e tablets Configurações recomendadas Navegação e usabilidade da interface móvel Depósitos e levantamentos via dispositivos móveis Limites e taxas Dicas para evitar erros […]

Pinco Online Kazino (Пинко) 2026 – Təhlükəsizlik və Məlumatların Mühafizəsi

Pinco Online Kazino (Пинко) 2026 – Təhlükəsizlik və Məlumatların Mühafizəsi ▶️ OYNA Содержимое İstifadəçilərin Məlumatlarının Mühafizəsi Ödəniş Əməliyyatlarının Təhlükəsizliyi Ödəniş Üsulları Onlayn Kazinoda Verilmiş Məlumatların Qorunması Pinco az saytında oynamaq istəyən hər kəs pinco təcrübəsini yaşaya bilər. pinko kazino oyunlarından əlavə, pinco promo code vasitəsilə xüsusi təkliflərdən də yararlanacaqlar. Pinco saytında təhlükəsizlik və məlumatların mühafizəsi […]