mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-08 12:12:48 +01:00
1 line
234 KiB
Plaintext
1 line
234 KiB
Plaintext
{"version":3,"sources":["select2.js","maximize-select2-height.js"],"names":["factory","define","amd","exports","require","jQuery","S2","fn","select2","requirejs","undef","hasProp","obj","prop","hasOwn","call","normalize","name","baseName","nameParts","nameSegment","mapValue","foundMap","lastIndex","foundI","foundStarMap","starI","i","j","part","baseParts","split","map","config","starMap","charAt","length","nodeIdCompat","jsSuffixRegExp","test","replace","slice","concat","splice","join","indexOf","substring","makeRequire","relName","forceSync","args","aps","arguments","push","req","apply","makeNormalize","makeLoad","depName","value","defined","callDep","waiting","defining","main","Error","splitPrefix","prefix","index","makeConfig","makeMap","handlers","Object","prototype","hasOwnProperty","plugin","parts","f","n","pr","p","e","module","id","uri","deps","callback","cjsModule","ret","usingExports","callbackType","load","undefined","alt","setTimeout","cfg","_defined","_$","$","console","error","getMethods","theClass","proto","methods","methodName","m","Utils","Extend","ChildClass","SuperClass","BaseConstructor","this","constructor","__hasProp","key","__super__","Decorate","DecoratorClass","DecoratedClass","unshift","Array","argCount","calledConstructor","ctr","decoratedMethods","superMethods","displayName","superMethod","calledMethod","originalMethod","decoratedMethod","d","Observable","listeners","on","event","trigger","params","_type","invoke","len","generateChars","chars","randomChar","Math","floor","random","toString","bind","func","context","_convertData","data","originalKey","keys","dataLevel","k","toLowerCase","hasScroll","el","$el","overflowX","style","overflowY","innerHeight","scrollHeight","innerWidth","scrollWidth","escapeMarkup","markup","replaceMap","\\","&","<",">","\"","'","/","String","match","appendMany","$element","$nodes","jquery","substr","$jqNodes","node","add","append","Results","options","dataAdapter","render","$results","get","attr","clear","empty","displayMessage","hideLoading","$message","message","className","hideMessages","find","remove","$options","results","children","sort","item","$option","option","position","$dropdown","$resultsContainer","sorter","highlightFirstItem","$selected","filter","first","ensureHighlightVisible","setClasses","self","current","selected","selectedIds","s","each","element","inArray","showLoading","loadingMore","loading","disabled","text","$loading","prepend","document","createElement","attrs","role","aria-selected","_resultId","title","val","setAttribute","label","template","$children","c","child","$child","$childrenContainer","class","container","$container","isOpen","removeAttr","$highlighted","getHighlightedResults","currentIndex","nextIndex","$next","eq","currentOffset","offset","top","nextTop","nextOffset","scrollTop","outerHeight","nextBottom","addClass","mousewheel","bottom","deltaY","isAtTop","isAtBottom","height","preventDefault","stopPropagation","evt","$this","originalEvent","removeClass","destroy","offsetDelta","result","content","display","innerHTML","KEYS","BACKSPACE","TAB","ENTER","SHIFT","CTRL","ALT","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DELETE","BaseSelection","$selection","_tabindex","resultsId","_handleBlur","which","update","_attachCloseHandler","focus","_detachCloseHandler","window","activeElement","contains","body","$target","target","$select","closest","$all","off","$selectionContainer","SingleSelection","html","selectionContainer","selection","$rendered","formatted","MultipleSelection","$remove","parent","$selections","Placeholder","decorated","placeholder","normalizePlaceholder","_","createPlaceholder","$placeholder","singlePlaceholder","multipleSelections","AllowClear","_handleClear","_handleKeyboardClear","$clear","unselectData","prevented","Search","$search","$searchContainer","_transferTabIndex","_keyUpPrevented","isDefaultPrevented","$previousChoice","prev","searchRemoveChoice","msie","documentMode","disableInputEvents","type","handleSearch","searchHadFocus","resizeSearch","input","term","css","width","minimumWidth","EventRelay","relayEvents","preventableEvents","Event","Translation","dict","all","extend","translation","_cache","loadPath","path","translations","diacritics","Ⓐ","A","À","Á","Â","Ầ","Ấ","Ẫ","Ẩ","Ã","Ā","Ă","Ằ","Ắ","Ẵ","Ẳ","Ȧ","Ǡ","Ä","Ǟ","Ả","Å","Ǻ","Ǎ","Ȁ","Ȃ","Ạ","Ậ","Ặ","Ḁ","Ą","Ⱥ","Ɐ","Ꜳ","Æ","Ǽ","Ǣ","Ꜵ","Ꜷ","Ꜹ","Ꜻ","Ꜽ","Ⓑ","B","Ḃ","Ḅ","Ḇ","Ƀ","Ƃ","Ɓ","Ⓒ","C","Ć","Ĉ","Ċ","Č","Ç","Ḉ","Ƈ","Ȼ","Ꜿ","Ⓓ","D","Ḋ","Ď","Ḍ","Ḑ","Ḓ","Ḏ","Đ","Ƌ","Ɗ","Ɖ","Ꝺ","DZ","DŽ","Dz","Dž","Ⓔ","E","È","É","Ê","Ề","Ế","Ễ","Ể","Ẽ","Ē","Ḕ","Ḗ","Ĕ","Ė","Ë","Ẻ","Ě","Ȅ","Ȇ","Ẹ","Ệ","Ȩ","Ḝ","Ę","Ḙ","Ḛ","Ɛ","Ǝ","Ⓕ","F","Ḟ","Ƒ","Ꝼ","Ⓖ","G","Ǵ","Ĝ","Ḡ","Ğ","Ġ","Ǧ","Ģ","Ǥ","Ɠ","Ꞡ","Ᵹ","Ꝿ","Ⓗ","H","Ĥ","Ḣ","Ḧ","Ȟ","Ḥ","Ḩ","Ḫ","Ħ","Ⱨ","Ⱶ","Ɥ","Ⓘ","I","Ì","Í","Î","Ĩ","Ī","Ĭ","İ","Ï","Ḯ","Ỉ","Ǐ","Ȉ","Ȋ","Ị","Į","Ḭ","Ɨ","Ⓙ","J","Ĵ","Ɉ","Ⓚ","K","Ḱ","Ǩ","Ḳ","Ķ","Ḵ","Ƙ","Ⱪ","Ꝁ","Ꝃ","Ꝅ","Ꞣ","Ⓛ","L","Ŀ","Ĺ","Ľ","Ḷ","Ḹ","Ļ","Ḽ","Ḻ","Ł","Ƚ","Ɫ","Ⱡ","Ꝉ","Ꝇ","Ꞁ","LJ","Lj","Ⓜ","M","Ḿ","Ṁ","Ṃ","Ɱ","Ɯ","Ⓝ","N","Ǹ","Ń","Ñ","Ṅ","Ň","Ṇ","Ņ","Ṋ","Ṉ","Ƞ","Ɲ","Ꞑ","Ꞥ","NJ","Nj","Ⓞ","O","Ò","Ó","Ô","Ồ","Ố","Ỗ","Ổ","Õ","Ṍ","Ȭ","Ṏ","Ō","Ṑ","Ṓ","Ŏ","Ȯ","Ȱ","Ö","Ȫ","Ỏ","Ő","Ǒ","Ȍ","Ȏ","Ơ","Ờ","Ớ","Ỡ","Ở","Ợ","Ọ","Ộ","Ǫ","Ǭ","Ø","Ǿ","Ɔ","Ɵ","Ꝋ","Ꝍ","Ƣ","Ꝏ","Ȣ","Ⓟ","P","Ṕ","Ṗ","Ƥ","Ᵽ","Ꝑ","Ꝓ","Ꝕ","Ⓠ","Q","Ꝗ","Ꝙ","Ɋ","Ⓡ","R","Ŕ","Ṙ","Ř","Ȑ","Ȓ","Ṛ","Ṝ","Ŗ","Ṟ","Ɍ","Ɽ","Ꝛ","Ꞧ","Ꞃ","Ⓢ","S","ẞ","Ś","Ṥ","Ŝ","Ṡ","Š","Ṧ","Ṣ","Ṩ","Ș","Ş","Ȿ","Ꞩ","Ꞅ","Ⓣ","T","Ṫ","Ť","Ṭ","Ț","Ţ","Ṱ","Ṯ","Ŧ","Ƭ","Ʈ","Ⱦ","Ꞇ","Ꜩ","Ⓤ","U","Ù","Ú","Û","Ũ","Ṹ","Ū","Ṻ","Ŭ","Ü","Ǜ","Ǘ","Ǖ","Ǚ","Ủ","Ů","Ű","Ǔ","Ȕ","Ȗ","Ư","Ừ","Ứ","Ữ","Ử","Ự","Ụ","Ṳ","Ų","Ṷ","Ṵ","Ʉ","Ⓥ","V","Ṽ","Ṿ","Ʋ","Ꝟ","Ʌ","Ꝡ","Ⓦ","W","Ẁ","Ẃ","Ŵ","Ẇ","Ẅ","Ẉ","Ⱳ","Ⓧ","X","Ẋ","Ẍ","Ⓨ","Y","Ỳ","Ý","Ŷ","Ỹ","Ȳ","Ẏ","Ÿ","Ỷ","Ỵ","Ƴ","Ɏ","Ỿ","Ⓩ","Z","Ź","Ẑ","Ż","Ž","Ẓ","Ẕ","Ƶ","Ȥ","Ɀ","Ⱬ","Ꝣ","ⓐ","a","ẚ","à","á","â","ầ","ấ","ẫ","ẩ","ã","ā","ă","ằ","ắ","ẵ","ẳ","ȧ","ǡ","ä","ǟ","ả","å","ǻ","ǎ","ȁ","ȃ","ạ","ậ","ặ","ḁ","ą","ⱥ","ɐ","ꜳ","æ","ǽ","ǣ","ꜵ","ꜷ","ꜹ","ꜻ","ꜽ","ⓑ","b","ḃ","ḅ","ḇ","ƀ","ƃ","ɓ","ⓒ","c","ć","ĉ","ċ","č","ç","ḉ","ƈ","ȼ","ꜿ","ↄ","ⓓ","d","ḋ","ď","ḍ","ḑ","ḓ","ḏ","đ","ƌ","ɖ","ɗ","ꝺ","dz","dž","ⓔ","e","è","é","ê","ề","ế","ễ","ể","ẽ","ē","ḕ","ḗ","ĕ","ė","ë","ẻ","ě","ȅ","ȇ","ẹ","ệ","ȩ","ḝ","ę","ḙ","ḛ","ɇ","ɛ","ǝ","ⓕ","f","ḟ","ƒ","ꝼ","ⓖ","g","ǵ","ĝ","ḡ","ğ","ġ","ǧ","ģ","ǥ","ɠ","ꞡ","ᵹ","ꝿ","ⓗ","h","ĥ","ḣ","ḧ","ȟ","ḥ","ḩ","ḫ","ẖ","ħ","ⱨ","ⱶ","ɥ","ƕ","ⓘ","i","ì","í","î","ĩ","ī","ĭ","ï","ḯ","ỉ","ǐ","ȉ","ȋ","ị","į","ḭ","ɨ","ı","ⓙ","j","ĵ","ǰ","ɉ","ⓚ","k","ḱ","ǩ","ḳ","ķ","ḵ","ƙ","ⱪ","ꝁ","ꝃ","ꝅ","ꞣ","ⓛ","l","ŀ","ĺ","ľ","ḷ","ḹ","ļ","ḽ","ḻ","ſ","ł","ƚ","ɫ","ⱡ","ꝉ","ꞁ","ꝇ","lj","ⓜ","m","ḿ","ṁ","ṃ","ɱ","ɯ","ⓝ","n","ǹ","ń","ñ","ṅ","ň","ṇ","ņ","ṋ","ṉ","ƞ","ɲ","ʼn","ꞑ","ꞥ","nj","ⓞ","o","ò","ó","ô","ồ","ố","ỗ","ổ","õ","ṍ","ȭ","ṏ","ō","ṑ","ṓ","ŏ","ȯ","ȱ","ö","ȫ","ỏ","ő","ǒ","ȍ","ȏ","ơ","ờ","ớ","ỡ","ở","ợ","ọ","ộ","ǫ","ǭ","ø","ǿ","ɔ","ꝋ","ꝍ","ɵ","ƣ","ȣ","ꝏ","ⓟ","p","ṕ","ṗ","ƥ","ᵽ","ꝑ","ꝓ","ꝕ","ⓠ","q","ɋ","ꝗ","ꝙ","ⓡ","r","ŕ","ṙ","ř","ȑ","ȓ","ṛ","ṝ","ŗ","ṟ","ɍ","ɽ","ꝛ","ꞧ","ꞃ","ⓢ","s","ß","ś","ṥ","ŝ","ṡ","š","ṧ","ṣ","ṩ","ș","ş","ȿ","ꞩ","ꞅ","ẛ","ⓣ","t","ṫ","ẗ","ť","ṭ","ț","ţ","ṱ","ṯ","ŧ","ƭ","ʈ","ⱦ","ꞇ","ꜩ","ⓤ","u","ù","ú","û","ũ","ṹ","ū","ṻ","ŭ","ü","ǜ","ǘ","ǖ","ǚ","ủ","ů","ű","ǔ","ȕ","ȗ","ư","ừ","ứ","ữ","ử","ự","ụ","ṳ","ų","ṷ","ṵ","ʉ","ⓥ","v","ṽ","ṿ","ʋ","ꝟ","ʌ","ꝡ","ⓦ","w","ẁ","ẃ","ŵ","ẇ","ẅ","ẘ","ẉ","ⱳ","ⓧ","x","ẋ","ẍ","ⓨ","y","ỳ","ý","ŷ","ỹ","ȳ","ẏ","ÿ","ỷ","ẙ","ỵ","ƴ","ɏ","ỿ","ⓩ","z","ź","ẑ","ż","ž","ẓ","ẕ","ƶ","ȥ","ɀ","ⱬ","ꝣ","Ά","Έ","Ή","Ί","Ϊ","Ό","Ύ","Ϋ","Ώ","ά","έ","ή","ί","ϊ","ΐ","ό","ύ","ϋ","ΰ","ω","ς","BaseAdapter","query","generateResultId","SelectAdapter","select","is","currentData","unselect","removeData","matches","addOptions","textContent","innerText","normalizedData","_normalizeItem","isPlainObject","defaults","matcher","ArrayAdapter","convertToOptions","elm","onlyItem","$existing","existingIds","$existingOption","existingData","newData","$newOption","replaceWith","AjaxAdapter","ajaxOptions","_applyDefaults","processResults","q","transport","success","failure","$request","ajax","then","fail","request","isArray","status","_request","isFunction","abort","url","delay","_queryTimeout","clearTimeout","Tags","tags","createTag","insertTag","t","tag","wrapper","checkChildren","checkText","_removeOldTags","page","trim","_lastTag","Tokenizer","tokenizer","dropdown","createAndSelect","$existingOptions","tokenData","separators","termChar","partParams","MinimumInputLength","$e","minimumInputLength","minimum","MaximumInputLength","maximumInputLength","maximum","MaximumSelectionLength","maximumSelectionLength","count","Dropdown","showSearch","HidePlaceholder","removePlaceholder","modifiedData","InfiniteScroll","lastParams","$loadingMore","createLoadingMore","showLoadingMore","isLoadMoreVisible","documentElement","loadingMoreOffset","loadMore","pagination","more","AttachBody","$dropdownParent","setupResultsEvents","_showDropdown","_attachPositioningHandler","_positionDropdown","_resizeDropdown","_hideDropdown","_detachPositioningHandler","$dropdownContainer","detach","scrollEvent","resizeEvent","orientationEvent","$watchers","parents","x","scrollLeft","y","ev","$window","isCurrentlyAbove","hasClass","isCurrentlyBelow","newDirection","viewport","enoughRoomAbove","enoughRoomBelow","left","$offsetParent","offsetParent","parentOffset","outerWidth","minWidth","appendTo","countResults","MinimumResultsForSearch","minimumResultsForSearch","Infinity","SelectOnClose","_handleSelectOnClose","originalSelect2Event","$highlightedResults","CloseOnSelect","_selectTriggered","ctrlKey","errorLoading","inputTooLong","overChars","inputTooShort","remainingChars","maximumSelected","noResults","searching","ResultsList","SelectionSearch","DIACRITICS","SelectData","ArrayData","AjaxData","DropdownSearch","EnglishTranslation","Defaults","reset","tokenSeparators","Query","amdBase","initSelection","InitSelection","resultsAdapter","selectOnClose","dropdownAdapter","multiple","SearchableDropdown","closeOnSelect","dropdownCssClass","dropdownCss","adaptDropdownCssClass","DropdownCSS","selectionAdapter","allowClear","containerCssClass","containerCss","adaptContainerCssClass","ContainerCSS","language","languageParts","baseLanguage","languages","languageNames","l","amdLanguageBase","ex","debug","warn","baseTranslation","customTranslation","stripDiacritics","a","original","toUpperCase","dropdownAutoWidth","templateResult","templateSelection","theme","set","camelKey","camelCase","convertedData","Options","fromElement","InputCompat","excludedData","dir","dataset","Select2","_generateId","tabindex","DataAdapter","_placeContainer","SelectionAdapter","DropdownAdapter","ResultsAdapter","_bindAdapters","_registerDomEvents","_registerDataEvents","_registerSelectionEvents","_registerDropdownEvents","_registerResultsEvents","_registerEvents","initialData","_syncAttributes","insertAfter","_resolveWidth","method","WIDTH","styleWidth","elementWidth","_syncA","_syncS","_syncSubtree","attachEvent","observer","MutationObserver","WebKitMutationObserver","MozMutationObserver","_observer","mutations","observe","attributes","childList","subtree","addEventListener","nonRelayEvents","toggleDropdown","altKey","close","open","changed","nodeName","addedNodes","removedNodes","actualTrigger","preTriggerMap","preTriggerName","preTriggerArgs","hasFocus","enable","newVal","detachEvent","disconnect","removeEventListener","thisMethods","instanceOptions","instance","$document","settings","dropdownDownwards","cushion","computeMaxHeight","$select2Results","$grandparent","resultsBoxMiscellaniaHeight","widgetBoxOffset","maximizeSelect2Height","$parent","maxHeight"],"mappings":"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A,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC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","file":"select2.min.js","sourcesContent":["/*!\n * Select2 4.0.3\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/select2/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if (typeof exports === 'object') {\n // Node/CommonJS\n factory(require('jquery'));\n } else {\n // Browser globals\n factory(jQuery);\n }\n}(function (jQuery) {\n // This is needed so we can catch the AMD loader configuration and use it\n // The inner file should be wrapped (by `banner.start.js`) in a function that\n // returns the AMD loader references.\n var S2 =\n(function () {\n // Restore the Select2 AMD loader so it can be used\n // Needed mostly in the language files, where the loader is not inserted\n if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\n var S2 = jQuery.fn.select2.amd;\n }\nvar S2;(function () { if (!S2 || !S2.requirejs) {\nif (!S2) { S2 = {}; } else { require = S2; }\n/**\n * @license almond 0.3.1 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/almond for details\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n/*jslint sloppy: true */\n/*global setTimeout: false */\n\nvar requirejs, require, define;\n(function (undef) {\n var main, req, makeMap, handlers,\n defined = {},\n waiting = {},\n config = {},\n defining = {},\n hasOwn = Object.prototype.hasOwnProperty,\n aps = [].slice,\n jsSuffixRegExp = /\\.js$/;\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @returns {String} normalized name\n */\n function normalize(name, baseName) {\n var nameParts, nameSegment, mapValue, foundMap, lastIndex,\n foundI, foundStarMap, starI, i, j, part,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = (map && map['*']) || {};\n\n //Adjust any relative paths.\n if (name && name.charAt(0) === \".\") {\n //If have a base name, try to normalize against it,\n //otherwise, assume it is a top-level require that will\n //be relative to baseUrl in the end.\n if (baseName) {\n name = name.split('/');\n lastIndex = name.length - 1;\n\n // Node .js allowance:\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n }\n\n //Lop off the last part of baseParts, so that . matches the\n //\"directory\" and not name of the baseName's module. For instance,\n //baseName of \"one/two/three\", maps to \"one/two/three.js\", but we\n //want the directory, \"one/two\" for this normalization.\n name = baseParts.slice(0, baseParts.length - 1).concat(name);\n\n //start trimDots\n for (i = 0; i < name.length; i += 1) {\n part = name[i];\n if (part === \".\") {\n name.splice(i, 1);\n i -= 1;\n } else if (part === \"..\") {\n if (i === 1 && (name[2] === '..' || name[0] === '..')) {\n //End of the line. Keep at least one non-dot\n //path segment at the front so it can be mapped\n //correctly to disk. Otherwise, there is likely\n //no path mapping for a path starting with '..'.\n //This can still fail, but catches the most reasonable\n //uses of ..\n break;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n }\n //end trimDots\n\n name = name.join(\"/\");\n } else if (name.indexOf('./') === 0) {\n // No baseName, so this is ID is resolved relative\n // to baseUrl, pull off the leading dot.\n name = name.substring(2);\n }\n }\n\n //Apply map config if available.\n if ((baseParts || starMap) && map) {\n nameParts = name.split('/');\n\n for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join(\"/\");\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = map[baseParts.slice(0, j).join('/')];\n\n //baseName segment has config, find if it has one for\n //this name.\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break;\n }\n }\n }\n }\n\n if (foundMap) {\n break;\n }\n\n //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n if (!foundStarMap && starMap && starMap[nameSegment]) {\n foundStarMap = starMap[nameSegment];\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n return name;\n }\n\n function makeRequire(relName, forceSync) {\n return function () {\n //A version of a require function that passes a moduleName\n //value for items that may need to\n //look up paths relative to the moduleName\n var args = aps.call(arguments, 0);\n\n //If first arg is not require('string'), and there is only\n //one arg, it is the array form without a callback. Insert\n //a null so that the following concat is correct.\n if (typeof args[0] !== 'string' && args.length === 1) {\n args.push(null);\n }\n return req.apply(undef, args.concat([relName, forceSync]));\n };\n }\n\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(depName) {\n return function (value) {\n defined[depName] = value;\n };\n }\n\n function callDep(name) {\n if (hasProp(waiting, name)) {\n var args = waiting[name];\n delete waiting[name];\n defining[name] = true;\n main.apply(undef, args);\n }\n\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\n throw new Error('No ' + name);\n }\n return defined[name];\n }\n\n //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n return [prefix, name];\n }\n\n /**\n * Makes a name map, normalizing the name, and using a plugin\n * for normalization if necessary. Grabs a ref to plugin\n * too, as an optimization.\n */\n makeMap = function (name, relName) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0];\n\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relName);\n plugin = callDep(prefix);\n }\n\n //Normalize according\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relName));\n } else {\n name = normalize(name, relName);\n }\n } else {\n name = normalize(name, relName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n if (prefix) {\n plugin = callDep(prefix);\n }\n }\n\n //Using ridiculous property names for space reasons\n return {\n f: prefix ? prefix + '!' + name : name, //fullName\n n: name,\n pr: prefix,\n p: plugin\n };\n };\n\n function makeConfig(name) {\n return function () {\n return (config && config.config && config.config[name]) || {};\n };\n }\n\n handlers = {\n require: function (name) {\n return makeRequire(name);\n },\n exports: function (name) {\n var e = defined[name];\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return (defined[name] = {});\n }\n },\n module: function (name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function (name, deps, callback, relName) {\n var cjsModule, depName, ret, map, i,\n args = [],\n callbackType = typeof callback,\n usingExports;\n\n //Use name if no relName\n relName = relName || name;\n\n //Call the callback to define the module, if necessary.\n if (callbackType === 'undefined' || callbackType === 'function') {\n //Pull out the defined dependencies and pass the ordered\n //values to the callback.\n //Default to [require, exports, module] if no deps\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relName);\n depName = map.f;\n\n //Fast path CommonJS standard dependencies.\n if (depName === \"require\") {\n args[i] = handlers.require(name);\n } else if (depName === \"exports\") {\n //CommonJS module spec 1.1\n args[i] = handlers.exports(name);\n usingExports = true;\n } else if (depName === \"module\") {\n //CommonJS module spec 1.1\n cjsModule = args[i] = handlers.module(name);\n } else if (hasProp(defined, depName) ||\n hasProp(waiting, depName) ||\n hasProp(defining, depName)) {\n args[i] = callDep(depName);\n } else if (map.p) {\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n args[i] = defined[depName];\n } else {\n throw new Error(name + ' missing ' + depName);\n }\n }\n\n ret = callback ? callback.apply(defined[name], args) : undefined;\n\n if (name) {\n //If setting exports via \"module\" is in play,\n //favor that over return value and exports. After that,\n //favor a non-undefined return value over exports use.\n if (cjsModule && cjsModule.exports !== undef &&\n cjsModule.exports !== defined[name]) {\n defined[name] = cjsModule.exports;\n } else if (ret !== undef || !usingExports) {\n //Use the return value from the function.\n defined[name] = ret;\n }\n }\n } else if (name) {\n //May just be an object definition for the module. Only\n //worry about defining if have a module name.\n defined[name] = callback;\n }\n };\n\n requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n if (typeof deps === \"string\") {\n if (handlers[deps]) {\n //callback in this case is really relName\n return handlers[deps](callback);\n }\n //Just return the module wanted. In this scenario, the\n //deps arg is the module name, and second arg (if passed)\n //is just the relName.\n //Normalize module name, if it contains . or ..\n return callDep(makeMap(deps, callback).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n if (config.deps) {\n req(config.deps, config.callback);\n }\n if (!callback) {\n return;\n }\n\n if (callback.splice) {\n //callback is an array, which means it is a dependency list.\n //Adjust args if there are dependencies\n deps = callback;\n callback = relName;\n relName = null;\n } else {\n deps = undef;\n }\n }\n\n //Support require(['a'])\n callback = callback || function () {};\n\n //If relName is a function, it is an errback handler,\n //so remove it.\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n }\n\n //Simulate async callback;\n if (forceSync) {\n main(undef, deps, callback, relName);\n } else {\n //Using a non-zero value because of concern for what old browsers\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n //If want a value immediately, use require('id') instead -- something\n //that works in almond on the global level, but not guaranteed and\n //unlikely to work in other AMD implementations.\n setTimeout(function () {\n main(undef, deps, callback, relName);\n }, 4);\n }\n\n return req;\n };\n\n /**\n * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n req.config = function (cfg) {\n return req(cfg);\n };\n\n /**\n * Expose module registry for debugging and tooling\n */\n requirejs._defined = defined;\n\n define = function (name, deps, callback) {\n if (typeof name !== 'string') {\n throw new Error('See almond README: incorrect module build, no module name');\n }\n\n //This module may not have dependencies\n if (!deps.splice) {\n //deps is not an array, so probably means\n //an object literal or factory function for\n //the value. Adjust args.\n callback = deps;\n deps = [];\n }\n\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n waiting[name] = [name, deps, callback];\n }\n };\n\n define.amd = {\n jQuery: true\n };\n}());\n\nS2.requirejs = requirejs;S2.require = require;S2.define = define;\n}\n}());\nS2.define(\"almond\", function(){});\n\n/* global jQuery:false, $:false */\nS2.define('jquery',[],function () {\n var _$ = jQuery || $;\n\n if (_$ == null && console && console.error) {\n console.error(\n 'Select2: An instance of jQuery or a jQuery-compatible library was not ' +\n 'found. Make sure that you are including jQuery before Select2 on your ' +\n 'web page.'\n );\n }\n\n return _$;\n});\n\nS2.define('select2/utils',[\n 'jquery'\n], function ($) {\n var Utils = {};\n\n Utils.Extend = function (ChildClass, SuperClass) {\n var __hasProp = {}.hasOwnProperty;\n\n function BaseConstructor () {\n this.constructor = ChildClass;\n }\n\n for (var key in SuperClass) {\n if (__hasProp.call(SuperClass, key)) {\n ChildClass[key] = SuperClass[key];\n }\n }\n\n BaseConstructor.prototype = SuperClass.prototype;\n ChildClass.prototype = new BaseConstructor();\n ChildClass.__super__ = SuperClass.prototype;\n\n return ChildClass;\n };\n\n function getMethods (theClass) {\n var proto = theClass.prototype;\n\n var methods = [];\n\n for (var methodName in proto) {\n var m = proto[methodName];\n\n if (typeof m !== 'function') {\n continue;\n }\n\n if (methodName === 'constructor') {\n continue;\n }\n\n methods.push(methodName);\n }\n\n return methods;\n }\n\n Utils.Decorate = function (SuperClass, DecoratorClass) {\n var decoratedMethods = getMethods(DecoratorClass);\n var superMethods = getMethods(SuperClass);\n\n function DecoratedClass () {\n var unshift = Array.prototype.unshift;\n\n var argCount = DecoratorClass.prototype.constructor.length;\n\n var calledConstructor = SuperClass.prototype.constructor;\n\n if (argCount > 0) {\n unshift.call(arguments, SuperClass.prototype.constructor);\n\n calledConstructor = DecoratorClass.prototype.constructor;\n }\n\n calledConstructor.apply(this, arguments);\n }\n\n DecoratorClass.displayName = SuperClass.displayName;\n\n function ctr () {\n this.constructor = DecoratedClass;\n }\n\n DecoratedClass.prototype = new ctr();\n\n for (var m = 0; m < superMethods.length; m++) {\n var superMethod = superMethods[m];\n\n DecoratedClass.prototype[superMethod] =\n SuperClass.prototype[superMethod];\n }\n\n var calledMethod = function (methodName) {\n // Stub out the original method if it's not decorating an actual method\n var originalMethod = function () {};\n\n if (methodName in DecoratedClass.prototype) {\n originalMethod = DecoratedClass.prototype[methodName];\n }\n\n var decoratedMethod = DecoratorClass.prototype[methodName];\n\n return function () {\n var unshift = Array.prototype.unshift;\n\n unshift.call(arguments, originalMethod);\n\n return decoratedMethod.apply(this, arguments);\n };\n };\n\n for (var d = 0; d < decoratedMethods.length; d++) {\n var decoratedMethod = decoratedMethods[d];\n\n DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\n }\n\n return DecoratedClass;\n };\n\n var Observable = function () {\n this.listeners = {};\n };\n\n Observable.prototype.on = function (event, callback) {\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.listeners[event].push(callback);\n } else {\n this.listeners[event] = [callback];\n }\n };\n\n Observable.prototype.trigger = function (event) {\n var slice = Array.prototype.slice;\n var params = slice.call(arguments, 1);\n\n this.listeners = this.listeners || {};\n\n // Params should always come in as an array\n if (params == null) {\n params = [];\n }\n\n // If there are no arguments to the event, use a temporary object\n if (params.length === 0) {\n params.push({});\n }\n\n // Set the `_type` of the first object to the event\n params[0]._type = event;\n\n if (event in this.listeners) {\n this.invoke(this.listeners[event], slice.call(arguments, 1));\n }\n\n if ('*' in this.listeners) {\n this.invoke(this.listeners['*'], arguments);\n }\n };\n\n Observable.prototype.invoke = function (listeners, params) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n listeners[i].apply(this, params);\n }\n };\n\n Utils.Observable = Observable;\n\n Utils.generateChars = function (length) {\n var chars = '';\n\n for (var i = 0; i < length; i++) {\n var randomChar = Math.floor(Math.random() * 36);\n chars += randomChar.toString(36);\n }\n\n return chars;\n };\n\n Utils.bind = function (func, context) {\n return function () {\n func.apply(context, arguments);\n };\n };\n\n Utils._convertData = function (data) {\n for (var originalKey in data) {\n var keys = originalKey.split('-');\n\n var dataLevel = data;\n\n if (keys.length === 1) {\n continue;\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k];\n\n // Lowercase the first letter\n // By default, dash-separated becomes camelCase\n key = key.substring(0, 1).toLowerCase() + key.substring(1);\n\n if (!(key in dataLevel)) {\n dataLevel[key] = {};\n }\n\n if (k == keys.length - 1) {\n dataLevel[key] = data[originalKey];\n }\n\n dataLevel = dataLevel[key];\n }\n\n delete data[originalKey];\n }\n\n return data;\n };\n\n Utils.hasScroll = function (index, el) {\n // Adapted from the function created by @ShadowScripter\n // and adapted by @BillBarry on the Stack Exchange Code Review website.\n // The original code can be found at\n // http://codereview.stackexchange.com/q/13338\n // and was designed to be used with the Sizzle selector engine.\n\n var $el = $(el);\n var overflowX = el.style.overflowX;\n var overflowY = el.style.overflowY;\n\n //Check both x and y declarations\n if (overflowX === overflowY &&\n (overflowY === 'hidden' || overflowY === 'visible')) {\n return false;\n }\n\n if (overflowX === 'scroll' || overflowY === 'scroll') {\n return true;\n }\n\n return ($el.innerHeight() < el.scrollHeight ||\n $el.innerWidth() < el.scrollWidth);\n };\n\n Utils.escapeMarkup = function (markup) {\n var replaceMap = {\n '\\\\': '\',\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': ''',\n '/': '/'\n };\n\n // Do not try to escape the markup if it's not a string\n if (typeof markup !== 'string') {\n return markup;\n }\n\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n return replaceMap[match];\n });\n };\n\n // Append an array of jQuery nodes to a given element.\n Utils.appendMany = function ($element, $nodes) {\n // jQuery 1.7.x does not support $.fn.append() with an array\n // Fall back to a jQuery object collection using $.fn.add()\n if ($.fn.jquery.substr(0, 3) === '1.7') {\n var $jqNodes = $();\n\n $.map($nodes, function (node) {\n $jqNodes = $jqNodes.add(node);\n });\n\n $nodes = $jqNodes;\n }\n\n $element.append($nodes);\n };\n\n return Utils;\n});\n\nS2.define('select2/results',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Results ($element, options, dataAdapter) {\n this.$element = $element;\n this.data = dataAdapter;\n this.options = options;\n\n Results.__super__.constructor.call(this);\n }\n\n Utils.Extend(Results, Utils.Observable);\n\n Results.prototype.render = function () {\n var $results = $(\n '<ul class=\"select2-results__options\" role=\"tree\"></ul>'\n );\n\n if (this.options.get('multiple')) {\n $results.attr('aria-multiselectable', 'true');\n }\n\n this.$results = $results;\n\n return $results;\n };\n\n Results.prototype.clear = function () {\n this.$results.empty();\n };\n\n Results.prototype.displayMessage = function (params) {\n var escapeMarkup = this.options.get('escapeMarkup');\n\n this.clear();\n this.hideLoading();\n\n var $message = $(\n '<li role=\"treeitem\" aria-live=\"assertive\"' +\n ' class=\"select2-results__option\"></li>'\n );\n\n var message = this.options.get('translations').get(params.message);\n\n $message.append(\n escapeMarkup(\n message(params.args)\n )\n );\n\n $message[0].className += ' select2-results__message';\n\n this.$results.append($message);\n };\n\n Results.prototype.hideMessages = function () {\n this.$results.find('.select2-results__message').remove();\n };\n\n Results.prototype.append = function (data) {\n this.hideLoading();\n\n var $options = [];\n\n if (data.results == null || data.results.length === 0) {\n if (this.$results.children().length === 0) {\n this.trigger('results:message', {\n message: 'noResults'\n });\n }\n\n return;\n }\n\n data.results = this.sort(data.results);\n\n for (var d = 0; d < data.results.length; d++) {\n var item = data.results[d];\n\n var $option = this.option(item);\n\n $options.push($option);\n }\n\n this.$results.append($options);\n };\n\n Results.prototype.position = function ($results, $dropdown) {\n var $resultsContainer = $dropdown.find('.select2-results');\n $resultsContainer.append($results);\n };\n\n Results.prototype.sort = function (data) {\n var sorter = this.options.get('sorter');\n\n return sorter(data);\n };\n\n Results.prototype.highlightFirstItem = function () {\n var $options = this.$results\n .find('.select2-results__option[aria-selected]');\n\n var $selected = $options.filter('[aria-selected=true]');\n\n // Check if there are any selected options\n if ($selected.length > 0) {\n // If there are selected options, highlight the first\n $selected.first().trigger('mouseenter');\n } else {\n // If there are no selected options, highlight the first option\n // in the dropdown\n $options.first().trigger('mouseenter');\n }\n\n this.ensureHighlightVisible();\n };\n\n Results.prototype.setClasses = function () {\n var self = this;\n\n this.data.current(function (selected) {\n var selectedIds = $.map(selected, function (s) {\n return s.id.toString();\n });\n\n var $options = self.$results\n .find('.select2-results__option[aria-selected]');\n\n $options.each(function () {\n var $option = $(this);\n\n var item = $.data(this, 'data');\n\n // id needs to be converted to a string when comparing\n var id = '' + item.id;\n\n if ((item.element != null && item.element.selected) ||\n (item.element == null && $.inArray(id, selectedIds) > -1)) {\n $option.attr('aria-selected', 'true');\n } else {\n $option.attr('aria-selected', 'false');\n }\n });\n\n });\n };\n\n Results.prototype.showLoading = function (params) {\n this.hideLoading();\n\n var loadingMore = this.options.get('translations').get('searching');\n\n var loading = {\n disabled: true,\n loading: true,\n text: loadingMore(params)\n };\n var $loading = this.option(loading);\n $loading.className += ' loading-results';\n\n this.$results.prepend($loading);\n };\n\n Results.prototype.hideLoading = function () {\n this.$results.find('.loading-results').remove();\n };\n\n Results.prototype.option = function (data) {\n var option = document.createElement('li');\n option.className = 'select2-results__option';\n\n var attrs = {\n 'role': 'treeitem',\n 'aria-selected': 'false'\n };\n\n if (data.disabled) {\n delete attrs['aria-selected'];\n attrs['aria-disabled'] = 'true';\n }\n\n if (data.id == null) {\n delete attrs['aria-selected'];\n }\n\n if (data._resultId != null) {\n option.id = data._resultId;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n if (data.children) {\n attrs.role = 'group';\n attrs['aria-label'] = data.text;\n delete attrs['aria-selected'];\n }\n\n for (var attr in attrs) {\n var val = attrs[attr];\n\n option.setAttribute(attr, val);\n }\n\n if (data.children) {\n var $option = $(option);\n\n var label = document.createElement('strong');\n label.className = 'select2-results__group';\n\n var $label = $(label);\n this.template(data, label);\n\n var $children = [];\n\n for (var c = 0; c < data.children.length; c++) {\n var child = data.children[c];\n\n var $child = this.option(child);\n\n $children.push($child);\n }\n\n var $childrenContainer = $('<ul></ul>', {\n 'class': 'select2-results__options select2-results__options--nested'\n });\n\n $childrenContainer.append($children);\n\n $option.append(label);\n $option.append($childrenContainer);\n } else {\n this.template(data, option);\n }\n\n $.data(option, 'data', data);\n\n return option;\n };\n\n Results.prototype.bind = function (container, $container) {\n var self = this;\n\n var id = container.id + '-results';\n\n this.$results.attr('id', id);\n\n container.on('results:all', function (params) {\n self.clear();\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n self.highlightFirstItem();\n }\n });\n\n container.on('results:append', function (params) {\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n\n container.on('query', function (params) {\n self.hideMessages();\n self.showLoading(params);\n });\n\n container.on('select', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n self.highlightFirstItem();\n });\n\n container.on('unselect', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n self.highlightFirstItem();\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expended=\"true\"\n self.$results.attr('aria-expanded', 'true');\n self.$results.attr('aria-hidden', 'false');\n\n self.setClasses();\n self.ensureHighlightVisible();\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expended=\"false\"\n self.$results.attr('aria-expanded', 'false');\n self.$results.attr('aria-hidden', 'true');\n self.$results.removeAttr('aria-activedescendant');\n });\n\n container.on('results:toggle', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n $highlighted.trigger('mouseup');\n });\n\n container.on('results:select', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var data = $highlighted.data('data');\n\n if ($highlighted.attr('aria-selected') == 'true') {\n self.trigger('close', {});\n } else {\n self.trigger('select', {\n data: data\n });\n }\n });\n\n container.on('results:previous', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n // If we are already at te top, don't move further\n if (currentIndex === 0) {\n return;\n }\n\n var nextIndex = currentIndex - 1;\n\n // If none are highlighted, highlight the first\n if ($highlighted.length === 0) {\n nextIndex = 0;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top;\n var nextTop = $next.offset().top;\n var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextTop - currentOffset < 0) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:next', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n var nextIndex = currentIndex + 1;\n\n // If we are at the last option, stay there\n if (nextIndex >= $options.length) {\n return;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top +\n self.$results.outerHeight(false);\n var nextBottom = $next.offset().top + $next.outerHeight(false);\n var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextBottom > currentOffset) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:focus', function (params) {\n params.element.addClass('select2-results__option--highlighted');\n });\n\n container.on('results:message', function (params) {\n self.displayMessage(params);\n });\n\n if ($.fn.mousewheel) {\n this.$results.on('mousewheel', function (e) {\n var top = self.$results.scrollTop();\n\n var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;\n\n var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\n var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\n\n if (isAtTop) {\n self.$results.scrollTop(0);\n\n e.preventDefault();\n e.stopPropagation();\n } else if (isAtBottom) {\n self.$results.scrollTop(\n self.$results.get(0).scrollHeight - self.$results.height()\n );\n\n e.preventDefault();\n e.stopPropagation();\n }\n });\n }\n\n this.$results.on('mouseup', '.select2-results__option[aria-selected]',\n function (evt) {\n var $this = $(this);\n\n var data = $this.data('data');\n\n if ($this.attr('aria-selected') === 'true') {\n if (self.options.get('multiple')) {\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n } else {\n self.trigger('close', {});\n }\n\n return;\n }\n\n self.trigger('select', {\n originalEvent: evt,\n data: data\n });\n });\n\n this.$results.on('mouseenter', '.select2-results__option[aria-selected]',\n function (evt) {\n var data = $(this).data('data');\n\n self.getHighlightedResults()\n .removeClass('select2-results__option--highlighted');\n\n self.trigger('results:focus', {\n data: data,\n element: $(this)\n });\n });\n };\n\n Results.prototype.getHighlightedResults = function () {\n var $highlighted = this.$results\n .find('.select2-results__option--highlighted');\n\n return $highlighted;\n };\n\n Results.prototype.destroy = function () {\n this.$results.remove();\n };\n\n Results.prototype.ensureHighlightVisible = function () {\n var $highlighted = this.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var $options = this.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n var currentOffset = this.$results.offset().top;\n var nextTop = $highlighted.offset().top;\n var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\n\n var offsetDelta = nextTop - currentOffset;\n nextOffset -= $highlighted.outerHeight(false) * 2;\n\n if (currentIndex <= 2) {\n this.$results.scrollTop(0);\n } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\n this.$results.scrollTop(nextOffset);\n }\n };\n\n Results.prototype.template = function (result, container) {\n var template = this.options.get('templateResult');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n var content = template(result, container);\n\n if (content == null) {\n container.style.display = 'none';\n } else if (typeof content === 'string') {\n container.innerHTML = escapeMarkup(content);\n } else {\n $(container).append(content);\n }\n };\n\n return Results;\n});\n\nS2.define('select2/keys',[\n\n], function () {\n var KEYS = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n };\n\n return KEYS;\n});\n\nS2.define('select2/selection/base',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function BaseSelection ($element, options) {\n this.$element = $element;\n this.options = options;\n\n BaseSelection.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseSelection, Utils.Observable);\n\n BaseSelection.prototype.render = function () {\n var $selection = $(\n '<span class=\"select2-selection\" role=\"combobox\" ' +\n ' aria-haspopup=\"true\" aria-expanded=\"false\">' +\n '</span>'\n );\n\n this._tabindex = 0;\n\n if (this.$element.data('old-tabindex') != null) {\n this._tabindex = this.$element.data('old-tabindex');\n } else if (this.$element.attr('tabindex') != null) {\n this._tabindex = this.$element.attr('tabindex');\n }\n\n $selection.attr('title', this.$element.attr('title'));\n $selection.attr('tabindex', this._tabindex);\n\n this.$selection = $selection;\n\n return $selection;\n };\n\n BaseSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n var id = container.id + '-container';\n var resultsId = container.id + '-results';\n\n this.container = container;\n\n this.$selection.on('focus', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('blur', function (evt) {\n self._handleBlur(evt);\n });\n\n this.$selection.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n if (evt.which === KEYS.SPACE) {\n evt.preventDefault();\n }\n });\n\n container.on('results:focus', function (params) {\n self.$selection.attr('aria-activedescendant', params.data._resultId);\n });\n\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expanded=\"true\"\n self.$selection.attr('aria-expanded', 'true');\n self.$selection.attr('aria-owns', resultsId);\n\n self._attachCloseHandler(container);\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expanded=\"false\"\n self.$selection.attr('aria-expanded', 'false');\n self.$selection.removeAttr('aria-activedescendant');\n self.$selection.removeAttr('aria-owns');\n\n self.$selection.focus();\n\n self._detachCloseHandler(container);\n });\n\n container.on('enable', function () {\n self.$selection.attr('tabindex', self._tabindex);\n });\n\n container.on('disable', function () {\n self.$selection.attr('tabindex', '-1');\n });\n };\n\n BaseSelection.prototype._handleBlur = function (evt) {\n var self = this;\n\n // This needs to be delayed as the active element is the body when the tab\n // key is pressed, possibly along with others.\n window.setTimeout(function () {\n // Don't trigger `blur` if the focus is still in the selection\n if (\n (document.activeElement == self.$selection[0]) ||\n ($.contains(self.$selection[0], document.activeElement))\n ) {\n return;\n }\n\n self.trigger('blur', evt);\n }, 1);\n };\n\n BaseSelection.prototype._attachCloseHandler = function (container) {\n var self = this;\n\n $(document.body).on('mousedown.select2.' + container.id, function (e) {\n var $target = $(e.target);\n\n var $select = $target.closest('.select2');\n\n var $all = $('.select2.select2-container--open');\n\n $all.each(function () {\n var $this = $(this);\n\n if (this == $select[0]) {\n return;\n }\n\n var $element = $this.data('element');\n\n $element.select2('close');\n });\n });\n };\n\n BaseSelection.prototype._detachCloseHandler = function (container) {\n $(document.body).off('mousedown.select2.' + container.id);\n };\n\n BaseSelection.prototype.position = function ($selection, $container) {\n var $selectionContainer = $container.find('.selection');\n $selectionContainer.append($selection);\n };\n\n BaseSelection.prototype.destroy = function () {\n this._detachCloseHandler(this.container);\n };\n\n BaseSelection.prototype.update = function (data) {\n throw new Error('The `update` method must be defined in child classes.');\n };\n\n return BaseSelection;\n});\n\nS2.define('select2/selection/single',[\n 'jquery',\n './base',\n '../utils',\n '../keys'\n], function ($, BaseSelection, Utils, KEYS) {\n function SingleSelection () {\n SingleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(SingleSelection, BaseSelection);\n\n SingleSelection.prototype.render = function () {\n var $selection = SingleSelection.__super__.render.call(this);\n\n $selection.addClass('select2-selection--single');\n\n $selection.html(\n '<span class=\"select2-selection__rendered\"></span>' +\n '<span class=\"select2-selection__arrow\" role=\"presentation\">' +\n '<b role=\"presentation\"></b>' +\n '</span>'\n );\n\n return $selection;\n };\n\n SingleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n SingleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n\n this.$selection.find('.select2-selection__rendered').attr('id', id);\n this.$selection.attr('aria-labelledby', id);\n\n this.$selection.on('mousedown', function (evt) {\n // Only respond to left clicks\n if (evt.which !== 1) {\n return;\n }\n\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on('focus', function (evt) {\n // User focuses on the container\n });\n\n this.$selection.on('blur', function (evt) {\n // User exits the container\n });\n\n container.on('focus', function (evt) {\n if (!container.isOpen()) {\n self.$selection.focus();\n }\n });\n\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n };\n\n SingleSelection.prototype.clear = function () {\n this.$selection.find('.select2-selection__rendered').empty();\n };\n\n SingleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data, container));\n };\n\n SingleSelection.prototype.selectionContainer = function () {\n return $('<span></span>');\n };\n\n SingleSelection.prototype.update = function (data) {\n if (data.length === 0) {\n this.clear();\n return;\n }\n\n var selection = data[0];\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n var formatted = this.display(selection, $rendered);\n\n $rendered.empty().append(formatted);\n $rendered.prop('title', selection.title || selection.text);\n };\n\n return SingleSelection;\n});\n\nS2.define('select2/selection/multiple',[\n 'jquery',\n './base',\n '../utils'\n], function ($, BaseSelection, Utils) {\n function MultipleSelection ($element, options) {\n MultipleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(MultipleSelection, BaseSelection);\n\n MultipleSelection.prototype.render = function () {\n var $selection = MultipleSelection.__super__.render.call(this);\n\n $selection.addClass('select2-selection--multiple');\n\n $selection.html(\n '<ul class=\"select2-selection__rendered\"></ul>'\n );\n\n return $selection;\n };\n\n MultipleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n MultipleSelection.__super__.bind.apply(this, arguments);\n\n this.$selection.on('click', function (evt) {\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on(\n 'click',\n '.select2-selection__choice__remove',\n function (evt) {\n // Ignore the event if it is disabled\n if (self.options.get('disabled')) {\n return;\n }\n\n var $remove = $(this);\n var $selection = $remove.parent();\n\n var data = $selection.data('data');\n\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n }\n );\n };\n\n MultipleSelection.prototype.clear = function () {\n this.$selection.find('.select2-selection__rendered').empty();\n };\n\n MultipleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data, container));\n };\n\n MultipleSelection.prototype.selectionContainer = function () {\n var $container = $(\n '<li class=\"select2-selection__choice\">' +\n '<span class=\"select2-selection__choice__remove\" role=\"presentation\">' +\n '×' +\n '</span>' +\n '</li>'\n );\n\n return $container;\n };\n\n MultipleSelection.prototype.update = function (data) {\n this.clear();\n\n if (data.length === 0) {\n return;\n }\n\n var $selections = [];\n\n for (var d = 0; d < data.length; d++) {\n var selection = data[d];\n\n var $selection = this.selectionContainer();\n var formatted = this.display(selection, $selection);\n\n $selection.append(formatted);\n $selection.prop('title', selection.title || selection.text);\n\n $selection.data('data', selection);\n\n $selections.push($selection);\n }\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n\n Utils.appendMany($rendered, $selections);\n };\n\n return MultipleSelection;\n});\n\nS2.define('select2/selection/placeholder',[\n '../utils'\n], function (Utils) {\n function Placeholder (decorated, $element, options) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options);\n }\n\n Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\n var $placeholder = this.selectionContainer();\n\n $placeholder.html(this.display(placeholder));\n $placeholder.addClass('select2-selection__placeholder')\n .removeClass('select2-selection__choice');\n\n return $placeholder;\n };\n\n Placeholder.prototype.update = function (decorated, data) {\n var singlePlaceholder = (\n data.length == 1 && data[0].id != this.placeholder.id\n );\n var multipleSelections = data.length > 1;\n\n if (multipleSelections || singlePlaceholder) {\n return decorated.call(this, data);\n }\n\n this.clear();\n\n var $placeholder = this.createPlaceholder(this.placeholder);\n\n this.$selection.find('.select2-selection__rendered').append($placeholder);\n };\n\n return Placeholder;\n});\n\nS2.define('select2/selection/allowClear',[\n 'jquery',\n '../keys'\n], function ($, KEYS) {\n function AllowClear () { }\n\n AllowClear.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n if (this.placeholder == null) {\n if (this.options.get('debug') && window.console && console.error) {\n console.error(\n 'Select2: The `allowClear` option should be used in combination ' +\n 'with the `placeholder` option.'\n );\n }\n }\n\n this.$selection.on('mousedown', '.select2-selection__clear',\n function (evt) {\n self._handleClear(evt);\n });\n\n container.on('keypress', function (evt) {\n self._handleKeyboardClear(evt, container);\n });\n };\n\n AllowClear.prototype._handleClear = function (_, evt) {\n // Ignore the event if it is disabled\n if (this.options.get('disabled')) {\n return;\n }\n\n var $clear = this.$selection.find('.select2-selection__clear');\n\n // Ignore the event if nothing has been selected\n if ($clear.length === 0) {\n return;\n }\n\n evt.stopPropagation();\n\n var data = $clear.data('data');\n\n for (var d = 0; d < data.length; d++) {\n var unselectData = {\n data: data[d]\n };\n\n // Trigger the `unselect` event, so people can prevent it from being\n // cleared.\n this.trigger('unselect', unselectData);\n\n // If the event was prevented, don't clear it out.\n if (unselectData.prevented) {\n return;\n }\n }\n\n this.$element.val(this.placeholder.id).trigger('change');\n\n this.trigger('toggle', {});\n };\n\n AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\n if (container.isOpen()) {\n return;\n }\n\n if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\n this._handleClear(evt);\n }\n };\n\n AllowClear.prototype.update = function (decorated, data) {\n decorated.call(this, data);\n\n if (this.$selection.find('.select2-selection__placeholder').length > 0 ||\n data.length === 0) {\n return;\n }\n\n var $remove = $(\n '<span class=\"select2-selection__clear\">' +\n '×' +\n '</span>'\n );\n $remove.data('data', data);\n\n this.$selection.find('.select2-selection__rendered').prepend($remove);\n };\n\n return AllowClear;\n});\n\nS2.define('select2/selection/search',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function Search (decorated, $element, options) {\n decorated.call(this, $element, options);\n }\n\n Search.prototype.render = function (decorated) {\n var $search = $(\n '<li class=\"select2-search select2-search--inline\">' +\n '<input class=\"select2-search__field\" type=\"search\" tabindex=\"-1\"' +\n ' autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\"' +\n ' spellcheck=\"false\" role=\"textbox\" aria-autocomplete=\"list\" />' +\n '</li>'\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n var $rendered = decorated.call(this);\n\n this._transferTabIndex();\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self.$search.trigger('focus');\n });\n\n container.on('close', function () {\n self.$search.val('');\n self.$search.removeAttr('aria-activedescendant');\n self.$search.trigger('focus');\n });\n\n container.on('enable', function () {\n self.$search.prop('disabled', false);\n\n self._transferTabIndex();\n });\n\n container.on('disable', function () {\n self.$search.prop('disabled', true);\n });\n\n container.on('focus', function (evt) {\n self.$search.trigger('focus');\n });\n\n container.on('results:focus', function (params) {\n self.$search.attr('aria-activedescendant', params.id);\n });\n\n this.$selection.on('focusin', '.select2-search--inline', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('focusout', '.select2-search--inline', function (evt) {\n self._handleBlur(evt);\n });\n\n this.$selection.on('keydown', '.select2-search--inline', function (evt) {\n evt.stopPropagation();\n\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n\n var key = evt.which;\n\n if (key === KEYS.BACKSPACE && self.$search.val() === '') {\n var $previousChoice = self.$searchContainer\n .prev('.select2-selection__choice');\n\n if ($previousChoice.length > 0) {\n var item = $previousChoice.data('data');\n\n self.searchRemoveChoice(item);\n\n evt.preventDefault();\n }\n }\n });\n\n // Try to detect the IE version should the `documentMode` property that\n // is stored on the document. This is only implemented in IE and is\n // slightly cleaner than doing a user agent check.\n // This property is not available in Edge, but Edge also doesn't have\n // this bug.\n var msie = document.documentMode;\n var disableInputEvents = msie && msie <= 11;\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$selection.on(\n 'input.searchcheck',\n '.select2-search--inline',\n function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents) {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n // Unbind the duplicated `keyup` event\n self.$selection.off('keyup.search');\n }\n );\n\n this.$selection.on(\n 'keyup.search input.search',\n '.select2-search--inline',\n function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents && evt.type === 'input') {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n var key = evt.which;\n\n // We can freely ignore events from modifier keys\n if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {\n return;\n }\n\n // Tabbing will be handled during the `keydown` phase\n if (key == KEYS.TAB) {\n return;\n }\n\n self.handleSearch(evt);\n }\n );\n };\n\n /**\n * This method will transfer the tabindex attribute from the rendered\n * selection to the search box. This allows for the search box to be used as\n * the primary focus instead of the selection container.\n *\n * @private\n */\n Search.prototype._transferTabIndex = function (decorated) {\n this.$search.attr('tabindex', this.$selection.attr('tabindex'));\n this.$selection.attr('tabindex', '-1');\n };\n\n Search.prototype.createPlaceholder = function (decorated, placeholder) {\n this.$search.attr('placeholder', placeholder.text);\n };\n\n Search.prototype.update = function (decorated, data) {\n var searchHadFocus = this.$search[0] == document.activeElement;\n\n this.$search.attr('placeholder', '');\n\n decorated.call(this, data);\n\n this.$selection.find('.select2-selection__rendered')\n .append(this.$searchContainer);\n\n this.resizeSearch();\n if (searchHadFocus) {\n this.$search.focus();\n }\n };\n\n Search.prototype.handleSearch = function () {\n this.resizeSearch();\n\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.searchRemoveChoice = function (decorated, item) {\n this.trigger('unselect', {\n data: item\n });\n\n this.$search.val(item.text);\n this.handleSearch();\n };\n\n Search.prototype.resizeSearch = function () {\n this.$search.css('width', '25px');\n\n var width = '';\n\n if (this.$search.attr('placeholder') !== '') {\n width = this.$selection.find('.select2-selection__rendered').innerWidth();\n } else {\n var minimumWidth = this.$search.val().length + 1;\n\n width = (minimumWidth * 0.75) + 'em';\n }\n\n this.$search.css('width', width);\n };\n\n return Search;\n});\n\nS2.define('select2/selection/eventRelay',[\n 'jquery'\n], function ($) {\n function EventRelay () { }\n\n EventRelay.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var relayEvents = [\n 'open', 'opening',\n 'close', 'closing',\n 'select', 'selecting',\n 'unselect', 'unselecting'\n ];\n\n var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting'];\n\n decorated.call(this, container, $container);\n\n container.on('*', function (name, params) {\n // Ignore events that should not be relayed\n if ($.inArray(name, relayEvents) === -1) {\n return;\n }\n\n // The parameters should always be an object\n params = params || {};\n\n // Generate the jQuery event for the Select2 event\n var evt = $.Event('select2:' + name, {\n params: params\n });\n\n self.$element.trigger(evt);\n\n // Only handle preventable events if it was one\n if ($.inArray(name, preventableEvents) === -1) {\n return;\n }\n\n params.prevented = evt.isDefaultPrevented();\n });\n };\n\n return EventRelay;\n});\n\nS2.define('select2/translation',[\n 'jquery',\n 'require'\n], function ($, require) {\n function Translation (dict) {\n this.dict = dict || {};\n }\n\n Translation.prototype.all = function () {\n return this.dict;\n };\n\n Translation.prototype.get = function (key) {\n return this.dict[key];\n };\n\n Translation.prototype.extend = function (translation) {\n this.dict = $.extend({}, translation.all(), this.dict);\n };\n\n // Static functions\n\n Translation._cache = {};\n\n Translation.loadPath = function (path) {\n if (!(path in Translation._cache)) {\n var translations = require(path);\n\n Translation._cache[path] = translations;\n }\n\n return new Translation(Translation._cache[path]);\n };\n\n return Translation;\n});\n\nS2.define('select2/diacritics',[\n\n], function () {\n var diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03C9': '\\u03C9',\n '\\u03C2': '\\u03C3'\n };\n\n return diacritics;\n});\n\nS2.define('select2/data/base',[\n '../utils'\n], function (Utils) {\n function BaseAdapter ($element, options) {\n BaseAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseAdapter, Utils.Observable);\n\n BaseAdapter.prototype.current = function (callback) {\n throw new Error('The `current` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.query = function (params, callback) {\n throw new Error('The `query` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.bind = function (container, $container) {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.destroy = function () {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.generateResultId = function (container, data) {\n var id = container.id + '-result-';\n\n id += Utils.generateChars(4);\n\n if (data.id != null) {\n id += '-' + data.id.toString();\n } else {\n id += '-' + Utils.generateChars(4);\n }\n return id;\n };\n\n return BaseAdapter;\n});\n\nS2.define('select2/data/select',[\n './base',\n '../utils',\n 'jquery'\n], function (BaseAdapter, Utils, $) {\n function SelectAdapter ($element, options) {\n this.$element = $element;\n this.options = options;\n\n SelectAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(SelectAdapter, BaseAdapter);\n\n SelectAdapter.prototype.current = function (callback) {\n var data = [];\n var self = this;\n\n this.$element.find(':selected').each(function () {\n var $option = $(this);\n\n var option = self.item($option);\n\n data.push(option);\n });\n\n callback(data);\n };\n\n SelectAdapter.prototype.select = function (data) {\n var self = this;\n\n data.selected = true;\n\n // If data.element is a DOM node, use it instead\n if ($(data.element).is('option')) {\n data.element.selected = true;\n\n this.$element.trigger('change');\n\n return;\n }\n\n if (this.$element.prop('multiple')) {\n this.current(function (currentData) {\n var val = [];\n\n data = [data];\n data.push.apply(data, currentData);\n\n for (var d = 0; d < data.length; d++) {\n var id = data[d].id;\n\n if ($.inArray(id, val) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n self.$element.trigger('change');\n });\n } else {\n var val = data.id;\n\n this.$element.val(val);\n this.$element.trigger('change');\n }\n };\n\n SelectAdapter.prototype.unselect = function (data) {\n var self = this;\n\n if (!this.$element.prop('multiple')) {\n return;\n }\n\n data.selected = false;\n\n if ($(data.element).is('option')) {\n data.element.selected = false;\n\n this.$element.trigger('change');\n\n return;\n }\n\n this.current(function (currentData) {\n var val = [];\n\n for (var d = 0; d < currentData.length; d++) {\n var id = currentData[d].id;\n\n if (id !== data.id && $.inArray(id, val) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n\n self.$element.trigger('change');\n });\n };\n\n SelectAdapter.prototype.bind = function (container, $container) {\n var self = this;\n\n this.container = container;\n\n container.on('select', function (params) {\n self.select(params.data);\n });\n\n container.on('unselect', function (params) {\n self.unselect(params.data);\n });\n };\n\n SelectAdapter.prototype.destroy = function () {\n // Remove anything added to child elements\n this.$element.find('*').each(function () {\n // Remove any custom data set by Select2\n $.removeData(this, 'data');\n });\n };\n\n SelectAdapter.prototype.query = function (params, callback) {\n var data = [];\n var self = this;\n\n var $options = this.$element.children();\n\n $options.each(function () {\n var $option = $(this);\n\n if (!$option.is('option') && !$option.is('optgroup')) {\n return;\n }\n\n var option = self.item($option);\n\n var matches = self.matches(params, option);\n\n if (matches !== null) {\n data.push(matches);\n }\n });\n\n callback({\n results: data\n });\n };\n\n SelectAdapter.prototype.addOptions = function ($options) {\n Utils.appendMany(this.$element, $options);\n };\n\n SelectAdapter.prototype.option = function (data) {\n var option;\n\n if (data.children) {\n option = document.createElement('optgroup');\n option.label = data.text;\n } else {\n option = document.createElement('option');\n\n if (option.textContent !== undefined) {\n option.textContent = data.text;\n } else {\n option.innerText = data.text;\n }\n }\n\n if (data.id) {\n option.value = data.id;\n }\n\n if (data.disabled) {\n option.disabled = true;\n }\n\n if (data.selected) {\n option.selected = true;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n var $option = $(option);\n\n var normalizedData = this._normalizeItem(data);\n normalizedData.element = option;\n\n // Override the option's data with the combined data\n $.data(option, 'data', normalizedData);\n\n return $option;\n };\n\n SelectAdapter.prototype.item = function ($option) {\n var data = {};\n\n data = $.data($option[0], 'data');\n\n if (data != null) {\n return data;\n }\n\n if ($option.is('option')) {\n data = {\n id: $option.val(),\n text: $option.text(),\n disabled: $option.prop('disabled'),\n selected: $option.prop('selected'),\n title: $option.prop('title')\n };\n } else if ($option.is('optgroup')) {\n data = {\n text: $option.prop('label'),\n children: [],\n title: $option.prop('title')\n };\n\n var $children = $option.children('option');\n var children = [];\n\n for (var c = 0; c < $children.length; c++) {\n var $child = $($children[c]);\n\n var child = this.item($child);\n\n children.push(child);\n }\n\n data.children = children;\n }\n\n data = this._normalizeItem(data);\n data.element = $option[0];\n\n $.data($option[0], 'data', data);\n\n return data;\n };\n\n SelectAdapter.prototype._normalizeItem = function (item) {\n if (!$.isPlainObject(item)) {\n item = {\n id: item,\n text: item\n };\n }\n\n item = $.extend({}, {\n text: ''\n }, item);\n\n var defaults = {\n selected: false,\n disabled: false\n };\n\n if (item.id != null) {\n item.id = item.id.toString();\n }\n\n if (item.text != null) {\n item.text = item.text.toString();\n }\n\n if (item._resultId == null && item.id && this.container != null) {\n item._resultId = this.generateResultId(this.container, item);\n }\n\n return $.extend({}, defaults, item);\n };\n\n SelectAdapter.prototype.matches = function (params, data) {\n var matcher = this.options.get('matcher');\n\n return matcher(params, data);\n };\n\n return SelectAdapter;\n});\n\nS2.define('select2/data/array',[\n './select',\n '../utils',\n 'jquery'\n], function (SelectAdapter, Utils, $) {\n function ArrayAdapter ($element, options) {\n var data = options.get('data') || [];\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n\n this.addOptions(this.convertToOptions(data));\n }\n\n Utils.Extend(ArrayAdapter, SelectAdapter);\n\n ArrayAdapter.prototype.select = function (data) {\n var $option = this.$element.find('option').filter(function (i, elm) {\n return elm.value == data.id.toString();\n });\n\n if ($option.length === 0) {\n $option = this.option(data);\n\n this.addOptions($option);\n }\n\n ArrayAdapter.__super__.select.call(this, data);\n };\n\n ArrayAdapter.prototype.convertToOptions = function (data) {\n var self = this;\n\n var $existing = this.$element.find('option');\n var existingIds = $existing.map(function () {\n return self.item($(this)).id;\n }).get();\n\n var $options = [];\n\n // Filter out all items except for the one passed in the argument\n function onlyItem (item) {\n return function () {\n return $(this).val() == item.id;\n };\n }\n\n for (var d = 0; d < data.length; d++) {\n var item = this._normalizeItem(data[d]);\n\n // Skip items which were pre-loaded, only merge the data\n if ($.inArray(item.id, existingIds) >= 0) {\n var $existingOption = $existing.filter(onlyItem(item));\n\n var existingData = this.item($existingOption);\n var newData = $.extend(true, {}, item, existingData);\n\n var $newOption = this.option(newData);\n\n $existingOption.replaceWith($newOption);\n\n continue;\n }\n\n var $option = this.option(item);\n\n if (item.children) {\n var $children = this.convertToOptions(item.children);\n\n Utils.appendMany($option, $children);\n }\n\n $options.push($option);\n }\n\n return $options;\n };\n\n return ArrayAdapter;\n});\n\nS2.define('select2/data/ajax',[\n './array',\n '../utils',\n 'jquery'\n], function (ArrayAdapter, Utils, $) {\n function AjaxAdapter ($element, options) {\n this.ajaxOptions = this._applyDefaults(options.get('ajax'));\n\n if (this.ajaxOptions.processResults != null) {\n this.processResults = this.ajaxOptions.processResults;\n }\n\n AjaxAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(AjaxAdapter, ArrayAdapter);\n\n AjaxAdapter.prototype._applyDefaults = function (options) {\n var defaults = {\n data: function (params) {\n return $.extend({}, params, {\n q: params.term\n });\n },\n transport: function (params, success, failure) {\n var $request = $.ajax(params);\n\n $request.then(success);\n $request.fail(failure);\n\n return $request;\n }\n };\n\n return $.extend({}, defaults, options, true);\n };\n\n AjaxAdapter.prototype.processResults = function (results) {\n return results;\n };\n\n AjaxAdapter.prototype.query = function (params, callback) {\n var matches = [];\n var self = this;\n\n if (this._request != null) {\n // JSONP requests cannot always be aborted\n if ($.isFunction(this._request.abort)) {\n this._request.abort();\n }\n\n this._request = null;\n }\n\n var options = $.extend({\n type: 'GET'\n }, this.ajaxOptions);\n\n if (typeof options.url === 'function') {\n options.url = options.url.call(this.$element, params);\n }\n\n if (typeof options.data === 'function') {\n options.data = options.data.call(this.$element, params);\n }\n\n function request () {\n var $request = options.transport(options, function (data) {\n var results = self.processResults(data, params);\n\n if (self.options.get('debug') && window.console && console.error) {\n // Check to make sure that the response included a `results` key.\n if (!results || !results.results || !$.isArray(results.results)) {\n console.error(\n 'Select2: The AJAX results did not return an array in the ' +\n '`results` key of the response.'\n );\n }\n }\n\n callback(results);\n }, function () {\n // Attempt to detect if a request was aborted\n // Only works if the transport exposes a status property\n if ($request.status && $request.status === '0') {\n return;\n }\n\n self.trigger('results:message', {\n message: 'errorLoading'\n });\n });\n\n self._request = $request;\n }\n\n if (this.ajaxOptions.delay && params.term != null) {\n if (this._queryTimeout) {\n window.clearTimeout(this._queryTimeout);\n }\n\n this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\n } else {\n request();\n }\n };\n\n return AjaxAdapter;\n});\n\nS2.define('select2/data/tags',[\n 'jquery'\n], function ($) {\n function Tags (decorated, $element, options) {\n var tags = options.get('tags');\n\n var createTag = options.get('createTag');\n\n if (createTag !== undefined) {\n this.createTag = createTag;\n }\n\n var insertTag = options.get('insertTag');\n\n if (insertTag !== undefined) {\n this.insertTag = insertTag;\n }\n\n decorated.call(this, $element, options);\n\n if ($.isArray(tags)) {\n for (var t = 0; t < tags.length; t++) {\n var tag = tags[t];\n var item = this._normalizeItem(tag);\n\n var $option = this.option(item);\n\n this.$element.append($option);\n }\n }\n }\n\n Tags.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n this._removeOldTags();\n\n if (params.term == null || params.page != null) {\n decorated.call(this, params, callback);\n return;\n }\n\n function wrapper (obj, child) {\n var data = obj.results;\n\n for (var i = 0; i < data.length; i++) {\n var option = data[i];\n\n var checkChildren = (\n option.children != null &&\n !wrapper({\n results: option.children\n }, true)\n );\n\n var checkText = option.text === params.term;\n\n if (checkText || checkChildren) {\n if (child) {\n return false;\n }\n\n obj.data = data;\n callback(obj);\n\n return;\n }\n }\n\n if (child) {\n return true;\n }\n\n var tag = self.createTag(params);\n\n if (tag != null) {\n var $option = self.option(tag);\n $option.attr('data-select2-tag', true);\n\n self.addOptions([$option]);\n\n self.insertTag(data, tag);\n }\n\n obj.results = data;\n\n callback(obj);\n }\n\n decorated.call(this, params, wrapper);\n };\n\n Tags.prototype.createTag = function (decorated, params) {\n var term = $.trim(params.term);\n\n if (term === '') {\n return null;\n }\n\n return {\n id: term,\n text: term\n };\n };\n\n Tags.prototype.insertTag = function (_, data, tag) {\n data.unshift(tag);\n };\n\n Tags.prototype._removeOldTags = function (_) {\n var tag = this._lastTag;\n\n var $options = this.$element.find('option[data-select2-tag]');\n\n $options.each(function () {\n if (this.selected) {\n return;\n }\n\n $(this).remove();\n });\n };\n\n return Tags;\n});\n\nS2.define('select2/data/tokenizer',[\n 'jquery'\n], function ($) {\n function Tokenizer (decorated, $element, options) {\n var tokenizer = options.get('tokenizer');\n\n if (tokenizer !== undefined) {\n this.tokenizer = tokenizer;\n }\n\n decorated.call(this, $element, options);\n }\n\n Tokenizer.prototype.bind = function (decorated, container, $container) {\n decorated.call(this, container, $container);\n\n this.$search = container.dropdown.$search || container.selection.$search ||\n $container.find('.select2-search__field');\n };\n\n Tokenizer.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n function createAndSelect (data) {\n // Normalize the data object so we can use it for checks\n var item = self._normalizeItem(data);\n\n // Check if the data object already exists as a tag\n // Select it if it doesn't\n var $existingOptions = self.$element.find('option').filter(function () {\n return $(this).val() === item.id;\n });\n\n // If an existing option wasn't found for it, create the option\n if (!$existingOptions.length) {\n var $option = self.option(item);\n $option.attr('data-select2-tag', true);\n\n self._removeOldTags();\n self.addOptions([$option]);\n }\n\n // Select the item, now that we know there is an option for it\n select(item);\n }\n\n function select (data) {\n self.trigger('select', {\n data: data\n });\n }\n\n params.term = params.term || '';\n\n var tokenData = this.tokenizer(params, this.options, createAndSelect);\n\n if (tokenData.term !== params.term) {\n // Replace the search term if we have the search box\n if (this.$search.length) {\n this.$search.val(tokenData.term);\n this.$search.focus();\n }\n\n params.term = tokenData.term;\n }\n\n decorated.call(this, params, callback);\n };\n\n Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\n var separators = options.get('tokenSeparators') || [];\n var term = params.term;\n var i = 0;\n\n var createTag = this.createTag || function (params) {\n return {\n id: params.term,\n text: params.term\n };\n };\n\n while (i < term.length) {\n var termChar = term[i];\n\n if ($.inArray(termChar, separators) === -1) {\n i++;\n\n continue;\n }\n\n var part = term.substr(0, i);\n var partParams = $.extend({}, params, {\n term: part\n });\n\n var data = createTag(partParams);\n\n if (data == null) {\n i++;\n continue;\n }\n\n callback(data);\n\n // Reset the term to not include the tokenized portion\n term = term.substr(i + 1) || '';\n i = 0;\n }\n\n return {\n term: term\n };\n };\n\n return Tokenizer;\n});\n\nS2.define('select2/data/minimumInputLength',[\n\n], function () {\n function MinimumInputLength (decorated, $e, options) {\n this.minimumInputLength = options.get('minimumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MinimumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (params.term.length < this.minimumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooShort',\n args: {\n minimum: this.minimumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MinimumInputLength;\n});\n\nS2.define('select2/data/maximumInputLength',[\n\n], function () {\n function MaximumInputLength (decorated, $e, options) {\n this.maximumInputLength = options.get('maximumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (this.maximumInputLength > 0 &&\n params.term.length > this.maximumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooLong',\n args: {\n maximum: this.maximumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MaximumInputLength;\n});\n\nS2.define('select2/data/maximumSelectionLength',[\n\n], function (){\n function MaximumSelectionLength (decorated, $e, options) {\n this.maximumSelectionLength = options.get('maximumSelectionLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumSelectionLength.prototype.query =\n function (decorated, params, callback) {\n var self = this;\n\n this.current(function (currentData) {\n var count = currentData != null ? currentData.length : 0;\n if (self.maximumSelectionLength > 0 &&\n count >= self.maximumSelectionLength) {\n self.trigger('results:message', {\n message: 'maximumSelected',\n args: {\n maximum: self.maximumSelectionLength\n }\n });\n return;\n }\n decorated.call(self, params, callback);\n });\n };\n\n return MaximumSelectionLength;\n});\n\nS2.define('select2/dropdown',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Dropdown ($element, options) {\n this.$element = $element;\n this.options = options;\n\n Dropdown.__super__.constructor.call(this);\n }\n\n Utils.Extend(Dropdown, Utils.Observable);\n\n Dropdown.prototype.render = function () {\n var $dropdown = $(\n '<span class=\"select2-dropdown\">' +\n '<span class=\"select2-results\"></span>' +\n '</span>'\n );\n\n $dropdown.attr('dir', this.options.get('dir'));\n\n this.$dropdown = $dropdown;\n\n return $dropdown;\n };\n\n Dropdown.prototype.bind = function () {\n // Should be implemented in subclasses\n };\n\n Dropdown.prototype.position = function ($dropdown, $container) {\n // Should be implmented in subclasses\n };\n\n Dropdown.prototype.destroy = function () {\n // Remove the dropdown from the DOM\n this.$dropdown.remove();\n };\n\n return Dropdown;\n});\n\nS2.define('select2/dropdown/search',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function Search () { }\n\n Search.prototype.render = function (decorated) {\n var $rendered = decorated.call(this);\n\n var $search = $(\n '<span class=\"select2-search select2-search--dropdown\">' +\n '<input class=\"select2-search__field\" type=\"search\" tabindex=\"-1\"' +\n ' autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\"' +\n ' spellcheck=\"false\" role=\"textbox\" />' +\n '</span>'\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n $rendered.prepend($search);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n this.$search.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n });\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$search.on('input', function (evt) {\n // Unbind the duplicated `keyup` event\n $(this).off('keyup');\n });\n\n this.$search.on('keyup input', function (evt) {\n self.handleSearch(evt);\n });\n\n container.on('open', function () {\n self.$search.attr('tabindex', 0);\n\n self.$search.focus();\n\n window.setTimeout(function () {\n self.$search.focus();\n }, 0);\n });\n\n container.on('close', function () {\n self.$search.attr('tabindex', -1);\n\n self.$search.val('');\n });\n\n container.on('focus', function () {\n if (container.isOpen()) {\n self.$search.focus();\n }\n });\n\n container.on('results:all', function (params) {\n if (params.query.term == null || params.query.term === '') {\n var showSearch = self.showSearch(params);\n\n if (showSearch) {\n self.$searchContainer.removeClass('select2-search--hide');\n } else {\n self.$searchContainer.addClass('select2-search--hide');\n }\n }\n });\n };\n\n Search.prototype.handleSearch = function (evt) {\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.showSearch = function (_, params) {\n return true;\n };\n\n return Search;\n});\n\nS2.define('select2/dropdown/hidePlaceholder',[\n\n], function () {\n function HidePlaceholder (decorated, $element, options, dataAdapter) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n HidePlaceholder.prototype.append = function (decorated, data) {\n data.results = this.removePlaceholder(data.results);\n\n decorated.call(this, data);\n };\n\n HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n HidePlaceholder.prototype.removePlaceholder = function (_, data) {\n var modifiedData = data.slice(0);\n\n for (var d = data.length - 1; d >= 0; d--) {\n var item = data[d];\n\n if (this.placeholder.id === item.id) {\n modifiedData.splice(d, 1);\n }\n }\n\n return modifiedData;\n };\n\n return HidePlaceholder;\n});\n\nS2.define('select2/dropdown/infiniteScroll',[\n 'jquery'\n], function ($) {\n function InfiniteScroll (decorated, $element, options, dataAdapter) {\n this.lastParams = {};\n\n decorated.call(this, $element, options, dataAdapter);\n\n this.$loadingMore = this.createLoadingMore();\n this.loading = false;\n }\n\n InfiniteScroll.prototype.append = function (decorated, data) {\n this.$loadingMore.remove();\n this.loading = false;\n\n decorated.call(this, data);\n\n if (this.showLoadingMore(data)) {\n this.$results.append(this.$loadingMore);\n }\n };\n\n InfiniteScroll.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('query', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n container.on('query:append', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n this.$results.on('scroll', function () {\n var isLoadMoreVisible = $.contains(\n document.documentElement,\n self.$loadingMore[0]\n );\n\n if (self.loading || !isLoadMoreVisible) {\n return;\n }\n\n var currentOffset = self.$results.offset().top +\n self.$results.outerHeight(false);\n var loadingMoreOffset = self.$loadingMore.offset().top +\n self.$loadingMore.outerHeight(false);\n\n if (currentOffset + 50 >= loadingMoreOffset) {\n self.loadMore();\n }\n });\n };\n\n InfiniteScroll.prototype.loadMore = function () {\n this.loading = true;\n\n var params = $.extend({}, {page: 1}, this.lastParams);\n\n params.page++;\n\n this.trigger('query:append', params);\n };\n\n InfiniteScroll.prototype.showLoadingMore = function (_, data) {\n return data.pagination && data.pagination.more;\n };\n\n InfiniteScroll.prototype.createLoadingMore = function () {\n var $option = $(\n '<li ' +\n 'class=\"select2-results__option select2-results__option--load-more\"' +\n 'role=\"treeitem\" aria-disabled=\"true\"></li>'\n );\n\n var message = this.options.get('translations').get('loadingMore');\n\n $option.html(message(this.lastParams));\n\n return $option;\n };\n\n return InfiniteScroll;\n});\n\nS2.define('select2/dropdown/attachBody',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function AttachBody (decorated, $element, options) {\n this.$dropdownParent = options.get('dropdownParent') || $(document.body);\n\n decorated.call(this, $element, options);\n }\n\n AttachBody.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n var setupResultsEvents = false;\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self._showDropdown();\n self._attachPositioningHandler(container);\n\n if (!setupResultsEvents) {\n setupResultsEvents = true;\n\n container.on('results:all', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('results:append', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n }\n });\n\n container.on('close', function () {\n self._hideDropdown();\n self._detachPositioningHandler(container);\n });\n\n this.$dropdownContainer.on('mousedown', function (evt) {\n evt.stopPropagation();\n });\n };\n\n AttachBody.prototype.destroy = function (decorated) {\n decorated.call(this);\n\n this.$dropdownContainer.remove();\n };\n\n AttachBody.prototype.position = function (decorated, $dropdown, $container) {\n // Clone all of the container classes\n $dropdown.attr('class', $container.attr('class'));\n\n $dropdown.removeClass('select2');\n $dropdown.addClass('select2-container--open');\n\n $dropdown.css({\n position: 'absolute',\n top: -999999\n });\n\n this.$container = $container;\n };\n\n AttachBody.prototype.render = function (decorated) {\n var $container = $('<span></span>');\n\n var $dropdown = decorated.call(this);\n $container.append($dropdown);\n\n this.$dropdownContainer = $container;\n\n return $container;\n };\n\n AttachBody.prototype._hideDropdown = function (decorated) {\n this.$dropdownContainer.detach();\n };\n\n AttachBody.prototype._attachPositioningHandler =\n function (decorated, container) {\n var self = this;\n\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.each(function () {\n $(this).data('select2-scroll-position', {\n x: $(this).scrollLeft(),\n y: $(this).scrollTop()\n });\n });\n\n $watchers.on(scrollEvent, function (ev) {\n var position = $(this).data('select2-scroll-position');\n $(this).scrollTop(position.y);\n });\n\n $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,\n function (e) {\n self._positionDropdown();\n self._resizeDropdown();\n });\n };\n\n AttachBody.prototype._detachPositioningHandler =\n function (decorated, container) {\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.off(scrollEvent);\n\n $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\n };\n\n AttachBody.prototype._positionDropdown = function () {\n var $window = $(window);\n\n var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');\n var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');\n\n var newDirection = null;\n\n var offset = this.$container.offset();\n\n offset.bottom = offset.top + this.$container.outerHeight(false);\n\n var container = {\n height: this.$container.outerHeight(false)\n };\n\n container.top = offset.top;\n container.bottom = offset.top + container.height;\n\n var dropdown = {\n height: this.$dropdown.outerHeight(false)\n };\n\n var viewport = {\n top: $window.scrollTop(),\n bottom: $window.scrollTop() + $window.height()\n };\n\n var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);\n var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);\n\n var css = {\n left: offset.left,\n top: container.bottom\n };\n\n // Determine what the parent element is to use for calciulating the offset\n var $offsetParent = this.$dropdownParent;\n\n // For statically positoned elements, we need to get the element\n // that is determining the offset\n if ($offsetParent.css('position') === 'static') {\n $offsetParent = $offsetParent.offsetParent();\n }\n\n var parentOffset = $offsetParent.offset();\n\n css.top -= parentOffset.top;\n css.left -= parentOffset.left;\n\n if (!isCurrentlyAbove && !isCurrentlyBelow) {\n newDirection = 'below';\n }\n\n if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\n newDirection = 'above';\n } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\n newDirection = 'below';\n }\n\n if (newDirection == 'above' ||\n (isCurrentlyAbove && newDirection !== 'below')) {\n css.top = container.top - parentOffset.top - dropdown.height;\n }\n\n if (newDirection != null) {\n this.$dropdown\n .removeClass('select2-dropdown--below select2-dropdown--above')\n .addClass('select2-dropdown--' + newDirection);\n this.$container\n .removeClass('select2-container--below select2-container--above')\n .addClass('select2-container--' + newDirection);\n }\n\n this.$dropdownContainer.css(css);\n };\n\n AttachBody.prototype._resizeDropdown = function () {\n var css = {\n width: this.$container.outerWidth(false) + 'px'\n };\n\n if (this.options.get('dropdownAutoWidth')) {\n css.minWidth = css.width;\n css.position = 'relative';\n css.width = 'auto';\n }\n\n this.$dropdown.css(css);\n };\n\n AttachBody.prototype._showDropdown = function (decorated) {\n this.$dropdownContainer.appendTo(this.$dropdownParent);\n\n this._positionDropdown();\n this._resizeDropdown();\n };\n\n return AttachBody;\n});\n\nS2.define('select2/dropdown/minimumResultsForSearch',[\n\n], function () {\n function countResults (data) {\n var count = 0;\n\n for (var d = 0; d < data.length; d++) {\n var item = data[d];\n\n if (item.children) {\n count += countResults(item.children);\n } else {\n count++;\n }\n }\n\n return count;\n }\n\n function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {\n this.minimumResultsForSearch = options.get('minimumResultsForSearch');\n\n if (this.minimumResultsForSearch < 0) {\n this.minimumResultsForSearch = Infinity;\n }\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\n if (countResults(params.data.results) < this.minimumResultsForSearch) {\n return false;\n }\n\n return decorated.call(this, params);\n };\n\n return MinimumResultsForSearch;\n});\n\nS2.define('select2/dropdown/selectOnClose',[\n\n], function () {\n function SelectOnClose () { }\n\n SelectOnClose.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('close', function (params) {\n self._handleSelectOnClose(params);\n });\n };\n\n SelectOnClose.prototype._handleSelectOnClose = function (_, params) {\n if (params && params.originalSelect2Event != null) {\n var event = params.originalSelect2Event;\n\n // Don't select an item if the close event was triggered from a select or\n // unselect event\n if (event._type === 'select' || event._type === 'unselect') {\n return;\n }\n }\n\n var $highlightedResults = this.getHighlightedResults();\n\n // Only select highlighted results\n if ($highlightedResults.length < 1) {\n return;\n }\n\n var data = $highlightedResults.data('data');\n\n // Don't re-select already selected resulte\n if (\n (data.element != null && data.element.selected) ||\n (data.element == null && data.selected)\n ) {\n return;\n }\n\n this.trigger('select', {\n data: data\n });\n };\n\n return SelectOnClose;\n});\n\nS2.define('select2/dropdown/closeOnSelect',[\n\n], function () {\n function CloseOnSelect () { }\n\n CloseOnSelect.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('select', function (evt) {\n self._selectTriggered(evt);\n });\n\n container.on('unselect', function (evt) {\n self._selectTriggered(evt);\n });\n };\n\n CloseOnSelect.prototype._selectTriggered = function (_, evt) {\n var originalEvent = evt.originalEvent;\n\n // Don't close if the control key is being held\n if (originalEvent && originalEvent.ctrlKey) {\n return;\n }\n\n this.trigger('close', {\n originalEvent: originalEvent,\n originalSelect2Event: evt\n });\n };\n\n return CloseOnSelect;\n});\n\nS2.define('select2/i18n/en',[],function () {\n // English\n return {\n errorLoading: function () {\n return 'The results could not be loaded.';\n },\n inputTooLong: function (args) {\n var overChars = args.input.length - args.maximum;\n\n var message = 'Please delete ' + overChars + ' character';\n\n if (overChars != 1) {\n message += 's';\n }\n\n return message;\n },\n inputTooShort: function (args) {\n var remainingChars = args.minimum - args.input.length;\n\n var message = 'Please enter ' + remainingChars + ' or more characters';\n\n return message;\n },\n loadingMore: function () {\n return 'Loading more results…';\n },\n maximumSelected: function (args) {\n var message = 'You can only select ' + args.maximum + ' item';\n\n if (args.maximum != 1) {\n message += 's';\n }\n\n return message;\n },\n noResults: function () {\n return 'No results found';\n },\n searching: function () {\n return 'Searching…';\n }\n };\n});\n\nS2.define('select2/defaults',[\n 'jquery',\n 'require',\n\n './results',\n\n './selection/single',\n './selection/multiple',\n './selection/placeholder',\n './selection/allowClear',\n './selection/search',\n './selection/eventRelay',\n\n './utils',\n './translation',\n './diacritics',\n\n './data/select',\n './data/array',\n './data/ajax',\n './data/tags',\n './data/tokenizer',\n './data/minimumInputLength',\n './data/maximumInputLength',\n './data/maximumSelectionLength',\n\n './dropdown',\n './dropdown/search',\n './dropdown/hidePlaceholder',\n './dropdown/infiniteScroll',\n './dropdown/attachBody',\n './dropdown/minimumResultsForSearch',\n './dropdown/selectOnClose',\n './dropdown/closeOnSelect',\n\n './i18n/en'\n], function ($, require,\n\n ResultsList,\n\n SingleSelection, MultipleSelection, Placeholder, AllowClear,\n SelectionSearch, EventRelay,\n\n Utils, Translation, DIACRITICS,\n\n SelectData, ArrayData, AjaxData, Tags, Tokenizer,\n MinimumInputLength, MaximumInputLength, MaximumSelectionLength,\n\n Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,\n AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,\n\n EnglishTranslation) {\n function Defaults () {\n this.reset();\n }\n\n Defaults.prototype.apply = function (options) {\n options = $.extend(true, {}, this.defaults, options);\n\n if (options.dataAdapter == null) {\n if (options.ajax != null) {\n options.dataAdapter = AjaxData;\n } else if (options.data != null) {\n options.dataAdapter = ArrayData;\n } else {\n options.dataAdapter = SelectData;\n }\n\n if (options.minimumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MinimumInputLength\n );\n }\n\n if (options.maximumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumInputLength\n );\n }\n\n if (options.maximumSelectionLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumSelectionLength\n );\n }\n\n if (options.tags) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\n }\n\n if (options.tokenSeparators != null || options.tokenizer != null) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Tokenizer\n );\n }\n\n if (options.query != null) {\n var Query = require(options.amdBase + 'compat/query');\n\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Query\n );\n }\n\n if (options.initSelection != null) {\n var InitSelection = require(options.amdBase + 'compat/initSelection');\n\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n InitSelection\n );\n }\n }\n\n if (options.resultsAdapter == null) {\n options.resultsAdapter = ResultsList;\n\n if (options.ajax != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n InfiniteScroll\n );\n }\n\n if (options.placeholder != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n HidePlaceholder\n );\n }\n\n if (options.selectOnClose) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n SelectOnClose\n );\n }\n }\n\n if (options.dropdownAdapter == null) {\n if (options.multiple) {\n options.dropdownAdapter = Dropdown;\n } else {\n var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\n\n options.dropdownAdapter = SearchableDropdown;\n }\n\n if (options.minimumResultsForSearch !== 0) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n MinimumResultsForSearch\n );\n }\n\n if (options.closeOnSelect) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n CloseOnSelect\n );\n }\n\n if (\n options.dropdownCssClass != null ||\n options.dropdownCss != null ||\n options.adaptDropdownCssClass != null\n ) {\n var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n DropdownCSS\n );\n }\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n AttachBody\n );\n }\n\n if (options.selectionAdapter == null) {\n if (options.multiple) {\n options.selectionAdapter = MultipleSelection;\n } else {\n options.selectionAdapter = SingleSelection;\n }\n\n // Add the placeholder mixin if a placeholder was specified\n if (options.placeholder != null) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n Placeholder\n );\n }\n\n if (options.allowClear) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n AllowClear\n );\n }\n\n if (options.multiple) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n SelectionSearch\n );\n }\n\n if (\n options.containerCssClass != null ||\n options.containerCss != null ||\n options.adaptContainerCssClass != null\n ) {\n var ContainerCSS = require(options.amdBase + 'compat/containerCss');\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n ContainerCSS\n );\n }\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n EventRelay\n );\n }\n\n if (typeof options.language === 'string') {\n // Check if the language is specified with a region\n if (options.language.indexOf('-') > 0) {\n // Extract the region information if it is included\n var languageParts = options.language.split('-');\n var baseLanguage = languageParts[0];\n\n options.language = [options.language, baseLanguage];\n } else {\n options.language = [options.language];\n }\n }\n\n if ($.isArray(options.language)) {\n var languages = new Translation();\n options.language.push('en');\n\n var languageNames = options.language;\n\n for (var l = 0; l < languageNames.length; l++) {\n var name = languageNames[l];\n var language = {};\n\n try {\n // Try to load it with the original name\n language = Translation.loadPath(name);\n } catch (e) {\n try {\n // If we couldn't load it, check if it wasn't the full path\n name = this.defaults.amdLanguageBase + name;\n language = Translation.loadPath(name);\n } catch (ex) {\n // The translation could not be loaded at all. Sometimes this is\n // because of a configuration problem, other times this can be\n // because of how Select2 helps load all possible translation files.\n if (options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The language file for \"' + name + '\" could not be ' +\n 'automatically loaded. A fallback will be used instead.'\n );\n }\n\n continue;\n }\n }\n\n languages.extend(language);\n }\n\n options.translations = languages;\n } else {\n var baseTranslation = Translation.loadPath(\n this.defaults.amdLanguageBase + 'en'\n );\n var customTranslation = new Translation(options.language);\n\n customTranslation.extend(baseTranslation);\n\n options.translations = customTranslation;\n }\n\n return options;\n };\n\n Defaults.prototype.reset = function () {\n function stripDiacritics (text) {\n // Used 'uni range + named function' from http://jsperf.com/diacritics/18\n function match(a) {\n return DIACRITICS[a] || a;\n }\n\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n }\n\n function matcher (params, data) {\n // Always return the object if there is nothing to compare\n if ($.trim(params.term) === '') {\n return data;\n }\n\n // Do a recursive check for options with children\n if (data.children && data.children.length > 0) {\n // Clone the data object if there are children\n // This is required as we modify the object to remove any non-matches\n var match = $.extend(true, {}, data);\n\n // Check each child of the option\n for (var c = data.children.length - 1; c >= 0; c--) {\n var child = data.children[c];\n\n var matches = matcher(params, child);\n\n // If there wasn't a match, remove the object in the array\n if (matches == null) {\n match.children.splice(c, 1);\n }\n }\n\n // If any children matched, return the new object\n if (match.children.length > 0) {\n return match;\n }\n\n // If there were no matching children, check just the plain object\n return matcher(params, match);\n }\n\n var original = stripDiacritics(data.text).toUpperCase();\n var term = stripDiacritics(params.term).toUpperCase();\n\n // Check if the text contains the term\n if (original.indexOf(term) > -1) {\n return data;\n }\n\n // If it doesn't contain the term, don't return anything\n return null;\n }\n\n this.defaults = {\n amdBase: './',\n amdLanguageBase: './i18n/',\n closeOnSelect: true,\n debug: false,\n dropdownAutoWidth: false,\n escapeMarkup: Utils.escapeMarkup,\n language: EnglishTranslation,\n matcher: matcher,\n minimumInputLength: 0,\n maximumInputLength: 0,\n maximumSelectionLength: 0,\n minimumResultsForSearch: 0,\n selectOnClose: false,\n sorter: function (data) {\n return data;\n },\n templateResult: function (result) {\n return result.text;\n },\n templateSelection: function (selection) {\n return selection.text;\n },\n theme: 'default',\n width: 'resolve'\n };\n };\n\n Defaults.prototype.set = function (key, value) {\n var camelKey = $.camelCase(key);\n\n var data = {};\n data[camelKey] = value;\n\n var convertedData = Utils._convertData(data);\n\n $.extend(this.defaults, convertedData);\n };\n\n var defaults = new Defaults();\n\n return defaults;\n});\n\nS2.define('select2/options',[\n 'require',\n 'jquery',\n './defaults',\n './utils'\n], function (require, $, Defaults, Utils) {\n function Options (options, $element) {\n this.options = options;\n\n if ($element != null) {\n this.fromElement($element);\n }\n\n this.options = Defaults.apply(this.options);\n\n if ($element && $element.is('input')) {\n var InputCompat = require(this.get('amdBase') + 'compat/inputData');\n\n this.options.dataAdapter = Utils.Decorate(\n this.options.dataAdapter,\n InputCompat\n );\n }\n }\n\n Options.prototype.fromElement = function ($e) {\n var excludedData = ['select2'];\n\n if (this.options.multiple == null) {\n this.options.multiple = $e.prop('multiple');\n }\n\n if (this.options.disabled == null) {\n this.options.disabled = $e.prop('disabled');\n }\n\n if (this.options.language == null) {\n if ($e.prop('lang')) {\n this.options.language = $e.prop('lang').toLowerCase();\n } else if ($e.closest('[lang]').prop('lang')) {\n this.options.language = $e.closest('[lang]').prop('lang');\n }\n }\n\n if (this.options.dir == null) {\n if ($e.prop('dir')) {\n this.options.dir = $e.prop('dir');\n } else if ($e.closest('[dir]').prop('dir')) {\n this.options.dir = $e.closest('[dir]').prop('dir');\n } else {\n this.options.dir = 'ltr';\n }\n }\n\n $e.prop('disabled', this.options.disabled);\n $e.prop('multiple', this.options.multiple);\n\n if ($e.data('select2Tags')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-select2-tags` attribute has been changed to ' +\n 'use the `data-data` and `data-tags=\"true\"` attributes and will be ' +\n 'removed in future versions of Select2.'\n );\n }\n\n $e.data('data', $e.data('select2Tags'));\n $e.data('tags', true);\n }\n\n if ($e.data('ajaxUrl')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-ajax-url` attribute has been changed to ' +\n '`data-ajax--url` and support for the old attribute will be removed' +\n ' in future versions of Select2.'\n );\n }\n\n $e.attr('ajax--url', $e.data('ajaxUrl'));\n $e.data('ajax--url', $e.data('ajaxUrl'));\n }\n\n var dataset = {};\n\n // Prefer the element's `dataset` attribute if it exists\n // jQuery 1.x does not correctly handle data attributes with multiple dashes\n if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\n dataset = $.extend(true, {}, $e[0].dataset, $e.data());\n } else {\n dataset = $e.data();\n }\n\n var data = $.extend(true, {}, dataset);\n\n data = Utils._convertData(data);\n\n for (var key in data) {\n if ($.inArray(key, excludedData) > -1) {\n continue;\n }\n\n if ($.isPlainObject(this.options[key])) {\n $.extend(this.options[key], data[key]);\n } else {\n this.options[key] = data[key];\n }\n }\n\n return this;\n };\n\n Options.prototype.get = function (key) {\n return this.options[key];\n };\n\n Options.prototype.set = function (key, val) {\n this.options[key] = val;\n };\n\n return Options;\n});\n\nS2.define('select2/core',[\n 'jquery',\n './options',\n './utils',\n './keys'\n], function ($, Options, Utils, KEYS) {\n var Select2 = function ($element, options) {\n if ($element.data('select2') != null) {\n $element.data('select2').destroy();\n }\n\n this.$element = $element;\n\n this.id = this._generateId($element);\n\n options = options || {};\n\n this.options = new Options(options, $element);\n\n Select2.__super__.constructor.call(this);\n\n // Set up the tabindex\n\n var tabindex = $element.attr('tabindex') || 0;\n $element.data('old-tabindex', tabindex);\n $element.attr('tabindex', '-1');\n\n // Set up containers and adapters\n\n var DataAdapter = this.options.get('dataAdapter');\n this.dataAdapter = new DataAdapter($element, this.options);\n\n var $container = this.render();\n\n this._placeContainer($container);\n\n var SelectionAdapter = this.options.get('selectionAdapter');\n this.selection = new SelectionAdapter($element, this.options);\n this.$selection = this.selection.render();\n\n this.selection.position(this.$selection, $container);\n\n var DropdownAdapter = this.options.get('dropdownAdapter');\n this.dropdown = new DropdownAdapter($element, this.options);\n this.$dropdown = this.dropdown.render();\n\n this.dropdown.position(this.$dropdown, $container);\n\n var ResultsAdapter = this.options.get('resultsAdapter');\n this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\n this.$results = this.results.render();\n\n this.results.position(this.$results, this.$dropdown);\n\n // Bind events\n\n var self = this;\n\n // Bind the container to all of the adapters\n this._bindAdapters();\n\n // Register any DOM event handlers\n this._registerDomEvents();\n\n // Register any internal event handlers\n this._registerDataEvents();\n this._registerSelectionEvents();\n this._registerDropdownEvents();\n this._registerResultsEvents();\n this._registerEvents();\n\n // Set the initial state\n this.dataAdapter.current(function (initialData) {\n self.trigger('selection:update', {\n data: initialData\n });\n });\n\n // Hide the original select\n $element.addClass('select2-hidden-accessible');\n $element.attr('aria-hidden', 'true');\n\n // Synchronize any monitored attributes\n this._syncAttributes();\n\n $element.data('select2', this);\n };\n\n Utils.Extend(Select2, Utils.Observable);\n\n Select2.prototype._generateId = function ($element) {\n var id = '';\n\n if ($element.attr('id') != null) {\n id = $element.attr('id');\n } else if ($element.attr('name') != null) {\n id = $element.attr('name') + '-' + Utils.generateChars(2);\n } else {\n id = Utils.generateChars(4);\n }\n\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = 'select2-' + id;\n\n return id;\n };\n\n Select2.prototype._placeContainer = function ($container) {\n $container.insertAfter(this.$element);\n\n var width = this._resolveWidth(this.$element, this.options.get('width'));\n\n if (width != null) {\n $container.css('width', width);\n }\n };\n\n Select2.prototype._resolveWidth = function ($element, method) {\n var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\n\n if (method == 'resolve') {\n var styleWidth = this._resolveWidth($element, 'style');\n\n if (styleWidth != null) {\n return styleWidth;\n }\n\n return this._resolveWidth($element, 'element');\n }\n\n if (method == 'element') {\n var elementWidth = $element.outerWidth(false);\n\n if (elementWidth <= 0) {\n return 'auto';\n }\n\n return elementWidth + 'px';\n }\n\n if (method == 'style') {\n var style = $element.attr('style');\n\n if (typeof(style) !== 'string') {\n return null;\n }\n\n var attrs = style.split(';');\n\n for (var i = 0, l = attrs.length; i < l; i = i + 1) {\n var attr = attrs[i].replace(/\\s/g, '');\n var matches = attr.match(WIDTH);\n\n if (matches !== null && matches.length >= 1) {\n return matches[1];\n }\n }\n\n return null;\n }\n\n return method;\n };\n\n Select2.prototype._bindAdapters = function () {\n this.dataAdapter.bind(this, this.$container);\n this.selection.bind(this, this.$container);\n\n this.dropdown.bind(this, this.$container);\n this.results.bind(this, this.$container);\n };\n\n Select2.prototype._registerDomEvents = function () {\n var self = this;\n\n this.$element.on('change.select2', function () {\n self.dataAdapter.current(function (data) {\n self.trigger('selection:update', {\n data: data\n });\n });\n });\n\n this.$element.on('focus.select2', function (evt) {\n self.trigger('focus', evt);\n });\n\n this._syncA = Utils.bind(this._syncAttributes, this);\n this._syncS = Utils.bind(this._syncSubtree, this);\n\n if (this.$element[0].attachEvent) {\n this.$element[0].attachEvent('onpropertychange', this._syncA);\n }\n\n var observer = window.MutationObserver ||\n window.WebKitMutationObserver ||\n window.MozMutationObserver\n ;\n\n if (observer != null) {\n this._observer = new observer(function (mutations) {\n $.each(mutations, self._syncA);\n $.each(mutations, self._syncS);\n });\n this._observer.observe(this.$element[0], {\n attributes: true,\n childList: true,\n subtree: false\n });\n } else if (this.$element[0].addEventListener) {\n this.$element[0].addEventListener(\n 'DOMAttrModified',\n self._syncA,\n false\n );\n this.$element[0].addEventListener(\n 'DOMNodeInserted',\n self._syncS,\n false\n );\n this.$element[0].addEventListener(\n 'DOMNodeRemoved',\n self._syncS,\n false\n );\n }\n };\n\n Select2.prototype._registerDataEvents = function () {\n var self = this;\n\n this.dataAdapter.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerSelectionEvents = function () {\n var self = this;\n var nonRelayEvents = ['toggle', 'focus'];\n\n this.selection.on('toggle', function () {\n self.toggleDropdown();\n });\n\n this.selection.on('focus', function (params) {\n self.focus(params);\n });\n\n this.selection.on('*', function (name, params) {\n if ($.inArray(name, nonRelayEvents) !== -1) {\n return;\n }\n\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerDropdownEvents = function () {\n var self = this;\n\n this.dropdown.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerResultsEvents = function () {\n var self = this;\n\n this.results.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerEvents = function () {\n var self = this;\n\n this.on('open', function () {\n self.$container.addClass('select2-container--open');\n });\n\n this.on('close', function () {\n self.$container.removeClass('select2-container--open');\n });\n\n this.on('enable', function () {\n self.$container.removeClass('select2-container--disabled');\n });\n\n this.on('disable', function () {\n self.$container.addClass('select2-container--disabled');\n });\n\n this.on('blur', function () {\n self.$container.removeClass('select2-container--focus');\n });\n\n this.on('query', function (params) {\n if (!self.isOpen()) {\n self.trigger('open', {});\n }\n\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:all', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('query:append', function (params) {\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:append', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('keypress', function (evt) {\n var key = evt.which;\n\n if (self.isOpen()) {\n if (key === KEYS.ESC || key === KEYS.TAB ||\n (key === KEYS.UP && evt.altKey)) {\n self.close();\n\n evt.preventDefault();\n } else if (key === KEYS.ENTER) {\n self.trigger('results:select', {});\n\n evt.preventDefault();\n } else if ((key === KEYS.SPACE && evt.ctrlKey)) {\n self.trigger('results:toggle', {});\n\n evt.preventDefault();\n } else if (key === KEYS.UP) {\n self.trigger('results:previous', {});\n\n evt.preventDefault();\n } else if (key === KEYS.DOWN) {\n self.trigger('results:next', {});\n\n evt.preventDefault();\n }\n } else {\n if (key === KEYS.ENTER || key === KEYS.SPACE ||\n (key === KEYS.DOWN && evt.altKey)) {\n self.open();\n\n evt.preventDefault();\n }\n }\n });\n };\n\n Select2.prototype._syncAttributes = function () {\n this.options.set('disabled', this.$element.prop('disabled'));\n\n if (this.options.get('disabled')) {\n if (this.isOpen()) {\n this.close();\n }\n\n this.trigger('disable', {});\n } else {\n this.trigger('enable', {});\n }\n };\n\n Select2.prototype._syncSubtree = function (evt, mutations) {\n var changed = false;\n var self = this;\n\n // Ignore any mutation events raised for elements that aren't options or\n // optgroups. This handles the case when the select element is destroyed\n if (\n evt && evt.target && (\n evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP'\n )\n ) {\n return;\n }\n\n if (!mutations) {\n // If mutation events aren't supported, then we can only assume that the\n // change affected the selections\n changed = true;\n } else if (mutations.addedNodes && mutations.addedNodes.length > 0) {\n for (var n = 0; n < mutations.addedNodes.length; n++) {\n var node = mutations.addedNodes[n];\n\n if (node.selected) {\n changed = true;\n }\n }\n } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {\n changed = true;\n }\n\n // Only re-pull the data if we think there is a change\n if (changed) {\n this.dataAdapter.current(function (currentData) {\n self.trigger('selection:update', {\n data: currentData\n });\n });\n }\n };\n\n /**\n * Override the trigger method to automatically trigger pre-events when\n * there are events that can be prevented.\n */\n Select2.prototype.trigger = function (name, args) {\n var actualTrigger = Select2.__super__.trigger;\n var preTriggerMap = {\n 'open': 'opening',\n 'close': 'closing',\n 'select': 'selecting',\n 'unselect': 'unselecting'\n };\n\n if (args === undefined) {\n args = {};\n }\n\n if (name in preTriggerMap) {\n var preTriggerName = preTriggerMap[name];\n var preTriggerArgs = {\n prevented: false,\n name: name,\n args: args\n };\n\n actualTrigger.call(this, preTriggerName, preTriggerArgs);\n\n if (preTriggerArgs.prevented) {\n args.prevented = true;\n\n return;\n }\n }\n\n actualTrigger.call(this, name, args);\n };\n\n Select2.prototype.toggleDropdown = function () {\n if (this.options.get('disabled')) {\n return;\n }\n\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n };\n\n Select2.prototype.open = function () {\n if (this.isOpen()) {\n return;\n }\n\n this.trigger('query', {});\n };\n\n Select2.prototype.close = function () {\n if (!this.isOpen()) {\n return;\n }\n\n this.trigger('close', {});\n };\n\n Select2.prototype.isOpen = function () {\n return this.$container.hasClass('select2-container--open');\n };\n\n Select2.prototype.hasFocus = function () {\n return this.$container.hasClass('select2-container--focus');\n };\n\n Select2.prototype.focus = function (data) {\n // No need to re-trigger focus events if we are already focused\n if (this.hasFocus()) {\n return;\n }\n\n this.$container.addClass('select2-container--focus');\n this.trigger('focus', {});\n };\n\n Select2.prototype.enable = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"enable\")` method has been deprecated and will' +\n ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' +\n ' instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n args = [true];\n }\n\n var disabled = !args[0];\n\n this.$element.prop('disabled', disabled);\n };\n\n Select2.prototype.data = function () {\n if (this.options.get('debug') &&\n arguments.length > 0 && window.console && console.warn) {\n console.warn(\n 'Select2: Data can no longer be set using `select2(\"data\")`. You ' +\n 'should consider setting the value instead using `$element.val()`.'\n );\n }\n\n var data = [];\n\n this.dataAdapter.current(function (currentData) {\n data = currentData;\n });\n\n return data;\n };\n\n Select2.prototype.val = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"val\")` method has been deprecated and will be' +\n ' removed in later Select2 versions. Use $element.val() instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n return this.$element.val();\n }\n\n var newVal = args[0];\n\n if ($.isArray(newVal)) {\n newVal = $.map(newVal, function (obj) {\n return obj.toString();\n });\n }\n\n this.$element.val(newVal).trigger('change');\n };\n\n Select2.prototype.destroy = function () {\n this.$container.remove();\n\n if (this.$element[0].detachEvent) {\n this.$element[0].detachEvent('onpropertychange', this._syncA);\n }\n\n if (this._observer != null) {\n this._observer.disconnect();\n this._observer = null;\n } else if (this.$element[0].removeEventListener) {\n this.$element[0]\n .removeEventListener('DOMAttrModified', this._syncA, false);\n this.$element[0]\n .removeEventListener('DOMNodeInserted', this._syncS, false);\n this.$element[0]\n .removeEventListener('DOMNodeRemoved', this._syncS, false);\n }\n\n this._syncA = null;\n this._syncS = null;\n\n this.$element.off('.select2');\n this.$element.attr('tabindex', this.$element.data('old-tabindex'));\n\n this.$element.removeClass('select2-hidden-accessible');\n this.$element.attr('aria-hidden', 'false');\n this.$element.removeData('select2');\n\n this.dataAdapter.destroy();\n this.selection.destroy();\n this.dropdown.destroy();\n this.results.destroy();\n\n this.dataAdapter = null;\n this.selection = null;\n this.dropdown = null;\n this.results = null;\n };\n\n Select2.prototype.render = function () {\n var $container = $(\n '<span class=\"select2 select2-container\">' +\n '<span class=\"selection\"></span>' +\n '<span class=\"dropdown-wrapper\" aria-hidden=\"true\"></span>' +\n '</span>'\n );\n\n $container.attr('dir', this.options.get('dir'));\n\n this.$container = $container;\n\n this.$container.addClass('select2-container--' + this.options.get('theme'));\n\n $container.data('element', this.$element);\n\n return $container;\n };\n\n return Select2;\n});\n\nS2.define('jquery-mousewheel',[\n 'jquery'\n], function ($) {\n // Used to shim jQuery.mousewheel for non-full builds.\n return $;\n});\n\nS2.define('jquery.select2',[\n 'jquery',\n 'jquery-mousewheel',\n\n './select2/core',\n './select2/defaults'\n], function ($, _, Select2, Defaults) {\n if ($.fn.select2 == null) {\n // All methods that should return the element\n var thisMethods = ['open', 'close', 'destroy'];\n\n $.fn.select2 = function (options) {\n options = options || {};\n\n if (typeof options === 'object') {\n this.each(function () {\n var instanceOptions = $.extend(true, {}, options);\n\n var instance = new Select2($(this), instanceOptions);\n });\n\n return this;\n } else if (typeof options === 'string') {\n var ret;\n var args = Array.prototype.slice.call(arguments, 1);\n\n this.each(function () {\n var instance = $(this).data('select2');\n\n if (instance == null && window.console && console.error) {\n console.error(\n 'The select2(\\'' + options + '\\') method was called on an ' +\n 'element that is not using Select2.'\n );\n }\n\n ret = instance[options].apply(instance, args);\n });\n\n // Check if we should be returning `this`\n if ($.inArray(options, thisMethods) > -1) {\n return this;\n }\n\n return ret;\n } else {\n throw new Error('Invalid arguments for Select2: ' + options);\n }\n };\n }\n\n if ($.fn.select2.defaults == null) {\n $.fn.select2.defaults = Defaults;\n }\n\n return Select2;\n});\n\n // Return the AMD loader configuration so it can be used outside of this file\n return {\n define: S2.define,\n require: S2.require\n };\n}());\n\n // Autoload the jQuery bindings\n // We know that all of the modules exist above this, so we're safe\n var select2 = S2.require('jquery.select2');\n\n // Hold the AMD module references on the jQuery function that was just loaded\n // This allows Select2 to use the internal loader outside of this file, such\n // as in the language files.\n jQuery.fn.select2.amd = S2;\n\n // Return the Select2 instance for anyone who is importing it.\n return select2;\n}));\n","// maximize-select2-height v1.0.2\n// (c) Panorama Education 2015\n// MIT License\n// https://github.com/panorama-ed/maximize-select2-height\n\n// This jQuery/Select2 plugin expands a Select2 dropdown to take up as much\n// height as possible given its position on the page and the current viewport\n// size. The plugin correctly handles:\n// - Dynamic window resizing.\n// - The effects of scroll bars on the viewport.\n// - Select2 rendering dropdowns both upwards and downwards.\n\n// NOTE: The original <select> element that is $().select2()'d *must* have a\n// unique ID for this code to work. (Ex: <select id=\"my-unique-id\"></select>)\n\n(function ($) {\n \"use strict\";\n\n // We can find these elements now, since the properties we check on them are\n // all via methods that are recalculated each time.\n var $window = $(window);\n var $document = $(document);\n\n // @param {Object} options The options object passed in when this plugin is\n // initialized\n // @param {Boolean} dropdownDownwards True iff the dropdown is rendered\n // downwards (Select2 sometimes renders the options upwards to better fit on\n // a page)\n // @return {Object} The options passed in, combined with defaults. Keys are:\n // - cushion: The number of pixels between the edge of the dropdown and the\n // edge of the viewable window. [Default: 10, except when a\n // horizontal scroll bar would interfere, in which case it's 30.]\n // NOTE: If a value is passed in, no adjustments for possible\n // scroll bars are made.\n var settings = function (options, dropdownDownwards) {\n return $.extend({\n cushion: (\n dropdownDownwards && $document.width() > $window.width()\n ) ? 30 : 10\n }, options);\n };\n\n // @param {String} id The DOM element ID for the original <select> node\n // @param {jQuery object} $select2Results The DOM element with class\n // \"select2-results\"\n // @param {jQuery object} $grandparent The grandparent object of the\n // $select2Results object\n // @param {Object} options The options object passed in when this plugin is\n // initialized\n // @param {Boolean} dropdownDownwards True iff the dropdown is rendered\n // downwards (Select2 sometimes renders the options upwards to better fit on\n // a page)\n // @return {Number} the maximum height of the Select2 results box to display\n var computeMaxHeight = function (\n id, $select2Results, $grandparent, options, dropdownDownwards\n ) {\n var height;\n var resultsBoxMiscellaniaHeight;\n var widgetBoxOffset;\n\n if (dropdownDownwards) {\n // When the dropdown appears downwards, the formula is:\n // visible window size\n // + out-of-window pixels we've scrolled past\n // - size of content (including offscreen content) above results box\n // ------------------------------------------\n // total height available to us\n\n // innerHeight is more accurate across browsers than $(window).height().\n height = window.innerHeight +\n $window.scrollTop() -\n $select2Results.offset().top;\n } else {\n // When the dropdown appears upwards, the formula is:\n // vertical position of the widget (clickable) dropdown box\n // - out-of-window pixels we've scrolled past\n // - height of the search box and other content above the actual results\n // but in the results box\n // ------------------------------------------\n // total height available to us\n\n // Compute the global vertical offset of the widget box (the one with the\n // downward arrow that the user clicks on to expose options).\n widgetBoxOffset = $(\"#select2-\" + id + \"-container\").\n parent().parent().parent().offset().top;\n\n // Compute the height, if any, of search box and other content in the\n // results box but not part of the results.\n resultsBoxMiscellaniaHeight = $grandparent.height() -\n $select2Results.height();\n height = widgetBoxOffset -\n $window.scrollTop() -\n resultsBoxMiscellaniaHeight;\n }\n\n // Leave a little cushion to prevent the dropdown from\n // rendering off the edge of the viewport.\n return height - settings(options, dropdownDownwards).cushion;\n };\n\n // Call on a jQuery Select2 element to maximize the height of the dropdown\n // every time it is opened.\n // @param {Object} options The options object passed in when this plugin is\n // initialized\n $.fn.maximizeSelect2Height = function (options) {\n return this.each(function (_, el) {\n // Each time the Select2 is opened, resize it to take up as much vertical\n // space as possible given its position and the current viewport size.\n $(el).on(\"select2:open\", function () {\n // We have to put this code block inside a timeout because we determine\n // whether the dropdown is rendered upwards or downwards via a hack that\n // looks at the CSS classes, and these aren't set until Select2 has a\n // chance to render the box, which occurs after this event fires.\n\n // The alternative solution that avoids using a timeout would be to\n // directly modify the document's stylesheets (instead of the styles for\n // individual elements), but that is both ugly/dangerous and actually\n // impossible for us because we need to modify the styles of a parent\n // node of a given DOM node when the parent has no unique ID, which CSS\n // doesn't have the ability to do.\n setTimeout(function () {\n var $select2Results = $(\"#select2-\" + el.id + \"-results\");\n var $parent = $select2Results.parent();\n var $grandparent = $parent.parent();\n var dropdownDownwards = $grandparent\n .hasClass(\"select2-dropdown--below\");\n\n var maxHeight = computeMaxHeight(\n el.id,\n $select2Results,\n $grandparent,\n options,\n dropdownDownwards\n );\n\n // Set the max height of the relevant DOM elements. We use max-height\n // instead of height directly to correctly handle cases in which there\n // are only a few elements (we don't want a giant empty dropdown box).\n $parent.css(\"max-height\", maxHeight);\n $select2Results.css(\"max-height\", maxHeight);\n\n // Select2 corrects the positioning of the results box on scroll, so\n // we trigger that event here to let it auto-correct. This is done for\n // the case where the dropdown appears upwards; we adjust its max\n // height but we also want to move it up further, lest it cover up the\n // initial dropdown box.\n $(document).trigger(\"scroll\");\n });\n });\n });\n };\n})(jQuery);\n"]} |