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

Unlock Your Potential with Casino Rewards Bonus Offers

Embarking on the thrilling world of online casinos can feel like stepping into a dazzling, yet sometimes overwhelming, arcade. For many players, the allure lies not just in the games themselves, but in the tantalizing offers that can extend playtime and enhance the overall experience. Navigating these promotions requires a keen eye and a strategic […]

Bet365 Casino Mobile App: Future Trends in Gaming

The digital landscape of online gaming is in constant flux, driven by technological advancements and evolving player expectations. As players seek more immersive and convenient experiences, the evolution of mobile platforms is paramount. Many are looking to access top-tier entertainment on the go, and for those in New Zealand, exploring options like the Bet365 Casino […]

Spinbet Casino NZ: Your Beginner’s Guide to Online Gaming

Embarking on the journey into the world of online casinos can be both exhilarating and a little daunting for newcomers. Understanding the basics, from navigating the platform to managing your funds, is crucial for a positive experience. Many players find that reputable sites like spinbet-casinos.com offer a wealth of resources and games suitable for those […]

Vegastars Casino Games: Your Ticket to Exciting Online Play

Welcome to the dazzling world of online entertainment, where thrilling adventures and fantastic winning opportunities await you! If you’re on the hunt for a premier online gaming destination, look no further than the impressive selection available at Vegastars Casino games NZ. This platform is designed to bring the excitement of a Las Vegas casino straight […]

Pistolo Casino Games: Your Ultimate Review & How-To Guide

Embarking on the thrilling world of online casinos requires a discerning eye for quality and user experience. For players in New Zealand seeking a robust platform with a diverse array of entertainment options, exploring the offerings is paramount to finding your perfect digital gaming destination. Many players are on the lookout for reliable platforms, and […]

500 Casino Games: Navigating Your Options for Online Play

The digital landscape of online casinos offers a staggering array of choices for players seeking entertainment and potential wins. With so many platforms emerging, understanding where to find a comprehensive selection of games is crucial for a satisfying experience. For those looking to explore a wide variety of options, delving into the offerings at https://500casino-nz.com/games/ […]

Chicken Road – Online Casino Slot Offering Wild Chicken Road-Crossing Action

Chicken Road – Online Casino Slot Offering Wild Chicken Road-Crossing Action ▶️ PLAY Содержимое Unleash the Frenzy of Clucking Chickens Unpredictable Fun Experience the Thrill of the Road-Crossing Adventure What to Expect Are you ready to experience the thrill of the chicken road gambling game? Look no further! Introducing Chicken Road, the online casino slot […]

Kasyno online Vulkan Vegas – Przewodnik dla początkujących

Kasyno online Vulkan Vegas – Przewodnik dla początkujących ▶️ GRAĆ Содержимое Jak zacząć grę w kasynie online Vulkan Vegas Ważne informacje Wybór gier i promocji w kasynie Vulkan Vegas Promocje w kasynie Vulkan Vegas Bezpieczeństwo i płatności w kasynie online Vulkan Vegas Jeśli szukasz wiarygodnego i atrakcyjnego kasyna online, vulkan vegas jest doskonałym wyborem. Z […]

Mystake casino | Avis 2026 & Bonus de 1000€

Mystake casino | Avis 2026 & Bonus de 1000€ ▶️ JOUER Содержимое Avis Mystake Casino 2026 & Bonus de 1000€ Présentation de la plateforme Mystake Casino en 2026 Analyse des jeux disponibles et leurs taux de rendement (RTP) Tableau des taux de rendement clés Évaluation des mesures de sécurité et de conformité réglementaire Licence et […]

Wild Tokyo casinò mobile – gioco da smartphone e tablet

Wild Tokyo casinò mobile – gioco da smartphone e tablet ▶️ GIOCARE Содержимое Installazione dell’app Wild Tokyo su Android e iOS Requisiti tecnici minimi per una performance ottimale Guida rapida alle funzioni principali dell’interfaccia mobile Strategie di gioco specifiche per schermi touch Gestione dei comandi rapidi Ottimizzazione della visuale Gestione sicura di depositi e prelievi […]