{"version":3,"file":"kendo.autocomplete.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendoautocomplete","js","this","$","kendo","jQuery","addInputPrefixSuffixContainers","widget","wrapper","options","prefixInsertBefore","suffixInsertAfter","prefixContainer","suffixContainer","prefix","prefixOptions","suffix","suffixOptions","hasPrefixContent","template","icon","hasSuffixContent","layoutFlow","containerOrientation","INPUT_SEPARATOR","children","insertBefore","prependTo","html","renderIcon","separator","insertAfter","appendTo","_prefixContainer","_suffixContainer","undefined$1","window","encode","htmlEncode","support","caret","activeElement","_activeElement","placeholderSupported","placeholder","ui","List","keys","DataSource","data","ARIA_DISABLED","ARIA_READONLY","CHANGE","DISABLED","READONLY","FOCUSED","HIDDENCLASS","STATEDISABLED","ns","HOVEREVENTS","indexOfWordAtCaret","caretIdx","text","substring","split","length","AutoComplete","extend","init","element","that","Array","isArray","dataSource","fn","call","attr","_wrapper","_loader","_clearButton","_dataSource","_ignoreCase","type","_popup","addClass","on","_keydown","bind","_keypress","_search","_prev","_accessor","_oldText","_placeholder","ev","filterInput","relatedTarget","_change","close","removeClass","autocomplete","role","_clear","_clearValue","_clearValueMouseDownHandler","_enable","_old","_initList","parents","is","enable","listView","e","preventDefault","_resetFocusItemHandler","_resetFocusItem","_inputValuesContainer","_loading","notify","_toggleCloseVisibility","_applyCssClasses","label","_label","_aria","name","enabled","suggest","groupTemplate","fixedGroupTemplate","dataTextField","minLength","enforceMinLength","delay","height","filter","ignoreCase","highlightFirst","animation","virtual","value","clearButton","autoWidth","popup","size","fillMode","rounded","currentTarget","classList","contains","_clearValueTrigger","_onActionSheetCreate","val","trigger","_onCloseButtonPressed","_refreshHandler","_unbindDataSource","_progressHandler","_showBusy","_errorHandler","_hideBusy","create","setDataSource","events","setOptions","listOptions","_listOptions","_accessors","skipUpdateOnBind","dataValueField","selectedItemChange","_editable","off","readonly","disable","_toggleHover","prop","current","focus","_deactivateItem","destroy","refresh","select","li","_select","search","word","_separator","accentFoldingFiltering","clearTimeout","_typingTimeout","wordAtCaret","_open","_mute","_filterSource","toLocaleLowerCase","toLowerCase","operator","field","one","_unifySeparators","idx","key","_last","words","wordIndex","selectionEnd","BACKSPACE","DELETE","view","inArray","ul","_text","indexOf","lastIndexOf","toString","push","join","_refreshFloatingLabel","_click","item","dataItem","dataItemByIndex","getElementIndex","_active","done","_blur","_clearText","noop","_highlightFirst","index","scrollTo","_listBound","action","flatView","groupsLength","_group","isActive","_renderFooter","_renderNoData","_toggleNoData","_toggleHeader","_resizePopup","position","_inputValue","_allowOpening","unbind","_touchScroller","reset","callback","_muted","_listChange","_selectValue","selectedDataItems","defaultSeparator","splice","replaceWordAtCaret","_defaultSeparator","_preselect","oldText","setValue","unifyType","valueUpdated","_typing","itemSelected","clearValueTrigger","typing","className","keyCode","visible","DOWN","_move","open","ESC","altKey","UP","HOME","END","ENTER","TAB","PAGEDOWN","PAGEUP","_hovered","direction","scrollWith","screenHeight","_busy","setTimeout","_hideClear","show","toggleClass","document","RegExp","candidate","preventShow","_showClear","DOMelement","parent","wrap","style","cssText","css","width","_focused","plugin","cssProperties","registerPrefix","registerValues","values","roundedValues","concat"],"sources":["kendo.autocomplete.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.list.js'), require('kendo.mobile.scroller.js'), require('kendo.virtuallist.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.list', 'kendo.mobile.scroller', 'kendo.virtuallist'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendoautocomplete = global.kendoautocomplete || {}, global.kendoautocomplete.js = factory()));\n})(this, (function () {\n let $ = kendo.jQuery;\n\n function addInputPrefixSuffixContainers({ widget, wrapper, options, prefixInsertBefore, suffixInsertAfter }) {\n var prefix = options.prefixOptions,\n suffix = options.suffixOptions,\n hasPrefixContent = prefix.template || prefix.icon,\n hasSuffixContent = suffix.template || suffix.icon,\n suffixInsertAfter = suffixInsertAfter || prefixInsertBefore,\n layoutFlow = options.layoutFlow,\n containerOrientation = layoutFlow ? (layoutFlow == \"vertical\" ? \"horizontal\" : \"vertical\") : \"horizontal\",\n separatorOrientation = layoutFlow == \"vertical\" ? \"horizontal\" : \"vertical\",\n INPUT_SEPARATOR = ``,\n prefixContainer,\n suffixContainer;\n\n if (prefix && hasPrefixContent) {\n prefixContainer = wrapper.children(\".k-input-prefix\");\n\n if (!prefixContainer[0]) {\n prefixContainer = $(``);\n if (prefixInsertBefore) {\n prefixContainer.insertBefore(prefixInsertBefore);\n } else {\n prefixContainer.prependTo(wrapper);\n }\n }\n\n if (prefix.icon) {\n prefixContainer.html(kendo.html.renderIcon({ icon: prefix.icon }));\n }\n\n if (prefix.template) {\n prefixContainer.html(kendo.template(prefix.template)({}));\n }\n\n if (prefix.separator) {\n $(INPUT_SEPARATOR).insertAfter(prefixContainer);\n }\n }\n\n if (suffix && hasSuffixContent) {\n suffixContainer = wrapper.children(\".k-input-suffix\");\n\n if (!suffixContainer[0]) {\n suffixContainer = $(``).appendTo(wrapper);\n if (suffixInsertAfter) {\n suffixContainer.insertAfter(suffixInsertAfter);\n } else {\n suffixContainer.appendTo(wrapper);\n }\n }\n\n if (suffix.icon) {\n suffixContainer.html(kendo.html.renderIcon({ icon: suffix.icon }));\n }\n\n if (suffix.template) {\n suffixContainer.html(kendo.template(suffix.template)({}));\n }\n\n if (suffix.separator) {\n $(INPUT_SEPARATOR).insertBefore(suffixContainer);\n }\n }\n\n widget._prefixContainer = prefixContainer;\n widget._suffixContainer = suffixContainer;\n }\n\n var __meta__ = {\n id: \"autocomplete\",\n name: \"AutoComplete\",\n category: \"web\",\n description: \"The AutoComplete widget provides suggestions depending on the typed text.It also allows multiple value entries.\",\n depends: [ \"list\" ],\n features: [ {\n id: \"mobile-scroller\",\n name: \"Mobile scroller\",\n description: \"Support for kinetic scrolling in mobile device\",\n depends: [ \"mobile.scroller\" ]\n }, {\n id: \"virtualization\",\n name: \"VirtualList\",\n description: \"Support for virtualization\",\n depends: [ \"virtuallist\" ]\n } ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n encode = kendo.htmlEncode,\n support = kendo.support,\n caret = kendo.caret,\n activeElement = kendo._activeElement,\n placeholderSupported = support.placeholder,\n ui = kendo.ui,\n List = ui.List,\n keys = kendo.keys,\n DataSource = kendo.data.DataSource,\n ARIA_DISABLED = \"aria-disabled\",\n ARIA_READONLY = \"aria-readonly\",\n CHANGE = \"change\",\n DISABLED = \"disabled\",\n READONLY = \"readonly\",\n FOCUSED = \"k-focus\",\n SELECTED = \"k-selected\",\n HIDDENCLASS = \"k-hidden\",\n STATEDISABLED = \"k-disabled\",\n AUTOCOMPLETEVALUE = \"off\",\n HOVER = \"k-hover\",\n ns = \".kendoAutoComplete\",\n HOVEREVENTS = \"mouseenter\" + ns + \" mouseleave\" + ns;\n\n function indexOfWordAtCaret(caretIdx, text, separator) {\n return separator ? text.substring(0, caretIdx).split(separator).length - 1 : 0;\n }\n\n function wordAtCaret(caretIdx, text, separator) {\n return text.split(separator)[indexOfWordAtCaret(caretIdx, text, separator)];\n }\n\n function replaceWordAtCaret(caretIdx, text, word, separator, defaultSeparator) {\n var words = text.split(separator);\n\n words.splice(indexOfWordAtCaret(caretIdx, text, separator), 1, word);\n\n if (separator && words[words.length - 1] !== \"\") {\n words.push(\"\");\n }\n\n return words.join(defaultSeparator);\n }\n\n var AutoComplete = List.extend({\n init: function(element, options) {\n var that = this, wrapper, disabled;\n\n that.ns = ns;\n options = Array.isArray(options) ? { dataSource: options } : options;\n\n List.fn.init.call(that, element, options);\n\n element = that.element;\n options = that.options;\n\n options.placeholder = options.placeholder || element.attr(\"placeholder\");\n if (placeholderSupported) {\n element.attr(\"placeholder\", options.placeholder);\n }\n\n that._wrapper();\n that._loader();\n that._clearButton();\n\n that._dataSource();\n that._ignoreCase();\n\n element[0].type = \"text\";\n wrapper = that.wrapper;\n\n that._popup();\n\n element\n .addClass(\"k-input-inner\")\n .on(\"keydown\" + ns, that._keydown.bind(that))\n .on(\"keypress\" + ns, that._keypress.bind(that))\n .on(\"input\" + ns, that._search.bind(that))\n .on(\"paste\" + ns, that._search.bind(that))\n .on(\"focus\" + ns, function() {\n that._prev = that._accessor();\n that._oldText = that._prev;\n that._placeholder(false);\n wrapper.addClass(FOCUSED);\n })\n .on(\"focusout\" + ns, function(ev) {\n if (that.filterInput && ev.relatedTarget === that.filterInput[0]) {\n return;\n }\n\n that._change();\n that._placeholder();\n that.close();\n wrapper.removeClass(FOCUSED);\n })\n .attr({\n autocomplete: AUTOCOMPLETEVALUE,\n role: \"combobox\",\n \"aria-expanded\": false\n });\n\n that._clear.on(\"click\" + ns + \" touchend\" + ns, that._clearValue.bind(that));\n that._clear.on(\"mousedown\" + ns, that._clearValueMouseDownHandler.bind(that));\n that._enable();\n\n that._old = that._accessor();\n\n that._placeholder();\n\n that._initList();\n\n disabled = $(that.element).parents(\"fieldset\").is(':disabled');\n\n if (disabled) {\n that.enable(false);\n }\n\n that.listView.bind(\"click\", function(e) { e.preventDefault(); });\n\n that._resetFocusItemHandler = that._resetFocusItem.bind(that);\n\n addInputPrefixSuffixContainers({ widget: that, wrapper: that.wrapper, options: that.options, prefixInsertBefore: that._inputValuesContainer, suffixInsertAfter: that._loading });\n\n kendo.notify(that);\n that._toggleCloseVisibility();\n that._applyCssClasses();\n\n if (options.label) {\n that._label();\n }\n\n that._aria();\n },\n\n options: {\n name: \"AutoComplete\",\n enabled: true,\n suggest: false,\n template: \"\",\n groupTemplate: (data) => encode(data),\n fixedGroupTemplate: (data) => encode(data),\n prefixOptions: {\n separator: true\n },\n suffixOptions: {\n separator: true\n },\n dataTextField: \"\",\n minLength: 1,\n enforceMinLength: false,\n delay: 200,\n height: 200,\n filter: \"startswith\",\n ignoreCase: true,\n highlightFirst: false,\n separator: null,\n placeholder: \"\",\n animation: {},\n virtual: false,\n value: null,\n clearButton: true,\n autoWidth: false,\n popup: null,\n size: \"medium\",\n fillMode: \"solid\",\n rounded: \"medium\",\n label: null,\n },\n\n _clearValueMouseDownHandler: function(ev) {\n var that = this;\n\n if (ev && ev.currentTarget && ev.currentTarget.classList.contains('k-clear-value')) {\n that._clearValueTrigger = true;\n } else {\n that._clearValueTrigger = false;\n }\n },\n\n _onActionSheetCreate: function() {\n var that = this;\n\n if (that.filterInput) {\n that.filterInput\n .on(\"keydown\" + ns, that._keydown.bind(that))\n .on(\"keypress\" + ns, that._keypress.bind(that))\n .on(\"input\" + ns, that._search.bind(that))\n .on(\"paste\" + ns, that._search.bind(that))\n .attr({\n autocomplete: AUTOCOMPLETEVALUE,\n role: \"combobox\",\n \"aria-expanded\": false\n });\n\n that.popup.bind(\"activate\", () => {\n that.filterInput.val(that.element.val());\n that.filterInput.trigger(\"focus\");\n });\n\n that.popup.bind(\"deactivate\", () => {\n that.element.trigger(\"focus\");\n });\n }\n },\n\n _onCloseButtonPressed: function() {\n var that = this;\n\n if (that.filterInput && activeElement() === that.filterInput[0]) {\n that.element.val(that.filterInput.val());\n }\n },\n\n _popup: function() {\n List.fn._popup.call(this);\n this.popup.element.addClass(\"k-autocomplete-popup\");\n },\n\n _dataSource: function() {\n var that = this;\n\n if (that.dataSource && that._refreshHandler) {\n that._unbindDataSource();\n } else {\n that._progressHandler = that._showBusy.bind(that);\n that._errorHandler = that._hideBusy.bind(that);\n }\n\n that.dataSource = DataSource.create(that.options.dataSource)\n .bind(\"progress\", that._progressHandler)\n .bind(\"error\", that._errorHandler);\n },\n\n setDataSource: function(dataSource) {\n this.options.dataSource = dataSource;\n this._dataSource();\n\n this.listView.setDataSource(this.dataSource);\n },\n\n events: [\n \"open\",\n \"close\",\n CHANGE,\n \"select\",\n \"filtering\",\n \"dataBinding\",\n \"dataBound\"\n ],\n\n setOptions: function(options) {\n var listOptions = this._listOptions(options);\n\n List.fn.setOptions.call(this, options);\n\n this.listView.setOptions(listOptions);\n this._accessors();\n this._aria();\n this._clearButton();\n },\n\n _listOptions: function(options) {\n var listOptions = List.fn._listOptions.call(this, $.extend(options, {\n skipUpdateOnBind: true\n }));\n\n listOptions.dataValueField = listOptions.dataTextField;\n listOptions.selectedItemChange = null;\n\n return listOptions;\n },\n\n _editable: function(options) {\n var that = this,\n element = that.element,\n wrapper = that.wrapper.off(ns),\n readonly = options.readonly,\n disable = options.disable;\n\n if (!readonly && !disable) {\n wrapper\n .removeClass(STATEDISABLED)\n .on(HOVEREVENTS, that._toggleHover);\n\n element.prop(DISABLED, false)\n .prop(READONLY, false)\n .attr(ARIA_DISABLED, false)\n .attr(ARIA_READONLY, false);\n } else {\n wrapper\n .addClass(disable ? STATEDISABLED : \"\")\n .removeClass(disable ? \"\" : STATEDISABLED);\n\n element.attr(DISABLED, disable)\n .attr(READONLY, readonly)\n .attr(ARIA_DISABLED, disable)\n .attr(ARIA_READONLY, readonly);\n }\n\n that._toggleCloseVisibility();\n },\n\n close: function() {\n var that = this;\n var current = that.listView.focus();\n\n if (current) {\n current.removeClass(SELECTED);\n }\n\n that.popup.close();\n that._deactivateItem();\n },\n\n destroy: function() {\n var that = this;\n\n that.element.off(ns);\n that._clear.off(ns);\n that.wrapper.off(ns);\n\n if (that.filterInput) {\n that.filterInput.off(ns);\n }\n\n List.fn.destroy.call(that);\n },\n\n refresh: function() {\n this.listView.refresh();\n },\n\n select: function(li) {\n this._select(li);\n },\n\n search: function(word) {\n var that = this,\n options = that.options,\n ignoreCase = options.ignoreCase,\n separator = that._separator(),\n length,\n accentFoldingFiltering = that.dataSource.options.accentFoldingFiltering,\n element = that.filterInput && activeElement() === that.filterInput[0] ? that.filterInput : that.element;\n\n word = word || that._accessor();\n\n clearTimeout(that._typingTimeout);\n\n if (separator) {\n word = wordAtCaret(caret(element)[0], word, separator);\n }\n\n length = word.length;\n\n if ((!options.enforceMinLength && !length) || length >= options.minLength) {\n that._open = true;\n\n that._mute(function() {\n this.listView.value([]);\n });\n\n that._filterSource({\n value: ignoreCase ? (accentFoldingFiltering ? word.toLocaleLowerCase(accentFoldingFiltering) : word.toLowerCase()) : word,\n operator: options.filter,\n field: options.dataTextField,\n ignoreCase: ignoreCase\n });\n\n that.one(\"close\", that._unifySeparators.bind(that));\n }\n that._toggleCloseVisibility();\n },\n\n suggest: function(word) {\n var that = this,\n key = that._last,\n value = that._accessor(),\n element = that.element[0],\n caretIdx = caret(element)[0],\n separator = that._separator(),\n words = value.split(separator),\n wordIndex = indexOfWordAtCaret(caretIdx, value, separator),\n selectionEnd = caretIdx,\n idx,\n accentFoldingFiltering = that.dataSource.options.accentFoldingFiltering;\n\n if (key == keys.BACKSPACE || key == keys.DELETE) {\n that._last = undefined$1;\n return;\n }\n\n word = word || \"\";\n\n if (typeof word !== \"string\") {\n if (word[0]) {\n word = that.dataSource.view()[List.inArray(word[0], that.ul[0])];\n }\n\n word = word ? that._text(word) : \"\";\n }\n\n if (caretIdx <= 0) {\n caretIdx = (accentFoldingFiltering ? value.toLocaleLowerCase(accentFoldingFiltering) : value.toLowerCase()).indexOf(accentFoldingFiltering ? word.toLocaleLowerCase(accentFoldingFiltering) : word.toLowerCase()) + 1;\n }\n\n idx = value.substring(0, caretIdx).lastIndexOf(separator);\n idx = idx > -1 ? caretIdx - (idx + separator.length) : caretIdx;\n value = words[wordIndex].substring(0, idx);\n\n if (word) {\n word = word.toString();\n idx = (accentFoldingFiltering ? word.toLocaleLowerCase(accentFoldingFiltering) : word.toLowerCase()).indexOf(accentFoldingFiltering ? value.toLocaleLowerCase(accentFoldingFiltering) : value.toLowerCase());\n if (idx > -1) {\n word = word.substring(idx + value.length);\n\n selectionEnd = caretIdx + word.length;\n\n value += word;\n }\n\n if (separator && words[words.length - 1] !== \"\") {\n words.push(\"\");\n }\n\n }\n\n words[wordIndex] = value;\n\n that._accessor(words.join(separator || \"\"));\n\n if (element === activeElement()) {\n caret(element, caretIdx, selectionEnd);\n }\n },\n\n value: function(value) {\n if (value !== undefined$1) {\n this.listView.value(value);\n\n this._accessor(value);\n this._old = this._accessor();\n this._oldText = this._accessor();\n } else {\n return this._accessor();\n }\n this._toggleCloseVisibility();\n this._refreshFloatingLabel();\n },\n\n _click: function(e) {\n var item = e.item;\n var that = this;\n var element = that.element;\n var dataItem = that.listView.dataItemByIndex(that.listView.getElementIndex(item));\n\n e.preventDefault();\n\n that._active = true;\n\n if (that.trigger(\"select\", { dataItem: dataItem, item: item })) {\n that.close();\n return;\n }\n that._oldText = element.val();\n that._select(item).done(function() {\n that._blur();\n\n caret(element, element.val().length);\n });\n },\n\n _clearText: $.noop,\n\n _highlightFirst: function() {\n var index = this.options.highlightFirst ? 0 : -1;\n\n this.listView.focus(index);\n },\n\n _resetFocusItem: function() {\n if (this.options.virtual) {\n this.listView.scrollTo(0);\n }\n\n this._highlightFirst();\n },\n\n _listBound: function() {\n var that = this;\n var popup = that.popup;\n var options = that.options;\n var data = that.dataSource.flatView();\n var length = data.length;\n var groupsLength = that.dataSource._group ? that.dataSource._group.length : 0;\n var isActive = that.element[0] === activeElement() || that.filterInput && that.filterInput[0] === activeElement();\n var action;\n\n that._renderFooter();\n that._renderNoData();\n that._toggleNoData(!length);\n that._toggleHeader(!!groupsLength && !!length);\n\n that._resizePopup();\n\n popup.position();\n\n if (length) {\n if (options.suggest && isActive && that._inputValue()) {\n that.suggest(data[0]);\n }\n\n that._highlightFirst();\n }\n\n if (that._open) {\n that._open = false;\n action = that._allowOpening() ? \"open\" : \"close\";\n\n if (that._typingTimeout && !isActive) {\n action = \"close\";\n }\n\n if (length) {\n that._resetFocusItem();\n\n if (options.virtual) {\n that.popup\n .unbind(\"activate\", that._resetFocusItemHandler)\n .one(\"activate\", that._resetFocusItemHandler);\n }\n }\n\n popup[action]();\n that._typingTimeout = undefined$1;\n }\n\n if (that._touchScroller) {\n that._touchScroller.reset();\n }\n\n that._hideBusy();\n\n that.trigger(\"dataBound\");\n },\n\n _mute: function(callback) {\n this._muted = true;\n callback.call(this);\n this._muted = false;\n },\n\n _listChange: function() {\n var isActive = this._active || this.element[0] === activeElement();\n\n if (isActive && !this._muted) {\n this._selectValue(this.listView.selectedDataItems()[0]);\n }\n },\n\n _selectValue: function(dataItem) {\n var separator = this._separator();\n var text = \"\";\n\n if (dataItem) {\n text = this._text(dataItem);\n }\n\n if (text === null) {\n text = \"\";\n }\n\n if (separator) {\n text = replaceWordAtCaret(caret(this.element)[0], this._accessor(), text, separator, this._defaultSeparator());\n }\n\n this._prev = text;\n this._accessor(text);\n this._placeholder();\n },\n\n _unifySeparators: function() {\n this._accessor(this.value().split(this._separator()).join(this._defaultSeparator()));\n return this;\n },\n\n _preselect: function(value, text) {\n this._inputValue(text);\n this._accessor(value);\n\n this._old = this.oldText = this._accessor();\n\n this.listView.setValue(value);\n this._placeholder();\n },\n\n _change: function() {\n var that = this;\n var value = that._unifySeparators().value();\n var trigger = value !== List.unifyType(that._old, typeof value);\n\n var valueUpdated = trigger && !that._typing;\n var itemSelected = that._oldText !== value;\n var clearValueTrigger = that._clearValueTrigger;\n\n that._old = value;\n that._oldText = value;\n\n if (that.filterInput && activeElement() === that.filterInput[0]) {\n that.element.val(that.filterInput.val());\n }\n\n if ((valueUpdated || itemSelected) && !clearValueTrigger) {\n // trigger the DOM change event so any subscriber gets notified\n that.element.trigger(CHANGE);\n }\n\n if (trigger && !clearValueTrigger) {\n that.trigger(CHANGE);\n }\n\n that.typing = false;\n that._toggleCloseVisibility();\n },\n\n _accessor: function(value) {\n var that = this,\n element = that.filterInput && activeElement() === that.filterInput[0] ? that.filterInput[0] : that.element[0];\n\n if (value !== undefined$1) {\n element.value = value === null ? \"\" : value;\n that._placeholder();\n } else {\n value = element.value;\n\n if (element.className.indexOf(\"k-readonly\") > -1) {\n if (value === that.options.placeholder) {\n return \"\";\n } else {\n return value;\n }\n }\n\n return value;\n }\n },\n\n _keydown: function(e) {\n var that = this;\n var key = e.keyCode;\n var listView = that.listView;\n var visible = that.popup.visible();\n var current = listView.focus();\n\n that._last = key;\n\n if (key === keys.DOWN) {\n if (visible) {\n this._move(current ? \"focusNext\" : \"focusFirst\");\n } else if (that.value()) {\n that._filterSource({\n value: that.ignoreCase ? that.value().toLowerCase() : that.value(),\n operator: that.options.filter,\n field: that.options.dataTextField,\n ignoreCase: that.ignoreCase\n }).done(function() {\n if (that._allowOpening()) {\n that._resetFocusItem();\n that.popup.open();\n }\n });\n }\n e.preventDefault();\n } else if (key === keys.ESC ) {\n if (visible) {\n e.preventDefault();\n that.close();\n } else {\n that._clearValue();\n }\n } else if (e.altKey && key === keys.UP && visible) {\n e.preventDefault();\n that.close();\n } else if (key === keys.UP) {\n if (visible) {\n this._move(current ? \"focusPrev\" : \"focusLast\");\n }\n e.preventDefault();\n } else if (key === keys.HOME) {\n this._move(\"focusFirst\");\n } else if (key === keys.END) {\n this._move(\"focusLast\");\n } else if (key === keys.ENTER || key === keys.TAB) {\n\n if (key === keys.ENTER && visible) {\n e.preventDefault();\n }\n\n if (visible && current) {\n var dataItem = listView.dataItemByIndex(listView.getElementIndex(current));\n if (that.trigger(\"select\", { dataItem: dataItem, item: current })) {\n return;\n }\n\n this._select(current);\n }\n\n this._blur();\n } else if (that.popup.visible() && (key === keys.PAGEDOWN || key === keys.PAGEUP)) {\n e.preventDefault();\n\n var direction = key === keys.PAGEDOWN ? 1 : -1;\n listView.scrollWith(direction * listView.screenHeight());\n } else {\n // In some cases when the popup is opened resize is triggered which will cause it to close\n // Setting the below flag will prevent this from happening\n that.popup._hovered = true;\n that._search();\n }\n },\n\n _keypress: function() {\n this._oldText = this.element.val();\n this._typing = true;\n },\n\n _move: function(action) {\n this.listView[action]();\n\n if (this.options.suggest) {\n this.suggest(this.listView.focus());\n }\n },\n\n _hideBusy: function() {\n var that = this;\n clearTimeout(that._busy);\n that._loading.addClass(HIDDENCLASS);\n that.element.attr(\"aria-busy\", false);\n that._busy = null;\n that._toggleCloseVisibility();\n },\n\n _showBusy: function() {\n var that = this;\n\n if (that._busy) {\n return;\n }\n\n that._busy = setTimeout(function() {\n that.element.attr(\"aria-busy\", true);\n that._loading.removeClass(HIDDENCLASS);\n that._hideClear();\n }, 100);\n },\n\n _placeholder: function(show) {\n if (placeholderSupported) {\n return;\n }\n\n var that = this,\n element = that.element,\n placeholder = that.options.placeholder,\n value;\n\n if (placeholder) {\n value = element.val();\n\n if (show === undefined$1) {\n show = !value;\n }\n\n if (!show) {\n if (value !== placeholder) {\n placeholder = value;\n } else {\n placeholder = \"\";\n }\n }\n\n if (value === that._old && !show) {\n return;\n }\n\n element.toggleClass(\"k-readonly\", show)\n .val(placeholder);\n\n if (!placeholder && element[0] === document.activeElement) {\n caret(element[0], 0, 0);\n }\n }\n },\n\n _separator: function() {\n var separator = this.options.separator;\n if (separator instanceof Array) {\n return new RegExp(separator.join(\"|\"), 'gi');\n }\n return separator;\n },\n\n _defaultSeparator: function() {\n var separator = this.options.separator;\n if (separator instanceof Array) {\n return separator[0];\n }\n return separator;\n },\n\n _inputValue: function() {\n return this.element.val();\n },\n\n _search: function() {\n var that = this;\n clearTimeout(that._typingTimeout);\n\n that._typingTimeout = setTimeout(function() {\n if (that._prev !== that._accessor()) {\n that._prev = that._accessor();\n that.search();\n }\n }, that.options.delay);\n },\n\n _select: function(candidate) {\n var that = this;\n that._active = true;\n\n return that.listView.select(candidate).done(function() {\n that._active = false;\n });\n },\n\n _loader: function() {\n this._loading = $('').insertAfter(this.element);\n },\n\n _clearButton: function() {\n List.fn._clearButton.call(this);\n\n if (this.options.clearButton) {\n this._clear.insertAfter(this.element);\n }\n },\n\n _toggleHover: function(e) {\n $(e.currentTarget).toggleClass(HOVER, e.type === \"mouseenter\");\n },\n\n _toggleCloseVisibility: function() {\n var preventShow = this.element.is(\":disabled\") || this.element.is(\"[readonly]\");\n\n if (this.value() && !preventShow) {\n this._showClear();\n } else {\n this._hideClear();\n }\n },\n\n _wrapper: function() {\n var that = this,\n element = that.element,\n DOMelement = element[0],\n wrapper;\n\n wrapper = element.parent();\n\n if (!wrapper.is(\"span.k-autocomplete\")) {\n wrapper = element.wrap(\"\").parent();\n }\n\n wrapper.attr(\"tabindex\", -1);\n\n wrapper[0].style.cssText = DOMelement.style.cssText;\n element.css({\n width: \"\",\n height: DOMelement.style.height\n });\n\n that._focused = that.element;\n that.wrapper = wrapper\n .addClass(\"k-autocomplete k-input\")\n .addClass(DOMelement.className)\n .removeClass('input-validation-error');\n },\n\n _clearValue: function() {\n this._clearValueTrigger = false;\n List.fn._clearValue.call(this);\n this.element.focus();\n }\n });\n\n ui.plugin(AutoComplete);\n\n kendo.cssProperties.registerPrefix(\"AutoComplete\", \"k-input-\");\n\n kendo.cssProperties.registerValues(\"AutoComplete\", [{\n prop: \"rounded\",\n values: kendo.cssProperties.roundedValues.concat([['full', 'full']])\n }]);\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}