UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

3 lines (2 loc) 10.8 kB
!function(e){"function"==typeof define&&define.amd?define(["kendo.list.min","kendo.mobile.scroller.min","kendo.virtuallist.min"],e):e()}((function(){!function(e,t){var i=window.kendo,s=i.htmlEncode,o=i.support,a=i.caret,n=i._activeElement,l=o.placeholder,r=i.ui,u=r.List,c=i.keys,d=i.data.DataSource,p="aria-disabled",_="aria-readonly",h="change",f="disabled",g="readonly",m="k-focus",v="k-hidden",y="k-disabled",C=".kendoAutoComplete";function w(e,t,i){return i?t.substring(0,e).split(i).length-1:0}var b=u.extend({init:function(t,s){var o,a=this;a.ns=C,s=Array.isArray(s)?{dataSource:s}:s,u.fn.init.call(a,t,s),t=a.element,(s=a.options).placeholder=s.placeholder||t.attr("placeholder"),l&&t.attr("placeholder",s.placeholder),a._wrapper(),a._loader(),a._clearButton(),a._dataSource(),a._ignoreCase(),t[0].type="text",o=a.wrapper,a._popup(),t.addClass("k-input-inner").on("keydown"+C,a._keydown.bind(a)).on("keypress"+C,a._keypress.bind(a)).on("input"+C,a._search.bind(a)).on("paste"+C,a._search.bind(a)).on("focus"+C,(function(){a._prev=a._accessor(),a._oldText=a._prev,a._placeholder(!1),o.addClass(m)})).on("focusout"+C,(function(){a._change(),a._placeholder(),a.close(),o.removeClass(m)})).attr({autocomplete:"off",role:"combobox","aria-expanded":!1}),a._clear.on("click"+C+" touchend"+C,a._clearValue.bind(a)),a._enable(),a._old=a._accessor(),a._placeholder(),a._initList(),e(a.element).parents("fieldset").is(":disabled")&&a.enable(!1),a.listView.bind("click",(function(e){e.preventDefault()})),a._resetFocusItemHandler=a._resetFocusItem.bind(a),i.notify(a),a._toggleCloseVisibility(),a._applyCssClasses(),s.label&&a._label(),a._aria()},options:{name:"AutoComplete",enabled:!0,suggest:!1,template:"",groupTemplate:function(e){return s(e)},fixedGroupTemplate:function(e){return s(e)},dataTextField:"",minLength:1,enforceMinLength:!1,delay:200,height:200,filter:"startswith",ignoreCase:!0,highlightFirst:!1,separator:null,placeholder:"",animation:{},virtual:!1,value:null,clearButton:!0,autoWidth:!1,popup:null,size:"medium",fillMode:"solid",rounded:"medium",label:null},_dataSource:function(){var e=this;e.dataSource&&e._refreshHandler?e._unbindDataSource():(e._progressHandler=e._showBusy.bind(e),e._errorHandler=e._hideBusy.bind(e)),e.dataSource=d.create(e.options.dataSource).bind("progress",e._progressHandler).bind("error",e._errorHandler)},setDataSource:function(e){this.options.dataSource=e,this._dataSource(),this.listView.setDataSource(this.dataSource)},events:["open","close",h,"select","filtering","dataBinding","dataBound"],setOptions:function(e){var t=this._listOptions(e);u.fn.setOptions.call(this,e),this.listView.setOptions(t),this._accessors(),this._aria(),this._clearButton()},_listOptions:function(t){var i=u.fn._listOptions.call(this,e.extend(t,{skipUpdateOnBind:!0}));return i.dataValueField=i.dataTextField,i.selectedItemChange=null,i},_editable:function(e){var t=this,i=t.element,s=t.wrapper.off(C),o=e.readonly,a=e.disable;o||a?(s.addClass(a?y:"").removeClass(a?"":y),i.attr(f,a).attr(g,o).attr(p,a).attr(_,o)):(s.removeClass(y).on("mouseenter.kendoAutoComplete mouseleave.kendoAutoComplete",t._toggleHover),i.prop(f,!1).prop(g,!1).attr(p,!1).attr(_,!1))},close:function(){var e=this,t=e.listView.focus();t&&t.removeClass("k-selected"),e.popup.close(),e._deactivateItem()},destroy:function(){var e=this;e.element.off(C),e._clear.off(C),e.wrapper.off(C),u.fn.destroy.call(e)},refresh:function(){this.listView.refresh()},select:function(e){this._select(e)},search:function(e){var t,i=this,s=i.options,o=s.ignoreCase,n=i._separator(),l=i.dataSource.options.accentFoldingFiltering;e=e||i._accessor(),clearTimeout(i._typingTimeout),n&&(e=function(e,t,i){return t.split(i)[w(e,t,i)]}(a(i.element)[0],e,n)),t=e.length,(!s.enforceMinLength&&!t||t>=s.minLength)&&(i._open=!0,i._mute((function(){this.listView.value([])})),i._filterSource({value:o?l?e.toLocaleLowerCase(l):e.toLowerCase():e,operator:s.filter,field:s.dataTextField,ignoreCase:o}),i.one("close",i._unifySeparators.bind(i))),i._toggleCloseVisibility()},suggest:function(e){var i,s=this,o=s._last,l=s._accessor(),r=s.element[0],d=a(r)[0],p=s._separator(),_=l.split(p),h=w(d,l,p),f=d,g=s.dataSource.options.accentFoldingFiltering;o!=c.BACKSPACE&&o!=c.DELETE?("string"!=typeof(e=e||"")&&(e[0]&&(e=s.dataSource.view()[u.inArray(e[0],s.ul[0])]),e=e?s._text(e):""),d<=0&&(d=(g?l.toLocaleLowerCase(g):l.toLowerCase()).indexOf(g?e.toLocaleLowerCase(g):e.toLowerCase())+1),i=(i=l.substring(0,d).lastIndexOf(p))>-1?d-(i+p.length):d,l=_[h].substring(0,i),e&&(e=e.toString(),(i=(g?e.toLocaleLowerCase(g):e.toLowerCase()).indexOf(g?l.toLocaleLowerCase(g):l.toLowerCase()))>-1&&(f=d+(e=e.substring(i+l.length)).length,l+=e),p&&""!==_[_.length-1]&&_.push("")),_[h]=l,s._accessor(_.join(p||"")),r===n()&&a(r,d,f)):s._last=t},value:function(e){if(e===t)return this._accessor();this.listView.value(e),this._accessor(e),this._old=this._accessor(),this._oldText=this._accessor(),this._toggleCloseVisibility(),this._refreshFloatingLabel()},_click:function(e){var t=e.item,i=this,s=i.element,o=i.listView.dataItemByIndex(i.listView.getElementIndex(t));e.preventDefault(),i._active=!0,i.trigger("select",{dataItem:o,item:t})?i.close():(i._oldText=s.val(),i._select(t).done((function(){i._blur(),a(s,s.val().length)})))},_clearText:e.noop,_resetFocusItem:function(){var e=this.options.highlightFirst?0:-1;this.options.virtual&&this.listView.scrollTo(0),this.listView.focus(e)},_listBound:function(){var e,i=this,s=i.popup,o=i.options,a=i.dataSource.flatView(),l=a.length,r=i.dataSource._group?i.dataSource._group.length:0,u=i.element[0]===n();i._renderFooter(),i._renderNoData(),i._toggleNoData(!l),i._toggleHeader(!!r&&!!l),i._resizePopup(),s.position(),l&&o.suggest&&u&&i._inputValue()&&i.suggest(a[0]),i._open&&(i._open=!1,e=i._allowOpening()?"open":"close",i._typingTimeout&&!u&&(e="close"),l&&(i._resetFocusItem(),o.virtual&&i.popup.unbind("activate",i._resetFocusItemHandler).one("activate",i._resetFocusItemHandler)),s[e](),i._typingTimeout=t),i._touchScroller&&i._touchScroller.reset(),i._hideBusy(),i.trigger("dataBound")},_mute:function(e){this._muted=!0,e.call(this),this._muted=!1},_listChange:function(){(this._active||this.element[0]===n())&&!this._muted&&this._selectValue(this.listView.selectedDataItems()[0])},_selectValue:function(e){var t=this._separator(),i="";e&&(i=this._text(e)),null===i&&(i=""),t&&(i=function(e,t,i,s,o){var a=t.split(s);return a.splice(w(e,t,s),1,i),s&&""!==a[a.length-1]&&a.push(""),a.join(o)}(a(this.element)[0],this._accessor(),i,t,this._defaultSeparator())),this._prev=i,this._accessor(i),this._placeholder()},_unifySeparators:function(){return this._accessor(this.value().split(this._separator()).join(this._defaultSeparator())),this},_preselect:function(e,t){this._inputValue(t),this._accessor(e),this._old=this.oldText=this._accessor(),this.listView.setValue(e),this._placeholder()},_change:function(){var e=this,t=e._unifySeparators().value(),i=t!==u.unifyType(e._old,typeof t),s=i&&!e._typing,o=e._oldText!==t;e._old=t,e._oldText=t,(s||o)&&e.element.trigger(h),i&&e.trigger(h),e.typing=!1,e._toggleCloseVisibility()},_accessor:function(e){var i=this,s=i.element[0];if(e===t)return e=s.value,s.className.indexOf("k-readonly")>-1&&e===i.options.placeholder?"":e;s.value=null===e?"":e,i._placeholder()},_keydown:function(e){var t=this,i=e.keyCode,s=t.listView,o=t.popup.visible(),a=s.focus();if(t._last=i,i===c.DOWN)o?this._move(a?"focusNext":"focusFirst"):t.value()&&t._filterSource({value:t.ignoreCase?t.value().toLowerCase():t.value(),operator:t.options.filter,field:t.options.dataTextField,ignoreCase:t.ignoreCase}).done((function(){t._allowOpening()&&(t._resetFocusItem(),t.popup.open())})),e.preventDefault();else if(i===c.ESC)o?(e.preventDefault(),t.close()):t._clearValue();else if(e.altKey&&i===c.UP&&o)e.preventDefault(),t.close();else if(i===c.UP)o&&this._move(a?"focusPrev":"focusLast"),e.preventDefault();else if(i===c.HOME)this._move("focusFirst");else if(i===c.END)this._move("focusLast");else if(i===c.ENTER||i===c.TAB){if(i===c.ENTER&&o&&e.preventDefault(),o&&a){var n=s.dataItemByIndex(s.getElementIndex(a));if(t.trigger("select",{dataItem:n,item:a}))return;this._select(a)}this._blur()}else if(!t.popup.visible()||i!==c.PAGEDOWN&&i!==c.PAGEUP)t.popup._hovered=!0,t._search();else{e.preventDefault();var l=i===c.PAGEDOWN?1:-1;s.scrollWith(l*s.screenHeight())}},_keypress:function(){this._oldText=this.element.val(),this._typing=!0},_move:function(e){this.listView[e](),this.options.suggest&&this.suggest(this.listView.focus())},_hideBusy:function(){var e=this;clearTimeout(e._busy),e._loading.addClass(v),e.element.attr("aria-busy",!1),e._busy=null,e._showClear()},_showBusy:function(){var e=this;e._busy||(e._busy=setTimeout((function(){e.element.attr("aria-busy",!0),e._loading.removeClass(v),e._hideClear()}),100))},_placeholder:function(e){if(!l){var i,s=this,o=s.element,n=s.options.placeholder;if(n){if(i=o.val(),e===t&&(e=!i),e||(n=i!==n?i:""),i===s._old&&!e)return;o.toggleClass("k-readonly",e).val(n),n||o[0]!==document.activeElement||a(o[0],0,0)}}},_separator:function(){var e=this.options.separator;return e instanceof Array?new RegExp(e.join("|"),"gi"):e},_defaultSeparator:function(){var e=this.options.separator;return e instanceof Array?e[0]:e},_inputValue:function(){return this.element.val()},_search:function(){var e=this;clearTimeout(e._typingTimeout),e._typingTimeout=setTimeout((function(){e._prev!==e._accessor()&&(e._prev=e._accessor(),e.search())}),e.options.delay)},_select:function(e){var t=this;return t._active=!0,t.listView.select(e).done((function(){t._active=!1}))},_loader:function(){this._loading=e('<span class="k-icon k-i-loading k-input-loading-icon k-hidden"></span>').insertAfter(this.element)},_clearButton:function(){u.fn._clearButton.call(this),this.options.clearButton&&(this._clear.insertAfter(this.element),this.wrapper.addClass("k-autocomplete-clearable"))},_toggleHover:function(t){e(t.currentTarget).toggleClass("k-hover","mouseenter"===t.type)},_toggleCloseVisibility:function(){this.value()?this._showClear():this._hideClear()},_wrapper:function(){var e,t=this,i=t.element,s=i[0];(e=i.parent()).is("span.k-autocomplete")||(e=i.wrap("<span />").parent()),e.attr("tabindex",-1),e[0].style.cssText=s.style.cssText,i.css({width:"",height:s.style.height}),t._focused=t.element,t.wrapper=e.addClass("k-autocomplete k-input").addClass(s.className).removeClass("input-validation-error")},_clearValue:function(){u.fn._clearValue.call(this),this.element.focus()}});r.plugin(b),i.cssProperties.registerPrefix("AutoComplete","k-input-"),i.cssProperties.registerValues("AutoComplete",[{prop:"rounded",values:i.cssProperties.roundedValues.concat([["full","full"]])}])}(window.kendo.jQuery)})); //# sourceMappingURL=kendo.autocomplete.min.js.map