2022-12-29 09:42:31 -05:00
|
|
|
/*!
|
|
|
|
* Bootstrap v3.3.7 (http://getbootstrap.com)
|
|
|
|
* Copyright 2011-2016 Twitter, Inc.
|
|
|
|
* Licensed under the MIT license
|
|
|
|
*/
|
2023-01-17 18:14:34 -05:00
|
|
|
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 v" +
|
|
|
|
"ersion 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);
|