1function getCookie(e){const t=e+"=",n=document.cookie.split(";");for(let e of n)if(e=e.trim(),0===e.indexOf(t))try{return JSON.parse(atob(e.substring(t.length)))}catch(e){return{}}return{}}function setCookie(e){document.cookie="easy_announcements="+btoa(JSON.stringify(e))+"; path=/; max-age=604800"}function initializeCookie(){const e=getCookie("easy_announcements");return 0===Object.keys(e).length&&setCookie({}),e}function getDismissal(e){return"true"===getCookie("easy_announcements")["dismiss-"+e]}function setDismissal(e){const t=getCookie("easy_announcements");t["dismiss-"+e]="true",setCookie(t)}let eaBackdrop=null;function eaShowModal(e){const t=document.getElementById(e);t&&(eaBackdrop||(eaBackdrop=document.createElement("div"),eaBackdrop.className="ea-modal-backdrop show",eaBackdrop.setAttribute("aria-hidden","true"),document.body.appendChild(eaBackdrop)),t.classList.add("show"),t.removeAttribute("aria-hidden"),t.setAttribute("aria-modal","true"),document.body.classList.add("ea-modal-open"),t.focus())}function eaDismissModal(e){e.classList.remove("show"),e.removeAttribute("aria-modal"),e.setAttribute("aria-hidden","true"),0===document.querySelectorAll(".ea-modal.show").length&&eaBackdrop&&(eaBackdrop.remove(),eaBackdrop=null,document.body.classList.remove("ea-modal-open"));const t=new CustomEvent("ea.modal.dismiss");e.dispatchEvent(t)}async function easyAnnouncementsInit(e){try{initializeCookie();const t=await fetch("/wp-json/easy-announcements/v1/announcements?page_id="+e,{method:"GET",credentials:"same-origin"});if(!t.ok)return void console.error("Easy Announcements: API request failed",t.status);const n=await t.json();if(!n.success||!n.announcements)return;const o={};n.announcements.forEach((e=>{o[e.placement]||(o[e.placement]={}),o[e.placement][e.attachment]||(o[e.placement][e.attachment]=[]),o[e.placement][e.attachment].push(e)})),Object.keys(o).forEach((e=>{Object.keys(o[e]).forEach((t=>{const n=o[e][t];renderAnnouncementSection(e,t,n)}))})),setupModalHandlers()}catch(e){console.error("Easy Announcements error:",e)}}function renderAnnouncementSection(e,t,n){const o=["site-announcements-"+e,"site-announcements-"+t,"site-announcements-"+e+"-"+t],s=document.createElement("section");if(s.className="site-announcements "+o.join(" "),s.setAttribute("role","region"),s.setAttribute("aria-label","Site Announcements"),n.forEach((e=>{if(!getDismissal(e.id)){const t=document.createElement("div");t.innerHTML=e.html,s.appendChild(t.firstElementChild)}})),0===s.children.length)return;let a=null,c="append";if("popup"===e)a=document.body,c="append";else if("header"===e){const e=window.easyAnnouncementsSettings?.headerSelector;a=e&&document.querySelector(e)||document.querySelector("header")||document.querySelector(".site-header")||document.querySelector(".navbar")||document.querySelector('[role="banner"]')||document.body,c="append"}else if("footer"===e){const e=window.easyAnnouncementsSettings?.footerSelector;a=e&&document.querySelector(e)||document.querySelector("footer")||document.querySelector(".site-footer")||document.querySelector('[role="contentinfo"]')||document.body,c="prepend"}else if("content"===e){const e=window.easyAnnouncementsSettings?.contentSelector;a=e&&document.querySelector(e)||document.querySelector("main")||document.querySelector('[role="main"]')||document.querySelector(".main-content")||document.querySelector(".content")||document.querySelector("article")||document.body,c="before"===t?"prepend":"append"}else a=document.body,c="append";"append"===c?a.appendChild(s):"prepend"===c&&a.insertBefore(s,a.firstChild),"popup"!==e&&s.querySelectorAll(".announcement .dismiss").forEach((e=>{e.addEventListener("click",(t=>{t.preventDefault();setDismissal(e.getAttribute("href").replace("#dismiss-",""));const n=e.closest(".announcement");n.style.overflow="hidden",n.style.height=n.offsetHeight+"px",setTimeout((()=>{n.style.transition="height 0.3s ease-out",n.style.height="0",n.addEventListener("transitionend",(()=>{n.remove(),0===s.children.length&&s.remove()}),{once:!0})}),10)}))}))}function setupModalHandlers(){document.addEventListener("click",(e=>{if(e.target.closest('[data-ea-dismiss="modal"]')){const t=e.target.closest(".ea-modal");if(t){eaDismissModal(t);setDismissal(t.id.replace("modal",""))}}if(e.target.classList&&e.target.classList.contains("ea-modal-backdrop")){const e=document.querySelector(".ea-modal.show");e&&eaDismissModal(e)}})),document.addEventListener("keydown",(e=>{if("Escape"===e.key){const e=document.querySelector(".ea-modal.show");e&&eaDismissModal(e)}})),document.querySelectorAll(".ea-modal[id]").forEach((e=>{const t=parseInt(e.getAttribute("data-popup-delay")||0,10);t>0?setTimeout((()=>eaShowModal(e.id)),t):eaShowModal(e.id)}))}
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.