b-components-js
Version:
Generate Bootstrap components through JavaScript
8 lines (7 loc) • 1.84 kB
JavaScript
/*!
* b-components-js v0.0.2
* https://github.com/ZhangChengLin/b-components
* Copyright (c) 2020 - 2022 MIT
*/
import{Offcanvas as e}from"bootstrap";const n=e=>{if(null===e||(e=>"string"==typeof e&&""===e)(e))return"";const n=document.createElement("div"),t=document.createElement("h5");return n.className="offcanvas-header",t.className="offcanvas-title",t.id="offcanvasTitleLabel",e instanceof Function?t.append(e()):e instanceof HTMLElement?t.append(e):t.innerHTML=e,n.append(t,((e,n=!1)=>{const t=document.createElement("button");return t.className=n?"btn-close btn-close-white":"btn-close",t.type="button",t.dataset.bsDismiss=e,t.ariaLabel="Close",t})("offcanvas")),n},t=(t,a,s,o,c,r)=>{const d="offcanvasId_"+Date.now().toString(),i=((e,n)=>{const t=document.createElement("div");switch(e=e??"start"){case"start":case"top":case"end":case"bottom":break;default:throw"Placement error"}return t.className=`offcanvas offcanvas-${e}`,t.id=n,t.tabIndex=-1,t.role="dialog",t.setAttribute("aria-labelledby","offcanvasTitleLabel"),t})(s,d),f=n(t),l=(e=>{const n=document.createElement("div");return n.className="offcanvas-body",e instanceof Function?n.append(e()):e instanceof HTMLElement?n.append(e):n.innerHTML=e,n})(a);i.append(f,l),document.body.append(i),c&&r&&((e,n,t)=>{switch(n){case"show":e.addEventListener("show.bs.offcanvas",(()=>t()));break;case"shown":e.addEventListener("shown.bs.offcanvas",(()=>t()));break;case"hide":e.addEventListener("hide.bs.offcanvas",(()=>t()));break;case"hidden":e.addEventListener("hidden.bs.offcanvas",(()=>t()));break;default:throw"eventsType error"}})(i,c,r);return(o?new e(i,o):new e(i)).show(),(n=>{n.addEventListener("hidden.bs.offcanvas",(()=>{e.getInstance(n).dispose(),setTimeout((()=>{n.remove()}),3e3)}))})(i),d};export{t as bOffcanvas};
//# sourceMappingURL=bOffcanvas.esm.min.js.map