HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/azenio.komma.pro/resources/js/site/components/overlayMenuHandler.js
/* ==========================================================================
   Navigation handler
   - Handles the showing and hiding of the overlay-menu component which has the proper classes.
 ========================================================================== */

const bodyScrollLock = require('body-scroll-lock');

const OverlayMenuHandler = {

    // init: function () {
    //     const overlayMenuTrigger = document.querySelector('.js-overlay-menu-trigger');
    //     OverlayMenuHandler.initOverlayMenu(overlayMenuTrigger);
    // },

    init: function () {

        const overlayMenuTriggerList = document.querySelectorAll('.js-overlay-menu-trigger');
        const overlayMenuTriggerListCount = overlayMenuTriggerList.length;

        if(isset(overlayMenuTriggerList) && overlayMenuTriggerListCount !== 0){
            for(let i = 0; i < overlayMenuTriggerListCount; i++){
                const overlayMenuTrigger = overlayMenuTriggerList[i];
                OverlayMenuHandler.initOverlayMenu(overlayMenuTrigger);
            }
        }
    },

    initOverlayMenu: function (overlayMenuTrigger) {
        overlayMenuTrigger.addEventListener('click', OverlayMenuHandler.toggleOverlayMenu, false);
    },

    toggleOverlayMenu: function (event) {
        const overlayMenuNav = document.querySelector('.js-overlay-menu');
        // const overlayMenuBody = overlayMenu.querySelector('.js-overlay-menu-persist-scrolling');

        // Bail if overlayMenu doesn't exist
        if (!overlayMenuNav) return;

        // Clear previously locked scroll on the body
        bodyScrollLock.enableBodyScroll(overlayMenuNav);

        // If the overlayMenu is already active, collapse it and quit
        if (document.body.classList.contains('is-overlay-menu-active')) {
            overlayMenuNav.querySelectorAll('[tabindex="0"]').forEach(function(elem) {
                elem.tabIndex = -1;
            });

            document.body.classList.remove('is-overlay-menu-active');
            return;
        }

        // Lock scrolling on the body
        bodyScrollLock.disableBodyScroll(overlayMenuNav);

        overlayMenuNav.querySelectorAll('[tabindex="-1"]').forEach(function(elem) {
            elem.tabIndex = 0;
        });

        // Toggle active overlayMenu by setting a class on the body
        document.body.classList.toggle('is-overlay-menu-active');
        overlayMenuNav.hidden = false;
    }
};

OverlayMenuHandler.init();