1896 lines
80 KiB
JavaScript
1896 lines
80 KiB
JavaScript
/*!
|
|
* Bootstrap v3.3.7 (http://getbootstrap.com)
|
|
* Copyright 2011-2016 Twitter, Inc.
|
|
* Licensed under the MIT license
|
|
*/
|
|
if ("undefined" == typeof jQuery)
|
|
throw new Error("Bootstrap's JavaScript requires jQuery");
|
|
+(function (a) {
|
|
"use strict";
|
|
var b = a.fn.jquery.split(" ")[0].split(".");
|
|
if (
|
|
(b[0] < 2 && b[1] < 9) ||
|
|
(1 == b[0] && 9 == b[1] && b[2] < 1) ||
|
|
b[0] > 3
|
|
)
|
|
throw new Error(
|
|
"Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4"
|
|
);
|
|
})(jQuery),
|
|
+(function (a) {
|
|
"use strict";
|
|
function b() {
|
|
var a = document.createElement("bootstrap"),
|
|
b = {
|
|
WebkitTransition: "webkitTransitionEnd",
|
|
MozTransition: "transitionend",
|
|
OTransition: "oTransitionEnd otransitionend",
|
|
transition: "transitionend",
|
|
};
|
|
for (var c in b) if (void 0 !== a.style[c]) return { end: b[c] };
|
|
return !1;
|
|
}
|
|
(a.fn.emulateTransitionEnd = function (b) {
|
|
var c = !1,
|
|
d = this;
|
|
a(this).one("bsTransitionEnd", function () {
|
|
c = !0;
|
|
});
|
|
var e = function () {
|
|
c || a(d).trigger(a.support.transition.end);
|
|
};
|
|
return setTimeout(e, b), this;
|
|
}),
|
|
a(function () {
|
|
(a.support.transition = b()),
|
|
a.support.transition &&
|
|
(a.event.special.bsTransitionEnd = {
|
|
bindType: a.support.transition.end,
|
|
delegateType: a.support.transition.end,
|
|
handle: function (b) {
|
|
if (a(b.target).is(this))
|
|
return b.handleObj.handler.apply(
|
|
this,
|
|
arguments
|
|
);
|
|
},
|
|
});
|
|
});
|
|
})(jQuery),
|
|
+(function (a) {
|
|
"use strict";
|
|
function b(b) {
|
|
return this.each(function () {
|
|
var c = a(this),
|
|
e = c.data("bs.alert");
|
|
e || c.data("bs.alert", (e = new d(this))),
|
|
"string" == typeof b && e[b].call(c);
|
|
});
|
|
}
|
|
var c = '[data-dismiss="alert"]',
|
|
d = function (b) {
|
|
a(b).on("click", c, this.close);
|
|
};
|
|
(d.VERSION = "3.3.7"),
|
|
(d.TRANSITION_DURATION = 150),
|
|
(d.prototype.close = function (b) {
|
|
function c() {
|
|
g.detach().trigger("closed.bs.alert").remove();
|
|
}
|
|
var e = a(this),
|
|
f = e.attr("data-target");
|
|
f ||
|
|
((f = e.attr("href")),
|
|
(f = f && f.replace(/.*(?=#[^\s]*$)/, "")));
|
|
var g = a("#" === f ? [] : f);
|
|
b && b.preventDefault(),
|
|
g.length || (g = e.closest(".alert")),
|
|
g.trigger((b = a.Event("close.bs.alert"))),
|
|
b.isDefaultPrevented() ||
|
|
(g.removeClass("in"),
|
|
a.support.transition && g.hasClass("fade")
|
|
? g
|
|
.one("bsTransitionEnd", c)
|
|
.emulateTransitionEnd(d.TRANSITION_DURATION)
|
|
: c());
|
|
});
|
|
var e = a.fn.alert;
|
|
(a.fn.alert = b),
|
|
(a.fn.alert.Constructor = d),
|
|
(a.fn.alert.noConflict = function () {
|
|
return (a.fn.alert = e), this;
|
|
}),
|
|
a(document).on("click.bs.alert.data-api", c, d.prototype.close);
|
|
})(jQuery),
|
|
+(function (a) {
|
|
"use strict";
|
|
function b(b) {
|
|
return this.each(function () {
|
|
var d = a(this),
|
|
e = d.data("bs.button"),
|
|
f = "object" == typeof b && b;
|
|
e || d.data("bs.button", (e = new c(this, f))),
|
|
"toggle" == b ? e.toggle() : b && e.setState(b);
|
|
});
|
|
}
|
|
var c = function (b, d) {
|
|
(this.$element = a(b)),
|
|
(this.options = a.extend({}, c.DEFAULTS, d)),
|
|
(this.isLoading = !1);
|
|
};
|
|
(c.VERSION = "3.3.7"),
|
|
(c.DEFAULTS = { loadingText: "loading..." }),
|
|
(c.prototype.setState = function (b) {
|
|
var c = "disabled",
|
|
d = this.$element,
|
|
e = d.is("input") ? "val" : "html",
|
|
f = d.data();
|
|
(b += "Text"),
|
|
null == f.resetText && d.data("resetText", d[e]()),
|
|
setTimeout(
|
|
a.proxy(function () {
|
|
d[e](null == f[b] ? this.options[b] : f[b]),
|
|
"loadingText" == b
|
|
? ((this.isLoading = !0),
|
|
d.addClass(c).attr(c, c).prop(c, !0))
|
|
: this.isLoading &&
|
|
((this.isLoading = !1),
|
|
d
|
|
.removeClass(c)
|
|
.removeAttr(c)
|
|
.prop(c, !1));
|
|
}, this),
|
|
0
|
|
);
|
|
}),
|
|
(c.prototype.toggle = function () {
|
|
var a = !0,
|
|
b = this.$element.closest('[data-toggle="buttons"]');
|
|
if (b.length) {
|
|
var c = this.$element.find("input");
|
|
"radio" == c.prop("type")
|
|
? (c.prop("checked") && (a = !1),
|
|
b.find(".active").removeClass("active"),
|
|
this.$element.addClass("active"))
|
|
: "checkbox" == c.prop("type") &&
|
|
(c.prop("checked") !==
|
|
this.$element.hasClass("active") && (a = !1),
|
|
this.$element.toggleClass("active")),
|
|
c.prop("checked", this.$element.hasClass("active")),
|
|
a && c.trigger("change");
|
|
} else
|
|
this.$element.attr(
|
|
"aria-pressed",
|
|
!this.$element.hasClass("active")
|
|
),
|
|
this.$element.toggleClass("active");
|
|
});
|
|
var d = a.fn.button;
|
|
(a.fn.button = b),
|
|
(a.fn.button.Constructor = c),
|
|
(a.fn.button.noConflict = function () {
|
|
return (a.fn.button = d), this;
|
|
}),
|
|
a(document)
|
|
.on(
|
|
"click.bs.button.data-api",
|
|
'[data-toggle^="button"]',
|
|
function (c) {
|
|
var d = a(c.target).closest(".btn");
|
|
b.call(d, "toggle"),
|
|
a(c.target).is(
|
|
'input[type="radio"], input[type="checkbox"]'
|
|
) ||
|
|
(c.preventDefault(),
|
|
d.is("input,button")
|
|
? d.trigger("focus")
|
|
: d
|
|
.find("input:visible,button:visible")
|
|
.first()
|
|
.trigger("focus"));
|
|
}
|
|
)
|
|
.on(
|
|
"focus.bs.button.data-api blur.bs.button.data-api",
|
|
'[data-toggle^="button"]',
|
|
function (b) {
|
|
a(b.target)
|
|
.closest(".btn")
|
|
.toggleClass("focus", /^focus(in)?$/.test(b.type));
|
|
}
|
|
);
|
|
})(jQuery),
|
|
+(function (a) {
|
|
"use strict";
|
|
function b(b) {
|
|
return this.each(function () {
|
|
var d = a(this),
|
|
e = d.data("bs.carousel"),
|
|
f = a.extend(
|
|
{},
|
|
c.DEFAULTS,
|
|
d.data(),
|
|
"object" == typeof b && b
|
|
),
|
|
g = "string" == typeof b ? b : f.slide;
|
|
e || d.data("bs.carousel", (e = new c(this, f))),
|
|
"number" == typeof b
|
|
? e.to(b)
|
|
: g
|
|
? e[g]()
|
|
: f.interval && e.pause().cycle();
|
|
});
|
|
}
|
|
var c = function (b, c) {
|
|
(this.$element = a(b)),
|
|
(this.$indicators = this.$element.find(".carousel-indicators")),
|
|
(this.options = c),
|
|
(this.paused = null),
|
|
(this.sliding = null),
|
|
(this.interval = null),
|
|
(this.$active = null),
|
|
(this.$items = null),
|
|
this.options.keyboard &&
|
|
this.$element.on(
|
|
"keydown.bs.carousel",
|
|
a.proxy(this.keydown, this)
|
|
),
|
|
"hover" == this.options.pause &&
|
|
!("ontouchstart" in document.documentElement) &&
|
|
this.$element
|
|
.on("mouseenter.bs.carousel", a.proxy(this.pause, this))
|
|
.on(
|
|
"mouseleave.bs.carousel",
|
|
a.proxy(this.cycle, this)
|
|
);
|
|
};
|
|
(c.VERSION = "3.3.7"),
|
|
(c.TRANSITION_DURATION = 600),
|
|
(c.DEFAULTS = {
|
|
interval: 5e3,
|
|
pause: "hover",
|
|
wrap: !0,
|
|
keyboard: !0,
|
|
}),
|
|
(c.prototype.keydown = function (a) {
|
|
if (!/input|textarea/i.test(a.target.tagName)) {
|
|
switch (a.which) {
|
|
case 37:
|
|
this.prev();
|
|
break;
|
|
case 39:
|
|
this.next();
|
|
break;
|
|
default:
|
|
return;
|
|
}
|
|
a.preventDefault();
|
|
}
|
|
}),
|
|
(c.prototype.cycle = function (b) {
|
|
return (
|
|
b || (this.paused = !1),
|
|
this.interval && clearInterval(this.interval),
|
|
this.options.interval &&
|
|
!this.paused &&
|
|
(this.interval = setInterval(
|
|
a.proxy(this.next, this),
|
|
this.options.interval
|
|
)),
|
|
this
|
|
);
|
|
}),
|
|
(c.prototype.getItemIndex = function (a) {
|
|
return (
|
|
(this.$items = a.parent().children(".item")),
|
|
this.$items.index(a || this.$active)
|
|
);
|
|
}),
|
|
(c.prototype.getItemForDirection = function (a, b) {
|
|
var c = this.getItemIndex(b),
|
|
d =
|
|
("prev" == a && 0 === c) ||
|
|
("next" == a && c == this.$items.length - 1);
|
|
if (d && !this.options.wrap) return b;
|
|
var e = "prev" == a ? -1 : 1,
|
|
f = (c + e) % this.$items.length;
|
|
return this.$items.eq(f);
|
|
}),
|
|
(c.prototype.to = function (a) {
|
|
var b = this,
|
|
c = this.getItemIndex(
|
|
(this.$active = this.$element.find(".item.active"))
|
|
);
|
|
if (!(a > this.$items.length - 1 || a < 0))
|
|
return this.sliding
|
|
? this.$element.one("slid.bs.carousel", function () {
|
|
b.to(a);
|
|
})
|
|
: c == a
|
|
? this.pause().cycle()
|
|
: this.slide(
|
|
a > c ? "next" : "prev",
|
|
this.$items.eq(a)
|
|
);
|
|
}),
|
|
(c.prototype.pause = function (b) {
|
|
return (
|
|
b || (this.paused = !0),
|
|
this.$element.find(".next, .prev").length &&
|
|
a.support.transition &&
|
|
(this.$element.trigger(a.support.transition.end),
|
|
this.cycle(!0)),
|
|
(this.interval = clearInterval(this.interval)),
|
|
this
|
|
);
|
|
}),
|
|
(c.prototype.next = function () {
|
|
if (!this.sliding) return this.slide("next");
|
|
}),
|
|
(c.prototype.prev = function () {
|
|
if (!this.sliding) return this.slide("prev");
|
|
}),
|
|
(c.prototype.slide = function (b, d) {
|
|
var e = this.$element.find(".item.active"),
|
|
f = d || this.getItemForDirection(b, e),
|
|
g = this.interval,
|
|
h = "next" == b ? "left" : "right",
|
|
i = this;
|
|
if (f.hasClass("active")) return (this.sliding = !1);
|
|
var j = f[0],
|
|
k = a.Event("slide.bs.carousel", {
|
|
relatedTarget: j,
|
|
direction: h,
|
|
});
|
|
if ((this.$element.trigger(k), !k.isDefaultPrevented())) {
|
|
if (
|
|
((this.sliding = !0),
|
|
g && this.pause(),
|
|
this.$indicators.length)
|
|
) {
|
|
this.$indicators.find(".active").removeClass("active");
|
|
var l = a(
|
|
this.$indicators.children()[this.getItemIndex(f)]
|
|
);
|
|
l && l.addClass("active");
|
|
}
|
|
var m = a.Event("slid.bs.carousel", {
|
|
relatedTarget: j,
|
|
direction: h,
|
|
});
|
|
return (
|
|
a.support.transition && this.$element.hasClass("slide")
|
|
? (f.addClass(b),
|
|
f[0].offsetWidth,
|
|
e.addClass(h),
|
|
f.addClass(h),
|
|
e
|
|
.one("bsTransitionEnd", function () {
|
|
f
|
|
.removeClass([b, h].join(" "))
|
|
.addClass("active"),
|
|
e.removeClass(
|
|
["active", h].join(" ")
|
|
),
|
|
(i.sliding = !1),
|
|
setTimeout(function () {
|
|
i.$element.trigger(m);
|
|
}, 0);
|
|
})
|
|
.emulateTransitionEnd(c.TRANSITION_DURATION))
|
|
: (e.removeClass("active"),
|
|
f.addClass("active"),
|
|
(this.sliding = !1),
|
|
this.$element.trigger(m)),
|
|
g && this.cycle(),
|
|
this
|
|
);
|
|
}
|
|
});
|
|
var d = a.fn.carousel;
|
|
(a.fn.carousel = b),
|
|
(a.fn.carousel.Constructor = c),
|
|
(a.fn.carousel.noConflict = function () {
|
|
return (a.fn.carousel = d), this;
|
|
});
|
|
var e = function (c) {
|
|
var d,
|
|
e = a(this),
|
|
f = a(
|
|
e.attr("data-target") ||
|
|
((d = e.attr("href")) &&
|
|
d.replace(/.*(?=#[^\s]+$)/, ""))
|
|
);
|
|
if (f.hasClass("carousel")) {
|
|
var g = a.extend({}, f.data(), e.data()),
|
|
h = e.attr("data-slide-to");
|
|
h && (g.interval = !1),
|
|
b.call(f, g),
|
|
h && f.data("bs.carousel").to(h),
|
|
c.preventDefault();
|
|
}
|
|
};
|
|
a(document)
|
|
.on("click.bs.carousel.data-api", "[data-slide]", e)
|
|
.on("click.bs.carousel.data-api", "[data-slide-to]", e),
|
|
a(window).on("load", function () {
|
|
a('[data-ride="carousel"]').each(function () {
|
|
var c = a(this);
|
|
b.call(c, c.data());
|
|
});
|
|
});
|
|
})(jQuery),
|
|
+(function (a) {
|
|
"use strict";
|
|
function b(b) {
|
|
var c,
|
|
d =
|
|
b.attr("data-target") ||
|
|
((c = b.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, ""));
|
|
return a(d);
|
|
}
|
|
function c(b) {
|
|
return this.each(function () {
|
|
var c = a(this),
|
|
e = c.data("bs.collapse"),
|
|
f = a.extend(
|
|
{},
|
|
d.DEFAULTS,
|
|
c.data(),
|
|
"object" == typeof b && b
|
|
);
|
|
!e && f.toggle && /show|hide/.test(b) && (f.toggle = !1),
|
|
e || c.data("bs.collapse", (e = new d(this, f))),
|
|
"string" == typeof b && e[b]();
|
|
});
|
|
}
|
|
var d = function (b, c) {
|
|
(this.$element = a(b)),
|
|
(this.options = a.extend({}, d.DEFAULTS, c)),
|
|
(this.$trigger = a(
|
|
'[data-toggle="collapse"][href="#' +
|
|
b.id +
|
|
'"],[data-toggle="collapse"][data-target="#' +
|
|
b.id +
|
|
'"]'
|
|
)),
|
|
(this.transitioning = null),
|
|
this.options.parent
|
|
? (this.$parent = this.getParent())
|
|
: this.addAriaAndCollapsedClass(
|
|
this.$element,
|
|
this.$trigger
|
|
),
|
|
this.options.toggle && this.toggle();
|
|
};
|
|
(d.VERSION = "3.3.7"),
|
|
(d.TRANSITION_DURATION = 350),
|
|
(d.DEFAULTS = { toggle: !0 }),
|
|
(d.prototype.dimension = function () {
|
|
var a = this.$element.hasClass("width");
|
|
return a ? "width" : "height";
|
|
}),
|
|
(d.prototype.show = function () {
|
|
if (!this.transitioning && !this.$element.hasClass("in")) {
|
|
var b,
|
|
e =
|
|
this.$parent &&
|
|
this.$parent
|
|
.children(".panel")
|
|
.children(".in, .collapsing");
|
|
if (
|
|
!(
|
|
e &&
|
|
e.length &&
|
|
((b = e.data("bs.collapse")), b && b.transitioning)
|
|
)
|
|
) {
|
|
var f = a.Event("show.bs.collapse");
|
|
if (
|
|
(this.$element.trigger(f), !f.isDefaultPrevented())
|
|
) {
|
|
e &&
|
|
e.length &&
|
|
(c.call(e, "hide"),
|
|
b || e.data("bs.collapse", null));
|
|
var g = this.dimension();
|
|
this.$element
|
|
.removeClass("collapse")
|
|
.addClass("collapsing")
|
|
[g](0)
|
|
.attr("aria-expanded", !0),
|
|
this.$trigger
|
|
.removeClass("collapsed")
|
|
.attr("aria-expanded", !0),
|
|
(this.transitioning = 1);
|
|
var h = function () {
|
|
this.$element
|
|
.removeClass("collapsing")
|
|
.addClass("collapse in")
|
|
[g](""),
|
|
(this.transitioning = 0),
|
|
this.$element.trigger("shown.bs.collapse");
|
|
};
|
|
if (!a.support.transition) return h.call(this);
|
|
var i = a.camelCase(["scroll", g].join("-"));
|
|
this.$element
|
|
.one("bsTransitionEnd", a.proxy(h, this))
|
|
.emulateTransitionEnd(d.TRANSITION_DURATION)
|
|
[g](this.$element[0][i]);
|
|
}
|
|
}
|
|
}
|
|
}),
|
|
(d.prototype.hide = function () {
|
|
if (!this.transitioning && this.$element.hasClass("in")) {
|
|
var b = a.Event("hide.bs.collapse");
|
|
if ((this.$element.trigger(b), !b.isDefaultPrevented())) {
|
|
var c = this.dimension();
|
|
this.$element[c](this.$element[c]())[0].offsetHeight,
|
|
this.$element
|
|
.addClass("collapsing")
|
|
.removeClass("collapse in")
|
|
.attr("aria-expanded", !1),
|
|
this.$trigger
|
|
.addClass("collapsed")
|
|
.attr("aria-expanded", !1),
|
|
(this.transitioning = 1);
|
|
var e = function () {
|
|
(this.transitioning = 0),
|
|
this.$element
|
|
.removeClass("collapsing")
|
|
.addClass("collapse")
|
|
.trigger("hidden.bs.collapse");
|
|
};
|
|
return a.support.transition
|
|
? void this.$element[c](0)
|
|
.one("bsTransitionEnd", a.proxy(e, this))
|
|
.emulateTransitionEnd(d.TRANSITION_DURATION)
|
|
: e.call(this);
|
|
}
|
|
}
|
|
}),
|
|
(d.prototype.toggle = function () {
|
|
this[this.$element.hasClass("in") ? "hide" : "show"]();
|
|
}),
|
|
(d.prototype.getParent = function () {
|
|
return a(this.options.parent)
|
|
.find(
|
|
'[data-toggle="collapse"][data-parent="' +
|
|
this.options.parent +
|
|
'"]'
|
|
)
|
|
.each(
|
|
a.proxy(function (c, d) {
|
|
var e = a(d);
|
|
this.addAriaAndCollapsedClass(b(e), e);
|
|
}, this)
|
|
)
|
|
.end();
|
|
}),
|
|
(d.prototype.addAriaAndCollapsedClass = function (a, b) {
|
|
var c = a.hasClass("in");
|
|
a.attr("aria-expanded", c),
|
|
b.toggleClass("collapsed", !c).attr("aria-expanded", c);
|
|
});
|
|
var e = a.fn.collapse;
|
|
(a.fn.collapse = c),
|
|
(a.fn.collapse.Constructor = d),
|
|
(a.fn.collapse.noConflict = function () {
|
|
return (a.fn.collapse = e), this;
|
|
}),
|
|
a(document).on(
|
|
"click.bs.collapse.data-api",
|
|
'[data-toggle="collapse"]',
|
|
function (d) {
|
|
var e = a(this);
|
|
e.attr("data-target") || d.preventDefault();
|
|
var f = b(e),
|
|
g = f.data("bs.collapse"),
|
|
h = g ? "toggle" : e.data();
|
|
c.call(f, h);
|
|
}
|
|
);
|
|
})(jQuery),
|
|
+(function (a) {
|
|
"use strict";
|
|
function b(b) {
|
|
var c = b.attr("data-target");
|
|
c ||
|
|
((c = b.attr("href")),
|
|
(c =
|
|
c &&
|
|
/#[A-Za-z]/.test(c) &&
|
|
c.replace(/.*(?=#[^\s]*$)/, "")));
|
|
var d = c && a(c);
|
|
return d && d.length ? d : b.parent();
|
|
}
|
|
function c(c) {
|
|
(c && 3 === c.which) ||
|
|
(a(e).remove(),
|
|
a(f).each(function () {
|
|
var d = a(this),
|
|
e = b(d),
|
|
f = { relatedTarget: this };
|
|
e.hasClass("open") &&
|
|
((c &&
|
|
"click" == c.type &&
|
|
/input|textarea/i.test(c.target.tagName) &&
|
|
a.contains(e[0], c.target)) ||
|
|
(e.trigger((c = a.Event("hide.bs.dropdown", f))),
|
|
c.isDefaultPrevented() ||
|
|
(d.attr("aria-expanded", "false"),
|
|
e
|
|
.removeClass("open")
|
|
.trigger(
|
|
a.Event("hidden.bs.dropdown", f)
|
|
))));
|
|
}));
|
|
}
|
|
function d(b) {
|
|
return this.each(function () {
|
|
var c = a(this),
|
|
d = c.data("bs.dropdown");
|
|
d || c.data("bs.dropdown", (d = new g(this))),
|
|
"string" == typeof b && d[b].call(c);
|
|
});
|
|
}
|
|
var e = ".dropdown-backdrop",
|
|
f = '[data-toggle="dropdown"]',
|
|
g = function (b) {
|
|
a(b).on("click.bs.dropdown", this.toggle);
|
|
};
|
|
(g.VERSION = "3.3.7"),
|
|
(g.prototype.toggle = function (d) {
|
|
var e = a(this);
|
|
if (!e.is(".disabled, :disabled")) {
|
|
var f = b(e),
|
|
g = f.hasClass("open");
|
|
if ((c(), !g)) {
|
|
"ontouchstart" in document.documentElement &&
|
|
!f.closest(".navbar-nav").length &&
|
|
a(document.createElement("div"))
|
|
.addClass("dropdown-backdrop")
|
|
.insertAfter(a(this))
|
|
.on("click", c);
|
|
var h = { relatedTarget: this };
|
|
if (
|
|
(f.trigger((d = a.Event("show.bs.dropdown", h))),
|
|
d.isDefaultPrevented())
|
|
)
|
|
return;
|
|
e.trigger("focus").attr("aria-expanded", "true"),
|
|
f
|
|
.toggleClass("open")
|
|
.trigger(a.Event("shown.bs.dropdown", h));
|
|
}
|
|
return !1;
|
|
}
|
|
}),
|
|
(g.prototype.keydown = function (c) {
|
|
if (
|
|
/(38|40|27|32)/.test(c.which) &&
|
|
!/input|textarea/i.test(c.target.tagName)
|
|
) {
|
|
var d = a(this);
|
|
if (
|
|
(c.preventDefault(),
|
|
c.stopPropagation(),
|
|
!d.is(".disabled, :disabled"))
|
|
) {
|
|
var e = b(d),
|
|
g = e.hasClass("open");
|
|
if ((!g && 27 != c.which) || (g && 27 == c.which))
|
|
return (
|
|
27 == c.which && e.find(f).trigger("focus"),
|
|
d.trigger("click")
|
|
);
|
|
var h = " li:not(.disabled):visible a",
|
|
i = e.find(".dropdown-menu" + h);
|
|
if (i.length) {
|
|
var j = i.index(c.target);
|
|
38 == c.which && j > 0 && j--,
|
|
40 == c.which && j < i.length - 1 && j++,
|
|
~j || (j = 0),
|
|
i.eq(j).trigger("focus");
|
|
}
|
|
}
|
|
}
|
|
});
|
|
var h = a.fn.dropdown;
|
|
(a.fn.dropdown = d),
|
|
(a.fn.dropdown.Constructor = g),
|
|
(a.fn.dropdown.noConflict = function () {
|
|
return (a.fn.dropdown = h), this;
|
|
}),
|
|
a(document)
|
|
.on("click.bs.dropdown.data-api", c)
|
|
.on(
|
|
"click.bs.dropdown.data-api",
|
|
".dropdown form",
|
|
function (a) {
|
|
a.stopPropagation();
|
|
}
|
|
)
|
|
.on("click.bs.dropdown.data-api", f, g.prototype.toggle)
|
|
.on("keydown.bs.dropdown.data-api", f, g.prototype.keydown)
|
|
.on(
|
|
"keydown.bs.dropdown.data-api",
|
|
".dropdown-menu",
|
|
g.prototype.keydown
|
|
);
|
|
})(jQuery),
|
|
+(function (a) {
|
|
"use strict";
|
|
function b(b, d) {
|
|
return this.each(function () {
|
|
var e = a(this),
|
|
f = e.data("bs.modal"),
|
|
g = a.extend(
|
|
{},
|
|
c.DEFAULTS,
|
|
e.data(),
|
|
"object" == typeof b && b
|
|
);
|
|
f || e.data("bs.modal", (f = new c(this, g))),
|
|
"string" == typeof b ? f[b](d) : g.show && f.show(d);
|
|
});
|
|
}
|
|
var c = function (b, c) {
|
|
(this.options = c),
|
|
(this.$body = a(document.body)),
|
|
(this.$element = a(b)),
|
|
(this.$dialog = this.$element.find(".modal-dialog")),
|
|
(this.$backdrop = null),
|
|
(this.isShown = null),
|
|
(this.originalBodyPad = null),
|
|
(this.scrollbarWidth = 0),
|
|
(this.ignoreBackdropClick = !1),
|
|
this.options.remote &&
|
|
this.$element.find(".modal-content").load(
|
|
this.options.remote,
|
|
a.proxy(function () {
|
|
this.$element.trigger("loaded.bs.modal");
|
|
}, this)
|
|
);
|
|
};
|
|
(c.VERSION = "3.3.7"),
|
|
(c.TRANSITION_DURATION = 300),
|
|
(c.BACKDROP_TRANSITION_DURATION = 150),
|
|
(c.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }),
|
|
(c.prototype.toggle = function (a) {
|
|
return this.isShown ? this.hide() : this.show(a);
|
|
}),
|
|
(c.prototype.show = function (b) {
|
|
var d = this,
|
|
e = a.Event("show.bs.modal", { relatedTarget: b });
|
|
this.$element.trigger(e),
|
|
this.isShown ||
|
|
e.isDefaultPrevented() ||
|
|
((this.isShown = !0),
|
|
this.checkScrollbar(),
|
|
this.setScrollbar(),
|
|
this.$body.addClass("modal-open"),
|
|
this.escape(),
|
|
this.resize(),
|
|
this.$element.on(
|
|
"click.dismiss.bs.modal",
|
|
'[data-dismiss="modal"]',
|
|
a.proxy(this.hide, this)
|
|
),
|
|
this.$dialog.on(
|
|
"mousedown.dismiss.bs.modal",
|
|
function () {
|
|
d.$element.one(
|
|
"mouseup.dismiss.bs.modal",
|
|
function (b) {
|
|
a(b.target).is(d.$element) &&
|
|
(d.ignoreBackdropClick = !0);
|
|
}
|
|
);
|
|
}
|
|
),
|
|
this.backdrop(function () {
|
|
var e =
|
|
a.support.transition &&
|
|
d.$element.hasClass("fade");
|
|
d.$element.parent().length ||
|
|
d.$element.appendTo(d.$body),
|
|
d.$element.show().scrollTop(0),
|
|
d.adjustDialog(),
|
|
e && d.$element[0].offsetWidth,
|
|
d.$element.addClass("in"),
|
|
d.enforceFocus();
|
|
var f = a.Event("shown.bs.modal", {
|
|
relatedTarget: b,
|
|
});
|
|
e
|
|
? d.$dialog
|
|
.one("bsTransitionEnd", function () {
|
|
d.$element
|
|
.trigger("focus")
|
|
.trigger(f);
|
|
})
|
|
.emulateTransitionEnd(
|
|
c.TRANSITION_DURATION
|
|
)
|
|
: d.$element.trigger("focus").trigger(f);
|
|
}));
|
|
}),
|
|
(c.prototype.hide = function (b) {
|
|
b && b.preventDefault(),
|
|
(b = a.Event("hide.bs.modal")),
|
|
this.$element.trigger(b),
|
|
this.isShown &&
|
|
!b.isDefaultPrevented() &&
|
|
((this.isShown = !1),
|
|
this.escape(),
|
|
this.resize(),
|
|
a(document).off("focusin.bs.modal"),
|
|
this.$element
|
|
.removeClass("in")
|
|
.off("click.dismiss.bs.modal")
|
|
.off("mouseup.dismiss.bs.modal"),
|
|
this.$dialog.off("mousedown.dismiss.bs.modal"),
|
|
a.support.transition && this.$element.hasClass("fade")
|
|
? this.$element
|
|
.one(
|
|
"bsTransitionEnd",
|
|
a.proxy(this.hideModal, this)
|
|
)
|
|
.emulateTransitionEnd(c.TRANSITION_DURATION)
|
|
: this.hideModal());
|
|
}),
|
|
(c.prototype.enforceFocus = function () {
|
|
a(document)
|
|
.off("focusin.bs.modal")
|
|
.on(
|
|
"focusin.bs.modal",
|
|
a.proxy(function (a) {
|
|
document === a.target ||
|
|
this.$element[0] === a.target ||
|
|
this.$element.has(a.target).length ||
|
|
this.$element.trigger("focus");
|
|
}, this)
|
|
);
|
|
}),
|
|
(c.prototype.escape = function () {
|
|
this.isShown && this.options.keyboard
|
|
? this.$element.on(
|
|
"keydown.dismiss.bs.modal",
|
|
a.proxy(function (a) {
|
|
27 == a.which && this.hide();
|
|
}, this)
|
|
)
|
|
: this.isShown ||
|
|
this.$element.off("keydown.dismiss.bs.modal");
|
|
}),
|
|
(c.prototype.resize = function () {
|
|
this.isShown
|
|
? a(window).on(
|
|
"resize.bs.modal",
|
|
a.proxy(this.handleUpdate, this)
|
|
)
|
|
: a(window).off("resize.bs.modal");
|
|
}),
|
|
(c.prototype.hideModal = function () {
|
|
var a = this;
|
|
this.$element.hide(),
|
|
this.backdrop(function () {
|
|
a.$body.removeClass("modal-open"),
|
|
a.resetAdjustments(),
|
|
a.resetScrollbar(),
|
|
a.$element.trigger("hidden.bs.modal");
|
|
});
|
|
}),
|
|
(c.prototype.removeBackdrop = function () {
|
|
this.$backdrop && this.$backdrop.remove(),
|
|
(this.$backdrop = null);
|
|
}),
|
|
(c.prototype.backdrop = function (b) {
|
|
var d = this,
|
|
e = this.$element.hasClass("fade") ? "fade" : "";
|
|
if (this.isShown && this.options.backdrop) {
|
|
var f = a.support.transition && e;
|
|
if (
|
|
((this.$backdrop = a(document.createElement("div"))
|
|
.addClass("modal-backdrop " + e)
|
|
.appendTo(this.$body)),
|
|
this.$element.on(
|
|
"click.dismiss.bs.modal",
|
|
a.proxy(function (a) {
|
|
return this.ignoreBackdropClick
|
|
? void (this.ignoreBackdropClick = !1)
|
|
: void (
|
|
a.target === a.currentTarget &&
|
|
("static" == this.options.backdrop
|
|
? this.$element[0].focus()
|
|
: this.hide())
|
|
);
|
|
}, this)
|
|
),
|
|
f && this.$backdrop[0].offsetWidth,
|
|
this.$backdrop.addClass("in"),
|
|
!b)
|
|
)
|
|
return;
|
|
f
|
|
? this.$backdrop
|
|
.one("bsTransitionEnd", b)
|
|
.emulateTransitionEnd(
|
|
c.BACKDROP_TRANSITION_DURATION
|
|
)
|
|
: b();
|
|
} else if (!this.isShown && this.$backdrop) {
|
|
this.$backdrop.removeClass("in");
|
|
var g = function () {
|
|
d.removeBackdrop(), b && b();
|
|
};
|
|
a.support.transition && this.$element.hasClass("fade")
|
|
? this.$backdrop
|
|
.one("bsTransitionEnd", g)
|
|
.emulateTransitionEnd(
|
|
c.BACKDROP_TRANSITION_DURATION
|
|
)
|
|
: g();
|
|
} else b && b();
|
|
}),
|
|
(c.prototype.handleUpdate = function () {
|
|
this.adjustDialog();
|
|
}),
|
|
(c.prototype.adjustDialog = function () {
|
|
var a =
|
|
this.$element[0].scrollHeight >
|
|
document.documentElement.clientHeight;
|
|
this.$element.css({
|
|
paddingLeft:
|
|
!this.bodyIsOverflowing && a ? this.scrollbarWidth : "",
|
|
paddingRight:
|
|
this.bodyIsOverflowing && !a ? this.scrollbarWidth : "",
|
|
});
|
|
}),
|
|
(c.prototype.resetAdjustments = function () {
|
|
this.$element.css({ paddingLeft: "", paddingRight: "" });
|
|
}),
|
|
(c.prototype.checkScrollbar = function () {
|
|
var a = window.innerWidth;
|
|
if (!a) {
|
|
var b = document.documentElement.getBoundingClientRect();
|
|
a = b.right - Math.abs(b.left);
|
|
}
|
|
(this.bodyIsOverflowing = document.body.clientWidth < a),
|
|
(this.scrollbarWidth = this.measureScrollbar());
|
|
}),
|
|
(c.prototype.setScrollbar = function () {
|
|
var a = parseInt(this.$body.css("padding-right") || 0, 10);
|
|
(this.originalBodyPad = document.body.style.paddingRight || ""),
|
|
this.bodyIsOverflowing &&
|
|
this.$body.css(
|
|
"padding-right",
|
|
a + this.scrollbarWidth
|
|
);
|
|
}),
|
|
(c.prototype.resetScrollbar = function () {
|
|
this.$body.css("padding-right", this.originalBodyPad);
|
|
}),
|
|
(c.prototype.measureScrollbar = function () {
|
|
var a = document.createElement("div");
|
|
(a.className = "modal-scrollbar-measure"), this.$body.append(a);
|
|
var b = a.offsetWidth - a.clientWidth;
|
|
return this.$body[0].removeChild(a), b;
|
|
});
|
|
var d = a.fn.modal;
|
|
(a.fn.modal = b),
|
|
(a.fn.modal.Constructor = c),
|
|
(a.fn.modal.noConflict = function () {
|
|
return (a.fn.modal = d), this;
|
|
}),
|
|
a(document).on(
|
|
"click.bs.modal.data-api",
|
|
'[data-toggle="modal"]',
|
|
function (c) {
|
|
var d = a(this),
|
|
e = d.attr("href"),
|
|
f = a(
|
|
d.attr("data-target") ||
|
|
(e && e.replace(/.*(?=#[^\s]+$)/, ""))
|
|
),
|
|
g = f.data("bs.modal")
|
|
? "toggle"
|
|
: a.extend(
|
|
{ remote: !/#/.test(e) && e },
|
|
f.data(),
|
|
d.data()
|
|
);
|
|
d.is("a") && c.preventDefault(),
|
|
f.one("show.bs.modal", function (a) {
|
|
a.isDefaultPrevented() ||
|
|
f.one("hidden.bs.modal", function () {
|
|
d.is(":visible") && d.trigger("focus");
|
|
});
|
|
}),
|
|
b.call(f, g, this);
|
|
}
|
|
);
|
|
})(jQuery),
|
|
+(function (a) {
|
|
"use strict";
|
|
function b(b) {
|
|
return this.each(function () {
|
|
var d = a(this),
|
|
e = d.data("bs.tooltip"),
|
|
f = "object" == typeof b && b;
|
|
(!e && /destroy|hide/.test(b)) ||
|
|
(e || d.data("bs.tooltip", (e = new c(this, f))),
|
|
"string" == typeof b && e[b]());
|
|
});
|
|
}
|
|
var c = function (a, b) {
|
|
(this.type = null),
|
|
(this.options = null),
|
|
(this.enabled = null),
|
|
(this.timeout = null),
|
|
(this.hoverState = null),
|
|
(this.$element = null),
|
|
(this.inState = null),
|
|
this.init("tooltip", a, b);
|
|
};
|
|
(c.VERSION = "3.3.7"),
|
|
(c.TRANSITION_DURATION = 150),
|
|
(c.DEFAULTS = {
|
|
animation: !0,
|
|
placement: "top",
|
|
selector: !1,
|
|
template:
|
|
'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
|
|
trigger: "hover focus",
|
|
title: "",
|
|
delay: 0,
|
|
html: !1,
|
|
container: !1,
|
|
viewport: { selector: "body", padding: 0 },
|
|
}),
|
|
(c.prototype.init = function (b, c, d) {
|
|
if (
|
|
((this.enabled = !0),
|
|
(this.type = b),
|
|
(this.$element = a(c)),
|
|
(this.options = this.getOptions(d)),
|
|
(this.$viewport =
|
|
this.options.viewport &&
|
|
a(
|
|
a.isFunction(this.options.viewport)
|
|
? this.options.viewport.call(
|
|
this,
|
|
this.$element
|
|
)
|
|
: this.options.viewport.selector ||
|
|
this.options.viewport
|
|
)),
|
|
(this.inState = { click: !1, hover: !1, focus: !1 }),
|
|
this.$element[0] instanceof document.constructor &&
|
|
!this.options.selector)
|
|
)
|
|
throw new Error(
|
|
"`selector` option must be specified when initializing " +
|
|
this.type +
|
|
" on the window.document object!"
|
|
);
|
|
for (
|
|
var e = this.options.trigger.split(" "), f = e.length;
|
|
f--;
|
|
|
|
) {
|
|
var g = e[f];
|
|
if ("click" == g)
|
|
this.$element.on(
|
|
"click." + this.type,
|
|
this.options.selector,
|
|
a.proxy(this.toggle, this)
|
|
);
|
|
else if ("manual" != g) {
|
|
var h = "hover" == g ? "mouseenter" : "focusin",
|
|
i = "hover" == g ? "mouseleave" : "focusout";
|
|
this.$element.on(
|
|
h + "." + this.type,
|
|
this.options.selector,
|
|
a.proxy(this.enter, this)
|
|
),
|
|
this.$element.on(
|
|
i + "." + this.type,
|
|
this.options.selector,
|
|
a.proxy(this.leave, this)
|
|
);
|
|
}
|
|
}
|
|
this.options.selector
|
|
? (this._options = a.extend({}, this.options, {
|
|
trigger: "manual",
|
|
selector: "",
|
|
}))
|
|
: this.fixTitle();
|
|
}),
|
|
(c.prototype.getDefaults = function () {
|
|
return c.DEFAULTS;
|
|
}),
|
|
(c.prototype.getOptions = function (b) {
|
|
return (
|
|
(b = a.extend(
|
|
{},
|
|
this.getDefaults(),
|
|
this.$element.data(),
|
|
b
|
|
)),
|
|
b.delay &&
|
|
"number" == typeof b.delay &&
|
|
(b.delay = { show: b.delay, hide: b.delay }),
|
|
b
|
|
);
|
|
}),
|
|
(c.prototype.getDelegateOptions = function () {
|
|
var b = {},
|
|
c = this.getDefaults();
|
|
return (
|
|
this._options &&
|
|
a.each(this._options, function (a, d) {
|
|
c[a] != d && (b[a] = d);
|
|
}),
|
|
b
|
|
);
|
|
}),
|
|
(c.prototype.enter = function (b) {
|
|
var c =
|
|
b instanceof this.constructor
|
|
? b
|
|
: a(b.currentTarget).data("bs." + this.type);
|
|
return (
|
|
c ||
|
|
((c = new this.constructor(
|
|
b.currentTarget,
|
|
this.getDelegateOptions()
|
|
)),
|
|
a(b.currentTarget).data("bs." + this.type, c)),
|
|
b instanceof a.Event &&
|
|
(c.inState["focusin" == b.type ? "focus" : "hover"] =
|
|
!0),
|
|
c.tip().hasClass("in") || "in" == c.hoverState
|
|
? void (c.hoverState = "in")
|
|
: (clearTimeout(c.timeout),
|
|
(c.hoverState = "in"),
|
|
c.options.delay && c.options.delay.show
|
|
? void (c.timeout = setTimeout(function () {
|
|
"in" == c.hoverState && c.show();
|
|
}, c.options.delay.show))
|
|
: c.show())
|
|
);
|
|
}),
|
|
(c.prototype.isInStateTrue = function () {
|
|
for (var a in this.inState) if (this.inState[a]) return !0;
|
|
return !1;
|
|
}),
|
|
(c.prototype.leave = function (b) {
|
|
var c =
|
|
b instanceof this.constructor
|
|
? b
|
|
: a(b.currentTarget).data("bs." + this.type);
|
|
if (
|
|
(c ||
|
|
((c = new this.constructor(
|
|
b.currentTarget,
|
|
this.getDelegateOptions()
|
|
)),
|
|
a(b.currentTarget).data("bs." + this.type, c)),
|
|
b instanceof a.Event &&
|
|
(c.inState["focusout" == b.type ? "focus" : "hover"] =
|
|
!1),
|
|
!c.isInStateTrue())
|
|
)
|
|
return (
|
|
clearTimeout(c.timeout),
|
|
(c.hoverState = "out"),
|
|
c.options.delay && c.options.delay.hide
|
|
? void (c.timeout = setTimeout(function () {
|
|
"out" == c.hoverState && c.hide();
|
|
}, c.options.delay.hide))
|
|
: c.hide()
|
|
);
|
|
}),
|
|
(c.prototype.show = function () {
|
|
var b = a.Event("show.bs." + this.type);
|
|
if (this.hasContent() && this.enabled) {
|
|
this.$element.trigger(b);
|
|
var d = a.contains(
|
|
this.$element[0].ownerDocument.documentElement,
|
|
this.$element[0]
|
|
);
|
|
if (b.isDefaultPrevented() || !d) return;
|
|
var e = this,
|
|
f = this.tip(),
|
|
g = this.getUID(this.type);
|
|
this.setContent(),
|
|
f.attr("id", g),
|
|
this.$element.attr("aria-describedby", g),
|
|
this.options.animation && f.addClass("fade");
|
|
var h =
|
|
"function" == typeof this.options.placement
|
|
? this.options.placement.call(
|
|
this,
|
|
f[0],
|
|
this.$element[0]
|
|
)
|
|
: this.options.placement,
|
|
i = /\s?auto?\s?/i,
|
|
j = i.test(h);
|
|
j && (h = h.replace(i, "") || "top"),
|
|
f
|
|
.detach()
|
|
.css({ top: 0, left: 0, display: "block" })
|
|
.addClass(h)
|
|
.data("bs." + this.type, this),
|
|
this.options.container
|
|
? f.appendTo(this.options.container)
|
|
: f.insertAfter(this.$element),
|
|
this.$element.trigger("inserted.bs." + this.type);
|
|
var k = this.getPosition(),
|
|
l = f[0].offsetWidth,
|
|
m = f[0].offsetHeight;
|
|
if (j) {
|
|
var n = h,
|
|
o = this.getPosition(this.$viewport);
|
|
(h =
|
|
"bottom" == h && k.bottom + m > o.bottom
|
|
? "top"
|
|
: "top" == h && k.top - m < o.top
|
|
? "bottom"
|
|
: "right" == h && k.right + l > o.width
|
|
? "left"
|
|
: "left" == h && k.left - l < o.left
|
|
? "right"
|
|
: h),
|
|
f.removeClass(n).addClass(h);
|
|
}
|
|
var p = this.getCalculatedOffset(h, k, l, m);
|
|
this.applyPlacement(p, h);
|
|
var q = function () {
|
|
var a = e.hoverState;
|
|
e.$element.trigger("shown.bs." + e.type),
|
|
(e.hoverState = null),
|
|
"out" == a && e.leave(e);
|
|
};
|
|
a.support.transition && this.$tip.hasClass("fade")
|
|
? f
|
|
.one("bsTransitionEnd", q)
|
|
.emulateTransitionEnd(c.TRANSITION_DURATION)
|
|
: q();
|
|
}
|
|
}),
|
|
(c.prototype.applyPlacement = function (b, c) {
|
|
var d = this.tip(),
|
|
e = d[0].offsetWidth,
|
|
f = d[0].offsetHeight,
|
|
g = parseInt(d.css("margin-top"), 10),
|
|
h = parseInt(d.css("margin-left"), 10);
|
|
isNaN(g) && (g = 0),
|
|
isNaN(h) && (h = 0),
|
|
(b.top += g),
|
|
(b.left += h),
|
|
a.offset.setOffset(
|
|
d[0],
|
|
a.extend(
|
|
{
|
|
using: function (a) {
|
|
d.css({
|
|
top: Math.round(a.top),
|
|
left: Math.round(a.left),
|
|
});
|
|
},
|
|
},
|
|
b
|
|
),
|
|
0
|
|
),
|
|
d.addClass("in");
|
|
var i = d[0].offsetWidth,
|
|
j = d[0].offsetHeight;
|
|
"top" == c && j != f && (b.top = b.top + f - j);
|
|
var k = this.getViewportAdjustedDelta(c, b, i, j);
|
|
k.left ? (b.left += k.left) : (b.top += k.top);
|
|
var l = /top|bottom/.test(c),
|
|
m = l ? 2 * k.left - e + i : 2 * k.top - f + j,
|
|
n = l ? "offsetWidth" : "offsetHeight";
|
|
d.offset(b), this.replaceArrow(m, d[0][n], l);
|
|
}),
|
|
(c.prototype.replaceArrow = function (a, b, c) {
|
|
this.arrow()
|
|
.css(c ? "left" : "top", 50 * (1 - a / b) + "%")
|
|
.css(c ? "top" : "left", "");
|
|
}),
|
|
(c.prototype.setContent = function () {
|
|
var a = this.tip(),
|
|
b = this.getTitle();
|
|
a
|
|
.find(".tooltip-inner")
|
|
[this.options.html ? "html" : "text"](b),
|
|
a.removeClass("fade in top bottom left right");
|
|
}),
|
|
(c.prototype.hide = function (b) {
|
|
function d() {
|
|
"in" != e.hoverState && f.detach(),
|
|
e.$element &&
|
|
e.$element
|
|
.removeAttr("aria-describedby")
|
|
.trigger("hidden.bs." + e.type),
|
|
b && b();
|
|
}
|
|
var e = this,
|
|
f = a(this.$tip),
|
|
g = a.Event("hide.bs." + this.type);
|
|
if ((this.$element.trigger(g), !g.isDefaultPrevented()))
|
|
return (
|
|
f.removeClass("in"),
|
|
a.support.transition && f.hasClass("fade")
|
|
? f
|
|
.one("bsTransitionEnd", d)
|
|
.emulateTransitionEnd(c.TRANSITION_DURATION)
|
|
: d(),
|
|
(this.hoverState = null),
|
|
this
|
|
);
|
|
}),
|
|
(c.prototype.fixTitle = function () {
|
|
var a = this.$element;
|
|
(a.attr("title") ||
|
|
"string" != typeof a.attr("data-original-title")) &&
|
|
a
|
|
.attr("data-original-title", a.attr("title") || "")
|
|
.attr("title", "");
|
|
}),
|
|
(c.prototype.hasContent = function () {
|
|
return this.getTitle();
|
|
}),
|
|
(c.prototype.getPosition = function (b) {
|
|
b = b || this.$element;
|
|
var c = b[0],
|
|
d = "BODY" == c.tagName,
|
|
e = c.getBoundingClientRect();
|
|
null == e.width &&
|
|
(e = a.extend({}, e, {
|
|
width: e.right - e.left,
|
|
height: e.bottom - e.top,
|
|
}));
|
|
var f = window.SVGElement && c instanceof window.SVGElement,
|
|
g = d ? { top: 0, left: 0 } : f ? null : b.offset(),
|
|
h = {
|
|
scroll: d
|
|
? document.documentElement.scrollTop ||
|
|
document.body.scrollTop
|
|
: b.scrollTop(),
|
|
},
|
|
i = d
|
|
? {
|
|
width: a(window).width(),
|
|
height: a(window).height(),
|
|
}
|
|
: null;
|
|
return a.extend({}, e, h, i, g);
|
|
}),
|
|
(c.prototype.getCalculatedOffset = function (a, b, c, d) {
|
|
return "bottom" == a
|
|
? {
|
|
top: b.top + b.height,
|
|
left: b.left + b.width / 2 - c / 2,
|
|
}
|
|
: "top" == a
|
|
? { top: b.top - d, left: b.left + b.width / 2 - c / 2 }
|
|
: "left" == a
|
|
? { top: b.top + b.height / 2 - d / 2, left: b.left - c }
|
|
: {
|
|
top: b.top + b.height / 2 - d / 2,
|
|
left: b.left + b.width,
|
|
};
|
|
}),
|
|
(c.prototype.getViewportAdjustedDelta = function (a, b, c, d) {
|
|
var e = { top: 0, left: 0 };
|
|
if (!this.$viewport) return e;
|
|
var f =
|
|
(this.options.viewport &&
|
|
this.options.viewport.padding) ||
|
|
0,
|
|
g = this.getPosition(this.$viewport);
|
|
if (/right|left/.test(a)) {
|
|
var h = b.top - f - g.scroll,
|
|
i = b.top + f - g.scroll + d;
|
|
h < g.top
|
|
? (e.top = g.top - h)
|
|
: i > g.top + g.height &&
|
|
(e.top = g.top + g.height - i);
|
|
} else {
|
|
var j = b.left - f,
|
|
k = b.left + f + c;
|
|
j < g.left
|
|
? (e.left = g.left - j)
|
|
: k > g.right && (e.left = g.left + g.width - k);
|
|
}
|
|
return e;
|
|
}),
|
|
(c.prototype.getTitle = function () {
|
|
var a,
|
|
b = this.$element,
|
|
c = this.options;
|
|
return (a =
|
|
b.attr("data-original-title") ||
|
|
("function" == typeof c.title
|
|
? c.title.call(b[0])
|
|
: c.title));
|
|
}),
|
|
(c.prototype.getUID = function (a) {
|
|
do a += ~~(1e6 * Math.random());
|
|
while (document.getElementById(a));
|
|
return a;
|
|
}),
|
|
(c.prototype.tip = function () {
|
|
if (
|
|
!this.$tip &&
|
|
((this.$tip = a(this.options.template)),
|
|
1 != this.$tip.length)
|
|
)
|
|
throw new Error(
|
|
this.type +
|
|
" `template` option must consist of exactly 1 top-level element!"
|
|
);
|
|
return this.$tip;
|
|
}),
|
|
(c.prototype.arrow = function () {
|
|
return (this.$arrow =
|
|
this.$arrow || this.tip().find(".tooltip-arrow"));
|
|
}),
|
|
(c.prototype.enable = function () {
|
|
this.enabled = !0;
|
|
}),
|
|
(c.prototype.disable = function () {
|
|
this.enabled = !1;
|
|
}),
|
|
(c.prototype.toggleEnabled = function () {
|
|
this.enabled = !this.enabled;
|
|
}),
|
|
(c.prototype.toggle = function (b) {
|
|
var c = this;
|
|
b &&
|
|
((c = a(b.currentTarget).data("bs." + this.type)),
|
|
c ||
|
|
((c = new this.constructor(
|
|
b.currentTarget,
|
|
this.getDelegateOptions()
|
|
)),
|
|
a(b.currentTarget).data("bs." + this.type, c))),
|
|
b
|
|
? ((c.inState.click = !c.inState.click),
|
|
c.isInStateTrue() ? c.enter(c) : c.leave(c))
|
|
: c.tip().hasClass("in")
|
|
? c.leave(c)
|
|
: c.enter(c);
|
|
}),
|
|
(c.prototype.destroy = function () {
|
|
var a = this;
|
|
clearTimeout(this.timeout),
|
|
this.hide(function () {
|
|
a.$element.off("." + a.type).removeData("bs." + a.type),
|
|
a.$tip && a.$tip.detach(),
|
|
(a.$tip = null),
|
|
(a.$arrow = null),
|
|
(a.$viewport = null),
|
|
(a.$element = null);
|
|
});
|
|
});
|
|
var d = a.fn.tooltip;
|
|
(a.fn.tooltip = b),
|
|
(a.fn.tooltip.Constructor = c),
|
|
(a.fn.tooltip.noConflict = function () {
|
|
return (a.fn.tooltip = d), this;
|
|
});
|
|
})(jQuery),
|
|
+(function (a) {
|
|
"use strict";
|
|
function b(b) {
|
|
return this.each(function () {
|
|
var d = a(this),
|
|
e = d.data("bs.popover"),
|
|
f = "object" == typeof b && b;
|
|
(!e && /destroy|hide/.test(b)) ||
|
|
(e || d.data("bs.popover", (e = new c(this, f))),
|
|
"string" == typeof b && e[b]());
|
|
});
|
|
}
|
|
var c = function (a, b) {
|
|
this.init("popover", a, b);
|
|
};
|
|
if (!a.fn.tooltip) throw new Error("Popover requires tooltip.js");
|
|
(c.VERSION = "3.3.7"),
|
|
(c.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, {
|
|
placement: "right",
|
|
trigger: "click",
|
|
content: "",
|
|
template:
|
|
'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>',
|
|
})),
|
|
(c.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype)),
|
|
(c.prototype.constructor = c),
|
|
(c.prototype.getDefaults = function () {
|
|
return c.DEFAULTS;
|
|
}),
|
|
(c.prototype.setContent = function () {
|
|
var a = this.tip(),
|
|
b = this.getTitle(),
|
|
c = this.getContent();
|
|
a
|
|
.find(".popover-title")
|
|
[this.options.html ? "html" : "text"](b),
|
|
a
|
|
.find(".popover-content")
|
|
.children()
|
|
.detach()
|
|
.end()
|
|
[
|
|
this.options.html
|
|
? "string" == typeof c
|
|
? "html"
|
|
: "append"
|
|
: "text"
|
|
](c),
|
|
a.removeClass("fade top bottom left right in"),
|
|
a.find(".popover-title").html() ||
|
|
a.find(".popover-title").hide();
|
|
}),
|
|
(c.prototype.hasContent = function () {
|
|
return this.getTitle() || this.getContent();
|
|
}),
|
|
(c.prototype.getContent = function () {
|
|
var a = this.$element,
|
|
b = this.options;
|
|
return (
|
|
a.attr("data-content") ||
|
|
("function" == typeof b.content
|
|
? b.content.call(a[0])
|
|
: b.content)
|
|
);
|
|
}),
|
|
(c.prototype.arrow = function () {
|
|
return (this.$arrow = this.$arrow || this.tip().find(".arrow"));
|
|
});
|
|
var d = a.fn.popover;
|
|
(a.fn.popover = b),
|
|
(a.fn.popover.Constructor = c),
|
|
(a.fn.popover.noConflict = function () {
|
|
return (a.fn.popover = d), this;
|
|
});
|
|
})(jQuery),
|
|
+(function (a) {
|
|
"use strict";
|
|
function b(c, d) {
|
|
(this.$body = a(document.body)),
|
|
(this.$scrollElement = a(a(c).is(document.body) ? window : c)),
|
|
(this.options = a.extend({}, b.DEFAULTS, d)),
|
|
(this.selector = (this.options.target || "") + " .nav li > a"),
|
|
(this.offsets = []),
|
|
(this.targets = []),
|
|
(this.activeTarget = null),
|
|
(this.scrollHeight = 0),
|
|
this.$scrollElement.on(
|
|
"scroll.bs.scrollspy",
|
|
a.proxy(this.process, this)
|
|
),
|
|
this.refresh(),
|
|
this.process();
|
|
}
|
|
function c(c) {
|
|
return this.each(function () {
|
|
var d = a(this),
|
|
e = d.data("bs.scrollspy"),
|
|
f = "object" == typeof c && c;
|
|
e || d.data("bs.scrollspy", (e = new b(this, f))),
|
|
"string" == typeof c && e[c]();
|
|
});
|
|
}
|
|
(b.VERSION = "3.3.7"),
|
|
(b.DEFAULTS = { offset: 10 }),
|
|
(b.prototype.getScrollHeight = function () {
|
|
return (
|
|
this.$scrollElement[0].scrollHeight ||
|
|
Math.max(
|
|
this.$body[0].scrollHeight,
|
|
document.documentElement.scrollHeight
|
|
)
|
|
);
|
|
}),
|
|
(b.prototype.refresh = function () {
|
|
var b = this,
|
|
c = "offset",
|
|
d = 0;
|
|
(this.offsets = []),
|
|
(this.targets = []),
|
|
(this.scrollHeight = this.getScrollHeight()),
|
|
a.isWindow(this.$scrollElement[0]) ||
|
|
((c = "position"),
|
|
(d = this.$scrollElement.scrollTop())),
|
|
this.$body
|
|
.find(this.selector)
|
|
.map(function () {
|
|
var b = a(this),
|
|
e = b.data("target") || b.attr("href"),
|
|
f = /^#./.test(e) && a(e);
|
|
return (
|
|
(f &&
|
|
f.length &&
|
|
f.is(":visible") && [
|
|
[f[c]().top + d, e],
|
|
]) ||
|
|
null
|
|
);
|
|
})
|
|
.sort(function (a, b) {
|
|
return a[0] - b[0];
|
|
})
|
|
.each(function () {
|
|
b.offsets.push(this[0]), b.targets.push(this[1]);
|
|
});
|
|
}),
|
|
(b.prototype.process = function () {
|
|
var a,
|
|
b = this.$scrollElement.scrollTop() + this.options.offset,
|
|
c = this.getScrollHeight(),
|
|
d = this.options.offset + c - this.$scrollElement.height(),
|
|
e = this.offsets,
|
|
f = this.targets,
|
|
g = this.activeTarget;
|
|
if ((this.scrollHeight != c && this.refresh(), b >= d))
|
|
return g != (a = f[f.length - 1]) && this.activate(a);
|
|
if (g && b < e[0])
|
|
return (this.activeTarget = null), this.clear();
|
|
for (a = e.length; a--; )
|
|
g != f[a] &&
|
|
b >= e[a] &&
|
|
(void 0 === e[a + 1] || b < e[a + 1]) &&
|
|
this.activate(f[a]);
|
|
}),
|
|
(b.prototype.activate = function (b) {
|
|
(this.activeTarget = b), this.clear();
|
|
var c =
|
|
this.selector +
|
|
'[data-target="' +
|
|
b +
|
|
'"],' +
|
|
this.selector +
|
|
'[href="' +
|
|
b +
|
|
'"]',
|
|
d = a(c).parents("li").addClass("active");
|
|
d.parent(".dropdown-menu").length &&
|
|
(d = d.closest("li.dropdown").addClass("active")),
|
|
d.trigger("activate.bs.scrollspy");
|
|
}),
|
|
(b.prototype.clear = function () {
|
|
a(this.selector)
|
|
.parentsUntil(this.options.target, ".active")
|
|
.removeClass("active");
|
|
});
|
|
var d = a.fn.scrollspy;
|
|
(a.fn.scrollspy = c),
|
|
(a.fn.scrollspy.Constructor = b),
|
|
(a.fn.scrollspy.noConflict = function () {
|
|
return (a.fn.scrollspy = d), this;
|
|
}),
|
|
a(window).on("load.bs.scrollspy.data-api", function () {
|
|
a('[data-spy="scroll"]').each(function () {
|
|
var b = a(this);
|
|
c.call(b, b.data());
|
|
});
|
|
});
|
|
})(jQuery),
|
|
+(function (a) {
|
|
"use strict";
|
|
function b(b) {
|
|
return this.each(function () {
|
|
var d = a(this),
|
|
e = d.data("bs.tab");
|
|
e || d.data("bs.tab", (e = new c(this))),
|
|
"string" == typeof b && e[b]();
|
|
});
|
|
}
|
|
var c = function (b) {
|
|
this.element = a(b);
|
|
};
|
|
(c.VERSION = "3.3.7"),
|
|
(c.TRANSITION_DURATION = 150),
|
|
(c.prototype.show = function () {
|
|
var b = this.element,
|
|
c = b.closest("ul:not(.dropdown-menu)"),
|
|
d = b.data("target");
|
|
if (
|
|
(d ||
|
|
((d = b.attr("href")),
|
|
(d = d && d.replace(/.*(?=#[^\s]*$)/, ""))),
|
|
!b.parent("li").hasClass("active"))
|
|
) {
|
|
var e = c.find(".active:last a"),
|
|
f = a.Event("hide.bs.tab", { relatedTarget: b[0] }),
|
|
g = a.Event("show.bs.tab", { relatedTarget: e[0] });
|
|
if (
|
|
(e.trigger(f),
|
|
b.trigger(g),
|
|
!g.isDefaultPrevented() && !f.isDefaultPrevented())
|
|
) {
|
|
var h = a(d);
|
|
this.activate(b.closest("li"), c),
|
|
this.activate(h, h.parent(), function () {
|
|
e.trigger({
|
|
type: "hidden.bs.tab",
|
|
relatedTarget: b[0],
|
|
}),
|
|
b.trigger({
|
|
type: "shown.bs.tab",
|
|
relatedTarget: e[0],
|
|
});
|
|
});
|
|
}
|
|
}
|
|
}),
|
|
(c.prototype.activate = function (b, d, e) {
|
|
function f() {
|
|
g
|
|
.removeClass("active")
|
|
.find("> .dropdown-menu > .active")
|
|
.removeClass("active")
|
|
.end()
|
|
.find('[data-toggle="tab"]')
|
|
.attr("aria-expanded", !1),
|
|
b
|
|
.addClass("active")
|
|
.find('[data-toggle="tab"]')
|
|
.attr("aria-expanded", !0),
|
|
h
|
|
? (b[0].offsetWidth, b.addClass("in"))
|
|
: b.removeClass("fade"),
|
|
b.parent(".dropdown-menu").length &&
|
|
b
|
|
.closest("li.dropdown")
|
|
.addClass("active")
|
|
.end()
|
|
.find('[data-toggle="tab"]')
|
|
.attr("aria-expanded", !0),
|
|
e && e();
|
|
}
|
|
var g = d.find("> .active"),
|
|
h =
|
|
e &&
|
|
a.support.transition &&
|
|
((g.length && g.hasClass("fade")) ||
|
|
!!d.find("> .fade").length);
|
|
g.length && h
|
|
? g
|
|
.one("bsTransitionEnd", f)
|
|
.emulateTransitionEnd(c.TRANSITION_DURATION)
|
|
: f(),
|
|
g.removeClass("in");
|
|
});
|
|
var d = a.fn.tab;
|
|
(a.fn.tab = b),
|
|
(a.fn.tab.Constructor = c),
|
|
(a.fn.tab.noConflict = function () {
|
|
return (a.fn.tab = d), this;
|
|
});
|
|
var e = function (c) {
|
|
c.preventDefault(), b.call(a(this), "show");
|
|
};
|
|
a(document)
|
|
.on("click.bs.tab.data-api", '[data-toggle="tab"]', e)
|
|
.on("click.bs.tab.data-api", '[data-toggle="pill"]', e);
|
|
})(jQuery),
|
|
+(function (a) {
|
|
"use strict";
|
|
function b(b) {
|
|
return this.each(function () {
|
|
var d = a(this),
|
|
e = d.data("bs.affix"),
|
|
f = "object" == typeof b && b;
|
|
e || d.data("bs.affix", (e = new c(this, f))),
|
|
"string" == typeof b && e[b]();
|
|
});
|
|
}
|
|
var c = function (b, d) {
|
|
(this.options = a.extend({}, c.DEFAULTS, d)),
|
|
(this.$target = a(this.options.target)
|
|
.on(
|
|
"scroll.bs.affix.data-api",
|
|
a.proxy(this.checkPosition, this)
|
|
)
|
|
.on(
|
|
"click.bs.affix.data-api",
|
|
a.proxy(this.checkPositionWithEventLoop, this)
|
|
)),
|
|
(this.$element = a(b)),
|
|
(this.affixed = null),
|
|
(this.unpin = null),
|
|
(this.pinnedOffset = null),
|
|
this.checkPosition();
|
|
};
|
|
(c.VERSION = "3.3.7"),
|
|
(c.RESET = "affix affix-top affix-bottom"),
|
|
(c.DEFAULTS = { offset: 0, target: window }),
|
|
(c.prototype.getState = function (a, b, c, d) {
|
|
var e = this.$target.scrollTop(),
|
|
f = this.$element.offset(),
|
|
g = this.$target.height();
|
|
if (null != c && "top" == this.affixed) return e < c && "top";
|
|
if ("bottom" == this.affixed)
|
|
return null != c
|
|
? !(e + this.unpin <= f.top) && "bottom"
|
|
: !(e + g <= a - d) && "bottom";
|
|
var h = null == this.affixed,
|
|
i = h ? e : f.top,
|
|
j = h ? g : b;
|
|
return null != c && e <= c
|
|
? "top"
|
|
: null != d && i + j >= a - d && "bottom";
|
|
}),
|
|
(c.prototype.getPinnedOffset = function () {
|
|
if (this.pinnedOffset) return this.pinnedOffset;
|
|
this.$element.removeClass(c.RESET).addClass("affix");
|
|
var a = this.$target.scrollTop(),
|
|
b = this.$element.offset();
|
|
return (this.pinnedOffset = b.top - a);
|
|
}),
|
|
(c.prototype.checkPositionWithEventLoop = function () {
|
|
setTimeout(a.proxy(this.checkPosition, this), 1);
|
|
}),
|
|
(c.prototype.checkPosition = function () {
|
|
if (this.$element.is(":visible")) {
|
|
var b = this.$element.height(),
|
|
d = this.options.offset,
|
|
e = d.top,
|
|
f = d.bottom,
|
|
g = Math.max(
|
|
a(document).height(),
|
|
a(document.body).height()
|
|
);
|
|
"object" != typeof d && (f = e = d),
|
|
"function" == typeof e && (e = d.top(this.$element)),
|
|
"function" == typeof f && (f = d.bottom(this.$element));
|
|
var h = this.getState(g, b, e, f);
|
|
if (this.affixed != h) {
|
|
null != this.unpin && this.$element.css("top", "");
|
|
var i = "affix" + (h ? "-" + h : ""),
|
|
j = a.Event(i + ".bs.affix");
|
|
if ((this.$element.trigger(j), j.isDefaultPrevented()))
|
|
return;
|
|
(this.affixed = h),
|
|
(this.unpin =
|
|
"bottom" == h ? this.getPinnedOffset() : null),
|
|
this.$element
|
|
.removeClass(c.RESET)
|
|
.addClass(i)
|
|
.trigger(
|
|
i.replace("affix", "affixed") + ".bs.affix"
|
|
);
|
|
}
|
|
"bottom" == h && this.$element.offset({ top: g - b - f });
|
|
}
|
|
});
|
|
var d = a.fn.affix;
|
|
(a.fn.affix = b),
|
|
(a.fn.affix.Constructor = c),
|
|
(a.fn.affix.noConflict = function () {
|
|
return (a.fn.affix = d), this;
|
|
}),
|
|
a(window).on("load", function () {
|
|
a('[data-spy="affix"]').each(function () {
|
|
var c = a(this),
|
|
d = c.data();
|
|
(d.offset = d.offset || {}),
|
|
null != d.offsetBottom &&
|
|
(d.offset.bottom = d.offsetBottom),
|
|
null != d.offsetTop && (d.offset.top = d.offsetTop),
|
|
b.call(c, d);
|
|
});
|
|
});
|
|
})(jQuery);
|