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) 13.8 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("kendo.list.js"),require("kendo.mobile.scroller.js"),require("kendo.virtuallist.js"),require("kendo.prefix-suffix-containers.chunk.js")):"function"==typeof define&&define.amd?define(["exports","kendo.list","kendo.mobile.scroller","kendo.virtuallist","kendo.prefix-suffix-containers.chunk"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Autocomplete={}),e.kendo._globals.List,e.kendo._globals.MobileScroller,e.kendo._globals.Virtuallist,e.kendo._globals.PrefixSuffixContainersChunk)}(this,(function(e,t,i,s,o){!function(e,t){var i=window.kendo,s=i.htmlEncode,l=i.support,r=i.caret,n=i._activeElement,a=l.placeholder,u=i.ui,c=u.List,p=i.keys,d=i.data.DataSource,f="aria-disabled",_="aria-readonly",h="change",g="disabled",m="readonly",v="k-focus",w="k-disabled",b=".kendoAutoComplete",y="mouseenter"+b+" mouseleave"+b;function C(e,t,i){return i?t.substring(0,e).split(i).length-1:0}var k=c.extend({init:function(t,s){var l,r=this;r.ns=b,s=Array.isArray(s)?{dataSource:s}:s,c.fn.init.call(r,t,s),t=r.element,(s=r.options).placeholder=s.placeholder||t.attr("placeholder"),s.inputMode=s.inputMode||t.attr("inputmode")||"text",a&&t.attr("placeholder",s.placeholder),r._wrapper(),r._clearButton(),r._dataSource(),r._ignoreCase(),t[0].type="text",l=r.wrapper,r._popup(),t.addClass("k-input-inner").on("keydown"+b,r._keydown.bind(r)).on("keypress"+b,r._keypress.bind(r)).on("input"+b,r._search.bind(r)).on("paste"+b,r._search.bind(r)).on("focus"+b,(function(){r._prev=r._accessor(),r._oldText=r._prev,r._placeholder(!1),l.addClass(v)})).on("focusout"+b,(function(e){r.filterInput&&e.relatedTarget===r.filterInput[0]||(r._change(),r._placeholder(),r.close(),l.removeClass(v))})).attr({autocomplete:"off",role:"combobox","aria-expanded":!1,inputmode:s.inputMode}),r._clear.on("click"+b+" touchend"+b,r._clearValue.bind(r)),r._clear.on("mousedown"+b,r._clearValueMouseDownHandler.bind(r)),r._enable(),r._old=r._accessor(),r._placeholder(),r._initList(),e(r.element).parents("fieldset").is(":disabled")&&r.enable(!1),r.listView.bind("click",(function(e){e.preventDefault()})),r._resetFocusItemHandler=r._resetFocusItem.bind(r),o.a({widget:r,wrapper:r.wrapper,options:r.options,prefixInsertBefore:r._inputValuesContainer,suffixInsertAfter:s.clearButton?r._clear:r.element}),i.notify(r),r._toggleCloseVisibility(),r._applyCssClasses(),s.label&&r._label(),r._aria()},options:{name:"AutoComplete",enabled:!0,suggest:!1,template:"",groupTemplate:e=>s(e),fixedGroupTemplate:e=>s(e),prefixOptions:{separator:!0},suffixOptions:{separator:!0},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},_clearValueMouseDownHandler:function(e){e&&e.currentTarget&&e.currentTarget.classList.contains("k-clear-value")?this._clearValueTrigger=!0:this._clearValueTrigger=!1},_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",(()=>{e.filterInput.val(e.element.val()),e.filterInput.trigger("focus")})),e.popup.bind("deactivate",(()=>{e.element.trigger("focus")})))},_onCloseButtonPressed:function(){var e=this;e.filterInput&&n()===e.filterInput[0]&&e.element.val(e.filterInput.val())},_popup:function(){c.fn._popup.call(this),this.popup.element.addClass("k-autocomplete-popup")},_dataSource:function(){var e=this;e.dataSource&&e._refreshHandler?e._unbindDataSource():(e._progressHandler=e._showBusy,e._errorHandler=e._hideBusy),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);c.fn.setOptions.call(this,e),this.listView.setOptions(t),this._accessors(),this._aria(),this._clearButton()},_listOptions:function(t){var i=c.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,l=e.disable;o||l?(s.addClass(l?w:"").removeClass(l?"":w),i.attr(g,l).attr(m,o).attr(f,l).attr(_,o)):(s.removeClass(w).on(y,t._toggleHover),i.prop(g,!1).prop(m,!1).attr(f,!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),c.fn.destroy.call(e)},refresh:function(){this.listView.refresh()},select:function(e){this._select(e)},search:function(e){let t,i,s=this,o=s.options,l=o.ignoreCase,a=s._separator(),u=s.dataSource.options.accentFoldingFiltering,c=s.filterInput&&n()===s.filterInput[0]?s.filterInput:s.element;e=e||s._accessor(),clearTimeout(s._typingTimeout),a&&(e=function(e,t,i){return t.split(i)[C(e,t,i)]}(r(c)[0],e,a)),t=e.length,(!o.enforceMinLength&&!t||t>=o.minLength)&&(s._open=!0,s._mute((function(){this.listView.value([])})),i=u?e.toLocaleLowerCase(u):e.toLowerCase(),s._filterSource({value:l?i:e,operator:o.filter,field:o.dataTextField,ignoreCase:l}),s.one("close",s._unifySeparators.bind(s))),s._toggleCloseVisibility()},suggest:function(e){var i,s=this,o=s._last,l=s._accessor(),a=s.value(),u=s.element[0],d=r(u)[0],f=s._separator(),_=l.split(f),h=C(d,l,f),g=d,m=s.dataSource.options.accentFoldingFiltering;if(o!=p.BACKSPACE&&o!=p.DELETE){if("string"!=typeof(e=e||"")&&(e[0]&&(e=s.dataSource.view()[c.inArray(e[0],s.ul[0])]),e=e?s._text(e):""),d<=0&&(d=(m?l.toLocaleLowerCase(m):l.toLowerCase()).indexOf(m?e.toLocaleLowerCase(m):e.toLowerCase())+1),i=(i=l.substring(0,d).lastIndexOf(s._defaultSeparator()))>-1?d-(i+s._defaultSeparator().length):d,l=_[h].substring(0,i),e&&(e=e.toString(),(i=(m?e.toLocaleLowerCase(m):e.toLowerCase()).indexOf(m?l.toLocaleLowerCase(m):l.toLowerCase()))>-1&&(g=d+(e=e.substring(i+l.length)).length,l+=e),f&&""!==_[_.length-1]&&_.push("")),_[h]=l,"object"==typeof s.options.separator&&null!=s.options.separator)if(a.length>1){let e=[...a.matchAll(f.source)].pop();e?s._accessor(_.slice(0,-1).join(s._defaultSeparator()||"")+e+_[_.length-1]):s._accessor(_.slice(0,-1).join(s._defaultSeparator()||""))}else s._accessor(_.join(this._defaultSeparator()||""));else s._accessor(_.join(f||""));u===n()&&r(u,d,g)}else 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(),r(s,s.val().length)})))},_clearText:e.noop,_highlightFirst:function(){var e=this.options.highlightFirst?0:-1;this.listView.focus(e)},_resetFocusItem:function(){this.options.virtual&&this.listView.scrollTo(0),this._highlightFirst()},_listBound:function(){var e,i=this,s=i.popup,o=i.options,l=i.dataSource.flatView(),r=l.length,a=i.dataSource._group?i.dataSource._group.length:0,u=i.element[0]===n()||i.filterInput&&i.filterInput[0]===n();i._renderFooter(),i._renderNoData(),i._toggleNoData(!r),i._toggleHeader(!!a&&!!r),i._resizePopup(),s.position(),r&&(o.suggest&&u&&i._inputValue()&&i.suggest(l[0]),i._highlightFirst()),i._open&&(i._open=!1,e=i._allowOpening()?"open":"close",i._typingTimeout&&!u&&(e="close"),r&&(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 l=t.split(s);return l.splice(C(e,t,s),1,i),s&&""!==l[l.length-1]&&l.push(""),l.join(o)}(r(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!==c.unifyType(e._old,typeof t),s=i&&!e._typing,o=e._oldText!==t,l=e._clearValueTrigger;e._old=t,e._oldText=t,e.filterInput&&n()===e.filterInput[0]&&e.element.val(e.filterInput.val()),!s&&!o||l||e.element.trigger(h),i&&!l&&e.trigger(h),e.typing=!1,e._toggleCloseVisibility()},_accessor:function(e){var i=this,s=i.filterInput&&n()===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(),l=s.focus();if(t._last=i,i===p.DOWN)o?this._move(l?"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===p.ESC)o?(e.preventDefault(),t.close()):t._clearValue();else if(e.altKey&&i===p.UP&&o)e.preventDefault(),t.close();else if(i===p.UP)o&&this._move(l?"focusPrev":"focusLast"),e.preventDefault();else if(i===p.HOME)this._move("focusFirst");else if(i===p.END)this._move("focusLast");else if(i===p.ENTER||i===p.TAB){if(i===p.ENTER&&o&&e.preventDefault(),o&&l){var r=s.dataItemByIndex(s.getElementIndex(l));if(t.trigger("select",{dataItem:r,item:l}))return;this._select(l)}this._blur()}else if(!t.popup.visible()||i!==p.PAGEDOWN&&i!==p.PAGEUP)t.popup._hovered=!0,t._search();else{e.preventDefault();var n=i===p.PAGEDOWN?1:-1;s.scrollWith(n*s.screenHeight())}},_keypress:function(){this._oldText=this.element.val(),this._typing=!0},_move:function(e){if(this.listView[e](),this.options.suggest&&null==this.listView.focus()&&"focusNext"==e)this.listView.focus(0),this.suggest(this.listView._view[0].item);else if(this.options.suggest&&null==this.listView.focus()&&"focusPrev"==e){let e=this.listView._view.length-1;this.listView.focus(e),this.suggest(this.listView._view[e].item)}else!this.options.suggest||"focusFirst"!=e&&"focusLast"!=e?this.options.suggest&&null!=this.listView.focus()&&this.suggest(this.listView.focus()):r(this.element)},_placeholder:function(e){if(!a){var i,s=this,o=s.element,l=s.options.placeholder;if(l){if(i=o.val(),e===t&&(e=!i),e||(l=i!==l?i:""),i===s._old&&!e)return;o.toggleClass("k-readonly",e).val(l),l||o[0]!==document.activeElement||r(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}))},_clearButton:function(){c.fn._clearButton.call(this),this.options.clearButton&&this._clear.insertAfter(this.element)},_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(){this._clearValueTrigger=!1,c.fn._clearValue.call(this),this.element.trigger("focus")}});u.plugin(k),i.cssProperties.registerPrefix("AutoComplete","k-input-"),i.cssProperties.registerValues("AutoComplete",[{prop:"rounded",values:i.cssProperties.roundedValues.concat([["full","full"]])}])}(window.kendo.jQuery);var l=kendo;e.__meta__={id:"autocomplete",name:"AutoComplete",category:"web",description:"The AutoComplete widget provides suggestions depending on the typed text.It also allows multiple value entries.",depends:["list","prefix-suffix-containers.chunk"],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"]}]},e.default=l,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=kendo.autocomplete.min.js.map