PageSourceSearch

https://www.horse-ball.org/media/js/BootstrapToaster-master/js/bootstrap-toaster.min.js

js horse-ball.org collected 2026-09-26 07:36:43 UTC 5,287 bytes, 2 lines download raw bytes

1const TOAST_CONTAINER=document.createElement("div");TOAST_CONTAINER.id="toastContainer",TOAST_CONTAINER.className="position-fixed top-0 right-0",TOAST_CONTAINER.setAttribute("aria-live","polite"),document.body.appendChild(TOAST_CONTAINER);const TOAST_TEMPLATE=document.createElement("div");TOAST_TEMPLATE.className="toast",TOAST_TEMPLATE.setAttribute("role","status"),TOAST_TEMPLATE.setAttribute("aria-live","polite"),TOAST_TEMPLATE.setAttribute("aria-atomic","true"),TOAST_TEMPLATE.setAttribute("data-autohide","false"),TOAST_TEMPLATE.innerHTML='\n        <div class="toast-header">\n            <span class="status-icon bi mr-2" aria-hidden="true"></span>\n            <strong class="mr-auto toast-title"></strong>\n            <small class="timer" aria-hidden="true">just now</small>\n            <button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">\n                <span aria-hidden="true">&times;</span>\n            </button>\n        </div>\n        <div class="toast-body"></div>';const TOAST_STATUS={SUCCESS:1,DANGER:2,WARNING:3,INFO:4},TOAST_PLACEMENT={TOP_LEFT:1,TOP_CENTER:2,TOP_RIGHT:3,MIDDLE_LEFT:4,MIDDLE_CENTER:5,MIDDLE_RIGHT:6,BOTTOM_LEFT:7,BOTTOM_CENTER:8,BOTTOM_RIGHT:9},TOAST_THEME={LIGHT:1,DARK:2};var maxToastCount=4,currentToastCount=0,enableTimers=!0;class Toast{static configure(maxToasts=null,placement=TOAST_PLACEMENT.TOP_RIGHT,theme=null,enableTimers=!0){Toast.setMaxCount(maxToasts),Toast.setPlacement(placement),Toast.setTheme(theme),Toast.enableTimers(enableTimers)}static setMaxCount(maxToasts){null!==maxToasts&&(maxToasts>0?maxToastCount=maxToasts:console.error("The maximum number of toasts must be greater than 0. Reverting to default."))}static setPlacement(placement){switch(TOAST_CONTAINER.className="position-fixed",placement){case TOAST_PLACEMENT.TOP_LEFT:TOAST_CONTAINER.classList.add("top-0","left-0");break;case TOAST_PLACEMENT.TOP_CENTER:TOAST_CONTAINER.classList.add("top-0","left-50","translate-middle-x");break;case TOAST_PLACEMENT.TOP_RIGHT:TOAST_CONTAINER.classList.add("top-0","right-0");break;case TOAST_PLACEMENT.MIDDLE_LEFT:TOAST_CONTAINER.classList.add("top-50","left-0","translate-middle-y");break;case TOAST_PLACEMENT.MIDDLE_CENTER:TOAST_CONTAINER.classList.add("top-50","left-50","translate-middle");break;case TOAST_PLACEMENT.MIDDLE_RIGHT:TOAST_CONTAINER.classList.add("top-50","right-0","translate-middle-y");break;case TOAST_PLACEMENT.BOTTOM_LEFT:TOAST_CONTAINER.classList.add("bottom-0","left-0");break;case TOAST_PLACEMENT.BOTTOM_CENTER:TOAST_CONTAINER.classList.add("bottom-0","left-50","translate-middle-x");break;case TOAST_PLACEMENT.BOTTOM_RIGHT:TOAST_CONTAINER.classList.add("bottom-0","right-0");break;default:TOAST_CONTAINER.classList.add("top-0","right-0")}}static setTheme(theme=null){let header=TOAST_TEMPLATE.querySelector(".toast-header"),close=header.querySelector(".close");switch(theme){case TOAST_THEME.LIGHT:TOAST_TEMPLATE.style.backgroundColor="var(--body-bg-color-light)",TOAST_TEMPLATE.style.color="var(--text-color-light)",header.style.backgroundColor="var(--header-bg-color-light)",header.style.color="var(--header-color-light)",close.style.color="var(--text-color-light)";break;case TOAST_THEME.DARK:TOAST_TEMPLATE.style.backgroundColor="var(--body-bg-color-dark)",TOAST_TEMPLATE.style.color="var(--text-color-dark)",header.style.backgroundColor="var(--header-bg-color-dark)",header.style.color="var(--header-color-dark)",close.style.color="var(--text-color-dark)";break;default:TOAST_TEMPLATE.removeAttribute("style"),header.removeAttribute("style"),close.removeAttribute("style")}}static enableTimers(enabled=!0){enableTimers=enabled}static create(title,message,status=0,timeout=0){if(currentToastCount>=maxToastCount)return;let toast=TOAST_TEMPLATE.cloneNode(!0),toastTitle,toastBody;toast.querySelector(".toast-title").innerText=title,toast.querySelector(".toast-body").innerHTML=message,Toast._setStatus(toast,status),Toast._render(toast,timeout)}static _setStatus(toast,status){let statusIcon=toast.querySelector(".status-icon");switch(status){case TOAST_STATUS.SUCCESS:statusIcon.classList.add("text-success","bi-check-circle-fill");break;case TOAST_STATUS.DANGER:statusIcon.classList.add("text-danger","bi-x-circle-fill"),toast.setAttribute("role","alert"),toast.setAttribute("aria-live","assertive");break;case TOAST_STATUS.WARNING:statusIcon.classList.add("text-warning","bi-exclamation-circle-fill"),toast.setAttribute("role","alert"),toast.setAttribute("aria-live","assertive");break;case TOAST_STATUS.INFO:statusIcon.classList.add("text-info","bi-info-circle-fill");break;default:statusIcon.classList.add("d-none")}}static _render(toast,timeout){timeout>0&&(toast.setAttribute("data-delay",timeout),toast.setAttribute("data-autohide",!0));let timer=toast.querySelector(".timer");if(enableTimers){let minutes=1,elapsedTimer=setInterval(()=>{timer.innerText=`${minutes}m ago`,minutes++},6e4);$(toast).on("hidden.bs.toast",()=>{clearInterval(elapsedTimer)})}else{let toastHeader;toast.querySelector(".toast-header").removeChild(timer)}TOAST_CONTAINER.appendChild(toast),$(toast).toast("show"),currentToastCount++,$(toast).on("hidden.bs.toast",()=>{TOAST_CONTAINER.removeChild(toast),currentToastCount--})}}
2//# sourceMappingURL=bootstrap-toaster.min.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.