PluginProbe
Gutenberg / trunk
Gutenberg vtrunk
24.1.0 24.0.0 23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 All 404 releases
gutenberg / build / modules / block-library / navigation / view.min.js

view.min.js in Gutenberg trunk, at build/modules/block-library/navigation/view.min.js

3 lines 3.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import{store as r,getContext as o,getElement as s,withSyncEvent as i}from"@wordpress/interactivity";var d=["a[href]",'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',"select:not([disabled]):not([aria-hidden])","textarea:not([disabled]):not([aria-hidden])","button:not([disabled]):not([aria-hidden])","[contenteditable]",'[tabindex]:not([tabindex^="-"])'];function a(e){let n=e.querySelectorAll(d);return Array.from(n).filter(t=>typeof t.checkVisibility=="function"?t.checkVisibility({checkOpacity:!1,checkVisibilityCSS:!0}):t.offsetParent!==null)}document.addEventListener("click",()=>{});var{state:l,actions:c}=r("core/navigation",{state:{get roleAttribute(){return o().type==="overlay"&&l.isMenuOpen?"dialog":null},get ariaModal(){return o().type==="overlay"&&l.isMenuOpen?"true":null},get ariaLabel(){let e=o();return e.type==="overlay"&&l.isMenuOpen?e.ariaLabel:null},get isMenuOpen(){return Object.values(l.menuOpenedBy).filter(Boolean).length>0},get menuOpenedBy(){let e=o();return e.type==="overlay"?e.overlayOpenedBy:e.submenuOpenedBy},get isSubmenuOpen(){let e=o();return!e.hasCustomOverlay&&Object.values(e.overlayOpenedBy||{}).filter(Boolean).length>0||l.isMenuOpen}},actions:{openMenuOnHover(e){if(e?.pointerType==="touch")return;let{type:n}=o();n==="submenu"&&c.openMenu("hover")},closeMenuOnHover(e){if(e?.pointerType==="touch")return;let{type:n}=o();n==="submenu"&&c.closeMenu("hover")},openMenuOnClick(){let e=o(),{ref:n}=s();e.previousFocus=n,c.openMenu("click")},closeMenuOnClick(){c.closeMenu("click"),c.closeMenu("focus")},openMenuOnFocus(){c.openMenu("focus")},toggleMenuOnClick(){let e=o(),{ref:n}=s();window.document.activeElement!==n&&n.focus();let{menuOpenedBy:t}=l;t.click||t.focus?(c.closeMenu("click"),c.closeMenu("focus"),c.closeMenu("hover")):(e.previousFocus=n,c.openMenu("click"))},handleMenuKeydown:i(e=>{let{type:n,firstFocusableElement:t,lastFocusableElement:u}=o();if(l.menuOpenedBy.click){if(e.key==="Escape"){e.stopPropagation(),c.closeMenu("click"),c.closeMenu("focus");return}n==="overlay"&&e.key==="Tab"&&(e.shiftKey&&window.document.activeElement===t?(e.preventDefault(),u.focus()):!e.shiftKey&&window.document.activeElement===u&&(e.preventDefault(),t.focus()))}}),handleMenuFocusout:i(e=>{let{modal:n,type:t}=o();(e.relatedTarget===null||!n?.contains(e.relatedTarget)&&e.target!==window.document.activeElement&&t==="submenu")&&(c.closeMenu("click"),c.closeMenu("focus"))}),openMenu(e="click"){let{type:n}=o();l.menuOpenedBy[e]=!0,n==="overlay"&&document.documentElement.classList.add("has-modal-open")},closeMenu(e="click"){let n=o();l.menuOpenedBy[e]=!1,l.isMenuOpen||(n.modal?.contains(window.document.activeElement)&&n.previousFocus?.focus(),n.modal=null,n.previousFocus=null,n.type==="overlay"&&document.documentElement.classList.remove("has-modal-open"))}},callbacks:{initMenu(){let e=o(),{ref:n}=s();if(l.isMenuOpen){let t=a(n);e.modal=n,e.firstFocusableElement=t[0],e.lastFocusableElement=t[t.length-1]}},focusFirstElement(){let{ref:e}=s();l.isMenuOpen&&a(e)?.[0]?.focus()}}},{lock:!0});
2 //# sourceMappingURL=view.min.js.map
3