{"version":3,"sources":["kendo.multiselect.js"],"names":["f","define","$","undefined","compare","a","b","length","kendo","window","ui","List","keys","activeElement","_activeElement","ObservableArray","data","proxy","ID","LI","ACCEPT","FILTER","REBIND","OPEN","CLOSE","CHANGE","PROGRESS","SELECT","DESELECT","ARIA_DISABLED","FOCUSEDCLASS","HIDDENCLASS","HOVERCLASS","STATEDISABLED","DISABLED","READONLY","ns","CLICK","KEYDOWN","MOUSEENTER","MOUSELEAVE","HOVEREVENTS","quotRegExp","isArray","styles","MultiSelect","extend","init","element","options","id","disabled","that","this","fn","call","_optionsMap","_customOptions","_wrapper","_tagList","_input","_textContainer","_loader","_clearButton","_tabindex","input","attr","hide","placeholder","_tagID","tagList","_aria","_dataSource","_ignoreCase","_popup","_tagTemplate","requireValueMapper","_initList","_reset","_enable","_placeholder","autoBind","dataSource","fetch","value","_preselect","parents","is","enable","notify","_toggleCloseVisibility","name","tagMode","enabled","autoClose","highlightFirst","dataTextField","dataValueField","filter","ignoreCase","minLength","enforceMinLength","delay","maxSelectedItems","height","animation","virtual","itemTemplate","tagTemplate","groupTemplate","fixedGroupTemplate","clearButton","events","setDataSource","_state","listView","setOptions","listOptions","_listOptions","_accessors","currentTag","candidate","_currentTag","removeClass","removeAttr","addClass","dataItems","selectedDataItems","destroy","clearTimeout","_busy","_typingTimeout","wrapper","off","_clear","_activateItem","selectedItemChange","_selectedItemChange","selectable","template","expr","_setListValue","_initialValues","slice","_listChange","e","i","flatView","optionsMap","valueGetter","_value","added","dataItem","_render","_selectValue","removed","context","idx","items","children","eq","index","html","tagTextTemplate","item","_wrapperMousedown","notInput","target","nodeName","toLowerCase","closeButton","hasClass","closest","support","mobileOS","preventDefault","focus","open","_inputFocus","_inputFocusout","close","skipUpdate","blur","_removeTag","tag","option","done","state","position","customIndex","trigger","_close","_change","select","selected","removeAt","remove","_tagListClick","currentTarget","_clearClick","each","val","_search","_editable","disable","readonly","add","on","_toggleHover","_keydown","popup","_filterSource","force","_retrieveData","_request","bound","_open","_allowOpening","_focusItem","toggle","visible","refresh","_listBound","skip","_renderFooter","_renderNoData","_toggleNoData","_resizePopup","focusFirst","_touchScroller","reset","_hideBusy","_makeUnselectable","_inputValue","inputValue","oldValue","clearFilters","isFiltered","_normalizeValues","_clearFilter","_old","_fetchData","isPlainObject","ObservableObject","_setOption","hasItems","view","isEmptyArray","_fetch","read","_isBound","fields","field","_refreshHandler","_unbindDataSource","_progressHandler","_showBusy","_errorHandler","DataSource","create","bind","formId","form","_resetHandler","setTimeout","_form","_initValue","map","_click","_select","direction","key","keyCode","current","hasValue","isRtl","DOWN","focusNext","focusLast","UP","focusPrev","LEFT","RIGHT","prev","lastChild","next","ENTER","ESC","HOME","firstChild","END","DELETE","BACKSPACE","PAGEDOWN","PAGEUP","_scale","scrollWith","screenHeight","_loading","_showClear","_showBusyHandler","_hideClear","show","skipCaret","active","isActive","caretPos","_prev","toggleClass","caret","textWidth","wrapperWidth","width","span","_span","text","appendTo","document","documentElement","_option","dataValue","dataText","indexOf","replace","htmlEncode","selectedIndex","custom","selectedItems","values","_buildSelectedItems","_selectedItemIndex","splice","_text","valueField","textField","result","push","search","_allowSelection","max","_angularTagItems","cmd","angular","elements","removedItem","addedItem","total","getter","removeChild","append","_maxTotal","maxTotal","currentTotal","isSelected","resolved","Deferred","resolve","dataItemByIndex","getElementIndex","accessKey","_innerWrapper","_focused","accesskey","autocomplete","role","title","aria-expanded","defaultTemplate","hasDataSource","isMultiple","useWithBlock","insertAfter","tabIndex","computedStyles","getComputedStyles","visibility","top","left","css","parent","wrap","style","cssText","insertBefore","className","plugin","jQuery","amd","a1","a2","a3"],"mappings":"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","file":"kendo.multiselect.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.multiselect', [\n 'kendo.list',\n 'kendo.mobile.scroller'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'multiselect',\n name: 'MultiSelect',\n category: 'web',\n description: 'The MultiSelect widget allows the selection from pre-defined values.',\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, ui = kendo.ui, List = ui.List, keys = kendo.keys, activeElement = kendo._activeElement, ObservableArray = kendo.data.ObservableArray, proxy = $.proxy, ID = 'id', LI = 'li', ACCEPT = 'accept', FILTER = 'filter', REBIND = 'rebind', OPEN = 'open', CLOSE = 'close', CHANGE = 'change', PROGRESS = 'progress', SELECT = 'select', DESELECT = 'deselect', ARIA_DISABLED = 'aria-disabled', FOCUSEDCLASS = 'k-state-focused', HIDDENCLASS = 'k-hidden', HOVERCLASS = 'k-state-hover', STATEDISABLED = 'k-state-disabled', DISABLED = 'disabled', READONLY = 'readonly', ns = '.kendoMultiSelect', CLICK = 'click' + ns, KEYDOWN = 'keydown' + ns, MOUSEENTER = 'mouseenter' + ns, MOUSELEAVE = 'mouseleave' + ns, HOVEREVENTS = MOUSEENTER + ' ' + MOUSELEAVE, quotRegExp = /\"/g, isArray = $.isArray, styles = [\n 'font-family',\n 'font-size',\n 'font-stretch',\n 'font-style',\n 'font-weight',\n 'letter-spacing',\n 'text-transform',\n 'line-height'\n ];\n var MultiSelect = List.extend({\n init: function (element, options) {\n var that = this, id, disabled;\n that.ns = ns;\n List.fn.init.call(that, element, options);\n that._optionsMap = {};\n that._customOptions = {};\n that._wrapper();\n that._tagList();\n that._input();\n that._textContainer();\n that._loader();\n that._clearButton();\n that._tabindex(that.input);\n element = that.element.attr('multiple', 'multiple').hide();\n options = that.options;\n if (!options.placeholder) {\n options.placeholder = element.data('placeholder');\n }\n id = element.attr(ID);\n if (id) {\n that._tagID = id + '_tag_active';\n id = id + '_taglist';\n that.tagList.attr(ID, id);\n }\n that._aria(id);\n that._dataSource();\n that._ignoreCase();\n that._popup();\n that._tagTemplate();\n that.requireValueMapper(that.options);\n that._initList();\n that._reset();\n that._enable();\n that._placeholder();\n if (options.autoBind) {\n that.dataSource.fetch();\n } else if (options.value) {\n that._preselect(options.value);\n }\n disabled = $(that.element).parents('fieldset').is(':disabled');\n if (disabled) {\n that.enable(false);\n }\n kendo.notify(that);\n that._toggleCloseVisibility();\n },\n options: {\n name: 'MultiSelect',\n tagMode: 'multiple',\n enabled: true,\n autoBind: true,\n autoClose: true,\n highlightFirst: true,\n dataTextField: '',\n dataValueField: '',\n filter: 'startswith',\n ignoreCase: true,\n minLength: 1,\n enforceMinLength: false,\n delay: 100,\n value: null,\n maxSelectedItems: null,\n placeholder: '',\n height: 200,\n animation: {},\n virtual: false,\n itemTemplate: '',\n tagTemplate: '',\n groupTemplate: '#:data#',\n fixedGroupTemplate: '#:data#',\n clearButton: true\n },\n events: [\n OPEN,\n CLOSE,\n CHANGE,\n SELECT,\n DESELECT,\n 'filtering',\n 'dataBinding',\n 'dataBound'\n ],\n setDataSource: function (dataSource) {\n this.options.dataSource = dataSource;\n this._state = '';\n this._dataSource();\n this.listView.setDataSource(this.dataSource);\n if (this.options.autoBind) {\n this.dataSource.fetch();\n }\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(this.tagList.attr(ID));\n this._tagTemplate();\n },\n currentTag: function (candidate) {\n var that = this;\n if (candidate !== undefined) {\n if (that._currentTag) {\n that._currentTag.removeClass(FOCUSEDCLASS).removeAttr(ID);\n that.input.removeAttr('aria-activedescendant');\n }\n if (candidate) {\n candidate.addClass(FOCUSEDCLASS).attr(ID, that._tagID);\n that.input.attr('aria-activedescendant', that._tagID);\n }\n that._currentTag = candidate;\n } else {\n return that._currentTag;\n }\n },\n dataItems: function () {\n return this.listView.selectedDataItems();\n },\n destroy: function () {\n var that = this, ns = that.ns;\n clearTimeout(that._busy);\n clearTimeout(that._typingTimeout);\n that.wrapper.off(ns);\n that.tagList.off(ns);\n that.input.off(ns);\n that._clear.off(ns);\n List.fn.destroy.call(that);\n },\n _activateItem: function () {\n List.fn._activateItem.call(this);\n this.currentTag(null);\n },\n _listOptions: function (options) {\n var that = this;\n var listOptions = List.fn._listOptions.call(that, $.extend(options, {\n selectedItemChange: proxy(that._selectedItemChange, that),\n selectable: 'multiple'\n }));\n var itemTemplate = this.options.itemTemplate || this.options.template;\n var template = listOptions.itemTemplate || itemTemplate || listOptions.template;\n if (!template) {\n template = '#:' + kendo.expr(listOptions.dataTextField, 'data') + '#';\n }\n listOptions.template = template;\n return listOptions;\n },\n _setListValue: function () {\n List.fn._setListValue.call(this, this._initialValues.slice(0));\n },\n _listChange: function (e) {\n var data = this.dataSource.flatView();\n var optionsMap = this._optionsMap;\n var valueGetter = this._value;\n if (this._state === REBIND) {\n this._state = '';\n }\n for (var i = 0; i < e.added.length; i++) {\n if (optionsMap[valueGetter(e.added[i].dataItem)] === undefined) {\n this._render(data);\n break;\n }\n }\n this._selectValue(e.added, e.removed);\n },\n _selectedItemChange: function (e) {\n var items = e.items;\n var context;\n var idx;\n for (idx = 0; idx < items.length; idx++) {\n context = items[idx];\n this.tagList.children().eq(context.index).children('span:first').html(this.tagTextTemplate(context.item));\n }\n },\n _wrapperMousedown: function (e) {\n var that = this;\n var notInput = e.target.nodeName.toLowerCase() !== 'input';\n var target = $(e.target);\n var closeButton = target.hasClass('k-select') || target.hasClass('k-icon');\n if (closeButton) {\n closeButton = !target.closest('.k-select').children('.k-i-arrow-60-down').length;\n }\n if (notInput && !(closeButton && kendo.support.mobileOS)) {\n e.preventDefault();\n }\n if (!closeButton) {\n if (that.input[0] !== activeElement() && notInput) {\n that.input.focus();\n }\n if (that.options.minLength === 1) {\n that.open();\n }\n }\n },\n _inputFocus: function () {\n this._placeholder(false);\n this.wrapper.addClass(FOCUSEDCLASS);\n },\n _inputFocusout: function () {\n var that = this;\n clearTimeout(that._typingTimeout);\n that.wrapper.removeClass(FOCUSEDCLASS);\n that._placeholder(!that.listView.selectedDataItems()[0], true);\n that.close();\n if (that._state === FILTER) {\n that._state = ACCEPT;\n that.listView.skipUpdate(true);\n }\n that.element.blur();\n },\n _removeTag: function (tag) {\n var that = this;\n var state = that._state;\n var position = tag.index();\n var listView = that.listView;\n var value = listView.value()[position];\n var dataItem = that.listView.selectedDataItems()[position];\n var customIndex = that._customOptions[value];\n var option;\n if (that.trigger(DESELECT, {\n dataItem: dataItem,\n item: tag\n })) {\n that._close();\n return;\n }\n if (customIndex === undefined && (state === ACCEPT || state === FILTER)) {\n customIndex = that._optionsMap[value];\n }\n var done = function () {\n that.currentTag(null);\n that._change();\n that._close();\n };\n if (customIndex === undefined) {\n listView.select(listView.select()[position]).done(done);\n } else {\n option = that.element[0].children[customIndex];\n option.selected = false;\n listView.removeAt(position);\n tag.remove();\n done();\n }\n },\n _tagListClick: function (e) {\n var target = $(e.currentTarget);\n if (!target.children('.k-i-arrow-60-down').length) {\n this._removeTag(target.closest(LI));\n }\n },\n _clearClick: function () {\n var that = this;\n that.tagList.children().each(function (index, tag) {\n that._removeTag($(tag));\n });\n that.input.val('');\n that._search();\n that.trigger('change');\n that.focus();\n },\n _editable: function (options) {\n var that = this, disable = options.disable, readonly = options.readonly, wrapper = that.wrapper.off(ns), tagList = that.tagList.off(ns), input = that.element.add(that.input.off(ns));\n if (!readonly && !disable) {\n wrapper.removeClass(STATEDISABLED).on(HOVEREVENTS, that._toggleHover).on('mousedown' + ns + ' touchend' + ns, proxy(that._wrapperMousedown, that));\n that.input.on(KEYDOWN, proxy(that._keydown, that)).on('paste' + ns, proxy(that._search, that)).on('focus' + ns, proxy(that._inputFocus, that)).on('focusout' + ns, proxy(that._inputFocusout, that));\n that._clear.on('click' + ns, proxy(that._clearClick, that));\n input.removeAttr(DISABLED).removeAttr(READONLY).attr(ARIA_DISABLED, false);\n tagList.on(MOUSEENTER, LI, function () {\n $(this).addClass(HOVERCLASS);\n }).on(MOUSELEAVE, LI, function () {\n $(this).removeClass(HOVERCLASS);\n }).on(CLICK, 'li.k-button .k-select', proxy(that._tagListClick, that));\n } else {\n if (disable) {\n wrapper.addClass(STATEDISABLED);\n } else {\n wrapper.removeClass(STATEDISABLED);\n }\n input.attr(DISABLED, disable).attr(READONLY, readonly).attr(ARIA_DISABLED, disable);\n }\n },\n _close: function () {\n var that = this;\n if (that.options.autoClose) {\n that.close();\n } else {\n that.popup.position();\n }\n },\n _filterSource: function (filter, force) {\n if (!force) {\n force = this._retrieveData;\n }\n this._retrieveData = false;\n List.fn._filterSource.call(this, filter, force);\n },\n close: function () {\n this.popup.close();\n },\n open: function () {\n var that = this;\n if (that._request) {\n that._retrieveData = false;\n }\n if (that._retrieveData || !that.listView.bound() || that._state === ACCEPT) {\n that._open = true;\n that._state = REBIND;\n that.listView.skipUpdate(true);\n that._filterSource();\n } else if (that._allowOpening()) {\n that.popup.open();\n that._focusItem();\n }\n },\n toggle: function (toggle) {\n toggle = toggle !== undefined ? toggle : !this.popup.visible();\n this[toggle ? OPEN : CLOSE]();\n },\n refresh: function () {\n this.listView.refresh();\n },\n _listBound: function () {\n var that = this;\n var data = that.dataSource.flatView();\n var skip = that.listView.skip();\n that._render(data);\n that._renderFooter();\n that._renderNoData();\n that._toggleNoData(!data.length);\n that._resizePopup();\n if (that._open) {\n that._open = false;\n that.toggle(that._allowOpening());\n }\n that.popup.position();\n if (that.options.highlightFirst && (skip === undefined || skip === 0)) {\n that.listView.focusFirst();\n }\n if (that._touchScroller) {\n that._touchScroller.reset();\n }\n that._hideBusy();\n that._makeUnselectable();\n that.trigger('dataBound');\n },\n _inputValue: function () {\n var that = this;\n var inputValue = that.input.val();\n if (that.options.placeholder === inputValue) {\n inputValue = '';\n }\n return inputValue;\n },\n value: function (value) {\n var that = this;\n var listView = that.listView;\n var oldValue = listView.value().slice();\n var maxSelectedItems = that.options.maxSelectedItems;\n var clearFilters = listView.bound() && listView.isFiltered();\n if (value === undefined) {\n return oldValue;\n }\n that.requireValueMapper(that.options, value);\n value = that._normalizeValues(value);\n if (maxSelectedItems !== null && value.length > maxSelectedItems) {\n value = value.slice(0, maxSelectedItems);\n }\n if (clearFilters) {\n that._clearFilter();\n }\n listView.value(value);\n that._old = listView.value();\n if (!clearFilters) {\n that._fetchData();\n }\n },\n _preselect: function (data, value) {\n var that = this;\n if (!isArray(data) && !(data instanceof kendo.data.ObservableArray)) {\n data = [data];\n }\n if ($.isPlainObject(data[0]) || data[0] instanceof kendo.data.ObservableObject || !that.options.dataValueField) {\n that.dataSource.data(data);\n that.value(value || that._initialValues);\n that._retrieveData = true;\n }\n },\n _setOption: function (value, selected) {\n var option = this.element[0].children[this._optionsMap[value]];\n if (option) {\n option.selected = selected;\n }\n },\n _fetchData: function () {\n var that = this;\n var hasItems = !!that.dataSource.view().length;\n var isEmptyArray = that.listView.value().length === 0;\n if (isEmptyArray || that._request) {\n return;\n }\n if (that._retrieveData || !that._fetch && !hasItems) {\n that._fetch = true;\n that._retrieveData = false;\n that.dataSource.read().done(function () {\n that._fetch = false;\n });\n }\n },\n _isBound: function () {\n return this.listView.bound() && !this._retrieveData;\n },\n _dataSource: function () {\n var that = this, element = that.element, options = that.options, dataSource = options.dataSource || {};\n dataSource = isArray(dataSource) ? { data: dataSource } : dataSource;\n dataSource.select = element;\n dataSource.fields = [\n { field: options.dataTextField },\n { field: options.dataValueField }\n ];\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 = kendo.data.DataSource.create(dataSource).bind(PROGRESS, that._progressHandler).bind('error', that._errorHandler);\n },\n _reset: function () {\n var that = this, element = that.element, formId = element.attr('form'), form = formId ? $('#' + formId) : element.closest('form');\n if (form[0]) {\n that._resetHandler = function () {\n setTimeout(function () {\n that.value(that._initialValues);\n that._placeholder();\n });\n };\n that._form = form.on('reset', that._resetHandler);\n }\n },\n _initValue: function () {\n var value = this.options.value || this.element.val();\n this._old = this._initialValues = this._normalizeValues(value);\n },\n _normalizeValues: function (value) {\n var that = this;\n if (value === null) {\n value = [];\n } else if (value && $.isPlainObject(value)) {\n value = [that._value(value)];\n } else if (value && $.isPlainObject(value[0])) {\n value = $.map(value, function (dataItem) {\n return that._value(dataItem);\n });\n } else if (!isArray(value) && !(value instanceof ObservableArray)) {\n value = [value];\n } else if (isArray(value)) {\n value = value.slice();\n }\n return value;\n },\n _change: function () {\n var that = this, value = that.value();\n if (!compare(value, that._old)) {\n that._old = value.slice();\n that.trigger(CHANGE);\n that.element.trigger(CHANGE);\n }\n that._toggleCloseVisibility();\n },\n _click: function (e) {\n var that = this;\n var item = e.item;\n e.preventDefault();\n that._select(item).done(function () {\n that._change();\n that._close();\n });\n },\n _keydown: function (e) {\n var that = this;\n var key = e.keyCode;\n var tag = that._currentTag;\n var listView = that.listView;\n var current = listView.focus();\n var hasValue = that.input.val();\n var isRtl = kendo.support.isRtl(that.wrapper);\n var visible = that.popup.visible();\n if (key === keys.DOWN) {\n e.preventDefault();\n if (!visible) {\n that.open();\n if (!current) {\n listView.focusFirst();\n }\n return;\n }\n if (current) {\n listView.focusNext();\n if (!listView.focus()) {\n listView.focusLast();\n }\n } else {\n listView.focusFirst();\n }\n } else if (key === keys.UP) {\n if (visible) {\n if (current) {\n listView.focusPrev();\n }\n if (!listView.focus()) {\n that.close();\n }\n }\n e.preventDefault();\n } else if (key === keys.LEFT && !isRtl || key === keys.RIGHT && isRtl) {\n if (!hasValue) {\n tag = tag ? tag.prev() : $(that.tagList[0].lastChild);\n if (tag[0]) {\n that.currentTag(tag);\n }\n }\n } else if (key === keys.RIGHT && !isRtl || key === keys.LEFT && isRtl) {\n if (!hasValue && tag) {\n tag = tag.next();\n that.currentTag(tag[0] ? tag : null);\n }\n } else if (key === keys.ENTER && visible) {\n that._select(current).done(function () {\n that._change();\n that._close();\n });\n e.preventDefault();\n } else if (key === keys.ESC) {\n if (visible) {\n e.preventDefault();\n } else {\n that.currentTag(null);\n }\n that.close();\n } else if (key === keys.HOME) {\n if (visible) {\n listView.focusFirst();\n } else if (!hasValue) {\n tag = that.tagList[0].firstChild;\n if (tag) {\n that.currentTag($(tag));\n }\n }\n } else if (key === keys.END) {\n if (visible) {\n listView.focusLast();\n } else if (!hasValue) {\n tag = that.tagList[0].lastChild;\n if (tag) {\n that.currentTag($(tag));\n }\n }\n } else if ((key === keys.DELETE || key === keys.BACKSPACE) && !hasValue) {\n if (that.options.tagMode === 'single') {\n listView.value([]);\n that._change();\n that._close();\n return;\n }\n if (key === keys.BACKSPACE && !tag) {\n tag = $(that.tagList[0].lastChild);\n }\n if (tag && tag[0]) {\n that._removeTag(tag);\n }\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 clearTimeout(that._typingTimeout);\n setTimeout(function () {\n that._scale();\n });\n that._search();\n }\n },\n _hideBusy: function () {\n var that = this;\n clearTimeout(that._busy);\n that.input.attr('aria-busy', false);\n that._loading.addClass(HIDDENCLASS);\n that._request = false;\n that._busy = null;\n that._showClear();\n },\n _showBusyHandler: function () {\n this.input.attr('aria-busy', true);\n this._loading.removeClass(HIDDENCLASS);\n this._hideClear();\n },\n _showBusy: function () {\n var that = this;\n that._request = true;\n if (that._busy) {\n return;\n }\n that._busy = setTimeout(proxy(that._showBusyHandler, that), 100);\n },\n _placeholder: function (show, skipCaret) {\n var that = this;\n var input = that.input;\n var active = activeElement();\n var placeholder = that.options.placeholder;\n var inputValue = input.val();\n var isActive = input[0] === active;\n var caretPos = inputValue.length;\n if (!isActive || that.options.autoClose || inputValue === placeholder) {\n caretPos = 0;\n inputValue = '';\n }\n if (show === undefined) {\n show = false;\n if (input[0] !== active) {\n show = !that.listView.selectedDataItems()[0];\n }\n }\n that._prev = inputValue;\n input.toggleClass('k-readonly', show).val(show ? placeholder : inputValue);\n if (isActive && !skipCaret) {\n kendo.caret(input[0], caretPos, caretPos);\n }\n that._scale();\n },\n _scale: function () {\n var that = this, wrapper = that.wrapper, wrapperWidth = wrapper.width(), span = that._span.text(that.input.val()), textWidth;\n if (!wrapper.is(':visible')) {\n span.appendTo(document.documentElement);\n wrapperWidth = textWidth = span.width() + 25;\n span.appendTo(wrapper);\n } else {\n textWidth = span.width() + 25;\n }\n that.input.width(textWidth > wrapperWidth ? wrapperWidth : textWidth);\n },\n _option: function (dataValue, dataText, selected) {\n var option = '';\n },\n _render: function (data) {\n var selectedItems = this.listView.selectedDataItems();\n var values = this.listView.value();\n var length = data.length;\n var selectedIndex;\n var options = '';\n var dataItem;\n var value;\n var idx;\n if (values.length !== selectedItems.length) {\n selectedItems = this._buildSelectedItems(values);\n }\n var custom = {};\n var optionsMap = {};\n for (idx = 0; idx < length; idx++) {\n dataItem = data[idx];\n value = this._value(dataItem);\n selectedIndex = this._selectedItemIndex(value, selectedItems);\n if (selectedIndex !== -1) {\n selectedItems.splice(selectedIndex, 1);\n }\n optionsMap[value] = idx;\n options += this._option(value, this._text(dataItem), selectedIndex !== -1);\n }\n if (selectedItems.length) {\n for (idx = 0; idx < selectedItems.length; idx++) {\n dataItem = selectedItems[idx];\n value = this._value(dataItem);\n custom[value] = length;\n optionsMap[value] = length;\n length += 1;\n options += this._option(value, this._text(dataItem), true);\n }\n }\n this._customOptions = custom;\n this._optionsMap = optionsMap;\n this.element.html(options);\n },\n _buildSelectedItems: function (values) {\n var valueField = this.options.dataValueField;\n var textField = this.options.dataTextField;\n var result = [];\n var item;\n for (var idx = 0; idx < values.length; idx++) {\n item = {};\n item[valueField] = values[idx];\n item[textField] = values[idx];\n result.push(item);\n }\n return result;\n },\n _selectedItemIndex: function (value, selectedItems) {\n var valueGetter = this._value;\n var idx = 0;\n for (; idx < selectedItems.length; idx++) {\n if (value === valueGetter(selectedItems[idx])) {\n return idx;\n }\n }\n return -1;\n },\n _search: function () {\n var that = this;\n that._typingTimeout = setTimeout(function () {\n var value = that._inputValue();\n if (that._prev !== value) {\n that._prev = value;\n that.search(value);\n that._toggleCloseVisibility();\n }\n }, that.options.delay);\n },\n _toggleCloseVisibility: function () {\n if (this.value().length || this.input.val() && this.input.val() !== this.options.placeholder) {\n this._showClear();\n } else {\n this._hideClear();\n }\n },\n _allowOpening: function () {\n return this._allowSelection() && List.fn._allowOpening.call(this);\n },\n _allowSelection: function () {\n var max = this.options.maxSelectedItems;\n return max === null || max > this.listView.value().length;\n },\n _angularTagItems: function (cmd) {\n var that = this;\n that.angular(cmd, function () {\n return {\n elements: that.tagList[0].children,\n data: $.map(that.dataItems(), function (dataItem) {\n return { dataItem: dataItem };\n })\n };\n });\n },\n _selectValue: function (added, removed) {\n var that = this;\n var values = that.value();\n var total = that.dataSource.total();\n var tagList = that.tagList;\n var getter = that._value;\n var removedItem;\n var addedItem;\n var idx;\n that._angularTagItems('cleanup');\n if (that.options.tagMode === 'multiple') {\n for (idx = removed.length - 1; idx > -1; idx--) {\n removedItem = removed[idx];\n tagList[0].removeChild(tagList[0].children[removedItem.position]);\n that._setOption(getter(removedItem.dataItem), false);\n }\n for (idx = 0; idx < added.length; idx++) {\n addedItem = added[idx];\n tagList.append(that.tagTemplate(addedItem.dataItem));\n that._setOption(getter(addedItem.dataItem), true);\n }\n } else {\n if (!that._maxTotal || that._maxTotal < total) {\n that._maxTotal = total;\n }\n tagList.html('');\n if (values.length) {\n tagList.append(that.tagTemplate({\n values: values,\n dataItems: that.dataItems(),\n maxTotal: that._maxTotal,\n currentTotal: total\n }));\n }\n for (idx = removed.length - 1; idx > -1; idx--) {\n that._setOption(getter(removed[idx].dataItem), false);\n }\n for (idx = 0; idx < added.length; idx++) {\n that._setOption(getter(added[idx].dataItem), true);\n }\n }\n that._angularTagItems('compile');\n that._placeholder();\n },\n _select: function (candidate) {\n var resolved = $.Deferred().resolve();\n if (!candidate) {\n return resolved;\n }\n var that = this;\n var listView = that.listView;\n var dataItem = listView.dataItemByIndex(listView.getElementIndex(candidate));\n var isSelected = candidate.hasClass('k-state-selected');\n if (that._state === REBIND) {\n that._state = '';\n }\n if (!that._allowSelection()) {\n return resolved;\n }\n if (that.trigger(isSelected ? DESELECT : SELECT, {\n dataItem: dataItem,\n item: candidate\n })) {\n that._close();\n return resolved;\n }\n return listView.select(candidate).done(function () {\n that._placeholder();\n if (that._state === FILTER) {\n that._state = ACCEPT;\n listView.skipUpdate(true);\n }\n });\n },\n _input: function () {\n var that = this;\n var element = that.element;\n var accessKey = element[0].accessKey;\n var input = that._innerWrapper.children('input.k-input');\n if (!input[0]) {\n input = $('').appendTo(that._innerWrapper);\n }\n element.removeAttr('accesskey');\n that._focused = that.input = input.attr({\n 'accesskey': accessKey,\n 'autocomplete': 'off',\n 'role': 'listbox',\n 'title': element[0].title,\n 'aria-expanded': false\n });\n },\n _tagList: function () {\n var that = this, tagList = that._innerWrapper.children('ul');\n if (!tagList[0]) {\n tagList = $('