1var Velocity=typeof window.Velocity==='function'?window.Velocity:jQuery.Velocity;var cascadeDropdowns={};cascadeDropdowns.menus=[];cascadeDropdowns.menuPrototype={applyTo:function(node){var self=this;self.menu=node;self.link=node.getElementsByTagName('a')[0],self.dropdown=node.getElementsByTagName('ul')[0] 2self.link.setAttribute('href','#');self.link.setAttribute('aria-haspopup',true);self.link.setAttribute('aria-expanded',false);self.dropdown.setAttribute('aria-label',self.link.innerText+' dropdown menu');self.dropdown.tabIndex=-1;self.link.addEventListener('click',function(event){event.preventDefault();if(!self.menu.classList.contains('is-open')){cascadeDropdowns.closeAll(self.menu);self.open();}else{self.close();}});},open:function(){var self=this;Velocity(self.dropdown,'slideDown',{duration:150,complete:function(){self.menu.classList.add('is-open');self.link.setAttribute('aria-expanded',true);self.dropdown.focus();}});},close:function(){var self=this;Velocity(self.dropdown,'slideUp',{duration:150,complete:function(){self.menu.classList.remove('is-open');self.link.setAttribute('aria-expanded',false);self.link.setAttribute('aria-haspopup',true);}});}} 3cascadeDropdowns.closeAll=function(exception){cascadeDropdowns.menus.forEach(function(menu){if(!menu.menu.contains(exception)){menu.close();}});} 4Array.prototype.forEach.call(document.getElementsByClassName('has-dropdown'),function(node){var menu=Object.create(cascadeDropdowns.menuPrototype);menu.applyTo(node);cascadeDropdowns.menus.push(menu);});window.addEventListener('click',function(event){cascadeDropdowns.closeAll(event.target);});window.addEventListener('keydown',function(event){if('key'in event&&(event.key==='Escape'||event.key==='Esc')){cascadeDropdowns.closeAll();}});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.