@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 16.8 kB
JavaScript
module.exports=function(i){var s={};function o(e){if(s[e])return s[e].exports;var t=s[e]={exports:{},id:e,loaded:!1};return i[e].call(t.exports,t,t.exports,o),t.loaded=!0,t.exports}return o.m=i,o.c=s,o.p="",o(0)}({0:function(e,t,i){e.exports=i(1124)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1079:function(e,t){e.exports=require("./kendo.list")},1080:function(e,t){e.exports=require("./kendo.mobile.scroller")},1081:function(e,t){e.exports=require("./kendo.virtuallist")},1089:function(e,t){e.exports=require("./kendo.html.button")},1124:function(e,t,i){var s;i(3),i=[i(1079),i(1080),i(1081),i(1089)],void 0===(t="function"==typeof(s=function(){var e={id:"combobox",name:"ComboBox",category:"web",description:"The ComboBox widget allows the selection from pre-defined values or entering a new value.",depends:["list","html.button"],features:[{id:"mobile-scroller",name:"Mobile scroller",description:"Support for kinetic scrolling in mobile device",depends:["mobile.scroller"]},{id:"virtualization",name:"VirtualList",description:"Support for virtualization",depends:["virtuallist"]}]},h=window.kendo.jQuery,r=void 0,a=window.kendo,t=a.ui,v=a.html,u=t.List,n=t.Select,c=a.caret,g=a.support,m=g.placeholder,x=a._activeElement,d=a.keys,f=".kendoComboBox",i=f+"FocusEvent",p="click"+f,_="mousedown"+f,b="disabled",w="readonly",l="change",s="k-i-loading k-input-loading-icon",y="k-focus",V="k-disabled",T="aria-disabled",C="aria-readonly",I="off",k="filter",o="accept",F="rebind",B="mouseenter"+f+" mouseleave"+f,S=/(\r\n|\n|\r)/gm,L=[16,17,18,19,20,33,34,37,39,45,91,92,144,145],E=n.extend({init:function(e,t){var i=this,s,o;i.ns=f;t=Array.isArray(t)?{dataSource:t}:t;n.fn.init.call(i,e,t);t=i.options;e=i.element.on("focus"+f,i._focusHandler.bind(i));t.placeholder=t.placeholder||e.attr("placeholder");i._reset();i._wrapper();i._input();i._clearButton();i._tabindex(i.input);i._popup();i._dataSource();i._ignoreCase();i._enable();i._attachFocusEvents();i._oldIndex=i.selectedIndex=-1;i._aria();i._initialIndex=t.index;i.requireValueMapper(i.options);i._initList();i._cascade();if(t.autoBind)i._filterSource();else{s=t.text;if(!s&&i._isSelect)s=e.children(":selected").text();if(s)i._setText(s)}if(!s)i._placeholder();o=h(i.element).parents("fieldset").is(":disabled");if(o)i.enable(false);a.notify(i);i._toggleCloseVisibility();i._applyCssClasses()},options:{name:"ComboBox",enabled:true,index:-1,text:null,value:null,autoBind:true,delay:200,dataTextField:"",dataValueField:"",minLength:1,enforceMinLength:false,height:200,highlightFirst:true,filter:"none",placeholder:"",suggest:false,cascadeFrom:"",cascadeFromField:"",cascadeFromParentField:"",ignoreCase:true,animation:{},virtual:false,template:null,groupTemplate:"#:data#",fixedGroupTemplate:"#:data#",clearButton:true,syncValueAndText:true,autoWidth:false,popup:null,size:"medium",fillMode:"solid",rounded:"medium"},events:["open","close",l,"select","filtering","dataBinding","dataBound","cascade","set"],setOptions:function(e){var t=this._listOptions(e);n.fn.setOptions.call(this,e);this.listView.setOptions(t);this._accessors();this._aria();this._clearButton()},destroy:function(){var e=this;e.input.off(f);e.input.off(i);e.element.off(f);e.wrapper.off(f);clearTimeout(e._pasteTimeout);e._arrow.off(p+" "+_);e._clear.off(p+" "+_);n.fn.destroy.call(e)},_isValueChanged:function(e){return e!==u.unifyType(this._old,typeof e)&&e!==u.unifyType(this._oldText,typeof e)},_change:function(){var e=this;var t=e.text();var i=t&&t!==e._oldText&&t!==e.options.placeholder;var s=e.selectedIndex;var o=s===-1;if(!e.options.syncValueAndText&&!e.value()&&o&&i){e._old="";e._oldIndex=s;e._oldText=t;if(!e._typing)e.element.trigger(l);e.trigger(l);e._typing=false;return}n.fn._change.call(e);e._oldText=e.text&&e.text();e._toggleCloseVisibility()},_attachFocusEvents:function(){var e=this;e.input.on("focus"+i,e._inputFocus.bind(e)).on("focusout"+i,e._inputFocusout.bind(e))},_focusHandler:function(e){if(e.target===this.element[0])this.input.trigger("focus")},_arrowClick:function(){this._toggle()},_inputFocus:function(){this.wrapper.addClass(y);this._placeholder(false)},_inputFocusout:function(e){var t=this;var i=t.value();var s=!h(e.relatedTarget).closest(".k-clear-value").length;t._userTriggered=true;t.wrapper.removeClass(y);clearTimeout(t._typingTimeout);t._typingTimeout=null;if(s)t.text(t.text());var o=t._focus();var a=this.listView.dataItemByIndex(this.listView.getElementIndex(o));if(i!==t.value()&&t.trigger("select",{dataItem:a,item:o})){t.value(i);return}t._placeholder();t._valueBeforeCascade=t._old;if(s){t._blur();t.element.trigger("blur")}},_inputPaste:function(){var e=this;clearTimeout(e._pasteTimeout);e._pasteTimeout=null;e._pasteTimeout=setTimeout(function(){e.search()})},_editable:function(e){var t=this,i=e.disable,s=e.readonly,o=t.wrapper.off(f),a=t.element.add(t.input.off(f)),n=t._arrow.off(p+" "+_),l=t._clear;if(!s&&!i){o.removeClass(V).on(B,t._toggleHover);a.prop(b,false).prop(w,false).attr(T,false).attr(C,false);n.on(p,t._arrowClick.bind(t)).on(_,function(e){e.preventDefault()});l.on(p+" touchend"+f,t._clearValue.bind(t));t.input.on("keydown"+f,t._keydown.bind(t)).on("input"+f,t._search.bind(t)).on("paste"+f,t._inputPaste.bind(t));t.wrapper.on(p+f,t._focusHandler.bind(t))}else{o.addClass(i?V:"").removeClass(i?"":V);a.attr(b,i).attr(w,s).attr(T,i).attr(C,s)}t._toggleCloseVisibility()},open:function(){var e=this;var t=e._state;var i=e.dataSource.filter()?e.dataSource.filter().filters.length>0:false;var s=!e.ul.find(e.listView.focus()).length;if(e.popup.visible())return;if(!e.listView.bound()&&t!==k||t===o){e._open=true;e._state=F;if(e.options.minLength!==1&&!i||i&&e.value()&&e.selectedIndex===-1){e.refresh();e._openPopup();if(!this.options.virtual)e.listView.bound(false)}else e._filterSource()}else if(e._allowOpening()){e.popup._hovered=true;e._openPopup();if(e.options.virtual)e._focusItem();else if(s&&e.options.highlightFirst)e.listView.focus(0)}},_scrollToFocusedItem:function(){var e=this.listView;e.scrollToIndex(e.getElementIndex(e.focus()))},_openPopup:function(){this.popup.one("activate",this._scrollToFocusedItem.bind(this));this.popup.open()},_updateSelectionState:function(){var e=this;var t=e.options.text;var i=e.options.value;if(e.listView.isFiltered())return;if(e.selectedIndex===-1){if(t===r||t===null)t=i;e._accessor(i);e.input.val(t||e.input.val());e._placeholder()}else if(e._oldIndex===-1)e._oldIndex=e.selectedIndex},_buildOptions:function(e){var t=this;if(!t._isSelect)return;var i=t._customOption;if(t._state===F)t._state="";t._customOption=r;t._options(e,"",t.value());if(i&&i[0].selected&&!t.listView._emptySearch)t._custom(i.val())},_updateSelection:function(){var e=this;var t=e.listView;var i=e._initialIndex;var s=i!==null&&i>-1;var o=e._state===k;if(o){h(t.focus()).removeClass("k-selected");return}if(e._fetch)return;if(!t.value().length)if(s)e.select(i);else if(e._accessor())t.value(e._accessor());e._initialIndex=null;var a=t.selectedDataItems()[0];if(!a)return;if(e._value(a)!==e.value())e._custom(e._value(a));else if(e._value(a)!==e.element[0].value)e._accessor(e._value(a));if(e.text()&&e.text()!==e._text(a))e._selectValue(a)},_updateItemFocus:function(){var e=this.listView;if(!this.options.highlightFirst)e.focus(-1);else if(!e.focus()&&!e.focusIndex())e.focus(0)},_listBound:function(){var e=this;var t=e.input[0]===x();var i=e.dataSource.flatView();var s=e.listView.skip();var o=i.length;var a=e.dataSource._group?e.dataSource._group.length:0;var n=s===r||s===0;e._presetValue=false;e._renderFooter();e._renderNoData();e._toggleNoData(!o);e._toggleHeader(!!a&&!!o);e._resizePopup();e.popup.position();e._buildOptions(i);e._updateSelection();if(i.length&&n){e._updateItemFocus();if(e.options.suggest&&t&&e.input.val())e.suggest(i[0])}if(e._open){e._open=false;if(e._typingTimeout&&!t)e.popup.close();else e.toggle(e._allowOpening());e._typingTimeout=null}e._hideBusy();e.trigger("dataBound")},_listChange:function(){this._selectValue(this.listView.selectedDataItems()[0]);if(this._presetValue)this._oldIndex=this.selectedIndex},_get:function(e){var t,i,s;if(typeof e==="function"){t=this.dataSource.flatView();for(s=0;s<t.length;s++)if(e(t[s])){e=s;i=true;break}if(!i)e=-1}if(!this.dataSource.total()&&!e)e=-1;return e},_select:function(e,t){var i=this;e=i._get(e);if(e===-1){i.input[0].value="";i._accessor("")}return i.listView.select(e).done(function(){if(!t&&i._state===k)i._state=o;i._toggleCloseVisibility()})},_selectValue:function(e){var t=this.listView.select();var i="";var s="";t=t[t.length-1];if(t===r)t=-1;this.selectedIndex=t;if(this.listView.isFiltered()&&t!==-1)this._valueBeforeCascade=this._old;if(t===-1&&!e){if(this.options.syncValueAndText){if(this.options.dataTextField===this.options.dataValueField)s=this._accessor();else s=this.input[0].value;i=s}else s=this.text();this.listView.focus(-1)}else{if(e||e===0){i=this._dataValue(e);s=this._text(e)}if(i===null)i=""}this._setDomInputValue(s);this._accessor(i!==r?i:s,t);this._placeholder();this._triggerCascade()},_setDomInputValue:function(e){var t=this;var i=c(this.input);var s;if(i&&i.length)s=i[0];this._prev=this.input[0].value=e;if(s&&this.selectedIndex===-1){var o=g.mobileOS;if(o.wp||o.android)setTimeout(function(){t.input[0].setSelectionRange(s,s)},0);else this.input[0].setSelectionRange(s,s)}},refresh:function(){this.listView.refresh()},_toggleCloseVisibility:function(){var e=this.element.is(":disabled")||this.element.is("[readonly]");if(this.text()&&!e)this._showClear();else this._hideClear()},suggest:function(e){var t=this;var i=t.input[0];var s=t.text();var o=c(i)[0];var a=t._last;var n;var l=t.dataSource.options.accentFoldingFiltering;if(a==d.BACKSPACE||a==d.DELETE){t._last=r;return}e=e||"";if(typeof e!=="string"){if(e[0])e=t.dataSource.view()[u.inArray(e[0],t.ul[0])];e=e?t._text(e):""}if(o<=0)o=(l?s.toLocaleLowerCase(l):s.toLowerCase()).indexOf(l?e.toLocaleLowerCase(l):e.toLowerCase())+1;if(e){e=e.toString();n=(l?e.toLocaleLowerCase(l):e.toLowerCase()).indexOf(l?s.toLocaleLowerCase(l):s.toLowerCase());if(n>-1)s+=e.substring(n+s.length)}else s=s.substring(0,o);if(s.length!==o||!e){i.value=s;if(i===x())c(i,o,s.length)}},text:function(e){e=e===null?"":e;var t=this;var i=t.input[0];var s=t.options.ignoreCase;var o=e;var a;var n;if(e===r)return i.value;if(t.options.autoBind===false&&!t.listView.bound()){t._setText(e);return}a=t.dataItem();if(a&&t._text(a).replace&&t._text(a).replace(S,"")===e){n=t._value(a);if(n===u.unifyType(t._old,typeof n)){t._triggerCascade();return}}if(s)o=o.toLowerCase();if(t.dataItem()&&t._text(t.dataItem())===e)return;t._select(function(e){e=t._text(e);if(s)e=(e+"").toLowerCase();return e===o}).done(function(){if(t.selectedIndex<0){i.value=e;if(t.options.syncValueAndText)t._accessor(e);t._cascadeTriggered=true;t._triggerCascade()}t._prev=i.value});t._toggleCloseVisibility()},toggle:function(e){this._toggle(e,true)},value:function(e){var t=this;var i=t.options;var s=t.listView;if(e===r){e=t._accessor()||t.listView.value()[0];return e===r||e===null?"":e}t.requireValueMapper(t.options,e);t.trigger("set",{value:e});if(e===i.value&&t.input.val()===i.text&&!t.options.cascadeFrom)return;t._accessor(e);if(t._isFilterEnabled()&&s.bound()&&s.isFiltered())t._clearFilter();else t._fetchData();s.value(e).done(function(){if(t.selectedIndex===-1&&(!s._selectedDataItems||!s._selectedDataItems.length)){t._accessor(e);t.input.val(e);t._placeholder(true)}if(t._userTriggered)t._old=t._accessor();else t._old=t._valueBeforeCascade=t._accessor();t._oldIndex=t.selectedIndex;t._prev=t._oldText=t.input.val();if(t._state===k)t._state=o;t._toggleCloseVisibility()})},_hideBusy:function(){var e=this;clearTimeout(e._busy);e._arrowIcon.removeClass(s);e._focused.attr("aria-busy",false);e._busy=null;e._toggleCloseVisibility()},_click:function(e){var t=this;var i=e.item;var s=t.listView.dataItemByIndex(t.listView.getElementIndex(i));var o=true;e.preventDefault();if(s){o=t._value(s)!==u.unifyType(t.value(),typeof t._value(s));if(!o)t.input.val(t._text(s))}if(o&&t.trigger("select",{dataItem:s,item:i})){t.close();return}t._userTriggered=true;t._select(i).done(function(){t._blur()})},_syncValueAndText:function(){return this.options.syncValueAndText},_inputValue:function(){return this.text()},_searchByWord:function(i){var s=this;var e=s.options;var t=s.dataSource;var o=e.ignoreCase;var a=function(e){var t=s._text(e);if(t!==r){t=t+"";if(t!==""&&i==="")return false;if(o)t=t.toLowerCase();return t.indexOf(i)===0}};if(o)i=i.toLowerCase();if(!s.ul[0].firstChild){t.one(l,function(){if(t.view()[0])s.search(i)}).fetch();return}this.listView.focus(this._get(a));var n=this.listView.focus();if(n){if(e.suggest)s.suggest(n);this.open()}if(this.options.highlightFirst&&!i)this.listView.focusFirst()},_input:function(){var e=this,t=e.element.removeClass("k-input-inner")[0],i=t.accessKey,s=e.wrapper,o="input.k-input-inner",a=t.name||"",n=e.options,l,r,u;if(a)a='name="'+a+'_input" ';l=s.find(o);if(!l[0]){u=v.renderButton('<button type="button" class="k-input-button" aria-label="expand combobox"></button>',{icon:"arrow-s",size:n.size,fillMode:n.fillMode,shape:"none",rounded:"none"});s.append("<input "+a+'class="k-input-inner" type="text" autocomplete="'+I+'"/>').append(u).append(e.element);l=s.find(o)}l[0].style.cssText=t.style.cssText;l[0].title=t.title;r=parseInt(this.element.prop("maxlength")||this.element.attr("maxlength"),10);if(r>-1)l[0].maxLength=r;l.addClass(t.className).css({width:"",height:t.style.height,position:""}).attr({role:"combobox","aria-expanded":false}).show();if(m)l.attr("placeholder",e.options.placeholder);if(i){t.accessKey="";l[0].accessKey=i}e._focused=e.input=l;e._arrow=s.find(".k-input-button").attr({role:"button",tabIndex:-1});e._arrowIcon=e._arrow.find(".k-icon")},_clearButton:function(){u.fn._clearButton.call(this);if(this.options.clearButton){this._clear.insertAfter(this.input);this.wrapper.addClass("k-combobox-clearable")}},_keydown:function(e){var t=this,i=e.keyCode,s=t.options.dataTextField||"text",o=i>=112&&i<=135,a=L.indexOf(i)>-1;t._last=i;clearTimeout(t._typingTimeout);t._typingTimeout=null;if(i===d.HOME)t._firstItem();else if(i===d.END)t._lastItem();else if(i===d.ENTER||i===d.TAB&&t.popup.visible()){var n=t.listView.focus();var l=t.dataItem();var r=true;if(!t.popup.visible()&&(!l||t.text()!==t._text(l)))n=null;if(n){if(t.popup.visible())e.preventDefault();l=t.listView.dataItemByIndex(t.listView.getElementIndex(n));if(l)r=t._value(l)!==u.unifyType(t.value(),typeof t._value(l));if(r&&t.trigger("select",{dataItem:l,item:n}))return;t._userTriggered=true;t._select(n).done(function(){t._blur();t._valueBeforeCascade=t._old=t.value()})}else{if(t._syncValueAndText()||t._isSelect)if(!t.dataItem()||t.dataItem()[s]!==t.input.val())t._accessor(t.input.val());if(t.options.highlightFirst){t.listView.value(t.input.val());t._blur()}else t._oldText=t.text()}}else if(i!=d.TAB&&!t._move(e)&&!a&&!o&&!e.ctrlKey)t._search();else if(i===d.ESC&&!t.popup.visible()&&t.text())t._clearValue()},_placeholder:function(e){if(m)return;var t=this,i=t.input,s=t.options.placeholder,o;if(s){o=t.value();if(e===r)e=!o;i.toggleClass("k-readonly",e);if(!e)if(!o)s="";else return;i.val(s);if(!s&&i[0]===x())c(i[0],0,0)}},_search:function(){var t=this;clearTimeout(t._typingTimeout);t._typingTimeout=setTimeout(function(){var e=t.text();if(e!==""&&t._prev!==e){t._prev=e;if(t.options.filter==="none"&&t.options.virtual)t.listView.select(-1);t.search(e);t._toggleCloseVisibility()}else if(e===""&&t._prev!==""&&t._prev!==r){t._clearValue();t._open=true;t._state=F}t._typingTimeout=null},t.options.delay)},_setText:function(e){this.input.val(e);this._prev=e},_wrapper:function(){var e=this,t=e.element,i=t.parent();if(!i.is("span.k-input")){i=t.hide().wrap("<span />").parent();i[0].style.cssText=t[0].style.cssText}e.wrapper=i.addClass("k-input k-combobox").addClass(t[0].className).removeClass("input-validation-error").css("display","")},_clearSelection:function(e,t){var i=this;var s=e.value();var o=s&&e.selectedIndex===-1;if(this.selectedIndex==-1&&this.value())return;if(t||!s||o){i.options.value="";i.value("")}},_preselect:function(e,t){this.input.val(t);this._accessor(e);this._old=this._accessor();this._oldIndex=this.selectedIndex;this.listView.setValue(e);this._placeholder();this._initialIndex=null;this._presetValue=true;this._toggleCloseVisibility()},_clearText:function(){this._old=this.value();this.text("")},_clearValue:function(){n.fn._clearValue.call(this);this.input.trigger("focus")}});return t.plugin(E),a.cssProperties.registerPrefix("ComboBox","k-input-"),a.cssProperties.registerValues("ComboBox",[{prop:"rounded",values:a.cssProperties.roundedValues.concat([["full","full"]])}]),window.kendo})?s.apply(t,i):s)||(e.exports=t)}});