{"version":3,"file":"kendo.combobox.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendocombobox","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","ui","List","Select","caret","support","placeholderSupported","placeholder","activeElement","_activeElement","keys","ns","nsFocusEvent","CLICK","MOUSEDOWN","DISABLED","READONLY","CHANGE","FOCUSED","STATEDISABLED","ARIA_DISABLED","ARIA_READONLY","STATE_FILTER","STATE_ACCEPT","STATE_REBIND","HOVEREVENTS","newLineRegEx","NON_PRINTABLE_KEYS","ComboBox","extend","init","element","text","that","Array","isArray","dataSource","fn","call","on","_focusHandler","bind","attr","_reset","_wrapper","_input","_clearButton","_tabindex","input","_popup","_dataSource","_ignoreCase","_enable","_attachFocusEvents","_oldIndex","selectedIndex","_initialIndex","index","requireValueMapper","_initList","_cascade","autoBind","_filterSource","_isSelect","_setText","_placeholder","parents","is","enable","_clear","parent","length","notify","_toggleCloseVisibility","_applyCssClasses","label","_label","_aria","name","enabled","value","delay","dataTextField","dataValueField","minLength","enforceMinLength","height","highlightFirst","filter","suggest","cascadeFrom","cascadeFromField","cascadeFromParentField","cascadeOnCustomValue","ignoreCase","animation","virtual","groupTemplate","data","fixedGroupTemplate","clearButton","syncValueAndText","autoWidth","popup","size","fillMode","rounded","clearOnEscape","_removeDataItems","_shouldPreventDefaultReset","events","setOptions","listOptions","_listOptions","listView","_accessors","destroy","off","clearTimeout","_pasteTimeout","filterInput","_arrow","addClass","_onActionSheetCreate","_keydown","_search","_inputPaste","role","val","trigger","_onCloseButtonPressed","textField","focus","_syncValueAndText","dataItem","_accessor","_blur","_oldText","_isValueChanged","unifyType","_old","_change","hasText","isCustom","_typing","_inputFocus","_inputFocusout","e","target","_arrowClick","_toggle","isClearButton","relatedTarget","closest","_userTriggered","removeClass","_typingTimeout","item","_focus","dataItemByIndex","getElementIndex","select","_valueBeforeCascade","setTimeout","search","_editable","disable","readonly","add","arrow","clear","_toggleHover","prop","preventDefault","_clearValue","open","state","_state","isFiltered","filters","reinitialized","ul","find","visible","bound","_open","refresh","_openPopup","_allowOpening","_hovered","_focusItem","_scrollToFocusedItem","scrollToIndex","one","_updateSelectionState","_buildOptions","custom","_customOption","_options","selected","_emptySearch","_custom","_updateSelection","initialIndex","hasInitialIndex","_fetch","selectedDataItems","_value","_text","_selectValue","_updateItemFocus","focusIndex","_listBound","isActive","flatView","skip","groupsLength","_group","isFirstPage","_presetValue","_renderFooter","_renderNoData","_toggleNoData","_toggleHeader","_resizePopup","position","close","toggle","_hideBusy","_listChange","_get","candidate","found","idx","total","_select","keepState","done","_dataValue","_setDomInputValue","_triggerCascade","caretStart","currentCaret","_prev","mobile","mobileOS","wp","android","setSelectionRange","preventShow","_showClear","_hideClear","word","caretIdx","key","_last","accentFoldingFiltering","BACKSPACE","DELETE","view","inArray","toLocaleLowerCase","toLowerCase","indexOf","toString","substring","loweredText","replace","_cascadeTriggered","_refreshFloatingLabel","_isFilterEnabled","_clearFilter","_fetchData","_selectedDataItems","_busy","_arrowIcon","show","_focused","_click","shouldTrigger","_inputValue","_searchByWord","firstChild","current","focusFirst","fetch","maxLength","arrowBtn","accessKey","SELECTOR","renderButton","shape","append","style","cssText","title","parseInt","className","css","width","tabIndex","keyCode","isFkey","isNonPrintableKey","HOME","_firstItem","END","_lastItem","ENTER","TAB","_move","ctrlKey","ESC","toggleClass","hide","wrap","_clearSelection","hasValue","_preselect","setValue","_clearText","plugin","cssProperties","registerPrefix","registerValues","values","roundedValues","concat"],"sources":["kendo.combobox.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'), require('kendo.html.button.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.list', 'kendo.mobile.scroller', 'kendo.virtuallist', 'kendo.html.button'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendocombobox = global.kendocombobox || {}, global.kendocombobox.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: \"combobox\",\n name: \"ComboBox\",\n category: \"web\",\n description: \"The ComboBox widget allows the selection from pre-defined values or entering a new value.\",\n depends: [ \"list\", \"html.button\" ],\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 ui = kendo.ui,\n html = kendo.html,\n List = ui.List,\n Select = ui.Select,\n caret = kendo.caret,\n support = kendo.support,\n placeholderSupported = support.placeholder,\n activeElement = kendo._activeElement,\n keys = kendo.keys,\n ns = \".kendoComboBox\",\n nsFocusEvent = ns + \"FocusEvent\",\n CLICK = \"click\" + ns,\n MOUSEDOWN = \"mousedown\" + ns,\n DISABLED = \"disabled\",\n READONLY = \"readonly\",\n CHANGE = \"change\",\n LOADING = \"k-i-loading k-input-loading-icon\",\n FOCUSED = \"k-focus\",\n STATEDISABLED = \"k-disabled\",\n ARIA_DISABLED = \"aria-disabled\",\n ARIA_READONLY = \"aria-readonly\",\n AUTOCOMPLETEVALUE = \"off\",\n STATE_FILTER = \"filter\",\n STATE_ACCEPT = \"accept\",\n STATE_REBIND = \"rebind\",\n HOVEREVENTS = \"mouseenter\" + ns + \" mouseleave\" + ns,\n newLineRegEx = /(\\r\\n|\\n|\\r)/gm,\n NON_PRINTABLE_KEYS = [16,17,18,19,20,33,34,37,39,45,91,92,144,145];\n\n var ComboBox = Select.extend({\n init: function(element, options) {\n var that = this, text, disabled;\n\n that.ns = ns;\n\n options = Array.isArray(options) ? { dataSource: options } : options;\n\n Select.fn.init.call(that, element, options);\n\n options = that.options;\n element = that.element.on(\"focus\" + ns, that._focusHandler.bind(that));\n\n options.placeholder = options.placeholder || element.attr(\"placeholder\");\n\n that._reset();\n\n that._wrapper();\n\n that._input();\n\n that._clearButton();\n\n that._tabindex(that.input);\n\n that._popup();\n\n that._dataSource();\n that._ignoreCase();\n\n that._enable();\n\n that._attachFocusEvents();\n\n that._oldIndex = that.selectedIndex = -1;\n\n that._initialIndex = options.index;\n\n that.requireValueMapper(that.options);\n that._initList();\n\n that._cascade();\n\n if (options.autoBind) {\n that._filterSource();\n } else {\n text = options.text;\n\n if (!text && that._isSelect) {\n text = element.children(\":selected\").text();\n }\n\n if (text) {\n that._setText(text);\n }\n }\n\n if (!text) {\n that._placeholder();\n }\n\n disabled = $(that.element).parents(\"fieldset\").is(':disabled');\n\n if (disabled) {\n that.enable(false);\n }\n\n addInputPrefixSuffixContainers({ widget: that, wrapper: that.wrapper, options: that.options,\n prefixInsertBefore: that.input,\n suffixInsertAfter: that._clear.parent().length ? that._clear : that.input });\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: \"ComboBox\",\n enabled: true,\n index: -1,\n text: null,\n value: null,\n autoBind: true,\n delay: 200,\n dataTextField: \"\",\n dataValueField: \"\",\n minLength: 1,\n enforceMinLength: false,\n height: 200,\n highlightFirst: true,\n filter: \"none\",\n placeholder: \"\",\n suggest: false,\n cascadeFrom: \"\",\n cascadeFromField: \"\",\n cascadeFromParentField: \"\",\n cascadeOnCustomValue: false,\n ignoreCase: true,\n animation: {},\n virtual: false,\n template: null,\n groupTemplate: (data) => encode(data),\n fixedGroupTemplate: (data) => encode(data),\n prefixOptions: {\n separator: true\n },\n suffixOptions: {\n separator: true\n },\n clearButton: true,\n syncValueAndText: true,\n autoWidth: false,\n popup: null,\n size: \"medium\",\n fillMode: \"solid\",\n rounded: \"medium\",\n label: null,\n clearOnEscape: true,\n _removeDataItems: true,\n _shouldPreventDefaultReset: true\n },\n\n events: [\n \"open\",\n \"close\",\n CHANGE,\n \"select\",\n \"filtering\",\n \"dataBinding\",\n \"dataBound\",\n \"cascade\",\n \"set\"\n ],\n\n setOptions: function(options) {\n var listOptions = this._listOptions(options);\n\n Select.fn.setOptions.call(this, options);\n\n this.listView.setOptions(listOptions);\n\n this._accessors();\n this._aria();\n this._clearButton();\n },\n\n destroy: function() {\n var that = this;\n\n that.input.off(ns);\n that.input.off(nsFocusEvent);\n that.element.off(ns);\n that.wrapper.off(ns);\n clearTimeout(that._pasteTimeout);\n\n if (that.filterInput) {\n that.filterInput.off(ns);\n }\n\n that._arrow.off(CLICK + \" \" + MOUSEDOWN);\n that._clear.off(CLICK + \" \" + MOUSEDOWN);\n\n Select.fn.destroy.call(that);\n },\n\n _popup: function() {\n Select.fn._popup.call(this);\n this.popup.element.addClass(\"k-combobox-popup\");\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(\"input\" + ns, that._search.bind(that))\n .on(\"paste\" + ns, that._inputPaste.bind(that))\n .attr({\n \"role\": \"combobox\",\n \"aria-expanded\": false\n });\n\n that.popup.bind(\"activate\", () => {\n that.filterInput.val(that.input.val());\n that.filterInput.trigger(\"focus\");\n });\n\n that.popup.bind(\"deactivate\", () => {\n that.input.trigger(\"focus\");\n });\n }\n },\n\n _onCloseButtonPressed: function() {\n var that = this;\n var textField = that.options.dataTextField || \"text\";\n var current = that.listView.focus();\n\n if (!current) {\n if (that._syncValueAndText() || that._isSelect) {\n if (!that.dataItem() || that.dataItem()[textField] !== that.input.val()) {\n var input = that.filterInput && activeElement() === that.filterInput[0] ? that.filterInput : that.input;\n that._accessor(input.val());\n }\n }\n\n if (that.options.highlightFirst) {\n that.listView.value(that.input.val());\n that._blur();\n } else {\n that._oldText = that.text();\n }\n }\n },\n\n _isValueChanged: function(value) {\n return value !== List.unifyType(this._old, typeof value) &&\n value !== List.unifyType(this._oldText, typeof value);\n },\n\n _change: function() {\n var that = this;\n var text = that.text();\n var hasText = text && text !== that._oldText && text !== that.options.placeholder;\n var index = that.selectedIndex;\n var isCustom = index === -1;\n\n if (that.filterInput && activeElement() === that.filterInput[0] && isCustom && hasText) {\n that.input.val(that.filterInput.val());\n }\n\n if (!that.options.syncValueAndText && !that.value() && isCustom && hasText) {\n that._old = \"\";\n that._oldIndex = index;\n that._oldText = text;\n\n if (!that._typing) {\n // trigger the DOM change event so any subscriber gets notified\n that.element.trigger(CHANGE);\n }\n\n that.trigger(CHANGE);\n that._typing = false;\n return;\n }\n\n Select.fn._change.call(that);\n\n that._oldText = that.text && that.text();\n\n that._toggleCloseVisibility();\n },\n\n _attachFocusEvents: function() {\n var that = this;\n that.input.on(\"focus\" + nsFocusEvent, that._inputFocus.bind(that))\n .on(\"focusout\" + nsFocusEvent, that._inputFocusout.bind(that));\n },\n\n _focusHandler: function(e) {\n if (e.target === this.element[0]) {\n this.input.trigger(\"focus\");\n }\n },\n\n _arrowClick: function() {\n this._toggle();\n },\n\n _inputFocus: function() {\n this.wrapper.addClass(FOCUSED);\n this._placeholder(false);\n },\n\n _inputFocusout: function(e) {\n var that = this;\n var value = that.value();\n var isClearButton = !$(e.relatedTarget).closest('.k-clear-value').length;\n\n if (that.filterInput && e.relatedTarget === that.filterInput[0]) {\n return;\n }\n\n that._userTriggered = true;\n that.wrapper.removeClass(FOCUSED);\n clearTimeout(that._typingTimeout);\n that._typingTimeout = null;\n\n if (isClearButton) {\n that.text(that.text());\n }\n\n var item = that._focus();\n var dataItem = this.listView.dataItemByIndex(this.listView.getElementIndex(item));\n var selectedIndex = that.select();\n\n if (value !== that.value() && selectedIndex !== -1 && that.trigger(\"select\", { dataItem: dataItem, item: item })) {\n that.value(value);\n return;\n }\n\n that._placeholder();\n that._valueBeforeCascade = that._old;\n\n if (isClearButton) {\n that._blur();\n\n that.element.trigger(\"blur\");\n }\n },\n\n _inputPaste: function() {\n var that = this;\n clearTimeout(that._pasteTimeout);\n that._pasteTimeout = null;\n\n that._pasteTimeout = setTimeout(function() {\n that.search();\n });\n },\n\n _editable: function(options) {\n var that = this,\n disable = options.disable,\n readonly = options.readonly,\n wrapper = that.wrapper.off(ns),\n input = that.element.add(that.input.off(ns)),\n arrow = that._arrow.off(CLICK + \" \" + MOUSEDOWN),\n clear = that._clear;\n\n if (!readonly && !disable) {\n wrapper\n .removeClass(STATEDISABLED)\n .on(HOVEREVENTS, that._toggleHover);\n\n input.prop(DISABLED, false)\n .prop(READONLY, false)\n .attr(ARIA_DISABLED, false)\n .attr(ARIA_READONLY, false);\n\n arrow.on(CLICK, that._arrowClick.bind(that))\n .on(MOUSEDOWN, function(e) { e.preventDefault(); });\n\n clear.on(CLICK + \" touchend\" + ns, that._clearValue.bind(that));\n\n that.input\n .on(\"keydown\" + ns, that._keydown.bind(that))\n .on(\"input\" + ns, that._search.bind(that))\n .on(\"paste\" + ns, that._inputPaste.bind(that));\n\n that.wrapper.on(CLICK + ns, that._focusHandler.bind(that));\n } else {\n wrapper\n .addClass(disable ? STATEDISABLED : \"\")\n .removeClass(disable ? \"\" : STATEDISABLED);\n\n input.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 open: function() {\n var that = this;\n var state = that._state;\n var isFiltered = that.dataSource.filter() ? that.dataSource.filter().filters.length > 0 : false;\n var reinitialized = !that.ul.find(that.listView.focus()).length;\n\n if (that.popup.visible()) {\n return;\n }\n\n if ((!that.listView.bound() && state !== STATE_FILTER) || state === STATE_ACCEPT) {\n that._open = true;\n that._state = STATE_REBIND;\n\n if ((that.options.minLength !== 1 && !isFiltered) || (isFiltered && that.value() && that.selectedIndex === -1 )) {\n that.refresh();\n that._openPopup();\n if (!this.options.virtual) {\n that.listView.bound(false);\n }\n } else {\n that._filterSource();\n }\n } else if (that._allowOpening()) {\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._openPopup();\n if (that.options.virtual) {\n that._focusItem();\n } else if (reinitialized && that.options.highlightFirst) {\n that.listView.focus(0);\n }\n }\n },\n\n _scrollToFocusedItem: function() {\n var listView = this.listView;\n\n listView.scrollToIndex(listView.getElementIndex(listView.focus()));\n },\n\n _openPopup: function() {\n this.popup.one(\"activate\", this._scrollToFocusedItem.bind(this));\n this.popup.open();\n },\n\n _updateSelectionState: function() {\n var that = this;\n var text = that.options.text;\n var value = that.options.value;\n\n if (that.listView.isFiltered()) {\n return;\n }\n\n if (that.selectedIndex === -1) {\n if (text === undefined$1 || text === null) {\n text = value;\n }\n\n that._accessor(value);\n that.input.val(text || that.input.val());\n that._placeholder();\n } else if (that._oldIndex === -1) {\n that._oldIndex = that.selectedIndex;\n }\n },\n\n _buildOptions: function(data) {\n var that = this;\n if (!that._isSelect) {\n return;\n }\n\n var custom = that._customOption;\n\n if (that._state === STATE_REBIND) {\n that._state = \"\";\n }\n\n that._customOption = undefined$1;\n that._options(data, \"\", that.value());\n\n if (custom && custom[0].selected && !that.listView._emptySearch) {\n that._custom(custom.val());\n }\n },\n\n _updateSelection: function() {\n var that = this;\n var listView = that.listView;\n var initialIndex = that._initialIndex;\n var hasInitialIndex = initialIndex !== null && initialIndex > -1;\n var filtered = that._state === STATE_FILTER;\n\n if (filtered) {\n $(listView.focus()).removeClass(\"k-selected\");\n return;\n }\n\n if (that._fetch) {\n return;\n }\n\n if (!listView.value().length) {\n if (hasInitialIndex) {\n that.select(initialIndex);\n } else if (that._accessor()) {\n listView.value(that._accessor());\n }\n }\n\n that._initialIndex = null;\n var dataItem = listView.selectedDataItems()[0];\n\n if (!dataItem) {\n return;\n }\n\n if (that._value(dataItem) !== that.value()) {\n that._custom(that._value(dataItem));\n } else if (that._value(dataItem) !== that.element[0].value) {\n that._accessor(that._value(dataItem));\n }\n\n if (that.text() && that.text() !== that._text(dataItem)) {\n that._selectValue(dataItem);\n }\n },\n\n _updateItemFocus: function() {\n var listView = this.listView;\n\n if (!this.options.highlightFirst) {\n listView.focus(-1);\n } else if (!listView.focus() && !listView.focusIndex()) {\n listView.focus(0);\n }\n },\n\n _listBound: function() {\n var that = this;\n var isActive = that.input[0] === activeElement() || that.filterInput && that.filterInput[0] === activeElement();\n\n var data = that.dataSource.flatView();\n var skip = that.listView.skip();\n var length = data.length;\n var groupsLength = that.dataSource._group ? that.dataSource._group.length : 0;\n var isFirstPage = skip === undefined$1 || skip === 0;\n\n that._presetValue = false;\n\n that._renderFooter();\n that._renderNoData();\n that._toggleNoData(!length);\n that._toggleHeader(!!groupsLength && !!length);\n\n that._resizePopup();\n\n that.popup.position();\n\n that._buildOptions(data);\n\n that._updateSelection();\n\n if (data.length && isFirstPage) {\n that._updateItemFocus();\n\n if (that.options.suggest && isActive && that.input.val()) {\n that.suggest(data[0]);\n }\n }\n\n if (that._open) {\n that._open = false;\n\n if (that._typingTimeout && !isActive) {\n that.popup.close();\n } else {\n that.toggle(that._allowOpening());\n }\n\n that._typingTimeout = null;\n }\n\n that._hideBusy();\n that.trigger(\"dataBound\");\n },\n\n _listChange: function() {\n this._selectValue(this.listView.selectedDataItems()[0]);\n\n if (this._presetValue) {\n this._oldIndex = this.selectedIndex;\n }\n },\n\n _get: function(candidate) {\n var data, found, idx;\n\n if (typeof candidate === \"function\") {\n data = this.dataSource.flatView();\n\n for (idx = 0; idx < data.length; idx++) {\n if (candidate(data[idx])) {\n candidate = idx;\n found = true;\n break;\n }\n }\n\n if (!found) {\n candidate = -1;\n }\n }\n\n if (!this.dataSource.total() && !candidate) {\n candidate = -1;\n }\n\n return candidate;\n },\n\n _select: function(candidate, keepState) {\n var that = this;\n\n candidate = that._get(candidate);\n\n if (candidate === -1) {\n that.input[0].value = \"\";\n that._accessor(\"\");\n }\n\n return that.listView.select(candidate).done(function() {\n if (!keepState && that._state === STATE_FILTER) {\n that._state = STATE_ACCEPT;\n }\n that._toggleCloseVisibility();\n });\n },\n\n _selectValue: function(dataItem) {\n var idx = this.listView.select();\n var value = \"\";\n var text = \"\";\n\n idx = idx[idx.length - 1];\n if (idx === undefined$1) {\n idx = -1;\n }\n\n this.selectedIndex = idx;\n\n if (this.listView.isFiltered() && idx !== -1) {\n this._valueBeforeCascade = this._old;\n }\n\n if (idx === -1 && !dataItem) {\n if (this.options.syncValueAndText) {\n if (this.options.dataTextField === this.options.dataValueField) {\n text = this._accessor();\n } else {\n text = this.input[0].value;\n }\n value = text;\n }\n else {\n text = this.text();\n }\n this.listView.focus(-1);\n } else {\n if (dataItem || dataItem === 0) {\n value = this._dataValue(dataItem);\n text = this._text(dataItem);\n }\n\n if (value === null) {\n value = \"\";\n }\n }\n\n this._setDomInputValue(text);\n this._accessor(value !== undefined$1 ? value : text, idx);\n\n this._placeholder();\n this._triggerCascade();\n },\n\n _setDomInputValue: function(text) {\n var that = this;\n var currentCaret = caret(this.input);\n var caretStart;\n\n if (currentCaret && currentCaret.length) {\n caretStart = currentCaret[0];\n }\n\n this._prev = this.input[0].value = text;\n\n if (caretStart && this.selectedIndex === -1) {\n var mobile = support.mobileOS;\n if (mobile.wp || mobile.android) {// without the timeout the caret is at the end of the input\n setTimeout(function() { that.input[0].setSelectionRange(caretStart, caretStart); }, 0);\n }\n else {\n this.input[0].setSelectionRange(caretStart, caretStart);\n }\n }\n },\n\n refresh: function() {\n this.listView.refresh();\n },\n\n _toggleCloseVisibility: function() {\n var preventShow = this.element.is(\":disabled\") || this.element.is(\"[readonly]\");\n\n if (this.text() && !preventShow) {\n this._showClear();\n } else {\n this._hideClear();\n }\n },\n\n suggest: function(word) {\n var that = this;\n var element = that.input[0];\n var value = that.text();\n var caretIdx = caret(element)[0];\n var key = that._last;\n var idx;\n var 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 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 value += word.substring(idx + value.length);\n }\n } else {\n value = value.substring(0, caretIdx);\n }\n\n if (value.length !== caretIdx || !word) {\n element.value = value;\n if (element === activeElement()) {\n caret(element, caretIdx, value.length);\n }\n }\n },\n\n text: function(text) {\n text = text === null ? \"\" : text;\n\n var that = this;\n var input = that.filterInput && that.filterInput[0] === activeElement() ? that.filterInput[0] : that.input[0];\n var ignoreCase = that.options.ignoreCase;\n var loweredText = text;\n var dataItem;\n var value;\n\n if (text === undefined$1) {\n return input.value;\n }\n\n if (that.options.autoBind === false && !that.listView.bound()) {\n that._setText(text);\n return;\n }\n\n dataItem = that.dataItem();\n\n if (dataItem && that._text(dataItem).replace && that._text(dataItem).replace(newLineRegEx,\"\") === text) {\n value = that._value(dataItem);\n\n if (value === List.unifyType(that._old, typeof value)) {\n that._triggerCascade();\n return;\n }\n }\n\n if (ignoreCase) {\n loweredText = loweredText.toLowerCase();\n }\n\n if (that.dataItem() && that._text(that.dataItem()) === text) {\n return;\n }\n\n that._select(function(data) {\n data = that._text(data);\n if (ignoreCase) {\n data = (data + \"\").toLowerCase();\n }\n\n return data === loweredText;\n }).done(function() {\n if (that.selectedIndex < 0) {\n input.value = text;\n\n if (that.options.syncValueAndText) {\n that._accessor(text);\n }\n\n that._cascadeTriggered = true;\n that._triggerCascade();\n that._refreshFloatingLabel();\n }\n\n that._prev = input.value;\n });\n\n that._toggleCloseVisibility();\n },\n\n toggle: function(toggle) {\n this._toggle(toggle, true);\n },\n\n value: function(value) {\n var that = this;\n var options = that.options;\n var listView = that.listView;\n\n if (value === undefined$1) {\n value = that._accessor() || that.listView.value()[0];\n return value === undefined$1 || value === null ? \"\" : value;\n }\n\n that.requireValueMapper(that.options, value);\n\n that.trigger(\"set\", { value: value });\n\n if (value === options.value && that.input.val() === options.text &&\n !that.options.cascadeFrom) {\n return;\n }\n\n that._accessor(value);\n\n if (that._isFilterEnabled() && listView.bound() && listView.isFiltered()) {\n that._clearFilter();\n } else {\n that._fetchData();\n }\n\n listView\n .value(value)\n .done(function() {\n if (that.selectedIndex === -1 && (!listView._selectedDataItems || !listView._selectedDataItems.length)) {\n that._accessor(value);\n that.input.val(value);\n that._placeholder(true);\n }\n\n if (that._userTriggered) {\n that._old = that._accessor();\n } else {\n that._old = that._valueBeforeCascade = that._accessor();\n }\n\n that._oldIndex = that.selectedIndex;\n\n that._prev = that._oldText = that.input.val();\n\n if (that._state === STATE_FILTER) {\n that._state = STATE_ACCEPT;\n }\n that._toggleCloseVisibility();\n\n that._refreshFloatingLabel();\n });\n },\n\n _hideBusy: function() {\n var that = this;\n clearTimeout(that._busy);\n that._arrowIcon.removeClass(LOADING);\n that._arrowIcon.find(\"svg\").show();\n that._focused.attr(\"aria-busy\", false);\n that._busy = null;\n that._toggleCloseVisibility();\n },\n\n _click: function(e) {\n var that = this;\n var item = e.item;\n var dataItem = that.listView.dataItemByIndex(that.listView.getElementIndex(item));\n var shouldTrigger = true;\n e.preventDefault();\n\n if (dataItem) {\n shouldTrigger = that._value(dataItem) !== List.unifyType(that.value(), typeof that._value(dataItem));\n\n if (!shouldTrigger) {\n that.input.val(that._text(dataItem));\n }\n }\n\n if (shouldTrigger && that.trigger(\"select\", { dataItem: dataItem, item: item })) {\n that.close();\n return;\n }\n\n that._userTriggered = true;\n\n that._select(item).done(function() {\n that._blur();\n });\n },\n\n _syncValueAndText: function() {\n return this.options.syncValueAndText;\n },\n\n _inputValue: function() {\n return this.text();\n },\n\n _searchByWord: function(word) {\n var that = this;\n var options = that.options;\n var dataSource = that.dataSource;\n var ignoreCase = options.ignoreCase;\n var predicate = function(dataItem) {\n var text = that._text(dataItem);\n if (text !== undefined$1) {\n text = text + \"\";\n if (text !== \"\" && word === \"\") {\n return false;\n }\n\n if (ignoreCase) {\n text = text.toLowerCase();\n }\n\n return text.indexOf(word) === 0;\n }\n };\n\n if (ignoreCase) {\n word = word.toLowerCase();\n }\n\n if (!that.ul[0].firstChild) {\n dataSource.one(CHANGE, function() {\n if (dataSource.view()[0]) {\n that.search(word);\n }\n }).fetch();\n return;\n }\n\n this.listView.focus(this._get(predicate));\n\n var current = this.listView.focus();\n\n if (current) {\n if (options.suggest) {\n that.suggest(current);\n }\n\n this.open();\n }\n\n if (this.options.highlightFirst && !word) {\n this.listView.focusFirst();\n }\n },\n\n _input: function() {\n var that = this,\n element = that.element.removeClass(\"k-input-inner\")[0],\n accessKey = element.accessKey,\n wrapper = that.wrapper,\n SELECTOR = \"input.k-input-inner\",\n name = element.name || \"\",\n options = that.options,\n input,\n maxLength,\n arrowBtn;\n\n if (name) {\n name = 'name=\"' + name + '_input\" ';\n }\n\n input = wrapper.find(SELECTOR);\n\n if (!input[0]) {\n arrowBtn = html.renderButton('', {\n icon: \"caret-alt-down\",\n size: options.size,\n fillMode: options.fillMode,\n shape: \"none\",\n rounded: \"none\",\n });\n\n wrapper.append('')\n .append(arrowBtn)\n .append(that.element);\n\n input = wrapper.find(SELECTOR);\n }\n\n input[0].style.cssText = element.style.cssText;\n input[0].title = element.title;\n\n maxLength = parseInt(this.element.prop(\"maxlength\") || this.element.attr(\"maxlength\"), 10);\n if (maxLength > -1) {\n input[0].maxLength = maxLength;\n }\n\n input.addClass(element.className)\n .css({\n width: \"\",\n height: element.style.height,\n position: \"\"\n })\n .attr({\n \"role\": \"combobox\",\n \"aria-expanded\": false\n })\n .show();\n\n input.attr(kendo.attr(\"skip\"), true);\n if (placeholderSupported) {\n input.attr(\"placeholder\", that.options.placeholder);\n }\n\n if (accessKey) {\n element.accessKey = \"\";\n input[0].accessKey = accessKey;\n }\n\n that._focused = that.input = input;\n that._arrow = wrapper.find(\".k-input-button\")\n .attr({\n \"role\": \"button\",\n \"tabIndex\": -1\n });\n that._arrowIcon = that._arrow.find(\".k-icon, .k-svg-icon\");\n },\n\n _clearButton: function() {\n List.fn._clearButton.call(this);\n\n if (this.options.clearButton) {\n this._clear.insertAfter(this.input);\n }\n },\n\n _keydown: function(e) {\n var that = this,\n key = e.keyCode,\n textField = that.options.dataTextField || \"text\",\n isFkey = key >= 112 && key <= 135,\n isNonPrintableKey = NON_PRINTABLE_KEYS.indexOf(key) > -1;\n\n that._last = key;\n\n clearTimeout(that._typingTimeout);\n that._typingTimeout = null;\n\n if (key === keys.HOME) {\n that._firstItem();\n } else if (key === keys.END) {\n that._lastItem();\n } else if (key === keys.ENTER || (key === keys.TAB && that.popup.visible())) {\n var current = that.listView.focus();\n var dataItem = that.dataItem();\n var shouldTrigger = true;\n\n if (!that.popup.visible() && (!dataItem || that.text() !== that._text(dataItem))) {\n current = null;\n }\n\n if (current) {\n if (that.popup.visible()) {\n e.preventDefault();\n }\n\n dataItem = that.listView.dataItemByIndex(that.listView.getElementIndex(current));\n\n if (dataItem) {\n shouldTrigger = that._value(dataItem) !== List.unifyType(that.value(), typeof that._value(dataItem));\n }\n\n if (shouldTrigger && that.trigger(\"select\", { dataItem: dataItem, item: current })) {\n return;\n }\n\n that._userTriggered = true;\n\n that._select(current).done(function() {\n that._blur();\n that._valueBeforeCascade = that._old = that.value();\n });\n } else {\n if (that._syncValueAndText() || that._isSelect) {\n if (!that.dataItem() || that.dataItem()[textField] !== that.input.val()) {\n var input = that.filterInput && activeElement() === that.filterInput[0] ? that.filterInput : that.input;\n that._accessor(input.val());\n }\n }\n\n if (that.options.highlightFirst) {\n that.listView.value(that.input.val());\n that._blur();\n } else {\n that._oldText = that.text();\n }\n }\n } else if (key != keys.TAB && !that._move(e) && !isNonPrintableKey && !isFkey && !e.ctrlKey) {\n that._search();\n } else if (that.options.clearOnEscape && key === keys.ESC && !that.popup.visible() && that.text()) {\n that._clearValue();\n }\n },\n\n _placeholder: function(show) {\n if (placeholderSupported) {\n return;\n }\n\n var that = this,\n input = that.input,\n placeholder = that.options.placeholder,\n value;\n\n if (placeholder) {\n value = that.value();\n\n if (show === undefined$1) {\n show = !value;\n }\n\n input.toggleClass(\"k-readonly\", show);\n\n if (!show) {\n if (!value) {\n placeholder = \"\";\n } else {\n return;\n }\n }\n\n input.val(placeholder);\n\n if (!placeholder && input[0] === activeElement()) {\n caret(input[0], 0, 0);\n }\n }\n },\n\n _search: function() {\n var that = this;\n\n clearTimeout(that._typingTimeout);\n\n that._typingTimeout = setTimeout(function() {\n var value = that.text();\n\n if (value !== \"\" && that._prev !== value) {\n that._prev = value;\n\n if (that.options.filter === \"none\" && that.options.virtual) {\n that.listView.select(-1);\n }\n\n that.search(value);\n\n that._toggleCloseVisibility();\n }\n else if (value === \"\" && that._prev !== \"\" && that._prev !== undefined$1) {\n that._clearValue();\n that._open = true;\n that._state = STATE_REBIND;\n }\n\n that._typingTimeout = null;\n }, that.options.delay);\n },\n\n _setText: function(text) {\n this.input.val(text);\n this._prev = text;\n },\n\n _wrapper: function() {\n var that = this,\n element = that.element,\n wrapper = element.parent();\n\n if (!wrapper.is(\"span.k-input\")) {\n wrapper = element.hide().wrap(\"\").parent();\n wrapper[0].style.cssText = element[0].style.cssText;\n }\n\n that.wrapper = wrapper.addClass(\"k-input k-combobox\")\n .addClass(element[0].className)\n .removeClass('input-validation-error')\n .css(\"display\", \"\");\n },\n\n _clearSelection: function(parent, isFiltered) {\n var that = this;\n var hasValue = parent.value();\n var custom = hasValue && parent.selectedIndex === -1;\n\n if (this.selectedIndex == -1 && this.value()) {\n return;\n }\n\n if (isFiltered || !hasValue || custom) {\n that.options.value = \"\";\n that.value(\"\");\n }\n },\n\n _preselect: function(value, text) {\n this.input.val(text);\n this._accessor(value);\n\n this._old = this._accessor();\n this._oldIndex = this.selectedIndex;\n\n this.listView.setValue(value);\n this._placeholder();\n\n this._initialIndex = null;\n this._presetValue = true;\n this._toggleCloseVisibility();\n },\n\n _clearText: function() {\n this._old = this.value();\n this.text(\"\");\n },\n\n _clearValue: function() {\n var that = this;\n var input = that.filterInput && that.filterInput[0] === activeElement() ? that.filterInput : that.input;\n\n Select.fn._clearValue.call(this);\n input.trigger(\"focus\");\n }\n });\n\n ui.plugin(ComboBox);\n\n kendo.cssProperties.registerPrefix(\"ComboBox\", \"k-input-\");\n\n kendo.cssProperties.registerValues(\"ComboBox\", [{\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"]}