1function a(i){const t=document.createElement("template");return t.innerHTML=i.trim(),t.content.cloneNode(!0)}function n(i,t,e){const s=i.querySelector(`slot[name="${t}"]`);if(s){if(typeof e=="string"){s.replaceWith(document.createTextNode(e));return}if(Array.isArray(e)){if(e.length===0){s.remove();return}s.replaceWith(...e);return}s.replaceWith(e)}}function m(i,t){i.querySelector(`slot[name="${t}"]`)?.remove()}const g=`<div class="ss-alert-modal-container"> 2 <div class="ss-alert-modal-icon-container"> 3 <div class="ss-alert-modal-svg-container"> 4 <slot name="icon"></slot> 5 </div> 6 </div> 7 <div class="ss-alert-modal-content-container"> 8 <div class="ss-alert-modal-content-scroll-container" tabindex="0"> 9 <h3 class="ss-alert-modal-title"><slot name="title"></slot></h3> 10 <p class="ss-alert-modal-content"><slot name="message"></slot></p> 11 <div class="ss-alert-modal-button-container"> 12 <a class="ss-alert-modal-cta-button ss-button"> 13 <slot name="ctaText"></slot> 14 <span class="ss-button-icon" aria-hidden="true"></span> 15 </a> 16 </div> 17 </div> 18 </div> 19 <div class="ss-alert-modal-time-since-container"> 20 <p><slot name="timeSince"></slot></p> 21 </div> 22</div> 23`,p=`<svg width="60" height="54" viewBox="0 0 60 54" fill="none" xmlns="http://www.w3.org/2000/svg"> 24 <path d="M27.4828 6.876C30.6873 1.47884 38.5003 1.47883 41.7049 6.876L57.9739 34.2764C63.0655 42.8518 56.8853 53.7088 46.9122 53.7088H14.2041C7.79284 53.7088 3.81985 46.7293 7.09305 41.2166L27.4828 6.876Z" fill="#FFE7C3"/> 25 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.40666 46.3574H45.9973C50.987 46.3574 54.0767 40.9227 51.5245 36.6351L33.2292 5.89895C30.7353 1.70926 24.6687 1.70926 22.1748 5.89895L3.87946 36.6351C1.32731 40.9227 4.41697 46.3574 9.40666 46.3574ZM35.598 4.48895C32.0353 -1.49632 23.3687 -1.49632 19.806 4.48895L1.51066 35.2251C-2.13527 41.3503 2.27853 49.1141 9.40666 49.1141H45.9973C53.1255 49.1141 57.5393 41.3503 53.8933 35.2251L35.598 4.48895Z" fill="#E68937"/> 26 <path d="M26.3237 15.6953C26.3237 14.8669 26.9953 14.1953 27.8237 14.1953C28.6522 14.1953 29.3237 14.8669 29.3237 15.6953V34.6953C29.3237 35.5237 28.6522 36.1953 27.8237 36.1953C26.9953 36.1953 26.3237 35.5237 26.3237 34.6953V15.6953Z" fill="#E68937"/> 27 <rect x="26.3237" y="38.1953" width="3" height="3" rx="1.5" fill="#E68937"/> 28</svg> 29`;class u extends HTMLElement{alertData=null;set alert(t){this.alertData=t,this.render()}get alert(){return this.alertData}render(){if(!this.alertData)return;const t=this.alertData,e=a(g);n(e,"icon",a(p)),this.renderTitle(e,t.title),n(e,"message",this.buildMessageNodes(t.message)),this.renderCta(e,t),n(e,"timeSince",t.timeSince),this.replaceChildren(e)}renderTitle(t,e){t.querySelector(".ss-alert-modal-title")?.classList.toggle("ss-hidden",!e),n(t,"title",e)}buildMessageNodes(t){const e=[];return t.split(` 30`).forEach((s,l)=>{l>0&&e.push(document.createElement("br")),e.push(document.createTextNode(s))}),e}renderCta(t,e){const s=t.querySelector(".ss-alert-modal-button-container"),l=t.querySelector(".ss-alert-modal-cta-button"),o=e.linkText,r=e.link?this.normalizeLink(e.link):"",d=!!(r&&o&&this.isValidLink(r));if(s?.classList.toggle("ss-hidden",!d),!d||!l||!o){m(t,"ctaText");return}l.href=r,l.target=this.isSameOriginLink(r)?"_self":"_blank",l.target==="_blank"&&(l.rel="noopener"),n(t,"ctaText",o)}normalizeLink(t){const e=t.trim();if(e==="")return t;const s=e.toLowerCase();return["https://","http://","ftps://","ftp://","mailto:","tel:","//","/","#"].some(o=>s.startsWith(o))?e:`https://${e}`}isValidLink(t){if(t.startsWith("/"))return!0;try{return["http:","https:"].includes(new URL(t).protocol)}catch{return!1}}isSameOriginLink(t){if(t.startsWith("/"))return!0;try{return new URL(t).host===window.location.host}catch{return!1}}}customElements.get("ss-popup-alert")||customElements.define("ss-popup-alert",u);const v=`<div class="ss-lightbox-modal-content-wrap"> 31 <div class="ss-lightbox-modal-content"> 32 <div class="ss-lightbox-modal-icon-background"></div> 33 <button type="button" class="ss-button ss-close-modal" aria-label="Close"> 34 <i class="fa-regular fa-xmark-large" aria-hidden="true"></i> 35 </button> 36 <div class="ss-lightbox-modal-content-inner"> 37 <slot name="entry"></slot> 38 </div> 39 </div> 40</div> 41`,b=`<div class="ss-lightbox-modal-multi-entry-header-container"> 42 <div class="ss-lightbox-modal-multi-entry-header"> 43 <div class="ss-lightbox-modal-multi-entry-header-copy"><slot name="headerCopy"></slot></div> 44 <button type="button" class="ss-button ss-close-modal" aria-label="Close"> 45 <i class="fa-regular fa-xmark-large" aria-hidden="true"></i> 46 </button> 47 </div> 48</div> 49<div class="ss-lightbox-modal-content-scroll-container"> 50 <div class="lightbox-modal-scroll-up-notification-container hidden"> </div> 51 <div class="ss-lightbox-modal-content-scroll-wrap"> 52 <div class="ss-lightbox-modal-content-wrap"> 53 <slot name="entries"></slot> 54 </div> 55 </div> 56 <div class="lightbox-modal-scroll-down-notification-container"> 57 <div class="ss-lightbox-modal-scroll-down-notification-gradiant"> </div> 58 <div class="ss-lightbox-modal-scroll-down-notification-text">Scroll to read multiple alerts</div> 59 </div> 60</div> 61`,f=`<div class="ss-lightbox-modal-content"> 62 <div class="ss-lightbox-modal-icon-background"></div> 63 <div class="ss-lightbox-modal-content-inner"> 64 <slot name="entry"></slot> 65 </div> 66</div> 67`,c="modal-open",h="hidden";class x{dialog;scrollWrap=null;constructor(t){this.dialog=document.createElement("dialog"),this.dialog.id="ss-alert-preview",this.dialog.className="ss-lightbox-modal ss-lightbox-modal-alert",this.dialog.addEventListener("close",this.handleClose),t.append(this.dialog)}open(t){t.length!==0&&(this.render(t),document.body.classList.add(c),this.dialog.open||this.dialog.showModal(),this.updateScrollNotifications())}handleClose=()=>{document.body.classList.remove(c)};render(t){this.dialog.replaceChildren(),this.dialog.classList.toggle("ss-lightbox-modal-multi-entries",t.length>1),this.scrollWrap=null,this.dialog.append(t.length>1?this.buildMultiEntryLayout(t):this.buildSingleEntryLayout(t[0]))}buildSingleEntryLayout(t){const e=a(v);
67return this.wireCloseButton(e),n(e,"entry",this.buildAlertElement(t)),e}buildMultiEntryLayout(t){const e=a(b);return n(e,"headerCopy",`${t.length} Alerts`),this.wireCloseButton(e),n(e,"entries",t.map(s=>this.buildMultiEntryContent(s))),this.scrollWrap=e.querySelector(".ss-lightbox-modal-content-scroll-wrap"),this.scrollWrap?.addEventListener("scroll",()=>this.updateScrollNotifications()),e}buildMultiEntryContent(t){const e=a(f);return n(e,"entry",this.buildAlertElement(t)),e}buildAlertElement(t){const e=new u;return e.alert=t,e}wireCloseButton(t){const e=t.querySelector(".ss-close-modal");e&&(e.autofocus=!0,e.addEventListener("click",()=>this.dialog.close()))}updateScrollNotifications(){const t=this.scrollWrap;if(!t)return;const e=t.scrollHeight<=t.clientHeight+t.scrollTop+1,s=t.scrollTop===0;this.dialog.querySelector(".lightbox-modal-scroll-up-notification-container")?.classList.toggle(h,s),this.dialog.querySelector(".lightbox-modal-scroll-down-notification-container")?.classList.toggle(h,e)}}export{x as A,a as i}; 68//# sourceMappingURL=AlertsDialog-D9bH4YML.js.map
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.