"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 4 – Crystal Detailing

Play on the Go: Royal Panda Casino Mobile App Insights

The online gambling industry is constantly evolving, offering players more ways to enjoy their favourite games than ever before. With the rise of smartphones and tablets, mobile gaming has become a dominant force, and casinos are adapting quickly to meet this demand. For players in New Zealand looking for a premium mobile experience, exploring options […]

Imperial Wins Casino Registration Guide for New Players

Embarking on the journey into the world of online casinos can be an exciting prospect, offering a diverse range of entertainment and potential rewards. For those eager to explore the offerings at a premier platform, initiating the process is straightforward and secure, and you can begin by visiting the dedicated registration portal at https://imperialwinscasino-online.com/registration/. This […]

B Casino Online: A Comprehensive Overview for Players

Navigating the vast landscape of online gaming can be an exciting endeavor, offering a plethora of entertainment options right at your fingertips. Many players are on the lookout for platforms that provide a secure, engaging, and rewarding experience, and it is within this competitive arena that B Casino Online has carved out its niche. This […]

Pin Up Casino – Azərbaycanda Onlayn Kazino – Giriş və Qeydiyyat

Pin Up Casino – Azərbaycanda Onlayn Kazino – Giriş və Qeydiyyat ▶️ OYNA Содержимое Pin Up Casino-da Qeydiyyatdan Keçmək Onlayn Kazinoda Oyunlar və Bonuslar Pin Up Casino-da Ödəniş və Çıxarış Üsulları Pin Up Casino Azərbaycanın kazino online ən məşhur onlayn kazinolardan biridir. Pin-up giriş üçün sizə təklif edirik ki, ilk addım olaraq pin up saytına […]

GoldBet kasyno PL – automaty i pozostałe gry kasynowe

GoldBet kasyno PL – automaty i pozostałe gry kasynowe ▶️ GRAĆ Содержимое Jak zarejestrować się w GoldBet i uruchomić konto Wybór automatów: najpopularniejsze gry slotowe Gry stołowe w GoldBet: blackjack, ruletka, baccarat Legalność i licencje kasyna GoldBet w Polsce Metody płatności: wpłaty i wypłaty w GoldBet Program lojalnościowy i bonusy dla graczy Rozpocznij grę w […]

GoldBet kasyno Polska – gry, bonusy i metody płatności

GoldBet kasyno Polska – gry, bonusy i metody płatności ▶️ GRAĆ Содержимое Jak zarejestrować konto i przejść weryfikację tożsamości Najpopularniejsze gry slotowe w GoldBet – przegląd i strategie Oferta powitalna: krok po kroku jak odebrać bonus bez depozytu Program lojalnościowy – jak zbierać punkty i wymieniać je na nagrody Dostępne metody płatności w Polsce i […]

Goldbet Online-Casino – Registrierung und Kontoeröffnung

Goldbet Online-Casino – Registrierung und Kontoeröffnung ▶️ SPIELEN Содержимое Benötigte persönliche Daten für die Anmeldung bei goldbet Welche Angaben werden abgefragt? Schritt‑für‑Schritt Anleitung zur Kontoerstellung Verifizierung und erste Einzahlung Verifizierung des Accounts: Dokumente und Verfahren Benötigte Dokumente Verfahren in Schritten Sicherheitsmaßnahmen beim Passwort wählen Passwort‑Manager einsetzen Einzahlungsmethoden auswählen und aktivieren Erste Bonusbedingungen nach der Registrierung […]

Goldbet Sportwetten DE – verfügbare Sportarten und Wettoptionen

Goldbet Sportwetten DE – verfügbare Sportarten und Wettoptionen ▶️ SPIELEN Содержимое Live-Fußballwetten: Sofortige Quoten und Spielverlauf Eishockey-Pre-Game-Wetten: Tipps für einzelne Perioden Analyse der Perioden‑Statistiken Tennis-Set- und Spielwetten: Detailstrategien Set‑Wetten gezielt nutzen Spiel‑Wetten im Live‑Modus Basketball-Quarter-Wetten: Fokus auf Viertelstände Typische Viertel‑Märkte Tipps für Profit Casino-Integration: Kombiwetten mit Slots und Tischspielen Spezialwetten auf eSports: Turnier- und Spieleranalysen […]

Just Casino Registration: Your Gateway to Online Gaming

Embarking on your online casino adventure is an exciting prospect, and getting started is often the simplest part of the journey. For those eager to dive into a world of thrilling games and potential wins, completing the Just Casino registration process is your first essential step. This straightforward procedure opens the door to a vast […]

Yukon Casino Mobile App: Avoid These Common Pitfalls

Embarking on the thrilling world of online casinos from your mobile device offers unparalleled convenience and excitement. Many players are eager to get started, seeking out the best platforms available. If you’re looking to join the adventure and experience top-tier gaming on the go, exploring options like the Yukon Casino Mobile App is a great […]