{"version":3,"sources":["kendo.autocomplete.js"],"names":["f","define","$","undefined","indexOfWordAtCaret","caretIdx","text","separator","substring","split","length","wordAtCaret","replaceWordAtCaret","word","defaultSeparator","words","splice","push","join","kendo","window","support","caret","activeElement","_activeElement","placeholderSupported","placeholder","ui","List","keys","DataSource","data","ARIA_DISABLED","ARIA_READONLY","CHANGE","DEFAULT","DISABLED","READONLY","FOCUSED","SELECTED","STATEDISABLED","HOVER","ns","HOVEREVENTS","proxy","AutoComplete","extend","init","element","options","wrapper","disabled","that","this","isArray","dataSource","fn","call","attr","_wrapper","_loader","_clearButton","_dataSource","_ignoreCase","type","_popup","addClass","on","_keydown","_keypress","_search","_prev","_accessor","_oldText","_placeholder","_change","removeClass","autocomplete","role","aria-haspopup","_clear","_clearValue","_enable","_old","id","ul","_aria","_initList","parents","is","enable","listView","bind","e","preventDefault","_resetFocusItemHandler","_resetFocusItem","notify","name","enabled","suggest","template","groupTemplate","fixedGroupTemplate","dataTextField","minLength","enforceMinLength","delay","height","filter","ignoreCase","highlightFirst","animation","virtual","value","clearButton","_refreshHandler","_unbindDataSource","_progressHandler","_showBusy","_errorHandler","_hideBusy","create","setDataSource","events","setOptions","listOptions","_listOptions","_accessors","skipUpdateOnBind","dataValueField","selectedItemChange","_editable","off","readonly","disable","_toggleHover","removeAttr","close","current","focus","popup","destroy","refresh","select","li","_select","search","_separator","clearTimeout","_typingTimeout","_open","_mute","_filterSource","toLowerCase","operator","field","one","_unifySeparators","idx","key","_last","wordIndex","selectionEnd","BACKSPACE","DELETE","view","inArray","_text","indexOf","lastIndexOf","_click","item","dataItem","dataItemByIndex","getElementIndex","_active","trigger","val","done","_blur","_clearText","noop","index","scrollTo","_listBound","action","flatView","isActive","_renderFooter","_renderNoData","_toggleNoData","_resizePopup","position","_allowOpening","unbind","_touchScroller","reset","_makeUnselectable","callback","_muted","_listChange","_selectValue","selectedDataItems","_defaultSeparator","unifyType","valueUpdated","_typing","itemSelected","typing","className","direction","keyCode","visible","DOWN","_move","UP","ENTER","TAB","ESC","PAGEDOWN","PAGEUP","scrollWith","screenHeight","_busy","_loading","hide","_showClear","setTimeout","show","_hideClear","toggleClass","document","Array","RegExp","_inputValue","candidate","insertAfter","tabIndex","currentTarget","DOMelement","parent","wrap","style","cssText","css","width","_focused","plugin","jQuery","amd","a1","a2","a3"],"mappings":"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","file":"kendo.autocomplete.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('kendo.autocomplete', [\n 'kendo.list',\n 'kendo.mobile.scroller'\n ], f);\n}(function () {\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 {\n id: 'mobile-scroller',\n name: 'Mobile scroller',\n description: 'Support for kinetic scrolling in mobile device',\n depends: ['mobile.scroller']\n },\n {\n id: 'virtualization',\n name: 'VirtualList',\n description: 'Support for virtualization',\n depends: ['virtuallist']\n }\n ]\n };\n (function ($, undefined) {\n var kendo = window.kendo, support = kendo.support, caret = kendo.caret, activeElement = kendo._activeElement, placeholderSupported = support.placeholder, ui = kendo.ui, List = ui.List, keys = kendo.keys, DataSource = kendo.data.DataSource, ARIA_DISABLED = 'aria-disabled', ARIA_READONLY = 'aria-readonly', CHANGE = 'change', DEFAULT = 'k-state-default', DISABLED = 'disabled', READONLY = 'readonly', FOCUSED = 'k-state-focused', SELECTED = 'k-state-selected', STATEDISABLED = 'k-state-disabled', HOVER = 'k-state-hover', ns = '.kendoAutoComplete', HOVEREVENTS = 'mouseenter' + ns + ' mouseleave' + ns, proxy = $.proxy;\n function indexOfWordAtCaret(caretIdx, text, separator) {\n return separator ? text.substring(0, caretIdx).split(separator).length - 1 : 0;\n }\n function wordAtCaret(caretIdx, text, separator) {\n return text.split(separator)[indexOfWordAtCaret(caretIdx, text, separator)];\n }\n function replaceWordAtCaret(caretIdx, text, word, separator, defaultSeparator) {\n var words = text.split(separator);\n words.splice(indexOfWordAtCaret(caretIdx, text, separator), 1, word);\n if (separator && words[words.length - 1] !== '') {\n words.push('');\n }\n return words.join(defaultSeparator);\n }\n var AutoComplete = List.extend({\n init: function (element, options) {\n var that = this, wrapper, disabled;\n that.ns = ns;\n options = $.isArray(options) ? { dataSource: options } : options;\n List.fn.init.call(that, element, options);\n element = that.element;\n options = that.options;\n options.placeholder = options.placeholder || element.attr('placeholder');\n if (placeholderSupported) {\n element.attr('placeholder', options.placeholder);\n }\n that._wrapper();\n that._loader();\n that._clearButton();\n that._dataSource();\n that._ignoreCase();\n element[0].type = 'text';\n wrapper = that.wrapper;\n that._popup();\n element.addClass('k-input').on('keydown' + ns, proxy(that._keydown, that)).on('keypress' + ns, proxy(that._keypress, that)).on('paste' + ns, proxy(that._search, that)).on('focus' + ns, function () {\n that._prev = that._accessor();\n that._oldText = that._prev;\n that._placeholder(false);\n wrapper.addClass(FOCUSED);\n }).on('focusout' + ns, function () {\n that._change();\n that._placeholder();\n wrapper.removeClass(FOCUSED);\n }).attr({\n autocomplete: 'off',\n role: 'textbox',\n 'aria-haspopup': true\n });\n that._clear.on('click' + ns, proxy(that._clearValue, that));\n that._enable();\n that._old = that._accessor();\n if (element[0].id) {\n element.attr('aria-owns', that.ul[0].id);\n }\n that._aria();\n that._placeholder();\n that._initList();\n disabled = $(that.element).parents('fieldset').is(':disabled');\n if (disabled) {\n that.enable(false);\n }\n that.listView.bind('click', function (e) {\n e.preventDefault();\n });\n that._resetFocusItemHandler = $.proxy(that._resetFocusItem, that);\n kendo.notify(that);\n },\n options: {\n name: 'AutoComplete',\n enabled: true,\n suggest: false,\n template: '',\n groupTemplate: '#:data#',\n fixedGroupTemplate: '#:data#',\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 },\n _dataSource: function () {\n var that = this;\n if (that.dataSource && that._refreshHandler) {\n that._unbindDataSource();\n } else {\n that._progressHandler = proxy(that._showBusy, that);\n that._errorHandler = proxy(that._hideBusy, that);\n }\n that.dataSource = DataSource.create(that.options.dataSource).bind('progress', that._progressHandler).bind('error', that._errorHandler);\n },\n setDataSource: function (dataSource) {\n this.options.dataSource = dataSource;\n this._dataSource();\n this.listView.setDataSource(this.dataSource);\n },\n events: [\n 'open',\n 'close',\n CHANGE,\n 'select',\n 'filtering',\n 'dataBinding',\n 'dataBound'\n ],\n setOptions: function (options) {\n var listOptions = this._listOptions(options);\n List.fn.setOptions.call(this, options);\n this.listView.setOptions(listOptions);\n this._accessors();\n this._aria();\n },\n _listOptions: function (options) {\n var listOptions = List.fn._listOptions.call(this, $.extend(options, { skipUpdateOnBind: true }));\n listOptions.dataValueField = listOptions.dataTextField;\n listOptions.selectedItemChange = null;\n return listOptions;\n },\n _editable: function (options) {\n var that = this, element = that.element, wrapper = that.wrapper.off(ns), readonly = options.readonly, disable = options.disable;\n if (!readonly && !disable) {\n wrapper.addClass(DEFAULT).removeClass(STATEDISABLED).on(HOVEREVENTS, that._toggleHover);\n element.removeAttr(DISABLED).removeAttr(READONLY).attr(ARIA_DISABLED, false).attr(ARIA_READONLY, false);\n } else {\n wrapper.addClass(disable ? STATEDISABLED : DEFAULT).removeClass(disable ? DEFAULT : STATEDISABLED);\n element.attr(DISABLED, disable).attr(READONLY, readonly).attr(ARIA_DISABLED, disable).attr(ARIA_READONLY, readonly);\n }\n },\n close: function () {\n var that = this;\n var current = that.listView.focus();\n if (current) {\n current.removeClass(SELECTED);\n }\n that.popup.close();\n },\n destroy: function () {\n var that = this;\n that.element.off(ns);\n that._clear.off(ns);\n that.wrapper.off(ns);\n List.fn.destroy.call(that);\n },\n refresh: function () {\n this.listView.refresh();\n },\n select: function (li) {\n this._select(li);\n },\n search: function (word) {\n var that = this, options = that.options, ignoreCase = options.ignoreCase, separator = that._separator(), length;\n word = word || that._accessor();\n clearTimeout(that._typingTimeout);\n if (separator) {\n word = wordAtCaret(caret(that.element)[0], word, separator);\n }\n length = word.length;\n if (!options.enforceMinLength && !length || length >= options.minLength) {\n that._open = true;\n that._mute(function () {\n this.listView.value([]);\n });\n that._filterSource({\n value: ignoreCase ? word.toLowerCase() : word,\n operator: options.filter,\n field: options.dataTextField,\n ignoreCase: ignoreCase\n });\n that.one('close', $.proxy(that._unifySeparators, that));\n }\n },\n suggest: function (word) {\n var that = this, key = that._last, value = that._accessor(), element = that.element[0], caretIdx = caret(element)[0], separator = that._separator(), words = value.split(separator), wordIndex = indexOfWordAtCaret(caretIdx, value, separator), selectionEnd = caretIdx, idx;\n if (key == keys.BACKSPACE || key == keys.DELETE) {\n that._last = undefined;\n return;\n }\n word = word || '';\n if (typeof word !== 'string') {\n if (word[0]) {\n word = that.dataSource.view()[List.inArray(word[0], that.ul[0])];\n }\n word = word ? that._text(word) : '';\n }\n if (caretIdx <= 0) {\n caretIdx = value.toLowerCase().indexOf(word.toLowerCase()) + 1;\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 if (word) {\n word = word.toString();\n idx = word.toLowerCase().indexOf(value.toLowerCase());\n if (idx > -1) {\n word = word.substring(idx + value.length);\n selectionEnd = caretIdx + word.length;\n value += word;\n }\n if (separator && words[words.length - 1] !== '') {\n words.push('');\n }\n }\n words[wordIndex] = value;\n that._accessor(words.join(separator || ''));\n if (element === activeElement()) {\n caret(element, caretIdx, selectionEnd);\n }\n },\n value: function (value) {\n if (value !== undefined) {\n this.listView.value(value);\n this._accessor(value);\n this._old = this._accessor();\n this._oldText = this._accessor();\n } else {\n return this._accessor();\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 e.preventDefault();\n that._active = true;\n if (that.trigger('select', {\n dataItem: dataItem,\n item: item\n })) {\n that.close();\n return;\n }\n that._oldText = element.val();\n that._select(item).done(function () {\n that._blur();\n caret(element, element.val().length);\n });\n },\n _clearText: $.noop,\n _resetFocusItem: function () {\n var index = this.options.highlightFirst ? 0 : -1;\n if (this.options.virtual) {\n this.listView.scrollTo(0);\n }\n this.listView.focus(index);\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 isActive = that.element[0] === activeElement();\n var action;\n that._renderFooter();\n that._renderNoData();\n that._toggleNoData(!data.length);\n that._resizePopup();\n popup.position();\n if (length) {\n if (options.suggest && isActive) {\n that.suggest(data[0]);\n }\n }\n if (that._open) {\n that._open = false;\n action = that._allowOpening() ? 'open' : 'close';\n if (that._typingTimeout && !isActive) {\n action = 'close';\n }\n if (length) {\n that._resetFocusItem();\n if (options.virtual) {\n that.popup.unbind('activate', that._resetFocusItemHandler).one('activate', that._resetFocusItemHandler);\n }\n }\n popup[action]();\n that._typingTimeout = undefined;\n }\n if (that._touchScroller) {\n that._touchScroller.reset();\n }\n that._hideBusy();\n that._makeUnselectable();\n that.trigger('dataBound');\n },\n _mute: function (callback) {\n this._muted = true;\n callback.call(this);\n this._muted = false;\n },\n _listChange: function () {\n var isActive = this._active || this.element[0] === activeElement();\n if (isActive && !this._muted) {\n this._selectValue(this.listView.selectedDataItems()[0]);\n }\n },\n _selectValue: function (dataItem) {\n var separator = this._separator();\n var text = '';\n if (dataItem) {\n text = this._text(dataItem);\n }\n if (text === null) {\n text = '';\n }\n if (separator) {\n text = replaceWordAtCaret(caret(this.element)[0], this._accessor(), text, separator, this._defaultSeparator());\n }\n this._prev = text;\n this._accessor(text);\n this._placeholder();\n },\n _unifySeparators: function () {\n this._accessor(this.value().split(this._separator()).join(this._defaultSeparator()));\n return this;\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 var valueUpdated = trigger && !that._typing;\n var itemSelected = that._oldText !== value;\n that._old = value;\n that._oldText = value;\n if (valueUpdated || itemSelected) {\n that.element.trigger(CHANGE);\n }\n if (trigger) {\n that.trigger(CHANGE);\n }\n that.typing = false;\n },\n _accessor: function (value) {\n var that = this, element = that.element[0];\n if (value !== undefined) {\n element.value = value === null ? '' : value;\n that._placeholder();\n } else {\n value = element.value;\n if (element.className.indexOf('k-readonly') > -1) {\n if (value === that.options.placeholder) {\n return '';\n } else {\n return value;\n }\n }\n return value;\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 that._last = key;\n if (key === keys.DOWN) {\n if (visible) {\n this._move(current ? 'focusNext' : 'focusFirst');\n }\n e.preventDefault();\n } else if (key === keys.UP) {\n if (visible) {\n this._move(current ? 'focusPrev' : 'focusLast');\n }\n e.preventDefault();\n } else if (key === keys.ENTER || key === keys.TAB) {\n if (key === keys.ENTER && visible) {\n e.preventDefault();\n }\n if (visible && current) {\n var dataItem = listView.dataItemByIndex(listView.getElementIndex(current));\n if (that.trigger('select', {\n dataItem: dataItem,\n item: current\n })) {\n return;\n }\n this._select(current);\n }\n this._blur();\n } else if (key === keys.ESC) {\n if (visible) {\n e.preventDefault();\n }\n that.close();\n } else if (that.popup.visible() && (key === keys.PAGEDOWN || key === keys.PAGEUP)) {\n e.preventDefault();\n var direction = key === keys.PAGEDOWN ? 1 : -1;\n listView.scrollWith(direction * listView.screenHeight());\n } else {\n that._search();\n }\n },\n _keypress: function () {\n this._oldText = this.element.val();\n this._typing = true;\n },\n _move: function (action) {\n this.listView[action]();\n if (this.options.suggest) {\n this.suggest(this.listView.focus());\n }\n },\n _hideBusy: function () {\n var that = this;\n clearTimeout(that._busy);\n that._loading.hide();\n that.element.attr('aria-busy', false);\n that._busy = null;\n that._showClear();\n },\n _showBusy: function () {\n var that = this;\n if (that._busy) {\n return;\n }\n that._busy = setTimeout(function () {\n that.element.attr('aria-busy', true);\n that._loading.show();\n that._hideClear();\n }, 100);\n },\n _placeholder: function (show) {\n if (placeholderSupported) {\n return;\n }\n var that = this, element = that.element, placeholder = that.options.placeholder, value;\n if (placeholder) {\n value = element.val();\n if (show === undefined) {\n show = !value;\n }\n if (!show) {\n if (value !== placeholder) {\n placeholder = value;\n } else {\n placeholder = '';\n }\n }\n if (value === that._old && !show) {\n return;\n }\n element.toggleClass('k-readonly', show).val(placeholder);\n if (!placeholder && element[0] === document.activeElement) {\n caret(element[0], 0, 0);\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 _defaultSeparator: function () {\n var separator = this.options.separator;\n if (separator instanceof Array) {\n return separator[0];\n }\n return separator;\n },\n _inputValue: function () {\n return this.element.val();\n },\n _search: function () {\n var that = this;\n clearTimeout(that._typingTimeout);\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 _select: function (candidate) {\n var that = this;\n that._active = true;\n return that.listView.select(candidate).done(function () {\n that._active = false;\n });\n },\n _loader: function () {\n this._loading = $('').insertAfter(this.element);\n },\n _clearButton: function () {\n this._clear = $('').attr({\n 'role': 'button',\n 'tabIndex': -1\n });\n if (this.options.clearButton) {\n this._clear.insertAfter(this.element);\n }\n },\n _toggleHover: function (e) {\n $(e.currentTarget).toggleClass(HOVER, e.type === 'mouseenter');\n },\n _wrapper: function () {\n var that = this, element = that.element, DOMelement = element[0], wrapper;\n wrapper = element.parent();\n if (!wrapper.is('span.k-widget')) {\n wrapper = element.wrap('').parent();\n }\n wrapper.attr('tabindex', -1);\n wrapper.attr('role', 'presentation');\n wrapper[0].style.cssText = DOMelement.style.cssText;\n element.css({\n width: '100%',\n height: DOMelement.style.height\n });\n that._focused = that.element;\n that.wrapper = wrapper.addClass('k-widget k-autocomplete k-header').addClass(DOMelement.className);\n }\n });\n ui.plugin(AutoComplete);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"],"sourceRoot":"/source/"}