1( function() { 2 var body = document.getElementsByTagName( 'body' )[ 0 ]; 3 var searchToggles = document.querySelectorAll( '.search-toggle' ); 4 5 var toggleSearchFormEvent = function( event ) { 6 var element = event.target.closest( '.search-icon-form' ); 7 8 if ( ! element ) { 9 return; 10 } 11 12 toggleSearchForm( element ); 13 } 14 15 var toggleSearchForm = function( element ) { 16 var parent = element.closest( '.search-icon-form' ); 17 18 if ( ! parent ) { 19 return; 20 } 21 22 var form = parent.querySelector( '.search-form' ); 23 var toggle = parent.querySelector( '.search-toggle' ); 24 25 maiToggleAriaValues( toggle ); 26 27 form.classList.toggle( 'search-form-visible' ); 28 29 if ( form.classList.contains( 'search-form-visible' ) ) { 30 body.addEventListener( 'keydown', maybeHideSearchForm, false ); 31 body.addEventListener( 'click', maybeHideSearchForm, false ); 32 form.querySelector( '.search-form-input' ).focus(); 33 } else { 34 body.removeEventListener( 'keydown', maybeHideSearchForm, false ); 35 body.removeEventListener( 'click', maybeHideSearchForm, false ); 36 } 37 }; 38 39 var maybeHideSearchForm = function( event ) { 40 if ( ! event.target.closest( '.search-icon-form' ) || [ 'Escape', 'Esc' ].includes( event.key ) ) { 41 var visibleSearchToggles = document.querySelectorAll( '.search-form-visible' ); 42 43 visibleSearchToggles.forEach( function( searchToggle ) { 44 toggleSearchForm( searchToggle ); 45 }); 46 } 47 }; 48 49 // Handles search toggle and form. 50 searchToggles.forEach( function( searchToggle ) { 51 searchToggle.addEventListener( 'click', toggleSearchFormEvent, false ); 52 }); 53} )(); 54 55function maiToggleAriaValues( element ) { 56 var ariaValue = element.getAttribute( 'aria-expanded' ) === 'false' ? 'true' : 'false'; 57 58 element.setAttribute( 'aria-expanded', ariaValue ); 59 element.setAttribute( 'aria-pressed', ariaValue ); 60 61 return element; 62};
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.