Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 

1711 řádky
58 KiB

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