UNPKG

kendo-ui-core

Version:
3 lines (2 loc) 13.6 kB
!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(){let e=kendo.jQuery;function t({widget:t,wrapper:i,options:o,prefixInsertBefore:s,suffixInsertAfter:n}){var r,a,l=o.prefixOptions,u=o.suffixOptions,c=l.template||l.icon,p=u.template||u.icon,d=(n=n||s,o.layoutFlow),f=d?"vertical"==d?"horizontal":"vertical":"horizontal",h=`<span class="k-input-separator k-input-separator-${"vertical"==d?"horizontal":"vertical"}"></span>`;l&&c&&((r=i.children(".k-input-prefix"))[0]||(r=e(`<span class="k-input-prefix k-input-prefix-${f}" />`),s?r.insertBefore(s):r.prependTo(i)),l.icon&&r.html(kendo.html.renderIcon({icon:l.icon})),l.template&&r.html(kendo.template(l.template)({})),l.separator&&e(h).insertAfter(r)),u&&p&&((a=i.children(".k-input-suffix"))[0]||(a=e(`<span class="k-input-suffix k-input-suffix-${f}" />`).appendTo(i),n?a.insertAfter(n):a.appendTo(i)),u.icon&&a.html(kendo.html.renderIcon({icon:u.icon})),u.template&&a.html(kendo.template(u.template)({})),u.separator&&e(h).insertBefore(a)),t._prefixContainer=r,t._suffixContainer=a}return function(e,i){var o=window.kendo,s=o.htmlEncode,n=o.support,r=o.caret,a=o._activeElement,l=n.placeholder,u=o.ui,c=u.List,p=o.keys,d=o.data.DataSource,f="aria-disabled",h="aria-readonly",_="change",g="disabled",m="readonly",v="k-focus",y="k-hidden",b="k-disabled",w=".kendoAutoComplete",C="mouseenter"+w+" mouseleave"+w;function k(e,t,i){return i?t.substring(0,e).split(i).length-1:0}var x=c.extend({init:function(i,s){var n,r=this;r.ns=w,s=Array.isArray(s)?{dataSource:s}:s,c.fn.init.call(r,i,s),i=r.element,(s=r.options).placeholder=s.placeholder||i.attr("placeholder"),l&&i.attr("placeholder",s.placeholder),r._wrapper(),r._loader(),r._clearButton(),r._dataSource(),r._ignoreCase(),i[0].type="text",n=r.wrapper,r._popup(),i.addClass("k-input-inner").on("keydown"+w,r._keydown.bind(r)).on("keypress"+w,r._keypress.bind(r)).on("input"+w,r._search.bind(r)).on("paste"+w,r._search.bind(r)).on("focus"+w,(function(){r._prev=r._accessor(),r._oldText=r._prev,r._placeholder(!1),n.addClass(v)})).on("focusout"+w,(function(e){r.filterInput&&e.relatedTarget===r.filterInput[0]||(r._change(),r._placeholder(),r.close(),n.removeClass(v))})).attr({autocomplete:"off",role:"combobox","aria-expanded":!1}),r._clear.on("click"+w+" touchend"+w,r._clearValue.bind(r)),r._clear.on("mousedown"+w,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),t({widget:r,wrapper:r.wrapper,options:r.options,prefixInsertBefore:r._inputValuesContainer,suffixInsertAfter:r._loading}),o.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"+w,e._keydown.bind(e)).on("keypress"+w,e._keypress.bind(e)).on("input"+w,e._search.bind(e)).on("paste"+w,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&&a()===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.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",_,"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,o=t.wrapper.off(w),s=e.readonly,n=e.disable;s||n?(o.addClass(n?b:"").removeClass(n?"":b),i.attr(g,n).attr(m,s).attr(f,n).attr(h,s)):(o.removeClass(b).on(C,t._toggleHover),i.prop(g,!1).prop(m,!1).attr(f,!1).attr(h,!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(w),e._clear.off(w),e.wrapper.off(w),e.filterInput&&e.filterInput.off(w),c.fn.destroy.call(e)},refresh:function(){this.listView.refresh()},select:function(e){this._select(e)},search:function(e){var t,i=this,o=i.options,s=o.ignoreCase,n=i._separator(),l=i.dataSource.options.accentFoldingFiltering,u=i.filterInput&&a()===i.filterInput[0]?i.filterInput:i.element;e=e||i._accessor(),clearTimeout(i._typingTimeout),n&&(e=function(e,t,i){return t.split(i)[k(e,t,i)]}(r(u)[0],e,n)),t=e.length,(!o.enforceMinLength&&!t||t>=o.minLength)&&(i._open=!0,i._mute((function(){this.listView.value([])})),i._filterSource({value:s?l?e.toLocaleLowerCase(l):e.toLowerCase():e,operator:o.filter,field:o.dataTextField,ignoreCase:s}),i.one("close",i._unifySeparators.bind(i))),i._toggleCloseVisibility()},suggest:function(e){var t,o=this,s=o._last,n=o._accessor(),l=o.element[0],u=r(l)[0],d=o._separator(),f=n.split(d),h=k(u,n,d),_=u,g=o.dataSource.options.accentFoldingFiltering;s!=p.BACKSPACE&&s!=p.DELETE?("string"!=typeof(e=e||"")&&(e[0]&&(e=o.dataSource.view()[c.inArray(e[0],o.ul[0])]),e=e?o._text(e):""),u<=0&&(u=(g?n.toLocaleLowerCase(g):n.toLowerCase()).indexOf(g?e.toLocaleLowerCase(g):e.toLowerCase())+1),t=(t=n.substring(0,u).lastIndexOf(d))>-1?u-(t+d.length):u,n=f[h].substring(0,t),e&&(e=e.toString(),(t=(g?e.toLocaleLowerCase(g):e.toLowerCase()).indexOf(g?n.toLocaleLowerCase(g):n.toLowerCase()))>-1&&(_=u+(e=e.substring(t+n.length)).length,n+=e),d&&""!==f[f.length-1]&&f.push("")),f[h]=n,o._accessor(f.join(d||"")),l===a()&&r(l,u,_)):o._last=i},value:function(e){if(e===i)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,o=i.element,s=i.listView.dataItemByIndex(i.listView.getElementIndex(t));e.preventDefault(),i._active=!0,i.trigger("select",{dataItem:s,item:t})?i.close():(i._oldText=o.val(),i._select(t).done((function(){i._blur(),r(o,o.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,t=this,o=t.popup,s=t.options,n=t.dataSource.flatView(),r=n.length,l=t.dataSource._group?t.dataSource._group.length:0,u=t.element[0]===a()||t.filterInput&&t.filterInput[0]===a();t._renderFooter(),t._renderNoData(),t._toggleNoData(!r),t._toggleHeader(!!l&&!!r),t._resizePopup(),o.position(),r&&(s.suggest&&u&&t._inputValue()&&t.suggest(n[0]),t._highlightFirst()),t._open&&(t._open=!1,e=t._allowOpening()?"open":"close",t._typingTimeout&&!u&&(e="close"),r&&(t._resetFocusItem(),s.virtual&&t.popup.unbind("activate",t._resetFocusItemHandler).one("activate",t._resetFocusItemHandler)),o[e](),t._typingTimeout=i),t._touchScroller&&t._touchScroller.reset(),t._hideBusy(),t.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,o,s){var n=t.split(o);return n.splice(k(e,t,o),1,i),o&&""!==n[n.length-1]&&n.push(""),n.join(s)}(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),o=i&&!e._typing,s=e._oldText!==t,n=e._clearValueTrigger;e._old=t,e._oldText=t,e.filterInput&&a()===e.filterInput[0]&&e.element.val(e.filterInput.val()),!o&&!s||n||e.element.trigger(_),i&&!n&&e.trigger(_),e.typing=!1,e._toggleCloseVisibility()},_accessor:function(e){var t=this,o=t.filterInput&&a()===t.filterInput[0]?t.filterInput[0]:t.element[0];if(e===i)return e=o.value,o.className.indexOf("k-readonly")>-1&&e===t.options.placeholder?"":e;o.value=null===e?"":e,t._placeholder()},_keydown:function(e){var t=this,i=e.keyCode,o=t.listView,s=t.popup.visible(),n=o.focus();if(t._last=i,i===p.DOWN)s?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===p.ESC)s?(e.preventDefault(),t.close()):t._clearValue();else if(e.altKey&&i===p.UP&&s)e.preventDefault(),t.close();else if(i===p.UP)s&&this._move(n?"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&&s&&e.preventDefault(),s&&n){var r=o.dataItemByIndex(o.getElementIndex(n));if(t.trigger("select",{dataItem:r,item:n}))return;this._select(n)}this._blur()}else if(!t.popup.visible()||i!==p.PAGEDOWN&&i!==p.PAGEUP)t.popup._hovered=!0,t._search();else{e.preventDefault();var a=i===p.PAGEDOWN?1:-1;o.scrollWith(a*o.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(y),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(y),e._hideClear()}),100))},_placeholder:function(e){if(!l){var t,o=this,s=o.element,n=o.options.placeholder;if(n){if(t=s.val(),e===i&&(e=!t),e||(n=t!==n?t:""),t===o._old&&!e)return;s.toggleClass("k-readonly",e).val(n),n||s[0]!==document.activeElement||r(s[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 '+y+'"></span>').insertAfter(this.element)},_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,o=i[0];(e=i.parent()).is("span.k-autocomplete")||(e=i.wrap("<span />").parent()),e.attr("tabindex",-1),e[0].style.cssText=o.style.cssText,i.css({width:"",height:o.style.height}),t._focused=t.element,t.wrapper=e.addClass("k-autocomplete k-input").addClass(o.className).removeClass("input-validation-error")},_clearValue:function(){this._clearValueTrigger=!1,c.fn._clearValue.call(this),this.element.focus()}});u.plugin(x),o.cssProperties.registerPrefix("AutoComplete","k-input-"),o.cssProperties.registerValues("AutoComplete",[{prop:"rounded",values:o.cssProperties.roundedValues.concat([["full","full"]])}])}(window.kendo.jQuery),kendo})); //# sourceMappingURL=kendo.autocomplete.min.js.map