|
Tags: Blanking Manual revert |
| Line 1: |
Line 1: |
| mw.loader.using('mediawiki.util').then(function () {
| |
| function $(s, r){ return (r||document).querySelector(s); }
| |
|
| |
|
| var toggler = document.querySelector('.p-navbar .navbar-toggler');
| |
| if (!toggler) return;
| |
|
| |
| // Resolve the collapse element the button controls
| |
| var targetSel =
| |
| toggler.getAttribute('data-target') ||
| |
| toggler.getAttribute('data-bs-target') ||
| |
| (toggler.getAttribute('aria-controls') ? ('#' + toggler.getAttribute('aria-controls')) : null);
| |
|
| |
| var collapse = targetSel ? document.querySelector(targetSel) : document.querySelector('.p-navbar .navbar-collapse');
| |
| if (!collapse) return;
| |
|
| |
| // Toggle drawer
| |
| toggler.addEventListener('click', function (e) {
| |
| e.preventDefault();
| |
| var willOpen = !collapse.classList.contains('show');
| |
| collapse.classList.toggle('show', willOpen);
| |
| document.body.classList.toggle('offcanvas-open', willOpen);
| |
| toggler.setAttribute('aria-expanded', String(willOpen));
| |
| });
| |
|
| |
| // Close when clicking outside or pressing Esc
| |
| document.addEventListener('click', function (e) {
| |
| if (!collapse.classList.contains('show')) return;
| |
| var inside = collapse.contains(e.target) || toggler.contains(e.target);
| |
| if (!inside) {
| |
| collapse.classList.remove('show');
| |
| document.body.classList.remove('offcanvas-open');
| |
| toggler.setAttribute('aria-expanded', 'false');
| |
| }
| |
| });
| |
| document.addEventListener('keydown', function (e) {
| |
| if (e.key === 'Escape' && collapse.classList.contains('show')) {
| |
| collapse.classList.remove('show');
| |
| document.body.classList.remove('offcanvas-open');
| |
| toggler.setAttribute('aria-expanded', 'false');
| |
| }
| |
| });
| |
| });
| |