{"version":3,"file":"kendo.dropdownlist.min.js","names":["factory","define","amd","$","undefined$1","kendo","window","ui","html","List","Select","support","activeElement","_activeElement","ObservableObject","data","keys","ns","nsFocusEvent","DISABLED","READONLY","CHANGE","FOCUSED","STATEDISABLED","ARIA_DISABLED","ARIA_READONLY","HOVEREVENTS","TABINDEX","STATE_FILTER","STATE_ACCEPT","DropDownList","extend","init","element","options","optionLabel","text","that","this","index","Array","isArray","dataSource","fn","call","on","_focusHandler","bind","_focusInputHandler","_focusInput","_optionLabel","_inputTemplate","_reset","_prev","_word","_wrapper","_tabindex","wrapper","attr","_span","_popup","_mobile","_dataSource","_ignoreCase","_filterHeader","label","_label","_aria","_enable","_attachFocusHandlers","_oldIndex","selectedIndex","_initialIndex","requireValueMapper","_initList","listView","one","_attachAriaActiveDescendant","_cascade","e","sender","bound","hasOptionLabel","_textAccessor","_optionLabelText","autoBind","fetch","_isSelect","children","parents","is","enable","preventDefault","notify","_applyCssClasses","name","enabled","value","delay","height","dataTextField","dataValueField","cascadeFrom","cascadeFromField","cascadeFromParentField","ignoreCase","animation","filter","minLength","enforceMinLength","virtual","template","valueTemplate","optionLabelTemplate","groupTemplate","fixedGroupTemplate","autoWidth","popup","filterTitle","size","fillMode","rounded","events","setOptions","_listOptions","_accessors","select","destroy","off","_arrow","_arrowIcon","filterInput","open","isFiltered","filters","length","visible","_state","_allowOpening","_focusFilter","_hovered","_optionID","_resizeFilterInput","_focusItem","_open","val","refresh","_filterSource","close","inputId","find","_focusElement","originalPrevent","_prevent","isInputActive","caret","addClass","closest","css","removeClass","trigger","toggle","_toggle","current","candidate","focus","_focus","dataItem","selectedDataItems","getByUid","hasClass","items","flatView","_optionLabelDataItem","loweredText","toLowerCase","_select","_text","done","_refreshFloatingLabel","_clearFilter","_accessor","_request","_valueSetter","unbind","_isFilterEnabled","_fetchData","_old","_valueBeforeCascade","remove","expr","prependTo","list","_click","_toggleHover","angular","elements","isPlainObject","_assignInstance","_buildOptions","optionLabelValue","_value","_options","unifyType","_customOption","_custom","_listBound","initialIndex","filtered","_presetValue","_renderFooter","_renderNoData","_toggleNoData","_resizePopup","position","_fetch","_selectValue","_hideBusy","_listChange","_filterPaste","_search","_focusinHandler","_focusoutHandler","isIFrame","self","top","clearTimeout","_typingTimeout","mobileOS","ios","_change","_blur","_wrapperMousedown","_wrapperClick","_focused","_editable","disable","readonly","add","dropDownWrapper","removeAttr","prop","_keydown","mousedown","_keypress","handled","key","keyCode","altKey","isPopupVisible","LEFT","UP","RIGHT","DOWN","ESC","ENTER","SPACEBAR","_move","HOME","_firstItem","END","_lastItem","_getElementDataItem","item","_matchText","word","indexOf","_shuffleData","splitIndex","optionDataItem","concat","slice","_selectNext","oldFocusedItem","dataLength","isInLoop","character","idx","charAt","sameCharsOnly","_last","startIndex","normalizeIndex","toJSON","which","String","fromCharCode","charCode","_popupOpen","wrap","dataItemByIndex","getElementIndex","currentTarget","_userTriggered","active","compareElement","touchEnabled","touch","MSPointers","pointers","_searchByWord","_inputValue","setTimeout","search","_get","found","isFunction","jQueryCandidate","focusFirst","_resetOptionLabel","focusLast","_nextItem","focusIndex","focusNext","_prevItem","focusPrev","focusedItem","highlightFirst","mapValueTo","scrollToIndex","content","scrollTop","additionalClass","keepState","_dataValue","_triggerCascade","eq","effects","android","meego","wp","placeholder","title","role","parent","prepend","append","span","arrowBtn","SELECTOR","id","guid","renderButton","icon","shape","DOMelement","style","cssText","className","accesskey","unselectable","hide","_clearSelection","_openHandler","_adjustListWidth","ul","_closeHandler","useWithBlock","Error","optionLabelText","getElements","get","_preselect","setValue","assign","split","instance","fields","field","lastIndex","plugin","cssProperties","registerPrefix","registerValues","values","roundedValues","jQuery"],"sources":["kendo.dropdownlist.js"],"mappings":"CAAA,SAAWA,GACW,mBAAXC,QAAyBA,OAAOC,IAAMD,OAAO,CAAC,iBAAkB,4BAA6B,wBAAyB,yBAA0BD,GACvJA,IAFJ,EAGG,YAoBC,SAAUG,EAAGC,GACT,IAAIC,EAAQC,OAAOD,MACfE,EAAKF,EAAME,GACXC,EAAOH,EAAMG,KACbC,EAAOF,EAAGE,KACVC,EAASH,EAAGG,OACZC,EAAUN,EAAMM,QAChBC,EAAgBP,EAAMQ,eACtBC,EAAmBT,EAAMU,KAAKD,iBAC9BE,EAAOX,EAAMW,KACbC,EAAK,qBACLC,EAAeD,EAAK,aACpBE,EAAW,WACXC,EAAW,WACXC,EAAS,SACTC,EAAU,UACVC,EAAgB,aAChBC,EAAgB,gBAChBC,EAAgB,gBAEhBC,EAAc,aAAeT,EAAK,cAAgBA,EAClDU,EAAW,WACXC,EAAe,SACfC,EAAe,SAKfC,EAAepB,EAAOqB,OAAQ,CAC9BC,KAAM,SAASC,EAASC,GACpB,IAEIC,EAAaC,EAFbC,EAAOC,KACPC,EAAQL,GAAWA,EAAQK,MAG/BF,EAAKpB,GAAKA,EACViB,EAAUM,MAAMC,QAAQP,GAAW,CAAEQ,WAAYR,GAAYA,EAE7DxB,EAAOiC,GAAGX,KAAKY,KAAKP,EAAMJ,EAASC,GAEnCA,EAAUG,EAAKH,QACfD,EAAUI,EAAKJ,QAAQY,GAAG,QAAU5B,EAAIoB,EAAKS,cAAcC,KAAKV,IAEhEA,EAAKW,mBAAqBX,EAAKY,YAAYF,KAAKV,GAEhDA,EAAKF,YAAchC,IACnBkC,EAAKa,eAELb,EAAKc,iBAELd,EAAKe,SAELf,EAAKgB,MAAQ,GACbhB,EAAKiB,MAAQ,GAEbjB,EAAKkB,WAELlB,EAAKmB,YACLnB,EAAKoB,QAAQ1C,KAAKY,EAAUU,EAAKoB,QAAQC,KAAK/B,IAE9CU,EAAKsB,QAELtB,EAAKuB,SAELvB,EAAKwB,UAELxB,EAAKyB,cAELzB,EAAK0B,cAEL1B,EAAK2B,gBAED9B,EAAQ+B,OACR3B,KAAK4B,SAGT7B,EAAK8B,QAEL9B,EAAK+B,UAEL/B,EAAKgC,uBAELhC,EAAKiC,UAAYjC,EAAKkC,eAAiB,EAEnChC,IAAUnC,IACV8B,EAAQK,MAAQA,GAGpBF,EAAKmC,cAAgBtC,EAAQK,MAE7BF,EAAKoC,mBAAmBpC,EAAKH,SAC7BG,EAAKqC,YACLrC,EAAKsC,SAASC,IAAI,YAAavC,EAAKwC,4BAA4B9B,KAAKV,IAErEA,EAAKyC,WAELzC,EAAKuC,IAAI,OAAO,SAASG,IAChBA,EAAEC,OAAOL,SAASM,SAAW5C,EAAK6C,kBACnC7C,EAAK8C,cAAc9C,EAAK+C,uBAI5BlD,EAAQmD,SACRhD,EAAKK,WAAW4C,SACe,IAAxBjD,EAAKkC,iBACZnC,EAAOF,EAAQE,MAAQ,OAEnBD,EAAcD,EAAQC,cAEe,IAAlBD,EAAQK,MACvBH,EAAOD,EACAE,EAAKkD,YACZnD,EAAOH,EAAQuD,SAAS,aAAapD,SAI7CC,EAAK8C,cAAc/C,IAGZjC,EAAEkC,EAAKJ,SAASwD,QAAQ,YAAYC,GAAG,cAG9CrD,EAAKsD,QAAO,GAGhBtD,EAAKsC,SAAS5B,KAAK,SAAS,SAASgC,GAAKA,EAAEa,oBAE5CvF,EAAMwF,OAAOxD,GACbA,EAAKyD,oBAGT5D,QAAS,CACL6D,KAAM,eACNC,SAAS,EACTX,UAAU,EACV9C,MAAO,EACPH,KAAM,KACN6D,MAAO,KACPC,MAAO,IACPC,OAAQ,IACRC,cAAe,GACfC,eAAgB,GAChBlE,YAAa,GACbmE,YAAa,GACbC,iBAAkB,GAClBC,uBAAwB,GACxBC,YAAY,EACZC,UAAW,GACXC,OAAQ,OACRC,UAAW,EACXC,kBAAkB,EAClBC,SAAS,EACTC,SAAU,KACVC,cAAe,KACfC,oBAAqB,KACrBC,cAAe,UACfC,mBAAoB,UACpBC,WAAW,EACXC,MAAO,KACPC,YAAa,KACbC,KAAM,SACNC,SAAU,QACVC,QAAS,SACTxD,MAAO,MAGXyD,OAAQ,CACJ,OACA,QACArG,EACA,SACA,YACA,cACA,YACA,UACA,MACA,gBAGJsG,WAAY,SAASzF,GACjBxB,EAAOiC,GAAGgF,WAAW/E,KAAKN,KAAMJ,GAEhCI,KAAKqC,SAASgD,WAAWrF,KAAKsF,aAAa1F,IAE3CI,KAAKY,eACLZ,KAAKa,iBACLb,KAAKuF,aACLvF,KAAK0B,gBACL1B,KAAK8B,UACL9B,KAAK6B,SAEA7B,KAAK2D,SAAW3D,KAAK4C,kBACtB5C,KAAKwF,OAAO,IAIpBC,QAAS,WACL,IAAI1F,EAAOC,KAEX5B,EAAOiC,GAAGoF,QAAQnF,KAAKP,GAEvBA,EAAKoB,QAAQuE,IAAI/G,GACjBoB,EAAKoB,QAAQuE,IAAI9G,GACjBmB,EAAKJ,QAAQ+F,IAAI/G,GAEjBoB,EAAK4F,OAAOD,MACZ3F,EAAK4F,OAAS,KACd5F,EAAK6F,WAAa,KAElB7F,EAAKF,YAAY6F,MAEb3F,EAAK8F,aACL9F,EAAK8F,YAAYH,IAAI9G,IAI7BkH,KAAM,WACF,IAAI/F,EAAOC,KACP+F,IAAahG,EAAKK,WAAWiE,UAAWtE,EAAKK,WAAWiE,SAAS2B,QAAQC,OAAS,EAClF5D,EAAWrC,KAAKqC,SAEhBtC,EAAKgF,MAAMmB,YAIVnG,EAAKsC,SAASM,SAAW5C,EAAKoG,SAAW5G,EAkBnCQ,EAAKqG,kBACZrG,EAAKsG,cAAe,EACpBtG,EAAKgF,MAAMzC,IAAI,WAAYvC,EAAKW,oBAGhCX,EAAKgF,MAAMuB,UAAW,EACtBvG,EAAKoB,QAAQC,KAAK,wBAAyBiB,EAASkE,WACpDxG,EAAKgF,MAAMe,OACX/F,EAAKyG,qBACLzG,EAAK0G,eA1BL1G,EAAK2G,OAAQ,EACb3G,EAAKoG,OAAS,SAEVpG,EAAK8F,cACL9F,EAAK8F,YAAYc,IAAI,IACrB5G,EAAKgB,MAAQ,IAGbhB,EAAK8F,aAA0C,IAA3B9F,EAAKH,QAAQ0E,YAAoByB,GACrDhG,EAAK6G,UACL7G,EAAKgF,MAAMzC,IAAI,WAAYvC,EAAKW,oBAChCX,EAAKoB,QAAQC,KAAK,wBAAyBiB,EAASkE,WACpDxG,EAAKgF,MAAMe,OACX/F,EAAKyG,sBAELzG,EAAK8G,mBAejBC,MAAO,WACH9G,KAAKuC,8BACLvC,KAAK+E,MAAM+B,SAGfvE,4BAA6B,WACzB,IAAIpB,EAAUnB,KAAKmB,QACf4F,EAAU5F,EAAQ6F,KAAK,kBAAkB5F,KAAK,MAElDD,EAAQC,KAAK,mBAAoB2F,IAGrCpG,YAAa,WACTX,KAAKiH,cAAcjH,KAAK6F,cAG5BW,mBAAoB,WAChB,IAAIX,EAAc7F,KAAK6F,YACnBqB,EAAkBlH,KAAKmH,SAE3B,GAAKtB,EAAL,CAIA,IAAIuB,EAAgBpH,KAAK6F,YAAY,KAAOvH,IACxC+I,EAAQtJ,EAAMsJ,MAAMrH,KAAK6F,YAAY,IAAI,GAE7C7F,KAAKmH,UAAW,EAEhBtB,EAAYyB,SAAS,YACrBzB,EAAY0B,QAAQ,kBAAkBC,IAAI,QAASxH,KAAK+E,MAAMpF,QAAQ6H,IAAI,UAC1E3B,EAAY4B,YAAY,YAEpBL,IACAvB,EAAY6B,QAAQ,SACpB3J,EAAMsJ,MAAMxB,EAAY,GAAIwB,IAGhCrH,KAAKmH,SAAWD,IAGpBd,cAAe,WACX,OAAOpG,KAAK4C,kBAAoB5C,KAAK6F,aAAezH,EAAOiC,GAAG+F,cAAc9F,KAAKN,OAGrF2H,OAAQ,SAASA,GACb3H,KAAK4H,QAAQD,GAAQ,IAGzBE,QAAS,SAASC,GACd,IAAID,EAEJ,GAAIC,IAAchK,EAGd,QAFA+J,EAAU7H,KAAKqC,SAAS0F,UAEe,IAAvB/H,KAAKiC,eAAuBjC,KAAK4C,iBACtC5C,KAAKH,YAGTgI,EAGX7H,KAAKgI,OAAOF,IAGhBG,SAAU,SAAShI,GACf,IAAIF,EAAOC,KACPiI,EAAW,KAEf,GAAc,OAAVhI,EAAkB,OAAOA,EAE7B,GAAIA,IAAUnC,EACVmK,EAAWlI,EAAKsC,SAAS6F,oBAAoB,OAC1C,CACH,GAAqB,iBAAVjI,EAAoB,CAC3B,GAAIF,EAAKH,QAAQ4E,QACb,OAAOzE,EAAKK,WAAW+H,SAAStK,EAAEoC,GAAOxB,KAAK,QAG9CwB,EADAA,EAAMmI,SAAS,uBACN,EAEDvK,EAAEkC,EAAKsI,SAASpI,MAAMA,QAE3BF,EAAK6C,mBACZ3C,GAAS,GAGbgI,EAAWlI,EAAKK,WAAWkI,WAAWrI,GAO1C,OAJKgI,IACDA,EAAWlI,EAAKwI,wBAGbN,GAGXrB,QAAS,WACL5G,KAAKqC,SAASuE,WAGlB9G,KAAM,SAASA,GACX,IACI0I,EADAzI,EAAOC,KAEPmE,EAAapE,EAAKH,QAAQuE,WAI9B,IAFArE,EAAgB,OAATA,EAAgB,GAAKA,KAEfhC,EAsBT,OAAOiC,EAAK8C,gBArBQ,iBAAT/C,GAKX0I,EAAcrE,EAAarE,EAAK2I,cAAgB3I,EAEhDC,EAAK2I,SAAQ,SAASjK,GAOlB,OANAA,EAAOsB,EAAK4I,MAAMlK,GAEd0F,IACA1F,GAAQA,EAAO,IAAIgK,eAGhBhK,IAAS+J,KACjBI,MAAK,WACJ7I,EAAK8C,cAAc9C,EAAKkI,YAAcnI,GACtCC,EAAK8I,4BAhBL9I,EAAK8C,cAAc/C,IAwB/BgJ,aAAc,WACVjL,EAAEmC,KAAK6F,aAAac,IAAI,IACxBvI,EAAOiC,GAAGyI,aAAaxI,KAAKN,OAGhC2D,MAAO,SAASA,GACZ,IAAI5D,EAAOC,KACPqC,EAAWtC,EAAKsC,SAChBjC,EAAaL,EAAKK,WAGtB,OAAIuD,IAAU7F,GACV6F,EAAQ5D,EAAKgJ,aAAehJ,EAAKsC,SAASsB,QAAQ,MACjC7F,GAAyB,OAAV6F,EAAiB,GAAKA,GAG1D5D,EAAKoC,mBAAmBpC,EAAKH,QAAS+D,IAElCA,GAAU5D,EAAK6C,mBACf7C,EAAKmC,cAAgB,MAGzBlC,KAAK0H,QAAQ,MAAO,CAAE/D,MAAOA,IAEzB5D,EAAKiJ,UAAYjJ,EAAKH,QAAQoE,aAAejE,EAAKsC,SAASM,SACvD5C,EAAKkJ,cACL7I,EAAW8I,OAAOnK,EAAQgB,EAAKkJ,cAGnClJ,EAAKkJ,aApBK,WAAalJ,EAAK4D,MAAMA,IAoBNlD,KAAKV,QAEjCK,EAAWkC,IAAIvD,EAAQgB,EAAKkJ,gBAI5BlJ,EAAKoJ,oBAAsB9G,EAASM,SAAWN,EAAS0D,aACxDhG,EAAK+I,eAEL/I,EAAKqJ,kBAGT/G,EAASsB,MAAMA,GAAOiF,MAAK,WACvB7I,EAAKsJ,KAAOtJ,EAAKuJ,oBAAsBvJ,EAAKgJ,YAC5ChJ,EAAKiC,UAAYjC,EAAKkC,cACtBlC,EAAK8I,8BAIbjG,eAAgB,WACZ,OAAO5C,KAAKH,eAAiBG,KAAKH,YAAY,IAGlDe,aAAc,WACV,IAAIb,EAAOC,KACPJ,EAAUG,EAAKH,QACfC,EAAcD,EAAQC,YACtB4E,EAAW7E,EAAQ+E,oBAEvB,IAAK9E,EAGD,OAFAE,EAAKF,YAAY6F,MAAM6D,cACvBxJ,EAAKF,YAAchC,KAIlB4G,IACDA,EAAW,KAGPA,GADuB,iBAAhB5E,EACK,OAEA9B,EAAMyL,KAAK5J,EAAQkE,cAAe,QAGlDW,GAAY,KAGQ,mBAAbA,IACPA,EAAW1G,EAAM0G,SAASA,IAG9B1E,EAAK4E,oBAAsBF,EAEtB1E,EAAK6C,mBACN7C,EAAKF,YAAchC,EAAE,wDAAwD4L,UAAU1J,EAAK2J,OAGhG3J,EAAKF,YAAY3B,KAAKuG,EAAS5E,IACd6F,MACAnF,GA1cP,qDA0cuBR,EAAK4J,OAAOlJ,KAAKV,IACjCQ,GAAGnB,EAAaW,EAAK6J,cAEtC7J,EAAK8J,QAAQ,WAAW,WACpB,MAAO,CAAEC,SAAU/J,EAAKF,YAAapB,KAAM,CAAC,CAAEwJ,SAAUlI,EAAKwI,8BAIrEzF,iBAAkB,WACd,IAAIjD,EAAcG,KAAKJ,QAAQC,YAC/B,MAA+B,iBAAhBA,EAA4BA,EAAcG,KAAK2I,MAAM9I,IAGxE0I,qBAAsB,WAClB,IAAIxI,EAAOC,KACPH,EAAcE,EAAKH,QAAQC,YAE/B,OAAIE,EAAK6C,iBACE/E,EAAEkM,cAAclK,GAAe,IAAIrB,EAAiBqB,GAAeE,EAAKiK,gBAAgBjK,EAAK+C,mBAAoB,IAGrHhF,GAGXmM,cAAe,SAASxL,GACpB,IAAIsB,EAAOC,KACX,GAAKD,EAAKkD,UAAV,CAIA,IAAIU,EAAQ5D,EAAKsC,SAASsB,QAAQ,GAC9B9D,EAAcE,EAAKwI,uBACnB2B,EAAmBrK,GAAeE,EAAKoK,OAAOtK,GAE9C8D,IAAU7F,GAAyB,OAAV6F,IACzBA,EAAQ,IAGR9D,IACIqK,IAAqBpM,GAAoC,OAArBoM,IACpCA,EAAmB,IAGvBrK,EAAc,kBAAoBqK,EAAmB,KAAOnK,EAAK4I,MAAM9I,GAAe,aAG1FE,EAAKqK,SAAS3L,EAAMoB,EAAa8D,GAE7BA,IAAUxF,EAAKkM,UAAUtK,EAAKgJ,mBAAoBpF,KAClD5D,EAAKuK,cAAgB,KACrBvK,EAAKwK,QAAQ5G,MAIrB6G,WAAY,WAER,IAKIvC,EALAlI,EAAOC,KACPyK,EAAe1K,EAAKmC,cACpBwI,EAAW3K,EAAKoG,SAAW7G,EAE3Bb,EAAOsB,EAAKK,WAAWkI,WAG3BvI,EAAK4K,cAAe,EAEpB5K,EAAK6K,gBACL7K,EAAK8K,gBACL9K,EAAK+K,eAAerM,EAAKwH,QAEzBlG,EAAKgL,cAAa,GAElBhL,EAAKgF,MAAMiG,WAEXjL,EAAKkK,cAAcxL,GAEdiM,IACG3K,EAAK2G,OACL3G,EAAK4H,OAAO5H,EAAKqG,iBAGrBrG,EAAK2G,OAAQ,EAER3G,EAAKkL,SACFxM,EAAKwH,SACAlG,EAAKsC,SAASsB,QAAQsC,QAAUwE,GAAgB,GAAsB,OAAjBA,GACtD1K,EAAKyF,OAAOiF,GAGhB1K,EAAKmC,cAAgB,MACrB+F,EAAWlI,EAAKsC,SAAS6F,oBAAoB,KAC7BnI,EAAKD,SAAWC,EAAK4I,MAAMV,IACvClI,EAAKmL,aAAajD,IAEflI,EAAK8C,kBAAoB9C,EAAK+C,qBACrC/C,EAAKsC,SAASsB,MAAM,IACpB5D,EAAKmL,aAAa,MAClBnL,EAAKiC,UAAYjC,EAAKkC,iBAKlClC,EAAKoL,YACLpL,EAAK2H,QAAQ,cAGjB0D,YAAa,WACTpL,KAAKkL,aAAalL,KAAKqC,SAAS6F,oBAAoB,KAEhDlI,KAAK2K,cAAiB3K,KAAKqJ,OAA4B,IAApBrJ,KAAKgC,aACxChC,KAAKgC,UAAYhC,KAAKiC,gBAI9BoJ,aAAc,WACVrL,KAAKsL,WAGTvJ,qBAAsB,WAClB,IAAIhC,EAAOC,KACGD,EAAKoB,QAEXZ,GAAG,UAAY3B,EAAcmB,EAAKwL,gBAAgB9K,KAAKV,IACvDQ,GAAG,WAAa3B,EAAcmB,EAAKyL,iBAAiB/K,KAAKV,IAC7DA,EAAK8F,aACL9F,EAAK8F,YAAYtF,GAAG,UAAY3B,EAAcmB,EAAKwL,gBAAgB9K,KAAKV,IACpEQ,GAAG,WAAa3B,EAAcmB,EAAKyL,iBAAiB/K,KAAKV,KAIrES,cAAe,WACXR,KAAKmB,QAAQuG,QAAQ,UAGzB6D,gBAAiB,WACbvL,KAAKmB,QAAQmG,SAAStI,GACtBgB,KAAKmH,UAAW,GAGpBqE,iBAAkB,WACd,IAAIzL,EAAOC,KACPyL,EAAWzN,OAAO0N,OAAS1N,OAAO2N,IAEjC5L,EAAKoH,WACNyE,aAAa7L,EAAK8L,gBAEdxN,EAAQyN,SAASC,KAAON,EACxB1L,EAAKiM,UAELjM,EAAKkM,QAGTlM,EAAKoB,QAAQsG,YAAYzI,GACzBe,EAAKoH,UAAW,EAChBpH,EAAK2G,OAAQ,EACb3G,EAAKJ,QAAQ+H,QAAQ,UAI7BwE,kBAAmB,WACflM,KAAKmH,WAAanH,KAAK6F,aAG3BsG,cAAe,SAAS1J,GACpBA,EAAEa,iBACFtD,KAAK+E,MAAMmE,OAAO,WAAYlJ,KAAKU,oBACnCV,KAAKoM,SAAWpM,KAAKmB,QACrBnB,KAAKmH,UAAW,EAChBnH,KAAK4H,WAGTyE,UAAW,SAASzM,GAChB,IAAIG,EAAOC,KACPL,EAAUI,EAAKJ,QACf2M,EAAU1M,EAAQ0M,QAClBC,EAAW3M,EAAQ2M,SACnBpL,EAAUpB,EAAKoB,QAAQqL,IAAIzM,EAAK8F,aAAaH,IAAI/G,GACjD8N,EAAkB1M,EAAKoB,QAAQuE,IAAItG,GAElCmN,GAAaD,EAuBPA,GACPnL,EAAQuL,WAAWrN,GACnBoN,EAAgBnF,SAASrI,IAEzBwN,EAAgBhF,YAAYxI,IA1B5BU,EAAQgN,KAAK9N,GAAU,GAAO8N,KAAK7N,GAAU,GAE7C2N,EACKhF,YAAYxI,GACZsB,GAAGnB,EAAaW,EAAK6J,cAE1BzI,EACKC,KAAK/B,EAAU8B,EAAQ1C,KAAKY,IAC5B+B,KAAKlC,GAAe,GACpBkC,KAAKjC,GAAe,GACpBoB,GAAG,UAAY5B,EAAIoB,EAAMA,EAAK6M,SAASnM,KAAKV,IAC5CQ,GAAGxC,EAAMM,QAAQwO,UAAYlO,EAAIoB,EAAKmM,kBAAkBzL,KAAKV,IAC7DQ,GAAG,QAAU5B,EAAIoB,EAAKsL,aAAa5K,KAAKV,IAE7CA,EAAKoB,QAAQZ,GAAG,QAAU5B,EAAIoB,EAAKoM,cAAc1L,KAAKV,IAEjDA,EAAK8F,YAGN1E,EAAQZ,GAAG,QAAU5B,EAAIoB,EAAKuL,QAAQ7K,KAAKV,IAF3CoB,EAAQZ,GAAG,WAAa5B,EAAIoB,EAAK+M,UAAUrM,KAAKV,KAYxDJ,EAAQyB,KAAKvC,EAAUyN,GACflL,KAAKtC,EAAUyN,GAEvBpL,EAAQC,KAAKlC,EAAeoN,GACnBlL,KAAKjC,EAAeoN,IAGjCK,SAAU,SAASnK,GACf,IAGI2E,EACA2F,EAJAhN,EAAOC,KACPgN,EAAMvK,EAAEwK,QACRC,EAASzK,EAAEyK,OAIXC,EAAiBpN,EAAKgF,MAAMmB,UAchC,GAZInG,EAAK8F,cACLuB,EAAgBrH,EAAK8F,YAAY,KAAOvH,KAGxC0O,IAAQtO,EAAK0O,MACbJ,EAAMtO,EAAK2O,GACXN,GAAU,GACHC,IAAQtO,EAAK4O,QACpBN,EAAMtO,EAAK6O,KACXR,GAAU,IAGVA,IAAW3F,EAgBf,GAZA3E,EAAEwK,QAAUD,GAEPE,GAAUF,IAAQtO,EAAK2O,IAAOL,IAAQtO,EAAK8O,MAC5CzN,EAAKkH,cAAclH,EAAKoB,SAGxBpB,EAAKoG,SAAW7G,GAAgB0N,IAAQtO,EAAK8O,MAC7CzN,EAAK+I,eACL/I,EAAK2G,OAAQ,EACb3G,EAAKoG,OAAS5G,GAGdyN,IAAQtO,EAAK+O,OAAS1N,EAAK8L,gBAAkB9L,EAAK8F,aAAesH,EACjE1K,EAAEa,sBAWN,GAPI0J,IAAQtO,EAAKgP,UAAatG,IAC1BrH,EAAK4H,QAAQwF,GACb1K,EAAEa,oBAGNyJ,EAAUhN,EAAK4N,MAAMlL,IAErB,CAIA,IAAK0K,IAAmBpN,EAAK8F,YAAa,CACtC,IAAIgC,EAAU9H,EAAKiI,SAUnB,GARIgF,IAAQtO,EAAKkP,MACbb,GAAU,EACVhN,EAAK8N,cACEb,IAAQtO,EAAKoP,MACpBf,GAAU,EACVhN,EAAKgO,aAGLhB,EAAS,CACT,GAAIhN,EAAK2H,QAAQ,SAAU,CAAEO,SAAUlI,EAAKiO,oBAAoBjO,EAAKiI,UAAWiG,KAAMlO,EAAKiI,WAEvF,YADAjI,EAAKiI,OAAOH,GAIhB9H,EAAK2I,QAAQ3I,EAAKiI,UAAU,GAAMY,MAAK,WAC9BuE,GACDpN,EAAKkM,WAGbxJ,EAAEa,kBAIL4J,GAAWH,IAAWhN,EAAK8F,aAC5B9F,EAAKuL,YAIb4C,WAAY,SAASpO,EAAMqO,GACvB,IAAIhK,EAAanE,KAAKJ,QAAQuE,WAE9B,OAAIrE,IAAShC,GAAwB,OAATgC,IAI5BA,GAAc,GAEVqE,IACArE,EAAOA,EAAK2I,eAGc,IAAvB3I,EAAKsO,QAAQD,KAGxBE,aAAc,SAAS5P,EAAM6P,GACzB,IAAIC,EAAiBvO,KAAKuI,uBAM1B,OAJIgG,IACA9P,EAAO,CAAC8P,GAAgBC,OAAO/P,IAG5BA,EAAKgQ,MAAMH,GAAYE,OAAO/P,EAAKgQ,MAAM,EAAGH,KAGvDI,YAAa,WACT,IAKIC,EACA7O,EANAC,EAAOC,KACPvB,EAAOsB,EAAKK,WAAWkI,WACvBsG,EAAanQ,EAAKwH,QAAUlG,EAAK6C,iBAAmB,EAAI,GACxDiM,EAyoBZ,SAAuBV,EAAMW,GACzB,IAAK,IAAIC,EAAM,EAAGA,EAAMZ,EAAKlI,OAAQ8I,IACjC,GAAIZ,EAAKa,OAAOD,KAASD,EACrB,OAAO,EAGf,OAAO,EA/oBYG,CAAclP,EAAKiB,MAAOjB,EAAKmP,OAC1CC,EAAapP,EAAKkC,cAKlBkN,GADgB,IAAhBA,EACa,EAGAC,EADbD,GAAcN,EAAW,EAAI,EACWD,GAG5CnQ,EAAOA,EAAK4Q,OAAS5Q,EAAK4Q,SAAW5Q,EAAKgQ,QAC1ChQ,EAAOsB,EAAKsO,aAAa5P,EAAM0Q,GAE/B,IAAK,IAAIJ,EAAM,EAAGA,EAAMH,IACpB9O,EAAOC,EAAK4I,MAAMlK,EAAKsQ,KAEnBF,IAAY9O,EAAKmO,WAAWpO,EAAMC,EAAKmP,UAEhCnP,EAAKmO,WAAWpO,EAAMC,EAAKiB,OALN+N,KAUhCA,IAAQH,IACRD,EAAiB5O,EAAKiI,SAEtBjI,EAAK2I,QAAQ0G,EAAeD,EAAaJ,EAAKH,IAAahG,MAAK,WAC5D,IAAIA,EAAO,WACF7I,EAAKgF,MAAMmB,WACZnG,EAAKiM,WAITjM,EAAK2H,QAAQ,SAAU,CAAEO,SAAUlI,EAAKiO,oBAAoBjO,EAAKiI,UAAWiG,KAAMlO,EAAKiI,WACvFjI,EAAK2I,QAAQiG,GAAgB/F,KAAKA,GAElCA,SAMhBkE,UAAW,SAASrK,GAChB,IAAI1C,EAAOC,KAEX,GAAgB,IAAZyC,EAAE6M,OAAe7M,EAAEwK,UAAYlP,EAAMW,KAAK+O,MAA9C,CAIA,IAAIqB,EAAYS,OAAOC,aAAa/M,EAAEgN,UAAYhN,EAAEwK,SAEhDlN,EAAKH,QAAQuE,aACb2K,EAAYA,EAAUrG,eAGR,MAAdqG,GACArM,EAAEa,iBAGNvD,EAAKiB,OAAS8N,EACd/O,EAAKmP,MAAQJ,EAEb/O,EAAKuL,YAGToE,WAAY,WACR,IAAI3K,EAAQ/E,KAAK+E,MAEjBA,EAAM5D,QAAUpD,EAAM4R,KAAK5K,EAAMpF,SAE7BoF,EAAMpF,QAAQ4H,QAAQ,YAAY,KAClCxC,EAAM5D,QAAQmG,SAAS,sBACvBtH,KAAKmB,QAAQmG,SAAS,eAI9BhG,OAAQ,WACJlD,EAAOiC,GAAGiB,OAAOhB,KAAKN,MACtBA,KAAK+E,MAAMzC,IAAI,OAAQtC,KAAK0P,WAAWjP,KAAKT,QAGhDgO,oBAAqB,SAASrO,GAC1B,OAAKA,GAAYA,EAAQ,GAIrBA,EAAQ,KAAOK,KAAKH,YAAY,GACzBG,KAAKuI,uBAGTvI,KAAKqC,SAASuN,gBAAgB5P,KAAKqC,SAASwN,gBAAgBlQ,IAPxD,MAUfgK,OAAQ,SAASlH,GACb,IAAI1C,EAAOC,KACPiO,EAAOxL,EAAEwL,MAAQpQ,EAAE4E,EAAEqN,eAEzBrN,EAAEa,iBAEEvD,EAAK2H,QAAQ,SAAU,CAAEO,SAAUlI,EAAKiO,oBAAoBC,GAAOA,KAAMA,IACzElO,EAAK+G,SAIT/G,EAAKgQ,gBAAiB,EAEtBhQ,EAAK2I,QAAQuF,GAAMrF,MAAK,WACpB7I,EAAKkM,QACLlM,EAAKkH,cAAclH,EAAKoB,cAIhC8F,cAAe,SAAStH,GACpB,IAAIqQ,EAAS1R,IACT6C,EAAUnB,KAAKmB,QACf0E,EAAc7F,KAAK6F,YACnBoK,EAAiBtQ,IAAYkG,EAAc1E,EAAU0E,EACrDqK,EAAe7R,EAAQyN,WAAazN,EAAQ8R,OAAS9R,EAAQ+R,YAAc/R,EAAQgS,UAEnFxK,GAAeA,EAAY,KAAOlG,EAAQ,IAAMuQ,GAIhDrK,IAAgBoK,EAAe,KAAOD,GAAUhQ,KAAKqG,gBACrDrG,KAAKqG,cAAe,EACpBrG,KAAKmH,UAAW,EAChBnH,KAAKoM,SAAWzM,EAAQ+H,QAAQ,WAIxC4I,cAAe,SAASnC,GACpB,GAAKA,EAAL,CAIA,IAAIpO,EAAOC,KACMD,EAAKH,QAAQuE,aAG1BgK,EAAOA,EAAK1F,eAGhB1I,EAAK2I,SAAQ,SAAST,GAClB,OAAOlI,EAAKmO,WAAWnO,EAAK4I,MAAMV,GAAWkG,QAIrDoC,YAAa,WACT,OAAOvQ,KAAKF,QAGhBwL,QAAS,WACL,IAAIvL,EAAOC,KACPI,EAAaL,EAAKK,WAItB,GAFAwL,aAAa7L,EAAK8L,gBAEd9L,EAAKoJ,mBACLpJ,EAAK8L,eAAiB2E,YAAW,WAC7B,IAAI7M,EAAQ5D,EAAK8F,YAAYc,MAEzB5G,EAAKgB,QAAU4C,IACf5D,EAAKgB,MAAQ4C,EACb5D,EAAK0Q,OAAO9M,GACZ5D,EAAKyG,sBAGTzG,EAAK8L,eAAiB,OACvB9L,EAAKH,QAAQgE,WACb,CAKH,GAJA7D,EAAK8L,eAAiB2E,YAAW,WAC7BzQ,EAAKiB,MAAQ,KACdjB,EAAKH,QAAQgE,QAEX7D,EAAKsC,SAASM,QAIf,YAHAvC,EAAW4C,QAAQ4F,MAAK,WACpB7I,EAAK2O,iBAKb3O,EAAK2O,gBAIbgC,KAAM,SAAS5I,GACX,IAAIrJ,EAAMkS,EAAO5B,EACb6B,EAAkC,mBAAd9I,EACpB+I,EAAmBD,EAA4B/S,IAAfA,EAAEiK,GAYtC,GAVI9H,KAAK4C,mBACoB,iBAAdkF,EACHA,GAAa,IACbA,GAAa,GAEV+I,EAAgBzI,SAAS,wBAChCN,GAAa,IAIjB8I,EAAY,CAGZ,IAFAnS,EAAOuB,KAAKI,WAAWkI,WAElByG,EAAM,EAAGA,EAAMtQ,EAAKwH,OAAQ8I,IAC7B,GAAIjH,EAAUrJ,EAAKsQ,IAAO,CACtBjH,EAAYiH,EACZ4B,GAAQ,EACR,MAIHA,IACD7I,GAAa,GAIrB,OAAOA,GAGX+F,WAAY,WACJ7N,KAAK4C,iBACL5C,KAAKgI,OAAOhI,KAAKH,aAEjBG,KAAKqC,SAASyO,cAItB/C,UAAW,WACP/N,KAAK+Q,oBACL/Q,KAAKqC,SAAS2O,aAGlBC,UAAW,WACP,IAAIC,EAUJ,OARIlR,KAAKH,YAAYuI,SAAS,YAC1BpI,KAAK+Q,oBACL/Q,KAAKqC,SAASyO,aACdI,EAAa,GAEbA,EAAalR,KAAKqC,SAAS8O,YAGxBD,GAGXE,UAAW,WACP,IAAIF,EAEJ,IAAIlR,KAAKH,YAAYuI,SAAS,WAU9B,OANA8I,EAAalR,KAAKqC,SAASgP,YAEtBrR,KAAKqC,SAAS0F,SAAY/H,KAAKJ,QAAQ4E,SACxCxE,KAAKgI,OAAOhI,KAAKH,aAGdqR,GAGXzK,WAAY,WACR,IAAI7G,EAAUI,KAAKJ,QACfyC,EAAWrC,KAAKqC,SAChBiP,EAAcjP,EAAS0F,QACvB9H,EAAQoC,EAASmD,UAErBvF,EAAQA,EAAMA,EAAMgG,OAAS,MAEfnI,GAAe8B,EAAQ2R,iBAAmBD,IACpDrR,EAAQ,GAGRA,IAAUnC,EACVuE,EAAS0F,MAAM9H,IAEXL,EAAQC,aAAiBD,EAAQ4E,SAA0C,aAA/B5E,EAAQ4E,QAAQgN,WAK5DnP,EAASoP,cAAc,IAJvBzR,KAAKgI,OAAOhI,KAAKH,aACjBG,KAAK0I,QAAQ1I,KAAKH,aAClBG,KAAKqC,SAASqP,QAAQC,UAAU,KAO5CZ,kBAAmB,SAASa,GACxB5R,KAAKH,YAAY4H,YAAY,WAAamK,GAAmB,KAAKlF,WAAW,OAGjF1E,OAAQ,SAASF,GACb,IAAIzF,EAAWrC,KAAKqC,SAChBxC,EAAcG,KAAKH,YAEvB,GAAIiI,IAAchK,EAOd,QANAgK,EAAYzF,EAAS0F,UAEHlI,EAAYuI,SAAS,aACnCN,EAAYjI,GAGTiI,EAGX9H,KAAK+Q,oBAELjJ,EAAY9H,KAAK0Q,KAAK5I,GAEtBzF,EAAS0F,MAAMD,IAEI,IAAfA,IACAjI,EAAYyH,SAAS,WACTlG,KAAK,KAAMiB,EAASkE,WAE5BvG,KAAK6F,aACL7F,KAAK6F,YACA6G,WAAW,yBACXtL,KAAK,wBAAyBiB,EAASkE,aAKxDmC,QAAS,SAASZ,EAAW+J,GACzB,IAAI9R,EAAOC,KAIX,OAFA8H,EAAY/H,EAAK2Q,KAAK5I,GAEf/H,EAAKsC,SAASmD,OAAOsC,GAAWc,MAAK,WACnCiJ,GAAa9R,EAAKoG,SAAW7G,IAC9BS,EAAKoG,OAAS5G,IAGC,IAAfuI,GACA/H,EAAKmL,aAAa,UAK9BA,aAAc,SAASjD,GACnB,IAAIlI,EAAOC,KACPH,EAAcE,EAAKH,QAAQC,YAC3BkP,EAAMhP,EAAKsC,SAASmD,SAEpB7B,EAAQ,GACR7D,EAAO,IAEXiP,EAAMA,EAAIA,EAAI9I,OAAS,MACXnI,IACRiR,GAAO,GAGX/O,KAAK+Q,kBAAkB,eAEnB9I,GAAyB,IAAbA,GACZnI,EAAOmI,EACPtE,EAAQ5D,EAAK+R,WAAW7J,GACpBpI,IACAkP,GAAO,IAEJlP,IACPE,EAAKiI,OAAOjI,EAAKF,YAAYyH,SAAS,eAEtCxH,EAAOC,EAAK+C,mBAGRa,EADuB,iBAAhB9D,EACC,GAEAE,EAAKoK,OAAOtK,GAGxBkP,EAAM,GAGVhP,EAAKkC,cAAgB8M,EAEP,OAAVpL,IACAA,EAAQ,IAGZ5D,EAAK8C,cAAc/C,GACnBC,EAAKgJ,UAAUpF,EAAOoL,GAEtBhP,EAAKgS,mBAGTxQ,QAAS,WACL,IACIwD,EADO/E,KACM+E,MACb+G,EAAWzN,EAAQyN,SACZ/G,EAAMpF,QAAQwD,QAAQ,YAAY6O,GAAG,GAEvC/L,QAAU6F,IACf/G,EAAMnF,QAAQwE,UAAU0B,KAAKmM,QAAWnG,EAASoG,SAAWpG,EAASqG,MAAS,SAAYrG,EAASC,KAAOD,EAASsG,GAAM,aAAerN,EAAMnF,QAAQwE,UAAU0B,KAAKmM,UAI7KvQ,cAAe,WAOP1B,KAAK6F,cACL7F,KAAK6F,YACAH,IAAI/G,GACJ4I,QAAQ,kBACRgC,SAELvJ,KAAK6F,YAAc,MAGnB7F,KAAKmJ,qBACLnJ,KAAK6F,YAAchI,EAAE,+CAChBuD,KAAK,CACFiR,YAAarS,KAAKL,QAAQyB,KAAK,eAC/BkR,MAAOtS,KAAKJ,QAAQoF,aAAehF,KAAKL,QAAQyB,KAAK,SACrDmR,KAAM,YACN,aAAcvS,KAAKJ,QAAQoF,YAC3B,gBAAiB,UACjB,oBAAqB,SAG7BhF,KAAK0J,KACA8I,SACAC,QAAQ5U,EA5BI,wMA6BZmJ,KAAK,gBACL0L,OAAO1S,KAAK6F,eAIzBxE,MAAO,WACH,IAKIsR,EAAMC,EALN7S,EAAOC,KACPmB,EAAUpB,EAAKoB,QACf0R,EAAW,0BACXC,EAAK/U,EAAMgV,OACXnT,EAAUG,EAAKH,SAGnB+S,EAAOxR,EAAQ6F,KAAK6L,IAEV,KACND,EAAW1U,EAAK8U,aAAa,yEAA0E,CACnGC,KAAM,UACNhO,KAAMrF,EAAQqF,KACdC,SAAUtF,EAAQsF,SAClBgO,MAAO,OACP/N,QAAS,SAGbhE,EAAQuR,OAAO,aAAeI,EAAf,6FAGVJ,OAAOE,GACPF,OAAO3S,EAAKJ,SAEjBgT,EAAOxR,EAAQ6F,KAAK6L,IAGxB9S,EAAK4S,KAAOA,EACZ5S,EAAK4F,OAASxE,EAAQ6F,KAAK,mBAC3BjH,EAAK6F,WAAa7F,EAAK4F,OAAOqB,KAAK,YAGvC/F,SAAU,WACN,IAGIE,EAHApB,EAAOC,KACPL,EAAUI,EAAKJ,QACfwT,EAAaxT,EAAQ,IAGzBwB,EAAUxB,EAAQ6S,UAELpP,GAAG,oBACZjC,EAAUxB,EAAQgQ,KAAK,YAAY6C,UAC3B,GAAGY,MAAMC,QAAUF,EAAWC,MAAMC,QAC5ClS,EAAQ,GAAGmR,MAAQa,EAAWb,OAGlCvS,EAAKqM,SAAWrM,EAAKoB,QAAUA,EAC1BmG,SAAS,2BACTA,SAAS6L,EAAWG,WACpB7L,YAAY,0BACZD,IAAI,UAAW,IACfpG,KAAK,CACFmS,UAAW5T,EAAQyB,KAAK,aACxBoS,aAAc,KACdjB,KAAM,WACN,iBAAiB,IAGzB5S,EAAQ8T,OAAO/G,WAAW,cAG9BgH,gBAAiB,SAASlB,GACtBxS,KAAKwF,OAAOgN,EAAO7O,QAAU,GAAK,IAGtCgQ,aAAc,SAASlR,GACnBzC,KAAK4T,mBAED5T,KAAK0H,QApwCN,QAqwCCjF,EAAEa,kBAEFtD,KAAKmB,QAAQC,KAAK,iBAAiB,GACnCpB,KAAK6T,GAAGzS,KAAK,eAAe,KAIpC0S,cAAe,SAASrR,GAChBzC,KAAK0H,QA5wCL,SA6wCAjF,EAAEa,kBAEFtD,KAAKmB,QAAQC,KAAK,iBAAiB,GACnCpB,KAAK6T,GAAGzS,KAAK,eAAe,KAIpCP,eAAgB,WACZ,IAAId,EAAOC,KACPyE,EAAW1E,EAAKH,QAAQ8E,cAW5B,GALID,EAHCA,EAGU1G,EAAM0G,SAASA,GAFf1G,EAAM0G,SAAS,sBAAuB,CAAEsP,cAAc,IAAStT,KAAKV,GAKnFA,EAAK2E,cAAgBD,EAEjB1E,EAAK6C,mBAAqB7C,EAAKH,QAAQ+E,oBACvC,IACI5E,EAAK2E,cAAc3E,EAAKwI,wBAC1B,MAAO9F,GACL,MAAM,IAAIuR,MAvyCK,sMA4yC3BnR,cAAe,SAAS/C,GACpB,IAAImI,EAAW,KACXxD,EAAWzE,KAAK0E,cAChBuP,EAAkBjU,KAAK8C,mBACvB6P,EAAO3S,KAAK2S,KAEhB,GAAI7S,IAAShC,EACT,OAAO6U,EAAK7S,OAGZjC,EAAEkM,cAAcjK,IAASA,aAAgBtB,EACzCyJ,EAAWnI,EACJmU,GAAmBA,IAAoBnU,IAC9CmI,EAAWjI,KAAKJ,QAAQC,aAGvBoI,IACDA,EAAWjI,KAAKgK,gBAAgBlK,EAAME,KAAK+I,cAG3C/I,KAAK4C,mBACDqF,IAAagM,GAAmBjU,KAAK2I,MAAMV,KAAcgM,IACzDxP,EAAWzE,KAAK2E,oBAEwB,iBAA7B3E,KAAKJ,QAAQC,aAA6BG,KAAKJ,QAAQ+E,sBAC9DsD,EAAWgM,KAKvB,IAAIC,EAAc,WACd,MAAO,CACHpK,SAAU6I,EAAKwB,MACf1V,KAAM,CAAE,CAAEwJ,SAAUA,MAI5BjI,KAAK6J,QAAQ,UAAWqK,GAExB,IACIvB,EAAKzU,KAAKuG,EAASwD,IACrB,MAAOxF,GAELkQ,EAAKzU,KAAK,IAGd8B,KAAK6J,QAAQ,UAAWqK,IAG5BE,WAAY,SAASzQ,EAAO7D,GACnB6D,GAAU7D,IACXA,EAAOE,KAAK8C,oBAGhB9C,KAAK+I,UAAUpF,GACf3D,KAAK6C,cAAc/C,GAEnBE,KAAKqJ,KAAOrJ,KAAK+I,YACjB/I,KAAKgC,UAAYhC,KAAKiC,cAEtBjC,KAAKqC,SAASgS,SAAS1Q,GAEvB3D,KAAKkC,cAAgB,KACrBlC,KAAK2K,cAAe,GAGxBX,gBAAiB,SAASlK,EAAM6D,GAC5B,IAAIG,EAAgB9D,KAAKJ,QAAQkE,cAC7BmE,EAAW,GAUf,OARInE,GACAwQ,EAAOrM,EAAUnE,EAAcyQ,MAAM,KAAMzU,GAC3CwU,EAAOrM,EAAUjI,KAAKJ,QAAQmE,eAAewQ,MAAM,KAAM5Q,GACzDsE,EAAW,IAAIzJ,EAAiByJ,IAEhCA,EAAWnI,EAGRmI,KAIf,SAASqM,EAAOE,EAAUC,EAAQ9Q,GAK9B,IAJA,IAEI+Q,EAFA3F,EAAM,EACN4F,EAAYF,EAAOxO,OAAS,EAGzB8I,EAAM4F,IAAa5F,GACtB2F,EAAQD,EAAO1F,MAEAyF,IACXA,EAASE,GAAS,IAGtBF,EAAWA,EAASE,GAGxBF,EAASC,EAAOE,IAAchR,EAGlC,SAASyL,EAAenP,EAAOgG,GAI3B,OAHIhG,GAASgG,IACThG,GAASgG,GAENhG,EAYXhC,EAAG2W,OAAOpV,GAEVzB,EAAM8W,cAAcC,eAAe,eAAgB,aAEnD/W,EAAM8W,cAAcE,eAAe,eAAgB,CAAC,CAChDpI,KAAM,UACNqI,OAAQjX,EAAM8W,cAAcI,cAAczG,OAAO,CAAC,CAAC,OAAQ,aA97CnE,CAg8CGxQ,OAAOD,MAAMmX","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.list', 'kendo.mobile.scroller', 'kendo.virtuallist', 'kendo.html.button'], factory) :\n factory();\n})((function () {\n var __meta__ = {\n id: \"dropdownlist\",\n name: \"DropDownList\",\n category: \"web\",\n description: \"The DropDownList widget displays a list of values and allows the selection of a single value from the list.\",\n depends: [ \"list\", \"html.button\" ],\n features: [ {\n id: \"mobile-scroller\",\n name: \"Mobile scroller\",\n description: \"Support for kinetic scrolling in mobile device\",\n depends: [ \"mobile.scroller\" ]\n }, {\n id: \"virtualization\",\n name: \"VirtualList\",\n description: \"Support for virtualization\",\n depends: [ \"virtuallist\" ]\n } ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n ui = kendo.ui,\n html = kendo.html,\n List = ui.List,\n Select = ui.Select,\n support = kendo.support,\n activeElement = kendo._activeElement,\n ObservableObject = kendo.data.ObservableObject,\n keys = kendo.keys,\n ns = \".kendoDropDownList\",\n nsFocusEvent = ns + \"FocusEvent\",\n DISABLED = \"disabled\",\n READONLY = \"readonly\",\n CHANGE = \"change\",\n FOCUSED = \"k-focus\",\n STATEDISABLED = \"k-disabled\",\n ARIA_DISABLED = \"aria-disabled\",\n ARIA_READONLY = \"aria-readonly\",\n CLICKEVENTS = \"click\" + ns + \" touchend\" + ns,\n HOVEREVENTS = \"mouseenter\" + ns + \" mouseleave\" + ns,\n TABINDEX = \"tabindex\",\n STATE_FILTER = \"filter\",\n STATE_ACCEPT = \"accept\",\n MSG_INVALID_OPTION_LABEL = \"The `optionLabel` option is not valid due to missing fields. Define a custom optionLabel as shown here http://docs.telerik.com/kendo-ui/api/javascript/ui/dropdownlist#configuration-optionLabel\",\n OPEN = \"open\",\n CLOSE = \"close\";\n\n var DropDownList = Select.extend( {\n init: function(element, options) {\n var that = this;\n var index = options && options.index;\n var optionLabel, text, disabled;\n\n that.ns = ns;\n options = Array.isArray(options) ? { dataSource: options } : options;\n\n Select.fn.init.call(that, element, options);\n\n options = that.options;\n element = that.element.on(\"focus\" + ns, that._focusHandler.bind(that));\n\n that._focusInputHandler = that._focusInput.bind(that);\n\n that.optionLabel = $();\n that._optionLabel();\n\n that._inputTemplate();\n\n that._reset();\n\n that._prev = \"\";\n that._word = \"\";\n\n that._wrapper();\n\n that._tabindex();\n that.wrapper.data(TABINDEX, that.wrapper.attr(TABINDEX));\n\n that._span();\n\n that._popup();\n\n that._mobile();\n\n that._dataSource();\n\n that._ignoreCase();\n\n that._filterHeader();\n\n if (options.label) {\n this._label();\n }\n\n that._aria();\n\n that._enable();\n\n that._attachFocusHandlers();\n\n that._oldIndex = that.selectedIndex = -1;\n\n if (index !== undefined$1) {\n options.index = index;\n }\n\n that._initialIndex = options.index;\n\n that.requireValueMapper(that.options);\n that._initList();\n that.listView.one(\"dataBound\", that._attachAriaActiveDescendant.bind(that));\n\n that._cascade();\n\n that.one(\"set\", function(e) {\n if (!e.sender.listView.bound() && that.hasOptionLabel()) {\n that._textAccessor(that._optionLabelText());\n }\n });\n\n if (options.autoBind) {\n that.dataSource.fetch();\n } else if (that.selectedIndex === -1) { //selectedIndex !== -1 when cascade functionality happens instantly\n text = options.text || \"\";\n if (!text) {\n optionLabel = options.optionLabel;\n\n if (optionLabel && options.index === 0) {\n text = optionLabel;\n } else if (that._isSelect) {\n text = element.children(\":selected\").text();\n }\n }\n\n that._textAccessor(text);\n }\n\n disabled = $(that.element).parents(\"fieldset\").is(':disabled');\n\n if (disabled) {\n that.enable(false);\n }\n\n that.listView.bind(\"click\", function(e) { e.preventDefault(); });\n\n kendo.notify(that);\n that._applyCssClasses();\n },\n\n options: {\n name: \"DropDownList\",\n enabled: true,\n autoBind: true,\n index: 0,\n text: null,\n value: null,\n delay: 500,\n height: 200,\n dataTextField: \"\",\n dataValueField: \"\",\n optionLabel: \"\",\n cascadeFrom: \"\",\n cascadeFromField: \"\",\n cascadeFromParentField: \"\",\n ignoreCase: true,\n animation: {},\n filter: \"none\",\n minLength: 1,\n enforceMinLength: false,\n virtual: false,\n template: null,\n valueTemplate: null,\n optionLabelTemplate: null,\n groupTemplate: \"#:data#\",\n fixedGroupTemplate: \"#:data#\",\n autoWidth: false,\n popup: null,\n filterTitle: null,\n size: \"medium\",\n fillMode: \"solid\",\n rounded: \"medium\",\n label: null\n },\n\n events: [\n \"open\",\n \"close\",\n CHANGE,\n \"select\",\n \"filtering\",\n \"dataBinding\",\n \"dataBound\",\n \"cascade\",\n \"set\",\n \"kendoKeydown\"\n ],\n\n setOptions: function(options) {\n Select.fn.setOptions.call(this, options);\n\n this.listView.setOptions(this._listOptions(options));\n\n this._optionLabel();\n this._inputTemplate();\n this._accessors();\n this._filterHeader();\n this._enable();\n this._aria();\n\n if (!this.value() && this.hasOptionLabel()) {\n this.select(0);\n }\n },\n\n destroy: function() {\n var that = this;\n\n Select.fn.destroy.call(that);\n\n that.wrapper.off(ns);\n that.wrapper.off(nsFocusEvent);\n that.element.off(ns);\n\n that._arrow.off();\n that._arrow = null;\n that._arrowIcon = null;\n\n that.optionLabel.off();\n\n if (that.filterInput) {\n that.filterInput.off(nsFocusEvent);\n }\n },\n\n open: function() {\n var that = this;\n var isFiltered = that.dataSource.filter() ? that.dataSource.filter().filters.length > 0 : false;\n var listView = this.listView;\n\n if (that.popup.visible()) {\n return;\n }\n\n if (!that.listView.bound() || that._state === STATE_ACCEPT) {\n that._open = true;\n that._state = \"rebind\";\n\n if (that.filterInput) {\n that.filterInput.val(\"\");\n that._prev = \"\";\n }\n\n if (that.filterInput && that.options.minLength !== 1 && !isFiltered) {\n that.refresh();\n that.popup.one(\"activate\", that._focusInputHandler);\n that.wrapper.attr(\"aria-activedescendant\", listView._optionID);\n that.popup.open();\n that._resizeFilterInput();\n } else {\n that._filterSource();\n }\n } else if (that._allowOpening()) {\n that._focusFilter = true;\n that.popup.one(\"activate\", that._focusInputHandler);\n // In some cases when the popup is opened resize is triggered which will cause it to close\n // Setting the below flag will prevent this from happening\n that.popup._hovered = true;\n that.wrapper.attr(\"aria-activedescendant\", listView._optionID);\n that.popup.open();\n that._resizeFilterInput();\n that._focusItem();\n }\n },\n\n close: function() {\n this._attachAriaActiveDescendant();\n this.popup.close();\n },\n\n _attachAriaActiveDescendant: function() {\n var wrapper = this.wrapper,\n inputId = wrapper.find(\".k-input-inner\").attr('id');\n\n wrapper.attr(\"aria-describedby\", inputId);\n },\n\n _focusInput: function() {\n this._focusElement(this.filterInput);\n },\n\n _resizeFilterInput: function() {\n var filterInput = this.filterInput;\n var originalPrevent = this._prevent;\n\n if (!filterInput) {\n return;\n }\n\n var isInputActive = this.filterInput[0] === activeElement();\n var caret = kendo.caret(this.filterInput[0])[0];\n\n this._prevent = true;\n\n filterInput.addClass(\"k-hidden\");\n filterInput.closest(\".k-list-filter\").css(\"width\", this.popup.element.css(\"width\"));\n filterInput.removeClass(\"k-hidden\");\n\n if (isInputActive) {\n filterInput.trigger(\"focus\");\n kendo.caret(filterInput[0], caret);\n }\n\n this._prevent = originalPrevent;\n },\n\n _allowOpening: function() {\n return this.hasOptionLabel() || this.filterInput || Select.fn._allowOpening.call(this);\n },\n\n toggle: function(toggle) {\n this._toggle(toggle, true);\n },\n\n current: function(candidate) {\n var current;\n\n if (candidate === undefined$1) {\n current = this.listView.focus();\n\n if (!current && this.selectedIndex === 0 && this.hasOptionLabel()) {\n return this.optionLabel;\n }\n\n return current;\n }\n\n this._focus(candidate);\n },\n\n dataItem: function(index) {\n var that = this;\n var dataItem = null;\n\n if (index === null) { return index; }\n\n if (index === undefined$1) {\n dataItem = that.listView.selectedDataItems()[0];\n } else {\n if (typeof index !== \"number\") {\n if (that.options.virtual) {\n return that.dataSource.getByUid($(index).data(\"uid\"));\n }\n if (index.hasClass(\"k-list-optionlabel\")) {\n index = -1;\n } else {\n index = $(that.items()).index(index);\n }\n } else if (that.hasOptionLabel()) {\n index -= 1;\n }\n\n dataItem = that.dataSource.flatView()[index];\n }\n\n if (!dataItem) {\n dataItem = that._optionLabelDataItem();\n }\n\n return dataItem;\n },\n\n refresh: function() {\n this.listView.refresh();\n },\n\n text: function(text) {\n var that = this;\n var loweredText;\n var ignoreCase = that.options.ignoreCase;\n\n text = text === null ? \"\" : text;\n\n if (text !== undefined$1) {\n if (typeof text !== \"string\") {\n that._textAccessor(text);\n return;\n }\n\n loweredText = ignoreCase ? text.toLowerCase() : text;\n\n that._select(function(data) {\n data = that._text(data);\n\n if (ignoreCase) {\n data = (data + \"\").toLowerCase();\n }\n\n return data === loweredText;\n }).done(function() {\n that._textAccessor(that.dataItem() || text);\n that._refreshFloatingLabel();\n });\n\n } else {\n return that._textAccessor();\n }\n },\n\n _clearFilter: function() {\n $(this.filterInput).val(\"\");\n Select.fn._clearFilter.call(this);\n },\n\n value: function(value) {\n var that = this;\n var listView = that.listView;\n var dataSource = that.dataSource;\n var valueFn = function() { that.value(value); };\n\n if (value === undefined$1) {\n value = that._accessor() || that.listView.value()[0];\n return value === undefined$1 || value === null ? \"\" : value;\n }\n\n that.requireValueMapper(that.options, value);\n\n if (value || !that.hasOptionLabel()) {\n that._initialIndex = null;\n }\n\n this.trigger(\"set\", { value: value });\n\n if (that._request && that.options.cascadeFrom && that.listView.bound()) {\n if (that._valueSetter) {\n dataSource.unbind(CHANGE, that._valueSetter);\n }\n\n that._valueSetter = valueFn.bind(that);\n\n dataSource.one(CHANGE, that._valueSetter);\n return;\n }\n\n if (that._isFilterEnabled() && listView.bound() && listView.isFiltered()) {\n that._clearFilter();\n } else {\n that._fetchData();\n }\n\n listView.value(value).done(function() {\n that._old = that._valueBeforeCascade = that._accessor();\n that._oldIndex = that.selectedIndex;\n that._refreshFloatingLabel();\n });\n },\n\n hasOptionLabel: function() {\n return this.optionLabel && !!this.optionLabel[0];\n },\n\n _optionLabel: function() {\n var that = this;\n var options = that.options;\n var optionLabel = options.optionLabel;\n var template = options.optionLabelTemplate;\n\n if (!optionLabel) {\n that.optionLabel.off().remove();\n that.optionLabel = $();\n return;\n }\n\n if (!template) {\n template = \"#:\";\n\n if (typeof optionLabel === \"string\") {\n template += \"data\";\n } else {\n template += kendo.expr(options.dataTextField, \"data\");\n }\n\n template += \"#\";\n }\n\n if (typeof template !== \"function\") {\n template = kendo.template(template);\n }\n\n that.optionLabelTemplate = template;\n\n if (!that.hasOptionLabel()) {\n that.optionLabel = $('
').prependTo(that.list);\n }\n\n that.optionLabel.html(template(optionLabel))\n .off()\n .on(CLICKEVENTS, that._click.bind(that))\n .on(HOVEREVENTS, that._toggleHover);\n\n that.angular(\"compile\", function() {\n return { elements: that.optionLabel, data: [{ dataItem: that._optionLabelDataItem() }] };\n });\n },\n\n _optionLabelText: function() {\n var optionLabel = this.options.optionLabel;\n return (typeof optionLabel === \"string\") ? optionLabel : this._text(optionLabel);\n },\n\n _optionLabelDataItem: function() {\n var that = this;\n var optionLabel = that.options.optionLabel;\n\n if (that.hasOptionLabel()) {\n return $.isPlainObject(optionLabel) ? new ObservableObject(optionLabel) : that._assignInstance(that._optionLabelText(), \"\");\n }\n\n return undefined$1;\n },\n\n _buildOptions: function(data) {\n var that = this;\n if (!that._isSelect) {\n return;\n }\n\n var value = that.listView.value()[0];\n var optionLabel = that._optionLabelDataItem();\n var optionLabelValue = optionLabel && that._value(optionLabel);\n\n if (value === undefined$1 || value === null) {\n value = \"\";\n }\n\n if (optionLabel) {\n if (optionLabelValue === undefined$1 || optionLabelValue === null) {\n optionLabelValue = \"\";\n }\n\n optionLabel = '\";\n }\n\n that._options(data, optionLabel, value);\n\n if (value !== List.unifyType(that._accessor(), typeof value)) {\n that._customOption = null;\n that._custom(value);\n }\n },\n\n _listBound: function() {\n\n var that = this;\n var initialIndex = that._initialIndex;\n var filtered = that._state === STATE_FILTER;\n\n var data = that.dataSource.flatView();\n var dataItem;\n\n that._presetValue = false;\n\n that._renderFooter();\n that._renderNoData();\n that._toggleNoData(!data.length);\n\n that._resizePopup(true);\n\n that.popup.position();\n\n that._buildOptions(data);\n\n if (!filtered) {\n if (that._open) {\n that.toggle(that._allowOpening());\n }\n\n that._open = false;\n\n if (!that._fetch) {\n if (data.length) {\n if (!that.listView.value().length && initialIndex > -1 && initialIndex !== null) {\n that.select(initialIndex);\n }\n\n that._initialIndex = null;\n dataItem = that.listView.selectedDataItems()[0];\n if (dataItem && that.text() !== that._text(dataItem)) {\n that._selectValue(dataItem);\n }\n } else if (that._textAccessor() !== that._optionLabelText()) {\n that.listView.value(\"\");\n that._selectValue(null);\n that._oldIndex = that.selectedIndex;\n }\n }\n }\n\n that._hideBusy();\n that.trigger(\"dataBound\");\n },\n\n _listChange: function() {\n this._selectValue(this.listView.selectedDataItems()[0]);\n\n if (this._presetValue || (this._old && this._oldIndex === -1)) {\n this._oldIndex = this.selectedIndex;\n }\n },\n\n _filterPaste: function() {\n this._search();\n },\n\n _attachFocusHandlers: function() {\n var that = this;\n var wrapper = that.wrapper;\n\n wrapper.on(\"focusin\" + nsFocusEvent, that._focusinHandler.bind(that))\n .on(\"focusout\" + nsFocusEvent, that._focusoutHandler.bind(that));\n if (that.filterInput) {\n that.filterInput.on(\"focusin\" + nsFocusEvent, that._focusinHandler.bind(that))\n .on(\"focusout\" + nsFocusEvent, that._focusoutHandler.bind(that));\n }\n },\n\n _focusHandler: function() {\n this.wrapper.trigger(\"focus\");\n },\n\n _focusinHandler: function() {\n this.wrapper.addClass(FOCUSED);\n this._prevent = false;\n },\n\n _focusoutHandler: function() {\n var that = this;\n var isIFrame = window.self !== window.top;\n\n if (!that._prevent) {\n clearTimeout(that._typingTimeout);\n\n if (support.mobileOS.ios && isIFrame) {\n that._change();\n } else {\n that._blur();\n }\n\n that.wrapper.removeClass(FOCUSED);\n that._prevent = true;\n that._open = false;\n that.element.trigger(\"blur\");\n }\n },\n\n _wrapperMousedown: function() {\n this._prevent = !!this.filterInput;\n },\n\n _wrapperClick: function(e) {\n e.preventDefault();\n this.popup.unbind(\"activate\", this._focusInputHandler);\n this._focused = this.wrapper;\n this._prevent = false;\n this._toggle();\n },\n\n _editable: function(options) {\n var that = this;\n var element = that.element;\n var disable = options.disable;\n var readonly = options.readonly;\n var wrapper = that.wrapper.add(that.filterInput).off(ns);\n var dropDownWrapper = that.wrapper.off(HOVEREVENTS);\n\n if (!readonly && !disable) {\n element.prop(DISABLED, false).prop(READONLY, false);\n\n dropDownWrapper\n .removeClass(STATEDISABLED)\n .on(HOVEREVENTS, that._toggleHover);\n\n wrapper\n .attr(TABINDEX, wrapper.data(TABINDEX))\n .attr(ARIA_DISABLED, false)\n .attr(ARIA_READONLY, false)\n .on(\"keydown\" + ns, that, that._keydown.bind(that))\n .on(kendo.support.mousedown + ns, that._wrapperMousedown.bind(that))\n .on(\"paste\" + ns, that._filterPaste.bind(that));\n\n that.wrapper.on(\"click\" + ns, that._wrapperClick.bind(that));\n\n if (!that.filterInput) {\n wrapper.on(\"keypress\" + ns, that._keypress.bind(that));\n } else {\n wrapper.on(\"input\" + ns, that._search.bind(that));\n }\n\n } else if (disable) {\n wrapper.removeAttr(TABINDEX);\n dropDownWrapper.addClass(STATEDISABLED);\n } else {\n dropDownWrapper.removeClass(STATEDISABLED);\n }\n\n element.attr(DISABLED, disable)\n .attr(READONLY, readonly);\n\n wrapper.attr(ARIA_DISABLED, disable)\n .attr(ARIA_READONLY, readonly);\n },\n\n _keydown: function(e) {\n var that = this;\n var key = e.keyCode;\n var altKey = e.altKey;\n var isInputActive;\n var handled;\n\n var isPopupVisible = that.popup.visible();\n\n if (that.filterInput) {\n isInputActive = that.filterInput[0] === activeElement();\n }\n\n if (key === keys.LEFT) {\n key = keys.UP;\n handled = true;\n } else if (key === keys.RIGHT) {\n key = keys.DOWN;\n handled = true;\n }\n\n if (handled && isInputActive) {\n return;\n }\n\n e.keyCode = key;\n\n if ((altKey && key === keys.UP) || key === keys.ESC) {\n that._focusElement(that.wrapper);\n }\n\n if (that._state === STATE_FILTER && key === keys.ESC) {\n that._clearFilter();\n that._open = false;\n that._state = STATE_ACCEPT;\n }\n\n if (key === keys.ENTER && that._typingTimeout && that.filterInput && isPopupVisible) {\n e.preventDefault();\n return;\n }\n\n if (key === keys.SPACEBAR && !isInputActive) {\n that.toggle(!isPopupVisible);\n e.preventDefault();\n }\n\n handled = that._move(e);\n\n if (handled) {\n return;\n }\n\n if (!isPopupVisible || !that.filterInput) {\n var current = that._focus();\n\n if (key === keys.HOME) {\n handled = true;\n that._firstItem();\n } else if (key === keys.END) {\n handled = true;\n that._lastItem();\n }\n\n if (handled) {\n if (that.trigger(\"select\", { dataItem: that._getElementDataItem(that._focus()), item: that._focus() })) {\n that._focus(current);\n return;\n }\n\n that._select(that._focus(), true).done(function() {\n if (!isPopupVisible) {\n that._blur();\n }\n });\n e.preventDefault();\n }\n }\n\n if (!altKey && !handled && that.filterInput) {\n that._search();\n }\n },\n\n _matchText: function(text, word) {\n var ignoreCase = this.options.ignoreCase;\n\n if (text === undefined$1 || text === null) {\n return false;\n }\n\n text = text + \"\";\n\n if (ignoreCase) {\n text = text.toLowerCase();\n }\n\n return text.indexOf(word) === 0;\n },\n\n _shuffleData: function(data, splitIndex) {\n var optionDataItem = this._optionLabelDataItem();\n\n if (optionDataItem) {\n data = [optionDataItem].concat(data);\n }\n\n return data.slice(splitIndex).concat(data.slice(0, splitIndex));\n },\n\n _selectNext: function() {\n var that = this;\n var data = that.dataSource.flatView();\n var dataLength = data.length + (that.hasOptionLabel() ? 1 : 0);\n var isInLoop = sameCharsOnly(that._word, that._last);\n var startIndex = that.selectedIndex;\n var oldFocusedItem;\n var text;\n\n if (startIndex === -1) {\n startIndex = 0;\n } else {\n startIndex += isInLoop ? 1 : 0;\n startIndex = normalizeIndex(startIndex, dataLength);\n }\n\n data = data.toJSON ? data.toJSON() : data.slice();\n data = that._shuffleData(data, startIndex);\n\n for (var idx = 0; idx < dataLength; idx++) {\n text = that._text(data[idx]);\n\n if (isInLoop && that._matchText(text, that._last)) {\n break;\n } else if (that._matchText(text, that._word)) {\n break;\n }\n }\n\n if (idx !== dataLength) {\n oldFocusedItem = that._focus();\n\n that._select(normalizeIndex(startIndex + idx, dataLength)).done(function() {\n var done = function() {\n if (!that.popup.visible()) {\n that._change();\n }\n };\n\n if (that.trigger(\"select\", { dataItem: that._getElementDataItem(that._focus()), item: that._focus() })) {\n that._select(oldFocusedItem).done(done);\n } else {\n done();\n }\n });\n }\n },\n\n _keypress: function(e) {\n var that = this;\n\n if (e.which === 0 || e.keyCode === kendo.keys.ENTER) {\n return;\n }\n\n var character = String.fromCharCode(e.charCode || e.keyCode);\n\n if (that.options.ignoreCase) {\n character = character.toLowerCase();\n }\n\n if (character === \" \") {\n e.preventDefault();\n }\n\n that._word += character;\n that._last = character;\n\n that._search();\n },\n\n _popupOpen: function() {\n var popup = this.popup;\n\n popup.wrapper = kendo.wrap(popup.element);\n\n if (popup.element.closest(\".km-root\")[0]) {\n popup.wrapper.addClass(\"km-popup km-widget\");\n this.wrapper.addClass(\"km-widget\");\n }\n },\n\n _popup: function() {\n Select.fn._popup.call(this);\n this.popup.one(\"open\", this._popupOpen.bind(this));\n },\n\n _getElementDataItem: function(element) {\n if (!element || !element[0]) {\n return null;\n }\n\n if (element[0] === this.optionLabel[0]) {\n return this._optionLabelDataItem();\n }\n\n return this.listView.dataItemByIndex(this.listView.getElementIndex(element));\n },\n\n _click: function(e) {\n var that = this;\n var item = e.item || $(e.currentTarget);\n\n e.preventDefault();\n\n if (that.trigger(\"select\", { dataItem: that._getElementDataItem(item), item: item })) {\n that.close();\n return;\n }\n\n that._userTriggered = true;\n\n that._select(item).done(function() {\n that._blur();\n that._focusElement(that.wrapper);\n });\n },\n\n _focusElement: function(element) {\n var active = activeElement();\n var wrapper = this.wrapper;\n var filterInput = this.filterInput;\n var compareElement = element === filterInput ? wrapper : filterInput;\n var touchEnabled = support.mobileOS && (support.touch || support.MSPointers || support.pointers);\n\n if (filterInput && filterInput[0] === element[0] && touchEnabled) {\n return;\n }\n\n if (filterInput && (compareElement[0] === active || this._focusFilter)) {\n this._focusFilter = false;\n this._prevent = true;\n this._focused = element.trigger(\"focus\");\n }\n },\n\n _searchByWord: function(word) {\n if (!word) {\n return;\n }\n\n var that = this;\n var ignoreCase = that.options.ignoreCase;\n\n if (ignoreCase) {\n word = word.toLowerCase();\n }\n\n that._select(function(dataItem) {\n return that._matchText(that._text(dataItem), word);\n });\n },\n\n _inputValue: function() {\n return this.text();\n },\n\n _search: function() {\n var that = this;\n var dataSource = that.dataSource;\n\n clearTimeout(that._typingTimeout);\n\n if (that._isFilterEnabled()) {\n that._typingTimeout = setTimeout(function() {\n var value = that.filterInput.val();\n\n if (that._prev !== value) {\n that._prev = value;\n that.search(value);\n that._resizeFilterInput();\n }\n\n that._typingTimeout = null;\n }, that.options.delay);\n } else {\n that._typingTimeout = setTimeout(function() {\n that._word = \"\";\n }, that.options.delay);\n\n if (!that.listView.bound()) {\n dataSource.fetch().done(function() {\n that._selectNext();\n });\n return;\n }\n\n that._selectNext();\n }\n },\n\n _get: function(candidate) {\n var data, found, idx;\n var isFunction = typeof candidate === \"function\";\n var jQueryCandidate = !isFunction ? $(candidate) : $();\n\n if (this.hasOptionLabel()) {\n if (typeof candidate === \"number\") {\n if (candidate > -1) {\n candidate -= 1;\n }\n } else if (jQueryCandidate.hasClass(\"k-list-optionlabel\")) {\n candidate = -1;\n }\n }\n\n if (isFunction) {\n data = this.dataSource.flatView();\n\n for (idx = 0; idx < data.length; idx++) {\n if (candidate(data[idx])) {\n candidate = idx;\n found = true;\n break;\n }\n }\n\n if (!found) {\n candidate = -1;\n }\n }\n\n return candidate;\n },\n\n _firstItem: function() {\n if (this.hasOptionLabel()) {\n this._focus(this.optionLabel);\n } else {\n this.listView.focusFirst();\n }\n },\n\n _lastItem: function() {\n this._resetOptionLabel();\n this.listView.focusLast();\n },\n\n _nextItem: function() {\n var focusIndex;\n\n if (this.optionLabel.hasClass(\"k-focus\")) {\n this._resetOptionLabel();\n this.listView.focusFirst();\n focusIndex = 1;\n } else {\n focusIndex = this.listView.focusNext();\n }\n\n return focusIndex;\n },\n\n _prevItem: function() {\n var focusIndex;\n\n if (this.optionLabel.hasClass(\"k-focus\")) {\n return;\n }\n\n focusIndex = this.listView.focusPrev();\n\n if (!this.listView.focus() && !this.options.virtual) {\n this._focus(this.optionLabel);\n }\n\n return focusIndex;\n },\n\n _focusItem: function() {\n var options = this.options;\n var listView = this.listView;\n var focusedItem = listView.focus();\n var index = listView.select();\n\n index = index[index.length - 1];\n\n if (index === undefined$1 && options.highlightFirst && !focusedItem) {\n index = 0;\n }\n\n if (index !== undefined$1) {\n listView.focus(index);\n } else {\n if (options.optionLabel && (!options.virtual || options.virtual.mapValueTo !== \"dataItem\")) {\n this._focus(this.optionLabel);\n this._select(this.optionLabel);\n this.listView.content.scrollTop(0);\n } else {\n listView.scrollToIndex(0);\n }\n }\n },\n\n _resetOptionLabel: function(additionalClass) {\n this.optionLabel.removeClass(\"k-focus\" + (additionalClass || \"\")).removeAttr(\"id\");\n },\n\n _focus: function(candidate) {\n var listView = this.listView;\n var optionLabel = this.optionLabel;\n\n if (candidate === undefined$1) {\n candidate = listView.focus();\n\n if (!candidate && optionLabel.hasClass(\"k-focus\")) {\n candidate = optionLabel;\n }\n\n return candidate;\n }\n\n this._resetOptionLabel();\n\n candidate = this._get(candidate);\n\n listView.focus(candidate);\n\n if (candidate === -1) {\n optionLabel.addClass(\"k-focus\")\n .attr(\"id\", listView._optionID);\n\n if (this.filterInput) {\n this.filterInput\n .removeAttr(\"aria-activedescendant\")\n .attr(\"aria-activedescendant\", listView._optionID);\n }\n }\n },\n\n _select: function(candidate, keepState) {\n var that = this;\n\n candidate = that._get(candidate);\n\n return that.listView.select(candidate).done(function() {\n if (!keepState && that._state === STATE_FILTER) {\n that._state = STATE_ACCEPT;\n }\n\n if (candidate === -1) {\n that._selectValue(null);\n }\n });\n },\n\n _selectValue: function(dataItem) {\n var that = this;\n var optionLabel = that.options.optionLabel;\n var idx = that.listView.select();\n\n var value = \"\";\n var text = \"\";\n\n idx = idx[idx.length - 1];\n if (idx === undefined$1) {\n idx = -1;\n }\n\n this._resetOptionLabel(\" k-selected\");\n\n if (dataItem || dataItem === 0) {\n text = dataItem;\n value = that._dataValue(dataItem);\n if (optionLabel) {\n idx += 1;\n }\n } else if (optionLabel) {\n that._focus(that.optionLabel.addClass(\"k-selected\"));\n\n text = that._optionLabelText();\n\n if (typeof optionLabel === \"string\") {\n value = \"\";\n } else {\n value = that._value(optionLabel);\n }\n\n idx = 0;\n }\n\n that.selectedIndex = idx;\n\n if (value === null) {\n value = \"\";\n }\n\n that._textAccessor(text);\n that._accessor(value, idx);\n\n that._triggerCascade();\n },\n\n _mobile: function() {\n var that = this,\n popup = that.popup,\n mobileOS = support.mobileOS,\n root = popup.element.parents(\".km-root\").eq(0);\n\n if (root.length && mobileOS) {\n popup.options.animation.open.effects = (mobileOS.android || mobileOS.meego) ? \"fadeIn\" : (mobileOS.ios || mobileOS.wp) ? \"slideIn:up\" : popup.options.animation.open.effects;\n }\n },\n\n _filterHeader: function() {\n var filterTemplate = '