kendo-ui-core
Version:
3 lines (2 loc) • 12.1 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("kendo.list.js"),require("kendo.mobile.scroller.js"),require("kendo.virtuallist.js")):"function"==typeof define&&define.amd?define(["kendo.list.min","kendo.mobile.scroller.min","kendo.virtuallist.min"],t):((e="undefined"!=typeof globalThis?globalThis:e||self).kendoautocomplete=e.kendoautocomplete||{},e.kendoautocomplete.js=t())}(this,(function(){return function(e,t){var i=window.kendo,s=i.htmlEncode,o=i.support,n=i.caret,a=i._activeElement,l=o.placeholder,r=i.ui,u=r.List,c=i.keys,p=i.data.DataSource,d="aria-disabled",_="aria-readonly",f="change",h="disabled",g="readonly",m="k-focus",v="k-hidden",y="k-disabled",b=".kendoAutoComplete",C="mouseenter"+b+" mouseleave"+b;function w(e,t,i){return i?t.substring(0,e).split(i).length-1:0}var k=u.extend({init:function(t,s){var o,n=this;n.ns=b,s=Array.isArray(s)?{dataSource:s}:s,u.fn.init.call(n,t,s),t=n.element,(s=n.options).placeholder=s.placeholder||t.attr("placeholder"),l&&t.attr("placeholder",s.placeholder),n._wrapper(),n._loader(),n._clearButton(),n._dataSource(),n._ignoreCase(),t[0].type="text",o=n.wrapper,n._popup(),t.addClass("k-input-inner").on("keydown"+b,n._keydown.bind(n)).on("keypress"+b,n._keypress.bind(n)).on("input"+b,n._search.bind(n)).on("paste"+b,n._search.bind(n)).on("focus"+b,(function(){n._prev=n._accessor(),n._oldText=n._prev,n._placeholder(!1),o.addClass(m)})).on("focusout"+b,(function(e){n.filterInput&&e.relatedTarget===n.filterInput[0]||(n._change(),n._placeholder(),n.close(),o.removeClass(m))})).attr({autocomplete:"off",role:"combobox","aria-expanded":!1}),n._clear.on("click"+b+" touchend"+b,n._clearValue.bind(n)),n._enable(),n._old=n._accessor(),n._placeholder(),n._initList(),e(n.element).parents("fieldset").is(":disabled")&&n.enable(!1),n.listView.bind("click",(function(e){e.preventDefault()})),n._resetFocusItemHandler=n._resetFocusItem.bind(n),i.notify(n),n._toggleCloseVisibility(),n._applyCssClasses(),s.label&&n._label(),n._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},_onActionSheetCreate:function(){var e=this;e.filterInput&&(e.filterInput.on("keydown"+b,e._keydown.bind(e)).on("keypress"+b,e._keypress.bind(e)).on("input"+b,e._search.bind(e)).on("paste"+b,e._search.bind(e)).attr({autocomplete:"off",role:"combobox","aria-expanded":!1}),e.popup.bind("activate",(function(){e.filterInput.val(e.element.val()),e.filterInput.trigger("focus")})),e.popup.bind("deactivate",(function(){e.element.trigger("focus")})))},_onCloseButtonPressed:function(){var e=this;e.filterInput&&a()===e.filterInput[0]&&e.element.val(e.filterInput.val())},_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=p.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",f,"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(b),o=e.readonly,n=e.disable;o||n?(s.addClass(n?y:"").removeClass(n?"":y),i.attr(h,n).attr(g,o).attr(d,n).attr(_,o)):(s.removeClass(y).on(C,t._toggleHover),i.prop(h,!1).prop(g,!1).attr(d,!1).attr(_,!1)),t._toggleCloseVisibility()},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(b),e._clear.off(b),e.wrapper.off(b),e.filterInput&&e.filterInput.off(b),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,l=i._separator(),r=i.dataSource.options.accentFoldingFiltering,u=i.filterInput&&a()===i.filterInput[0]?i.filterInput:i.element;e=e||i._accessor(),clearTimeout(i._typingTimeout),l&&(e=function(e,t,i){return t.split(i)[w(e,t,i)]}(n(u)[0],e,l)),t=e.length,(!s.enforceMinLength&&!t||t>=s.minLength)&&(i._open=!0,i._mute((function(){this.listView.value([])})),i._filterSource({value:o?r?e.toLocaleLowerCase(r):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],p=n(r)[0],d=s._separator(),_=l.split(d),f=w(p,l,d),h=p,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):""),p<=0&&(p=(g?l.toLocaleLowerCase(g):l.toLowerCase()).indexOf(g?e.toLocaleLowerCase(g):e.toLowerCase())+1),i=(i=l.substring(0,p).lastIndexOf(d))>-1?p-(i+d.length):p,l=_[f].substring(0,i),e&&(e=e.toString(),(i=(g?e.toLocaleLowerCase(g):e.toLowerCase()).indexOf(g?l.toLocaleLowerCase(g):l.toLowerCase()))>-1&&(h=p+(e=e.substring(i+l.length)).length,l+=e),d&&""!==_[_.length-1]&&_.push("")),_[f]=l,s._accessor(_.join(d||"")),r===a()&&n(r,p,h)):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(),n(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,n=i.dataSource.flatView(),l=n.length,r=i.dataSource._group?i.dataSource._group.length:0,u=i.element[0]===a()||i.filterInput&&i.filterInput[0]===a();i._renderFooter(),i._renderNoData(),i._toggleNoData(!l),i._toggleHeader(!!r&&!!l),i._resizePopup(),s.position(),l&&o.suggest&&u&&i._inputValue()&&i.suggest(n[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]===a())&&!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 n=t.split(s);return n.splice(w(e,t,s),1,i),s&&""!==n[n.length-1]&&n.push(""),n.join(o)}(n(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,e.filterInput&&a()===e.filterInput[0]&&e.element.val(e.filterInput.val()),(s||o)&&e.element.trigger(f),i&&e.trigger(f),e.typing=!1,e._toggleCloseVisibility()},_accessor:function(e){var i=this,s=i.filterInput&&a()===i.filterInput[0]?i.filterInput[0]: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(),n=s.focus();if(t._last=i,i===c.DOWN)o?this._move(n?"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(n?"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&&n){var a=s.dataItemByIndex(s.getElementIndex(n));if(t.trigger("select",{dataItem:a,item:n}))return;this._select(n)}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._toggleCloseVisibility()},_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,a=s.options.placeholder;if(a){if(i=o.val(),e===t&&(e=!i),e||(a=i!==a?i:""),i===s._old&&!e)return;o.toggleClass("k-readonly",e).val(a),a||o[0]!==document.activeElement||n(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 '+v+'"></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(){var e=this.element.is(":disabled")||this.element.is("[readonly]");this.value()&&!e?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(k),i.cssProperties.registerPrefix("AutoComplete","k-input-"),i.cssProperties.registerValues("AutoComplete",[{prop:"rounded",values:i.cssProperties.roundedValues.concat([["full","full"]])}])}(window.kendo.jQuery),kendo}));
//# sourceMappingURL=kendo.autocomplete.min.js.map