OwlCyberSecurity - MANAGER
Edit File: menu-title-keyboard-handler.32a87ca4cc0fe98c8ddb.bundle.min.js
/*! elementor-pro - v3.22.0 - 24-06-2024 */ "use strict";(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[244],{6921:(e,t,n)=>{var s=n(3203);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=s(n(3231)),l=n(6542);class MenuTitleKeyboardHandler extends elementorModules.frontend.handlers.Base{constructor(){super(...arguments),(0,i.default)(this,"isEditorElementsChanged",!1)}__construct(){super.__construct(...arguments),this.focusableElementSelector=(0,l.focusableElementSelectors)(),this.handleMenuToggleKeydown=this.handleMenuToggleKeydown.bind(this)}getDefaultSettings(){return{selectors:{widgetInnerWrapper:".e-n-menu",menuItemWrapper:".e-n-menu-title",focusableMenuElement:".e-focus",itemContainer:".e-n-menu-content > .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-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)}}getContentElementEvents(){return{keydown:this.handleContentElementKeyboardNavigation.bind(this)}}bindEvents(){this.elements.$focusableMenuElements.on(this.getTitleEvents()),this.elements.$focusableContainerElements.on(this.getContentElementEvents()),this.elements.$menuToggle.on("keydown",this.handleMenuToggleKeydown),elementorFrontend.elements.$window.on("elementor/nested-container/atomic-repeater",this.linkContainer.bind(this))}unbindEvents(){this.elements.$focusableMenuElements.off(),this.elements.$focusableContainerElements.off(this.getContentElementEvents()),this.elements.$menuToggle.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":e.shiftKey?this.closeActiveContentElements():this.handleTitleTab(e);break;case"Home":case"End":this.handleTitleHomeOrEndKey(e);break;case"Enter":case" ":this.handleTitleActivationKey(e);break;case"Escape":this.handleTitleEscapeKey(e)}}handleTitleTab(e){this.isEditorElementsChanged&&this.rebindFocusableElements();const t=this.getTitleIndex(e.currentTarget);this.maybeFocusMenuToggle(e,t);const n=this.getActiveTitleElement(),s=t===(this.getTitleIndex(n[0])||!1),i=n.attr(this.getSettings("ariaAttributes").titleControlAttribute),l=this.elements.$itemContainers.filter(`#${i}`),o=0!==this.getFocusableElements(l).length;s&&o?this.focusFirstFocusableContainerElement(e,i):this.closeActiveContentElements()}maybeFocusMenuToggle(e,t){if(!this.isLastTitle(t)||!this.isDropdownLayout())return;const n=this.getSettings("ariaAttributes").titleStateAttribute,s="true"===e.currentTarget.getAttribute(n),i=0!==this.getFocusableElements(this.elements.$itemContainers.last()).length;s&&i||(this.setFocusToMenuToggle(),e.preventDefault(),e.stopPropagation())}setFocusToMenuToggle(){const e=this.getSettings("selectors");this.$element.find(e.menuToggle).trigger("focus")}isDropdownLayout(){const e=this.getSettings("selectors");return"dropdown"===this.$element.find(e.widgetInnerWrapper).attr("data-layout")}closeMenuDropdown(){elementorFrontend.elements.$window.trigger("elementor/mega-menu/dropdown-toggle-by-keyboard",{widgetId:this.getID(),show:!1})}handleTitleHomeOrEndKey(e){e.preventDefault();const t=this.getTitleIndex(e.currentTarget)||1,n=this.elements.$focusableMenuElements.length,s=this.getTitleIndexFocusUpdated(e,t,n);this.setTitleFocus(s),e.stopPropagation()}handleTitleActivationKey(e){if(e.preventDefault(),this.handleTitleLinkEnterOrSpaceEvent(e))return;const t=this.getTitleIndex(e.currentTarget);elementorFrontend.elements.$window.trigger("elementor/nested-elements/activate-by-keyboard",{widgetId:this.getID(),titleIndex:t})}setTitleFocus(e){this.elements.$focusableMenuElements.filter(this.getTitleFilterSelector(e)).trigger("focus")}isLastTitle(e){return this.elements.$focusableMenuElements.length===e}handleTitleLinkEnterOrSpaceEvent(e){const t="a"===e?.currentTarget?.tagName?.toLowerCase();return!elementorFrontend.isEditMode()&&t&&(e?.currentTarget?.click(),e.stopPropagation()),t}handleTitleEscapeKey(e){e.preventDefault(),e.stopPropagation(),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()})}handleContentElementKeyboardNavigation(e){switch(e.key){case"Tab":const t=e.shiftKey?"previous":"next";this.handleContentElementTabEvents(e,t);break;case"Escape":e.preventDefault(),e.stopPropagation(),this.handleContentElementEscapeEvents(e)}}rebindFocusableElements(){this.elements.$focusableContainerElements.off(),this.elements.$focusableContainerElements=this.getFocusableElements(this.elements.$itemContainers),this.elements.$focusableContainerElements.on(this.getContentElementEvents()),this.isEditorElementsChanged=!1}handleContentElementTabEvents(e,t){const n=jQuery(e.currentTarget),s=this.getSettings("selectors").itemContainer,i=n.closest(s),l=this.getFocusableElements(i);let o;o="previous"===t?l.first():l.last();if(!n.is(o))return;e.preventDefault();const r=this.getActiveTitleElement(),a=this.getTitleIndex(r[0]);this.setTitleFocus(a),e.stopPropagation()}handleContentElementEscapeEvents(){this.getActiveTitleElement().trigger("focus"),this.closeActiveContentElements()}focusFirstFocusableContainerElement(e,t){const n=`#${t}`,s=this.elements.$itemContainers.filter(n),i=this.getFocusableElements(s).first();0!==i.length&&(e.preventDefault(),i[0]?.focus(),e.stopPropagation())}closeActiveContentElements(){elementorFrontend.elements.$window.trigger("elementor/nested-elements/activate-by-keyboard",{widgetId:this.getID()})}linkContainer(e){const{container:t}=e.detail,n=t.model.get("id"),s=String(this.$element.data("id")),i=t.view.$el;n===s&&(this.updateIndexValues(i),this.updateListeners(i))}updateIndexValues(e){const{selectors:{directTabTitle:t,tabDropdown:n}}=this.getDefaultSettings(),s=e[0].querySelectorAll(t);let i=1;s.forEach((e=>{e.querySelector("a")&&e.querySelector("a").setAttribute("data-focus-index",i++),e.querySelector(n)&&e.querySelector(n).setAttribute("data-focus-index",i++)}))}updateListeners(e){this.elements.$focusableMenuElements.off();const{selectors:{focusableMenuElement:t,itemContainer:n}}=this.getSettings();this.elements.$focusableMenuElements=e.find(t),this.elements.$itemContainers=e.find(n),this.elements.$focusableMenuElements.on(this.getTitleEvents()),this.isEditorElementsChanged=!0}}t.default=MenuTitleKeyboardHandler}}]);