{"version":3,"sources":["Shared/Static/js/lib/bootstrap-notify.js"],"names":["factory","define","amd","exports","require","jQuery","$","defaults","element","position","type","allow_dismiss","allow_duplicates","newest_on_top","showProgressbar","placement","from","align","offset","spacing","z_index","delay","timer","url_target","mouse_over","animate","enter","exit","onShow","onShown","onClose","onClosed","onClick","icon_type","template","Notify","content","options","contentObj","message","title","icon","url","target","extend","this","settings","_defaults","animations","start","end","x","y","notification","isDupe","each","i","el","$el","find","html","trim","isSameTitle","isSameMsg","isSameType","hasClass","isDuplicateNotification","init","String","format","str","arguments","length","replace","RegExp","prototype","self","buildNotify","setIcon","styleURL","styleDismiss","bind","notify","$ele","update","command","commands","cmd","removeClass","addClass","$icon","toLowerCase","is","attr","newDelay","data","css","posX","outerHeight","parseInt","reposition","close","remove","append","right","top","zIndex","backgroundImage","height","left","width","offsetAmt","display","margin","transition","hasAnimation","Math","max","Array","index","prefix","style","isFunction","call","one","setTimeout","on","event","mouseover","mouseout","setInterval","percent","clearInterval","notifies","$elements","nextAll","prevAll","notifyDefaults","notifyClose","selector","trigger","notifyCloseExcept","not"],"mappings":"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","file":"bootstrap-notify.js","sourcesContent":["/*\r\n* Project: Bootstrap Notify = v3.1.5\r\n* Description: Turns standard Bootstrap alerts into \"Growl-like\" notifications.\r\n* Author: Mouse0270 aka Robert McIntosh\r\n* License: MIT License\r\n* Website: https://github.com/mouse0270/bootstrap-growl\r\n*/\r\n\r\n/* global define:false, require: false, jQuery:false */\r\n\r\n(function (factory) {\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\t// AMD. Register as an anonymous module.\r\n\t\tdefine(['jquery'], factory);\r\n\t} else if (typeof exports === 'object') {\r\n\t\t// Node/CommonJS\r\n\t\tfactory(require('jquery'));\r\n\t} else {\r\n\t\t// Browser globals\r\n\t\tfactory(jQuery);\r\n\t}\r\n}(function ($) {\r\n\t// Create the defaults once\r\n\tvar defaults = {\r\n\t\telement: 'body',\r\n\t\tposition: null,\r\n\t\ttype: \"info\",\r\n\t\tallow_dismiss: true,\r\n\t\tallow_duplicates: true,\r\n\t\tnewest_on_top: false,\r\n\t\tshowProgressbar: false,\r\n\t\tplacement: {\r\n\t\t\tfrom: \"top\",\r\n\t\t\talign: \"right\"\r\n\t\t},\r\n\t\toffset: 20,\r\n\t\tspacing: 10,\r\n\t\tz_index: 1000000,\r\n\t\tdelay: 5000,\r\n\t\ttimer: 1000,\r\n\t\turl_target: '_blank',\r\n\t\tmouse_over: null,\r\n\t\tanimate: {\r\n\t\t\tenter: 'animated fadeInDown',\r\n\t\t\texit: 'animated fadeOutUp'\r\n\t\t},\r\n\t\tonShow: null,\r\n\t\tonShown: null,\r\n\t\tonClose: null,\r\n\t\tonClosed: null,\r\n onClick: null,\r\n\t\ticon_type: 'class',\r\n\t\ttemplate: '
{1} {2}
'\r\n\t};\r\n\r\n\tString.format = function () {\r\n\t\tvar str = arguments[0];\r\n\t\tfor (var i = 1; i < arguments.length; i++) {\r\n\t\t\tstr = str.replace(RegExp(\"\\\\{\" + (i - 1) + \"\\\\}\", \"gm\"), arguments[i]);\r\n\t\t}\r\n\t\treturn str;\r\n\t};\r\n\r\n\tfunction isDuplicateNotification(notification) {\r\n\t\tvar isDupe = false;\r\n\r\n\t\t$('[data-notify=\"container\"]').each(function (i, el) {\r\n\t\t\tvar $el = $(el);\r\n\t\t\tvar title = $el.find('[data-notify=\"title\"]').html().trim();\r\n\t\t\tvar message = $el.find('[data-notify=\"message\"]').html().trim();\r\n\r\n\t\t\t// The input string might be different than the actual parsed HTML string!\r\n\t\t\t// (
vs
for example)\r\n\t\t\t// So we have to force-parse this as HTML here!\r\n\t\t\tvar isSameTitle = title === $(\"
\" + notification.settings.content.title + \"
\").html().trim();\r\n\t\t\tvar isSameMsg = message === $(\"
\" + notification.settings.content.message + \"
\").html().trim();\r\n\t\t\tvar isSameType = $el.hasClass('alert-' + notification.settings.type);\r\n\r\n\t\t\tif (isSameTitle && isSameMsg && isSameType) {\r\n\t\t\t\t//we found the dupe. Set the var and stop checking.\r\n\t\t\t\tisDupe = true;\r\n\t\t\t}\r\n\t\t\treturn !isDupe;\r\n\t\t});\r\n\r\n\t\treturn isDupe;\r\n\t}\r\n\r\n\tfunction Notify(element, content, options) {\r\n\t\t// Setup Content of Notify\r\n\t\tvar contentObj = {\r\n\t\t\tcontent: {\r\n\t\t\t\tmessage: typeof content === 'object' ? content.message : content,\r\n\t\t\t\ttitle: content.title ? content.title : '',\r\n\t\t\t\ticon: content.icon ? content.icon : '',\r\n\t\t\t\turl: content.url ? content.url : '#',\r\n\t\t\t\ttarget: content.target ? content.target : '-'\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\toptions = $.extend(true, {}, contentObj, options);\r\n\t\tthis.settings = $.extend(true, {}, defaults, options);\r\n\t\tthis._defaults = defaults;\r\n\t\tif (this.settings.content.target === \"-\") {\r\n\t\t\tthis.settings.content.target = this.settings.url_target;\r\n\t\t}\r\n\t\tthis.animations = {\r\n\t\t\tstart: 'webkitAnimationStart oanimationstart MSAnimationStart animationstart',\r\n\t\t\tend: 'webkitAnimationEnd oanimationend MSAnimationEnd animationend'\r\n\t\t};\r\n\r\n\t\tif (typeof this.settings.offset === 'number') {\r\n\t\t\tthis.settings.offset = {\r\n\t\t\t\tx: this.settings.offset,\r\n\t\t\t\ty: this.settings.offset\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t//if duplicate messages are not allowed, then only continue if this new message is not a duplicate of one that it already showing\r\n\t\tif (this.settings.allow_duplicates || (!this.settings.allow_duplicates && !isDuplicateNotification(this))) {\r\n\t\t\tthis.init();\r\n\t\t}\r\n\t}\r\n\r\n\t$.extend(Notify.prototype, {\r\n\t\tinit: function () {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tthis.buildNotify();\r\n\t\t\tif (this.settings.content.icon) {\r\n\t\t\t\tthis.setIcon();\r\n\t\t\t}\r\n\t\t\tif (this.settings.content.url != \"#\") {\r\n\t\t\t\tthis.styleURL();\r\n\t\t\t}\r\n\t\t\tthis.styleDismiss();\r\n\t\t\tthis.placement();\r\n\t\t\tthis.bind();\r\n\r\n\t\t\tthis.notify = {\r\n\t\t\t\t$ele: this.$ele,\r\n\t\t\t\tupdate: function (command, update) {\r\n\t\t\t\t\tvar commands = {};\r\n\t\t\t\t\tif (typeof command === \"string\") {\r\n\t\t\t\t\t\tcommands[command] = update;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tcommands = command;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (var cmd in commands) {\r\n\t\t\t\t\t\tswitch (cmd) {\r\n\t\t\t\t\t\t\tcase \"type\":\r\n\t\t\t\t\t\t\t\tthis.$ele.removeClass('alert-' + self.settings.type);\r\n\t\t\t\t\t\t\t\tthis.$ele.find('[data-notify=\"progressbar\"] > .progress-bar').removeClass('progress-bar-' + self.settings.type);\r\n\t\t\t\t\t\t\t\tself.settings.type = commands[cmd];\r\n\t\t\t\t\t\t\t\tthis.$ele.addClass('alert-' + commands[cmd]).find('[data-notify=\"progressbar\"] > .progress-bar').addClass('progress-bar-' + commands[cmd]);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"icon\":\r\n\t\t\t\t\t\t\t\tvar $icon = this.$ele.find('[data-notify=\"icon\"]');\r\n\t\t\t\t\t\t\t\tif (self.settings.icon_type.toLowerCase() === 'class') {\r\n\t\t\t\t\t\t\t\t\t$icon.removeClass(self.settings.content.icon).addClass(commands[cmd]);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tif (!$icon.is('img')) {\r\n\t\t\t\t\t\t\t\t\t\t$icon.find('img');\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t$icon.attr('src', commands[cmd]);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tself.settings.content.icon = commands[command];\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"progress\":\r\n\t\t\t\t\t\t\t\tvar newDelay = self.settings.delay - (self.settings.delay * (commands[cmd] / 100));\r\n\t\t\t\t\t\t\t\tthis.$ele.data('notify-delay', newDelay);\r\n\t\t\t\t\t\t\t\tthis.$ele.find('[data-notify=\"progressbar\"] > div').attr('aria-valuenow', commands[cmd]).css('width', commands[cmd] + '%');\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"url\":\r\n\t\t\t\t\t\t\t\tthis.$ele.find('[data-notify=\"url\"]').attr('href', commands[cmd]);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"target\":\r\n\t\t\t\t\t\t\t\tthis.$ele.find('[data-notify=\"url\"]').attr('target', commands[cmd]);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\tthis.$ele.find('[data-notify=\"' + cmd + '\"]').html(commands[cmd]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar posX = this.$ele.outerHeight() + parseInt(self.settings.spacing) + parseInt(self.settings.offset.y);\r\n\t\t\t\t\tself.reposition(posX);\r\n\t\t\t\t},\r\n\t\t\t\tclose: function () {\r\n\t\t\t\t\tself.close();\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t},\r\n\t\tbuildNotify: function () {\r\n\t\t\tvar content = this.settings.content;\r\n\t\t\tthis.$ele = $(String.format(this.settings.template, this.settings.type, content.title, content.message, content.url, content.target));\r\n\t\t\tthis.$ele.attr('data-notify-position', this.settings.placement.from + '-' + this.settings.placement.align);\r\n\t\t\tif (!this.settings.allow_dismiss) {\r\n\t\t\t\tthis.$ele.find('[data-notify=\"dismiss\"]').css('display', 'none');\r\n\t\t\t}\r\n\t\t\tif ((this.settings.delay <= 0 && !this.settings.showProgressbar) || !this.settings.showProgressbar) {\r\n\t\t\t\tthis.$ele.find('[data-notify=\"progressbar\"]').remove();\r\n\t\t\t}\r\n\t\t},\r\n\t\tsetIcon: function () {\r\n\t\t\tif (this.settings.icon_type.toLowerCase() === 'class') {\r\n\t\t\t\tthis.$ele.find('[data-notify=\"icon\"]').addClass(this.settings.content.icon);\r\n\t\t\t} else {\r\n\t\t\t\tif (this.$ele.find('[data-notify=\"icon\"]').is('img')) {\r\n\t\t\t\t\tthis.$ele.find('[data-notify=\"icon\"]').attr('src', this.settings.content.icon);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.$ele.find('[data-notify=\"icon\"]').append('\"Notify');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tstyleDismiss: function () {\r\n\t\t\tthis.$ele.find('[data-notify=\"dismiss\"]').css({\r\n\t\t\t\tposition: 'absolute',\r\n\t\t\t\tright: '10px',\r\n\t\t\t\ttop: '5px',\r\n\t\t\t\tzIndex: this.settings.z_index + 2\r\n\t\t\t});\r\n\t\t},\r\n\t\tstyleURL: function () {\r\n\t\t\tthis.$ele.find('[data-notify=\"url\"]').css({\r\n\t\t\t\tbackgroundImage: 'url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)',\r\n\t\t\t\theight: '100%',\r\n\t\t\t\tleft: 0,\r\n\t\t\t\tposition: 'absolute',\r\n\t\t\t\ttop: 0,\r\n\t\t\t\twidth: '100%',\r\n\t\t\t\tzIndex: this.settings.z_index + 1\r\n\t\t\t});\r\n\t\t},\r\n\t\tplacement: function () {\r\n\t\t\tvar self = this,\r\n\t\t\t\toffsetAmt = this.settings.offset.y,\r\n\t\t\t\tcss = {\r\n\t\t\t\t\tdisplay: 'inline-block',\r\n\t\t\t\t\tmargin: '0px auto',\r\n\t\t\t\t\tposition: this.settings.position ? this.settings.position : (this.settings.element === 'body' ? 'fixed' : 'absolute'),\r\n\t\t\t\t\ttransition: 'all .5s ease-in-out',\r\n\t\t\t\t\tzIndex: this.settings.z_index\r\n\t\t\t\t},\r\n\t\t\t\thasAnimation = false,\r\n\t\t\t\tsettings = this.settings;\r\n\r\n\t\t\t$('[data-notify-position=\"' + this.settings.placement.from + '-' + this.settings.placement.align + '\"]:not([data-closing=\"true\"])').each(function () {\r\n\t\t\t\toffsetAmt = Math.max(offsetAmt, parseInt($(this).css(settings.placement.from)) + parseInt($(this).outerHeight()) + parseInt(settings.spacing));\r\n\t\t\t});\r\n\t\t\tif (this.settings.newest_on_top === true) {\r\n\t\t\t\toffsetAmt = this.settings.offset.y;\r\n\t\t\t}\r\n\t\t\tcss[this.settings.placement.from] = offsetAmt + 'px';\r\n\r\n\t\t\tswitch (this.settings.placement.align) {\r\n\t\t\t\tcase \"left\":\r\n\t\t\t\tcase \"right\":\r\n\t\t\t\t\tcss[this.settings.placement.align] = this.settings.offset.x + 'px';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"center\":\r\n\t\t\t\t\tcss.left = 0;\r\n\t\t\t\t\tcss.right = 0;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tthis.$ele.css(css).addClass(this.settings.animate.enter);\r\n\t\t\t$.each(Array('webkit-', 'moz-', 'o-', 'ms-', ''), function (index, prefix) {\r\n\t\t\t\tself.$ele[0].style[prefix + 'AnimationIterationCount'] = 1;\r\n\t\t\t});\r\n\r\n\t\t\t$(this.settings.element).append(this.$ele);\r\n\r\n\t\t\tif (this.settings.newest_on_top === true) {\r\n\t\t\t\toffsetAmt = (parseInt(offsetAmt) + parseInt(this.settings.spacing)) + this.$ele.outerHeight();\r\n\t\t\t\tthis.reposition(offsetAmt);\r\n\t\t\t}\r\n\r\n\t\t\tif ($.isFunction(self.settings.onShow)) {\r\n\t\t\t\tself.settings.onShow.call(this.$ele);\r\n\t\t\t}\r\n\r\n\t\t\tthis.$ele.one(this.animations.start, function () {\r\n\t\t\t\thasAnimation = true;\r\n\t\t\t}).one(this.animations.end, function () {\r\n\t\t\t\tself.$ele.removeClass(self.settings.animate.enter);\r\n\t\t\t\tif ($.isFunction(self.settings.onShown)) {\r\n\t\t\t\t\tself.settings.onShown.call(this);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tif (!hasAnimation) {\r\n\t\t\t\t\tif ($.isFunction(self.settings.onShown)) {\r\n\t\t\t\t\t\tself.settings.onShown.call(this);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, 600);\r\n\t\t},\r\n\t\tbind: function () {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tthis.$ele.find('[data-notify=\"dismiss\"]').on('click', function () {\r\n\t\t\t\tself.close();\r\n\t\t\t});\r\n\r\n\t\t\tif ($.isFunction(self.settings.onClick)) {\r\n\t\t\t this.$ele.on('click', function (event) {\r\n\t\t\t if (event.target != self.$ele.find('[data-notify=\"dismiss\"]')[0]) {\r\n\t\t\t self.settings.onClick.call(this, event);\r\n\t\t\t }\r\n\t\t\t });\r\n\t\t\t}\r\n\r\n\t\t\tthis.$ele.mouseover(function () {\r\n\t\t\t\t$(this).data('data-hover', \"true\");\r\n\t\t\t}).mouseout(function () {\r\n\t\t\t\t$(this).data('data-hover', \"false\");\r\n\t\t\t});\r\n\t\t\tthis.$ele.data('data-hover', \"false\");\r\n\r\n\t\t\tif (this.settings.delay > 0) {\r\n\t\t\t\tself.$ele.data('notify-delay', self.settings.delay);\r\n\t\t\t\tvar timer = setInterval(function () {\r\n\t\t\t\t\tvar delay = parseInt(self.$ele.data('notify-delay')) - self.settings.timer;\r\n\t\t\t\t\tif ((self.$ele.data('data-hover') === 'false' && self.settings.mouse_over === \"pause\") || self.settings.mouse_over != \"pause\") {\r\n\t\t\t\t\t\tvar percent = ((self.settings.delay - delay) / self.settings.delay) * 100;\r\n\t\t\t\t\t\tself.$ele.data('notify-delay', delay);\r\n\t\t\t\t\t\tself.$ele.find('[data-notify=\"progressbar\"] > div').attr('aria-valuenow', percent).css('width', percent + '%');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (delay <= -(self.settings.timer)) {\r\n\t\t\t\t\t\tclearInterval(timer);\r\n\t\t\t\t\t\tself.close();\r\n\t\t\t\t\t}\r\n\t\t\t\t}, self.settings.timer);\r\n\t\t\t}\r\n\t\t},\r\n\t\tclose: function () {\r\n\t\t\tvar self = this,\r\n\t\t\t\tposX = parseInt(this.$ele.css(this.settings.placement.from)),\r\n\t\t\t\thasAnimation = false;\r\n\r\n\t\t\tthis.$ele.attr('data-closing', 'true').addClass(this.settings.animate.exit);\r\n\t\t\tself.reposition(posX);\r\n\r\n\t\t\tif ($.isFunction(self.settings.onClose)) {\r\n\t\t\t\tself.settings.onClose.call(this.$ele);\r\n\t\t\t}\r\n\r\n\t\t\tthis.$ele.one(this.animations.start, function () {\r\n\t\t\t\thasAnimation = true;\r\n\t\t\t}).one(this.animations.end, function () {\r\n\t\t\t\t$(this).remove();\r\n\t\t\t\tif ($.isFunction(self.settings.onClosed)) {\r\n\t\t\t\t\tself.settings.onClosed.call(this);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tif (!hasAnimation) {\r\n\t\t\t\t\tself.$ele.remove();\r\n\t\t\t\t\tif (self.settings.onClosed) {\r\n\t\t\t\t\t\tself.settings.onClosed(self.$ele);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, 600);\r\n\t\t},\r\n\t\treposition: function (posX) {\r\n\t\t\tvar self = this,\r\n\t\t\t\tnotifies = '[data-notify-position=\"' + this.settings.placement.from + '-' + this.settings.placement.align + '\"]:not([data-closing=\"true\"])',\r\n\t\t\t\t$elements = this.$ele.nextAll(notifies);\r\n\t\t\tif (this.settings.newest_on_top === true) {\r\n\t\t\t\t$elements = this.$ele.prevAll(notifies);\r\n\t\t\t}\r\n\t\t\t$elements.each(function () {\r\n\t\t\t\t$(this).css(self.settings.placement.from, posX);\r\n\t\t\t\tposX = (parseInt(posX) + parseInt(self.settings.spacing)) + $(this).outerHeight();\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\r\n\t$.notify = function (content, options) {\r\n\t\tvar plugin = new Notify(this, content, options);\r\n\t\treturn plugin.notify;\r\n\t};\r\n\t$.notifyDefaults = function (options) {\r\n\t\tdefaults = $.extend(true, {}, defaults, options);\r\n\t\treturn defaults;\r\n\t};\r\n\r\n\t$.notifyClose = function (selector) {\r\n\r\n\t\tif (typeof selector === \"undefined\" || selector === \"all\") {\r\n\t\t\t$('[data-notify]').find('[data-notify=\"dismiss\"]').trigger('click');\r\n\t\t}else if(selector === 'success' || selector === 'info' || selector === 'warning' || selector === 'danger'){\r\n\t\t\t$('.alert-' + selector + '[data-notify]').find('[data-notify=\"dismiss\"]').trigger('click');\r\n\t\t} else if(selector){\r\n\t\t\t$(selector + '[data-notify]').find('[data-notify=\"dismiss\"]').trigger('click');\r\n\t\t}\r\n\t\telse {\r\n\t\t\t$('[data-notify-position=\"' + selector + '\"]').find('[data-notify=\"dismiss\"]').trigger('click');\r\n\t\t}\r\n\t};\r\n\r\n\t$.notifyCloseExcept = function (selector) {\r\n\r\n\t\tif(selector === 'success' || selector === 'info' || selector === 'warning' || selector === 'danger'){\r\n\t\t\t$('[data-notify]').not('.alert-' + selector).find('[data-notify=\"dismiss\"]').trigger('click');\r\n\t\t} else{\r\n\t\t\t$('[data-notify]').not(selector).find('[data-notify=\"dismiss\"]').trigger('click');\r\n\t\t}\r\n\t};\r\n\r\n\r\n}));\r\n\r\n\r\n"]}