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

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 […]

Гет Икс (Get X) официальный сайт Гет Х казино

Гет Икс (Get X) официальный сайт Гет Х казино ▶️ ИГРАТЬ Содержимое Официальный сайт Get X – Гет Х казино Функциональные возможности официального сайта Get X Преимущества игроков Get X Если вы ищете надежное и безопасное онлайн-казино, где можно играть в любимые игры и получать реальные выигрыши, то вы пришли к правильному адресу. get x […]

1Win en Argentina – experiencia de casino en línea

1Win en Argentina – experiencia de casino en línea ▶️ JUGAR Содержимое Regulación y confianza en el mercado argentino Ofertas y promociones exclusivas para los jugadores argentinos 1win , una de las plataformas de apuestas y juegos en línea más populares, ha extendido su popularidad a Argentina. Con su aplicación 1win app y sitio web […]

Dudespin online kaszinó HU – regisztráció és játékosszámla létrehozása

Dudespin online kaszinó HU – regisztráció és játékosszámla létrehozása ▶️ JÁTSZANI Содержимое Dudespin online kaszinó HU: regisztráció és játékösszámla létrehozása Azonosító dokumentumok ellenőrzése a regisztráció során Elérhető fizetési módok a játékösszámlához Első befizetés és bónusz igénylése a dudespin kaszinó magyarország oldalán Második lépés: hitelesítés és bónusz aktiválás Játékösszámla biztonsági beállításai és 2FA aktiválása Alapvető biztonsági […]

Deloro Online Casino Canada – Game Providers and Available Titles

Deloro Online Casino Canada – Game Providers and Available Titles ▶️ PLAY Содержимое Key Software Partners Driving Deloro’s Game Library Leading Slot Developers Live Casino Powerhouses Slot Games: Popular Titles and Unique Features Live Dealer and Table Game Selections Live Dealer Providers Table Game Variety Mobile‑Optimized Games for On‑the‑Go Play Top Mobile Slots How to […]

Unlock Your Winnings with the National Casino Bonus

Embarking on an online casino adventure can be an exhilarating journey, filled with the thrill of chance and the potential for significant rewards. For those seeking a premier destination that understands the value of a warm welcome and ongoing appreciation, exploring the offers at https://nationalcasinos-online.com/bonuses/ is a must. This platform has carved a niche by […]

Unlock Your Game: Euro Palace Casino Welcome Bonus Guide

Embarking on your online casino journey can be an exciting prospect, especially when attractive offers are on the table. Understanding the nuances of these promotions is key to maximizing your gaming experience and potential winnings. For those looking to dive into a reputable platform, exploring the details of the Euro Palace Casino Welcome Bonus is […]