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

Shotz Casino Login: Navigating Your Best Online Gaming Choices

Embarking on the digital casino journey can feel like stepping into a vast, glittering metropolis, filled with endless possibilities and exciting avenues to explore. Each platform offers a unique flavour, a distinct atmosphere, and a different set of temptations designed to capture your attention and keep you engaged. For those in New Zealand looking for […]

ArtCasino casino online – métodos de pago y tiempos de retirada

ArtCasino casino online – métodos de pago y tiempos de retirada ▶️ JUGAR Содержимое Métodos de pago habilitados en ArtCasino Procedimiento para depositar con tarjetas de crédito Uso de monederos electrónicos: pasos y consideraciones Transferencias bancarias: plazos y costos Consejos para agilizar la transferencia Cómo solicitar y recibir tu retiro rápidamente Resolución de problemas comunes […]

ArtCasino Online-Casino – Einzahlungen, Auszahlungen und Zahlungsoptionen

ArtCasino Online-Casino – Einzahlungen, Auszahlungen und Zahlungsoptionen ▶️ SPIELEN Содержимое Verfügbare Einzahlungsmethoden und ihre Gebühren Schnelle Kreditkarten‑Einzahlung: Vorgehensweise und Limits E‑Wallets bei ArtCasino: Vorteile und Sicherheitsaspekte Auszahlung per Banküberweisung: Dauer und erforderliche Dokumente Auszahlungslimits und Verifizierung: Was Spieler wissen müssen Tipps zur Optimierung von Ein‑ und Auszahlungen im ArtCasino Nutzen Sie Sofortüberweisung für Einzahlungen, weil […]

ArtCasino casino España – seguridad y protección de los jugadores

ArtCasino casino España – seguridad y protección de los jugadores ▶️ JUGAR Содержимое Licencias y regulaciones que respaldan la fiabilidad de ArtCasino Protocolos de encriptación y protección de datos personales Cifrado de datos en reposo Protección de datos personales Medidas anti‑fraude y detección de actividades sospechosas Herramientas de juego responsable para los usuarios Temporizadores de […]

ArtCasino Online-Casino – Einzahlungen, Auszahlungen und Zahlungsoptionen

ArtCasino Online-Casino – Einzahlungen, Auszahlungen und Zahlungsoptionen ▶️ SPIELEN Содержимое Wie man bei ArtCasino Einzahlungen per Kreditkarte tätigt Schritt‑für‑Schritt-Anleitung Tipps für eine reibungslose Transaktion Mobile Geldtransfer: Einzahlen über Apple Pay und Google Pay Sofort/Klarna – Schritt‑für‑Schritt Anleitung für Einzahlungen bei artcasino de Auszahlung per Banküberweisung: Verifizierung und Bearbeitungszeiten Verifizierungsschritte und typische Zeiten E‑Geldbörsen nutzen: Auszahlung mit Skrill, […]

Zoccer Live-Casino DE – Tischspiele und Live-Dealer

Zoccer Live-Casino DE – Tischspiele und Live-Dealer ▶️ SPIELEN Содержимое Praktische Tipps für die Auswahl des optimalen Live‑Dealers bei Zoccer Strategische Vorgehensweisen bei klassischen Tischspielen im Live-Format Optimierung der Sitzungsdauer und Einsatzgrößen für maximale Gewinnchancen Ideale Sitzungsdauer im Live-Dealer-Bereich Einsatzstrategien für maximale Rendite Im zoccer casino erleben Spieler in Deutschland ein umfassendes Live‑Casino-Angebot, das klassische […]

Captain Spins Casino Games: Your Adventure Begins

Embarking on a journey into the thrilling world of online gaming can feel like setting sail on an uncharted sea, full of excitement and potential rewards. For those eager to discover a treasure trove of entertainment, exploring the vast array of options is key, and you might find that the vibrant collection of Captain Spins […]

Players Palace Casino Welcome Bonus: A Beginner’s Guide

Embarking on your online casino journey can be both exciting and a little daunting, especially when you’re looking for the best starting point. Many new players wonder about the best way to get acquainted with a new platform and maximize their initial experience. Understanding the nuances of offers like the https://playerspalacecasino-online.com/welcome-bonus/ can provide a significant […]

Jet Casino NZ: Your Guide to Smarter Online Play

Navigating the world of online casinos can be an exhilarating experience, offering a vast array of entertainment options right at your fingertips. For players in New Zealand seeking a dynamic and engaging platform, exploring reputable sites is key to a fulfilling journey. Many enthusiasts have found a compelling destination at https://jetcasino-nz.com/, a platform designed to […]

Grandpashabet – Grandpashabet Casino – Grandpashabet Giriş

Grandpashabet – Grandpashabet Casino – Grandpashabet Giriş ▶️ OYNAMAK Содержимое Grandpashabet Kasino Hakkında Grandpashabet’de Oynanabilecek Oyunlar ve Bonuslar Grandpashabet güncel adres ve giriş bilgilerini öğrenmek için bu sayfayı inceleyin. Grandpashabet Casino, güvenli ve eğlenceli bir deneyim sunan en popüler casino sitelerinden biridir. Grandpashabet güncel giriş bilgileri, güvenli ve hızlı bir şekilde giriş yapmanızı sağlar. Casino […]