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