/* ======================== bootstrap-notify.min.js ===================== */ !(function (t) {
"function" == typeof define && define.amd ?
define(["jquery"], t) :
t("object" == typeof exports ? require("jquery") : jQuery);
})(function (t) {
function s(s) {
var e = !1;
return (
t('[data-notify="container"]').each(function (i, n) {
var a = t(n),
o = a.find('[data-notify="title"]').text().trim(),
r = a.find('[data-notify="message"]').html().trim(),
l =
o ===
t("<div>" + s.settings.content.title + "</div>")
.html()
.trim(),
d =
r ===
t("<div>" + s.settings.content.message + "</div>")
.html()
.trim(),
g = a.hasClass("alert-" + s.settings.type);
return l && d && g && (e = !0), !e;
}),
e
);
}
function e(e, n, a) {
var o = {
content: {
message: "object" == typeof n ? n.message : n,
title: n.title ? n.title : "",
icon: n.icon ? n.icon : "",
url: n.url ? n.url : "#",
target: n.target ? n.target : "-",
},
};
(a = t.extend(!0, {}, o, a)),
(this.settings = t.extend(!0, {}, i, a)),
(this._defaults = i),
"-" === this.settings.content.target &&
(this.settings.content.target = this.settings.url_target),
(this.animations = {
start: "webkitAnimationStart oanimationstart MSAnimationStart animationstart",
end: "webkitAnimationEnd oanimationend MSAnimationEnd animationend",
}),
"number" == typeof this.settings.offset &&
(this.settings.offset = {
x: this.settings.offset,
y: this.settings.offset,
}),
(this.settings.allow_duplicates ||
(!this.settings.allow_duplicates && !s(this))) &&
this.init();
}
var i = {
element: "body",
position: null,
type: "info",
allow_dismiss: !0,
allow_duplicates: !0,
newest_on_top: !1,
showProgressbar: !1,
placement: {
from: "top",
align: "right"
},
offset: 20,
spacing: 10,
z_index: 1031,
delay: 5e3,
timer: 1e3,
url_target: "_blank",
mouse_over: null,
animate: {
enter: "animated fadeInDown",
exit: "animated fadeOutUp"
},
onShow: null,
onShown: null,
onClose: null,
onClosed: null,
icon_type: "class",
template: '<div data-notify="container" class="col-xs-11 col-sm-4 alert alert-{0}" role="alert"><button type="button" aria-hidden="true" class="btn-close" data-notify="dismiss"></button><span data-notify="icon"></span> <span data-notify="title">{1}</span> <span data-notify="message">{2}</span><div class="progress" data-notify="progressbar"><div class="progress-bar progress-bar-{0}" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"></div></div><a href="{3}" target="{4}" data-notify="url"></a></div>',
};
(String.format = function () {
for (var t = arguments[0], s = 1; s < arguments.length; s++)
t = t.replace(RegExp("\\{" + (s - 1) + "\\}", "gm"), arguments[s]);
return t;
}),
t.extend(e.prototype, {
init: function () {
var t = this;
this.buildNotify(),
this.settings.content.icon && this.setIcon(),
"#" != this.settings.content.url && this.styleURL(),
this.styleDismiss(),
this.placement(),
this.bind(),
(this.notify = {
$ele: this.$ele,
update: function (s, e) {
var i = {};
"string" == typeof s ? (i[s] = e) : (i = s);
for (var n in i)
switch (n) {
case "type":
this.$ele.removeClass("alert-" + t.settings.type),
this.$ele
.find('[data-notify="progressbar"] > .progress-bar')
.removeClass("progress-bar-" + t.settings.type),
(t.settings.type = i[n]),
this.$ele
.addClass("alert-" + i[n])
.find('[data-notify="progressbar"] > .progress-bar')
.addClass("progress-bar-" + i[n]);
break;
case "icon":
var a = this.$ele.find('[data-notify="icon"]');
"class" === t.settings.icon_type.toLowerCase() ?
a.removeClass(t.settings.content.icon).addClass(i[n]) :
(a.is("img") || a.find("img"), a.attr("src", i[n]));
break;
case "progress":
var o = t.settings.delay - t.settings.delay * (i[n] / 100);
this.$ele.data("notify-delay", o),
this.$ele
.find('[data-notify="progressbar"] > div')
.attr("aria-valuenow", i[n])
.css("width", i[n] + "%");
break;
case "url":
this.$ele.find('[data-notify="url"]').attr("href", i[n]);
break;
case "target":
this.$ele.find('[data-notify="url"]').attr("target", i[n]);
break;
default:
this.$ele.find('[data-notify="' + n + '"]').html(i[n]);
}
var r =
this.$ele.outerHeight() +
parseInt(t.settings.spacing) +
parseInt(t.settings.offset.y);
t.reposition(r);
},
close: function () {
t.close();
},
});
},
buildNotify: function () {
var s = this.settings.content;
(this.$ele = t(
String.format(
this.settings.template,
this.settings.type,
s.title,
s.message,
s.url,
s.target
)
)),
this.$ele.attr(
"data-notify-position",
this.settings.placement.from + "-" + this.settings.placement.align
),
this.settings.allow_dismiss ||
this.$ele.find('[data-notify="dismiss"]').css("display", "none"),
((this.settings.delay <= 0 && !this.settings.showProgressbar) ||
!this.settings.showProgressbar) &&
this.$ele.find('[data-notify="progressbar"]').remove();
},
setIcon: function () {
"class" === this.settings.icon_type.toLowerCase() ?
this.$ele
.find('[data-notify="icon"]')
.addClass(this.settings.content.icon) :
this.$ele.find('[data-notify="icon"]').is("img") ?
this.$ele
.find('[data-notify="icon"]')
.attr("src", this.settings.content.icon) :
this.$ele
.find('[data-notify="icon"]')
.append(
'<img src="' +
this.settings.content.icon +
'" alt="Notify Icon" />'
);
},
styleDismiss: function () {
this.$ele
.find('[data-notify="dismiss"]')
.css({
position: "absolute",
right: "10px",
top: "5px",
zIndex: this.settings.z_index + 2,
});
},
styleURL: function () {
this.$ele
.find('[data-notify="url"]')
.css({
backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)",
height: "100%",
left: 0,
position: "absolute",
top: 0,
width: "100%",
zIndex: this.settings.z_index + 1,
});
},
placement: function () {
var s = this,
e = this.settings.offset.y,
i = {
display: "inline-block",
margin: "0px auto",
position: this.settings.position ?
this.settings.position : "body" === this.settings.element ?
"fixed" : "absolute",
transition: "all .5s ease-in-out",
zIndex: this.settings.z_index,
},
n = !1,
a = this.settings;
switch (
(t(
'[data-notify-position="' +
this.settings.placement.from +
"-" +
this.settings.placement.align +
'"]:not([data-closing="true"])'
).each(function () {
e = Math.max(
e,
parseInt(t(this).css(a.placement.from)) +
parseInt(t(this).outerHeight()) +
parseInt(a.spacing)
);
}),
this.settings.newest_on_top === !0 && (e = this.settings.offset.y),
(i[this.settings.placement.from] = e + "px"),
this.settings.placement.align)
) {
case "left":
case "right":
i[this.settings.placement.align] = this.settings.offset.x + "px";
break;
case "center":
(i.left = 0), (i.right = 0);
}
this.$ele.css(i).addClass(this.settings.animate.enter),
t.each(Array("webkit-", "moz-", "o-", "ms-", ""), function (t, e) {
s.$ele[0].style[e + "AnimationIterationCount"] = 1;
}),
t(this.settings.element).append(this.$ele),
this.settings.newest_on_top === !0 &&
((e =
parseInt(e) +
parseInt(this.settings.spacing) +
this.$ele.outerHeight()),
this.reposition(e)),
t.isFunction(s.settings.onShow) && s.settings.onShow.call(this.$ele),
this.$ele
.one(this.animations.start, function () {
n = !0;
})
.one(this.animations.end, function () {
s.$ele.removeClass(s.settings.animate.enter),
t.isFunction(s.settings.onShown) &&
s.settings.onShown.call(this);
}),
setTimeout(function () {
n ||
(t.isFunction(s.settings.onShown) &&
s.settings.onShown.call(this));
}, 600);
},
bind: function () {
var s = this;
if (
(this.$ele.find('[data-notify="dismiss"]').on("click", function () {
s.close();
}),
this.$ele
.mouseover(function () {
t(this).data("data-hover", "true");
})
.mouseout(function () {
t(this).data("data-hover", "false");
}),
this.$ele.data("data-hover", "false"),
this.settings.delay > 0)
) {
s.$ele.data("notify-delay", s.settings.delay);
var e = setInterval(function () {
var t = parseInt(s.$ele.data("notify-delay")) - s.settings.timer;
if (
("false" === s.$ele.data("data-hover") &&
"pause" === s.settings.mouse_over) ||
"pause" != s.settings.mouse_over
) {
var i = ((s.settings.delay - t) / s.settings.delay) * 100;
s.$ele.data("notify-delay", t),
s.$ele
.find('[data-notify="progressbar"] > div')
.attr("aria-valuenow", i)
.css("width", i + "%");
}
t <= -s.settings.timer && (clearInterval(e), s.close());
}, s.settings.timer);
}
},
close: function () {
var s = this,
e = parseInt(this.$ele.css(this.settings.placement.from)),
i = !1;
this.$ele
.attr("data-closing", "true")
.addClass(this.settings.animate.exit),
s.reposition(e),
t.isFunction(s.settings.onClose) &&
s.settings.onClose.call(this.$ele),
this.$ele
.one(this.animations.start, function () {
i = !0;
})
.one(this.animations.end, function () {
t(this).remove(),
t.isFunction(s.settings.onClosed) &&
s.settings.onClosed.call(this);
}),
setTimeout(function () {
i ||
(s.$ele.remove(),
s.settings.onClosed && s.settings.onClosed(s.$ele));
}, 600);
},
reposition: function (s) {
var e = this,
i =
'[data-notify-position="' +
this.settings.placement.from +
"-" +
this.settings.placement.align +
'"]:not([data-closing="true"])',
n = this.$ele.nextAll(i);
this.settings.newest_on_top === !0 && (n = this.$ele.prevAll(i)),
n.each(function () {
t(this).css(e.settings.placement.from, s),
(s =
parseInt(s) +
parseInt(e.settings.spacing) +
t(this).outerHeight());
});
},
}),
(t.notify = function (t, s) {
var i = new e(this, t, s);
return i.notify;
}),
(t.notifyDefaults = function (s) {
return (i = t.extend(!0, {}, i, s));
}),
(t.notifyClose = function (s) {
"warning" === s && (s = "danger"),
"undefined" == typeof s || "all" === s ?
t("[data-notify]").find('[data-notify="dismiss"]').trigger("click") :
"success" === s || "info" === s || "warning" === s || "danger" === s ?
t(".alert-" + s + "[data-notify]")
.find('[data-notify="dismiss"]')
.trigger("click") :
s ?
t(s + "[data-notify]")
.find('[data-notify="dismiss"]')
.trigger("click") :
t('[data-notify-position="' + s + '"]')
.find('[data-notify="dismiss"]')
.trigger("click");
}),
(t.notifyCloseExcept = function (s) {
"warning" === s && (s = "danger"),
"success" === s || "info" === s || "warning" === s || "danger" === s ?
t("[data-notify]")
.not(".alert-" + s)
.find('[data-notify="dismiss"]')
.trigger("click") :
t("[data-notify]")
.not(s)
.find('[data-notify="dismiss"]')
.trigger("click");
});
}); |