Current File : /home/n742ef5/royalanteam.com/wp-content/plugins/Ultimate_VC_Addons/admin/vc_extend/js/chosen.js |
/*!
Chosen, a Select Box Enhancer for jQuery and Prototype
by Patrick Filler for Harvest, http://getharvest.com
Version 1.2.0
Full source at https://github.com/harvesthq/chosen
Copyright (c) 2011-2014 Harvest http://getharvest.com
MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
This file is generated by `grunt build`, do not edit it by hand.
*/
( function () {
let $,
AbstractChosen,
Chosen,
SelectParser,
_ref,
__hasProp = {}.hasOwnProperty,
__extends = function ( child, parent ) {
for ( const key in parent ) {
if ( __hasProp.call( parent, key ) )
child[ key ] = parent[ key ];
}
function ctor() {
this.constructor = child;
}
ctor.prototype = parent.prototype;
child.prototype = new ctor();
child.__super__ = parent.prototype;
return child;
};
SelectParser = ( function () {
function SelectParser() {
this.options_index = 0;
this.parsed = [];
}
SelectParser.prototype.add_node = function ( child ) {
if ( child.nodeName.toUpperCase() === 'OPTGROUP' ) {
return this.add_group( child );
}
return this.add_option( child );
};
SelectParser.prototype.add_group = function ( group ) {
let group_position, option, _i, _len, _ref, _results;
group_position = this.parsed.length;
this.parsed.push( {
array_index: group_position,
group: true,
label: this.escapeExpression( group.label ),
children: 0,
disabled: group.disabled,
} );
_ref = group.childNodes;
_results = [];
for ( _i = 0, _len = _ref.length; _i < _len; _i++ ) {
option = _ref[ _i ];
_results.push(
this.add_option( option, group_position, group.disabled )
);
}
return _results;
};
SelectParser.prototype.add_option = function (
option,
group_position,
group_disabled
) {
if ( option.nodeName.toUpperCase() === 'OPTION' ) {
if ( option.text !== '' ) {
if ( group_position != null ) {
this.parsed[ group_position ].children += 1;
}
this.parsed.push( {
array_index: this.parsed.length,
options_index: this.options_index,
value: option.value,
text: option.text,
html: option.innerHTML,
selected: option.selected,
disabled:
group_disabled === true
? group_disabled
: option.disabled,
group_array_index: group_position,
classes: option.className,
style: option.style.cssText,
} );
} else {
this.parsed.push( {
array_index: this.parsed.length,
options_index: this.options_index,
empty: true,
} );
}
return ( this.options_index += 1 );
}
};
SelectParser.prototype.escapeExpression = function ( text ) {
let map, unsafe_chars;
if ( text == null || text === false ) {
return '';
}
if ( ! /[\&\<\>\"\'\`]/.test( text ) ) {
return text;
}
map = {
'<': '<',
'>': '>',
'"': '"',
"'": ''',
'`': '`',
};
unsafe_chars = /&(?!\w+;)|[\<\>\"\'\`]/g;
return text.replace( unsafe_chars, function ( chr ) {
return map[ chr ] || '&';
} );
};
return SelectParser;
} )();
SelectParser.select_to_array = function ( select ) {
let child, parser, _i, _len, _ref;
parser = new SelectParser();
_ref = select.childNodes;
for ( _i = 0, _len = _ref.length; _i < _len; _i++ ) {
child = _ref[ _i ];
parser.add_node( child );
}
return parser.parsed;
};
AbstractChosen = ( function () {
function AbstractChosen( form_field, options ) {
this.form_field = form_field;
this.options = options != null ? options : {};
if ( ! AbstractChosen.browser_is_supported() ) {
return;
}
this.is_multiple = this.form_field.multiple;
this.set_default_text();
this.set_default_values();
this.setup();
this.set_up_html();
this.register_observers();
}
AbstractChosen.prototype.set_default_values = function () {
const _this = this;
this.click_test_action = function ( evt ) {
return _this.test_active_click( evt );
};
this.activate_action = function ( evt ) {
return _this.activate_field( evt );
};
this.active_field = false;
this.mouse_on_container = false;
this.results_showing = false;
this.result_highlighted = null;
this.allow_single_deselect =
this.options.allow_single_deselect != null &&
this.form_field.options[ 0 ] != null &&
this.form_field.options[ 0 ].text === ''
? this.options.allow_single_deselect
: false;
this.disable_search_threshold =
this.options.disable_search_threshold || 0;
this.disable_search = this.options.disable_search || false;
this.enable_split_word_search =
this.options.enable_split_word_search != null
? this.options.enable_split_word_search
: true;
this.group_search =
this.options.group_search != null
? this.options.group_search
: true;
this.search_contains = this.options.search_contains || false;
this.single_backstroke_delete =
this.options.single_backstroke_delete != null
? this.options.single_backstroke_delete
: true;
this.max_selected_options =
this.options.max_selected_options || Infinity;
this.inherit_select_classes =
this.options.inherit_select_classes || false;
this.display_selected_options =
this.options.display_selected_options != null
? this.options.display_selected_options
: true;
return ( this.display_disabled_options =
this.options.display_disabled_options != null
? this.options.display_disabled_options
: true );
};
AbstractChosen.prototype.set_default_text = function () {
if ( this.form_field.getAttribute( 'data-placeholder' ) ) {
this.default_text = this.form_field.getAttribute(
'data-placeholder'
);
} else if ( this.is_multiple ) {
this.default_text =
this.options.placeholder_text_multiple ||
this.options.placeholder_text ||
AbstractChosen.default_multiple_text;
} else {
this.default_text =
this.options.placeholder_text_single ||
this.options.placeholder_text ||
AbstractChosen.default_single_text;
}
return ( this.results_none_found =
this.form_field.getAttribute( 'data-no_results_text' ) ||
this.options.no_results_text ||
AbstractChosen.default_no_result_text );
};
AbstractChosen.prototype.mouse_enter = function () {
return ( this.mouse_on_container = true );
};
AbstractChosen.prototype.mouse_leave = function () {
return ( this.mouse_on_container = false );
};
AbstractChosen.prototype.input_focus = function ( evt ) {
const _this = this;
if ( this.is_multiple ) {
if ( ! this.active_field ) {
return setTimeout( function () {
return _this.container_mousedown();
}, 50 );
}
} else if ( ! this.active_field ) {
return this.activate_field();
}
};
AbstractChosen.prototype.input_blur = function ( evt ) {
const _this = this;
if ( ! this.mouse_on_container ) {
this.active_field = false;
return setTimeout( function () {
return _this.blur_test();
}, 100 );
}
};
AbstractChosen.prototype.results_option_build = function ( options ) {
let content, data, _i, _len, _ref;
content = '';
_ref = this.results_data;
for ( _i = 0, _len = _ref.length; _i < _len; _i++ ) {
data = _ref[ _i ];
if ( data.group ) {
content += this.result_add_group( data );
} else {
content += this.result_add_option( data );
}
if ( options != null ? options.first : void 0 ) {
if ( data.selected && this.is_multiple ) {
this.choice_build( data );
} else if ( data.selected && ! this.is_multiple ) {
this.single_set_selected_text( data.text );
}
}
}
return content;
};
AbstractChosen.prototype.result_add_option = function ( option ) {
let classes, option_el;
if ( ! option.search_match ) {
return '';
}
if ( ! this.include_option_in_results( option ) ) {
return '';
}
classes = [];
if (
! option.disabled &&
! ( option.selected && this.is_multiple )
) {
classes.push( 'active-result' );
}
if (
option.disabled &&
! ( option.selected && this.is_multiple )
) {
classes.push( 'disabled-result' );
}
if ( option.selected ) {
classes.push( 'result-selected' );
}
if ( option.group_array_index != null ) {
classes.push( 'group-option' );
}
if ( option.classes !== '' ) {
classes.push( option.classes );
}
option_el = document.createElement( 'li' );
option_el.className = classes.join( ' ' );
option_el.style.cssText = option.style;
option_el.setAttribute(
'data-option-array-index',
option.array_index
);
option_el.innerHTML = option.search_text;
return this.outerHTML( option_el );
};
AbstractChosen.prototype.result_add_group = function ( group ) {
let group_el;
if ( ! ( group.search_match || group.group_match ) ) {
return '';
}
if ( ! ( group.active_options > 0 ) ) {
return '';
}
group_el = document.createElement( 'li' );
group_el.className = 'group-result';
group_el.innerHTML = group.search_text;
return this.outerHTML( group_el );
};
AbstractChosen.prototype.results_update_field = function () {
this.set_default_text();
if ( ! this.is_multiple ) {
this.results_reset_cleanup();
}
this.result_clear_highlight();
this.results_build();
if ( this.results_showing ) {
return this.winnow_results();
}
};
AbstractChosen.prototype.reset_single_select_options = function () {
let result, _i, _len, _ref, _results;
_ref = this.results_data;
_results = [];
for ( _i = 0, _len = _ref.length; _i < _len; _i++ ) {
result = _ref[ _i ];
if ( result.selected ) {
_results.push( ( result.selected = false ) );
} else {
_results.push( void 0 );
}
}
return _results;
};
AbstractChosen.prototype.results_toggle = function () {
if ( this.results_showing ) {
return this.results_hide();
}
return this.results_show();
};
AbstractChosen.prototype.results_search = function ( evt ) {
if ( this.results_showing ) {
return this.winnow_results();
}
return this.results_show();
};
AbstractChosen.prototype.winnow_results = function () {
let escapedSearchText,
option,
regex,
results,
results_group,
searchText,
startpos,
text,
zregex,
_i,
_len,
_ref;
this.no_results_clear();
results = 0;
searchText = this.get_search_text();
escapedSearchText = searchText.replace(
/[-[\]{}()*+?.,\\^$|#\s]/g,
'\\$&'
);
zregex = new RegExp( escapedSearchText, 'i' );
regex = this.get_search_regex( escapedSearchText );
_ref = this.results_data;
for ( _i = 0, _len = _ref.length; _i < _len; _i++ ) {
option = _ref[ _i ];
option.search_match = false;
results_group = null;
if ( this.include_option_in_results( option ) ) {
if ( option.group ) {
option.group_match = false;
option.active_options = 0;
}
if (
option.group_array_index != null &&
this.results_data[ option.group_array_index ]
) {
results_group = this.results_data[
option.group_array_index
];
if (
results_group.active_options === 0 &&
results_group.search_match
) {
results += 1;
}
results_group.active_options += 1;
}
if ( ! ( option.group && ! this.group_search ) ) {
option.search_text = option.group
? option.label
: option.text;
option.search_match = this.search_string_match(
option.search_text,
regex
);
if ( option.search_match && ! option.group ) {
results += 1;
}
if ( option.search_match ) {
if ( searchText.length ) {
startpos = option.search_text.search( zregex );
text =
option.search_text.substr(
0,
startpos + searchText.length
) +
'</em>' +
option.search_text.substr(
startpos + searchText.length
);
option.search_text =
text.substr( 0, startpos ) +
'<em>' +
text.substr( startpos );
}
if ( results_group != null ) {
results_group.group_match = true;
}
} else if (
option.group_array_index != null &&
this.results_data[ option.group_array_index ]
.search_match
) {
option.search_match = true;
}
}
}
}
this.result_clear_highlight();
if ( results < 1 && searchText.length ) {
this.update_results_content( '' );
return this.no_results( searchText );
}
this.update_results_content( this.results_option_build() );
return this.winnow_results_set_highlight();
};
AbstractChosen.prototype.get_search_regex = function (
escaped_search_string
) {
let regex_anchor;
regex_anchor = this.search_contains ? '' : '^';
return new RegExp( regex_anchor + escaped_search_string, 'i' );
};
AbstractChosen.prototype.search_string_match = function (
search_string,
regex
) {
let part, parts, _i, _len;
if ( regex.test( search_string ) ) {
return true;
} else if (
this.enable_split_word_search &&
( search_string.indexOf( ' ' ) >= 0 ||
search_string.indexOf( '[' ) === 0 )
) {
parts = search_string.replace( /\[|\]/g, '' ).split( ' ' );
if ( parts.length ) {
for ( _i = 0, _len = parts.length; _i < _len; _i++ ) {
part = parts[ _i ];
if ( regex.test( part ) ) {
return true;
}
}
}
}
};
AbstractChosen.prototype.choices_count = function () {
let option, _i, _len, _ref;
if ( this.selected_option_count != null ) {
return this.selected_option_count;
}
this.selected_option_count = 0;
_ref = this.form_field.options;
for ( _i = 0, _len = _ref.length; _i < _len; _i++ ) {
option = _ref[ _i ];
if ( option.selected ) {
this.selected_option_count += 1;
}
}
return this.selected_option_count;
};
AbstractChosen.prototype.choices_click = function ( evt ) {
evt.preventDefault();
if ( ! ( this.results_showing || this.is_disabled ) ) {
return this.results_show();
}
};
AbstractChosen.prototype.keyup_checker = function ( evt ) {
let stroke, _ref;
stroke = ( _ref = evt.which ) != null ? _ref : evt.keyCode;
this.search_field_scale();
switch ( stroke ) {
case 8:
if (
this.is_multiple &&
this.backstroke_length < 1 &&
this.choices_count() > 0
) {
return this.keydown_backstroke();
} else if ( ! this.pending_backstroke ) {
this.result_clear_highlight();
return this.results_search();
}
break;
case 13:
evt.preventDefault();
if ( this.results_showing ) {
return this.result_select( evt );
}
break;
case 27:
if ( this.results_showing ) {
this.results_hide();
}
return true;
case 9:
case 38:
case 40:
case 16:
case 91:
case 17:
break;
default:
return this.results_search();
}
};
AbstractChosen.prototype.clipboard_event_checker = function ( evt ) {
const _this = this;
return setTimeout( function () {
return _this.results_search();
}, 50 );
};
AbstractChosen.prototype.container_width = function () {
if ( this.options.width != null ) {
return this.options.width;
}
return '' + this.form_field.offsetWidth + 'px';
};
AbstractChosen.prototype.include_option_in_results = function (
option
) {
if (
this.is_multiple &&
! this.display_selected_options &&
option.selected
) {
return false;
}
if ( ! this.display_disabled_options && option.disabled ) {
return false;
}
if ( option.empty ) {
return false;
}
return true;
};
AbstractChosen.prototype.search_results_touchstart = function ( evt ) {
this.touch_started = true;
return this.search_results_mouseover( evt );
};
AbstractChosen.prototype.search_results_touchmove = function ( evt ) {
this.touch_started = false;
return this.search_results_mouseout( evt );
};
AbstractChosen.prototype.search_results_touchend = function ( evt ) {
if ( this.touch_started ) {
return this.search_results_mouseup( evt );
}
};
AbstractChosen.prototype.outerHTML = function ( element ) {
let tmp;
if ( element.outerHTML ) {
return element.outerHTML;
}
tmp = document.createElement( 'div' );
tmp.appendChild( element );
return tmp.innerHTML;
};
AbstractChosen.browser_is_supported = function () {
if ( window.navigator.appName === 'Microsoft Internet Explorer' ) {
return document.documentMode >= 8;
}
if ( /iP(od|hone)/i.test( window.navigator.userAgent ) ) {
return false;
}
if ( /Android/i.test( window.navigator.userAgent ) ) {
if ( /Mobile/i.test( window.navigator.userAgent ) ) {
return false;
}
}
return true;
};
AbstractChosen.default_multiple_text = 'Select Some Options';
AbstractChosen.default_single_text = 'Select an Option';
AbstractChosen.default_no_result_text = 'No results match';
return AbstractChosen;
} )();
$ = jQuery;
$.fn.extend( {
chosen( options ) {
if ( ! AbstractChosen.browser_is_supported() ) {
return this;
}
return this.each( function ( input_field ) {
let $this, chosen;
$this = $( this );
chosen = $this.data( 'chosen' );
if ( options === 'destroy' && chosen instanceof Chosen ) {
chosen.destroy();
} else if ( ! ( chosen instanceof Chosen ) ) {
$this.data( 'chosen', new Chosen( this, options ) );
}
} );
},
} );
Chosen = ( function ( _super ) {
__extends( Chosen, _super );
function Chosen() {
_ref = Chosen.__super__.constructor.apply( this, arguments );
return _ref;
}
Chosen.prototype.setup = function () {
this.form_field_jq = $( this.form_field );
this.current_selectedIndex = this.form_field.selectedIndex;
return ( this.is_rtl = this.form_field_jq.hasClass(
'chosen-rtl'
) );
};
Chosen.prototype.set_up_html = function () {
let container_classes, container_props;
container_classes = [ 'chosen-container' ];
container_classes.push(
'chosen-container-' + ( this.is_multiple ? 'multi' : 'single' )
);
if ( this.inherit_select_classes && this.form_field.className ) {
container_classes.push( this.form_field.className );
}
if ( this.is_rtl ) {
container_classes.push( 'chosen-rtl' );
}
container_props = {
class: container_classes.join( ' ' ),
style: 'width: ' + this.container_width() + ';',
title: this.form_field.title,
};
if ( this.form_field.id.length ) {
container_props.id =
this.form_field.id.replace( /[^\w]/g, '_' ) + '_chosen';
}
this.container = $( '<div />', container_props );
if ( 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>'
);
} else {
this.container.html(
'<a class="chosen-single chosen-default" tabindex="-1"><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();
if ( this.is_multiple ) {
this.search_choices = this.container
.find( 'ul.chosen-choices' )
.first();
this.search_container = this.container
.find( 'li.search-field' )
.first();
} else {
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();
return this.form_field_jq.trigger( 'chosen:ready', {
chosen: this,
} );
};
Chosen.prototype.register_observers = function () {
const _this = this;
this.container.bind( 'touchstart.chosen', function ( evt ) {
_this.container_mousedown( evt );
} );
this.container.bind( 'touchend.chosen', function ( evt ) {
_this.container_mouseup( evt );
} );
this.container.bind( 'mousedown.chosen', function ( evt ) {
_this.container_mousedown( evt );
} );
this.container.bind( 'mouseup.chosen', function ( evt ) {
_this.container_mouseup( evt );
} );
this.container.bind( 'mouseenter.chosen', function ( evt ) {
_this.mouse_enter( evt );
} );
this.container.bind( 'mouseleave.chosen', function ( evt ) {
_this.mouse_leave( evt );
} );
this.search_results.bind( 'mouseup.chosen', function ( evt ) {
_this.search_results_mouseup( evt );
} );
this.search_results.bind( 'mouseover.chosen', function ( evt ) {
_this.search_results_mouseover( evt );
} );
this.search_results.bind( 'mouseout.chosen', function ( evt ) {
_this.search_results_mouseout( evt );
} );
this.search_results.bind(
'mousewheel.chosen DOMMouseScroll.chosen',
function ( evt ) {
_this.search_results_mousewheel( evt );
}
);
this.search_results.bind( 'touchstart.chosen', function ( evt ) {
_this.search_results_touchstart( evt );
} );
this.search_results.bind( 'touchmove.chosen', function ( evt ) {
_this.search_results_touchmove( evt );
} );
this.search_results.bind( 'touchend.chosen', function ( evt ) {
_this.search_results_touchend( evt );
} );
this.form_field_jq.bind( 'chosen:updated.chosen', function ( evt ) {
_this.results_update_field( evt );
} );
this.form_field_jq.bind(
'chosen:activate.chosen',
function ( evt ) {
_this.activate_field( evt );
}
);
this.form_field_jq.bind( 'chosen:open.chosen', function ( evt ) {
_this.container_mousedown( evt );
} );
this.form_field_jq.bind( 'chosen:close.chosen', function ( evt ) {
_this.input_blur( evt );
} );
this.search_field.bind( 'blur.chosen', function ( evt ) {
_this.input_blur( evt );
} );
this.search_field.bind( 'keyup.chosen', function ( evt ) {
_this.keyup_checker( evt );
} );
this.search_field.bind( 'keydown.chosen', function ( evt ) {
_this.keydown_checker( evt );
} );
this.search_field.bind( 'focus.chosen', function ( evt ) {
_this.input_focus( evt );
} );
this.search_field.bind( 'cut.chosen', function ( evt ) {
_this.clipboard_event_checker( evt );
} );
this.search_field.bind( 'paste.chosen', function ( evt ) {
_this.clipboard_event_checker( evt );
} );
if ( this.is_multiple ) {
return this.search_choices.bind(
'click.chosen',
function ( evt ) {
_this.choices_click( evt );
}
);
}
return this.container.bind( 'click.chosen', function ( evt ) {
evt.preventDefault();
} );
};
Chosen.prototype.destroy = function () {
$( this.container[ 0 ].ownerDocument ).unbind(
'click.chosen',
this.click_test_action
);
if ( 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' );
return this.form_field_jq.show();
};
Chosen.prototype.search_field_disabled = function () {
this.is_disabled = this.form_field_jq[ 0 ].disabled;
if ( this.is_disabled ) {
this.container.addClass( 'chosen-disabled' );
this.search_field[ 0 ].disabled = true;
if ( ! this.is_multiple ) {
this.selected_item.unbind(
'focus.chosen',
this.activate_action
);
}
return this.close_field();
}
this.container.removeClass( 'chosen-disabled' );
this.search_field[ 0 ].disabled = false;
if ( ! this.is_multiple ) {
return this.selected_item.bind(
'focus.chosen',
this.activate_action
);
}
};
Chosen.prototype.container_mousedown = function ( evt ) {
if ( ! this.is_disabled ) {
if (
evt &&
evt.type === 'mousedown' &&
! this.results_showing
) {
evt.preventDefault();
}
if (
! (
evt != null &&
$( evt.target ).hasClass( 'search-choice-close' )
)
) {
if ( ! this.active_field ) {
if ( this.is_multiple ) {
this.search_field.val( '' );
}
$( this.container[ 0 ].ownerDocument ).bind(
'click.chosen',
this.click_test_action
);
this.results_show();
} else if (
! this.is_multiple &&
evt &&
( $( evt.target )[ 0 ] === this.selected_item[ 0 ] ||
$( evt.target ).parents( 'a.chosen-single' )
.length )
) {
evt.preventDefault();
this.results_toggle();
}
return this.activate_field();
}
}
};
Chosen.prototype.container_mouseup = function ( evt ) {
if ( evt.target.nodeName === 'ABBR' && ! this.is_disabled ) {
return this.results_reset( evt );
}
};
Chosen.prototype.search_results_mousewheel = function ( evt ) {
let delta;
if ( evt.originalEvent ) {
delta =
evt.originalEvent.deltaY ||
-evt.originalEvent.wheelDelta ||
evt.originalEvent.detail;
}
if ( delta != null ) {
evt.preventDefault();
if ( evt.type === 'DOMMouseScroll' ) {
delta = delta * 40;
}
return this.search_results.scrollTop(
delta + this.search_results.scrollTop()
);
}
};
Chosen.prototype.blur_test = function ( evt ) {
if (
! this.active_field &&
this.container.hasClass( 'chosen-container-active' )
) {
return this.close_field();
}
};
Chosen.prototype.close_field = function () {
$( this.container[ 0 ].ownerDocument ).unbind(
'click.chosen',
this.click_test_action
);
this.active_field = false;
this.results_hide();
this.container.removeClass( 'chosen-container-active' );
this.clear_backstroke();
this.show_search_field_default();
return this.search_field_scale();
};
Chosen.prototype.activate_field = function () {
this.container.addClass( 'chosen-container-active' );
this.active_field = true;
this.search_field.val( this.search_field.val() );
return this.search_field.focus();
};
Chosen.prototype.test_active_click = function ( evt ) {
let active_container;
active_container = $( evt.target ).closest( '.chosen-container' );
if (
active_container.length &&
this.container[ 0 ] === active_container[ 0 ]
) {
return ( this.active_field = true );
}
return this.close_field();
};
Chosen.prototype.results_build = function () {
this.parsing = true;
this.selected_option_count = null;
this.results_data = SelectParser.select_to_array( this.form_field );
if ( this.is_multiple ) {
this.search_choices.find( 'li.search-choice' ).remove();
} else if ( ! this.is_multiple ) {
this.single_set_selected_text();
if (
this.disable_search ||
this.form_field.options.length <=
this.disable_search_threshold
) {
this.search_field[ 0 ].readOnly = true;
this.container.addClass(
'chosen-container-single-nosearch'
);
} else {
this.search_field[ 0 ].readOnly = false;
this.container.removeClass(
'chosen-container-single-nosearch'
);
}
}
this.update_results_content(
this.results_option_build( {
first: true,
} )
);
this.search_field_disabled();
this.show_search_field_default();
this.search_field_scale();
return ( this.parsing = false );
};
Chosen.prototype.result_do_highlight = function ( el ) {
let high_bottom, high_top, maxHeight, visible_bottom, visible_top;
if ( el.length ) {
this.result_clear_highlight();
this.result_highlight = el;
this.result_highlight.addClass( 'highlighted' );
maxHeight = parseInt(
this.search_results.css( 'maxHeight' ),
10
);
visible_top = this.search_results.scrollTop();
visible_bottom = maxHeight + visible_top;
high_top =
this.result_highlight.position().top +
this.search_results.scrollTop();
high_bottom = high_top + this.result_highlight.outerHeight();
if ( high_bottom >= visible_bottom ) {
return this.search_results.scrollTop(
high_bottom - maxHeight > 0
? high_bottom - maxHeight
: 0
);
} else if ( high_top < visible_top ) {
return this.search_results.scrollTop( high_top );
}
}
};
Chosen.prototype.result_clear_highlight = function () {
if ( this.result_highlight ) {
this.result_highlight.removeClass( 'highlighted' );
}
return ( this.result_highlight = null );
};
Chosen.prototype.results_show = function () {
if (
this.is_multiple &&
this.max_selected_options <= this.choices_count()
) {
this.form_field_jq.trigger( 'chosen:maxselected', {
chosen: this,
} );
return false;
}
this.container.addClass( 'chosen-with-drop' );
this.results_showing = true;
this.search_field.focus();
this.search_field.val( this.search_field.val() );
this.winnow_results();
return this.form_field_jq.trigger( 'chosen:showing_dropdown', {
chosen: this,
} );
};
Chosen.prototype.update_results_content = function ( content ) {
return this.search_results.html( content );
};
Chosen.prototype.results_hide = function () {
if ( this.results_showing ) {
this.result_clear_highlight();
this.container.removeClass( 'chosen-with-drop' );
this.form_field_jq.trigger( 'chosen:hiding_dropdown', {
chosen: this,
} );
}
return ( this.results_showing = false );
};
Chosen.prototype.set_tab_index = function ( el ) {
let ti;
if ( this.form_field.tabIndex ) {
ti = this.form_field.tabIndex;
this.form_field.tabIndex = -1;
return ( this.search_field[ 0 ].tabIndex = ti );
}
};
Chosen.prototype.set_label_behavior = function () {
const _this = this;
this.form_field_label = this.form_field_jq.parents( 'label' );
if ( ! this.form_field_label.length && this.form_field.id.length ) {
this.form_field_label = $(
"label[for='" + this.form_field.id + "']"
);
}
if ( this.form_field_label.length > 0 ) {
return this.form_field_label.bind(
'click.chosen',
function ( evt ) {
if ( _this.is_multiple ) {
return _this.container_mousedown( evt );
}
return _this.activate_field();
}
);
}
};
Chosen.prototype.show_search_field_default = function () {
if (
this.is_multiple &&
this.choices_count() < 1 &&
! this.active_field
) {
this.search_field.val( this.default_text );
return this.search_field.addClass( 'default' );
}
this.search_field.val( '' );
return this.search_field.removeClass( 'default' );
};
Chosen.prototype.search_results_mouseup = function ( evt ) {
let target;
target = $( evt.target ).hasClass( 'active-result' )
? $( evt.target )
: $( evt.target ).parents( '.active-result' ).first();
if ( target.length ) {
this.result_highlight = target;
this.result_select( evt );
return this.search_field.focus();
}
};
Chosen.prototype.search_results_mouseover = function ( evt ) {
let target;
target = $( evt.target ).hasClass( 'active-result' )
? $( evt.target )
: $( evt.target ).parents( '.active-result' ).first();
if ( target ) {
return this.result_do_highlight( target );
}
};
Chosen.prototype.search_results_mouseout = function ( evt ) {
if (
$( evt.target ).hasClass(
'active-result' ||
$( evt.target ).parents( '.active-result' ).first()
)
) {
return this.result_clear_highlight();
}
};
Chosen.prototype.choice_build = function ( item ) {
let choice,
close_link,
_this = this;
choice = $( '<li />', {
class: 'search-choice',
} ).html( '<span>' + item.html + '</span>' );
if ( item.disabled ) {
choice.addClass( 'search-choice-disabled' );
} else {
close_link = $( '<a />', {
class: 'search-choice-close',
'data-option-array-index': item.array_index,
} );
close_link.bind( 'click.chosen', function ( evt ) {
return _this.choice_destroy_link_click( evt );
} );
choice.append( close_link );
}
return this.search_container.before( choice );
};
Chosen.prototype.choice_destroy_link_click = function ( evt ) {
evt.preventDefault();
evt.stopPropagation();
if ( ! this.is_disabled ) {
return this.choice_destroy( $( evt.target ) );
}
};
Chosen.prototype.choice_destroy = function ( link ) {
if (
this.result_deselect(
link[ 0 ].getAttribute( 'data-option-array-index' )
)
) {
this.show_search_field_default();
if (
this.is_multiple &&
this.choices_count() > 0 &&
this.search_field.val().length < 1
) {
this.results_hide();
}
link.parents( 'li' ).first().remove();
return this.search_field_scale();
}
};
Chosen.prototype.results_reset = function () {
this.reset_single_select_options();
this.form_field.options[ 0 ].selected = true;
this.single_set_selected_text();
this.show_search_field_default();
this.results_reset_cleanup();
this.form_field_jq.trigger( 'change' );
if ( this.active_field ) {
return this.results_hide();
}
};
Chosen.prototype.results_reset_cleanup = function () {
this.current_selectedIndex = this.form_field.selectedIndex;
return this.selected_item.find( 'abbr' ).remove();
};
Chosen.prototype.result_select = function ( evt ) {
let high, item;
if ( this.result_highlight ) {
high = this.result_highlight;
this.result_clear_highlight();
if (
this.is_multiple &&
this.max_selected_options <= this.choices_count()
) {
this.form_field_jq.trigger( 'chosen:maxselected', {
chosen: this,
} );
return false;
}
if ( this.is_multiple ) {
high.removeClass( 'active-result' );
} else {
this.reset_single_select_options();
}
item = this.results_data[
high[ 0 ].getAttribute( 'data-option-array-index' )
];
item.selected = true;
this.form_field.options[ item.options_index ].selected = true;
this.selected_option_count = null;
if ( this.is_multiple ) {
this.choice_build( item );
} else {
this.single_set_selected_text( item.text );
}
if (
! ( ( evt.metaKey || evt.ctrlKey ) && this.is_multiple )
) {
this.results_hide();
}
this.search_field.val( '' );
if (
this.is_multiple ||
this.form_field.selectedIndex !== this.current_selectedIndex
) {
this.form_field_jq.trigger( 'change', {
selected: this.form_field.options[ item.options_index ]
.value,
} );
}
this.current_selectedIndex = this.form_field.selectedIndex;
return this.search_field_scale();
}
};
Chosen.prototype.single_set_selected_text = function ( text ) {
if ( text == null ) {
text = this.default_text;
}
if ( text === this.default_text ) {
this.selected_item.addClass( 'chosen-default' );
} else {
this.single_deselect_control_build();
this.selected_item.removeClass( 'chosen-default' );
}
return this.selected_item.find( 'span' ).text( text );
};
Chosen.prototype.result_deselect = function ( pos ) {
let result_data;
result_data = this.results_data[ pos ];
if (
! this.form_field.options[ result_data.options_index ].disabled
) {
result_data.selected = false;
this.form_field.options[
result_data.options_index
].selected = false;
this.selected_option_count = null;
this.result_clear_highlight();
if ( this.results_showing ) {
this.winnow_results();
}
this.form_field_jq.trigger( 'change', {
deselected: this.form_field.options[
result_data.options_index
].value,
} );
this.search_field_scale();
return true;
}
return false;
};
Chosen.prototype.single_deselect_control_build = function () {
if ( ! this.allow_single_deselect ) {
return;
}
if ( ! this.selected_item.find( 'abbr' ).length ) {
this.selected_item
.find( 'span' )
.first()
.after( '<abbr class="search-choice-close"></abbr>' );
}
return this.selected_item.addClass( 'chosen-single-with-deselect' );
};
Chosen.prototype.get_search_text = function () {
if ( this.search_field.val() === this.default_text ) {
return '';
}
return $( '<div/>' )
.text( $.trim( this.search_field.val() ) )
.html();
};
Chosen.prototype.winnow_results_set_highlight = function () {
let do_high, selected_results;
selected_results = ! this.is_multiple
? this.search_results.find( '.result-selected.active-result' )
: [];
do_high = selected_results.length
? selected_results.first()
: this.search_results.find( '.active-result' ).first();
if ( do_high != null ) {
return this.result_do_highlight( do_high );
}
};
Chosen.prototype.no_results = function ( terms ) {
let no_results_html;
no_results_html = $(
'<li class="no-results">' +
this.results_none_found +
' "<span></span>"</li>'
);
no_results_html.find( 'span' ).first().html( terms );
this.search_results.append( no_results_html );
return 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 () {
let next_sib;
if ( this.results_showing && this.result_highlight ) {
next_sib = this.result_highlight
.nextAll( 'li.active-result' )
.first();
if ( next_sib ) {
return this.result_do_highlight( next_sib );
}
} else {
return this.results_show();
}
};
Chosen.prototype.keyup_arrow = function () {
let prev_sibs;
if ( ! this.results_showing && ! this.is_multiple ) {
return this.results_show();
} else if ( this.result_highlight ) {
prev_sibs = this.result_highlight.prevAll( 'li.active-result' );
if ( prev_sibs.length ) {
return this.result_do_highlight( prev_sibs.first() );
}
if ( this.choices_count() > 0 ) {
this.results_hide();
}
return this.result_clear_highlight();
}
};
Chosen.prototype.keydown_backstroke = function () {
let next_available_destroy;
if ( this.pending_backstroke ) {
this.choice_destroy(
this.pending_backstroke.find( 'a' ).first()
);
return this.clear_backstroke();
}
next_available_destroy = this.search_container
.siblings( 'li.search-choice' )
.last();
if (
next_available_destroy.length &&
! next_available_destroy.hasClass( 'search-choice-disabled' )
) {
this.pending_backstroke = next_available_destroy;
if ( this.single_backstroke_delete ) {
return this.keydown_backstroke();
}
return this.pending_backstroke.addClass(
'search-choice-focus'
);
}
};
Chosen.prototype.clear_backstroke = function () {
if ( this.pending_backstroke ) {
this.pending_backstroke.removeClass( 'search-choice-focus' );
}
return ( this.pending_backstroke = null );
};
Chosen.prototype.keydown_checker = function ( evt ) {
let stroke, _ref1;
stroke = ( _ref1 = evt.which ) != null ? _ref1 : evt.keyCode;
this.search_field_scale();
if ( stroke !== 8 && this.pending_backstroke ) {
this.clear_backstroke();
}
switch ( stroke ) {
case 8:
this.backstroke_length = this.search_field.val().length;
break;
case 9:
if ( this.results_showing && ! this.is_multiple ) {
this.result_select( evt );
}
this.mouse_on_container = false;
break;
case 13:
if ( this.results_showing ) {
evt.preventDefault();
}
break;
case 32:
if ( this.disable_search ) {
evt.preventDefault();
}
break;
case 38:
evt.preventDefault();
this.keyup_arrow();
break;
case 40:
evt.preventDefault();
this.keydown_arrow();
break;
}
};
Chosen.prototype.search_field_scale = function () {
let div, f_width, h, style, style_block, styles, w, _i, _len;
if ( this.is_multiple ) {
h = 0;
w = 0;
style_block =
'position:absolute; left: -1000px; top: -1000px; display:none;';
styles = [
'font-size',
'font-style',
'font-weight',
'font-family',
'line-height',
'text-transform',
'letter-spacing',
];
for ( _i = 0, _len = styles.length; _i < _len; _i++ ) {
style = styles[ _i ];
style_block +=
style + ':' + this.search_field.css( style ) + ';';
}
div = $( '<div />', {
style: style_block,
} );
div.text( this.search_field.val() );
$( 'body' ).append( div );
w = div.width() + 25;
div.remove();
f_width = this.container.outerWidth();
if ( w > f_width - 10 ) {
w = f_width - 10;
}
return this.search_field.css( {
width: w + 'px',
} );
}
};
return Chosen;
} )( AbstractChosen );
}.call( this ) );