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

Remarkable_journeys_await_with_casino_tucan_and_exclusive_gaming_opportunities

Remarkable journeys await with casino tucan and exclusive gaming opportunities Understanding the Core Gaming Offerings The Importance of Software Providers Navigating Bonuses and Promotions Ensuring Security and Fair Play Understanding RNGs and Their Role in Fairness The Future of Online Gaming and Emerging Trends Beyond the Games: Player Support and Responsible Gaming 🔥 Play ▶️ […]

Strategic_gameplay_mastering_the_frantic_chicken_road_and_avoiding_vehicular_cha

Strategic gameplay mastering the frantic chicken road and avoiding vehicular chaos is key to high scores Understanding Traffic Patterns for Optimal Gameplay The Psychology of Risk Assessment Mastering the Chicken's Movement and Controls Leveraging Backtracking and Strategic Retreats The Role of Power-Ups and Bonus Items Understanding Item Spawn Rates and Patterns The Psychological Appeal of […]

Strategiczne_zakłady_i_hotslots_casino_zapewniają_wyjątkowe_możliwości_wygr

Strategiczne zakłady i hotslots casino zapewniają wyjątkowe możliwości wygranej online Rozwój Strategii Zakładów w Kasynie Online Rodzaje Bonusów Oferowanych przez hotslots casino i Inne Platformy Zarządzanie Budżetem i Odpowiedzialna Gra Nowe Trendy w Kasynach Online i Innowacje Technologiczne Przyszłość Hazardu Online: Regulacje i Rozwój Technologii 🔥 Graj ▶️ Strategiczne zakłady i hotslots casino zapewniają wyjątkowe […]

Moderne_Strategien_und_lukrative_Angebote_rund_um_den_aufregenden_rodeoslot_für

Moderne Strategien und lukrative Angebote rund um den aufregenden rodeoslot für erfahrene Nutzer Die Mechanik hinter dem Erfolg: Wie funktioniert der rodeoslot? Die Rolle der Zufallsgeneratoren Strategien für den erfolgreichen Umgang mit dem rodeoslot Die Bedeutung von Bonusangeboten und Freispielen Die Zukunft des rodeoslot: Trends und Innovationen Der Einfluss von Mobile Gaming Die rechtliche Situation […]

Tudo sobre o humorista português Ricardo Araújo Pereira

Tudo sobre o humorista português Ricardo Araújo Pereira Escassos comediantes alcançaram o prestígio que Ricardo Araújo Pereira edificou ao longo de décadas. Filho de uma família reservada, cedo revelou uma aptidão invulgar para a sátira. Este texto reúne o essencial sobre o seu percurso íntima e artística, sem esquecer os pormenores que habitualmente despertam o […]

Increíble_desafío_y_chickenroad_para_cruzar_la_calle_sin_ser_atrapado_por_los

Increíble desafío y chickenroad para cruzar la calle sin ser atrapado por los vehículos La Estrategia del Cruce: Anticipación y Reacción Dominando los Momentos Críticos Tipos de Vehículos y Patrones de Tráfico Adaptándose a la Imprevisibilidad El Aspecto de la Puntuación y los Power-Ups Estrategias para Maximizar la Puntuación El Atractivo Psicológico del Juego Variantes […]

Εξερεύνηση_ασφαλών_στοιχημάτων_με_ivybet_casino_re

Εξερεύνηση ασφαλών στοιχημάτων με ivybet casino review και ποικίλες δυνατότητες διασκέδασης Αξιολόγηση των Παιχνιδιών και των Προσφορών Προγραμματιστές Παιχνιδιών και Δίκαιη Λειτουργία Μέθοδοι Πληρωμής και Υποστήριξη Πελατών Εξυπηρέτηση Πελατών και Γλώσσες Υποστήριξης Ρυθμιστικό Πλαίσιο και Αδειοδότηση Σημασία των Αδειών και των Ελέγχων Προοπτικές και Εξέλιξη του Online Casino 🔥 Παίξε ▶️ Εξερεύνηση ασφαλών στοιχημάτων με […]

Creative_patterns_and_inspiring_designs_featuring_casoolas_ca_enhance_your_moder

Creative patterns and inspiring designs featuring casoolas.ca enhance your modern lifestyle The Art of Pattern Selection Deciphering Design Styles Inspiring Interior Design Choices Creating Cohesive Spaces The Role of Textiles in Modern Living Selecting the Right Fabrics The Significance of Lighting Design Beyond Function: The Emotional Connection 🔥 Play ▶️ Creative patterns and inspiring designs […]

Στοιχηματικές εταιρείες 18+: τι πρέπει να γνωρίζει ο ενήλικος παίκτης

Στοιχηματικές εταιρείες 18+: τι πρέπει να γνωρίζει ο ενήλικος παίκτης Οι ιστοσελίδες στοιχημάτων 18+ συνδυάζουν αθλητικές αγορές, live ποντάρισμα και εργαλεία λογαριασμού, αλλά η ποιότητα αυτών των λειτουργιών διαφέρει σημαντικά. Η διαφάνεια γύρω από τους κανόνες αγοράς και τις ακυρώσεις στοιχημάτων είναι εξίσου σημαντική με το εύρος των διαθέσιμων αθλημάτων. Για πιο στοχευμένη εικόνα γύρω […]

Cleobetra Casino Canada – Slots and Other Casino Games

Cleobetra Casino Canada – Slots and Other Casino Games ▶️ PLAY Содержимое How to Register and Verify Your Account in Canada Verification Process Top Slot Machines Available at Cleobetra for Canadian Players Classic Fruit Machines Live Dealer Games: Getting Started and Tips Key Strategies for Real‑Time Play Bonus Structure: Welcome Pack, Free Spins, and Ongoing […]