(function(e, t) {
'object' == typeof exports && 'undefined' != typeof module ? t(require('jquery'), require('popper.js')) : 'function' == typeof define && define.amd ? define(['jquery', 'popper.js'], t) : t(e.jQuery, e.Popper)
})(this, function(e, t) {
'use strict';
function n(e, t) {
for (var n, o = 0; o < t.length; o++) n = t[o], n.enumerable = n.enumerable || !1, n.configurable = !0, 'value' in n && (n.writable = !0), Object.defineProperty(e, n.key, n)
}
function o(e, t, o) {
return t && n(e.prototype, t), o && n(e, o), e
}
function a() {
return a = Object.assign || function(e) {
for (var t, n = 1; n < arguments.length; n++)
for (var o in t = arguments[n], t) Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);
return e
}, a.apply(this, arguments)
}
function r(e, t) {
e.prototype = Object.create(t.prototype), e.prototype.constructor = e, e.__proto__ = t
}
var i = Math.max;
e = e && e.hasOwnProperty('default') ? e['default'] : e, t = t && t.hasOwnProperty('default') ? t['default'] : t;
var l = function(e) {
function t(e) {
return {}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase()
}
function n() {
return {
bindType: r.end,
delegateType: r.end,
handle: function(t) {
return e(t.target).is(this) ? t.handleObj.handler.apply(this, arguments) : void 0
}
}
}
function o() {
return 'undefined' != typeof window && window.QUnit ? !1 : {
end: 'transitionend'
}
}
function a(t) {
var n = this,
o = !1;
return e(this).one(i.TRANSITION_END, function() {
o = !0
}), setTimeout(function() {
o || i.triggerTransitionEnd(n)
}, t), this
}
var r = !1,
i = {
TRANSITION_END: 'bsTransitionEnd',
getUID: function(e) {
do e += ~~(Math.random() * 1e6); while (document.getElementById(e));
return e
},
getSelectorFromElement: function(t) {
var n = t.getAttribute('data-target');
n && '#' !== n || (n = t.getAttribute('href') || '');
try {
var o = e(document).find(n);
return 0 < o.length ? n : null
} catch (e) {
return null
}
},
reflow: function(e) {
return e.offsetHeight
},
triggerTransitionEnd: function(t) {
e(t).trigger(r.end)
},
supportsTransitionEnd: function() {
return !!r
},
isElement: function(e) {
return (e[0] || e).nodeType
},
typeCheckConfig: function(e, n, o) {
for (var a in o)
if (Object.prototype.hasOwnProperty.call(o, a)) {
var r = o[a],
l = n[a],
s = l && i.isElement(l) ? 'element' : t(l);
if (!new RegExp(r).test(s)) throw new Error(e.toUpperCase() + ': ' + ('Option "' + a + '" provided type "' + s + '" ') + ('but expected type "' + r + '".'))
}
}
};
return function() {
r = o(), e.fn.emulateTransitionEnd = a, i.supportsTransitionEnd() && (e.event.special[i.TRANSITION_END] = n())
}(), i
}(e),
s = function(e) {
var t = 'alert',
n = 'bs.alert',
a = '.' + n,
r = e.fn[t],
i = {
CLOSE: 'close' + a,
CLOSED: 'closed' + a,
CLICK_DATA_API: 'click' + a + '.data-api'
},
s = {
ALERT: 'alert',
FADE: 'fade',
SHOW: 'show'
},
d = function() {
function t(e) {
this._element = e
}
var a = t.prototype;
return a.close = function(e) {
e = e || this._element;
var t = this._getRootElement(e),
n = this._triggerCloseEvent(t);
n.isDefaultPrevented() || this._removeElement(t)
}, a.dispose = function() {
e.removeData(this._element, n), this._element = null
}, a._getRootElement = function(t) {
var n = l.getSelectorFromElement(t),
o = !1;
return n && (o = e(n)[0]), o || (o = e(t).closest('.' + s.ALERT)[0]), o
}, a._triggerCloseEvent = function(t) {
var n = e.Event(i.CLOSE);
return e(t).trigger(n), n
}, a._removeElement = function(t) {
var n = this;
return e(t).removeClass(s.SHOW), l.supportsTransitionEnd() && e(t).hasClass(s.FADE) ? void e(t).one(l.TRANSITION_END, function(e) {
return n._destroyElement(t, e)
}).emulateTransitionEnd(150) : void this._destroyElement(t)
}, a._destroyElement = function(t) {
e(t).detach().trigger(i.CLOSED).remove()
}, t._jQueryInterface = function(o) {
return this.each(function() {
var a = e(this),
r = a.data(n);
r || (r = new t(this), a.data(n, r)), 'close' === o && r[o](this)
})
}, t._handleDismiss = function(e) {
return function(t) {
t && t.preventDefault(), e.close(this)
}
}, o(t, null, [{
key: 'VERSION',
get: function() {
return '4.0.0'
}
}]), t
}();
return e(document).on(i.CLICK_DATA_API, {
DISMISS: '[data-dismiss="alert"]'
}.DISMISS, d._handleDismiss(new d)), e.fn[t] = d._jQueryInterface, e.fn[t].Constructor = d, e.fn[t].noConflict = function() {
return e.fn[t] = r, d._jQueryInterface
}, d
}(e),
d = function(e) {
var t = 'button',
n = 'bs.button',
a = '.' + n,
r = '.data-api',
i = e.fn[t],
l = {
ACTIVE: 'active',
BUTTON: 'btn',
FOCUS: 'focus'
},
s = {
DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
DATA_TOGGLE: '[data-toggle="buttons"]',
INPUT: 'input',
ACTIVE: '.active',
BUTTON: '.btn'
},
d = {
CLICK_DATA_API: 'click' + a + r,
FOCUS_BLUR_DATA_API: 'focus' + a + r + ' ' + ('blur' + a + r)
},
c = function() {
function t(e) {
this._element = e
}
var a = t.prototype;
return a.toggle = function() {
var t = !0,
n = !0,
o = e(this._element).closest(s.DATA_TOGGLE)[0];
if (o) {
var a = e(this._element).find(s.INPUT)[0];
if (a) {
if ('radio' === a.type)
if (a.checked && e(this._element).hasClass(l.ACTIVE)) t = !1;
else {
var r = e(o).find(s.ACTIVE)[0];
r && e(r).removeClass(l.ACTIVE)
}
if (t) {
if (a.hasAttribute('disabled') || o.hasAttribute('disabled') || a.classList.contains('disabled') || o.classList.contains('disabled')) return;
a.checked = !e(this._element).hasClass(l.ACTIVE), e(a).trigger('change')
}
a.focus(), n = !1
}
}
n && this._element.setAttribute('aria-pressed', !e(this._element).hasClass(l.ACTIVE)), t && e(this._element).toggleClass(l.ACTIVE)
}, a.dispose = function() {
e.removeData(this._element, n), this._element = null
}, t._jQueryInterface = function(o) {
return this.each(function() {
var a = e(this).data(n);
a || (a = new t(this), e(this).data(n, a)), 'toggle' === o && a[o]()
})
}, o(t, null, [{
key: 'VERSION',
get: function() {
return '4.0.0'
}
}]), t
}();
return e(document).on(d.CLICK_DATA_API, s.DATA_TOGGLE_CARROT, function(t) {
t.preventDefault();
var n = t.target;
e(n).hasClass(l.BUTTON) || (n = e(n).closest(s.BUTTON)), c._jQueryInterface.call(e(n), 'toggle')
}).on(d.FOCUS_BLUR_DATA_API, s.DATA_TOGGLE_CARROT, function(t) {
var n = e(t.target).closest(s.BUTTON)[0];
e(n).toggleClass(l.FOCUS, /^focus(in)?$/.test(t.type))
}), e.fn[t] = c._jQueryInterface, e.fn[t].Constructor = c, e.fn[t].noConflict = function() {
return e.fn[t] = i, c._jQueryInterface
}, c
}(e),
c = function(e) {
var t = 'carousel',
n = 'bs.carousel',
a = '.' + n,
r = '.data-api',
i = e.fn[t],
s = {
interval: 5e3,
keyboard: !0,
slide: !1,
pause: 'hover',
wrap: !0
},
d = {
interval: '(number|boolean)',
keyboard: 'boolean',
slide: '(boolean|string)',
pause: '(string|boolean)',
wrap: 'boolean'
},
c = {
NEXT: 'next',
PREV: 'prev',
LEFT: 'left',
RIGHT: 'right'
},
_ = {
SLIDE: 'slide' + a,
SLID: 'slid' + a,
KEYDOWN: 'keydown' + a,
MOUSEENTER: 'mouseenter' + a,
MOUSELEAVE: 'mouseleave' + a,
TOUCHEND: 'touchend' + a,
LOAD_DATA_API: 'load' + a + r,
CLICK_DATA_API: 'click' + a + r
},
p = {
CAROUSEL: 'carousel',
ACTIVE: 'active',
SLIDE: 'slide',
RIGHT: 'carousel-item-right',
LEFT: 'carousel-item-left',
NEXT: 'carousel-item-next',
PREV: 'carousel-item-prev',
ITEM: 'carousel-item'
},
m = {
ACTIVE: '.active',
ACTIVE_ITEM: '.active.carousel-item',
ITEM: '.carousel-item',
NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
INDICATORS: '.carousel-indicators',
DATA_SLIDE: '[data-slide], [data-slide-to]',
DATA_RIDE: '[data-ride="carousel"]'
},
g = function() {
function r(t, n) {
this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this._config = this._getConfig(n), this._element = e(t)[0], this._indicatorsElement = e(this._element).find(m.INDICATORS)[0], this._addEventListeners()
}
var i = r.prototype;
return i.next = function() {
this._isSliding || this._slide(c.NEXT)
}, i.nextWhenVisible = function() {
document.hidden || this.next()
}, i.prev = function() {
this._isSliding || this._slide(c.PREV)
}, i.pause = function(t) {
t || (this._isPaused = !0), e(this._element).find(m.NEXT_PREV)[0] && l.supportsTransitionEnd() && (l.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null
}, i.cycle = function(e) {
e || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval))
}, i.to = function(t) {
var n = this;
this._activeElement = e(this._element).find(m.ACTIVE_ITEM)[0];
var o = this._getItemIndex(this._activeElement);
if (!(t > this._items.length - 1 || 0 > t)) {
if (this._isSliding) return void e(this._element).one(_.SLID, function() {
return n.to(t)
});
if (o === t) return this.pause(), void this.cycle();
var a = t > o ? c.NEXT : c.PREV;
this._slide(a, this._items[t])
}
}, i.dispose = function() {
e(this._element).off(a), e.removeData(this._element, n), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null
}, i._getConfig = function(n) {
return n = e.extend({}, s, n), l.typeCheckConfig(t, n, d), n
}, i._addEventListeners = function() {
var t = this;
this._config.keyboard && e(this._element).on(_.KEYDOWN, function(e) {
return t._keydown(e)
}), 'hover' === this._config.pause && (e(this._element).on(_.MOUSEENTER, function(e) {
return t.pause(e)
}).on(_.MOUSELEAVE, function(e) {
return t.cycle(e)
}), 'ontouchstart' in document.documentElement && e(this._element).on(_.TOUCHEND, function() {
t.pause(), t.touchTimeout && clearTimeout(t.touchTimeout), t.touchTimeout = setTimeout(function(e) {
return t.cycle(e)
}, 500 + t._config.interval)
}))
}, i._keydown = function(e) {
if (!/input|textarea/i.test(e.target.tagName)) switch (e.which) {
case 37:
e.preventDefault(), this.prev();
break;
case 39:
e.preventDefault(), this.next();
break;
default:
}
}, i._getItemIndex = function(t) {
return this._items = e.makeArray(e(t).parent().find(m.ITEM)), this._items.indexOf(t)
}, i._getItemByDirection = function(e, t) {
var n = e === c.NEXT,
o = e === c.PREV,
a = this._getItemIndex(t),
r = this._items.length - 1;
if ((o && 0 === a || n && a === r) && !this._config.wrap) return t;
var i = e === c.PREV ? -1 : 1,
l = (a + i) % this._items.length;
return -1 == l ? this._items[this._items.length - 1] : this._items[l]
}, i._triggerSlideEvent = function(t, n) {
var o = this._getItemIndex(t),
a = this._getItemIndex(e(this._element).find(m.ACTIVE_ITEM)[0]),
r = e.Event(_.SLIDE, {
relatedTarget: t,
direction: n,
from: a,
to: o
});
return e(this._element).trigger(r), r
}, i._setActiveIndicatorElement = function(t) {
if (this._indicatorsElement) {
e(this._indicatorsElement).find(m.ACTIVE).removeClass(p.ACTIVE);
var n = this._indicatorsElement.children[this._getItemIndex(t)];
n && e(n).addClass(p.ACTIVE)
}
}, i._slide = function(t, n) {
var o, a, r, i = this,
s = e(this._element).find(m.ACTIVE_ITEM)[0],
d = this._getItemIndex(s),
g = n || s && this._getItemByDirection(t, s),
f = this._getItemIndex(g),
u = !!this._interval;
if (t === c.NEXT ? (o = p.LEFT, a = p.NEXT, r = c.LEFT) : (o = p.RIGHT, a = p.PREV, r = c.RIGHT), g && e(g).hasClass(p.ACTIVE)) return void(this._isSliding = !1);
var E = this._triggerSlideEvent(g, r);
if (!E.isDefaultPrevented() && s && g) {
this._isSliding = !0, u && this.pause(), this._setActiveIndicatorElement(g);
var h = e.Event(_.SLID, {
relatedTarget: g,
direction: r,
from: d,
to: f
});
l.supportsTransitionEnd() && e(this._element).hasClass(p.SLIDE) ? (e(g).addClass(a), l.reflow(g), e(s).addClass(o), e(g).addClass(o), e(s).one(l.TRANSITION_END, function() {
e(g).removeClass(o + ' ' + a).addClass(p.ACTIVE), e(s).removeClass(p.ACTIVE + ' ' + a + ' ' + o), i._isSliding = !1, setTimeout(function() {
return e(i._element).trigger(h)
}, 0)
}).emulateTransitionEnd(600)) : (e(s).removeClass(p.ACTIVE), e(g).addClass(p.ACTIVE), this._isSliding = !1, e(this._element).trigger(h)), u && this.cycle()
}
}, r._jQueryInterface = function(t) {
return this.each(function() {
var o = e(this).data(n),
a = e.extend({}, s, e(this).data());
'object' == typeof t && e.extend(a, t);
var i = 'string' == typeof t ? t : a.slide;
if (o || (o = new r(this, a), e(this).data(n, o)), 'number' == typeof t) o.to(t);
else if ('string' == typeof i) {
if (void 0 === o[i]) throw new Error('No method named "' + i + '"');
o[i]()
} else a.interval && (o.pause(), o.cycle())
})
}, r._dataApiClickHandler = function(t) {
var o = l.getSelectorFromElement(this);
if (o) {
var a = e(o)[0];
if (a && e(a).hasClass(p.CAROUSEL)) {
var i = e.extend({}, e(a).data(), e(this).data()),
s = this.getAttribute('data-slide-to');
s && (i.interval = !1), r._jQueryInterface.call(e(a), i), s && e(a).data(n).to(s), t.preventDefault()
}
}
}, o(r, null, [{
key: 'VERSION',
get: function() {
return '4.0.0-beta'
}
}, {
key: 'Default',
get: function() {
return s
}
}]), r
}();
return e(document).on(_.CLICK_DATA_API, m.DATA_SLIDE, g._dataApiClickHandler), e(window).on(_.LOAD_DATA_API, function() {
e(m.DATA_RIDE).each(function() {
var t = e(this);
g._jQueryInterface.call(t, t.data())
})
}), e.fn[t] = g._jQueryInterface, e.fn[t].Constructor = g, e.fn[t].noConflict = function() {
return e.fn[t] = i, g._jQueryInterface
}, g
}(jQuery),
_ = function(e) {
var t = 'collapse',
n = 'bs.collapse',
r = '.' + n,
i = e.fn[t],
s = 600,
d = {
toggle: !0,
parent: ''
},
c = {
toggle: 'boolean',
parent: '(string|element)'
},
_ = {
SHOW: 'show' + r,
SHOWN: 'shown' + r,
HIDE: 'hide' + r,
HIDDEN: 'hidden' + r,
CLICK_DATA_API: 'click' + r + '.data-api'
},
p = {
SHOW: 'show',
COLLAPSE: 'collapse',
COLLAPSING: 'collapsing',
COLLAPSED: 'collapsed'
},
m = {
WIDTH: 'width',
HEIGHT: 'height'
},
g = {
ACTIVES: '.show, .collapsing',
DATA_TOGGLE: '[data-toggle="collapse"]'
},
f = function() {
function r(t, n) {
this._isTransitioning = !1, this._element = t, this._config = this._getConfig(n), this._triggerArray = e.makeArray(e('[data-toggle="collapse"][href="#' + t.id + '"],' + ('[data-toggle="collapse"][data-target="#' + t.id + '"]')));
for (var o = e(g.DATA_TOGGLE), a = 0; a < o.length; a++) {
var r = o[a],
i = l.getSelectorFromElement(r);
null !== i && 0 < e(i).filter(t).length && (this._selector = i, this._triggerArray.push(r))
}
this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle()
}
var i = r.prototype;
return i.toggle = function() {
e(this._element).hasClass(p.SHOW) ? this.hide() : this.show()
}, i.show = function() {
var t = this;
if (!(this._isTransitioning || e(this._element).hasClass(p.SHOW))) {
var o, a;
if (this._parent && (o = e.makeArray(e(this._parent).find(g.ACTIVES).filter('[data-parent="' + this._config.parent + '"]')), 0 === o.length && (o = null)), !(o && (a = e(o).not(this._selector).data(n), a && a._isTransitioning))) {
var i = e.Event(_.SHOW);
if (e(this._element).trigger(i), !i.isDefaultPrevented()) {
o && (r._jQueryInterface.call(e(o).not(this._selector), 'hide'), !a && e(o).data(n, null));
var d = this._getDimension();
e(this._element).removeClass(p.COLLAPSE).addClass(p.COLLAPSING), this._element.style[d] = 0, 0 < this._triggerArray.length && e(this._triggerArray).removeClass(p.COLLAPSED).attr('aria-expanded', !0), this.setTransitioning(!0);
var c = function() {
e(t._element).removeClass(p.COLLAPSING).addClass(p.COLLAPSE).addClass(p.SHOW), t._element.style[d] = '', t.setTransitioning(!1), e(t._element).trigger(_.SHOWN)
};
if (!l.supportsTransitionEnd()) return void c();
var m = d[0].toUpperCase() + d.slice(1);
e(this._element).one(l.TRANSITION_END, c).emulateTransitionEnd(s), this._element.style[d] = this._element['scroll' + m] + 'px'
}
}
}
}, i.hide = function() {
var t = this;
if (!this._isTransitioning && e(this._element).hasClass(p.SHOW)) {
var n = e.Event(_.HIDE);
if (e(this._element).trigger(n), !n.isDefaultPrevented()) {
var o = this._getDimension();
if (this._element.style[o] = this._element.getBoundingClientRect()[o] + 'px', l.reflow(this._element), e(this._element).addClass(p.COLLAPSING).removeClass(p.COLLAPSE).removeClass(p.SHOW), 0 < this._triggerArray.length)
for (var a = 0; a < this._triggerArray.length; a++) {
var r = this._triggerArray[a],
i = l.getSelectorFromElement(r);
if (null !== i) {
var d = e(i);
d.hasClass(p.SHOW) || e(r).addClass(p.COLLAPSED).attr('aria-expanded', !1)
}
}
this.setTransitioning(!0);
var c = function() {
t.setTransitioning(!1), e(t._element).removeClass(p.COLLAPSING).addClass(p.COLLAPSE).trigger(_.HIDDEN)
};
return this._element.style[o] = '', l.supportsTransitionEnd() ? void e(this._element).one(l.TRANSITION_END, c).emulateTransitionEnd(s) : void c()
}
}
}, i.setTransitioning = function(e) {
this._isTransitioning = e
}, i.dispose = function() {
e.removeData(this._element, n), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null
}, i._getConfig = function(e) {
return e = a({}, d, e), e.toggle = !!e.toggle, l.typeCheckConfig(t, e, c), e
}, i._getDimension = function() {
var t = e(this._element).hasClass(m.WIDTH);
return t ? m.WIDTH : m.HEIGHT
}, i._getParent = function() {
var t = this,
n = null;
l.isElement(this._config.parent) ? (n = this._config.parent, 'undefined' != typeof this._config.parent.jquery && (n = this._config.parent[0])) : n = e(this._config.parent)[0];
var o = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]';
return e(n).find(o).each(function(e, n) {
t._addAriaAndCollapsedClass(r._getTargetFromElement(n), [n])
}), n
}, i._addAriaAndCollapsedClass = function(t, n) {
if (t) {
var o = e(t).hasClass(p.SHOW);
0 < n.length && e(n).toggleClass(p.COLLAPSED, !o).attr('aria-expanded', o)
}
}, r._getTargetFromElement = function(t) {
var n = l.getSelectorFromElement(t);
return n ? e(n)[0] : null
}, r._jQueryInterface = function(t) {
return this.each(function() {
var o = e(this),
i = o.data(n),
l = a({}, d, o.data(), 'object' == typeof t && t);
if (!i && l.toggle && /show|hide/.test(t) && (l.toggle = !1), i || (i = new r(this, l), o.data(n, i)), 'string' == typeof t) {
if ('undefined' == typeof i[t]) throw new TypeError('No method named "' + t + '"');
i[t]()
}
})
}, o(r, null, [{
key: 'VERSION',
get: function() {
return '4.0.0'
}
}, {
key: 'Default',
get: function() {
return d
}
}]), r
}();
return e(document).on(_.CLICK_DATA_API, g.DATA_TOGGLE, function(t) {
'A' === t.currentTarget.tagName && t.preventDefault();
var o = e(this),
a = l.getSelectorFromElement(this);
e(a).each(function() {
var t = e(this),
a = t.data(n),
r = a ? 'toggle' : o.data();
f._jQueryInterface.call(t, r)
})
}), e.fn[t] = f._jQueryInterface, e.fn[t].Constructor = f, e.fn[t].noConflict = function() {
return e.fn[t] = i, f._jQueryInterface
}, f
}(e),
p = function(e) {
var t = 'modal',
n = 'bs.modal',
r = '.' + n,
i = e.fn[t],
s = 300,
d = 150,
c = {
backdrop: !0,
keyboard: !0,
focus: !0,
show: !0
},
_ = {
backdrop: '(boolean|string)',
keyboard: 'boolean',
focus: 'boolean',
show: 'boolean'
},
p = {
HIDE: 'hide' + r,
HIDDEN: 'hidden' + r,
SHOW: 'show' + r,
SHOWN: 'shown' + r,
FOCUSIN: 'focusin' + r,
RESIZE: 'resize' + r,
CLICK_DISMISS: 'click.dismiss' + r,
KEYDOWN_DISMISS: 'keydown.dismiss' + r,
MOUSEUP_DISMISS: 'mouseup.dismiss' + r,
MOUSEDOWN_DISMISS: 'mousedown.dismiss' + r,
CLICK_DATA_API: 'click' + r + '.data-api'
},
m = {
SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
BACKDROP: 'modal-backdrop',
OPEN: 'modal-open',
FADE: 'fade',
SHOW: 'show'
},
g = {
DIALOG: '.modal-dialog',
DATA_TOGGLE: '[data-toggle="modal"]',
DATA_DISMISS: '[data-dismiss="modal"]',
FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
STICKY_CONTENT: '.sticky-top',
NAVBAR_TOGGLER: '.navbar-toggler'
},
f = function() {
function i(t, n) {
this._config = this._getConfig(n), this._element = t, this._dialog = e(t).find(g.DIALOG)[0], this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._originalBodyPadding = 0, this._scrollbarWidth = 0
}
var f = i.prototype;
return f.toggle = function(e) {
return this._isShown ? this.hide() : this.show(e)
}, f.show = function(t) {
var n = this;
if (!(this._isTransitioning || this._isShown)) {
l.supportsTransitionEnd() && e(this._element).hasClass(m.FADE) && (this._isTransitioning = !0);
var o = e.Event(p.SHOW, {
relatedTarget: t
});
e(this._element).trigger(o), this._isShown || o.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), e(document.body).addClass(m.OPEN), this._setEscapeEvent(), this._setResizeEvent(), e(this._element).on(p.CLICK_DISMISS, g.DATA_DISMISS, function(e) {
return n.hide(e)
}), e(this._dialog).on(p.MOUSEDOWN_DISMISS, function() {
e(n._element).one(p.MOUSEUP_DISMISS, function(t) {
e(t.target).is(n._element) && (n._ignoreBackdropClick = !0)
})
}), this._showBackdrop(function() {
return n._showElement(t)
}))
}
}, f.hide = function(t) {
var n = this;
if (t && t.preventDefault(), !this._isTransitioning && this._isShown) {
var o = e.Event(p.HIDE);
if (e(this._element).trigger(o), this._isShown && !o.isDefaultPrevented()) {
this._isShown = !1;
var a = l.supportsTransitionEnd() && e(this._element).hasClass(m.FADE);
a && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), e(document).off(p.FOCUSIN), e(this._element).removeClass(m.SHOW), e(this._element).off(p.CLICK_DISMISS), e(this._dialog).off(p.MOUSEDOWN_DISMISS), a ? e(this._element).one(l.TRANSITION_END, function(e) {
return n._hideModal(e)
}).emulateTransitionEnd(s) : this._hideModal()
}
}
}, f.dispose = function() {
e.removeData(this._element, n), e(window, document, this._element, this._backdrop).off(r), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._scrollbarWidth = null
}, f.handleUpdate = function() {
this._adjustDialog()
}, f._getConfig = function(e) {
return e = a({}, c, e), l.typeCheckConfig(t, e, _), e
}, f._showElement = function(t) {
var n = this,
o = l.supportsTransitionEnd() && e(this._element).hasClass(m.FADE);
this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = 'block', this._element.removeAttribute('aria-hidden'), this._element.scrollTop = 0, o && l.reflow(this._element), e(this._element).addClass(m.SHOW), this._config.focus && this._enforceFocus();
var a = e.Event(p.SHOWN, {
relatedTarget: t
}),
r = function() {
n._config.focus && n._element.focus(), n._isTransitioning = !1, e(n._element).trigger(a)
};
o ? e(this._dialog).one(l.TRANSITION_END, r).emulateTransitionEnd(s) : r()
}, f._enforceFocus = function() {
var t = this;
e(document).off(p.FOCUSIN).on(p.FOCUSIN, function(n) {
document !== n.target && t._element !== n.target && 0 === e(t._element).has(n.target).length && t._element.focus()
})
}, f._setEscapeEvent = function() {
var t = this;
this._isShown && this._config.keyboard ? e(this._element).on(p.KEYDOWN_DISMISS, function(e) {
e.which === 27 && (e.preventDefault(), t.hide())
}) : !this._isShown && e(this._element).off(p.KEYDOWN_DISMISS)
}, f._setResizeEvent = function() {
var t = this;
this._isShown ? e(window).on(p.RESIZE, function(e) {
return t.handleUpdate(e)
}) : e(window).off(p.RESIZE)
}, f._hideModal = function() {
var t = this;
this._element.style.display = 'none', this._element.setAttribute('aria-hidden', !0), this._isTransitioning = !1, this._showBackdrop(function() {
e(document.body).removeClass(m.OPEN), t._resetAdjustments(), t._resetScrollbar(), e(t._element).trigger(p.HIDDEN)
})
}, f._removeBackdrop = function() {
this._backdrop && (e(this._backdrop).remove(), this._backdrop = null)
}, f._showBackdrop = function(t) {
var n = this,
o = e(this._element).hasClass(m.FADE) ? m.FADE : '';
if (this._isShown && this._config.backdrop) {
var a = l.supportsTransitionEnd() && o;
if (this._backdrop = document.createElement('div'), this._backdrop.className = m.BACKDROP, o && e(this._backdrop).addClass(o), e(this._backdrop).appendTo(document.body), e(this._element).on(p.CLICK_DISMISS, function(e) {
return n._ignoreBackdropClick ? void(n._ignoreBackdropClick = !1) : void(e.target !== e.currentTarget || ('static' === n._config.backdrop ? n._element.focus() : n.hide()))
}), a && l.reflow(this._backdrop), e(this._backdrop).addClass(m.SHOW), !t) return;
if (!a) return void t();
e(this._backdrop).one(l.TRANSITION_END, t).emulateTransitionEnd(d)
} else if (!this._isShown && this._backdrop) {
e(this._backdrop).removeClass(m.SHOW);
var r = function() {
n._removeBackdrop(), t && t()
};
l.supportsTransitionEnd() && e(this._element).hasClass(m.FADE) ? e(this._backdrop).one(l.TRANSITION_END, r).emulateTransitionEnd(d) : r()
} else t && t()
}, f._adjustDialog = function() {
var e = this._element.scrollHeight > document.documentElement.clientHeight;
!this._isBodyOverflowing && e && (this._element.style.paddingLeft = this._scrollbarWidth + 'px'), this._isBodyOverflowing && !e && (this._element.style.paddingRight = this._scrollbarWidth + 'px')
}, f._resetAdjustments = function() {
this._element.style.paddingLeft = '', this._element.style.paddingRight = ''
}, f._checkScrollbar = function() {
var e = document.body.getBoundingClientRect();
this._isBodyOverflowing = e.left + e.right < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth()
}, f._setScrollbar = function() {
var t = this;
if (this._isBodyOverflowing) {
e(g.FIXED_CONTENT).each(function(n, o) {
var a = e(o)[0].style.paddingRight,
r = e(o).css('padding-right');
e(o).data('padding-right', a).css('padding-right', parseFloat(r) + t._scrollbarWidth + 'px')
}), e(g.STICKY_CONTENT).each(function(n, o) {
var a = e(o)[0].style.marginRight,
r = e(o).css('margin-right');
e(o).data('margin-right', a).css('margin-right', parseFloat(r) - t._scrollbarWidth + 'px')
}), e(g.NAVBAR_TOGGLER).each(function(n, o) {
var a = e(o)[0].style.marginRight,
r = e(o).css('margin-right');
e(o).data('margin-right', a).css('margin-right', parseFloat(r) + t._scrollbarWidth + 'px')
});
var n = document.body.style.paddingRight,
o = e('body').css('padding-right');
e('body').data('padding-right', n).css('padding-right', parseFloat(o) + this._scrollbarWidth + 'px')
}
}, f._resetScrollbar = function() {
e(g.FIXED_CONTENT).each(function(t, n) {
var o = e(n).data('padding-right');
'undefined' != typeof o && e(n).css('padding-right', o).removeData('padding-right')
}), e(g.STICKY_CONTENT + ', ' + g.NAVBAR_TOGGLER).each(function(t, n) {
var o = e(n).data('margin-right');
'undefined' != typeof o && e(n).css('margin-right', o).removeData('margin-right')
});
var t = e('body').data('padding-right');
'undefined' != typeof t && e('body').css('padding-right', t).removeData('padding-right')
}, f._getScrollbarWidth = function() {
var e = document.createElement('div');
e.className = m.SCROLLBAR_MEASURER, document.body.appendChild(e);
var t = e.getBoundingClientRect().width - e.clientWidth;
return document.body.removeChild(e), t
}, i._jQueryInterface = function(t, o) {
return this.each(function() {
var r = e(this).data(n),
l = a({}, i.Default, e(this).data(), 'object' == typeof t && t);
if (r || (r = new i(this, l), e(this).data(n, r)), 'string' == typeof t) {
if ('undefined' == typeof r[t]) throw new TypeError('No method named "' + t + '"');
r[t](o)
} else l.show && r.show(o)
})
}, o(i, null, [{
key: 'VERSION',
get: function() {
return '4.0.0'
}
}, {
key: 'Default',
get: function() {
return c
}
}]), i
}();
return e(document).on(p.CLICK_DATA_API, g.DATA_TOGGLE, function(t) {
var o, r = this,
i = l.getSelectorFromElement(this);
i && (o = e(i)[0]);
var s = e(o).data(n) ? 'toggle' : a({}, e(o).data(), e(this).data());
('A' === this.tagName || 'AREA' === this.tagName) && t.preventDefault();
var d = e(o).one(p.SHOW, function(t) {
t.isDefaultPrevented() || d.one(p.HIDDEN, function() {
e(r).is(':visible') && r.focus()
})
});
f._jQueryInterface.call(e(o), s, this)
}), e.fn[t] = f._jQueryInterface, e.fn[t].Constructor = f, e.fn[t].noConflict = function() {
return e.fn[t] = i, f._jQueryInterface
}, f
}(e),
m = function(e) {
var n = 'tooltip',
r = 'bs.tooltip',
i = '.' + r,
s = e.fn[n],
d = /(^|\s)bs-tooltip\S+/g,
c = {
animation: 'boolean',
template: 'string',
title: '(string|element|function)',
trigger: 'string',
delay: '(number|object)',
html: 'boolean',
selector: '(string|boolean)',
placement: '(string|function)',
offset: '(number|string)',
container: '(string|element|boolean)',
fallbackPlacement: '(string|array)',
boundary: '(string|element)'
},
_ = {
AUTO: 'auto',
TOP: 'top',
RIGHT: 'right',
BOTTOM: 'bottom',
LEFT: 'left'
},
p = {
animation: !0,
template: '
',
trigger: 'hover focus',
title: '',
delay: 0,
html: !1,
selector: !1,
placement: 'top',
offset: 0,
container: !1,
fallbackPlacement: 'flip',
boundary: 'scrollParent'
},
m = {
SHOW: 'show',
OUT: 'out'
},
g = {
HIDE: 'hide' + i,
HIDDEN: 'hidden' + i,
SHOW: 'show' + i,
SHOWN: 'shown' + i,
INSERTED: 'inserted' + i,
CLICK: 'click' + i,
FOCUSIN: 'focusin' + i,
FOCUSOUT: 'focusout' + i,
MOUSEENTER: 'mouseenter' + i,
MOUSELEAVE: 'mouseleave' + i
},
f = {
FADE: 'fade',
SHOW: 'show'
},
u = {
TOOLTIP: '.tooltip',
TOOLTIP_INNER: '.tooltip-inner',
ARROW: '.arrow'
},
E = {
HOVER: 'hover',
FOCUS: 'focus',
CLICK: 'click',
MANUAL: 'manual'
},
h = function() {
function s(e, n) {
if ('undefined' == typeof t) throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
this._isEnabled = !0, this._timeout = 0, this._hoverState = '', this._activeTrigger = {}, this._popper = null, this.element = e, this.config = this._getConfig(n), this.tip = null, this._setListeners()
}
var h = s.prototype;
return h.enable = function() {
this._isEnabled = !0
}, h.disable = function() {
this._isEnabled = !1
}, h.toggleEnabled = function() {
this._isEnabled = !this._isEnabled
}, h.toggle = function(t) {
if (this._isEnabled)
if (t) {
var n = this.constructor.DATA_KEY,
o = e(t.currentTarget).data(n);
o || (o = new this.constructor(t.currentTarget, this._getDelegateConfig()), e(t.currentTarget).data(n, o)), o._activeTrigger.click = !o._activeTrigger.click, o._isWithActiveTrigger() ? o._enter(null, o) : o._leave(null, o)
} else {
if (e(this.getTipElement()).hasClass(f.SHOW)) return void this._leave(null, this);
this._enter(null, this)
}
}, h.dispose = function() {
clearTimeout(this._timeout), e.removeData(this.element, this.constructor.DATA_KEY), e(this.element).off(this.constructor.EVENT_KEY), e(this.element).closest('.modal').off('hide.bs.modal'), this.tip && e(this.tip).remove(), this._isEnabled = null, this._timeout = null, this._hoverState = null, this._activeTrigger = null, null !== this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null
}, h.show = function() {
var n = this;
if ('none' === e(this.element).css('display')) throw new Error('Please use show on visible elements');
var o = e.Event(this.constructor.Event.SHOW);
if (this.isWithContent() && this._isEnabled) {
e(this.element).trigger(o);
var a = e.contains(this.element.ownerDocument.documentElement, this.element);
if (o.isDefaultPrevented() || !a) return;
var r = this.getTipElement(),
i = l.getUID(this.constructor.NAME);
r.setAttribute('id', i), this.element.setAttribute('aria-describedby', i), this.setContent(), this.config.animation && e(r).addClass(f.FADE);
var d = 'function' == typeof this.config.placement ? this.config.placement.call(this, r, this.element) : this.config.placement,
c = this._getAttachment(d);
this.addAttachmentClass(c);
var _ = !1 === this.config.container ? document.body : e(this.config.container);
e(r).data(this.constructor.DATA_KEY, this), e.contains(this.element.ownerDocument.documentElement, this.tip) || e(r).appendTo(_), e(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new t(this.element, r, {
placement: c,
modifiers: {
offset: {
offset: this.config.offset
},
flip: {
behavior: this.config.fallbackPlacement
},
arrow: {
element: u.ARROW
},
preventOverflow: {
boundariesElement: this.config.boundary
}
},
onCreate: function(e) {
e.originalPlacement !== e.placement && n._handlePopperPlacementChange(e)
},
onUpdate: function(e) {
n._handlePopperPlacementChange(e)
}
}), e(r).addClass(f.SHOW), 'ontouchstart' in document.documentElement && e('body').children().on('mouseover', null, e.noop);
var p = function() {
n.config.animation && n._fixTransition();
var t = n._hoverState;
n._hoverState = null, e(n.element).trigger(n.constructor.Event.SHOWN), t === m.OUT && n._leave(null, n)
};
l.supportsTransitionEnd() && e(this.tip).hasClass(f.FADE) ? e(this.tip).one(l.TRANSITION_END, p).emulateTransitionEnd(s._TRANSITION_DURATION) : p()
}
}, h.hide = function(t) {
var n = this,
o = this.getTipElement(),
a = e.Event(this.constructor.Event.HIDE),
r = function() {
n._hoverState !== m.SHOW && o.parentNode && o.parentNode.removeChild(o), n._cleanTipClass(), n.element.removeAttribute('aria-describedby'), e(n.element).trigger(n.constructor.Event.HIDDEN), null !== n._popper && n._popper.destroy(), t && t()
};
e(this.element).trigger(a), a.isDefaultPrevented() || (e(o).removeClass(f.SHOW), 'ontouchstart' in document.documentElement && e('body').children().off('mouseover', null, e.noop), this._activeTrigger[E.CLICK] = !1, this._activeTrigger[E.FOCUS] = !1, this._activeTrigger[E.HOVER] = !1, l.supportsTransitionEnd() && e(this.tip).hasClass(f.FADE) ? e(o).one(l.TRANSITION_END, r).emulateTransitionEnd(150) : r(), this._hoverState = '')
}, h.update = function() {
null !== this._popper && this._popper.scheduleUpdate()
}, h.isWithContent = function() {
return !!this.getTitle()
}, h.addAttachmentClass = function(t) {
e(this.getTipElement()).addClass('bs-tooltip' + '-' + t)
}, h.getTipElement = function() {
return this.tip = this.tip || e(this.config.template)[0], this.tip
}, h.setContent = function() {
var t = e(this.getTipElement());
this.setElementContent(t.find(u.TOOLTIP_INNER), this.getTitle()), t.removeClass(f.FADE + ' ' + f.SHOW)
}, h.setElementContent = function(t, n) {
var o = this.config.html;
'object' == typeof n && (n.nodeType || n.jquery) ? o ? !e(n).parent().is(t) && t.empty().append(n) : t.text(e(n).text()) : t[o ? 'html' : 'text'](n)
}, h.getTitle = function() {
var e = this.element.getAttribute('data-original-title');
return e || (e = 'function' == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), e
}, h._getAttachment = function(e) {
return _[e.toUpperCase()]
}, h._setListeners = function() {
var t = this,
n = this.config.trigger.split(' ');
n.forEach(function(n) {
if ('click' === n) e(t.element).on(t.constructor.Event.CLICK, t.config.selector, function(e) {
return t.toggle(e)
});
else if (n !== E.MANUAL) {
var o = n === E.HOVER ? t.constructor.Event.MOUSEENTER : t.constructor.Event.FOCUSIN,
a = n === E.HOVER ? t.constructor.Event.MOUSELEAVE : t.constructor.Event.FOCUSOUT;
e(t.element).on(o, t.config.selector, function(e) {
return t._enter(e)
}).on(a, t.config.selector, function(e) {
return t._leave(e)
})
}
e(t.element).closest('.modal').on('hide.bs.modal', function() {
return t.hide()
})
}), this.config.selector ? this.config = a({}, this.config, {
trigger: 'manual',
selector: ''
}) : this._fixTitle()
}, h._fixTitle = function() {
var e = typeof this.element.getAttribute('data-original-title');
(this.element.getAttribute('title') || 'string' != e) && (this.element.setAttribute('data-original-title', this.element.getAttribute('title') || ''), this.element.setAttribute('title', ''))
}, h._enter = function(t, n) {
var o = this.constructor.DATA_KEY;
return (n = n || e(t.currentTarget).data(o), n || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), e(t.currentTarget).data(o, n)), t && (n._activeTrigger['focusin' === t.type ? E.FOCUS : E.HOVER] = !0), e(n.getTipElement()).hasClass(f.SHOW) || n._hoverState === m.SHOW) ? void(n._hoverState = m.SHOW) : (clearTimeout(n._timeout), n._hoverState = m.SHOW, n.config.delay && n.config.delay.show ? void(n._timeout = setTimeout(function() {
n._hoverState === m.SHOW && n.show()
}, n.config.delay.show)) : void n.show())
}, h._leave = function(t, n) {
var o = this.constructor.DATA_KEY;
if (n = n || e(t.currentTarget).data(o), n || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), e(t.currentTarget).data(o, n)), t && (n._activeTrigger['focusout' === t.type ? E.FOCUS : E.HOVER] = !1), !n._isWithActiveTrigger()) return clearTimeout(n._timeout), n._hoverState = m.OUT, n.config.delay && n.config.delay.hide ? void(n._timeout = setTimeout(function() {
n._hoverState === m.OUT && n.hide()
}, n.config.delay.hide)) : void n.hide()
}, h._isWithActiveTrigger = function() {
for (var e in this._activeTrigger)
if (this._activeTrigger[e]) return !0;
return !1
}, h._getConfig = function(t) {
return t = a({}, this.constructor.Default, e(this.element).data(), t), 'number' == typeof t.delay && (t.delay = {
show: t.delay,
hide: t.delay
}), 'number' == typeof t.title && (t.title = t.title.toString()), 'number' == typeof t.content && (t.content = t.content.toString()), l.typeCheckConfig(n, t, this.constructor.DefaultType), t
}, h._getDelegateConfig = function() {
var e = {};
if (this.config)
for (var t in this.config) this.constructor.Default[t] !== this.config[t] && (e[t] = this.config[t]);
return e
}, h._cleanTipClass = function() {
var t = e(this.getTipElement()),
n = t.attr('class').match(d);
null !== n && 0 < n.length && t.removeClass(n.join(''))
}, h._handlePopperPlacementChange = function(e) {
this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(e.placement))
}, h._fixTransition = function() {
var t = this.getTipElement(),
n = this.config.animation;
null !== t.getAttribute('x-placement') || (e(t).removeClass(f.FADE), this.config.animation = !1, this.hide(), this.show(), this.config.animation = n)
}, s._jQueryInterface = function(t) {
return this.each(function() {
var n = e(this).data(r);
if ((n || !/dispose|hide/.test(t)) && (n || (n = new s(this, 'object' == typeof t && t), e(this).data(r, n)), 'string' == typeof t)) {
if ('undefined' == typeof n[t]) throw new TypeError('No method named "' + t + '"');
n[t]()
}
})
}, o(s, null, [{
key: 'VERSION',
get: function() {
return '4.0.0'
}
}, {
key: 'Default',
get: function() {
return p
}
}, {
key: 'NAME',
get: function() {
return n
}
}, {
key: 'DATA_KEY',
get: function() {
return r
}
}, {
key: 'Event',
get: function() {
return g
}
}, {
key: 'EVENT_KEY',
get: function() {
return i
}
}, {
key: 'DefaultType',
get: function() {
return c
}
}]), s
}();
return e.fn[n] = h._jQueryInterface, e.fn[n].Constructor = h, e.fn[n].noConflict = function() {
return e.fn[n] = s, h._jQueryInterface
}, h
}(e, t),
g = function(e) {
var t = 'popover',
n = 'bs.popover',
i = '.' + n,
l = e.fn[t],
s = /(^|\s)bs-popover\S+/g,
d = a({}, m.Default, {
placement: 'right',
trigger: 'click',
content: '',
template: ''
}),
c = a({}, m.DefaultType, {
content: '(string|element|function)'
}),
_ = {
FADE: 'fade',
SHOW: 'show'
},
p = {
TITLE: '.popover-header',
CONTENT: '.popover-body'
},
g = {
HIDE: 'hide' + i,
HIDDEN: 'hidden' + i,
SHOW: 'show' + i,
SHOWN: 'shown' + i,
INSERTED: 'inserted' + i,
CLICK: 'click' + i,
FOCUSIN: 'focusin' + i,
FOCUSOUT: 'focusout' + i,
MOUSEENTER: 'mouseenter' + i,
MOUSELEAVE: 'mouseleave' + i
},
f = function(a) {
function l() {
return a.apply(this, arguments) || this
}
r(l, a);
var m = l.prototype;
return m.isWithContent = function() {
return this.getTitle() || this._getContent()
}, m.addAttachmentClass = function(t) {
e(this.getTipElement()).addClass('bs-popover' + '-' + t)
}, m.getTipElement = function() {
return this.tip = this.tip || e(this.config.template)[0], this.tip
}, m.setContent = function() {
var t = e(this.getTipElement());
this.setElementContent(t.find(p.TITLE), this.getTitle());
var n = this._getContent();
'function' == typeof n && (n = n.call(this.element)), this.setElementContent(t.find(p.CONTENT), n), t.removeClass(_.FADE + ' ' + _.SHOW)
}, m._getContent = function() {
return this.element.getAttribute('data-content') || this.config.content
}, m._cleanTipClass = function() {
var t = e(this.getTipElement()),
n = t.attr('class').match(s);
null !== n && 0 < n.length && t.removeClass(n.join(''))
}, l._jQueryInterface = function(t) {
return this.each(function() {
var o = e(this).data(n),
a = 'object' == typeof t ? t : null;
if ((o || !/destroy|hide/.test(t)) && (o || (o = new l(this, a), e(this).data(n, o)), 'string' == typeof t)) {
if ('undefined' == typeof o[t]) throw new TypeError('No method named "' + t + '"');
o[t]()
}
})
}, o(l, null, [{
key: 'VERSION',
get: function() {
return '4.0.0'
}
}, {
key: 'Default',
get: function() {
return d
}
}, {
key: 'NAME',
get: function() {
return t
}
}, {
key: 'DATA_KEY',
get: function() {
return n
}
}, {
key: 'Event',
get: function() {
return g
}
}, {
key: 'EVENT_KEY',
get: function() {
return i
}
}, {
key: 'DefaultType',
get: function() {
return c
}
}]), l
}(m);
return e.fn[t] = f._jQueryInterface, e.fn[t].Constructor = f, e.fn[t].noConflict = function() {
return e.fn[t] = l, f._jQueryInterface
}, f
}(e),
f = function(e) {
var t = 'scrollspy',
n = 'bs.scrollspy',
r = '.' + n,
s = e.fn[t],
d = {
offset: 10,
method: 'auto',
target: ''
},
c = {
offset: 'number',
method: 'string',
target: '(string|element)'
},
_ = {
ACTIVATE: 'activate' + r,
SCROLL: 'scroll' + r,
LOAD_DATA_API: 'load' + r + '.data-api'
},
p = {
DROPDOWN_ITEM: 'dropdown-item',
DROPDOWN_MENU: 'dropdown-menu',
ACTIVE: 'active'
},
m = {
DATA_SPY: '[data-spy="scroll"]',
ACTIVE: '.active',
NAV_LIST_GROUP: '.nav, .list-group',
NAV_LINKS: '.nav-link',
NAV_ITEMS: '.nav-item',
LIST_ITEMS: '.list-group-item',
DROPDOWN: '.dropdown',
DROPDOWN_ITEMS: '.dropdown-item',
DROPDOWN_TOGGLE: '.dropdown-toggle'
},
g = {
OFFSET: 'offset',
POSITION: 'position'
},
f = function() {
function s(t, n) {
var o = this;
this._element = t, this._scrollElement = 'BODY' === t.tagName ? window : t, this._config = this._getConfig(n), this._selector = this._config.target + ' ' + m.NAV_LINKS + ',' + (this._config.target + ' ' + m.LIST_ITEMS + ',') + (this._config.target + ' ' + m.DROPDOWN_ITEMS), this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, e(this._scrollElement).on(_.SCROLL, function(e) {
return o._process(e)
}), this.refresh(), this._process()
}
var f = s.prototype;
return f.refresh = function() {
var t = this,
n = this._scrollElement === this._scrollElement.window ? g.OFFSET : g.POSITION,
o = 'auto' === this._config.method ? n : this._config.method,
a = o === g.POSITION ? this._getScrollTop() : 0;
this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight();
var r = e.makeArray(e(this._selector));
r.map(function(t) {
var n, r = l.getSelectorFromElement(t);
if (r && (n = e(r)[0]), n) {
var i = n.getBoundingClientRect();
if (i.width || i.height) return [e(n)[o]().top + a, r]
}
return null
}).filter(function(e) {
return e
}).sort(function(e, t) {
return e[0] - t[0]
}).forEach(function(e) {
t._offsets.push(e[0]), t._targets.push(e[1])
})
}, f.dispose = function() {
e.removeData(this._element, n), e(this._scrollElement).off(r), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null
}, f._getConfig = function(n) {
if (n = a({}, d, n), 'string' != typeof n.target) {
var o = e(n.target).attr('id');
o || (o = l.getUID(t), e(n.target).attr('id', o)), n.target = '#' + o
}
return l.typeCheckConfig(t, n, c), n
}, f._getScrollTop = function() {
return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop
}, f._getScrollHeight = function() {
return this._scrollElement.scrollHeight || i(document.body.scrollHeight, document.documentElement.scrollHeight)
}, f._getOffsetHeight = function() {
return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height
}, f._process = function() {
var e = this._getScrollTop() + this._config.offset,
t = this._getScrollHeight(),
n = this._config.offset + t - this._getOffsetHeight();
if (this._scrollHeight !== t && this.refresh(), e >= n) {
var o = this._targets[this._targets.length - 1];
return void(this._activeTarget !== o && this._activate(o))
}
if (this._activeTarget && e < this._offsets[0] && 0 < this._offsets[0]) return this._activeTarget = null, void this._clear();
for (var a, r = this._offsets.length; r--;) a = this._activeTarget !== this._targets[r] && e >= this._offsets[r] && ('undefined' == typeof this._offsets[r + 1] || e < this._offsets[r + 1]), a && this._activate(this._targets[r])
}, f._activate = function(t) {
this._activeTarget = t, this._clear();
var n = this._selector.split(',');
n = n.map(function(e) {
return e + '[data-target="' + t + '"],' + (e + '[href="' + t + '"]')
});
var o = e(n.join(','));
o.hasClass(p.DROPDOWN_ITEM) ? (o.closest(m.DROPDOWN).find(m.DROPDOWN_TOGGLE).addClass(p.ACTIVE), o.addClass(p.ACTIVE)) : (o.addClass(p.ACTIVE), o.parents(m.NAV_LIST_GROUP).prev(m.NAV_LINKS + ', ' + m.LIST_ITEMS).addClass(p.ACTIVE), o.parents(m.NAV_LIST_GROUP).prev(m.NAV_ITEMS).children(m.NAV_LINKS).addClass(p.ACTIVE)), e(this._scrollElement).trigger(_.ACTIVATE, {
relatedTarget: t
})
}, f._clear = function() {
e(this._selector).filter(m.ACTIVE).removeClass(p.ACTIVE)
}, s._jQueryInterface = function(t) {
return this.each(function() {
var o = e(this).data(n);
if (o || (o = new s(this, 'object' == typeof t && t), e(this).data(n, o)), 'string' == typeof t) {
if ('undefined' == typeof o[t]) throw new TypeError('No method named "' + t + '"');
o[t]()
}
})
}, o(s, null, [{
key: 'VERSION',
get: function() {
return '4.0.0'
}
}, {
key: 'Default',
get: function() {
return d
}
}]), s
}();
return e(window).on(_.LOAD_DATA_API, function() {
for (var t, n = e.makeArray(e(m.DATA_SPY)), o = n.length; o--;) t = e(n[o]), f._jQueryInterface.call(t, t.data())
}), e.fn[t] = f._jQueryInterface, e.fn[t].Constructor = f, e.fn[t].noConflict = function() {
return e.fn[t] = s, f._jQueryInterface
}, f
}(e),
u = function(e) {
var t = 'tab',
n = 'bs.tab',
a = '.' + n,
r = e.fn[t],
i = {
HIDE: 'hide' + a,
HIDDEN: 'hidden' + a,
SHOW: 'show' + a,
SHOWN: 'shown' + a,
CLICK_DATA_API: 'click' + a + '.data-api'
},
s = {
DROPDOWN_MENU: 'dropdown-menu',
ACTIVE: 'active',
DISABLED: 'disabled',
FADE: 'fade',
SHOW: 'show'
},
d = {
DROPDOWN: '.dropdown',
NAV_LIST_GROUP: '.nav, .list-group',
ACTIVE: '.active',
ACTIVE_UL: '> li > .active',
DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
DROPDOWN_TOGGLE: '.dropdown-toggle',
DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
},
c = function() {
function t(e) {
this._element = e
}
var a = t.prototype;
return a.show = function() {
var t = this;
if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && e(this._element).hasClass(s.ACTIVE) || e(this._element).hasClass(s.DISABLED))) {
var n, o, a = e(this._element).closest(d.NAV_LIST_GROUP)[0],
r = l.getSelectorFromElement(this._element);
if (a) {
var c = 'UL' === a.nodeName ? d.ACTIVE_UL : d.ACTIVE;
o = e.makeArray(e(a).find(c)), o = o[o.length - 1]
}
var _ = e.Event(i.HIDE, {
relatedTarget: this._element
}),
p = e.Event(i.SHOW, {
relatedTarget: o
});
if (o && e(o).trigger(_), e(this._element).trigger(p), !(p.isDefaultPrevented() || _.isDefaultPrevented())) {
r && (n = e(r)[0]), this._activate(this._element, a);
var m = function() {
var n = e.Event(i.HIDDEN, {
relatedTarget: t._element
}),
a = e.Event(i.SHOWN, {
relatedTarget: o
});
e(o).trigger(n), e(t._element).trigger(a)
};
n ? this._activate(n, n.parentNode, m) : m()
}
}
}, a.dispose = function() {
e.removeData(this._element, n), this._element = null
}, a._activate = function(t, n, o) {
var a, r = this;
a = 'UL' === n.nodeName ? e(n).find(d.ACTIVE_UL) : e(n).children(d.ACTIVE);
var i = a[0],
c = o && l.supportsTransitionEnd() && i && e(i).hasClass(s.FADE),
_ = function() {
return r._transitionComplete(t, i, o)
};
i && c ? e(i).one(l.TRANSITION_END, _).emulateTransitionEnd(150) : _()
}, a._transitionComplete = function(t, n, o) {
if (n) {
e(n).removeClass(s.SHOW + ' ' + s.ACTIVE);
var a = e(n.parentNode).find(d.DROPDOWN_ACTIVE_CHILD)[0];
a && e(a).removeClass(s.ACTIVE), 'tab' === n.getAttribute('role') && n.setAttribute('aria-selected', !1)
}
if (e(t).addClass(s.ACTIVE), 'tab' === t.getAttribute('role') && t.setAttribute('aria-selected', !0), l.reflow(t), e(t).addClass(s.SHOW), t.parentNode && e(t.parentNode).hasClass(s.DROPDOWN_MENU)) {
var r = e(t).closest(d.DROPDOWN)[0];
r && e(r).find(d.DROPDOWN_TOGGLE).addClass(s.ACTIVE), t.setAttribute('aria-expanded', !0)
}
o && o()
}, t._jQueryInterface = function(o) {
return this.each(function() {
var a = e(this),
r = a.data(n);
if (r || (r = new t(this), a.data(n, r)), 'string' == typeof o) {
if ('undefined' == typeof r[o]) throw new TypeError('No method named "' + o + '"');
r[o]()
}
})
}, o(t, null, [{
key: 'VERSION',
get: function() {
return '4.0.0'
}
}]), t
}();
return e(document).on(i.CLICK_DATA_API, d.DATA_TOGGLE, function(t) {
t.preventDefault(), c._jQueryInterface.call(e(this), 'show')
}), e.fn[t] = c._jQueryInterface, e.fn[t].Constructor = c, e.fn[t].noConflict = function() {
return e.fn[t] = r, c._jQueryInterface
}, c
}(e),
E = function() {
function e() {
if (window.QUnit) return !1;
var e = document.createElement('bmd');
for (var t in o)
if (void 0 !== e.style[t]) return o[t];
return !1
}
var t = !1,
n = '',
o = {
WebkitTransition: 'webkitTransitionEnd',
MozTransition: 'transitionend',
OTransition: 'oTransitionEnd otransitionend',
transition: 'transitionend'
};
return function() {
for (var a in t = e(), o) n += ' ' + o[a]
}(), {
transitionEndSupported: function() {
return t
},
transitionEndSelector: function() {
return n
},
isChar: function(e) {
return !('undefined' != typeof e.which) || 'number' == typeof e.which && 0 < e.which && !e.ctrlKey && !e.metaKey && !e.altKey && 8 !== e.which && 9 !== e.which && 13 !== e.which && 16 !== e.which && 17 !== e.which && 20 !== e.which && 27 !== e.which
},
assert: function(e, t, n) {
if (t) throw void 0 === !e && e.css('border', '1px solid red'), console.error(n, e), n
},
describe: function(e) {
return void 0 === e ? 'undefined' : 0 === e.length ? '(no matching elements)' : e[0].outerHTML.split('>')[0] + '>'
}
}
}(jQuery),
h = function(e) {
var t = {
BMD_FORM_GROUP: 'bmd-form-group',
IS_FILLED: 'is-filled',
IS_FOCUSED: 'is-focused'
},
n = {
BMD_FORM_GROUP: '.' + t.BMD_FORM_GROUP
},
o = {},
a = function() {
function a(t, n, a) {
for (var r in void 0 === a && (a = {}), this.$element = t, this.config = e.extend(!0, {}, o, n), a) this[r] = a[r]
}
var r = a.prototype;
return r.dispose = function(e) {
this.$element.data(e, null), this.$element = null, this.config = null
}, r.addFormGroupFocus = function() {
this.$element.prop('disabled') || this.$bmdFormGroup.addClass(t.IS_FOCUSED)
}, r.removeFormGroupFocus = function() {
this.$bmdFormGroup.removeClass(t.IS_FOCUSED)
}, r.removeIsFilled = function() {
this.$bmdFormGroup.removeClass(t.IS_FILLED)
}, r.addIsFilled = function() {
this.$bmdFormGroup.addClass(t.IS_FILLED)
}, r.findMdbFormGroup = function(t) {
void 0 === t && (t = !0);
var o = this.$element.closest(n.BMD_FORM_GROUP);
return 0 === o.length && t && e.error('Failed to find ' + n.BMD_FORM_GROUP + ' for ' + E.describe(this.$element)), o
}, a
}();
return a
}(jQuery),
A = function(e) {
var t = {
FORM_GROUP: 'form-group',
BMD_FORM_GROUP: 'bmd-form-group',
BMD_LABEL: 'bmd-label',
BMD_LABEL_STATIC: 'bmd-label-static',
BMD_LABEL_PLACEHOLDER: 'bmd-label-placeholder',
BMD_LABEL_FLOATING: 'bmd-label-floating',
HAS_DANGER: 'has-danger',
IS_FILLED: 'is-filled',
IS_FOCUSED: 'is-focused',
INPUT_GROUP: 'input-group'
},
n = {
FORM_GROUP: '.' + t.FORM_GROUP,
BMD_FORM_GROUP: '.' + t.BMD_FORM_GROUP,
BMD_LABEL_WILDCARD: 'label[class^=\'' + t.BMD_LABEL + '\'], label[class*=\' ' + t.BMD_LABEL + '\']'
},
o = {
validate: !1,
formGroup: {
required: !1
},
bmdFormGroup: {
template: '',
create: !0,
required: !0
},
label: {
required: !1,
selectors: ['.form-control-label', '> label'],
className: t.BMD_LABEL_STATIC
},
requiredClasses: [],
invalidComponentMatches: [],
convertInputSizeVariations: !0
},
a = {
"form-control-lg": 'bmd-form-group-lg',
"form-control-sm": 'bmd-form-group-sm'
},
i = function(i) {
function l(t, n, a) {
var r;
return void 0 === a && (a = {}), r = i.call(this, t, e.extend(!0, {}, o, n), a) || this, r._rejectInvalidComponentMatches(), r.rejectWithoutRequiredStructure(), r._rejectWithoutRequiredClasses(), r.$formGroup = r.findFormGroup(r.config.formGroup.required), r.$bmdFormGroup = r.resolveMdbFormGroup(), r.$bmdLabel = r.resolveMdbLabel(), r.resolveMdbFormGroupSizing(), r.addFocusListener(), r.addChangeListener(), '' != r.$element.val() && r.addIsFilled(), r
}
r(l, i);
var s = l.prototype;
return s.dispose = function(e) {
i.prototype.dispose.call(this, e), this.$bmdFormGroup = null, this.$formGroup = null
}, s.rejectWithoutRequiredStructure = function() {}, s.addFocusListener = function() {
var e = this;
this.$element.on('focus', function() {
e.addFormGroupFocus()
}).on('blur', function() {
e.removeFormGroupFocus()
})
}, s.addChangeListener = function() {
var e = this;
this.$element.on('keydown paste', function(t) {
E.isChar(t) && e.addIsFilled()
}).on('keyup change', function() {
if (e.isEmpty() ? e.removeIsFilled() : e.addIsFilled(), e.config.validate) {
var t = 'undefined' == typeof e.$element[0].checkValidity || e.$element[0].checkValidity();
t ? e.removeHasDanger() : e.addHasDanger()
}
})
}, s.addHasDanger = function() {
this.$bmdFormGroup.addClass(t.HAS_DANGER)
}, s.removeHasDanger = function() {
this.$bmdFormGroup.removeClass(t.HAS_DANGER)
}, s.isEmpty = function() {
return null === this.$element.val() || void 0 === this.$element.val() || '' === this.$element.val()
}, s.resolveMdbFormGroup = function() {
var e = this.findMdbFormGroup(!1);
return (void 0 === e || 0 === e.length) && (this.config.bmdFormGroup.create && (void 0 === this.$formGroup || 0 === this.$formGroup.length) ? this.outerElement().parent().hasClass(t.INPUT_GROUP) ? this.outerElement().parent().wrap(this.config.bmdFormGroup.template) : this.outerElement().wrap(this.config.bmdFormGroup.template) : this.$formGroup.addClass(t.BMD_FORM_GROUP), e = this.findMdbFormGroup(this.config.bmdFormGroup.required)), e
}, s.outerElement = function() {
return this.$element
}, s.resolveMdbLabel = function() {
var e = this.$bmdFormGroup.find(n.BMD_LABEL_WILDCARD);
return (void 0 === e || 0 === e.length) && (e = this.findMdbLabel(this.config.label.required), void 0 === e || 0 === e.length || e.addClass(this.config.label.className)), e
}, s.findMdbLabel = function(t) {
void 0 === t && (t = !0);
for (var o = null, a = this.config.label.selectors, r = Array.isArray(a), i = 0, a = r ? a : a[Symbol.iterator]();;) {
var l;
if (r) {
if (i >= a.length) break;
l = a[i++]
} else {
if (i = a.next(), i.done) break;
l = i.value
}
var s = l;
if (o = e.isFunction(s) ? s(this) : this.$bmdFormGroup.find(s), void 0 !== o && 0 < o.length) break
}
return 0 === o.length && t && e.error('Failed to find ' + n.BMD_LABEL_WILDCARD + ' within form-group for ' + E.describe(this.$element)), o
}, s.findFormGroup = function(t) {
void 0 === t && (t = !0);
var o = this.$element.closest(n.FORM_GROUP);
return 0 === o.length && t && e.error('Failed to find ' + n.FORM_GROUP + ' for ' + E.describe(this.$element)), o
}, s.resolveMdbFormGroupSizing = function() {
if (this.config.convertInputSizeVariations)
for (var e in a) this.$element.hasClass(e) && this.$bmdFormGroup.addClass(a[e])
}, s._rejectInvalidComponentMatches = function() {
for (var e = this.config.invalidComponentMatches, t = Array.isArray(e), n = 0, e = t ? e : e[Symbol.iterator]();;) {
var o;
if (t) {
if (n >= e.length) break;
o = e[n++]
} else {
if (n = e.next(), n.done) break;
o = n.value
}
var a = o;
a.rejectMatch(this.constructor.name, this.$element)
}
}, s._rejectWithoutRequiredClasses = function() {
for (var t = this.config.requiredClasses, n = Array.isArray(t), o = 0, t = n ? t : t[Symbol.iterator]();;) {
var a;
if (n) {
if (o >= t.length) break;
a = t[o++]
} else {
if (o = t.next(), o.done) break;
a = o.value
}
var r = a,
i = !1;
if (-1 !== r.indexOf('||'))
for (var l = r.split('||'), s = l, d = Array.isArray(s), c = 0, s = d ? s : s[Symbol.iterator]();;) {
var _;
if (d) {
if (c >= s.length) break;
_ = s[c++]
} else {
if (c = s.next(), c.done) break;
_ = c.value
}
var p = _;
if (this.$element.hasClass(p)) {
i = !0;
break
}
} else this.$element.hasClass(r) && (i = !0);
i || e.error(this.constructor.name + ' element: ' + E.describe(this.$element) + ' requires class: ' + r)
}
}, l
}(h);
return i
}(jQuery),
C = function(e) {
var t = {
label: {
required: !1
}
},
n = {
LABEL: 'label'
},
o = function(o) {
function a(n, a, r) {
var i;
return i = o.call(this, n, e.extend(!0, {}, t, a), r) || this, i.decorateMarkup(), i
}
r(a, o);
var i = a.prototype;
return i.decorateMarkup = function() {
var t = e(this.config.template);
this.$element.after(t), !1 !== this.config.ripples && t.bmdRipples()
}, i.outerElement = function() {
return this.$element.parent().closest('.' + this.outerClass)
}, i.rejectWithoutRequiredStructure = function() {
E.assert(this.$element, 'label' === !this.$element.parent().prop('tagName'), this.constructor.name + '\'s ' + E.describe(this.$element) + ' parent element should be