1/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */ 2(function(Drupal,once){const COOKIE_WRAPPER_SELECTOR='#cookie-information-template-wrapper';const SKIP_LINK_CONTAINER_SELECTOR='#skip-link';const SKIP_LINK_SELECTOR='#skip-link a[href="#main-content"]';const RESET_SENTINEL_ID='cookie-focus-reset-sentinel';function getBody(){return document.body||null;}function getCookieWrapper(){const body=getBody();return body?body.querySelector(COOKIE_WRAPPER_SELECTOR):null;}function getSkipLinkContainer(){const body=getBody();return body?body.querySelector(SKIP_LINK_CONTAINER_SELECTOR):null;}function getSkipLink(){const body=getBody();return body?body.querySelector(SKIP_LINK_SELECTOR):null;}function getOrCreateResetSentinel(){const body=getBody();const skipLinkContainer=getSkipLinkContainer();if(!body||!skipLinkContainer)return null;let sentinel=body.querySelector('#'+RESET_SENTINEL_ID);if(!sentinel){sentinel=document.createElement('span');sentinel.id=RESET_SENTINEL_ID;sentinel.tabIndex=-1;sentinel.setAttribute('aria-hidden','true');sentinel.style.position='absolute';sentinel.style.width='1px';sentinel.style.height='1px';sentinel.style.padding='0';sentinel.style.margin='-1px';sentinel.style.overflow='hidden';sentinel.style.clip='rect(0 0 0 0)';sentinel.style.whiteSpace='nowrap';sentinel.style.border='0';}if(sentinel.nextElementSibling!==skipLinkContainer||sentinel.parentNode!==body)body.insertBefore(sentinel,skipLinkContainer);return sentinel;}function keepSkipLinkFirst(){const body=getBody();const wrapper=getCookieWrapper();const skipLinkContainer=getSkipLinkContainer();if(!body||!wrapper||!skipLinkContainer)return false;if(wrapper===skipLinkContainer.nextElementSibling)return true;body.insertBefore(wrapper,skipLinkContainer.nextElementSibling);return true;}function focusResetSentinel(){const sentinel=getOrCreateResetSentinel();if(!sentinel)return;if(document.activeElement&&typeof document.activeElement.blur==='function')document.activeElement.blur();sentinel.focus();}function redirectFocusToSkipLink(){const skipLink=getSkipLink();if(skipLink)skipLink.focus();}function monitorCookieFocusReset(){let pendingFocusReset=false;let focusGuardUntil=0;function queueResetFromInteraction(event){const wrapper=getCookieWrapper();const interactiveElement=event.target.closest('button, a, [role="button"], input, select, textarea');if(!wrapper||!interactiveElement||!wrapper.contains(interactiveElement))return;pendingFocusReset=true;}function activateReset(){if(!pendingFocusReset)return;pendingFocusReset=false;focusGuardUntil=Date.now()+1500;focusResetSentinel();}document.addEventListener('click',queueResetFromInteraction,true);document.addEventListener('keydown',function(event){if(event.key==='Enter'||event.key===' '||event.key==='Escape')queueResetFromInteraction(event);},true);window.addEventListener('CookieInformationConsentGiven',function(){window.setTimeout(activateReset,0);window.setTimeout(activateReset,100);window.setTimeout(activateReset,300);});document.addEventListener('focusin',function(event){const wrapper=getCookieWrapper();if(!wrapper||Date.now()>focusGuardUntil||!wrapper.contains(event.target))return;redirectFocusToSkipLink();},true);}Drupal.behaviors.cookieInformationAccessibility={attach(context){once('cookieInformationAccessibility','html',context).forEach(function(){getOrCreateResetSentinel();keepSkipLinkFirst();monitorCookieFocusReset();const observer=new MutationObserver(function(){keepSkipLinkFirst();getOrCreateResetSentinel();});observer.observe(document.documentElement,{childList:true,subtree:true});});}};})(Drupal,once);; 3(function(Drupal,drupalSettings){function getAlertDateFilterByUuid(uuid){const alertsData=drupalSettings.ens_web_sitewide?.alertsDateFilter||{};const alert=alertsData[uuid];if(!alertsData||!alert)return null;if(alert['filter_start_date']==null&&alert['filter_end_date']==null)return null;return alert;}function isNodePublishedInRange(alertDates,nodePublishedDate){const {filter_start_date,filter_end_date}=alertDates;const publishedDate=new Date(nodePublishedDate);if(filter_start_date&&filter_end_date)return publishedDate>=new Date(filter_start_date)&&publishedDate<=new Date(filter_end_date);if(filter_start_date)return publishedDate>=new Date(filter_start_date);if(filter_end_date)return publishedDate<=new Date(filter_end_date);return true;}Drupal.behaviors.customAlertFilter={attach:function(context,settings){document.addEventListener('sitewide-alert-rendered',function(event){const alertElement=event.target;const uuid=alertElement.getAttribute("data-uuid");if(uuid){const alertDates=getAlertDateFilterByUuid(uuid);if(alertDates){const nodePublishedDate=drupalSettings.ens_web_sitewide?.nodePublishedDate||0;if(!isNodePublishedInRange(alertDates,nodePublishedDate))alertElement.remove();}}});}};})(Drupal,drupalSettings);; 4((Drupal,drupalSettings)=>{Drupal.extlink=Drupal.extlink||{};Drupal.extlink.attach=(context,drupalSettings)=>{if(typeof drupalSettings.data==='undefined'||!drupalSettings.data.hasOwnProperty('extlink'))return;let extIconPlacement='append';if(drupalSettings.data.extlink.extIconPlacement&&drupalSettings.data.extlink.extIconPlacement!=='0')extIconPlacement=drupalSettings.data.extlink.extIconPlacement;const pattern=/^(([^:]+?\.)*)([^.:]+)((\.[a-z0-9]{1,253})*)(:[0-9]{1,5})?$/;const host=window.location.host.replace(pattern,'$2$3$6');const subdomain=window.location.host.replace(host,'');let subdomains;if(drupalSettings.data.extlink.extSubdomains)subdomains='([^/]*\\.)?';else if(subdomain==='www.'||subdomain==='')subdomains='(www\\.)?';else subdomains=subdomain.replace('.','\\.');let allowedDomains=false;
4if(drupalSettings.data.extlink.allowedDomains){allowedDomains=[];for(let i=0;i<drupalSettings.data.extlink.allowedDomains.length;i++)allowedDomains.push(new RegExp(`^https?:\\/\\/${drupalSettings.data.extlink.allowedDomains[i].replace(/(\r\n|\n|\r)/gm,'')}.*$`,'i'));}const internalLink=new RegExp(`^https?://([^@]*@)?${subdomains}${host}`,'i');let extInclude=false;if(drupalSettings.data.extlink.extInclude)extInclude=new RegExp(drupalSettings.data.extlink.extInclude.replace(/\\/,'\\'),'i');let extExclude=false;if(drupalSettings.data.extlink.extExclude)extExclude=new RegExp(drupalSettings.data.extlink.extExclude.replace(/\\/,'\\'),'i');let extExcludeNoreferrer=false;if(drupalSettings.data.extlink.extExcludeNoreferrer)extExcludeNoreferrer=new RegExp(drupalSettings.data.extlink.extExcludeNoreferrer.replace(/\\/,'\\'),'i');let extCssExclude=false;if(drupalSettings.data.extlink.extCssExclude)extCssExclude=drupalSettings.data.extlink.extCssExclude;let extCssInclude=false;if(drupalSettings.data.extlink.extCssInclude)extCssInclude=drupalSettings.data.extlink.extCssInclude;let extCssExplicit=false;if(drupalSettings.data.extlink.extCssExplicit)extCssExplicit=drupalSettings.data.extlink.extCssExplicit;const externalLinks=[];const mailtoLinks=[];const telLinks=[];const extlinks=context.querySelectorAll('a:not([data-extlink]), area:not([data-extlink])');extlinks.forEach((el)=>{try{let url='';if(typeof el.href==='string')url=el.href.toLowerCase();else{if(typeof el.href==='object')url=el.href.baseVal;}const isExtCssIncluded=extCssInclude&&(el.matches(extCssInclude)||el.closest(extCssInclude));if(url.indexOf('http')===0&&((!internalLink.test(url)&&!(extExclude&&extExclude.test(url)))||(extInclude&&extInclude.test(url))||isExtCssIncluded)&&!(extCssExclude&&el.matches(extCssExclude))&&!(extCssExclude&&el.closest(extCssExclude))&&!(extCssExplicit&&!el.closest(extCssExplicit))){let match=false;if(!isExtCssIncluded&&allowedDomains){for(let i=0;i<allowedDomains.length;i++)if(allowedDomains[i].test(url)){match=true;break;}}if(!match)externalLinks.push(el);}else{if(el.tagName!=='AREA'&&!(extCssExclude&&el.closest(extCssExclude))&&!(extCssExplicit&&!el.closest(extCssExplicit)))if(url.indexOf('mailto:')===0)mailtoLinks.push(el);else{if(url.indexOf('tel:')===0)telLinks.push(el);}}}catch(error){return false;}});const hasExtIcon=drupalSettings.data.extlink.extClass!=='0'&&drupalSettings.data.extlink.extClass!=='';const hasAdditionalExtClasses=drupalSettings.data.extlink.extAdditionalLinkClasses!=='';Drupal.extlink.applyClassAndSpan(externalLinks,'ext',hasExtIcon?extIconPlacement:null);if(hasAdditionalExtClasses)Drupal.extlink.applyClassAndSpan(externalLinks,drupalSettings.data.extlink.extAdditionalLinkClasses,null);const hasMailtoClass=drupalSettings.data.extlink.mailtoClass!=='0'&&drupalSettings.data.extlink.mailtoClass!=='';const hasAdditionalMailtoClasses=drupalSettings.data.extlink.extAdditionalMailtoClasses!=='';if(hasMailtoClass)Drupal.extlink.applyClassAndSpan(mailtoLinks,drupalSettings.data.extlink.mailtoClass,extIconPlacement);if(hasAdditionalMailtoClasses)Drupal.extlink.applyClassAndSpan(mailtoLinks,drupalSettings.data.extlink.extAdditionalMailtoClasses,null);const hasTelClass=drupalSettings.data.extlink.telClass!=='0'&&drupalSettings.data.extlink.telClass!=='';const hasAdditionalTelClasses=drupalSettings.data.extlink.extAdditionalTelClasses!=='0'&&drupalSettings.data.extlink.extAdditionalTelClasses!=='';if(hasTelClass)Drupal.extlink.applyClassAndSpan(telLinks,drupalSettings.data.extlink.telClass,extIconPlacement);if(hasAdditionalTelClasses)Drupal.extlink.applyClassAndSpan(mailtoLinks,drupalSettings.data.extlink.extAdditionalTelClasses,null);if(drupalSettings.data.extlink.extTarget){externalLinks.forEach((link,i)=>{if(!(drupalSettings.data.extlink.extTargetNoOverride&&link.matches('a[target]')))externalLinks[i].setAttribute('target','_blank');});externalLinks.forEach((link,i)=>{const val=link.getAttribute('rel');if(val===null||typeof val==='undefined'){externalLinks[i].setAttribute('rel','noopener');return;}if(val.indexOf('noopener')>-1)if(val.indexOf('noopener')===-1)externalLinks[i].setAttribute('rel',`${val} noopener`);else{}else externalLinks[i].setAttribute('rel',`${val} noopener`);});}if(drupalSettings.data.extlink.extNofollow)externalLinks.forEach((link,i)=>{const val=link.getAttribute('rel');
4if(val===null||typeof val==='undefined'){externalLinks[i].setAttribute('rel','nofollow');return;}let target='nofollow';if(drupalSettings.data.extlink.extFollowNoOverride)target='follow';if(val.indexOf(target)===-1)externalLinks[i].setAttribute('rel',`${val} nofollow`);});if(drupalSettings.data.extlink.extTitleNoOverride===false)externalLinks.forEach((link,i)=>{const oldTitle=link.getAttribute('title');let newTitle='';if(drupalSettings.data.extlink.extTargetAppendNewWindowDisplay)newTitle=drupalSettings.data.extlink.extTargetAppendNewWindowLabel;if(oldTitle!==null){if(Drupal.extlink.hasNewWindowText(oldTitle))return;newTitle=Drupal.extlink.combineLabels(oldTitle,newTitle);}if(newTitle)externalLinks[i].setAttribute('title',newTitle);});if(drupalSettings.data.extlink.extNoreferrer)externalLinks.forEach((link,i)=>{if(drupalSettings.data.extlink.extExcludeNoreferrer&&extExcludeNoreferrer.test(link.getAttribute('href')))return;const val=link.getAttribute('rel');if(val===null||typeof val==='undefined'){externalLinks[i].setAttribute('rel','noreferrer');return;}externalLinks[i].setAttribute('rel',`${val} noreferrer`);});Drupal.extlink=Drupal.extlink||{};Drupal.extlink.popupClickHandler=Drupal.extlink.popupClickHandler||(()=>{if(drupalSettings.data.extlink.extAlert)return confirm(drupalSettings.data.extlink.extAlertText);});const _that=this;Drupal.extlink.handleClick=function(event){const shouldNavigate=Drupal.extlink.popupClickHandler.call(_that,event);if(typeof shouldNavigate!=='undefined'&&!shouldNavigate)event.preventDefault();};externalLinks.forEach((val,i)=>{externalLinks[i].removeEventListener('click',Drupal.extlink.handleClick);externalLinks[i].addEventListener('click',Drupal.extlink.handleClick);});};Drupal.extlink.hasNewWindowText=function(label){return label.toLowerCase().indexOf(Drupal.t('new window'))!==-1;};Drupal.extlink.combineLabels=function(labelA,labelB){labelA=labelA||'';labelB=labelB||'';if(!labelA.trim())return labelB;if(!labelB.trim())return labelA;const labelANoParens=labelA.trim().replace('(','').replace(')','');const labelBNoParens=labelB.trim().replace('(','').replace(')','');if(labelA===labelANoParens){if(labelB===labelBNoParens)return `${labelA}, ${labelB}`;return `${labelA} ${labelB}`;}if(labelB===labelBNoParens)return `${labelB} ${labelA}`;return `(${labelANoParens}, ${labelBNoParens})`;};Drupal.extlink.applyClassAndSpan=(links,className,iconPlacement)=>{let linksToProcess;if(drupalSettings.data.extlink.extImgClass)linksToProcess=links;else linksToProcess=links.filter((link)=>{return link.querySelector('img, svg')===null;});for(let i=0;i<linksToProcess.length;i++){if(className!=='0')linksToProcess[i].classList.add(className);if(className===drupalSettings.data.extlink.mailtoClass&&drupalSettings.data.extlink.extAdditionalMailtoClasses)linksToProcess[i].classList.add(drupalSettings.data.extlink.extAdditionalMailtoClasses);else if(className===drupalSettings.data.extlink.telClass&&drupalSettings.data.extlink.extAdditionalTelClasses)linksToProcess[i].classList.add(drupalSettings.data.extlink.extAdditionalTelClasses);else{if(drupalSettings.data.extlink.extAdditionalLinkClasses)linksToProcess[i].classList.add(drupalSettings.data.extlink.extAdditionalLinkClasses);}linksToProcess[i].setAttribute('data-extlink','');if(iconPlacement){let link=linksToProcess[i];if(drupalSettings.data.extlink.extPreventOrphan&&iconPlacement==='append'){let lastTextNode=link.lastChild;let trailingWhitespace=null;let parentNode=link;while(lastTextNode)if(lastTextNode.lastChild){parentNode=lastTextNode;lastTextNode=lastTextNode.lastChild;}else if(lastTextNode.nodeName==='#text'&&parentNode.lastElementChild&&lastTextNode.textContent.trim().length===0){trailingWhitespace=lastTextNode;parentNode=parentNode.lastElementChild;lastTextNode=parentNode.lastChild;}else break;if(lastTextNode&&lastTextNode.nodeName==='#text'&&lastTextNode.textContent.length>0){const lastText=lastTextNode.textContent;const lastWordRegex=new RegExp(/\S+\s*$/,'g');const lastWord=lastText.match(lastWordRegex);if(lastWord!==null){const breakPreventer=document.createElement('span');breakPreventer.classList.add('extlink-nobreak');breakPreventer.textContent=lastWord[0];if(trailingWhitespace){trailingWhitespace.textContent='';breakPreventer.append(trailingWhitespace.textContent);}lastTextNode.textContent=lastText.substring(0,lastText.length-lastWord[0].length);lastTextNode.parentNode.append(breakPreventer);link=breakPreventer;}}}let iconElement;if(drupalSettings.data.extlink.extUseFontAwesome){iconElement=document.createElement('span');iconElement.setAttribute('class',`fa-${className} extlink`);
4if(className===drupalSettings.data.extlink.mailtoClass){if(drupalSettings.data.extlink.mailtoLabel)link.ariaLabel=drupalSettings.data.extlink.mailtoLabel;iconElement.innerHTML=Drupal.theme('extlink_fa_mailto',drupalSettings,iconPlacement);}else if(className===drupalSettings.data.extlink.extClass){if(drupalSettings.data.extlink.extLabel)link.ariaLabel=drupalSettings.data.extlink.extLabel;iconElement.innerHTML=Drupal.theme('extlink_fa_extlink',drupalSettings,iconPlacement);}else{if(className===drupalSettings.data.extlink.telClass){if(drupalSettings.data.extlink.telLabel)link.ariaLabel=drupalSettings.data.extlink.telLabel;iconElement.innerHTML=Drupal.theme('extlink_fa_tel',drupalSettings,iconPlacement);}}}else{iconElement=document.createElementNS('http://www.w3.org/2000/svg','svg');iconElement.setAttribute('focusable','false');iconElement.setAttribute('width','1em');iconElement.setAttribute('height','1em');iconElement.classList.add(className);iconElement.setAttribute('data-extlink-placement',iconPlacement);if(className===drupalSettings.data.extlink.mailtoClass)iconElement=Drupal.theme('extlink_mailto',iconElement,drupalSettings);else if(className===drupalSettings.data.extlink.extClass)iconElement=Drupal.theme('extlink_extlink',iconElement,drupalSettings);else{if(className===drupalSettings.data.extlink.telClass)iconElement=Drupal.theme('extlink_tel',iconElement,drupalSettings);}}iconElement.setAttribute('role','img');iconElement.setAttribute('aria-hidden',drupalSettings.data.extlink.extHideIcons);link[iconPlacement](iconElement);}}};Drupal.theme.extlink_fa_mailto=function(drupalSettings,iconPlacement){return `<span class="${drupalSettings.data.extlink.extFaMailtoClasses}" data-extlink-placement="${iconPlacement}"></span>`;};Drupal.theme.extlink_fa_extlink=function(drupalSettings,iconPlacement){return `<span class="${drupalSettings.data.extlink.extFaLinkClasses}" data-extlink-placement="${iconPlacement}"></span>`;};Drupal.theme.extlink_fa_tel=function(drupalSettings,iconPlacement){return `<span class="${drupalSettings.data.extlink.extFaTelClasses}" data-extlink-placement="${iconPlacement}"></span>`;};Drupal.theme.extlink_mailto=function(iconElement,drupalSettings){iconElement.setAttribute('aria-label',drupalSettings.data.extlink.mailtoLabel);iconElement.setAttribute('viewBox','0 10 70 20');iconElement.innerHTML=`<title>${drupalSettings.data.extlink.mailtoLabel}</title><path d="M56 14H8c-1.1 0-2 0.9-2 2v32c0 1.1 0.9 2 2 2h48c1.1 0 2-0.9 2-2V16C58 14.9 57.1 14 56 14zM50.5 18L32 33.4 13.5 18H50.5zM10 46V20.3l20.7 17.3C31.1 37.8 31.5 38 32 38s0.9-0.2 1.3-0.5L54 20.3V46H10z"/>`;return iconElement;};Drupal.theme.extlink_extlink=function(iconElement,drupalSettings){iconElement.setAttribute('aria-label',drupalSettings.data.extlink.extLabel);iconElement.setAttribute('viewBox','0 0 80 40');iconElement.innerHTML=`<title>${drupalSettings.data.extlink.extLabel}</title><path d="M48 26c-1.1 0-2 0.9-2 2v26H10V18h26c1.1 0 2-0.9 2-2s-0.9-2-2-2H8c-1.1 0-2 0.9-2 2v40c0 1.1 0.9 2 2 2h40c1.1 0 2-0.9 2-2V28C50 26.9 49.1 26 48 26z"/><path d="M56 6H44c-1.1 0-2 0.9-2 2s0.9 2 2 2h7.2L30.6 30.6c-0.8 0.8-0.8 2 0 2.8C31 33.8 31.5 34 32 34s1-0.2 1.4-0.6L54 12.8V20c0 1.1 0.9 2 2 2s2-0.9 2-2V8C58 6.9 57.1 6 56 6z"/>`;return iconElement;};Drupal.theme.extlink_tel=function(iconElement,drupalSettings){iconElement.setAttribute('aria-label',drupalSettings.data.extlink.telLabel);iconElement.setAttribute('viewBox','0 0 181.352 181.352');iconElement.innerHTML=`<title>${drupalSettings.data.extlink.telLabel}</title><path xmlns="http://www.w3.org/2000/svg" d="M169.393,167.37l-14.919,9.848c-9.604,6.614-50.531,14.049-106.211-53.404C-5.415,58.873,9.934,22.86,17.134,14.555L29.523,1.678c2.921-2.491,7.328-2.198,9.839,0.811l32.583,38.543l0.02,0.02c2.384,2.824,2.306,7.22-0.83,9.868v0.029l-14.44,10.415c-5.716,5.667-0.733,14.587,5.11,23.204l27.786,32.808c12.926,12.477,20.009,18.241,26.194,14.118l12.008-13.395c2.941-2.472,7.328-2.169,9.839,0.821l32.603,38.543v0.02C172.607,160.316,172.519,164.703,169.393,167.37z"/>`;return iconElement;};Drupal.behaviors.extlink=Drupal.behaviors.extlink||{};Drupal.behaviors.extlink.attach=(context,drupalSettings)=>{if(typeof extlinkAttach==='function')extlinkAttach(context);else Drupal.extlink.attach(context,drupalSettings);};})(Drupal,drupalSettings);; 5((Drupal)=>{Drupal.behaviors.lazy={attach(context,settings){const utils={extend(obj,src){Object.keys(src).forEac
5h((key)=>{obj[key]=src[key];});return obj;},once(selector){return (context||document).querySelector(selector);},loadScript(url){if(document.querySelectorAll(`script[src="${url}"]`).length===0){const script=document.createElement('script');const scripts=document.getElementsByTagName('script')[0];script.src=url;script.async=true;scripts.parentNode.insertBefore(script,scripts);}}};if(utils.once('body',context)){const lazysizes=settings.lazy.lazysizes||{};if(!settings.lazy.preferNative){window.lazySizesConfig=window.lazySizesConfig||{};window.lazySizesConfig=utils.extend(window.lazySizesConfig,lazysizes);if(!Object.entries)Object.entries=(obj)=>{const ownProps=Object.keys(obj);let i=ownProps.length;const resArray=new Array(i);while(i--)resArray[i]=[ownProps[i],obj[ownProps[i]]];return resArray;};const min=settings.lazy.minified?'.min':'';Object.entries(lazysizes.plugins).forEach((path)=>{utils.loadScript(`${settings.lazy.libraryPath}/plugins/${path[1]}${min}.js`);});utils.loadScript(`${settings.lazy.libraryPath}/lazysizes${min}.js`);}}}};})(Drupal);; 6(function(Drupal,drupalSettings,once){const sitewideAlertsSelector='[data-sitewide-alert]';const shouldShowOnThisPage=(pages=[],negate=true)=>{if(pages.length===0)return true;let pagePathMatches=false;const currentPath=window.location.pathname;for(let i=0;i<pages.length;i++){const baseUrl=drupalSettings.path.baseUrl.slice(0,-1);const page=baseUrl+pages[i];if(page.charAt(page.length-1)==='*'){if(currentPath.startsWith(page.substring(0,page.length-1))){pagePathMatches=true;break;}}else{if(page===currentPath){pagePathMatches=true;break;}}}return negate?!pagePathMatches:pagePathMatches;};const alertWasDismissed=(alert)=>{if(!alert.dismissible)return false;if(!(`alert-dismissed-${alert.uuid}` in window.localStorage))return false;const dismissedAtTimestamp=Number(window.localStorage.getItem(`alert-dismissed-${alert.uuid}`));return dismissedAtTimestamp>=alert.dismissalIgnoreBefore;};const updateLandmarkRole=()=>{const roots=document.querySelectorAll(sitewideAlertsSelector);roots.forEach((root)=>{const hasAlerts=root.querySelector('[data-uuid]')!==null;if(hasAlerts){root.setAttribute('role','region');root.setAttribute('aria-label',Drupal.t('Site alerts'));}else{root.removeAttribute('role');root.removeAttribute('aria-label');}});};const updateAlertCount=()=>{if(!drupalSettings.sitewideAlert.showCount)return;const roots=document.querySelectorAll(sitewideAlertsSelector);roots.forEach((root)=>{let count=0;const alerts=root.querySelectorAll('[data-uuid]');const totalCount=alerts.length;alerts.forEach((alert)=>{count++;const alertCountContainer=alert.querySelector('.alert-count');if(!alertCountContainer)return;alertCountContainer.innerHTML=Drupal.t('@current_count of @total_count alerts',{'@current_count':count,'@total_count':totalCount});});});};const removeAlert=(alert)=>{alert.dispatchEvent(new CustomEvent('sitewide-alert-removed',{bubbles:true,composed:true}));alert.remove();updateAlertCount();updateLandmarkRole();};const dismissAlert=(alert)=>{window.localStorage.setItem(`alert-dismissed-${alert.uuid}`,String(Math.round(new Date().getTime()/1000)));document.querySelectorAll(`[data-uuid="${alert.uuid}"]`).forEach((alert)=>{alert.dispatchEvent(new CustomEvent('sitewide-alert-dismissed',{bubbles:true,composed:true}));removeAlert(alert);});};const buildAlertElement=(alert)=>{const alertElement=document.createElement('div');alertElement.innerHTML=alert.renderedAlert;if(alert.dismissible){const dismissButtons=alertElement.getElementsByClassName('js-dismiss-button');for(let i=0;i<dismissButtons.length;i++)dismissButtons[i].addEventListener('click',()=>dismissAlert(alert));}return alertElement.firstElementChild;};const processSsrAlerts=()=>{const roots=document.querySelectorAll(sitewideAlertsSelector);roots.forEach((root)=>{const existingAlerts=root.querySelectorAll('[data-uuid]');existingAlerts.forEach((alertElement)=>{const uuid=alertElement.dataset.uuid;const dismissalIgnoreBefore=parseInt(alertElement.dataset.dismissalIgnoreBefore,10)||0;const isDismissible=alertElement.dataset.dismissible==='true';const alertData={uuid,dismissalIgnoreBefore,dismissible:isDismissible};
6if(alertWasDismissed(alertData)){removeAlert(alertElement);return;}if(isDismissible){const dismissButtons=alertElement.getElementsByClassName('js-dismiss-button');for(let i=0;i<dismissButtons.length;i++)dismissButtons[i].addEventListener('click',()=>dismissAlert(alertData));}});});};const fetchAlerts=()=>{const url=new URL(Drupal.url('sitewide_alert/load'),window.location.origin);url.username='';url.password='';return fetch(url.toString()).then((res)=>res.json()).then((result)=>result.sitewideAlerts,(error)=>{console.error(error);});};const removeStaleAlerts=(alerts)=>{const roots=document.querySelectorAll(sitewideAlertsSelector);roots.forEach((root)=>{const existingAlerts=root.querySelectorAll('[data-uuid]');const alertsToBeRemoved=Array.from(existingAlerts).filter((alert)=>!alerts.includes(alert.getAttribute('data-uuid')));alertsToBeRemoved.forEach((alert)=>removeAlert(alert));});};const initAlerts=()=>{const roots=document.querySelectorAll(sitewideAlertsSelector);fetchAlerts().then((alerts)=>{removeStaleAlerts(alerts.map((alert)=>alert.uuid));alerts.forEach((alert)=>{const dismissed=alertWasDismissed(alert);const showOnThisPage=shouldShowOnThisPage(alert.showOnPages,alert.negateShowOnPages);roots.forEach((root)=>{const existingAlertElement=root.querySelector(`[data-uuid="${alert.uuid}"]`);
6if(showOnThisPage&&!dismissed){if(existingAlertElement&&existingAlertElement.dataset.changed===alert.changed)return;const renderableAlertElement=buildAlertElement(alert);if(existingAlertElement)root.replaceChild(renderableAlertElement,existingAlertElement);else root.appendChild(renderableAlertElement);renderableAlertElement.dispatchEvent(new CustomEvent('sitewide-alert-rendered',{bubbles:true,composed:true}));Drupal.attachBehaviors(renderableAlertElement);return;}if((dismissed||!showOnThisPage)&&existingAlertElement)removeAlert(existingAlertElement);});updateAlertCount();});updateLandmarkRole();});};const supportsHistoryPushState=()=>{return 'pushState' in window.history&&window.history.pushState!==null;};const supportsHistoryReplaceState=()=>{return ('replaceState' in window.history&&window.history.replaceState!==null);};const triggerHistoryEvent=(thisArg,argArray)=>{const event=new CustomEvent('sitewidealerts.popstate',{detail:{state:thisArg,options:argArray}});window.dispatchEvent(event);};const proxyPushState=()=>{if(supportsHistoryPushState())window.history.pushState=new Proxy(window.history.pushState,{apply(target,thisArg,argArray){triggerHistoryEvent(thisArg,argArray);return target.apply(thisArg,argArray);}});if(supportsHistoryReplaceState())window.history.replaceState=new Proxy(window.history.replaceState,{apply(target,thisArg,argArray){triggerHistoryEvent(thisArg,argArray);return target.apply(thisArg,argArray);}});};function debounce(func,wait,immediate){let timeout;return function(...args){const context=this;const later=function(){timeout=null;if(!immediate)func.apply(context,args);};const callNow=immediate&&!timeout;clearTimeout(timeout);timeout=setTimeout(later,wait);if(callNow)func.apply(context,args);};}const historyListener=()=>{const debounced=debounce(initAlerts,2000);window.addEventListener('sitewidealerts.popstate',debounced);window.addEventListener('popstate',debounced);};Drupal.behaviors.sitewide_alert_init={attach:(context)=>{once('sitewide_alerts_init','html',context).forEach(()=>{processSsrAlerts();updateLandmarkRole();if(drupalSettings.sitewideAlert.serverSideRender!==true)initAlerts();proxyPushState();historyListener();if(drupalSettings.sitewideAlert.automaticRefresh===true){const interval=setInterval(()=>initAlerts(),drupalSettings.sitewideAlert.refreshInterval<1000?1000:drupalSettings.sitewideAlert.refreshInterval);if(!drupalSettings.sitewideAlert.automaticRefresh)clearInterval(interval);}});}};})(Drupal,drupalSettings,once);;
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.