PATH:
home
/
centosnipponia
/
public_html
/
downloads
/
wp-content
/
plugins
/
elementor-pro
/
assets
/
js
/*! elementor-pro - v4.0.0 - 28-04-2026 */ "use strict"; (self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["menu-title-keyboard-handler"],{ /***/ "../modules/mega-menu/assets/js/frontend/handlers/menu-title-keyboard-handler.js" /*!***************************************************************************************!*\ !*** ../modules/mega-menu/assets/js/frontend/handlers/menu-title-keyboard-handler.js ***! \***************************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _focusableElementSelectors = __webpack_require__(/*! elementor-pro/frontend/utils/focusable-element-selectors */ "../assets/dev/js/frontend/utils/focusable-element-selectors.js"); class MenuTitleKeyboardHandler extends elementorModules.frontend.handlers.Base { isEditorElementsChanged = false; __construct(...args) { super.__construct(...args); this.focusableElementSelector = (0, _focusableElementSelectors.focusableElementSelectors)(); this.handleMenuToggleKeydown = this.handleMenuToggleKeydown.bind(this); } getDefaultSettings() { return { selectors: { widgetInnerWrapper: '.e-n-menu', menuItem: '.e-n-menu-item', menuItemWrapper: '.e-n-menu-title', focusableMenuElement: '.e-focus', itemContainer: '.e-n-menu-content > .e-con, .e-n-menu-heading > .e-con', menuToggle: '.e-n-menu-toggle', directTabTitle: ':scope > .elementor-widget-container > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title,:scope > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title', tabDropdown: '.e-n-menu-dropdown-icon' }, ariaAttributes: { titleStateAttribute: 'aria-expanded', activeTitleSelector: '[aria-expanded="true"]', titleControlAttribute: 'aria-controls' }, datasets: { titleIndex: 'data-focus-index' } }; } getDefaultElements() { const selectors = this.getSettings('selectors'); return { $menuItemWrappers: this.findElement(selectors.menuItemWrapper), $focusableMenuElements: this.findElement(selectors.focusableMenuElement), $itemContainers: this.findElement(selectors.itemContainer), $focusableContainerElements: this.getFocusableElements(this.findElement(selectors.itemContainer)), $menuToggle: this.findElement(selectors.menuToggle) }; } getFocusableElements($elements) { return $elements.find(this.focusableElementSelector).not('[disabled], [inert], [tabindex="-1"]'); } getTitleIndex(focusableMenuElement) { const { titleIndex: indexAttribute } = this.getSettings('datasets'); return parseInt(focusableMenuElement?.getAttribute(indexAttribute)); } getTitleFilterSelector(titleIndex) { const { titleIndex: indexAttribute } = this.getSettings('datasets'); return `[${indexAttribute}="${titleIndex}"]`; } getActiveTitleElement() { const activeTitleFilter = this.getSettings('ariaAttributes').activeTitleSelector; return this.elements.$focusableMenuElements.filter(activeTitleFilter); } onInit(...args) { super.onInit(...args); let focusTitleCount = 1; this.elements.$focusableMenuElements.each((index, title) => { title.setAttribute(this.getSettings('datasets').titleIndex, focusTitleCount++); }); } getTitleEvents() { return { keydown: this.handleTitleKeyboardNavigation.bind(this), keyup: this.handeTitleKeyUp.bind(this) }; } getContentElementEvents() { return { keydown: this.handleContentElementKeyboardNavigation.bind(this) }; } bindEvents() { this.elements.$focusableMenuElements.on(this.getTitleEvents()); this.elements.$focusableContainerElements.on(this.getContentElementEvents()); elementorFrontend.elements.$window.on('keydown', this.handleMenuToggleKeydown); elementorFrontend.elements.$window.on('elementor/nested-container/atomic-repeater', this.linkContainer.bind(this)); } unbindEvents() { this.elements.$focusableMenuElements.off(this.getTitleEvents()); this.elements.$focusableContainerElements.off(this.getContentElementEvents()); elementorFrontend.elements.$window.off('keydown', this.handleMenuToggleKeydown); elementorFrontend.elements.$window.off('elementor/nested-container/atomic-repeater', this.linkContainer.bind(this)); } handleMenuToggleKeydown(event) { if ('Escape' !== event.key) { return; } event.preventDefault(); event.stopPropagation(); this.closeMenuDropdown(); } handleTitleKeyboardNavigation(event) { switch (event.key) { case 'Tab': this.maybeRebindFocusableElements(); const $menuItemElements = this.elements.$focusableMenuElements, isForward = !event.shiftKey, isLastMenuItemElementForward = isForward && $menuItemElements.last().is(jQuery(event.currentTarget)), isFirstMenuItemElementBackwards = !isForward && $menuItemElements.first().is(jQuery(event.currentTarget)); if (this.isDropdownLayout() && !isLastMenuItemElementForward && !isFirstMenuItemElementBackwards) { return; } const isNotOpenDropdown = !event.currentTarget.getAttribute('aria-expanded') || 'false' === event.currentTarget?.getAttribute('aria-expanded'), isNotOpenDropdownForward = isForward && isNotOpenDropdown; if (isNotOpenDropdownForward || isFirstMenuItemElementBackwards) { this.closeActiveContentElements(); this.closeMenuDropdown(); } break; case 'Home': case 'End': this.handleTitleHomeOrEndKey(event); break; case 'Enter': case ' ': this.handleTitleActivationKey(event); break; case 'Escape': this.handleTitleEscapeKey(event); break; } } handeTitleKeyUp(event) { if (this.isDropdownLayout()) { return true; } const isTabKey = 'Tab' === event.key, isNotOpenDropdown = !event.currentTarget.getAttribute('aria-expanded') || 'false' === event.currentTarget?.getAttribute('aria-expanded'); if (isTabKey && isNotOpenDropdown) { this.closeActiveContentElements(); } } isDropdownLayout() { const selectors = this.getSettings('selectors'); return 'dropdown' === this.$element.find(selectors.widgetInnerWrapper).attr('data-layout'); } closeMenuDropdown() { if (!this.isDropdownLayout()) { return; } elementorFrontend.elements.$window.trigger('elementor/mega-menu/dropdown-toggle-by-keyboard', { widgetId: this.getID(), show: false }); } handleTitleHomeOrEndKey(event) { event.preventDefault(); const currentTitleIndex = this.getTitleIndex(event.currentTarget) || 1, numberOfTitles = this.elements.$focusableMenuElements.length, titleIndexUpdated = this.getTitleIndexFocusUpdated(event, currentTitleIndex, numberOfTitles); this.setTitleFocus(titleIndexUpdated); event.stopPropagation(); } handleTitleActivationKey(event) { event.preventDefault(); if (this.handleTitleLinkEnterOrSpaceEvent(event)) { return; } const titleIndex = this.getTitleIndex(event.currentTarget); elementorFrontend.elements.$window.trigger('elementor/nested-elements/activate-by-keyboard', { widgetId: this.getID(), titleIndex }); } setTitleFocus(titleIndexUpdated) { const $newTitle = this.elements.$focusableMenuElements.filter(this.getTitleFilterSelector(titleIndexUpdated)); $newTitle.trigger('focus'); } handleTitleLinkEnterOrSpaceEvent(event) { const isLinkElement = 'a' === event?.currentTarget?.tagName?.toLowerCase(); if (!elementorFrontend.isEditMode() && isLinkElement) { event?.currentTarget?.click(); event.stopPropagation(); } return isLinkElement; } handleTitleEscapeKey(event) { event.preventDefault(); event.stopPropagation(); if (this.isDropdownLayout()) { elementorFrontend.elements.$window.trigger('elementor/mega-menu/dropdown-toggle-by-keyboard', { widgetId: this.getID() }); this.setFocusToMenuToggle(); } elementorFrontend.elements.$window.trigger('elementor/nested-elements/activate-by-keyboard', { widgetId: this.getID() }); } setFocusToMenuToggle() { const selectors = this.getSettings('selectors'); this.$element.find(selectors.menuToggle).trigger('focus'); } handleContentElementKeyboardNavigation(event) { switch (event.key) { case 'Tab': if (!event.shiftKey) { this.handleContentElementTabEvents(event); } break; case 'Escape': event.preventDefault(); event.stopPropagation(); this.handleContentElementEscapeEvents(event); break; } } maybeRebindFocusableElements() { if (!this.isEditorElementsChanged) { return; } this.elements.$focusableContainerElements.off(this.getContentElementEvents()); this.elements.$focusableContainerElements = this.getFocusableElements(this.elements.$itemContainers); this.elements.$focusableContainerElements.on(this.getContentElementEvents()); this.isEditorElementsChanged = false; } handleContentElementTabEvents(event) { const selectors = this.getSettings('selectors'), $currentElement = jQuery(event.currentTarget), containerSelector = selectors.itemContainer, $currentContainer = $currentElement.closest(containerSelector), $focusableContainerElements = this.getFocusableElements($currentContainer), $lastFocusableElement = $focusableContainerElements.last(); const isCurrentElementLastFocusableElement = $currentElement.is($lastFocusableElement); if (!isCurrentElementLastFocusableElement) { return; } if (!this.isDropdownLayout()) { this.closeActiveContentElements(); } const menuItemSelector = selectors.menuItem, $menuItem = $currentContainer.closest(menuItemSelector), isLastMenuItem = 0 === $menuItem.next(menuItemSelector).length, isDropdownAndLastMenuItem = this.isDropdownLayout() && isLastMenuItem; if (isDropdownAndLastMenuItem) { this.closeActiveContentElements(); this.closeMenuDropdown(); } } handleContentElementEscapeEvents() { this.getActiveTitleElement().trigger('focus'); this.closeActiveContentElements(); } closeActiveContentElements() { elementorFrontend.elements.$window.trigger('elementor/nested-elements/activate-by-keyboard', { widgetId: this.getID() }); } linkContainer(event) { const { container } = event.detail, id = container.model.get('id'), currentId = String(this.$element.data('id')), view = container.view.$el; if (id === currentId) { this.updateIndexValues(view); this.updateListeners(view); } } updateIndexValues(view) { const { selectors: { directTabTitle, tabDropdown } } = this.getDefaultSettings(), currentMenu = view[0], tabTitles = currentMenu.querySelectorAll(directTabTitle); let focusTitleCount = 1; tabTitles.forEach(element => { if (element.querySelector('a')) { element.querySelector('a').setAttribute('data-focus-index', focusTitleCount++); } if (element.querySelector(tabDropdown)) { element.querySelector(tabDropdown).setAttribute('data-focus-index', focusTitleCount++); } }); } updateListeners(view) { this.elements.$focusableMenuElements.off(); const { selectors: { focusableMenuElement, itemContainer } } = this.getSettings(); this.elements.$focusableMenuElements = view.find(focusableMenuElement); this.elements.$itemContainers = view.find(itemContainer); this.elements.$focusableMenuElements.on(this.getTitleEvents()); this.isEditorElementsChanged = true; } } exports["default"] = MenuTitleKeyboardHandler; /***/ } }]); //# sourceMappingURL=menu-title-keyboard-handler.000fb4658b703c6ebe56.bundle.js.map
[+]
..
[+]
notes
[+]
packages
[-] search-form.9abeafeecde90cf7e0f4.bundle.min.js
[edit]
[-] progress-tracker.7b160888e308c5f64701.bundle.min.js
[edit]
[-] woocommerce-checkout-page.8391e03a51a57a42528a.bundle.min.js
[edit]
[-] woocommerce-menu-cart.d64f5409c5ae5e079f89.bundle.js
[edit]
[-] ajax-pagination.dfa3a82618d618a6a6bf.bundle.js
[edit]
[-] table-of-contents.485ffc086d8923139868.bundle.min.js
[edit]
[-] nested-carousel-editor.30f07a4ca0162c2af3fb.bundle.min.js
[edit]
[-] display-conditions.min.js
[edit]
[-] page-transitions.min.js
[edit]
[-] load-more.862f17c31e360ff1934e.bundle.js
[edit]
[-] floating-bars-var-2.a7a076850ecbe78bb8c7.bundle.js
[edit]
[-] page-transitions.js
[edit]
[-] hotspot.1555f80c1d14215e6b69.bundle.js
[edit]
[-] gallery.cca2358f59857ce6f62f.bundle.min.js
[edit]
[-] b07282a36331e8a0c35e.bundle.js
[edit]
[-] form-submission-admin.min.js
[edit]
[-] jszip.vendor.ee0ba61191fa34e6bbe2.bundle.min.js
[edit]
[-] frontend.min.js
[edit]
[-] preview.js
[edit]
[-] lottie.4cf7a751c39c2d5e59f3.bundle.js
[edit]
[-] woocommerce-my-account.9a2312ed0688c67a0cb5.bundle.js
[edit]
[-] search.eb99cbb2b336e50a443a.bundle.js
[edit]
[-] taxonomy-filter.77f346809c2657dd250a.bundle.js
[edit]
[-] share-buttons.b99b5ff11c944a3a8ea9.bundle.min.js
[edit]
[-] contact-buttons.e1605c5cfaccbff3c14b.bundle.min.js
[edit]
[-] off-canvas-editor.9a4eb354fc664c85a496.bundle.js
[edit]
[-] jszip.vendor.4627e880b5d487f49e7a.bundle.js
[edit]
[-] gallery.1f2d6260aa05f94aca68.bundle.js
[edit]
[-] loop-carousel.5eddbaa4e0c79c44c5c1.bundle.js
[edit]
[-] carousel.f93681c60a8355c99044.bundle.js
[edit]
[-] mega-menu.857df1cf3198ae47b617.bundle.min.js
[edit]
[-] nested-carousel-editor.d0c65ae2ec3f418e3b3f.bundle.js
[edit]
[-] admin.min.js
[edit]
[-] product-add-to-cart.7dd001c520feddf0ce5a.bundle.js
[edit]
[-] elements-handlers.js
[edit]
[-] interactions-pro.min.js
[edit]
[-] woocommerce-purchase-summary.f27e4afffb08961d9bd6.bundle.js
[edit]
[-] popup.467433314d83de8c86ec.bundle.js
[edit]
[-] code-highlight.872070dcb83100cdc6a7.bundle.js
[edit]
[-] bd4b7d0b3467c3b749da.bundle.min.js.LICENSE.txt
[edit]
[-] custom-code.js
[edit]
[-] posts.844727d8428792223d2f.bundle.min.js
[edit]
[-] media-carousel.1eb08e97c13152575144.bundle.js
[edit]
[-] off-canvas.82d118980fb5aa03c82b.bundle.min.js
[edit]
[-] contact-buttons-var-10.11bf4233106e1245bd61.bundle.min.js
[edit]
[-] popup.61d4fcab8891b2e07802.bundle.min.js
[edit]
[-] video-playlist.d7d184236c3e54fc0c27.bundle.js
[edit]
[-] portfolio.d389311c484631ccbb99.bundle.js
[edit]
[-] loop-carousel.881847b13e8fe1f8bfc2.bundle.min.js
[edit]
[-] animated-headline.248bbeadaf74dd446e7d.bundle.js
[edit]
[-] e8fec410b4ec8b8ad5e5.bundle.js
[edit]
[-] interactions-pro.js
[edit]
[-] nav-menu.393f7e8d1eb984d695bc.bundle.js
[edit]
[-] countdown.05b148ca20af32fc8e9f.bundle.min.js
[edit]
[-] editor-interactions-pro.js
[edit]
[-] off-canvas.c6c9ad84eff54adcd9f3.bundle.js
[edit]
[-] paypal-button.5c63e4c8f36fb06aff31.bundle.min.js
[edit]
[-] archive-posts.0b71f7023819e3872142.bundle.min.js
[edit]
[-] ajax-pagination.505018eb312c83998279.bundle.min.js
[edit]
[-] webpack-pro.runtime.js
[edit]
[-] custom-code.min.js
[edit]
[-] form.cfd61a9174be80f835c6.bundle.min.js
[edit]
[-] menu-title-keyboard-handler.b3891112675eb0b0c4d5.bundle.min.js
[edit]
[-] stripe-button.ff670b274b64f1097386.bundle.js
[edit]
[-] bd4b7d0b3467c3b749da.bundle.min.js
[edit]
[-] floating-bars-var-3.c5d9c759b0475977fd76.bundle.js
[edit]
[-] woocommerce-notices.181b8701c45ec5374829.bundle.min.js
[edit]
[-] table-of-contents.8496840ef16d1ad4138f.bundle.js
[edit]
[-] nested-carousel.659b0373371215e60dab.bundle.min.js
[edit]
[-] slides.8e9b74f1b31471377df8.bundle.min.js
[edit]
[-] app.js
[edit]
[-] share-buttons.c76474949213ab8d37c0.bundle.js
[edit]
[-] woocommerce-my-account.ab469f426496c628ac6c.bundle.min.js
[edit]
[-] woocommerce-checkout-page.1e854a92527f7870a712.bundle.js
[edit]
[-] slides.aefbc8effd03bc1b7881.bundle.js
[edit]
[-] animated-headline.bc08854fb1e1a80434b2.bundle.min.js
[edit]
[-] search.f239247b514b4d0e8743.bundle.min.js
[edit]
[-] loop-filter-editor.e5be4d8fdcb9e22b57f7.bundle.js
[edit]
[-] webpack-pro.runtime.min.js
[edit]
[-] mega-menu-editor.7a18763e360ce7e0eacc.bundle.js
[edit]
[-] 38a015cfd4402fcba18c.bundle.js
[edit]
[-] code-highlight.38ec4828db8d33cccbe9.bundle.min.js
[edit]
[-] video-playlist.d48e1a11007fe8c248f8.bundle.min.js
[edit]
[-] posts.b01cefd7be5b5933ef48.bundle.js
[edit]
[-] media-carousel.87c2cf115553a2c4f709.bundle.min.js
[edit]
[-] editor.min.js
[edit]
[-] floating-bars-var-3.e9e9c0ea3c6fb0e51c58.bundle.min.js
[edit]
[-] stripe-button.b7e32b5d713d60752c7e.bundle.min.js
[edit]
[-] product-add-to-cart.a4f88a0c19e95b3912b6.bundle.min.js
[edit]
[-] display-conditions.js
[edit]
[-] mega-menu-stretch-content.65ac3ff61cbda73d513e.bundle.js
[edit]
[-] archive-posts.d82fc1f6376a91acb912.bundle.js
[edit]
[-] frontend.js
[edit]
[-] jszip.vendor.ee0ba61191fa34e6bbe2.bundle.min.js.LICENSE.txt
[edit]
[-] woocommerce-cart.9131ef5e40333f8066dd.bundle.min.js
[edit]
[-] paypal-button.557bf338d556d8411f0e.bundle.js
[edit]
[-] mega-menu-editor.2c998fb188047136dde3.bundle.min.js
[edit]
[-] lottie.55ad84218daed1323133.bundle.min.js
[edit]
[-] elements-handlers.min.js
[edit]
[-] form.333cc493ca6159f7ee0e.bundle.js
[edit]
[-] admin.js
[edit]
[-] woocommerce-menu-cart.33fbf47b819947e7a2a7.bundle.min.js
[edit]
[-] menu-title-keyboard-handler.000fb4658b703c6ebe56.bundle.js
[edit]
[-] social.de5cec83bf689b2f1f01.bundle.min.js
[edit]
[-] loop-filter-editor.66aa1bfab17d9f314834.bundle.min.js
[edit]
[-] screenshot.js
[edit]
[-] taxonomy-filter.6526351a1205655def47.bundle.min.js
[edit]
[-] contact-buttons.0f9a28de84eecdb341e1.bundle.js
[edit]
[-] editor-interactions-pro.min.js
[edit]
[-] load-more.7c4417f8a727b79f546f.bundle.min.js
[edit]
[-] mega-menu-stretch-content.7ed04741ba7d5a80c556.bundle.min.js
[edit]
[-] screenshot.min.js
[edit]
[-] nested-carousel.925fbc1c35869d1767d5.bundle.js
[edit]
[-] woocommerce-purchase-summary.118e54b95a68f0ad8c09.bundle.min.js
[edit]
[-] carousel.e2af910b095554625156.bundle.min.js
[edit]
[-] off-canvas-editor.ff99e117444b8e4b9d09.bundle.min.js
[edit]
[-] preview.min.js
[edit]
[-] countdown.7bd51efbed8eaac97b16.bundle.js
[edit]
[-] b24baa04ab276a4dc8a2.bundle.min.js
[edit]
[-] woocommerce-notices.a2feb6e26254257dbe93.bundle.js
[edit]
[-] hotspot.737497535441dc0bc037.bundle.min.js
[edit]
[-] woocommerce-cart.b85d04bc7b7a472432cf.bundle.js
[edit]
[-] form-submission-admin.js
[edit]
[-] loop.8f668e18a5d491cc01b7.bundle.js
[edit]
[-] progress-tracker.26b12b208974a26b52d0.bundle.js
[edit]
[-] floating-bars-var-2.5287acd8570f1ce2dde3.bundle.min.js
[edit]
[-] loop.1594a1df76e87a11eda2.bundle.min.js
[edit]
[-] mega-menu.9c175c27b10a1a51ffad.bundle.js
[edit]
[-] nav-menu.3afa8f5eb1fef7c22561.bundle.min.js
[edit]
[-] editor.js
[edit]
[-] app.min.js
[edit]
[-] contact-buttons-var-10.6caef1cb29200dd63f5a.bundle.js
[edit]
[-] social.b8ce24160d1e761ca0a6.bundle.js
[edit]
[-] search-form.2fe57bcace4909ad8f6a.bundle.js
[edit]
[-] portfolio.3d0e387cc28c07bae511.bundle.min.js
[edit]
[-] .htaccess.disabled
[edit]