1class AtomionSearch { 2 3 constructor() { 4 this.ready(); 5 this.load(); 6 } 7 8 // on ready 9 ready() { 10 jQuery(function(){ 11 AtomionSearch.searchDropdown(); 12 }); 13 } 14 15 // on load 16 load() { 17 jQuery(window).on('load', function() { 18 AtomionSearch.searchLightbox(); 19 }); 20 21 } 22 23 /*-------------------------------------------------------------- 24 ## Search Dropdown 25 --------------------------------------------------------------*/ 26 static searchDropdown() { 27 let open_label = jQuery('.search-item.search-dropdown .search-link').attr( 'data-open' ); 28 let close_label = jQuery('.search-item.search-dropdown .search-link').attr( 'data-close' ); 29 jQuery('.search-item.search-dropdown .search-link').on('click', function () { 30 jQuery(this).toggleClass('open'); 31 jQuery('.search-item .search-dropdown').fadeToggle(function () { 32 jQuery('#desktop-navigation .search-dropdown .atomion-searchfield').trigger('focus'); 33 }); 34 }); 35 36 jQuery('#masthead .search-item.header-element.search-dropdown button.search-link').on('click', function() { 37 if ( jQuery(this).hasClass('open') ) { 38 jQuery(this).attr( 'aria-expanded', 'true' ); 39 jQuery(this).attr( 'aria-label', close_label ); 40 } else { 41 jQuery(this).attr( 'aria-expanded', 'false' ); 42 jQuery(this).attr( 'aria-label', open_label ); 43 } 44 }); 45 46 } 47 48 /*-------------------------------------------------------------- 49 ## Search Lightbox 50 --------------------------------------------------------------*/ 51 /** 52 * frontend.js 53 * http://www.codrops.com 54 * 55 * Licensed under the MIT license. 56 * http://www.opensource.org/licenses/mit-license.php 57 * 58 * Copyright 2016, Codrops 59 * http://www.codrops.com 60 */ 61 static searchLightbox() { 62 63 let open_label = jQuery('#masthead .search-item.header-element.search-lightbox button.search-link').attr( 'data-open' ); 64 let close_label = jQuery('#masthead .search-item.header-element.search-lightbox button.search-link').attr( 'data-close' ); 65 66 if ( jQuery('.search-item').hasClass('search-lightbox') ) { 67 68 jQuery('button.search-link').on('click', AtomionMain.focusTrap('button.search-link', '#atomion-search-wrapper')); 69 70 var openCtrl = jQuery('#masthead .search-lightbox > .search-link'), 71 closeCtrl = document.querySelector('.atomion-lightbox-search .btn-search-close'), 72 searchContainer = document.querySelector('.atomion-lightbox-search'), 73 inputSearch = searchContainer.querySelector('.atomion-lightbox-search .atomion-searchfield'); 74 75 function init() { 76 initEvents(); 77 } 78 79 function initEvents() { 80 openCtrl.each(function(index){ 81 openCtrl[index].addEventListener('click', openSearch); 82 }); 83 84 closeCtrl.addEventListener('click', closeSearch); 85 document.addEventListener('keyup', function(ev) { 86 // escape key. 87 if( ev.keyCode == 27 ) { 88 closeSearch(); 89 } 90 }); 91 } 92 93 function openSearch() { 94 jQuery('body').addClass('no-scroll'); 95 jQuery('#masthead .search-item.header-element.search-lightbox button.search-link').attr( 'aria-expanded', 'true' ); 96 jQuery('#masthead .search-item.header-element.search-lightbox button.search-link').attr( 'aria-label', close_label ); 97 jQuery('#atomion-search-wrapper.atomion-lightbox-search').attr( 'aria-hidden', 'false' ); 98 searchContainer.classList.add('search--open'); 99 setTimeout(function() { 100 jQuery(inputSearch).trigger('focus'); 101 }, 500); 102 } 103 104 function closeSearch() { 105 jQuery('#masthead .search-item.header-element.search-lightbox button.search-link').attr( 'aria-expanded', 'false' ); 106 jQuery('#masthead .search-item.header-element.search-lightbox button.search-link').attr( 'aria-label', open_label ); 107 jQuery('#atomion-search-wrapper.atomion-lightbox-search').attr( 'aria-hidden', 'true' ); 108 searchContainer.classList.remove('search--open'); 109 inputSearch.blur(); 110 inputSearch.value = ''; 111 112 // avoid overflow: hidden conflict desktop 113 if (jQuery(window).width() > 1000) { 114 jQuery('body').removeClass('no-scroll'); 115 } 116 117 } 118 119 init(); 120 } 121 }; 122 123} 124 125let atmionSearch = new AtomionSearch();
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.