4528 lines
112 KiB
JavaScript
4528 lines
112 KiB
JavaScript
|
/*
|
||
|
Copyright 2014 Igor Vaynberg
|
||
|
|
||
|
Version: 3.5.2 Timestamp: Sat Nov 1 14:43:36 EDT 2014
|
||
|
|
||
|
This software is licensed under the Apache License, Version 2.0 (the "Apache License") or the GNU
|
||
|
General Public License version 2 (the "GPL License"). You may choose either license to govern your
|
||
|
use of this software only upon the condition that you accept all of the terms of either the Apache
|
||
|
License or the GPL License.
|
||
|
|
||
|
You may obtain a copy of the Apache License and the GPL License at:
|
||
|
|
||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||
|
http://www.gnu.org/licenses/gpl-2.0.html
|
||
|
|
||
|
Unless required by applicable law or agreed to in writing, software distributed under the Apache License
|
||
|
or the GPL Licesnse is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||
|
either express or implied. See the Apache License and the GPL License for the specific language governing
|
||
|
permissions and limitations under the Apache License and the GPL License.
|
||
|
*/
|
||
|
! ( function ( a ) {
|
||
|
'undefined' == typeof a.fn.each2 &&
|
||
|
a.extend( a.fn, {
|
||
|
each2: function ( b ) {
|
||
|
for (
|
||
|
var c = a( [ 0 ] ), d = -1, e = this.length;
|
||
|
++d < e &&
|
||
|
( c.context = c[ 0 ] = this[ d ] ) &&
|
||
|
b.call( c[ 0 ], d, c ) !== ! 1;
|
||
|
|
||
|
);
|
||
|
return this;
|
||
|
},
|
||
|
} );
|
||
|
} )( jQuery ),
|
||
|
( function ( a, b ) {
|
||
|
'use strict';
|
||
|
function n( b ) {
|
||
|
var c = a( document.createTextNode( '' ) );
|
||
|
b.before( c ), c.before( b ), c.remove();
|
||
|
}
|
||
|
function o( a ) {
|
||
|
function b( a ) {
|
||
|
return m[ a ] || a;
|
||
|
}
|
||
|
return a.replace( /[^\u0000-\u007E]/g, b );
|
||
|
}
|
||
|
function p( a, b ) {
|
||
|
for ( var c = 0, d = b.length; d > c; c += 1 )
|
||
|
if ( r( a, b[ c ] ) ) return c;
|
||
|
return -1;
|
||
|
}
|
||
|
function q() {
|
||
|
var b = a( l );
|
||
|
b.appendTo( document.body );
|
||
|
var c = {
|
||
|
width: b.width() - b[ 0 ].clientWidth,
|
||
|
height: b.height() - b[ 0 ].clientHeight,
|
||
|
};
|
||
|
return b.remove(), c;
|
||
|
}
|
||
|
function r( a, c ) {
|
||
|
return a === c
|
||
|
? ! 0
|
||
|
: a === b || c === b
|
||
|
? ! 1
|
||
|
: null === a || null === c
|
||
|
? ! 1
|
||
|
: a.constructor === String
|
||
|
? a + '' == c + ''
|
||
|
: c.constructor === String
|
||
|
? c + '' == a + ''
|
||
|
: ! 1;
|
||
|
}
|
||
|
function s( a, b, c ) {
|
||
|
var d, e, f;
|
||
|
if ( null === a || a.length < 1 ) return [];
|
||
|
for ( d = a.split( b ), e = 0, f = d.length; f > e; e += 1 )
|
||
|
d[ e ] = c( d[ e ] );
|
||
|
return d;
|
||
|
}
|
||
|
function t( a ) {
|
||
|
return a.outerWidth( ! 1 ) - a.width();
|
||
|
}
|
||
|
function u( c ) {
|
||
|
var d = 'keyup-change-value';
|
||
|
c.on( 'keydown', function () {
|
||
|
a.data( c, d ) === b && a.data( c, d, c.val() );
|
||
|
} ),
|
||
|
c.on( 'keyup', function () {
|
||
|
var e = a.data( c, d );
|
||
|
e !== b &&
|
||
|
c.val() !== e &&
|
||
|
( a.removeData( c, d ), c.trigger( 'keyup-change' ) );
|
||
|
} );
|
||
|
}
|
||
|
function v( c ) {
|
||
|
c.on( 'mousemove', function ( c ) {
|
||
|
var d = h;
|
||
|
( d === b || d.x !== c.pageX || d.y !== c.pageY ) &&
|
||
|
a( c.target ).trigger( 'mousemove-filtered', c );
|
||
|
} );
|
||
|
}
|
||
|
function w( a, c, d ) {
|
||
|
d = d || b;
|
||
|
var e;
|
||
|
return function () {
|
||
|
var b = arguments;
|
||
|
window.clearTimeout( e ),
|
||
|
( e = window.setTimeout( function () {
|
||
|
c.apply( d, b );
|
||
|
}, a ) );
|
||
|
};
|
||
|
}
|
||
|
function x( a, b ) {
|
||
|
var c = w( a, function ( a ) {
|
||
|
b.trigger( 'scroll-debounced', a );
|
||
|
} );
|
||
|
b.on( 'scroll', function ( a ) {
|
||
|
p( a.target, b.get() ) >= 0 && c( a );
|
||
|
} );
|
||
|
}
|
||
|
function y( a ) {
|
||
|
a[ 0 ] !== document.activeElement &&
|
||
|
window.setTimeout( function () {
|
||
|
var d,
|
||
|
b = a[ 0 ],
|
||
|
c = a.val().length;
|
||
|
a.focus();
|
||
|
var e = b.offsetWidth > 0 || b.offsetHeight > 0;
|
||
|
e &&
|
||
|
b === document.activeElement &&
|
||
|
( b.setSelectionRange
|
||
|
? b.setSelectionRange( c, c )
|
||
|
: b.createTextRange &&
|
||
|
( ( d = b.createTextRange() ),
|
||
|
d.collapse( ! 1 ),
|
||
|
d.select() ) );
|
||
|
}, 0 );
|
||
|
}
|
||
|
function z( b ) {
|
||
|
b = a( b )[ 0 ];
|
||
|
var c = 0,
|
||
|
d = 0;
|
||
|
if ( 'selectionStart' in b )
|
||
|
( c = b.selectionStart ), ( d = b.selectionEnd - c );
|
||
|
else if ( 'selection' in document ) {
|
||
|
b.focus();
|
||
|
var e = document.selection.createRange();
|
||
|
( d = document.selection.createRange().text.length ),
|
||
|
e.moveStart( 'character', -b.value.length ),
|
||
|
( c = e.text.length - d );
|
||
|
}
|
||
|
return { offset: c, length: d };
|
||
|
}
|
||
|
function A( a ) {
|
||
|
a.preventDefault(), a.stopPropagation();
|
||
|
}
|
||
|
function B( a ) {
|
||
|
a.preventDefault(), a.stopImmediatePropagation();
|
||
|
}
|
||
|
function C( b ) {
|
||
|
if ( ! g ) {
|
||
|
var c =
|
||
|
b[ 0 ].currentStyle ||
|
||
|
window.getComputedStyle( b[ 0 ], null );
|
||
|
( g = a( document.createElement( 'div' ) ).css( {
|
||
|
position: 'absolute',
|
||
|
left: '-10000px',
|
||
|
top: '-10000px',
|
||
|
display: 'none',
|
||
|
fontSize: c.fontSize,
|
||
|
fontFamily: c.fontFamily,
|
||
|
fontStyle: c.fontStyle,
|
||
|
fontWeight: c.fontWeight,
|
||
|
letterSpacing: c.letterSpacing,
|
||
|
textTransform: c.textTransform,
|
||
|
whiteSpace: 'nowrap',
|
||
|
} ) ),
|
||
|
g.attr( 'class', 'select2-sizer' ),
|
||
|
a( document.body ).append( g );
|
||
|
}
|
||
|
return g.text( b.val() ), g.width();
|
||
|
}
|
||
|
function D( b, c, d ) {
|
||
|
var e,
|
||
|
g,
|
||
|
f = [];
|
||
|
( e = a.trim( b.attr( 'class' ) ) ),
|
||
|
e &&
|
||
|
( ( e = '' + e ),
|
||
|
a( e.split( /\s+/ ) ).each2( function () {
|
||
|
0 === this.indexOf( 'select2-' ) && f.push( this );
|
||
|
} ) ),
|
||
|
( e = a.trim( c.attr( 'class' ) ) ),
|
||
|
e &&
|
||
|
( ( e = '' + e ),
|
||
|
a( e.split( /\s+/ ) ).each2( function () {
|
||
|
0 !== this.indexOf( 'select2-' ) &&
|
||
|
( ( g = d( this ) ), g && f.push( g ) );
|
||
|
} ) ),
|
||
|
b.attr( 'class', f.join( ' ' ) );
|
||
|
}
|
||
|
function E( a, b, c, d ) {
|
||
|
var e = o( a.toUpperCase() ).indexOf( o( b.toUpperCase() ) ),
|
||
|
f = b.length;
|
||
|
return 0 > e
|
||
|
? ( c.push( d( a ) ), void 0 )
|
||
|
: ( c.push( d( a.substring( 0, e ) ) ),
|
||
|
c.push( "<span class='select2-match'>" ),
|
||
|
c.push( d( a.substring( e, e + f ) ) ),
|
||
|
c.push( '</span>' ),
|
||
|
c.push( d( a.substring( e + f, a.length ) ) ),
|
||
|
void 0 );
|
||
|
}
|
||
|
function F( a ) {
|
||
|
var b = {
|
||
|
'\\': '\',
|
||
|
'&': '&',
|
||
|
'<': '<',
|
||
|
'>': '>',
|
||
|
'"': '"',
|
||
|
"'": ''',
|
||
|
'/': '/',
|
||
|
};
|
||
|
return String( a ).replace( /[&<>"'\/\\]/g, function ( a ) {
|
||
|
return b[ a ];
|
||
|
} );
|
||
|
}
|
||
|
function G( c ) {
|
||
|
var d,
|
||
|
e = null,
|
||
|
f = c.quietMillis || 100,
|
||
|
g = c.url,
|
||
|
h = this;
|
||
|
return function ( i ) {
|
||
|
window.clearTimeout( d ),
|
||
|
( d = window.setTimeout( function () {
|
||
|
var d = c.data,
|
||
|
f = g,
|
||
|
j =
|
||
|
c.transport ||
|
||
|
a.fn.select2.ajaxDefaults.transport,
|
||
|
k = {
|
||
|
type: c.type || 'GET',
|
||
|
cache: c.cache || ! 1,
|
||
|
jsonpCallback: c.jsonpCallback || b,
|
||
|
dataType: c.dataType || 'json',
|
||
|
},
|
||
|
l = a.extend(
|
||
|
{},
|
||
|
a.fn.select2.ajaxDefaults.params,
|
||
|
k
|
||
|
);
|
||
|
( d = d
|
||
|
? d.call( h, i.term, i.page, i.context )
|
||
|
: null ),
|
||
|
( f =
|
||
|
'function' == typeof f
|
||
|
? f.call( h, i.term, i.page, i.context )
|
||
|
: f ),
|
||
|
e && 'function' == typeof e.abort && e.abort(),
|
||
|
c.params &&
|
||
|
( a.isFunction( c.params )
|
||
|
? a.extend( l, c.params.call( h ) )
|
||
|
: a.extend( l, c.params ) ),
|
||
|
a.extend( l, {
|
||
|
url: f,
|
||
|
dataType: c.dataType,
|
||
|
data: d,
|
||
|
success: function ( a ) {
|
||
|
var b = c.results( a, i.page, i );
|
||
|
i.callback( b );
|
||
|
},
|
||
|
error: function ( a, b, c ) {
|
||
|
var d = {
|
||
|
hasError: ! 0,
|
||
|
jqXHR: a,
|
||
|
textStatus: b,
|
||
|
errorThrown: c,
|
||
|
};
|
||
|
i.callback( d );
|
||
|
},
|
||
|
} ),
|
||
|
( e = j.call( h, l ) );
|
||
|
}, f ) );
|
||
|
};
|
||
|
}
|
||
|
function H( b ) {
|
||
|
var d,
|
||
|
e,
|
||
|
c = b,
|
||
|
f = function ( a ) {
|
||
|
return '' + a.text;
|
||
|
};
|
||
|
a.isArray( c ) && ( ( e = c ), ( c = { results: e } ) ),
|
||
|
a.isFunction( c ) === ! 1 &&
|
||
|
( ( e = c ),
|
||
|
( c = function () {
|
||
|
return e;
|
||
|
} ) );
|
||
|
var g = c();
|
||
|
return (
|
||
|
g.text &&
|
||
|
( ( f = g.text ),
|
||
|
a.isFunction( f ) ||
|
||
|
( ( d = g.text ),
|
||
|
( f = function ( a ) {
|
||
|
return a[ d ];
|
||
|
} ) ) ),
|
||
|
function ( b ) {
|
||
|
var g,
|
||
|
d = b.term,
|
||
|
e = { results: [] };
|
||
|
return '' === d
|
||
|
? ( b.callback( c() ), void 0 )
|
||
|
: ( ( g = function ( c, e ) {
|
||
|
var h, i;
|
||
|
if ( ( ( c = c[ 0 ] ), c.children ) ) {
|
||
|
h = {};
|
||
|
for ( i in c )
|
||
|
c.hasOwnProperty( i ) &&
|
||
|
( h[ i ] = c[ i ] );
|
||
|
( h.children = [] ),
|
||
|
a( c.children ).each2( function (
|
||
|
a,
|
||
|
b
|
||
|
) {
|
||
|
g( b, h.children );
|
||
|
} ),
|
||
|
( h.children.length ||
|
||
|
b.matcher( d, f( h ), c ) ) &&
|
||
|
e.push( h );
|
||
|
} else b.matcher( d, f( c ), c ) && e.push( c );
|
||
|
} ),
|
||
|
a( c().results ).each2( function ( a, b ) {
|
||
|
g( b, e.results );
|
||
|
} ),
|
||
|
b.callback( e ),
|
||
|
void 0 );
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
function I( c ) {
|
||
|
var d = a.isFunction( c );
|
||
|
return function ( e ) {
|
||
|
var f = e.term,
|
||
|
g = { results: [] },
|
||
|
h = d ? c( e ) : c;
|
||
|
a.isArray( h ) &&
|
||
|
( a( h ).each( function () {
|
||
|
var a = this.text !== b,
|
||
|
c = a ? this.text : this;
|
||
|
( '' === f || e.matcher( f, c ) ) &&
|
||
|
g.results.push(
|
||
|
a ? this : { id: this, text: this }
|
||
|
);
|
||
|
} ),
|
||
|
e.callback( g ) );
|
||
|
};
|
||
|
}
|
||
|
function J( b, c ) {
|
||
|
if ( a.isFunction( b ) ) return ! 0;
|
||
|
if ( ! b ) return ! 1;
|
||
|
if ( 'string' == typeof b ) return ! 0;
|
||
|
throw new Error(
|
||
|
c + ' must be a string, function, or falsy value'
|
||
|
);
|
||
|
}
|
||
|
function K( b, c ) {
|
||
|
if ( a.isFunction( b ) ) {
|
||
|
var d = Array.prototype.slice.call( arguments, 2 );
|
||
|
return b.apply( c, d );
|
||
|
}
|
||
|
return b;
|
||
|
}
|
||
|
function L( b ) {
|
||
|
var c = 0;
|
||
|
return (
|
||
|
a.each( b, function ( a, b ) {
|
||
|
b.children ? ( c += L( b.children ) ) : c++;
|
||
|
} ),
|
||
|
c
|
||
|
);
|
||
|
}
|
||
|
function M( a, c, d, e ) {
|
||
|
var h,
|
||
|
i,
|
||
|
j,
|
||
|
k,
|
||
|
l,
|
||
|
f = a,
|
||
|
g = ! 1;
|
||
|
if (
|
||
|
! e.createSearchChoice ||
|
||
|
! e.tokenSeparators ||
|
||
|
e.tokenSeparators.length < 1
|
||
|
)
|
||
|
return b;
|
||
|
for (;;) {
|
||
|
for (
|
||
|
i = -1, j = 0, k = e.tokenSeparators.length;
|
||
|
k > j &&
|
||
|
( ( l = e.tokenSeparators[ j ] ),
|
||
|
( i = a.indexOf( l ) ),
|
||
|
! ( i >= 0 ) );
|
||
|
j++
|
||
|
);
|
||
|
if ( 0 > i ) break;
|
||
|
if (
|
||
|
( ( h = a.substring( 0, i ) ),
|
||
|
( a = a.substring( i + l.length ) ),
|
||
|
h.length > 0 &&
|
||
|
( ( h = e.createSearchChoice.call( this, h, c ) ),
|
||
|
h !== b &&
|
||
|
null !== h &&
|
||
|
e.id( h ) !== b &&
|
||
|
null !== e.id( h ) ) )
|
||
|
) {
|
||
|
for ( g = ! 1, j = 0, k = c.length; k > j; j++ )
|
||
|
if ( r( e.id( h ), e.id( c[ j ] ) ) ) {
|
||
|
g = ! 0;
|
||
|
break;
|
||
|
}
|
||
|
g || d( h );
|
||
|
}
|
||
|
}
|
||
|
return f !== a ? a : void 0;
|
||
|
}
|
||
|
function N() {
|
||
|
var b = this;
|
||
|
a.each( arguments, function ( a, c ) {
|
||
|
b[ c ].remove(), ( b[ c ] = null );
|
||
|
} );
|
||
|
}
|
||
|
function O( b, c ) {
|
||
|
var d = function () {};
|
||
|
return (
|
||
|
( d.prototype = new b() ),
|
||
|
( d.prototype.constructor = d ),
|
||
|
( d.prototype.parent = b.prototype ),
|
||
|
( d.prototype = a.extend( d.prototype, c ) ),
|
||
|
d
|
||
|
);
|
||
|
}
|
||
|
if ( window.Select2 === b ) {
|
||
|
var c,
|
||
|
d,
|
||
|
e,
|
||
|
f,
|
||
|
g,
|
||
|
i,
|
||
|
j,
|
||
|
h = { x: 0, y: 0 },
|
||
|
k = {
|
||
|
TAB: 9,
|
||
|
ENTER: 13,
|
||
|
ESC: 27,
|
||
|
SPACE: 32,
|
||
|
LEFT: 37,
|
||
|
UP: 38,
|
||
|
RIGHT: 39,
|
||
|
DOWN: 40,
|
||
|
SHIFT: 16,
|
||
|
CTRL: 17,
|
||
|
ALT: 18,
|
||
|
PAGE_UP: 33,
|
||
|
PAGE_DOWN: 34,
|
||
|
HOME: 36,
|
||
|
END: 35,
|
||
|
BACKSPACE: 8,
|
||
|
DELETE: 46,
|
||
|
isArrow: function ( a ) {
|
||
|
switch ( ( a = a.which ? a.which : a ) ) {
|
||
|
case k.LEFT:
|
||
|
case k.RIGHT:
|
||
|
case k.UP:
|
||
|
case k.DOWN:
|
||
|
return ! 0;
|
||
|
}
|
||
|
return ! 1;
|
||
|
},
|
||
|
isControl: function ( a ) {
|
||
|
var b = a.which;
|
||
|
switch ( b ) {
|
||
|
case k.SHIFT:
|
||
|
case k.CTRL:
|
||
|
case k.ALT:
|
||
|
return ! 0;
|
||
|
}
|
||
|
return a.metaKey ? ! 0 : ! 1;
|
||
|
},
|
||
|
isFunctionKey: function ( a ) {
|
||
|
return (
|
||
|
( a = a.which ? a.which : a ), a >= 112 && 123 >= a
|
||
|
);
|
||
|
},
|
||
|
},
|
||
|
l = "<div class='select2-measure-scrollbar'></div>",
|
||
|
m = {
|
||
|
'\u24b6': 'A',
|
||
|
'\uff21': 'A',
|
||
|
'\xc0': 'A',
|
||
|
'\xc1': 'A',
|
||
|
'\xc2': 'A',
|
||
|
'\u1ea6': 'A',
|
||
|
'\u1ea4': 'A',
|
||
|
'\u1eaa': 'A',
|
||
|
'\u1ea8': 'A',
|
||
|
'\xc3': 'A',
|
||
|
'\u0100': 'A',
|
||
|
'\u0102': 'A',
|
||
|
'\u1eb0': 'A',
|
||
|
'\u1eae': 'A',
|
||
|
'\u1eb4': 'A',
|
||
|
'\u1eb2': 'A',
|
||
|
'\u0226': 'A',
|
||
|
'\u01e0': 'A',
|
||
|
'\xc4': 'A',
|
||
|
'\u01de': 'A',
|
||
|
'\u1ea2': 'A',
|
||
|
'\xc5': 'A',
|
||
|
'\u01fa': 'A',
|
||
|
'\u01cd': 'A',
|
||
|
'\u0200': 'A',
|
||
|
'\u0202': 'A',
|
||
|
'\u1ea0': 'A',
|
||
|
'\u1eac': 'A',
|
||
|
'\u1eb6': 'A',
|
||
|
'\u1e00': 'A',
|
||
|
'\u0104': 'A',
|
||
|
'\u023a': 'A',
|
||
|
'\u2c6f': 'A',
|
||
|
'\ua732': 'AA',
|
||
|
'\xc6': 'AE',
|
||
|
'\u01fc': 'AE',
|
||
|
'\u01e2': 'AE',
|
||
|
'\ua734': 'AO',
|
||
|
'\ua736': 'AU',
|
||
|
'\ua738': 'AV',
|
||
|
'\ua73a': 'AV',
|
||
|
'\ua73c': 'AY',
|
||
|
'\u24b7': 'B',
|
||
|
'\uff22': 'B',
|
||
|
'\u1e02': 'B',
|
||
|
'\u1e04': 'B',
|
||
|
'\u1e06': 'B',
|
||
|
'\u0243': 'B',
|
||
|
'\u0182': 'B',
|
||
|
'\u0181': 'B',
|
||
|
'\u24b8': 'C',
|
||
|
'\uff23': 'C',
|
||
|
'\u0106': 'C',
|
||
|
'\u0108': 'C',
|
||
|
'\u010a': 'C',
|
||
|
'\u010c': 'C',
|
||
|
'\xc7': 'C',
|
||
|
'\u1e08': 'C',
|
||
|
'\u0187': 'C',
|
||
|
'\u023b': 'C',
|
||
|
'\ua73e': 'C',
|
||
|
'\u24b9': 'D',
|
||
|
'\uff24': 'D',
|
||
|
'\u1e0a': 'D',
|
||
|
'\u010e': 'D',
|
||
|
'\u1e0c': 'D',
|
||
|
'\u1e10': 'D',
|
||
|
'\u1e12': 'D',
|
||
|
'\u1e0e': 'D',
|
||
|
'\u0110': 'D',
|
||
|
'\u018b': 'D',
|
||
|
'\u018a': 'D',
|
||
|
'\u0189': 'D',
|
||
|
'\ua779': 'D',
|
||
|
'\u01f1': 'DZ',
|
||
|
'\u01c4': 'DZ',
|
||
|
'\u01f2': 'Dz',
|
||
|
'\u01c5': 'Dz',
|
||
|
'\u24ba': 'E',
|
||
|
'\uff25': 'E',
|
||
|
'\xc8': 'E',
|
||
|
'\xc9': 'E',
|
||
|
'\xca': 'E',
|
||
|
'\u1ec0': 'E',
|
||
|
'\u1ebe': 'E',
|
||
|
'\u1ec4': 'E',
|
||
|
'\u1ec2': 'E',
|
||
|
'\u1ebc': 'E',
|
||
|
'\u0112': 'E',
|
||
|
'\u1e14': 'E',
|
||
|
'\u1e16': 'E',
|
||
|
'\u0114': 'E',
|
||
|
'\u0116': 'E',
|
||
|
'\xcb': 'E',
|
||
|
'\u1eba': 'E',
|
||
|
'\u011a': 'E',
|
||
|
'\u0204': 'E',
|
||
|
'\u0206': 'E',
|
||
|
'\u1eb8': 'E',
|
||
|
'\u1ec6': 'E',
|
||
|
'\u0228': 'E',
|
||
|
'\u1e1c': 'E',
|
||
|
'\u0118': 'E',
|
||
|
'\u1e18': 'E',
|
||
|
'\u1e1a': 'E',
|
||
|
'\u0190': 'E',
|
||
|
'\u018e': 'E',
|
||
|
'\u24bb': 'F',
|
||
|
'\uff26': 'F',
|
||
|
'\u1e1e': 'F',
|
||
|
'\u0191': 'F',
|
||
|
'\ua77b': 'F',
|
||
|
'\u24bc': 'G',
|
||
|
'\uff27': 'G',
|
||
|
'\u01f4': 'G',
|
||
|
'\u011c': 'G',
|
||
|
'\u1e20': 'G',
|
||
|
'\u011e': 'G',
|
||
|
'\u0120': 'G',
|
||
|
'\u01e6': 'G',
|
||
|
'\u0122': 'G',
|
||
|
'\u01e4': 'G',
|
||
|
'\u0193': 'G',
|
||
|
'\ua7a0': 'G',
|
||
|
'\ua77d': 'G',
|
||
|
'\ua77e': 'G',
|
||
|
'\u24bd': 'H',
|
||
|
'\uff28': 'H',
|
||
|
'\u0124': 'H',
|
||
|
'\u1e22': 'H',
|
||
|
'\u1e26': 'H',
|
||
|
'\u021e': 'H',
|
||
|
'\u1e24': 'H',
|
||
|
'\u1e28': 'H',
|
||
|
'\u1e2a': 'H',
|
||
|
'\u0126': 'H',
|
||
|
'\u2c67': 'H',
|
||
|
'\u2c75': 'H',
|
||
|
'\ua78d': 'H',
|
||
|
'\u24be': 'I',
|
||
|
'\uff29': 'I',
|
||
|
'\xcc': 'I',
|
||
|
'\xcd': 'I',
|
||
|
'\xce': 'I',
|
||
|
'\u0128': 'I',
|
||
|
'\u012a': 'I',
|
||
|
'\u012c': 'I',
|
||
|
'\u0130': 'I',
|
||
|
'\xcf': 'I',
|
||
|
'\u1e2e': 'I',
|
||
|
'\u1ec8': 'I',
|
||
|
'\u01cf': 'I',
|
||
|
'\u0208': 'I',
|
||
|
'\u020a': 'I',
|
||
|
'\u1eca': 'I',
|
||
|
'\u012e': 'I',
|
||
|
'\u1e2c': 'I',
|
||
|
'\u0197': 'I',
|
||
|
'\u24bf': 'J',
|
||
|
'\uff2a': 'J',
|
||
|
'\u0134': 'J',
|
||
|
'\u0248': 'J',
|
||
|
'\u24c0': 'K',
|
||
|
'\uff2b': 'K',
|
||
|
'\u1e30': 'K',
|
||
|
'\u01e8': 'K',
|
||
|
'\u1e32': 'K',
|
||
|
'\u0136': 'K',
|
||
|
'\u1e34': 'K',
|
||
|
'\u0198': 'K',
|
||
|
'\u2c69': 'K',
|
||
|
'\ua740': 'K',
|
||
|
'\ua742': 'K',
|
||
|
'\ua744': 'K',
|
||
|
'\ua7a2': 'K',
|
||
|
'\u24c1': 'L',
|
||
|
'\uff2c': 'L',
|
||
|
'\u013f': 'L',
|
||
|
'\u0139': 'L',
|
||
|
'\u013d': 'L',
|
||
|
'\u1e36': 'L',
|
||
|
'\u1e38': 'L',
|
||
|
'\u013b': 'L',
|
||
|
'\u1e3c': 'L',
|
||
|
'\u1e3a': 'L',
|
||
|
'\u0141': 'L',
|
||
|
'\u023d': 'L',
|
||
|
'\u2c62': 'L',
|
||
|
'\u2c60': 'L',
|
||
|
'\ua748': 'L',
|
||
|
'\ua746': 'L',
|
||
|
'\ua780': 'L',
|
||
|
'\u01c7': 'LJ',
|
||
|
'\u01c8': 'Lj',
|
||
|
'\u24c2': 'M',
|
||
|
'\uff2d': 'M',
|
||
|
'\u1e3e': 'M',
|
||
|
'\u1e40': 'M',
|
||
|
'\u1e42': 'M',
|
||
|
'\u2c6e': 'M',
|
||
|
'\u019c': 'M',
|
||
|
'\u24c3': 'N',
|
||
|
'\uff2e': 'N',
|
||
|
'\u01f8': 'N',
|
||
|
'\u0143': 'N',
|
||
|
'\xd1': 'N',
|
||
|
'\u1e44': 'N',
|
||
|
'\u0147': 'N',
|
||
|
'\u1e46': 'N',
|
||
|
'\u0145': 'N',
|
||
|
'\u1e4a': 'N',
|
||
|
'\u1e48': 'N',
|
||
|
'\u0220': 'N',
|
||
|
'\u019d': 'N',
|
||
|
'\ua790': 'N',
|
||
|
'\ua7a4': 'N',
|
||
|
'\u01ca': 'NJ',
|
||
|
'\u01cb': 'Nj',
|
||
|
'\u24c4': 'O',
|
||
|
'\uff2f': 'O',
|
||
|
'\xd2': 'O',
|
||
|
'\xd3': 'O',
|
||
|
'\xd4': 'O',
|
||
|
'\u1ed2': 'O',
|
||
|
'\u1ed0': 'O',
|
||
|
'\u1ed6': 'O',
|
||
|
'\u1ed4': 'O',
|
||
|
'\xd5': 'O',
|
||
|
'\u1e4c': 'O',
|
||
|
'\u022c': 'O',
|
||
|
'\u1e4e': 'O',
|
||
|
'\u014c': 'O',
|
||
|
'\u1e50': 'O',
|
||
|
'\u1e52': 'O',
|
||
|
'\u014e': 'O',
|
||
|
'\u022e': 'O',
|
||
|
'\u0230': 'O',
|
||
|
'\xd6': 'O',
|
||
|
'\u022a': 'O',
|
||
|
'\u1ece': 'O',
|
||
|
'\u0150': 'O',
|
||
|
'\u01d1': 'O',
|
||
|
'\u020c': 'O',
|
||
|
'\u020e': 'O',
|
||
|
'\u01a0': 'O',
|
||
|
'\u1edc': 'O',
|
||
|
'\u1eda': 'O',
|
||
|
'\u1ee0': 'O',
|
||
|
'\u1ede': 'O',
|
||
|
'\u1ee2': 'O',
|
||
|
'\u1ecc': 'O',
|
||
|
'\u1ed8': 'O',
|
||
|
'\u01ea': 'O',
|
||
|
'\u01ec': 'O',
|
||
|
'\xd8': 'O',
|
||
|
'\u01fe': 'O',
|
||
|
'\u0186': 'O',
|
||
|
'\u019f': 'O',
|
||
|
'\ua74a': 'O',
|
||
|
'\ua74c': 'O',
|
||
|
'\u01a2': 'OI',
|
||
|
'\ua74e': 'OO',
|
||
|
'\u0222': 'OU',
|
||
|
'\u24c5': 'P',
|
||
|
'\uff30': 'P',
|
||
|
'\u1e54': 'P',
|
||
|
'\u1e56': 'P',
|
||
|
'\u01a4': 'P',
|
||
|
'\u2c63': 'P',
|
||
|
'\ua750': 'P',
|
||
|
'\ua752': 'P',
|
||
|
'\ua754': 'P',
|
||
|
'\u24c6': 'Q',
|
||
|
'\uff31': 'Q',
|
||
|
'\ua756': 'Q',
|
||
|
'\ua758': 'Q',
|
||
|
'\u024a': 'Q',
|
||
|
'\u24c7': 'R',
|
||
|
'\uff32': 'R',
|
||
|
'\u0154': 'R',
|
||
|
'\u1e58': 'R',
|
||
|
'\u0158': 'R',
|
||
|
'\u0210': 'R',
|
||
|
'\u0212': 'R',
|
||
|
'\u1e5a': 'R',
|
||
|
'\u1e5c': 'R',
|
||
|
'\u0156': 'R',
|
||
|
'\u1e5e': 'R',
|
||
|
'\u024c': 'R',
|
||
|
'\u2c64': 'R',
|
||
|
'\ua75a': 'R',
|
||
|
'\ua7a6': 'R',
|
||
|
'\ua782': 'R',
|
||
|
'\u24c8': 'S',
|
||
|
'\uff33': 'S',
|
||
|
'\u1e9e': 'S',
|
||
|
'\u015a': 'S',
|
||
|
'\u1e64': 'S',
|
||
|
'\u015c': 'S',
|
||
|
'\u1e60': 'S',
|
||
|
'\u0160': 'S',
|
||
|
'\u1e66': 'S',
|
||
|
'\u1e62': 'S',
|
||
|
'\u1e68': 'S',
|
||
|
'\u0218': 'S',
|
||
|
'\u015e': 'S',
|
||
|
'\u2c7e': 'S',
|
||
|
'\ua7a8': 'S',
|
||
|
'\ua784': 'S',
|
||
|
'\u24c9': 'T',
|
||
|
'\uff34': 'T',
|
||
|
'\u1e6a': 'T',
|
||
|
'\u0164': 'T',
|
||
|
'\u1e6c': 'T',
|
||
|
'\u021a': 'T',
|
||
|
'\u0162': 'T',
|
||
|
'\u1e70': 'T',
|
||
|
'\u1e6e': 'T',
|
||
|
'\u0166': 'T',
|
||
|
'\u01ac': 'T',
|
||
|
'\u01ae': 'T',
|
||
|
'\u023e': 'T',
|
||
|
'\ua786': 'T',
|
||
|
'\ua728': 'TZ',
|
||
|
'\u24ca': 'U',
|
||
|
'\uff35': 'U',
|
||
|
'\xd9': 'U',
|
||
|
'\xda': 'U',
|
||
|
'\xdb': 'U',
|
||
|
'\u0168': 'U',
|
||
|
'\u1e78': 'U',
|
||
|
'\u016a': 'U',
|
||
|
'\u1e7a': 'U',
|
||
|
'\u016c': 'U',
|
||
|
'\xdc': 'U',
|
||
|
'\u01db': 'U',
|
||
|
'\u01d7': 'U',
|
||
|
'\u01d5': 'U',
|
||
|
'\u01d9': 'U',
|
||
|
'\u1ee6': 'U',
|
||
|
'\u016e': 'U',
|
||
|
'\u0170': 'U',
|
||
|
'\u01d3': 'U',
|
||
|
'\u0214': 'U',
|
||
|
'\u0216': 'U',
|
||
|
'\u01af': 'U',
|
||
|
'\u1eea': 'U',
|
||
|
'\u1ee8': 'U',
|
||
|
'\u1eee': 'U',
|
||
|
'\u1eec': 'U',
|
||
|
'\u1ef0': 'U',
|
||
|
'\u1ee4': 'U',
|
||
|
'\u1e72': 'U',
|
||
|
'\u0172': 'U',
|
||
|
'\u1e76': 'U',
|
||
|
'\u1e74': 'U',
|
||
|
'\u0244': 'U',
|
||
|
'\u24cb': 'V',
|
||
|
'\uff36': 'V',
|
||
|
'\u1e7c': 'V',
|
||
|
'\u1e7e': 'V',
|
||
|
'\u01b2': 'V',
|
||
|
'\ua75e': 'V',
|
||
|
'\u0245': 'V',
|
||
|
'\ua760': 'VY',
|
||
|
'\u24cc': 'W',
|
||
|
'\uff37': 'W',
|
||
|
'\u1e80': 'W',
|
||
|
'\u1e82': 'W',
|
||
|
'\u0174': 'W',
|
||
|
'\u1e86': 'W',
|
||
|
'\u1e84': 'W',
|
||
|
'\u1e88': 'W',
|
||
|
'\u2c72': 'W',
|
||
|
'\u24cd': 'X',
|
||
|
'\uff38': 'X',
|
||
|
'\u1e8a': 'X',
|
||
|
'\u1e8c': 'X',
|
||
|
'\u24ce': 'Y',
|
||
|
'\uff39': 'Y',
|
||
|
'\u1ef2': 'Y',
|
||
|
'\xdd': 'Y',
|
||
|
'\u0176': 'Y',
|
||
|
'\u1ef8': 'Y',
|
||
|
'\u0232': 'Y',
|
||
|
'\u1e8e': 'Y',
|
||
|
'\u0178': 'Y',
|
||
|
'\u1ef6': 'Y',
|
||
|
'\u1ef4': 'Y',
|
||
|
'\u01b3': 'Y',
|
||
|
'\u024e': 'Y',
|
||
|
'\u1efe': 'Y',
|
||
|
'\u24cf': 'Z',
|
||
|
'\uff3a': 'Z',
|
||
|
'\u0179': 'Z',
|
||
|
'\u1e90': 'Z',
|
||
|
'\u017b': 'Z',
|
||
|
'\u017d': 'Z',
|
||
|
'\u1e92': 'Z',
|
||
|
'\u1e94': 'Z',
|
||
|
'\u01b5': 'Z',
|
||
|
'\u0224': 'Z',
|
||
|
'\u2c7f': 'Z',
|
||
|
'\u2c6b': 'Z',
|
||
|
'\ua762': 'Z',
|
||
|
'\u24d0': 'a',
|
||
|
'\uff41': 'a',
|
||
|
'\u1e9a': 'a',
|
||
|
'\xe0': 'a',
|
||
|
'\xe1': 'a',
|
||
|
'\xe2': 'a',
|
||
|
'\u1ea7': 'a',
|
||
|
'\u1ea5': 'a',
|
||
|
'\u1eab': 'a',
|
||
|
'\u1ea9': 'a',
|
||
|
'\xe3': 'a',
|
||
|
'\u0101': 'a',
|
||
|
'\u0103': 'a',
|
||
|
'\u1eb1': 'a',
|
||
|
'\u1eaf': 'a',
|
||
|
'\u1eb5': 'a',
|
||
|
'\u1eb3': 'a',
|
||
|
'\u0227': 'a',
|
||
|
'\u01e1': 'a',
|
||
|
'\xe4': 'a',
|
||
|
'\u01df': 'a',
|
||
|
'\u1ea3': 'a',
|
||
|
'\xe5': 'a',
|
||
|
'\u01fb': 'a',
|
||
|
'\u01ce': 'a',
|
||
|
'\u0201': 'a',
|
||
|
'\u0203': 'a',
|
||
|
'\u1ea1': 'a',
|
||
|
'\u1ead': 'a',
|
||
|
'\u1eb7': 'a',
|
||
|
'\u1e01': 'a',
|
||
|
'\u0105': 'a',
|
||
|
'\u2c65': 'a',
|
||
|
'\u0250': 'a',
|
||
|
'\ua733': 'aa',
|
||
|
'\xe6': 'ae',
|
||
|
'\u01fd': 'ae',
|
||
|
'\u01e3': 'ae',
|
||
|
'\ua735': 'ao',
|
||
|
'\ua737': 'au',
|
||
|
'\ua739': 'av',
|
||
|
'\ua73b': 'av',
|
||
|
'\ua73d': 'ay',
|
||
|
'\u24d1': 'b',
|
||
|
'\uff42': 'b',
|
||
|
'\u1e03': 'b',
|
||
|
'\u1e05': 'b',
|
||
|
'\u1e07': 'b',
|
||
|
'\u0180': 'b',
|
||
|
'\u0183': 'b',
|
||
|
'\u0253': 'b',
|
||
|
'\u24d2': 'c',
|
||
|
'\uff43': 'c',
|
||
|
'\u0107': 'c',
|
||
|
'\u0109': 'c',
|
||
|
'\u010b': 'c',
|
||
|
'\u010d': 'c',
|
||
|
'\xe7': 'c',
|
||
|
'\u1e09': 'c',
|
||
|
'\u0188': 'c',
|
||
|
'\u023c': 'c',
|
||
|
'\ua73f': 'c',
|
||
|
'\u2184': 'c',
|
||
|
'\u24d3': 'd',
|
||
|
'\uff44': 'd',
|
||
|
'\u1e0b': 'd',
|
||
|
'\u010f': 'd',
|
||
|
'\u1e0d': 'd',
|
||
|
'\u1e11': 'd',
|
||
|
'\u1e13': 'd',
|
||
|
'\u1e0f': 'd',
|
||
|
'\u0111': 'd',
|
||
|
'\u018c': 'd',
|
||
|
'\u0256': 'd',
|
||
|
'\u0257': 'd',
|
||
|
'\ua77a': 'd',
|
||
|
'\u01f3': 'dz',
|
||
|
'\u01c6': 'dz',
|
||
|
'\u24d4': 'e',
|
||
|
'\uff45': 'e',
|
||
|
'\xe8': 'e',
|
||
|
'\xe9': 'e',
|
||
|
'\xea': 'e',
|
||
|
'\u1ec1': 'e',
|
||
|
'\u1ebf': 'e',
|
||
|
'\u1ec5': 'e',
|
||
|
'\u1ec3': 'e',
|
||
|
'\u1ebd': 'e',
|
||
|
'\u0113': 'e',
|
||
|
'\u1e15': 'e',
|
||
|
'\u1e17': 'e',
|
||
|
'\u0115': 'e',
|
||
|
'\u0117': 'e',
|
||
|
'\xeb': 'e',
|
||
|
'\u1ebb': 'e',
|
||
|
'\u011b': 'e',
|
||
|
'\u0205': 'e',
|
||
|
'\u0207': 'e',
|
||
|
'\u1eb9': 'e',
|
||
|
'\u1ec7': 'e',
|
||
|
'\u0229': 'e',
|
||
|
'\u1e1d': 'e',
|
||
|
'\u0119': 'e',
|
||
|
'\u1e19': 'e',
|
||
|
'\u1e1b': 'e',
|
||
|
'\u0247': 'e',
|
||
|
'\u025b': 'e',
|
||
|
'\u01dd': 'e',
|
||
|
'\u24d5': 'f',
|
||
|
'\uff46': 'f',
|
||
|
'\u1e1f': 'f',
|
||
|
'\u0192': 'f',
|
||
|
'\ua77c': 'f',
|
||
|
'\u24d6': 'g',
|
||
|
'\uff47': 'g',
|
||
|
'\u01f5': 'g',
|
||
|
'\u011d': 'g',
|
||
|
'\u1e21': 'g',
|
||
|
'\u011f': 'g',
|
||
|
'\u0121': 'g',
|
||
|
'\u01e7': 'g',
|
||
|
'\u0123': 'g',
|
||
|
'\u01e5': 'g',
|
||
|
'\u0260': 'g',
|
||
|
'\ua7a1': 'g',
|
||
|
'\u1d79': 'g',
|
||
|
'\ua77f': 'g',
|
||
|
'\u24d7': 'h',
|
||
|
'\uff48': 'h',
|
||
|
'\u0125': 'h',
|
||
|
'\u1e23': 'h',
|
||
|
'\u1e27': 'h',
|
||
|
'\u021f': 'h',
|
||
|
'\u1e25': 'h',
|
||
|
'\u1e29': 'h',
|
||
|
'\u1e2b': 'h',
|
||
|
'\u1e96': 'h',
|
||
|
'\u0127': 'h',
|
||
|
'\u2c68': 'h',
|
||
|
'\u2c76': 'h',
|
||
|
'\u0265': 'h',
|
||
|
'\u0195': 'hv',
|
||
|
'\u24d8': 'i',
|
||
|
'\uff49': 'i',
|
||
|
'\xec': 'i',
|
||
|
'\xed': 'i',
|
||
|
'\xee': 'i',
|
||
|
'\u0129': 'i',
|
||
|
'\u012b': 'i',
|
||
|
'\u012d': 'i',
|
||
|
'\xef': 'i',
|
||
|
'\u1e2f': 'i',
|
||
|
'\u1ec9': 'i',
|
||
|
'\u01d0': 'i',
|
||
|
'\u0209': 'i',
|
||
|
'\u020b': 'i',
|
||
|
'\u1ecb': 'i',
|
||
|
'\u012f': 'i',
|
||
|
'\u1e2d': 'i',
|
||
|
'\u0268': 'i',
|
||
|
'\u0131': 'i',
|
||
|
'\u24d9': 'j',
|
||
|
'\uff4a': 'j',
|
||
|
'\u0135': 'j',
|
||
|
'\u01f0': 'j',
|
||
|
'\u0249': 'j',
|
||
|
'\u24da': 'k',
|
||
|
'\uff4b': 'k',
|
||
|
'\u1e31': 'k',
|
||
|
'\u01e9': 'k',
|
||
|
'\u1e33': 'k',
|
||
|
'\u0137': 'k',
|
||
|
'\u1e35': 'k',
|
||
|
'\u0199': 'k',
|
||
|
'\u2c6a': 'k',
|
||
|
'\ua741': 'k',
|
||
|
'\ua743': 'k',
|
||
|
'\ua745': 'k',
|
||
|
'\ua7a3': 'k',
|
||
|
'\u24db': 'l',
|
||
|
'\uff4c': 'l',
|
||
|
'\u0140': 'l',
|
||
|
'\u013a': 'l',
|
||
|
'\u013e': 'l',
|
||
|
'\u1e37': 'l',
|
||
|
'\u1e39': 'l',
|
||
|
'\u013c': 'l',
|
||
|
'\u1e3d': 'l',
|
||
|
'\u1e3b': 'l',
|
||
|
'\u017f': 'l',
|
||
|
'\u0142': 'l',
|
||
|
'\u019a': 'l',
|
||
|
'\u026b': 'l',
|
||
|
'\u2c61': 'l',
|
||
|
'\ua749': 'l',
|
||
|
'\ua781': 'l',
|
||
|
'\ua747': 'l',
|
||
|
'\u01c9': 'lj',
|
||
|
'\u24dc': 'm',
|
||
|
'\uff4d': 'm',
|
||
|
'\u1e3f': 'm',
|
||
|
'\u1e41': 'm',
|
||
|
'\u1e43': 'm',
|
||
|
'\u0271': 'm',
|
||
|
'\u026f': 'm',
|
||
|
'\u24dd': 'n',
|
||
|
'\uff4e': 'n',
|
||
|
'\u01f9': 'n',
|
||
|
'\u0144': 'n',
|
||
|
'\xf1': 'n',
|
||
|
'\u1e45': 'n',
|
||
|
'\u0148': 'n',
|
||
|
'\u1e47': 'n',
|
||
|
'\u0146': 'n',
|
||
|
'\u1e4b': 'n',
|
||
|
'\u1e49': 'n',
|
||
|
'\u019e': 'n',
|
||
|
'\u0272': 'n',
|
||
|
'\u0149': 'n',
|
||
|
'\ua791': 'n',
|
||
|
'\ua7a5': 'n',
|
||
|
'\u01cc': 'nj',
|
||
|
'\u24de': 'o',
|
||
|
'\uff4f': 'o',
|
||
|
'\xf2': 'o',
|
||
|
'\xf3': 'o',
|
||
|
'\xf4': 'o',
|
||
|
'\u1ed3': 'o',
|
||
|
'\u1ed1': 'o',
|
||
|
'\u1ed7': 'o',
|
||
|
'\u1ed5': 'o',
|
||
|
'\xf5': 'o',
|
||
|
'\u1e4d': 'o',
|
||
|
'\u022d': 'o',
|
||
|
'\u1e4f': 'o',
|
||
|
'\u014d': 'o',
|
||
|
'\u1e51': 'o',
|
||
|
'\u1e53': 'o',
|
||
|
'\u014f': 'o',
|
||
|
'\u022f': 'o',
|
||
|
'\u0231': 'o',
|
||
|
'\xf6': 'o',
|
||
|
'\u022b': 'o',
|
||
|
'\u1ecf': 'o',
|
||
|
'\u0151': 'o',
|
||
|
'\u01d2': 'o',
|
||
|
'\u020d': 'o',
|
||
|
'\u020f': 'o',
|
||
|
'\u01a1': 'o',
|
||
|
'\u1edd': 'o',
|
||
|
'\u1edb': 'o',
|
||
|
'\u1ee1': 'o',
|
||
|
'\u1edf': 'o',
|
||
|
'\u1ee3': 'o',
|
||
|
'\u1ecd': 'o',
|
||
|
'\u1ed9': 'o',
|
||
|
'\u01eb': 'o',
|
||
|
'\u01ed': 'o',
|
||
|
'\xf8': 'o',
|
||
|
'\u01ff': 'o',
|
||
|
'\u0254': 'o',
|
||
|
'\ua74b': 'o',
|
||
|
'\ua74d': 'o',
|
||
|
'\u0275': 'o',
|
||
|
'\u01a3': 'oi',
|
||
|
'\u0223': 'ou',
|
||
|
'\ua74f': 'oo',
|
||
|
'\u24df': 'p',
|
||
|
'\uff50': 'p',
|
||
|
'\u1e55': 'p',
|
||
|
'\u1e57': 'p',
|
||
|
'\u01a5': 'p',
|
||
|
'\u1d7d': 'p',
|
||
|
'\ua751': 'p',
|
||
|
'\ua753': 'p',
|
||
|
'\ua755': 'p',
|
||
|
'\u24e0': 'q',
|
||
|
'\uff51': 'q',
|
||
|
'\u024b': 'q',
|
||
|
'\ua757': 'q',
|
||
|
'\ua759': 'q',
|
||
|
'\u24e1': 'r',
|
||
|
'\uff52': 'r',
|
||
|
'\u0155': 'r',
|
||
|
'\u1e59': 'r',
|
||
|
'\u0159': 'r',
|
||
|
'\u0211': 'r',
|
||
|
'\u0213': 'r',
|
||
|
'\u1e5b': 'r',
|
||
|
'\u1e5d': 'r',
|
||
|
'\u0157': 'r',
|
||
|
'\u1e5f': 'r',
|
||
|
'\u024d': 'r',
|
||
|
'\u027d': 'r',
|
||
|
'\ua75b': 'r',
|
||
|
'\ua7a7': 'r',
|
||
|
'\ua783': 'r',
|
||
|
'\u24e2': 's',
|
||
|
'\uff53': 's',
|
||
|
'\xdf': 's',
|
||
|
'\u015b': 's',
|
||
|
'\u1e65': 's',
|
||
|
'\u015d': 's',
|
||
|
'\u1e61': 's',
|
||
|
'\u0161': 's',
|
||
|
'\u1e67': 's',
|
||
|
'\u1e63': 's',
|
||
|
'\u1e69': 's',
|
||
|
'\u0219': 's',
|
||
|
'\u015f': 's',
|
||
|
'\u023f': 's',
|
||
|
'\ua7a9': 's',
|
||
|
'\ua785': 's',
|
||
|
'\u1e9b': 's',
|
||
|
'\u24e3': 't',
|
||
|
'\uff54': 't',
|
||
|
'\u1e6b': 't',
|
||
|
'\u1e97': 't',
|
||
|
'\u0165': 't',
|
||
|
'\u1e6d': 't',
|
||
|
'\u021b': 't',
|
||
|
'\u0163': 't',
|
||
|
'\u1e71': 't',
|
||
|
'\u1e6f': 't',
|
||
|
'\u0167': 't',
|
||
|
'\u01ad': 't',
|
||
|
'\u0288': 't',
|
||
|
'\u2c66': 't',
|
||
|
'\ua787': 't',
|
||
|
'\ua729': 'tz',
|
||
|
'\u24e4': 'u',
|
||
|
'\uff55': 'u',
|
||
|
'\xf9': 'u',
|
||
|
'\xfa': 'u',
|
||
|
'\xfb': 'u',
|
||
|
'\u0169': 'u',
|
||
|
'\u1e79': 'u',
|
||
|
'\u016b': 'u',
|
||
|
'\u1e7b': 'u',
|
||
|
'\u016d': 'u',
|
||
|
'\xfc': 'u',
|
||
|
'\u01dc': 'u',
|
||
|
'\u01d8': 'u',
|
||
|
'\u01d6': 'u',
|
||
|
'\u01da': 'u',
|
||
|
'\u1ee7': 'u',
|
||
|
'\u016f': 'u',
|
||
|
'\u0171': 'u',
|
||
|
'\u01d4': 'u',
|
||
|
'\u0215': 'u',
|
||
|
'\u0217': 'u',
|
||
|
'\u01b0': 'u',
|
||
|
'\u1eeb': 'u',
|
||
|
'\u1ee9': 'u',
|
||
|
'\u1eef': 'u',
|
||
|
'\u1eed': 'u',
|
||
|
'\u1ef1': 'u',
|
||
|
'\u1ee5': 'u',
|
||
|
'\u1e73': 'u',
|
||
|
'\u0173': 'u',
|
||
|
'\u1e77': 'u',
|
||
|
'\u1e75': 'u',
|
||
|
'\u0289': 'u',
|
||
|
'\u24e5': 'v',
|
||
|
'\uff56': 'v',
|
||
|
'\u1e7d': 'v',
|
||
|
'\u1e7f': 'v',
|
||
|
'\u028b': 'v',
|
||
|
'\ua75f': 'v',
|
||
|
'\u028c': 'v',
|
||
|
'\ua761': 'vy',
|
||
|
'\u24e6': 'w',
|
||
|
'\uff57': 'w',
|
||
|
'\u1e81': 'w',
|
||
|
'\u1e83': 'w',
|
||
|
'\u0175': 'w',
|
||
|
'\u1e87': 'w',
|
||
|
'\u1e85': 'w',
|
||
|
'\u1e98': 'w',
|
||
|
'\u1e89': 'w',
|
||
|
'\u2c73': 'w',
|
||
|
'\u24e7': 'x',
|
||
|
'\uff58': 'x',
|
||
|
'\u1e8b': 'x',
|
||
|
'\u1e8d': 'x',
|
||
|
'\u24e8': 'y',
|
||
|
'\uff59': 'y',
|
||
|
'\u1ef3': 'y',
|
||
|
'\xfd': 'y',
|
||
|
'\u0177': 'y',
|
||
|
'\u1ef9': 'y',
|
||
|
'\u0233': 'y',
|
||
|
'\u1e8f': 'y',
|
||
|
'\xff': 'y',
|
||
|
'\u1ef7': 'y',
|
||
|
'\u1e99': 'y',
|
||
|
'\u1ef5': 'y',
|
||
|
'\u01b4': 'y',
|
||
|
'\u024f': 'y',
|
||
|
'\u1eff': 'y',
|
||
|
'\u24e9': 'z',
|
||
|
'\uff5a': 'z',
|
||
|
'\u017a': 'z',
|
||
|
'\u1e91': 'z',
|
||
|
'\u017c': 'z',
|
||
|
'\u017e': 'z',
|
||
|
'\u1e93': 'z',
|
||
|
'\u1e95': 'z',
|
||
|
'\u01b6': 'z',
|
||
|
'\u0225': 'z',
|
||
|
'\u0240': 'z',
|
||
|
'\u2c6c': 'z',
|
||
|
'\ua763': 'z',
|
||
|
'\u0386': '\u0391',
|
||
|
'\u0388': '\u0395',
|
||
|
'\u0389': '\u0397',
|
||
|
'\u038a': '\u0399',
|
||
|
'\u03aa': '\u0399',
|
||
|
'\u038c': '\u039f',
|
||
|
'\u038e': '\u03a5',
|
||
|
'\u03ab': '\u03a5',
|
||
|
'\u038f': '\u03a9',
|
||
|
'\u03ac': '\u03b1',
|
||
|
'\u03ad': '\u03b5',
|
||
|
'\u03ae': '\u03b7',
|
||
|
'\u03af': '\u03b9',
|
||
|
'\u03ca': '\u03b9',
|
||
|
'\u0390': '\u03b9',
|
||
|
'\u03cc': '\u03bf',
|
||
|
'\u03cd': '\u03c5',
|
||
|
'\u03cb': '\u03c5',
|
||
|
'\u03b0': '\u03c5',
|
||
|
'\u03c9': '\u03c9',
|
||
|
'\u03c2': '\u03c3',
|
||
|
};
|
||
|
( i = a( document ) ),
|
||
|
( f = ( function () {
|
||
|
var a = 1;
|
||
|
return function () {
|
||
|
return a++;
|
||
|
};
|
||
|
} )() ),
|
||
|
( c = O( Object, {
|
||
|
bind: function ( a ) {
|
||
|
var b = this;
|
||
|
return function () {
|
||
|
a.apply( b, arguments );
|
||
|
};
|
||
|
},
|
||
|
init: function ( c ) {
|
||
|
var d,
|
||
|
e,
|
||
|
g = '.select2-results';
|
||
|
( this.opts = c = this.prepareOpts( c ) ),
|
||
|
( this.id = c.id ),
|
||
|
c.element.data( 'select2' ) !== b &&
|
||
|
null !== c.element.data( 'select2' ) &&
|
||
|
c.element.data( 'select2' ).destroy(),
|
||
|
( this.container = this.createContainer() ),
|
||
|
( this.liveRegion = a(
|
||
|
'.select2-hidden-accessible'
|
||
|
) ),
|
||
|
0 == this.liveRegion.length &&
|
||
|
( this.liveRegion = a( '<span>', {
|
||
|
role: 'status',
|
||
|
'aria-live': 'polite',
|
||
|
} )
|
||
|
.addClass( 'select2-hidden-accessible' )
|
||
|
.appendTo( document.body ) ),
|
||
|
( this.containerId =
|
||
|
's2id_' +
|
||
|
( c.element.attr( 'id' ) || 'autogen' + f() ) ),
|
||
|
( this.containerEventName = this.containerId
|
||
|
.replace( /([.])/g, '_' )
|
||
|
.replace(
|
||
|
/([;&,\-\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g,
|
||
|
'\\$1'
|
||
|
) ),
|
||
|
this.container.attr( 'id', this.containerId ),
|
||
|
this.container.attr(
|
||
|
'title',
|
||
|
c.element.attr( 'title' )
|
||
|
),
|
||
|
( this.body = a( document.body ) ),
|
||
|
D(
|
||
|
this.container,
|
||
|
this.opts.element,
|
||
|
this.opts.adaptContainerCssClass
|
||
|
),
|
||
|
this.container.attr(
|
||
|
'style',
|
||
|
c.element.attr( 'style' )
|
||
|
),
|
||
|
this.container.css(
|
||
|
K( c.containerCss, this.opts.element )
|
||
|
),
|
||
|
this.container.addClass(
|
||
|
K( c.containerCssClass, this.opts.element )
|
||
|
),
|
||
|
( this.elementTabIndex = this.opts.element.attr(
|
||
|
'tabindex'
|
||
|
) ),
|
||
|
this.opts.element
|
||
|
.data( 'select2', this )
|
||
|
.attr( 'tabindex', '-1' )
|
||
|
.before( this.container )
|
||
|
.on( 'click.select2', A ),
|
||
|
this.container.data( 'select2', this ),
|
||
|
( this.dropdown = this.container.find(
|
||
|
'.select2-drop'
|
||
|
) ),
|
||
|
D(
|
||
|
this.dropdown,
|
||
|
this.opts.element,
|
||
|
this.opts.adaptDropdownCssClass
|
||
|
),
|
||
|
this.dropdown.addClass(
|
||
|
K( c.dropdownCssClass, this.opts.element )
|
||
|
),
|
||
|
this.dropdown.data( 'select2', this ),
|
||
|
this.dropdown.on( 'click', A ),
|
||
|
( this.results = d = this.container.find( g ) ),
|
||
|
( this.search = e = this.container.find(
|
||
|
'input.select2-input'
|
||
|
) ),
|
||
|
( this.queryCount = 0 ),
|
||
|
( this.resultsPage = 0 ),
|
||
|
( this.context = null ),
|
||
|
this.initContainer(),
|
||
|
this.container.on( 'click', A ),
|
||
|
v( this.results ),
|
||
|
this.dropdown.on(
|
||
|
'mousemove-filtered',
|
||
|
g,
|
||
|
this.bind( this.highlightUnderEvent )
|
||
|
),
|
||
|
this.dropdown.on(
|
||
|
'touchstart touchmove touchend',
|
||
|
g,
|
||
|
this.bind( function ( a ) {
|
||
|
( this._touchEvent = ! 0 ),
|
||
|
this.highlightUnderEvent( a );
|
||
|
} )
|
||
|
),
|
||
|
this.dropdown.on(
|
||
|
'touchmove',
|
||
|
g,
|
||
|
this.bind( this.touchMoved )
|
||
|
),
|
||
|
this.dropdown.on(
|
||
|
'touchstart touchend',
|
||
|
g,
|
||
|
this.bind( this.clearTouchMoved )
|
||
|
),
|
||
|
this.dropdown.on(
|
||
|
'click',
|
||
|
this.bind( function () {
|
||
|
this._touchEvent &&
|
||
|
( ( this._touchEvent = ! 1 ),
|
||
|
this.selectHighlighted() );
|
||
|
} )
|
||
|
),
|
||
|
x( 80, this.results ),
|
||
|
this.dropdown.on(
|
||
|
'scroll-debounced',
|
||
|
g,
|
||
|
this.bind( this.loadMoreIfNeeded )
|
||
|
),
|
||
|
a( this.container ).on(
|
||
|
'change',
|
||
|
'.select2-input',
|
||
|
function ( a ) {
|
||
|
a.stopPropagation();
|
||
|
}
|
||
|
),
|
||
|
a( this.dropdown ).on(
|
||
|
'change',
|
||
|
'.select2-input',
|
||
|
function ( a ) {
|
||
|
a.stopPropagation();
|
||
|
}
|
||
|
),
|
||
|
a.fn.mousewheel &&
|
||
|
d.mousewheel( function ( a, b, c, e ) {
|
||
|
var f = d.scrollTop();
|
||
|
e > 0 && 0 >= f - e
|
||
|
? ( d.scrollTop( 0 ), A( a ) )
|
||
|
: 0 > e &&
|
||
|
d.get( 0 ).scrollHeight -
|
||
|
d.scrollTop() +
|
||
|
e <=
|
||
|
d.height() &&
|
||
|
( d.scrollTop(
|
||
|
d.get( 0 ).scrollHeight -
|
||
|
d.height()
|
||
|
),
|
||
|
A( a ) );
|
||
|
} ),
|
||
|
u( e ),
|
||
|
e.on(
|
||
|
'keyup-change input paste',
|
||
|
this.bind( this.updateResults )
|
||
|
),
|
||
|
e.on( 'focus', function () {
|
||
|
e.addClass( 'select2-focused' );
|
||
|
} ),
|
||
|
e.on( 'blur', function () {
|
||
|
e.removeClass( 'select2-focused' );
|
||
|
} ),
|
||
|
this.dropdown.on(
|
||
|
'mouseup',
|
||
|
g,
|
||
|
this.bind( function ( b ) {
|
||
|
a( b.target ).closest(
|
||
|
'.select2-result-selectable'
|
||
|
).length > 0 &&
|
||
|
( this.highlightUnderEvent( b ),
|
||
|
this.selectHighlighted( b ) );
|
||
|
} )
|
||
|
),
|
||
|
this.dropdown.on(
|
||
|
'click mouseup mousedown touchstart touchend focusin',
|
||
|
function ( a ) {
|
||
|
a.stopPropagation();
|
||
|
}
|
||
|
),
|
||
|
( this.nextSearchTerm = b ),
|
||
|
a.isFunction( this.opts.initSelection ) &&
|
||
|
( this.initSelection(), this.monitorSource() ),
|
||
|
null !== c.maximumInputLength &&
|
||
|
this.search.attr(
|
||
|
'maxlength',
|
||
|
c.maximumInputLength
|
||
|
);
|
||
|
var h = c.element.prop( 'disabled' );
|
||
|
h === b && ( h = ! 1 ), this.enable( ! h );
|
||
|
var i = c.element.prop( 'readonly' );
|
||
|
i === b && ( i = ! 1 ),
|
||
|
this.readonly( i ),
|
||
|
( j = j || q() ),
|
||
|
( this.autofocus = c.element.prop( 'autofocus' ) ),
|
||
|
c.element.prop( 'autofocus', ! 1 ),
|
||
|
this.autofocus && this.focus(),
|
||
|
this.search.attr(
|
||
|
'placeholder',
|
||
|
c.searchInputPlaceholder
|
||
|
);
|
||
|
},
|
||
|
destroy: function () {
|
||
|
var a = this.opts.element,
|
||
|
c = a.data( 'select2' ),
|
||
|
d = this;
|
||
|
this.close(),
|
||
|
a.length &&
|
||
|
a[ 0 ].detachEvent &&
|
||
|
d._sync &&
|
||
|
a.each( function () {
|
||
|
d._sync &&
|
||
|
this.detachEvent(
|
||
|
'onpropertychange',
|
||
|
d._sync
|
||
|
);
|
||
|
} ),
|
||
|
this.propertyObserver &&
|
||
|
( this.propertyObserver.disconnect(),
|
||
|
( this.propertyObserver = null ) ),
|
||
|
( this._sync = null ),
|
||
|
c !== b &&
|
||
|
( c.container.remove(),
|
||
|
c.liveRegion.remove(),
|
||
|
c.dropdown.remove(),
|
||
|
a
|
||
|
.show()
|
||
|
.removeData( 'select2' )
|
||
|
.off( '.select2' )
|
||
|
.prop( 'autofocus', this.autofocus || ! 1 ),
|
||
|
this.elementTabIndex
|
||
|
? a.attr( {
|
||
|
tabindex: this.elementTabIndex,
|
||
|
} )
|
||
|
: a.removeAttr( 'tabindex' ),
|
||
|
a.show() ),
|
||
|
N.call(
|
||
|
this,
|
||
|
'container',
|
||
|
'liveRegion',
|
||
|
'dropdown',
|
||
|
'results',
|
||
|
'search'
|
||
|
);
|
||
|
},
|
||
|
optionToData: function ( a ) {
|
||
|
return a.is( 'option' )
|
||
|
? {
|
||
|
id: a.prop( 'value' ),
|
||
|
text: a.text(),
|
||
|
element: a.get(),
|
||
|
css: a.attr( 'class' ),
|
||
|
disabled: a.prop( 'disabled' ),
|
||
|
locked:
|
||
|
r( a.attr( 'locked' ), 'locked' ) ||
|
||
|
r( a.data( 'locked' ), ! 0 ),
|
||
|
}
|
||
|
: a.is( 'optgroup' )
|
||
|
? {
|
||
|
text: a.attr( 'label' ),
|
||
|
children: [],
|
||
|
element: a.get(),
|
||
|
css: a.attr( 'class' ),
|
||
|
}
|
||
|
: void 0;
|
||
|
},
|
||
|
prepareOpts: function ( c ) {
|
||
|
var d,
|
||
|
e,
|
||
|
g,
|
||
|
h,
|
||
|
i = this;
|
||
|
if (
|
||
|
( ( d = c.element ),
|
||
|
'select' === d.get( 0 ).tagName.toLowerCase() &&
|
||
|
( this.select = e = c.element ),
|
||
|
e &&
|
||
|
a.each(
|
||
|
[
|
||
|
'id',
|
||
|
'multiple',
|
||
|
'ajax',
|
||
|
'query',
|
||
|
'createSearchChoice',
|
||
|
'initSelection',
|
||
|
'data',
|
||
|
'tags',
|
||
|
],
|
||
|
function () {
|
||
|
if ( this in c )
|
||
|
throw new Error(
|
||
|
"Option '" +
|
||
|
this +
|
||
|
"' is not allowed for Select2 when attached to a <select> element."
|
||
|
);
|
||
|
}
|
||
|
),
|
||
|
( c = a.extend(
|
||
|
{},
|
||
|
{
|
||
|
populateResults: function ( d, e, g ) {
|
||
|
var h,
|
||
|
j = this.opts.id,
|
||
|
k = this.liveRegion;
|
||
|
( h = function ( d, e, l ) {
|
||
|
var m, n, o, p, q, r, s, t, u, v;
|
||
|
d = c.sortResults( d, e, g );
|
||
|
var w = [];
|
||
|
for (
|
||
|
m = 0, n = d.length;
|
||
|
n > m;
|
||
|
m += 1
|
||
|
)
|
||
|
( o = d[ m ] ),
|
||
|
( q = o.disabled === ! 0 ),
|
||
|
( p = ! q && j( o ) !== b ),
|
||
|
( r =
|
||
|
o.children &&
|
||
|
o.children.length > 0 ),
|
||
|
( s = a( '<li></li>' ) ),
|
||
|
s.addClass(
|
||
|
'select2-results-dept-' +
|
||
|
l
|
||
|
),
|
||
|
s.addClass(
|
||
|
'select2-result'
|
||
|
),
|
||
|
s.addClass(
|
||
|
p
|
||
|
? 'select2-result-selectable'
|
||
|
: 'select2-result-unselectable'
|
||
|
),
|
||
|
q &&
|
||
|
s.addClass(
|
||
|
'select2-disabled'
|
||
|
),
|
||
|
r &&
|
||
|
s.addClass(
|
||
|
'select2-result-with-children'
|
||
|
),
|
||
|
s.addClass(
|
||
|
i.opts.formatResultCssClass(
|
||
|
o
|
||
|
)
|
||
|
),
|
||
|
s.attr(
|
||
|
'role',
|
||
|
'presentation'
|
||
|
),
|
||
|
( t = a(
|
||
|
document.createElement(
|
||
|
'div'
|
||
|
)
|
||
|
) ),
|
||
|
t.addClass(
|
||
|
'select2-result-label'
|
||
|
),
|
||
|
t.attr(
|
||
|
'id',
|
||
|
'select2-result-label-' +
|
||
|
f()
|
||
|
),
|
||
|
t.attr( 'role', 'option' ),
|
||
|
( v = c.formatResult(
|
||
|
o,
|
||
|
t,
|
||
|
g,
|
||
|
i.opts.escapeMarkup
|
||
|
) ),
|
||
|
v !== b &&
|
||
|
( t.html( v ),
|
||
|
s.append( t ) ),
|
||
|
r &&
|
||
|
( ( u = a(
|
||
|
'<ul></ul>'
|
||
|
) ),
|
||
|
u.addClass(
|
||
|
'select2-result-sub'
|
||
|
),
|
||
|
h(
|
||
|
o.children,
|
||
|
u,
|
||
|
l + 1
|
||
|
),
|
||
|
s.append( u ) ),
|
||
|
s.data( 'select2-data', o ),
|
||
|
w.push( s[ 0 ] );
|
||
|
e.append( w ),
|
||
|
k.text(
|
||
|
c.formatMatches( d.length )
|
||
|
);
|
||
|
} ),
|
||
|
h( e, d, 0 );
|
||
|
},
|
||
|
},
|
||
|
a.fn.select2.defaults,
|
||
|
c
|
||
|
) ),
|
||
|
'function' != typeof c.id &&
|
||
|
( ( g = c.id ),
|
||
|
( c.id = function ( a ) {
|
||
|
return a[ g ];
|
||
|
} ) ),
|
||
|
a.isArray( c.element.data( 'select2Tags' ) ) )
|
||
|
) {
|
||
|
if ( 'tags' in c )
|
||
|
throw (
|
||
|
"tags specified as both an attribute 'data-select2-tags' and in options of Select2 " +
|
||
|
c.element.attr( 'id' )
|
||
|
);
|
||
|
c.tags = c.element.data( 'select2Tags' );
|
||
|
}
|
||
|
if (
|
||
|
( e
|
||
|
? ( ( c.query = this.bind( function ( a ) {
|
||
|
var f,
|
||
|
g,
|
||
|
h,
|
||
|
c = { results: [], more: ! 1 },
|
||
|
e = a.term;
|
||
|
( h = function ( b, c ) {
|
||
|
var d;
|
||
|
b.is( 'option' )
|
||
|
? a.matcher( e, b.text(), b ) &&
|
||
|
c.push( i.optionToData( b ) )
|
||
|
: b.is( 'optgroup' ) &&
|
||
|
( ( d = i.optionToData( b ) ),
|
||
|
b
|
||
|
.children()
|
||
|
.each2( function (
|
||
|
a,
|
||
|
b
|
||
|
) {
|
||
|
h( b, d.children );
|
||
|
} ),
|
||
|
d.children.length > 0 &&
|
||
|
c.push( d ) );
|
||
|
} ),
|
||
|
( f = d.children() ),
|
||
|
this.getPlaceholder() !== b &&
|
||
|
f.length > 0 &&
|
||
|
( ( g = this.getPlaceholderOption() ),
|
||
|
g && ( f = f.not( g ) ) ),
|
||
|
f.each2( function ( a, b ) {
|
||
|
h( b, c.results );
|
||
|
} ),
|
||
|
a.callback( c );
|
||
|
} ) ),
|
||
|
( c.id = function ( a ) {
|
||
|
return a.id;
|
||
|
} ) )
|
||
|
: 'query' in c ||
|
||
|
( 'ajax' in c
|
||
|
? ( ( h = c.element.data(
|
||
|
'ajax-url'
|
||
|
) ),
|
||
|
h &&
|
||
|
h.length > 0 &&
|
||
|
( c.ajax.url = h ),
|
||
|
( c.query = G.call(
|
||
|
c.element,
|
||
|
c.ajax
|
||
|
) ) )
|
||
|
: 'data' in c
|
||
|
? ( c.query = H( c.data ) )
|
||
|
: 'tags' in c &&
|
||
|
( ( c.query = I( c.tags ) ),
|
||
|
c.createSearchChoice === b &&
|
||
|
( c.createSearchChoice = function (
|
||
|
b
|
||
|
) {
|
||
|
return {
|
||
|
id: a.trim( b ),
|
||
|
text: a.trim( b ),
|
||
|
};
|
||
|
} ),
|
||
|
c.initSelection === b &&
|
||
|
( c.initSelection = function (
|
||
|
b,
|
||
|
d
|
||
|
) {
|
||
|
var e = [];
|
||
|
a(
|
||
|
s(
|
||
|
b.val(),
|
||
|
c.separator,
|
||
|
c.transformVal
|
||
|
)
|
||
|
).each( function () {
|
||
|
var b = {
|
||
|
id: this,
|
||
|
text: this,
|
||
|
},
|
||
|
d = c.tags;
|
||
|
a.isFunction( d ) &&
|
||
|
( d = d() ),
|
||
|
a( d ).each(
|
||
|
function () {
|
||
|
return r(
|
||
|
this.id,
|
||
|
b.id
|
||
|
)
|
||
|
? ( ( b = this ),
|
||
|
! 1 )
|
||
|
: void 0;
|
||
|
}
|
||
|
),
|
||
|
e.push( b );
|
||
|
} ),
|
||
|
d( e );
|
||
|
} ) ) ),
|
||
|
'function' != typeof c.query )
|
||
|
)
|
||
|
throw (
|
||
|
'query function not defined for Select2 ' +
|
||
|
c.element.attr( 'id' )
|
||
|
);
|
||
|
if ( 'top' === c.createSearchChoicePosition )
|
||
|
c.createSearchChoicePosition = function ( a, b ) {
|
||
|
a.unshift( b );
|
||
|
};
|
||
|
else if ( 'bottom' === c.createSearchChoicePosition )
|
||
|
c.createSearchChoicePosition = function ( a, b ) {
|
||
|
a.push( b );
|
||
|
};
|
||
|
else if (
|
||
|
'function' != typeof c.createSearchChoicePosition
|
||
|
)
|
||
|
throw "invalid createSearchChoicePosition option must be 'top', 'bottom' or a custom function";
|
||
|
return c;
|
||
|
},
|
||
|
monitorSource: function () {
|
||
|
var d,
|
||
|
c = this.opts.element,
|
||
|
e = this;
|
||
|
c.on(
|
||
|
'change.select2',
|
||
|
this.bind( function () {
|
||
|
this.opts.element.data(
|
||
|
'select2-change-triggered'
|
||
|
) !== ! 0 && this.initSelection();
|
||
|
} )
|
||
|
),
|
||
|
( this._sync = this.bind( function () {
|
||
|
var a = c.prop( 'disabled' );
|
||
|
a === b && ( a = ! 1 ), this.enable( ! a );
|
||
|
var d = c.prop( 'readonly' );
|
||
|
d === b && ( d = ! 1 ),
|
||
|
this.readonly( d ),
|
||
|
this.container &&
|
||
|
( D(
|
||
|
this.container,
|
||
|
this.opts.element,
|
||
|
this.opts.adaptContainerCssClass
|
||
|
),
|
||
|
this.container.addClass(
|
||
|
K(
|
||
|
this.opts.containerCssClass,
|
||
|
this.opts.element
|
||
|
)
|
||
|
) ),
|
||
|
this.dropdown &&
|
||
|
( D(
|
||
|
this.dropdown,
|
||
|
this.opts.element,
|
||
|
this.opts.adaptDropdownCssClass
|
||
|
),
|
||
|
this.dropdown.addClass(
|
||
|
K(
|
||
|
this.opts.dropdownCssClass,
|
||
|
this.opts.element
|
||
|
)
|
||
|
) );
|
||
|
} ) ),
|
||
|
c.length &&
|
||
|
c[ 0 ].attachEvent &&
|
||
|
c.each( function () {
|
||
|
this.attachEvent(
|
||
|
'onpropertychange',
|
||
|
e._sync
|
||
|
);
|
||
|
} ),
|
||
|
( d =
|
||
|
window.MutationObserver ||
|
||
|
window.WebKitMutationObserver ||
|
||
|
window.MozMutationObserver ),
|
||
|
d !== b &&
|
||
|
( this.propertyObserver &&
|
||
|
( delete this.propertyObserver,
|
||
|
( this.propertyObserver = null ) ),
|
||
|
( this.propertyObserver = new d( function (
|
||
|
b
|
||
|
) {
|
||
|
a.each( b, e._sync );
|
||
|
} ) ),
|
||
|
this.propertyObserver.observe( c.get( 0 ), {
|
||
|
attributes: ! 0,
|
||
|
subtree: ! 1,
|
||
|
} ) );
|
||
|
},
|
||
|
triggerSelect: function ( b ) {
|
||
|
var c = a.Event( 'select2-selecting', {
|
||
|
val: this.id( b ),
|
||
|
object: b,
|
||
|
choice: b,
|
||
|
} );
|
||
|
return (
|
||
|
this.opts.element.trigger( c ),
|
||
|
! c.isDefaultPrevented()
|
||
|
);
|
||
|
},
|
||
|
triggerChange: function ( b ) {
|
||
|
( b = b || {} ),
|
||
|
( b = a.extend( {}, b, {
|
||
|
type: 'change',
|
||
|
val: this.val(),
|
||
|
} ) ),
|
||
|
this.opts.element.data(
|
||
|
'select2-change-triggered',
|
||
|
! 0
|
||
|
),
|
||
|
this.opts.element.trigger( b ),
|
||
|
this.opts.element.data(
|
||
|
'select2-change-triggered',
|
||
|
! 1
|
||
|
),
|
||
|
this.opts.element.click(),
|
||
|
this.opts.blurOnChange && this.opts.element.blur();
|
||
|
},
|
||
|
isInterfaceEnabled: function () {
|
||
|
return this.enabledInterface === ! 0;
|
||
|
},
|
||
|
enableInterface: function () {
|
||
|
var a = this._enabled && ! this._readonly,
|
||
|
b = ! a;
|
||
|
return a === this.enabledInterface
|
||
|
? ! 1
|
||
|
: ( this.container.toggleClass(
|
||
|
'select2-container-disabled',
|
||
|
b
|
||
|
),
|
||
|
this.close(),
|
||
|
( this.enabledInterface = a ),
|
||
|
! 0 );
|
||
|
},
|
||
|
enable: function ( a ) {
|
||
|
a === b && ( a = ! 0 ),
|
||
|
this._enabled !== a &&
|
||
|
( ( this._enabled = a ),
|
||
|
this.opts.element.prop( 'disabled', ! a ),
|
||
|
this.enableInterface() );
|
||
|
},
|
||
|
disable: function () {
|
||
|
this.enable( ! 1 );
|
||
|
},
|
||
|
readonly: function ( a ) {
|
||
|
a === b && ( a = ! 1 ),
|
||
|
this._readonly !== a &&
|
||
|
( ( this._readonly = a ),
|
||
|
this.opts.element.prop( 'readonly', a ),
|
||
|
this.enableInterface() );
|
||
|
},
|
||
|
opened: function () {
|
||
|
return this.container
|
||
|
? this.container.hasClass( 'select2-dropdown-open' )
|
||
|
: ! 1;
|
||
|
},
|
||
|
positionDropdown: function () {
|
||
|
var v,
|
||
|
w,
|
||
|
x,
|
||
|
y,
|
||
|
z,
|
||
|
b = this.dropdown,
|
||
|
c = this.container,
|
||
|
d = c.offset(),
|
||
|
e = c.outerHeight( ! 1 ),
|
||
|
f = c.outerWidth( ! 1 ),
|
||
|
g = b.outerHeight( ! 1 ),
|
||
|
h = a( window ),
|
||
|
i = h.width(),
|
||
|
k = h.height(),
|
||
|
l = h.scrollLeft() + i,
|
||
|
m = h.scrollTop() + k,
|
||
|
n = d.top + e,
|
||
|
o = d.left,
|
||
|
p = m >= n + g,
|
||
|
q = d.top - g >= h.scrollTop(),
|
||
|
r = b.outerWidth( ! 1 ),
|
||
|
s = function () {
|
||
|
return l >= o + r;
|
||
|
},
|
||
|
t = function () {
|
||
|
return d.left + l + c.outerWidth( ! 1 ) > r;
|
||
|
},
|
||
|
u = b.hasClass( 'select2-drop-above' );
|
||
|
u
|
||
|
? ( ( w = ! 0 ),
|
||
|
! q && p && ( ( x = ! 0 ), ( w = ! 1 ) ) )
|
||
|
: ( ( w = ! 1 ),
|
||
|
! p && q && ( ( x = ! 0 ), ( w = ! 0 ) ) ),
|
||
|
x &&
|
||
|
( b.hide(),
|
||
|
( d = this.container.offset() ),
|
||
|
( e = this.container.outerHeight( ! 1 ) ),
|
||
|
( f = this.container.outerWidth( ! 1 ) ),
|
||
|
( g = b.outerHeight( ! 1 ) ),
|
||
|
( l = h.scrollLeft() + i ),
|
||
|
( m = h.scrollTop() + k ),
|
||
|
( n = d.top + e ),
|
||
|
( o = d.left ),
|
||
|
( r = b.outerWidth( ! 1 ) ),
|
||
|
b.show(),
|
||
|
this.focusSearch() ),
|
||
|
this.opts.dropdownAutoWidth
|
||
|
? ( ( z = a( '.select2-results', b )[ 0 ] ),
|
||
|
b.addClass( 'select2-drop-auto-width' ),
|
||
|
b.css( 'width', '' ),
|
||
|
( r =
|
||
|
b.outerWidth( ! 1 ) +
|
||
|
( z.scrollHeight === z.clientHeight
|
||
|
? 0
|
||
|
: j.width ) ),
|
||
|
r > f ? ( f = r ) : ( r = f ),
|
||
|
( g = b.outerHeight( ! 1 ) ) )
|
||
|
: this.container.removeClass(
|
||
|
'select2-drop-auto-width'
|
||
|
),
|
||
|
'static' !== this.body.css( 'position' ) &&
|
||
|
( ( v = this.body.offset() ),
|
||
|
( n -= v.top ),
|
||
|
( o -= v.left ) ),
|
||
|
! s() &&
|
||
|
t() &&
|
||
|
( o =
|
||
|
d.left +
|
||
|
this.container.outerWidth( ! 1 ) -
|
||
|
r ),
|
||
|
( y = { left: o, width: f } ),
|
||
|
w
|
||
|
? ( ( y.top = d.top - g ),
|
||
|
( y.bottom = 'auto' ),
|
||
|
this.container.addClass(
|
||
|
'select2-drop-above'
|
||
|
),
|
||
|
b.addClass( 'select2-drop-above' ) )
|
||
|
: ( ( y.top = n ),
|
||
|
( y.bottom = 'auto' ),
|
||
|
this.container.removeClass(
|
||
|
'select2-drop-above'
|
||
|
),
|
||
|
b.removeClass( 'select2-drop-above' ) ),
|
||
|
( y = a.extend(
|
||
|
y,
|
||
|
K( this.opts.dropdownCss, this.opts.element )
|
||
|
) ),
|
||
|
b.css( y );
|
||
|
},
|
||
|
shouldOpen: function () {
|
||
|
var b;
|
||
|
return this.opened()
|
||
|
? ! 1
|
||
|
: this._enabled === ! 1 || this._readonly === ! 0
|
||
|
? ! 1
|
||
|
: ( ( b = a.Event( 'select2-opening' ) ),
|
||
|
this.opts.element.trigger( b ),
|
||
|
! b.isDefaultPrevented() );
|
||
|
},
|
||
|
clearDropdownAlignmentPreference: function () {
|
||
|
this.container.removeClass( 'select2-drop-above' ),
|
||
|
this.dropdown.removeClass( 'select2-drop-above' );
|
||
|
},
|
||
|
open: function () {
|
||
|
return this.shouldOpen()
|
||
|
? ( this.opening(),
|
||
|
i.on( 'mousemove.select2Event', function ( a ) {
|
||
|
( h.x = a.pageX ), ( h.y = a.pageY );
|
||
|
} ),
|
||
|
! 0 )
|
||
|
: ! 1;
|
||
|
},
|
||
|
opening: function () {
|
||
|
var f,
|
||
|
b = this.containerEventName,
|
||
|
c = 'scroll.' + b,
|
||
|
d = 'resize.' + b,
|
||
|
e = 'orientationchange.' + b;
|
||
|
this.container
|
||
|
.addClass( 'select2-dropdown-open' )
|
||
|
.addClass( 'select2-container-active' ),
|
||
|
this.clearDropdownAlignmentPreference(),
|
||
|
this.dropdown[ 0 ] !==
|
||
|
this.body.children().last()[ 0 ] &&
|
||
|
this.dropdown.detach().appendTo( this.body ),
|
||
|
( f = a( '#select2-drop-mask' ) ),
|
||
|
0 === f.length &&
|
||
|
( ( f = a( document.createElement( 'div' ) ) ),
|
||
|
f
|
||
|
.attr( 'id', 'select2-drop-mask' )
|
||
|
.attr( 'class', 'select2-drop-mask' ),
|
||
|
f.hide(),
|
||
|
f.appendTo( this.body ),
|
||
|
f.on(
|
||
|
'mousedown touchstart click',
|
||
|
function ( b ) {
|
||
|
n( f );
|
||
|
var d,
|
||
|
c = a( '#select2-drop' );
|
||
|
c.length > 0 &&
|
||
|
( ( d = c.data( 'select2' ) ),
|
||
|
d.opts.selectOnBlur &&
|
||
|
d.selectHighlighted( {
|
||
|
noFocus: ! 0,
|
||
|
} ),
|
||
|
d.close(),
|
||
|
b.preventDefault(),
|
||
|
b.stopPropagation() );
|
||
|
}
|
||
|
) ),
|
||
|
this.dropdown.prev()[ 0 ] !== f[ 0 ] &&
|
||
|
this.dropdown.before( f ),
|
||
|
a( '#select2-drop' ).removeAttr( 'id' ),
|
||
|
this.dropdown.attr( 'id', 'select2-drop' ),
|
||
|
f.show(),
|
||
|
this.positionDropdown(),
|
||
|
this.dropdown.show(),
|
||
|
this.positionDropdown(),
|
||
|
this.dropdown.addClass( 'select2-drop-active' );
|
||
|
var g = this;
|
||
|
this.container
|
||
|
.parents()
|
||
|
.add( window )
|
||
|
.each( function () {
|
||
|
a( this ).on(
|
||
|
d + ' ' + c + ' ' + e,
|
||
|
function () {
|
||
|
g.opened() && g.positionDropdown();
|
||
|
}
|
||
|
);
|
||
|
} );
|
||
|
},
|
||
|
close: function () {
|
||
|
if ( this.opened() ) {
|
||
|
var b = this.containerEventName,
|
||
|
c = 'scroll.' + b,
|
||
|
d = 'resize.' + b,
|
||
|
e = 'orientationchange.' + b;
|
||
|
this.container
|
||
|
.parents()
|
||
|
.add( window )
|
||
|
.each( function () {
|
||
|
a( this ).off( c ).off( d ).off( e );
|
||
|
} ),
|
||
|
this.clearDropdownAlignmentPreference(),
|
||
|
a( '#select2-drop-mask' ).hide(),
|
||
|
this.dropdown.removeAttr( 'id' ),
|
||
|
this.dropdown.hide(),
|
||
|
this.container
|
||
|
.removeClass( 'select2-dropdown-open' )
|
||
|
.removeClass( 'select2-container-active' ),
|
||
|
this.results.empty(),
|
||
|
i.off( 'mousemove.select2Event' ),
|
||
|
this.clearSearch(),
|
||
|
this.search.removeClass( 'select2-active' ),
|
||
|
this.opts.element.trigger(
|
||
|
a.Event( 'select2-close' )
|
||
|
);
|
||
|
}
|
||
|
},
|
||
|
externalSearch: function ( a ) {
|
||
|
this.open(),
|
||
|
this.search.val( a ),
|
||
|
this.updateResults( ! 1 );
|
||
|
},
|
||
|
clearSearch: function () {},
|
||
|
getMaximumSelectionSize: function () {
|
||
|
return K(
|
||
|
this.opts.maximumSelectionSize,
|
||
|
this.opts.element
|
||
|
);
|
||
|
},
|
||
|
ensureHighlightVisible: function () {
|
||
|
var c,
|
||
|
d,
|
||
|
e,
|
||
|
f,
|
||
|
g,
|
||
|
h,
|
||
|
i,
|
||
|
j,
|
||
|
b = this.results;
|
||
|
if ( ( ( d = this.highlight() ), ! ( 0 > d ) ) ) {
|
||
|
if ( 0 == d ) return b.scrollTop( 0 ), void 0;
|
||
|
( c = this.findHighlightableChoices().find(
|
||
|
'.select2-result-label'
|
||
|
) ),
|
||
|
( e = a( c[ d ] ) ),
|
||
|
( j = ( e.offset() || {} ).top || 0 ),
|
||
|
( f = j + e.outerHeight( ! 0 ) ),
|
||
|
d === c.length - 1 &&
|
||
|
( ( i = b.find(
|
||
|
'li.select2-more-results'
|
||
|
) ),
|
||
|
i.length > 0 &&
|
||
|
( f =
|
||
|
i.offset().top +
|
||
|
i.outerHeight( ! 0 ) ) ),
|
||
|
( g = b.offset().top + b.outerHeight( ! 1 ) ),
|
||
|
f > g &&
|
||
|
b.scrollTop( b.scrollTop() + ( f - g ) ),
|
||
|
( h = j - b.offset().top ),
|
||
|
0 > h &&
|
||
|
'none' != e.css( 'display' ) &&
|
||
|
b.scrollTop( b.scrollTop() + h );
|
||
|
}
|
||
|
},
|
||
|
findHighlightableChoices: function () {
|
||
|
return this.results.find(
|
||
|
'.select2-result-selectable:not(.select2-disabled):not(.select2-selected)'
|
||
|
);
|
||
|
},
|
||
|
moveHighlight: function ( b ) {
|
||
|
for (
|
||
|
var c = this.findHighlightableChoices(),
|
||
|
d = this.highlight();
|
||
|
d > -1 && d < c.length;
|
||
|
|
||
|
) {
|
||
|
d += b;
|
||
|
var e = a( c[ d ] );
|
||
|
if (
|
||
|
e.hasClass( 'select2-result-selectable' ) &&
|
||
|
! e.hasClass( 'select2-disabled' ) &&
|
||
|
! e.hasClass( 'select2-selected' )
|
||
|
) {
|
||
|
this.highlight( d );
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
highlight: function ( b ) {
|
||
|
var d,
|
||
|
e,
|
||
|
c = this.findHighlightableChoices();
|
||
|
return 0 === arguments.length
|
||
|
? p(
|
||
|
c.filter( '.select2-highlighted' )[ 0 ],
|
||
|
c.get()
|
||
|
)
|
||
|
: ( b >= c.length && ( b = c.length - 1 ),
|
||
|
0 > b && ( b = 0 ),
|
||
|
this.removeHighlight(),
|
||
|
( d = a( c[ b ] ) ),
|
||
|
d.addClass( 'select2-highlighted' ),
|
||
|
this.search.attr(
|
||
|
'aria-activedescendant',
|
||
|
d
|
||
|
.find( '.select2-result-label' )
|
||
|
.attr( 'id' )
|
||
|
),
|
||
|
this.ensureHighlightVisible(),
|
||
|
this.liveRegion.text( d.text() ),
|
||
|
( e = d.data( 'select2-data' ) ),
|
||
|
e &&
|
||
|
this.opts.element.trigger( {
|
||
|
type: 'select2-highlight',
|
||
|
val: this.id( e ),
|
||
|
choice: e,
|
||
|
} ),
|
||
|
void 0 );
|
||
|
},
|
||
|
removeHighlight: function () {
|
||
|
this.results
|
||
|
.find( '.select2-highlighted' )
|
||
|
.removeClass( 'select2-highlighted' );
|
||
|
},
|
||
|
touchMoved: function () {
|
||
|
this._touchMoved = ! 0;
|
||
|
},
|
||
|
clearTouchMoved: function () {
|
||
|
this._touchMoved = ! 1;
|
||
|
},
|
||
|
countSelectableResults: function () {
|
||
|
return this.findHighlightableChoices().length;
|
||
|
},
|
||
|
highlightUnderEvent: function ( b ) {
|
||
|
var c = a( b.target ).closest(
|
||
|
'.select2-result-selectable'
|
||
|
);
|
||
|
if (
|
||
|
c.length > 0 &&
|
||
|
! c.is( '.select2-highlighted' )
|
||
|
) {
|
||
|
var d = this.findHighlightableChoices();
|
||
|
this.highlight( d.index( c ) );
|
||
|
} else 0 == c.length && this.removeHighlight();
|
||
|
},
|
||
|
loadMoreIfNeeded: function () {
|
||
|
var c,
|
||
|
a = this.results,
|
||
|
b = a.find( 'li.select2-more-results' ),
|
||
|
d = this.resultsPage + 1,
|
||
|
e = this,
|
||
|
f = this.search.val(),
|
||
|
g = this.context;
|
||
|
0 !== b.length &&
|
||
|
( ( c =
|
||
|
b.offset().top - a.offset().top - a.height() ),
|
||
|
c <= this.opts.loadMorePadding &&
|
||
|
( b.addClass( 'select2-active' ),
|
||
|
this.opts.query( {
|
||
|
element: this.opts.element,
|
||
|
term: f,
|
||
|
page: d,
|
||
|
context: g,
|
||
|
matcher: this.opts.matcher,
|
||
|
callback: this.bind( function ( c ) {
|
||
|
e.opened() &&
|
||
|
( e.opts.populateResults.call(
|
||
|
this,
|
||
|
a,
|
||
|
c.results,
|
||
|
{ term: f, page: d, context: g }
|
||
|
),
|
||
|
e.postprocessResults( c, ! 1, ! 1 ),
|
||
|
c.more === ! 0
|
||
|
? ( b
|
||
|
.detach()
|
||
|
.appendTo( a )
|
||
|
.html(
|
||
|
e.opts.escapeMarkup(
|
||
|
K(
|
||
|
e.opts
|
||
|
.formatLoadMore,
|
||
|
e.opts
|
||
|
.element,
|
||
|
d + 1
|
||
|
)
|
||
|
)
|
||
|
),
|
||
|
window.setTimeout(
|
||
|
function () {
|
||
|
e.loadMoreIfNeeded();
|
||
|
},
|
||
|
10
|
||
|
) )
|
||
|
: b.remove(),
|
||
|
e.positionDropdown(),
|
||
|
( e.resultsPage = d ),
|
||
|
( e.context = c.context ),
|
||
|
this.opts.element.trigger( {
|
||
|
type: 'select2-loaded',
|
||
|
items: c,
|
||
|
} ) );
|
||
|
} ),
|
||
|
} ) ) );
|
||
|
},
|
||
|
tokenize: function () {},
|
||
|
updateResults: function ( c ) {
|
||
|
function m() {
|
||
|
d.removeClass( 'select2-active' ),
|
||
|
h.positionDropdown(),
|
||
|
e.find(
|
||
|
'.select2-no-results,.select2-selection-limit,.select2-searching'
|
||
|
).length
|
||
|
? h.liveRegion.text( e.text() )
|
||
|
: h.liveRegion.text(
|
||
|
h.opts.formatMatches(
|
||
|
e.find(
|
||
|
'.select2-result-selectable:not(".select2-selected")'
|
||
|
).length
|
||
|
)
|
||
|
);
|
||
|
}
|
||
|
function n( a ) {
|
||
|
e.html( a ), m();
|
||
|
}
|
||
|
var g,
|
||
|
i,
|
||
|
l,
|
||
|
d = this.search,
|
||
|
e = this.results,
|
||
|
f = this.opts,
|
||
|
h = this,
|
||
|
j = d.val(),
|
||
|
k = a.data( this.container, 'select2-last-term' );
|
||
|
if (
|
||
|
( c === ! 0 || ! k || ! r( j, k ) ) &&
|
||
|
( a.data( this.container, 'select2-last-term', j ),
|
||
|
c === ! 0 ||
|
||
|
( this.showSearchInput !== ! 1 &&
|
||
|
this.opened() ) )
|
||
|
) {
|
||
|
l = ++this.queryCount;
|
||
|
var o = this.getMaximumSelectionSize();
|
||
|
if (
|
||
|
o >= 1 &&
|
||
|
( ( g = this.data() ),
|
||
|
a.isArray( g ) &&
|
||
|
g.length >= o &&
|
||
|
J(
|
||
|
f.formatSelectionTooBig,
|
||
|
'formatSelectionTooBig'
|
||
|
) )
|
||
|
)
|
||
|
return (
|
||
|
n(
|
||
|
"<li class='select2-selection-limit'>" +
|
||
|
K(
|
||
|
f.formatSelectionTooBig,
|
||
|
f.element,
|
||
|
o
|
||
|
) +
|
||
|
'</li>'
|
||
|
),
|
||
|
void 0
|
||
|
);
|
||
|
if ( d.val().length < f.minimumInputLength )
|
||
|
return (
|
||
|
J(
|
||
|
f.formatInputTooShort,
|
||
|
'formatInputTooShort'
|
||
|
)
|
||
|
? n(
|
||
|
"<li class='select2-no-results'>" +
|
||
|
K(
|
||
|
f.formatInputTooShort,
|
||
|
f.element,
|
||
|
d.val(),
|
||
|
f.minimumInputLength
|
||
|
) +
|
||
|
'</li>'
|
||
|
)
|
||
|
: n( '' ),
|
||
|
c &&
|
||
|
this.showSearch &&
|
||
|
this.showSearch( ! 0 ),
|
||
|
void 0
|
||
|
);
|
||
|
if (
|
||
|
f.maximumInputLength &&
|
||
|
d.val().length > f.maximumInputLength
|
||
|
)
|
||
|
return (
|
||
|
J(
|
||
|
f.formatInputTooLong,
|
||
|
'formatInputTooLong'
|
||
|
)
|
||
|
? n(
|
||
|
"<li class='select2-no-results'>" +
|
||
|
K(
|
||
|
f.formatInputTooLong,
|
||
|
f.element,
|
||
|
d.val(),
|
||
|
f.maximumInputLength
|
||
|
) +
|
||
|
'</li>'
|
||
|
)
|
||
|
: n( '' ),
|
||
|
void 0
|
||
|
);
|
||
|
f.formatSearching &&
|
||
|
0 === this.findHighlightableChoices().length &&
|
||
|
n(
|
||
|
"<li class='select2-searching'>" +
|
||
|
K( f.formatSearching, f.element ) +
|
||
|
'</li>'
|
||
|
),
|
||
|
d.addClass( 'select2-active' ),
|
||
|
this.removeHighlight(),
|
||
|
( i = this.tokenize() ),
|
||
|
i != b && null != i && d.val( i ),
|
||
|
( this.resultsPage = 1 ),
|
||
|
f.query( {
|
||
|
element: f.element,
|
||
|
term: d.val(),
|
||
|
page: this.resultsPage,
|
||
|
context: null,
|
||
|
matcher: f.matcher,
|
||
|
callback: this.bind( function ( g ) {
|
||
|
var i;
|
||
|
if ( l == this.queryCount ) {
|
||
|
if ( ! this.opened() )
|
||
|
return (
|
||
|
this.search.removeClass(
|
||
|
'select2-active'
|
||
|
),
|
||
|
void 0
|
||
|
);
|
||
|
if (
|
||
|
g.hasError !== b &&
|
||
|
J(
|
||
|
f.formatAjaxError,
|
||
|
'formatAjaxError'
|
||
|
)
|
||
|
)
|
||
|
return (
|
||
|
n(
|
||
|
"<li class='select2-ajax-error'>" +
|
||
|
K(
|
||
|
f.formatAjaxError,
|
||
|
f.element,
|
||
|
g.jqXHR,
|
||
|
g.textStatus,
|
||
|
g.errorThrown
|
||
|
) +
|
||
|
'</li>'
|
||
|
),
|
||
|
void 0
|
||
|
);
|
||
|
if (
|
||
|
( ( this.context =
|
||
|
g.context === b
|
||
|
? null
|
||
|
: g.context ),
|
||
|
this.opts.createSearchChoice &&
|
||
|
'' !== d.val() &&
|
||
|
( ( i = this.opts.createSearchChoice.call(
|
||
|
h,
|
||
|
d.val(),
|
||
|
g.results
|
||
|
) ),
|
||
|
i !== b &&
|
||
|
null !== i &&
|
||
|
h.id( i ) !== b &&
|
||
|
null !== h.id( i ) &&
|
||
|
0 ===
|
||
|
a(
|
||
|
g.results
|
||
|
).filter(
|
||
|
function () {
|
||
|
return r(
|
||
|
h.id(
|
||
|
this
|
||
|
),
|
||
|
h.id(
|
||
|
i
|
||
|
)
|
||
|
);
|
||
|
}
|
||
|
).length &&
|
||
|
this.opts.createSearchChoicePosition(
|
||
|
g.results,
|
||
|
i
|
||
|
) ),
|
||
|
0 === g.results.length &&
|
||
|
J(
|
||
|
f.formatNoMatches,
|
||
|
'formatNoMatches'
|
||
|
) )
|
||
|
)
|
||
|
return (
|
||
|
n(
|
||
|
"<li class='select2-no-results'>" +
|
||
|
K(
|
||
|
f.formatNoMatches,
|
||
|
f.element,
|
||
|
d.val()
|
||
|
) +
|
||
|
'</li>'
|
||
|
),
|
||
|
void 0
|
||
|
);
|
||
|
e.empty(),
|
||
|
h.opts.populateResults.call(
|
||
|
this,
|
||
|
e,
|
||
|
g.results,
|
||
|
{
|
||
|
term: d.val(),
|
||
|
page: this.resultsPage,
|
||
|
context: null,
|
||
|
}
|
||
|
),
|
||
|
g.more === ! 0 &&
|
||
|
J(
|
||
|
f.formatLoadMore,
|
||
|
'formatLoadMore'
|
||
|
) &&
|
||
|
( e.append(
|
||
|
"<li class='select2-more-results'>" +
|
||
|
f.escapeMarkup(
|
||
|
K(
|
||
|
f.formatLoadMore,
|
||
|
f.element,
|
||
|
this
|
||
|
.resultsPage
|
||
|
)
|
||
|
) +
|
||
|
'</li>'
|
||
|
),
|
||
|
window.setTimeout(
|
||
|
function () {
|
||
|
h.loadMoreIfNeeded();
|
||
|
},
|
||
|
10
|
||
|
) ),
|
||
|
this.postprocessResults( g, c ),
|
||
|
m(),
|
||
|
this.opts.element.trigger( {
|
||
|
type: 'select2-loaded',
|
||
|
items: g,
|
||
|
} );
|
||
|
}
|
||
|
} ),
|
||
|
} );
|
||
|
}
|
||
|
},
|
||
|
cancel: function () {
|
||
|
this.close();
|
||
|
},
|
||
|
blur: function () {
|
||
|
this.opts.selectOnBlur &&
|
||
|
this.selectHighlighted( { noFocus: ! 0 } ),
|
||
|
this.close(),
|
||
|
this.container.removeClass(
|
||
|
'select2-container-active'
|
||
|
),
|
||
|
this.search[ 0 ] === document.activeElement &&
|
||
|
this.search.blur(),
|
||
|
this.clearSearch(),
|
||
|
this.selection
|
||
|
.find( '.select2-search-choice-focus' )
|
||
|
.removeClass( 'select2-search-choice-focus' );
|
||
|
},
|
||
|
focusSearch: function () {
|
||
|
y( this.search );
|
||
|
},
|
||
|
selectHighlighted: function ( a ) {
|
||
|
if ( this._touchMoved )
|
||
|
return this.clearTouchMoved(), void 0;
|
||
|
var b = this.highlight(),
|
||
|
c = this.results.find( '.select2-highlighted' ),
|
||
|
d = c
|
||
|
.closest( '.select2-result' )
|
||
|
.data( 'select2-data' );
|
||
|
d
|
||
|
? ( this.highlight( b ), this.onSelect( d, a ) )
|
||
|
: a && a.noFocus && this.close();
|
||
|
},
|
||
|
getPlaceholder: function () {
|
||
|
var a;
|
||
|
return (
|
||
|
this.opts.element.attr( 'placeholder' ) ||
|
||
|
this.opts.element.attr( 'data-placeholder' ) ||
|
||
|
this.opts.element.data( 'placeholder' ) ||
|
||
|
this.opts.placeholder ||
|
||
|
( ( a = this.getPlaceholderOption() ) !== b
|
||
|
? a.text()
|
||
|
: b )
|
||
|
);
|
||
|
},
|
||
|
getPlaceholderOption: function () {
|
||
|
if ( this.select ) {
|
||
|
var c = this.select.children( 'option' ).first();
|
||
|
if ( this.opts.placeholderOption !== b )
|
||
|
return (
|
||
|
( 'first' === this.opts.placeholderOption &&
|
||
|
c ) ||
|
||
|
( 'function' ==
|
||
|
typeof this.opts.placeholderOption &&
|
||
|
this.opts.placeholderOption(
|
||
|
this.select
|
||
|
) )
|
||
|
);
|
||
|
if ( '' === a.trim( c.text() ) && '' === c.val() )
|
||
|
return c;
|
||
|
}
|
||
|
},
|
||
|
initContainerWidth: function () {
|
||
|
function c() {
|
||
|
var c, d, e, f, g, h;
|
||
|
if ( 'off' === this.opts.width ) return null;
|
||
|
if ( 'element' === this.opts.width )
|
||
|
return 0 === this.opts.element.outerWidth( ! 1 )
|
||
|
? 'auto'
|
||
|
: this.opts.element.outerWidth( ! 1 ) +
|
||
|
'px';
|
||
|
if (
|
||
|
'copy' === this.opts.width ||
|
||
|
'resolve' === this.opts.width
|
||
|
) {
|
||
|
if (
|
||
|
( ( c = this.opts.element.attr( 'style' ) ),
|
||
|
c !== b )
|
||
|
)
|
||
|
for (
|
||
|
d = c.split( ';' ), f = 0, g = d.length;
|
||
|
g > f;
|
||
|
f += 1
|
||
|
)
|
||
|
if (
|
||
|
( ( h = d[ f ].replace(
|
||
|
/\s/g,
|
||
|
''
|
||
|
) ),
|
||
|
( e = h.match(
|
||
|
/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i
|
||
|
) ),
|
||
|
null !== e && e.length >= 1 )
|
||
|
)
|
||
|
return e[ 1 ];
|
||
|
return 'resolve' === this.opts.width
|
||
|
? ( ( c = this.opts.element.css(
|
||
|
'width'
|
||
|
) ),
|
||
|
c.indexOf( '%' ) > 0
|
||
|
? c
|
||
|
: 0 ===
|
||
|
this.opts.element.outerWidth(
|
||
|
! 1
|
||
|
)
|
||
|
? 'auto'
|
||
|
: this.opts.element.outerWidth(
|
||
|
! 1
|
||
|
) + 'px' )
|
||
|
: null;
|
||
|
}
|
||
|
return a.isFunction( this.opts.width )
|
||
|
? this.opts.width()
|
||
|
: this.opts.width;
|
||
|
}
|
||
|
var d = c.call( this );
|
||
|
null !== d && this.container.css( 'width', d );
|
||
|
},
|
||
|
} ) ),
|
||
|
( d = O( c, {
|
||
|
createContainer: function () {
|
||
|
var b = a( document.createElement( 'div' ) )
|
||
|
.attr( { class: 'select2-container' } )
|
||
|
.html(
|
||
|
[
|
||
|
"<a href='javascript:void(0)' class='select2-choice' tabindex='-1'>",
|
||
|
" <span class='select2-chosen'> </span><abbr class='select2-search-choice-close'></abbr>",
|
||
|
" <span class='select2-arrow' role='presentation'><b role='presentation'></b></span>",
|
||
|
'</a>',
|
||
|
"<label for='' class='select2-offscreen'></label>",
|
||
|
"<input class='select2-focusser select2-offscreen' type='text' aria-haspopup='true' role='button' />",
|
||
|
"<div class='select2-drop select2-display-none'>",
|
||
|
" <div class='select2-search'>",
|
||
|
" <label for='' class='select2-offscreen'></label>",
|
||
|
" <input type='text' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' class='select2-input' role='combobox' aria-expanded='true'",
|
||
|
" aria-autocomplete='list' />",
|
||
|
' </div>',
|
||
|
" <ul class='select2-results' role='listbox'>",
|
||
|
' </ul>',
|
||
|
'</div>',
|
||
|
].join( '' )
|
||
|
);
|
||
|
return b;
|
||
|
},
|
||
|
enableInterface: function () {
|
||
|
this.parent.enableInterface.apply( this, arguments ) &&
|
||
|
this.focusser.prop(
|
||
|
'disabled',
|
||
|
! this.isInterfaceEnabled()
|
||
|
);
|
||
|
},
|
||
|
opening: function () {
|
||
|
var c, d, e;
|
||
|
this.opts.minimumResultsForSearch >= 0 &&
|
||
|
this.showSearch( ! 0 ),
|
||
|
this.parent.opening.apply( this, arguments ),
|
||
|
this.showSearchInput !== ! 1 &&
|
||
|
this.search.val( this.focusser.val() ),
|
||
|
this.opts.shouldFocusInput( this ) &&
|
||
|
( this.search.focus(),
|
||
|
( c = this.search.get( 0 ) ),
|
||
|
c.createTextRange
|
||
|
? ( ( d = c.createTextRange() ),
|
||
|
d.collapse( ! 1 ),
|
||
|
d.select() )
|
||
|
: c.setSelectionRange &&
|
||
|
( ( e = this.search.val().length ),
|
||
|
c.setSelectionRange( e, e ) ) ),
|
||
|
'' === this.search.val() &&
|
||
|
this.nextSearchTerm != b &&
|
||
|
( this.search.val( this.nextSearchTerm ),
|
||
|
this.search.select() ),
|
||
|
this.focusser.prop( 'disabled', ! 0 ).val( '' ),
|
||
|
this.updateResults( ! 0 ),
|
||
|
this.opts.element.trigger(
|
||
|
a.Event( 'select2-open' )
|
||
|
);
|
||
|
},
|
||
|
close: function () {
|
||
|
this.opened() &&
|
||
|
( this.parent.close.apply( this, arguments ),
|
||
|
this.focusser.prop( 'disabled', ! 1 ),
|
||
|
this.opts.shouldFocusInput( this ) &&
|
||
|
this.focusser.focus() );
|
||
|
},
|
||
|
focus: function () {
|
||
|
this.opened()
|
||
|
? this.close()
|
||
|
: ( this.focusser.prop( 'disabled', ! 1 ),
|
||
|
this.opts.shouldFocusInput( this ) &&
|
||
|
this.focusser.focus() );
|
||
|
},
|
||
|
isFocused: function () {
|
||
|
return this.container.hasClass(
|
||
|
'select2-container-active'
|
||
|
);
|
||
|
},
|
||
|
cancel: function () {
|
||
|
this.parent.cancel.apply( this, arguments ),
|
||
|
this.focusser.prop( 'disabled', ! 1 ),
|
||
|
this.opts.shouldFocusInput( this ) &&
|
||
|
this.focusser.focus();
|
||
|
},
|
||
|
destroy: function () {
|
||
|
a(
|
||
|
"label[for='" + this.focusser.attr( 'id' ) + "']"
|
||
|
).attr( 'for', this.opts.element.attr( 'id' ) ),
|
||
|
this.parent.destroy.apply( this, arguments ),
|
||
|
N.call( this, 'selection', 'focusser' );
|
||
|
},
|
||
|
initContainer: function () {
|
||
|
var b,
|
||
|
g,
|
||
|
c = this.container,
|
||
|
d = this.dropdown,
|
||
|
e = f();
|
||
|
this.opts.minimumResultsForSearch < 0
|
||
|
? this.showSearch( ! 1 )
|
||
|
: this.showSearch( ! 0 ),
|
||
|
( this.selection = b = c.find(
|
||
|
'.select2-choice'
|
||
|
) ),
|
||
|
( this.focusser = c.find( '.select2-focusser' ) ),
|
||
|
b
|
||
|
.find( '.select2-chosen' )
|
||
|
.attr( 'id', 'select2-chosen-' + e ),
|
||
|
this.focusser.attr(
|
||
|
'aria-labelledby',
|
||
|
'select2-chosen-' + e
|
||
|
),
|
||
|
this.results.attr( 'id', 'select2-results-' + e ),
|
||
|
this.search.attr(
|
||
|
'aria-owns',
|
||
|
'select2-results-' + e
|
||
|
),
|
||
|
this.focusser.attr( 'id', 's2id_autogen' + e ),
|
||
|
( g = a(
|
||
|
"label[for='" +
|
||
|
this.opts.element.attr( 'id' ) +
|
||
|
"']"
|
||
|
) ),
|
||
|
this.opts.element.focus(
|
||
|
this.bind( function () {
|
||
|
this.focus();
|
||
|
} )
|
||
|
),
|
||
|
this.focusser
|
||
|
.prev()
|
||
|
.text( g.text() )
|
||
|
.attr( 'for', this.focusser.attr( 'id' ) );
|
||
|
var h = this.opts.element.attr( 'title' );
|
||
|
this.opts.element.attr( 'title', h || g.text() ),
|
||
|
this.focusser.attr(
|
||
|
'tabindex',
|
||
|
this.elementTabIndex
|
||
|
),
|
||
|
this.search.attr(
|
||
|
'id',
|
||
|
this.focusser.attr( 'id' ) + '_search'
|
||
|
),
|
||
|
this.search
|
||
|
.prev()
|
||
|
.text(
|
||
|
a(
|
||
|
"label[for='" +
|
||
|
this.focusser.attr( 'id' ) +
|
||
|
"']"
|
||
|
).text()
|
||
|
)
|
||
|
.attr( 'for', this.search.attr( 'id' ) ),
|
||
|
this.search.on(
|
||
|
'keydown',
|
||
|
this.bind( function ( a ) {
|
||
|
if (
|
||
|
this.isInterfaceEnabled() &&
|
||
|
229 != a.keyCode
|
||
|
) {
|
||
|
if (
|
||
|
a.which === k.PAGE_UP ||
|
||
|
a.which === k.PAGE_DOWN
|
||
|
)
|
||
|
return A( a ), void 0;
|
||
|
switch ( a.which ) {
|
||
|
case k.UP:
|
||
|
case k.DOWN:
|
||
|
return (
|
||
|
this.moveHighlight(
|
||
|
a.which === k.UP
|
||
|
? -1
|
||
|
: 1
|
||
|
),
|
||
|
A( a ),
|
||
|
void 0
|
||
|
);
|
||
|
case k.ENTER:
|
||
|
return (
|
||
|
this.selectHighlighted(),
|
||
|
A( a ),
|
||
|
void 0
|
||
|
);
|
||
|
case k.TAB:
|
||
|
return (
|
||
|
this.selectHighlighted( {
|
||
|
noFocus: ! 0,
|
||
|
} ),
|
||
|
void 0
|
||
|
);
|
||
|
case k.ESC:
|
||
|
return (
|
||
|
this.cancel( a ),
|
||
|
A( a ),
|
||
|
void 0
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
} )
|
||
|
),
|
||
|
this.search.on(
|
||
|
'blur',
|
||
|
this.bind( function () {
|
||
|
document.activeElement ===
|
||
|
this.body.get( 0 ) &&
|
||
|
window.setTimeout(
|
||
|
this.bind( function () {
|
||
|
this.opened() &&
|
||
|
this.search.focus();
|
||
|
} ),
|
||
|
0
|
||
|
);
|
||
|
} )
|
||
|
),
|
||
|
this.focusser.on(
|
||
|
'keydown',
|
||
|
this.bind( function ( a ) {
|
||
|
if (
|
||
|
this.isInterfaceEnabled() &&
|
||
|
a.which !== k.TAB &&
|
||
|
! k.isControl( a ) &&
|
||
|
! k.isFunctionKey( a ) &&
|
||
|
a.which !== k.ESC
|
||
|
) {
|
||
|
if (
|
||
|
this.opts.openOnEnter === ! 1 &&
|
||
|
a.which === k.ENTER
|
||
|
)
|
||
|
return A( a ), void 0;
|
||
|
if (
|
||
|
a.which == k.DOWN ||
|
||
|
a.which == k.UP ||
|
||
|
( a.which == k.ENTER &&
|
||
|
this.opts.openOnEnter )
|
||
|
) {
|
||
|
if (
|
||
|
a.altKey ||
|
||
|
a.ctrlKey ||
|
||
|
a.shiftKey ||
|
||
|
a.metaKey
|
||
|
)
|
||
|
return;
|
||
|
return this.open(), A( a ), void 0;
|
||
|
}
|
||
|
return a.which == k.DELETE ||
|
||
|
a.which == k.BACKSPACE
|
||
|
? ( this.opts.allowClear &&
|
||
|
this.clear(),
|
||
|
A( a ),
|
||
|
void 0 )
|
||
|
: void 0;
|
||
|
}
|
||
|
} )
|
||
|
),
|
||
|
u( this.focusser ),
|
||
|
this.focusser.on(
|
||
|
'keyup-change input',
|
||
|
this.bind( function ( a ) {
|
||
|
if (
|
||
|
this.opts.minimumResultsForSearch >= 0
|
||
|
) {
|
||
|
if (
|
||
|
( a.stopPropagation(),
|
||
|
this.opened() )
|
||
|
)
|
||
|
return;
|
||
|
this.open();
|
||
|
}
|
||
|
} )
|
||
|
),
|
||
|
b.on(
|
||
|
'mousedown touchstart',
|
||
|
'abbr',
|
||
|
this.bind( function ( a ) {
|
||
|
this.isInterfaceEnabled() &&
|
||
|
( this.clear(),
|
||
|
B( a ),
|
||
|
this.close(),
|
||
|
this.selection &&
|
||
|
this.selection.focus() );
|
||
|
} )
|
||
|
),
|
||
|
b.on(
|
||
|
'mousedown touchstart',
|
||
|
this.bind( function ( c ) {
|
||
|
n( b ),
|
||
|
this.container.hasClass(
|
||
|
'select2-container-active'
|
||
|
) ||
|
||
|
this.opts.element.trigger(
|
||
|
a.Event( 'select2-focus' )
|
||
|
),
|
||
|
this.opened()
|
||
|
? this.close()
|
||
|
: this.isInterfaceEnabled() &&
|
||
|
this.open(),
|
||
|
A( c );
|
||
|
} )
|
||
|
),
|
||
|
d.on(
|
||
|
'mousedown touchstart',
|
||
|
this.bind( function () {
|
||
|
this.opts.shouldFocusInput( this ) &&
|
||
|
this.search.focus();
|
||
|
} )
|
||
|
),
|
||
|
b.on(
|
||
|
'focus',
|
||
|
this.bind( function ( a ) {
|
||
|
A( a );
|
||
|
} )
|
||
|
),
|
||
|
this.focusser
|
||
|
.on(
|
||
|
'focus',
|
||
|
this.bind( function () {
|
||
|
this.container.hasClass(
|
||
|
'select2-container-active'
|
||
|
) ||
|
||
|
this.opts.element.trigger(
|
||
|
a.Event( 'select2-focus' )
|
||
|
),
|
||
|
this.container.addClass(
|
||
|
'select2-container-active'
|
||
|
);
|
||
|
} )
|
||
|
)
|
||
|
.on(
|
||
|
'blur',
|
||
|
this.bind( function () {
|
||
|
this.opened() ||
|
||
|
( this.container.removeClass(
|
||
|
'select2-container-active'
|
||
|
),
|
||
|
this.opts.element.trigger(
|
||
|
a.Event( 'select2-blur' )
|
||
|
) );
|
||
|
} )
|
||
|
),
|
||
|
this.search.on(
|
||
|
'focus',
|
||
|
this.bind( function () {
|
||
|
this.container.hasClass(
|
||
|
'select2-container-active'
|
||
|
) ||
|
||
|
this.opts.element.trigger(
|
||
|
a.Event( 'select2-focus' )
|
||
|
),
|
||
|
this.container.addClass(
|
||
|
'select2-container-active'
|
||
|
);
|
||
|
} )
|
||
|
),
|
||
|
this.initContainerWidth(),
|
||
|
this.opts.element.hide(),
|
||
|
this.setPlaceholder();
|
||
|
},
|
||
|
clear: function ( b ) {
|
||
|
var c = this.selection.data( 'select2-data' );
|
||
|
if ( c ) {
|
||
|
var d = a.Event( 'select2-clearing' );
|
||
|
if (
|
||
|
( this.opts.element.trigger( d ),
|
||
|
d.isDefaultPrevented() )
|
||
|
)
|
||
|
return;
|
||
|
var e = this.getPlaceholderOption();
|
||
|
this.opts.element.val( e ? e.val() : '' ),
|
||
|
this.selection
|
||
|
.find( '.select2-chosen' )
|
||
|
.empty(),
|
||
|
this.selection.removeData( 'select2-data' ),
|
||
|
this.setPlaceholder(),
|
||
|
b !== ! 1 &&
|
||
|
( this.opts.element.trigger( {
|
||
|
type: 'select2-removed',
|
||
|
val: this.id( c ),
|
||
|
choice: c,
|
||
|
} ),
|
||
|
this.triggerChange( { removed: c } ) );
|
||
|
}
|
||
|
},
|
||
|
initSelection: function () {
|
||
|
if ( this.isPlaceholderOptionSelected() )
|
||
|
this.updateSelection( null ),
|
||
|
this.close(),
|
||
|
this.setPlaceholder();
|
||
|
else {
|
||
|
var c = this;
|
||
|
this.opts.initSelection.call(
|
||
|
null,
|
||
|
this.opts.element,
|
||
|
function ( a ) {
|
||
|
a !== b &&
|
||
|
null !== a &&
|
||
|
( c.updateSelection( a ),
|
||
|
c.close(),
|
||
|
c.setPlaceholder(),
|
||
|
( c.nextSearchTerm = c.opts.nextSearchTerm(
|
||
|
a,
|
||
|
c.search.val()
|
||
|
) ) );
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
},
|
||
|
isPlaceholderOptionSelected: function () {
|
||
|
var a;
|
||
|
return this.getPlaceholder() === b
|
||
|
? ! 1
|
||
|
: ( ( a = this.getPlaceholderOption() ) !== b &&
|
||
|
a.prop( 'selected' ) ) ||
|
||
|
'' === this.opts.element.val() ||
|
||
|
this.opts.element.val() === b ||
|
||
|
null === this.opts.element.val();
|
||
|
},
|
||
|
prepareOpts: function () {
|
||
|
var b = this.parent.prepareOpts.apply(
|
||
|
this,
|
||
|
arguments
|
||
|
),
|
||
|
c = this;
|
||
|
return (
|
||
|
'select' ===
|
||
|
b.element.get( 0 ).tagName.toLowerCase()
|
||
|
? ( b.initSelection = function ( a, b ) {
|
||
|
var d = a
|
||
|
.find( 'option' )
|
||
|
.filter( function () {
|
||
|
return (
|
||
|
this.selected &&
|
||
|
! this.disabled
|
||
|
);
|
||
|
} );
|
||
|
b( c.optionToData( d ) );
|
||
|
} )
|
||
|
: 'data' in b &&
|
||
|
( b.initSelection =
|
||
|
b.initSelection ||
|
||
|
function ( c, d ) {
|
||
|
var e = c.val(),
|
||
|
f = null;
|
||
|
b.query( {
|
||
|
matcher: function ( a, c, d ) {
|
||
|
var g = r( e, b.id( d ) );
|
||
|
return g && ( f = d ), g;
|
||
|
},
|
||
|
callback: a.isFunction( d )
|
||
|
? function () {
|
||
|
d( f );
|
||
|
}
|
||
|
: a.noop,
|
||
|
} );
|
||
|
} ),
|
||
|
b
|
||
|
);
|
||
|
},
|
||
|
getPlaceholder: function () {
|
||
|
return this.select && this.getPlaceholderOption() === b
|
||
|
? b
|
||
|
: this.parent.getPlaceholder.apply(
|
||
|
this,
|
||
|
arguments
|
||
|
);
|
||
|
},
|
||
|
setPlaceholder: function () {
|
||
|
var a = this.getPlaceholder();
|
||
|
if ( this.isPlaceholderOptionSelected() && a !== b ) {
|
||
|
if (
|
||
|
this.select &&
|
||
|
this.getPlaceholderOption() === b
|
||
|
)
|
||
|
return;
|
||
|
this.selection
|
||
|
.find( '.select2-chosen' )
|
||
|
.html( this.opts.escapeMarkup( a ) ),
|
||
|
this.selection.addClass( 'select2-default' ),
|
||
|
this.container.removeClass(
|
||
|
'select2-allowclear'
|
||
|
);
|
||
|
}
|
||
|
},
|
||
|
postprocessResults: function ( a, b, c ) {
|
||
|
var d = 0,
|
||
|
e = this;
|
||
|
if (
|
||
|
( this.findHighlightableChoices().each2( function (
|
||
|
a,
|
||
|
b
|
||
|
) {
|
||
|
return r(
|
||
|
e.id( b.data( 'select2-data' ) ),
|
||
|
e.opts.element.val()
|
||
|
)
|
||
|
? ( ( d = a ), ! 1 )
|
||
|
: void 0;
|
||
|
} ),
|
||
|
c !== ! 1 &&
|
||
|
( b === ! 0 && d >= 0
|
||
|
? this.highlight( d )
|
||
|
: this.highlight( 0 ) ),
|
||
|
b === ! 0 )
|
||
|
) {
|
||
|
var g = this.opts.minimumResultsForSearch;
|
||
|
g >= 0 && this.showSearch( L( a.results ) >= g );
|
||
|
}
|
||
|
},
|
||
|
showSearch: function ( b ) {
|
||
|
this.showSearchInput !== b &&
|
||
|
( ( this.showSearchInput = b ),
|
||
|
this.dropdown
|
||
|
.find( '.select2-search' )
|
||
|
.toggleClass( 'select2-search-hidden', ! b ),
|
||
|
this.dropdown
|
||
|
.find( '.select2-search' )
|
||
|
.toggleClass( 'select2-offscreen', ! b ),
|
||
|
a( this.dropdown, this.container ).toggleClass(
|
||
|
'select2-with-searchbox',
|
||
|
b
|
||
|
) );
|
||
|
},
|
||
|
onSelect: function ( a, b ) {
|
||
|
if ( this.triggerSelect( a ) ) {
|
||
|
var c = this.opts.element.val(),
|
||
|
d = this.data();
|
||
|
this.opts.element.val( this.id( a ) ),
|
||
|
this.updateSelection( a ),
|
||
|
this.opts.element.trigger( {
|
||
|
type: 'select2-selected',
|
||
|
val: this.id( a ),
|
||
|
choice: a,
|
||
|
} ),
|
||
|
( this.nextSearchTerm = this.opts.nextSearchTerm(
|
||
|
a,
|
||
|
this.search.val()
|
||
|
) ),
|
||
|
this.close(),
|
||
|
( b && b.noFocus ) ||
|
||
|
! this.opts.shouldFocusInput( this ) ||
|
||
|
this.focusser.focus(),
|
||
|
r( c, this.id( a ) ) ||
|
||
|
this.triggerChange( {
|
||
|
added: a,
|
||
|
removed: d,
|
||
|
} );
|
||
|
}
|
||
|
},
|
||
|
updateSelection: function ( a ) {
|
||
|
var d,
|
||
|
e,
|
||
|
c = this.selection.find( '.select2-chosen' );
|
||
|
this.selection.data( 'select2-data', a ),
|
||
|
c.empty(),
|
||
|
null !== a &&
|
||
|
( d = this.opts.formatSelection(
|
||
|
a,
|
||
|
c,
|
||
|
this.opts.escapeMarkup
|
||
|
) ),
|
||
|
d !== b && c.append( d ),
|
||
|
( e = this.opts.formatSelectionCssClass( a, c ) ),
|
||
|
e !== b && c.addClass( e ),
|
||
|
this.selection.removeClass( 'select2-default' ),
|
||
|
this.opts.allowClear &&
|
||
|
this.getPlaceholder() !== b &&
|
||
|
this.container.addClass( 'select2-allowclear' );
|
||
|
},
|
||
|
val: function () {
|
||
|
var a,
|
||
|
c = ! 1,
|
||
|
d = null,
|
||
|
e = this,
|
||
|
f = this.data();
|
||
|
if ( 0 === arguments.length )
|
||
|
return this.opts.element.val();
|
||
|
if (
|
||
|
( ( a = arguments[ 0 ] ),
|
||
|
arguments.length > 1 && ( c = arguments[ 1 ] ),
|
||
|
this.select )
|
||
|
)
|
||
|
this.select
|
||
|
.val( a )
|
||
|
.find( 'option' )
|
||
|
.filter( function () {
|
||
|
return this.selected;
|
||
|
} )
|
||
|
.each2( function ( a, b ) {
|
||
|
return ( d = e.optionToData( b ) ), ! 1;
|
||
|
} ),
|
||
|
this.updateSelection( d ),
|
||
|
this.setPlaceholder(),
|
||
|
c &&
|
||
|
this.triggerChange( {
|
||
|
added: d,
|
||
|
removed: f,
|
||
|
} );
|
||
|
else {
|
||
|
if ( ! a && 0 !== a )
|
||
|
return this.clear( c ), void 0;
|
||
|
if ( this.opts.initSelection === b )
|
||
|
throw new Error(
|
||
|
'cannot call val() if initSelection() is not defined'
|
||
|
);
|
||
|
this.opts.element.val( a ),
|
||
|
this.opts.initSelection(
|
||
|
this.opts.element,
|
||
|
function ( a ) {
|
||
|
e.opts.element.val(
|
||
|
a ? e.id( a ) : ''
|
||
|
),
|
||
|
e.updateSelection( a ),
|
||
|
e.setPlaceholder(),
|
||
|
c &&
|
||
|
e.triggerChange( {
|
||
|
added: a,
|
||
|
removed: f,
|
||
|
} );
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
},
|
||
|
clearSearch: function () {
|
||
|
this.search.val( '' ), this.focusser.val( '' );
|
||
|
},
|
||
|
data: function ( a ) {
|
||
|
var c,
|
||
|
d = ! 1;
|
||
|
return 0 === arguments.length
|
||
|
? ( ( c = this.selection.data( 'select2-data' ) ),
|
||
|
c == b && ( c = null ),
|
||
|
c )
|
||
|
: ( arguments.length > 1 && ( d = arguments[ 1 ] ),
|
||
|
a
|
||
|
? ( ( c = this.data() ),
|
||
|
this.opts.element.val(
|
||
|
a ? this.id( a ) : ''
|
||
|
),
|
||
|
this.updateSelection( a ),
|
||
|
d &&
|
||
|
this.triggerChange( {
|
||
|
added: a,
|
||
|
removed: c,
|
||
|
} ) )
|
||
|
: this.clear( d ),
|
||
|
void 0 );
|
||
|
},
|
||
|
} ) ),
|
||
|
( e = O( c, {
|
||
|
createContainer: function () {
|
||
|
var b = a( document.createElement( 'div' ) )
|
||
|
.attr( {
|
||
|
class:
|
||
|
'select2-container select2-container-multi',
|
||
|
} )
|
||
|
.html(
|
||
|
[
|
||
|
"<ul class='select2-choices'>",
|
||
|
" <li class='select2-search-field'>",
|
||
|
" <label for='' class='select2-offscreen'></label>",
|
||
|
" <input type='text' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' class='select2-input'>",
|
||
|
' </li>',
|
||
|
'</ul>',
|
||
|
"<div class='select2-drop select2-drop-multi select2-display-none'>",
|
||
|
" <ul class='select2-results'>",
|
||
|
' </ul>',
|
||
|
'</div>',
|
||
|
].join( '' )
|
||
|
);
|
||
|
return b;
|
||
|
},
|
||
|
prepareOpts: function () {
|
||
|
var b = this.parent.prepareOpts.apply(
|
||
|
this,
|
||
|
arguments
|
||
|
),
|
||
|
c = this;
|
||
|
return (
|
||
|
'select' ===
|
||
|
b.element.get( 0 ).tagName.toLowerCase()
|
||
|
? ( b.initSelection = function ( a, b ) {
|
||
|
var d = [];
|
||
|
a
|
||
|
.find( 'option' )
|
||
|
.filter( function () {
|
||
|
return (
|
||
|
this.selected &&
|
||
|
! this.disabled
|
||
|
);
|
||
|
} )
|
||
|
.each2( function ( a, b ) {
|
||
|
d.push( c.optionToData( b ) );
|
||
|
} ),
|
||
|
b( d );
|
||
|
} )
|
||
|
: 'data' in b &&
|
||
|
( b.initSelection =
|
||
|
b.initSelection ||
|
||
|
function ( c, d ) {
|
||
|
var e = s(
|
||
|
c.val(),
|
||
|
b.separator,
|
||
|
b.transformVal
|
||
|
),
|
||
|
f = [];
|
||
|
b.query( {
|
||
|
matcher: function ( c, d, g ) {
|
||
|
var h = a.grep(
|
||
|
e,
|
||
|
function ( a ) {
|
||
|
return r(
|
||
|
a,
|
||
|
b.id( g )
|
||
|
);
|
||
|
}
|
||
|
).length;
|
||
|
return h && f.push( g ), h;
|
||
|
},
|
||
|
callback: a.isFunction( d )
|
||
|
? function () {
|
||
|
for (
|
||
|
var a = [],
|
||
|
c = 0;
|
||
|
c < e.length;
|
||
|
c++
|
||
|
)
|
||
|
for (
|
||
|
var g =
|
||
|
e[
|
||
|
c
|
||
|
],
|
||
|
h = 0;
|
||
|
h <
|
||
|
f.length;
|
||
|
h++
|
||
|
) {
|
||
|
var i =
|
||
|
f[ h ];
|
||
|
if (
|
||
|
r(
|
||
|
g,
|
||
|
b.id(
|
||
|
i
|
||
|
)
|
||
|
)
|
||
|
) {
|
||
|
a.push(
|
||
|
i
|
||
|
),
|
||
|
f.splice(
|
||
|
h,
|
||
|
1
|
||
|
);
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
d( a );
|
||
|
}
|
||
|
: a.noop,
|
||
|
} );
|
||
|
} ),
|
||
|
b
|
||
|
);
|
||
|
},
|
||
|
selectChoice: function ( a ) {
|
||
|
var b = this.container.find(
|
||
|
'.select2-search-choice-focus'
|
||
|
);
|
||
|
( b.length && a && a[ 0 ] == b[ 0 ] ) ||
|
||
|
( b.length &&
|
||
|
this.opts.element.trigger(
|
||
|
'choice-deselected',
|
||
|
b
|
||
|
),
|
||
|
b.removeClass( 'select2-search-choice-focus' ),
|
||
|
a &&
|
||
|
a.length &&
|
||
|
( this.close(),
|
||
|
a.addClass( 'select2-search-choice-focus' ),
|
||
|
this.opts.element.trigger(
|
||
|
'choice-selected',
|
||
|
a
|
||
|
) ) );
|
||
|
},
|
||
|
destroy: function () {
|
||
|
a(
|
||
|
"label[for='" + this.search.attr( 'id' ) + "']"
|
||
|
).attr( 'for', this.opts.element.attr( 'id' ) ),
|
||
|
this.parent.destroy.apply( this, arguments ),
|
||
|
N.call( this, 'searchContainer', 'selection' );
|
||
|
},
|
||
|
initContainer: function () {
|
||
|
var c,
|
||
|
b = '.select2-choices';
|
||
|
( this.searchContainer = this.container.find(
|
||
|
'.select2-search-field'
|
||
|
) ),
|
||
|
( this.selection = c = this.container.find( b ) );
|
||
|
var d = this;
|
||
|
this.selection.on(
|
||
|
'click',
|
||
|
'.select2-container:not(.select2-container-disabled) .select2-search-choice:not(.select2-locked)',
|
||
|
function () {
|
||
|
d.search[ 0 ].focus(),
|
||
|
d.selectChoice( a( this ) );
|
||
|
}
|
||
|
),
|
||
|
this.search.attr( 'id', 's2id_autogen' + f() ),
|
||
|
this.search
|
||
|
.prev()
|
||
|
.text(
|
||
|
a(
|
||
|
"label[for='" +
|
||
|
this.opts.element.attr( 'id' ) +
|
||
|
"']"
|
||
|
).text()
|
||
|
)
|
||
|
.attr( 'for', this.search.attr( 'id' ) ),
|
||
|
this.opts.element.focus(
|
||
|
this.bind( function () {
|
||
|
this.focus();
|
||
|
} )
|
||
|
),
|
||
|
this.search.on(
|
||
|
'input paste',
|
||
|
this.bind( function () {
|
||
|
( this.search.attr( 'placeholder' ) &&
|
||
|
0 == this.search.val().length ) ||
|
||
|
( this.isInterfaceEnabled() &&
|
||
|
( this.opened() || this.open() ) );
|
||
|
} )
|
||
|
),
|
||
|
this.search.attr(
|
||
|
'tabindex',
|
||
|
this.elementTabIndex
|
||
|
),
|
||
|
( this.keydowns = 0 ),
|
||
|
this.search.on(
|
||
|
'keydown',
|
||
|
this.bind( function ( a ) {
|
||
|
if ( this.isInterfaceEnabled() ) {
|
||
|
++this.keydowns;
|
||
|
var b = c.find(
|
||
|
'.select2-search-choice-focus'
|
||
|
),
|
||
|
d = b.prev(
|
||
|
'.select2-search-choice:not(.select2-locked)'
|
||
|
),
|
||
|
e = b.next(
|
||
|
'.select2-search-choice:not(.select2-locked)'
|
||
|
),
|
||
|
f = z( this.search );
|
||
|
if (
|
||
|
b.length &&
|
||
|
( a.which == k.LEFT ||
|
||
|
a.which == k.RIGHT ||
|
||
|
a.which == k.BACKSPACE ||
|
||
|
a.which == k.DELETE ||
|
||
|
a.which == k.ENTER )
|
||
|
) {
|
||
|
var g = b;
|
||
|
return (
|
||
|
a.which == k.LEFT && d.length
|
||
|
? ( g = d )
|
||
|
: a.which == k.RIGHT
|
||
|
? ( g = e.length
|
||
|
? e
|
||
|
: null )
|
||
|
: a.which === k.BACKSPACE
|
||
|
? this.unselect(
|
||
|
b.first()
|
||
|
) &&
|
||
|
( this.search.width( 10 ),
|
||
|
( g = d.length ? d : e ) )
|
||
|
: a.which == k.DELETE
|
||
|
? this.unselect(
|
||
|
b.first()
|
||
|
) &&
|
||
|
( this.search.width( 10 ),
|
||
|
( g = e.length
|
||
|
? e
|
||
|
: null ) )
|
||
|
: a.which == k.ENTER &&
|
||
|
( g = null ),
|
||
|
this.selectChoice( g ),
|
||
|
A( a ),
|
||
|
( g && g.length ) ||
|
||
|
this.open(),
|
||
|
void 0
|
||
|
);
|
||
|
}
|
||
|
if (
|
||
|
( ( a.which === k.BACKSPACE &&
|
||
|
1 == this.keydowns ) ||
|
||
|
a.which == k.LEFT ) &&
|
||
|
0 == f.offset &&
|
||
|
! f.length
|
||
|
)
|
||
|
return (
|
||
|
this.selectChoice(
|
||
|
c
|
||
|
.find(
|
||
|
'.select2-search-choice:not(.select2-locked)'
|
||
|
)
|
||
|
.last()
|
||
|
),
|
||
|
A( a ),
|
||
|
void 0
|
||
|
);
|
||
|
if (
|
||
|
( this.selectChoice( null ),
|
||
|
this.opened() )
|
||
|
)
|
||
|
switch ( a.which ) {
|
||
|
case k.UP:
|
||
|
case k.DOWN:
|
||
|
return (
|
||
|
this.moveHighlight(
|
||
|
a.which === k.UP
|
||
|
? -1
|
||
|
: 1
|
||
|
),
|
||
|
A( a ),
|
||
|
void 0
|
||
|
);
|
||
|
case k.ENTER:
|
||
|
return (
|
||
|
this.selectHighlighted(),
|
||
|
A( a ),
|
||
|
void 0
|
||
|
);
|
||
|
case k.TAB:
|
||
|
return (
|
||
|
this.selectHighlighted(
|
||
|
{ noFocus: ! 0 }
|
||
|
),
|
||
|
this.close(),
|
||
|
void 0
|
||
|
);
|
||
|
case k.ESC:
|
||
|
return (
|
||
|
this.cancel( a ),
|
||
|
A( a ),
|
||
|
void 0
|
||
|
);
|
||
|
}
|
||
|
if (
|
||
|
a.which !== k.TAB &&
|
||
|
! k.isControl( a ) &&
|
||
|
! k.isFunctionKey( a ) &&
|
||
|
a.which !== k.BACKSPACE &&
|
||
|
a.which !== k.ESC
|
||
|
) {
|
||
|
if ( a.which === k.ENTER ) {
|
||
|
if (
|
||
|
this.opts.openOnEnter ===
|
||
|
! 1
|
||
|
)
|
||
|
return;
|
||
|
if (
|
||
|
a.altKey ||
|
||
|
a.ctrlKey ||
|
||
|
a.shiftKey ||
|
||
|
a.metaKey
|
||
|
)
|
||
|
return;
|
||
|
}
|
||
|
this.open(),
|
||
|
( a.which === k.PAGE_UP ||
|
||
|
a.which === k.PAGE_DOWN ) &&
|
||
|
A( a ),
|
||
|
a.which === k.ENTER && A( a );
|
||
|
}
|
||
|
}
|
||
|
} )
|
||
|
),
|
||
|
this.search.on(
|
||
|
'keyup',
|
||
|
this.bind( function () {
|
||
|
( this.keydowns = 0 ), this.resizeSearch();
|
||
|
} )
|
||
|
),
|
||
|
this.search.on(
|
||
|
'blur',
|
||
|
this.bind( function ( b ) {
|
||
|
this.container.removeClass(
|
||
|
'select2-container-active'
|
||
|
),
|
||
|
this.search.removeClass(
|
||
|
'select2-focused'
|
||
|
),
|
||
|
this.selectChoice( null ),
|
||
|
this.opened() || this.clearSearch(),
|
||
|
b.stopImmediatePropagation(),
|
||
|
this.opts.element.trigger(
|
||
|
a.Event( 'select2-blur' )
|
||
|
);
|
||
|
} )
|
||
|
),
|
||
|
this.container.on(
|
||
|
'click',
|
||
|
b,
|
||
|
this.bind( function ( b ) {
|
||
|
this.isInterfaceEnabled() &&
|
||
|
( a( b.target ).closest(
|
||
|
'.select2-search-choice'
|
||
|
).length > 0 ||
|
||
|
( this.selectChoice( null ),
|
||
|
this.clearPlaceholder(),
|
||
|
this.container.hasClass(
|
||
|
'select2-container-active'
|
||
|
) ||
|
||
|
this.opts.element.trigger(
|
||
|
a.Event( 'select2-focus' )
|
||
|
),
|
||
|
this.open(),
|
||
|
this.focusSearch(),
|
||
|
b.preventDefault() ) );
|
||
|
} )
|
||
|
),
|
||
|
this.container.on(
|
||
|
'focus',
|
||
|
b,
|
||
|
this.bind( function () {
|
||
|
this.isInterfaceEnabled() &&
|
||
|
( this.container.hasClass(
|
||
|
'select2-container-active'
|
||
|
) ||
|
||
|
this.opts.element.trigger(
|
||
|
a.Event( 'select2-focus' )
|
||
|
),
|
||
|
this.container.addClass(
|
||
|
'select2-container-active'
|
||
|
),
|
||
|
this.dropdown.addClass(
|
||
|
'select2-drop-active'
|
||
|
),
|
||
|
this.clearPlaceholder() );
|
||
|
} )
|
||
|
),
|
||
|
this.initContainerWidth(),
|
||
|
this.opts.element.hide(),
|
||
|
this.clearSearch();
|
||
|
},
|
||
|
enableInterface: function () {
|
||
|
this.parent.enableInterface.apply( this, arguments ) &&
|
||
|
this.search.prop(
|
||
|
'disabled',
|
||
|
! this.isInterfaceEnabled()
|
||
|
);
|
||
|
},
|
||
|
initSelection: function () {
|
||
|
if (
|
||
|
( '' === this.opts.element.val() &&
|
||
|
'' === this.opts.element.text() &&
|
||
|
( this.updateSelection( [] ),
|
||
|
this.close(),
|
||
|
this.clearSearch() ),
|
||
|
this.select || '' !== this.opts.element.val() )
|
||
|
) {
|
||
|
var c = this;
|
||
|
this.opts.initSelection.call(
|
||
|
null,
|
||
|
this.opts.element,
|
||
|
function ( a ) {
|
||
|
a !== b &&
|
||
|
null !== a &&
|
||
|
( c.updateSelection( a ),
|
||
|
c.close(),
|
||
|
c.clearSearch() );
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
},
|
||
|
clearSearch: function () {
|
||
|
var a = this.getPlaceholder(),
|
||
|
c = this.getMaxSearchWidth();
|
||
|
a !== b &&
|
||
|
0 === this.getVal().length &&
|
||
|
this.search.hasClass( 'select2-focused' ) === ! 1
|
||
|
? ( this.search
|
||
|
.val( a )
|
||
|
.addClass( 'select2-default' ),
|
||
|
this.search.width(
|
||
|
c > 0 ? c : this.container.css( 'width' )
|
||
|
) )
|
||
|
: this.search.val( '' ).width( 10 );
|
||
|
},
|
||
|
clearPlaceholder: function () {
|
||
|
this.search.hasClass( 'select2-default' ) &&
|
||
|
this.search
|
||
|
.val( '' )
|
||
|
.removeClass( 'select2-default' );
|
||
|
},
|
||
|
opening: function () {
|
||
|
this.clearPlaceholder(),
|
||
|
this.resizeSearch(),
|
||
|
this.parent.opening.apply( this, arguments ),
|
||
|
this.focusSearch(),
|
||
|
'' === this.search.val() &&
|
||
|
this.nextSearchTerm != b &&
|
||
|
( this.search.val( this.nextSearchTerm ),
|
||
|
this.search.select() ),
|
||
|
this.updateResults( ! 0 ),
|
||
|
this.opts.shouldFocusInput( this ) &&
|
||
|
this.search.focus(),
|
||
|
this.opts.element.trigger(
|
||
|
a.Event( 'select2-open' )
|
||
|
);
|
||
|
},
|
||
|
close: function () {
|
||
|
this.opened() &&
|
||
|
this.parent.close.apply( this, arguments );
|
||
|
},
|
||
|
focus: function () {
|
||
|
this.close(), this.search.focus();
|
||
|
},
|
||
|
isFocused: function () {
|
||
|
return this.search.hasClass( 'select2-focused' );
|
||
|
},
|
||
|
updateSelection: function ( b ) {
|
||
|
var c = [],
|
||
|
d = [],
|
||
|
e = this;
|
||
|
a( b ).each( function () {
|
||
|
p( e.id( this ), c ) < 0 &&
|
||
|
( c.push( e.id( this ) ), d.push( this ) );
|
||
|
} ),
|
||
|
( b = d ),
|
||
|
this.selection
|
||
|
.find( '.select2-search-choice' )
|
||
|
.remove(),
|
||
|
a( b ).each( function () {
|
||
|
e.addSelectedChoice( this );
|
||
|
} ),
|
||
|
e.postprocessResults();
|
||
|
},
|
||
|
tokenize: function () {
|
||
|
var a = this.search.val();
|
||
|
( a = this.opts.tokenizer.call(
|
||
|
this,
|
||
|
a,
|
||
|
this.data(),
|
||
|
this.bind( this.onSelect ),
|
||
|
this.opts
|
||
|
) ),
|
||
|
null != a &&
|
||
|
a != b &&
|
||
|
( this.search.val( a ),
|
||
|
a.length > 0 && this.open() );
|
||
|
},
|
||
|
onSelect: function ( a, c ) {
|
||
|
this.triggerSelect( a ) &&
|
||
|
'' !== a.text &&
|
||
|
( this.addSelectedChoice( a ),
|
||
|
this.opts.element.trigger( {
|
||
|
type: 'selected',
|
||
|
val: this.id( a ),
|
||
|
choice: a,
|
||
|
} ),
|
||
|
( this.nextSearchTerm = this.opts.nextSearchTerm(
|
||
|
a,
|
||
|
this.search.val()
|
||
|
) ),
|
||
|
this.clearSearch(),
|
||
|
this.updateResults(),
|
||
|
( this.select || ! this.opts.closeOnSelect ) &&
|
||
|
this.postprocessResults(
|
||
|
a,
|
||
|
! 1,
|
||
|
this.opts.closeOnSelect === ! 0
|
||
|
),
|
||
|
this.opts.closeOnSelect
|
||
|
? ( this.close(), this.search.width( 10 ) )
|
||
|
: this.countSelectableResults() > 0
|
||
|
? ( this.search.width( 10 ),
|
||
|
this.resizeSearch(),
|
||
|
this.getMaximumSelectionSize() > 0 &&
|
||
|
this.val().length >=
|
||
|
this.getMaximumSelectionSize()
|
||
|
? this.updateResults( ! 0 )
|
||
|
: this.nextSearchTerm != b &&
|
||
|
( this.search.val(
|
||
|
this.nextSearchTerm
|
||
|
),
|
||
|
this.updateResults(),
|
||
|
this.search.select() ),
|
||
|
this.positionDropdown() )
|
||
|
: ( this.close(), this.search.width( 10 ) ),
|
||
|
this.triggerChange( { added: a } ),
|
||
|
( c && c.noFocus ) || this.focusSearch() );
|
||
|
},
|
||
|
cancel: function () {
|
||
|
this.close(), this.focusSearch();
|
||
|
},
|
||
|
addSelectedChoice: function ( c ) {
|
||
|
var j,
|
||
|
k,
|
||
|
d = ! c.locked,
|
||
|
e = a(
|
||
|
"<li class='select2-search-choice'> <div></div> <a href='#' class='select2-search-choice-close' tabindex='-1'></a></li>"
|
||
|
),
|
||
|
f = a(
|
||
|
"<li class='select2-search-choice select2-locked'><div></div></li>"
|
||
|
),
|
||
|
g = d ? e : f,
|
||
|
h = this.id( c ),
|
||
|
i = this.getVal();
|
||
|
( j = this.opts.formatSelection(
|
||
|
c,
|
||
|
g.find( 'div' ),
|
||
|
this.opts.escapeMarkup
|
||
|
) ),
|
||
|
j != b &&
|
||
|
g
|
||
|
.find( 'div' )
|
||
|
.replaceWith(
|
||
|
a( '<div></div>' ).html( j )
|
||
|
),
|
||
|
( k = this.opts.formatSelectionCssClass(
|
||
|
c,
|
||
|
g.find( 'div' )
|
||
|
) ),
|
||
|
k != b && g.addClass( k ),
|
||
|
d &&
|
||
|
g
|
||
|
.find( '.select2-search-choice-close' )
|
||
|
.on( 'mousedown', A )
|
||
|
.on(
|
||
|
'click dblclick',
|
||
|
this.bind( function ( b ) {
|
||
|
this.isInterfaceEnabled() &&
|
||
|
( this.unselect(
|
||
|
a( b.target )
|
||
|
),
|
||
|
this.selection
|
||
|
.find(
|
||
|
'.select2-search-choice-focus'
|
||
|
)
|
||
|
.removeClass(
|
||
|
'select2-search-choice-focus'
|
||
|
),
|
||
|
A( b ),
|
||
|
this.close(),
|
||
|
this.focusSearch() );
|
||
|
} )
|
||
|
)
|
||
|
.on(
|
||
|
'focus',
|
||
|
this.bind( function () {
|
||
|
this.isInterfaceEnabled() &&
|
||
|
( this.container.addClass(
|
||
|
'select2-container-active'
|
||
|
),
|
||
|
this.dropdown.addClass(
|
||
|
'select2-drop-active'
|
||
|
) );
|
||
|
} )
|
||
|
),
|
||
|
g.data( 'select2-data', c ),
|
||
|
g.insertBefore( this.searchContainer ),
|
||
|
i.push( h ),
|
||
|
this.setVal( i );
|
||
|
},
|
||
|
unselect: function ( b ) {
|
||
|
var d,
|
||
|
e,
|
||
|
c = this.getVal();
|
||
|
if (
|
||
|
( ( b = b.closest( '.select2-search-choice' ) ),
|
||
|
0 === b.length )
|
||
|
)
|
||
|
throw (
|
||
|
'Invalid argument: ' +
|
||
|
b +
|
||
|
'. Must be .select2-search-choice'
|
||
|
);
|
||
|
if ( ( d = b.data( 'select2-data' ) ) ) {
|
||
|
var f = a.Event( 'select2-removing' );
|
||
|
if (
|
||
|
( ( f.val = this.id( d ) ),
|
||
|
( f.choice = d ),
|
||
|
this.opts.element.trigger( f ),
|
||
|
f.isDefaultPrevented() )
|
||
|
)
|
||
|
return ! 1;
|
||
|
for ( ; ( e = p( this.id( d ), c ) ) >= 0; )
|
||
|
c.splice( e, 1 ),
|
||
|
this.setVal( c ),
|
||
|
this.select && this.postprocessResults();
|
||
|
return (
|
||
|
b.remove(),
|
||
|
this.opts.element.trigger( {
|
||
|
type: 'select2-removed',
|
||
|
val: this.id( d ),
|
||
|
choice: d,
|
||
|
} ),
|
||
|
this.triggerChange( { removed: d } ),
|
||
|
! 0
|
||
|
);
|
||
|
}
|
||
|
},
|
||
|
postprocessResults: function ( a, b, c ) {
|
||
|
var d = this.getVal(),
|
||
|
e = this.results.find( '.select2-result' ),
|
||
|
f = this.results.find(
|
||
|
'.select2-result-with-children'
|
||
|
),
|
||
|
g = this;
|
||
|
e.each2( function ( a, b ) {
|
||
|
var c = g.id( b.data( 'select2-data' ) );
|
||
|
p( c, d ) >= 0 &&
|
||
|
( b.addClass( 'select2-selected' ),
|
||
|
b
|
||
|
.find( '.select2-result-selectable' )
|
||
|
.addClass( 'select2-selected' ) );
|
||
|
} ),
|
||
|
f.each2( function ( a, b ) {
|
||
|
b.is( '.select2-result-selectable' ) ||
|
||
|
0 !==
|
||
|
b.find(
|
||
|
'.select2-result-selectable:not(.select2-selected)'
|
||
|
).length ||
|
||
|
b.addClass( 'select2-selected' );
|
||
|
} ),
|
||
|
-1 == this.highlight() &&
|
||
|
c !== ! 1 &&
|
||
|
this.opts.closeOnSelect === ! 0 &&
|
||
|
g.highlight( 0 ),
|
||
|
! this.opts.createSearchChoice &&
|
||
|
! e.filter(
|
||
|
'.select2-result:not(.select2-selected)'
|
||
|
).length > 0 &&
|
||
|
( ! a ||
|
||
|
( a &&
|
||
|
! a.more &&
|
||
|
0 ===
|
||
|
this.results.find(
|
||
|
'.select2-no-results'
|
||
|
).length ) ) &&
|
||
|
J(
|
||
|
g.opts.formatNoMatches,
|
||
|
'formatNoMatches'
|
||
|
) &&
|
||
|
this.results.append(
|
||
|
"<li class='select2-no-results'>" +
|
||
|
K(
|
||
|
g.opts.formatNoMatches,
|
||
|
g.opts.element,
|
||
|
g.search.val()
|
||
|
) +
|
||
|
'</li>'
|
||
|
);
|
||
|
},
|
||
|
getMaxSearchWidth: function () {
|
||
|
return this.selection.width() - t( this.search );
|
||
|
},
|
||
|
resizeSearch: function () {
|
||
|
var a,
|
||
|
b,
|
||
|
c,
|
||
|
d,
|
||
|
e,
|
||
|
f = t( this.search );
|
||
|
( a = C( this.search ) + 10 ),
|
||
|
( b = this.search.offset().left ),
|
||
|
( c = this.selection.width() ),
|
||
|
( d = this.selection.offset().left ),
|
||
|
( e = c - ( b - d ) - f ),
|
||
|
a > e && ( e = c - f ),
|
||
|
40 > e && ( e = c - f ),
|
||
|
0 >= e && ( e = a ),
|
||
|
this.search.width( Math.floor( e ) );
|
||
|
},
|
||
|
getVal: function () {
|
||
|
var a;
|
||
|
return this.select
|
||
|
? ( ( a = this.select.val() ), null === a ? [] : a )
|
||
|
: ( ( a = this.opts.element.val() ),
|
||
|
s(
|
||
|
a,
|
||
|
this.opts.separator,
|
||
|
this.opts.transformVal
|
||
|
) );
|
||
|
},
|
||
|
setVal: function ( b ) {
|
||
|
var c;
|
||
|
this.select
|
||
|
? this.select.val( b )
|
||
|
: ( ( c = [] ),
|
||
|
a( b ).each( function () {
|
||
|
p( this, c ) < 0 && c.push( this );
|
||
|
} ),
|
||
|
this.opts.element.val(
|
||
|
0 === c.length
|
||
|
? ''
|
||
|
: c.join( this.opts.separator )
|
||
|
) );
|
||
|
},
|
||
|
buildChangeDetails: function ( a, b ) {
|
||
|
for (
|
||
|
var b = b.slice( 0 ), a = a.slice( 0 ), c = 0;
|
||
|
c < b.length;
|
||
|
c++
|
||
|
)
|
||
|
for ( var d = 0; d < a.length; d++ )
|
||
|
r(
|
||
|
this.opts.id( b[ c ] ),
|
||
|
this.opts.id( a[ d ] )
|
||
|
) &&
|
||
|
( b.splice( c, 1 ),
|
||
|
c > 0 && c--,
|
||
|
a.splice( d, 1 ),
|
||
|
d-- );
|
||
|
return { added: b, removed: a };
|
||
|
},
|
||
|
val: function ( c, d ) {
|
||
|
var e,
|
||
|
f = this;
|
||
|
if ( 0 === arguments.length ) return this.getVal();
|
||
|
if (
|
||
|
( ( e = this.data() ),
|
||
|
e.length || ( e = [] ),
|
||
|
! c && 0 !== c )
|
||
|
)
|
||
|
return (
|
||
|
this.opts.element.val( '' ),
|
||
|
this.updateSelection( [] ),
|
||
|
this.clearSearch(),
|
||
|
d &&
|
||
|
this.triggerChange( {
|
||
|
added: this.data(),
|
||
|
removed: e,
|
||
|
} ),
|
||
|
void 0
|
||
|
);
|
||
|
if ( ( this.setVal( c ), this.select ) )
|
||
|
this.opts.initSelection(
|
||
|
this.select,
|
||
|
this.bind( this.updateSelection )
|
||
|
),
|
||
|
d &&
|
||
|
this.triggerChange(
|
||
|
this.buildChangeDetails(
|
||
|
e,
|
||
|
this.data()
|
||
|
)
|
||
|
);
|
||
|
else {
|
||
|
if ( this.opts.initSelection === b )
|
||
|
throw new Error(
|
||
|
'val() cannot be called if initSelection() is not defined'
|
||
|
);
|
||
|
this.opts.initSelection(
|
||
|
this.opts.element,
|
||
|
function ( b ) {
|
||
|
var c = a.map( b, f.id );
|
||
|
f.setVal( c ),
|
||
|
f.updateSelection( b ),
|
||
|
f.clearSearch(),
|
||
|
d &&
|
||
|
f.triggerChange(
|
||
|
f.buildChangeDetails(
|
||
|
e,
|
||
|
f.data()
|
||
|
)
|
||
|
);
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
this.clearSearch();
|
||
|
},
|
||
|
onSortStart: function () {
|
||
|
if ( this.select )
|
||
|
throw new Error(
|
||
|
"Sorting of elements is not supported when attached to <select>. Attach to <input type='hidden'/> instead."
|
||
|
);
|
||
|
this.search.width( 0 ), this.searchContainer.hide();
|
||
|
},
|
||
|
onSortEnd: function () {
|
||
|
var b = [],
|
||
|
c = this;
|
||
|
this.searchContainer.show(),
|
||
|
this.searchContainer.appendTo(
|
||
|
this.searchContainer.parent()
|
||
|
),
|
||
|
this.resizeSearch(),
|
||
|
this.selection
|
||
|
.find( '.select2-search-choice' )
|
||
|
.each( function () {
|
||
|
b.push(
|
||
|
c.opts.id(
|
||
|
a( this ).data( 'select2-data' )
|
||
|
)
|
||
|
);
|
||
|
} ),
|
||
|
this.setVal( b ),
|
||
|
this.triggerChange();
|
||
|
},
|
||
|
data: function ( b, c ) {
|
||
|
var e,
|
||
|
f,
|
||
|
d = this;
|
||
|
return 0 === arguments.length
|
||
|
? this.selection
|
||
|
.children( '.select2-search-choice' )
|
||
|
.map( function () {
|
||
|
return a( this ).data( 'select2-data' );
|
||
|
} )
|
||
|
.get()
|
||
|
: ( ( f = this.data() ),
|
||
|
b || ( b = [] ),
|
||
|
( e = a.map( b, function ( a ) {
|
||
|
return d.opts.id( a );
|
||
|
} ) ),
|
||
|
this.setVal( e ),
|
||
|
this.updateSelection( b ),
|
||
|
this.clearSearch(),
|
||
|
c &&
|
||
|
this.triggerChange(
|
||
|
this.buildChangeDetails(
|
||
|
f,
|
||
|
this.data()
|
||
|
)
|
||
|
),
|
||
|
void 0 );
|
||
|
},
|
||
|
} ) ),
|
||
|
( a.fn.select2 = function () {
|
||
|
var d,
|
||
|
e,
|
||
|
f,
|
||
|
g,
|
||
|
h,
|
||
|
c = Array.prototype.slice.call( arguments, 0 ),
|
||
|
i = [
|
||
|
'val',
|
||
|
'destroy',
|
||
|
'opened',
|
||
|
'open',
|
||
|
'close',
|
||
|
'focus',
|
||
|
'isFocused',
|
||
|
'container',
|
||
|
'dropdown',
|
||
|
'onSortStart',
|
||
|
'onSortEnd',
|
||
|
'enable',
|
||
|
'disable',
|
||
|
'readonly',
|
||
|
'positionDropdown',
|
||
|
'data',
|
||
|
'search',
|
||
|
],
|
||
|
j = [ 'opened', 'isFocused', 'container', 'dropdown' ],
|
||
|
k = [ 'val', 'data' ],
|
||
|
l = { search: 'externalSearch' };
|
||
|
return (
|
||
|
this.each( function () {
|
||
|
if ( 0 === c.length || 'object' == typeof c[ 0 ] )
|
||
|
( d =
|
||
|
0 === c.length
|
||
|
? {}
|
||
|
: a.extend( {}, c[ 0 ] ) ),
|
||
|
( d.element = a( this ) ),
|
||
|
'select' ===
|
||
|
d.element.get( 0 ).tagName.toLowerCase()
|
||
|
? ( h = d.element.prop( 'multiple' ) )
|
||
|
: ( ( h = d.multiple || ! 1 ),
|
||
|
'tags' in d &&
|
||
|
( d.multiple = h = ! 0 ) ),
|
||
|
( e = h
|
||
|
? new window.Select2[ 'class' ].multi()
|
||
|
: new window.Select2[
|
||
|
'class'
|
||
|
].single() ),
|
||
|
e.init( d );
|
||
|
else {
|
||
|
if ( 'string' != typeof c[ 0 ] )
|
||
|
throw (
|
||
|
'Invalid arguments to select2 plugin: ' +
|
||
|
c
|
||
|
);
|
||
|
if ( p( c[ 0 ], i ) < 0 )
|
||
|
throw 'Unknown method: ' + c[ 0 ];
|
||
|
if (
|
||
|
( ( g = b ),
|
||
|
( e = a( this ).data( 'select2' ) ),
|
||
|
e === b )
|
||
|
)
|
||
|
return;
|
||
|
if (
|
||
|
( ( f = c[ 0 ] ),
|
||
|
'container' === f
|
||
|
? ( g = e.container )
|
||
|
: 'dropdown' === f
|
||
|
? ( g = e.dropdown )
|
||
|
: ( l[ f ] && ( f = l[ f ] ),
|
||
|
( g = e[ f ].apply(
|
||
|
e,
|
||
|
c.slice( 1 )
|
||
|
) ) ),
|
||
|
p( c[ 0 ], j ) >= 0 ||
|
||
|
( p( c[ 0 ], k ) >= 0 &&
|
||
|
1 == c.length ) )
|
||
|
)
|
||
|
return ! 1;
|
||
|
}
|
||
|
} ),
|
||
|
g === b ? this : g
|
||
|
);
|
||
|
} ),
|
||
|
( a.fn.select2.defaults = {
|
||
|
width: 'copy',
|
||
|
loadMorePadding: 0,
|
||
|
closeOnSelect: ! 0,
|
||
|
openOnEnter: ! 0,
|
||
|
containerCss: {},
|
||
|
dropdownCss: {},
|
||
|
containerCssClass: '',
|
||
|
dropdownCssClass: '',
|
||
|
formatResult: function ( a, b, c, d ) {
|
||
|
var e = [];
|
||
|
return E( this.text( a ), c.term, e, d ), e.join( '' );
|
||
|
},
|
||
|
transformVal: function ( b ) {
|
||
|
return a.trim( b );
|
||
|
},
|
||
|
formatSelection: function ( a, c, d ) {
|
||
|
return a ? d( this.text( a ) ) : b;
|
||
|
},
|
||
|
sortResults: function ( a ) {
|
||
|
return a;
|
||
|
},
|
||
|
formatResultCssClass: function ( a ) {
|
||
|
return a.css;
|
||
|
},
|
||
|
formatSelectionCssClass: function () {
|
||
|
return b;
|
||
|
},
|
||
|
minimumResultsForSearch: 0,
|
||
|
minimumInputLength: 0,
|
||
|
maximumInputLength: null,
|
||
|
maximumSelectionSize: 0,
|
||
|
id: function ( a ) {
|
||
|
return a == b ? null : a.id;
|
||
|
},
|
||
|
text: function ( b ) {
|
||
|
return b && this.data && this.data.text
|
||
|
? a.isFunction( this.data.text )
|
||
|
? this.data.text( b )
|
||
|
: b[ this.data.text ]
|
||
|
: b.text;
|
||
|
},
|
||
|
matcher: function ( a, b ) {
|
||
|
return (
|
||
|
o( '' + b )
|
||
|
.toUpperCase()
|
||
|
.indexOf( o( '' + a ).toUpperCase() ) >= 0
|
||
|
);
|
||
|
},
|
||
|
separator: ',',
|
||
|
tokenSeparators: [],
|
||
|
tokenizer: M,
|
||
|
escapeMarkup: F,
|
||
|
blurOnChange: ! 1,
|
||
|
selectOnBlur: ! 1,
|
||
|
adaptContainerCssClass: function ( a ) {
|
||
|
return a;
|
||
|
},
|
||
|
adaptDropdownCssClass: function () {
|
||
|
return null;
|
||
|
},
|
||
|
nextSearchTerm: function () {
|
||
|
return b;
|
||
|
},
|
||
|
searchInputPlaceholder: '',
|
||
|
createSearchChoicePosition: 'top',
|
||
|
shouldFocusInput: function ( a ) {
|
||
|
var b =
|
||
|
'ontouchstart' in window ||
|
||
|
navigator.msMaxTouchPoints > 0;
|
||
|
return b
|
||
|
? a.opts.minimumResultsForSearch < 0
|
||
|
? ! 1
|
||
|
: ! 0
|
||
|
: ! 0;
|
||
|
},
|
||
|
} ),
|
||
|
( a.fn.select2.locales = [] ),
|
||
|
( a.fn.select2.locales.en = {
|
||
|
formatMatches: function ( a ) {
|
||
|
return 1 === a
|
||
|
? 'One result is available, press enter to select it.'
|
||
|
: a +
|
||
|
' results are available, use up and down arrow keys to navigate.';
|
||
|
},
|
||
|
formatNoMatches: function () {
|
||
|
return 'No matches found';
|
||
|
},
|
||
|
formatAjaxError: function () {
|
||
|
return 'Loading failed';
|
||
|
},
|
||
|
formatInputTooShort: function ( a, b ) {
|
||
|
var c = b - a.length;
|
||
|
return (
|
||
|
'Please enter ' +
|
||
|
c +
|
||
|
' or more character' +
|
||
|
( 1 == c ? '' : 's' )
|
||
|
);
|
||
|
},
|
||
|
formatInputTooLong: function ( a, b ) {
|
||
|
var c = a.length - b;
|
||
|
return (
|
||
|
'Please delete ' +
|
||
|
c +
|
||
|
' character' +
|
||
|
( 1 == c ? '' : 's' )
|
||
|
);
|
||
|
},
|
||
|
formatSelectionTooBig: function ( a ) {
|
||
|
return (
|
||
|
'You can only select ' +
|
||
|
a +
|
||
|
' item' +
|
||
|
( 1 == a ? '' : 's' )
|
||
|
);
|
||
|
},
|
||
|
formatLoadMore: function () {
|
||
|
return 'Loading more results\u2026';
|
||
|
},
|
||
|
formatSearching: function () {
|
||
|
return 'Searching\u2026';
|
||
|
},
|
||
|
} ),
|
||
|
a.extend( a.fn.select2.defaults, a.fn.select2.locales.en ),
|
||
|
( a.fn.select2.ajaxDefaults = {
|
||
|
transport: a.ajax,
|
||
|
params: { type: 'GET', cache: ! 1, dataType: 'json' },
|
||
|
} ),
|
||
|
( window.Select2 = {
|
||
|
query: { ajax: G, local: H, tags: I },
|
||
|
util: {
|
||
|
debounce: w,
|
||
|
markMatch: E,
|
||
|
escapeMarkup: F,
|
||
|
stripDiacritics: o,
|
||
|
},
|
||
|
class: { abstract: c, single: d, multi: e },
|
||
|
} );
|
||
|
}
|
||
|
} )( jQuery );
|