/** * BSToast4 * @version v0.1.0.012 (2023/08/15 0056) */ var BSToast4 = { Create: async function (options) { var a = this; a.Options = Object.assign(a.DefaultOptions, options); a.pfx = "bstoa4_"; a.id = Math.floor(Math.random() * 100000) + 10000; a.body = document.getElementsByTagName("body")[0]; a.addBackdrop(); a.addToast(a.Options); }, DefaultOptions: { Icon: null, Title: "", Time: "", Message: "", Animation: true, AutoHide: true, Delay: 2000, Position: "top:0; right:0; margin:20px;" }, Clear: function () { this.body.querySelectorAll(".toast").forEach(function(e) { e.parentNode.removeChild(e); }); this.removeBackdrop(); }, Close: function (id) { var a = this; // Close this toast a.body.querySelectorAll("#" + a.pfx + id + ".toast").forEach(function(e) { if (typeof(e.parentNode) == "undefined") { return; } e.parentNode.removeChild(e); }); // Clean-up all closed toasts a.body.querySelectorAll(".toast.hide").forEach(function(e) { if (typeof(e.parentNode) == "undefined") { return; } e.parentNode.removeChild(e); }); if (a.body.querySelectorAll(".toast").length <= 0) { let backdrop = a.body.querySelectorAll(".toast-backdrop")[0]; if (typeof(backdrop) == "undefined") { return; } if (typeof(backdrop.parentNode) == "undefined") { return; } backdrop.parentNode.removeChild(backdrop); } }, addBackdrop: async function () { let a = this; // don't allow duplicates if (a.body.querySelectorAll(".toast-backdrop").length > 0) { return; } a.appendHtml(a.body, '
'); }, addToast: function (options) { var a = this; if (a.body.querySelectorAll(".toast-backdrop-body").length <= 0) { return; } let html = ""; html += ''; a.appendHtml(a.body.querySelectorAll(".toast-backdrop-body")[0], html); jQuery("#" + a.pfx + a.id + ".toast").toast({ animation: options.Animation, autohide: options.AutoHide, delay: options.Delay }).toast("show"); jQuery("#" + a.pfx + a.id + ".toast").on('hidden.bs.toast', function () { a.Close(a.id); }) }, appendHtml: function (el, html) { let node = document.createElement('template'); node.innerHTML = html.trim(); node = node.content.firstChild; el.appendChild(node); }, isNullOrWhitespace: function(e) { if (typeof (e) == "undefined") { return true; } if (e == null) { return true; } if (e == false) { return true; } return (e.trim().length <= 0); }, removeBackdrop: function () { if (this.body.querySelectorAll(".toast-backdrop").length <= 0) { return; } let backdrop = this.body.querySelectorAll(".toast-backdrop")[0]; backdrop.parentNode.removeChild(backdrop); } };