vendor: 52,869 bytes, lines 1-1413
1/*! 2 * Bootstrap v3.3.7 (http://getbootstrap.com) 3 * Copyright 2011-2016 Twitter, Inc. 4 * Licensed under the MIT license 5 */ 6if ("undefined" == typeof jQuery) 7 throw new Error("Bootstrap's JavaScript requires jQuery"); 8+function(a) { 9 "use strict"; 10 var b = a.fn.jquery.split(" ")[0].split("."); 11 if (b[0] < 2 && b[1] < 9 || 1 == b[0] && 9 == b[1] && b[2] < 1 || b[0] > 3) 12 throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4") 13}(jQuery), 14+function(a) { 15 "use strict"; 16 function b() { 17 var a = document.createElement("bootstrap") 18 , b = { 19 WebkitTransition: "webkitTransitionEnd", 20 MozTransition: "transitionend", 21 OTransition: "oTransitionEnd otransitionend", 22 transition: "transitionend" 23 }; 24 for (var c in b) 25 if (void 0 !== a.style[c]) 26 return { 27 end: b[c] 28 }; 29 return !1 30 } 31 a.fn.emulateTransitionEnd = function(b) { 32 var c = !1 33 , d = this; 34 a(this).one("bsTransitionEnd", function() { 35 c = !0 36 }); 37 var e = function() { 38 c || a(d).trigger(a.support.transition.end) 39 }; 40 return setTimeout(e, b), 41 this 42 } 43 , 44 a(function() { 45 a.support.transition = b(), 46 a.support.transition && (a.event.special.bsTransitionEnd = { 47 bindType: a.support.transition.end, 48 delegateType: a.support.transition.end, 49 handle: function(b) { 50 if (a(b.target).is(this)) 51 return b.handleObj.handler.apply(this, arguments) 52 } 53 }) 54 }) 55}(jQuery), 56+function(a) { 57 "use strict"; 58 function b(b) { 59 return this.each(function() { 60 var c = a(this) 61 , e = c.data("bs.alert"); 62 e || c.data("bs.alert", e = new d(this)), 63 "string" == typeof b && e[b].call(c) 64 }) 65 } 66 var c = '[data-dismiss="alert"]' 67 , d = function(b) { 68 a(b).on("click", c, this.close) 69 }; 70 d.VERSION = "3.3.7", 71 d.TRANSITION_DURATION = 150, 72 d.prototype.close = function(b) { 73 function c() { 74 g.detach().trigger("closed.bs.alert").remove() 75 } 76 var e = a(this) 77 , f = e.attr("data-target"); 78 f || (f = e.attr("href"), 79 f = f && f.replace(/.*(?=#[^\s]*$)/, "")); 80 var g = a("#" === f ? [] : f); 81 b && b.preventDefault(), 82 g.length || (g = e.closest(".alert")), 83 g.trigger(b = a.Event("close.bs.alert")), 84 b.isDefaultPrevented() || (g.removeClass("in"), 85 a.support.transition && g.hasClass("fade") ? g.one("bsTransitionEnd", c).emulateTransitionEnd(d.TRANSITION_DURATION) : c()) 86 } 87 ; 88 var e = a.fn.alert; 89 a.fn.alert = b, 90 a.fn.alert.Constructor = d, 91 a.fn.alert.noConflict = function() { 92 return a.fn.alert = e, 93 this 94 } 95 , 96 a(document).on("click.bs.alert.data-api", c, d.prototype.close) 97}(jQuery), 98+function(a) { 99 "use strict"; 100 function b(b) { 101 return this.each(function() { 102 var d = a(this) 103 , e = d.data("bs.button") 104 , f = "object" == typeof b && b; 105 e || d.data("bs.button", e = new c(this,f)), 106 "toggle" == b ? e.toggle() : b && e.setState(b) 107 }) 108 } 109 var c = function(b, d) { 110 this.$element = a(b), 111 this.options = a.extend({}, c.DEFAULTS, d), 112 this.isLoading = !1 113 }; 114 c.VERSION = "3.3.7", 115 c.DEFAULTS = { 116 loadingText: "loading..." 117 }, 118 c.prototype.setState = function(b) { 119 var c = "disabled" 120 , d = this.$element 121 , e = d.is("input") ? "val" : "html" 122 , f = d.data(); 123 b += "Text", 124 null == f.resetText && d.data("resetText", d[e]()), 125 setTimeout(a.proxy(function() { 126 d[e](null == f[b] ? this.options[b] : f[b]), 127 "loadingText" == b ? (this.isLoading = !0, 128 d.addClass(c).attr(c, c).prop(c, !0)) : this.isLoading && (this.isLoading = !1, 129 d.removeClass(c).removeAttr(c).prop(c, !1)) 130 }, this), 0) 131 } 132 , 133 c.prototype.toggle = function() { 134 var a = !0 135 , b = this.$element.closest('[data-toggle="buttons"]'); 136 if (b.length) { 137 var c = this.$element.find("input"); 138 "radio" == c.prop("type") ? (c.prop("checked") && (a = !1), 139 b.find(".active").removeClass("active"), 140 this.$element.addClass("active")) : "checkbox" == c.prop("type") && (c.prop("checked") !== this.$element.hasClass("active") && (a = !1), 141 this.$element.toggleClass("active")), 142 c.prop("checked", this.$element.hasClass("active")), 143 a && c.trigger("change") 144 } else 145 this.$element.attr("aria-pressed", !this.$element.hasClass("active")), 146 this.$element.toggleClass("active") 147 } 148 ; 149 var d = a.fn.button; 150 a.fn.button = b, 151 a.fn.button.Constructor = c, 152 a.fn.button.noConflict = function() { 153 return a.fn.button = d, 154 this 155 } 156 , 157 a(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function(c) { 158 var d = a(c.target).closest(".btn"); 159 b.call(d, "toggle"), 160 a(c.target).is('input[type="radio"], input[type="checkbox"]') || (c.preventDefault(), 161 d.is("input,button") ? d.trigger("focus") : d.find("input:visible,button:visible").first().trigger("focus")) 162 }).on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function(b) { 163 a(b.target).closest(".btn").toggleClass("focus", /^focus(in)?$/.test(b.type)) 164 }) 165}(jQuery), 166+function(a) { 167 "use strict"; 168 function b(b) { 169 return this.each(function() { 170 var d = a(this) 171 , e = d.data("bs.carousel") 172 , f = a.extend({}, c.DEFAULTS, d.data(), "object" == typeof b && b) 173 , g = "string" == typeof b ? b : f.slide; 174 e || d.data("bs.carousel", e = new c(this,f)), 175 "number" == typeof b ? e.to(b) : g ? e[g]() : f.interval && e.pause().cycle() 176 }) 177 } 178 var c = function(b, c) { 179 this.$element = a(b), 180 this.$indicators = this.$element.find(".carousel-indicators"), 181 this.options = c, 182 this.paused = null, 183 this.sliding = null, 184 this.interval = null, 185 this.$active = null, 186 this.$items = null, 187 this.options.keyboard && this.$element.on("keydown.bs.carousel", a.proxy(this.keydown, this)), 188 "hover" == this.options.pause && !("ontouchstart"in document.documentElement) && this.$element.on("mouseenter.bs.carousel", a.proxy(this.pause, this)).on("mouseleave.bs.carousel", a.proxy(this.cycle, this)) 189 }; 190 c.VERSION = "3.3.7", 191 c.TRANSITION_DURATION = 600, 192 c.DEFAULTS = { 193 interval: 5e3, 194 pause: "hover", 195 wrap: !0, 196 keyboard: !0 197 }, 198 c.prototype.keydown = function(a) { 199 if (!/input|textarea/i.test(a.target.tagName)) { 200 switch (a.which) { 201 case 37: 202 this.prev(); 203 break; 204 case 39: 205 this.next(); 206 break; 207 default: 208 return 209 } 210 a.preventDefault() 211 } 212 } 213 , 214 c.prototype.cycle = function(b) { 215 return b || (this.paused = !1), 216 this.interval && clearInterval(this.interval), 217 this.options.interval && !this.paused && (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)), 218 this 219 } 220 , 221 c.prototype.getItemIndex = function(a) { 222 return this.$items = a.parent().children(".item"), 223 this.$items.index(a || this.$active) 224 } 225 , 226 c.prototype.getItemForDirection = function(a, b) { 227 var c = this.getItemIndex(b) 228 , d = "prev" == a && 0 === c || "next" == a && c == this.$items.length - 1; 229 if (d && !this.options.wrap) 230 return b; 231 var e = "prev" == a ? -1 : 1 232 , f = (c + e) % this.$items.length; 233 return this.$items.eq(f) 234 } 235 , 236 c.prototype.to = function(a) { 237 var b = this 238 , c = this.getItemIndex(this.$active = this.$element.find(".item.active")); 239 if (!(a > this.$items.length - 1 || a < 0)) 240 return this.sliding ? this.$element.one("slid.bs.carousel", function() { 241 b.to(a) 242 }) : c == a ? this.pause().cycle() : this.slide(a > c ? "next" : "prev", this.$items.eq(a)) 243 } 244 , 245 c.prototype.pause = function(b) { 246 return b || (this.paused = !0), 247 this.$element.find(".next, .prev").length && a.support.transition && (this.$element.trigger(a.support.transition.end), 248 this.cycle(!0)), 249 this.interval = clearInterval(this.interval), 250 this 251 } 252 , 253 c.prototype.next = function() { 254 if (!this.sliding) 255 return this.slide("next") 256 } 257 , 258 c.prototype.prev = function() { 259 if (!this.sliding) 260 return this.slide("prev") 261 } 262 , 263 c.prototype.slide = function(b, d) { 264 var e = this.$element.find(".item.active") 265 , f = d || this.getItemForDirection(b, e) 266 , g = this.interval 267 , h = "next" == b ? "left" : "right" 268 , i = this; 269 if (f.hasClass("active")) 270 return this.sliding = !1; 271 var j = f[0] 272 , k = a.Event("slide.bs.carousel", { 273 relatedTarget: j, 274 direction: h 275 }); 276 if (this.$element.trigger(k), 277 !k.isDefaultPrevented()) { 278 if (this.sliding = !0, 279 g && this.pause(), 280 this.$indicators.length) { 281 this.$indicators.find(".active").removeClass("active"); 282 var l = a(this.$indicators.children()[this.getItemIndex(f)]); 283 l && l.addClass("active") 284 } 285 var m = a.Event("slid.bs.carousel", { 286 relatedTarget: j, 287 direction: h 288 }); 289 return a.support.transition && this.$element.hasClass("slide") ? (f.addClass(b), 290 f[0].offsetWidth, 291 e.addClass(h), 292 f.addClass(h), 293 e.one("bsTransitionEnd", function() { 294 f.removeClass([b, h].join(" ")).addClass("active"), 295 e.removeClass(["active", h].join(" ")), 296 i.sliding = !1, 297 setTimeout(function() { 298 i.$element.trigger(m) 299 }, 0) 300 }).emulateTransitionEnd(c.TRANSITION_DURATION)) : (e.removeClass("active"), 301 f.addClass("active"), 302 this.sliding = !1, 303 this.$element.trigger(m)), 304 g && this.cycle(), 305 this 306 } 307 } 308 ; 309 var d = a.fn.carousel; 310 a.fn.carousel = b, 311 a.fn.carousel.Constructor = c, 312 a.fn.carousel.noConflict = function() { 313 return a.fn.carousel = d, 314 this 315 } 316 ; 317 var e = function(c) { 318 var d, e = a(this), f = a(e.attr("data-target") || (d = e.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, "")); 319 if (f.hasClass("carousel")) { 320 var g = a.extend({}, f.data(), e.data()) 321 , h = e.attr("data-slide-to"); 322 h && (g.interval = !1), 323 b.call(f, g), 324 h && f.data("bs.carousel").to(h), 325 c.preventDefault() 326 } 327 }; 328 a(document).on("click.bs.carousel.data-api", "[data-slide]", e).on("click.bs.carousel.data-api", "[data-slide-to]", e), 329 a(window).on("load", function() { 330 a('[data-ride="carousel"]').each(function() { 331 var c = a(this); 332 b.call(c, c.data()) 333 }) 334 }) 335}(jQuery), 336+function(a) { 337 "use strict"; 338 function b(b) { 339 var c, d = b.attr("data-target") || (c = b.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, ""); 340 return a(d) 341 } 342 function c(b) { 343 return this.each(function() { 344 var c = a(this) 345 , e = c.data("bs.collapse") 346 , f = a.extend({}, d.DEFAULTS, c.data(), "object" == typeof b && b); 347 !e && f.toggle && /show|hide/.test(b) && (f.toggle = !1), 348 e || c.data("bs.collapse", e = new d(this,f)), 349 "string" == typeof b && e[b]() 350 }) 351 } 352 var d = function(b, c) { 353 this.$element = a(b), 354 this.options = a.extend({}, d.DEFAULTS, c), 355 this.$trigger = a('[data-toggle="collapse"][href="#' + b.id + '"],[data-toggle="collapse"][data-target="#' + b.id + '"]'), 356 this.transitioning = null, 357 this.options.parent ? this.$parent = this.getParent() : this.addAriaAndCollapsedClass(this.$element, this.$trigger), 358 this.options.toggle && this.toggle() 359 }; 360 d.VERSION = "3.3.7", 361 d.TRANSITION_DURATION = 350, 362 d.DEFAULTS = { 363 toggle: !0 364 }, 365 d.prototype.dimension = function() { 366 var a = this.$element.hasClass("width"); 367 return a ? "width" : "height" 368 } 369 , 370 d.prototype.show = function() { 371 if (!this.transitioning && !this.$element.hasClass("in")) { 372 var b, e = this.$parent && this.$parent.children(".panel").children(".in, .collapsing"); 373 if (!(e && e.length && (b = e.data("bs.collapse"), 374 b && b.transitioning))) { 375 var f = a.Event("show.bs.collapse"); 376 if (this.$element.trigger(f), 377 !f.isDefaultPrevented()) { 378 e && e.length && (c.call(e, "hide"), 379 b || e.data("bs.collapse", null)); 380 var g = this.dimension(); 381 this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded", !0), 382 this.$trigger.removeClass("collapsed").attr("aria-expanded", !0), 383 this.transitioning = 1; 384 var h = function() { 385 this.$element.removeClass("collapsing").addClass("collapse in")[g](""), 386 this.transitioning = 0, 387 this.$element.trigger("shown.bs.collapse") 388 }; 389 if (!a.support.transition) 390 return h.call(this); 391 var i = a.camelCase(["scroll", g].join("-")); 392 this.$element.one("bsTransitionEnd", a.proxy(h, this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i]) 393 } 394 } 395 } 396 } 397 , 398 d.prototype.hide = function() { 399 if (!this.transitioning && this.$element.hasClass("in")) { 400 var b = a.Event("hide.bs.collapse"); 401 if (this.$element.trigger(b), 402 !b.isDefaultPrevented()) { 403 var c = this.dimension(); 404 this.$element[c](this.$element[c]())[0].offsetHeight, 405 this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded", !1), 406 this.$trigger.addClass("collapsed").attr("aria-expanded", !1), 407 this.transitioning = 1; 408 var e = function() { 409 this.transitioning = 0, 410 this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse") 411 }; 412 return a.support.transition ? void this.$element[c](0).one("bsTransitionEnd", a.proxy(e, this)).emulateTransitionEnd(d.TRANSITION_DURATION) : e.call(this) 413 } 414 } 415 } 416 , 417 d.prototype.toggle = function() { 418 this[this.$element.hasClass("in") ? "hide" : "show"]() 419 } 420 , 421 d.prototype.getParent = function() { 422 return a(this.options.parent).find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]').each(a.proxy(function(c, d) { 423 var e = a(d); 424 this.addAriaAndCollapsedClass(b(e), e) 425 }, this)).end() 426 } 427 , 428 d.prototype.addAriaAndCollapsedClass = function(a, b) { 429 var c = a.hasClass("in"); 430 a.attr("aria-expanded", c), 431 b.toggleClass("collapsed", !c).attr("aria-expanded", c) 432 } 433 ; 434 var e = a.fn.collapse; 435 a.fn.collapse = c, 436 a.fn.collapse.Constructor = d, 437 a.fn.collapse.noConflict = function() { 438 return a.fn.collapse = e, 439 this 440 } 441 , 442 a(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function(d) { 443 var e = a(this); 444 e.attr("data-target") || d.preventDefault(); 445 var f = b(e) 446 , g = f.data("bs.collapse") 447 , h = g ? "toggle" : e.data(); 448 c.call(f, h) 449 }) 450}(jQuery), 451+function(a) { 452 "use strict"; 453 function b(b) { 454 var c = b.attr("data-target"); 455 c || (c = b.attr("href"), 456 c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, "")); 457 var d = c && a(c); 458 return d && d.length ? d : b.parent() 459 } 460 function c(c) { 461 c && 3 === c.which || (a(e).remove(), 462 a(f).each(function() { 463 var d = a(this) 464 , e = b(d) 465 , f = { 466 relatedTarget: this 467 }; 468 e.hasClass("open") && (c && "click" == c.type && /input|textarea/i.test(c.target.tagName) && a.contains(e[0], c.target) || (e.trigger(c = a.Event("hide.bs.dropdown", f)), 469 c.isDefaultPrevented() || (d.attr("aria-expanded", "false"), 470 e.removeClass("open").trigger(a.Event("hidden.bs.dropdown", f))))) 471 })) 472 } 473 function d(b) { 474 return this.each(function() { 475 var c = a(this) 476 , d = c.data("bs.dropdown"); 477 d || c.data("bs.dropdown", d = new g(this)), 478 "string" == typeof b && d[b].call(c) 479 }) 480 } 481 var e = ".dropdown-backdrop" 482 , f = '[data-toggle="dropdown"]' 483 , g = function(b) { 484 a(b).on("click.bs.dropdown", this.toggle) 485 }; 486 g.VERSION = "3.3.7", 487 g.prototype.toggle = function(d) { 488 var e = a(this); 489 if (!e.is(".disabled, :disabled")) { 490 var f = b(e) 491 , g = f.hasClass("open"); 492 if (c(), 493 !g) { 494 "ontouchstart"in document.documentElement && !f.closest(".navbar-nav").length && a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click", c); 495 var h = { 496 relatedTarget: this 497 }; 498 if (f.trigger(d = a.Event("show.bs.dropdown", h)), 499 d.isDefaultPrevented()) 500 return; 501 e.trigger("focus").attr("aria-expanded", "true"), 502 f.toggleClass("open").trigger(a.Event("shown.bs.dropdown", h)) 503 } 504 return !1 505 } 506 } 507 , 508 g.prototype.keydown = function(c) { 509 if (/(38|40|27|32)/.test(c.which) && !/input|textarea/i.test(c.target.tagName)) { 510 var d = a(this); 511 if (c.preventDefault(), 512 c.stopPropagation(), 513 !d.is(".disabled, :disabled")) { 514 var e = b(d) 515 , g = e.hasClass("open"); 516 if (!g && 27 != c.which || g && 27 == c.which) 517 return 27 == c.which && e.find(f).trigger("focus"), 518 d.trigger("click"); 519 var h = " li:not(.disabled):visible a" 520 , i = e.find(".dropdown-menu" + h); 521 if (i.length) { 522 var j = i.index(c.target); 523 38 == c.which && j > 0 && j--, 524 40 == c.which && j < i.length - 1 && j++, 525 ~j || (j = 0), 526 i.eq(j).trigger("focus") 527 } 528 } 529 } 530 } 531 ; 532 var h = a.fn.dropdown; 533 a.fn.dropdown = d, 534 a.fn.dropdown.Constructor = g, 535 a.fn.dropdown.noConflict = function() { 536 return a.fn.dropdown = h, 537 this 538 } 539 , 540 a(document).on("click.bs.dropdown.data-api", c).on("click.bs.dropdown.data-api", ".dropdown form", function(a) { 541 a.stopPropagation() 542 }).on("click.bs.dropdown.data-api", f, g.prototype.toggle).on("keydown.bs.dropdown.data-api", f, g.prototype.keydown).on("keydown.bs.dropdown.data-api", ".dropdown-menu", g.prototype.keydown) 543}(jQuery), 544+function(a) { 545 "use strict"; 546 function b(b, d) { 547 return this.each(function() { 548 var e = a(this) 549 , f = e.data("bs.modal") 550 , g = a.extend({}, c.DEFAULTS, e.data(), "object" == typeof b && b); 551 f || e.data("bs.modal", f = new c(this,g)), 552 "string" == typeof b ? f[b](d) : g.show && f.show(d) 553 }) 554 } 555 var c = function(b, c) { 556 this.options = c, 557 this.$body = a(document.body), 558 this.$element = a(b), 559 this.$dialog = this.$element.find(".modal-dialog"), 560 this.$backdrop = null, 561 this.isShown = null, 562 this.originalBodyPad = null, 563 this.scrollbarWidth = 0, 564 this.ignoreBackdropClick = !1, 565 this.options.remote && this.$element.find(".modal-content").load(this.options.remote, a.proxy(function() { 566 this.$element.trigger("loaded.bs.modal") 567 }, this)) 568 }; 569 c.VERSION = "3.3.7", 570 c.TRANSITION_DURATION = 300, 571 c.BACKDROP_TRANSITION_DURATION = 150, 572 c.DEFAULTS = { 573 backdrop: !0, 574 keyboard: !0, 575 show: !0 576 }, 577 c.prototype.toggle = function(a) { 578 return this.isShown ? this.hide() : this.show(a) 579 } 580 , 581 c.prototype.show = function(b) { 582 var d = this 583 , e = a.Event("show.bs.modal", { 584 relatedTarget: b 585 }); 586 this.$element.trigger(e), 587 this.isShown || e.isDefaultPrevented() || (this.isShown = !0, 588 this.checkScrollbar(), 589 this.setScrollbar(), 590 this.$body.addClass("modal-open"), 591 this.escape(), 592 this.resize(), 593 this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this)), 594 this.$dialog.on("mousedown.dismiss.bs.modal", function() { 595 d.$element.one("mouseup.dismiss.bs.modal", function(b) { 596 a(b.target).is(d.$element) && (d.ignoreBackdropClick = !0) 597 }) 598 }), 599 this.backdrop(function() { 600 var e = a.support.transition && d.$element.hasClass("fade"); 601 d.$element.parent().length || d.$element.appendTo(d.$body), 602 d.$element.show().scrollTop(0), 603 d.adjustDialog(), 604 e && d.$element[0].offsetWidth, 605 d.$element.addClass("in"), 606 d.enforceFocus(); 607 var f = a.Event("shown.bs.modal", { 608 relatedTarget: b 609 }); 610 e ? d.$dialog.one("bsTransitionEnd", function() { 611 d.$element.trigger("focus").trigger(f) 612 }).emulateTransitionEnd(c.TRANSITION_DURATION) : d.$element.trigger("focus").trigger(f) 613 })) 614 } 615 , 616 c.prototype.hide = function(b) { 617 b && b.preventDefault(), 618 b = a.Event("hide.bs.modal"), 619 this.$element.trigger(b), 620 this.isShown && !b.isDefaultPrevented() && (this.isShown = !1, 621 this.escape(), 622 this.resize(), 623 a(document).off("focusin.bs.modal"), 624 this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"), 625 this.$dialog.off("mousedown.dismiss.bs.modal"), 626 a.support.transition && this.$element.hasClass("fade") ? this.$element.one("bsTransitionEnd", a.proxy(this.hideModal, this)).emulateTransitionEnd(c.TRANSITION_DURATION) : this.hideModal()) 627 } 628 , 629 c.prototype.enforceFocus = function() { 630 a(document).off("focusin.bs.modal").on("focusin.bs.modal", a.proxy(function(a) { 631 document === a.target || this.$element[0] === a.target || this.$element.has(a.target).length || this.$element.trigger("focus") 632 }, this)) 633 } 634 , 635 c.prototype.escape = function() { 636 this.isShown && this.options.keyboard ? this.$element.on("keydown.dismiss.bs.modal", a.proxy(function(a) { 637 27 == a.which && this.hide() 638 }, this)) : this.isShown || this.$element.off("keydown.dismiss.bs.modal") 639 } 640 , 641 c.prototype.resize = function() { 642 this.isShown ? a(window).on("resize.bs.modal", a.proxy(this.handleUpdate, this)) : a(window).off("resize.bs.modal") 643 } 644 , 645 c.prototype.hideModal = function() { 646 var a = this; 647 this.$element.hide(), 648 this.backdrop(function() { 649 a.$body.removeClass("modal-open"), 650 a.resetAdjustments(), 651 a.resetScrollbar(), 652 a.$element.trigger("hidden.bs.modal") 653 }) 654 } 655 , 656 c.prototype.removeBackdrop = function() { 657 this.$backdrop && this.$backdrop.remove(), 658 this.$backdrop = null 659 } 660 , 661 c.prototype.backdrop = function(b) { 662 var d = this 663 , e = this.$element.hasClass("fade") ? "fade" : ""; 664 if (this.isShown && this.options.backdrop) { 665 var f = a.support.transition && e; 666 if (this.$backdrop = a(document.createElement("div")).addClass("modal-backdrop " + e).appendTo(this.$body), 667 this.$element.on("click.dismiss.bs.modal", a.proxy(function(a) { 668 return this.ignoreBackdropClick ? void (this.ignoreBackdropClick = !1) : void (a.target === a.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus() : this.hide())) 669 }, this)), 670 f && this.$backdrop[0].offsetWidth, 671 this.$backdrop.addClass("in"), 672 !b) 673 return; 674 f ? this.$backdrop.one("bsTransitionEnd", b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) : b() 675 } else if (!this.isShown && this.$backdrop) { 676 this.$backdrop.removeClass("in"); 677 var g = function() { 678 d.removeBackdrop(), 679 b && b() 680 }; 681 a.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one("bsTransitionEnd", g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) : g() 682 } else 683 b && b() 684 } 685 , 686 c.prototype.handleUpdate = function() { 687 this.adjustDialog() 688 } 689 , 690 c.prototype.adjustDialog = function() { 691 var a = this.$element[0].scrollHeight > document.documentElement.clientHeight; 692 this.$element.css({ 693 paddingLeft: !this.bodyIsOverflowing && a ? this.scrollbarWidth : "", 694 paddingRight: this.bodyIsOverflowing && !a ? this.scrollbarWidth : "" 695 }) 696 } 697 , 698 c.prototype.resetAdjustments = function() { 699 this.$element.css({ 700 paddingLeft: "", 701 paddingRight: "" 702 }) 703 } 704 , 705 c.prototype.checkScrollbar = function() { 706 var a = window.innerWidth; 707 if (!a) { 708 var b = document.documentElement.getBoundingClientRect(); 709 a = b.right - Math.abs(b.left) 710 } 711 this.bodyIsOverflowing = document.body.clientWidth < a, 712 this.scrollbarWidth = this.measureScrollbar() 713 } 714 , 715 c.prototype.setScrollbar = function() { 716 var a = parseInt(this.$body.css("padding-right") || 0, 10); 717 this.originalBodyPad = document.body.style.paddingRight || "", 718 this.bodyIsOverflowing && this.$body.css("padding-right", a + this.scrollbarWidth) 719 } 720 , 721 c.prototype.resetScrollbar = function() { 722 this.$body.css("padding-right", this.originalBodyPad) 723 } 724 , 725 c.prototype.measureScrollbar = function() { 726 var a = document.createElement("div"); 727 a.className = "modal-scrollbar-measure", 728 this.$body.append(a); 729 var b = a.offsetWidth - a.clientWidth; 730 return this.$body[0].removeChild(a), 731 b 732 } 733 ; 734 var d = a.fn.modal; 735 a.fn.modal = b, 736 a.fn.modal.Constructor = c, 737 a.fn.modal.noConflict = function() { 738 return a.fn.modal = d, 739 this 740 } 741 , 742 a(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function(c) { 743 var d = a(this) 744 , e = d.attr("href") 745 , f = a(d.attr("data-target") || e && e.replace(/.*(?=#[^\s]+$)/, "")) 746 , g = f.data("bs.modal") ? "toggle" : a.extend({ 747 remote: !/#/.test(e) && e 748 }, f.data(), d.data()); 749 d.is("a") && c.preventDefault(), 750 f.one("show.bs.modal", function(a) { 751 a.isDefaultPrevented() || f.one("hidden.bs.modal", function() { 752 d.is(":visible") && d.trigger("focus") 753 }) 754 }), 755 b.call(f, g, this) 756 }) 757}(jQuery), 758+function(a) { 759 "use strict"; 760 function b(b) { 761 return this.each(function() { 762 var d = a(this) 763 , e = d.data("bs.tooltip") 764 , f = "object" == typeof b && b; 765 !e && /destroy|hide/.test(b) || (e || d.data("bs.tooltip", e = new c(this,f)), 766 "string" == typeof b && e[b]()) 767 }) 768 } 769 var c = function(a, b) { 770 this.type = null, 771 this.options = null, 772 this.enabled = null, 773 this.timeout = null, 774 this.hoverState = null, 775 this.$element = null, 776 this.inState = null, 777 this.init("tooltip", a, b) 778 }; 779 c.VERSION = "3.3.7", 780 c.TRANSITION_DURATION = 150, 781 c.DEFAULTS = { 782 animation: !0, 783 placement: "top", 784 selector: !1, 785 template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', 786 trigger: "hover focus", 787 title: "", 788 delay: 0, 789 html: !1, 790 container: !1, 791 viewport: { 792 selector: "body", 793 padding: 0 794 } 795 }, 796 c.prototype.init = function(b, c, d) { 797 if (this.enabled = !0, 798 this.type = b, 799 this.$element = a(c), 800 this.options = this.getOptions(d), 801 this.$viewport = this.options.viewport && a(a.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : this.options.viewport.selector || this.options.viewport), 802 this.inState = { 803 click: !1, 804 hover: !1, 805 focus: !1 806 }, 807 this.$element[0]instanceof document.constructor && !this.options.selector) 808 throw new Error("`selector` option must be specified when initializing " + this.type + " on the window.document object!"); 809 for (var e = this.options.trigger.split(" "), f = e.length; f--; ) { 810 var g = e[f]; 811 if ("click" == g) 812 this.$element.on("click." + this.type, this.options.selector, a.proxy(this.toggle, this)); 813 else if ("manual" != g) { 814 var h = "hover" == g ? "mouseenter" : "focusin" 815 , i = "hover" == g ? "mouseleave" : "focusout"; 816 this.$element.on(h + "." + this.type, this.options.selector, a.proxy(this.enter, this)), 817 this.$element.on(i + "." + this.type, this.options.selector, a.proxy(this.leave, this)) 818 } 819 } 820 this.options.selector ? this._options = a.extend({}, this.options, { 821 trigger: "manual", 822 selector: "" 823 }) : this.fixTitle() 824 } 825 , 826 c.prototype.getDefaults = function() { 827 return c.DEFAULTS 828 } 829 , 830 c.prototype.getOptions = function(b) { 831 return b = a.extend({}, this.getDefaults(), this.$element.data(), b), 832 b.delay && "number" == typeof b.delay && (b.delay = { 833 show: b.delay, 834 hide: b.delay 835 }), 836 b 837 } 838 , 839 c.prototype.getDelegateOptions = function() { 840 var b = {} 841 , c = this.getDefaults(); 842 return this._options && a.each(this._options, function(a, d) { 843 c[a] != d && (b[a] = d) 844 }), 845 b 846 } 847 , 848 c.prototype.enter = function(b) { 849 var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type); 850 return c || (c = new this.constructor(b.currentTarget,this.getDelegateOptions()), 851 a(b.currentTarget).data("bs." + this.type, c)), 852 b instanceof a.Event && (c.inState["focusin" == b.type ? "focus" : "hover"] = !0), 853 c.tip().hasClass("in") || "in" == c.hoverState ? void (c.hoverState = "in") : (clearTimeout(c.timeout), 854 c.hoverState = "in", 855 c.options.delay && c.options.delay.show ? void (c.timeout = setTimeout(function() { 856 "in" == c.hoverState && c.show() 857 }, c.options.delay.show)) : c.show()) 858 } 859 , 860 c.prototype.isInStateTrue = function() { 861 for (var a in this.inState) 862 if (this.inState[a]) 863 return !0; 864 return !1 865 } 866 , 867 c.prototype.leave = function(b) { 868 var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type); 869 if (c || (c = new this.constructor(b.currentTarget,this.getDelegateOptions()), 870 a(b.currentTarget).data("bs." + this.type, c)), 871 b instanceof a.Event && (c.inState["focusout" == b.type ? "focus" : "hover"] = !1), 872 !c.isInStateTrue()) 873 return clearTimeout(c.timeout), 874 c.hoverState = "out", 875 c.options.delay && c.options.delay.hide ? void (c.timeout = setTimeout(function() { 876 "out" == c.hoverState && c.hide() 877 }, c.options.delay.hide)) : c.hide() 878 } 879 , 880 c.prototype.show = function() { 881 var b = a.Event("show.bs." + this.type); 882 if (this.hasContent() && this.enabled) { 883 this.$element.trigger(b); 884 var d = a.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]); 885 if (b.isDefaultPrevented() || !d) 886 return; 887 var e = this 888 , f = this.tip() 889 , g = this.getUID(this.type); 890 this.setContent(), 891 f.attr("id", g), 892 this.$element.attr("aria-describedby", g), 893 this.options.animation && f.addClass("fade"); 894 var h = "function" == typeof this.options.placement ? this.options.placement.call(this, f[0], this.$element[0]) : this.options.placement 895 , i = /\s?auto?\s?/i 896 , j = i.test(h); 897 j && (h = h.replace(i, "") || "top"), 898 f.detach().css({ 899 top: 0, 900 left: 0, 901 display: "block" 902 }).addClass(h).data("bs." + this.type, this), 903 this.options.container ? f.appendTo(this.options.container) : f.insertAfter(this.$element), 904 this.$element.trigger("inserted.bs." + this.type); 905 var k = this.getPosition() 906 , l = f[0].offsetWidth 907 , m = f[0].offsetHeight; 908 if (j) { 909 var n = h 910 , o = this.getPosition(this.$viewport); 911 h = "bottom" == h && k.bottom + m > o.bottom ? "top" : "top" == h && k.top - m < o.top ? "bottom" : "right" == h && k.right + l > o.width ? "left" : "left" == h && k.left - l < o.left ? "right" : h, 912 f.removeClass(n).addClass(h) 913 } 914 var p = this.getCalculatedOffset(h, k, l, m); 915 this.applyPlacement(p, h); 916 var q = function() { 917 var a = e.hoverState; 918 e.$element.trigger("shown.bs." + e.type), 919 e.hoverState = null, 920 "out" == a && e.leave(e) 921 }; 922 a.support.transition && this.$tip.hasClass("fade") ? f.one("bsTransitionEnd", q).emulateTransitionEnd(c.TRANSITION_DURATION) : q() 923 } 924 } 925 , 926 c.prototype.applyPlacement = function(b, c) { 927 var d = this.tip() 928 , e = d[0].offsetWidth 929 , f = d[0].offsetHeight 930 , g = parseInt(d.css("margin-top"), 10) 931 , h = parseInt(d.css("margin-left"), 10); 932 isNaN(g) && (g = 0), 933 isNaN(h) && (h = 0), 934 b.top += g, 935 b.left += h, 936 a.offset.setOffset(d[0], a.extend({ 937 using: function(a) { 938 d.css({ 939 top: Math.round(a.top), 940 left: Math.round(a.left) 941 }) 942 } 943 }, b), 0), 944 d.addClass("in"); 945 var i = d[0].offsetWidth 946 , j = d[0].offsetHeight; 947 "top" == c && j != f && (b.top = b.top + f - j); 948 var k = this.getViewportAdjustedDelta(c, b, i, j); 949 k.left ? b.left += k.left : b.top += k.top; 950 var l = /top|bottom/.test(c) 951 , m = l ? 2 * k.left - e + i : 2 * k.top - f + j 952 , n = l ? "offsetWidth" : "offsetHeight"; 953 d.offset(b), 954 this.replaceArrow(m, d[0][n], l) 955 } 956 , 957 c.prototype.replaceArrow = function(a, b, c) { 958 this.arrow().css(c ? "left" : "top", 50 * (1 - a / b) + "%").css(c ? "top" : "left", "") 959 } 960 , 961 c.prototype.setContent = function() { 962 var a = this.tip() 963 , b = this.getTitle(); 964 a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b), 965 a.removeClass("fade in top bottom left right") 966 } 967 , 968 c.prototype.hide = function(b) { 969 function d() { 970 "in" != e.hoverState && f.detach(), 971 e.$element && e.$element.removeAttr("aria-describedby").trigger("hidden.bs." + e.type), 972 b && b() 973 } 974 var e = this 975 , f = a(this.$tip) 976 , g = a.Event("hide.bs." + this.type); 977 if (this.$element.trigger(g), 978 !g.isDefaultPrevented()) 979 return f.removeClass("in"), 980 a.support.transition && f.hasClass("fade") ? f.one("bsTransitionEnd", d).emulateTransitionEnd(c.TRANSITION_DURATION) : d(), 981 this.hoverState = null, 982 this 983 } 984 , 985 c.prototype.fixTitle = function() { 986 var a = this.$element; 987 (a.attr("title") || "string" != typeof a.attr("data-original-title")) && a.attr("data-original-title", a.attr("title") || "").attr("title", "") 988 } 989 , 990 c.prototype.hasContent = function() { 991 return this.getTitle() 992 } 993 , 994 c.prototype.getPosition = function(b) { 995 b = b || this.$element; 996 var c = b[0] 997 , d = "BODY" == c.tagName 998 , e = c.getBoundingClientRect(); 999 null == e.width && (e = a.extend({}, e, { 1000 width: e.right - e.left, 1001 height: e.bottom - e.top 1002 })); 1003 var f = window.SVGElement && c instanceof window.SVGElement 1004 , g = d ? { 1005 top: 0, 1006 left: 0 1007 } : f ? null : b.offset() 1008 , h = { 1009 scroll: d ? document.documentElement.scrollTop || document.body.scrollTop : b.scrollTop() 1010 } 1011 , i = d ? { 1012 width: a(window).width(), 1013 height: a(window).height() 1014 } : null; 1015 return a.extend({}, e, h, i, g) 1016 } 1017 , 1018 c.prototype.getCalculatedOffset = function(a, b, c, d) { 1019 return "bottom" == a ? { 1020 top: b.top + b.height, 1021 left: b.left + b.width / 2 - c / 2 1022 } : "top" == a ? { 1023 top: b.top - d, 1024 left: b.left + b.width / 2 - c / 2 1025 } : "left" == a ? { 1026 top: b.top + b.height / 2 - d / 2, 1027 left: b.left - c 1028 } : { 1029 top: b.top + b.height / 2 - d / 2, 1030 left: b.left + b.width 1031 } 1032 } 1033 , 1034 c.prototype.getViewportAdjustedDelta = function(a, b, c, d) { 1035 var e = { 1036 top: 0, 1037 left: 0 1038 }; 1039 if (!this.$viewport) 1040 return e; 1041 var f = this.options.viewport && this.options.viewport.padding || 0 1042 , g = this.getPosition(this.$viewport); 1043 if (/right|left/.test(a)) { 1044 var h = b.top - f - g.scroll 1045 , i = b.top + f - g.scroll + d; 1046 h < g.top ? e.top = g.top - h : i > g.top + g.height && (e.top = g.top + g.height - i) 1047 } else { 1048 var j = b.left - f 1049 , k = b.left + f + c; 1050 j < g.left ? e.left = g.left - j : k > g.right && (e.left = g.left + g.width - k) 1051 } 1052 return e 1053 } 1054 , 1055 c.prototype.getTitle = function() { 1056 var a, b = this.$element, c = this.options; 1057 return a = b.attr("data-original-title") || ("function" == typeof c.title ? c.title.call(b[0]) : c.title) 1058 } 1059 , 1060 c.prototype.getUID = function(a) { 1061 do 1062 a += ~~(1e6 * Math.random()); 1063 while (document.getElementById(a));return a 1064 } 1065 , 1066 c.prototype.tip = function() { 1067 if (!this.$tip && (this.$tip = a(this.options.template), 1068 1 != this.$tip.length)) 1069 throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!"); 1070 return this.$tip 1071 } 1072 , 1073 c.prototype.arrow = function() { 1074 return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow") 1075 } 1076 , 1077 c.prototype.enable = function() { 1078 this.enabled = !0 1079 } 1080 , 1081 c.prototype.disable = function() { 1082 this.enabled = !1 1083 } 1084 , 1085 c.prototype.toggleEnabled = function() { 1086 this.enabled = !this.enabled 1087 } 1088 , 1089 c.prototype.toggle = function(b) { 1090 var c = this; 1091 b && (c = a(b.currentTarget).data("bs." + this.type), 1092 c || (c = new this.constructor(b.currentTarget,this.getDelegateOptions()), 1093 a(b.currentTarget).data("bs." + this.type, c))), 1094 b ? (c.inState.click = !c.inState.click, 1095 c.isInStateTrue() ? c.enter(c) : c.leave(c)) : c.tip().hasClass("in") ? c.leave(c) : c.enter(c) 1096 } 1097 , 1098 c.prototype.destroy = function() { 1099 var a = this; 1100 clearTimeout(this.timeout), 1101 this.hide(function() { 1102 a.$element.off("." + a.type).removeData("bs." + a.type), 1103 a.$tip && a.$tip.detach(), 1104 a.$tip = null, 1105 a.$arrow = null, 1106 a.$viewport = null, 1107 a.$element = null 1108 }) 1109 } 1110 ; 1111 var d = a.fn.tooltip; 1112 a.fn.tooltip = b, 1113 a.fn.tooltip.Constructor = c, 1114 a.fn.tooltip.noConflict = function() { 1115 return a.fn.tooltip = d, 1116 this 1117 } 1118}(jQuery), 1119+function(a) { 1120 "use strict"; 1121 function b(b) { 1122 return this.each(function() { 1123 var d = a(this) 1124 , e = d.data("bs.popover") 1125 , f = "object" == typeof b && b; 1126 !e && /destroy|hide/.test(b) || (e || d.data("bs.popover", e = new c(this,f)), 1127 "string" == typeof b && e[b]()) 1128 }) 1129 } 1130 var c = function(a, b) { 1131 this.init("popover", a, b) 1132 }; 1133 if (!a.fn.tooltip) 1134 throw new Error("Popover requires tooltip.js"); 1135 c.VERSION = "3.3.7", 1136 c.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, { 1137 placement: "right", 1138 trigger: "click", 1139 content: "", 1140 template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>' 1141 }), 1142 c.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype), 1143 c.prototype.constructor = c, 1144 c.prototype.getDefaults = function() { 1145 return c.DEFAULTS 1146 } 1147 , 1148 c.prototype.setContent = function() { 1149 var a = this.tip() 1150 , b = this.getTitle() 1151 , c = this.getContent(); 1152 a.find(".popover-title")[this.options.html ? "html" : "text"](b), 1153 a.find(".popover-content").children().detach().end()[this.options.html ? "string" == typeof c ? "html" : "append" : "text"](c), 1154 a.removeClass("fade top bottom left right in"), 1155 a.find(".popover-title").html() || a.find(".popover-title").hide() 1156 } 1157 , 1158 c.prototype.hasContent = function() { 1159 return this.getTitle() || this.getContent() 1160 } 1161 , 1162 c.prototype.getContent = function() { 1163 var a = this.$element 1164 , b = this.options; 1165 return a.attr("data-content") || ("function" == typeof b.content ? b.content.call(a[0]) : b.content) 1166 } 1167 , 1168 c.prototype.arrow = function() { 1169 return this.$arrow = this.$arrow || this.tip().find(".arrow") 1170 } 1171 ; 1172 var d = a.fn.popover; 1173 a.fn.popover = b, 1174 a.fn.popover.Constructor = c, 1175 a.fn.popover.noConflict = function() { 1176 return a.fn.popover = d, 1177 this 1178 } 1179}(jQuery), 1180+function(a) { 1181 "use strict"; 1182 function b(c, d) { 1183 this.$body = a(document.body), 1184 this.$scrollElement = a(a(c).is(document.body) ? window : c), 1185 this.options = a.extend({}, b.DEFAULTS, d), 1186 this.selector = (this.options.target || "") + " .nav li > a", 1187 this.offsets = [], 1188 this.targets = [], 1189 this.activeTarget = null, 1190 this.scrollHeight = 0, 1191 this.$scrollElement.on("scroll.bs.scrollspy", a.proxy(this.process, this)), 1192 this.refresh(), 1193 this.process() 1194 } 1195 function c(c) { 1196 return this.each(function() { 1197 var d = a(this) 1198 , e = d.data("bs.scrollspy") 1199 , f = "object" == typeof c && c; 1200 e || d.data("bs.scrollspy", e = new b(this,f)), 1201 "string" == typeof c && e[c]() 1202 }) 1203 } 1204 b.VERSION = "3.3.7", 1205 b.DEFAULTS = { 1206 offset: 10 1207 }, 1208 b.prototype.getScrollHeight = function() { 1209 return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) 1210 } 1211 , 1212 b.prototype.refresh = function() { 1213 var b = this 1214 , c = "offset" 1215 , d = 0; 1216 this.offsets = [], 1217 this.targets = [], 1218 this.scrollHeight = this.getScrollHeight(), 1219 a.isWindow(this.$scrollElement[0]) || (c = "position", 1220 d = this.$scrollElement.scrollTop()), 1221 this.$body.find(this.selector).map(function() { 1222 var b = a(this) 1223 , e = b.data("target") || b.attr("href") 1224 , f = /^#./.test(e) && a(e); 1225 return f && f.length && f.is(":visible") && [[f[c]().top + d, e]] || null 1226 }).sort(function(a, b) { 1227 return a[0] - b[0] 1228 }).each(function() { 1229 b.offsets.push(this[0]), 1230 b.targets.push(this[1]) 1231 }) 1232 } 1233 , 1234 b.prototype.process = function() { 1235 var a, b = this.$scrollElement.scrollTop() + this.options.offset, c = this.getScrollHeight(), d = this.options.offset + c - this.$scrollElement.height(), e = this.offsets, f = this.targets, g = this.activeTarget; 1236 if (this.scrollHeight != c && this.refresh(), 1237 b >= d) 1238 return g != (a = f[f.length - 1]) && this.activate(a); 1239 if (g && b < e[0]) 1240 return this.activeTarget = null, 1241 this.clear(); 1242 for (a = e.length; a--; ) 1243 g != f[a] && b >= e[a] && (void 0 === e[a + 1] || b < e[a + 1]) && this.activate(f[a]) 1244 } 1245 , 1246 b.prototype.activate = function(b) { 1247 this.activeTarget = b, 1248 this.clear(); 1249 var c = this.selector + '[data-target="' + b + '"],' + this.selector + '[href="' + b + '"]' 1250 , d = a(c).parents("li").addClass("active"); 1251 d.parent(".dropdown-menu").length && (d = d.closest("li.dropdown").addClass("active")), 1252 d.trigger("activate.bs.scrollspy") 1253 } 1254 , 1255 b.prototype.clear = function() { 1256 a(this.selector).parentsUntil(this.options.target, ".active").removeClass("active") 1257 } 1258 ; 1259 var d = a.fn.scrollspy; 1260 a.fn.scrollspy = c, 1261 a.fn.scrollspy.Constructor = b, 1262 a.fn.scrollspy.noConflict = function() { 1263 return a.fn.scrollspy = d, 1264 this 1265 } 1266 , 1267 a(window).on("load.bs.scrollspy.data-api", function() { 1268 a('[data-spy="scroll"]').each(function() { 1269 var b = a(this); 1270 c.call(b, b.data()) 1271 }) 1272 }) 1273}(jQuery), 1274+function(a) { 1275 "use strict"; 1276 function b(b) { 1277 return this.each(function() { 1278 var d = a(this) 1279 , e = d.data("bs.tab"); 1280 e || d.data("bs.tab", e = new c(this)), 1281 "string" == typeof b && e[b]() 1282 }) 1283 } 1284 var c = function(b) { 1285 this.element = a(b) 1286 }; 1287 c.VERSION = "3.3.7", 1288 c.TRANSITION_DURATION = 150, 1289 c.prototype.show = function() { 1290 var b = this.element 1291 , c = b.closest("ul:not(.dropdown-menu)") 1292 , d = b.data("target"); 1293 if (d || (d = b.attr("href"), 1294 d = d && d.replace(/.*(?=#[^\s]*$)/, "")), 1295 !b.parent("li").hasClass("active")) { 1296 var e = c.find(".active:last a") 1297 , f = a.Event("hide.bs.tab", { 1298 relatedTarget: b[0] 1299 }) 1300 , g = a.Event("show.bs.tab", { 1301 relatedTarget: e[0] 1302 }); 1303 if (e.trigger(f), 1304 b.trigger(g), 1305 !g.isDefaultPrevented() && !f.isDefaultPrevented()) { 1306 var h = a(d); 1307 this.activate(b.closest("li"), c), 1308 this.activate(h, h.parent(), function() { 1309 e.trigger({ 1310 type: "hidden.bs.tab", 1311 relatedTarget: b[0] 1312 }), 1313 b.trigger({ 1314 type: "shown.bs.tab", 1315 relatedTarget: e[0] 1316 }) 1317 }) 1318 } 1319 } 1320 } 1321 , 1322 c.prototype.activate = function(b, d, e) { 1323 function f() { 1324 g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !1), 1325 b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded", !0), 1326 h ? (b[0].offsetWidth, 1327 b.addClass("in")) : b.removeClass("fade"), 1328 b.parent(".dropdown-menu").length && b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !0), 1329 e && e() 1330 } 1331 var g = d.find("> .active") 1332 , h = e && a.support.transition && (g.length && g.hasClass("fade") || !!d.find("> .fade").length); 1333 g.length && h ? g.one("bsTransitionEnd", f).emulateTransitionEnd(c.TRANSITION_DURATION) : f(), 1334 g.removeClass("in") 1335 } 1336 ; 1337 var d = a.fn.tab; 1338 a.fn.tab = b, 1339 a.fn.tab.Constructor = c, 1340 a.fn.tab.noConflict = function() { 1341 return a.fn.tab = d, 1342 this 1343 } 1344 ; 1345 var e = function(c) { 1346 c.preventDefault(), 1347 b.call(a(this), "show") 1348 }; 1349 a(document).on("click.bs.tab.data-api", '[data-toggle="tab"]', e).on("click.bs.tab.data-api", '[data-toggle="pill"]', e) 1350}(jQuery), 1351+function(a) { 1352 "use strict"; 1353 function b(b) { 1354 return this.each(function() { 1355 var d = a(this) 1356 , e = d.data("bs.affix") 1357 , f = "object" == typeof b && b; 1358 e || d.data("bs.affix", e = new c(this,f)), 1359 "string" == typeof b && e[b]() 1360 }) 1361 } 1362 var c = function(b, d) { 1363 this.options = a.extend({}, c.DEFAULTS, d), 1364 this.$target = a(this.options.target).on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", a.proxy(this.checkPositionWithEventLoop, this)), 1365 this.$element = a(b), 1366 this.affixed = null, 1367 this.unpin = null, 1368 this.pinnedOffset = null, 1369 this.checkPosition() 1370 }; 1371 c.VERSION = "3.3.7", 1372 c.RESET = "affix affix-top affix-bottom", 1373 c.DEFAULTS = { 1374 offset: 0, 1375 target: window 1376 }, 1377 c.prototype.getState = function(a, b, c, d) { 1378 var e = this.$target.scrollTop() 1379 , f = this.$element.offset() 1380 , g = this.$target.height(); 1381 if (null != c && "top" == this.affixed) 1382 return e < c && "top"; 1383 if ("bottom" == this.affixed) 1384 return null != c ? !(e + this.unpin <= f.top) && "bottom" : !(e + g <= a - d) && "bottom"; 1385 var h = null == this.affixed 1386 , i = h ? e : f.top 1387 , j = h ? g : b; 1388 return null != c && e <= c ? "top" : null != d && i + j >= a - d && "bottom" 1389 } 1390 , 1391 c.prototype.getPinnedOffset = function() { 1392 if (this.pinnedOffset) 1393 return this.pinnedOffset; 1394 this.$element.removeClass(c.RESET).addClass("affix"); 1395 var a = this.$target.scrollTop() 1396 , b = this.$element.offset(); 1397 return this.pinnedOffset = b.top - a 1398 } 1399 , 1400 c.prototype.checkPositionWithEventLoop = function() { 1401 setTimeout(a.proxy(this.checkPosition, this), 1) 1402 } 1403 , 1404 c.prototype.checkPosition = function() { 1405 if (this.$element.is(":visible")) { 1406 var b = this.$element.height() 1407 , d = this.options.offset 1408 , e = d.top 1409 , f = d.bottom 1410 , g = Math.max(a(document).height(), a(document.body).height()); 1411 "object" != typeof d && (f = e = d), 1412 "function" == typeof e && (e = d.top(this.$element)), 1413 "function" == typeof f && (f = d.bottom(this.$element));
vendor: 1,280 bytes, lines 1414-1450
1414 var h = this.getState(g, b, e, f); 1415 if (this.affixed != h) { 1416 null != this.unpin && this.$element.css("top", ""); 1417 var i = "affix" + (h ? "-" + h : "") 1418 , j = a.Event(i + ".bs.affix"); 1419 if (this.$element.trigger(j), 1420 j.isDefaultPrevented()) 1421 return; 1422 this.affixed = h, 1423 this.unpin = "bottom" == h ? this.getPinnedOffset() : null, 1424 this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix", "affixed") + ".bs.affix") 1425 } 1426 "bottom" == h && this.$element.offset({ 1427 top: g - b - f 1428 }) 1429 } 1430 } 1431 ; 1432 var d = a.fn.affix; 1433 a.fn.affix = b, 1434 a.fn.affix.Constructor = c, 1435 a.fn.affix.noConflict = function() { 1436 return a.fn.affix = d, 1437 this 1438 } 1439 , 1440 a(window).on("load", function() { 1441 a('[data-spy="affix"]').each(function() { 1442 var c = a(this) 1443 , d = c.data(); 1444 d.offset = d.offset || {}, 1445 null != d.offsetBottom && (d.offset.bottom = d.offsetBottom), 1446 null != d.offsetTop && (d.offset.top = d.offsetTop), 1447 b.call(c, d) 1448 }) 1449 }) 1450}(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.