vendor: 4,845 bytes, lines 1-112
1/*! 2 * Bootstrap.js by @fat & @mdo 3 * Copyright 2012 Twitter, Inc. 4 * http://www.apache.org/licenses/LICENSE-2.0.txt 5 */ 6! function (e) { 7 e(function () { 8 "use strict"; 9 e.support.transition = function () { 10 var e = function () { 11 var e = document.createElement("bootstrap"), 12 t = { 13 WebkitTransition: "webkitTransitionEnd", 14 MozTransition: "transitionend", 15 OTransition: "oTransitionEnd otransitionend", 16 transition: "transitionend" 17 }, n; 18 for (n in t) 19 if (e.style[n] !== undefined) return t[n] 20 }(); 21 return e && { 22 end: e 23 } 24 }() 25 }) 26}(window.jQuery), ! function (e) { 27 "use strict"; 28 var t = '[data-dismiss="alert"]', 29 n = function (n) { 30 e(n).on("click", t, this.close) 31 }; 32 n.prototype.close = function (t) { 33 function s() { 34 i.trigger("closed").remove() 35 } 36 var n = e(this), 37 r = n.attr("data-target"), 38 i; 39 r || (r = n.attr("href"), r = r && r.replace(/.*(?=#[^\s]*$)/, "")), i = e(r), t && t.preventDefault(), i.length || (i = n.hasClass("alert") ? n : n.parent()), i.trigger(t = e.Event("close")); 40 if (t.isDefaultPrevented()) return; 41 i.removeClass("in"), e.support.transition && i.hasClass("fade") ? i.on(e.support.transition.end, s) : s() 42 }, e.fn.alert = function (t) { 43 return this.each(function () { 44 var r = e(this), 45 i = r.data("alert"); 46 i || r.data("alert", i = new n(this)), typeof t == "string" && i[t].call(r) 47 }) 48 }, e.fn.alert.Constructor = n, e(function () { 49 e("body").on("click.alert.data-api", t, n.prototype.close) 50 }) 51}(window.jQuery), ! function (e) { 52 "use strict"; 53 var t = function (t, n) { 54 this.$element = e(t), this.options = e.extend({}, e.fn.button.defaults, n) 55 }; 56 t.prototype.setState = function (e) { 57 var t = "disabled", 58 n = this.$element, 59 r = n.data(), 60 i = n.is("input") ? "val" : "html"; 61 e += "Text", r.resetText || n.data("resetText", n[i]()), n[i](r[e] || this.options[e]), setTimeout(function () { 62 e == "loadingText" ? n.addClass(t).attr(t, t) : n.removeClass(t).removeAttr(t) 63 }, 0) 64 }, t.prototype.toggle = function () { 65 var e = this.$element.closest('[data-toggle="buttons-radio"]'); 66 e && e.find(".active").removeClass("active"), this.$element.toggleClass("active") 67 }, e.fn.button = function (n) { 68 return this.each(function () { 69 var r = e(this), 70 i = r.data("button"), 71 s = typeof n == "object" && n; 72 i || r.data("button", i = new t(this, s)), n == "toggle" ? i.toggle() : n && i.setState(n) 73 }) 74 }, e.fn.button.defaults = { 75 loadingText: "loading..." 76 }, e.fn.button.Constructor = t, e(function () { 77 e("body").on("click.button.data-api", "[data-toggle^=button]", function (t) { 78 var n = e(t.target); 79 n.hasClass("btn") || (n = n.closest(".btn")), n.button("toggle") 80 }) 81 }) 82}(window.jQuery), ! function (e) { 83 "use strict"; 84 var t = function (t, n) { 85 this.$element = e(t), this.options = n, this.options.slide && this.slide(this.options.slide), this.options.pause == "hover" && this.$element.on("mouseenter", e.proxy(this.pause, this)).on("mouseleave", e.proxy(this.cycle, this)) 86 }; 87 t.prototype = { 88 cycle: function (t) { 89 return t || (this.paused = !1), this.options.interval && !this.paused && (this.interval = setInterval(e.proxy(this.next, this), this.options.interval)), this 90 }, 91 to: function (t) { 92 var n = this.$element.find(".item.active"), 93 r = n.parent().children(), 94 i = r.index(n), 95 s = this; 96 if (t > r.length - 1 || t < 0) return; 97 return this.sliding ? this.$element.one("slid", function () { 98 s.to(t) 99 }) : i == t ? this.pause().cycle() : this.slide(t > i ? "next" : "prev", e(r[t])) 100 }, 101 pause: function (t) { 102 return t || (this.paused = !0), this.$element.find(".next, .prev").length && e.support.transition.end && (this.$element.trigger(e.support.transition.end), this.cycle()), clearInterval(this.interval), this.interval = null, this 103 }, 104 next: function () { 105 if (this.sliding) return; 106 return this.slide("next") 107 }, 108 prev: function () { 109 if (this.sliding) return; 110 return this.slide("prev") 111 }, 112 slide: function (t, n) {
vendor: 5,055 bytes, lines 113-213
113 var r = this.$element.find(".item.active"), 114 i = n || r[t](), 115 s = this.interval, 116 o = t == "next" ? "left" : "right", 117 u = t == "next" ? "first" : "last", 118 a = this, 119 f = e.Event("slide", { 120 relatedTarget: i[0] 121 }); 122 this.sliding = !0, s && this.pause(), i = i.length ? i : this.$element.find(".item")[u](); 123 if (i.hasClass("active")) return; 124 if (e.support.transition && this.$element.hasClass("slide")) { 125 this.$element.trigger(f); 126 if (f.isDefaultPrevented()) return; 127 i.addClass(t), i[0].offsetWidth, r.addClass(o), i.addClass(o), this.$element.one(e.support.transition.end, function () { 128 i.removeClass([t, o].join(" ")).addClass("active"), r.removeClass(["active", o].join(" ")), a.sliding = !1, setTimeout(function () { 129 a.$element.trigger("slid") 130 }, 0) 131 }) 132 } else { 133 this.$element.trigger(f); 134 if (f.isDefaultPrevented()) return; 135 r.removeClass("active"), i.addClass("active"), this.sliding = !1, this.$element.trigger("slid") 136 } 137 return s && this.cycle(), this 138 } 139 }, e.fn.carousel = function (n) { 140 return this.each(function () { 141 var r = e(this), 142 i = r.data("carousel"), 143 s = e.extend({}, e.fn.carousel.defaults, typeof n == "object" && n), 144 o = typeof n == "string" ? n : s.slide; 145 i || r.data("carousel", i = new t(this, s)), typeof n == "number" ? i.to(n) : o ? i[o]() : s.interval && i.cycle() 146 }) 147 }, e.fn.carousel.defaults = { 148 interval: 5e3, 149 pause: "hover" 150 }, e.fn.carousel.Constructor = t, e(function () { 151 e("body").on("click.carousel.data-api", "[data-slide]", function (t) { 152 var n = e(this), 153 r, i = e(n.attr("data-target") || (r = n.attr("href")) && r.replace(/.*(?=#[^\s]+$)/, "")), 154 s = !i.data("modal") && e.extend({}, i.data(), n.data()); 155 i.carousel(s), t.preventDefault() 156 }) 157 }) 158}(window.jQuery), ! function (e) { 159 "use strict"; 160 var t = function (t, n) { 161 this.$element = e(t), this.options = e.extend({}, e.fn.collapse.defaults, n), this.options.parent && (this.$parent = e(this.options.parent)), this.options.toggle && this.toggle() 162 }; 163 t.prototype = { 164 constructor: t, 165 dimension: function () { 166 var e = this.$element.hasClass("width"); 167 return e ? "width" : "height" 168 }, 169 show: function () { 170 var t, n, r, i; 171 if (this.transitioning) return; 172 t = this.dimension(), n = e.camelCase(["scroll", t].join("-")), r = this.$parent && this.$parent.find("> .accordion-group > .in"); 173 if (r && r.length) { 174 i = r.data("collapse"); 175 if (i && i.transitioning) return; 176 r.collapse("hide"), i || r.data("collapse", null) 177 } 178 this.$element[t](0), this.transition("addClass", e.Event("show"), "shown"), e.support.transition && this.$element[t](this.$element[0][n]) 179 }, 180 hide: function () { 181 var t; 182 if (this.transitioning) return; 183 t = this.dimension(), this.reset(this.$element[t]()), this.transition("removeClass", e.Event("hide"), "hidden"), this.$element[t](0) 184 }, 185 reset: function (e) { 186 var t = this.dimension(); 187 return this.$element.removeClass("collapse")[t](e || "auto")[0].offsetWidth, this.$element[e !== null ? "addClass" : "removeClass"]("collapse"), this 188 }, 189 transition: function (t, n, r) { 190 var i = this, 191 s = function () { 192 n.type == "show" && i.reset(), i.transitioning = 0, i.$element.trigger(r) 193 }; 194 this.$element.trigger(n); 195 if (n.isDefaultPrevented()) return; 196 this.transitioning = 1, this.$element[t]("in"), e.support.transition && this.$element.hasClass("collapse") ? this.$element.one(e.support.transition.end, s) : s() 197 }, 198 toggle: function () { 199 this[this.$element.hasClass("in") ? "hide" : "show"]() 200 } 201 }, e.fn.collapse = function (n) { 202 return this.each(function () { 203 var r = e(this), 204 i = r.data("collapse"), 205 s = typeof n == "object" && n; 206 i || r.data("collapse", i = new t(this, s)), typeof n == "string" && i[n]() 207 }) 208 }, e.fn.collapse.defaults = { 209 toggle: !0 210 }, e.fn.collapse.Constructor = t, e(function () { 211 e("body").on("click.collapse.data-api", "[data-toggle=collapse]", function (t) { 212 var n = e(this), 213 r, i = n.attr("data-target") || t.preventDefault() || (r = n.attr("href")) && r.replace(/.*(?=#[^\s]+$)/, ""),
vendor: 27,915 bytes, lines 214-825
214 s = e(i).data("collapse") ? "toggle" : n.data(); 215 n[e(i).hasClass("in") ? "addClass" : "removeClass"]("collapsed"), e(i).collapse(s) 216 }) 217 }) 218}(window.jQuery), ! function (e) { 219 "use strict"; 220 221 function r() { 222 i(e(t)).removeClass("open") 223 } 224 225 function i(t) { 226 var n = t.attr("data-target"), 227 r; 228 return n || (n = t.attr("href"), n = n && /#/.test(n) && n.replace(/.*(?=#[^\s]*$)/, "")), r = e(n), r.length || (r = t.parent()), r 229 } 230 var t = "[data-toggle=dropdown]", 231 n = function (t) { 232 var n = e(t).on("click.dropdown.data-api", this.toggle); 233 e("html").on("click.dropdown.data-api", function () { 234 n.parent().removeClass("open") 235 }) 236 }; 237 n.prototype = { 238 constructor: n, 239 toggle: function (t) { 240 var n = e(this), 241 s, o; 242 if (n.is(".disabled, :disabled")) return; 243 return s = i(n), o = s.hasClass("open"), r(), o || (s.toggleClass("open"), n.focus()), !1 244 }, 245 keydown: function (t) { 246 var n, r, s, o, u, a; 247 if (!/(38|40|27)/.test(t.keyCode)) return; 248 n = e(this), t.preventDefault(), t.stopPropagation(); 249 if (n.is(".disabled, :disabled")) return; 250 o = i(n), u = o.hasClass("open"); 251 if (!u || u && t.keyCode == 27) return n.click(); 252 r = e("[role=menu] li:not(.divider) a", o); 253 if (!r.length) return; 254 a = r.index(r.filter(":focus")), t.keyCode == 38 && a > 0 && a--, t.keyCode == 40 && a < r.length - 1 && a++, ~a || (a = 0), r.eq(a).focus() 255 } 256 }, e.fn.dropdown = function (t) { 257 return this.each(function () { 258 var r = e(this), 259 i = r.data("dropdown"); 260 i || r.data("dropdown", i = new n(this)), typeof t == "string" && i[t].call(r) 261 }) 262 }, e.fn.dropdown.Constructor = n, e(function () { 263 e("html").on("click.dropdown.data-api touchstart.dropdown.data-api", r), e("body").on("click.dropdown touchstart.dropdown.data-api", ".dropdown form", function (e) { 264 e.stopPropagation() 265 }).on("click.dropdown.data-api touchstart.dropdown.data-api", t, n.prototype.toggle).on("keydown.dropdown.data-api touchstart.dropdown.data-api", t + ", [role=menu]", n.prototype.keydown) 266 }) 267}(window.jQuery), ! function (e) { 268 "use strict"; 269 var t = function (t, n) { 270 this.options = n, this.$element = e(t).delegate('[data-dismiss="modal"]', "click.dismiss.modal", e.proxy(this.hide, this)), this.options.remote && this.$element.find(".modal-body").load(this.options.remote) 271 }; 272 t.prototype = { 273 constructor: t, 274 toggle: function () { 275 return this[this.isShown ? "hide" : "show"]() 276 }, 277 show: function () { 278 var t = this, 279 n = e.Event("show"); 280 this.$element.trigger(n); 281 if (this.isShown || n.isDefaultPrevented()) return; 282 e("body").addClass("modal-open"), this.isShown = !0, this.escape(), this.backdrop(function () { 283 var n = e.support.transition && t.$element.hasClass("fade"); 284 t.$element.parent().length || t.$element.appendTo(document.body), t.$element.show(), n && t.$element[0].offsetWidth, t.$element.addClass("in").attr("aria-hidden", !1).focus(), t.enforceFocus(), n ? t.$element.one(e.support.transition.end, function () { 285 t.$element.trigger("shown") 286 }) : t.$element.trigger("shown") 287 }) 288 }, 289 hide: function (t) { 290 t && t.preventDefault(); 291 var n = this; 292 t = e.Event("hide"), this.$element.trigger(t); 293 if (!this.isShown || t.isDefaultPrevented()) return; 294 this.isShown = !1, e("body").removeClass("modal-open"), this.escape(), e(document).off("focusin.modal"), this.$element.removeClass("in").attr("aria-hidden", !0), e.support.transition && this.$element.hasClass("fade") ? this.hideWithTransition() : this.hideModal() 295 }, 296 enforceFocus: function () { 297 var t = this; 298 e(document).on("focusin.modal", function (e) { 299 t.$element[0] !== e.target && !t.$element.has(e.target).length && t.$element.focus() 300 }) 301 }, 302 escape: function () { 303 var e = this; 304 this.isShown && this.options.keyboard ? this.$element.on("keyup.dismiss.modal", function (t) { 305 t.which == 27 && e.hide() 306 }) : this.isShown || this.$element.off("keyup.dismiss.modal") 307 }, 308 hideWithTransition: function () { 309 var t = this, 310 n = setTimeout(function () { 311 t.$element.off(e.support.transition.end), t.hideModal() 312 }, 500); 313 this.$element.one(e.support.transition.end, function () { 314 clearTimeout(n), t.hideModal() 315 }) 316 }, 317 hideModal: function (e) { 318 this.$element.hide().trigger("hidden"), this.backdrop() 319 }, 320 removeBackdrop: function () { 321 this.$backdrop.remove(), this.$backdrop = null 322 }, 323 backdrop: function (t) { 324 var n = this, 325 r = this.$element.hasClass("fade") ? "fade" : ""; 326 if (this.isShown && this.options.backdrop) { 327 var i = e.support.transition && r; 328 this.$backdrop = e('<div class="modal-backdrop ' + r + '" />').appendTo(document.body), this.options.backdrop != "static" && this.$backdrop.click(e.proxy(this.hide, this)), i && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), i ? this.$backdrop.one(e.support.transition.end, t) : t() 329 } else !this.isShown && this.$backdrop ? (this.$backdrop.removeClass("in"), e.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one(e.support.transition.end, e.proxy(this.removeBackdrop, this)) : this.removeBackdrop()) : t && t() 330 } 331 }, e.fn.modal = function (n) { 332 return this.each(function () { 333 var r = e(this), 334 i = r.data("modal"), 335 s = e.extend({}, e.fn.modal.defaults, r.data(), typeof n == "object" && n); 336 i || r.data("modal", i = new t(this, s)), typeof n == "string" ? i[n]() : s.show && i.show() 337 }) 338 }, e.fn.modal.defaults = { 339 backdrop: !0, 340 keyboard: !0, 341 show: !0 342 }, e.fn.modal.Constructor = t, e(function () { 343 e("body").on("click.modal.data-api", '[data-toggle="modal"]', function (t) { 344 var n = e(this), 345 r = n.attr("href"), 346 i = e(n.attr("data-target") || r && r.replace(/.*(?=#[^\s]+$)/, "")), 347 s = i.data("modal") ? "toggle" : e.extend({ 348 remote: !/#/.test(r) && r 349 }, i.data(), n.data()); 350 t.preventDefault(), i.modal(s).one("hide", function () { 351 n.focus() 352 }) 353 }) 354 }) 355}(window.jQuery), ! function (e) { 356 "use strict"; 357 var t = function (e, t) { 358 this.init("tooltip", e, t) 359 }; 360 t.prototype = { 361 constructor: t, 362 init: function (t, n, r) { 363 var i, s; 364 this.type = t, this.$element = e(n), this.options = this.getOptions(r), this.enabled = !0, this.options.trigger == "click" ? this.$element.on("click." + this.type, this.options.selector, e.proxy(this.toggle, this)) : this.options.trigger != "manual" && (i = this.options.trigger == "hover" ? "mouseenter" : "focus", s = this.options.trigger == "hover" ? "mouseleave" : "blur", this.$element.on(i + "." + this.type, this.options.selector, e.proxy(this.enter, this)), this.$element.on(s + "." + this.type, this.options.selector, e.proxy(this.leave, this))), this.options.selector ? this._options = e.extend({}, this.options, { 365 trigger: "manual", 366 selector: "" 367 }) : this.fixTitle() 368 }, 369 getOptions: function (t) { 370 return t = e.extend({}, e.fn[this.type].defaults, t, this.$element.data()), t.delay && typeof t.delay == "number" && (t.delay = { 371 show: t.delay, 372 hide: t.delay 373 }), t 374 }, 375 enter: function (t) { 376 var n = e(t.currentTarget)[this.type](this._options).data(this.type); 377 if (!n.options.delay || !n.options.delay.show) return n.show(); 378 clearTimeout(this.timeout), n.hoverState = "in", this.timeout = setTimeout(function () { 379 n.hoverState == "in" && n.show() 380 }, n.options.delay.show) 381 }, 382 leave: function (t) { 383 var n = e(t.currentTarget)[this.type](this._options).data(this.type); 384 this.timeout && clearTimeout(this.timeout); 385 if (!n.options.delay || !n.options.delay.hide) return n.hide(); 386 n.hoverState = "out", this.timeout = setTimeout(function () { 387 n.hoverState == "out" && n.hide() 388 }, n.options.delay.hide) 389 }, 390 show: function () { 391 var e, t, n, r, i, s, o; 392 if (this.hasContent() && this.enabled) { 393 e = this.tip(), this.setContent(), this.options.animation && e.addClass("fade"), s = typeof this.options.placement == "function" ? this.options.placement.call(this, e[0], this.$element[0]) : this.options.placement, t = /in/.test(s), e.remove().css({ 394 top: 0, 395 left: 0, 396 display: "block" 397 }).appendTo(t ? this.$element : document.body), n = this.getPosition(t), r = e[0].offsetWidth, i = e[0].offsetHeight; 398 switch (t ? s.split(" ")[1] : s) { 399 case "bottom": 400 o = { 401 top: n.top + n.height, 402 left: n.left + n.width / 2 - r / 2 403 }; 404 break; 405 case "top": 406 o = { 407 top: n.top - i, 408 left: n.left + n.width / 2 - r / 2 409 }; 410 break; 411 412 case "left": 413 o = { 414 top: n.top + n.height / 2 - i / 2, 415 left: n.left - r 416 }; 417 break; 418 case "right": 419 o = { 420 top: n.top + n.height / 2 - i / 2, 421 left: n.left + n.width 422 } 423 } 424 e.css(o).addClass(s).addClass("in") 425 } 426 }, 427 setContent: function () { 428 var e = this.tip(), 429 t = this.getTitle(); 430 e.find(".tooltip-inner")[this.options.html ? "html" : "text"](t), e.removeClass("fade in top bottom left right") 431 }, 432 hide: function () { 433 function r() { 434 var t = setTimeout(function () { 435 n.off(e.support.transition.end).remove() 436 }, 500); 437 n.one(e.support.transition.end, function () { 438 clearTimeout(t), n.remove() 439 }) 440 } 441 var t = this, 442 n = this.tip(); 443 return n.removeClass("in"), e.support.transition && this.$tip.hasClass("fade") ? r() : n.remove(), this 444 }, 445 fixTitle: function () { 446 var e = this.$element; 447 (e.attr("title") || typeof e.attr("data-original-title") != "string") && e.attr("data-original-title", e.attr("title") || "").removeAttr("title") 448 }, 449 hasContent: function () { 450 return this.getTitle() 451 }, 452 getPosition: function (t) { 453 return e.extend({}, t ? { 454 top: 0, 455 left: 0 456 } : this.$element.offset(), { 457 width: this.$element[0].offsetWidth, 458 height: this.$element[0].offsetHeight 459 }) 460 }, 461 getTitle: function () { 462 var e, t = this.$element, 463 n = this.options; 464 return e = t.attr("data-original-title") || (typeof n.title == "function" ? n.title.call(t[0]) : n.title), e 465 }, 466 tip: function () { 467 return this.$tip = this.$tip || e(this.options.template) 468 }, 469 validate: function () { 470 this.$element[0].parentNode || (this.hide(), this.$element = null, this.options = null) 471 }, 472 enable: function () { 473 this.enabled = !0 474 }, 475 disable: function () { 476 this.enabled = !1 477 }, 478 toggleEnabled: function () { 479 this.enabled = !this.enabled 480 }, 481 toggle: function () { 482 this[this.tip().hasClass("in") ? "hide" : "show"]() 483 }, 484 destroy: function () { 485 this.hide().$element.off("." + this.type).removeData(this.type) 486 } 487 }, e.fn.tooltip = function (n) { 488 return this.each(function () { 489 var r = e(this), 490 i = r.data("tooltip"), 491 s = typeof n == "object" && n; 492 i || r.data("tooltip", i = new t(this, s)), typeof n == "string" && i[n]() 493 }) 494 }, e.fn.tooltip.Constructor = t, e.fn.tooltip.defaults = { 495 animation: !0, 496 placement: "top", 497 selector: !1, 498 template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', 499 trigger: "hover", 500 title: "", 501 delay: 0, 502 html: !0 503 } 504}(window.jQuery), ! function (e) { 505 "use strict"; 506 var t = function (e, t) { 507 this.init("popover", e, t) 508 }; 509 t.prototype = e.extend({}, e.fn.tooltip.Constructor.prototype, { 510 constructor: t, 511 setContent: function () { 512 var e = this.tip(), 513 t = this.getTitle(), 514 n = this.getContent(); 515 e.find(".popover-title")[this.options.html ? "html" : "text"](t), e.find(".popover-content > *")[this.options.html ? "html" : "text"](n), e.removeClass("fade top bottom left right in") 516 }, 517 hasContent: function () { 518 return this.getTitle() || this.getContent() 519 }, 520 getContent: function () { 521 var e, t = this.$element, 522 n = this.options; 523 return e = t.attr("data-content") || (typeof n.content == "function" ? n.content.call(t[0]) : n.content), e 524 }, 525 tip: function () { 526 return this.$tip || (this.$tip = e(this.options.template)), this.$tip 527 }, 528 destroy: function () { 529 this.hide().$element.off("." + this.type).removeData(this.type) 530 } 531 }), e.fn.popover = function (n) { 532 return this.each(function () { 533 var r = e(this), 534 i = r.data("popover"), 535 s = typeof n == "object" && n; 536 i || r.data("popover", i = new t(this, s)), typeof n == "string" && i[n]() 537 }) 538 }, e.fn.popover.Constructor = t, e.fn.popover.defaults = e.extend({}, e.fn.tooltip.defaults, { 539 placement: "right", 540 trigger: "click", 541 content: "", 542 template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>' 543 }) 544}(window.jQuery), ! function (e) { 545 "use strict"; 546 547 function t(t, n) { 548 var r = e.proxy(this.process, this), 549 i = e(t).is("body") ? e(window) : e(t), 550 s; 551 this.options = e.extend({}, e.fn.scrollspy.defaults, n), this.$scrollElement = i.on("scroll.scroll-spy.data-api", r), this.selector = (this.options.target || (s = e(t).attr("href")) && s.replace(/.*(?=#[^\s]+$)/, "") || "") + " .nav li > a", this.$body = e("body"), this.refresh(), this.process() 552 } 553 t.prototype = { 554 constructor: t, 555 refresh: function () { 556 var t = this, 557 n; 558 this.offsets = e([]), this.targets = e([]), n = this.$body.find(this.selector).map(function () { 559 var t = e(this), 560 n = t.data("target") || t.attr("href"), 561 r = /^#\w/.test(n) && e(n); 562 return r && r.length && [ 563 [r.position().top, n] 564 ] || null 565 }).sort(function (e, t) { 566 return e[0] - t[0] 567 }).each(function () { 568 t.offsets.push(this[0]), t.targets.push(this[1]) 569 }) 570 }, 571 process: function () { 572 var e = this.$scrollElement.scrollTop() + this.options.offset, 573 t = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight, 574 n = t - this.$scrollElement.height(), 575 r = this.offsets, 576 i = this.targets, 577 s = this.activeTarget, 578 o; 579 if (e >= n) return s != (o = i.last()[0]) && this.activate(o); 580 for (o = r.length; o--;) s != i[o] && e >= r[o] && (!r[o + 1] || e <= r[o + 1]) && this.activate(i[o]) 581 }, 582 activate: function (t) { 583 var n, r; 584 this.activeTarget = t, e(this.selector).parent(".active").removeClass("active"), r = this.selector + '[data-target="' + t + '"],' + this.selector + '[href="' + t + '"]', n = e(r).parent("li").addClass("active"), n.parent(".dropdown-menu").length && (n = n.closest("li.dropdown").addClass("active")), n.trigger("activate") 585 } 586 }, e.fn.scrollspy = function (n) { 587 return this.each(function () { 588 var r = e(this), 589 i = r.data("scrollspy"), 590 s = typeof n == "object" && n; 591 i || r.data("scrollspy", i = new t(this, s)), typeof n == "string" && i[n]() 592 }) 593 }, e.fn.scrollspy.Constructor = t, e.fn.scrollspy.defaults = { 594 offset: 10 595 }, e(window).on("load", function () { 596 e('[data-spy="scroll"]').each(function () { 597 var t = e(this); 598 t.scrollspy(t.data()) 599 }) 600 }) 601}(window.jQuery), ! function (e) { 602 "use strict"; 603 var t = function (t) { 604 this.element = e(t) 605 }; 606 t.prototype = { 607 constructor: t, 608 show: function () { 609 var t = this.element, 610 n = t.closest("ul:not(.dropdown-menu)"), 611 r = t.attr("data-target"), 612 i, s, o; 613 r || (r = t.attr("href"), r = r && r.replace(/.*(?=#[^\s]*$)/, "")); 614 if (t.parent("li").hasClass("active")) return; 615 i = n.find(".active a").last()[0], o = e.Event("show", { 616 relatedTarget: i 617 }), t.trigger(o); 618 if (o.isDefaultPrevented()) return; 619 s = e(r), this.activate(t.parent("li"), n), this.activate(s, s.parent(), function () { 620 t.trigger({ 621 type: "shown", 622 relatedTarget: i 623 }) 624 }) 625 }, 626 activate: function (t, n, r) { 627 function o() { 628 i.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"), t.addClass("active"), s ? (t[0].offsetWidth, t.addClass("in")) : t.removeClass("fade"), t.parent(".dropdown-menu") && t.closest("li.dropdown").addClass("active"), r && r() 629 } 630 var i = n.find("> .active"), 631 s = r && e.support.transition && i.hasClass("fade"); 632 s ? i.one(e.support.transition.end, o) : o(), i.removeClass("in") 633 } 634 }, e.fn.tab = function (n) { 635 return this.each(function () { 636 var r = e(this), 637 i = r.data("tab"); 638 i || r.data("tab", i = new t(this)), typeof n == "string" && i[n]() 639 }) 640 }, e.fn.tab.Constructor = t, e(function () { 641 e("body").on("click.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"]', function (t) { 642 t.preventDefault(), e(this).tab("show") 643 }) 644 }) 645}(window.jQuery), ! function (e) { 646 "use strict"; 647 var t = function (t, n) { 648 this.$element = e(t), this.options = e.extend({}, e.fn.typeahead.defaults, n), this.matcher = this.options.matcher || this.matcher, this.sorter = this.options.sorter || this.sorter, this.highlighter = this.options.highlighter || this.highlighter, this.updater = this.options.updater || this.updater, this.$menu = e(this.options.menu).appendTo("body"), this.source = this.options.source, this.shown = !1, this.listen() 649 }; 650 t.prototype = { 651 constructor: t, 652 select: function () { 653 var e = this.$menu.find(".active").attr("data-value"); 654 return this.$element.val(this.updater(e)).change(), this.hide() 655 }, 656 updater: function (e) { 657 return e 658 }, 659 show: function () { 660 var t = e.extend({}, this.$element.offset(), { 661 height: this.$element[0].offsetHeight 662 }); 663 return this.$menu.css({ 664 top: t.top + t.height, 665 left: t.left 666 }), this.$menu.show(), this.shown = !0, this 667 }, 668 hide: function () { 669 return this.$menu.hide(), this.shown = !1, this 670 }, 671 lookup: function (t) { 672 var n; 673 return this.query = this.$element.val(), !this.query || this.query.length < this.options.minLength ? this.shown ? this.hide() : this : (n = e.isFunction(this.source) ? this.source(this.query, e.proxy(this.process, this)) : this.source, n ? this.process(n) : this) 674 }, 675 process: function (t) { 676 var n = this; 677 return t = e.grep(t, function (e) { 678 return n.matcher(e) 679 }), t = this.sorter(t), t.length ? this.render(t.slice(0, this.options.items)).show() : this.shown ? this.hide() : this 680 }, 681 matcher: function (e) { 682 return~ e.toLowerCase().indexOf(this.query.toLowerCase()) 683 }, 684 sorter: function (e) { 685 var t = [], 686 n = [], 687 r = [], 688 i; 689 while (i = e.shift()) i.toLowerCase().indexOf(this.query.toLowerCase()) ? ~i.indexOf(this.query) ? n.push(i) : r.push(i) : t.push(i); 690 return t.concat(n, r) 691 }, 692 highlighter: function (e) { 693 var t = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"); 694 return e.replace(new RegExp("(" + t + ")", "ig"), function (e, t) { 695 return "<strong>" + t + "</strong>" 696 }) 697 }, 698 render: function (t) { 699 var n = this; 700 return t = e(t).map(function (t, r) { 701 return t = e(n.options.item).attr("data-value", r), t.find("a").html(n.highlighter(r)), t[0] 702 }), t.first().addClass("active"), this.$menu.html(t), this 703 }, 704 next: function (t) { 705 var n = this.$menu.find(".active").removeClass("active"), 706 r = n.next(); 707 r.length || (r = e(this.$menu.find("li")[0])), r.addClass("active") 708 }, 709 prev: function (e) { 710 var t = this.$menu.find(".active").removeClass("active"), 711 n = t.prev(); 712 n.length || (n = this.$menu.find("li").last()), n.addClass("active") 713 }, 714 listen: function () { 715 this.$element.on("blur", e.proxy(this.blur, this)).on("keypress", e.proxy(this.keypress, this)).on("keyup", e.proxy(this.keyup, this)), (e.browser.chrome || e.browser.webkit || e.browser.msie) && this.$element.on("keydown", e.proxy(this.keydown, this)), this.$menu.on("click", e.proxy(this.click, this)).on("mouseenter", "li", e.proxy(this.mouseenter, this)) 716 }, 717 move: function (e) { 718 if (!this.shown) return; 719 switch (e.keyCode) { 720 case 9: 721 case 13: 722 case 27: 723 e.preventDefault(); 724 break; 725 case 38: 726 e.preventDefault(), this.prev(); 727 break; 728 case 40: 729 e.preventDefault(), this.next() 730 } 731 e.stopPropagation() 732 }, 733 keydown: function (t) { 734 this.suppressKeyPressRepeat = !~e.inArray(t.keyCode, [40, 38, 9, 13, 27]), this.move(t) 735 }, 736 keypress: function (e) { 737 if (this.suppressKeyPressRepeat) return; 738 this.move(e) 739 }, 740 keyup: function (e) { 741 switch (e.keyCode) { 742 case 40: 743 case 38: 744 break; 745 case 9: 746 case 13: 747 if (!this.shown) return; 748 this.select(); 749 break; 750 case 27: 751 if (!this.shown) return; 752 this.hide(); 753 break; 754 default: 755 this.lookup() 756 } 757 e.stopPropagation(), e.preventDefault() 758 }, 759 blur: function (e) { 760 var t = this; 761 setTimeout(function () { 762 t.hide() 763 }, 150) 764 }, 765 click: function (e) { 766 e.stopPropagation(), e.preventDefault(), this.select() 767 }, 768 mouseenter: function (t) { 769 this.$menu.find(".active").removeClass("active"), e(t.currentTarget).addClass("active") 770 } 771 }, e.fn.typeahead = function (n) { 772 return this.each(function () { 773 var r = e(this), 774 i = r.data("typeahead"), 775 s = typeof n == "object" && n; 776 i || r.data("typeahead", i = new t(this, s)), typeof n == "string" && i[n]() 777 }) 778 }, e.fn.typeahead.defaults = { 779 source: [], 780 items: 8, 781 menu: '<ul class="typeahead dropdown-menu"></ul>', 782 item: '<li><a href="#"></a></li>', 783 minLength: 1 784 }, e.fn.typeahead.Constructor = t, e(function () { 785 e("body").on("focus.typeahead.data-api", '[data-provide="typeahead"]', function (t) { 786 var n = e(this); 787 if (n.data("typeahead")) return; 788 t.preventDefault(), n.typeahead(n.data()) 789 }) 790 }) 791}(window.jQuery), ! function (e) { 792 "use strict"; 793 var t = function (t, n) { 794 this.options = e.extend({}, e.fn.affix.defaults, n), this.$window = e(window).on("scroll.affix.data-api", e.proxy(this.checkPosition, this)), this.$element = e(t), this.checkPosition() 795 }; 796 t.prototype.checkPosition = function () { 797 if (!this.$element.is(":visible")) return; 798 var t = e(document).height(), 799 n = this.$window.scrollTop(), 800 r = this.$element.offset(), 801 i = this.options.offset, 802 s = i.bottom, 803 o = i.top, 804 u = "affix affix-top affix-bottom", 805 a; 806 typeof i != "object" && (s = o = i), typeof o == "function" && (o = i.top()), typeof s == "function" && (s = i.bottom()), a = this.unpin != null && n + this.unpin <= r.top ? !1 : s != null && r.top + this.$element.height() >= t - s ? "bottom" : o != null && n <= o ? "top" : !1; 807 if (this.affixed === a) return; 808 this.affixed = a, this.unpin = a == "bottom" ? r.top - n : null, this.$element.removeClass(u).addClass("affix" + (a ? "-" + a : "")) 809 }, e.fn.affix = function (n) { 810 return this.each(function () { 811 var r = e(this), 812 i = r.data("affix"), 813 s = typeof n == "object" && n; 814 i || r.data("affix", i = new t(this, s)), typeof n == "string" && i[n]() 815 }) 816 }, e.fn.affix.Constructor = t, e.fn.affix.defaults = { 817 offset: 0 818 }, e(window).on("load", function () { 819 e('[data-spy="affix"]').each(function () { 820 var t = e(this), 821 n = t.data(); 822 n.offset = n.offset || {}, n.offsetBottom && (n.offset.bottom = n.offsetBottom), n.offsetTop && (n.offset.top = n.offsetTop), t.affix(n) 823 }) 824 }) 825}(window.jQuery);
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.