-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtoast-js.min.js
1 lines (1 loc) · 2.19 KB
/
toast-js.min.js
1
!function(t){function e(t){var e={},o="",n="";if(t=t||{},t.unique&&t.toastId){var s=document.getElementById("toast-container");if(!s)return;for(var i=[],c=s.children,l=0;l<c.length;l++)c[l].getAttribute("data-toastid")===t.toastId&&i.push(c[l]);if(0!==i.length)return}e.message=t.message?t.message:"Toast",e.toastClass=t.toastClass?t.toastClass:"",e.closeButton="boolean"==typeof t.closeButton?t.closeButton:!0,e.autoHide="boolean"==typeof t.autoHide?t.autoHide:!0,e.autoHideTime=t.autoHideTime?t.autoHideTime:3e3,t.action&&(e.action={},e.action.actionText=t.action.actionText?t.action.actionText:"",e.action.actionClass=t.action.actionClass?t.action.actionClass:""),o+='<div class="toast '+e.toastClass+'"',t.unique&&t.toastId&&(o+='data-toastid = "'+t.toastId+'"'),e.autoHide&&(o+="autoHide = true"),o+=" >",o+='<span class="toast-message">'+e.message+"</span>",t.action&&(o+='<span class="toast-action '+e.action.actionClass+'">'+e.action.actionText+"</span>"),e.closeButton?(o+='<span class="toast-close" ',t.closeClickEvent&&"function"==typeof t.closeClickEvent&&(o+='onclick="closeFnEvent(this)" ',n="<script> var closeFnEvent = "+t.closeClickEvent+";</script>"),o+=">X</span>"):e.autoHide=!0,o+="</div>",o+=n;var r=document.getElementById("toast-container");if(r){var d=document.createElement("div");d.innerHTML=o,r.prepend(d.children[0])}else{var d=document.createElement("div");d.setAttribute("id","toast-container"),d.innerHTML=o,document.getElementsByTagName("body")[0].append(d)}e.autoHide&&setTimeout(function(){a()},e.autoHideTime)}function a(t){var e=t&&t.target?t.target:this,a=o.call(e,"div.toast"),n=((document.getElementById("toast-container")||{}).children||[]).length;if(1==n)document.getElementById("toast-container").remove();else if(a)a.remove();else{var s=(document.getElementById("toast-container")||{}).children;if(s)for(var i=s.length-1;i>=0;i--)if(s[i].matches("div.toast[autoHide = true]")){s[i].remove();break}}}function o(t){var e=this.parentNode;if(!e)return null;try{return e.matches(t)?e:o.call(e,t)}catch(a){return console.log(a),null}}document.addEventListener("click",function(t){t.target&&(t.target.matches("span.toast-close")||t.target.matches("span.toast-action"))&&a(t)}),t.createToast=e}(window);