vendor: 21,302 bytes, lines 1-615
1/* Notify.js - http://notifyjs.com/ Copyright (c) 2015 MIT */ 2(function (factory) { 3 // UMD start 4 // https://github.com/umdjs/umd/blob/master/jqueryPluginCommonjs.js 5 if (typeof define === 'function' && define.amd) { 6 // AMD. Register as an anonymous module. 7 define(['jquery'], factory); 8 } else if (typeof module === 'object' && module.exports) { 9 // Node/CommonJS 10 module.exports = function( root, jQuery ) { 11 if ( jQuery === undefined ) { 12 // require('jQuery') returns a factory that requires window to 13 // build a jQuery instance, we normalize how we use modules 14 // that require this pattern but the window provided is a noop 15 // if it's defined (how jquery works) 16 if ( typeof window !== 'undefined' ) { 17 jQuery = require('jquery'); 18 } 19 else { 20 jQuery = require('jquery')(root); 21 } 22 } 23 factory(jQuery); 24 return jQuery; 25 }; 26 } else { 27 // Browser globals 28 factory(jQuery); 29 } 30}(function ($) { 31 //IE8 indexOf polyfill 32 var indexOf = [].indexOf || function(item) { 33 for (var i = 0, l = this.length; i < l; i++) { 34 if (i in this && this[i] === item) { 35 return i; 36 } 37 } 38 return -1; 39 }; 40 41 var pluginName = "notify"; 42 var pluginClassName = pluginName + "js"; 43 var blankFieldName = pluginName + "!blank"; 44 45 var positions = { 46 t: "top", 47 m: "middle", 48 b: "bottom", 49 l: "left", 50 c: "center", 51 r: "right" 52 }; 53 var hAligns = ["l", "c", "r"]; 54 var vAligns = ["t", "m", "b"]; 55 var mainPositions = ["t", "b", "l", "r"]; 56 var opposites = { 57 t: "b", 58 m: null, 59 b: "t", 60 l: "r", 61 c: null, 62 r: "l" 63 }; 64 65 var parsePosition = function(str) { 66 var pos; 67 pos = []; 68 $.each(str.split(/\W+/), function(i, word) { 69 var w; 70 w = word.toLowerCase().charAt(0); 71 if (positions[w]) { 72 return pos.push(w); 73 } 74 }); 75 return pos; 76 }; 77 78 var styles = {}; 79 80 var coreStyle = { 81 name: "core", 82 html: "<div class=\"" + pluginClassName + "-wrapper\">\n <div class=\"" + pluginClassName + "-arrow\"></div>\n <div class=\"" + pluginClassName + "-container\"></div>\n</div>", 83 css: "." + pluginClassName + "-corner {\n position: fixed;\n margin: 5px;\n z-index: 1050;\n}\n\n." + pluginClassName + "-corner ." + pluginClassName + "-wrapper,\n." + pluginClassName + "-corner ." + pluginClassName + "-container {\n position: relative;\n display: block;\n height: inherit;\n width: inherit;\n margin: 3px;\n}\n\n." + pluginClassName + "-wrapper {\n z-index: 1;\n position: absolute;\n display: inline-block;\n height: 0;\n width: 0;\n}\n\n." + pluginClassName + "-container {\n display: none;\n z-index: 1;\n position: absolute;\n}\n\n." + pluginClassName + "-hidable {\n cursor: pointer;\n}\n\n[data-notify-text],[data-notify-html] {\n position: relative;\n}\n\n." + pluginClassName + "-arrow {\n position: absolute;\n z-index: 2;\n width: 0;\n height: 0;\n}" 84 }; 85 86 var stylePrefixes = { 87 "border-radius": ["-webkit-", "-moz-"] 88 }; 89 90 var getStyle = function(name) { 91 return styles[name]; 92 }; 93 94 var addStyle = function(name, def) { 95 if (!name) { 96 throw "Missing Style name"; 97 } 98 if (!def) { 99 throw "Missing Style definition"; 100 } 101 if (!def.html) { 102 throw "Missing Style HTML"; 103 } 104 //remove existing style 105 var existing = styles[name]; 106 if (existing && existing.cssElem) { 107 if (window.console) { 108 console.warn(pluginName + ": overwriting style '" + name + "'"); 109 } 110 styles[name].cssElem.remove(); 111 } 112 def.name = name; 113 styles[name] = def; 114 var cssText = ""; 115 if (def.classes) { 116 $.each(def.classes, function(className, props) { 117 cssText += "." + pluginClassName + "-" + def.name + "-" + className + " {\n"; 118 $.each(props, function(name, val) { 119 if (stylePrefixes[name]) { 120 $.each(stylePrefixes[name], function(i, prefix) { 121 return cssText += " " + prefix + name + ": " + val + ";\n"; 122 }); 123 } 124 return cssText += " " + name + ": " + val + ";\n"; 125 }); 126 return cssText += "}\n"; 127 }); 128 } 129 if (def.css) { 130 cssText += "/* styles for " + def.name + " */\n" + def.css; 131 } 132 if (cssText) { 133 def.cssElem = insertCSS(cssText); 134 def.cssElem.attr("id", "notify-" + def.name); 135 } 136 var fields = {}; 137 var elem = $(def.html); 138 findFields("html", elem, fields); 139 findFields("text", elem, fields); 140 def.fields = fields; 141 }; 142 143 var insertCSS = function(cssText) { 144 var e, elem, error; 145 elem = createElem("style"); 146 elem.attr("type", 'text/css'); 147 $("head").append(elem); 148 try { 149 elem.html(cssText); 150 } catch (_) { 151 elem[0].styleSheet.cssText = cssText; 152 } 153 return elem; 154 }; 155 156 var findFields = function(type, elem, fields) { 157 var attr; 158 if (type !== "html") { 159 type = "text"; 160 } 161 attr = "data-notify-" + type; 162 return find(elem, "[" + attr + "]").each(function() { 163 var name; 164 name = $(this).attr(attr); 165 if (!name) { 166 name = blankFieldName; 167 } 168 fields[name] = type; 169 }); 170 }; 171 172 var find = function(elem, selector) { 173 if (elem.is(selector)) { 174 return elem; 175 } else { 176 return elem.find(selector); 177 } 178 }; 179 180 var pluginOptions = { 181 clickToHide: true, 182 autoHide: true, 183 autoHideDelay: 5000, 184 arrowShow: true, 185 arrowSize: 5, 186 breakNewLines: true, 187 elementPosition: "bottom", 188 globalPosition: "top right", 189 style: "bootstrap", 190 className: "error", 191 showAnimation: "slideDown", 192 showDuration: 400, 193 hideAnimation: "slideUp", 194 hideDuration: 200, 195 gap: 5 196 }; 197 198 var inherit = function(a, b) { 199 var F; 200 F = function() {}; 201 F.prototype = a; 202 return $.extend(true, new F(), b); 203 }; 204 205 var defaults = function(opts) { 206 return $.extend(pluginOptions, opts); 207 }; 208 209 var createElem = function(tag) { 210 return $("<" + tag + "></" + tag + ">"); 211 }; 212 213 var globalAnchors = {}; 214 215 var getAnchorElement = function(element) { 216 var radios; 217 if (element.is('[type=radio]')) { 218 radios = element.parents('form:first').find('[type=radio]').filter(function(i, e) { 219 return $(e).attr("name") === element.attr("name"); 220 }); 221 element = radios.first(); 222 } 223 return element; 224 }; 225 226 var incr = function(obj, pos, val) { 227 var opp, temp; 228 if (typeof val === "string") { 229 val = parseInt(val, 10); 230 } else if (typeof val !== "number") { 231 return; 232 } 233 if (isNaN(val)) { 234 return; 235 } 236 opp = positions[opposites[pos.charAt(0)]]; 237 temp = pos; 238 if (obj[opp] !== undefined) { 239 pos = positions[opp.charAt(0)]; 240 val = -val; 241 } 242 if (obj[pos] === undefined) { 243 obj[pos] = val; 244 } else { 245 obj[pos] += val; 246 } 247 return null; 248 }; 249 250 var realign = function(alignment, inner, outer) { 251 if (alignment === "l" || alignment === "t") { 252 return 0; 253 } else if (alignment === "c" || alignment === "m") { 254 return outer / 2 - inner / 2; 255 } else if (alignment === "r" || alignment === "b") { 256 return outer - inner; 257 } 258 throw "Invalid alignment"; 259 }; 260 261 var encode = function(text) { 262 encode.e = encode.e || createElem("div"); 263 return encode.e.text(text).html(); 264 }; 265 266 function Notification(elem, data, options) { 267 if (typeof options === "string") { 268 options = { 269 className: options 270 }; 271 } 272 this.options = inherit(pluginOptions, $.isPlainObject(options) ? options : {}); 273 this.loadHTML(); 274 this.wrapper = $(coreStyle.html); 275 if (this.options.clickToHide) { 276 this.wrapper.addClass(pluginClassName + "-hidable"); 277 } 278 this.wrapper.data(pluginClassName, this); 279 this.arrow = this.wrapper.find("." + pluginClassName + "-arrow"); 280 this.container = this.wrapper.find("." + pluginClassName + "-container"); 281 this.container.append(this.userContainer); 282 if (elem && elem.length) { 283 this.elementType = elem.attr("type"); 284 this.originalElement = elem; 285 this.elem = getAnchorElement(elem); 286 this.elem.data(pluginClassName, this); 287 this.elem.before(this.wrapper); 288 } 289 this.container.hide(); 290 this.run(data); 291 } 292 293 Notification.prototype.loadHTML = function() { 294 var style; 295 style = this.getStyle(); 296 this.userContainer = $(style.html); 297 this.userFields = style.fields; 298 }; 299 300 Notification.prototype.show = function(show, userCallback) { 301 var args, callback, elems, fn, hidden; 302 callback = (function(_this) { 303 return function() { 304 if (!show && !_this.elem) { 305 _this.destroy(); 306 } 307 if (userCallback) { 308 return userCallback(); 309 } 310 }; 311 })(this); 312 hidden = this.container.parent().parents(':hidden').length > 0; 313 elems = this.container.add(this.arrow); 314 args = []; 315 if (hidden && show) { 316 fn = "show"; 317 } else if (hidden && !show) { 318 fn = "hide"; 319 } else if (!hidden && show) { 320 fn = this.options.showAnimation; 321 args.push(this.options.showDuration); 322 } else if (!hidden && !show) { 323 fn = this.options.hideAnimation; 324 args.push(this.options.hideDuration); 325 } else { 326 return callback(); 327 } 328 args.push(callback); 329 return elems[fn].apply(elems, args); 330 }; 331 332 Notification.prototype.setGlobalPosition = function() { 333 var p = this.getPosition(); 334 var pMain = p[0]; 335 var pAlign = p[1]; 336 var main = positions[pMain]; 337 var align = positions[pAlign]; 338 var key = pMain + "|" + pAlign; 339 var anchor = globalAnchors[key]; 340 if (!anchor) { 341 anchor = globalAnchors[key] = createElem("div"); 342 var css = {}; 343 css[main] = 0; 344 if (align === "middle") { 345 css.top = '45%'; 346 } else if (align === "center") { 347 css.left = '45%'; 348 } else { 349 css[align] = 0; 350 } 351 anchor.css(css).addClass(pluginClassName + "-corner"); 352 $("body").append(anchor); 353 } 354 return anchor.prepend(this.wrapper); 355 }; 356 357 Notification.prototype.setElementPosition = function() { 358 var arrowColor, arrowCss, arrowSize, color, contH, contW, css, elemH, elemIH, elemIW, elemPos, elemW, gap, j, k, len, len1, mainFull, margin, opp, oppFull, pAlign, pArrow, pMain, pos, posFull, position, ref, wrapPos; 359 position = this.getPosition(); 360 pMain = position[0]; 361 pAlign = position[1]; 362 pArrow = position[2]; 363 elemPos = this.elem.position(); 364 elemH = this.elem.outerHeight(); 365 elemW = this.elem.outerWidth(); 366 elemIH = this.elem.innerHeight(); 367 elemIW = this.elem.innerWidth(); 368 wrapPos = this.wrapper.position(); 369 contH = this.container.height(); 370 contW = this.container.width(); 371 mainFull = positions[pMain]; 372 opp = opposites[pMain]; 373 oppFull = positions[opp]; 374 css = {}; 375 css[oppFull] = pMain === "b" ? elemH : pMain === "r" ? elemW : 0; 376 incr(css, "top", elemPos.top - wrapPos.top); 377 incr(css, "left", elemPos.left - wrapPos.left); 378 ref = ["top", "left"]; 379 for (j = 0, len = ref.length; j < len; j++) { 380 pos = ref[j]; 381 margin = parseInt(this.elem.css("margin-" + pos), 10); 382 if (margin) { 383 incr(css, pos, margin); 384 } 385 } 386 gap = Math.max(0, this.options.gap - (this.options.arrowShow ? arrowSize : 0)); 387 incr(css, oppFull, gap); 388 if (!this.options.arrowShow) { 389 this.arrow.hide(); 390 } else { 391 arrowSize = this.options.arrowSize; 392 arrowCss = $.extend({}, css); 393 arrowColor = this.userContainer.css("border-color") || this.userContainer.css("border-top-color") || this.userContainer.css("background-color") || "white"; 394 for (k = 0, len1 = mainPositions.length; k < len1; k++) { 395 pos = mainPositions[k]; 396 posFull = positions[pos]; 397 if (pos === opp) { 398 continue; 399 } 400 color = posFull === mainFull ? arrowColor : "transparent"; 401 arrowCss["border-" + posFull] = arrowSize + "px solid " + color; 402 } 403 incr(css, positions[opp], arrowSize); 404 if (indexOf.call(mainPositions, pAlign) >= 0) { 405 incr(arrowCss, positions[pAlign], arrowSize * 2); 406 } 407 } 408 if (indexOf.call(vAligns, pMain) >= 0) { 409 incr(css, "left", realign(pAlign, contW, elemW)); 410 if (arrowCss) { 411 incr(arrowCss, "left", realign(pAlign, arrowSize, elemIW)); 412 } 413 } else if (indexOf.call(hAligns, pMain) >= 0) { 414 incr(css, "top", realign(pAlign, contH, elemH)); 415 if (arrowCss) { 416 incr(arrowCss, "top", realign(pAlign, arrowSize, elemIH)); 417 } 418 } 419 if (this.container.is(":visible")) { 420 css.display = "block"; 421 } 422 this.container.removeAttr("style").css(css); 423 if (arrowCss) { 424 return this.arrow.removeAttr("style").css(arrowCss); 425 } 426 }; 427 428 Notification.prototype.getPosition = function() { 429 var pos, ref, ref1, ref2, ref3, ref4, ref5, text; 430 text = this.options.position || (this.elem ? this.options.elementPosition : this.options.globalPosition); 431 pos = parsePosition(text); 432 if (pos.length === 0) { 433 pos[0] = "b"; 434 } 435 if (ref = pos[0], indexOf.call(mainPositions, ref) < 0) { 436 throw "Must be one of [" + mainPositions + "]"; 437 } 438 if (pos.length === 1 || ((ref1 = pos[0], indexOf.call(vAligns, ref1) >= 0) && (ref2 = pos[1], indexOf.call(hAligns, ref2) < 0)) || ((ref3 = pos[0], indexOf.call(hAligns, ref3) >= 0) && (ref4 = pos[1], indexOf.call(vAligns, ref4) < 0))) { 439 pos[1] = (ref5 = pos[0], indexOf.call(hAligns, ref5) >= 0) ? "m" : "l"; 440 } 441 if (pos.length === 2) { 442 pos[2] = pos[1]; 443 } 444 return pos; 445 }; 446 447 Notification.prototype.getStyle = function(name) { 448 var style; 449 if (!name) { 450 name = this.options.style; 451 } 452 if (!name) { 453 name = "default"; 454 } 455 style = styles[name]; 456 if (!style) { 457 throw "Missing style: " + name; 458 } 459 return style; 460 }; 461 462 Notification.prototype.updateClasses = function() { 463 var classes, style; 464 classes = ["base"]; 465 if ($.isArray(this.options.className)) { 466 classes = classes.concat(this.options.className); 467 } else if (this.options.className) { 468 classes.push(this.options.className); 469 } 470 style = this.getStyle(); 471 classes = $.map(classes, function(n) { 472 return pluginClassName + "-" + style.name + "-" + n; 473 }).join(" "); 474 return this.userContainer.attr("class", classes); 475 }; 476 477 Notification.prototype.run = function(data, options) { 478 var d, datas, name, type, value; 479 if ($.isPlainObject(options)) { 480 $.extend(this.options, options); 481 } else if ($.type(options) === "string") { 482 this.options.className = options; 483 } 484 if (this.container && !data) { 485 this.show(false); 486 return; 487 } else if (!this.container && !data) { 488 return; 489 } 490 datas = {}; 491 if ($.isPlainObject(data)) { 492 datas = data; 493 } else { 494 datas[blankFieldName] = data; 495 } 496 for (name in datas) { 497 d = datas[name]; 498 type = this.userFields[name]; 499 if (!type) { 500 continue; 501 } 502 if (type === "text") { 503 d = encode(d); 504 if (this.options.breakNewLines) { 505 d = d.replace(/\n/g, '<br/>'); 506 } 507 } 508 value = name === blankFieldName ? '' : '=' + name; 509 find(this.userContainer, "[data-notify-" + type + value + "]").html(d); 510 } 511 this.updateClasses(); 512 if (this.elem) { 513 this.setElementPosition(); 514 } else { 515 this.setGlobalPosition(); 516 } 517 this.show(true); 518 if (this.options.autoHide) { 519 clearTimeout(this.autohideTimer); 520 this.autohideTimer = setTimeout(this.show.bind(this, false), this.options.autoHideDelay); 521 } 522 }; 523 524 Notification.prototype.destroy = function() { 525 this.wrapper.data(pluginClassName, null); 526 this.wrapper.remove(); 527 }; 528 529 $[pluginName] = function(elem, data, options) { 530 if ((elem && elem.nodeName) || elem.jquery) { 531 $(elem)[pluginName](data, options); 532 } else { 533 options = data; 534 data = elem; 535 new Notification(null, data, options); 536 } 537 return elem; 538 }; 539 540 $.fn[pluginName] = function(data, options) { 541 $(this).each(function() { 542 var prev = getAnchorElement($(this)).data(pluginClassName); 543 if (prev) { 544 prev.destroy(); 545 } 546 var curr = new Notification($(this), data, options); 547 }); 548 return this; 549 }; 550 551 $.extend($[pluginName], { 552 defaults: defaults, 553 addStyle: addStyle, 554 pluginOptions: pluginOptions, 555 getStyle: getStyle, 556 insertCSS: insertCSS 557 }); 558 559 //always include the default bootstrap style 560 addStyle("bootstrap", { 561 html: "<div>\n<span data-notify-text></span>\n</div>", 562 classes: { 563 base: { 564 "font-weight": "bold", 565 "padding": "8px 15px 8px 14px", 566 "text-shadow": "0 1px 0 rgba(255, 255, 255, 0.5)", 567 "background-color": "#fcf8e3", 568 "border": "1px solid #fbeed5", 569 "border-radius": "4px", 570 "white-space": "nowrap", 571 "padding-left": "25px", 572 "background-repeat": "no-repeat", 573 "background-position": "3px 7px" 574 }, 575 error: { 576 "color": "#B94A48", 577 "background-color": "#F2DEDE", 578 "border-color": "#EED3D7", 579 "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtRJREFUeNqkVc1u00AQHq+dOD+0poIQfkIjalW0SEGqRMuRnHos3DjwAH0ArlyQeANOOSMeAA5VjyBxKBQhgSpVUKKQNGloFdw4cWw2jtfMOna6JOUArDTazXi/b3dm55socPqQhFka++aHBsI8GsopRJERNFlY88FCEk9Yiwf8RhgRyaHFQpPHCDmZG5oX2ui2yilkcTT1AcDsbYC1NMAyOi7zTX2Agx7A9luAl88BauiiQ/cJaZQfIpAlngDcvZZMrl8vFPK5+XktrWlx3/ehZ5r9+t6e+WVnp1pxnNIjgBe4/6dAysQc8dsmHwPcW9C0h3fW1hans1ltwJhy0GxK7XZbUlMp5Ww2eyan6+ft/f2FAqXGK4CvQk5HueFz7D6GOZtIrK+srupdx1GRBBqNBtzc2AiMr7nPplRdKhb1q6q6zjFhrklEFOUutoQ50xcX86ZlqaZpQrfbBdu2R6/G19zX6XSgh6RX5ubyHCM8nqSID6ICrGiZjGYYxojEsiw4PDwMSL5VKsC8Yf4VRYFzMzMaxwjlJSlCyAQ9l0CW44PBADzXhe7xMdi9HtTrdYjFYkDQL0cn4Xdq2/EAE+InCnvADTf2eah4Sx9vExQjkqXT6aAERICMewd/UAp/IeYANM2joxt+q5VI+ieq2i0Wg3l6DNzHwTERPgo1ko7XBXj3vdlsT2F+UuhIhYkp7u7CarkcrFOCtR3H5JiwbAIeImjT/YQKKBtGjRFCU5IUgFRe7fF4cCNVIPMYo3VKqxwjyNAXNepuopyqnld602qVsfRpEkkz+GFL1wPj6ySXBpJtWVa5xlhpcyhBNwpZHmtX8AGgfIExo0ZpzkWVTBGiXCSEaHh62/PoR0p/vHaczxXGnj4bSo+G78lELU80h1uogBwWLf5YlsPmgDEd4M236xjm+8nm4IuE/9u+/PH2JXZfbwz4zw1WbO+SQPpXfwG/BBgAhCNZiSb/pOQAAAAASUVORK5CYII=)" 580 }, 581 success: { 582 "color": "#468847", 583 "background-color": "#DFF0D8", 584 "border-color": "#D6E9C6", 585 "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAutJREFUeNq0lctPE0Ecx38zu/RFS1EryqtgJFA08YCiMZIAQQ4eRG8eDGdPJiYeTIwHTfwPiAcvXIwXLwoXPaDxkWgQ6islKlJLSQWLUraPLTv7Gme32zoF9KSTfLO7v53vZ3d/M7/fIth+IO6INt2jjoA7bjHCJoAlzCRw59YwHYjBnfMPqAKWQYKjGkfCJqAF0xwZjipQtA3MxeSG87VhOOYegVrUCy7UZM9S6TLIdAamySTclZdYhFhRHloGYg7mgZv1Zzztvgud7V1tbQ2twYA34LJmF4p5dXF1KTufnE+SxeJtuCZNsLDCQU0+RyKTF27Unw101l8e6hns3u0PBalORVVVkcaEKBJDgV3+cGM4tKKmI+ohlIGnygKX00rSBfszz/n2uXv81wd6+rt1orsZCHRdr1Imk2F2Kob3hutSxW8thsd8AXNaln9D7CTfA6O+0UgkMuwVvEFFUbbAcrkcTA8+AtOk8E6KiQiDmMFSDqZItAzEVQviRkdDdaFgPp8HSZKAEAL5Qh7Sq2lIJBJwv2scUqkUnKoZgNhcDKhKg5aH+1IkcouCAdFGAQsuWZYhOjwFHQ96oagWgRoUov1T9kRBEODAwxM2QtEUl+Wp+Ln9VRo6BcMw4ErHRYjH4/B26AlQoQQTRdHWwcd9AH57+UAXddvDD37DmrBBV34WfqiXPl61g+vr6xA9zsGeM9gOdsNXkgpEtTwVvwOklXLKm6+/p5ezwk4B+j6droBs2CsGa/gNs6RIxazl4Tc25mpTgw/apPR1LYlNRFAzgsOxkyXYLIM1V8NMwyAkJSctD1eGVKiq5wWjSPdjmeTkiKvVW4f2YPHWl3GAVq6ymcyCTgovM3FzyRiDe2TaKcEKsLpJvNHjZgPNqEtyi6mZIm4SRFyLMUsONSSdkPeFtY1n0mczoY3BHTLhwPRy9/lzcziCw9ACI+yql0VLzcGAZbYSM5CCSZg1/9oc/nn7+i8N9p/8An4JMADxhH+xHfuiKwAAAABJRU5ErkJggg==)" 586 }, 587 info: { 588 "color": "#3A87AD", 589 "background-color": "#D9EDF7", 590 "border-color": "#BCE8F1", 591 "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QYFAhkSsdes/QAAA8dJREFUOMvVlGtMW2UYx//POaWHXg6lLaW0ypAtw1UCgbniNOLcVOLmAjHZolOYlxmTGXVZdAnRfXQm+7SoU4mXaOaiZsEpC9FkiQs6Z6bdCnNYruM6KNBw6YWewzl9z+sHImEWv+vz7XmT95f/+3/+7wP814v+efDOV3/SoX3lHAA+6ODeUFfMfjOWMADgdk+eEKz0pF7aQdMAcOKLLjrcVMVX3xdWN29/GhYP7SvnP0cWfS8caSkfHZsPE9Fgnt02JNutQ0QYHB2dDz9/pKX8QjjuO9xUxd/66HdxTeCHZ3rojQObGQBcuNjfplkD3b19Y/6MrimSaKgSMmpGU5WevmE/swa6Oy73tQHA0Rdr2Mmv/6A1n9w9suQ7097Z9lM4FlTgTDrzZTu4StXVfpiI48rVcUDM5cmEksrFnHxfpTtU/3BFQzCQF/2bYVoNbH7zmItbSoMj40JSzmMyX5qDvriA7QdrIIpA+3cdsMpu0nXI8cV0MtKXCPZev+gCEM1S2NHPvWfP/hL+7FSr3+0p5RBEyhEN5JCKYr8XnASMT0xBNyzQGQeI8fjsGD39RMPk7se2bd5ZtTyoFYXftF6y37gx7NeUtJJOTFlAHDZLDuILU3j3+H5oOrD3yWbIztugaAzgnBKJuBLpGfQrS8wO4FZgV+c1IxaLgWVU0tMLEETCos4xMzEIv9cJXQcyagIwigDGwJgOAtHAwAhisQUjy0ORGERiELgG4iakkzo4MYAxcM5hAMi1WWG1yYCJIcMUaBkVRLdGeSU2995TLWzcUAzONJ7J6FBVBYIggMzmFbvdBV44Corg8vjhzC+EJEl8U1kJtgYrhCzgc/vvTwXKSib1paRFVRVORDAJAsw5FuTaJEhWM2SHB3mOAlhkNxwuLzeJsGwqWzf5TFNdKgtY5qHp6ZFf67Y/sAVadCaVY5YACDDb3Oi4NIjLnWMw2QthCBIsVhsUTU9tvXsjeq9+X1d75/KEs4LNOfcdf/+HthMnvwxOD0wmHaXr7ZItn2wuH2SnBzbZAbPJwpPx+VQuzcm7dgRCB57a1uBzUDRL4bfnI0RE0eaXd9W89mpjqHZnUI5Hh2l2dkZZUhOqpi2qSmpOmZ64Tuu9qlz/SEXo6MEHa3wOip46F1n7633eekV8ds8Wxjn37Wl63VVa+ej5oeEZ/82ZBETJjpJ1Rbij2D3Z/1trXUvLsblCK0XfOx0SX2kMsn9dX+d+7Kf6h8o4AIykuffjT8L20LU+w4AZd5VvEPY+XpWqLV327HR7DzXuDnD8r+ovkBehJ8i+y8YAAAAASUVORK5CYII=)" 592 }, 593 warn: { 594 "color": "#C09853", 595 "background-color": "#FCF8E3", 596 "border-color": "#FBEED5", 597 "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAABJlBMVEXr6eb/2oD/wi7/xjr/0mP/ykf/tQD/vBj/3o7/uQ//vyL/twebhgD/4pzX1K3z8e349vK6tHCilCWbiQymn0jGworr6dXQza3HxcKkn1vWvV/5uRfk4dXZ1bD18+/52YebiAmyr5S9mhCzrWq5t6ufjRH54aLs0oS+qD751XqPhAybhwXsujG3sm+Zk0PTwG6Shg+PhhObhwOPgQL4zV2nlyrf27uLfgCPhRHu7OmLgAafkyiWkD3l49ibiAfTs0C+lgCniwD4sgDJxqOilzDWowWFfAH08uebig6qpFHBvH/aw26FfQTQzsvy8OyEfz20r3jAvaKbhgG9q0nc2LbZxXanoUu/u5WSggCtp1anpJKdmFz/zlX/1nGJiYmuq5Dx7+sAAADoPUZSAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfdBgUBGhh4aah5AAAAlklEQVQY02NgoBIIE8EUcwn1FkIXM1Tj5dDUQhPU502Mi7XXQxGz5uVIjGOJUUUW81HnYEyMi2HVcUOICQZzMMYmxrEyMylJwgUt5BljWRLjmJm4pI1hYp5SQLGYxDgmLnZOVxuooClIDKgXKMbN5ggV1ACLJcaBxNgcoiGCBiZwdWxOETBDrTyEFey0jYJ4eHjMGWgEAIpRFRCUt08qAAAAAElFTkSuQmCC)" 598 } 599 } 600 }); 601 602 $(function() { 603 insertCSS(coreStyle.css).attr("id", "core-notify"); 604 $(document).on("click", "." + pluginClassName + "-hidable", function(e) { 605 $(this).trigger("notify-hide"); 606 }); 607 $(document).on("notify-hide", "." + pluginClassName + "-wrapper", function(e) { 608 var elem = $(this).data(pluginClassName); 609 if(elem) { 610 elem.show(false); 611 } 612 }); 613 }); 614 615}));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.