{"version":3,"sources":["webpack:///./node_modules/@sentry/webpack-plugin/src/sentry-webpack.module.js","webpack:///./node_modules/select2/index.js","webpack:///./node_modules/select2/select2.js","webpack:///external \"jQuery\"","webpack:///webpack/bootstrap","webpack:///webpack/runtime/global","webpack:///webpack/startup"],"names":["window","g","self","SENTRY_RELEASE","id","$","jQuery","fn","each2","extend","c","j","i","l","this","length","context","call","undefined","Select2","AbstractSelect2","SingleSelect2","MultiSelect2","nextUid","sizer","$document","scrollBarDimensions","counter","lastMousePosition","x","y","KEY","TAB","ENTER","ESC","SPACE","LEFT","UP","RIGHT","DOWN","SHIFT","CTRL","ALT","PAGE_UP","PAGE_DOWN","HOME","END","BACKSPACE","DELETE","isArrow","k","which","isControl","e","metaKey","isFunctionKey","DIACRITICS","document","on","pageX","pageY","clazz","Object","bind","func","apply","arguments","init","opts","results","search","formula","value","evaluated","element","notify","resultsSelector","prepareOpts","data","destroy","container","createContainer","containerId","attr","containerSelector","replace","body","closest","syncCssClasses","adaptContainerCssClass","css","evaluate","containerCss","addClass","containerCssClass","elementTabIndex","before","killEvent","dropdown","find","adaptDropdownCssClass","dropdownCssClass","queryCount","resultsPage","initContainer","lastpos","target","trigger","highlightUnderEvent","debounce","indexOf","get","loadMoreIfNeeded","stopPropagation","mousewheel","delta","deltaX","deltaY","top","scrollTop","scrollHeight","height","installKeyUpChangeEvent","updateResults","removeClass","selectHighlighted","isFunction","initSelection","monitorSource","maximumInputLength","disabled","prop","enable","readonly","$template","appendTo","dim","width","clientWidth","clientHeight","remove","measureScrollbar","autofocus","focus","nextSearchTerm","select2","close","propertyObserver","removeData","off","tabindex","removeAttr","show","optionToData","is","text","locked","equal","children","select","idKey","ajaxUrl","tagName","toLowerCase","each","Error","populateResults","query","populate","depth","result","selectable","compound","node","label","innerContainer","formatted","sortResults","formatResultCssClass","createElement","formatResult","escapeMarkup","html","append","defaults","isArray","tags","placeholderOption","process","more","term","collection","group","matcher","push","elm","getPlaceholder","getPlaceholderOption","not","callback","ajax","url","local","createSearchChoice","trim","splitVal","val","separator","obj","sync","observer","el","mutationCallback","mutations","forEach","MutationObserver","WebKitMutationObserver","MozMutationObserver","observe","attributes","subtree","triggerSelect","evt","Event","object","isDefaultPrevented","triggerChange","details","type","click","blurOnChange","blur","isInterfaceEnabled","enabledInterface","enableInterface","enabled","_enabled","_readonly","toggleClass","disable","opened","hasClass","positionDropdown","bodyOffset","above","changeDirection","resultsListNode","$dropdown","offset","outerHeight","outerWidth","dropHeight","$window","windowWidth","windowHeight","viewPortRight","scrollLeft","viewportBottom","dropTop","dropLeft","left","enoughRoomBelow","enoughRoomAbove","dropWidth","enoughRoomOnRight","hide","dropdownAutoWidth","bottom","dropdownCss","shouldOpen","event","clearDropdownAlignmentPreference","open","opening","mask","cid","scroll","resize","orient","last","detach","selectOnBlur","noFocus","preventDefault","prev","that","parents","add","empty","clearSearch","externalSearch","getMaximumSelectionSize","maximumSelectionSize","ensureHighlightVisible","index","child","hb","rb","highlight","findHighlightableChoices","moveHighlight","choices","choice","filter","removeHighlight","countSelectableResults","page","loadMorePadding","postprocessResults","formatLoadMore","setTimeout","items","tokenize","initial","input","queryNumber","lastTerm","showSearchInput","maxSelSize","checkFormatter","formatSelectionTooBig","minimumInputLength","formatInputTooShort","render","showSearch","formatInputTooLong","formatSearching","def","unshift","formatNoMatches","postRender","cancel","activeElement","selection","focusSearch","$el","range","pos","setSelectionRange","createTextRange","collapse","options","onSelect","placeholder","firstOption","first","initContainerWidth","style","attrs","matches","split","match","join","parent","focusser","len","minimumResultsForSearch","params","isFocused","elementLabel","idSuffix","originalTitle","openOnEnter","altKey","ctrlKey","shiftKey","allowClear","clear","stopImmediatePropagation","setPlaceholder","removed","isPlaceholderOptionSelected","updateSelection","selected","is_match","noop","noHighlightUpdate","min","countResults","old","oldData","added","cssClass","formatSelection","formatSelectionCssClass","ids","grep","ordered","splice","selectChoice","selector","searchContainer","_this","keydowns","next","selectionStart","selectionEnd","sel","createRange","moveStart","getCursorInfo","selectedChoice","unselect","resizeSearch","clearPlaceholder","maxWidth","getMaxSearchWidth","getVal","filtered","addSelectedChoice","tokenizer","closeOnSelect","enableChoice","enabledItem","disabledItem","replaceWith","fadeOut","dequeue","insertBefore","setVal","getSideBorderPadding","minimumWidth","searchWidth","sideBorderPadding","currentStyle","getComputedStyle","position","display","fontSize","fontFamily","fontStyle","fontWeight","letterSpacing","textTransform","whiteSpace","measureTextWidth","Math","floor","unique","buildChangeDetails","current","slice","map","onSortStart","onSortEnd","values","method","multiple","args","Array","prototype","allowedMethods","valueMethods","propertyMethods","methodsMap","markup","markMatch","n","max","limit","pageNumber","stripDiacritics","toUpperCase","tokenSeparators","selectCallback","token","original","dupe","substring","defaultEscapeMarkup","selectedObject","currentSearchTerm","ajaxDefaults","transport","cache","dataType","module","exports","util","str","ret","charAt","array","a","b","constructor","String","string","key","quietMillis","ctx","timeout","clearTimeout","dest","src","adapter","classes","adapted","replacements","tl","replace_map","handler","deprecated","jsonpCallback","abort","success","dataText","tmp","item","dataItem","t","datum","hasOwnProperty","childDatum","isFunc","isObject","formatter","formatterName","count","SuperClass","methods","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","globalThis","Function"],"mappings":"8BAAiC,oBAAXA,OAAyBA,YAA2B,IAAX,EAAAC,EAAyB,EAAAA,EAAyB,oBAATC,KAAuBA,KAAO,IAAaC,eAAe,CAACC,GAAG,e,gBCAtKC,EAAIC,OAAS,EAAQ,OACrB,U,WCmBA,SAAWD,QACiB,IAAdA,EAAEE,GAAGC,OACXH,EAAEI,OAAOJ,EAAEE,GAAI,CAKXC,MAAQ,SAAUE,GAEd,IADA,IAAIC,EAAIN,EAAE,CAAC,IAAKO,GAAK,EAAGC,EAAIC,KAAKC,SAE3BH,EAAIC,IACFF,EAAEK,QAAUL,EAAE,GAAKG,KAAKF,MACF,IAAvBF,EAAEO,KAAKN,EAAE,GAAIC,EAAGD,KAEvB,OAAOG,QAdvB,CAkBGR,QAEF,SAAUD,EAAGa,GACV,aAGA,GAAIlB,OAAOmB,UAAYD,EAAvB,CAIA,IAASE,EAAiBC,EAAeC,EAAcC,EAASC,EAC/BC,EAAWC,EAuDlBC,EAvDtBC,EAAkB,CAACC,EAAE,EAAEC,EAAE,GAE7BC,EAAM,CACFC,IAAK,EACLC,MAAO,GACPC,IAAK,GACLC,MAAO,GACPC,KAAM,GACNC,GAAI,GACJC,MAAO,GACPC,KAAM,GACNC,MAAO,GACPC,KAAM,GACNC,IAAK,GACLC,QAAS,GACTC,UAAW,GACXC,KAAM,GACNC,IAAK,GACLC,UAAW,EACXC,OAAQ,GACRC,QAAS,SAAUC,GAEf,OADAA,EAAIA,EAAEC,MAAQD,EAAEC,MAAQD,GAExB,KAAKnB,EAAIK,KACT,KAAKL,EAAIO,MACT,KAAKP,EAAIM,GACT,KAAKN,EAAIQ,KACL,OAAO,EAEX,OAAO,GAEXa,UAAW,SAAUC,GAEjB,OADQA,EAAEF,OAEV,KAAKpB,EAAIS,MACT,KAAKT,EAAIU,KACT,KAAKV,EAAIW,IACL,OAAO,EAGX,QAAIW,EAAEC,SAIVC,cAAe,SAAUL,GAErB,OADAA,EAAIA,EAAEC,MAAQD,EAAEC,MAAQD,IACZ,KAAOA,GAAK,MAKhCM,EAAa,CAAC,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,KAAK,EAAS,KAAK,EAAS,KAAK,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,IAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAAS,IAAI,EAA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","file":"../../bower_components/select2.js","sourcesContent":["var _global = (typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}); _global.SENTRY_RELEASE={id:\"master-580\"};","$ = jQuery = require('jquery');\r\nmodule.exports = require('./select2.js');","/*\r\nCopyright 2012 Igor Vaynberg\r\n\r\nVersion: @@ver@@ Timestamp: @@timestamp@@\r\n\r\nThis software is licensed under the Apache License, Version 2.0 (the \"Apache License\") or the GNU\r\nGeneral Public License version 2 (the \"GPL License\"). You may choose either license to govern your\r\nuse of this software only upon the condition that you accept all of the terms of either the Apache\r\nLicense or the GPL License.\r\n\r\nYou may obtain a copy of the Apache License and the GPL License at:\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n http://www.gnu.org/licenses/gpl-2.0.html\r\n\r\nUnless required by applicable law or agreed to in writing, software distributed under the\r\nApache License or the GPL Licesnse is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\r\nCONDITIONS OF ANY KIND, either express or implied. See the Apache License and the GPL License for\r\nthe specific language governing permissions and limitations under the Apache License and the GPL License.\r\n*/\r\n(function ($) {\r\n if(typeof $.fn.each2 == \"undefined\") {\r\n $.extend($.fn, {\r\n /*\r\n * 4-10 times faster .each replacement\r\n * use it carefully, as it overrides jQuery context of element on each iteration\r\n */\r\n each2 : function (c) {\r\n var j = $([0]), i = -1, l = this.length;\r\n while (\r\n ++i < l\r\n && (j.context = j[0] = this[i])\r\n && c.call(j[0], i, j) !== false //\"this\"=DOM, i=index, j=jQuery object\r\n );\r\n return this;\r\n }\r\n });\r\n }\r\n})(jQuery);\r\n\r\n(function ($, undefined) {\r\n \"use strict\";\r\n /*global document, window, jQuery, console */\r\n\r\n if (window.Select2 !== undefined) {\r\n return;\r\n }\r\n\r\n var KEY, AbstractSelect2, SingleSelect2, MultiSelect2, nextUid, sizer,\r\n lastMousePosition={x:0,y:0}, $document, scrollBarDimensions,\r\n\r\n KEY = {\r\n TAB: 9,\r\n ENTER: 13,\r\n ESC: 27,\r\n SPACE: 32,\r\n LEFT: 37,\r\n UP: 38,\r\n RIGHT: 39,\r\n DOWN: 40,\r\n SHIFT: 16,\r\n CTRL: 17,\r\n ALT: 18,\r\n PAGE_UP: 33,\r\n PAGE_DOWN: 34,\r\n HOME: 36,\r\n END: 35,\r\n BACKSPACE: 8,\r\n DELETE: 46,\r\n isArrow: function (k) {\r\n k = k.which ? k.which : k;\r\n switch (k) {\r\n case KEY.LEFT:\r\n case KEY.RIGHT:\r\n case KEY.UP:\r\n case KEY.DOWN:\r\n return true;\r\n }\r\n return false;\r\n },\r\n isControl: function (e) {\r\n var k = e.which;\r\n switch (k) {\r\n case KEY.SHIFT:\r\n case KEY.CTRL:\r\n case KEY.ALT:\r\n return true;\r\n }\r\n\r\n if (e.metaKey) return true;\r\n\r\n return false;\r\n },\r\n isFunctionKey: function (k) {\r\n k = k.which ? k.which : k;\r\n return k >= 112 && k <= 123;\r\n }\r\n },\r\n MEASURE_SCROLLBAR_TEMPLATE = \"
\",\r\n\r\n DIACRITICS = {\"\\u24B6\":\"A\",\"\\uFF21\":\"A\",\"\\u00C0\":\"A\",\"\\u00C1\":\"A\",\"\\u00C2\":\"A\",\"\\u1EA6\":\"A\",\"\\u1EA4\":\"A\",\"\\u1EAA\":\"A\",\"\\u1EA8\":\"A\",\"\\u00C3\":\"A\",\"\\u0100\":\"A\",\"\\u0102\":\"A\",\"\\u1EB0\":\"A\",\"\\u1EAE\":\"A\",\"\\u1EB4\":\"A\",\"\\u1EB2\":\"A\",\"\\u0226\":\"A\",\"\\u01E0\":\"A\",\"\\u00C4\":\"A\",\"\\u01DE\":\"A\",\"\\u1EA2\":\"A\",\"\\u00C5\":\"A\",\"\\u01FA\":\"A\",\"\\u01CD\":\"A\",\"\\u0200\":\"A\",\"\\u0202\":\"A\",\"\\u1EA0\":\"A\",\"\\u1EAC\":\"A\",\"\\u1EB6\":\"A\",\"\\u1E00\":\"A\",\"\\u0104\":\"A\",\"\\u023A\":\"A\",\"\\u2C6F\":\"A\",\"\\uA732\":\"AA\",\"\\u00C6\":\"AE\",\"\\u01FC\":\"AE\",\"\\u01E2\":\"AE\",\"\\uA734\":\"AO\",\"\\uA736\":\"AU\",\"\\uA738\":\"AV\",\"\\uA73A\":\"AV\",\"\\uA73C\":\"AY\",\"\\u24B7\":\"B\",\"\\uFF22\":\"B\",\"\\u1E02\":\"B\",\"\\u1E04\":\"B\",\"\\u1E06\":\"B\",\"\\u0243\":\"B\",\"\\u0182\":\"B\",\"\\u0181\":\"B\",\"\\u24B8\":\"C\",\"\\uFF23\":\"C\",\"\\u0106\":\"C\",\"\\u0108\":\"C\",\"\\u010A\":\"C\",\"\\u010C\":\"C\",\"\\u00C7\":\"C\",\"\\u1E08\":\"C\",\"\\u0187\":\"C\",\"\\u023B\":\"C\",\"\\uA73E\":\"C\",\"\\u24B9\":\"D\",\"\\uFF24\":\"D\",\"\\u1E0A\":\"D\",\"\\u010E\":\"D\",\"\\u1E0C\":\"D\",\"\\u1E10\":\"D\",\"\\u1E12\":\"D\",\"\\u1E0E\":\"D\",\"\\u0110\":\"D\",\"\\u018B\":\"D\",\"\\u018A\":\"D\",\"\\u0189\":\"D\",\"\\uA779\":\"D\",\"\\u01F1\":\"DZ\",\"\\u01C4\":\"DZ\",\"\\u01F2\":\"Dz\",\"\\u01C5\":\"Dz\",\"\\u24BA\":\"E\",\"\\uFF25\":\"E\",\"\\u00C8\":\"E\",\"\\u00C9\":\"E\",\"\\u00CA\":\"E\",\"\\u1EC0\":\"E\",\"\\u1EBE\":\"E\",\"\\u1EC4\":\"E\",\"\\u1EC2\":\"E\",\"\\u1EBC\":\"E\",\"\\u0112\":\"E\",\"\\u1E14\":\"E\",\"\\u1E16\":\"E\",\"\\u0114\":\"E\",\"\\u0116\":\"E\",\"\\u00CB\":\"E\",\"\\u1EBA\":\"E\",\"\\u011A\":\"E\",\"\\u0204\":\"E\",\"\\u0206\":\"E\",\"\\u1EB8\":\"E\",\"\\u1EC6\":\"E\",\"\\u0228\":\"E\",\"\\u1E1C\":\"E\",\"\\u0118\":\"E\",\"\\u1E18\":\"E\",\"\\u1E1A\":\"E\",\"\\u0190\":\"E\",\"\\u018E\":\"E\",\"\\u24BB\":\"F\",\"\\uFF26\":\"F\",\"\\u1E1E\":\"F\",\"\\u0191\":\"F\",\"\\uA77B\":\"F\",\"\\u24BC\":\"G\",\"\\uFF27\":\"G\",\"\\u01F4\":\"G\",\"\\u011C\":\"G\",\"\\u1E20\":\"G\",\"\\u011E\":\"G\",\"\\u0120\":\"G\",\"\\u01E6\":\"G\",\"\\u0122\":\"G\",\"\\u01E4\":\"G\",\"\\u0193\":\"G\",\"\\uA7A0\":\"G\",\"\\uA77D\":\"G\",\"\\uA77E\":\"G\",\"\\u24BD\":\"H\",\"\\uFF28\":\"H\",\"\\u0124\":\"H\",\"\\u1E22\":\"H\",\"\\u1E26\":\"H\",\"\\u021E\":\"H\",\"\\u1E24\":\"H\",\"\\u1E28\":\"H\",\"\\u1E2A\":\"H\",\"\\u0126\":\"H\",\"\\u2C67\":\"H\",\"\\u2C75\":\"H\",\"\\uA78D\":\"H\",\"\\u24BE\":\"I\",\"\\uFF29\":\"I\",\"\\u00CC\":\"I\",\"\\u00CD\":\"I\",\"\\u00CE\":\"I\",\"\\u0128\":\"I\",\"\\u012A\":\"I\",\"\\u012C\":\"I\",\"\\u0130\":\"I\",\"\\u00CF\":\"I\",\"\\u1E2E\":\"I\",\"\\u1EC8\":\"I\",\"\\u01CF\":\"I\",\"\\u0208\":\"I\",\"\\u020A\":\"I\",\"\\u1ECA\":\"I\",\"\\u012E\":\"I\",\"\\u1E2C\":\"I\",\"\\u0197\":\"I\",\"\\u24BF\":\"J\",\"\\uFF2A\":\"J\",\"\\u0134\":\"J\",\"\\u0248\":\"J\",\"\\u24C0\":\"K\",\"\\uFF2B\":\"K\",\"\\u1E30\":\"K\",\"\\u01E8\":\"K\",\"\\u1E32\":\"K\",\"\\u0136\":\"K\",\"\\u1E34\":\"K\",\"\\u0198\":\"K\",\"\\u2C69\":\"K\",\"\\uA740\":\"K\",\"\\uA742\":\"K\",\"\\uA744\":\"K\",\"\\uA7A2\":\"K\",\"\\u24C1\":\"L\",\"\\uFF2C\":\"L\",\"\\u013F\":\"L\",\"\\u0139\":\"L\",\"\\u013D\":\"L\",\"\\u1E36\":\"L\",\"\\u1E38\":\"L\",\"\\u013B\":\"L\",\"\\u1E3C\":\"L\",\"\\u1E3A\":\"L\",\"\\u0141\":\"L\",\"\\u023D\":\"L\",\"\\u2C62\":\"L\",\"\\u2C60\":\"L\",\"\\uA748\":\"L\",\"\\uA746\":\"L\",\"\\uA780\":\"L\",\"\\u01C7\":\"LJ\",\"\\u01C8\":\"Lj\",\"\\u24C2\":\"M\",\"\\uFF2D\":\"M\",\"\\u1E3E\":\"M\",\"\\u1E40\":\"M\",\"\\u1E42\":\"M\",\"\\u2C6E\":\"M\",\"\\u019C\":\"M\",\"\\u24C3\":\"N\",\"\\uFF2E\":\"N\",\"\\u01F8\":\"N\",\"\\u0143\":\"N\",\"\\u00D1\":\"N\",\"\\u1E44\":\"N\",\"\\u0147\":\"N\",\"\\u1E46\":\"N\",\"\\u0145\":\"N\",\"\\u1E4A\":\"N\",\"\\u1E48\":\"N\",\"\\u0220\":\"N\",\"\\u019D\":\"N\",\"\\uA790\":\"N\",\"\\uA7A4\":\"N\",\"\\u01CA\":\"NJ\",\"\\u01CB\":\"Nj\",\"\\u24C4\":\"O\",\"\\uFF2F\":\"O\",\"\\u00D2\":\"O\",\"\\u00D3\":\"O\",\"\\u00D4\":\"O\",\"\\u1ED2\":\"O\",\"\\u1ED0\":\"O\",\"\\u1ED6\":\"O\",\"\\u1ED4\":\"O\",\"\\u00D5\":\"O\",\"\\u1E4C\":\"O\",\"\\u022C\":\"O\",\"\\u1E4E\":\"O\",\"\\u014C\":\"O\",\"\\u1E50\":\"O\",\"\\u1E52\":\"O\",\"\\u014E\":\"O\",\"\\u022E\":\"O\",\"\\u0230\":\"O\",\"\\u00D6\":\"O\",\"\\u022A\":\"O\",\"\\u1ECE\":\"O\",\"\\u0150\":\"O\",\"\\u01D1\":\"O\",\"\\u020C\":\"O\",\"\\u020E\":\"O\",\"\\u01A0\":\"O\",\"\\u1EDC\":\"O\",\"\\u1EDA\":\"O\",\"\\u1EE0\":\"O\",\"\\u1EDE\":\"O\",\"\\u1EE2\":\"O\",\"\\u1ECC\":\"O\",\"\\u1ED8\":\"O\",\"\\u01EA\":\"O\",\"\\u01EC\":\"O\",\"\\u00D8\":\"O\",\"\\u01FE\":\"O\",\"\\u0186\":\"O\",\"\\u019F\":\"O\",\"\\uA74A\":\"O\",\"\\uA74C\":\"O\",\"\\u01A2\":\"OI\",\"\\uA74E\":\"OO\",\"\\u0222\":\"OU\",\"\\u24C5\":\"P\",\"\\uFF30\":\"P\",\"\\u1E54\":\"P\",\"\\u1E56\":\"P\",\"\\u01A4\":\"P\",\"\\u2C63\":\"P\",\"\\uA750\":\"P\",\"\\uA752\":\"P\",\"\\uA754\":\"P\",\"\\u24C6\":\"Q\",\"\\uFF31\":\"Q\",\"\\uA756\":\"Q\",\"\\uA758\":\"Q\",\"\\u024A\":\"Q\",\"\\u24C7\":\"R\",\"\\uFF32\":\"R\",\"\\u0154\":\"R\",\"\\u1E58\":\"R\",\"\\u0158\":\"R\",\"\\u0210\":\"R\",\"\\u0212\":\"R\",\"\\u1E5A\":\"R\",\"\\u1E5C\":\"R\",\"\\u0156\":\"R\",\"\\u1E5E\":\"R\",\"\\u024C\":\"R\",\"\\u2C64\":\"R\",\"\\uA75A\":\"R\",\"\\uA7A6\":\"R\",\"\\uA782\":\"R\",\"\\u24C8\":\"S\",\"\\uFF33\":\"S\",\"\\u1E9E\":\"S\",\"\\u015A\":\"S\",\"\\u1E64\":\"S\",\"\\u015C\":\"S\",\"\\u1E60\":\"S\",\"\\u0160\":\"S\",\"\\u1E66\":\"S\",\"\\u1E62\":\"S\",\"\\u1E68\":\"S\",\"\\u0218\":\"S\",\"\\u015E\":\"S\",\"\\u2C7E\":\"S\",\"\\uA7A8\":\"S\",\"\\uA784\":\"S\",\"\\u24C9\":\"T\",\"\\uFF34\":\"T\",\"\\u1E6A\":\"T\",\"\\u0164\":\"T\",\"\\u1E6C\":\"T\",\"\\u021A\":\"T\",\"\\u0162\":\"T\",\"\\u1E70\":\"T\",\"\\u1E6E\":\"T\",\"\\u0166\":\"T\",\"\\u01AC\":\"T\",\"\\u01AE\":\"T\",\"\\u023E\":\"T\",\"\\uA786\":\"T\",\"\\uA728\":\"TZ\",\"\\u24CA\":\"U\",\"\\uFF35\":\"U\",\"\\u00D9\":\"U\",\"\\u00DA\":\"U\",\"\\u00DB\":\"U\",\"\\u0168\":\"U\",\"\\u1E78\":\"U\",\"\\u016A\":\"U\",\"\\u1E7A\":\"U\",\"\\u016C\":\"U\",\"\\u00DC\":\"U\",\"\\u01DB\":\"U\",\"\\u01D7\":\"U\",\"\\u01D5\":\"U\",\"\\u01D9\":\"U\",\"\\u1EE6\":\"U\",\"\\u016E\":\"U\",\"\\u0170\":\"U\",\"\\u01D3\":\"U\",\"\\u0214\":\"U\",\"\\u0216\":\"U\",\"\\u01AF\":\"U\",\"\\u1EEA\":\"U\",\"\\u1EE8\":\"U\",\"\\u1EEE\":\"U\",\"\\u1EEC\":\"U\",\"\\u1EF0\":\"U\",\"\\u1EE4\":\"U\",\"\\u1E72\":\"U\",\"\\u0172\":\"U\",\"\\u1E76\":\"U\",\"\\u1E74\":\"U\",\"\\u0244\":\"U\",\"\\u24CB\":\"V\",\"\\uFF36\":\"V\",\"\\u1E7C\":\"V\",\"\\u1E7E\":\"V\",\"\\u01B2\":\"V\",\"\\uA75E\":\"V\",\"\\u0245\":\"V\",\"\\uA760\":\"VY\",\"\\u24CC\":\"W\",\"\\uFF37\":\"W\",\"\\u1E80\":\"W\",\"\\u1E82\":\"W\",\"\\u0174\":\"W\",\"\\u1E86\":\"W\",\"\\u1E84\":\"W\",\"\\u1E88\":\"W\",\"\\u2C72\":\"W\",\"\\u24CD\":\"X\",\"\\uFF38\":\"X\",\"\\u1E8A\":\"X\",\"\\u1E8C\":\"X\",\"\\u24CE\":\"Y\",\"\\uFF39\":\"Y\",\"\\u1EF2\":\"Y\",\"\\u00DD\":\"Y\",\"\\u0176\":\"Y\",\"\\u1EF8\":\"Y\",\"\\u0232\":\"Y\",\"\\u1E8E\":\"Y\",\"\\u0178\":\"Y\",\"\\u1EF6\":\"Y\",\"\\u1EF4\":\"Y\",\"\\u01B3\":\"Y\",\"\\u024E\":\"Y\",\"\\u1EFE\":\"Y\",\"\\u24CF\":\"Z\",\"\\uFF3A\":\"Z\",\"\\u0179\":\"Z\",\"\\u1E90\":\"Z\",\"\\u017B\":\"Z\",\"\\u017D\":\"Z\",\"\\u1E92\":\"Z\",\"\\u1E94\":\"Z\",\"\\u01B5\":\"Z\",\"\\u0224\":\"Z\",\"\\u2C7F\":\"Z\",\"\\u2C6B\":\"Z\",\"\\uA762\":\"Z\",\"\\u24D0\":\"a\",\"\\uFF41\":\"a\",\"\\u1E9A\":\"a\",\"\\u00E0\":\"a\",\"\\u00E1\":\"a\",\"\\u00E2\":\"a\",\"\\u1EA7\":\"a\",\"\\u1EA5\":\"a\",\"\\u1EAB\":\"a\",\"\\u1EA9\":\"a\",\"\\u00E3\":\"a\",\"\\u0101\":\"a\",\"\\u0103\":\"a\",\"\\u1EB1\":\"a\",\"\\u1EAF\":\"a\",\"\\u1EB5\":\"a\",\"\\u1EB3\":\"a\",\"\\u0227\":\"a\",\"\\u01E1\":\"a\",\"\\u00E4\":\"a\",\"\\u01DF\":\"a\",\"\\u1EA3\":\"a\",\"\\u00E5\":\"a\",\"\\u01FB\":\"a\",\"\\u01CE\":\"a\",\"\\u0201\":\"a\",\"\\u0203\":\"a\",\"\\u1EA1\":\"a\",\"\\u1EAD\":\"a\",\"\\u1EB7\":\"a\",\"\\u1E01\":\"a\",\"\\u0105\":\"a\",\"\\u2C65\":\"a\",\"\\u0250\":\"a\",\"\\uA733\":\"aa\",\"\\u00E6\":\"ae\",\"\\u01FD\":\"ae\",\"\\u01E3\":\"ae\",\"\\uA735\":\"ao\",\"\\uA737\":\"au\",\"\\uA739\":\"av\",\"\\uA73B\":\"av\",\"\\uA73D\":\"ay\",\"\\u24D1\":\"b\",\"\\uFF42\":\"b\",\"\\u1E03\":\"b\",\"\\u1E05\":\"b\",\"\\u1E07\":\"b\",\"\\u0180\":\"b\",\"\\u0183\":\"b\",\"\\u0253\":\"b\",\"\\u24D2\":\"c\",\"\\uFF43\":\"c\",\"\\u0107\":\"c\",\"\\u0109\":\"c\",\"\\u010B\":\"c\",\"\\u010D\":\"c\",\"\\u00E7\":\"c\",\"\\u1E09\":\"c\",\"\\u0188\":\"c\",\"\\u023C\":\"c\",\"\\uA73F\":\"c\",\"\\u2184\":\"c\",\"\\u24D3\":\"d\",\"\\uFF44\":\"d\",\"\\u1E0B\":\"d\",\"\\u010F\":\"d\",\"\\u1E0D\":\"d\",\"\\u1E11\":\"d\",\"\\u1E13\":\"d\",\"\\u1E0F\":\"d\",\"\\u0111\":\"d\",\"\\u018C\":\"d\",\"\\u0256\":\"d\",\"\\u0257\":\"d\",\"\\uA77A\":\"d\",\"\\u01F3\":\"dz\",\"\\u01C6\":\"dz\",\"\\u24D4\":\"e\",\"\\uFF45\":\"e\",\"\\u00E8\":\"e\",\"\\u00E9\":\"e\",\"\\u00EA\":\"e\",\"\\u1EC1\":\"e\",\"\\u1EBF\":\"e\",\"\\u1EC5\":\"e\",\"\\u1EC3\":\"e\",\"\\u1EBD\":\"e\",\"\\u0113\":\"e\",\"\\u1E15\":\"e\",\"\\u1E17\":\"e\",\"\\u0115\":\"e\",\"\\u0117\":\"e\",\"\\u00EB\":\"e\",\"\\u1EBB\":\"e\",\"\\u011B\":\"e\",\"\\u0205\":\"e\",\"\\u0207\":\"e\",\"\\u1EB9\":\"e\",\"\\u1EC7\":\"e\",\"\\u0229\":\"e\",\"\\u1E1D\":\"e\",\"\\u0119\":\"e\",\"\\u1E19\":\"e\",\"\\u1E1B\":\"e\",\"\\u0247\":\"e\",\"\\u025B\":\"e\",\"\\u01DD\":\"e\",\"\\u24D5\":\"f\",\"\\uFF46\":\"f\",\"\\u1E1F\":\"f\",\"\\u0192\":\"f\",\"\\uA77C\":\"f\",\"\\u24D6\":\"g\",\"\\uFF47\":\"g\",\"\\u01F5\":\"g\",\"\\u011D\":\"g\",\"\\u1E21\":\"g\",\"\\u011F\":\"g\",\"\\u0121\":\"g\",\"\\u01E7\":\"g\",\"\\u0123\":\"g\",\"\\u01E5\":\"g\",\"\\u0260\":\"g\",\"\\uA7A1\":\"g\",\"\\u1D79\":\"g\",\"\\uA77F\":\"g\",\"\\u24D7\":\"h\",\"\\uFF48\":\"h\",\"\\u0125\":\"h\",\"\\u1E23\":\"h\",\"\\u1E27\":\"h\",\"\\u021F\":\"h\",\"\\u1E25\":\"h\",\"\\u1E29\":\"h\",\"\\u1E2B\":\"h\",\"\\u1E96\":\"h\",\"\\u0127\":\"h\",\"\\u2C68\":\"h\",\"\\u2C76\":\"h\",\"\\u0265\":\"h\",\"\\u0195\":\"hv\",\"\\u24D8\":\"i\",\"\\uFF49\":\"i\",\"\\u00EC\":\"i\",\"\\u00ED\":\"i\",\"\\u00EE\":\"i\",\"\\u0129\":\"i\",\"\\u012B\":\"i\",\"\\u012D\":\"i\",\"\\u00EF\":\"i\",\"\\u1E2F\":\"i\",\"\\u1EC9\":\"i\",\"\\u01D0\":\"i\",\"\\u0209\":\"i\",\"\\u020B\":\"i\",\"\\u1ECB\":\"i\",\"\\u012F\":\"i\",\"\\u1E2D\":\"i\",\"\\u0268\":\"i\",\"\\u0131\":\"i\",\"\\u24D9\":\"j\",\"\\uFF4A\":\"j\",\"\\u0135\":\"j\",\"\\u01F0\":\"j\",\"\\u0249\":\"j\",\"\\u24DA\":\"k\",\"\\uFF4B\":\"k\",\"\\u1E31\":\"k\",\"\\u01E9\":\"k\",\"\\u1E33\":\"k\",\"\\u0137\":\"k\",\"\\u1E35\":\"k\",\"\\u0199\":\"k\",\"\\u2C6A\":\"k\",\"\\uA741\":\"k\",\"\\uA743\":\"k\",\"\\uA745\":\"k\",\"\\uA7A3\":\"k\",\"\\u24DB\":\"l\",\"\\uFF4C\":\"l\",\"\\u0140\":\"l\",\"\\u013A\":\"l\",\"\\u013E\":\"l\",\"\\u1E37\":\"l\",\"\\u1E39\":\"l\",\"\\u013C\":\"l\",\"\\u1E3D\":\"l\",\"\\u1E3B\":\"l\",\"\\u017F\":\"l\",\"\\u0142\":\"l\",\"\\u019A\":\"l\",\"\\u026B\":\"l\",\"\\u2C61\":\"l\",\"\\uA749\":\"l\",\"\\uA781\":\"l\",\"\\uA747\":\"l\",\"\\u01C9\":\"lj\",\"\\u24DC\":\"m\",\"\\uFF4D\":\"m\",\"\\u1E3F\":\"m\",\"\\u1E41\":\"m\",\"\\u1E43\":\"m\",\"\\u0271\":\"m\",\"\\u026F\":\"m\",\"\\u24DD\":\"n\",\"\\uFF4E\":\"n\",\"\\u01F9\":\"n\",\"\\u0144\":\"n\",\"\\u00F1\":\"n\",\"\\u1E45\":\"n\",\"\\u0148\":\"n\",\"\\u1E47\":\"n\",\"\\u0146\":\"n\",\"\\u1E4B\":\"n\",\"\\u1E49\":\"n\",\"\\u019E\":\"n\",\"\\u0272\":\"n\",\"\\u0149\":\"n\",\"\\uA791\":\"n\",\"\\uA7A5\":\"n\",\"\\u01CC\":\"nj\",\"\\u24DE\":\"o\",\"\\uFF4F\":\"o\",\"\\u00F2\":\"o\",\"\\u00F3\":\"o\",\"\\u00F4\":\"o\",\"\\u1ED3\":\"o\",\"\\u1ED1\":\"o\",\"\\u1ED7\":\"o\",\"\\u1ED5\":\"o\",\"\\u00F5\":\"o\",\"\\u1E4D\":\"o\",\"\\u022D\":\"o\",\"\\u1E4F\":\"o\",\"\\u014D\":\"o\",\"\\u1E51\":\"o\",\"\\u1E53\":\"o\",\"\\u014F\":\"o\",\"\\u022F\":\"o\",\"\\u0231\":\"o\",\"\\u00F6\":\"o\",\"\\u022B\":\"o\",\"\\u1ECF\":\"o\",\"\\u0151\":\"o\",\"\\u01D2\":\"o\",\"\\u020D\":\"o\",\"\\u020F\":\"o\",\"\\u01A1\":\"o\",\"\\u1EDD\":\"o\",\"\\u1EDB\":\"o\",\"\\u1EE1\":\"o\",\"\\u1EDF\":\"o\",\"\\u1EE3\":\"o\",\"\\u1ECD\":\"o\",\"\\u1ED9\":\"o\",\"\\u01EB\":\"o\",\"\\u01ED\":\"o\",\"\\u00F8\":\"o\",\"\\u01FF\":\"o\",\"\\u0254\":\"o\",\"\\uA74B\":\"o\",\"\\uA74D\":\"o\",\"\\u0275\":\"o\",\"\\u01A3\":\"oi\",\"\\u0223\":\"ou\",\"\\uA74F\":\"oo\",\"\\u24DF\":\"p\",\"\\uFF50\":\"p\",\"\\u1E55\":\"p\",\"\\u1E57\":\"p\",\"\\u01A5\":\"p\",\"\\u1D7D\":\"p\",\"\\uA751\":\"p\",\"\\uA753\":\"p\",\"\\uA755\":\"p\",\"\\u24E0\":\"q\",\"\\uFF51\":\"q\",\"\\u024B\":\"q\",\"\\uA757\":\"q\",\"\\uA759\":\"q\",\"\\u24E1\":\"r\",\"\\uFF52\":\"r\",\"\\u0155\":\"r\",\"\\u1E59\":\"r\",\"\\u0159\":\"r\",\"\\u0211\":\"r\",\"\\u0213\":\"r\",\"\\u1E5B\":\"r\",\"\\u1E5D\":\"r\",\"\\u0157\":\"r\",\"\\u1E5F\":\"r\",\"\\u024D\":\"r\",\"\\u027D\":\"r\",\"\\uA75B\":\"r\",\"\\uA7A7\":\"r\",\"\\uA783\":\"r\",\"\\u24E2\":\"s\",\"\\uFF53\":\"s\",\"\\u00DF\":\"s\",\"\\u015B\":\"s\",\"\\u1E65\":\"s\",\"\\u015D\":\"s\",\"\\u1E61\":\"s\",\"\\u0161\":\"s\",\"\\u1E67\":\"s\",\"\\u1E63\":\"s\",\"\\u1E69\":\"s\",\"\\u0219\":\"s\",\"\\u015F\":\"s\",\"\\u023F\":\"s\",\"\\uA7A9\":\"s\",\"\\uA785\":\"s\",\"\\u1E9B\":\"s\",\"\\u24E3\":\"t\",\"\\uFF54\":\"t\",\"\\u1E6B\":\"t\",\"\\u1E97\":\"t\",\"\\u0165\":\"t\",\"\\u1E6D\":\"t\",\"\\u021B\":\"t\",\"\\u0163\":\"t\",\"\\u1E71\":\"t\",\"\\u1E6F\":\"t\",\"\\u0167\":\"t\",\"\\u01AD\":\"t\",\"\\u0288\":\"t\",\"\\u2C66\":\"t\",\"\\uA787\":\"t\",\"\\uA729\":\"tz\",\"\\u24E4\":\"u\",\"\\uFF55\":\"u\",\"\\u00F9\":\"u\",\"\\u00FA\":\"u\",\"\\u00FB\":\"u\",\"\\u0169\":\"u\",\"\\u1E79\":\"u\",\"\\u016B\":\"u\",\"\\u1E7B\":\"u\",\"\\u016D\":\"u\",\"\\u00FC\":\"u\",\"\\u01DC\":\"u\",\"\\u01D8\":\"u\",\"\\u01D6\":\"u\",\"\\u01DA\":\"u\",\"\\u1EE7\":\"u\",\"\\u016F\":\"u\",\"\\u0171\":\"u\",\"\\u01D4\":\"u\",\"\\u0215\":\"u\",\"\\u0217\":\"u\",\"\\u01B0\":\"u\",\"\\u1EEB\":\"u\",\"\\u1EE9\":\"u\",\"\\u1EEF\":\"u\",\"\\u1EED\":\"u\",\"\\u1EF1\":\"u\",\"\\u1EE5\":\"u\",\"\\u1E73\":\"u\",\"\\u0173\":\"u\",\"\\u1E77\":\"u\",\"\\u1E75\":\"u\",\"\\u0289\":\"u\",\"\\u24E5\":\"v\",\"\\uFF56\":\"v\",\"\\u1E7D\":\"v\",\"\\u1E7F\":\"v\",\"\\u028B\":\"v\",\"\\uA75F\":\"v\",\"\\u028C\":\"v\",\"\\uA761\":\"vy\",\"\\u24E6\":\"w\",\"\\uFF57\":\"w\",\"\\u1E81\":\"w\",\"\\u1E83\":\"w\",\"\\u0175\":\"w\",\"\\u1E87\":\"w\",\"\\u1E85\":\"w\",\"\\u1E98\":\"w\",\"\\u1E89\":\"w\",\"\\u2C73\":\"w\",\"\\u24E7\":\"x\",\"\\uFF58\":\"x\",\"\\u1E8B\":\"x\",\"\\u1E8D\":\"x\",\"\\u24E8\":\"y\",\"\\uFF59\":\"y\",\"\\u1EF3\":\"y\",\"\\u00FD\":\"y\",\"\\u0177\":\"y\",\"\\u1EF9\":\"y\",\"\\u0233\":\"y\",\"\\u1E8F\":\"y\",\"\\u00FF\":\"y\",\"\\u1EF7\":\"y\",\"\\u1E99\":\"y\",\"\\u1EF5\":\"y\",\"\\u01B4\":\"y\",\"\\u024F\":\"y\",\"\\u1EFF\":\"y\",\"\\u24E9\":\"z\",\"\\uFF5A\":\"z\",\"\\u017A\":\"z\",\"\\u1E91\":\"z\",\"\\u017C\":\"z\",\"\\u017E\":\"z\",\"\\u1E93\":\"z\",\"\\u1E95\":\"z\",\"\\u01B6\":\"z\",\"\\u0225\":\"z\",\"\\u0240\":\"z\",\"\\u2C6C\":\"z\",\"\\uA763\":\"z\"};\r\n\r\n $document = $(document);\r\n\r\n nextUid=(function() { var counter=1; return function() { return counter++; }; }());\r\n\r\n\r\n function stripDiacritics(str) {\r\n var ret, i, l, c;\r\n\r\n if (!str || str.length < 1) return str;\r\n\r\n ret = \"\";\r\n for (i = 0, l = str.length; i < l; i++) {\r\n c = str.charAt(i);\r\n ret += DIACRITICS[c] || c;\r\n }\r\n return ret;\r\n }\r\n\r\n function indexOf(value, array) {\r\n var i = 0, l = array.length;\r\n for (; i < l; i = i + 1) {\r\n if (equal(value, array[i])) return i;\r\n }\r\n return -1;\r\n }\r\n\r\n function measureScrollbar () {\r\n var $template = $( MEASURE_SCROLLBAR_TEMPLATE );\r\n $template.appendTo('body');\r\n\r\n var dim = {\r\n width: $template.width() - $template[0].clientWidth,\r\n height: $template.height() - $template[0].clientHeight\r\n };\r\n $template.remove();\r\n\r\n return dim;\r\n }\r\n\r\n /**\r\n * Compares equality of a and b\r\n * @param a\r\n * @param b\r\n */\r\n function equal(a, b) {\r\n if (a === b) return true;\r\n if (a === undefined || b === undefined) return false;\r\n if (a === null || b === null) return false;\r\n // Check whether 'a' or 'b' is a string (primitive or object).\r\n // The concatenation of an empty string (+'') converts its argument to a string's primitive.\r\n if (a.constructor === String) return a+'' === b+''; // a+'' - in case 'a' is a String object\r\n if (b.constructor === String) return b+'' === a+''; // b+'' - in case 'b' is a String object\r\n return false;\r\n }\r\n\r\n /**\r\n * Splits the string into an array of values, trimming each value. An empty array is returned for nulls or empty\r\n * strings\r\n * @param string\r\n * @param separator\r\n */\r\n function splitVal(string, separator) {\r\n var val, i, l;\r\n if (string === null || string.length < 1) return [];\r\n val = string.split(separator);\r\n for (i = 0, l = val.length; i < l; i = i + 1) val[i] = $.trim(val[i]);\r\n return val;\r\n }\r\n\r\n function getSideBorderPadding(element) {\r\n return element.outerWidth(false) - element.width();\r\n }\r\n\r\n function installKeyUpChangeEvent(element) {\r\n var key=\"keyup-change-value\";\r\n element.on(\"keydown\", function () {\r\n if ($.data(element, key) === undefined) {\r\n $.data(element, key, element.val());\r\n }\r\n });\r\n element.on(\"keyup\", function () {\r\n var val= $.data(element, key);\r\n if (val !== undefined && element.val() !== val) {\r\n $.removeData(element, key);\r\n element.trigger(\"keyup-change\");\r\n }\r\n });\r\n }\r\n\r\n $document.on(\"mousemove\", function (e) {\r\n lastMousePosition.x = e.pageX;\r\n lastMousePosition.y = e.pageY;\r\n });\r\n\r\n /**\r\n * filters mouse events so an event is fired only if the mouse moved.\r\n *\r\n * filters out mouse events that occur when mouse is stationary but\r\n * the elements under the pointer are scrolled.\r\n */\r\n function installFilteredMouseMove(element) {\r\n element.on(\"mousemove\", function (e) {\r\n var lastpos = lastMousePosition;\r\n if (lastpos === undefined || lastpos.x !== e.pageX || lastpos.y !== e.pageY) {\r\n $(e.target).trigger(\"mousemove-filtered\", e);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Debounces a function. Returns a function that calls the original fn function only if no invocations have been made\r\n * within the last quietMillis milliseconds.\r\n *\r\n * @param quietMillis number of milliseconds to wait before invoking fn\r\n * @param fn function to be debounced\r\n * @param ctx object to be used as this reference within fn\r\n * @return debounced version of fn\r\n */\r\n function debounce(quietMillis, fn, ctx) {\r\n ctx = ctx || undefined;\r\n var timeout;\r\n return function () {\r\n var args = arguments;\r\n window.clearTimeout(timeout);\r\n timeout = window.setTimeout(function() {\r\n fn.apply(ctx, args);\r\n }, quietMillis);\r\n };\r\n }\r\n\r\n /**\r\n * A simple implementation of a thunk\r\n * @param formula function used to lazily initialize the thunk\r\n * @return {Function}\r\n */\r\n function thunk(formula) {\r\n var evaluated = false,\r\n value;\r\n return function() {\r\n if (evaluated === false) { value = formula(); evaluated = true; }\r\n return value;\r\n };\r\n };\r\n\r\n function installDebouncedScroll(threshold, element) {\r\n var notify = debounce(threshold, function (e) { element.trigger(\"scroll-debounced\", e);});\r\n element.on(\"scroll\", function (e) {\r\n if (indexOf(e.target, element.get()) >= 0) notify(e);\r\n });\r\n }\r\n\r\n function focus($el) {\r\n if ($el[0] === document.activeElement) return;\r\n\r\n /* set the focus in a 0 timeout - that way the focus is set after the processing\r\n of the current event has finished - which seems like the only reliable way\r\n to set focus */\r\n window.setTimeout(function() {\r\n var el=$el[0], pos=$el.val().length, range;\r\n\r\n $el.focus();\r\n\r\n /* make sure el received focus so we do not error out when trying to manipulate the caret.\r\n sometimes modals or others listeners may steal it after its set */\r\n if ($el.is(\":visible\") && el === document.activeElement) {\r\n\r\n /* after the focus is set move the caret to the end, necessary when we val()\r\n just before setting focus */\r\n if(el.setSelectionRange)\r\n {\r\n el.setSelectionRange(pos, pos);\r\n }\r\n else if (el.createTextRange) {\r\n range = el.createTextRange();\r\n range.collapse(false);\r\n range.select();\r\n }\r\n }\r\n }, 0);\r\n }\r\n\r\n function getCursorInfo(el) {\r\n el = $(el)[0];\r\n var offset = 0;\r\n var length = 0;\r\n if ('selectionStart' in el) {\r\n offset = el.selectionStart;\r\n length = el.selectionEnd - offset;\r\n } else if ('selection' in document) {\r\n el.focus();\r\n var sel = document.selection.createRange();\r\n length = document.selection.createRange().text.length;\r\n sel.moveStart('character', -el.value.length);\r\n offset = sel.text.length - length;\r\n }\r\n return { offset: offset, length: length };\r\n }\r\n\r\n function killEvent(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n function killEventImmediately(event) {\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n }\r\n\r\n function measureTextWidth(e) {\r\n if (!sizer){\r\n var style = e[0].currentStyle || window.getComputedStyle(e[0], null);\r\n sizer = $(document.createElement(\"div\")).css({\r\n position: \"absolute\",\r\n left: \"-10000px\",\r\n top: \"-10000px\",\r\n display: \"none\",\r\n fontSize: style.fontSize,\r\n fontFamily: style.fontFamily,\r\n fontStyle: style.fontStyle,\r\n fontWeight: style.fontWeight,\r\n letterSpacing: style.letterSpacing,\r\n textTransform: style.textTransform,\r\n whiteSpace: \"nowrap\"\r\n });\r\n sizer.attr(\"class\",\"select2-sizer\");\r\n $(\"body\").append(sizer);\r\n }\r\n sizer.text(e.val());\r\n return sizer.width();\r\n }\r\n\r\n function syncCssClasses(dest, src, adapter) {\r\n var classes, replacements = [], adapted;\r\n\r\n classes = dest.attr(\"class\");\r\n if (classes) {\r\n classes = '' + classes; // for IE which returns object\r\n $(classes.split(\" \")).each2(function() {\r\n if (this.indexOf(\"select2-\") === 0) {\r\n replacements.push(this);\r\n }\r\n });\r\n }\r\n classes = src.attr(\"class\");\r\n if (classes) {\r\n classes = '' + classes; // for IE which returns object\r\n $(classes.split(\" \")).each2(function() {\r\n if (this.indexOf(\"select2-\") !== 0) {\r\n adapted = adapter(this);\r\n if (adapted) {\r\n replacements.push(adapted);\r\n }\r\n }\r\n });\r\n }\r\n dest.attr(\"class\", replacements.join(\" \"));\r\n }\r\n\r\n\r\n function markMatch(text, term, markup, escapeMarkup) {\r\n var match=stripDiacritics(text.toUpperCase()).indexOf(stripDiacritics(term.toUpperCase())),\r\n tl=term.length;\r\n\r\n if (match<0) {\r\n markup.push(escapeMarkup(text));\r\n return;\r\n }\r\n\r\n markup.push(escapeMarkup(text.substring(0, match)));\r\n markup.push(\"\");\r\n markup.push(escapeMarkup(text.substring(match, match + tl)));\r\n markup.push(\"\");\r\n markup.push(escapeMarkup(text.substring(match + tl, text.length)));\r\n }\r\n\r\n function defaultEscapeMarkup(markup) {\r\n var replace_map = {\r\n '\\\\': '\',\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n \"'\": ''',\r\n \"/\": '/'\r\n };\r\n\r\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\r\n return replace_map[match];\r\n });\r\n }\r\n\r\n /**\r\n * Produces an ajax-based query function\r\n *\r\n * @param options object containing configuration paramters\r\n * @param options.params parameter map for the transport ajax call, can contain such options as cache, jsonpCallback, etc. see $.ajax\r\n * @param options.transport function that will be used to execute the ajax request. must be compatible with parameters supported by $.ajax\r\n * @param options.url url for the data\r\n * @param options.data a function(searchTerm, pageNumber, context) that should return an object containing query string parameters for the above url.\r\n * @param options.dataType request data type: ajax, jsonp, other datatatypes supported by jQuery's $.ajax function or the transport function if specified\r\n * @param options.quietMillis (optional) milliseconds to wait before making the ajaxRequest, helps debounce the ajax function if invoked too often\r\n * @param options.results a function(remoteData, pageNumber) that converts data returned form the remote request to the format expected by Select2.\r\n * The expected format is an object containing the following keys:\r\n * results array of objects that will be used as choices\r\n * more (optional) boolean indicating whether there are more results available\r\n * Example: {results:[{id:1, text:'Red'},{id:2, text:'Blue'}], more:true}\r\n */\r\n function ajax(options) {\r\n var timeout, // current scheduled but not yet executed request\r\n handler = null,\r\n quietMillis = options.quietMillis || 100,\r\n ajaxUrl = options.url,\r\n self = this;\r\n\r\n return function (query) {\r\n window.clearTimeout(timeout);\r\n timeout = window.setTimeout(function () {\r\n var data = options.data, // ajax data function\r\n url = ajaxUrl, // ajax url string or function\r\n transport = options.transport || $.fn.select2.ajaxDefaults.transport,\r\n // deprecated - to be removed in 4.0 - use params instead\r\n deprecated = {\r\n type: options.type || 'GET', // set type of request (GET or POST)\r\n cache: options.cache || false,\r\n jsonpCallback: options.jsonpCallback||undefined,\r\n dataType: options.dataType||\"json\"\r\n },\r\n params = $.extend({}, $.fn.select2.ajaxDefaults.params, deprecated);\r\n\r\n data = data ? data.call(self, query.term, query.page, query.context) : null;\r\n url = (typeof url === 'function') ? url.call(self, query.term, query.page, query.context) : url;\r\n\r\n if (handler) { handler.abort(); }\r\n\r\n if (options.params) {\r\n if ($.isFunction(options.params)) {\r\n $.extend(params, options.params.call(self));\r\n } else {\r\n $.extend(params, options.params);\r\n }\r\n }\r\n\r\n $.extend(params, {\r\n url: url,\r\n dataType: options.dataType,\r\n data: data,\r\n success: function (data) {\r\n // TODO - replace query.page with query so users have access to term, page, etc.\r\n var results = options.results(data, query.page);\r\n query.callback(results);\r\n }\r\n });\r\n handler = transport.call(self, params);\r\n }, quietMillis);\r\n };\r\n }\r\n\r\n /**\r\n * Produces a query function that works with a local array\r\n *\r\n * @param options object containing configuration parameters. The options parameter can either be an array or an\r\n * object.\r\n *\r\n * If the array form is used it is assumed that it contains objects with 'id' and 'text' keys.\r\n *\r\n * If the object form is used ti is assumed that it contains 'data' and 'text' keys. The 'data' key should contain\r\n * an array of objects that will be used as choices. These objects must contain at least an 'id' key. The 'text'\r\n * key can either be a String in which case it is expected that each element in the 'data' array has a key with the\r\n * value of 'text' which will be used to match choices. Alternatively, text can be a function(item) that can extract\r\n * the text.\r\n */\r\n function local(options) {\r\n var data = options, // data elements\r\n dataText,\r\n tmp,\r\n text = function (item) { return \"\"+item.text; }; // function used to retrieve the text portion of a data item that is matched against the search\r\n\r\n if ($.isArray(data)) {\r\n tmp = data;\r\n data = { results: tmp };\r\n }\r\n\r\n if ($.isFunction(data) === false) {\r\n tmp = data;\r\n data = function() { return tmp; };\r\n }\r\n\r\n var dataItem = data();\r\n if (dataItem.text) {\r\n text = dataItem.text;\r\n // if text is not a function we assume it to be a key name\r\n if (!$.isFunction(text)) {\r\n dataText = dataItem.text; // we need to store this in a separate variable because in the next step data gets reset and data.text is no longer available\r\n text = function (item) { return item[dataText]; };\r\n }\r\n }\r\n\r\n return function (query) {\r\n var t = query.term, filtered = { results: [] }, process;\r\n if (t === \"\") {\r\n query.callback(data());\r\n return;\r\n }\r\n\r\n process = function(datum, collection) {\r\n var group, attr;\r\n datum = datum[0];\r\n if (datum.children) {\r\n group = {};\r\n for (attr in datum) {\r\n if (datum.hasOwnProperty(attr)) group[attr]=datum[attr];\r\n }\r\n group.children=[];\r\n $(datum.children).each2(function(i, childDatum) { process(childDatum, group.children); });\r\n if (group.children.length || query.matcher(t, text(group), datum)) {\r\n collection.push(group);\r\n }\r\n } else {\r\n if (query.matcher(t, text(datum), datum)) {\r\n collection.push(datum);\r\n }\r\n }\r\n };\r\n\r\n $(data().results).each2(function(i, datum) { process(datum, filtered.results); });\r\n query.callback(filtered);\r\n };\r\n }\r\n\r\n // TODO javadoc\r\n function tags(data) {\r\n var isFunc = $.isFunction(data);\r\n return function (query) {\r\n var t = query.term, filtered = {results: []};\r\n $(isFunc ? data() : data).each(function () {\r\n var isObject = this.text !== undefined,\r\n text = isObject ? this.text : this;\r\n if (t === \"\" || query.matcher(t, text)) {\r\n filtered.results.push(isObject ? this : {id: this, text: this});\r\n }\r\n });\r\n query.callback(filtered);\r\n };\r\n }\r\n\r\n /**\r\n * Checks if the formatter function should be used.\r\n *\r\n * Throws an error if it is not a function. Returns true if it should be used,\r\n * false if no formatting should be performed.\r\n *\r\n * @param formatter\r\n */\r\n function checkFormatter(formatter, formatterName) {\r\n if ($.isFunction(formatter)) return true;\r\n if (!formatter) return false;\r\n throw new Error(formatterName +\" must be a function or a falsy value\");\r\n }\r\n\r\n function evaluate(val) {\r\n return $.isFunction(val) ? val() : val;\r\n }\r\n\r\n function countResults(results) {\r\n var count = 0;\r\n $.each(results, function(i, item) {\r\n if (item.children) {\r\n count += countResults(item.children);\r\n } else {\r\n count++;\r\n }\r\n });\r\n return count;\r\n }\r\n\r\n /**\r\n * Default tokenizer. This function uses breaks the input on substring match of any string from the\r\n * opts.tokenSeparators array and uses opts.createSearchChoice to create the choice object. Both of those\r\n * two options have to be defined in order for the tokenizer to work.\r\n *\r\n * @param input text user has typed so far or pasted into the search field\r\n * @param selection currently selected choices\r\n * @param selectCallback function(choice) callback tho add the choice to selection\r\n * @param opts select2's opts\r\n * @return undefined/null to leave the current input unchanged, or a string to change the input to the returned value\r\n */\r\n function defaultTokenizer(input, selection, selectCallback, opts) {\r\n var original = input, // store the original so we can compare and know if we need to tell the search to update its text\r\n dupe = false, // check for whether a token we extracted represents a duplicate selected choice\r\n token, // token\r\n index, // position at which the separator was found\r\n i, l, // looping variables\r\n separator; // the matched separator\r\n\r\n if (!opts.createSearchChoice || !opts.tokenSeparators || opts.tokenSeparators.length < 1) return undefined;\r\n\r\n while (true) {\r\n index = -1;\r\n\r\n for (i = 0, l = opts.tokenSeparators.length; i < l; i++) {\r\n separator = opts.tokenSeparators[i];\r\n index = input.indexOf(separator);\r\n if (index >= 0) break;\r\n }\r\n\r\n if (index < 0) break; // did not find any token separator in the input string, bail\r\n\r\n token = input.substring(0, index);\r\n input = input.substring(index + separator.length);\r\n\r\n if (token.length > 0) {\r\n token = opts.createSearchChoice.call(this, token, selection);\r\n if (token !== undefined && token !== null && opts.id(token) !== undefined && opts.id(token) !== null) {\r\n dupe = false;\r\n for (i = 0, l = selection.length; i < l; i++) {\r\n if (equal(opts.id(token), opts.id(selection[i]))) {\r\n dupe = true; break;\r\n }\r\n }\r\n\r\n if (!dupe) selectCallback(token);\r\n }\r\n }\r\n }\r\n\r\n if (original!==input) return input;\r\n }\r\n\r\n /**\r\n * Creates a new class\r\n *\r\n * @param superClass\r\n * @param methods\r\n */\r\n function clazz(SuperClass, methods) {\r\n var constructor = function () {};\r\n constructor.prototype = new SuperClass;\r\n constructor.prototype.constructor = constructor;\r\n constructor.prototype.parent = SuperClass.prototype;\r\n constructor.prototype = $.extend(constructor.prototype, methods);\r\n return constructor;\r\n }\r\n\r\n AbstractSelect2 = clazz(Object, {\r\n\r\n // abstract\r\n bind: function (func) {\r\n var self = this;\r\n return function () {\r\n func.apply(self, arguments);\r\n };\r\n },\r\n\r\n // abstract\r\n init: function (opts) {\r\n var results, search, resultsSelector = \".select2-results\";\r\n\r\n // prepare options\r\n this.opts = opts = this.prepareOpts(opts);\r\n\r\n this.id=opts.id;\r\n\r\n // destroy if called on an existing component\r\n if (opts.element.data(\"select2\") !== undefined &&\r\n opts.element.data(\"select2\") !== null) {\r\n opts.element.data(\"select2\").destroy();\r\n }\r\n\r\n this.container = this.createContainer();\r\n\r\n this.containerId=\"s2id_\"+(opts.element.attr(\"id\") || \"autogen\"+nextUid());\r\n this.containerSelector=\"#\"+this.containerId.replace(/([;&,\\.\\+\\*\\~':\"\\!\\^#$%@\\[\\]\\(\\)=>\\|])/g, '\\\\$1');\r\n this.container.attr(\"id\", this.containerId);\r\n\r\n // cache the body so future lookups are cheap\r\n this.body = thunk(function() { return opts.element.closest(\"body\"); });\r\n\r\n syncCssClasses(this.container, this.opts.element, this.opts.adaptContainerCssClass);\r\n\r\n this.container.attr(\"style\", opts.element.attr(\"style\"));\r\n this.container.css(evaluate(opts.containerCss));\r\n this.container.addClass(evaluate(opts.containerCssClass));\r\n\r\n this.elementTabIndex = this.opts.element.attr(\"tabindex\");\r\n\r\n // swap container for the element\r\n this.opts.element\r\n .data(\"select2\", this)\r\n .attr(\"tabindex\", \"-1\")\r\n .before(this.container)\r\n .on(\"click.select2\", killEvent); // do not leak click events\r\n\r\n this.container.data(\"select2\", this);\r\n\r\n this.dropdown = this.container.find(\".select2-drop\");\r\n\r\n syncCssClasses(this.dropdown, this.opts.element, this.opts.adaptDropdownCssClass);\r\n\r\n this.dropdown.addClass(evaluate(opts.dropdownCssClass));\r\n this.dropdown.data(\"select2\", this);\r\n this.dropdown.on(\"click\", killEvent);\r\n\r\n this.results = results = this.container.find(resultsSelector);\r\n this.search = search = this.container.find(\"input.select2-input\");\r\n\r\n this.queryCount = 0;\r\n this.resultsPage = 0;\r\n this.context = null;\r\n\r\n // initialize the container\r\n this.initContainer();\r\n\r\n this.container.on(\"click\", killEvent);\r\n\r\n installFilteredMouseMove(this.results);\r\n this.dropdown.on(\"mousemove-filtered touchstart touchmove touchend\", resultsSelector, this.bind(this.highlightUnderEvent));\r\n\r\n installDebouncedScroll(80, this.results);\r\n this.dropdown.on(\"scroll-debounced\", resultsSelector, this.bind(this.loadMoreIfNeeded));\r\n\r\n // do not propagate change event from the search field out of the component\r\n $(this.container).on(\"change\", \".select2-input\", function(e) {e.stopPropagation();});\r\n $(this.dropdown).on(\"change\", \".select2-input\", function(e) {e.stopPropagation();});\r\n\r\n // if jquery.mousewheel plugin is installed we can prevent out-of-bounds scrolling of results via mousewheel\r\n if ($.fn.mousewheel) {\r\n results.mousewheel(function (e, delta, deltaX, deltaY) {\r\n var top = results.scrollTop();\r\n if (deltaY > 0 && top - deltaY <= 0) {\r\n results.scrollTop(0);\r\n killEvent(e);\r\n } else if (deltaY < 0 && results.get(0).scrollHeight - results.scrollTop() + deltaY <= results.height()) {\r\n results.scrollTop(results.get(0).scrollHeight - results.height());\r\n killEvent(e);\r\n }\r\n });\r\n }\r\n\r\n installKeyUpChangeEvent(search);\r\n search.on(\"keyup-change input paste\", this.bind(this.updateResults));\r\n search.on(\"focus\", function () { search.addClass(\"select2-focused\"); });\r\n search.on(\"blur\", function () { search.removeClass(\"select2-focused\");});\r\n\r\n this.dropdown.on(\"mouseup\", resultsSelector, this.bind(function (e) {\r\n if ($(e.target).closest(\".select2-result-selectable\").length > 0) {\r\n this.highlightUnderEvent(e);\r\n this.selectHighlighted(e);\r\n }\r\n }));\r\n\r\n // trap all mouse events from leaving the dropdown. sometimes there may be a modal that is listening\r\n // for mouse events outside of itself so it can close itself. since the dropdown is now outside the select2's\r\n // dom it will trigger the popup close, which is not what we want\r\n this.dropdown.on(\"click mouseup mousedown\", function (e) { e.stopPropagation(); });\r\n\r\n if ($.isFunction(this.opts.initSelection)) {\r\n // initialize selection based on the current value of the source element\r\n this.initSelection();\r\n\r\n // if the user has provided a function that can set selection based on the value of the source element\r\n // we monitor the change event on the element and trigger it, allowing for two way synchronization\r\n this.monitorSource();\r\n }\r\n\r\n if (opts.maximumInputLength !== null) {\r\n this.search.attr(\"maxlength\", opts.maximumInputLength);\r\n }\r\n\r\n var disabled = opts.element.prop(\"disabled\");\r\n if (disabled === undefined) disabled = false;\r\n this.enable(!disabled);\r\n\r\n var readonly = opts.element.prop(\"readonly\");\r\n if (readonly === undefined) readonly = false;\r\n this.readonly(readonly);\r\n\r\n // Calculate size of scrollbar\r\n scrollBarDimensions = scrollBarDimensions || measureScrollbar();\r\n\r\n this.autofocus = opts.element.prop(\"autofocus\");\r\n opts.element.prop(\"autofocus\", false);\r\n if (this.autofocus) this.focus();\r\n\r\n this.nextSearchTerm = undefined;\r\n },\r\n\r\n // abstract\r\n destroy: function () {\r\n var element=this.opts.element, select2 = element.data(\"select2\");\r\n\r\n this.close();\r\n\r\n if (this.propertyObserver) { delete this.propertyObserver; this.propertyObserver = null; }\r\n\r\n if (select2 !== undefined) {\r\n select2.container.remove();\r\n select2.dropdown.remove();\r\n element\r\n .removeClass(\"select2-offscreen\")\r\n .removeData(\"select2\")\r\n .off(\".select2\")\r\n .prop(\"autofocus\", this.autofocus || false);\r\n if (this.elementTabIndex) {\r\n element.attr({tabindex: this.elementTabIndex});\r\n } else {\r\n element.removeAttr(\"tabindex\");\r\n }\r\n element.show();\r\n }\r\n },\r\n\r\n // abstract\r\n optionToData: function(element) {\r\n if (element.is(\"option\")) {\r\n return {\r\n id:element.prop(\"value\"),\r\n text:element.text(),\r\n element: element.get(),\r\n css: element.attr(\"class\"),\r\n disabled: element.prop(\"disabled\"),\r\n locked: equal(element.attr(\"locked\"), \"locked\") || equal(element.data(\"locked\"), true)\r\n };\r\n } else if (element.is(\"optgroup\")) {\r\n return {\r\n text:element.attr(\"label\"),\r\n children:[],\r\n element: element.get(),\r\n css: element.attr(\"class\")\r\n };\r\n }\r\n },\r\n\r\n // abstract\r\n prepareOpts: function (opts) {\r\n var element, select, idKey, ajaxUrl, self = this;\r\n\r\n element = opts.element;\r\n\r\n if (element.get(0).tagName.toLowerCase() === \"select\") {\r\n this.select = select = opts.element;\r\n }\r\n\r\n if (select) {\r\n // these options are not allowed when attached to a select because they are picked up off the element itself\r\n $.each([\"id\", \"multiple\", \"ajax\", \"query\", \"createSearchChoice\", \"initSelection\", \"data\", \"tags\"], function () {\r\n if (this in opts) {\r\n throw new Error(\"Option '\" + this + \"' is not allowed for Select2 when attached to a \",\r\n \"
\",\r\n \" \",\r\n \" \",\r\n \"
\"].join(\"\"));\r\n return container;\r\n },\r\n\r\n // single\r\n enableInterface: function() {\r\n if (this.parent.enableInterface.apply(this, arguments)) {\r\n this.focusser.prop(\"disabled\", !this.isInterfaceEnabled());\r\n }\r\n },\r\n\r\n // single\r\n opening: function () {\r\n var el, range, len;\r\n\r\n if (this.opts.minimumResultsForSearch >= 0) {\r\n this.showSearch(true);\r\n }\r\n\r\n this.parent.opening.apply(this, arguments);\r\n\r\n if (this.showSearchInput !== false) {\r\n // IE appends focusser.val() at the end of field :/ so we manually insert it at the beginning using a range\r\n // all other browsers handle this just fine\r\n\r\n this.search.val(this.focusser.val());\r\n }\r\n this.search.focus();\r\n // move the cursor to the end after focussing, otherwise it will be at the beginning and\r\n // new text will appear *before* focusser.val()\r\n el = this.search.get(0);\r\n if (el.createTextRange) {\r\n range = el.createTextRange();\r\n range.collapse(false);\r\n range.select();\r\n } else if (el.setSelectionRange) {\r\n len = this.search.val().length;\r\n el.setSelectionRange(len, len);\r\n }\r\n\r\n // initializes search's value with nextSearchTerm (if defined by user)\r\n // ignore nextSearchTerm if the dropdown is opened by the user pressing a letter\r\n if(this.search.val() === \"\") {\r\n if(this.nextSearchTerm != undefined){\r\n this.search.val(this.nextSearchTerm);\r\n this.search.select();\r\n }\r\n }\r\n\r\n this.focusser.prop(\"disabled\", true).val(\"\");\r\n this.updateResults(true);\r\n this.opts.element.trigger($.Event(\"select2-open\"));\r\n },\r\n\r\n // single\r\n close: function (params) {\r\n if (!this.opened()) return;\r\n this.parent.close.apply(this, arguments);\r\n\r\n params = params || {focus: true};\r\n this.focusser.removeAttr(\"disabled\");\r\n\r\n if (params.focus) {\r\n this.focusser.focus();\r\n }\r\n },\r\n\r\n // single\r\n focus: function () {\r\n if (this.opened()) {\r\n this.close();\r\n } else {\r\n this.focusser.removeAttr(\"disabled\");\r\n this.focusser.focus();\r\n }\r\n },\r\n\r\n // single\r\n isFocused: function () {\r\n return this.container.hasClass(\"select2-container-active\");\r\n },\r\n\r\n // single\r\n cancel: function () {\r\n this.parent.cancel.apply(this, arguments);\r\n this.focusser.removeAttr(\"disabled\");\r\n this.focusser.focus();\r\n },\r\n\r\n // single\r\n destroy: function() {\r\n $(\"label[for='\" + this.focusser.attr('id') + \"']\")\r\n .attr('for', this.opts.element.attr(\"id\"));\r\n this.parent.destroy.apply(this, arguments);\r\n },\r\n\r\n // single\r\n initContainer: function () {\r\n\r\n var selection,\r\n container = this.container,\r\n dropdown = this.dropdown,\r\n idSuffix = nextUid(),\r\n elementLabel;\r\n\r\n if (this.opts.minimumResultsForSearch < 0) {\r\n this.showSearch(false);\r\n } else {\r\n this.showSearch(true);\r\n }\r\n\r\n this.selection = selection = container.find(\".select2-choice\");\r\n\r\n this.focusser = container.find(\".select2-focusser\");\r\n\r\n // add aria associations\r\n selection.find(\".select2-chosen\").attr(\"id\", \"select2-chosen-\"+idSuffix);\r\n this.focusser.attr(\"aria-labelledby\", \"select2-chosen-\"+idSuffix);\r\n this.results.attr(\"id\", \"select2-results-\"+idSuffix);\r\n this.search.attr(\"aria-owns\", \"select2-results-\"+idSuffix);\r\n\r\n // rewrite labels from original element to focusser\r\n this.focusser.attr(\"id\", \"s2id_autogen\"+idSuffix);\r\n\r\n elementLabel = $(\"label[for='\" + this.opts.element.attr(\"id\") + \"']\")\r\n .attr('for', this.focusser.attr('id'));\r\n\r\n // Ensure the original element retains an accessible name\r\n var originalTitle = this.opts.element.attr(\"title\");\r\n this.opts.element.attr(\"title\", (originalTitle || elementLabel.text()));\r\n\r\n this.focusser.attr(\"tabindex\", this.elementTabIndex);\r\n\r\n this.search.on(\"keydown\", this.bind(function (e) {\r\n if (!this.isInterfaceEnabled()) return;\r\n\r\n if (e.which === KEY.PAGE_UP || e.which === KEY.PAGE_DOWN) {\r\n // prevent the page from scrolling\r\n killEvent(e);\r\n return;\r\n }\r\n\r\n switch (e.which) {\r\n case KEY.UP:\r\n case KEY.DOWN:\r\n this.moveHighlight((e.which === KEY.UP) ? -1 : 1);\r\n killEvent(e);\r\n return;\r\n case KEY.ENTER:\r\n this.selectHighlighted();\r\n killEvent(e);\r\n return;\r\n case KEY.TAB:\r\n this.selectHighlighted({noFocus: true});\r\n return;\r\n case KEY.ESC:\r\n this.cancel(e);\r\n killEvent(e);\r\n return;\r\n }\r\n }));\r\n\r\n this.search.on(\"blur\", this.bind(function(e) {\r\n // a workaround for chrome to keep the search field focussed when the scroll bar is used to scroll the dropdown.\r\n // without this the search field loses focus which is annoying\r\n if (document.activeElement === this.body().get(0)) {\r\n window.setTimeout(this.bind(function() {\r\n if (this.opened()) {\r\n this.search.focus();\r\n }\r\n }), 0);\r\n }\r\n }));\r\n\r\n this.focusser.on(\"keydown\", this.bind(function (e) {\r\n if (!this.isInterfaceEnabled()) return;\r\n\r\n if (e.which === KEY.TAB || KEY.isControl(e) || KEY.isFunctionKey(e) || e.which === KEY.ESC) {\r\n return;\r\n }\r\n\r\n if (this.opts.openOnEnter === false && e.which === KEY.ENTER) {\r\n killEvent(e);\r\n return;\r\n }\r\n\r\n if (e.which == KEY.DOWN || e.which == KEY.UP\r\n || (e.which == KEY.ENTER && this.opts.openOnEnter)) {\r\n\r\n if (e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) return;\r\n\r\n this.open();\r\n killEvent(e);\r\n return;\r\n }\r\n\r\n if (e.which == KEY.DELETE || e.which == KEY.BACKSPACE) {\r\n if (this.opts.allowClear) {\r\n this.clear();\r\n }\r\n killEvent(e);\r\n return;\r\n }\r\n }));\r\n\r\n\r\n installKeyUpChangeEvent(this.focusser);\r\n this.focusser.on(\"keyup-change input\", this.bind(function(e) {\r\n if (this.opts.minimumResultsForSearch >= 0) {\r\n e.stopPropagation();\r\n if (this.opened()) return;\r\n this.open();\r\n }\r\n }));\r\n\r\n selection.on(\"mousedown\", \"abbr\", this.bind(function (e) {\r\n if (!this.isInterfaceEnabled()) return;\r\n this.clear();\r\n killEventImmediately(e);\r\n this.close();\r\n this.selection.focus();\r\n }));\r\n\r\n selection.on(\"mousedown\", this.bind(function (e) {\r\n\r\n if (!this.container.hasClass(\"select2-container-active\")) {\r\n this.opts.element.trigger($.Event(\"select2-focus\"));\r\n }\r\n\r\n if (this.opened()) {\r\n this.close();\r\n } else if (this.isInterfaceEnabled()) {\r\n this.open();\r\n }\r\n\r\n killEvent(e);\r\n }));\r\n\r\n dropdown.on(\"mousedown\", this.bind(function() { this.search.focus(); }));\r\n\r\n selection.on(\"focus\", this.bind(function(e) {\r\n killEvent(e);\r\n }));\r\n\r\n this.focusser.on(\"focus\", this.bind(function(){\r\n if (!this.container.hasClass(\"select2-container-active\")) {\r\n this.opts.element.trigger($.Event(\"select2-focus\"));\r\n }\r\n this.container.addClass(\"select2-container-active\");\r\n })).on(\"blur\", this.bind(function() {\r\n if (!this.opened()) {\r\n this.container.removeClass(\"select2-container-active\");\r\n this.opts.element.trigger($.Event(\"select2-blur\"));\r\n }\r\n }));\r\n this.search.on(\"focus\", this.bind(function(){\r\n if (!this.container.hasClass(\"select2-container-active\")) {\r\n this.opts.element.trigger($.Event(\"select2-focus\"));\r\n }\r\n this.container.addClass(\"select2-container-active\");\r\n }));\r\n\r\n this.initContainerWidth();\r\n this.opts.element.addClass(\"select2-offscreen\");\r\n this.setPlaceholder();\r\n\r\n },\r\n\r\n // single\r\n clear: function(triggerChange) {\r\n var data=this.selection.data(\"select2-data\");\r\n if (data) { // guard against queued quick consecutive clicks\r\n var evt = $.Event(\"select2-clearing\");\r\n this.opts.element.trigger(evt);\r\n if (evt.isDefaultPrevented()) {\r\n return;\r\n }\r\n var placeholderOption = this.getPlaceholderOption();\r\n this.opts.element.val(placeholderOption ? placeholderOption.val() : \"\");\r\n this.selection.find(\".select2-chosen\").empty();\r\n this.selection.removeData(\"select2-data\");\r\n this.setPlaceholder();\r\n\r\n if (triggerChange !== false){\r\n this.opts.element.trigger({ type: \"select2-removed\", val: this.id(data), choice: data });\r\n this.triggerChange({removed:data});\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Sets selection based on source element's value\r\n */\r\n // single\r\n initSelection: function () {\r\n var selected;\r\n if (this.isPlaceholderOptionSelected()) {\r\n this.updateSelection(null);\r\n this.close();\r\n this.setPlaceholder();\r\n } else {\r\n var self = this;\r\n this.opts.initSelection.call(null, this.opts.element, function(selected){\r\n if (selected !== undefined && selected !== null) {\r\n self.updateSelection(selected);\r\n self.close();\r\n self.setPlaceholder();\r\n }\r\n });\r\n }\r\n },\r\n\r\n isPlaceholderOptionSelected: function() {\r\n var placeholderOption;\r\n if (!this.getPlaceholder()) return false; // no placeholder specified so no option should be considered\r\n return ((placeholderOption = this.getPlaceholderOption()) !== undefined && placeholderOption.prop(\"selected\"))\r\n || (this.opts.element.val() === \"\")\r\n || (this.opts.element.val() === undefined)\r\n || (this.opts.element.val() === null);\r\n },\r\n\r\n // single\r\n prepareOpts: function () {\r\n var opts = this.parent.prepareOpts.apply(this, arguments),\r\n self=this;\r\n\r\n if (opts.element.get(0).tagName.toLowerCase() === \"select\") {\r\n // install the selection initializer\r\n opts.initSelection = function (element, callback) {\r\n var selected = element.find(\"option\").filter(function() { return this.selected });\r\n // a single select box always has a value, no need to null check 'selected'\r\n callback(self.optionToData(selected));\r\n };\r\n } else if (\"data\" in opts) {\r\n // install default initSelection when applied to hidden input and data is local\r\n opts.initSelection = opts.initSelection || function (element, callback) {\r\n var id = element.val();\r\n //search in data by id, storing the actual matching item\r\n var match = null;\r\n opts.query({\r\n matcher: function(term, text, el){\r\n var is_match = equal(id, opts.id(el));\r\n if (is_match) {\r\n match = el;\r\n }\r\n return is_match;\r\n },\r\n callback: !$.isFunction(callback) ? $.noop : function() {\r\n callback(match);\r\n }\r\n });\r\n };\r\n }\r\n\r\n return opts;\r\n },\r\n\r\n // single\r\n getPlaceholder: function() {\r\n // if a placeholder is specified on a single select without a valid placeholder option ignore it\r\n if (this.select) {\r\n if (this.getPlaceholderOption() === undefined) {\r\n return undefined;\r\n }\r\n }\r\n\r\n return this.parent.getPlaceholder.apply(this, arguments);\r\n },\r\n\r\n // single\r\n setPlaceholder: function () {\r\n var placeholder = this.getPlaceholder();\r\n\r\n if (this.isPlaceholderOptionSelected() && placeholder !== undefined) {\r\n\r\n // check for a placeholder option if attached to a select\r\n if (this.select && this.getPlaceholderOption() === undefined) return;\r\n\r\n this.selection.find(\".select2-chosen\").html(this.opts.escapeMarkup(placeholder));\r\n\r\n this.selection.addClass(\"select2-default\");\r\n\r\n this.container.removeClass(\"select2-allowclear\");\r\n }\r\n },\r\n\r\n // single\r\n postprocessResults: function (data, initial, noHighlightUpdate) {\r\n var selected = 0, self = this, showSearchInput = true;\r\n\r\n // find the selected element in the result list\r\n\r\n this.findHighlightableChoices().each2(function (i, elm) {\r\n if (equal(self.id(elm.data(\"select2-data\")), self.opts.element.val())) {\r\n selected = i;\r\n return false;\r\n }\r\n });\r\n\r\n // and highlight it\r\n if (noHighlightUpdate !== false) {\r\n if (initial === true && selected >= 0) {\r\n this.highlight(selected);\r\n } else {\r\n this.highlight(0);\r\n }\r\n }\r\n\r\n // hide the search box if this is the first we got the results and there are enough of them for search\r\n\r\n if (initial === true) {\r\n var min = this.opts.minimumResultsForSearch;\r\n if (min >= 0) {\r\n this.showSearch(countResults(data.results) >= min);\r\n }\r\n }\r\n },\r\n\r\n // single\r\n showSearch: function(showSearchInput) {\r\n if (this.showSearchInput === showSearchInput) return;\r\n\r\n this.showSearchInput = showSearchInput;\r\n\r\n this.dropdown.find(\".select2-search\").toggleClass(\"select2-search-hidden\", !showSearchInput);\r\n this.dropdown.find(\".select2-search\").toggleClass(\"select2-offscreen\", !showSearchInput);\r\n //add \"select2-with-searchbox\" to the container if search box is shown\r\n $(this.dropdown, this.container).toggleClass(\"select2-with-searchbox\", showSearchInput);\r\n },\r\n\r\n // single\r\n onSelect: function (data, options) {\r\n\r\n if (!this.triggerSelect(data)) { return; }\r\n\r\n var old = this.opts.element.val(),\r\n oldData = this.data();\r\n\r\n this.opts.element.val(this.id(data));\r\n this.updateSelection(data);\r\n\r\n this.opts.element.trigger({ type: \"select2-selected\", val: this.id(data), choice: data });\r\n\r\n this.nextSearchTerm = this.opts.nextSearchTerm(data, this.search.val());\r\n this.close();\r\n\r\n if (!options || !options.noFocus)\r\n this.focusser.focus();\r\n\r\n if (!equal(old, this.id(data))) { this.triggerChange({added:data,removed:oldData}); }\r\n },\r\n\r\n // single\r\n updateSelection: function (data) {\r\n\r\n var container=this.selection.find(\".select2-chosen\"), formatted, cssClass;\r\n\r\n this.selection.data(\"select2-data\", data);\r\n\r\n container.empty();\r\n if (data !== null) {\r\n formatted=this.opts.formatSelection(data, container, this.opts.escapeMarkup);\r\n }\r\n if (formatted !== undefined) {\r\n container.append(formatted);\r\n }\r\n cssClass=this.opts.formatSelectionCssClass(data, container);\r\n if (cssClass !== undefined) {\r\n container.addClass(cssClass);\r\n }\r\n\r\n this.selection.removeClass(\"select2-default\");\r\n\r\n if (this.opts.allowClear && this.getPlaceholder() !== undefined) {\r\n this.container.addClass(\"select2-allowclear\");\r\n }\r\n },\r\n\r\n // single\r\n val: function () {\r\n var val,\r\n triggerChange = false,\r\n data = null,\r\n self = this,\r\n oldData = this.data();\r\n\r\n if (arguments.length === 0) {\r\n return this.opts.element.val();\r\n }\r\n\r\n val = arguments[0];\r\n\r\n if (arguments.length > 1) {\r\n triggerChange = arguments[1];\r\n }\r\n\r\n if (this.select) {\r\n this.select\r\n .val(val)\r\n .find(\"option\").filter(function() { return this.selected }).each2(function (i, elm) {\r\n data = self.optionToData(elm);\r\n return false;\r\n });\r\n this.updateSelection(data);\r\n this.setPlaceholder();\r\n if (triggerChange) {\r\n this.triggerChange({added: data, removed:oldData});\r\n }\r\n } else {\r\n // val is an id. !val is true for [undefined,null,'',0] - 0 is legal\r\n if (!val && val !== 0) {\r\n this.clear(triggerChange);\r\n return;\r\n }\r\n if (this.opts.initSelection === undefined) {\r\n throw new Error(\"cannot call val() if initSelection() is not defined\");\r\n }\r\n this.opts.element.val(val);\r\n this.opts.initSelection(this.opts.element, function(data){\r\n self.opts.element.val(!data ? \"\" : self.id(data));\r\n self.updateSelection(data);\r\n self.setPlaceholder();\r\n if (triggerChange) {\r\n self.triggerChange({added: data, removed:oldData});\r\n }\r\n });\r\n }\r\n },\r\n\r\n // single\r\n clearSearch: function () {\r\n this.search.val(\"\");\r\n this.focusser.val(\"\");\r\n },\r\n\r\n // single\r\n data: function(value) {\r\n var data,\r\n triggerChange = false;\r\n\r\n if (arguments.length === 0) {\r\n data = this.selection.data(\"select2-data\");\r\n if (data == undefined) data = null;\r\n return data;\r\n } else {\r\n if (arguments.length > 1) {\r\n triggerChange = arguments[1];\r\n }\r\n if (!value) {\r\n this.clear(triggerChange);\r\n } else {\r\n data = this.data();\r\n this.opts.element.val(!value ? \"\" : this.id(value));\r\n this.updateSelection(value);\r\n if (triggerChange) {\r\n this.triggerChange({added: value, removed:data});\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n MultiSelect2 = clazz(AbstractSelect2, {\r\n\r\n // multi\r\n createContainer: function () {\r\n var container = $(document.createElement(\"div\")).attr({\r\n \"class\": \"select2-container select2-container-multi\"\r\n }).html([\r\n \"\",\r\n \"
\",\r\n \" \",\r\n \"
\"].join(\"\"));\r\n return container;\r\n },\r\n\r\n // multi\r\n prepareOpts: function () {\r\n var opts = this.parent.prepareOpts.apply(this, arguments),\r\n self=this;\r\n\r\n // TODO validate placeholder is a string if specified\r\n\r\n if (opts.element.get(0).tagName.toLowerCase() === \"select\") {\r\n // install sthe selection initializer\r\n opts.initSelection = function (element, callback) {\r\n\r\n var data = [];\r\n\r\n element.find(\"option\").filter(function() { return this.selected }).each2(function (i, elm) {\r\n data.push(self.optionToData(elm));\r\n });\r\n callback(data);\r\n };\r\n } else if (\"data\" in opts) {\r\n // install default initSelection when applied to hidden input and data is local\r\n opts.initSelection = opts.initSelection || function (element, callback) {\r\n var ids = splitVal(element.val(), opts.separator);\r\n //search in data by array of ids, storing matching items in a list\r\n var matches = [];\r\n opts.query({\r\n matcher: function(term, text, el){\r\n var is_match = $.grep(ids, function(id) {\r\n return equal(id, opts.id(el));\r\n }).length;\r\n if (is_match) {\r\n matches.push(el);\r\n }\r\n return is_match;\r\n },\r\n callback: !$.isFunction(callback) ? $.noop : function() {\r\n // reorder matches based on the order they appear in the ids array because right now\r\n // they are in the order in which they appear in data array\r\n var ordered = [];\r\n for (var i = 0; i < ids.length; i++) {\r\n var id = ids[i];\r\n for (var j = 0; j < matches.length; j++) {\r\n var match = matches[j];\r\n if (equal(id, opts.id(match))) {\r\n ordered.push(match);\r\n matches.splice(j, 1);\r\n break;\r\n }\r\n }\r\n }\r\n callback(ordered);\r\n }\r\n });\r\n };\r\n }\r\n\r\n return opts;\r\n },\r\n\r\n // multi\r\n selectChoice: function (choice) {\r\n\r\n var selected = this.container.find(\".select2-search-choice-focus\");\r\n if (selected.length && choice && choice[0] == selected[0]) {\r\n\r\n } else {\r\n if (selected.length) {\r\n this.opts.element.trigger(\"choice-deselected\", selected);\r\n }\r\n selected.removeClass(\"select2-search-choice-focus\");\r\n if (choice && choice.length) {\r\n this.close();\r\n choice.addClass(\"select2-search-choice-focus\");\r\n this.opts.element.trigger(\"choice-selected\", choice);\r\n }\r\n }\r\n },\r\n\r\n // multi\r\n destroy: function() {\r\n $(\"label[for='\" + this.search.attr('id') + \"']\")\r\n .attr('for', this.opts.element.attr(\"id\"));\r\n this.parent.destroy.apply(this, arguments);\r\n },\r\n\r\n // multi\r\n initContainer: function () {\r\n\r\n var selector = \".select2-choices\", selection;\r\n\r\n this.searchContainer = this.container.find(\".select2-search-field\");\r\n this.selection = selection = this.container.find(selector);\r\n\r\n var _this = this;\r\n this.selection.on(\"click\", \".select2-search-choice:not(.select2-locked)\", function (e) {\r\n //killEvent(e);\r\n _this.search[0].focus();\r\n _this.selectChoice($(this));\r\n });\r\n\r\n // rewrite labels from original element to focusser\r\n this.search.attr(\"id\", \"s2id_autogen\"+nextUid());\r\n $(\"label[for='\" + this.opts.element.attr(\"id\") + \"']\")\r\n .attr('for', this.search.attr('id'));\r\n\r\n this.search.on(\"input paste\", this.bind(function() {\r\n if (!this.isInterfaceEnabled()) return;\r\n if (!this.opened()) {\r\n this.open();\r\n }\r\n }));\r\n\r\n this.search.attr(\"tabindex\", this.elementTabIndex);\r\n\r\n this.keydowns = 0;\r\n this.search.on(\"keydown\", this.bind(function (e) {\r\n if (!this.isInterfaceEnabled()) return;\r\n\r\n ++this.keydowns;\r\n var selected = selection.find(\".select2-search-choice-focus\");\r\n var prev = selected.prev(\".select2-search-choice:not(.select2-locked)\");\r\n var next = selected.next(\".select2-search-choice:not(.select2-locked)\");\r\n var pos = getCursorInfo(this.search);\r\n\r\n if (selected.length &&\r\n (e.which == KEY.LEFT || e.which == KEY.RIGHT || e.which == KEY.BACKSPACE || e.which == KEY.DELETE || e.which == KEY.ENTER)) {\r\n var selectedChoice = selected;\r\n if (e.which == KEY.LEFT && prev.length) {\r\n selectedChoice = prev;\r\n }\r\n else if (e.which == KEY.RIGHT) {\r\n selectedChoice = next.length ? next : null;\r\n }\r\n else if (e.which === KEY.BACKSPACE) {\r\n this.unselect(selected.first());\r\n this.search.width(10);\r\n selectedChoice = prev.length ? prev : next;\r\n } else if (e.which == KEY.DELETE) {\r\n this.unselect(selected.first());\r\n this.search.width(10);\r\n selectedChoice = next.length ? next : null;\r\n } else if (e.which == KEY.ENTER) {\r\n selectedChoice = null;\r\n }\r\n\r\n this.selectChoice(selectedChoice);\r\n killEvent(e);\r\n if (!selectedChoice || !selectedChoice.length) {\r\n this.open();\r\n }\r\n return;\r\n } else if (((e.which === KEY.BACKSPACE && this.keydowns == 1)\r\n || e.which == KEY.LEFT) && (pos.offset == 0 && !pos.length)) {\r\n\r\n this.selectChoice(selection.find(\".select2-search-choice:not(.select2-locked)\").last());\r\n killEvent(e);\r\n return;\r\n } else {\r\n this.selectChoice(null);\r\n }\r\n\r\n if (this.opened()) {\r\n switch (e.which) {\r\n case KEY.UP:\r\n case KEY.DOWN:\r\n this.moveHighlight((e.which === KEY.UP) ? -1 : 1);\r\n killEvent(e);\r\n return;\r\n case KEY.ENTER:\r\n this.selectHighlighted();\r\n killEvent(e);\r\n return;\r\n case KEY.TAB:\r\n this.selectHighlighted({noFocus:true});\r\n this.close();\r\n return;\r\n case KEY.ESC:\r\n this.cancel(e);\r\n killEvent(e);\r\n return;\r\n }\r\n }\r\n\r\n if (e.which === KEY.TAB || KEY.isControl(e) || KEY.isFunctionKey(e)\r\n || e.which === KEY.BACKSPACE || e.which === KEY.ESC) {\r\n return;\r\n }\r\n\r\n if (e.which === KEY.ENTER) {\r\n if (this.opts.openOnEnter === false) {\r\n return;\r\n } else if (e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) {\r\n return;\r\n }\r\n }\r\n\r\n this.open();\r\n\r\n if (e.which === KEY.PAGE_UP || e.which === KEY.PAGE_DOWN) {\r\n // prevent the page from scrolling\r\n killEvent(e);\r\n }\r\n\r\n if (e.which === KEY.ENTER) {\r\n // prevent form from being submitted\r\n killEvent(e);\r\n }\r\n\r\n }));\r\n\r\n this.search.on(\"keyup\", this.bind(function (e) {\r\n this.keydowns = 0;\r\n this.resizeSearch();\r\n })\r\n );\r\n\r\n this.search.on(\"blur\", this.bind(function(e) {\r\n this.container.removeClass(\"select2-container-active\");\r\n this.search.removeClass(\"select2-focused\");\r\n this.selectChoice(null);\r\n if (!this.opened()) this.clearSearch();\r\n e.stopImmediatePropagation();\r\n this.opts.element.trigger($.Event(\"select2-blur\"));\r\n }));\r\n\r\n this.container.on(\"click\", selector, this.bind(function (e) {\r\n if (!this.isInterfaceEnabled()) return;\r\n if ($(e.target).closest(\".select2-search-choice\").length > 0) {\r\n // clicked inside a select2 search choice, do not open\r\n return;\r\n }\r\n this.selectChoice(null);\r\n this.clearPlaceholder();\r\n if (!this.container.hasClass(\"select2-container-active\")) {\r\n this.opts.element.trigger($.Event(\"select2-focus\"));\r\n }\r\n this.open();\r\n this.focusSearch();\r\n e.preventDefault();\r\n }));\r\n\r\n this.container.on(\"focus\", selector, this.bind(function () {\r\n if (!this.isInterfaceEnabled()) return;\r\n if (!this.container.hasClass(\"select2-container-active\")) {\r\n this.opts.element.trigger($.Event(\"select2-focus\"));\r\n }\r\n this.container.addClass(\"select2-container-active\");\r\n this.dropdown.addClass(\"select2-drop-active\");\r\n this.clearPlaceholder();\r\n }));\r\n\r\n this.initContainerWidth();\r\n this.opts.element.addClass(\"select2-offscreen\");\r\n\r\n // set the placeholder if necessary\r\n this.clearSearch();\r\n },\r\n\r\n // multi\r\n enableInterface: function() {\r\n if (this.parent.enableInterface.apply(this, arguments)) {\r\n this.search.prop(\"disabled\", !this.isInterfaceEnabled());\r\n }\r\n },\r\n\r\n // multi\r\n initSelection: function () {\r\n var data;\r\n if (this.opts.element.val() === \"\" && this.opts.element.text() === \"\") {\r\n this.updateSelection([]);\r\n this.close();\r\n // set the placeholder if necessary\r\n this.clearSearch();\r\n }\r\n if (this.select || this.opts.element.val() !== \"\") {\r\n var self = this;\r\n this.opts.initSelection.call(null, this.opts.element, function(data){\r\n if (data !== undefined && data !== null) {\r\n self.updateSelection(data);\r\n self.close();\r\n // set the placeholder if necessary\r\n self.clearSearch();\r\n }\r\n });\r\n }\r\n },\r\n\r\n // multi\r\n clearSearch: function () {\r\n var placeholder = this.getPlaceholder(),\r\n maxWidth = this.getMaxSearchWidth();\r\n\r\n if (placeholder !== undefined && this.getVal().length === 0 && this.search.hasClass(\"select2-focused\") === false) {\r\n this.search.val(placeholder).addClass(\"select2-default\");\r\n // stretch the search box to full width of the container so as much of the placeholder is visible as possible\r\n // we could call this.resizeSearch(), but we do not because that requires a sizer and we do not want to create one so early because of a firefox bug, see #944\r\n this.search.width(maxWidth > 0 ? maxWidth : this.container.css(\"width\"));\r\n } else {\r\n this.search.val(\"\").width(10);\r\n }\r\n },\r\n\r\n // multi\r\n clearPlaceholder: function () {\r\n if (this.search.hasClass(\"select2-default\")) {\r\n this.search.val(\"\").removeClass(\"select2-default\");\r\n }\r\n },\r\n\r\n // multi\r\n opening: function () {\r\n this.clearPlaceholder(); // should be done before super so placeholder is not used to search\r\n this.resizeSearch();\r\n\r\n this.parent.opening.apply(this, arguments);\r\n\r\n this.focusSearch();\r\n\r\n this.updateResults(true);\r\n this.search.focus();\r\n this.opts.element.trigger($.Event(\"select2-open\"));\r\n },\r\n\r\n // multi\r\n close: function () {\r\n if (!this.opened()) return;\r\n this.parent.close.apply(this, arguments);\r\n },\r\n\r\n // multi\r\n focus: function () {\r\n this.close();\r\n this.search.focus();\r\n },\r\n\r\n // multi\r\n isFocused: function () {\r\n return this.search.hasClass(\"select2-focused\");\r\n },\r\n\r\n // multi\r\n updateSelection: function (data) {\r\n var ids = [], filtered = [], self = this;\r\n\r\n // filter out duplicates\r\n $(data).each(function () {\r\n if (indexOf(self.id(this), ids) < 0) {\r\n ids.push(self.id(this));\r\n filtered.push(this);\r\n }\r\n });\r\n data = filtered;\r\n\r\n this.selection.find(\".select2-search-choice\").remove();\r\n $(data).each(function () {\r\n self.addSelectedChoice(this);\r\n });\r\n self.postprocessResults();\r\n },\r\n\r\n // multi\r\n tokenize: function() {\r\n var input = this.search.val();\r\n input = this.opts.tokenizer.call(this, input, this.data(), this.bind(this.onSelect), this.opts);\r\n if (input != null && input != undefined) {\r\n this.search.val(input);\r\n if (input.length > 0) {\r\n this.open();\r\n }\r\n }\r\n\r\n },\r\n\r\n // multi\r\n onSelect: function (data, options) {\r\n\r\n if (!this.triggerSelect(data)) { return; }\r\n\r\n this.addSelectedChoice(data);\r\n\r\n this.opts.element.trigger({ type: \"selected\", val: this.id(data), choice: data });\r\n\r\n if (this.select || !this.opts.closeOnSelect) this.postprocessResults(data, false, this.opts.closeOnSelect===true);\r\n\r\n if (this.opts.closeOnSelect) {\r\n this.close();\r\n this.search.width(10);\r\n } else {\r\n if (this.countSelectableResults()>0) {\r\n this.search.width(10);\r\n this.resizeSearch();\r\n if (this.getMaximumSelectionSize() > 0 && this.val().length >= this.getMaximumSelectionSize()) {\r\n // if we reached max selection size repaint the results so choices\r\n // are replaced with the max selection reached message\r\n this.updateResults(true);\r\n }\r\n this.positionDropdown();\r\n } else {\r\n // if nothing left to select close\r\n this.close();\r\n this.search.width(10);\r\n }\r\n }\r\n\r\n // since its not possible to select an element that has already been\r\n // added we do not need to check if this is a new element before firing change\r\n this.triggerChange({ added: data });\r\n\r\n if (!options || !options.noFocus)\r\n this.focusSearch();\r\n },\r\n\r\n // multi\r\n cancel: function () {\r\n this.close();\r\n this.focusSearch();\r\n },\r\n\r\n addSelectedChoice: function (data) {\r\n var enableChoice = !data.locked,\r\n enabledItem = $(\r\n \"
  • \" +\r\n \"
    \" +\r\n \" \" +\r\n \"
  • \"),\r\n disabledItem = $(\r\n \"
  • \" +\r\n \"
    \" +\r\n \"
  • \");\r\n var choice = enableChoice ? enabledItem : disabledItem,\r\n id = this.id(data),\r\n val = this.getVal(),\r\n formatted,\r\n cssClass;\r\n\r\n formatted=this.opts.formatSelection(data, choice.find(\"div\"), this.opts.escapeMarkup);\r\n if (formatted != undefined) {\r\n choice.find(\"div\").replaceWith(\"
    \"+formatted+\"
    \");\r\n }\r\n cssClass=this.opts.formatSelectionCssClass(data, choice.find(\"div\"));\r\n if (cssClass != undefined) {\r\n choice.addClass(cssClass);\r\n }\r\n\r\n if(enableChoice){\r\n choice.find(\".select2-search-choice-close\")\r\n .on(\"mousedown\", killEvent)\r\n .on(\"click dblclick\", this.bind(function (e) {\r\n if (!this.isInterfaceEnabled()) return;\r\n\r\n $(e.target).closest(\".select2-search-choice\").fadeOut('fast', this.bind(function(){\r\n this.unselect($(e.target));\r\n this.selection.find(\".select2-search-choice-focus\").removeClass(\"select2-search-choice-focus\");\r\n this.close();\r\n this.focusSearch();\r\n })).dequeue();\r\n killEvent(e);\r\n })).on(\"focus\", this.bind(function () {\r\n if (!this.isInterfaceEnabled()) return;\r\n this.container.addClass(\"select2-container-active\");\r\n this.dropdown.addClass(\"select2-drop-active\");\r\n }));\r\n }\r\n\r\n choice.data(\"select2-data\", data);\r\n choice.insertBefore(this.searchContainer);\r\n\r\n val.push(id);\r\n this.setVal(val);\r\n },\r\n\r\n // multi\r\n unselect: function (selected) {\r\n var val = this.getVal(),\r\n data,\r\n index;\r\n selected = selected.closest(\".select2-search-choice\");\r\n\r\n if (selected.length === 0) {\r\n throw \"Invalid argument: \" + selected + \". Must be .select2-search-choice\";\r\n }\r\n\r\n data = selected.data(\"select2-data\");\r\n\r\n if (!data) {\r\n // prevent a race condition when the 'x' is clicked really fast repeatedly the event can be queued\r\n // and invoked on an element already removed\r\n return;\r\n }\r\n\r\n while((index = indexOf(this.id(data), val)) >= 0) {\r\n val.splice(index, 1);\r\n this.setVal(val);\r\n if (this.select) this.postprocessResults();\r\n }\r\n\r\n var evt = $.Event(\"select2-removing\");\r\n evt.val = this.id(data);\r\n evt.choice = data;\r\n this.opts.element.trigger(evt);\r\n\r\n if (evt.isDefaultPrevented()) {\r\n return;\r\n }\r\n\r\n selected.remove();\r\n\r\n this.opts.element.trigger({ type: \"select2-removed\", val: this.id(data), choice: data });\r\n this.triggerChange({ removed: data });\r\n },\r\n\r\n // multi\r\n postprocessResults: function (data, initial, noHighlightUpdate) {\r\n var val = this.getVal(),\r\n choices = this.results.find(\".select2-result\"),\r\n compound = this.results.find(\".select2-result-with-children\"),\r\n self = this;\r\n\r\n choices.each2(function (i, choice) {\r\n var id = self.id(choice.data(\"select2-data\"));\r\n if (indexOf(id, val) >= 0) {\r\n choice.addClass(\"select2-selected\");\r\n // mark all children of the selected parent as selected\r\n choice.find(\".select2-result-selectable\").addClass(\"select2-selected\");\r\n }\r\n });\r\n\r\n compound.each2(function(i, choice) {\r\n // hide an optgroup if it doesnt have any selectable children\r\n if (!choice.is('.select2-result-selectable')\r\n && choice.find(\".select2-result-selectable:not(.select2-selected)\").length === 0) {\r\n choice.addClass(\"select2-selected\");\r\n }\r\n });\r\n\r\n if (this.highlight() == -1 && noHighlightUpdate !== false){\r\n self.highlight(0);\r\n }\r\n\r\n //If all results are chosen render formatNoMAtches\r\n if(!this.opts.createSearchChoice && !choices.filter('.select2-result:not(.select2-selected)').length > 0){\r\n if(!data || data && !data.more && this.results.find(\".select2-no-results\").length === 0) {\r\n if (checkFormatter(self.opts.formatNoMatches, \"formatNoMatches\")) {\r\n this.results.append(\"
  • \" + self.opts.formatNoMatches(self.search.val()) + \"
  • \");\r\n }\r\n }\r\n }\r\n\r\n },\r\n\r\n // multi\r\n getMaxSearchWidth: function() {\r\n return this.selection.width() - getSideBorderPadding(this.search);\r\n },\r\n\r\n // multi\r\n resizeSearch: function () {\r\n var minimumWidth, left, maxWidth, containerLeft, searchWidth,\r\n sideBorderPadding = getSideBorderPadding(this.search);\r\n\r\n minimumWidth = measureTextWidth(this.search) + 10;\r\n\r\n left = this.search.offset().left;\r\n\r\n maxWidth = this.selection.width();\r\n containerLeft = this.selection.offset().left;\r\n\r\n searchWidth = maxWidth - (left - containerLeft) - sideBorderPadding;\r\n\r\n if (searchWidth < minimumWidth) {\r\n searchWidth = maxWidth - sideBorderPadding;\r\n }\r\n\r\n if (searchWidth < 40) {\r\n searchWidth = maxWidth - sideBorderPadding;\r\n }\r\n\r\n if (searchWidth <= 0) {\r\n searchWidth = minimumWidth;\r\n }\r\n\r\n this.search.width(Math.floor(searchWidth));\r\n },\r\n\r\n // multi\r\n getVal: function () {\r\n var val;\r\n if (this.select) {\r\n val = this.select.val();\r\n return val === null ? [] : val;\r\n } else {\r\n val = this.opts.element.val();\r\n return splitVal(val, this.opts.separator);\r\n }\r\n },\r\n\r\n // multi\r\n setVal: function (val) {\r\n var unique;\r\n if (this.select) {\r\n this.select.val(val);\r\n } else {\r\n unique = [];\r\n // filter out duplicates\r\n $(val).each(function () {\r\n if (indexOf(this, unique) < 0) unique.push(this);\r\n });\r\n this.opts.element.val(unique.length === 0 ? \"\" : unique.join(this.opts.separator));\r\n }\r\n },\r\n\r\n // multi\r\n buildChangeDetails: function (old, current) {\r\n var current = current.slice(0),\r\n old = old.slice(0);\r\n\r\n // remove intersection from each array\r\n for (var i = 0; i < current.length; i++) {\r\n for (var j = 0; j < old.length; j++) {\r\n if (equal(this.opts.id(current[i]), this.opts.id(old[j]))) {\r\n current.splice(i, 1);\r\n if(i>0){\r\n \ti--;\r\n }\r\n old.splice(j, 1);\r\n j--;\r\n }\r\n }\r\n }\r\n\r\n return {added: current, removed: old};\r\n },\r\n\r\n\r\n // multi\r\n val: function (val, triggerChange) {\r\n var oldData, self=this;\r\n\r\n if (arguments.length === 0) {\r\n return this.getVal();\r\n }\r\n\r\n oldData=this.data();\r\n if (!oldData.length) oldData=[];\r\n\r\n // val is an id. !val is true for [undefined,null,'',0] - 0 is legal\r\n if (!val && val !== 0) {\r\n this.opts.element.val(\"\");\r\n this.updateSelection([]);\r\n this.clearSearch();\r\n if (triggerChange) {\r\n this.triggerChange({added: this.data(), removed: oldData});\r\n }\r\n return;\r\n }\r\n\r\n // val is a list of ids\r\n this.setVal(val);\r\n\r\n if (this.select) {\r\n this.opts.initSelection(this.select, this.bind(this.updateSelection));\r\n if (triggerChange) {\r\n this.triggerChange(this.buildChangeDetails(oldData, this.data()));\r\n }\r\n } else {\r\n if (this.opts.initSelection === undefined) {\r\n throw new Error(\"val() cannot be called if initSelection() is not defined\");\r\n }\r\n\r\n this.opts.initSelection(this.opts.element, function(data){\r\n var ids=$.map(data, self.id);\r\n self.setVal(ids);\r\n self.updateSelection(data);\r\n self.clearSearch();\r\n if (triggerChange) {\r\n self.triggerChange(self.buildChangeDetails(oldData, self.data()));\r\n }\r\n });\r\n }\r\n this.clearSearch();\r\n },\r\n\r\n // multi\r\n onSortStart: function() {\r\n if (this.select) {\r\n throw new Error(\"Sorting of elements is not supported when attached to instead.\");\r\n }\r\n\r\n // collapse search field into 0 width so its container can be collapsed as well\r\n this.search.width(0);\r\n // hide the container\r\n this.searchContainer.hide();\r\n },\r\n\r\n // multi\r\n onSortEnd:function() {\r\n\r\n var val=[], self=this;\r\n\r\n // show search and move it to the end of the list\r\n this.searchContainer.show();\r\n // make sure the search container is the last item in the list\r\n this.searchContainer.appendTo(this.searchContainer.parent());\r\n // since we collapsed the width in dragStarted, we resize it here\r\n this.resizeSearch();\r\n\r\n // update selection\r\n this.selection.find(\".select2-search-choice\").each(function() {\r\n val.push(self.opts.id($(this).data(\"select2-data\")));\r\n });\r\n this.setVal(val);\r\n this.triggerChange();\r\n },\r\n\r\n // multi\r\n data: function(values, triggerChange) {\r\n var self=this, ids, old;\r\n if (arguments.length === 0) {\r\n return this.selection\r\n .find(\".select2-search-choice\")\r\n .map(function() { return $(this).data(\"select2-data\"); })\r\n .get();\r\n } else {\r\n old = this.data();\r\n if (!values) { values = []; }\r\n ids = $.map(values, function(e) { return self.opts.id(e); });\r\n this.setVal(ids);\r\n this.updateSelection(values);\r\n this.clearSearch();\r\n if (triggerChange) {\r\n this.triggerChange(this.buildChangeDetails(old, this.data()));\r\n }\r\n }\r\n }\r\n });\r\n\r\n $.fn.select2 = function () {\r\n\r\n var args = Array.prototype.slice.call(arguments, 0),\r\n opts,\r\n select2,\r\n method, value, multiple,\r\n allowedMethods = [\"val\", \"destroy\", \"opened\", \"open\", \"close\", \"focus\", \"isFocused\", \"container\", \"dropdown\", \"onSortStart\", \"onSortEnd\", \"enable\", \"disable\", \"readonly\", \"positionDropdown\", \"data\", \"search\"],\r\n valueMethods = [\"opened\", \"isFocused\", \"container\", \"dropdown\"],\r\n propertyMethods = [\"val\", \"data\"],\r\n methodsMap = { search: \"externalSearch\" };\r\n\r\n this.each(function () {\r\n if (args.length === 0 || typeof(args[0]) === \"object\") {\r\n opts = args.length === 0 ? {} : $.extend({}, args[0]);\r\n opts.element = $(this);\r\n\r\n if (opts.element.get(0).tagName.toLowerCase() === \"select\") {\r\n multiple = opts.element.prop(\"multiple\");\r\n } else {\r\n multiple = opts.multiple || false;\r\n if (\"tags\" in opts) {opts.multiple = multiple = true;}\r\n }\r\n\r\n select2 = multiple ? new MultiSelect2() : new SingleSelect2();\r\n select2.init(opts);\r\n } else if (typeof(args[0]) === \"string\") {\r\n\r\n if (indexOf(args[0], allowedMethods) < 0) {\r\n throw \"Unknown method: \" + args[0];\r\n }\r\n\r\n value = undefined;\r\n select2 = $(this).data(\"select2\");\r\n if (select2 === undefined) return;\r\n\r\n method=args[0];\r\n\r\n if (method === \"container\") {\r\n value = select2.container;\r\n } else if (method === \"dropdown\") {\r\n value = select2.dropdown;\r\n } else {\r\n if (methodsMap[method]) method = methodsMap[method];\r\n\r\n value = select2[method].apply(select2, args.slice(1));\r\n }\r\n if (indexOf(args[0], valueMethods) >= 0\r\n || (indexOf(args[0], propertyMethods) && args.length == 1)) {\r\n return false; // abort the iteration, ready to return first matched value\r\n }\r\n } else {\r\n throw \"Invalid arguments to select2 plugin: \" + args;\r\n }\r\n });\r\n return (value === undefined) ? this : value;\r\n };\r\n\r\n // plugin defaults, accessible to users\r\n $.fn.select2.defaults = {\r\n width: \"copy\",\r\n loadMorePadding: 0,\r\n closeOnSelect: true,\r\n openOnEnter: true,\r\n containerCss: {},\r\n dropdownCss: {},\r\n containerCssClass: \"\",\r\n dropdownCssClass: \"\",\r\n formatResult: function(result, container, query, escapeMarkup) {\r\n var markup=[];\r\n markMatch(result.text, query.term, markup, escapeMarkup);\r\n return markup.join(\"\");\r\n },\r\n formatSelection: function (data, container, escapeMarkup) {\r\n return data ? escapeMarkup(data.text) : undefined;\r\n },\r\n sortResults: function (results, container, query) {\r\n return results;\r\n },\r\n formatResultCssClass: function(data) {return data.css;},\r\n formatSelectionCssClass: function(data, container) {return undefined;},\r\n formatNoMatches: function () { return \"No matches found\"; },\r\n formatInputTooShort: function (input, min) { var n = min - input.length; return \"Please enter \" + n + \" more character\" + (n == 1? \"\" : \"s\"); },\r\n formatInputTooLong: function (input, max) { var n = input.length - max; return \"Please delete \" + n + \" character\" + (n == 1? \"\" : \"s\"); },\r\n formatSelectionTooBig: function (limit) { return \"You can only select \" + limit + \" item\" + (limit == 1 ? \"\" : \"s\"); },\r\n formatLoadMore: function (pageNumber) { return \"Loading more results...\"; },\r\n formatSearching: function () { return \"Searching...\"; },\r\n minimumResultsForSearch: 0,\r\n minimumInputLength: 0,\r\n maximumInputLength: null,\r\n maximumSelectionSize: 0,\r\n id: function (e) { return e.id; },\r\n matcher: function(term, text) {\r\n return stripDiacritics(''+text).toUpperCase().indexOf(stripDiacritics(''+term).toUpperCase()) >= 0;\r\n },\r\n separator: \",\",\r\n tokenSeparators: [],\r\n tokenizer: defaultTokenizer,\r\n escapeMarkup: defaultEscapeMarkup,\r\n blurOnChange: false,\r\n selectOnBlur: false,\r\n adaptContainerCssClass: function(c) { return c; },\r\n adaptDropdownCssClass: function(c) { return null; },\r\n nextSearchTerm: function(selectedObject, currentSearchTerm) { return undefined; }\r\n };\r\n\r\n $.fn.select2.ajaxDefaults = {\r\n transport: $.ajax,\r\n params: {\r\n type: \"GET\",\r\n cache: false,\r\n dataType: \"json\"\r\n }\r\n };\r\n\r\n // exports\r\n module.exports = {\r\n query: {\r\n ajax: ajax,\r\n local: local,\r\n tags: tags\r\n }, util: {\r\n debounce: debounce,\r\n markMatch: markMatch,\r\n escapeMarkup: defaultEscapeMarkup,\r\n stripDiacritics: stripDiacritics\r\n }, \"class\": {\r\n \"abstract\": AbstractSelect2,\r\n \"single\": SingleSelect2,\r\n \"multi\": MultiSelect2\r\n }\r\n };\r\n\r\n}(jQuery));\r\n","module.exports = jQuery;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","// startup\n// Load entry module and return exports\n__webpack_require__(49484);\n// This entry module used 'module' so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(84908);\n"],"sourceRoot":""}