Edit
/* js/chosen.js */
/* Chosen v1.5.1 | (c) 2011-2016 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
(function () {
var a,
AbstractChosen,
Chosen,
SelectParser,
b,
c = {}.hasOwnProperty,
d = function (a, b) {
function d() {
this.constructor = a;
}
for (var e in b) c.call(b, e) && (a[e] = b[e]);
return (
(d.prototype = b.prototype),
(a.prototype = new d()),
(a.__super__ = b.prototype),
a
);
};
(SelectParser = (function () {
function SelectParser() {
(this.options_index = 0), (this.parsed = []);
}
return (
(SelectParser.prototype.add_node = function (a) {
return "OPTGROUP" === a.nodeName.toUpperCase()
? this.add_group(a)
: this.add_option(a);
}),
(SelectParser.prototype.add_group = function (a) {
var b, c, d, e, f, g;
for (
b = this.parsed.length,
this.parsed.push({
array_index: b,
group: !0,
label: this.escapeExpression(a.label),
title: a.title ? a.title : void 0,
children: 0,
disabled: a.disabled,
classes: a.className,
}),
f = a.childNodes,
g = [],
d = 0,
e = f.length;
e > d;
d++
)
(c = f[d]), g.push(this.add_option(c, b, a.disabled));
return g;
}),
(SelectParser.prototype.add_option = function (a, b, c) {
return "OPTION" === a.nodeName.toUpperCase()
? ("" !== a.text
? (null != b && (this.parsed[b].children += 1),
this.parsed.push({
array_index: this.parsed.length,
options_index: this.options_index,
value: a.value,
text: a.text,
html: a.innerHTML,
title: a.title ? a.title : void 0,
selected: a.selected,
disabled: c === !0 ? c : a.disabled,
group_array_index: b,
group_label: null != b ? this.parsed[b].label : null,
classes: a.className,
style: a.style.cssText,
}))
: this.parsed.push({
array_index: this.parsed.length,
options_index: this.options_index,
empty: !0,
}),
(this.options_index += 1))
: void 0;
}),
(SelectParser.prototype.escapeExpression = function (a) {
var b, c;
return null == a || a === !1
? ""
: /[\&\<\>\"\'\`]/.test(a)
? ((b = {
"<": "<",
">": ">",
'"': """,
"'": "'",
"`": "`",
}),
(c = /&(?!\w+;)|[\<\>\"\'\`]/g),
a.replace(c, function (a) {
return b[a] || "&";
}))
: a;
}),
SelectParser
);
})()),
(SelectParser.select_to_array = function (a) {
var b, c, d, e, f;
for (
c = new SelectParser(), f = a.childNodes, d = 0, e = f.length;
e > d;
d++
)
(b = f[d]), c.add_node(b);
return c.parsed;
}),
(AbstractChosen = (function () {
function AbstractChosen(a, b) {
(this.form_field = a),
(this.options = null != b ? b : {}),
AbstractChosen.browser_is_supported() &&
((this.is_multiple = this.form_field.multiple),
this.set_default_text(),
this.set_default_values(),
this.setup(),
this.set_up_html(),
this.register_observers(),
this.on_ready());
}
return (
(AbstractChosen.prototype.set_default_values = function () {
var a = this;
return (
(this.click_test_action = function (b) {
return a.test_active_click(b);
}),
(this.activate_action = function (b) {
return a.activate_field(b);
}),
(this.active_field = !1),
(this.mouse_on_container = !1),
(this.results_showing = !1),
(this.result_highlighted = null),
(this.allow_single_deselect =
null != this.options.allow_single_deselect &&
null != this.form_field.options[0] &&
"" === this.form_field.options[0].text
? this.options.allow_single_deselect
: !1),
(this.disable_search_threshold =
this.options.disable_search_threshold || 0),
(this.disable_search = this.options.disable_search || !1),
(this.enable_split_word_search =
null != this.options.enable_split_word_search
? this.options.enable_split_word_search
: !0),
(this.group_search =
null != this.options.group_search
? this.options.group_search
: !0),
(this.search_contains = this.options.search_contains || !1),
(this.single_backstroke_delete =
null != this.options.single_backstroke_delete
? this.options.single_backstroke_delete
: !0),
(this.max_selected_options =
this.options.max_selected_options || 1 / 0),
(this.inherit_select_classes =
this.options.inherit_select_classes || !1),
(this.display_selected_options =
null != this.options.display_selected_options
? this.options.display_selected_options
: !0),
(this.display_disabled_options =
null != this.options.display_disabled_options
? this.options.display_disabled_options
: !0),
(this.include_group_label_in_selected =
this.options.include_group_label_in_selected || !1),
(this.max_shown_results =
this.options.max_shown_results || Number.POSITIVE_INFINITY)
);
}),
(AbstractChosen.prototype.set_default_text = function () {
return (
this.form_field.getAttribute("data-placeholder")
? (this.default_text = this.form_field.getAttribute(
"data-placeholder"
))
: this.is_multiple
? (this.default_text =
this.options.placeholder_text_multiple ||
this.options.placeholder_text ||
AbstractChosen.default_multiple_text)
: (this.default_text =
this.options.placeholder_text_single ||
this.options.placeholder_text ||
AbstractChosen.default_single_text),
(this.results_none_found =
this.form_field.getAttribute("data-no_results_text") ||
this.options.no_results_text ||
AbstractChosen.default_no_result_text)
);
}),
(AbstractChosen.prototype.choice_label = function (a) {
return this.include_group_label_in_selected && null != a.group_label
? "<b class='group-name'>" + a.group_label + "</b>" + a.html
: a.html;
}),
(AbstractChosen.prototype.mouse_enter = function () {
return (this.mouse_on_container = !0);
}),
(AbstractChosen.prototype.mouse_leave = function () {
return (this.mouse_on_container = !1);
}),
(AbstractChosen.prototype.input_focus = function (a) {
var b = this;
if (this.is_multiple) {
if (!this.active_field)
return setTimeout(function () {
return b.container_mousedown();
}, 50);
} else if (!this.active_field) return this.activate_field();
}),
(AbstractChosen.prototype.input_blur = function (a) {
var b = this;
return this.mouse_on_container
? void 0
: ((this.active_field = !1),
setTimeout(function () {
return b.blur_test();
}, 100));
}),
(AbstractChosen.prototype.results_option_build = function (a) {
var b, c, d, e, f, g, h;
for (
b = "", e = 0, h = this.results_data, f = 0, g = h.length;
g > f &&
((c = h[f]),
(d = ""),
(d = c.group
? this.result_add_group(c)
: this.result_add_option(c)),
"" !== d && (e++, (b += d)),
(null != a ? a.first : void 0) &&
(c.selected && this.is_multiple
? this.choice_build(c)
: c.selected &&
!this.is_multiple &&
this.single_set_selected_text(this.choice_label(c))),
!(e >= this.max_shown_results));
f++
);
return b;
}),
(AbstractChosen.prototype.result_add_option = function (a) {
var b, c;
return a.search_match && this.include_option_in_results(a)
? ((b = []),
a.disabled ||
(a.selected && this.is_multiple) ||
b.push("active-result"),
!a.disabled ||
(a.selected && this.is_multiple) ||
b.push("disabled-result"),
a.selected && b.push("result-selected"),
null != a.group_array_index && b.push("group-option"),
"" !== a.classes && b.push(a.classes),
(c = document.createElement("li")),
(c.className = b.join(" ")),
(c.style.cssText = a.style),
c.setAttribute("data-option-array-index", a.array_index),
(c.innerHTML = a.search_text),
a.title && (c.title = a.title),
this.outerHTML(c))
: "";
}),
(AbstractChosen.prototype.result_add_group = function (a) {
var b, c;
return (a.search_match || a.group_match) && a.active_options > 0
? ((b = []),
b.push("group-result"),
a.classes && b.push(a.classes),
(c = document.createElement("li")),
(c.className = b.join(" ")),
(c.innerHTML = a.search_text),
a.title && (c.title = a.title),
this.outerHTML(c))
: "";
}),
(AbstractChosen.prototype.results_update_field = function () {
return (
this.set_default_text(),
this.is_multiple || this.results_reset_cleanup(),
this.result_clear_highlight(),
this.results_build(),
this.results_showing ? this.winnow_results() : void 0
);
}),
(AbstractChosen.prototype.reset_single_select_options = function () {
var a, b, c, d, e;
for (d = this.results_data, e = [], b = 0, c = d.length; c > b; b++)
(a = d[b]), a.selected ? e.push((a.selected = !1)) : e.push(void 0);
return e;
}),
(AbstractChosen.prototype.results_toggle = function () {
return this.results_showing
? this.results_hide()
: this.results_show();
}),
(AbstractChosen.prototype.results_search = function (a) {
return this.results_showing
? this.winnow_results()
: this.results_show();
}),
(AbstractChosen.prototype.winnow_results = function () {
var a, b, c, d, e, f, g, h, i, j, k, l;
for (
this.no_results_clear(),
d = 0,
f = this.get_search_text(),
a = f.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"),
i = new RegExp(a, "i"),
c = this.get_search_regex(a),
l = this.results_data,
j = 0,
k = l.length;
k > j;
j++
)
(b = l[j]),
(b.search_match = !1),
(e = null),
this.include_option_in_results(b) &&
(b.group && ((b.group_match = !1), (b.active_options = 0)),
null != b.group_array_index &&
this.results_data[b.group_array_index] &&
((e = this.results_data[b.group_array_index]),
0 === e.active_options && e.search_match && (d += 1),
(e.active_options += 1)),
(b.search_text = b.group ? b.label : b.html),
(!b.group || this.group_search) &&
((b.search_match = this.search_string_match(
b.search_text,
c
)),
b.search_match && !b.group && (d += 1),
b.search_match
? (f.length &&
((g = b.search_text.search(i)),
(h =
b.search_text.substr(0, g + f.length) +
"</em>" +
b.search_text.substr(g + f.length)),
(b.search_text =
h.substr(0, g) + "<em>" + h.substr(g))),
null != e && (e.group_match = !0))
: null != b.group_array_index &&
this.results_data[b.group_array_index].search_match &&
(b.search_match = !0)));
return (
this.result_clear_highlight(),
1 > d && f.length
? (this.update_results_content(""), this.no_results(f))
: (this.update_results_content(this.results_option_build()),
this.winnow_results_set_highlight())
);
}),
(AbstractChosen.prototype.get_search_regex = function (a) {
var b;
return (b = this.search_contains ? "" : "^"), new RegExp(b + a, "i");
}),
(AbstractChosen.prototype.search_string_match = function (a, b) {
var c, d, e, f;
if (b.test(a)) return !0;
if (
this.enable_split_word_search &&
(a.indexOf(" ") >= 0 || 0 === a.indexOf("[")) &&
((d = a.replace(/\[|\]/g, "").split(" ")), d.length)
)
for (e = 0, f = d.length; f > e; e++)
if (((c = d[e]), b.test(c))) return !0;
}),
(AbstractChosen.prototype.choices_count = function () {
var a, b, c, d;
if (null != this.selected_option_count)
return this.selected_option_count;
for (
this.selected_option_count = 0,
d = this.form_field.options,
b = 0,
c = d.length;
c > b;
b++
)
(a = d[b]), a.selected && (this.selected_option_count += 1);
return this.selected_option_count;
}),
(AbstractChosen.prototype.choices_click = function (a) {
return (
a.preventDefault(),
this.results_showing || this.is_disabled
? void 0
: this.results_show()
);
}),
(AbstractChosen.prototype.keyup_checker = function (a) {
var b, c;
switch (
((b = null != (c = a.which) ? c : a.keyCode),
this.search_field_scale(),
b)
) {
case 8:
if (
this.is_multiple &&
this.backstroke_length < 1 &&
this.choices_count() > 0
)
return this.keydown_backstroke();
if (!this.pending_backstroke)
return this.result_clear_highlight(), this.results_search();
break;
case 13:
if ((a.preventDefault(), this.results_showing))
return this.result_select(a);
break;
case 27:
return this.results_showing && this.results_hide(), !0;
case 9:
case 38:
case 40:
case 16:
case 91:
case 17:
case 18:
break;
default:
return this.results_search();
}
}),
(AbstractChosen.prototype.clipboard_event_checker = function (a) {
var b = this;
return setTimeout(function () {
return b.results_search();
}, 50);
}),
(AbstractChosen.prototype.container_width = function () {
return null != this.options.width
? this.options.width
: "" + this.form_field.offsetWidth + "px";
}),
(AbstractChosen.prototype.include_option_in_results = function (a) {
return this.is_multiple &&
!this.display_selected_options &&
a.selected
? !1
: !this.display_disabled_options && a.disabled
? !1
: a.empty
? !1
: !0;
}),
(AbstractChosen.prototype.search_results_touchstart = function (a) {
return (this.touch_started = !0), this.search_results_mouseover(a);
}),
(AbstractChosen.prototype.search_results_touchmove = function (a) {
return (this.touch_started = !1), this.search_results_mouseout(a);
}),
(AbstractChosen.prototype.search_results_touchend = function (a) {
return this.touch_started ? this.search_results_mouseup(a) : void 0;
}),
(AbstractChosen.prototype.outerHTML = function (a) {
var b;
return a.outerHTML
? a.outerHTML
: ((b = document.createElement("div")),
b.appendChild(a),
b.innerHTML);
}),
(AbstractChosen.browser_is_supported = function () {
return /iP(od|hone)/i.test(window.navigator.userAgent)
? !1
: /Android/i.test(window.navigator.userAgent) &&
/Mobile/i.test(window.navigator.userAgent)
? !1
: /IEMobile/i.test(window.navigator.userAgent)
? !1
: /Windows Phone/i.test(window.navigator.userAgent)
? !1
: /BlackBerry/i.test(window.navigator.userAgent)
? !1
: /BB10/i.test(window.navigator.userAgent)
? !1
: "Microsoft Internet Explorer" === window.navigator.appName
? document.documentMode >= 8
: !0;
}),
(AbstractChosen.default_multiple_text = "Select Some Options"),
(AbstractChosen.default_single_text = "Select an Option"),
(AbstractChosen.default_no_result_text = "No results match"),
AbstractChosen
);
})()),
(a = jQuery),
a.fn.extend({
chosen: function (b) {
return AbstractChosen.browser_is_supported()
? this.each(function (c) {
var d, e;
return (
(d = a(this)),
(e = d.data("chosen")),
"destroy" === b
? void (e instanceof Chosen && e.destroy())
: void (
e instanceof Chosen ||
d.data("chosen", new Chosen(this, b))
)
);
})
: this;
},
}),
(Chosen = (function (c) {
function Chosen() {
return (b = Chosen.__super__.constructor.apply(this, arguments));
}
return (
d(Chosen, c),
(Chosen.prototype.setup = function () {
return (
(this.form_field_jq = a(this.form_field)),
(this.current_selectedIndex = this.form_field.selectedIndex),
(this.is_rtl = this.form_field_jq.hasClass("chosen-rtl"))
);
}),
(Chosen.prototype.set_up_html = function () {
var b, c;
return (
(b = ["chosen-container"]),
b.push(
"chosen-container-" + (this.is_multiple ? "multi" : "single")
),
this.inherit_select_classes &&
this.form_field.className &&
b.push(this.form_field.className),
this.is_rtl && b.push("chosen-rtl"),
(c = {
class: b.join(" "),
style: "width: " + this.container_width() + ";",
title: this.form_field.title,
}),
this.form_field.id.length &&
(c.id = this.form_field.id.replace(/[^\w]/g, "_") + "_chosen"),
(this.container = a("<div />", c)),
this.is_multiple
? this.container.html(
'<ul class="chosen-choices"><li class="search-field"><input type="text" value="' +
this.default_text +
'" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>'
)
: this.container.html(
'<a class="chosen-single chosen-default"><span>' +
this.default_text +
'</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>'
),
this.form_field_jq.hide().after(this.container),
(this.dropdown = this.container.find("div.chosen-drop").first()),
(this.search_field = this.container.find("input").first()),
(this.search_results = this.container
.find("ul.chosen-results")
.first()),
this.search_field_scale(),
(this.search_no_results = this.container
.find("li.no-results")
.first()),
this.is_multiple
? ((this.search_choices = this.container
.find("ul.chosen-choices")
.first()),
(this.search_container = this.container
.find("li.search-field")
.first()))
: ((this.search_container = this.container
.find("div.chosen-search")
.first()),
(this.selected_item = this.container
.find(".chosen-single")
.first())),
this.results_build(),
this.set_tab_index(),
this.set_label_behavior()
);
}),
(Chosen.prototype.on_ready = function () {
return this.form_field_jq.trigger("chosen:ready", {
chosen: this,
});
}),
(Chosen.prototype.register_observers = function () {
var a = this;
return (
this.container.bind("touchstart.chosen", function (b) {
return a.container_mousedown(b), b.preventDefault();
}),
this.container.bind("touchend.chosen", function (b) {
return a.container_mouseup(b), b.preventDefault();
}),
this.container.bind("mousedown.chosen", function (b) {
a.container_mousedown(b);
}),
this.container.bind("mouseup.chosen", function (b) {
a.container_mouseup(b);
}),
this.container.bind("mouseenter.chosen", function (b) {
a.mouse_enter(b);
}),
this.container.bind("mouseleave.chosen", function (b) {
a.mouse_leave(b);
}),
this.search_results.bind("mouseup.chosen", function (b) {
a.search_results_mouseup(b);
}),
this.search_results.bind("mouseover.chosen", function (b) {
a.search_results_mouseover(b);
}),
this.search_results.bind("mouseout.chosen", function (b) {
a.search_results_mouseout(b);
}),
this.search_results.bind(
"mousewheel.chosen DOMMouseScroll.chosen",
function (b) {
a.search_results_mousewheel(b);
}
),
this.search_results.bind("touchstart.chosen", function (b) {
a.search_results_touchstart(b);
}),
this.search_results.bind("touchmove.chosen", function (b) {
a.search_results_touchmove(b);
}),
this.search_results.bind("touchend.chosen", function (b) {
a.search_results_touchend(b);
}),
this.form_field_jq.bind("chosen:updated.chosen", function (b) {
a.results_update_field(b);
}),
this.form_field_jq.bind("chosen:activate.chosen", function (b) {
a.activate_field(b);
}),
this.form_field_jq.bind("chosen:open.chosen", function (b) {
a.container_mousedown(b);
}),
this.form_field_jq.bind("chosen:close.chosen", function (b) {
a.input_blur(b);
}),
this.search_field.bind("blur.chosen", function (b) {
a.input_blur(b);
}),
this.search_field.bind("keyup.chosen", function (b) {
a.keyup_checker(b);
}),
this.search_field.bind("keydown.chosen", function (b) {
a.keydown_checker(b);
}),
this.search_field.bind("focus.chosen", function (b) {
a.input_focus(b);
}),
this.search_field.bind("cut.chosen", function (b) {
a.clipboard_event_checker(b);
}),
this.search_field.bind("paste.chosen", function (b) {
a.clipboard_event_checker(b);
}),
this.is_multiple
? this.search_choices.bind("click.chosen", function (b) {
a.choices_click(b);
})
: this.container.bind("click.chosen", function (a) {
a.preventDefault();
})
);
}),
(Chosen.prototype.destroy = function () {
return (
a(this.container[0].ownerDocument).unbind(
"click.chosen",
this.click_test_action
),
this.search_field[0].tabIndex &&
(this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex),
this.container.remove(),
this.form_field_jq.removeData("chosen"),
this.form_field_jq.show()
);
}),
(Chosen.prototype.search_field_disabled = function () {
return (
(this.is_disabled = this.form_field_jq[0].disabled),
this.is_disabled
? (this.container.addClass("chosen-disabled"),
(this.search_field[0].disabled = !0),
this.is_multiple ||
this.selected_item.unbind(
"focus.chosen",
this.activate_action
),
this.close_field())
: (this.container.removeClass("chosen-disabled"),
(this.search_field[0].disabled = !1),
this.is_multiple
? void 0
: this.selected_item.bind(
"focus.chosen",
this.activate_action
))
);
}),
(Chosen.prototype.container_mousedown = function (b) {
return this.is_disabled ||
(b &&
"mousedown" === b.type &&
!this.results_showing &&
b.preventDefault(),
null != b && a(b.target).hasClass("search-choice-close"))
? void 0
: (this.active_field
? this.is_multiple ||
!b ||
(a(b.target)[0] !== this.selected_item[0] &&
!a(b.target).parents("a.chosen-single").length) ||
(b.preventDefault(), this.results_toggle())
: (this.is_multiple && this.search_field.val(""),
a(this.container[0].ownerDocument).bind(
"click.chosen",
this.click_test_action
),
this.results_show()),
this.activate_field());
}),
(Chosen.prototype.container_mouseup = function (a) {
return "ABBR" !== a.target.nodeName || this.is_disabled
? void 0
: this.results_reset(a);
}),
(Chosen.prototype.search_results_mousewheel = function (a) {
var b;
return (
a.originalEvent &&
(b =
a.originalEvent.deltaY ||
-a.originalEvent.wheelDelta ||
a.originalEvent.detail),
null != b
? (a.preventDefault(),
"DOMMouseScroll" === a.type && (b = 40 * b),
this.search_results.scrollTop(
b + this.search_results.scrollTop()
))
: void 0
);
}),
(Chosen.prototype.blur_test = function (a) {
return !this.active_field &&
this.container.hasClass("chosen-container-active")
? this.close_field()
: void 0;
}),
(Chosen.prototype.close_field = function () {
return (
a(this.container[0].ownerDocument).unbind(
"click.chosen",
this.click_test_action
),
(this.active_field = !1),
this.results_hide(),
this.container.removeClass("chosen-container-active"),
this.clear_backstroke(),
this.show_search_field_default(),
this.search_field_scale()
);
}),
(Chosen.prototype.activate_field = function () {
return (
this.container.addClass("chosen-container-active"),
(this.active_field = !0),
this.search_field.val(this.search_field.val()),
this.search_field.focus()
);
}),
(Chosen.prototype.test_active_click = function (b) {
var c;
return (
(c = a(b.target).closest(".chosen-container")),
c.length && this.container[0] === c[0]
? (this.active_field = !0)
: this.close_field()
);
}),
(Chosen.prototype.results_build = function () {
return (
(this.parsing = !0),
(this.selected_option_count = null),
(this.results_data = SelectParser.select_to_array(this.form_field)),
this.is_multiple
? this.search_choices.find("li.search-choice").remove()
: this.is_multiple ||
(this.single_set_selected_text(),
this.disable_search ||
this.form_field.options.length <= this.disable_search_threshold
? ((this.search_field[0].readOnly = !0),
this.container.addClass("chosen-container-single-nosearch"))
: ((this.search_field[0].readOnly = !1),
this.container.removeClass(
"chosen-container-single-nosearch"
))),
this.update_results_content(
this.results_option_build({
first: !0,
})
),
this.search_field_disabled(),
this.show_search_field_default(),
this.search_field_scale(),
(this.parsing = !1)
);
}),
(Chosen.prototype.result_do_highlight = function (a) {
var b, c, d, e, f;
if (a.length) {
if (
(this.result_clear_highlight(),
(this.result_highlight = a),
this.result_highlight.addClass("highlighted"),
(d = parseInt(this.search_results.css("maxHeight"), 10)),
(f = this.search_results.scrollTop()),
(e = d + f),
(c =
this.result_highlight.position().top +
this.search_results.scrollTop()),
(b = c + this.result_highlight.outerHeight()),
b >= e)
)
return this.search_results.scrollTop(b - d > 0 ? b - d : 0);
if (f > c) return this.search_results.scrollTop(c);
}
}),
(Chosen.prototype.result_clear_highlight = function () {
return (
this.result_highlight &&
this.result_highlight.removeClass("highlighted"),
(this.result_highlight = null)
);
}),
(Chosen.prototype.results_show = function () {
return this.is_multiple &&
this.max_selected_options <= this.choices_count()
? (this.form_field_jq.trigger("chosen:maxselected", {
chosen: this,
}),
!1)
: (this.container.addClass("chosen-with-drop"),
(this.results_showing = !0),
this.search_field.focus(),
this.search_field.val(this.search_field.val()),
this.winnow_results(),
this.form_field_jq.trigger("chosen:showing_dropdown", {
chosen: this,
}));
}),
(Chosen.prototype.update_results_content = function (a) {
return this.search_results.html(a);
}),
(Chosen.prototype.results_hide = function () {
return (
this.results_showing &&
(this.result_clear_highlight(),
this.container.removeClass("chosen-with-drop"),
this.form_field_jq.trigger("chosen:hiding_dropdown", {
chosen: this,
})),
(this.results_showing = !1)
);
}),
(Chosen.prototype.set_tab_index = function (a) {
var b;
return this.form_field.tabIndex
? ((b = this.form_field.tabIndex),
(this.form_field.tabIndex = -1),
(this.search_field[0].tabIndex = b))
: void 0;
}),
(Chosen.prototype.set_label_behavior = function () {
var b = this;
return (
(this.form_field_label = this.form_field_jq.parents("label")),
!this.form_field_label.length &&
this.form_field.id.length &&
(this.form_field_label = a(
"label[for='" + this.form_field.id + "']"
)),
this.form_field_label.length > 0
? this.form_field_label.bind("click.chosen", function (a) {
return b.is_multiple
? b.container_mousedown(a)
: b.activate_field();
})
: void 0
);
}),
(Chosen.prototype.show_search_field_default = function () {
return this.is_multiple &&
this.choices_count() < 1 &&
!this.active_field
? (this.search_field.val(this.default_text),
this.search_field.addClass("default"))
: (this.search_field.val(""),
this.search_field.removeClass("default"));
}),
(Chosen.prototype.search_results_mouseup = function (b) {
var c;
return (
(c = a(b.target).hasClass("active-result")
? a(b.target)
: a(b.target).parents(".active-result").first()),
c.length
? ((this.result_highlight = c),
this.result_select(b),
this.search_field.focus())
: void 0
);
}),
(Chosen.prototype.search_results_mouseover = function (b) {
var c;
return (
(c = a(b.target).hasClass("active-result")
? a(b.target)
: a(b.target).parents(".active-result").first()),
c ? this.result_do_highlight(c) : void 0
);
}),
(Chosen.prototype.search_results_mouseout = function (b) {
return a(b.target).hasClass("active-result")
? this.result_clear_highlight()
: void 0;
}),
(Chosen.prototype.choice_build = function (b) {
var c,
d,
e = this;
return (
(c = a("<li />", {
class: "search-choice",
}).html("<span>" + this.choice_label(b) + "</span>")),
b.disabled
? c.addClass("search-choice-disabled")
: ((d = a("<a />", {
class: "search-choice-close",
"data-option-array-index": b.array_index,
})),
d.bind("click.chosen", function (a) {
return e.choice_destroy_link_click(a);
}),
c.append(d)),
this.search_container.before(c)
);
}),
(Chosen.prototype.choice_destroy_link_click = function (b) {
return (
b.preventDefault(),
b.stopPropagation(),
this.is_disabled ? void 0 : this.choice_destroy(a(b.target))
);
}),
(Chosen.prototype.choice_destroy = function (a) {
return this.result_deselect(
a[0].getAttribute("data-option-array-index")
)
? (this.show_search_field_default(),
this.is_multiple &&
this.choices_count() > 0 &&
this.search_field.val().length < 1 &&
this.results_hide(),
a.parents("li").first().remove(),
this.search_field_scale())
: void 0;
}),
(Chosen.prototype.results_reset = function () {
return (
this.reset_single_select_options(),
(this.form_field.options[0].selected = !0),
this.single_set_selected_text(),
this.show_search_field_default(),
this.results_reset_cleanup(),
this.form_field_jq.trigger("change"),
this.active_field ? this.results_hide() : void 0
);
}),
(Chosen.prototype.results_reset_cleanup = function () {
return (
(this.current_selectedIndex = this.form_field.selectedIndex),
this.selected_item.find("abbr").remove()
);
}),
(Chosen.prototype.result_select = function (a) {
var b, c;
return this.result_highlight
? ((b = this.result_highlight),
this.result_clear_highlight(),
this.is_multiple &&
this.max_selected_options <= this.choices_count()
? (this.form_field_jq.trigger("chosen:maxselected", {
chosen: this,
}),
!1)
: (this.is_multiple
? b.removeClass("active-result")
: this.reset_single_select_options(),
b.addClass("result-selected"),
(c = this.results_data[
b[0].getAttribute("data-option-array-index")
]),
(c.selected = !0),
(this.form_field.options[c.options_index].selected = !0),
(this.selected_option_count = null),
this.is_multiple
? this.choice_build(c)
: this.single_set_selected_text(this.choice_label(c)),
((a.metaKey || a.ctrlKey) && this.is_multiple) ||
this.results_hide(),
this.show_search_field_default(),
(this.is_multiple ||
this.form_field.selectedIndex !==
this.current_selectedIndex) &&
this.form_field_jq.trigger("change", {
selected: this.form_field.options[c.options_index].value,
}),
(this.current_selectedIndex = this.form_field.selectedIndex),
a.preventDefault(),
this.search_field_scale()))
: void 0;
}),
(Chosen.prototype.single_set_selected_text = function (a) {
return (
null == a && (a = this.default_text),
a === this.default_text
? this.selected_item.addClass("chosen-default")
: (this.single_deselect_control_build(),
this.selected_item.removeClass("chosen-default")),
this.selected_item.find("span").html(a)
);
}),
(Chosen.prototype.result_deselect = function (a) {
var b;
return (
(b = this.results_data[a]),
this.form_field.options[b.options_index].disabled
? !1
: ((b.selected = !1),
(this.form_field.options[b.options_index].selected = !1),
(this.selected_option_count = null),
this.result_clear_highlight(),
this.results_showing && this.winnow_results(),
this.form_field_jq.trigger("change", {
deselected: this.form_field.options[b.options_index].value,
}),
this.search_field_scale(),
!0)
);
}),
(Chosen.prototype.single_deselect_control_build = function () {
return this.allow_single_deselect
? (this.selected_item.find("abbr").length ||
this.selected_item
.find("span")
.first()
.after('<abbr class="search-choice-close"></abbr>'),
this.selected_item.addClass("chosen-single-with-deselect"))
: void 0;
}),
(Chosen.prototype.get_search_text = function () {
return a("<div/>").text(a.trim(this.search_field.val())).html();
}),
(Chosen.prototype.winnow_results_set_highlight = function () {
var a, b;
return (
(b = this.is_multiple
? []
: this.search_results.find(".result-selected.active-result")),
(a = b.length
? b.first()
: this.search_results.find(".active-result").first()),
null != a ? this.result_do_highlight(a) : void 0
);
}),
(Chosen.prototype.no_results = function (b) {
var c;
return (
(c = a(
'<li class="no-results">' +
this.results_none_found +
' "<span></span>"</li>'
)),
c.find("span").first().html(b),
this.search_results.append(c),
this.form_field_jq.trigger("chosen:no_results", {
chosen: this,
})
);
}),
(Chosen.prototype.no_results_clear = function () {
return this.search_results.find(".no-results").remove();
}),
(Chosen.prototype.keydown_arrow = function () {
var a;
return this.results_showing && this.result_highlight
? (a = this.result_highlight.nextAll("li.active-result").first())
? this.result_do_highlight(a)
: void 0
: this.results_show();
}),
(Chosen.prototype.keyup_arrow = function () {
var a;
return this.results_showing || this.is_multiple
? this.result_highlight
? ((a = this.result_highlight.prevAll("li.active-result")),
a.length
? this.result_do_highlight(a.first())
: (this.choices_count() > 0 && this.results_hide(),
this.result_clear_highlight()))
: void 0
: this.results_show();
}),
(Chosen.prototype.keydown_backstroke = function () {
var a;
return this.pending_backstroke
? (this.choice_destroy(this.pending_backstroke.find("a").first()),
this.clear_backstroke())
: ((a = this.search_container.siblings("li.search-choice").last()),
a.length && !a.hasClass("search-choice-disabled")
? ((this.pending_backstroke = a),
this.single_backstroke_delete
? this.keydown_backstroke()
: this.pending_backstroke.addClass("search-choice-focus"))
: void 0);
}),
(Chosen.prototype.clear_backstroke = function () {
return (
this.pending_backstroke &&
this.pending_backstroke.removeClass("search-choice-focus"),
(this.pending_backstroke = null)
);
}),
(Chosen.prototype.keydown_checker = function (a) {
var b, c;
switch (
((b = null != (c = a.which) ? c : a.keyCode),
this.search_field_scale(),
8 !== b && this.pending_backstroke && this.clear_backstroke(),
b)
) {
case 8:
this.backstroke_length = this.search_field.val().length;
break;
case 9:
this.results_showing &&
!this.is_multiple &&
this.result_select(a),
(this.mouse_on_container = !1);
break;
case 13:
this.results_showing && a.preventDefault();
break;
case 32:
this.disable_search && a.preventDefault();
break;
case 38:
a.preventDefault(), this.keyup_arrow();
break;
case 40:
a.preventDefault(), this.keydown_arrow();
}
}),
(Chosen.prototype.search_field_scale = function () {
var b, c, d, e, f, g, h, i, j;
if (this.is_multiple) {
for (
d = 0,
h = 0,
f =
"position:absolute; left: -1000px; top: -1000px; display:none;",
g = [
"font-size",
"font-style",
"font-weight",
"font-family",
"line-height",
"text-transform",
"letter-spacing",
],
i = 0,
j = g.length;
j > i;
i++
)
(e = g[i]), (f += e + ":" + this.search_field.css(e) + ";");
return (
(b = a("<div />", {
style: f,
})),
b.text(this.search_field.val()),
a("body").append(b),
(h = b.width() + 25),
b.remove(),
(c = this.container.outerWidth()),
h > c - 10 && (h = c - 10),
this.search_field.css({
width: h + "px",
})
);
}
}),
Chosen
);
})(AbstractChosen));
}.call(this));