/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ !(function (n) { "function" == typeof define && define.amd ? define(["jquery"], n) : "object" == typeof module && module.exports ? (module.exports = function (e, t) { return ( void 0 === t && (t = "undefined" != typeof window ? require("jquery") : require("jquery")(e)), n(t), t ); }) : n(jQuery); })(function (u) { var e = (function () { if (u && u.fn && u.fn.select2 && u.fn.select2.amd) var e = u.fn.select2.amd; var t, n, r, h, o, s, f, g, m, v, y, _, i, a, b; function w(e, t) { return i.call(e, t); } function l(e, t) { var n, r, i, o, s, a, l, c, u, d, p, h = t && t.split("/"), f = y.map, g = (f && f["*"]) || {}; if (e) { for ( s = (e = e.split("/")).length - 1, y.nodeIdCompat && b.test(e[s]) && (e[s] = e[s].replace(b, "")), "." === e[0].charAt(0) && h && (e = h.slice(0, h.length - 1).concat(e)), u = 0; u < e.length; u++ ) if ("." === (p = e[u])) e.splice(u, 1), --u; else if (".." === p) { if (0 === u || (1 === u && ".." === e[2]) || ".." === e[u - 1]) continue; 0 < u && (e.splice(u - 1, 2), (u -= 2)); } e = e.join("/"); } if ((h || g) && f) { for (u = (n = e.split("/")).length; 0 < u; --u) { if (((r = n.slice(0, u).join("/")), h)) for (d = h.length; 0 < d; --d) if ((i = (i = f[h.slice(0, d).join("/")]) && i[r])) { (o = i), (a = u); break; } if (o) break; !l && g && g[r] && ((l = g[r]), (c = u)); } !o && l && ((o = l), (a = c)), o && (n.splice(0, a, o), (e = n.join("/"))); } return e; } function A(t, n) { return function () { var e = a.call(arguments, 0); return ( "string" != typeof e[0] && 1 === e.length && e.push(null), s.apply(h, e.concat([t, n])) ); }; } function x(t) { return function (e) { m[t] = e; }; } function D(e) { if (w(v, e)) { var t = v[e]; delete v[e], (_[e] = !0), o.apply(h, t); } if (!w(m, e) && !w(_, e)) throw new Error("No " + e); return m[e]; } function c(e) { var t, n = e ? e.indexOf("!") : -1; return ( -1 < n && ((t = e.substring(0, n)), (e = e.substring(n + 1, e.length))), [t, e] ); } function S(e) { return e ? c(e) : []; } return ( (e && e.requirejs) || (e ? (n = e) : (e = {}), (m = {}), (v = {}), (y = {}), (_ = {}), (i = Object.prototype.hasOwnProperty), (a = [].slice), (b = /\.js$/), (f = function (e, t) { var n, r, i = c(e), o = i[0], s = t[1]; return ( (e = i[1]), o && (n = D((o = l(o, s)))), o ? (e = n && n.normalize ? n.normalize( e, ((r = s), function (e) { return l(e, r); }) ) : l(e, s)) : ((o = (i = c((e = l(e, s))))[0]), (e = i[1]), o && (n = D(o))), { f: o ? o + "!" + e : e, n: e, pr: o, p: n } ); }), (g = { require: function (e) { return A(e); }, exports: function (e) { var t = m[e]; return void 0 !== t ? t : (m[e] = {}); }, module: function (e) { return { id: e, uri: "", exports: m[e], config: ((t = e), function () { return (y && y.config && y.config[t]) || {}; }), }; var t; }, }), (o = function (e, t, n, r) { var i, o, s, a, l, c, u, d = [], p = typeof n; if (((c = S((r = r || e))), "undefined" == p || "function" == p)) { for ( t = !t.length && n.length ? ["require", "exports", "module"] : t, l = 0; l < t.length; l += 1 ) if ("require" === (o = (a = f(t[l], c)).f)) d[l] = g.require(e); else if ("exports" === o) (d[l] = g.exports(e)), (u = !0); else if ("module" === o) i = d[l] = g.module(e); else if (w(m, o) || w(v, o) || w(_, o)) d[l] = D(o); else { if (!a.p) throw new Error(e + " missing " + o); a.p.load(a.n, A(r, !0), x(o), {}), (d[l] = m[o]); } (s = n ? n.apply(m[e], d) : void 0), e && (i && i.exports !== h && i.exports !== m[e] ? (m[e] = i.exports) : (s === h && u) || (m[e] = s)); } else e && (m[e] = n); }), (t = n = s = function (e, t, n, r, i) { if ("string" == typeof e) return g[e] ? g[e](t) : D(f(e, S(t)).f); if (!e.splice) { if (((y = e).deps && s(y.deps, y.callback), !t)) return; t.splice ? ((e = t), (t = n), (n = null)) : (e = h); } return ( (t = t || function () { }), "function" == typeof n && ((n = r), (r = i)), r ? o(h, e, t, n) : setTimeout(function () { o(h, e, t, n); }, 4), s ); }), (s.config = function (e) { return s(e); }), (t._defined = m), ((r = function (e, t, n) { if ("string" != typeof e) throw new Error( "See almond README: incorrect module build, no module name" ); t.splice || ((n = t), (t = [])), w(m, e) || w(v, e) || (v[e] = [e, t, n]); }).amd = { jQuery: !0 }), (e.requirejs = t), (e.require = n), (e.define = r)), e.define("almond", function () { }), e.define("jquery", [], function () { var e = u || $; return ( null == e && console && console.error && console.error( "Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page." ), e ); }), e.define("select2/utils", ["jquery"], function (o) { var i = {}; function u(e) { var t = e.prototype, n = []; for (var r in t) { "function" == typeof t[r] && "constructor" !== r && n.push(r); } return n; } (i.Extend = function (e, t) { var n = {}.hasOwnProperty; function r() { this.constructor = e; } for (var i in t) n.call(t, i) && (e[i] = t[i]); return ( (r.prototype = t.prototype), (e.prototype = new r()), (e.__super__ = t.prototype), e ); }), (i.Decorate = function (r, i) { var e = u(i), t = u(r); function o() { var e = Array.prototype.unshift, t = i.prototype.constructor.length, n = r.prototype.constructor; 0 < t && (e.call(arguments, r.prototype.constructor), (n = i.prototype.constructor)), n.apply(this, arguments); } (i.displayName = r.displayName), (o.prototype = new (function () { this.constructor = o; })()); for (var n = 0; n < t.length; n++) { var s = t[n]; o.prototype[s] = r.prototype[s]; } function a(e) { var t = function () { }; e in o.prototype && (t = o.prototype[e]); var n = i.prototype[e]; return function () { return ( Array.prototype.unshift.call(arguments, t), n.apply(this, arguments) ); }; } for (var l = 0; l < e.length; l++) { var c = e[l]; o.prototype[c] = a(c); } return o; }); function e() { this.listeners = {}; } (e.prototype.on = function (e, t) { (this.listeners = this.listeners || {}), e in this.listeners ? this.listeners[e].push(t) : (this.listeners[e] = [t]); }), (e.prototype.trigger = function (e) { var t = Array.prototype.slice, n = t.call(arguments, 1); (this.listeners = this.listeners || {}), null == n && (n = []), 0 === n.length && n.push({}), (n[0]._type = e) in this.listeners && this.invoke(this.listeners[e], t.call(arguments, 1)), "*" in this.listeners && this.invoke(this.listeners["*"], arguments); }), (e.prototype.invoke = function (e, t) { for (var n = 0, r = e.length; n < r; n++) e[n].apply(this, t); }), (i.Observable = e), (i.generateChars = function (e) { for (var t = "", n = 0; n < e; n++) { t += Math.floor(36 * Math.random()).toString(36); } return t; }), (i.bind = function (e, t) { return function () { e.apply(t, arguments); }; }), (i._convertData = function (e) { for (var t in e) { var n = t.split("-"), r = e; if (1 !== n.length) { for (var i = 0; i < n.length; i++) { var o = n[i]; (o = o.substring(0, 1).toLowerCase() + o.substring(1)) in r || (r[o] = {}), i == n.length - 1 && (r[o] = e[t]), (r = r[o]); } delete e[t]; } } return e; }), (i.hasScroll = function (e, t) { var n = o(t), r = t.style.overflowX, i = t.style.overflowY; return ( (r !== i || ("hidden" !== i && "visible" !== i)) && ("scroll" === r || "scroll" === i || n.innerHeight() < t.scrollHeight || n.innerWidth() < t.scrollWidth) ); }), (i.escapeMarkup = function (e) { var t = { "\\": "\", "&": "&", "<": "<", ">": ">", '"': """, "'": "'", "/": "/", }; return "string" != typeof e ? e : String(e).replace(/[&<>"'\/\\]/g, function (e) { return t[e]; }); }), (i.appendMany = function (e, t) { if ("1.7" === o.fn.jquery.substr(0, 3)) { var n = o(); o.map(t, function (e) { n = n.add(e); }), (t = n); } e.append(t); }), (i.__cache = {}); var n = 0; return ( (i.GetUniqueElementId = function (e) { var t = e.getAttribute("data-select2-id"); return ( null == t && (e.id ? ((t = e.id), e.setAttribute("data-select2-id", t)) : (e.setAttribute("data-select2-id", ++n), (t = n.toString()))), t ); }), (i.StoreData = function (e, t, n) { var r = i.GetUniqueElementId(e); i.__cache[r] || (i.__cache[r] = {}), (i.__cache[r][t] = n); }), (i.GetData = function (e, t) { var n = i.GetUniqueElementId(e); return t ? i.__cache[n] && null != i.__cache[n][t] ? i.__cache[n][t] : o(e).data(t) : i.__cache[n]; }), (i.RemoveData = function (e) { var t = i.GetUniqueElementId(e); null != i.__cache[t] && delete i.__cache[t], e.removeAttribute("data-select2-id"); }), i ); }), e.define("select2/results", ["jquery", "./utils"], function (h, f) { function r(e, t, n) { (this.$element = e), (this.data = n), (this.options = t), r.__super__.constructor.call(this); } return ( f.Extend(r, f.Observable), (r.prototype.render = function () { var e = h( '' ); return ( this.options.get("multiple") && e.attr("aria-multiselectable", "true"), (this.$results = e) ); }), (r.prototype.clear = function () { this.$results.empty(); }), (r.prototype.displayMessage = function (e) { var t = this.options.get("escapeMarkup"); this.clear(), this.hideLoading(); var n = h( '' ), r = this.options.get("translations").get(e.message); n.append(t(r(e.args))), (n[0].className += " select2-results__message"), this.$results.append(n); }), (r.prototype.hideMessages = function () { this.$results.find(".select2-results__message").remove(); }), (r.prototype.append = function (e) { this.hideLoading(); var t = []; if (null != e.results && 0 !== e.results.length) { e.results = this.sort(e.results); for (var n = 0; n < e.results.length; n++) { var r = e.results[n], i = this.option(r); t.push(i); } this.$results.append(t); } else 0 === this.$results.children().length && this.trigger("results:message", { message: "noResults" }); }), (r.prototype.position = function (e, t) { t.find(".select2-results").append(e); }), (r.prototype.sort = function (e) { return this.options.get("sorter")(e); }), (r.prototype.highlightFirstItem = function () { var e = this.$results.find( ".select2-results__option[aria-selected]" ), t = e.filter("[aria-selected=true]"); 0 < t.length ? t.first().trigger("mouseenter") : e.first().trigger("mouseenter"), this.ensureHighlightVisible(); }), (r.prototype.setClasses = function () { var t = this; this.data.current(function (e) { var r = h.map(e, function (e) { return e.id.toString(); }); t.$results .find(".select2-results__option[aria-selected]") .each(function () { var e = h(this), t = f.GetData(this, "data"), n = "" + t.id; (null != t.element && t.element.selected) || (null == t.element && -1 < h.inArray(n, r)) ? e.attr("aria-selected", "true") : e.attr("aria-selected", "false"); }); }); }), (r.prototype.showLoading = function (e) { this.hideLoading(); var t = { disabled: !0, loading: !0, text: this.options.get("translations").get("searching")(e), }, n = this.option(t); (n.className += " loading-results"), this.$results.prepend(n); }), (r.prototype.hideLoading = function () { this.$results.find(".loading-results").remove(); }), (r.prototype.option = function (e) { var t = document.createElement("li"); t.className = "select2-results__option"; var n = { role: "option", "aria-selected": "false" }, r = window.Element.prototype.matches || window.Element.prototype.msMatchesSelector || window.Element.prototype.webkitMatchesSelector; for (var i in (((null != e.element && r.call(e.element, ":disabled")) || (null == e.element && e.disabled)) && (delete n["aria-selected"], (n["aria-disabled"] = "true")), null == e.id && delete n["aria-selected"], null != e._resultId && (t.id = e._resultId), e.title && (t.title = e.title), e.children && ((n.role = "group"), (n["aria-label"] = e.text), delete n["aria-selected"]), n)) { var o = n[i]; t.setAttribute(i, o); } if (e.children) { var s = h(t), a = document.createElement("strong"); a.className = "select2-results__group"; h(a); this.template(e, a); for (var l = [], c = 0; c < e.children.length; c++) { var u = e.children[c], d = this.option(u); l.push(d); } var p = h("", { class: "select2-results__options select2-results__options--nested", }); p.append(l), s.append(a), s.append(p); } else this.template(e, t); return f.StoreData(t, "data", e), t; }), (r.prototype.bind = function (t, e) { var l = this, n = t.id + "-results"; this.$results.attr("id", n), t.on("results:all", function (e) { l.clear(), l.append(e.data), t.isOpen() && (l.setClasses(), l.highlightFirstItem()); }), t.on("results:append", function (e) { l.append(e.data), t.isOpen() && l.setClasses(); }), t.on("query", function (e) { l.hideMessages(), l.showLoading(e); }), t.on("select", function () { t.isOpen() && (l.setClasses(), l.options.get("scrollAfterSelect") && l.highlightFirstItem()); }), t.on("unselect", function () { t.isOpen() && (l.setClasses(), l.options.get("scrollAfterSelect") && l.highlightFirstItem()); }), t.on("open", function () { l.$results.attr("aria-expanded", "true"), l.$results.attr("aria-hidden", "false"), l.setClasses(), l.ensureHighlightVisible(); }), t.on("close", function () { l.$results.attr("aria-expanded", "false"), l.$results.attr("aria-hidden", "true"), l.$results.removeAttr("aria-activedescendant"); }), t.on("results:toggle", function () { var e = l.getHighlightedResults(); 0 !== e.length && e.trigger("mouseup"); }), t.on("results:select", function () { var e = l.getHighlightedResults(); if (0 !== e.length) { var t = f.GetData(e[0], "data"); "true" == e.attr("aria-selected") ? l.trigger("close", {}) : l.trigger("select", { data: t }); } }), t.on("results:previous", function () { var e = l.getHighlightedResults(), t = l.$results.find("[aria-selected]"), n = t.index(e); if (!(n <= 0)) { var r = n - 1; 0 === e.length && (r = 0); var i = t.eq(r); i.trigger("mouseenter"); var o = l.$results.offset().top, s = i.offset().top, a = l.$results.scrollTop() + (s - o); 0 === r ? l.$results.scrollTop(0) : s - o < 0 && l.$results.scrollTop(a); } }), t.on("results:next", function () { var e = l.getHighlightedResults(), t = l.$results.find("[aria-selected]"), n = t.index(e) + 1; if (!(n >= t.length)) { var r = t.eq(n); r.trigger("mouseenter"); var i = l.$results.offset().top + l.$results.outerHeight(!1), o = r.offset().top + r.outerHeight(!1), s = l.$results.scrollTop() + o - i; 0 === n ? l.$results.scrollTop(0) : i < o && l.$results.scrollTop(s); } }), t.on("results:focus", function (e) { e.element.addClass("select2-results__option--highlighted"); }), t.on("results:message", function (e) { l.displayMessage(e); }), h.fn.mousewheel && this.$results.on("mousewheel", function (e) { var t = l.$results.scrollTop(), n = l.$results.get(0).scrollHeight - t + e.deltaY, r = 0 < e.deltaY && t - e.deltaY <= 0, i = e.deltaY < 0 && n <= l.$results.height(); r ? (l.$results.scrollTop(0), e.preventDefault(), e.stopPropagation()) : i && (l.$results.scrollTop( l.$results.get(0).scrollHeight - l.$results.height() ), e.preventDefault(), e.stopPropagation()); }), this.$results.on( "mouseup", ".select2-results__option[aria-selected]", function (e) { var t = h(this), n = f.GetData(this, "data"); "true" !== t.attr("aria-selected") ? l.trigger("select", { originalEvent: e, data: n }) : l.options.get("multiple") ? l.trigger("unselect", { originalEvent: e, data: n }) : l.trigger("close", {}); } ), this.$results.on( "mouseenter", ".select2-results__option[aria-selected]", function (e) { var t = f.GetData(this, "data"); l .getHighlightedResults() .removeClass("select2-results__option--highlighted"), l.trigger("results:focus", { data: t, element: h(this) }); } ); }), (r.prototype.getHighlightedResults = function () { return this.$results.find( ".select2-results__option--highlighted" ); }), (r.prototype.destroy = function () { this.$results.remove(); }), (r.prototype.ensureHighlightVisible = function () { var e = this.getHighlightedResults(); if (0 !== e.length) { var t = this.$results.find("[aria-selected]").index(e), n = this.$results.offset().top, r = e.offset().top, i = this.$results.scrollTop() + (r - n), o = r - n; (i -= 2 * e.outerHeight(!1)), t <= 2 ? this.$results.scrollTop(0) : (o > this.$results.outerHeight() || o < 0) && this.$results.scrollTop(i); } }), (r.prototype.template = function (e, t) { var n = this.options.get("templateResult"), r = this.options.get("escapeMarkup"), i = n(e, t); null == i ? (t.style.display = "none") : "string" == typeof i ? (t.innerHTML = r(i)) : h(t).append(i); }), r ); }), e.define("select2/keys", [], function () { return { BACKSPACE: 8, TAB: 9, ENTER: 13, SHIFT: 16, CTRL: 17, ALT: 18, ESC: 27, SPACE: 32, PAGE_UP: 33, PAGE_DOWN: 34, END: 35, HOME: 36, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40, DELETE: 46, }; }), e.define( "select2/selection/base", ["jquery", "../utils", "../keys"], function (n, r, i) { function o(e, t) { (this.$element = e), (this.options = t), o.__super__.constructor.call(this); } return ( r.Extend(o, r.Observable), (o.prototype.render = function () { var e = n( '' ); return ( (this._tabindex = 0), null != r.GetData(this.$element[0], "old-tabindex") ? (this._tabindex = r.GetData( this.$element[0], "old-tabindex" )) : null != this.$element.attr("tabindex") && (this._tabindex = this.$element.attr("tabindex")), e.attr("title", this.$element.attr("title")), e.attr("tabindex", this._tabindex), e.attr("aria-disabled", "false"), (this.$selection = e) ); }), (o.prototype.bind = function (e, t) { var n = this, r = e.id + "-results"; (this.container = e), this.$selection.on("focus", function (e) { n.trigger("focus", e); }), this.$selection.on("blur", function (e) { n._handleBlur(e); }), this.$selection.on("keydown", function (e) { n.trigger("keypress", e), e.which === i.SPACE && e.preventDefault(); }), e.on("results:focus", function (e) { n.$selection.attr( "aria-activedescendant", e.data._resultId ); }), e.on("selection:update", function (e) { n.update(e.data); }), e.on("open", function () { n.$selection.attr("aria-expanded", "true"), n.$selection.attr("aria-owns", r), n._attachCloseHandler(e); }), e.on("close", function () { n.$selection.attr("aria-expanded", "false"), n.$selection.removeAttr("aria-activedescendant"), n.$selection.removeAttr("aria-owns"), n.$selection.trigger("focus"), n._detachCloseHandler(e); }), e.on("enable", function () { n.$selection.attr("tabindex", n._tabindex), n.$selection.attr("aria-disabled", "false"); }), e.on("disable", function () { n.$selection.attr("tabindex", "-1"), n.$selection.attr("aria-disabled", "true"); }); }), (o.prototype._handleBlur = function (e) { var t = this; window.setTimeout(function () { document.activeElement == t.$selection[0] || n.contains(t.$selection[0], document.activeElement) || t.trigger("blur", e); }, 1); }), (o.prototype._attachCloseHandler = function (e) { n(document.body).on("mousedown.select2." + e.id, function (e) { var t = n(e.target).closest(".select2"); n(".select2.select2-container--open").each(function () { this != t[0] && r.GetData(this, "element").select2("close"); }); }); }), (o.prototype._detachCloseHandler = function (e) { n(document.body).off("mousedown.select2." + e.id); }), (o.prototype.position = function (e, t) { t.find(".selection").append(e); }), (o.prototype.destroy = function () { this._detachCloseHandler(this.container); }), (o.prototype.update = function (e) { throw new Error( "The `update` method must be defined in child classes." ); }), (o.prototype.isEnabled = function () { return !this.isDisabled(); }), (o.prototype.isDisabled = function () { return this.options.get("disabled"); }), o ); } ), e.define( "select2/selection/single", ["jquery", "./base", "../utils", "../keys"], function (e, t, n, r) { function i() { i.__super__.constructor.apply(this, arguments); } return ( n.Extend(i, t), (i.prototype.render = function () { var e = i.__super__.render.call(this); return ( e.addClass("select2-selection--single"), e.html( '' ), e ); }), (i.prototype.bind = function (t, e) { var n = this; i.__super__.bind.apply(this, arguments); var r = t.id + "-container"; this.$selection .find(".select2-selection__rendered") .attr("id", r) .attr("role", "textbox") .attr("aria-readonly", "true"), this.$selection.attr("aria-labelledby", r), this.$selection.on("mousedown", function (e) { 1 === e.which && n.trigger("toggle", { originalEvent: e }); }), this.$selection.on("focus", function (e) { }), this.$selection.on("blur", function (e) { }), t.on("focus", function (e) { t.isOpen() || n.$selection.trigger("focus"); }); }), (i.prototype.clear = function () { var e = this.$selection.find(".select2-selection__rendered"); e.empty(), e.removeAttr("title"); }), (i.prototype.display = function (e, t) { var n = this.options.get("templateSelection"); return this.options.get("escapeMarkup")(n(e, t)); }), (i.prototype.selectionContainer = function () { return e(""); }), (i.prototype.update = function (e) { if (0 !== e.length) { var t = e[0], n = this.$selection.find(".select2-selection__rendered"), r = this.display(t, n); n.empty().append(r); var i = t.title || t.text; i ? n.attr("title", i) : n.removeAttr("title"); } else this.clear(); }), i ); } ), e.define( "select2/selection/multiple", ["jquery", "./base", "../utils"], function (i, e, l) { function n(e, t) { n.__super__.constructor.apply(this, arguments); } return ( l.Extend(n, e), (n.prototype.render = function () { var e = n.__super__.render.call(this); return ( e.addClass("select2-selection--multiple"), e.html(''), e ); }), (n.prototype.bind = function (e, t) { var r = this; n.__super__.bind.apply(this, arguments), this.$selection.on("click", function (e) { r.trigger("toggle", { originalEvent: e }); }), this.$selection.on( "click", ".select2-selection__choice__remove", function (e) { if (!r.isDisabled()) { var t = i(this).parent(), n = l.GetData(t[0], "data"); r.trigger("unselect", { originalEvent: e, data: n }); } } ); }), (n.prototype.clear = function () { var e = this.$selection.find(".select2-selection__rendered"); e.empty(), e.removeAttr("title"); }), (n.prototype.display = function (e, t) { var n = this.options.get("templateSelection"); return this.options.get("escapeMarkup")(n(e, t)); }), (n.prototype.selectionContainer = function () { return i( '
  • ×
  • ' ); }), (n.prototype.update = function (e) { if ((this.clear(), 0 !== e.length)) { for (var t = [], n = 0; n < e.length; n++) { var r = e[n], i = this.selectionContainer(), o = this.display(r, i); i.append(o); var s = r.title || r.text; s && i.attr("title", s), l.StoreData(i[0], "data", r), t.push(i); } var a = this.$selection.find(".select2-selection__rendered"); l.appendMany(a, t); } }), n ); } ), e.define("select2/selection/placeholder", ["../utils"], function (e) { function t(e, t, n) { (this.placeholder = this.normalizePlaceholder( n.get("placeholder") )), e.call(this, t, n); } return ( (t.prototype.normalizePlaceholder = function (e, t) { return "string" == typeof t && (t = { id: "", text: t }), t; }), (t.prototype.createPlaceholder = function (e, t) { var n = this.selectionContainer(); return ( n.html(this.display(t)), n .addClass("select2-selection__placeholder") .removeClass("select2-selection__choice"), n ); }), (t.prototype.update = function (e, t) { var n = 1 == t.length && t[0].id != this.placeholder.id; if (1 < t.length || n) return e.call(this, t); this.clear(); var r = this.createPlaceholder(this.placeholder); this.$selection.find(".select2-selection__rendered").append(r); }), t ); }), e.define( "select2/selection/allowClear", ["jquery", "../keys", "../utils"], function (i, r, a) { function e() { } return ( (e.prototype.bind = function (e, t, n) { var r = this; e.call(this, t, n), null == this.placeholder && this.options.get("debug") && window.console && console.error && console.error( "Select2: The `allowClear` option should be used in combination with the `placeholder` option." ), this.$selection.on( "mousedown", ".select2-selection__clear", function (e) { r._handleClear(e); } ), t.on("keypress", function (e) { r._handleKeyboardClear(e, t); }); }), (e.prototype._handleClear = function (e, t) { if (!this.isDisabled()) { var n = this.$selection.find(".select2-selection__clear"); if (0 !== n.length) { t.stopPropagation(); var r = a.GetData(n[0], "data"), i = this.$element.val(); this.$element.val(this.placeholder.id); var o = { data: r }; if ((this.trigger("clear", o), o.prevented)) this.$element.val(i); else { for (var s = 0; s < r.length; s++) if ( ((o = { data: r[s] }), this.trigger("unselect", o), o.prevented) ) return void this.$element.val(i); this.$element.trigger("input").trigger("change"), this.trigger("toggle", {}); } } } }), (e.prototype._handleKeyboardClear = function (e, t, n) { n.isOpen() || (t.which != r.DELETE && t.which != r.BACKSPACE) || this._handleClear(t); }), (e.prototype.update = function (e, t) { if ( (e.call(this, t), !( 0 < this.$selection.find(".select2-selection__placeholder") .length || 0 === t.length )) ) { var n = this.options .get("translations") .get("removeAllItems"), r = i( '×' ); a.StoreData(r[0], "data", t), this.$selection .find(".select2-selection__rendered") .prepend(r); } }), e ); } ), e.define( "select2/selection/search", ["jquery", "../utils", "../keys"], function (r, a, l) { function e(e, t, n) { e.call(this, t, n); } return ( (e.prototype.render = function (e) { var t = r( '' ); (this.$searchContainer = t), (this.$search = t.find("input")); var n = e.call(this); return this._transferTabIndex(), n; }), (e.prototype.bind = function (e, t, n) { var r = this, i = t.id + "-results"; e.call(this, t, n), t.on("open", function () { r.$search.attr("aria-controls", i), r.$search.trigger("focus"); }), t.on("close", function () { r.$search.val(""), r.$search.removeAttr("aria-controls"), r.$search.removeAttr("aria-activedescendant"), r.$search.trigger("focus"); }), t.on("enable", function () { r.$search.prop("disabled", !1), r._transferTabIndex(); }), t.on("disable", function () { r.$search.prop("disabled", !0); }), t.on("focus", function (e) { r.$search.trigger("focus"); }), t.on("results:focus", function (e) { e.data._resultId ? r.$search.attr( "aria-activedescendant", e.data._resultId ) : r.$search.removeAttr("aria-activedescendant"); }), this.$selection.on( "focusin", ".select2-search--inline", function (e) { r.trigger("focus", e); } ), this.$selection.on( "focusout", ".select2-search--inline", function (e) { r._handleBlur(e); } ), this.$selection.on( "keydown", ".select2-search--inline", function (e) { if ( (e.stopPropagation(), r.trigger("keypress", e), (r._keyUpPrevented = e.isDefaultPrevented()), e.which === l.BACKSPACE && "" === r.$search.val()) ) { var t = r.$searchContainer.prev( ".select2-selection__choice" ); if (0 < t.length) { var n = a.GetData(t[0], "data"); r.searchRemoveChoice(n), e.preventDefault(); } } } ), this.$selection.on( "click", ".select2-search--inline", function (e) { r.$search.val() && e.stopPropagation(); } ); var o = document.documentMode, s = o && o <= 11; this.$selection.on( "input.searchcheck", ".select2-search--inline", function (e) { s ? r.$selection.off("input.search input.searchcheck") : r.$selection.off("keyup.search"); } ), this.$selection.on( "keyup.search input.search", ".select2-search--inline", function (e) { if (s && "input" === e.type) r.$selection.off("input.search input.searchcheck"); else { var t = e.which; t != l.SHIFT && t != l.CTRL && t != l.ALT && t != l.TAB && r.handleSearch(e); } } ); }), (e.prototype._transferTabIndex = function (e) { this.$search.attr("tabindex", this.$selection.attr("tabindex")), this.$selection.attr("tabindex", "-1"); }), (e.prototype.createPlaceholder = function (e, t) { this.$search.attr("placeholder", t.text); }), (e.prototype.update = function (e, t) { var n = this.$search[0] == document.activeElement; this.$search.attr("placeholder", ""), e.call(this, t), this.$selection .find(".select2-selection__rendered") .append(this.$searchContainer), this.resizeSearch(), n && this.$search.trigger("focus"); }), (e.prototype.handleSearch = function () { if ((this.resizeSearch(), !this._keyUpPrevented)) { var e = this.$search.val(); this.trigger("query", { term: e }); } this._keyUpPrevented = !1; }), (e.prototype.searchRemoveChoice = function (e, t) { this.trigger("unselect", { data: t }), this.$search.val(t.text), this.handleSearch(); }), (e.prototype.resizeSearch = function () { this.$search.css("width", "25px"); var e = ""; "" !== this.$search.attr("placeholder") ? (e = this.$selection .find(".select2-selection__rendered") .width()) : (e = 0.75 * (this.$search.val().length + 1) + "em"); this.$search.css("width", e); }), e ); } ), e.define("select2/selection/eventRelay", ["jquery"], function (s) { function e() { } return ( (e.prototype.bind = function (e, t, n) { var r = this, i = [ "open", "opening", "close", "closing", "select", "selecting", "unselect", "unselecting", "clear", "clearing", ], o = [ "opening", "closing", "selecting", "unselecting", "clearing", ]; e.call(this, t, n), t.on("*", function (e, t) { if (-1 !== s.inArray(e, i)) { t = t || {}; var n = s.Event("select2:" + e, { params: t }); r.$element.trigger(n), -1 !== s.inArray(e, o) && (t.prevented = n.isDefaultPrevented()); } }); }), e ); }), e.define("select2/translation", ["jquery", "require"], function (t, n) { function r(e) { this.dict = e || {}; } return ( (r.prototype.all = function () { return this.dict; }), (r.prototype.get = function (e) { return this.dict[e]; }), (r.prototype.extend = function (e) { this.dict = t.extend({}, e.all(), this.dict); }), (r._cache = {}), (r.loadPath = function (e) { if (!(e in r._cache)) { var t = n(e); r._cache[e] = t; } return new r(r._cache[e]); }), r ); }), e.define("select2/diacritics", [], function () { return { "Ⓐ": "A", A: "A", À: "A", Á: "A", Â: "A", Ầ: "A", Ấ: "A", Ẫ: "A", Ẩ: "A", Ã: "A", Ā: "A", Ă: "A", Ằ: "A", Ắ: "A", Ẵ: "A", Ẳ: "A", Ȧ: "A", Ǡ: "A", Ä: "A", Ǟ: "A", Ả: "A", Å: "A", Ǻ: "A", Ǎ: "A", Ȁ: "A", Ȃ: "A", Ạ: "A", Ậ: "A", Ặ: "A", Ḁ: "A", Ą: "A", Ⱥ: "A", Ɐ: "A", Ꜳ: "AA", Æ: "AE", Ǽ: "AE", Ǣ: "AE", Ꜵ: "AO", Ꜷ: "AU", Ꜹ: "AV", Ꜻ: "AV", Ꜽ: "AY", "Ⓑ": "B", B: "B", Ḃ: "B", Ḅ: "B", Ḇ: "B", Ƀ: "B", Ƃ: "B", Ɓ: "B", "Ⓒ": "C", C: "C", Ć: "C", Ĉ: "C", Ċ: "C", Č: "C", Ç: "C", Ḉ: "C", Ƈ: "C", Ȼ: "C", Ꜿ: "C", "Ⓓ": "D", D: "D", Ḋ: "D", Ď: "D", Ḍ: "D", Ḑ: "D", Ḓ: "D", Ḏ: "D", Đ: "D", Ƌ: "D", Ɗ: "D", Ɖ: "D", Ꝺ: "D", DZ: "DZ", DŽ: "DZ", Dz: "Dz", Dž: "Dz", "Ⓔ": "E", E: "E", È: "E", É: "E", Ê: "E", Ề: "E", Ế: "E", Ễ: "E", Ể: "E", Ẽ: "E", Ē: "E", Ḕ: "E", Ḗ: "E", Ĕ: "E", Ė: "E", Ë: "E", Ẻ: "E", Ě: "E", Ȅ: "E", Ȇ: "E", Ẹ: "E", Ệ: "E", Ȩ: "E", Ḝ: "E", Ę: "E", Ḙ: "E", Ḛ: "E", Ɛ: "E", Ǝ: "E", "Ⓕ": "F", F: "F", Ḟ: "F", Ƒ: "F", Ꝼ: "F", "Ⓖ": "G", G: "G", Ǵ: "G", Ĝ: "G", Ḡ: "G", Ğ: "G", Ġ: "G", Ǧ: "G", Ģ: "G", Ǥ: "G", Ɠ: "G", Ꞡ: "G", Ᵹ: "G", Ꝿ: "G", "Ⓗ": "H", H: "H", Ĥ: "H", Ḣ: "H", Ḧ: "H", Ȟ: "H", Ḥ: "H", Ḩ: "H", Ḫ: "H", Ħ: "H", Ⱨ: "H", Ⱶ: "H", Ɥ: "H", "Ⓘ": "I", I: "I", Ì: "I", Í: "I", Î: "I", Ĩ: "I", Ī: "I", Ĭ: "I", İ: "I", Ï: "I", Ḯ: "I", Ỉ: "I", Ǐ: "I", Ȉ: "I", Ȋ: "I", Ị: "I", Į: "I", Ḭ: "I", Ɨ: "I", "Ⓙ": "J", J: "J", Ĵ: "J", Ɉ: "J", "Ⓚ": "K", K: "K", Ḱ: "K", Ǩ: "K", Ḳ: "K", Ķ: "K", Ḵ: "K", Ƙ: "K", Ⱪ: "K", Ꝁ: "K", Ꝃ: "K", Ꝅ: "K", Ꞣ: "K", "Ⓛ": "L", L: "L", Ŀ: "L", Ĺ: "L", Ľ: "L", Ḷ: "L", Ḹ: "L", Ļ: "L", Ḽ: "L", Ḻ: "L", Ł: "L", Ƚ: "L", Ɫ: "L", Ⱡ: "L", Ꝉ: "L", Ꝇ: "L", Ꞁ: "L", LJ: "LJ", Lj: "Lj", "Ⓜ": "M", M: "M", Ḿ: "M", Ṁ: "M", Ṃ: "M", Ɱ: "M", Ɯ: "M", "Ⓝ": "N", N: "N", Ǹ: "N", Ń: "N", Ñ: "N", Ṅ: "N", Ň: "N", Ṇ: "N", Ņ: "N", Ṋ: "N", Ṉ: "N", Ƞ: "N", Ɲ: "N", Ꞑ: "N", Ꞥ: "N", NJ: "NJ", Nj: "Nj", "Ⓞ": "O", O: "O", Ò: "O", Ó: "O", Ô: "O", Ồ: "O", Ố: "O", Ỗ: "O", Ổ: "O", Õ: "O", Ṍ: "O", Ȭ: "O", Ṏ: "O", Ō: "O", Ṑ: "O", Ṓ: "O", Ŏ: "O", Ȯ: "O", Ȱ: "O", Ö: "O", Ȫ: "O", Ỏ: "O", Ő: "O", Ǒ: "O", Ȍ: "O", Ȏ: "O", Ơ: "O", Ờ: "O", Ớ: "O", Ỡ: "O", Ở: "O", Ợ: "O", Ọ: "O", Ộ: "O", Ǫ: "O", Ǭ: "O", Ø: "O", Ǿ: "O", Ɔ: "O", Ɵ: "O", Ꝋ: "O", Ꝍ: "O", Œ: "OE", Ƣ: "OI", Ꝏ: "OO", Ȣ: "OU", "Ⓟ": "P", P: "P", Ṕ: "P", Ṗ: "P", Ƥ: "P", Ᵽ: "P", Ꝑ: "P", Ꝓ: "P", Ꝕ: "P", "Ⓠ": "Q", Q: "Q", Ꝗ: "Q", Ꝙ: "Q", Ɋ: "Q", "Ⓡ": "R", R: "R", Ŕ: "R", Ṙ: "R", Ř: "R", Ȑ: "R", Ȓ: "R", Ṛ: "R", Ṝ: "R", Ŗ: "R", Ṟ: "R", Ɍ: "R", Ɽ: "R", Ꝛ: "R", Ꞧ: "R", Ꞃ: "R", "Ⓢ": "S", S: "S", ẞ: "S", Ś: "S", Ṥ: "S", Ŝ: "S", Ṡ: "S", Š: "S", Ṧ: "S", Ṣ: "S", Ṩ: "S", Ș: "S", Ş: "S", Ȿ: "S", Ꞩ: "S", Ꞅ: "S", "Ⓣ": "T", T: "T", Ṫ: "T", Ť: "T", Ṭ: "T", Ț: "T", Ţ: "T", Ṱ: "T", Ṯ: "T", Ŧ: "T", Ƭ: "T", Ʈ: "T", Ⱦ: "T", Ꞇ: "T", Ꜩ: "TZ", "Ⓤ": "U", U: "U", Ù: "U", Ú: "U", Û: "U", Ũ: "U", Ṹ: "U", Ū: "U", Ṻ: "U", Ŭ: "U", Ü: "U", Ǜ: "U", Ǘ: "U", Ǖ: "U", Ǚ: "U", Ủ: "U", Ů: "U", Ű: "U", Ǔ: "U", Ȕ: "U", Ȗ: "U", Ư: "U", Ừ: "U", Ứ: "U", Ữ: "U", Ử: "U", Ự: "U", Ụ: "U", Ṳ: "U", Ų: "U", Ṷ: "U", Ṵ: "U", Ʉ: "U", "Ⓥ": "V", V: "V", Ṽ: "V", Ṿ: "V", Ʋ: "V", Ꝟ: "V", Ʌ: "V", Ꝡ: "VY", "Ⓦ": "W", W: "W", Ẁ: "W", Ẃ: "W", Ŵ: "W", Ẇ: "W", Ẅ: "W", Ẉ: "W", Ⱳ: "W", "Ⓧ": "X", X: "X", Ẋ: "X", Ẍ: "X", "Ⓨ": "Y", Y: "Y", Ỳ: "Y", Ý: "Y", Ŷ: "Y", Ỹ: "Y", Ȳ: "Y", Ẏ: "Y", Ÿ: "Y", Ỷ: "Y", Ỵ: "Y", Ƴ: "Y", Ɏ: "Y", Ỿ: "Y", "Ⓩ": "Z", Z: "Z", Ź: "Z", Ẑ: "Z", Ż: "Z", Ž: "Z", Ẓ: "Z", Ẕ: "Z", Ƶ: "Z", Ȥ: "Z", Ɀ: "Z", Ⱬ: "Z", Ꝣ: "Z", "ⓐ": "a", a: "a", ẚ: "a", à: "a", á: "a", â: "a", ầ: "a", ấ: "a", ẫ: "a", ẩ: "a", ã: "a", ā: "a", ă: "a", ằ: "a", ắ: "a", ẵ: "a", ẳ: "a", ȧ: "a", ǡ: "a", ä: "a", ǟ: "a", ả: "a", å: "a", ǻ: "a", ǎ: "a", ȁ: "a", ȃ: "a", ạ: "a", ậ: "a", ặ: "a", ḁ: "a", ą: "a", ⱥ: "a", ɐ: "a", ꜳ: "aa", æ: "ae", ǽ: "ae", ǣ: "ae", ꜵ: "ao", ꜷ: "au", ꜹ: "av", ꜻ: "av", ꜽ: "ay", "ⓑ": "b", b: "b", ḃ: "b", ḅ: "b", ḇ: "b", ƀ: "b", ƃ: "b", ɓ: "b", "ⓒ": "c", c: "c", ć: "c", ĉ: "c", ċ: "c", č: "c", ç: "c", ḉ: "c", ƈ: "c", ȼ: "c", ꜿ: "c", ↄ: "c", "ⓓ": "d", d: "d", ḋ: "d", ď: "d", ḍ: "d", ḑ: "d", ḓ: "d", ḏ: "d", đ: "d", ƌ: "d", ɖ: "d", ɗ: "d", ꝺ: "d", dz: "dz", dž: "dz", "ⓔ": "e", e: "e", è: "e", é: "e", ê: "e", ề: "e", ế: "e", ễ: "e", ể: "e", ẽ: "e", ē: "e", ḕ: "e", ḗ: "e", ĕ: "e", ė: "e", ë: "e", ẻ: "e", ě: "e", ȅ: "e", ȇ: "e", ẹ: "e", ệ: "e", ȩ: "e", ḝ: "e", ę: "e", ḙ: "e", ḛ: "e", ɇ: "e", ɛ: "e", ǝ: "e", "ⓕ": "f", f: "f", ḟ: "f", ƒ: "f", ꝼ: "f", "ⓖ": "g", g: "g", ǵ: "g", ĝ: "g", ḡ: "g", ğ: "g", ġ: "g", ǧ: "g", ģ: "g", ǥ: "g", ɠ: "g", ꞡ: "g", ᵹ: "g", ꝿ: "g", "ⓗ": "h", h: "h", ĥ: "h", ḣ: "h", ḧ: "h", ȟ: "h", ḥ: "h", ḩ: "h", ḫ: "h", ẖ: "h", ħ: "h", ⱨ: "h", ⱶ: "h", ɥ: "h", ƕ: "hv", "ⓘ": "i", i: "i", ì: "i", í: "i", î: "i", ĩ: "i", ī: "i", ĭ: "i", ï: "i", ḯ: "i", ỉ: "i", ǐ: "i", ȉ: "i", ȋ: "i", ị: "i", į: "i", ḭ: "i", ɨ: "i", ı: "i", "ⓙ": "j", j: "j", ĵ: "j", ǰ: "j", ɉ: "j", "ⓚ": "k", k: "k", ḱ: "k", ǩ: "k", ḳ: "k", ķ: "k", ḵ: "k", ƙ: "k", ⱪ: "k", ꝁ: "k", ꝃ: "k", ꝅ: "k", ꞣ: "k", "ⓛ": "l", l: "l", ŀ: "l", ĺ: "l", ľ: "l", ḷ: "l", ḹ: "l", ļ: "l", ḽ: "l", ḻ: "l", ſ: "l", ł: "l", ƚ: "l", ɫ: "l", ⱡ: "l", ꝉ: "l", ꞁ: "l", ꝇ: "l", lj: "lj", "ⓜ": "m", m: "m", ḿ: "m", ṁ: "m", ṃ: "m", ɱ: "m", ɯ: "m", "ⓝ": "n", n: "n", ǹ: "n", ń: "n", ñ: "n", ṅ: "n", ň: "n", ṇ: "n", ņ: "n", ṋ: "n", ṉ: "n", ƞ: "n", ɲ: "n", ʼn: "n", ꞑ: "n", ꞥ: "n", nj: "nj", "ⓞ": "o", o: "o", ò: "o", ó: "o", ô: "o", ồ: "o", ố: "o", ỗ: "o", ổ: "o", õ: "o", ṍ: "o", ȭ: "o", ṏ: "o", ō: "o", ṑ: "o", ṓ: "o", ŏ: "o", ȯ: "o", ȱ: "o", ö: "o", ȫ: "o", ỏ: "o", ő: "o", ǒ: "o", ȍ: "o", ȏ: "o", ơ: "o", ờ: "o", ớ: "o", ỡ: "o", ở: "o", ợ: "o", ọ: "o", ộ: "o", ǫ: "o", ǭ: "o", ø: "o", ǿ: "o", ɔ: "o", ꝋ: "o", ꝍ: "o", ɵ: "o", œ: "oe", ƣ: "oi", ȣ: "ou", ꝏ: "oo", "ⓟ": "p", p: "p", ṕ: "p", ṗ: "p", ƥ: "p", ᵽ: "p", ꝑ: "p", ꝓ: "p", ꝕ: "p", "ⓠ": "q", q: "q", ɋ: "q", ꝗ: "q", ꝙ: "q", "ⓡ": "r", r: "r", ŕ: "r", ṙ: "r", ř: "r", ȑ: "r", ȓ: "r", ṛ: "r", ṝ: "r", ŗ: "r", ṟ: "r", ɍ: "r", ɽ: "r", ꝛ: "r", ꞧ: "r", ꞃ: "r", "ⓢ": "s", s: "s", ß: "s", ś: "s", ṥ: "s", ŝ: "s", ṡ: "s", š: "s", ṧ: "s", ṣ: "s", ṩ: "s", ș: "s", ş: "s", ȿ: "s", ꞩ: "s", ꞅ: "s", ẛ: "s", "ⓣ": "t", t: "t", ṫ: "t", ẗ: "t", ť: "t", ṭ: "t", ț: "t", ţ: "t", ṱ: "t", ṯ: "t", ŧ: "t", ƭ: "t", ʈ: "t", ⱦ: "t", ꞇ: "t", ꜩ: "tz", "ⓤ": "u", u: "u", ù: "u", ú: "u", û: "u", ũ: "u", ṹ: "u", ū: "u", ṻ: "u", ŭ: "u", ü: "u", ǜ: "u", ǘ: "u", ǖ: "u", ǚ: "u", ủ: "u", ů: "u", ű: "u", ǔ: "u", ȕ: "u", ȗ: "u", ư: "u", ừ: "u", ứ: "u", ữ: "u", ử: "u", ự: "u", ụ: "u", ṳ: "u", ų: "u", ṷ: "u", ṵ: "u", ʉ: "u", "ⓥ": "v", v: "v", ṽ: "v", ṿ: "v", ʋ: "v", ꝟ: "v", ʌ: "v", ꝡ: "vy", "ⓦ": "w", w: "w", ẁ: "w", ẃ: "w", ŵ: "w", ẇ: "w", ẅ: "w", ẘ: "w", ẉ: "w", ⱳ: "w", "ⓧ": "x", x: "x", ẋ: "x", ẍ: "x", "ⓨ": "y", y: "y", ỳ: "y", ý: "y", ŷ: "y", ỹ: "y", ȳ: "y", ẏ: "y", ÿ: "y", ỷ: "y", ẙ: "y", ỵ: "y", ƴ: "y", ɏ: "y", ỿ: "y", "ⓩ": "z", z: "z", ź: "z", ẑ: "z", ż: "z", ž: "z", ẓ: "z", ẕ: "z", ƶ: "z", ȥ: "z", ɀ: "z", ⱬ: "z", ꝣ: "z", Ά: "Α", Έ: "Ε", Ή: "Η", Ί: "Ι", Ϊ: "Ι", Ό: "Ο", Ύ: "Υ", Ϋ: "Υ", Ώ: "Ω", ά: "α", έ: "ε", ή: "η", ί: "ι", ϊ: "ι", ΐ: "ι", ό: "ο", ύ: "υ", ϋ: "υ", ΰ: "υ", ώ: "ω", ς: "σ", "’": "'", }; }), e.define("select2/data/base", ["../utils"], function (r) { function n(e, t) { n.__super__.constructor.call(this); } return ( r.Extend(n, r.Observable), (n.prototype.current = function (e) { throw new Error( "The `current` method must be defined in child classes." ); }), (n.prototype.query = function (e, t) { throw new Error( "The `query` method must be defined in child classes." ); }), (n.prototype.bind = function (e, t) { }), (n.prototype.destroy = function () { }), (n.prototype.generateResultId = function (e, t) { var n = e.id + "-result-"; return ( (n += r.generateChars(4)), null != t.id ? (n += "-" + t.id.toString()) : (n += "-" + r.generateChars(4)), n ); }), n ); }), e.define( "select2/data/select", ["./base", "../utils", "jquery"], function (e, a, l) { function n(e, t) { (this.$element = e), (this.options = t), n.__super__.constructor.call(this); } return ( a.Extend(n, e), (n.prototype.current = function (e) { var n = [], r = this; this.$element.find(":selected").each(function () { var e = l(this), t = r.item(e); n.push(t); }), e(n); }), (n.prototype.select = function (i) { var o = this; if (((i.selected = !0), l(i.element).is("option"))) return ( (i.element.selected = !0), void this.$element.trigger("input").trigger("change") ); if (this.$element.prop("multiple")) this.current(function (e) { var t = []; (i = [i]).push.apply(i, e); for (var n = 0; n < i.length; n++) { var r = i[n].id; -1 === l.inArray(r, t) && t.push(r); } o.$element.val(t), o.$element.trigger("input").trigger("change"); }); else { var e = i.id; this.$element.val(e), this.$element.trigger("input").trigger("change"); } }), (n.prototype.unselect = function (i) { var o = this; if (this.$element.prop("multiple")) { if (((i.selected = !1), l(i.element).is("option"))) return ( (i.element.selected = !1), void this.$element.trigger("input").trigger("change") ); this.current(function (e) { for (var t = [], n = 0; n < e.length; n++) { var r = e[n].id; r !== i.id && -1 === l.inArray(r, t) && t.push(r); } o.$element.val(t), o.$element.trigger("input").trigger("change"); }); } }), (n.prototype.bind = function (e, t) { var n = this; (this.container = e).on("select", function (e) { n.select(e.data); }), e.on("unselect", function (e) { n.unselect(e.data); }); }), (n.prototype.destroy = function () { this.$element.find("*").each(function () { a.RemoveData(this); }); }), (n.prototype.query = function (r, e) { var i = [], o = this; this.$element.children().each(function () { var e = l(this); if (e.is("option") || e.is("optgroup")) { var t = o.item(e), n = o.matches(r, t); null !== n && i.push(n); } }), e({ results: i }); }), (n.prototype.addOptions = function (e) { a.appendMany(this.$element, e); }), (n.prototype.option = function (e) { var t; e.children ? ((t = document.createElement("optgroup")).label = e.text) : void 0 !== (t = document.createElement("option")).textContent ? (t.textContent = e.text) : (t.innerText = e.text), void 0 !== e.id && (t.value = e.id), e.disabled && (t.disabled = !0), e.selected && (t.selected = !0), e.title && (t.title = e.title); var n = l(t), r = this._normalizeItem(e); return (r.element = t), a.StoreData(t, "data", r), n; }), (n.prototype.item = function (e) { var t = {}; if (null != (t = a.GetData(e[0], "data"))) return t; if (e.is("option")) t = { id: e.val(), text: e.text(), disabled: e.prop("disabled"), selected: e.prop("selected"), title: e.prop("title"), }; else if (e.is("optgroup")) { t = { text: e.prop("label"), children: [], title: e.prop("title"), }; for ( var n = e.children("option"), r = [], i = 0; i < n.length; i++ ) { var o = l(n[i]), s = this.item(o); r.push(s); } t.children = r; } return ( ((t = this._normalizeItem(t)).element = e[0]), a.StoreData(e[0], "data", t), t ); }), (n.prototype._normalizeItem = function (e) { e !== Object(e) && (e = { id: e, text: e }); return ( null != (e = l.extend({}, { text: "" }, e)).id && (e.id = e.id.toString()), null != e.text && (e.text = e.text.toString()), null == e._resultId && e.id && null != this.container && (e._resultId = this.generateResultId(this.container, e)), l.extend({}, { selected: !1, disabled: !1 }, e) ); }), (n.prototype.matches = function (e, t) { return this.options.get("matcher")(e, t); }), n ); } ), e.define( "select2/data/array", ["./select", "../utils", "jquery"], function (e, f, g) { function r(e, t) { (this._dataToConvert = t.get("data") || []), r.__super__.constructor.call(this, e, t); } return ( f.Extend(r, e), (r.prototype.bind = function (e, t) { r.__super__.bind.call(this, e, t), this.addOptions(this.convertToOptions(this._dataToConvert)); }), (r.prototype.select = function (n) { var e = this.$element.find("option").filter(function (e, t) { return t.value == n.id.toString(); }); 0 === e.length && ((e = this.option(n)), this.addOptions(e)), r.__super__.select.call(this, n); }), (r.prototype.convertToOptions = function (e) { var t = this, n = this.$element.find("option"), r = n .map(function () { return t.item(g(this)).id; }) .get(), i = []; function o(e) { return function () { return g(this).val() == e.id; }; } for (var s = 0; s < e.length; s++) { var a = this._normalizeItem(e[s]); if (0 <= g.inArray(a.id, r)) { var l = n.filter(o(a)), c = this.item(l), u = g.extend(!0, {}, a, c), d = this.option(u); l.replaceWith(d); } else { var p = this.option(a); if (a.children) { var h = this.convertToOptions(a.children); f.appendMany(p, h); } i.push(p); } } return i; }), r ); } ), e.define( "select2/data/ajax", ["./array", "../utils", "jquery"], function (e, t, o) { function n(e, t) { (this.ajaxOptions = this._applyDefaults(t.get("ajax"))), null != this.ajaxOptions.processResults && (this.processResults = this.ajaxOptions.processResults), n.__super__.constructor.call(this, e, t); } return ( t.Extend(n, e), (n.prototype._applyDefaults = function (e) { var t = { data: function (e) { return o.extend({}, e, { q: e.term }); }, transport: function (e, t, n) { var r = o.ajax(e); return r.then(t), r.fail(n), r; }, }; return o.extend({}, t, e, !0); }), (n.prototype.processResults = function (e) { return e; }), (n.prototype.query = function (n, r) { var i = this; null != this._request && (o.isFunction(this._request.abort) && this._request.abort(), (this._request = null)); var t = o.extend({ type: "GET" }, this.ajaxOptions); function e() { var e = t.transport( t, function (e) { var t = i.processResults(e, n); i.options.get("debug") && window.console && console.error && ((t && t.results && o.isArray(t.results)) || console.error( "Select2: The AJAX results did not return an array in the `results` key of the response." )), r(t); }, function () { ("status" in e && (0 === e.status || "0" === e.status)) || i.trigger("results:message", { message: "errorLoading", }); } ); i._request = e; } "function" == typeof t.url && (t.url = t.url.call(this.$element, n)), "function" == typeof t.data && (t.data = t.data.call(this.$element, n)), this.ajaxOptions.delay && null != n.term ? (this._queryTimeout && window.clearTimeout(this._queryTimeout), (this._queryTimeout = window.setTimeout( e, this.ajaxOptions.delay ))) : e(); }), n ); } ), e.define("select2/data/tags", ["jquery"], function (u) { function e(e, t, n) { var r = n.get("tags"), i = n.get("createTag"); void 0 !== i && (this.createTag = i); var o = n.get("insertTag"); if ( (void 0 !== o && (this.insertTag = o), e.call(this, t, n), u.isArray(r)) ) for (var s = 0; s < r.length; s++) { var a = r[s], l = this._normalizeItem(a), c = this.option(l); this.$element.append(c); } } return ( (e.prototype.query = function (e, c, u) { var d = this; this._removeOldTags(), null != c.term && null == c.page ? e.call(this, c, function e(t, n) { for (var r = t.results, i = 0; i < r.length; i++) { var o = r[i], s = null != o.children && !e({ results: o.children }, !0); if ( (o.text || "").toUpperCase() === (c.term || "").toUpperCase() || s ) return !n && ((t.data = r), void u(t)); } if (n) return !0; var a = d.createTag(c); if (null != a) { var l = d.option(a); l.attr("data-select2-tag", !0), d.addOptions([l]), d.insertTag(r, a); } (t.results = r), u(t); }) : e.call(this, c, u); }), (e.prototype.createTag = function (e, t) { var n = u.trim(t.term); return "" === n ? null : { id: n, text: n }; }), (e.prototype.insertTag = function (e, t, n) { t.unshift(n); }), (e.prototype._removeOldTags = function (e) { this.$element.find("option[data-select2-tag]").each(function () { this.selected || u(this).remove(); }); }), e ); }), e.define("select2/data/tokenizer", ["jquery"], function (d) { function e(e, t, n) { var r = n.get("tokenizer"); void 0 !== r && (this.tokenizer = r), e.call(this, t, n); } return ( (e.prototype.bind = function (e, t, n) { e.call(this, t, n), (this.$search = t.dropdown.$search || t.selection.$search || n.find(".select2-search__field")); }), (e.prototype.query = function (e, t, n) { var i = this; t.term = t.term || ""; var r = this.tokenizer(t, this.options, function (e) { var t, n = i._normalizeItem(e); if ( !i.$element.find("option").filter(function () { return d(this).val() === n.id; }).length ) { var r = i.option(n); r.attr("data-select2-tag", !0), i._removeOldTags(), i.addOptions([r]); } (t = n), i.trigger("select", { data: t }); }); r.term !== t.term && (this.$search.length && (this.$search.val(r.term), this.$search.trigger("focus")), (t.term = r.term)), e.call(this, t, n); }), (e.prototype.tokenizer = function (e, t, n, r) { for ( var i = n.get("tokenSeparators") || [], o = t.term, s = 0, a = this.createTag || function (e) { return { id: e.term, text: e.term }; }; s < o.length; ) { var l = o[s]; if (-1 !== d.inArray(l, i)) { var c = o.substr(0, s), u = a(d.extend({}, t, { term: c })); null != u ? (r(u), (o = o.substr(s + 1) || ""), (s = 0)) : s++; } else s++; } return { term: o }; }), e ); }), e.define("select2/data/minimumInputLength", [], function () { function e(e, t, n) { (this.minimumInputLength = n.get("minimumInputLength")), e.call(this, t, n); } return ( (e.prototype.query = function (e, t, n) { (t.term = t.term || ""), t.term.length < this.minimumInputLength ? this.trigger("results:message", { message: "inputTooShort", args: { minimum: this.minimumInputLength, input: t.term, params: t, }, }) : e.call(this, t, n); }), e ); }), e.define("select2/data/maximumInputLength", [], function () { function e(e, t, n) { (this.maximumInputLength = n.get("maximumInputLength")), e.call(this, t, n); } return ( (e.prototype.query = function (e, t, n) { (t.term = t.term || ""), 0 < this.maximumInputLength && t.term.length > this.maximumInputLength ? this.trigger("results:message", { message: "inputTooLong", args: { maximum: this.maximumInputLength, input: t.term, params: t, }, }) : e.call(this, t, n); }), e ); }), e.define("select2/data/maximumSelectionLength", [], function () { function e(e, t, n) { (this.maximumSelectionLength = n.get("maximumSelectionLength")), e.call(this, t, n); } return ( (e.prototype.bind = function (e, t, n) { var r = this; e.call(this, t, n), t.on("select", function () { r._checkIfMaximumSelected(); }); }), (e.prototype.query = function (e, t, n) { var r = this; this._checkIfMaximumSelected(function () { e.call(r, t, n); }); }), (e.prototype._checkIfMaximumSelected = function (e, n) { var r = this; this.current(function (e) { var t = null != e ? e.length : 0; 0 < r.maximumSelectionLength && t >= r.maximumSelectionLength ? r.trigger("results:message", { message: "maximumSelected", args: { maximum: r.maximumSelectionLength }, }) : n && n(); }); }), e ); }), e.define("select2/dropdown", ["jquery", "./utils"], function (t, e) { function n(e, t) { (this.$element = e), (this.options = t), n.__super__.constructor.call(this); } return ( e.Extend(n, e.Observable), (n.prototype.render = function () { var e = t( '' ); return ( e.attr("dir", this.options.get("dir")), (this.$dropdown = e) ); }), (n.prototype.bind = function () { }), (n.prototype.position = function (e, t) { }), (n.prototype.destroy = function () { this.$dropdown.remove(); }), n ); }), e.define( "select2/dropdown/search", ["jquery", "../utils"], function (o, e) { function t() { } return ( (t.prototype.render = function (e) { var t = e.call(this), n = o( '' ); return ( (this.$searchContainer = n), (this.$search = n.find("input")), t.prepend(n), t ); }), (t.prototype.bind = function (e, t, n) { var r = this, i = t.id + "-results"; e.call(this, t, n), this.$search.on("keydown", function (e) { r.trigger("keypress", e), (r._keyUpPrevented = e.isDefaultPrevented()); }), this.$search.on("input", function (e) { o(this).off("keyup"); }), this.$search.on("keyup input", function (e) { r.handleSearch(e); }), t.on("open", function () { r.$search.attr("tabindex", 0), r.$search.attr("aria-controls", i), r.$search.trigger("focus"), window.setTimeout(function () { r.$search.trigger("focus"); }, 0); }), t.on("close", function () { r.$search.attr("tabindex", -1), r.$search.removeAttr("aria-controls"), r.$search.removeAttr("aria-activedescendant"), r.$search.val(""), r.$search.trigger("blur"); }), t.on("focus", function () { t.isOpen() || r.$search.trigger("focus"); }), t.on("results:all", function (e) { (null != e.query.term && "" !== e.query.term) || (r.showSearch(e) ? r.$searchContainer.removeClass("select2-search--hide") : r.$searchContainer.addClass("select2-search--hide")); }), t.on("results:focus", function (e) { e.data._resultId ? r.$search.attr( "aria-activedescendant", e.data._resultId ) : r.$search.removeAttr("aria-activedescendant"); }); }), (t.prototype.handleSearch = function (e) { if (!this._keyUpPrevented) { var t = this.$search.val(); this.trigger("query", { term: t }); } this._keyUpPrevented = !1; }), (t.prototype.showSearch = function (e, t) { return !0; }), t ); } ), e.define("select2/dropdown/hidePlaceholder", [], function () { function e(e, t, n, r) { (this.placeholder = this.normalizePlaceholder( n.get("placeholder") )), e.call(this, t, n, r); } return ( (e.prototype.append = function (e, t) { (t.results = this.removePlaceholder(t.results)), e.call(this, t); }), (e.prototype.normalizePlaceholder = function (e, t) { return "string" == typeof t && (t = { id: "", text: t }), t; }), (e.prototype.removePlaceholder = function (e, t) { for (var n = t.slice(0), r = t.length - 1; 0 <= r; r--) { var i = t[r]; this.placeholder.id === i.id && n.splice(r, 1); } return n; }), e ); }), e.define("select2/dropdown/infiniteScroll", ["jquery"], function (n) { function e(e, t, n, r) { (this.lastParams = {}), e.call(this, t, n, r), (this.$loadingMore = this.createLoadingMore()), (this.loading = !1); } return ( (e.prototype.append = function (e, t) { this.$loadingMore.remove(), (this.loading = !1), e.call(this, t), this.showLoadingMore(t) && (this.$results.append(this.$loadingMore), this.loadMoreIfNeeded()); }), (e.prototype.bind = function (e, t, n) { var r = this; e.call(this, t, n), t.on("query", function (e) { (r.lastParams = e), (r.loading = !0); }), t.on("query:append", function (e) { (r.lastParams = e), (r.loading = !0); }), this.$results.on("scroll", this.loadMoreIfNeeded.bind(this)); }), (e.prototype.loadMoreIfNeeded = function () { var e = n.contains( document.documentElement, this.$loadingMore[0] ); if (!this.loading && e) { var t = this.$results.offset().top + this.$results.outerHeight(!1); this.$loadingMore.offset().top + this.$loadingMore.outerHeight(!1) <= t + 50 && this.loadMore(); } }), (e.prototype.loadMore = function () { this.loading = !0; var e = n.extend({}, { page: 1 }, this.lastParams); e.page++, this.trigger("query:append", e); }), (e.prototype.showLoadingMore = function (e, t) { return t.pagination && t.pagination.more; }), (e.prototype.createLoadingMore = function () { var e = n( '
  • ' ), t = this.options.get("translations").get("loadingMore"); return e.html(t(this.lastParams)), e; }), e ); }), e.define( "select2/dropdown/attachBody", ["jquery", "../utils"], function (f, a) { function e(e, t, n) { (this.$dropdownParent = f( n.get("dropdownParent") || document.body )), e.call(this, t, n); } return ( (e.prototype.bind = function (e, t, n) { var r = this; e.call(this, t, n), t.on("open", function () { r._showDropdown(), r._attachPositioningHandler(t), r._bindContainerResultHandlers(t); }), t.on("close", function () { r._hideDropdown(), r._detachPositioningHandler(t); }), this.$dropdownContainer.on("mousedown", function (e) { e.stopPropagation(); }); }), (e.prototype.destroy = function (e) { e.call(this), this.$dropdownContainer.remove(); }), (e.prototype.position = function (e, t, n) { t.attr("class", n.attr("class")), t.removeClass("select2"), t.addClass("select2-container--open"), t.css({ position: "absolute", top: -999999 }), (this.$container = n); }), (e.prototype.render = function (e) { var t = f(""), n = e.call(this); return t.append(n), (this.$dropdownContainer = t); }), (e.prototype._hideDropdown = function (e) { this.$dropdownContainer.detach(); }), (e.prototype._bindContainerResultHandlers = function (e, t) { if (!this._containerResultsHandlersBound) { var n = this; t.on("results:all", function () { n._positionDropdown(), n._resizeDropdown(); }), t.on("results:append", function () { n._positionDropdown(), n._resizeDropdown(); }), t.on("results:message", function () { n._positionDropdown(), n._resizeDropdown(); }), t.on("select", function () { n._positionDropdown(), n._resizeDropdown(); }), t.on("unselect", function () { n._positionDropdown(), n._resizeDropdown(); }), (this._containerResultsHandlersBound = !0); } }), (e.prototype._attachPositioningHandler = function (e, t) { var n = this, r = "scroll.select2." + t.id, i = "resize.select2." + t.id, o = "orientationchange.select2." + t.id, s = this.$container.parents().filter(a.hasScroll); s.each(function () { a.StoreData(this, "select2-scroll-position", { x: f(this).scrollLeft(), y: f(this).scrollTop(), }); }), s.on(r, function (e) { var t = a.GetData(this, "select2-scroll-position"); f(this).scrollTop(t.y); }), f(window).on(r + " " + i + " " + o, function (e) { n._positionDropdown(), n._resizeDropdown(); }); }), (e.prototype._detachPositioningHandler = function (e, t) { var n = "scroll.select2." + t.id, r = "resize.select2." + t.id, i = "orientationchange.select2." + t.id; this.$container.parents().filter(a.hasScroll).off(n), f(window).off(n + " " + r + " " + i); }), (e.prototype._positionDropdown = function () { var e = f(window), t = this.$dropdown.hasClass("select2-dropdown--above"), n = this.$dropdown.hasClass("select2-dropdown--below"), r = null, i = this.$container.offset(); i.bottom = i.top + this.$container.outerHeight(!1); var o = { height: this.$container.outerHeight(!1) }; (o.top = i.top), (o.bottom = i.top + o.height); var s = this.$dropdown.outerHeight(!1), a = e.scrollTop(), l = e.scrollTop() + e.height(), c = a < i.top - s, u = l > i.bottom + s, d = { left: i.left, top: o.bottom }, p = this.$dropdownParent; "static" === p.css("position") && (p = p.offsetParent()); var h = { top: 0, left: 0 }; (f.contains(document.body, p[0]) || p[0].isConnected) && (h = p.offset()), (d.top -= h.top), (d.left -= h.left), t || n || (r = "below"), u || !c || t ? !c && u && t && (r = "below") : (r = "above"), ("above" == r || (t && "below" !== r)) && (d.top = o.top - h.top - s), null != r && (this.$dropdown .removeClass( "select2-dropdown--below select2-dropdown--above" ) .addClass("select2-dropdown--" + r), this.$container .removeClass( "select2-container--below select2-container--above" ) .addClass("select2-container--" + r)), this.$dropdownContainer.css(d); }), (e.prototype._resizeDropdown = function () { var e = { width: this.$container.outerWidth(!1) + "px" }; this.options.get("dropdownAutoWidth") && ((e.minWidth = e.width), (e.position = "relative"), (e.width = "auto")), this.$dropdown.css(e); }), (e.prototype._showDropdown = function (e) { this.$dropdownContainer.appendTo(this.$dropdownParent), this._positionDropdown(), this._resizeDropdown(); }), e ); } ), e.define("select2/dropdown/minimumResultsForSearch", [], function () { function e(e, t, n, r) { (this.minimumResultsForSearch = n.get("minimumResultsForSearch")), this.minimumResultsForSearch < 0 && (this.minimumResultsForSearch = 1 / 0), e.call(this, t, n, r); } return ( (e.prototype.showSearch = function (e, t) { return ( !( (function e(t) { for (var n = 0, r = 0; r < t.length; r++) { var i = t[r]; i.children ? (n += e(i.children)) : n++; } return n; })(t.data.results) < this.minimumResultsForSearch ) && e.call(this, t) ); }), e ); }), e.define("select2/dropdown/selectOnClose", ["../utils"], function (o) { function e() { } return ( (e.prototype.bind = function (e, t, n) { var r = this; e.call(this, t, n), t.on("close", function (e) { r._handleSelectOnClose(e); }); }), (e.prototype._handleSelectOnClose = function (e, t) { if (t && null != t.originalSelect2Event) { var n = t.originalSelect2Event; if ("select" === n._type || "unselect" === n._type) return; } var r = this.getHighlightedResults(); if (!(r.length < 1)) { var i = o.GetData(r[0], "data"); (null != i.element && i.element.selected) || (null == i.element && i.selected) || this.trigger("select", { data: i }); } }), e ); }), e.define("select2/dropdown/closeOnSelect", [], function () { function e() { } return ( (e.prototype.bind = function (e, t, n) { var r = this; e.call(this, t, n), t.on("select", function (e) { r._selectTriggered(e); }), t.on("unselect", function (e) { r._selectTriggered(e); }); }), (e.prototype._selectTriggered = function (e, t) { var n = t.originalEvent; (n && (n.ctrlKey || n.metaKey)) || this.trigger("close", { originalEvent: n, originalSelect2Event: t, }); }), e ); }), e.define("select2/i18n/en", [], function () { return { errorLoading: function () { return "The results could not be loaded."; }, inputTooLong: function (e) { var t = e.input.length - e.maximum, n = "Please delete " + t + " character"; return 1 != t && (n += "s"), n; }, inputTooShort: function (e) { return ( "Please enter " + (e.minimum - e.input.length) + " or more characters" ); }, loadingMore: function () { return "Loading more results…"; }, maximumSelected: function (e) { var t = "You can only select " + e.maximum + " item"; return 1 != e.maximum && (t += "s"), t; }, noResults: function () { return "No results found"; }, searching: function () { return "Searching…"; }, removeAllItems: function () { return "Remove all items"; }, }; }), e.define( "select2/defaults", [ "jquery", "require", "./results", "./selection/single", "./selection/multiple", "./selection/placeholder", "./selection/allowClear", "./selection/search", "./selection/eventRelay", "./utils", "./translation", "./diacritics", "./data/select", "./data/array", "./data/ajax", "./data/tags", "./data/tokenizer", "./data/minimumInputLength", "./data/maximumInputLength", "./data/maximumSelectionLength", "./dropdown", "./dropdown/search", "./dropdown/hidePlaceholder", "./dropdown/infiniteScroll", "./dropdown/attachBody", "./dropdown/minimumResultsForSearch", "./dropdown/selectOnClose", "./dropdown/closeOnSelect", "./i18n/en", ], function ( c, u, d, p, h, f, g, m, v, y, s, t, _, $, b, w, A, x, D, S, E, C, O, T, q, L, I, j, e ) { function n() { this.reset(); } return ( (n.prototype.apply = function (e) { if ( null == (e = c.extend(!0, {}, this.defaults, e)).dataAdapter ) { if ( (null != e.ajax ? (e.dataAdapter = b) : null != e.data ? (e.dataAdapter = $) : (e.dataAdapter = _), 0 < e.minimumInputLength && (e.dataAdapter = y.Decorate(e.dataAdapter, x)), 0 < e.maximumInputLength && (e.dataAdapter = y.Decorate(e.dataAdapter, D)), 0 < e.maximumSelectionLength && (e.dataAdapter = y.Decorate(e.dataAdapter, S)), e.tags && (e.dataAdapter = y.Decorate(e.dataAdapter, w)), (null == e.tokenSeparators && null == e.tokenizer) || (e.dataAdapter = y.Decorate(e.dataAdapter, A)), null != e.query) ) { var t = u(e.amdBase + "compat/query"); e.dataAdapter = y.Decorate(e.dataAdapter, t); } if (null != e.initSelection) { var n = u(e.amdBase + "compat/initSelection"); e.dataAdapter = y.Decorate(e.dataAdapter, n); } } if ( (null == e.resultsAdapter && ((e.resultsAdapter = d), null != e.ajax && (e.resultsAdapter = y.Decorate(e.resultsAdapter, T)), null != e.placeholder && (e.resultsAdapter = y.Decorate(e.resultsAdapter, O)), e.selectOnClose && (e.resultsAdapter = y.Decorate(e.resultsAdapter, I))), null == e.dropdownAdapter) ) { if (e.multiple) e.dropdownAdapter = E; else { var r = y.Decorate(E, C); e.dropdownAdapter = r; } if ( (0 !== e.minimumResultsForSearch && (e.dropdownAdapter = y.Decorate(e.dropdownAdapter, L)), e.closeOnSelect && (e.dropdownAdapter = y.Decorate(e.dropdownAdapter, j)), null != e.dropdownCssClass || null != e.dropdownCss || null != e.adaptDropdownCssClass) ) { var i = u(e.amdBase + "compat/dropdownCss"); e.dropdownAdapter = y.Decorate(e.dropdownAdapter, i); } e.dropdownAdapter = y.Decorate(e.dropdownAdapter, q); } if (null == e.selectionAdapter) { if ( (e.multiple ? (e.selectionAdapter = h) : (e.selectionAdapter = p), null != e.placeholder && (e.selectionAdapter = y.Decorate(e.selectionAdapter, f)), e.allowClear && (e.selectionAdapter = y.Decorate(e.selectionAdapter, g)), e.multiple && (e.selectionAdapter = y.Decorate(e.selectionAdapter, m)), null != e.containerCssClass || null != e.containerCss || null != e.adaptContainerCssClass) ) { var o = u(e.amdBase + "compat/containerCss"); e.selectionAdapter = y.Decorate(e.selectionAdapter, o); } e.selectionAdapter = y.Decorate(e.selectionAdapter, v); } (e.language = this._resolveLanguage(e.language)), e.language.push("en"); for (var s = [], a = 0; a < e.language.length; a++) { var l = e.language[a]; -1 === s.indexOf(l) && s.push(l); } return ( (e.language = s), (e.translations = this._processTranslations( e.language, e.debug )), e ); }), (n.prototype.reset = function () { function a(e) { return e.replace(/[^\u0000-\u007E]/g, function (e) { return t[e] || e; }); } this.defaults = { amdBase: "./", amdLanguageBase: "./i18n/", closeOnSelect: !0, debug: !1, dropdownAutoWidth: !1, escapeMarkup: y.escapeMarkup, language: {}, matcher: function e(t, n) { if ("" === c.trim(t.term)) return n; if (n.children && 0 < n.children.length) { for ( var r = c.extend(!0, {}, n), i = n.children.length - 1; 0 <= i; i-- ) null == e(t, n.children[i]) && r.children.splice(i, 1); return 0 < r.children.length ? r : e(t, r); } var o = a(n.text).toUpperCase(), s = a(t.term).toUpperCase(); return -1 < o.indexOf(s) ? n : null; }, minimumInputLength: 0, maximumInputLength: 0, maximumSelectionLength: 0, minimumResultsForSearch: 0, selectOnClose: !1, scrollAfterSelect: !1, sorter: function (e) { return e; }, templateResult: function (e) { return e.text; }, templateSelection: function (e) { return e.text; }, theme: "default", width: "resolve", }; }), (n.prototype.applyFromElement = function (e, t) { var n = e.language, r = this.defaults.language, i = t.prop("lang"), o = t.closest("[lang]").prop("lang"), s = Array.prototype.concat.call( this._resolveLanguage(i), this._resolveLanguage(n), this._resolveLanguage(r), this._resolveLanguage(o) ); return (e.language = s), e; }), (n.prototype._resolveLanguage = function (e) { if (!e) return []; if (c.isEmptyObject(e)) return []; if (c.isPlainObject(e)) return [e]; var t; t = c.isArray(e) ? e : [e]; for (var n = [], r = 0; r < t.length; r++) if ( (n.push(t[r]), "string" == typeof t[r] && 0 < t[r].indexOf("-")) ) { var i = t[r].split("-")[0]; n.push(i); } return n; }), (n.prototype._processTranslations = function (e, t) { for (var n = new s(), r = 0; r < e.length; r++) { var i = new s(), o = e[r]; if ("string" == typeof o) try { i = s.loadPath(o); } catch (e) { try { (o = this.defaults.amdLanguageBase + o), (i = s.loadPath(o)); } catch (e) { t && window.console && console.warn && console.warn( 'Select2: The language file for "' + o + '" could not be automatically loaded. A fallback will be used instead.' ); } } else i = c.isPlainObject(o) ? new s(o) : o; n.extend(i); } return n; }), (n.prototype.set = function (e, t) { var n = {}; n[c.camelCase(e)] = t; var r = y._convertData(n); c.extend(!0, this.defaults, r); }), new n() ); } ), e.define( "select2/options", ["require", "jquery", "./defaults", "./utils"], function (r, d, i, p) { function e(e, t) { if ( ((this.options = e), null != t && this.fromElement(t), null != t && (this.options = i.applyFromElement(this.options, t)), (this.options = i.apply(this.options)), t && t.is("input")) ) { var n = r(this.get("amdBase") + "compat/inputData"); this.options.dataAdapter = p.Decorate( this.options.dataAdapter, n ); } } return ( (e.prototype.fromElement = function (e) { var t = ["select2"]; null == this.options.multiple && (this.options.multiple = e.prop("multiple")), null == this.options.disabled && (this.options.disabled = e.prop("disabled")), null == this.options.dir && (e.prop("dir") ? (this.options.dir = e.prop("dir")) : e.closest("[dir]").prop("dir") ? (this.options.dir = e.closest("[dir]").prop("dir")) : (this.options.dir = "ltr")), e.prop("disabled", this.options.disabled), e.prop("multiple", this.options.multiple), p.GetData(e[0], "select2Tags") && (this.options.debug && window.console && console.warn && console.warn( 'Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.' ), p.StoreData(e[0], "data", p.GetData(e[0], "select2Tags")), p.StoreData(e[0], "tags", !0)), p.GetData(e[0], "ajaxUrl") && (this.options.debug && window.console && console.warn && console.warn( "Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2." ), e.attr("ajax--url", p.GetData(e[0], "ajaxUrl")), p.StoreData(e[0], "ajax-Url", p.GetData(e[0], "ajaxUrl"))); var n = {}; function r(e, t) { return t.toUpperCase(); } for (var i = 0; i < e[0].attributes.length; i++) { var o = e[0].attributes[i].name, s = "data-"; if (o.substr(0, s.length) == s) { var a = o.substring(s.length), l = p.GetData(e[0], a); n[a.replace(/-([a-z])/g, r)] = l; } } d.fn.jquery && "1." == d.fn.jquery.substr(0, 2) && e[0].dataset && (n = d.extend(!0, {}, e[0].dataset, n)); var c = d.extend(!0, {}, p.GetData(e[0]), n); for (var u in (c = p._convertData(c))) -1 < d.inArray(u, t) || (d.isPlainObject(this.options[u]) ? d.extend(this.options[u], c[u]) : (this.options[u] = c[u])); return this; }), (e.prototype.get = function (e) { return this.options[e]; }), (e.prototype.set = function (e, t) { this.options[e] = t; }), e ); } ), e.define( "select2/core", ["jquery", "./options", "./utils", "./keys"], function (o, c, u, r) { var d = function (e, t) { null != u.GetData(e[0], "select2") && u.GetData(e[0], "select2").destroy(), (this.$element = e), (this.id = this._generateId(e)), (t = t || {}), (this.options = new c(t, e)), d.__super__.constructor.call(this); var n = e.attr("tabindex") || 0; u.StoreData(e[0], "old-tabindex", n), e.attr("tabindex", "-1"); var r = this.options.get("dataAdapter"); this.dataAdapter = new r(e, this.options); var i = this.render(); this._placeContainer(i); var o = this.options.get("selectionAdapter"); (this.selection = new o(e, this.options)), (this.$selection = this.selection.render()), this.selection.position(this.$selection, i); var s = this.options.get("dropdownAdapter"); (this.dropdown = new s(e, this.options)), (this.$dropdown = this.dropdown.render()), this.dropdown.position(this.$dropdown, i); var a = this.options.get("resultsAdapter"); (this.results = new a(e, this.options, this.dataAdapter)), (this.$results = this.results.render()), this.results.position(this.$results, this.$dropdown); var l = this; this._bindAdapters(), this._registerDomEvents(), this._registerDataEvents(), this._registerSelectionEvents(), this._registerDropdownEvents(), this._registerResultsEvents(), this._registerEvents(), this.dataAdapter.current(function (e) { l.trigger("selection:update", { data: e }); }), e.addClass("select2-hidden-accessible"), e.attr("aria-hidden", "true"), this._syncAttributes(), u.StoreData(e[0], "select2", this), e.data("select2", this); }; return ( u.Extend(d, u.Observable), (d.prototype._generateId = function (e) { return ( "select2-" + (null != e.attr("id") ? e.attr("id") : null != e.attr("name") ? e.attr("name") + "-" + u.generateChars(2) : u.generateChars(4) ).replace(/(:|\.|\[|\]|,)/g, "") ); }), (d.prototype._placeContainer = function (e) { e.insertAfter(this.$element); var t = this._resolveWidth( this.$element, this.options.get("width") ); null != t && e.css("width", t); }), (d.prototype._resolveWidth = function (e, t) { var n = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i; if ("resolve" == t) { var r = this._resolveWidth(e, "style"); return null != r ? r : this._resolveWidth(e, "element"); } if ("element" == t) { var i = e.outerWidth(!1); return i <= 0 ? "auto" : i + "px"; } if ("style" != t) return "computedstyle" != t ? t : window.getComputedStyle(e[0]).width; var o = e.attr("style"); if ("string" != typeof o) return null; for (var s = o.split(";"), a = 0, l = s.length; a < l; a += 1) { var c = s[a].replace(/\s/g, "").match(n); if (null !== c && 1 <= c.length) return c[1]; } return null; }), (d.prototype._bindAdapters = function () { this.dataAdapter.bind(this, this.$container), this.selection.bind(this, this.$container), this.dropdown.bind(this, this.$container), this.results.bind(this, this.$container); }), (d.prototype._registerDomEvents = function () { var t = this; this.$element.on("change.select2", function () { t.dataAdapter.current(function (e) { t.trigger("selection:update", { data: e }); }); }), this.$element.on("focus.select2", function (e) { t.trigger("focus", e); }), (this._syncA = u.bind(this._syncAttributes, this)), (this._syncS = u.bind(this._syncSubtree, this)), this.$element[0].attachEvent && this.$element[0].attachEvent( "onpropertychange", this._syncA ); var e = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; null != e ? ((this._observer = new e(function (e) { t._syncA(), t._syncS(null, e); })), this._observer.observe(this.$element[0], { attributes: !0, childList: !0, subtree: !1, })) : this.$element[0].addEventListener && (this.$element[0].addEventListener( "DOMAttrModified", t._syncA, !1 ), this.$element[0].addEventListener( "DOMNodeInserted", t._syncS, !1 ), this.$element[0].addEventListener( "DOMNodeRemoved", t._syncS, !1 )); }), (d.prototype._registerDataEvents = function () { var n = this; this.dataAdapter.on("*", function (e, t) { n.trigger(e, t); }); }), (d.prototype._registerSelectionEvents = function () { var n = this, r = ["toggle", "focus"]; this.selection.on("toggle", function () { n.toggleDropdown(); }), this.selection.on("focus", function (e) { n.focus(e); }), this.selection.on("*", function (e, t) { -1 === o.inArray(e, r) && n.trigger(e, t); }); }), (d.prototype._registerDropdownEvents = function () { var n = this; this.dropdown.on("*", function (e, t) { n.trigger(e, t); }); }), (d.prototype._registerResultsEvents = function () { var n = this; this.results.on("*", function (e, t) { n.trigger(e, t); }); }), (d.prototype._registerEvents = function () { var n = this; this.on("open", function () { n.$container.addClass("select2-container--open"); }), this.on("close", function () { n.$container.removeClass("select2-container--open"); }), this.on("enable", function () { n.$container.removeClass("select2-container--disabled"); }), this.on("disable", function () { n.$container.addClass("select2-container--disabled"); }), this.on("blur", function () { n.$container.removeClass("select2-container--focus"); }), this.on("query", function (t) { n.isOpen() || n.trigger("open", {}), this.dataAdapter.query(t, function (e) { n.trigger("results:all", { data: e, query: t }); }); }), this.on("query:append", function (t) { this.dataAdapter.query(t, function (e) { n.trigger("results:append", { data: e, query: t }); }); }), this.on("keypress", function (e) { var t = e.which; n.isOpen() ? t === r.ESC || t === r.TAB || (t === r.UP && e.altKey) ? (n.close(e), e.preventDefault()) : t === r.ENTER ? (n.trigger("results:select", {}), e.preventDefault()) : t === r.SPACE && e.ctrlKey ? (n.trigger("results:toggle", {}), e.preventDefault()) : t === r.UP ? (n.trigger("results:previous", {}), e.preventDefault()) : t === r.DOWN && (n.trigger("results:next", {}), e.preventDefault()) : (t === r.ENTER || t === r.SPACE || (t === r.DOWN && e.altKey)) && (n.open(), e.preventDefault()); }); }), (d.prototype._syncAttributes = function () { this.options.set("disabled", this.$element.prop("disabled")), this.isDisabled() ? (this.isOpen() && this.close(), this.trigger("disable", {})) : this.trigger("enable", {}); }), (d.prototype._isChangeMutation = function (e, t) { var n = !1, r = this; if ( !e || !e.target || "OPTION" === e.target.nodeName || "OPTGROUP" === e.target.nodeName ) { if (t) if (t.addedNodes && 0 < t.addedNodes.length) for (var i = 0; i < t.addedNodes.length; i++) { t.addedNodes[i].selected && (n = !0); } else t.removedNodes && 0 < t.removedNodes.length ? (n = !0) : o.isArray(t) && o.each(t, function (e, t) { if (r._isChangeMutation(e, t)) return !(n = !0); }); else n = !0; return n; } }), (d.prototype._syncSubtree = function (e, t) { var n = this._isChangeMutation(e, t), r = this; n && this.dataAdapter.current(function (e) { r.trigger("selection:update", { data: e }); }); }), (d.prototype.trigger = function (e, t) { var n = d.__super__.trigger, r = { open: "opening", close: "closing", select: "selecting", unselect: "unselecting", clear: "clearing", }; if ((void 0 === t && (t = {}), e in r)) { var i = r[e], o = { prevented: !1, name: e, args: t }; if ((n.call(this, i, o), o.prevented)) return void (t.prevented = !0); } n.call(this, e, t); }), (d.prototype.toggleDropdown = function () { this.isDisabled() || (this.isOpen() ? this.close() : this.open()); }), (d.prototype.open = function () { this.isOpen() || this.isDisabled() || this.trigger("query", {}); }), (d.prototype.close = function (e) { this.isOpen() && this.trigger("close", { originalEvent: e }); }), (d.prototype.isEnabled = function () { return !this.isDisabled(); }), (d.prototype.isDisabled = function () { return this.options.get("disabled"); }), (d.prototype.isOpen = function () { return this.$container.hasClass("select2-container--open"); }), (d.prototype.hasFocus = function () { return this.$container.hasClass("select2-container--focus"); }), (d.prototype.focus = function (e) { this.hasFocus() || (this.$container.addClass("select2-container--focus"), this.trigger("focus", {})); }), (d.prototype.enable = function (e) { this.options.get("debug") && window.console && console.warn && console.warn( 'Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.' ), (null != e && 0 !== e.length) || (e = [!0]); var t = !e[0]; this.$element.prop("disabled", t); }), (d.prototype.data = function () { this.options.get("debug") && 0 < arguments.length && window.console && console.warn && console.warn( 'Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.' ); var t = []; return ( this.dataAdapter.current(function (e) { t = e; }), t ); }), (d.prototype.val = function (e) { if ( (this.options.get("debug") && window.console && console.warn && console.warn( 'Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.' ), null == e || 0 === e.length) ) return this.$element.val(); var t = e[0]; o.isArray(t) && (t = o.map(t, function (e) { return e.toString(); })), this.$element.val(t).trigger("input").trigger("change"); }), (d.prototype.destroy = function () { this.$container.remove(), this.$element[0].detachEvent && this.$element[0].detachEvent( "onpropertychange", this._syncA ), null != this._observer ? (this._observer.disconnect(), (this._observer = null)) : this.$element[0].removeEventListener && (this.$element[0].removeEventListener( "DOMAttrModified", this._syncA, !1 ), this.$element[0].removeEventListener( "DOMNodeInserted", this._syncS, !1 ), this.$element[0].removeEventListener( "DOMNodeRemoved", this._syncS, !1 )), (this._syncA = null), (this._syncS = null), this.$element.off(".select2"), this.$element.attr( "tabindex", u.GetData(this.$element[0], "old-tabindex") ), this.$element.removeClass("select2-hidden-accessible"), this.$element.attr("aria-hidden", "false"), u.RemoveData(this.$element[0]), this.$element.removeData("select2"), this.dataAdapter.destroy(), this.selection.destroy(), this.dropdown.destroy(), this.results.destroy(), (this.dataAdapter = null), (this.selection = null), (this.dropdown = null), (this.results = null); }), (d.prototype.render = function () { var e = o( '' ); return ( e.attr("dir", this.options.get("dir")), (this.$container = e), this.$container.addClass( "select2-container--" + this.options.get("theme") ), u.StoreData(e[0], "element", this.$element), e ); }), d ); } ), e.define("jquery-mousewheel", ["jquery"], function (e) { return e; }), e.define( "jquery.select2", [ "jquery", "jquery-mousewheel", "./select2/core", "./select2/defaults", "./select2/utils", ], function (i, e, o, t, s) { if (null == i.fn.select2) { var a = ["open", "close", "destroy"]; i.fn.select2 = function (t) { if ("object" == typeof (t = t || {})) return ( this.each(function () { var e = i.extend(!0, {}, t); new o(i(this), e); }), this ); if ("string" != typeof t) throw new Error("Invalid arguments for Select2: " + t); var n, r = Array.prototype.slice.call(arguments, 1); return ( this.each(function () { var e = s.GetData(this, "select2"); null == e && window.console && console.error && console.error( "The select2('" + t + "') method was called on an element that is not using Select2." ), (n = e[t].apply(e, r)); }), -1 < i.inArray(t, a) ? this : n ); }; } return ( null == i.fn.select2.defaults && (i.fn.select2.defaults = t), o ); } ), { define: e.define, require: e.require } ); })(), t = e.require("jquery.select2"); return (u.fn.select2.amd = e), t; }); staticUrl = $("#statiUrl").attr("data-url"); $(document).ready(function () { $(".oh-select").select2({ width: '100%' }); $("select").on("select2:select", function (e) { $(this).closest("select")[0].dispatchEvent(new Event("change")); }); }) $(document).on("htmx:afterSettle", function (event) { var target = $(event.target); target.find(".oh-select").select2({ width: '100%' }); target.find("select").off("select2:select").on("select2:select", function (e) { this.dispatchEvent(new Event("change")); console.log('__11___'); }); }); // Helper function to hash data using SHA-256 async function hashData(data) { const encoder = new TextEncoder(); const dataBuffer = encoder.encode(data); const hashBuffer = await crypto.subtle.digest('SHA-256', dataBuffer); const hashArray = Array.from(new Uint8Array(hashBuffer)); return hashArray.map(byte => byte.toString(16).padStart(2, '0')).join(''); } // Save installed apps with a hash to localStorage async function saveToLocalStorage(data) { const dataString = JSON.stringify(data); const hash = await hashData(dataString); localStorage.setItem("cachedInstalledApps", dataString); localStorage.setItem("cachedInstalledAppsHash", hash); } // Verify and load installed apps from localStorage async function loadFromLocalStorage() { const dataString = localStorage.getItem("cachedInstalledApps"); const storedHash = localStorage.getItem("cachedInstalledAppsHash"); if (dataString && storedHash) { const currentHash = await hashData(dataString); if (currentHash === storedHash) { return JSON.parse(dataString); } } return null; } $(document).on("htmx:afterSwap", async function (evt) { if ($('[role="tooltip"]:visible').length) { $('[role="tooltip"]').hide(); } cachedInstalledApps = await loadFromLocalStorage(); // Try loading cached data from localStorage first if (cachedInstalledApps) { // Use the cached data loadScripts(cachedInstalledApps); } else { // Fetch the data via AJAX if not cached or cache is invalid $.ajax({ url: '/get-horilla-installed-apps/', method: 'GET', success: async function (response) { cachedInstalledApps = response.installed_apps; await saveToLocalStorage(cachedInstalledApps); loadScripts(cachedInstalledApps); }, error: function (error) { console.error("Error fetching installed apps:", error); } }); } }); function loadScripts(installedApps) { // Helper function to safely remove and add a script function loadScriptIfNeeded(appName) { const scriptSrc = `${staticUrl}${appName}/actions.js`; const existingScript = document.querySelector(`[src='${scriptSrc}']`); // Remove existing script if it exists if (existingScript) { existingScript.remove(); } // Add the new script const script = document.createElement("script"); script.src = scriptSrc; script.defer = true; document.head.appendChild(script); } // Conditionally load scripts based on installed apps if (installedApps.includes('attendance')) { loadScriptIfNeeded('attendance'); } if (installedApps.includes('employee')) { loadScriptIfNeeded('employee'); } if (installedApps.includes('candidate')) { loadScriptIfNeeded('candidate'); } // Always load base script loadScriptIfNeeded('base'); } $(document).on("htmx:afterSettle", function (e) { var targetId = e.detail.target.id; if (targetId == "") { targetId = "someDemoId" } $(`#${targetId} .oh-accordion-header`).on("click", function (e) { e.preventDefault(); $(this).parent().toggleClass("oh-accordion--show"); }); $(`#${targetId} .oh-table__toggle-parent`).on("click", function () { $(this) .parent() .find(".oh-table__toggle-child") .toggleClass("oh-table__toggle-child--show"); }); // $(`#${targetId} .oh-accordion-meta__header`).on("click", function () { // $(this).toggleClass("oh-accordion-meta__header--show"); // $(this).next().toggleClass("d-none"); // }); $(`#${targetId} .oh-permission-table--toggle`).on("click", function (e) { e.stopPropagation(); let clickedEl = $(e.target).closest(".oh-permission-table--toggle"); let parentRow = clickedEl.parents(".oh-permission-table__tr"); // let collapsedPanel = parentRow.find(".oh-collapse-panel"); let count = parentRow.data("count"); let labelText = parentRow.data("label"); // Count number of permissions. // let permissionCount = collapsedPanel.length; let cellEl = parentRow .find(".oh-collapse-panel") .parents(".oh-sticky-table__td"); // Label let labelEl = null; if (labelText) { if (count > 1) { labelEl = `${count} ${labelText}s`; } else { labelEl = `${count} ${labelText}`; } } // Collapse / Hide Permission Panels parentRow.toggleClass("oh-permission-table--collapsed"); if (parentRow.hasClass("oh-permission-table--collapsed")) { if (labelEl) { $(cellEl).append(labelEl); } } else { $(cellEl).find(".oh-permission-count").remove(); } }); $(`#${targetId} [data-toggle='oh-modal-toggle']`).on("click", function () { let modalId = $(this).attr("data-target"); $(`${modalId}`).addClass("oh-modal--show"); }); $(`#${targetId} .oh-modal__close, .oh-modal__cancel`).on( "click", function () { $(".oh-modal--show").removeClass("oh-modal--show"); } ); $(`#${targetId} .oh-activity-sidebar__open`).on("click", function () { let sideBarId = $(this).attr("data-target"); $(`${sideBarId}`).addClass("oh-activity-sidebar--show"); }); $(`#${targetId} .oh-activity-sidebar__open`).on("click", function () { $(".oh-modal--show").removeClass("oh-activity-sidebar__close"); }); $(`#${targetId} .oh-accordion-meta__header`).on("click", function () { target = $(this).attr("data-target"); $(this).toggleClass("oh-accordion-meta__header--show"); $(target).toggleClass("d-none"); }); $(`#${targetId} .oh-accordion-meta__item`).on('click', function (e) { e.preventDefault; e.stopPropagation; let clickedEl = $(e.target).closest(".oh-accordion-meta__header"); let accordionItemBody = clickedEl .parent(".oh-accordion-meta__item") .find(".oh-accordion-meta__body"); if (clickedEl) { clickedEl.toggleClass("oh-accordion-meta__header--show"); } if (accordionItemBody) { accordionItemBody.toggleClass("d-none"); } }); $(`#${targetId} .oh-sticky-table__tr.oh-table__toggle-parent`).on("click", function (e) { $(this).parent().find(".oh-table__toggle-child").toggleClass("oh-table__toggle-child--show") }) $(`#${targetId} [data-toggle-count]`).click(function (e) { e.preventDefault(); span = $(this).parent().find(".count-span").toggle() }); });