PluginProbe
Gutenberg / 12.5.4
Gutenberg v12.5.4
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 / block-library / blocks / navigation-submenu / view.js

view.js in Gutenberg 12.5.4, at build/block-library/blocks/navigation-submenu/view.js

53 lines 1.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /******/ (function() { // webpackBootstrap
2 var __webpack_exports__ = {};
3 const closeSubmenus = element => {
4 element.querySelectorAll('[aria-expanded="true"]').forEach(toggle => {
5 toggle.setAttribute('aria-expanded', 'false');
6 });
7 };
8
9 const toggleSubmenuOnClick = event => {
10 const buttonToggle = event.target.closest('[aria-expanded]');
11 const isSubmenuOpen = buttonToggle.getAttribute('aria-expanded');
12
13 if (isSubmenuOpen === 'true') {
14 closeSubmenus(buttonToggle.closest('.wp-block-navigation-submenu'));
15 } else {
16 // Close all sibling submenus.
17 const parentElement = buttonToggle.closest('.wp-block-navigation-submenu');
18 const parentList = buttonToggle.closest('.wp-block-navigation__submenu-container') || buttonToggle.closest('.wp-block-navigation__container');
19 Array.from(parentList.children).forEach(child => {
20 if (child !== parentElement) {
21 closeSubmenus(child);
22 }
23 }); // Open submenu.
24
25 buttonToggle.setAttribute('aria-expanded', 'true');
26 }
27 };
28
29 const submenuButtons = document.querySelectorAll('.wp-block-navigation-submenu__toggle');
30 submenuButtons.forEach(button => {
31 button.addEventListener('click', toggleSubmenuOnClick);
32 }); // Close on click outside.
33
34 document.addEventListener('click', function (event) {
35 const navigationBlocks = document.querySelectorAll('.wp-block-navigation');
36 navigationBlocks.forEach(block => {
37 if (!block.contains(event.target)) {
38 closeSubmenus(block);
39 }
40 });
41 }); // Close on focus outside.
42
43 document.addEventListener('keyup', function (event) {
44 const submenuBlocks = document.querySelectorAll('.wp-block-navigation-submenu');
45 submenuBlocks.forEach(block => {
46 if (!block.contains(event.target)) {
47 closeSubmenus(block);
48 }
49 });
50 });
51 //# sourceMappingURL=view.js.map
52 /******/ })()
53 ;