js-pkg
Version:
Npm package of Syncfusion.JavaScript.
10 lines • 96.1 kB
JavaScript
/*!
* filename: ej.dropdownlist.min.js
* version : 15.3.0.33
* Copyright Syncfusion Inc. 2001 - 2017. All rights reserved.
* Use of this code is subject to the terms of our license.
* A copy of the current license can be obtained at any time by e-mailing
* licensing@syncfusion.com. Any infringement will be prosecuted under
* applicable laws.
*/
(function(n){typeof define=="function"&&define.amd?define(["./../common/ej.core.min","./../common/ej.globalize.min","./../common/ej.data.min","./../common/ej.scroller.min","./../common/ej.draggable.min"],n):n()})(function(){(function(n,t,i){t.widget("ejDropDownList","ej.DropDownList",{element:null,model:null,validTags:["select","input"],_addToPersist:["value","text","selectedIndex","selectedItemIndex","selectedItems","selectedIndices","popupWidth","popupHeight","itemValue"],_setFirst:!1,_rootCSS:"e-dropdownlist",angular:{require:["?ngModel","^?form","^?ngModelOptions"]},_requiresID:!0,defaults:{cssClass:"",value:null,htmlAttributes:{},text:null,itemValue:"",itemsCount:0,dataSource:null,delimiterChar:",",query:null,fields:{id:null,text:null,value:null,category:null,groupBy:null,imageUrl:null,imageAttributes:null,spriteCssClass:null,htmlAttributes:null,selected:null,tableName:null},locale:"en-US",watermarkText:null,height:"",width:"",popupHeight:"152px",popupWidth:"auto",maxPopupHeight:null,minPopupHeight:"20",maxPopupWidth:null,minPopupWidth:"0",targetID:null,template:null,headerTemplate:null,selectedItemIndex:-1,selectedIndex:-1,disableItemsByIndex:null,enableItemsByIndex:null,selectedItems:[],selectedIndices:[],cascadeTo:null,enablePopupResize:!1,allowVirtualScrolling:!1,virtualScrollMode:"normal",showRoundedCorner:!1,showPopupOnLoad:!1,enableRTL:!1,enabled:!0,filterType:"contains",sortOrder:"ascending",caseSensitiveSearch:!1,showCheckbox:!1,checkAll:!1,uncheckAll:!1,enablePersistence:!1,enableFilterSearch:!1,enableServerFiltering:!1,enableIncrementalSearch:!0,readOnly:!1,enableAnimation:!1,multiSelectMode:"none",allowGrouping:!1,enableSorting:!1,validationRules:null,validationMessage:null,actionBegin:null,actionComplete:null,actionFailure:null,actionSuccess:null,create:null,popupHide:null,popupShown:null,beforePopupShown:null,beforePopupHide:null,popupResizeStart:null,popupResize:null,popupResizeStop:null,change:null,select:null,dataBound:null,search:null,checkChange:null,cascade:null,destroy:null},dataTypes:{cssClass:"string",itemsCount:"number",watermarkText:"string",template:"string",disableItemsByIndex:"string",enableItemsByIndex:"string",enableIncrementalSearch:"boolean",cascadeTo:"string",delimiterChar:"string",showRoundedCorner:"boolean",showPopupOnLoad:"boolean",enableRTL:"boolean",enablePersistence:"boolean",allowVirtualScrolling:"boolean",virtualScrollMode:"enum",enabled:"boolean",readOnly:"boolean",multiSelectMode:"enum",dataSource:"data",query:"data",fields:"data",selectedItems:"array",enableAnimation:"boolean",allowGrouping:"boolean",enableSorting:"boolean",validationRules:"data",validationMessage:"data",htmlAttributes:"data",locale:"string"},observables:["value","selectedItemIndex","selectedIndex"],value:t.util.valueFunction("value"),selectedItemIndex:t.util.valueFunction("selectedItemIndex"),selectedIndex:t.util.valueFunction("selectedIndex"),enable:function(){if(this._visibleInput.hasClass("e-disable")){this.target.disabled=!1;this.model.enabled=!0;this.container.removeClass("e-disable");this._visibleInput.removeClass("e-disable");this.dropdownbutton.removeClass("e-disable");this.popupListWrapper.removeClass("e-disable");this._isIE8&&this.drpbtnspan.removeClass("e-disable");this.container.on("mousedown",n.proxy(this._OnDropdownClick,this));this.model.multiSelectMode=="visualmode"&&this._ulBox.removeClass("e-disable");this.wrapper.attr("tabindex","0")}this._wireEvents()},disable:function(){this._visibleInput.hasClass("e-disable")||(this.target.disabled=!0,this.model.enabled=!1,this.container.addClass("e-disable"),this._visibleInput.addClass("e-disable"),this.popupListWrapper.addClass("e-disable"),this.dropdownbutton.addClass("e-disable"),this._isIE8&&this.drpbtnspan.addClass("e-disable"),this.model.multiSelectMode=="visualmode"&&this._ulBox.addClass("e-disable"),this.container.off("mousedown",n.proxy(this._OnDropdownClick,this)),this._unwireEvents(),this.wrapper.removeAttr("tabindex"),this._isPopupShown()&&this._hideResult())},getValue:function(){return this._visibleInput.val()},_setValue:function(n){t.isNullOrUndefined(n)||(this._raiseEvents=!1,t.isNullOrUndefined(this.model.text)||this.unselectItemByText(this.model.text),this._raiseEvents=!0,this._addValue(n),this.selectItemByValue(n))},_addValue:function(n){var r,e,i,u,f;this.model.itemsCount>0&&n!=""&&(this._checkValue=!0,r=n.split(this.model.delimiterChar),e=this.mapFld._value,this._addListItems(r,this._rawList,"local"),this._checkValue&&(i=this.model.dataSource,t.DataManager&&i instanceof t.DataManager?i.dataSource.offline&&i.dataSource.json&&i.dataSource.json.length>0?this._addListItems(r,i.dataSource.json,"remote"):(u=this,f=n,i.executeQuery(t.Query()).done(function(n){u._addListItems(r,n.result,"remote");u.selectItemByValue(f)})):this._addListItems(r,i,"remote")))},_addListItems:function(n,t,i){for(k=0;k<n.length;k++)for(var r=0;r<t.length;r++)i=="local"&&t[r][this.mapFld._value]==n[k]&&(this._checkValue=!1),i=="remote"&&t[r][this.mapFld._value]==n[k]&&this.addItem(t[r])},_setText:function(n){n&&(this._raiseEvents=!1,this.unselectItemByText(this.model.text),this._raiseEvents=!0,this.selectItemByText(n))},_setItemValue:function(n){this.model.itemValue=n},_changeWatermark:function(n){if(!this.model.enabled)return!1;this._isWatermark?this._visibleInput.attr("placeholder",n):this._hiddenSpan.text(n)},hidePopup:function(){if(!this.model.enabled)return!1;this.ultag.find("li").length>0&&this._hideResult()},showPopup:function(){if(!this.model.enabled)return!1;this.ultag.find("li").length>0&&this._showResult()},clearText:function(){this._clearTextboxValue();this._isWatermark||this._setWatermark()},addItem:function(t){var r,i,u,e,f,o;if(!this.model.enabled||!t||(this._mapFields(),r=n.isArray(t)?t:[t],r.length<1))return!1;for(i=this.mapFld,u={_id:null,_imageUrl:null,_imageAttributes:null,_spriteCSS:null,_text:null,_value:null,_htmlAttributes:null,_selected:null,_category:null},u._id=r[0][i._id]?i._id:"id",u._imageUrl=r[0][i._imageUrl]?i._imageUrl:"imageUrl",u._imageAttributes=r[0][i._imageAttributes]?i._imageAttributes:"imageAttributes",u._spriteCSS=r[0][i._spriteCSS]?i._spriteCSS:"spriteCssClass",u._text=r[0][i._text]?i._text:"text",u._value=r[0][i._value]?i._value:"value",u._htmlAttributes=r[0][i._htmlAttributes]?i._htmlAttributes:"htmlAttributes",u._selected=r[0][i._selected]?i._selected:"selected",u._category=r[0][i._category]?i._category:"groupBy",this._generateLi(r,u),e=this.dummyUl,f=0;f<r.length;f++)this._listItem(r[f],"add");this.model.showCheckbox?this._appendCheckbox(e,!0):this._isSingleSelect()||this._multiItemSelection(e,!0);this._virtualUl.append(n(this.dummyUl).clone(!0));this.ultag.append(this.dummyUl);this._isPopupShown()&&(o=this.scrollerObj?this.scrollerObj.scrollTop():0,this._refreshScroller(),this.scrollerObj&&this.scrollerObj.option("scrollTop",o))},_toArray:function(i,r){var u;return typeof i=="function"&&(i=t.util.getVal(i)),n.isArray(i)?u=i:typeof i=="string"?r&&(this.model.multiSelectMode=="visualmode"||this.model.multiSelectMode=="delimiter"||this.model.showCheckbox)?(u=i.split(this.model.delimiterChar),u.length==0&&(u=[i])):r?u=[i]:(u=i.split(this.model.delimiterChar),u.length==0&&(u=[i])):u=[i],u},_trim:function(t){return typeof t=="string"?n.trim(t):t},selectItemByIndex:function(n){this._selectItemByIndex(n)},selectItemsByIndices:function(n){this._selectItemByIndex(n)},_selectItemByIndex:function(t){var f,i,u,r;if(this.listitems=this._getLi(),this._selectedIndices=n.map(this._selectedIndices,function(n){return parseInt(n)}),this.model.selectedItems=this.model.selectedIndices=this._selectedIndices,parseInt(t)==-1&&this.model.selectedItems.length>0)this._clearTextboxValue(),this._trigger("change",{text:this._visibleInput[0].value,selectedText:"",selectedValue:"",value:""});else for(f=this._toArray(t,!0),u=0;u<f.length;u++)if(i=parseInt(f[u]),i!=null&&i>=0){if(n.inArray(i,this._selectedIndices)==-1)for(r=0;r<this.listitems.length;r++)n(this.listitems[r]).hasClass("e-disable")||r==i&&(this.selectedIndexValue=r,this._activeItem=i,this._enterTextBoxValue())}else!this.model.showCheckbox&&this.model.multiSelectMode=="none"&&this.model.selectedItems.length>0&&(this._clearTextboxValue(),this._trigger("change",{text:this._visibleInput[0].value,selectedText:"",selectedValue:"",value:""}))},unselectItemsByIndices:function(n){this._unselectItemByIndex(n)},unselectItemByIndex:function(n){this._unselectItemByIndex(n)},_unselectItemByIndex:function(t){var i,u,f,r;for(this._selectedIndices=n.map(this._selectedIndices,function(n){return parseInt(n)}),this.model.selectedItems=this.model.selectedIndices=this._selectedIndices,u=this._toArray(t,!0),this.listitems=this._getLi(),r=0;r<u.length;r++)for(f=parseInt(u[r]),i=0;i<this.listitems.length;i++)i==f&&(this.selectedIndexValue=i,this._activeItem=f,this._activeItem==this._aselectedItem&&(this._aselectedItem=null),this._removeTextBoxValue())},setSelectedValue:function(n){this.selectItemByValue(n)},selectItemByValue:function(i){var r,e,s,u,f,o;if(this.listitems=this._getLi(),this.inputSearch&&this.inputSearch.val()!=""&&this.model.enableServerFiltering&&!t.isNullOrUndefined(this._searchresult)){for(s=this.model.fields&&this.model.fields.value?this.model.fields.value:"value",r=0;r<this._searchresult.length;r++)for(u=0;u<this.listitems.length;u++)n(this.listitems[u]).attr("data-value")==this._searchresult[r][s]&&(this._searchresult=null);this.addItem(this._searchresult)}if(t.isNullOrUndefined(i)||i==="")this._clearTextboxValue();else for(e=this._toArray(i,!0),f=0;f<e.length;f++)for(r=0;r<this.listitems.length;r++)if(!n(this.listitems[r]).hasClass("e-disable")&&(o=this._getAttributeValue(this.listitems[r])||n(this.listitems[r]).text(),o&&(this._selectedValue=o,this._selectedValue==e[f]))){this._activeItem=r;this._aselectedItem=this._activeItem;this._enterTextBoxValue();break}},unselectItemByValue:function(n){var t,r=this._toArray(n,!0),i;for(this.listitems=this._getLi(),i=0;i<r.length;i++)for(t=0;t<this.listitems.length;t++)if(this._getAttributeValue(this.listitems[t])&&(this._selectedValue=this._getAttributeValue(this.listitems[t]),this._selectedValue==r[i])){this._activeItem=t;this._activeItem==this._aselectedItem&&(this._aselectedItem=null);this._removeTextBoxValue();break}},setSelectedText:function(n){this.selectItemByText(n)},selectItemByText:function(i){var r,f,u;if(this.listitems=this._getLi(),this._mapFields(),t.isNullOrUndefined(i)||i==="")this._clearTextboxValue();else for(f=this._toArray(i,!0),u=0;u<f.length;u++)for(r=0;r<this.listitems.length;r++)if(!n(this.listitems[r]).hasClass("e-disable")&&(this.selectedTextValue=this._isPlainType(this.popupListItems)?this.popupListItems[r]:this._getField(this.popupListItems[r],this.mapFld._text),this.selectedTextValue==f[u])){this._activeItem=r;this._aselectedItem=this._activeItem;this._enterTextBoxValue();break}},unselectItemByText:function(n){var t,r=this._toArray(n,!0),i;for(this.listitems=this._getLi(),this._mapFields(),i=0;i<r.length;i++)for(t=0;t<this.listitems.length;t++)if(this.unselectedTextValue=this._isPlainType(this.popupListItems)?this.popupListItems[t]:this._getField(this.popupListItems[t],this.mapFld._text),this.unselectedTextValue==r[i]){this._activeItem=t;this._activeItem==this._aselectedItem&&(this._aselectedItem=null);this._removeTextBoxValue();break}},getSelectedValue:function(){return this.element.val()},getSelectedItem:function(){var n,t=[];for(this.listitems=this._getLi(),n=0;n<this._selectedIndices.length;n++)t.push(this.listitems[this._selectedIndices[n]]);return t},getItemDataByValue:function(n){for(var f=this._toArray(n,!1),u=t.isNullOrUndefined(this.resultList)?this._rawList:this._rawList.concat(this.resultList),i,e=[],o=this.model.fields&&this.model.fields.value?this.model.fields.value:"value",r=0;r<f.length;r++)for(i=0;i<u.length;i++)u[i][o]==f[r]&&e.push(u[i]);return e},getListData:function(){return this._rawList},getSelectedItemsID:function(){return this._selectedItemsID},disableItemsByIndices:function(n){this._disableItemByIndex(n)},disableItemByIndex:function(n){this._disableItemByIndex(n)},_disableItemByIndex:function(t){var i,u,r;if(!this.model.enabled)return!1;for(i=this._toArray(t,!1),r=0;r<i.length;r++)i[r]==null||isNaN(parseInt(i[r]))||i.length>0&&!(n.inArray(parseInt(i[r]),this._disabledItems)>-1)&&(u=n.inArray(i[r],this._disabledItems),this._setClass(this._getLi()[parseInt(i[r])],"e-disable"),this._disabledItems.push(parseInt(i[r])),this.model.disableItemsByIndex=String(this._disabledItems.join(",")))},enableItemsByIndices:function(n){this._enableItemByIndex(n)},enableItemByIndex:function(n){this._enableItemByIndex(n)},_enableItemByIndex:function(t){var r=this._toArray(t,!1),u,i;for(this.model.enableItemsByIndex=t,i=0;i<r.length;i++)r.length>0&&n.inArray(parseInt(r[i]),this._disabledItems)>-1&&!isNaN(parseInt(r[i]))&&(u=n.inArray(parseInt(r[i]),this._disabledItems),this._removeClass(this._getLi()[parseInt(r[i])],"e-disable"),this._disabledItems.splice(u,1));this.model.enableItemsByIndex=null;this.model.disableItemsByIndex=this._disabledItems.join(this.model.delimiterChar)},_validateDelimiter:function(n){if(this._trim(n).length==1)if(!/^[a-zA-Z0-9]+$/.test(n))return n;return","},_removeText:function(t){var i=this.element[0].value.split(this.model.delimiterChar),u=this._visibleInput[0].value.split(this.model.delimiterChar),r=n.inArray(t,i);r>=0&&(i.splice(r,1),u.splice(r,1));this.element[0].value=i.join(this.model.delimiterChar);this._visibleInput[0].value=u.join(this.model.delimiterChar)},_addText:function(n){var i,r,t,u;if(this._checkContains(this._hiddenValue))return!1;for(i=["element","_visibleInput"],t=0;t<i.length;t++)r=i[t]=="element"?this._hiddenValue:n,this[i[t]][0].value&&this[i[t]][0].value!=""?(u=this[i[t]][0].value.split(this.model.delimiterChar),u.push(r),this[i[t]][0].value=u.join(this.model.delimiterChar)):this[i[t]][0].value=r},_checkContains:function(n){var i=this.element[0].value.split(this.model.delimiterChar),t;for(this.contains=!1,t=0;t<i.length;t++)if(i[t]=isNaN(parseInt(i[t]))||typeof this._rawList[t][this.mapFld._value]=="string"?i[t]:parseInt(i[t]),i[t]===n){this.contains=!0;break}return this.contains},_updateLocalConstant:function(){this._localizedLabels=t.getLocalizedConstants("ej.DropDownList",this.model.locale)},_init:function(){var i=t.browserInfo();this._updateLocalConstant();this._isIE8=i.name=="msie"&&i.version=="8.0";this._textContent=this._isIE8?"innerText":"textContent";(this.element.is("input")&&(this.element.is("input[type=text]")||!this.element.attr("type"))||this.element.is("select"))&&(this._isWatermark="placeholder"in n(document.createElement("input")).attr("placeholder","")[0],this._id=this.element[0].id,this._initialize(),this._render(),this._addAttr(this.model.htmlAttributes),this._enabled(this.model.enabled),this._initValue=!1,this._checkboxValue=!1,this.model.validationRules!=null&&(this._initValidator(),this._setValidation()))},_initValidator:function(){this.element.closest("form").data("validator")||this.element.closest("form").validate()},_setValidation:function(){var r,f,i,u,e;if(this.element.closest("form").length!=0){this.element.rules("add",this.model.validationRules);r=this.element.closest("form").data("validator");r||(r=this.element.closest("form").validate());f=this.element.attr("name");r.settings.messages[f]={};for(i in this.model.validationRules)if(u=null,!t.isNullOrUndefined(this.model.validationRules[i])){if(t.isNullOrUndefined(this.model.validationRules.messages&&this.model.validationRules.messages[i])){r.settings.messages[f][i]=n.validator.messages[i];for(e in this.model.validationMessage)i==e?u=this.model.validationMessage[i]:""}else u=this.model.validationRules.messages[i];r.settings.messages[f][i]=u!=null?u:n.validator.messages[i]}}},_setInitialPopup:function(n){this.model.enabled&&!this.model.readOnly&&(n==!1?this._hideResult():this._showResult())},_changeSkin:function(n){this.wrapper.removeClass(this.model.cssClass).addClass(n);this.popupListWrapper.removeClass(this.model.cssClass).addClass(n)},_setRTL:function(n){this.model.enableRTL!=n&&(this.model.enableRTL=n,this._RightToLeft(),this._dropbtnRTL())},_changeHeight:function(n){this.wrapper.height(n);this._setListHeight()},_changeWidth:function(n){this.wrapper.width(n);this._setListWidth()},_setModel:function(i){var r,f,o,e,u;for(r in i)switch(r){case"dataSource":this._isEqualDataSource(i[r])||this._checkModelDataBinding(i[r],this.model.query);break;case"query":this._checkModelDataBinding(this.model.dataSource,i[r]);break;case"fields":this.model.fields=n.extend(this.model.fields,i[r]);this._checkModelDataBinding(this.model.dataSource,this.model.query);break;case"itemsCount":this.model.itemsCount=i[r];this._checkModelDataBinding(this.model.dataSource,this.model.query);break;case"template":this.model.template=i[r];this._checkModelDataBinding(this.model.dataSource,this.model.query);break;case"value":f=t.util.getVal(i[r]);(t.isNullOrUndefined(f)||f==="")&&this._clearTextboxValue();t.isNullOrUndefined(f)||f===""?this._clearTextboxValue():(this._setValue(t.util.getVal(i[r])),i[r]=this.model.value);break;case"delimiterChar":o=this.model.delimiterChar;i[r]=this._validateDelimiter(i[r]);this.model.delimiterChar=i[r];this._isSingleSelect()||(this.model.text&&(this.model.text=this.model.text.split(o).join(this.model.delimiterChar),this._visibleInput.val(this.model.text)),t.isNullOrUndefined(this.value())||(this.value(this.value().split(o).join(this.model.delimiterChar)),this.element.val(this.value())));break;case"text":t.isNullOrUndefined(i[r])||i[r]===""?this._clearTextboxValue():(this._setText(i[r]),i[r]=this.model.text);break;case"itemValue":this._setItemValue(i[r]);break;case"enableRTL":this._setRTL(i[r]);break;case"enabled":this._enabled(i[r]);break;case"height":this._changeHeight(i[r]);break;case"width":this._changeWidth(i[r]);break;case"popupHeight":this.model.popupHeight=i[r];this._setListHeight(i[r]);break;case"popupWidth":this.model.popupWidth=i[r];this._setListWidth();break;case"minPopupHeight":this.model.minPopupHeight=i[r];this._setListHeight(i[r]);break;case"minPopupWidth":this.model.minPopupWidth=i[r];this._setListWidth();break;case"maxPopupHeight":this.model.maxPopupHeight=i[r];this._setListHeight(i[r]);break;case"maxPopupWidth":this.model.maxPopupWidth=i[r];this._setListWidth();break;case"cssClass":this._changeSkin(i[r]);break;case"showCheckbox":this.model.showCheckbox=i[r];e=this.model.text;u=this.model.text?this.model.text.split(this.model.delimiterChar):this.model.text;this._raiseEvents=!1;this._clearTextboxValue();this._raiseEvents=!0;this._checkboxHideShow(i[r]);this.model.showCheckbox||this.model.multiSelectMode!="none"?(this.model.multiSelectMode=="visualmode"&&this._renderBoxModel(),this._setText(e)):u&&u.length&&this._setText(u[0]);this._isPopupShown()&&this._setListPosition();break;case"checkAll":return this._setCheckAll(i[r]),!1;case"uncheckAll":return this._setUncheckAll(i[r]),!1;case"watermarkText":this._changeWatermark(i[r]);break;case"validationRules":this.element.closest("form").length!=0&&(this.model.validationRules!=null&&(this.element.rules("remove"),this.model.validationMessage=null),this.model.validationRules=i[r],this.model.validationRules!=null&&(this._initValidator(),this._setValidation()));break;case"locale":this.model.locale=i[r];this._updateLocalConstant();break;case"validationMessage":this.element.closest("form").length!=0&&(this.model.validationMessage=i[r],this.model.validationRules!=null&&this.model.validationMessage!=null&&(this._initValidator(),this._setValidation()));break;case"showRoundedCorner":this._roundedCorner(i[r]);this.model.showRoundedCorner=i[r];break;case"showPopupOnLoad":this._setInitialPopup(i[r]);break;case"targetID":this.model.targetID=i[r];this._showFullList();break;case"selectedItemIndex":case"selectedIndex":this._selectItemByIndex(i[r]);this.model.selectedItemIndex=this.model.selectedIndex=i[r];break;case"unselectItemByIndex":this._unselectItemByIndex(i[r]);break;case"disableItemsByIndex":this._disableItemByIndex(i[r]);break;case"enableItemsByIndex":this._enableItemByIndex(i[r]);break;case"selectedItems":case"selectedIndices":this._selectCheckedItem(i[r]);i[r]=this.model.selectedItems=this.model.selectedIndices=this._selectedIndices;break;case"multiSelectMode":this.model.multiSelectMode=="visualmode"&&(this._swapUlandInput(!1),this._ulBox.remove(),this._ulBox=null);this.model.multiSelectMode=i[r];e=this.model.text;u=this.model.text?this.model.text.split(this.model.delimiterChar):this.model.text;this._raiseEvents=!1;this._clearTextboxValue();this._raiseEvents=!0;this.model.showCheckbox||this.model.multiSelectMode!="none"?(this.model.multiSelectMode=="visualmode"&&this._renderBoxModel(),this._setText(e)):(this._setText(u[0]),this.wrapper.find("input[name="+this._name+"]").remove());this._isPopupShown()&&this._setListPosition();break;case"allowGrouping":this._setGroupingAndSorting("allowGrouping",i[r]);break;case"enableSorting":this._setGroupingAndSorting("enableSorting",i[r]);break;case"htmlAttributes":this._addAttr(i[r]);break;case"enablePopupResize":this.model.enablePopupResize=i[r];i[r]?this._enablePopupResize():this.popupListWrapper.removeClass("e-resizable").find(".e-resizebar").remove()&&this._hideResult();break;case"enableFilterSearch":if(i[r]){this.model.enableFilterSearch=!0;this._enableSearch();break}else this._removeSearch();case"enableServerFiltering":this._enableSearch()}},_clearTextboxValue:function(){this.element.val("");this._visibleInput.val("");this._updateValue("");this.selectedTextValue=this._selectedValue=this._hiddenValue=this.model.itemValue="";this._updateText();this.selectedIndexValue=this._hiddenDelimiterIndex=this._activeItem=-1;this._selectedItemsID=[];this._selectedIndices=[];this.model.selectedItems=[];this.model.selectedIndices=[];this.selectedIndex(null);this.ultag.children("li").removeClass("e-hover").removeClass("e-active");this.model.showCheckbox&&this._resetCheck();this.wrapper.find("ul.e-ul.e-boxes").length!=0&&(this._ulBox.children("li").remove(),this._name===""?this.wrapper.find("input:hidden[id^='#']").remove():this.wrapper.find("input:hidden[id^='#'][name="+this._name+"]").remove(),n(this.element).attr("name",this._name))},_destroy:function(){this.selectOptions?(!this.model.dataSource&&this.docbdy?this.docbdy.append(this.selectOptions.removeClass("e-dropdownlist e-js").show()).show():this.selectOptions.insertAfter(this.wrapper).removeClass("e-dropdownlist e-js").show(),this.element.remove()):(this.element.insertAfter(this.wrapper),this.element.width(this.element.width()+this.dropdownbutton.outerWidth()),this._visibleInput.removeClass("e-input "),this._setAttr(this.element[0],{accesskey:this.wrapper.attr("accesskey"),type:"text"}),this._isWatermark&&this._visibleInput.removeAttr("placeholder"),this.element[0].value="",this.element.removeAttr("aria-expanded aria-autocomplete aria-haspopup aria-owns accesskey role").css({width:"",display:"block"}),!this.model.dataSource&&this.docbdy&&this.ultag.find("li").removeClass("e-active")&&this.docbdy.append(this.ultag.html()).show());this.wrapper.remove();this.container.off("mousedown",n.proxy(this._OnDropdownClick,this));this._hideResult();this.popupPanelWrapper.remove();this._unwireEvents()},_finalize:function(){this.value()==""&&this._visibleInput[0].value!==""&&this._updateValue(this.element[0].value);this.value()!==this.element.val()&&this._setValue(this.value());this.model.text!=this._visibleInput.val()&&this._setText(this.model.text);this.selectedIndex(this.selectedIndex()!=-1?this.selectedIndex():this.selectedItemIndex());this.selectedIndex()!=-1?this._selectItemByIndex(this.selectedIndex()):this._selectedIndices.length>0&&this._selectCheckedItem(this._selectedIndices);this.model.disableItemsByIndex!=null&&this._disableItemByIndex(this.model.disableItemsByIndex);this.model.enableItemsByIndex!=null&&this._enableItemByIndex(this.model.enableItemsByIndex)},_initialize:function(){this._selectedIndices=this.model.selectedIndices.length>0?this.model.selectedIndices:this.model.selectedItems;this.model.selectedItems=this.model.selectedIndices=this._selectedIndices;this.model.selectedIndex=this.model.selectedIndex!=-1?this.model.selectedIndex:this.model.selectedItemIndex;this.element.is("select")&&(this.selectelement=!0,this._renderSelectToDropdown());this._selectedItemsID=[];this.target=this.element[0];this._disabledItems=[];this._queryString=null;this.suggLen=0;this._itemId=null;this.checkedStatus=!1;this._incqueryString="";this._activeItem=null;this.ddWidth=0;this._initValue=!0;this._virtualCount=0;this._raiseEvents=!0},_renderSelectToDropdown:function(){var i,f,u,r;if(this.inputElement=t.buildTag("input.e-dropdownlist#"+this._id+"_input","",{},{type:"text","data-role":"none"}),this.inputElement.insertAfter(this.element),this.element.attr("name")&&(this.inputElement.attr("name",this.element.attr("name")),this.element.removeAttr("name")),this.selectOptions=this.element,this.selectOptions.attr("id",this._id),this.model.dataSource==null){for(this.optionDiv=t.buildTag("div#"+this._id+"_list"),this.optionDiv.insertAfter(this.inputElement),this.optionUl=t.buildTag("ul"),this.optionDiv.append(this.optionUl),this.selectOptionItems=this.element.children("option"),f=this.selectOptionItems.length,this.optionDummyUl=n(),i=0;i<f;i++)r=this.selectOptionItems[i],u=n(r).attr("label")?n(r).attr("label"):r.innerHTML,u!=null&&(this.optionLi=t.buildTag("li",u,{},{"data-value":r.value,unselectable:"on"}),this.optionDummyUl.push(this.optionLi[0]),n(r).attr("selected")&&this.model.showCheckbox&&(n.inArray(i,this._selectedIndices)==-1?(this._selectedIndices.push(i),this.model.selectedItems=this.model.selectedIndices=this._selectedIndices):t.isNullOrUndefined(this.selectedIndex())&&this.selectedIndex(i)));this.optionUl.append(this.optionDummyUl)}this.element.css("display","none");this.element=this.inputElement},_render:function(){var i,r;this._renderDropdown();this._setWatermark();this._renderPopupPanelWrapper();this._showFullList();this._roundedCorner(this.model.showRoundedCorner);i=this.model.dataSource;t.DataManager&&i instanceof t.DataManager?i.dataSource.offline&&i.dataSource.json&&i.dataSource.json.length>0&&(r=this,r._finalize()):this._finalize();t.DataManager&&this.model.dataSource instanceof t.DataManager||this._finalize();this._setCheckAll(this.model.checkAll);(this.element.attr("disabled")||n(this.selectOptions).attr("disabled"))&&this.disable()},_isEqualDataSource:function(n){var r,i,u;if(!this.model.dataSource||!n||!(this.model.dataSource.length===n.length)||t.DataManager&&n instanceof t.DataManager)return!1;for(r=!0,i=0,u=this.model.dataSource.length;i<u;i++)if(this.model.dataSource[i]!==n[i]){r=!1;break}return r},_checkModelDataBinding:function(n,t){this.element.val("");this._visibleInput.val("");this._updateValue("");this.selectedTextValue=this._selectedValue=this._hiddenValue="";this._updateText();this.selectedIndexValue=this._hiddenDelimiterIndex=this._activeItem=-1;this._selectedItemsID=[];this.model.selectedItems=this.model.selectedIndices=this._selectedIndices=[];this.model.selectedIndex=this.model.selectedItemIndex=-1;this.model.multiSelectMode=="visualmode"&&this._destroyBoxModel();this.model.dataSource=n;this.model.query=t;this.ultag.empty();this._showFullList()},_initDataSource:function(n){var i=this,r;t.DataManager&&n instanceof t.DataManager&&(i._addLoadingClass(),i._trigger("actionBegin",{requestFrom:"default"})||(r=n.executeQuery(this._getQuery()),r.done(function(n){i._trigger("actionSuccess",{e:n,requestFrom:"default"});i._totalCount=n.count;i._listItem(n.result);i._removeLoadingClass();i._renderPopupList();i._finalize()}).fail(function(n){i.model.dataSource=null;i._addLoadingClass();i._trigger("actionFailure",{e:n,requestFrom:"default"})}).always(function(n){i._trigger("actionComplete",{e:n,requestFrom:"default"})})))},_listItem:function(t,i){i=="add"?(this.popupListItems.push(t),this._rawList.push(t)):n.isArray(t)&&(this.popupListItems=t.slice(0),this._rawList=t.slice(0))},_getQuery:function(n){var i,r=this.model.fields,u=t.Query(),f,e;if(!t.isNullOrUndefined(this.model.query)||this.model.template||n)this.model.query&&(u=this.model.query.clone());else{f=[];for(e in r)e!=="tableName"&&r[e]&&f.push(r[e]);f.length>0&&u.select(f)}return this.model.allowVirtualScrolling&&u.requiresCount(),this.model.itemsCount>0&&u.take(this.model.itemsCount),i=this.model.dataSource.dataSource,r&&(i&&i.url&&!i.url.match(r.tableName+"$")||i&&!i.url||!i)&&(t.isNullOrUndefined(r.tableName)||u.from(r.tableName)),u},_addLoadingClass:function(){this._isPopupShown()?this.popupListWrapper.addClass("e-load"):(this.dropdownbutton.addClass("e-load"),this.drpbtnspan.removeClass("e-icon e-arrow-sans-down"));this._readOnly=!0},_removeLoadingClass:function(){this.dropdownbutton.removeClass("e-load");this.drpbtnspan.addClass("e-icon e-arrow-sans-down");this._readOnly=!1;this.popupListWrapper.removeClass("e-load")},_renderDropdown:function(){if(this.wrapper=t.buildTag("span.e-ddl e-widget "+this.model.cssClass+"#"+this._id+"_wrapper","",{},{tabindex:"0",accesskey:this.element.attr("accesskey")}),this.container=t.buildTag("span.e-in-wrap e-box #"+this._id+"_container"),this.element.removeAttr("accesskey"),this.model.value==null&&this.element.attr("value")!=null&&(this.model.value=this.element.attr("value")),this.element.attr("value","").val(""),this._isIE8?this._setAttr(this.element[0],{role:"combobox","aria-expanded":!1,"aria-autocomplete":"list","aria-haspopup":!0,"aria-owns":this._id+"_popup"}).element.hide():this._setAttr(this.element[0],{type:"hidden",role:"combobox","aria-expanded":!1,"aria-autocomplete":"list","aria-haspopup":!0,"aria-owns":this._id+"_popup"}).element.hide(),this.drpbtnspan=t.buildTag("span.e-icon e-arrow-sans-down","",{},{"aria-label":"select",unselectable:"on"}),this.dropdownbutton=t.buildTag("span.e-select#"+this._id+"_dropdown","",{},{role:"button",unselectable:"on"}).append(this.drpbtnspan),this.container.insertAfter(this.element),this.container.append(this.element),this.container.append(this.dropdownbutton),this.wrapper.insertBefore(this.container),this.wrapper.append(this.container),this.selectelement&&this.selectOptions.insertBefore(this.element),this._visibleInput=t.buildTag("input#"+this._id+"_hidden","",{}).insertAfter(this.element),this._visibleInput.addClass("e-input "),this._setAttr(this._visibleInput[0],{readonly:"readonly",tabindex:-1,"data-role":"none"}),!this._isWatermark){var i=this.model.watermarkText!=null?this.model.watermarkText:this._localizedLabels.watermarkText;this._hiddenSpan=t.buildTag("span.e-input e-placeholder ").insertAfter(this.element);this._hiddenSpan.text(i);this._hiddenSpan.css("display","none");this._hiddenSpan.on("mousedown",n.proxy(this._OnDropdownClick,this))}this._checkNameAttr();this._setDimentions();this._RightToLeft();this.ddWidth=this.dropdownbutton.outerWidth()>0?this.dropdownbutton.outerWidth():24;this.container.on("mousedown",n.proxy(this._OnDropdownClick,this))},_checkNameAttr:function(){this._name=t.isNullOrUndefined(this.element.attr("name"))?this._id:this.element.attr("name");this.element.attr("name",this._name)},_addAttr:function(i){var r=this;n.map(i,function(i,u){var f=u.toLowerCase();f=="class"?r.wrapper.addClass(i):f=="disabled"&&i=="disabled"?r.disable():f=="readOnly"&&i=="readOnly"?r.model.readOnly=!0:f=="style"?r.wrapper.attr(u,i):t.isValidAttr(r._visibleInput[0],u)?n(r._visibleInput).attr(u,i):r.wrapper.attr(u,i)})},_renderBoxModel:function(){if(!t.isNullOrUndefined(this._ulBox)||this.model.multiSelectMode!="visualmode")return!1;this._ulBox=t.buildTag("ul.e-ul e-boxes");this.container.prepend(this._ulBox);this._ulBox.css("min-height","30px");this._ulBox.css("display","none");this._on(this.container,"click",function(t){if(!this.model.enabled)return!1;var i=n(t.target);i.hasClass("e-options")&&(!t.ctrlKey&&i.siblings().hasClass("e-active")&&this._removeActive(),i.hasClass("e-active")?i.removeClass("e-active"):i.addClass("e-active"));!t.ctrlKey&&i.hasClass("e-boxes")&&this._removeActive()})},_renderPopupPanelWrapper:function(){var i=n("#"+this.element[0].id+"_popup_wrapper").get(0);i&&n(i).remove();this.popupPanelWrapper=t.buildTag("div#"+this._id+"_popup_wrapper");n("body").append(this.popupPanelWrapper);this.popupListWrapper=t.buildTag("div.e-ddl-popup e-box e-widget e-popup#"+this._id+"_popup_list_wrapper","",{display:"none",overflow:"hidden"});this.popupList=t.buildTag("div#"+this._id+"_popup",{tabIndex:0});this.popupListWrapper.addClass(this.model.cssClass);this.popup=this.popupList;this.popupScroller=t.buildTag("div");this.ultag=t.buildTag("ul.e-ul","",{},{role:"listbox"});this.popupScroller.append(this.ultag);this.popupList.append(this.popupScroller);this.model.headerTemplate&&(this.headerTemplate=n("<div>").append(this.model.headerTemplate),this.popupListWrapper.append(this.headerTemplate));this.popupListWrapper.append(this.popupList);this.popupPanelWrapper.append(this.popupListWrapper);this.ultag.on({mouseenter:n.proxy(this._OnMouseEnter,this),mouseleave:n.proxy(this._OnMouseLeave,this),click:n.proxy(this._OnMouseClick,this)},"li:not('.e-category')");if(t.isTouchDevice())this.ultag.on({tap:n.proxy(this._OnMouseEnter,this)},"li:not('.e-category')");n(window).on("resize",n.proxy(this._OnWindowResize,this))},_updateText:function(){this.model.text=this._visibleInput.val()==""?null:this._visibleInput.val()},_updateValue:function(n){this.value(n==""?null:n)},_setGroupingAndSorting:function(n,t){var i,u,r;if(this.model[n]=t,i=this.model.text,this._updateValue(""),this._selectedIndices=[],this.ultag.empty(),this._showFullList(),this.model.showCheckbox&&i)for(u=i.split(this.model.delimiterChar),r=0;r<u.length;r++)this.selectItemByText(u[r]);else this.selectItemByText(i)},_setSortingList:function(){var t=document.createElement("ul"),r,i;if(n(t).append(this.itemsContainer.children()),this.model.allowGrouping||n(t).find(">.e-category").length>0)for(this.popupListWrapper.addClass("e-atc-popup"),r=0;r<n(t).find(">.e-category").length;r++)i=n(t).find(">.e-category").eq(0).first().nextUntil(".e-category").get(),this._setSortList(t,i);else n(t).children(">.e-category").remove(),i=n(t).children("li").get(),this._setSortList(t,i);this.itemsContainer=n(t)},_setSortList:function(t,i){i.sort(function(t,i){var r=n(t).text().toUpperCase(),u=n(i).text().toUpperCase();return r<u?-1:r>u?1:0});this.model.sortOrder=="descending"&&i.reverse();(this.model.allowGrouping||n(t).find(">.e-category").length>0)&&(n(t).append(n("<li>").text(n(t).find(">.e-category").eq(0).text()).addClass("e-category")),n(t).find(">.e-category").eq(0).remove());n.each(i,function(i,r){n(t).append(r)})},_renderPopupList:function(){this._doDataBind();this._renderRemaining()},_renderRemaining:function(){var t=this;this._dropbtnRTL();this.model.enableFilterSearch&&this._enableSearch();this.model.enablePopupResize&&this._enablePopupResize();this.model.allowVirtualScrolling&&this.model.virtualScrollMode=="normal"&&this._totalCount&&this._totalCount>0&&(this._totalHeight=this._totalCount*29,this._totalPages=this._totalCount/(this.model.itemsCount*29),this._loadedItemHeight=this._getLi().length*29,this._getLi().attr("page",0),this._virtualPages=[0],this.ultag.append(n("<span>").addClass("e-virtual").css({height:this._totalHeight-this._loadedItemHeight,display:"block"})));this._virtualUl=this.ultag.clone(!0);this._setListWidth();this._setListHeight();this._isSingleSelect()||(this.model.showCheckbox?this._checkboxHideShow(this.model.showCheckbox):this._multiItemSelection(this._getLi()));this._setUncheckAll(this.model.uncheckAll);this.popupScroller.css({height:"",width:""});this.popupList.ejScroller({height:this._getPopupHeight(),width:0,scrollerSize:20,scroll:function(n){t.model.allowVirtualScrolling&&t._onScroll(n)}});this.scrollerObj=this.popupList.ejScroller("instance");this.popupList.find("div.e-scrollbar div").attr("unselectable","on");this._setListPosition();this.popupListWrapper.css({display:"none",visibility:"visible"});this._changeSkin(this.model.cssClass);this.model.showPopupOnLoad&&this._showResult()},_enableSearch:function(){if(this.model.enableFilterSearch&&!this.inputSearch){this.inputSearch=t.buildTag("input#"+this._id+"_inputSearch.e-input","",{},{type:"text","data-role":"none"});this.popupListWrapper.prepend(n("<span>").addClass("e-atc e-search").append(n("<span>").addClass("e-in-wrap ").append(this.inputSearch).append(n("<span>").addClass(" e-icon e-search"))));var i=this.model.enableServerFiltering?this._debounce(this._OnSearchEnter,200):this._OnSearchEnter;this._on(this.inputSearch,"keyup",i)._on(this.inputSearch,"keydown",function(n){var t=n.keyCode||n.which;t==9&&(n.preventDefault(),this.wrapper.focus(),this._hideResult())})}},_removeSearch:function(){this.model.enableFilterSearch=!1;this.popupListWrapper.find(".e-atc.e-search").remove();this._isPopupShown()&&this.hidePopup();this.inputSearch=null},_OnSearchEnter:function(i){var f=this,u,r;n.inArray(i.keyCode,[38,40,13])!=-1&&this.ultag.find("li.e-nosuggestion").length<=0?i.keyCode==13?this._OnKeyUp(i):this._OnKeyDown(i):(this._activeItem=-1,this._queryString=this.inputSearch.val(),this._queryString==""&&this._virtualUl?(r={searchString:this._queryString,searchQuery:null,items:this._rawList},this._trigger("search",r),this._resetList(),this._updateSelectedIndexByValue(this.value()),this._refreshScroller(),this._setListPosition()):(this._mapFields(),u=this._addSearchQuery(t.Query(),!this._isPlainType(this._rawList)),r={searchString:this._queryString,items:this._rawList,searchQuery:u},this.popupListWrapper.find(".e-atc.e-search .e-search").addClass("e-cross-circle").removeClass("e-search"),this._on(this.popupListWrapper.find(".e-atc.e-search .e-cross-circle"),"mousedown",this._refreshSearch),this._trigger("search",r)||f._onActionComplete(r)))},_debounce:function(n,t){var i,r=this;return function(){var u=arguments,f=function(){return i=null,n.apply(r,u)};clearTimeout(i);i=setTimeout(f,t)}},_onActionComplete:function(n){var r=this,n,i,u;this._queryString=this.inputSearch.val();i=this._addSearchQuery(t.Query(),!this._isPlainType(this._rawList));n={searchString:this._queryString,items:this._rawList,searchQuery:i};t.DataManager&&this.model.dataSource instanceof t.DataManager&&this.model.enableServerFiltering&&window.getSelection().type=="Caret"?(i=n.searchQuery.clone(),u=r.model.dataSource.executeQuery(i),u.done(function(t){r._filterSearch(n.searchQuery,t)})):r._filterSearch(i,n)},_refreshSearch:function(){this._resetSearch();this._refreshPopup()},_filterSearch:function(n,i){var f=!1,r,u,e;this.resultList=i.result?i.result:t.DataManager(this._rawList).executeLocal(n);this.resultList.length==0&&(f=!0,this.resultList.push(this._getLocalizedLabels("emptyResultText")));this.popupListItems=this.resultList;this.ultag.empty();this._isPlainType(this.popupListItems)?this._plainArrayTypeBinding(this.resultList):this._objectArrayTypeBinding(this.resultList,"search");f&&this.ultag.find("li").length==1&&this.ultag.find("li").eq(0).addClass("e-nosuggestion");this.model.showCheckbox&&!f&&this._appendCheckbox(this._getLi());this._onSearch=!0;r=this.value();u=this._visibleInput[0].value;this._setValue(this.value());e=typeof this.model.value=="function"?this.model.value():this.model.value;e!=r&&(this.element[0].value=r,this._visibleInput[0].value=u,this.model.text=u==""?null:u,this.value()==r||this.value()==null&&r==""||this._updateValue(r));this._onSearch=!1;this._updateSelectedIndexByValue(this.value());this._refreshScroller();this._setListPosition()},_updateSelectedIndexByValue:function(n){var r,i,t;if(n&&this.model.enableFilterSearch){for(this._selectedIndices=this.model.selectedItems=this.model.selectedIndices=[],this._virtualList=this._virtualUl.children("li:not('.e-category')"),r=this._toArray(n),i=0;i<r.length;i++)for(t=0;t<this._virtualList.length;t++)if(r[i]==this._getIndexedValue(this._virtualList[t])){this._selectedIndices.push(t);break}this.model.selectedItems=this.model.selectedIndices=this._selectedIndices}},_getIndexedValue:function(n){return this._getAttributeValue(n)?this._getAttributeValue(n):n.innerText},_resetSearch:function(){this.inputSearch&&this.model&&this.model.enableFilterSearch&&this.inputSearch.val()!=""&&this._virtualUl&&(this.inputSearch.val(""),this._resetList())},_resetList:function(){var i,n;if(this.popupListWrapper.find(".e-atc.e-search .e-cross-circle").length==1&&(this.popupListWrapper.find(".e-atc.e-search .e-cross-circle").addClass("e-search").removeClass("e-cross-circle"),this._off(this.popupListWrapper.find(".e-atc.e-search .e-cross-circle"),"mousedown",this._refreshSearch)),this.model.enableServerFiltering){for(i=this.model.fields&&this.model.fields.value?this.model.fields.value:"value",n=0;n<this._rawList.length;n++)this._rawList[n][i]==this._selectedValue&&(this._searchresult=null);t.isNullOrUndefined(this._searchresult)||this.model.allowVirtualScrolling&&this.model.virtualScrollMode=="normal"||this.addItem(this._searchresult)}this._listItem(this._rawList);this.ultag.empty().append(this._virtualUl.children().clone(!0));this._onSearch=!0;this._setValue(this.value());this._onSearch=!1;this._searchresult=[]},_addSearchQuery:function(n,t){var r="",i;return t&&(i=this.model.fields,r=i&&i.text?i.text:"text"),this._queryString&&n.where(r,this.model.filterType,this._queryString,!this.model.caseSensitiveSearch),this.model.itemsCount>0&&n.take(this.model.itemsCount),n},_targetElementBinding:function(){var e=this.element.parents().last(),r,f,t,u,i;if(this.docbdy=this.model.targetID?e.find("#"+this.model.targetID):this.optionDiv?this.optionDiv:null,!this.docbdy)return!1;if(this.itemsContainer=this.docbdy[0].nodeName=="UL"?this.docbdy:this.docbdy.children("ol,ul"),(this.model.allowGrouping||this.itemsContainer.find(">.e-category").length>0)&&!this.model.enableSorting)for(this.popupListWrapper.addClass("e-atc-popup"),r=0;r<this.itemsContainer.find(">.e-category").length;r++)f=this.itemsContainer.find(">.e-category").eq(r),f.replaceWith(n("<li>").text(f.text()).addClass("e-category"));else this.model.enableSorting&&this._setSortingList();for(this.itemsContainer.children("ol,ul").remove(),this.items=this.itemsContainer.children("li"),this.items.children("img,div").addClass("e-align"),this._listItem([]),t=0;t<this.items.length;t++)u=n(this.items[t]).text(),i=this._getAttributeValue(this.items[t]),n(this.items[t]).attr("data-value")||n(this.items[t]).attr("data-value",i?i:u),this._listItem({text:u,value:i?i:u},"add");this.ultag.empty().append(this.itemsContainer.children());this.ultag.children("li").attr("role","option").attr("unselectable","on");this.docbdy.css({display:"none"}).children("ol,ul").remove()},_plainArrayTypeBinding:function(i){var r,u;if(this.dummyUl=n(),this.model.enableSorting&&(i.sort(),this.model.sortOrder=="descending"&&i.reverse()),i.length>0){for(r=0;r<i.length;r++)t.isNullOrUndefined(i[r])||(u=t.buildTag("li",i[r],{},{"data-value":i[r],unselectable:"on"}),this.dummyUl.push(u[0]));this.ultag.append(this.dummyUl);this._trigger("dataBound",{data:i})}},_mapFields:function(){this.model.fields.groupBy=this.model.fields.groupBy?this.model.fields.groupBy:this.model.fields.category;var n=this.model.fields;this.mapFld={_id:null,_imageUrl:null,_imageAttributes:null,_spriteCSS:null,_text:null,_value:null,_htmlAttributes:null,_selected:null};this.mapFld._id=n&&n.id?n.id:"id";this.mapFld._imageUrl=n&&n.imageUrl?n.imageUrl:"imageUrl";this.mapFld._imageAttributes=n&&n.imageAttributes?n.imageAttributes:"imageAttributes";this.mapFld._spriteCSS=n&&n.spriteCssClass?n.spriteCssClass:"spriteCssClass";this.mapFld._text=n&&n.text?n.text:"text";this.mapFld._value=n&&n.value?n.value:"value";this.mapFld._htmlAttributes=n&&n.htmlAttributes?n.htmlAttributes:"htmlAttributes";this.mapFld._selected=n&&n.selected?n.selected:"selected";this.mapFld._category=n&&n.groupBy?n.groupBy:"groupBy"},_doDataBind:function(){var t=this.model.dataSource,n=this.popupListItems;!t||!n||!n.length||n.length<1?this._targetElementBinding():this._isPlainType(n)?this._plainArrayTypeBinding(n):this._objectArrayTypeBinding(n)},_isPlainType:function(n){return typeof n[0]!="object"},_objectArrayTypeBinding:function(i,r){var s,h,u,o,f,e;if(this.dummyUl=n(),this._mapFields(),this.model.enableSorting&&(s=t.Query().sortBy(this.mapFld._text,this.model.sortOrder,!0),i=t.DataManager(i).executeLocal(s),this.popupListItems=i),this.model.allowGrouping||this.model.fields.groupBy)for(this.popupListWrapper.addClass("e-atc-popup"),h=this.mapFld._category,o=t.Query().group(h),this.model.enableSorting||o.queries.splice(0,1),u=t.DataManager(i).executeLocal(o),this._swapUnCategorized(u),r=="search"?this.popupListItems=[]:this._listItem([]),f=0;f<u.length;f++)for(u[f].key&&this.ultag.append(t.buildTag("li.e-category",u[f].key).attr("role","option")[0]),this._generateLi(u[f].items,this.mapFld),this.ultag.append(this.dummyUl),e=0;e<u[f].items.length;e++)r=="search"?this.popupListItems.push(u[f].items[e]):this._listItem(u[f].items[e],"add");else this._generateLi(i,this.mapFld),this.ultag.append(this.dummyUl);this._trigger("dataBound",{data:i})},_onScroll:function(i){var e,o,f;if(i.scrollTop){var s=i.scrollTop,r=this,u=this.model.dataSource;r.model.allowVirtualScrolling&&r.model.virtualScrollMode=="continuous"?(f=t.Query().skip(r._rawList.length).take(r.model.itemsCount).clone(),s>=Math.round(n(r.popupList).find("ul,ol").height()-n(r.popupList).height())&&r._rawList.length<r._totalCount&&(r._addLoadingClass(),t.DataManager&&r.model.dataSource instanceof t.DataManager&&!t.isNullOrUndefined(r.model.dataSource.dataSource.url)?(f=r.inputSearch&&r.inputSearch.val()!=""&&this.model.enableServerFiltering?r._addSearchQuery(t.Query(),!r._isPlainType(r._rawList)).skip(r._getLi().length).clone():r._getQuery().skip(r._rawList.length).take(r.model.itemsCount).clone(),r._trigger("actionBegin",{requestFrom:"scroll"})||(o=r.model.dataSource.executeQuery(f),o.done(function(n){!t.isNullOrUndefined(r.model.value)&&r.model.enableServerFiltering&&(n.result=r._removeSelectedValue(n.result));r.addItem(n.result);r._removeLoadingClass();r._trigger("actionSuccess",{e:n,requestFrom:"scroll"})}).fail(function(){r.model.dataSource=null;r._removeLoadingClass();r._trigger("actionFailure",{e:i,requestFrom:"scroll"})}).always(function(n){r._trigger("actionComplete",{e:n,requestFrom:"scroll"})}))):t.DataManager&&u instanceof t.DataManager&&u.dataSource.offline&&u.dataSource.json&&u.dataSource.json.length>0?(r.addItem(this._localDataVirtualScroll()),window.setTimeout(function(){r._removeLoadingClass()},100)):(e=t.DataManager(r.model.dataSource).executeLocal(f),r.addItem(r._removeSelectedValue(e)),r._removeLoadingClass()))):r.model.allowVirtualScrolling&&r.model.virtualScrollMode=="normal"&&window.setTimeout(function(){r._virtualCount==0&&r._loadList()},300)}},_localDataVirtualScroll:function(){var n=this,i=t.isNullOrUndefined(n.value())?0:n.value().split(n.model.delimiterChar).length,r=n._checkValue?n._rawList.length-i:n._rawList.length,u=t.DataManager(n.model.dataSource.dataSource.json).executeLocal(t.Query().skip(r).take(n.model.itemsCount).clone());return n._removeSelectedValue(u)},_removeSelectedValue:function(n){var u,r,i;if(t.isNullOrUndefined(this.value()))return n;for(u=this.value().split(this.model.delimiterChar),r=0;r<u.length;r++)for(i=0;i<n.length;i++)n[i][this.mapFld._value]==u[r]&&n.splice(n.indexOf(n[i]),1);return n},_loadList:function(){var r,h,c,l,a,u;this._virtualCount++;var e=this.model.dataSource,v=this.scrollerObj.scrollTop(),i=this,o=0,f,s=null;if(this._currentPage=Math.round(v/(29*this.model.itemsCount)),n.inArray(this._currentPage,this._virtualPages.sort(function(n,t){return n-t}))!=-1)if(this._currentPage==0){if(n.inArray(this._currentPage+1,this._virtualPages)!=-1)return this._virtualCount--,!1;this._currentPage=this._currentPage+1}else if(n.inArray(this._currentPage-1,this._virtualPages)!=-1){if(n.inArray(this._currentPage+1,this._virtualPages)!=-1)return this._virtualCount--,!1;this._currentPage=this._currentPage+1}else this._currentPage=this._currentPage-1;for(f=!(n.inArray(this._currentPage-1,this._virtualPages)!=-1),this._addLoadingClass(),r=this._virtualPages.length-1;r>=0;r--)if(this._virtualPages[r]<this._currentPage){o=this._virtualPages[r];r+1==this._virtualPages.length||(s=this._virtualPages[r+1]);break}if(h=f?(this._currentPage-1)*this.model.itemsCount:this._currentPage*this.model.itemsCount,u=t.Query().range(h,this._currentPage*this.model.itemsCount+this.model.itemsCount),t.DataManager&&i.model.dataSource instanceof t.DataManager&&!t.isNullOrUndefined(i.model.dataSource.dataSource.url)){if(a=f?(this._currentPage-1)*this.model.itemsCount:this._currentPage*this.model.itemsCount,u=this._getQuery().skip(a),f){for(r=0;r<u.queries.length;r++)if(u.queries[r].fn=="onTake"){u.queries.splice(r,1);break}u.take(2*this.model.itemsCount)}i._trigger("actionBegin",{requestFrom:"scroll"})||(i.inputSearch&&i.inputSearch.val()!=""&&this.model.enableServerFiltering&&(u=i._addSearchQuery(t.Query(),!i._isPlainType(i._rawList)).skip(i._getLi().length).clone()),c=i.model.dataSource.executeQuery(u),c.done(function(n){n.result=i._removeSelectedValue(n.result);i._appendVirtualList(n.result,o,i._currentPage,s,f);i._removeLoadingClass();i._trigger("actionSuccess",{e:n,requestFrom:"scroll"})}).fail(function(n){i._virtualCount--;i._removeLoadingClass();i._trigger("actionFailure",{e:n,requestFrom:"scroll"})}).always(function(n){i._trigger("actionComplete",{e:n,requestFrom:"scroll"})}))}else t.DataManager&&e instanceof t.DataMan