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

Mostbet – Site Oficial de Casino Online e Apostas no Portugal

Mostbet – Site Oficial de Casino Online e Apostas no Portugal ▶️ JOGAR Содержимое Mostbet – O Melhor Site de Casino Online e Apostas no Portugal Registre-se Agora e Gane! Como registrar-se no Mostbet? Se você está procurando por um site de casino online e apostas de confiança no Portugal, você chegou ao lugar certo. […]

Пин Ап Казино Официальный сайт | Pin Up Casino играть онлайн – Вход, Зеркало (2026)

Пин Ап Казино Официальный сайт | Pin Up Casino играть онлайн – Вход, Зеркало (2026) ▶️ ИГРАТЬ Содержимое Pin Up Casino – Официальный Сайт Официальный Сайт Pin Up Casino Играть Онлайн – Вход Шаги для регистрации: Зеркало – Как Использовать Если вы ищете надежный и безопасный способ играть в онлайн-казино, то Pin Up Casino – […]

Unlock More Fun with the Wheelz Casino Welcome Bonus

Embarking on your online casino adventure can be incredibly exciting, especially when you’re greeted with a generous offer. Discovering the best ways to maximize your initial gaming experience is key, and many players look for special promotions to get started. Understanding the terms and conditions is paramount, and you can find detailed information regarding these […]

Spin Galaxy Casino Games: Navigating Future Trends

The landscape of online entertainment is in constant flux, and the world of digital casinos is no exception. As technology advances and player expectations evolve, staying ahead of the curve is crucial for any operator aiming to provide a stellar experience. Understanding these shifts allows players to anticipate exciting new features and gameplay possibilities when […]

Maximize Your Play with Casino Classic Bonus Offers

Embarking on the exciting world of online gaming requires a strategic approach, and understanding promotional offers is paramount to enhancing your experience. Savvy players know that a well-timed bonus can significantly extend playtime and provide more opportunities to hit that winning combination. For those in New Zealand seeking a robust gaming platform, exploring the Classic […]

All Slots Casino Mobile App: Your Top FAQs Answered

Embarking on the exciting world of online gaming from your smartphone or tablet opens up a universe of entertainment and potential wins. Many players are keen to discover the best ways to access their favorite casino games on the go, and for good reason. If you’re looking to dive into a premium mobile gaming experience, […]

Rooli Casino Mobile App: Your Pocket-Sized Gaming Hub

The world of online gaming has seen a significant evolution, with mobile accessibility becoming paramount for players seeking convenience and instant gratification. Many enthusiasts are now looking for seamless ways to enjoy their favorite casino games on the go, and this is precisely where dedicated mobile platforms shine. For those wondering about the best options […]

Top Strategies for Bitkingz Casino NZ Success

Navigating the dynamic world of online casinos requires a blend of luck and strategic thinking. For players in New Zealand looking to enhance their gaming experience and potentially their winnings, understanding effective approaches is key. Many players have discovered a wealth of opportunities at sites like https://bitkingz-casino.com/, and exploring how to maximise these can be […]

Gelassene_Nerven_und_chicken_road_game_für_rasante_Reaktionszeiten_beweisen

Gelassene Nerven und chicken road game für rasante Reaktionszeiten beweisen Die Psychologie hinter dem Erfolg: Warum wir immer wieder spielen Die Rolle von Belohnung und Bestrafung Variationen und Erweiterungen des Spielkonzepts Die Bedeutung von Community und Wettbewerb Technische Aspekte und Entwicklung des Spiels Optimierung für unterschiedliche Geräte und Bildschirmgrößen Die Zukunft des "Hühner-Straße"-Spiels und ähnlicher […]

Serious_gamers_explore_opportunities_with_millioners-casino_net_and_enhanced_win

Serious gamers explore opportunities with millioners-casino.net and enhanced winning potential Understanding Game Variety and Strategies The Role of Random Number Generators (RNGs) Responsible Gaming and Bankroll Management Setting Deposit Limits and Utilizing Self-Exclusion Understanding Bonus Structures and Wagering Requirements The Impact of Game Contribution on Wagering Requirements The Future of Online Gaming and Technological Advancements […]