1/** 2 * Layout optimizations for the cover page (homepage) 3 */ 4 5require(['domReady'], function (domReady) { 6 7 /** @type {object} Contains classnames and id's to set or read */ 8 var attrValues = { 9 "searchTools": 'site-container', 10 'issuesListContainer': 'issue-chooser', 11 'issuesListToggler': 'issues-list-toggler', 12 'issuesListOpen': 'issues-list-open' 13 }; 14 15 /** @type {bool} */ 16 var isIssueListOpen = false; 17 18 /** @type {object} Contains reference to frequently used DOM objects */ 19 var elements = {}; 20 21 function init () { 22 elements.searchTools = document.querySelector("." + attrValues.searchTools); 23 elements.issuesListToggler = document.querySelector("." + attrValues.issuesListToggler); 24 25 if (elements.issuesListToggler) { 26 elements.issuesListContainer = document.querySelector("." + attrValues.issuesListContainer); 27 elements.searchTools.addEventListener("click", onDocumentClick); 28 } 29 } 30 31 /** @private */ 32 function onDocumentClick (event) { 33 var element = event.srcElement || event.target; 34 35 if (element === elements.issuesListToggler && isIssueListOpen === false) { 36 elements.issuesListContainer.classList.add(attrValues.issuesListOpen); 37 isIssueListOpen = true; 38 } else if (element !== elements.issuesListToggler && isIssueListOpen === true) { 39 elements.issuesListContainer.classList.remove(attrValues.issuesListOpen); 40 isIssueListOpen = false; 41 } 42 } 43 44 domReady(init); 45});
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.