mirror of
https://github.com/Sea-Haven-Industries/seahaven-site.git
synced 2026-10-05 02:31:57 +00:00
2 lines
7.4 KiB
JavaScript
2 lines
7.4 KiB
JavaScript
|
|
/*! elementor-pro - v3.27.0 - 03-02-2025 */
|
||
|
|
"use strict";(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[912],{9774:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var s=n(6914);class MenuTitleKeyboardHandler extends elementorModules.frontend.handlers.Base{isEditorElementsChanged=!1;__construct(){super.__construct(...arguments),this.focusableElementSelector=(0,s.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",tabDropdown:".e-n-menu-dropdown-icon"},ariaAttributes:{titleStateAttribute:"aria-expanded",activeTitleSelector:'[aria-expanded="true"]',titleControlAttribute:"aria-controls"},datasets:{titleIndex:"data-focus-index"}}}getDefaultElements(){const e=this.getSettings("selectors");return{$menuItemWrappers:this.findElement(e.menuItemWrapper),$focusableMenuElements:this.findElement(e.focusableMenuElement),$itemContainers:this.findElement(e.itemContainer),$focusableContainerElements:this.getFocusableElements(this.findElement(e.itemContainer)),$menuToggle:this.findElement(e.menuToggle)}}getFocusableElements(e){return e.find(this.focusableElementSelector).not('[disabled], [inert], [tabindex="-1"]')}getTitleIndex(e){const{titleIndex:t}=this.getSettings("datasets");return parseInt(e?.getAttribute(t))}getTitleFilterSelector(e){const{titleIndex:t}=this.getSettings("datasets");return`[${t}="${e}"]`}getActiveTitleElement(){const e=this.getSettings("ariaAttributes").activeTitleSelector;return this.elements.$focusableMenuElements.filter(e)}onInit(){super.onInit(...arguments);let e=1;this.elements.$focusableMenuElements.each(((t,n)=>{n.setAttribute(this.getSettings("datasets").titleIndex,e++)}))}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(e){"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),this.closeMenuDropdown())}handleTitleKeyboardNavigation(e){switch(e.key){case"Tab":this.maybeRebindFocusableElements();const t=this.elements.$focusableMenuElements,n=!e.shiftKey,s=n&&t.last().is(jQuery(e.currentTarget)),i=!n&&t.first().is(jQuery(e.currentTarget));if(this.isDropdownLayout()&&!s&&!i)return;const o=!e.currentTarget.getAttribute("aria-expanded")||"false"===e.currentTarget?.getAttribute("aria-expanded");(n&&o||i)&&(this.closeActiveContentElements(),this.closeMenuDropdown());break;case"Home":case"End":this.handleTitleHomeOrEndKey(e);break;case"Enter":case" ":this.handleTitleActivationKey(e);break;case"Escape":this.handleTitleEscapeKey(e)}}handeTitleKeyUp(e){if(this.isDropdownLayout())return!0;const t="Tab"===e.key,n=!e.currentTarget.getAttribute("aria-expanded")||"false"===e.currentTarget?.getAttribute("aria-expanded");t&&n&&this.closeActiveContentElements()}isDropdownLayout(){const e=this.getSettings("selectors");return"dropdown"===this.$element.find(e.widgetInnerWrapper).attr("data-layout")}closeMen
|