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

Genuine_benefits_and_vegas_hero_offer_ultimate_casino_gaming_excitement

Genuine benefits and vegas hero offer ultimate casino gaming excitement Understanding the Game Selection and Variety The Rise of Live Dealer Games Navigating the Bonuses and Promotions Landscape Understanding Wagering Requirements Security and Fairness: Essential Considerations The Role of Independent Testing Agencies Customer Support: Accessibility and Responsiveness Future Trends and Innovations in Online Gaming 🔥 […]

Pleasant_surprises_await_within_https_slots-palaces_net_offering_captivating_gam

Pleasant surprises await within https://slots-palaces.net offering captivating game selections and rich rewards Understanding Paylines and Symbol Combinations The Role of Volatility and RTP Exploring Bonus Features and Special Symbols Strategies for Responsible Gameplay The Future of Online Slot Gaming at https://slots-palaces.net 🔥 Play ▶️ Pleasant surprises await within https://slots-palaces.net offering captivating game selections and rich […]

Reliable_platforms_and_secure_gaming_experiences_await_with_spinaltos-casino_com

Reliable platforms and secure gaming experiences await with spinaltos-casino.com for players worldwide Understanding the Importance of Secure Online Gaming The Role of Licensing and Regulation Exploring the Variety of Games Available Optimizing for Mobile Gaming Understanding Bonus Structures and Promotions The Importance of Responsible Gambling Evaluating Customer Support and Payment Options Future Trends in Online […]

Detailed_analysis_unlocks_the_potential_of_spin_lynx_for_advanced_users

Detailed analysis unlocks the potential of spin lynx for advanced users Understanding the Core Mechanics of Content Spinning The Role of Natural Language Processing (NLP) Applications of Automated Content Spinning Ethical Considerations and Content Authenticity The Future of Content Spinning Technology The Impact of AI on Content Creation Workflows Beyond Simple Rewording: Utilizing Spin Lynx […]

Rentabilidad_actual_sobre_juga_bet_casino_y_opciones_para_nuevos_usuarios

Rentabilidad actual sobre juga bet casino y opciones para nuevos usuarios Entendiendo las Mecánicas de los Juegos de Casino Online La Importancia de la Gestión del Bankroll Bonos y Promociones: ¿Atractivos o Trampas? Cómo Evaluar un Bono de Casino Online Aspectos Legales y Seguridad en los Casinos Online Protección de Datos Personales y Transacciones Seguras […]

Genuine_opportunities_unfold_from_savvy_bets_with_bluebet_explore_the_future_of

Genuine opportunities unfold from savvy bets with bluebet—explore the future of sports wagering Understanding the Core Features of Modern Betting Platforms The Role of Technology in Enhancing the Betting Experience Responsible Gaming and Regulatory Frameworks The Impact of Regulation on the Industry Future Trends in Sports Wagering Expanding Market Access and Demographic Shifts The Long […]

Intéressantes_stratégies_autour_de_betify_casino_pour_des_gains_considérables

Intéressantes stratégies autour de betify casino pour des gains considérables Comprendre les Jeux Proposés par betify casino Optimiser sa Stratégie aux Machines à Sous Les Avantages des Jeux de Table et en Direct Stratégies de Base pour le Blackjack Les Bonus et Promotions Proposés par betify casino Comprendre les Exigences de Mise Gestion du Capital […]

Strategic_gameplay_with_aviator_offers_potential_for_exciting_financial_gains_an

Strategic gameplay with aviator offers potential for exciting financial gains and calculated risk Understanding the Mechanics of the Game Strategies for Enhanced Gameplay Risk Management Techniques The Importance of Understanding Game Statistics Psychological Aspects of Gameplay Future Trends and Innovations 🔥 Play ▶️ Strategic gameplay with aviator offers potential for exciting financial gains and calculated […]

Strategic_advantages_and_ecuabet_insights_for_discerning_online_players

Strategic advantages and ecuabet insights for discerning online players Understanding Platform Features and Functionality The Importance of Mobile Compatibility Analyzing Odds and Value The Role of Statistical Analysis Risk Management and Responsible Gaming Recognizing Problem Gambling Evaluating Platform Security and Customer Support The Future of Online Betting and Emerging Technologies 🔥 Play ▶️ Strategic advantages […]

Wydarzenia_kasynowe_i_licencjonowana_marka_vavada_oferują_niezapomniane_wrażen

Wydarzenia kasynowe i licencjonowana marka vavada oferują niezapomniane wrażenia graczom Bezpieczeństwo i licencjonowanie kasyna Vavada Metody płatności i waluty dostępne w Vavada Oferta gier w Vavada: od slotów po gry na żywo Nowości w ofercie gier i promocjach w Vavada Obsługa klienta Vavada: dostępność i jakość Języki obsługiwane przez obsługę klienta Vavada Vavada a trendy […]