kdj_singlish
Version:
KDJ Singlish is an app which created to help people to type in sinhala without making any mistakes. This will save your time and fix all the issues you are getting when you type. Just use it and let me know the issues.
828 lines (824 loc) • 83.1 kB
JavaScript
/*!
* Bootstrap v4.1.3 (https://getbootstrap.com/)
* Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
! function (t, e) {
"object" == typeof exports && "undefined" != typeof module ? e(exports, require("jquery"), require("popper.js")) : "function" == typeof define && define.amd ? define(["exports", "jquery", "popper.js"], e) : e(t.bootstrap = {}, t.jQuery, t.Popper)
}(this, function (t, e, h) {
"use strict";
function i(t, e) {
for (var n = 0; n < e.length; n++) {
var i = e[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i)
}
}
function s(t, e, n) {
return e && i(t.prototype, e), n && i(t, n), t
}
function l(r) {
for (var t = 1; t < arguments.length; t++) {
var o = null != arguments[t] ? arguments[t] : {},
e = Object.keys(o);
"function" == typeof Object.getOwnPropertySymbols && (e = e.concat(Object.getOwnPropertySymbols(o).filter(function (t) {
return Object.getOwnPropertyDescriptor(o, t).enumerable
}))), e.forEach(function (t) {
var e, n, i;
e = r, i = o[n = t], n in e ? Object.defineProperty(e, n, {
value: i,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[n] = i
})
}
return r
}
e = e && e.hasOwnProperty("default") ? e.default : e, h = h && h.hasOwnProperty("default") ? h.default : h;
var r, n, o, a, c, u, f, d, g, _, m, p, v, y, E, C, T, b, S, I, A, D, w, N, O, k, P, j, H, L, R, x, W, U, q, F, K, M, Q, B, V, Y, z, J, Z, G, $, X, tt, et, nt, it, rt, ot, st, at, lt, ct, ht, ut, ft, dt, gt, _t, mt, pt, vt, yt, Et, Ct, Tt, bt, St, It, At, Dt, wt, Nt, Ot, kt, Pt, jt, Ht, Lt, Rt, xt, Wt, Ut, qt, Ft, Kt, Mt, Qt, Bt, Vt, Yt, zt, Jt, Zt, Gt, $t, Xt, te, ee, ne, ie, re, oe, se, ae, le, ce, he, ue, fe, de, ge, _e, me, pe, ve, ye, Ee, Ce, Te, be, Se, Ie, Ae, De, we, Ne, Oe, ke, Pe, je, He, Le, Re, xe, We, Ue, qe, Fe, Ke, Me, Qe, Be, Ve, Ye, ze, Je, Ze, Ge, $e, Xe, tn, en, nn, rn, on, sn, an, ln, cn, hn, un, fn, dn, gn, _n, mn, pn, vn, yn, En, Cn, Tn, bn, Sn, In, An, Dn, wn, Nn, On, kn, Pn, jn, Hn, Ln, Rn, xn, Wn, Un, qn, Fn = function (i) {
var e = "transitionend";
function t(t) {
var e = this,
n = !1;
return i(this).one(l.TRANSITION_END, function () {
n = !0
}), setTimeout(function () {
n || l.triggerTransitionEnd(e)
}, t), this
}
var l = {
TRANSITION_END: "bsTransitionEnd",
getUID: function (t) {
for (; t += ~~(1e6 * Math.random()), document.getElementById(t););
return t
},
getSelectorFromElement: function (t) {
var e = t.getAttribute("data-target");
e && "#" !== e || (e = t.getAttribute("href") || "");
try {
return document.querySelector(e) ? e : null
} catch (t) {
return null
}
},
getTransitionDurationFromElement: function (t) {
if (!t) return 0;
var e = i(t).css("transition-duration");
return parseFloat(e) ? (e = e.split(",")[0], 1e3 * parseFloat(e)) : 0
},
reflow: function (t) {
return t.offsetHeight
},
triggerTransitionEnd: function (t) {
i(t).trigger(e)
},
supportsTransitionEnd: function () {
return Boolean(e)
},
isElement: function (t) {
return (t[0] || t).nodeType
},
typeCheckConfig: function (t, e, n) {
for (var i in n)
if (Object.prototype.hasOwnProperty.call(n, i)) {
var r = n[i],
o = e[i],
s = o && l.isElement(o) ? "element" : (a = o, {}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());
if (!new RegExp(r).test(s)) throw new Error(t.toUpperCase() + ': Option "' + i + '" provided type "' + s + '" but expected type "' + r + '".')
} var a
}
};
return i.fn.emulateTransitionEnd = t, i.event.special[l.TRANSITION_END] = {
bindType: e,
delegateType: e,
handle: function (t) {
if (i(t.target).is(this)) return t.handleObj.handler.apply(this, arguments)
}
}, l
}(e),
Kn = (n = "alert", a = "." + (o = "bs.alert"), c = (r = e).fn[n], u = {
CLOSE: "close" + a,
CLOSED: "closed" + a,
CLICK_DATA_API: "click" + a + ".data-api"
}, f = "alert", d = "fade", g = "show", _ = function () {
function i(t) {
this._element = t
}
var t = i.prototype;
return t.close = function (t) {
var e = this._element;
t && (e = this._getRootElement(t)), this._triggerCloseEvent(e).isDefaultPrevented() || this._removeElement(e)
}, t.dispose = function () {
r.removeData(this._element, o), this._element = null
}, t._getRootElement = function (t) {
var e = Fn.getSelectorFromElement(t),
n = !1;
return e && (n = document.querySelector(e)), n || (n = r(t).closest("." + f)[0]), n
}, t._triggerCloseEvent = function (t) {
var e = r.Event(u.CLOSE);
return r(t).trigger(e), e
}, t._removeElement = function (e) {
var n = this;
if (r(e).removeClass(g), r(e).hasClass(d)) {
var t = Fn.getTransitionDurationFromElement(e);
r(e).one(Fn.TRANSITION_END, function (t) {
return n._destroyElement(e, t)
}).emulateTransitionEnd(t)
} else this._destroyElement(e)
}, t._destroyElement = function (t) {
r(t).detach().trigger(u.CLOSED).remove()
}, i._jQueryInterface = function (n) {
return this.each(function () {
var t = r(this),
e = t.data(o);
e || (e = new i(this), t.data(o, e)), "close" === n && e[n](this)
})
}, i._handleDismiss = function (e) {
return function (t) {
t && t.preventDefault(), e.close(this)
}
}, s(i, null, [{
key: "VERSION",
get: function () {
return "4.1.3"
}
}]), i
}(), r(document).on(u.CLICK_DATA_API, '[data-dismiss="alert"]', _._handleDismiss(new _)), r.fn[n] = _._jQueryInterface, r.fn[n].Constructor = _, r.fn[n].noConflict = function () {
return r.fn[n] = c, _._jQueryInterface
}, _),
Mn = (p = "button", y = "." + (v = "bs.button"), E = ".data-api", C = (m = e).fn[p], T = "active", b = "btn", I = '[data-toggle^="button"]', A = '[data-toggle="buttons"]', D = "input", w = ".active", N = ".btn", O = {
CLICK_DATA_API: "click" + y + E,
FOCUS_BLUR_DATA_API: (S = "focus") + y + E + " blur" + y + E
}, k = function () {
function n(t) {
this._element = t
}
var t = n.prototype;
return t.toggle = function () {
var t = !0,
e = !0,
n = m(this._element).closest(A)[0];
if (n) {
var i = this._element.querySelector(D);
if (i) {
if ("radio" === i.type)
if (i.checked && this._element.classList.contains(T)) t = !1;
else {
var r = n.querySelector(w);
r && m(r).removeClass(T)
} if (t) {
if (i.hasAttribute("disabled") || n.hasAttribute("disabled") || i.classList.contains("disabled") || n.classList.contains("disabled")) return;
i.checked = !this._element.classList.contains(T), m(i).trigger("change")
}
i.focus(), e = !1
}
}
e && this._element.setAttribute("aria-pressed", !this._element.classList.contains(T)), t && m(this._element).toggleClass(T)
}, t.dispose = function () {
m.removeData(this._element, v), this._element = null
}, n._jQueryInterface = function (e) {
return this.each(function () {
var t = m(this).data(v);
t || (t = new n(this), m(this).data(v, t)), "toggle" === e && t[e]()
})
}, s(n, null, [{
key: "VERSION",
get: function () {
return "4.1.3"
}
}]), n
}(), m(document).on(O.CLICK_DATA_API, I, function (t) {
t.preventDefault();
var e = t.target;
m(e).hasClass(b) || (e = m(e).closest(N)), k._jQueryInterface.call(m(e), "toggle")
}).on(O.FOCUS_BLUR_DATA_API, I, function (t) {
var e = m(t.target).closest(N)[0];
m(e).toggleClass(S, /^focus(in)?$/.test(t.type))
}), m.fn[p] = k._jQueryInterface, m.fn[p].Constructor = k, m.fn[p].noConflict = function () {
return m.fn[p] = C, k._jQueryInterface
}, k),
Qn = (j = "carousel", L = "." + (H = "bs.carousel"), R = ".data-api", x = (P = e).fn[j], W = {
interval: 5e3,
keyboard: !0,
slide: !1,
pause: "hover",
wrap: !0
}, U = {
interval: "(number|boolean)",
keyboard: "boolean",
slide: "(boolean|string)",
pause: "(string|boolean)",
wrap: "boolean"
}, q = "next", F = "prev", K = "left", M = "right", Q = {
SLIDE: "slide" + L,
SLID: "slid" + L,
KEYDOWN: "keydown" + L,
MOUSEENTER: "mouseenter" + L,
MOUSELEAVE: "mouseleave" + L,
TOUCHEND: "touchend" + L,
LOAD_DATA_API: "load" + L + R,
CLICK_DATA_API: "click" + L + R
}, B = "carousel", V = "active", Y = "slide", z = "carousel-item-right", J = "carousel-item-left", Z = "carousel-item-next", G = "carousel-item-prev", $ = ".active", X = ".active.carousel-item", tt = ".carousel-item", et = ".carousel-item-next, .carousel-item-prev", nt = ".carousel-indicators", it = "[data-slide], [data-slide-to]", rt = '[data-ride="carousel"]', ot = function () {
function o(t, e) {
this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this._config = this._getConfig(e), this._element = P(t)[0], this._indicatorsElement = this._element.querySelector(nt), this._addEventListeners()
}
var t = o.prototype;
return t.next = function () {
this._isSliding || this._slide(q)
}, t.nextWhenVisible = function () {
!document.hidden && P(this._element).is(":visible") && "hidden" !== P(this._element).css("visibility") && this.next()
}, t.prev = function () {
this._isSliding || this._slide(F)
}, t.pause = function (t) {
t || (this._isPaused = !0), this._element.querySelector(et) && (Fn.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null
}, t.cycle = function (t) {
t || (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))
}, t.to = function (t) {
var e = this;
this._activeElement = this._element.querySelector(X);
var n = this._getItemIndex(this._activeElement);
if (!(t > this._items.length - 1 || t < 0))
if (this._isSliding) P(this._element).one(Q.SLID, function () {
return e.to(t)
});
else {
if (n === t) return this.pause(), void this.cycle();
var i = n < t ? q : F;
this._slide(i, this._items[t])
}
}, t.dispose = function () {
P(this._element).off(L), P.removeData(this._element, H), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null
}, t._getConfig = function (t) {
return t = l({}, W, t), Fn.typeCheckConfig(j, t, U), t
}, t._addEventListeners = function () {
var e = this;
this._config.keyboard && P(this._element).on(Q.KEYDOWN, function (t) {
return e._keydown(t)
}), "hover" === this._config.pause && (P(this._element).on(Q.MOUSEENTER, function (t) {
return e.pause(t)
}).on(Q.MOUSELEAVE, function (t) {
return e.cycle(t)
}), "ontouchstart" in document.documentElement && P(this._element).on(Q.TOUCHEND, function () {
e.pause(), e.touchTimeout && clearTimeout(e.touchTimeout), e.touchTimeout = setTimeout(function (t) {
return e.cycle(t)
}, 500 + e._config.interval)
}))
}, t._keydown = function (t) {
if (!/input|textarea/i.test(t.target.tagName)) switch (t.which) {
case 37:
t.preventDefault(), this.prev();
break;
case 39:
t.preventDefault(), this.next()
}
}, t._getItemIndex = function (t) {
return this._items = t && t.parentNode ? [].slice.call(t.parentNode.querySelectorAll(tt)) : [], this._items.indexOf(t)
}, t._getItemByDirection = function (t, e) {
var n = t === q,
i = t === F,
r = this._getItemIndex(e),
o = this._items.length - 1;
if ((i && 0 === r || n && r === o) && !this._config.wrap) return e;
var s = (r + (t === F ? -1 : 1)) % this._items.length;
return -1 === s ? this._items[this._items.length - 1] : this._items[s]
}, t._triggerSlideEvent = function (t, e) {
var n = this._getItemIndex(t),
i = this._getItemIndex(this._element.querySelector(X)),
r = P.Event(Q.SLIDE, {
relatedTarget: t,
direction: e,
from: i,
to: n
});
return P(this._element).trigger(r), r
}, t._setActiveIndicatorElement = function (t) {
if (this._indicatorsElement) {
var e = [].slice.call(this._indicatorsElement.querySelectorAll($));
P(e).removeClass(V);
var n = this._indicatorsElement.children[this._getItemIndex(t)];
n && P(n).addClass(V)
}
}, t._slide = function (t, e) {
var n, i, r, o = this,
s = this._element.querySelector(X),
a = this._getItemIndex(s),
l = e || s && this._getItemByDirection(t, s),
c = this._getItemIndex(l),
h = Boolean(this._interval);
if (t === q ? (n = J, i = Z, r = K) : (n = z, i = G, r = M), l && P(l).hasClass(V)) this._isSliding = !1;
else if (!this._triggerSlideEvent(l, r).isDefaultPrevented() && s && l) {
this._isSliding = !0, h && this.pause(), this._setActiveIndicatorElement(l);
var u = P.Event(Q.SLID, {
relatedTarget: l,
direction: r,
from: a,
to: c
});
if (P(this._element).hasClass(Y)) {
P(l).addClass(i), Fn.reflow(l), P(s).addClass(n), P(l).addClass(n);
var f = Fn.getTransitionDurationFromElement(s);
P(s).one(Fn.TRANSITION_END, function () {
P(l).removeClass(n + " " + i).addClass(V), P(s).removeClass(V + " " + i + " " + n), o._isSliding = !1, setTimeout(function () {
return P(o._element).trigger(u)
}, 0)
}).emulateTransitionEnd(f)
} else P(s).removeClass(V), P(l).addClass(V), this._isSliding = !1, P(this._element).trigger(u);
h && this.cycle()
}
}, o._jQueryInterface = function (i) {
return this.each(function () {
var t = P(this).data(H),
e = l({}, W, P(this).data());
"object" == typeof i && (e = l({}, e, i));
var n = "string" == typeof i ? i : e.slide;
if (t || (t = new o(this, e), P(this).data(H, t)), "number" == typeof i) t.to(i);
else if ("string" == typeof n) {
if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"');
t[n]()
} else e.interval && (t.pause(), t.cycle())
})
}, o._dataApiClickHandler = function (t) {
var e = Fn.getSelectorFromElement(this);
if (e) {
var n = P(e)[0];
if (n && P(n).hasClass(B)) {
var i = l({}, P(n).data(), P(this).data()),
r = this.getAttribute("data-slide-to");
r && (i.interval = !1), o._jQueryInterface.call(P(n), i), r && P(n).data(H).to(r), t.preventDefault()
}
}
}, s(o, null, [{
key: "VERSION",
get: function () {
return "4.1.3"
}
}, {
key: "Default",
get: function () {
return W
}
}]), o
}(), P(document).on(Q.CLICK_DATA_API, it, ot._dataApiClickHandler), P(window).on(Q.LOAD_DATA_API, function () {
for (var t = [].slice.call(document.querySelectorAll(rt)), e = 0, n = t.length; e < n; e++) {
var i = P(t[e]);
ot._jQueryInterface.call(i, i.data())
}
}), P.fn[j] = ot._jQueryInterface, P.fn[j].Constructor = ot, P.fn[j].noConflict = function () {
return P.fn[j] = x, ot._jQueryInterface
}, ot),
Bn = (at = "collapse", ct = "." + (lt = "bs.collapse"), ht = (st = e).fn[at], ut = {
toggle: !0,
parent: ""
}, ft = {
toggle: "boolean",
parent: "(string|element)"
}, dt = {
SHOW: "show" + ct,
SHOWN: "shown" + ct,
HIDE: "hide" + ct,
HIDDEN: "hidden" + ct,
CLICK_DATA_API: "click" + ct + ".data-api"
}, gt = "show", _t = "collapse", mt = "collapsing", pt = "collapsed", vt = "width", yt = "height", Et = ".show, .collapsing", Ct = '[data-toggle="collapse"]', Tt = function () {
function a(e, t) {
this._isTransitioning = !1, this._element = e, this._config = this._getConfig(t), this._triggerArray = st.makeArray(document.querySelectorAll('[data-toggle="collapse"][href="#' + e.id + '"],[data-toggle="collapse"][data-target="#' + e.id + '"]'));
for (var n = [].slice.call(document.querySelectorAll(Ct)), i = 0, r = n.length; i < r; i++) {
var o = n[i],
s = Fn.getSelectorFromElement(o),
a = [].slice.call(document.querySelectorAll(s)).filter(function (t) {
return t === e
});
null !== s && 0 < a.length && (this._selector = s, this._triggerArray.push(o))
}
this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle()
}
var t = a.prototype;
return t.toggle = function () {
st(this._element).hasClass(gt) ? this.hide() : this.show()
}, t.show = function () {
var t, e, n = this;
if (!this._isTransitioning && !st(this._element).hasClass(gt) && (this._parent && 0 === (t = [].slice.call(this._parent.querySelectorAll(Et)).filter(function (t) {
return t.getAttribute("data-parent") === n._config.parent
})).length && (t = null), !(t && (e = st(t).not(this._selector).data(lt)) && e._isTransitioning))) {
var i = st.Event(dt.SHOW);
if (st(this._element).trigger(i), !i.isDefaultPrevented()) {
t && (a._jQueryInterface.call(st(t).not(this._selector), "hide"), e || st(t).data(lt, null));
var r = this._getDimension();
st(this._element).removeClass(_t).addClass(mt), this._element.style[r] = 0, this._triggerArray.length && st(this._triggerArray).removeClass(pt).attr("aria-expanded", !0), this.setTransitioning(!0);
var o = "scroll" + (r[0].toUpperCase() + r.slice(1)),
s = Fn.getTransitionDurationFromElement(this._element);
st(this._element).one(Fn.TRANSITION_END, function () {
st(n._element).removeClass(mt).addClass(_t).addClass(gt), n._element.style[r] = "", n.setTransitioning(!1), st(n._element).trigger(dt.SHOWN)
}).emulateTransitionEnd(s), this._element.style[r] = this._element[o] + "px"
}
}
}, t.hide = function () {
var t = this;
if (!this._isTransitioning && st(this._element).hasClass(gt)) {
var e = st.Event(dt.HIDE);
if (st(this._element).trigger(e), !e.isDefaultPrevented()) {
var n = this._getDimension();
this._element.style[n] = this._element.getBoundingClientRect()[n] + "px", Fn.reflow(this._element), st(this._element).addClass(mt).removeClass(_t).removeClass(gt);
var i = this._triggerArray.length;
if (0 < i)
for (var r = 0; r < i; r++) {
var o = this._triggerArray[r],
s = Fn.getSelectorFromElement(o);
if (null !== s) st([].slice.call(document.querySelectorAll(s))).hasClass(gt) || st(o).addClass(pt).attr("aria-expanded", !1)
}
this.setTransitioning(!0);
this._element.style[n] = "";
var a = Fn.getTransitionDurationFromElement(this._element);
st(this._element).one(Fn.TRANSITION_END, function () {
t.setTransitioning(!1), st(t._element).removeClass(mt).addClass(_t).trigger(dt.HIDDEN)
}).emulateTransitionEnd(a)
}
}
}, t.setTransitioning = function (t) {
this._isTransitioning = t
}, t.dispose = function () {
st.removeData(this._element, lt), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null
}, t._getConfig = function (t) {
return (t = l({}, ut, t)).toggle = Boolean(t.toggle), Fn.typeCheckConfig(at, t, ft), t
}, t._getDimension = function () {
return st(this._element).hasClass(vt) ? vt : yt
}, t._getParent = function () {
var n = this,
t = null;
Fn.isElement(this._config.parent) ? (t = this._config.parent, "undefined" != typeof this._config.parent.jquery && (t = this._config.parent[0])) : t = document.querySelector(this._config.parent);
var e = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]',
i = [].slice.call(t.querySelectorAll(e));
return st(i).each(function (t, e) {
n._addAriaAndCollapsedClass(a._getTargetFromElement(e), [e])
}), t
}, t._addAriaAndCollapsedClass = function (t, e) {
if (t) {
var n = st(t).hasClass(gt);
e.length && st(e).toggleClass(pt, !n).attr("aria-expanded", n)
}
}, a._getTargetFromElement = function (t) {
var e = Fn.getSelectorFromElement(t);
return e ? document.querySelector(e) : null
}, a._jQueryInterface = function (i) {
return this.each(function () {
var t = st(this),
e = t.data(lt),
n = l({}, ut, t.data(), "object" == typeof i && i ? i : {});
if (!e && n.toggle && /show|hide/.test(i) && (n.toggle = !1), e || (e = new a(this, n), t.data(lt, e)), "string" == typeof i) {
if ("undefined" == typeof e[i]) throw new TypeError('No method named "' + i + '"');
e[i]()
}
})
}, s(a, null, [{
key: "VERSION",
get: function () {
return "4.1.3"
}
}, {
key: "Default",
get: function () {
return ut
}
}]), a
}(), st(document).on(dt.CLICK_DATA_API, Ct, function (t) {
"A" === t.currentTarget.tagName && t.preventDefault();
var n = st(this),
e = Fn.getSelectorFromElement(this),
i = [].slice.call(document.querySelectorAll(e));
st(i).each(function () {
var t = st(this),
e = t.data(lt) ? "toggle" : n.data();
Tt._jQueryInterface.call(t, e)
})
}), st.fn[at] = Tt._jQueryInterface, st.fn[at].Constructor = Tt, st.fn[at].noConflict = function () {
return st.fn[at] = ht, Tt._jQueryInterface
}, Tt),
Vn = (St = "dropdown", At = "." + (It = "bs.dropdown"), Dt = ".data-api", wt = (bt = e).fn[St], Nt = new RegExp("38|40|27"), Ot = {
HIDE: "hide" + At,
HIDDEN: "hidden" + At,
SHOW: "show" + At,
SHOWN: "shown" + At,
CLICK: "click" + At,
CLICK_DATA_API: "click" + At + Dt,
KEYDOWN_DATA_API: "keydown" + At + Dt,
KEYUP_DATA_API: "keyup" + At + Dt
}, kt = "disabled", Pt = "show", jt = "dropup", Ht = "dropright", Lt = "dropleft", Rt = "dropdown-menu-right", xt = "position-static", Wt = '[data-toggle="dropdown"]', Ut = ".dropdown form", qt = ".dropdown-menu", Ft = ".navbar-nav", Kt = ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)", Mt = "top-start", Qt = "top-end", Bt = "bottom-start", Vt = "bottom-end", Yt = "right-start", zt = "left-start", Jt = {
offset: 0,
flip: !0,
boundary: "scrollParent",
reference: "toggle",
display: "dynamic"
}, Zt = {
offset: "(number|string|function)",
flip: "boolean",
boundary: "(string|element)",
reference: "(string|element)",
display: "string"
}, Gt = function () {
function c(t, e) {
this._element = t, this._popper = null, this._config = this._getConfig(e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners()
}
var t = c.prototype;
return t.toggle = function () {
if (!this._element.disabled && !bt(this._element).hasClass(kt)) {
var t = c._getParentFromElement(this._element),
e = bt(this._menu).hasClass(Pt);
if (c._clearMenus(), !e) {
var n = {
relatedTarget: this._element
},
i = bt.Event(Ot.SHOW, n);
if (bt(t).trigger(i), !i.isDefaultPrevented()) {
if (!this._inNavbar) {
if ("undefined" == typeof h) throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)");
var r = this._element;
"parent" === this._config.reference ? r = t : Fn.isElement(this._config.reference) && (r = this._config.reference, "undefined" != typeof this._config.reference.jquery && (r = this._config.reference[0])), "scrollParent" !== this._config.boundary && bt(t).addClass(xt), this._popper = new h(r, this._menu, this._getPopperConfig())
}
"ontouchstart" in document.documentElement && 0 === bt(t).closest(Ft).length && bt(document.body).children().on("mouseover", null, bt.noop), this._element.focus(), this._element.setAttribute("aria-expanded", !0), bt(this._menu).toggleClass(Pt), bt(t).toggleClass(Pt).trigger(bt.Event(Ot.SHOWN, n))
}
}
}
}, t.dispose = function () {
bt.removeData(this._element, It), bt(this._element).off(At), this._element = null, (this._menu = null) !== this._popper && (this._popper.destroy(), this._popper = null)
}, t.update = function () {
this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate()
}, t._addEventListeners = function () {
var e = this;
bt(this._element).on(Ot.CLICK, function (t) {
t.preventDefault(), t.stopPropagation(), e.toggle()
})
}, t._getConfig = function (t) {
return t = l({}, this.constructor.Default, bt(this._element).data(), t), Fn.typeCheckConfig(St, t, this.constructor.DefaultType), t
}, t._getMenuElement = function () {
if (!this._menu) {
var t = c._getParentFromElement(this._element);
t && (this._menu = t.querySelector(qt))
}
return this._menu
}, t._getPlacement = function () {
var t = bt(this._element.parentNode),
e = Bt;
return t.hasClass(jt) ? (e = Mt, bt(this._menu).hasClass(Rt) && (e = Qt)) : t.hasClass(Ht) ? e = Yt : t.hasClass(Lt) ? e = zt : bt(this._menu).hasClass(Rt) && (e = Vt), e
}, t._detectNavbar = function () {
return 0 < bt(this._element).closest(".navbar").length
}, t._getPopperConfig = function () {
var e = this,
t = {};
"function" == typeof this._config.offset ? t.fn = function (t) {
return t.offsets = l({}, t.offsets, e._config.offset(t.offsets) || {}), t
} : t.offset = this._config.offset;
var n = {
placement: this._getPlacement(),
modifiers: {
offset: t,
flip: {
enabled: this._config.flip
},
preventOverflow: {
boundariesElement: this._config.boundary
}
}
};
return "static" === this._config.display && (n.modifiers.applyStyle = {
enabled: !1
}), n
}, c._jQueryInterface = function (e) {
return this.each(function () {
var t = bt(this).data(It);
if (t || (t = new c(this, "object" == typeof e ? e : null), bt(this).data(It, t)), "string" == typeof e) {
if ("undefined" == typeof t[e]) throw new TypeError('No method named "' + e + '"');
t[e]()
}
})
}, c._clearMenus = function (t) {
if (!t || 3 !== t.which && ("keyup" !== t.type || 9 === t.which))
for (var e = [].slice.call(document.querySelectorAll(Wt)), n = 0, i = e.length; n < i; n++) {
var r = c._getParentFromElement(e[n]),
o = bt(e[n]).data(It),
s = {
relatedTarget: e[n]
};
if (t && "click" === t.type && (s.clickEvent = t), o) {
var a = o._menu;
if (bt(r).hasClass(Pt) && !(t && ("click" === t.type && /input|textarea/i.test(t.target.tagName) || "keyup" === t.type && 9 === t.which) && bt.contains(r, t.target))) {
var l = bt.Event(Ot.HIDE, s);
bt(r).trigger(l), l.isDefaultPrevented() || ("ontouchstart" in document.documentElement && bt(document.body).children().off("mouseover", null, bt.noop), e[n].setAttribute("aria-expanded", "false"), bt(a).removeClass(Pt), bt(r).removeClass(Pt).trigger(bt.Event(Ot.HIDDEN, s)))
}
}
}
}, c._getParentFromElement = function (t) {
var e, n = Fn.getSelectorFromElement(t);
return n && (e = document.querySelector(n)), e || t.parentNode
}, c._dataApiKeydownHandler = function (t) {
if ((/input|textarea/i.test(t.target.tagName) ? !(32 === t.which || 27 !== t.which && (40 !== t.which && 38 !== t.which || bt(t.target).closest(qt).length)) : Nt.test(t.which)) && (t.preventDefault(), t.stopPropagation(), !this.disabled && !bt(this).hasClass(kt))) {
var e = c._getParentFromElement(this),
n = bt(e).hasClass(Pt);
if ((n || 27 === t.which && 32 === t.which) && (!n || 27 !== t.which && 32 !== t.which)) {
var i = [].slice.call(e.querySelectorAll(Kt));
if (0 !== i.length) {
var r = i.indexOf(t.target);
38 === t.which && 0 < r && r--, 40 === t.which && r < i.length - 1 && r++, r < 0 && (r = 0), i[r].focus()
}
} else {
if (27 === t.which) {
var o = e.querySelector(Wt);
bt(o).trigger("focus")
}
bt(this).trigger("click")
}
}
}, s(c, null, [{
key: "VERSION",
get: function () {
return "4.1.3"
}
}, {
key: "Default",
get: function () {
return Jt
}
}, {
key: "DefaultType",
get: function () {
return Zt
}
}]), c
}(), bt(document).on(Ot.KEYDOWN_DATA_API, Wt, Gt._dataApiKeydownHandler).on(Ot.KEYDOWN_DATA_API, qt, Gt._dataApiKeydownHandler).on(Ot.CLICK_DATA_API + " " + Ot.KEYUP_DATA_API, Gt._clearMenus).on(Ot.CLICK_DATA_API, Wt, function (t) {
t.preventDefault(), t.stopPropagation(), Gt._jQueryInterface.call(bt(this), "toggle")
}).on(Ot.CLICK_DATA_API, Ut, function (t) {
t.stopPropagation()
}), bt.fn[St] = Gt._jQueryInterface, bt.fn[St].Constructor = Gt, bt.fn[St].noConflict = function () {
return bt.fn[St] = wt, Gt._jQueryInterface
}, Gt),
Yn = (Xt = "modal", ee = "." + (te = "bs.modal"), ne = ($t = e).fn[Xt], ie = {
backdrop: !0,
keyboard: !0,
focus: !0,
show: !0
}, re = {
backdrop: "(boolean|string)",
keyboard: "boolean",
focus: "boolean",
show: "boolean"
}, oe = {
HIDE: "hide" + ee,
HIDDEN: "hidden" + ee,
SHOW: "show" + ee,
SHOWN: "shown" + ee,
FOCUSIN: "focusin" + ee,
RESIZE: "resize" + ee,
CLICK_DISMISS: "click.dismiss" + ee,
KEYDOWN_DISMISS: "keydown.dismiss" + ee,
MOUSEUP_DISMISS: "mouseup.dismiss" + ee,
MOUSEDOWN_DISMISS: "mousedown.dismiss" + ee,
CLICK_DATA_API: "click" + ee + ".data-api"
}, se = "modal-scrollbar-measure", ae = "modal-backdrop", le = "modal-open", ce = "fade", he = "show", ue = ".modal-dialog", fe = '[data-toggle="modal"]', de = '[data-dismiss="modal"]', ge = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top", _e = ".sticky-top", me = function () {
function r(t, e) {
this._config = this._getConfig(e), this._element = t, this._dialog = t.querySelector(ue), this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._scrollbarWidth = 0
}
var t = r.prototype;
return t.toggle = function (t) {
return this._isShown ? this.hide() : this.show(t)
}, t.show = function (t) {
var e = this;
if (!this._isTransitioning && !this._isShown) {
$t(this._element).hasClass(ce) && (this._isTransitioning = !0);
var n = $t.Event(oe.SHOW, {
relatedTarget: t
});
$t(this._element).trigger(n), this._isShown || n.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), $t(document.body).addClass(le), this._setEscapeEvent(), this._setResizeEvent(), $t(this._element).on(oe.CLICK_DISMISS, de, function (t) {
return e.hide(t)
}), $t(this._dialog).on(oe.MOUSEDOWN_DISMISS, function () {
$t(e._element).one(oe.MOUSEUP_DISMISS, function (t) {
$t(t.target).is(e._element) && (e._ignoreBackdropClick = !0)
})
}), this._showBackdrop(function () {
return e._showElement(t)
}))
}
}, t.hide = function (t) {
var e = this;
if (t && t.preventDefault(), !this._isTransitioning && this._isShown) {
var n = $t.Event(oe.HIDE);
if ($t(this._element).trigger(n), this._isShown && !n.isDefaultPrevented()) {
this._isShown = !1;
var i = $t(this._element).hasClass(ce);
if (i && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), $t(document).off(oe.FOCUSIN), $t(this._element).removeClass(he), $t(this._element).off(oe.CLICK_DISMISS), $t(this._dialog).off(oe.MOUSEDOWN_DISMISS), i) {
var r = Fn.getTransitionDurationFromElement(this._element);
$t(this._element).one(Fn.TRANSITION_END, function (t) {
return e._hideModal(t)
}).emulateTransitionEnd(r)
} else this._hideModal()
}
}
}, t.dispose = function () {
$t.removeData(this._element, te), $t(window, document, this._element, this._backdrop).off(ee), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._scrollbarWidth = null
}, t.handleUpdate = function () {
this._adjustDialog()
}, t._getConfig = function (t) {
return t = l({}, ie, t), Fn.typeCheckConfig(Xt, t, re), t
}, t._showElement = function (t) {
var e = this,
n = $t(this._element).hasClass(ce);
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, n && Fn.reflow(this._element), $t(this._element).addClass(he), this._config.focus && this._enforceFocus();
var i = $t.Event(oe.SHOWN, {
relatedTarget: t
}),
r = function () {
e._config.focus && e._element.focus(), e._isTransitioning = !1, $t(e._element).trigger(i)
};
if (n) {
var o = Fn.getTransitionDurationFromElement(this._element);
$t(this._dialog).one(Fn.TRANSITION_END, r).emulateTransitionEnd(o)
} else r()
}, t._enforceFocus = function () {
var e = this;
$t(document).off(oe.FOCUSIN).on(oe.FOCUSIN, function (t) {
document !== t.target && e._element !== t.target && 0 === $t(e._element).has(t.target).length && e._element.focus()
})
}, t._setEscapeEvent = function () {
var e = this;
this._isShown && this._config.keyboard ? $t(this._element).on(oe.KEYDOWN_DISMISS, function (t) {
27 === t.which && (t.preventDefault(), e.hide())
}) : this._isShown || $t(this._element).off(oe.KEYDOWN_DISMISS)
}, t._setResizeEvent = function () {
var e = this;
this._isShown ? $t(window).on(oe.RESIZE, function (t) {
return e.handleUpdate(t)
}) : $t(window).off(oe.RESIZE)
}, t._hideModal = function () {
var t = this;
this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._isTransitioning = !1, this._showBackdrop(function () {
$t(document.body).removeClass(le), t._resetAdjustments(), t._resetScrollbar(), $t(t._element).trigger(oe.HIDDEN)
})
}, t._removeBackdrop = function () {
this._backdrop && ($t(this._backdrop).remove(), this._backdrop = null)
}, t._showBackdrop = function (t) {
var e = this,
n = $t(this._element).hasClass(ce) ? ce : "";
if (this._isShown && this._config.backdrop) {
if (this._backdrop = document.createElement("div"), this._backdrop.className = ae, n && this._backdrop.classList.add(n), $t(this._backdrop).appendTo(document.body), $t(this._element).on(oe.CLICK_DISMISS, function (t) {
e._ignoreBackdropClick ? e._ignoreBackdropClick = !1 : t.target === t.currentTarget && ("static" === e._config.backdrop ? e._element.focus() : e.hide())
}), n && Fn.reflow(this._backdrop), $t(this._backdrop).addClass(he), !t) return;
if (!n) return void t();
var i = Fn.getTransitionDurationFromElement(this._backdrop);
$t(this._backdrop).one(Fn.TRANSITION_END, t).emulateTransitionEnd(i)
} else if (!this._isShown && this._backdrop) {
$t(this._backdrop).removeClass(he);
var r = function () {
e._removeBackdrop(), t && t()
};
if ($t(this._element).hasClass(ce)) {
var o = Fn.getTransitionDurationFromElement(this._backdrop);
$t(this._backdrop).one(Fn.TRANSITION_END, r).emulateTransitionEnd(o)
} else r()
} else t && t()
}, t._adjustDialog = function () {
var t = this._element.scrollHeight > document.documentElement.clientHeight;
!this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + "px"), this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + "px")
}, t._resetAdjustments = function () {
this._element.style.paddingLeft = "", this._element.style.paddingRight = ""
}, t._checkScrollbar = function () {
var t = document.body.getBoundingClientRect();
this._isBodyOverflowing = t.left + t.right < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth()
}, t._setScrollbar = function () {
var r = this;
if (this._isBodyOverflowing) {
var t = [].slice.call(document.querySelectorAll(ge)),
e = [].slice.call(document.querySelectorAll(_e));
$t(t).each(function (t, e) {
var n = e.style.paddingRight,
i = $t(e).css("padding-right");
$t(e).data("padding-right", n).css("padding-right", parseFloat(i) + r._scrollbarWidth + "px")
}), $t(e).each(function (t, e) {
var n = e.style.marginRight,
i = $t(e).css("margin-right");
$t(e).data("margin-right", n).css("margin-right", parseFloat(i) - r._scrollbarWidth + "px")
});
var n = document.body.style.paddingRight,
i = $t(document.body).css("padding-right");
$t(document.body).data("padding-right", n).css("padding-right", parseFloat(i) + this._scrollbarWidth + "px")
}
}, t._resetScrollbar = function () {
var t = [].slice.call(document.querySelectorAll(ge));
$t(t).each(function (t, e) {
var n = $t(e).data("padding-right");
$t(e).removeData("padding-right"), e.style.paddingRight = n || ""
});
var e = [].slice.call(document.querySelectorAll("" + _e));
$t(e).each(function (t, e) {
var n = $t(e).data("margin-right");
"undefined" != typeof n && $t(e).css("margin-right", n).removeData("margin-right")
});
var n = $t(document.body).data("padding-right");
$t(document.body).removeData("padding-right"), document.body.style.paddingRight = n || ""
}, t._getScrollbarWidth = function () {
var t = document.createElement("div");
t.className = se, document.body.appendChild(t);
var e = t.getBoundingClientRect().width - t.clientWidth;
return document.body.removeChild(t), e
}, r._jQueryInterface = function (n, i) {
return this.each(function () {
var t = $t(this).data(te),
e = l({}, ie, $t(this).data(), "object" == typeof n && n ? n : {});
if (t || (t = new r(this, e), $t(this).data(te, t)), "string" == typeof n) {
if ("undefined" == typeof t[