UNPKG

b-components-js

Version:

Generate Bootstrap components through JavaScript

8 lines (7 loc) 2.37 kB
/*! * b-components-js v0.0.2 * https://github.com/ZhangChengLin/b-components * Copyright (c) 2020 - 2022 MIT */ import{Toast as e}from"bootstrap";const t=e=>{if(null===e||(e=>"string"==typeof e&&""===e)(e))return"";const t=document.createElement("div"),a=document.createElement("strong");return t.className="toast-header",a.className="toast-title me-auto",e instanceof Function?a.append(e()):e instanceof HTMLElement?a.append(e):a.innerHTML=e,t.append(a,((e,t=!1)=>{const a=document.createElement("button");return a.className=t?"btn-close btn-close-white":"btn-close",a.type="button",a.dataset.bsDismiss=e,a.ariaLabel="Close",a})("toast")),t},a=(a,n,s,o,r,c)=>{const d="toastId_"+Date.now().toString(),i=(e=>{const t=document.createElement("div");return t.className="position-relative",t.ariaLive=e??"polite",t.ariaAtomic="true",t})(),m=document.querySelector(".toast-container")??(e=>{const t=document.createElement("div");switch(e=e??"be"){case"ts":e="top-0 start-0";break;case"tc":e="top-0 start-50 translate-middle-x";break;case"te":e="top-0 end-0";break;case"ms":e="top-50 start-0 translate-middle-y";break;case"mc":e="top-50 start-50 translate-middle";break;case"me":e="top-50 end-0 translate-middle-y";break;case"bs":e="bottom-0 start-0";break;case"bc":e="bottom-0 start-50 translate-middle-x";break;case"be":e="bottom-0 end-0";break;default:throw"Placement error"}return t.className=`toast-container position-fixed ${e}`,t})(s),l=(e=>{const t=document.createElement("div");return t.className="toast",t.id=e,t.role="alert",t.ariaLive="assertive",t.ariaAtomic="true",t})(d),b=t(a),p=(e=>{const t=document.createElement("div");return t.className="toast-body",e instanceof Function?t.append(e()):e instanceof HTMLElement?t.append(e):t.innerHTML=e,t})(n);l.append(b,p),m.append(l),i.append(m),document.body.append(i),r&&c&&((e,t,a)=>{switch(t){case"show":e.addEventListener("show.bs.toast",(()=>a()));break;case"shown":e.addEventListener("shown.bs.toast",(()=>a()));break;case"hide":e.addEventListener("hide.bs.toast",(()=>a()));break;case"hidden":e.addEventListener("hidden.bs.toast",(()=>a()));break;default:throw"eventsType error"}})(l,r,c);return(o?new e(l,o):new e(l)).show(),(t=>{t.addEventListener("hidden.bs.toast",(()=>{e.getInstance(t).dispose(),setTimeout((()=>{t.remove()}),3e3)}))})(l),d};export{a as bToast}; //# sourceMappingURL=bToast.esm.min.js.map