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

21bit Casino Login: Uncovering Hidden Advantages

Navigating the online casino landscape can often feel overwhelming, with numerous platforms vying for player attention through flashy promotions and standard bonus offers. However, beneath the surface of typical offerings, some platforms provide unique benefits that are not immediately apparent. For those seeking a more nuanced and rewarding online gaming experience, exploring the advantages beyond […]

Claim Your Action Casino Welcome Bonus: A Beginner’s Guide

Embarking on your online casino adventure can feel like stepping into a whole new world, filled with exciting games and the potential for thrilling wins. To kick things off on the right foot, many players look for that initial boost to get them started, and that’s precisely where the Action Casino online welcome bonus comes […]

Mr Bet Casino Registration: Navigating Future Trends

Embarking on your online gaming journey often starts with a straightforward process, and for many players, the ease of access is paramount. Finding a reliable platform where you can begin your adventure is key, and if you’re looking for a seamless entry point, you might consider exploring options like the user-friendly process available at https://mrbetcasino-nz.com/registration/. […]

Unlock Your Fun: Pelican Casino Bonus for New Zealand Players

Embarking on the thrilling world of online casinos can feel like setting sail on an exciting adventure, especially when you’re looking for the best deals to get you started. Many eager players from New Zealand are discovering the fantastic opportunities available, and if you’re one of them, you’ll be pleased to know that securing a […]

All Jackpots Casino Online: Unlocking the Keys to Your Next Big Win

Embarking on the digital journey of online gaming can be an exhilarating experience, filled with anticipation and the thrill of potential fortune. For many, the quest for a premier online gambling destination leads them to explore various platforms, seeking one that offers a blend of excitement, security, and rewarding gameplay. Discovering a platform that consistently […]

Avantgarde Casino Mobile App: A Deep Dive

The digital landscape of online gaming is constantly evolving, offering players unprecedented access to their favourite casino experiences on the go. For enthusiasts in New Zealand seeking a premium mobile platform, exploring the capabilities of the Avantgarde Casino Mobile App is a worthwhile endeavour. This application aims to provide a seamless and engaging gaming environment, […]

Spincity Casino NZ: Your Complete Guide to Online Gaming

Embarking on your online casino journey in New Zealand can be an exciting prospect, offering a world of entertainment and potential wins right at your fingertips. For those seeking a comprehensive and engaging platform, exploring options like https://casinospincity-nz.com/ can provide a fantastic starting point. This guide aims to offer a detailed look at what this […]

Platinum Casino Mobile App: Pros and Cons Explored

The digital landscape of online gaming is constantly evolving, offering players more flexibility and accessibility than ever before. For enthusiasts seeking a premium gaming experience on the go, the Platinum Casino Mobile App presents a compelling option, which can be explored further at https://platinum-casinos.com/app/. This platform aims to bridge the gap between the convenience of […]

Hellspin Casino Welcome Bonus: Avoid Common Mistakes

Embarking on your online gaming journey can be incredibly exciting, especially when a generous offer is on the table. Many players look forward to kickstarting their experience with a special incentive, and understanding how to maximize these promotions is key to a positive start. Navigating the terms and conditions carefully is crucial, and for those […]

Galactic Casino Login: Your Gateway to Cosmic Gaming Fun

Embarking on an online gaming adventure can be an exhilarating experience, promising excitement and potential rewards right from your own home. Navigating the vast universe of online casinos requires a reliable starting point, and for many, this means finding a secure and user-friendly portal to their favorite games. Discovering a platform that prioritizes player experience […]