{"version":3,"sources":["kendo.multiselect.js"],"names":["f","define","$","undefined","compare","a","b","length","kendo","window","ui","List","keys","extend","A","activeElement","_activeElement","ObservableArray","data","proxy","ID","LI","ACCEPT","FILTER","REBIND","OPEN","CLOSE","CHANGE","PROGRESS","SELECT","DESELECT","ARIA_DISABLED","ARIA_READONLY","FOCUSEDCLASS","SELECTEDCLASS","HIDDENCLASS","HOVERCLASS","STATEDISABLED","NOCLICKCLASS","DISABLED","READONLY","AUTOCOMPLETEVALUE","ns","CLICK","KEYDOWN","MOUSEENTER","MOUSELEAVE","HOVEREVENTS","quotRegExp","isArray","styles","MultiSelect","init","element","options","id","disabled","that","this","fn","call","_optionsMap","_customOptions","_wrapper","_tagList","_input","_textContainer","_loader","_clearButton","_tabindex","input","attr","hide","placeholder","_tagID","tagList","_initialOpen","_aria","_ariaSetLive","_dataSource","_ignoreCase","_popup","_tagTemplate","requireValueMapper","_initList","_reset","_enable","_placeholder","autoBind","dataSource","fetch","value","_preselect","parents","is","enable","_ariaSetSize","notify","_toggleCloseVisibility","name","tagMode","enabled","autoClose","highlightFirst","dataTextField","dataValueField","filter","ignoreCase","minLength","messages","singleTag","clear","deleteTag","noData","enforceMinLength","delay","maxSelectedItems","height","animation","virtual","itemTemplate","tagTemplate","groupTemplate","fixedGroupTemplate","clearButton","autoWidth","popup","events","setDataSource","_state","persistTagList","listView","setOptions","listOptions","_listOptions","_accessors","currentTag","candidate","_currentTag","removeClass","removeAttr","find","addClass","dataItems","selectedDataItems","destroy","clearTimeout","_busy","_typingTimeout","wrapper","off","_clear","ul","aria-owns","aria-controls","aria-live","_isFilterEnabled","aria-multiselectable","_ariaLabel","_activateItem","visible","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","cancelable","preventDefault","focus","open","_inputFocus","_inputFocusout","close","skipUpdate","bound","isFiltered","_clearFilter","blur","_removeTag","tag","shouldTrigger","option","listViewChild","done","state","position","customIndex","listViewChildren","trigger","_close","_change","select","selected","removeAt","_removedAddedIndexes","splice","classList","remove","_updateTagListHTML","_tagListClick","stopPropagation","currentTarget","_clearValue","_clearSingleTagValue","each","val","_search","_hideClear","tags","first","_focusHandler","active","isActive","_editable","disable","readonly","add","toggleClass","on","_toggleHover","_keydown","_filterSource","force","_retrieveData","_activeItem","listViewFilterValue","filterValue","listViewFilter","filters","_request","_open","_focusItem","_allowOpening","isPlainObject","_hovered","toggle","refresh","_listBound","_renderFooter","_renderNoData","_toggleNoData","_resizePopup","_updateItemFocus","_touchScroller","reset","_hideBusy","skip","isFirstPage","focusFirst","_inputValue","inputValue","oldValue","clearFilters","_normalizeValues","_old","_valueBeforeCascade","_fetchData","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","_getActiveItem","_getSelectedIndices","_selectedIndices","_selectedIndexes","activeItemIdx","activeIndex","currentIndex","direction","key","keyCode","hasValue","isRtl","dir","ENTER","_multipleSelection","DOWN","shiftKey","getElementIndex","focusNext","_selectRange","focusLast","UP","focusPrev","LEFT","RIGHT","prev","lastChild","next","ctrlKey","altKey","SPACEBAR","ESC","HOME","firstChild","END","DELETE","BACKSPACE","PAGEDOWN","PAGEUP","_scale","scrollWith","screenHeight","_loading","_showBusyHandler","show","skipCaret","caretPos","_prev","caret","textWidth","wrapperWidth","width","span","_span","text","appendTo","document","documentElement","_option","dataValue","dataText","indexOf","replace","htmlEncode","selectedIndex","custom","selectedItems","values","_buildSelectedItems","_selectedItemIndex","_text","valueField","textField","result","push","search","_showClear","_allowSelection","max","_angularTagItems","cmd","angular","elements","updatePersistTagList","removedItem","addedItem","total","getter","removeChild","append","_maxTotal","maxTotal","currentTotal","isSelected","resolved","Deferred","resolve","dataItemByIndex","startIndex","endIndex","indices","indicesToSelect","selectIndices","forEach","accessKey","_inputWrapper","autocomplete","_focused","role","title","aria-autocomplete","defaultTemplate","hasDataSource","isMultiple","useWithBlock","insertAfter","computedStyles","getComputedStyles","visibility","top","left","css","parent","wrap","style","cssText","aria-expanded","insertBefore","className","_closeHandler","_openHandler","_adjustListWidth","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 'kendo.virtuallist'\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 = $.extend({ A: 65 }, 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', ARIA_READONLY = 'aria-readonly', FOCUSEDCLASS = 'k-state-focused', SELECTEDCLASS = 'k-state-selected', HIDDENCLASS = 'k-hidden', HOVERCLASS = 'k-state-hover', STATEDISABLED = 'k-state-disabled', NOCLICKCLASS = 'k-no-click', DISABLED = 'disabled', READONLY = 'readonly', AUTOCOMPLETEVALUE = 'off', 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 that.input.attr('aria-describedby', id);\n }\n that._initialOpen = true;\n that._aria();\n that._ariaSetLive();\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 that._ariaSetSize(that.value().length);\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 messages: {\n 'singleTag': 'item(s) selected',\n 'clear': 'clear',\n 'deleteTag': 'delete',\n 'noData': 'No data found.'\n },\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 autoWidth: false,\n popup: null\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.persistTagList = false;\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();\n this._tagTemplate();\n this._placeholder();\n this._clearButton();\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._currentTag.find('.k-select').attr('aria-hidden', true);\n that.input.removeAttr('aria-activedescendant');\n }\n if (candidate) {\n candidate.addClass(FOCUSEDCLASS).attr(ID, that._tagID);\n candidate.find('.k-select').removeAttr('aria-hidden');\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 _aria: function () {\n var that = this, element = that.wrapper.find('.k-multiselect-wrap'), id = that.ul[0].id;\n element.attr({\n 'aria-owns': id,\n 'aria-controls': id\n });\n that.ul.attr({\n 'aria-live': !that._isFilterEnabled() ? 'off' : 'polite',\n 'aria-multiselectable': true\n });\n that.input.attr('aria-controls', id);\n that._ariaLabel();\n },\n _activateItem: function () {\n if (this.popup.visible()) {\n List.fn._activateItem.call(this);\n }\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) && e.cancelable) {\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 && !that.popup.visible()) {\n that.open();\n }\n }\n },\n _inputFocus: function () {\n this._placeholder(false, true);\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 if (that.listView.bound() && that.listView.isFiltered()) {\n that.persistTagList = true;\n that._clearFilter();\n }\n that.element.blur();\n },\n _removeTag: function (tag, shouldTrigger) {\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 listViewChildren = listView.element[0].children;\n var option;\n var listViewChild;\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 if (shouldTrigger) {\n that._change();\n }\n that._close();\n };\n if (customIndex === undefined && listView.select().length) {\n that.persistTagList = false;\n listView.select(listView.select()[position]).done(done);\n } else {\n option = that.element[0].children[customIndex];\n if (option) {\n option.selected = false;\n }\n listView.removeAt(position);\n if (listView._removedAddedIndexes) {\n listView._removedAddedIndexes.splice(position, 1);\n }\n listViewChild = listViewChildren[customIndex];\n if (listViewChild) {\n listViewChildren[customIndex].classList.remove('k-state-selected');\n }\n if (that.options.tagMode !== 'single') {\n tag.remove();\n } else {\n that._updateTagListHTML();\n }\n done();\n }\n },\n _tagListClick: function (e) {\n e.preventDefault();\n e.stopPropagation();\n var target = $(e.currentTarget);\n if (!target.children('.k-i-arrow-60-down').length) {\n this._removeTag(target.closest(LI), true);\n }\n },\n _clearValue: function () {\n var that = this;\n if (that.options.tagMode === 'single') {\n that._clearSingleTagValue();\n } else {\n that.tagList.children().each(function (index, tag) {\n that._removeTag($(tag), false);\n });\n }\n that.input.val('');\n that._search();\n that._change();\n that.focus();\n that._hideClear();\n if (that._state === FILTER) {\n that._state = ACCEPT;\n }\n },\n _clearSingleTagValue: function () {\n var that = this;\n var items = that.dataItems();\n var tags = that.tagList.children();\n var persistTagList = that.persistTagList;\n for (var i = 0; i < items.length; i += 1) {\n if (that.trigger(DESELECT, {\n dataItem: items[i],\n item: tags.first()\n })) {\n that._close();\n return;\n }\n }\n if (persistTagList) {\n that.persistTagList = false;\n }\n that.listView.value([]);\n that.persistTagList = persistTagList;\n },\n _focusHandler: function () {\n var input = this.input;\n var active = activeElement();\n var isActive = input[0] === active;\n if (!isActive) {\n this.input.focus();\n }\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).removeClass(NOCLICKCLASS).on(HOVEREVENTS, that._toggleHover).on('mousedown' + ns + ' touchend' + ns, proxy(that._wrapperMousedown, that)).on(CLICK, proxy(that._focusHandler, that));\n that.input.on(KEYDOWN, proxy(that._keydown, that)).on('paste' + ns, proxy(that._search, that)).on('input' + ns, proxy(that._search, that)).on('focus' + ns, proxy(that._inputFocus, that)).on('focusout' + ns, proxy(that._inputFocusout, that));\n that._clear.on(CLICK + ' touchend' + ns, proxy(that._clearValue, that));\n input.removeAttr(DISABLED).removeAttr(READONLY).attr(ARIA_DISABLED, false).attr(ARIA_READONLY, false);\n tagList.on(MOUSEENTER, LI, function () {\n $(this).addClass(HOVERCLASS);\n }).on(MOUSELEAVE, LI, function () {\n $(this).removeClass(HOVERCLASS);\n }).on(CLICK + ' touchend' + ns, 'li.k-button .k-select', proxy(that._tagListClick, that));\n } else {\n wrapper.toggleClass(STATEDISABLED, disable).toggleClass(NOCLICKCLASS, readonly);\n input.attr(DISABLED, disable).attr(READONLY, readonly).attr(ARIA_DISABLED, disable).attr(ARIA_READONLY, readonly);\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._activeItem = null;\n this.input.removeAttr('aria-activedescendant');\n this.popup.close();\n },\n open: function () {\n var that = this, filterValue = that.input.val().toLowerCase(), listViewFilter = that.listView.dataSource.filter(), listViewFilterValue;\n if (listViewFilter && listViewFilter.filters.length > 0) {\n listViewFilterValue = listViewFilter.filters[0].value.toString().toLowerCase();\n }\n if (that._request) {\n that._retrieveData = false;\n }\n if (that._retrieveData || !that.listView.bound() || that._state === ACCEPT && filterValue !== listViewFilterValue) {\n that._open = true;\n that._state = REBIND;\n that.listView.skipUpdate(true);\n that.persistTagList = that._initialOpen && !that.listView.bound() ? false : true;\n that._filterSource();\n that._focusItem();\n } else if (that._allowOpening()) {\n if (that._initialOpen && !that.options.autoBind && !that.options.virtual && that.options.value && !$.isPlainObject(that.options.value[0])) {\n that.value(that.value() || that._initialValues);\n }\n that.popup._hovered = true;\n that._initialOpen = false;\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 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 that._updateItemFocus();\n if (that._touchScroller) {\n that._touchScroller.reset();\n }\n that._hideBusy();\n that.trigger('dataBound');\n },\n _updateItemFocus: function () {\n var that = this, data = that.dataSource.flatView(), skip = that.listView.skip(), isFirstPage = skip === undefined || skip === 0;\n if (data.length && isFirstPage) {\n if (!that.options.highlightFirst) {\n that.listView.focus(-1);\n } else {\n that.listView.focusFirst();\n }\n }\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.persistTagList = false;\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 = that._valueBeforeCascade = value.slice();\n if (!clearFilters) {\n that._fetchData();\n }\n that._ariaSetSize(that.value().length);\n that._toggleCloseVisibility();\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.popup.position();\n that._ariaSetSize(value.length);\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._activeItem = item;\n that._change();\n that._close();\n });\n },\n _getActiveItem: function () {\n return this._activeItem || $(this.listView.items()[this._getSelectedIndices().length - 1]) || this.listView.focus();\n },\n _getSelectedIndices: function () {\n return this.listView._selectedIndices || this.listView._selectedIndexes;\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 hasValue = that.input.val();\n var isRtl = kendo.support.isRtl(that.wrapper);\n var visible = that.popup.visible();\n var dir = 0;\n var activeItemIdx;\n if (key !== keys.ENTER) {\n this._multipleSelection = false;\n }\n if (key === keys.DOWN) {\n e.preventDefault();\n if (!visible) {\n that.open();\n if (!listView.focus()) {\n listView.focusFirst();\n }\n return;\n }\n if (listView.focus()) {\n if (!that._activeItem && e.shiftKey) {\n that._activeItem = listView.focus();\n dir = -1;\n }\n activeItemIdx = listView.getElementIndex(that._getActiveItem().first());\n listView.focusNext();\n if (!listView.focus()) {\n listView.focusLast();\n } else {\n if (e.shiftKey) {\n this._multipleSelection = true;\n that._selectRange(activeItemIdx, listView.getElementIndex(listView.focus().first()) + dir);\n }\n }\n } else {\n listView.focusFirst();\n }\n } else if (key === keys.UP) {\n if (visible) {\n if (!that._activeItem && e.shiftKey) {\n that._activeItem = listView.focus();\n dir = 1;\n }\n activeItemIdx = listView.getElementIndex(that._getActiveItem().first());\n listView.focusPrev();\n if (!listView.focus()) {\n that.close();\n } else {\n if (e.shiftKey) {\n this._multipleSelection = true;\n that._selectRange(activeItemIdx, listView.getElementIndex(listView.focus().first()) + dir);\n }\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 (e.ctrlKey && !e.altKey && key === keys.A && visible && !that.options.virtual) {\n this._multipleSelection = true;\n if (this._getSelectedIndices().length === listView.items().length) {\n that._activeItem = null;\n }\n if (listView.items().length) {\n that._selectRange(0, listView.items().length - 1);\n }\n } else if (key === keys.ENTER && visible) {\n if (!listView.focus()) {\n return;\n }\n e.preventDefault();\n if (this._multipleSelection) {\n this._multipleSelection = false;\n if (listView.focus().hasClass(SELECTEDCLASS)) {\n that._close();\n return;\n }\n }\n that._select(listView.focus()).done(function () {\n that._change();\n that._close();\n });\n } else if (key === keys.SPACEBAR && e.ctrlKey && visible) {\n if (that._activeItem && listView.focus() && listView.focus()[0] === that._activeItem[0]) {\n that._activeItem = null;\n }\n if (!$(listView.focus()).hasClass(SELECTEDCLASS)) {\n that._activeItem = listView.focus();\n }\n that._select(listView.focus()).done(function () {\n that._change();\n });\n e.preventDefault();\n } else if (key === keys.SPACEBAR && e.shiftKey && visible) {\n var activeIndex = listView.getElementIndex(that._getActiveItem());\n var currentIndex = listView.getElementIndex(listView.focus());\n if (activeIndex !== undefined && currentIndex !== undefined) {\n that._selectRange(activeIndex, currentIndex);\n }\n e.preventDefault();\n } else if (key === keys.ESC) {\n if (visible) {\n e.preventDefault();\n } else {\n that.tagList.children().each(function (index, tag) {\n that._removeTag($(tag), false);\n });\n that._change();\n }\n that.close();\n } else if (key === keys.HOME) {\n if (visible) {\n if (!listView.focus()) {\n that.close();\n } else {\n if (e.ctrlKey && e.shiftKey && !that.options.virtual) {\n that._selectRange(listView.getElementIndex(listView.focus()[0]), 0);\n }\n listView.focusFirst();\n }\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 if (!listView.focus()) {\n that.close();\n } else {\n if (e.ctrlKey && e.shiftKey && !that.options.virtual) {\n that._selectRange(listView.getElementIndex(listView.focus()[0]), listView.element.children().length - 1);\n }\n listView.focusLast();\n }\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 that._state = ACCEPT;\n if (that.options.tagMode === 'single') {\n that._clearSingleTagValue();\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, true);\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._toggleCloseVisibility();\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.find('.k-multiselect-wrap'), 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 = ' 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 updatePersistTagList: function (added, removed) {\n if (this.persistTagList.added && this.persistTagList.added.length === removed.length && this.persistTagList.removed && this.persistTagList.removed.length === added.length) {\n this.persistTagList = false;\n } else {\n this.listView._removedAddedIndexes = this._old.slice();\n this.persistTagList = {\n added: added,\n removed: removed\n };\n }\n },\n _selectValue: function (added, removed) {\n var that = this;\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 if (this.persistTagList) {\n this.updatePersistTagList(added, removed);\n return;\n }\n that._angularTagItems('cleanup');\n if (that.options.tagMode === 'multiple') {\n for (idx = removed.length - 1; idx > -1; idx--) {\n removedItem = removed[idx];\n if (tagList.children().length) {\n tagList[0].removeChild(tagList[0].children[removedItem.position]);\n that._setOption(getter(removedItem.dataItem), false);\n }\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 this._updateTagListHTML();\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 _updateTagListHTML: function () {\n var that = this;\n var values = that.value();\n var total = that.dataSource.total();\n var tagList = that.tagList;\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 },\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() && !isSelected) {\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 that.persistTagList = false;\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 _selectRange: function (startIndex, endIndex) {\n var that = this;\n var listView = this.listView;\n var maxSelectedItems = this.options.maxSelectedItems;\n var indices = this._getSelectedIndices().slice();\n var indicesToSelect = [];\n var i;\n var selectIndices = function (indices) {\n listView.select(indices).done(function () {\n indices.forEach(function (index) {\n var dataItem = listView.dataItemByIndex(index);\n var candidate = listView.element.children()[index];\n var isSelected = $(candidate).hasClass('k-state-selected');\n that.trigger(isSelected ? SELECT : DESELECT, {\n dataItem: dataItem,\n item: $(candidate)\n });\n });\n that._change();\n });\n };\n if (indices.length - 1 === endIndex - startIndex) {\n return selectIndices(indices);\n }\n if (startIndex < endIndex) {\n for (i = startIndex; i <= endIndex; i++) {\n indicesToSelect.push(i);\n }\n } else {\n for (i = startIndex; i >= endIndex; i--) {\n indicesToSelect.push(i);\n }\n }\n if (maxSelectedItems !== null && indicesToSelect.length > maxSelectedItems) {\n indicesToSelect = indicesToSelect.slice(0, maxSelectedItems);\n }\n for (i = 0; i < indicesToSelect.length; i++) {\n var index = indicesToSelect[i];\n if (this._getSelectedIndices().indexOf(index) == -1) {\n indices.push(index);\n } else {\n indices.splice(indices.indexOf(index), 1);\n }\n }\n if (!indices.length) {\n return;\n }\n that.persistTagList = false;\n return selectIndices(indices);\n },\n _input: function () {\n var that = this;\n var element = that.element;\n var accessKey = element[0].accessKey;\n var input = that._inputWrapper.children('input.k-input');\n var autocomplete = this.options.filter === 'none' ? 'none' : 'list';\n if (!input[0]) {\n input = $('').appendTo(that._inputWrapper);\n }\n element.removeAttr('accesskey');\n that._focused = that.input = input.attr({\n 'autocomplete': AUTOCOMPLETEVALUE,\n 'role': 'textbox',\n 'title': element[0].title,\n 'aria-autocomplete': autocomplete\n });\n if (accessKey) {\n that._focused.attr('accesskey', accessKey);\n }\n },\n _tagList: function () {\n var that = this, tagList = that._inputWrapper.children('ul');\n if (!tagList[0]) {\n tagList = $('