(function ($, Drupal) { 'use strict'; Drupal.behaviors.DX8Menus = { // Attachment trigger. attach: function (context, settings) { // Cache var menuItemLinks = []; // Counters var menuItemLinkCounter; // Libs var cmm = new Drupal.CohesionResponsiveBreakpoints(); // States var over = false; var $lastAnimatedSubmenu = $(); var hasEntered = false; // Constants var onceMenuItem = 'js-coh-menu-item-init'; var onceMenuItemLink = 'js-coh-menu-item-link-init'; var nameSpace = '.coh-menu-item-link'; // Constants - classes var cls = { isCollapsed: 'is-collapsed', isExpanded: 'is-expanded', both: 'is-collapsed is-expanded', hasChildren: 'has-children', menuListContainer: 'coh-menu-list-container', menuListItem: 'coh-menu-list-item', menuListLink: 'js-coh-menu-item-link' }; // Constants - aria attributes var aria = { expanded: 'aria-expanded', popup: 'aria-haspopup' }; // Events var onEnter = ['pointerenter']; var onLeave = ['mouseleave']; var onClick = ['click']; var onFocus = ['focus']; var onFocusOut = ['focusout']; var onKeyDown = ['keydown']; /** * Call back for initializing the Drupal menu item link functionality * @param {Object} settings * @returns {undefined} */ function initDrupalMenuItemLink(settings) { var bOnClick = true; settings = settings.cohesion; var $a = settings.settings.$a; // Can be either `` || `