diff --git a/modules/backend/assets/css/october.css b/modules/backend/assets/css/october.css index 555949404..c9be96d42 100644 --- a/modules/backend/assets/css/october.css +++ b/modules/backend/assets/css/october.css @@ -9140,6 +9140,24 @@ label { *margin-right: .3em; content: "\f106"; } +.select2-container-multi.form-control { + height: auto; +} +.select2-container-multi .select2-choices { + min-height: 28px; + line-height: 28px; + padding-left: 10px; +} +.select2-container-multi .select2-choices .select2-search-choice { + background: none; + -webkit-box-shadow: none; + box-shadow: none; + padding: 8px 7px 8px 22px; + margin: 4px 0 4px 5px; +} +.select2-container-multi .select2-search-choice-close { + left: 5px; +} .select2-drop { -webkit-box-shadow: none; box-shadow: none; diff --git a/modules/backend/assets/less/controls/forms.less b/modules/backend/assets/less/controls/forms.less index 618e26d18..8f32ee84b 100644 --- a/modules/backend/assets/less/controls/forms.less +++ b/modules/backend/assets/less/controls/forms.less @@ -553,6 +553,32 @@ label { } } +// +// Multi select +// + +.select2-container-multi { + &.form-control { + height: auto; + } + + .select2-choices { + min-height: 28px; + line-height: 28px; + padding-left: 10px; + .select2-search-choice { + background: none; + .box-shadow(none); + padding: 8px 7px 8px 22px; + margin: 4px 0 4px 5px; + } + } + + .select2-search-choice-close { + left: 5px; + } +} + // // Outside Select2 container // diff --git a/modules/backend/assets/vendor/select2/README.md b/modules/backend/assets/vendor/select2/README.md index 8784c8655..2c7d2a0d0 100644 --- a/modules/backend/assets/vendor/select2/README.md +++ b/modules/backend/assets/vendor/select2/README.md @@ -24,6 +24,10 @@ Browser compatibility * Firefox 10+ * Safari 3+ * Opera 10.6+ + +Usage +----- +You can source Select2 directly from a [CDN like JSDliver](http://www.jsdelivr.com/#!select2), [download it from this GitHub repo](https://github.com/ivaynberg/select2/tags), or use one of the integrations below. Integrations ------------ @@ -34,14 +38,25 @@ Integrations * [Django](https://github.com/applegrew/django-select2) * [Symfony](https://github.com/19Gerhard85/sfSelect2WidgetsPlugin) * [Symfony2](https://github.com/avocode/FormExtensions) -* [Bootstrap](https://github.com/t0m/select2-bootstrap-css) (CSS skin) -* [Yii](https://github.com/tonybolzan/yii-select2) +* [Bootstrap 2](https://github.com/t0m/select2-bootstrap-css) and [Bootstrap 3](https://github.com/t0m/select2-bootstrap-css/tree/bootstrap3) (CSS skins) +* [Meteor](https://github.com/nate-strauser/meteor-select2) (modern reactive JavaScript framework; + [Bootstrap 3 skin](https://github.com/esperadomedia/meteor-select2-bootstrap3-css/)) +* [Meteor](https://jquery-select2.meteor.com) +* [Yii 2.x](http://demos.krajee.com/widgets#select2) +* [Yii 1.x](https://github.com/tonybolzan/yii-select2) +* [AtmosphereJS](https://atmospherejs.com/package/jquery-select2) + +### Example Integrations + +* [Knockout.js](https://github.com/ivaynberg/select2/wiki/Knockout.js-Integration) +* [Socket.IO](https://github.com/ivaynberg/select2/wiki/Socket.IO-Integration) +* [PHP](https://github.com/ivaynberg/select2/wiki/PHP-Example) +* [.Net MVC] (https://github.com/ivaynberg/select2/wiki/.Net-MVC-Example) Internationalization (i18n) --------------------------- -Select2 supports multiple languages by simply including the right -language JS file (`select2_locale_it.js`, `select2_locale_nl.js`, etc.). +Select2 supports multiple languages by simply including the right language JS +file (`select2_locale_it.js`, `select2_locale_nl.js`, etc.) after `select2.js`. Missing a language? Just copy `select2_locale_en.js.template`, translate it, and make a pull request back to Select2 here on GitHub. diff --git a/modules/backend/assets/vendor/select2/bower.json b/modules/backend/assets/vendor/select2/bower.json index e8ea78088..d659504d1 100644 --- a/modules/backend/assets/vendor/select2/bower.json +++ b/modules/backend/assets/vendor/select2/bower.json @@ -1,6 +1,6 @@ { "name": "select2", - "version": "3.4.6", + "version": "3.5.1", "main": ["select2.js", "select2.css", "select2.png", "select2x2.png", "select2-spinner.gif"], "dependencies": { "jquery": ">= 1.7.1" diff --git a/modules/backend/assets/vendor/select2/select2.css b/modules/backend/assets/vendor/select2/select2.css index 4b2a2a827..c88e73e52 100644 --- a/modules/backend/assets/vendor/select2/select2.css +++ b/modules/backend/assets/vendor/select2/select2.css @@ -1,5 +1,5 @@ /* -Version: 3.4.6 Timestamp: Sat Mar 22 22:30:15 EDT 2014 +Version: 3.5.1 Timestamp: Tue Jul 22 18:58:56 EDT 2014 */ .select2-container { margin: 0; @@ -56,6 +56,10 @@ Version: 3.4.6 Timestamp: Sat Mar 22 22:30:15 EDT 2014 background-image: linear-gradient(to top, #eee 0%, #fff 50%); } +html[dir="rtl"] .select2-container .select2-choice { + padding: 0 8px 0 0; +} + .select2-container.select2-drop-above .select2-choice { border-bottom-color: #aaa; @@ -84,6 +88,11 @@ Version: 3.4.6 Timestamp: Sat Mar 22 22:30:15 EDT 2014 width: auto; } +html[dir="rtl"] .select2-container .select2-choice > .select2-chosen { + margin-left: 26px; + margin-right: 0; +} + .select2-container .select2-choice abbr { display: none; width: 12px; @@ -196,6 +205,15 @@ Version: 3.4.6 Timestamp: Sat Mar 22 22:30:15 EDT 2014 background-image: linear-gradient(to top, #ccc 0%, #eee 60%); } +html[dir="rtl"] .select2-container .select2-choice .select2-arrow { + left: 0; + right: auto; + + border-left: none; + border-right: 1px solid #aaa; + border-radius: 4px 0 0 4px; +} + .select2-container .select2-choice .select2-arrow b { display: block; width: 100%; @@ -203,6 +221,10 @@ Version: 3.4.6 Timestamp: Sat Mar 22 22:30:15 EDT 2014 background: url('select2.png') no-repeat 0 1px; } +html[dir="rtl"] .select2-container .select2-choice .select2-arrow b { + background-position: 2px 1px; +} + .select2-search { display: inline-block; width: 100%; @@ -241,6 +263,16 @@ Version: 3.4.6 Timestamp: Sat Mar 22 22:30:15 EDT 2014 background: url('select2.png') no-repeat 100% -22px, linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0; } +html[dir="rtl"] .select2-search input { + padding: 4px 5px 4px 20px; + + background: #fff url('select2.png') no-repeat -37px -22px; + background: url('select2.png') no-repeat -37px -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, #fff), color-stop(0.99, #eee)); + background: url('select2.png') no-repeat -37px -22px, -webkit-linear-gradient(center bottom, #fff 85%, #eee 99%); + background: url('select2.png') no-repeat -37px -22px, -moz-linear-gradient(center bottom, #fff 85%, #eee 99%); + background: url('select2.png') no-repeat -37px -22px, linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0; +} + .select2-drop.select2-drop-above .select2-search input { margin-top: 4px; } @@ -295,10 +327,18 @@ Version: 3.4.6 Timestamp: Sat Mar 22 22:30:15 EDT 2014 border-left: none; filter: none; } +html[dir="rtl"] .select2-dropdown-open .select2-choice .select2-arrow { + border-right: none; +} + .select2-dropdown-open .select2-choice .select2-arrow b { background-position: -18px 1px; } +html[dir="rtl"] .select2-dropdown-open .select2-choice .select2-arrow b { + background-position: -16px 1px; +} + .select2-hidden-accessible { border: 0; clip: rect(0 0 0 0); @@ -321,19 +361,16 @@ Version: 3.4.6 Timestamp: Sat Mar 22 22:30:15 EDT 2014 -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } +html[dir="rtl"] .select2-results { + padding: 0 4px 0 0; + margin: 4px 0 4px 4px; +} + .select2-results ul.select2-result-sub { margin: 0; padding-left: 0; } -.select2-results ul.select2-result-sub > li .select2-result-label { padding-left: 20px } -.select2-results ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 40px } -.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 60px } -.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 80px } -.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 100px } -.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 110px } -.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 120px } - .select2-results li { list-style: none; display: list-item; @@ -358,6 +395,14 @@ Version: 3.4.6 Timestamp: Sat Mar 22 22:30:15 EDT 2014 user-select: none; } +.select2-results-dept-1 .select2-result-label { padding-left: 20px } +.select2-results-dept-2 .select2-result-label { padding-left: 40px } +.select2-results-dept-3 .select2-result-label { padding-left: 60px } +.select2-results-dept-4 .select2-result-label { padding-left: 80px } +.select2-results-dept-5 .select2-result-label { padding-left: 100px } +.select2-results-dept-6 .select2-result-label { padding-left: 110px } +.select2-results-dept-7 .select2-result-label { padding-left: 120px } + .select2-results .select2-highlighted { background: #3875d7; color: #fff; @@ -377,9 +422,9 @@ Version: 3.4.6 Timestamp: Sat Mar 22 22:30:15 EDT 2014 color: #000; } - .select2-results .select2-no-results, .select2-results .select2-searching, +.select2-results .select2-ajax-error, .select2-results .select2-selection-limit { background: #f4f4f4; display: list-item; @@ -409,6 +454,10 @@ disabled look for disabled choices in the results dropdown background: #f4f4f4 url('select2-spinner.gif') no-repeat 100%; } +.select2-results .select2-ajax-error { + background: rgba(255, 50, 50, .2); +} + .select2-more-results { background: #f4f4f4; display: list-item; @@ -440,7 +489,7 @@ disabled look for disabled choices in the results dropdown height: auto !important; height: 1%; margin: 0; - padding: 0; + padding: 0 5px 0 0; position: relative; border: 1px solid #aaa; @@ -454,6 +503,10 @@ disabled look for disabled choices in the results dropdown background-image: linear-gradient(to bottom, #eee 1%, #fff 15%); } +html[dir="rtl"] .select2-container-multi .select2-choices { + padding: 0 0 0 5px; +} + .select2-locked { padding: 3px 5px 3px 5px !important; } @@ -537,8 +590,8 @@ html[dir="rtl"] .select2-container-multi .select2-choices li } html[dir="rtl"] .select2-container-multi .select2-choices .select2-search-choice { - margin-left: 0; - margin-right: 5px; + margin: 3px 5px 3px 0; + padding: 3px 18px 3px 5px; } .select2-container-multi .select2-choices .select2-search-choice .select2-chosen { cursor: default; @@ -568,6 +621,11 @@ html[dir="rtl"] .select2-search-choice-close { left: 3px; } +html[dir="rtl"] .select2-container-multi .select2-search-choice-close { + left: auto; + right: 2px; +} + .select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover { background-position: right -11px; } diff --git a/modules/backend/assets/vendor/select2/select2.jquery.json b/modules/backend/assets/vendor/select2/select2.jquery.json index 1407f552e..469c4aa79 100644 --- a/modules/backend/assets/vendor/select2/select2.jquery.json +++ b/modules/backend/assets/vendor/select2/select2.jquery.json @@ -11,7 +11,7 @@ "tag", "tagging" ], - "version": "3.4.6", + "version": "3.5.1", "author": { "name": "Igor Vaynberg", "url": "https://github.com/ivaynberg" diff --git a/modules/backend/assets/vendor/select2/select2.js b/modules/backend/assets/vendor/select2/select2.js index f2a75f3b1..7116cd772 100644 --- a/modules/backend/assets/vendor/select2/select2.js +++ b/modules/backend/assets/vendor/select2/select2.js @@ -1,7 +1,7 @@ /* Copyright 2012 Igor Vaynberg -Version: 3.4.6 Timestamp: Sat Mar 22 22:30:15 EDT 2014 +Version: 3.5.1 Timestamp: Tue Jul 22 18:58:56 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 @@ -98,7 +98,7 @@ the specific language governing permissions and limitations under the Apache Lic }, MEASURE_SCROLLBAR_TEMPLATE = "
", - DIACRITICS = {"\u24B6":"A","\uFF21":"A","\u00C0":"A","\u00C1":"A","\u00C2":"A","\u1EA6":"A","\u1EA4":"A","\u1EAA":"A","\u1EA8":"A","\u00C3":"A","\u0100":"A","\u0102":"A","\u1EB0":"A","\u1EAE":"A","\u1EB4":"A","\u1EB2":"A","\u0226":"A","\u01E0":"A","\u00C4":"A","\u01DE":"A","\u1EA2":"A","\u00C5":"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","\u00C6":"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","\u00C7":"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","\u00C8":"E","\u00C9":"E","\u00CA":"E","\u1EC0":"E","\u1EBE":"E","\u1EC4":"E","\u1EC2":"E","\u1EBC":"E","\u0112":"E","\u1E14":"E","\u1E16":"E","\u0114":"E","\u0116":"E","\u00CB":"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","\u00CC":"I","\u00CD":"I","\u00CE":"I","\u0128":"I","\u012A":"I","\u012C":"I","\u0130":"I","\u00CF":"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","\u00D1":"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","\u00D2":"O","\u00D3":"O","\u00D4":"O","\u1ED2":"O","\u1ED0":"O","\u1ED6":"O","\u1ED4":"O","\u00D5":"O","\u1E4C":"O","\u022C":"O","\u1E4E":"O","\u014C":"O","\u1E50":"O","\u1E52":"O","\u014E":"O","\u022E":"O","\u0230":"O","\u00D6":"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","\u00D8":"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","\u00D9":"U","\u00DA":"U","\u00DB":"U","\u0168":"U","\u1E78":"U","\u016A":"U","\u1E7A":"U","\u016C":"U","\u00DC":"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","\u00DD":"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","\u00E0":"a","\u00E1":"a","\u00E2":"a","\u1EA7":"a","\u1EA5":"a","\u1EAB":"a","\u1EA9":"a","\u00E3":"a","\u0101":"a","\u0103":"a","\u1EB1":"a","\u1EAF":"a","\u1EB5":"a","\u1EB3":"a","\u0227":"a","\u01E1":"a","\u00E4":"a","\u01DF":"a","\u1EA3":"a","\u00E5":"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","\u00E6":"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","\u00E7":"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","\u00E8":"e","\u00E9":"e","\u00EA":"e","\u1EC1":"e","\u1EBF":"e","\u1EC5":"e","\u1EC3":"e","\u1EBD":"e","\u0113":"e","\u1E15":"e","\u1E17":"e","\u0115":"e","\u0117":"e","\u00EB":"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","\u00EC":"i","\u00ED":"i","\u00EE":"i","\u0129":"i","\u012B":"i","\u012D":"i","\u00EF":"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","\u00F1":"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","\u00F2":"o","\u00F3":"o","\u00F4":"o","\u1ED3":"o","\u1ED1":"o","\u1ED7":"o","\u1ED5":"o","\u00F5":"o","\u1E4D":"o","\u022D":"o","\u1E4F":"o","\u014D":"o","\u1E51":"o","\u1E53":"o","\u014F":"o","\u022F":"o","\u0231":"o","\u00F6":"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","\u00F8":"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","\u00DF":"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","\u00F9":"u","\u00FA":"u","\u00FB":"u","\u0169":"u","\u1E79":"u","\u016B":"u","\u1E7B":"u","\u016D":"u","\u00FC":"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","\u00FD":"y","\u0177":"y","\u1EF9":"y","\u0233":"y","\u1E8F":"y","\u00FF":"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"}; + DIACRITICS = {"\u24B6":"A","\uFF21":"A","\u00C0":"A","\u00C1":"A","\u00C2":"A","\u1EA6":"A","\u1EA4":"A","\u1EAA":"A","\u1EA8":"A","\u00C3":"A","\u0100":"A","\u0102":"A","\u1EB0":"A","\u1EAE":"A","\u1EB4":"A","\u1EB2":"A","\u0226":"A","\u01E0":"A","\u00C4":"A","\u01DE":"A","\u1EA2":"A","\u00C5":"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","\u00C6":"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","\u00C7":"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","\u00C8":"E","\u00C9":"E","\u00CA":"E","\u1EC0":"E","\u1EBE":"E","\u1EC4":"E","\u1EC2":"E","\u1EBC":"E","\u0112":"E","\u1E14":"E","\u1E16":"E","\u0114":"E","\u0116":"E","\u00CB":"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","\u00CC":"I","\u00CD":"I","\u00CE":"I","\u0128":"I","\u012A":"I","\u012C":"I","\u0130":"I","\u00CF":"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","\u00D1":"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","\u00D2":"O","\u00D3":"O","\u00D4":"O","\u1ED2":"O","\u1ED0":"O","\u1ED6":"O","\u1ED4":"O","\u00D5":"O","\u1E4C":"O","\u022C":"O","\u1E4E":"O","\u014C":"O","\u1E50":"O","\u1E52":"O","\u014E":"O","\u022E":"O","\u0230":"O","\u00D6":"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","\u00D8":"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","\u00D9":"U","\u00DA":"U","\u00DB":"U","\u0168":"U","\u1E78":"U","\u016A":"U","\u1E7A":"U","\u016C":"U","\u00DC":"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","\u00DD":"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","\u00E0":"a","\u00E1":"a","\u00E2":"a","\u1EA7":"a","\u1EA5":"a","\u1EAB":"a","\u1EA9":"a","\u00E3":"a","\u0101":"a","\u0103":"a","\u1EB1":"a","\u1EAF":"a","\u1EB5":"a","\u1EB3":"a","\u0227":"a","\u01E1":"a","\u00E4":"a","\u01DF":"a","\u1EA3":"a","\u00E5":"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","\u00E6":"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","\u00E7":"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","\u00E8":"e","\u00E9":"e","\u00EA":"e","\u1EC1":"e","\u1EBF":"e","\u1EC5":"e","\u1EC3":"e","\u1EBD":"e","\u0113":"e","\u1E15":"e","\u1E17":"e","\u0115":"e","\u0117":"e","\u00EB":"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","\u00EC":"i","\u00ED":"i","\u00EE":"i","\u0129":"i","\u012B":"i","\u012D":"i","\u00EF":"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","\u00F1":"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","\u00F2":"o","\u00F3":"o","\u00F4":"o","\u1ED3":"o","\u1ED1":"o","\u1ED7":"o","\u1ED5":"o","\u00F5":"o","\u1E4D":"o","\u022D":"o","\u1E4F":"o","\u014D":"o","\u1E51":"o","\u1E53":"o","\u014F":"o","\u022F":"o","\u0231":"o","\u00F6":"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","\u00F8":"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","\u00DF":"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","\u00F9":"u","\u00FA":"u","\u00FB":"u","\u0169":"u","\u1E79":"u","\u016B":"u","\u1E7B":"u","\u016D":"u","\u00FC":"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","\u00FD":"y","\u0177":"y","\u1EF9":"y","\u0233":"y","\u1E8F":"y","\u00FF":"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"}; $document = $(document); @@ -114,16 +114,12 @@ the specific language governing permissions and limitations under the Apache Lic } function stripDiacritics(str) { - var ret, i, l, c; - - if (!str || str.length < 1) return str; - - ret = ""; - for (i = 0, l = str.length; i < l; i++) { - c = str.charAt(i); - ret += DIACRITICS[c] || c; + // Used 'uni range + named function' from http://jsperf.com/diacritics/18 + function match(a) { + return DIACRITICS[a] || a; } - return ret; + + return str.replace(/[^\u0000-\u007E]/g, match); } function indexOf(value, array) { @@ -197,10 +193,6 @@ the specific language governing permissions and limitations under the Apache Lic }); } - $document.on("mousemove", function (e) { - lastMousePosition.x = e.pageX; - lastMousePosition.y = e.pageY; - }); /** * filters mouse events so an event is fired only if the mouse moved. @@ -238,20 +230,6 @@ the specific language governing permissions and limitations under the Apache Lic }; } - /** - * A simple implementation of a thunk - * @param formula function used to lazily initialize the thunk - * @return {Function} - */ - function thunk(formula) { - var evaluated = false, - value; - return function() { - if (evaluated === false) { value = formula(); evaluated = true; } - return value; - }; - }; - function installDebouncedScroll(threshold, element) { var notify = debounce(threshold, function (e) { element.trigger("scroll-debounced", e);}); element.on("scroll", function (e) { @@ -342,27 +320,34 @@ the specific language governing permissions and limitations under the Apache Lic function syncCssClasses(dest, src, adapter) { var classes, replacements = [], adapted; - classes = dest.attr("class"); + classes = $.trim(dest.attr("class")); + if (classes) { classes = '' + classes; // for IE which returns object - $(classes.split(" ")).each2(function() { + + $(classes.split(/\s+/)).each2(function() { if (this.indexOf("select2-") === 0) { replacements.push(this); } }); } - classes = src.attr("class"); + + classes = $.trim(src.attr("class")); + if (classes) { classes = '' + classes; // for IE which returns object - $(classes.split(" ")).each2(function() { + + $(classes.split(/\s+/)).each2(function() { if (this.indexOf("select2-") !== 0) { adapted = adapter(this); + if (adapted) { replacements.push(adapted); } } }); } + dest.attr("class", replacements.join(" ")); } @@ -409,7 +394,7 @@ the specific language governing permissions and limitations under the Apache Lic * @param options.data a function(searchTerm, pageNumber, context) that should return an object containing query string parameters for the above url. * @param options.dataType request data type: ajax, jsonp, other datatypes supported by jQuery's $.ajax function or the transport function if specified * @param options.quietMillis (optional) milliseconds to wait before making the ajaxRequest, helps debounce the ajax function if invoked too often - * @param options.results a function(remoteData, pageNumber) that converts data returned form the remote request to the format expected by Select2. + * @param options.results a function(remoteData, pageNumber, query) that converts data returned form the remote request to the format expected by Select2. * The expected format is an object containing the following keys: * results array of objects that will be used as choices * more (optional) boolean indicating whether there are more results available @@ -456,7 +441,18 @@ the specific language governing permissions and limitations under the Apache Lic data: data, success: function (data) { // TODO - replace query.page with query so users have access to term, page, etc. - var results = options.results(data, query.page); + // added query as third paramter to keep backwards compatibility + var results = options.results(data, query.page, query); + query.callback(results); + }, + error: function(jqXHR, textStatus, errorThrown){ + var results = { + hasError: true, + jqXHR: jqXHR, + textStatus: textStatus, + errorThrown: errorThrown, + }; + query.callback(results); } }); @@ -473,7 +469,7 @@ the specific language governing permissions and limitations under the Apache Lic * * If the array form is used it is assumed that it contains objects with 'id' and 'text' keys. * - * If the object form is used ti is assumed that it contains 'data' and 'text' keys. The 'data' key should contain + * If the object form is used it is assumed that it contains 'data' and 'text' keys. The 'data' key should contain * an array of objects that will be used as choices. These objects must contain at least an 'id' key. The 'text' * key can either be a String in which case it is expected that each element in the 'data' array has a key with the * value of 'text' which will be used to match choices. Alternatively, text can be a function(item) that can extract @@ -542,14 +538,17 @@ the specific language governing permissions and limitations under the Apache Lic var isFunc = $.isFunction(data); return function (query) { var t = query.term, filtered = {results: []}; - $(isFunc ? data() : data).each(function () { - var isObject = this.text !== undefined, - text = isObject ? this.text : this; - if (t === "" || query.matcher(t, text)) { - filtered.results.push(isObject ? this : {id: this, text: this}); - } - }); - query.callback(filtered); + var result = isFunc ? data(query) : data; + if ($.isArray(result)) { + $(result).each(function () { + var isObject = this.text !== undefined, + text = isObject ? this.text : this; + if (t === "" || query.matcher(t, text)) { + filtered.results.push(isObject ? this : {id: this, text: this}); + } + }); + query.callback(filtered); + } }; } @@ -568,10 +567,18 @@ the specific language governing permissions and limitations under the Apache Lic throw new Error(formatterName +" must be a string, function, or falsy value"); } - function evaluate(val) { + /** + * Returns a given value + * If given a function, returns its output + * + * @param val string|function + * @param context value of "this" to be passed to function + * @returns {*} + */ + function evaluate(val, context) { if ($.isFunction(val)) { - var args = Array.prototype.slice.call(arguments, 1); - return val.apply(null, args); + var args = Array.prototype.slice.call(arguments, 2); + return val.apply(context, args); } return val; } @@ -641,6 +648,15 @@ the specific language governing permissions and limitations under the Apache Lic if (original!==input) return input; } + function cleanupJQueryElements() { + var self = this; + + $.each(arguments, function (i, element) { + self[element].remove(); + self[element] = null; + }); + } + /** * Creates a new class * @@ -690,18 +706,21 @@ the specific language governing permissions and limitations under the Apache Lic .addClass("select2-hidden-accessible") .appendTo(document.body); - this.containerId="s2id_"+(opts.element.attr("id") || "autogen"+nextUid()).replace(/([;&,\-\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g, '\\$1'); - this.containerSelector="#"+this.containerId; + this.containerId="s2id_"+(opts.element.attr("id") || "autogen"+nextUid()); + this.containerEventName= this.containerId + .replace(/([.])/g, '_') + .replace(/([;&,\-\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g, '\\$1'); this.container.attr("id", this.containerId); - // cache the body so future lookups are cheap - this.body = thunk(function() { return opts.element.closest("body"); }); + this.container.attr("title", opts.element.attr("title")); + + this.body = $("body"); syncCssClasses(this.container, this.opts.element, this.opts.adaptContainerCssClass); this.container.attr("style", opts.element.attr("style")); - this.container.css(evaluate(opts.containerCss)); - this.container.addClass(evaluate(opts.containerCssClass)); + this.container.css(evaluate(opts.containerCss, this.opts.element)); + this.container.addClass(evaluate(opts.containerCssClass, this.opts.element)); this.elementTabIndex = this.opts.element.attr("tabindex"); @@ -718,7 +737,7 @@ the specific language governing permissions and limitations under the Apache Lic syncCssClasses(this.dropdown, this.opts.element, this.opts.adaptDropdownCssClass); - this.dropdown.addClass(evaluate(opts.dropdownCssClass)); + this.dropdown.addClass(evaluate(opts.dropdownCssClass, this.opts.element)); this.dropdown.data("select2", this); this.dropdown.on("click", killEvent); @@ -735,11 +754,24 @@ the specific language governing permissions and limitations under the Apache Lic this.container.on("click", killEvent); installFilteredMouseMove(this.results); - this.dropdown.on("mousemove-filtered touchstart touchmove touchend", resultsSelector, this.bind(this.highlightUnderEvent)); - this.dropdown.on("touchend", resultsSelector, this.bind(this.selectHighlighted)); + + this.dropdown.on("mousemove-filtered", resultsSelector, this.bind(this.highlightUnderEvent)); + this.dropdown.on("touchstart touchmove touchend", resultsSelector, this.bind(function (event) { + this._touchEvent = true; + this.highlightUnderEvent(event); + })); this.dropdown.on("touchmove", resultsSelector, this.bind(this.touchMoved)); this.dropdown.on("touchstart touchend", resultsSelector, this.bind(this.clearTouchMoved)); + // Waiting for a click event on touch devices to select option and hide dropdown + // otherwise click will be triggered on an underlying element + this.dropdown.on('click', this.bind(function (event) { + if (this._touchEvent) { + this._touchEvent = false; + this.selectHighlighted(); + } + })); + installDebouncedScroll(80, this.results); this.dropdown.on("scroll-debounced", resultsSelector, this.bind(this.loadMoreIfNeeded)); @@ -777,7 +809,7 @@ the specific language governing permissions and limitations under the Apache Lic // for mouse events outside of itself so it can close itself. since the dropdown is now outside the select2's // dom it will trigger the popup close, which is not what we want // focusin can cause focus wars between modals and select2 since the dropdown is outside the modal. - this.dropdown.on("click mouseup mousedown focusin", function (e) { e.stopPropagation(); }); + this.dropdown.on("click mouseup mousedown touchstart touchend focusin", function (e) { e.stopPropagation(); }); this.nextSearchTerm = undefined; @@ -814,11 +846,20 @@ the specific language governing permissions and limitations under the Apache Lic // abstract destroy: function () { - var element=this.opts.element, select2 = element.data("select2"); + var element=this.opts.element, select2 = element.data("select2"), self = this; this.close(); - if (this.propertyObserver) { delete this.propertyObserver; this.propertyObserver = null; } + if (element.length && element[0].detachEvent) { + element.each(function () { + this.detachEvent("onpropertychange", self._sync); + }); + } + if (this.propertyObserver) { + this.propertyObserver.disconnect(); + this.propertyObserver = null; + } + this._sync = null; if (select2 !== undefined) { select2.container.remove(); @@ -836,6 +877,14 @@ the specific language governing permissions and limitations under the Apache Lic } element.show(); } + + cleanupJQueryElements.call(this, + "container", + "liveRegion", + "dropdown", + "results", + "search" + ); }, // abstract @@ -888,6 +937,8 @@ the specific language governing permissions and limitations under the Apache Lic results = opts.sortResults(results, container, query); + // collect the created nodes for bulk append + var nodes = []; for (i = 0, l = results.length; i < l; i = i + 1) { result=results[i]; @@ -927,9 +978,11 @@ the specific language governing permissions and limitations under the Apache Lic } node.data("select2-data", result); - container.append(node); + nodes.push(node[0]); } + // bulk append the created nodes + container.append(nodes); liveRegion.text(opts.formatMatches(results.length)); }; @@ -984,7 +1037,7 @@ the specific language governing permissions and limitations under the Apache Lic query.callback(data); }); - // this is needed because inside val() we construct choices from options and there id is hardcoded + // this is needed because inside val() we construct choices from options and their id is hardcoded opts.id=function(e) { return e.id; }; } else { if (!("query" in opts)) { @@ -1041,7 +1094,7 @@ the specific language governing permissions and limitations under the Apache Lic */ // abstract monitorSource: function () { - var el = this.opts.element, sync, observer; + var el = this.opts.element, observer, self = this; el.on("change.select2", this.bind(function (e) { if (this.opts.element.data("select2-change-triggered") !== true) { @@ -1049,7 +1102,7 @@ the specific language governing permissions and limitations under the Apache Lic } })); - sync = this.bind(function () { + this._sync = this.bind(function () { // sync enabled state var disabled = el.prop("disabled"); @@ -1061,35 +1114,34 @@ the specific language governing permissions and limitations under the Apache Lic this.readonly(readonly); syncCssClasses(this.container, this.opts.element, this.opts.adaptContainerCssClass); - this.container.addClass(evaluate(this.opts.containerCssClass)); + this.container.addClass(evaluate(this.opts.containerCssClass, this.opts.element)); syncCssClasses(this.dropdown, this.opts.element, this.opts.adaptDropdownCssClass); - this.dropdown.addClass(evaluate(this.opts.dropdownCssClass)); + this.dropdown.addClass(evaluate(this.opts.dropdownCssClass, this.opts.element)); }); - // IE8-10 - el.on("propertychange.select2", sync); - - // hold onto a reference of the callback to work around a chromium bug - if (this.mutationCallback === undefined) { - this.mutationCallback = function (mutations) { - mutations.forEach(sync); - } + // IE8-10 (IE9/10 won't fire propertyChange via attachEventListener) + if (el.length && el[0].attachEvent) { + el.each(function() { + this.attachEvent("onpropertychange", self._sync); + }); } // safari, chrome, firefox, IE11 observer = window.MutationObserver || window.WebKitMutationObserver|| window.MozMutationObserver; if (observer !== undefined) { if (this.propertyObserver) { delete this.propertyObserver; this.propertyObserver = null; } - this.propertyObserver = new observer(this.mutationCallback); + this.propertyObserver = new observer(function (mutations) { + $.each(mutations, self._sync); + }); this.propertyObserver.observe(el.get(0), { attributes:true, subtree:false }); } }, // abstract triggerSelect: function(data) { - var evt = $.Event("select2-selecting", { val: this.id(data), object: data }); + var evt = $.Event("select2-selecting", { val: this.id(data), object: data, choice: data }); this.opts.element.trigger(evt); return !evt.isDefaultPrevented(); }, @@ -1164,7 +1216,7 @@ the specific language governing permissions and limitations under the Apache Lic // abstract opened: function () { - return this.container.hasClass("select2-dropdown-open"); + return (this.container) ? this.container.hasClass("select2-dropdown-open") : false; }, // abstract @@ -1221,6 +1273,9 @@ the specific language governing permissions and limitations under the Apache Lic dropWidth = $dropdown.outerWidth(false); enoughRoomOnRight = dropLeft + dropWidth <= viewPortRight; $dropdown.show(); + + // fix so the cursor does not move to the left within the search-textbox in IE + this.focusSearch(); } if (this.opts.dropdownAutoWidth) { @@ -1230,6 +1285,7 @@ the specific language governing permissions and limitations under the Apache Lic // Add scrollbar width to dropdown if vertical scrollbar is present dropWidth = $dropdown.outerWidth(false) + (resultsListNode.scrollHeight === resultsListNode.clientHeight ? 0 : scrollBarDimensions.width); dropWidth > width ? width = dropWidth : dropWidth = width; + dropHeight = $dropdown.outerHeight(false); enoughRoomOnRight = dropLeft + dropWidth <= viewPortRight; } else { @@ -1237,11 +1293,11 @@ the specific language governing permissions and limitations under the Apache Lic } //console.log("below/ droptop:", dropTop, "dropHeight", dropHeight, "sum", (dropTop+dropHeight)+" viewport bottom", viewportBottom, "enough?", enoughRoomBelow); - //console.log("above/ offset.top", offset.top, "dropHeight", dropHeight, "top", (offset.top-dropHeight), "scrollTop", this.body().scrollTop(), "enough?", enoughRoomAbove); + //console.log("above/ offset.top", offset.top, "dropHeight", dropHeight, "top", (offset.top-dropHeight), "scrollTop", this.body.scrollTop(), "enough?", enoughRoomAbove); // fix positioning when body has an offset and is not position: static - if (this.body().css('position') !== 'static') { - bodyOffset = this.body().offset(); + if (this.body.css('position') !== 'static') { + bodyOffset = this.body.offset(); dropTop -= bodyOffset.top; dropLeft -= bodyOffset.left; } @@ -1267,7 +1323,7 @@ the specific language governing permissions and limitations under the Apache Lic this.container.removeClass("select2-drop-above"); $dropdown.removeClass("select2-drop-above"); } - css = $.extend(css, evaluate(this.opts.dropdownCss)); + css = $.extend(css, evaluate(this.opts.dropdownCss, this.opts.element)); $dropdown.css(css); }, @@ -1305,6 +1361,12 @@ the specific language governing permissions and limitations under the Apache Lic this.opening(); + // Only bind the document mousemove when the dropdown is visible + $document.on("mousemove.select2Event", function (e) { + lastMousePosition.x = e.pageX; + lastMousePosition.y = e.pageY; + }); + return true; }, @@ -1313,7 +1375,7 @@ the specific language governing permissions and limitations under the Apache Lic */ // abstract opening: function() { - var cid = this.containerId, + var cid = this.containerEventName, scroll = "scroll." + cid, resize = "resize."+cid, orient = "orientationchange."+cid, @@ -1323,8 +1385,8 @@ the specific language governing permissions and limitations under the Apache Lic this.clearDropdownAlignmentPreference(); - if(this.dropdown[0] !== this.body().children().last()[0]) { - this.dropdown.detach().appendTo(this.body()); + if(this.dropdown[0] !== this.body.children().last()[0]) { + this.dropdown.detach().appendTo(this.body); } // create the dropdown mask if doesn't already exist @@ -1333,7 +1395,7 @@ the specific language governing permissions and limitations under the Apache Lic mask = $(document.createElement("div")); mask.attr("id","select2-drop-mask").attr("class","select2-drop-mask"); mask.hide(); - mask.appendTo(this.body()); + mask.appendTo(this.body); mask.on("mousedown touchstart click", function (e) { // Prevent IE from generating a click event on the body reinsertElement(mask); @@ -1374,7 +1436,7 @@ the specific language governing permissions and limitations under the Apache Lic var that = this; this.container.parents().add(window).each(function () { $(this).on(resize+" "+scroll+" "+orient, function (e) { - that.positionDropdown(); + if (that.opened()) that.positionDropdown(); }); }); @@ -1385,7 +1447,7 @@ the specific language governing permissions and limitations under the Apache Lic close: function () { if (!this.opened()) return; - var cid = this.containerId, + var cid = this.containerEventName, scroll = "scroll." + cid, resize = "resize."+cid, orient = "orientationchange."+cid; @@ -1401,6 +1463,8 @@ the specific language governing permissions and limitations under the Apache Lic this.container.removeClass("select2-dropdown-open").removeClass("select2-container-active"); this.results.empty(); + // Now that the dropdown is closed, unbind the global document mousemove event + $document.off("mousemove.select2Event"); this.clearSearch(); this.search.removeClass("select2-active"); @@ -1424,12 +1488,12 @@ the specific language governing permissions and limitations under the Apache Lic //abstract getMaximumSelectionSize: function() { - return evaluate(this.opts.maximumSelectionSize); + return evaluate(this.opts.maximumSelectionSize, this.opts.element); }, // abstract ensureHighlightVisible: function () { - var results = this.results, children, index, child, hb, rb, y, more; + var results = this.results, children, index, child, hb, rb, y, more, topOffset; index = this.highlight(); @@ -1449,7 +1513,9 @@ the specific language governing permissions and limitations under the Apache Lic child = $(children[index]); - hb = child.offset().top + child.outerHeight(true); + topOffset = (child.offset() || {}).top || 0; + + hb = topOffset + child.outerHeight(true); // if this is the last child lets also make sure select2-more-results is visible if (index === children.length - 1) { @@ -1463,7 +1529,7 @@ the specific language governing permissions and limitations under the Apache Lic if (hb > rb) { results.scrollTop(results.scrollTop() + (hb - rb)); } - y = child.offset().top - results.offset().top; + y = topOffset - results.offset().top; // make sure the top of the element is visible if (y < 0 && child.css('display') != 'none' ) { @@ -1582,7 +1648,7 @@ the specific language governing permissions and limitations under the Apache Lic self.postprocessResults(data, false, false); if (data.more===true) { - more.detach().appendTo(results).text(evaluate(self.opts.formatLoadMore, page+1)); + more.detach().appendTo(results).text(evaluate(self.opts.formatLoadMore, self.opts.element, page+1)); window.setTimeout(function() { self.loadMoreIfNeeded(); }, 10); } else { more.remove(); @@ -1650,14 +1716,14 @@ the specific language governing permissions and limitations under the Apache Lic if (maxSelSize >=1) { data = this.data(); if ($.isArray(data) && data.length >= maxSelSize && checkFormatter(opts.formatSelectionTooBig, "formatSelectionTooBig")) { - render("
  • " + evaluate(opts.formatSelectionTooBig, maxSelSize) + "
  • "); + render("
  • " + evaluate(opts.formatSelectionTooBig, opts.element, maxSelSize) + "
  • "); return; } } if (search.val().length < opts.minimumInputLength) { if (checkFormatter(opts.formatInputTooShort, "formatInputTooShort")) { - render("
  • " + evaluate(opts.formatInputTooShort, search.val(), opts.minimumInputLength) + "
  • "); + render("
  • " + evaluate(opts.formatInputTooShort, opts.element, search.val(), opts.minimumInputLength) + "
  • "); } else { render(""); } @@ -1667,7 +1733,7 @@ the specific language governing permissions and limitations under the Apache Lic if (opts.maximumInputLength && search.val().length > opts.maximumInputLength) { if (checkFormatter(opts.formatInputTooLong, "formatInputTooLong")) { - render("
  • " + evaluate(opts.formatInputTooLong, search.val(), opts.maximumInputLength) + "
  • "); + render("
  • " + evaluate(opts.formatInputTooLong, opts.element, search.val(), opts.maximumInputLength) + "
  • "); } else { render(""); } @@ -1675,7 +1741,7 @@ the specific language governing permissions and limitations under the Apache Lic } if (opts.formatSearching && this.findHighlightableChoices().length === 0) { - render("
  • " + evaluate(opts.formatSearching) + "
  • "); + render("
  • " + evaluate(opts.formatSearching, opts.element) + "
  • "); } search.addClass("select2-active"); @@ -1710,6 +1776,12 @@ the specific language governing permissions and limitations under the Apache Lic return; } + // handle ajax error + if(data.hasError !== undefined && checkFormatter(opts.formatAjaxError, "formatAjaxError")) { + render("
  • " + evaluate(opts.formatAjaxError, opts.element, data.jqXHR, data.textStatus, data.errorThrown) + "
  • "); + return; + } + // save context, if any this.context = (data.context===undefined) ? null : data.context; // create a default choice and prepend it to the list @@ -1726,7 +1798,7 @@ the specific language governing permissions and limitations under the Apache Lic } if (data.results.length === 0 && checkFormatter(opts.formatNoMatches, "formatNoMatches")) { - render("
  • " + evaluate(opts.formatNoMatches, search.val()) + "
  • "); + render("
  • " + evaluate(opts.formatNoMatches, opts.element, search.val()) + "
  • "); return; } @@ -1734,7 +1806,7 @@ the specific language governing permissions and limitations under the Apache Lic self.opts.populateResults.call(this, results, data.results, {term: search.val(), page: this.resultsPage, context:null}); if (data.more === true && checkFormatter(opts.formatLoadMore, "formatLoadMore")) { - results.append("
  • " + self.opts.escapeMarkup(evaluate(opts.formatLoadMore, this.resultsPage)) + "
  • "); + results.append("
  • " + opts.escapeMarkup(evaluate(opts.formatLoadMore, opts.element, this.resultsPage)) + "
  • "); window.setTimeout(function() { self.loadMoreIfNeeded(); }, 10); } @@ -1806,7 +1878,7 @@ the specific language governing permissions and limitations under the Apache Lic //Determine the placeholder option based on the specified placeholderOption setting return (this.opts.placeholderOption === "first" && firstOption) || (typeof this.opts.placeholderOption === "function" && this.opts.placeholderOption(this.select)); - } else if (firstOption.text() === "" && firstOption.val() === "") { + } else if ($.trim(firstOption.text()) === "" && firstOption.val() === "") { //No explicit placeholder option specified, use the first if it's blank return firstOption; } @@ -1875,7 +1947,7 @@ the specific language governing permissions and limitations under the Apache Lic "class": "select2-container" }).html([ "", - "  ", + "  ", " ", "", "", @@ -1915,17 +1987,19 @@ the specific language governing permissions and limitations under the Apache Lic this.search.val(this.focusser.val()); } - this.search.focus(); - // move the cursor to the end after focussing, otherwise it will be at the beginning and - // new text will appear *before* focusser.val() - el = this.search.get(0); - if (el.createTextRange) { - range = el.createTextRange(); - range.collapse(false); - range.select(); - } else if (el.setSelectionRange) { - len = this.search.val().length; - el.setSelectionRange(len, len); + if (this.opts.shouldFocusInput(this)) { + this.search.focus(); + // move the cursor to the end after focussing, otherwise it will be at the beginning and + // new text will appear *before* focusser.val() + el = this.search.get(0); + if (el.createTextRange) { + range = el.createTextRange(); + range.collapse(false); + range.select(); + } else if (el.setSelectionRange) { + len = this.search.val().length; + el.setSelectionRange(len, len); + } } // initializes search's value with nextSearchTerm (if defined by user) @@ -1986,6 +2060,11 @@ the specific language governing permissions and limitations under the Apache Lic $("label[for='" + this.focusser.attr('id') + "']") .attr('for', this.opts.element.attr("id")); this.parent.destroy.apply(this, arguments); + + cleanupJQueryElements.call(this, + "selection", + "focusser" + ); }, // single @@ -2038,6 +2117,9 @@ the specific language governing permissions and limitations under the Apache Lic this.search.on("keydown", this.bind(function (e) { if (!this.isInterfaceEnabled()) return; + // filter 229 keyCodes (input method editor is processing key input) + if (229 == e.keyCode) return; + if (e.which === KEY.PAGE_UP || e.which === KEY.PAGE_DOWN) { // prevent the page from scrolling killEvent(e); @@ -2067,7 +2149,7 @@ the specific language governing permissions and limitations under the Apache Lic this.search.on("blur", this.bind(function(e) { // a workaround for chrome to keep the search field focussed when the scroll bar is used to scroll the dropdown. // without this the search field loses focus which is annoying - if (document.activeElement === this.body().get(0)) { + if (document.activeElement === this.body.get(0)) { window.setTimeout(this.bind(function() { if (this.opened()) { this.search.focus(); @@ -2142,7 +2224,11 @@ the specific language governing permissions and limitations under the Apache Lic killEvent(e); })); - dropdown.on("mousedown touchstart", this.bind(function() { this.search.focus(); })); + dropdown.on("mousedown touchstart", this.bind(function() { + if (this.opts.shouldFocusInput(this)) { + this.search.focus(); + } + })); selection.on("focus", this.bind(function(e) { killEvent(e); @@ -2219,7 +2305,7 @@ the specific language governing permissions and limitations under the Apache Lic isPlaceholderOptionSelected: function() { var placeholderOption; - if (!this.getPlaceholder()) return false; // no placeholder specified so no option should be considered + if (this.getPlaceholder() === undefined) return false; // no placeholder specified so no option should be considered return ((placeholderOption = this.getPlaceholderOption()) !== undefined && placeholderOption.prop("selected")) || (this.opts.element.val() === "") || (this.opts.element.val() === undefined) @@ -2572,6 +2658,11 @@ the specific language governing permissions and limitations under the Apache Lic $("label[for='" + this.search.attr('id') + "']") .attr('for', this.opts.element.attr("id")); this.parent.destroy.apply(this, arguments); + + cleanupJQueryElements.call(this, + "searchContainer", + "selection" + ); }, // multi @@ -2597,6 +2688,7 @@ the specific language governing permissions and limitations under the Apache Lic .attr('for', this.search.attr('id')); this.search.on("input paste", this.bind(function() { + if (this.search.attr('placeholder') && this.search.val().length == 0) return; if (!this.isInterfaceEnabled()) return; if (!this.opened()) { this.open(); @@ -2821,7 +2913,9 @@ the specific language governing permissions and limitations under the Apache Lic } this.updateResults(true); - this.search.focus(); + if (this.opts.shouldFocusInput(this)) { + this.search.focus(); + } this.opts.element.trigger($.Event("select2-open")); }, @@ -2878,7 +2972,7 @@ the specific language governing permissions and limitations under the Apache Lic // multi onSelect: function (data, options) { - if (!this.triggerSelect(data)) { return; } + if (!this.triggerSelect(data) || data.text === "") { return; } this.addSelectedChoice(data); @@ -3058,7 +3152,7 @@ the specific language governing permissions and limitations under the Apache Lic if(!this.opts.createSearchChoice && !choices.filter('.select2-result:not(.select2-selected)').length > 0){ if(!data || data && !data.more && this.results.find(".select2-no-results").length === 0) { if (checkFormatter(self.opts.formatNoMatches, "formatNoMatches")) { - this.results.append("
  • " + evaluate(self.opts.formatNoMatches, self.search.val()) + "
  • "); + this.results.append("
  • " + evaluate(self.opts.formatNoMatches, self.opts.element, self.search.val()) + "
  • "); } } } @@ -3298,7 +3392,7 @@ the specific language governing permissions and limitations under the Apache Lic value = select2[method].apply(select2, args.slice(1)); } if (indexOf(args[0], valueMethods) >= 0 - || (indexOf(args[0], propertyMethods) && args.length == 1)) { + || (indexOf(args[0], propertyMethods) >= 0 && args.length == 1)) { return false; // abort the iteration, ready to return first matched value } } else { @@ -3331,13 +3425,6 @@ the specific language governing permissions and limitations under the Apache Lic }, formatResultCssClass: function(data) {return data.css;}, formatSelectionCssClass: function(data, container) {return undefined;}, - formatMatches: function (matches) { return matches + " results are available, use up and down arrow keys to navigate."; }, - formatNoMatches: function () { return "No matches found"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Please enter " + n + " or more character" + (n == 1? "" : "s"); }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Please delete " + n + " character" + (n == 1? "" : "s"); }, - formatSelectionTooBig: function (limit) { return "You can only select " + limit + " item" + (limit == 1 ? "" : "s"); }, - formatLoadMore: function (pageNumber) { return "Loading more results…"; }, - formatSearching: function () { return "Searching…"; }, minimumResultsForSearch: 0, minimumInputLength: 0, maximumInputLength: null, @@ -3358,6 +3445,15 @@ the specific language governing permissions and limitations under the Apache Lic searchInputPlaceholder: '', createSearchChoicePosition: 'top', shouldFocusInput: function (instance) { + // Attempt to detect touch devices + var supportsTouchEvents = (('ontouchstart' in window) || + (navigator.msMaxTouchPoints > 0)); + + // Only devices which support touch events should be special cased + if (!supportsTouchEvents) { + return true; + } + // Never focus the input if search is disabled if (instance.opts.minimumResultsForSearch < 0) { return false; @@ -3367,6 +3463,21 @@ the specific language governing permissions and limitations under the Apache Lic } }; + $.fn.select2.locales = []; + + $.fn.select2.locales['en'] = { + formatMatches: function (matches) { if (matches === 1) { return "One result is available, press enter to select it."; } return matches + " results are available, use up and down arrow keys to navigate."; }, + formatNoMatches: function () { return "No matches found"; }, + formatAjaxError: function (jqXHR, textStatus, errorThrown) { return "Loading failed"; }, + formatInputTooShort: function (input, min) { var n = min - input.length; return "Please enter " + n + " or more character" + (n == 1 ? "" : "s"); }, + formatInputTooLong: function (input, max) { var n = input.length - max; return "Please delete " + n + " character" + (n == 1 ? "" : "s"); }, + formatSelectionTooBig: function (limit) { return "You can only select " + limit + " item" + (limit == 1 ? "" : "s"); }, + formatLoadMore: function (pageNumber) { return "Loading more results…"; }, + formatSearching: function () { return "Searching…"; }, + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['en']); + $.fn.select2.ajaxDefaults = { transport: $.ajax, params: { diff --git a/modules/backend/assets/vendor/select2/select2.min.js b/modules/backend/assets/vendor/select2/select2.min.js new file mode 100644 index 000000000..1d3ee49f3 --- /dev/null +++ b/modules/backend/assets/vendor/select2/select2.min.js @@ -0,0 +1,23 @@ +/* +Copyright 2014 Igor Vaynberg + +Version: 3.5.1 Timestamp: Tue Jul 22 18:58:56 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;++dc;c+=1)if(r(a,b[c]))return c;return-1}function q(){var b=a(l);b.appendTo("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(b,c){var d,e,f;if(null===b||b.length<1)return[];for(d=b.split(c),e=0,f=d.length;f>e;e+=1)d[e]=a.trim(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=i;(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(!h){var c=b[0].currentStyle||window.getComputedStyle(b[0],null);h=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"}),h.attr("class","select2-sizer"),a("body").append(h)}return h.text(b.val()),h.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(""),c.push(d(a.substring(e,e+f))),c.push(""),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,h,j,k,i={x:0,y:0},c={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 c.LEFT:case c.RIGHT:case c.UP:case c.DOWN:return!0}return!1},isControl:function(a){var b=a.which;switch(b){case c.SHIFT:case c.CTRL:case c.ALT:return!0}return a.metaKey?!0:!1},isFunctionKey:function(a){return a=a.which?a.which:a,a>=112&&123>=a}},l="
    ",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"};j=a(document),g=function(){var a=1;return function(){return a++}}(),d=O(Object,{bind:function(a){var b=this;return function(){a.apply(b,arguments)}},init:function(c){var d,e,f=".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("",{role:"status","aria-live":"polite"}).addClass("select2-hidden-accessible").appendTo(document.body),this.containerId="s2id_"+(c.element.attr("id")||"autogen"+g()),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("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(f),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",f,this.bind(this.highlightUnderEvent)),this.dropdown.on("touchstart touchmove touchend",f,this.bind(function(a){this._touchEvent=!0,this.highlightUnderEvent(a)})),this.dropdown.on("touchmove",f,this.bind(this.touchMoved)),this.dropdown.on("touchstart touchend",f,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",f,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",f,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),k=k||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&&a.each(function(){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.removeClass("select2-offscreen").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,f,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 ","
    "," ","
      ","
    ","
    "].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,h,d=this.container,e=this.dropdown,f=g();this.opts.minimumResultsForSearch<0?this.showSearch(!1):this.showSearch(!0),this.selection=b=d.find(".select2-choice"),this.focusser=d.find(".select2-focusser"),b.find(".select2-chosen").attr("id","select2-chosen-"+f),this.focusser.attr("aria-labelledby","select2-chosen-"+f),this.results.attr("id","select2-results-"+f),this.search.attr("aria-owns","select2-results-"+f),this.focusser.attr("id","s2id_autogen"+f),h=a("label[for='"+this.opts.element.attr("id")+"']"),this.focusser.prev().text(h.text()).attr("for",this.focusser.attr("id"));var i=this.opts.element.attr("title");this.opts.element.attr("title",i||h.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===c.PAGE_UP||a.which===c.PAGE_DOWN)return A(a),void 0;switch(a.which){case c.UP:case c.DOWN:return this.moveHighlight(a.which===c.UP?-1:1),A(a),void 0;case c.ENTER:return this.selectHighlighted(),A(a),void 0;case c.TAB:return this.selectHighlighted({noFocus:!0}),void 0;case c.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!==c.TAB&&!c.isControl(a)&&!c.isFunctionKey(a)&&a.which!==c.ESC){if(this.opts.openOnEnter===!1&&a.which===c.ENTER)return A(a),void 0;if(a.which==c.DOWN||a.which==c.UP||a.which==c.ENTER&&this.opts.openOnEnter){if(a.altKey||a.ctrlKey||a.shiftKey||a.metaKey)return;return this.open(),A(a),void 0}return a.which==c.DELETE||a.which==c.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.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)})),e.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.addClass("select2-offscreen"),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)}}),f=O(d,{createContainer:function(){var b=a(document.createElement("div")).attr({"class":"select2-container select2-container-multi"}).html(["","
    ","
      ","
    ","
    "].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),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;c0||(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.addClass("select2-offscreen"),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("
  • "),f=a("
  • "),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("
    "+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&&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("
  • "+K(g.opts.formatNoMatches,g.opts.element,g.search.val())+"
  • ")},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))},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;c0&&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 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(a.text,c.term,e,d),e.join("")},formatSelection:function(a,c,d){return a?d(a.text):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},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":d,single:e,multi:f}}}}(jQuery); \ No newline at end of file diff --git a/modules/backend/assets/vendor/select2/select2_locale_ar.js b/modules/backend/assets/vendor/select2/select2_locale_ar.js index 92d7e397f..f9fbaa169 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_ar.js +++ b/modules/backend/assets/vendor/select2/select2_locale_ar.js @@ -1,4 +1,4 @@ -/** +/** * Select2 Arabic translation. * * Author: Adel KEDJOUR @@ -6,12 +6,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['ar'] = { formatNoMatches: function () { return "لم يتم العثور على مطابقات"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; if (n == 1){ return "الرجاء إدخال حرف واحد على الأكثر"; } return n == 2 ? "الرجاء إدخال حرفين على الأكثر" : "الجاء إدخال " + n + " على الأكثر"; }, - formatInputTooLong: function (input, max) { var n = input.length - max; if (n == 1){ return "الرجاء إدخال حرف واحد على الأقل"; } return n == 2 ? "الرجاء إدخال حرفين على الأقل" : "الجاء إدخال " + n + " على الأقل "; }, + formatInputTooShort: function (input, min) { var n = min - input.length; if (n == 1){ return "الرجاء إدخال حرف واحد على الأكثر"; } return n == 2 ? "الرجاء إدخال حرفين على الأكثر" : "الرجاء إدخال " + n + " على الأكثر"; }, + formatInputTooLong: function (input, max) { var n = input.length - max; if (n == 1){ return "الرجاء إدخال حرف واحد على الأقل"; } return n == 2 ? "الرجاء إدخال حرفين على الأقل" : "الرجاء إدخال " + n + " على الأقل "; }, formatSelectionTooBig: function (limit) { if (n == 1){ return "يمكنك أن تختار إختيار واحد فقط"; } return n == 2 ? "يمكنك أن تختار إختيارين فقط" : "يمكنك أن تختار " + n + " إختيارات فقط"; }, formatLoadMore: function (pageNumber) { return "تحميل المزيد من النتائج…"; }, formatSearching: function () { return "البحث…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['ar']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_az.js b/modules/backend/assets/vendor/select2/select2_locale_az.js new file mode 100644 index 000000000..19fd95b7a --- /dev/null +++ b/modules/backend/assets/vendor/select2/select2_locale_az.js @@ -0,0 +1,20 @@ +/** + * Select2 Azerbaijani translation. + * + * Author: Farhad Safarov + */ +(function ($) { + "use strict"; + + $.fn.select2.locales['az'] = { + formatMatches: function (matches) { return matches + " nəticə mövcuddur, hərəkət etdirmək üçün yuxarı və aşağı düymələrindən istifadə edin."; }, + formatNoMatches: function () { return "Nəticə tapılmadı"; }, + formatInputTooShort: function (input, min) { var n = min - input.length; return n + " simvol daxil edin"; }, + formatInputTooLong: function (input, max) { var n = input.length - max; return n + " simvol silin"; }, + formatSelectionTooBig: function (limit) { return "Sadəcə " + limit + " element seçə bilərsiniz"; }, + formatLoadMore: function (pageNumber) { return "Daha çox nəticə yüklənir…"; }, + formatSearching: function () { return "Axtarılır…"; } + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['az']); +})(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_bg.js b/modules/backend/assets/vendor/select2/select2_locale_bg.js index 585d28a2b..3283d0ae5 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_bg.js +++ b/modules/backend/assets/vendor/select2/select2_locale_bg.js @@ -7,12 +7,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['bg'] = { formatNoMatches: function () { return "Няма намерени съвпадения"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Моля въведете още " + n + " символ" + (n > 1 ? "а" : ""); }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Моля въведете с " + n + " по-малко символ" + (n > 1 ? "а" : ""); }, formatSelectionTooBig: function (limit) { return "Можете да направите до " + limit + (limit > 1 ? " избора" : " избор"); }, formatLoadMore: function (pageNumber) { return "Зареждат се още…"; }, formatSearching: function () { return "Търсене…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['bg']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_ca.js b/modules/backend/assets/vendor/select2/select2_locale_ca.js index 7e19d3ce9..dbea39e93 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_ca.js +++ b/modules/backend/assets/vendor/select2/select2_locale_ca.js @@ -6,12 +6,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['ca'] = { formatNoMatches: function () { return "No s'ha trobat cap coincidència"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Introduïu " + n + " caràcter" + (n == 1 ? "" : "s") + " més"; }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Introduïu " + n + " caràcter" + (n == 1? "" : "s") + "menys"; }, formatSelectionTooBig: function (limit) { return "Només podeu seleccionar " + limit + " element" + (limit == 1 ? "" : "s"); }, formatLoadMore: function (pageNumber) { return "S'estan carregant més resultats…"; }, formatSearching: function () { return "S'està cercant…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['ca']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_cs.js b/modules/backend/assets/vendor/select2/select2_locale_cs.js index 376b54a13..ef1218564 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_cs.js +++ b/modules/backend/assets/vendor/select2/select2_locale_cs.js @@ -12,7 +12,7 @@ 3: function() { return "tři"; }, 4: function() { return "čtyři"; } } - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['cs'] = { formatNoMatches: function () { return "Nenalezeny žádné položky"; }, formatInputTooShort: function (input, min) { var n = min - input.length; @@ -45,5 +45,7 @@ }, formatLoadMore: function (pageNumber) { return "Načítají se další výsledky…"; }, formatSearching: function () { return "Vyhledávání…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['cs']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_da.js b/modules/backend/assets/vendor/select2/select2_locale_da.js index dbce3e174..702238b9a 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_da.js +++ b/modules/backend/assets/vendor/select2/select2_locale_da.js @@ -6,12 +6,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['da'] = { formatNoMatches: function () { return "Ingen resultater fundet"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Angiv venligst " + n + " tegn mere"; }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Angiv venligst " + n + " tegn mindre"; }, formatSelectionTooBig: function (limit) { return "Du kan kun vælge " + limit + " emne" + (limit === 1 ? "" : "r"); }, formatLoadMore: function (pageNumber) { return "Indlæser flere resultater…"; }, formatSearching: function () { return "Søger…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['da']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_de.js b/modules/backend/assets/vendor/select2/select2_locale_de.js index 93b18e81f..e27541720 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_de.js +++ b/modules/backend/assets/vendor/select2/select2_locale_de.js @@ -4,12 +4,15 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['de'] = { formatNoMatches: function () { return "Keine Übereinstimmungen gefunden"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Bitte " + n + " Zeichen mehr eingeben"; }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Bitte " + n + " Zeichen weniger eingeben"; }, formatSelectionTooBig: function (limit) { return "Sie können nur " + limit + " Eintr" + (limit === 1 ? "ag" : "äge") + " auswählen"; }, formatLoadMore: function (pageNumber) { return "Lade mehr Ergebnisse…"; }, - formatSearching: function () { return "Suche…"; } - }); + formatSearching: function () { return "Suche…"; }, + formatMatches: function (matches) { return matches + " Ergebnis " + (matches > 1 ? "se" : "") + " verfügbar, zum Navigieren die Hoch-/Runter-Pfeiltasten verwenden."; } + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['de']); })(jQuery); \ No newline at end of file diff --git a/modules/backend/assets/vendor/select2/select2_locale_el.js b/modules/backend/assets/vendor/select2/select2_locale_el.js index e94b02cbc..d17459e1d 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_el.js +++ b/modules/backend/assets/vendor/select2/select2_locale_el.js @@ -6,12 +6,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['el'] = { formatNoMatches: function () { return "Δεν βρέθηκαν αποτελέσματα"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Παρακαλούμε εισάγετε " + n + " περισσότερο" + (n > 1 ? "υς" : "") + " χαρακτήρ" + (n > 1 ? "ες" : "α"); }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Παρακαλούμε διαγράψτε " + n + " χαρακτήρ" + (n > 1 ? "ες" : "α"); }, formatSelectionTooBig: function (limit) { return "Μπορείτε να επιλέξετε μόνο " + limit + " αντικείμεν" + (limit > 1 ? "α" : "ο"); }, formatLoadMore: function (pageNumber) { return "Φόρτωση περισσότερων…"; }, formatSearching: function () { return "Αναζήτηση…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['el']); })(jQuery); \ No newline at end of file diff --git a/modules/backend/assets/vendor/select2/select2_locale_en.js.template b/modules/backend/assets/vendor/select2/select2_locale_en.js.template index f66bcc844..f758b1100 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_en.js.template +++ b/modules/backend/assets/vendor/select2/select2_locale_en.js.template @@ -1,18 +1,20 @@ /** * Select2 translation. - * + * * Author: Your Name */ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { - formatMatches: function (matches) { return matches + " results are available, use up and down arrow keys to navigate."; }, + $.fn.select2.locales['en'] = { + formatMatches: function (matches) { if (matches === 1) { return "One result is available, press enter to select it."; } return matches + " results are available, use up and down arrow keys to navigate."; }, formatNoMatches: function () { return "No matches found"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Please enter " + n + " more character" + (n == 1 ? "" : "s"); }, + formatInputTooShort: function (input, min) { var n = min - input.length; return "Please enter " + n + " or more character" + (n == 1 ? "" : "s"); }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Please delete " + n + " character" + (n == 1 ? "" : "s"); }, formatSelectionTooBig: function (limit) { return "You can only select " + limit + " item" + (limit == 1 ? "" : "s"); }, formatLoadMore: function (pageNumber) { return "Loading more results…"; }, formatSearching: function () { return "Searching…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['en']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_es.js b/modules/backend/assets/vendor/select2/select2_locale_es.js index f2b581791..b506fbcd3 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_es.js +++ b/modules/backend/assets/vendor/select2/select2_locale_es.js @@ -4,12 +4,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['es'] = { formatNoMatches: function () { return "No se encontraron resultados"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Por favor, introduzca " + n + " car" + (n == 1? "ácter" : "acteres"); }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Por favor, elimine " + n + " car" + (n == 1? "ácter" : "acteres"); }, formatSelectionTooBig: function (limit) { return "Sólo puede seleccionar " + limit + " elemento" + (limit == 1 ? "" : "s"); }, formatLoadMore: function (pageNumber) { return "Cargando más resultados…"; }, formatSearching: function () { return "Buscando…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['es']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_et.js b/modules/backend/assets/vendor/select2/select2_locale_et.js index a4045d22d..4d69f55e3 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_et.js +++ b/modules/backend/assets/vendor/select2/select2_locale_et.js @@ -6,12 +6,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['et'] = { formatNoMatches: function () { return "Tulemused puuduvad"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Sisesta " + n + " täht" + (n == 1 ? "" : "e") + " rohkem"; }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Sisesta " + n + " täht" + (n == 1? "" : "e") + " vähem"; }, formatSelectionTooBig: function (limit) { return "Saad vaid " + limit + " tulemus" + (limit == 1 ? "e" : "t") + " valida"; }, formatLoadMore: function (pageNumber) { return "Laen tulemusi.."; }, formatSearching: function () { return "Otsin.."; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['et']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_eu.js b/modules/backend/assets/vendor/select2/select2_locale_eu.js index 1da1a7094..67ae8d05a 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_eu.js +++ b/modules/backend/assets/vendor/select2/select2_locale_eu.js @@ -6,7 +6,7 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['eu'] = { formatNoMatches: function () { return "Ez da bat datorrenik aurkitu"; }, @@ -39,5 +39,7 @@ formatSearching: function () { return "Bilatzen…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['eu']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_fa.js b/modules/backend/assets/vendor/select2/select2_locale_fa.js index a9e95af4d..b3ffd8b7d 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_fa.js +++ b/modules/backend/assets/vendor/select2/select2_locale_fa.js @@ -7,7 +7,7 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['fa'] = { formatMatches: function (matches) { return matches + " نتیجه موجود است، کلیدهای جهت بالا و پایین را برای گشتن استفاده کنید."; }, formatNoMatches: function () { return "نتیجه‌ای یافت نشد."; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "لطفاً " + n + " نویسه بیشتر وارد نمایید"; }, @@ -15,5 +15,7 @@ formatSelectionTooBig: function (limit) { return "شما فقط می‌توانید " + limit + " مورد را انتخاب کنید"; }, formatLoadMore: function (pageNumber) { return "در حال بارگیری موارد بیشتر…"; }, formatSearching: function () { return "در حال جستجو…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['fa']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_fi.js b/modules/backend/assets/vendor/select2/select2_locale_fi.js index 9bed310f7..6487fbdad 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_fi.js +++ b/modules/backend/assets/vendor/select2/select2_locale_fi.js @@ -3,7 +3,7 @@ */ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['fi'] = { formatNoMatches: function () { return "Ei tuloksia"; }, @@ -24,5 +24,7 @@ formatSearching: function () { return "Etsitään…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['fi']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_fr.js b/modules/backend/assets/vendor/select2/select2_locale_fr.js index d8c87d4b4..d5485d6be 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_fr.js +++ b/modules/backend/assets/vendor/select2/select2_locale_fr.js @@ -4,12 +4,15 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['fr'] = { + formatMatches: function (matches) { return matches + " résultats sont disponibles, utilisez les flèches haut et bas pour naviguer."; }, formatNoMatches: function () { return "Aucun résultat trouvé"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Merci de saisir " + n + " caractère" + (n == 1? "" : "s") + " de plus"; }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Merci de supprimer " + n + " caractère" + (n == 1? "" : "s"); }, + formatInputTooShort: function (input, min) { var n = min - input.length; return "Saisissez " + n + " caractère" + (n == 1? "" : "s") + " supplémentaire" + (n == 1? "" : "s") ; }, + formatInputTooLong: function (input, max) { var n = input.length - max; return "Supprimez " + n + " caractère" + (n == 1? "" : "s"); }, formatSelectionTooBig: function (limit) { return "Vous pouvez seulement sélectionner " + limit + " élément" + (limit == 1 ? "" : "s"); }, formatLoadMore: function (pageNumber) { return "Chargement de résultats supplémentaires…"; }, formatSearching: function () { return "Recherche en cours…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['fr']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_gl.js b/modules/backend/assets/vendor/select2/select2_locale_gl.js index 80326320b..9335167da 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_gl.js +++ b/modules/backend/assets/vendor/select2/select2_locale_gl.js @@ -6,7 +6,7 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['gl'] = { formatNoMatches: function () { return "Non se atoparon resultados"; }, @@ -39,5 +39,7 @@ formatSearching: function () { return "Buscando…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['gl']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_he.js b/modules/backend/assets/vendor/select2/select2_locale_he.js index 003854108..789dcdcaa 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_he.js +++ b/modules/backend/assets/vendor/select2/select2_locale_he.js @@ -6,12 +6,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['he'] = { formatNoMatches: function () { return "לא נמצאו התאמות"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "נא להזין עוד " + n + " תווים נוספים"; }, formatInputTooLong: function (input, max) { var n = input.length - max; return "נא להזין פחות " + n + " תווים"; }, formatSelectionTooBig: function (limit) { return "ניתן לבחור " + limit + " פריטים"; }, formatLoadMore: function (pageNumber) { return "טוען תוצאות נוספות…"; }, formatSearching: function () { return "מחפש…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['he']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_hr.js b/modules/backend/assets/vendor/select2/select2_locale_hr.js index c29372524..ce8051c78 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_hr.js +++ b/modules/backend/assets/vendor/select2/select2_locale_hr.js @@ -7,14 +7,16 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['hr'] = { formatNoMatches: function () { return "Nema rezultata"; }, formatInputTooShort: function (input, min) { return "Unesite još" + character(min - input.length); }, formatInputTooLong: function (input, max) { return "Unesite" + character(input.length - max) + " manje"; }, formatSelectionTooBig: function (limit) { return "Maksimalan broj odabranih stavki je " + limit; }, formatLoadMore: function (pageNumber) { return "Učitavanje rezultata…"; }, formatSearching: function () { return "Pretraga…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['hr']); function character (n) { return " " + n + " znak" + (n%10 < 5 && n%10 > 0 && (n%100 < 5 || n%100 > 19) ? n%10 > 1 ? "a" : "" : "ova"); diff --git a/modules/backend/assets/vendor/select2/select2_locale_hu.js b/modules/backend/assets/vendor/select2/select2_locale_hu.js index a8c308819..f431f2463 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_hu.js +++ b/modules/backend/assets/vendor/select2/select2_locale_hu.js @@ -4,12 +4,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['hu'] = { formatNoMatches: function () { return "Nincs találat."; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Túl rövid. Még " + n + " karakter hiányzik."; }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Túl hosszú. " + n + " karakterrel több, mint kellene."; }, formatSelectionTooBig: function (limit) { return "Csak " + limit + " elemet lehet kiválasztani."; }, formatLoadMore: function (pageNumber) { return "Töltés…"; }, formatSearching: function () { return "Keresés…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['hu']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_id.js b/modules/backend/assets/vendor/select2/select2_locale_id.js index 547454079..e9c1fd9b9 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_id.js +++ b/modules/backend/assets/vendor/select2/select2_locale_id.js @@ -6,12 +6,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['id'] = { formatNoMatches: function () { return "Tidak ada data yang sesuai"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Masukkan " + n + " huruf lagi" + (n == 1 ? "" : "s"); }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Hapus " + n + " huruf" + (n == 1 ? "" : "s"); }, formatSelectionTooBig: function (limit) { return "Anda hanya dapat memilih " + limit + " pilihan" + (limit == 1 ? "" : "s"); }, formatLoadMore: function (pageNumber) { return "Mengambil data…"; }, formatSearching: function () { return "Mencari…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['id']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_is.js b/modules/backend/assets/vendor/select2/select2_locale_is.js index aecc6cd71..273f33de8 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_is.js +++ b/modules/backend/assets/vendor/select2/select2_locale_is.js @@ -4,12 +4,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['is'] = { formatNoMatches: function () { return "Ekkert fannst"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Vinsamlegast skrifið " + n + " staf" + (n > 1 ? "i" : "") + " í viðbót"; }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Vinsamlegast styttið texta um " + n + " staf" + (n > 1 ? "i" : ""); }, formatSelectionTooBig: function (limit) { return "Þú getur aðeins valið " + limit + " atriði"; }, formatLoadMore: function (pageNumber) { return "Sæki fleiri niðurstöður…"; }, formatSearching: function () { return "Leita…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['is']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_it.js b/modules/backend/assets/vendor/select2/select2_locale_it.js index d4e24de70..6e2b8e237 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_it.js +++ b/modules/backend/assets/vendor/select2/select2_locale_it.js @@ -4,12 +4,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['it'] = { formatNoMatches: function () { return "Nessuna corrispondenza trovata"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Inserisci ancora " + n + " caratter" + (n == 1? "e" : "i"); }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Inserisci " + n + " caratter" + (n == 1? "e" : "i") + " in meno"; }, formatSelectionTooBig: function (limit) { return "Puoi selezionare solo " + limit + " element" + (limit == 1 ? "o" : "i"); }, formatLoadMore: function (pageNumber) { return "Caricamento in corso…"; }, formatSearching: function () { return "Ricerca…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['it']); })(jQuery); \ No newline at end of file diff --git a/modules/backend/assets/vendor/select2/select2_locale_ja.js b/modules/backend/assets/vendor/select2/select2_locale_ja.js index 81106e78a..7dbd8d7ee 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_ja.js +++ b/modules/backend/assets/vendor/select2/select2_locale_ja.js @@ -4,12 +4,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['ja'] = { formatNoMatches: function () { return "該当なし"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "後" + n + "文字入れてください"; }, formatInputTooLong: function (input, max) { var n = input.length - max; return "検索文字列が" + n + "文字長すぎます"; }, formatSelectionTooBig: function (limit) { return "最多で" + limit + "項目までしか選択できません"; }, formatLoadMore: function (pageNumber) { return "読込中・・・"; }, formatSearching: function () { return "検索中・・・"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['ja']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_ka.js b/modules/backend/assets/vendor/select2/select2_locale_ka.js index 366cc2d9c..6cbe1d8f3 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_ka.js +++ b/modules/backend/assets/vendor/select2/select2_locale_ka.js @@ -6,12 +6,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['ka'] = { formatNoMatches: function () { return "ვერ მოიძებნა"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "გთხოვთ შეიყვანოთ კიდევ " + n + " სიმბოლო"; }, formatInputTooLong: function (input, max) { var n = input.length - max; return "გთხოვთ წაშალოთ " + n + " სიმბოლო"; }, formatSelectionTooBig: function (limit) { return "თქვენ შეგიძლიათ მხოლოდ " + limit + " ჩანაწერის მონიშვნა"; }, formatLoadMore: function (pageNumber) { return "შედეგის ჩატვირთვა…"; }, formatSearching: function () { return "ძებნა…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['ka']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_ko.js b/modules/backend/assets/vendor/select2/select2_locale_ko.js index 1a84d21ea..bf036e09e 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_ko.js +++ b/modules/backend/assets/vendor/select2/select2_locale_ko.js @@ -6,12 +6,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['ko'] = { formatNoMatches: function () { return "결과 없음"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "너무 짧습니다. "+n+"글자 더 입력해주세요."; }, formatInputTooLong: function (input, max) { var n = input.length - max; return "너무 깁니다. "+n+"글자 지워주세요."; }, formatSelectionTooBig: function (limit) { return "최대 "+limit+"개까지만 선택하실 수 있습니다."; }, formatLoadMore: function (pageNumber) { return "불러오는 중…"; }, formatSearching: function () { return "검색 중…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['ko']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_lt.js b/modules/backend/assets/vendor/select2/select2_locale_lt.js index 2e2f950b0..7d7040f72 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_lt.js +++ b/modules/backend/assets/vendor/select2/select2_locale_lt.js @@ -7,7 +7,7 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['lt'] = { formatNoMatches: function () { return "Atitikmenų nerasta"; }, formatInputTooShort: function (input, min) { return "Įrašykite dar" + character(min - input.length); }, formatInputTooLong: function (input, max) { return "Pašalinkite" + character(input.length - max); }, @@ -16,7 +16,9 @@ }, formatLoadMore: function (pageNumber) { return "Kraunama daugiau rezultatų…"; }, formatSearching: function () { return "Ieškoma…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['lt']); function character (n) { return " " + n + " simbol" + ((n%100 > 9 && n%100 < 21) || n%10 == 0 ? "ių" : n%10 > 1 ? "ius" : "į"); diff --git a/modules/backend/assets/vendor/select2/select2_locale_lv.js b/modules/backend/assets/vendor/select2/select2_locale_lv.js index b300ec770..4afc5b41c 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_lv.js +++ b/modules/backend/assets/vendor/select2/select2_locale_lv.js @@ -6,12 +6,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['lv'] = { formatNoMatches: function () { return "Sakritību nav"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Lūdzu ievadiet vēl " + n + " simbol" + (n == 11 ? "us" : n%10 == 1 ? "u" : "us"); }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Lūdzu ievadiet par " + n + " simbol" + (n == 11 ? "iem" : n%10 == 1 ? "u" : "iem") + " mazāk"; }, formatSelectionTooBig: function (limit) { return "Jūs varat izvēlēties ne vairāk kā " + limit + " element" + (limit == 11 ? "us" : limit%10 == 1 ? "u" : "us"); }, formatLoadMore: function (pageNumber) { return "Datu ielāde…"; }, formatSearching: function () { return "Meklēšana…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['lv']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_mk.js b/modules/backend/assets/vendor/select2/select2_locale_mk.js index 513562c51..8a51a9e0b 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_mk.js +++ b/modules/backend/assets/vendor/select2/select2_locale_mk.js @@ -6,12 +6,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['mk'] = { formatNoMatches: function () { return "Нема пронајдено совпаѓања"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Ве молиме внесете уште " + n + " карактер" + (n == 1 ? "" : "и"); }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Ве молиме внесете " + n + " помалку карактер" + (n == 1? "" : "и"); }, formatSelectionTooBig: function (limit) { return "Можете да изберете само " + limit + " ставк" + (limit == 1 ? "а" : "и"); }, formatLoadMore: function (pageNumber) { return "Вчитување резултати…"; }, formatSearching: function () { return "Пребарување…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['mk']); })(jQuery); \ No newline at end of file diff --git a/modules/backend/assets/vendor/select2/select2_locale_ms.js b/modules/backend/assets/vendor/select2/select2_locale_ms.js index 262042aab..46588d6d7 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_ms.js +++ b/modules/backend/assets/vendor/select2/select2_locale_ms.js @@ -6,12 +6,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['ms'] = { formatNoMatches: function () { return "Tiada padanan yang ditemui"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Sila masukkan " + n + " aksara lagi"; }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Sila hapuskan " + n + " aksara"; }, formatSelectionTooBig: function (limit) { return "Anda hanya boleh memilih " + limit + " pilihan"; }, formatLoadMore: function (pageNumber) { return "Sedang memuatkan keputusan…"; }, formatSearching: function () { return "Mencari…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['ms']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_nl.js b/modules/backend/assets/vendor/select2/select2_locale_nl.js index 5b5c4156c..985741ec2 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_nl.js +++ b/modules/backend/assets/vendor/select2/select2_locale_nl.js @@ -4,12 +4,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['nl'] = { formatNoMatches: function () { return "Geen resultaten gevonden"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Vul " + n + " karakter" + (n == 1? "" : "s") + " meer in"; }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Vul " + n + " karakter" + (n == 1? "" : "s") + " minder in"; }, + formatInputTooShort: function (input, min) { var n = min - input.length; return "Vul nog " + n + " karakter" + (n == 1? "" : "s") + " in"; }, + formatInputTooLong: function (input, max) { var n = input.length - max; return "Haal " + n + " karakter" + (n == 1? "" : "s") + " weg"; }, formatSelectionTooBig: function (limit) { return "Maximaal " + limit + " item" + (limit == 1 ? "" : "s") + " toegestaan"; }, formatLoadMore: function (pageNumber) { return "Meer resultaten laden…"; }, formatSearching: function () { return "Zoeken…"; } - }); -})(jQuery); \ No newline at end of file + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['nl']); +})(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_no.js b/modules/backend/assets/vendor/select2/select2_locale_no.js index ab61c082a..e00408cf6 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_no.js +++ b/modules/backend/assets/vendor/select2/select2_locale_no.js @@ -6,13 +6,15 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['no'] = { formatNoMatches: function () { return "Ingen treff"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Vennligst skriv inn " + n + (n>1 ? " flere tegn" : " tegn til"); }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Vennligst fjern " + n + " tegn"; }, formatSelectionTooBig: function (limit) { return "Du kan velge maks " + limit + " elementer"; }, formatLoadMore: function (pageNumber) { return "Laster flere resultater…"; }, formatSearching: function () { return "Søker…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['no']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_pl.js b/modules/backend/assets/vendor/select2/select2_locale_pl.js index 75054e765..d77648ff8 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_pl.js +++ b/modules/backend/assets/vendor/select2/select2_locale_pl.js @@ -3,18 +3,21 @@ * * @author Jan Kondratowicz * @author Uriy Efremochkin + * @author Michał Połtyn */ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['pl'] = { formatNoMatches: function () { return "Brak wyników"; }, - formatInputTooShort: function (input, min) { return "Wpisz jeszcze" + character(min - input.length, "znak", "i"); }, + formatInputTooShort: function (input, min) { return "Wpisz co najmniej" + character(min - input.length, "znak", "i"); }, formatInputTooLong: function (input, max) { return "Wpisana fraza jest za długa o" + character(input.length - max, "znak", "i"); }, formatSelectionTooBig: function (limit) { return "Możesz zaznaczyć najwyżej" + character(limit, "element", "y"); }, formatLoadMore: function (pageNumber) { return "Ładowanie wyników…"; }, formatSearching: function () { return "Szukanie…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['pl']); function character (n, word, pluralSuffix) { return " " + n + " " + word + (n == 1 ? "" : n%10 < 5 && n%10 > 1 && (n%100 < 5 || n%100 > 20) ? pluralSuffix : "ów"); diff --git a/modules/backend/assets/vendor/select2/select2_locale_pt-BR.js b/modules/backend/assets/vendor/select2/select2_locale_pt-BR.js index d60b18274..e4088f0c7 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_pt-BR.js +++ b/modules/backend/assets/vendor/select2/select2_locale_pt-BR.js @@ -4,12 +4,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['pt-BR'] = { formatNoMatches: function () { return "Nenhum resultado encontrado"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Informe " + n + " caractere" + (n == 1? "" : "s"); }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Apague " + n + " caractere" + (n == 1? "" : "s"); }, + formatInputTooShort: function (input, min) { var n = min - input.length; return "Digite mais " + n + " caracter" + (n == 1? "" : "es"); }, + formatInputTooLong: function (input, max) { var n = input.length - max; return "Apague " + n + " caracter" + (n == 1? "" : "es"); }, formatSelectionTooBig: function (limit) { return "Só é possível selecionar " + limit + " elemento" + (limit == 1 ? "" : "s"); }, formatLoadMore: function (pageNumber) { return "Carregando mais resultados…"; }, formatSearching: function () { return "Buscando…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['pt-BR']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_pt-PT.js b/modules/backend/assets/vendor/select2/select2_locale_pt-PT.js index cced7cf3e..ae55a4fc4 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_pt-PT.js +++ b/modules/backend/assets/vendor/select2/select2_locale_pt-PT.js @@ -4,12 +4,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['pt-PT'] = { formatNoMatches: function () { return "Nenhum resultado encontrado"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Introduza " + n + " car" + (n == 1 ? "ácter" : "acteres"); }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Apague " + n + " car" + (n == 1 ? "ácter" : "acteres"); }, formatSelectionTooBig: function (limit) { return "Só é possível selecionar " + limit + " elemento" + (limit == 1 ? "" : "s"); }, formatLoadMore: function (pageNumber) { return "A carregar mais resultados…"; }, formatSearching: function () { return "A pesquisar…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['pt-PT']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_ro.js b/modules/backend/assets/vendor/select2/select2_locale_ro.js index 87eca4cf7..21b0cf181 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_ro.js +++ b/modules/backend/assets/vendor/select2/select2_locale_ro.js @@ -4,12 +4,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['ro'] = { formatNoMatches: function () { return "Nu a fost găsit nimic"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Vă rugăm să introduceți incă " + n + " caracter" + (n == 1 ? "" : "e"); }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Vă rugăm să introduceți mai puțin de " + n + " caracter" + (n == 1? "" : "e"); }, formatSelectionTooBig: function (limit) { return "Aveți voie să selectați cel mult " + limit + " element" + (limit == 1 ? "" : "e"); }, formatLoadMore: function (pageNumber) { return "Se încarcă…"; }, formatSearching: function () { return "Căutare…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['ro']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_rs.js b/modules/backend/assets/vendor/select2/select2_locale_rs.js index 300c01bc5..72c16389c 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_rs.js +++ b/modules/backend/assets/vendor/select2/select2_locale_rs.js @@ -6,12 +6,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['rs'] = { formatNoMatches: function () { return "Ništa nije pronađeno"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Ukucajte bar još " + n + " simbol" + (n % 10 == 1 && n % 100 != 11 ? "" : "a"); }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Obrišite " + n + " simbol" + (n % 10 == 1 && n % 100 != 11 ? "" : "a"); }, formatSelectionTooBig: function (limit) { return "Možete izabrati samo " + limit + " stavk" + (limit % 10 == 1 && limit % 100 != 11 ? "u" : (limit % 10 >= 2 && limit % 10 <= 4 && (limit % 100 < 12 || limit % 100 > 14)? "e" : "i")); }, formatLoadMore: function (pageNumber) { return "Preuzimanje još rezultata…"; }, formatSearching: function () { return "Pretraga…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['rs']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_ru.js b/modules/backend/assets/vendor/select2/select2_locale_ru.js index 0f45ce0dd..2a6c7702c 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_ru.js +++ b/modules/backend/assets/vendor/select2/select2_locale_ru.js @@ -6,14 +6,16 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['ru'] = { formatNoMatches: function () { return "Совпадений не найдено"; }, - formatInputTooShort: function (input, min) { return "Пожалуйста, введите еще" + character(min - input.length); }, + formatInputTooShort: function (input, min) { return "Пожалуйста, введите еще хотя бы" + character(min - input.length); }, formatInputTooLong: function (input, max) { return "Пожалуйста, введите на" + character(input.length - max) + " меньше"; }, formatSelectionTooBig: function (limit) { return "Вы можете выбрать не более " + limit + " элемент" + (limit%10 == 1 && limit%100 != 11 ? "а" : "ов"); }, formatLoadMore: function (pageNumber) { return "Загрузка данных…"; }, formatSearching: function () { return "Поиск…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['ru']); function character (n) { return " " + n + " символ" + (n%10 < 5 && n%10 > 0 && (n%100 < 5 || n%100 > 20) ? n%10 > 1 ? "a" : "" : "ов"); diff --git a/modules/backend/assets/vendor/select2/select2_locale_sk.js b/modules/backend/assets/vendor/select2/select2_locale_sk.js index 772f304ac..0b49850d8 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_sk.js +++ b/modules/backend/assets/vendor/select2/select2_locale_sk.js @@ -10,27 +10,27 @@ 2: function(masc) { return (masc ? "dva" : "dve"); }, 3: function() { return "tri"; }, 4: function() { return "štyri"; } - } - $.extend($.fn.select2.defaults, { + }; + $.fn.select2.locales['sk'] = { formatNoMatches: function () { return "Nenašli sa žiadne položky"; }, formatInputTooShort: function (input, min) { var n = min - input.length; if (n == 1) { - return "Prosím zadajte ešte jeden znak"; + return "Prosím, zadajte ešte jeden znak"; } else if (n <= 4) { - return "Prosím zadajte ešte ďalšie "+smallNumbers[n](true)+" znaky"; + return "Prosím, zadajte ešte ďalšie "+smallNumbers[n](true)+" znaky"; } else { - return "Prosím zadajte ešte ďalších "+n+" znakov"; + return "Prosím, zadajte ešte ďalších "+n+" znakov"; } }, formatInputTooLong: function (input, max) { var n = input.length - max; if (n == 1) { - return "Prosím zadajte o jeden znak menej"; + return "Prosím, zadajte o jeden znak menej"; } else if (n <= 4) { - return "Prosím zadajte o "+smallNumbers[n](true)+" znaky menej"; + return "Prosím, zadajte o "+smallNumbers[n](true)+" znaky menej"; } else { - return "Prosím zadajte o "+n+" znakov menej"; + return "Prosím, zadajte o "+n+" znakov menej"; } }, formatSelectionTooBig: function (limit) { @@ -44,5 +44,7 @@ }, formatLoadMore: function (pageNumber) { return "Načítavajú sa ďalšie výsledky…"; }, formatSearching: function () { return "Vyhľadávanie…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['sk']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_sv.js b/modules/backend/assets/vendor/select2/select2_locale_sv.js index d611189a5..96f8c0a88 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_sv.js +++ b/modules/backend/assets/vendor/select2/select2_locale_sv.js @@ -6,12 +6,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['sv'] = { formatNoMatches: function () { return "Inga träffar"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Var god skriv in " + n + (n>1 ? " till tecken" : " tecken till"); }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Var god sudda ut " + n + " tecken"; }, formatSelectionTooBig: function (limit) { return "Du kan max välja " + limit + " element"; }, formatLoadMore: function (pageNumber) { return "Laddar fler resultat…"; }, formatSearching: function () { return "Söker…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['sv']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_th.js b/modules/backend/assets/vendor/select2/select2_locale_th.js index df59bdac3..7f3e6ef8c 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_th.js +++ b/modules/backend/assets/vendor/select2/select2_locale_th.js @@ -6,12 +6,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['th'] = { formatNoMatches: function () { return "ไม่พบข้อมูล"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "โปรดพิมพ์เพิ่มอีก " + n + " ตัวอักษร"; }, formatInputTooLong: function (input, max) { var n = input.length - max; return "โปรดลบออก " + n + " ตัวอักษร"; }, formatSelectionTooBig: function (limit) { return "คุณสามารถเลือกได้ไม่เกิน " + limit + " รายการ"; }, formatLoadMore: function (pageNumber) { return "กำลังค้นข้อมูลเพิ่ม…"; }, formatSearching: function () { return "กำลังค้นข้อมูล…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['th']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_tr.js b/modules/backend/assets/vendor/select2/select2_locale_tr.js index f834dad2b..1dda95ca3 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_tr.js +++ b/modules/backend/assets/vendor/select2/select2_locale_tr.js @@ -6,12 +6,14 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['tr'] = { formatNoMatches: function () { return "Sonuç bulunamadı"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "En az " + n + " karakter daha girmelisiniz"; }, formatInputTooLong: function (input, max) { var n = input.length - max; return n + " karakter azaltmalısınız"; }, formatSelectionTooBig: function (limit) { return "Sadece " + limit + " seçim yapabilirsiniz"; }, formatLoadMore: function (pageNumber) { return "Daha fazla…"; }, formatSearching: function () { return "Aranıyor…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['tr']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_ug-CN.js b/modules/backend/assets/vendor/select2/select2_locale_ug-CN.js new file mode 100644 index 000000000..579588a7a --- /dev/null +++ b/modules/backend/assets/vendor/select2/select2_locale_ug-CN.js @@ -0,0 +1,16 @@ +/** + * Select2 Uyghur translation + */ +(function ($) { + "use strict"; + $.fn.select2.locales['ug-CN'] = { + formatNoMatches: function () { return "ماس كېلىدىغان ئۇچۇر تېپىلمىدى"; }, + formatInputTooShort: function (input, min) { var n = min - input.length; return "يەنە " + n + " ھەرپ كىرگۈزۈڭ";}, + formatInputTooLong: function (input, max) { var n = input.length - max; return "" + n + "ھەرپ ئۆچۈرۈڭ";}, + formatSelectionTooBig: function (limit) { return "ئەڭ كۆپ بولغاندا" + limit + " تال ئۇچۇر تاللىيالايسىز"; }, + formatLoadMore: function (pageNumber) { return "ئۇچۇرلار ئوقۇلىۋاتىدۇ…"; }, + formatSearching: function () { return "ئىزدەۋاتىدۇ…"; } + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['ug-CN']); +})(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_uk.js b/modules/backend/assets/vendor/select2/select2_locale_uk.js index 6b22e8f21..b5bd0e02d 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_uk.js +++ b/modules/backend/assets/vendor/select2/select2_locale_uk.js @@ -7,16 +7,19 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['uk'] = { + formatMatches: function (matches) { return character(matches, "результат") + " знайдено, використовуйте клавіші зі стрілками вверх та вниз для навігації."; }, formatNoMatches: function () { return "Нічого не знайдено"; }, - formatInputTooShort: function (input, min) { return "Введіть буль ласка ще" + character(min - input.length, "символ"); }, - formatInputTooLong: function (input, max) { return "Введіть буль ласка на" + character(input.length - max, "символ") + " менше"; }, - formatSelectionTooBig: function (limit) { return "Ви можете вибрати лише" + character(limit, "елемент"); }, + formatInputTooShort: function (input, min) { return "Введіть буль ласка ще " + character(min - input.length, "символ"); }, + formatInputTooLong: function (input, max) { return "Введіть буль ласка на " + character(input.length - max, "символ") + " менше"; }, + formatSelectionTooBig: function (limit) { return "Ви можете вибрати лише " + character(limit, "елемент"); }, formatLoadMore: function (pageNumber) { return "Завантаження даних…"; }, formatSearching: function () { return "Пошук…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['uk']); function character (n, word) { - return " " + n + " " + word + (n%10 < 5 && n%10 > 0 && (n%100 < 5 || n%100 > 19) ? n%10 > 1 ? "и" : "" : "ів"); + return n + " " + word + (n%10 < 5 && n%10 > 0 && (n%100 < 5 || n%100 > 19) ? n%10 > 1 ? "и" : "" : "ів"); } })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_vi.js b/modules/backend/assets/vendor/select2/select2_locale_vi.js index 5dbc27536..cc67065f9 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_vi.js +++ b/modules/backend/assets/vendor/select2/select2_locale_vi.js @@ -6,13 +6,15 @@ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['vi'] = { formatNoMatches: function () { return "Không tìm thấy kết quả"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "Vui lòng nhập nhiều hơn " + n + " ký tự" + (n == 1 ? "" : "s"); }, formatInputTooLong: function (input, max) { var n = input.length - max; return "Vui lòng nhập ít hơn " + n + " ký tự" + (n == 1? "" : "s"); }, formatSelectionTooBig: function (limit) { return "Chỉ có thể chọn được " + limit + " tùy chọn" + (limit == 1 ? "" : "s"); }, formatLoadMore: function (pageNumber) { return "Đang lấy thêm kết quả…"; }, formatSearching: function () { return "Đang tìm…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['vi']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_zh-CN.js b/modules/backend/assets/vendor/select2/select2_locale_zh-CN.js index 6add3c525..e988dac1a 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_zh-CN.js +++ b/modules/backend/assets/vendor/select2/select2_locale_zh-CN.js @@ -3,12 +3,14 @@ */ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['zh-CN'] = { formatNoMatches: function () { return "没有找到匹配项"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "请再输入" + n + "个字符";}, formatInputTooLong: function (input, max) { var n = input.length - max; return "请删掉" + n + "个字符";}, formatSelectionTooBig: function (limit) { return "你只能选择最多" + limit + "项"; }, formatLoadMore: function (pageNumber) { return "加载结果中…"; }, formatSearching: function () { return "搜索中…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['zh-CN']); })(jQuery); diff --git a/modules/backend/assets/vendor/select2/select2_locale_zh-TW.js b/modules/backend/assets/vendor/select2/select2_locale_zh-TW.js index f072381fa..85dbd5afc 100644 --- a/modules/backend/assets/vendor/select2/select2_locale_zh-TW.js +++ b/modules/backend/assets/vendor/select2/select2_locale_zh-TW.js @@ -3,12 +3,14 @@ */ (function ($) { "use strict"; - $.extend($.fn.select2.defaults, { + $.fn.select2.locales['zh-TW'] = { formatNoMatches: function () { return "沒有找到相符的項目"; }, formatInputTooShort: function (input, min) { var n = min - input.length; return "請再輸入" + n + "個字元";}, formatInputTooLong: function (input, max) { var n = input.length - max; return "請刪掉" + n + "個字元";}, formatSelectionTooBig: function (limit) { return "你只能選擇最多" + limit + "項"; }, formatLoadMore: function (pageNumber) { return "載入中…"; }, formatSearching: function () { return "搜尋中…"; } - }); + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['zh-TW']); })(jQuery);