vendor: 3,991 bytes, lines 1-111
1function ready(handler) { 2 if (/complete|loaded|interactive/.test(document.readyState) && document.body) { 3 handler(); 4 } else { 5 document.addEventListener('DOMContentLoaded', handler, false); 6 } 7} 8 9var _clickEvents = ['click', 'touch']; 10 11ready(function () { 12 const burgers = document.querySelectorAll('.burger'); 13 [].forEach.call(burgers, burger => { 14 _clickEvents.forEach(clickEvent => { 15 burger.addEventListener(clickEvent, e => { 16 e.preventDefault(); 17 18 const node = e.currentTarget; 19 if (node) { 20 node.classList.toggle('is-active'); 21 // Get the target from the "data-target" attribute 22 let target = node.dataset.target; 23 if (target) { 24 const targetNode = document.querySelector(node.dataset.target); 25 if (targetNode) { 26 targetNode.classList.toggle('is-active'); 27 } 28 } 29 } 30 }); 31 }); 32 }); 33 34 const menus = document.querySelectorAll('.menu'); 35 [].forEach.call(menus, menu => { 36 // Open menu which contains the current active item 37 let activeMenus = menu.querySelectorAll('.menu-item:not(.has-dropdown).is-active'); 38 [].forEach.call(activeMenus, (activeMenu) => { 39 activeMenu = activeMenu.closest('.menu-item.has-dropdown'); 40 if (activeMenu) { 41 activeMenu.classList.add('is-active'); 42 } 43 }); 44 45 let dropdownMenus = menu.querySelectorAll('.menu-item.has-dropdown > .menu-title'); 46 [].forEach.call(dropdownMenus, (dropdownMenu) => { 47 dropdownMenu.addEventListener('click', e => { 48 e.preventDefault(); 49 let currentMenu = e.currentTarget; 50 51 // Toggle current menu 52 currentMenu.closest('.menu-item.has-dropdown').classList.toggle('is-active'); 53 54 // Close all other active menus 55 let otherActiveMenus = menu.querySelectorAll('.menu-item.has-dropdown.is-active'); 56 [].forEach.call(otherActiveMenus, otherActiveMenu => { 57 if (!currentMenu.isEqualNode(otherActiveMenu.querySelector('.menu-title'))) { 58 otherActiveMenu.classList.remove('is-active'); 59 } 60 }); 61 }); 62 }); 63 }); 64 65 let tabs = document.querySelectorAll('.tabs li a'); 66 [].forEach.call(tabs, tab => { 67 if (window.location.hash) { 68 let tabToShow = tab.closest('.tabs').querySelector('[href="' + window.location.hash + '"]'); 69 let tabContentToShow = document.querySelector(window.location.hash); 70 if (tabToShow && tabContentToShow) { 71 let tabToHide = tab.closest('.tabs').querySelector('li.is-active'); 72 if (tabToHide) { 73 let tabToHideLink = tabToHide.querySelector('a'); 74 let tabContentToHide = document.querySelector(tabToHideLink.getAttribute('href')); 75 if (tabContentToHide) { 76 tabContentToHide.classList.remove('is-active'); 77 } 78 tabToHideLink.classList.remove('is-active'); 79 tabToHide.classList.remove('is-active'); 80 } 81 tabToShow.closest('li').classList.add('is-active'); 82 tabContentToShow.classList.add('is-active'); 83 } 84 } 85 86 _clickEvents.forEach(clickEvent => { 87 tab.addEventListener(clickEvent, event => { 88 event.preventDefault(); 89 const tab = event.currentTarget; 90 91 let tabToHide = tab.closest('.tabs').querySelector('li.is-active'); 92 if (tabToHide) { 93 let tabToHideLink = tabToHide.querySelector('a'); 94 let tabContentToHide = document.querySelector(tabToHideLink.getAttribute('href')); 95 if (tabContentToHide) { 96 tabContentToHide.classList.remove('is-active'); 97 } 98 tabToHideLink.classList.remove('is-active'); 99 100 tabToHide.classList.remove('is-active'); 101 } 102 tab.closest('li').classList.add('is-active'); 103 104 let tabContentToShow = document.querySelector(tab.getAttribute('href')); 105 if (tabContentToShow) { 106 tabContentToShow.classList.add('is-active'); 107 } 108 }); 109 }); 110 }); 111});
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.