1"use strict"; 2 3(function ($) { 4 if ($(".main-search-page").length == 0) { 5 $("#edit-keys").val(""); 6 } 7 8 function clearSearch() { 9 document.getElementById("views-exposed-form-search-content-search").reset(); 10 $("#edit-keys").val(""); 11 $("#views-exposed-form-search-content-search input#edit-keys").focus(); 12 } 13 14 function addClearField() { 15 if ($(".main-search-page").length > 0) { 16 $( 17 ".main-search-page #views-exposed-form-search-content-search .js-form-item" 18 ).addClass("search-custom"); 19 let buttonHTML = '<button class="clear">Clear</button>'; 20 $( 21 ".main-search-page #views-exposed-form-search-content-search .js-form-item #edit-keys" 22 ).attr("placeholder", "Start typing to search"); 23 $( 24 ".main-search-page #views-exposed-form-search-content-search .js-form-item #edit-keys" 25 ).after(buttonHTML); 26 27 document 28 .querySelector( 29 ".main-search-page #views-exposed-form-search-content-search .js-form-item" 30 ) 31 .addEventListener("click", function (event) { 32 if (event.target.tagName.toLowerCase() === "button") { 33 clearSearch(); 34 event.preventDefault(); 35 } 36 }); 37 } 38 } 39 40 $("button.clear").on("click", function (event) { 41 clearSearch(); 42 event.preventDefault(); 43 // event.stopPropagation(); 44 }); 45 46 $("#views-exposed-form-search-content-search #edit-keys").on( 47 "keydown", 48 function (e) { 49 if (e.keyCode == 13) { 50 $("#views-exposed-form-search-content-search").submit(); 51 } 52 } 53 ); 54 55 function hasSupports() { 56 // if not supported 57 if (!CSS.supports("selector(html:has(body))")) { 58 //firefox doesn't support the :has directive, so I'm going to apply a class that mimics its usage 59 if ($(".blog-hero-right-side").find("figure").length > 0) { 60 $(".hero--blog").addClass("has-image"); 61 } 62 63 if ($(".hero--2-up-hero").find("figure").length > 0) { 64 $(".hero--2-up-hero").addClass("has-image"); 65 } 66 67 Array.from(jQuery(".dynamic-quote-block--item")).forEach(function ( 68 element 69 ) { 70 // console.log(element); 71 if ($(element).find(".decorative-image").length > 0) { 72 $(element).addClass("has-decorative-image"); 73 } else { 74 $(element).addClass("no-decorative-image"); 75 } 76 }); 77 } 78 } 79 80 function isElementInViewport(el) { 81 // Special bonus for those using jQuery 82 if (typeof jQuery === "function" && el instanceof jQuery) { 83 el = el[0]; 84 } 85 86 if (el === undefined || el === null) { 87 return false; 88 } 89 var rect = el.getBoundingClientRect(); 90 91 return ( 92 rect.top >= 0 && 93 rect.left >= 0 && 94 rect.bottom <= 95 (window.innerHeight || 96 document.documentElement.clientHeight) /* or $(window).height() */ && 97 rect.right <= 98 (window.innerWidth || 99 document.documentElement.clientWidth) /* or $(window).width() */ 100 ); 101 } 102 103 function newWindowLinks() { 104 // Open PDF In New Window 105 $('a[href$=".pdf"]').attr("target", "_blank"); 106 } 107 108 function adjustHomepage() { 109 if ($(".hero--immersive").length > 0) { 110 if ($("#block-alertbanner").length > 0) { 111 $(".hero--immersive-wrapper-first-pane").addClass("has-alert"); 112 } else { 113 $(".hero--immersive-wrapper-first-pane").removeClass("has-alert"); 114 } 115 } 116 } 117 118 $(".scrollitem").on("click", function (event) { 119 $("html, body").animate( 120 { scrollTop: $("#quilt").offset().top - 50 - $("#header").innerHeight() }, 121 750 122 ); 123 }); 124 125 function getMaxHeight(el) { 126 let maxheights = []; 127 maxheights = Array.from( 128 jQuery(el).find("[data-columns] .stacked-heading") 129 ).map((item) => jQuery(item).outerHeight()); 130 let mh = Math.max.apply(null, maxheights); 131 jQuery(el) 132 .find("[data-columns] .stacked-heading") 133 .css("min-height", mh + "px"); 134 } 135 136 function resizeStackedCapabilityColumns() { 137 Array.from(jQuery(".stacked-capability-column")).forEach((item) => 138 getMaxHeight(item) 139 ); 140 } 141 142 resizeStackedCapabilityColumns(); 143 144 function focusOnSearch() { 145 setTimeout('document.querySelector("ul.menu a.search").focus()', 500); 146 document 147 .querySelector("#search-panel") 148 .scrollIntoView({ behavior: "smooth" }, true); 149 } 150 151 function nav() { 152 $("ul.menu a.search, .search-close").on("click", function (event) { 153 event.preventDefault(); 154 event.stopPropagation(); 155 if ($("#search-panel").length > 0) { 156 $("#search-panel").toggle("slow", function () { 157 //hey, is a mobile menu open? close it 158 if ( 159 window.innerWidth < 1200 && 160 isElementInViewport($(".region-primary-menu-mobile")) 161 ) { 162 if ( 163 $(".region-primary-menu-mobile")[0].getBoundingClientRect() 164 .width !== 0 165 ) { 166 $(".region-primary-menu-mobile").toggle(); 167 $("#menu_checkbox").prop("checked", false); 168 } 169 } 170 171 //hey, is a desktop menu open, close it 172 if ( 173 window.innerWidth >= 1200 && 174 isElementInViewport($(".navigation-menu.is-visible")) 175 ) { 176 let active = document.querySelector(".navigation-item .menu-open"); 177 if (active) { 178 active.classList.remove("menu-open"); 179 active.setAttribute("aria-expanded", "false"); 180 } 181 182 let targetNavItem = $(".menu-item.navigation-menu.is-visible"); 183 targetNavItem.removeClass("is-visible").addClass("is-hidden"); 184 targetNavItem.attr("aria-hidden", "true"); 185 } 186 187 if (isElementInViewport($("#search-panel"))) { 188 //now once the search panel is open, let's make it focus in the edit text box 189 setTimeout( 190 'document.querySelector("#search-panel #edit-keys").focus()', 191 500 192 ); 193 } else { 194 //if it's not ope, focus on the search button 195 // setTimeout('document.querySelector("ul.menu a.search").focus()', 500); 196 focusOnSearch(); 197 } 198 }); 199 } else { 200 setTimeout('document.querySelector("#edit-keys").focus()', 500); 201 } 202 }); 203 204 function openFooterAccordions() { 205 // console.log(window.innerWidth);
206 // debugger; 207 let trigger = ".site-footer .accordion .collapse-trigger"; 208 let target = ".site-footer .accordion .collapse-target"; 209 if (window.innerWidth > 992) { 210 $(trigger).removeClass("collapsed").attr("aria-expanded", "true"); 211 $(target) 212 .removeClass("collapsed collapse") 213 .addClass("show") 214 .attr("aria-expanded", "true"); 215 } else { 216 // debugger; 217 $(trigger) 218 .not('[date-stayopen="true"]') 219 .addClass("collapsed") 220 .attr("aria-expanded", "false"); 221 $(target) 222 .not(jQuery('[date-stayopen="true"]').siblings(".collapse-target")) 223 .addClass("collapsed collapse") 224 .removeClass("show") 225 .attr("aria-expanded", "false"); 226 227 jQuery('[date-stayopen="true"]').trigger("click"); 228 jQuery('[date-stayopen="true"]').attr("aria-expanded", "true"); 229 jQuery('[date-stayopen="true"]').hide(); 230 jQuery('[date-stayopen="true"]') 231 .siblings(".collapse-target") 232 .addClass("show") 233 .attr("aria-expanded", "true"); 234 } 235 } 236 237 var debounceResize = Drupal.debounce(function () { 238 openFooterAccordions(); 239 }, 250); 240 241 window.addEventListener("resize", debounceResize); 242 243 openFooterAccordions(); 244 } 245 246 nav(); 247 248 $(document).ready(function () { 249 hasSupports(); 250 adjustHomepage(); 251 newWindowLinks(); 252 // addClearField(); 253 254 $(".article--featured-card a").attr("tabindex", "0"); 255 $(".site-footer a:visible, .site-footer button.collapse-trigger").attr( 256 "tabindex", 257 "0" 258 ); 259 }); 260})(jQuery); 261 262(function ($) { 263 Drupal.behaviors.leadershipTabLinks = { 264 attach: function (context, settings) { 265 $( 266 ".leadership-tabs [name='field_person_type_target_id'] ul li:not(:first-of-type) a " 267 ).on("click", function (event) { 268 var thisCategory = $(this).text(); 269 $(".leadership-tabs .view-content .item-list ul").fadeOut(); 270 if (thisCategory === "Executive") { 271 $("#page-wrapper").removeClass("leadership-no-images"); 272 } else { 273 $("#page-wrapper").addClass("leadership-no-images"); 274 } 275 }); 276 }, 277 }; 278})(jQuery);
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.