PageSourceSearch

https://boiseschools.org/dist/assets/AlertsDialog-D9bH4YML.js

js boiseschools.org collected 2026-09-24 09:30:52 UTC 7,527 bytes, 68 lines download raw bytes

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">&nbsp;</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">&nbsp;</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.