UNPKG

b-components-js

Version:

Generate Bootstrap components through JavaScript

8 lines (7 loc) 2.73 kB
/*! * b-components-js v0.0.2 * https://github.com/ZhangChengLin/b-components * Copyright (c) 2020 - 2022 MIT */ import{Modal as e}from"bootstrap";const a=e=>null===e,s=e=>"string"==typeof e&&""===e,d=e=>{if(a(e)||s(e))return"";const d=document.createElement("div"),t=document.createElement("h5");return d.className="modal-header",t.className="modal-title",t.id="modalTitleLabel",e instanceof Function?t.append(e()):e instanceof HTMLElement?t.append(e):t.innerHTML=e,d.append(t,((e,a=!1)=>{const s=document.createElement("button");return s.className=a?"btn-close btn-close-white":"btn-close",s.type="button",s.dataset.bsDismiss=e,s.ariaLabel="Close",s})("modal")),d},t=(t,n,l,o,c,r,i,m,u)=>{const b="modalId_"+Date.now().toString(),p=(e=>{const a=document.createElement("div");return a.className="modal fade",a.id=e,a.tabIndex=-1,a.role="dialog",a.setAttribute("aria-labelledby","modalTitleLabel"),a})(b),L=((e="",a=!1,s=!1)=>{const d=document.createElement("div");switch(d.className="modal-dialog",e){case"sm":d.classList.add("modal-sm");break;case"lg":d.classList.add("modal-lg");break;case"xl":d.classList.add("modal-xl");break;case"full":d.classList.add("modal-fullscreen");break;case"full-sm":d.classList.add("modal-fullscreen-sm-down");break;case"full-md":d.classList.add("modal-fullscreen-md-down");break;case"full-lg":d.classList.add("modal-fullscreen-lg-down");break;case"full-xl":d.classList.add("modal-fullscreen-xl-down");break;case"":case"default":break;default:d.classList.add(e)}!0===a&&d.classList.add("modal-dialog-centered");!0===s&&d.classList.add("modal-dialog-scrollable");return d})(o,c,r),f=(()=>{const e=document.createElement("div");return e.className="modal-content",e})(),h=d(t),E=(e=>{const a=document.createElement("div");return a.className="modal-body",e instanceof Function?a.append(e()):e instanceof HTMLElement?a.append(e):a.innerHTML=e,a})(n),v=(e=>{if(a(e)||s(e))return"";const d=document.createElement("div");return d.className="modal-footer",e instanceof Function?d.append(e()):e instanceof HTMLElement?d.append(e):d.innerHTML=e,d})(l);f.append(h,E,v),L.append(f),p.append(L),document.body.append(p),m&&u&&((e,a,s)=>{switch(a){case"show":e.addEventListener("show.bs.modal",(()=>s()));break;case"shown":e.addEventListener("shown.bs.modal",(()=>s()));break;case"hide":e.addEventListener("hide.bs.modal",(()=>s()));break;case"hidden":e.addEventListener("hidden.bs.modal",(()=>s()));break;case"hidePrevented":e.addEventListener("hidePrevented.bs.modal",(()=>s()))}})(p,m,u);return(i?new e(p,i):new e(p)).show(),(a=>{a.addEventListener("hidden.bs.modal",(()=>{e.getInstance(a).dispose(),setTimeout((()=>{a.remove()}),2e3)}))})(p),b};export{t as bModal}; //# sourceMappingURL=bModal.esm.min.js.map