{"version":3,"sources":["kendo.dropdownlist.js"],"names":["f","define","$","undefined","assign","instance","fields","value","field","idx","lastIndex","length","normalizeIndex","index","sameCharsOnly","word","character","charAt","kendo","window","ui","List","Select","support","activeElement","_activeElement","ObservableObject","data","keys","ns","nsFocusEvent","DISABLED","READONLY","CHANGE","FOCUSED","DEFAULT","STATEDISABLED","ARIA_DISABLED","ARIA_READONLY","CLICKEVENTS","HOVEREVENTS","TABINDEX","STATE_FILTER","STATE_ACCEPT","MSG_INVALID_OPTION_LABEL","proxy","OPEN","CLOSE","DropDownList","extend","init","element","options","optionLabel","text","disabled","that","this","Array","isArray","dataSource","fn","call","on","_focusHandler","_focusInputHandler","_focusInput","_optionLabel","_inputTemplate","_reset","_prev","_word","_wrapper","_tabindex","wrapper","attr","_span","_popup","_mobile","_dataSource","_ignoreCase","_filterHeader","_aria","_enable","_attachFocusHandlers","_oldIndex","selectedIndex","_initialIndex","requireValueMapper","_initList","listView","one","_attachAriaActiveDescendant","_cascade","e","sender","bound","hasOptionLabel","_textAccessor","_optionLabelText","autoBind","fetch","_isSelect","children","parents","is","enable","bind","preventDefault","notify","name","enabled","delay","height","dataTextField","dataValueField","cascadeFrom","cascadeFromField","cascadeFromParentField","ignoreCase","animation","filter","minLength","enforceMinLength","virtual","template","valueTemplate","optionLabelTemplate","groupTemplate","fixedGroupTemplate","autoWidth","popup","filterTitle","events","setOptions","_listOptions","_accessors","select","destroy","off","_inputWrapper","_arrow","_arrowIcon","filterInput","open","isFiltered","filters","visible","_state","_allowOpening","_focusFilter","_hovered","_optionID","_resizeFilterInput","_focusItem","_open","val","refresh","_filterSource","close","inputId","find","_focusElement","isInputActive","caret","originalPrevent","_prevent","css","trigger","toggle","_toggle","current","candidate","focus","_focus","dataItem","selectedDataItems","getByUid","hasClass","items","flatView","_optionLabelDataItem","loweredText","toLowerCase","_select","_text","done","_clearFilter","_accessor","_request","_valueSetter","unbind","_isFilterEnabled","_fetchData","_old","_valueBeforeCascade","expr","prependTo","list","html","_click","_toggleHover","angular","elements","remove","isPlainObject","_assignInstance","_buildOptions","optionLabelValue","_value","_options","unifyType","_customOption","_custom","_listBound","initialIndex","filtered","_presetValue","_renderFooter","_renderNoData","_toggleNoData","_resizePopup","position","_fetch","_selectValue","_hideBusy","_listChange","_filterPaste","_search","_focusinHandler","_focusoutHandler","addClass","isIFrame","self","top","clearTimeout","_typingTimeout","mobileOS","ios","_change","_blur","removeClass","_wrapperMousedown","_wrapperClick","_focused","_editable","disable","readonly","add","dropDownWrapper","removeAttr","prop","_keydown","mousedown","_keypress","handled","key","keyCode","altKey","isPopupVisible","LEFT","UP","RIGHT","DOWN","ESC","ENTER","SPACEBAR","_move","HOME","_firstItem","END","_lastItem","_getElementDataItem","item","_matchText","indexOf","_shuffleData","splitIndex","optionDataItem","concat","slice","_selectNext","oldFocusedItem","dataLength","isInLoop","_last","startIndex","toJSON","which","String","fromCharCode","charCode","_popupOpen","wrap","closest","dataItemByIndex","getElementIndex","currentTarget","_userTriggered","active","compareElement","touchEnabled","touch","MSPointers","pointers","_searchByWord","_inputValue","setTimeout","search","_get","found","isFunction","jQueryCandidate","focusFirst","_resetOptionLabel","focusLast","_nextItem","focusIndex","focusNext","_prevItem","focusPrev","focusedItem","highlightFirst","mapValueTo","scrollToIndex","content","scrollTop","additionalClass","keepState","_dataValue","_triggerCascade","root","eq","effects","android","meego","wp","icon","parent","placeholder","title","role","aria-haspopup","aria-autocomplete","prepend","append","span","SELECTOR","id","guid","firstChild","DOMelement","style","cssText","className","accesskey","unselectable","aria-expanded","hide","_clearSelection","_openHandler","_adjustListWidth","ul","_closeHandler","useWithBlock","Error","getElements","optionLabelText","get","_preselect","setValue","split","plugin","jQuery","amd","a1","a2","a3"],"mappings":"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","file":"kendo.dropdownlist.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.dropdownlist', [\n 'kendo.list',\n 'kendo.mobile.scroller',\n 'kendo.virtuallist'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'dropdownlist',\n name: 'DropDownList',\n category: 'web',\n description: 'The DropDownList widget displays a list of values and allows the selection of a single value from the list.',\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, Select = ui.Select, support = kendo.support, activeElement = kendo._activeElement, ObservableObject = kendo.data.ObservableObject, keys = kendo.keys, ns = '.kendoDropDownList', nsFocusEvent = ns + 'FocusEvent', DISABLED = 'disabled', READONLY = 'readonly', CHANGE = 'change', FOCUSED = 'k-state-focused', DEFAULT = 'k-state-default', STATEDISABLED = 'k-state-disabled', ARIA_DISABLED = 'aria-disabled', ARIA_READONLY = 'aria-readonly', CLICKEVENTS = 'click' + ns + ' touchend' + ns, HOVEREVENTS = 'mouseenter' + ns + ' mouseleave' + ns, TABINDEX = 'tabindex', STATE_FILTER = 'filter', STATE_ACCEPT = 'accept', MSG_INVALID_OPTION_LABEL = 'The `optionLabel` option is not valid due to missing fields. Define a custom optionLabel as shown here http://docs.telerik.com/kendo-ui/api/javascript/ui/dropdownlist#configuration-optionLabel', proxy = $.proxy, OPEN = 'open', CLOSE = 'close';\n var DropDownList = Select.extend({\n init: function (element, options) {\n var that = this;\n var index = options && options.index;\n var optionLabel, text, disabled;\n that.ns = ns;\n options = Array.isArray(options) ? { dataSource: options } : options;\n Select.fn.init.call(that, element, options);\n options = that.options;\n element = that.element.on('focus' + ns, proxy(that._focusHandler, that));\n that._focusInputHandler = $.proxy(that._focusInput, that);\n that.optionLabel = $();\n that._optionLabel();\n that._inputTemplate();\n that._reset();\n that._prev = '';\n that._word = '';\n that._wrapper();\n that._tabindex();\n that.wrapper.data(TABINDEX, that.wrapper.attr(TABINDEX));\n that._span();\n that._popup();\n that._mobile();\n that._dataSource();\n that._ignoreCase();\n that._filterHeader();\n that._aria();\n that.wrapper.attr('aria-live', 'polite');\n that._enable();\n that._attachFocusHandlers();\n that._oldIndex = that.selectedIndex = -1;\n if (index !== undefined) {\n options.index = index;\n }\n that._initialIndex = options.index;\n that.requireValueMapper(that.options);\n that._initList();\n that.listView.one('dataBound', proxy(that._attachAriaActiveDescendant, that));\n that._cascade();\n that.one('set', function (e) {\n if (!e.sender.listView.bound() && that.hasOptionLabel()) {\n that._textAccessor(that._optionLabelText());\n }\n });\n if (options.autoBind) {\n that.dataSource.fetch();\n } else if (that.selectedIndex === -1) {\n text = options.text || '';\n if (!text) {\n optionLabel = options.optionLabel;\n if (optionLabel && options.index === 0) {\n text = optionLabel;\n } else if (that._isSelect) {\n text = element.children(':selected').text();\n }\n }\n that._textAccessor(text);\n }\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 kendo.notify(that);\n },\n options: {\n name: 'DropDownList',\n enabled: true,\n autoBind: true,\n index: 0,\n text: null,\n value: null,\n delay: 500,\n height: 200,\n dataTextField: '',\n dataValueField: '',\n optionLabel: '',\n cascadeFrom: '',\n cascadeFromField: '',\n cascadeFromParentField: '',\n ignoreCase: true,\n animation: {},\n filter: 'none',\n minLength: 1,\n enforceMinLength: false,\n virtual: false,\n template: null,\n valueTemplate: null,\n optionLabelTemplate: null,\n groupTemplate: '#:data#',\n fixedGroupTemplate: '#:data#',\n autoWidth: false,\n popup: null,\n filterTitle: null\n },\n events: [\n 'open',\n 'close',\n CHANGE,\n 'select',\n 'filtering',\n 'dataBinding',\n 'dataBound',\n 'cascade',\n 'set',\n 'kendoKeydown'\n ],\n setOptions: function (options) {\n Select.fn.setOptions.call(this, options);\n this.listView.setOptions(this._listOptions(options));\n this._optionLabel();\n this._inputTemplate();\n this._accessors();\n this._filterHeader();\n this._enable();\n this._aria();\n if (!this.value() && this.hasOptionLabel()) {\n this.select(0);\n }\n },\n destroy: function () {\n var that = this;\n Select.fn.destroy.call(that);\n that.wrapper.off(ns);\n that.wrapper.off(nsFocusEvent);\n that.element.off(ns);\n that._inputWrapper.off(ns);\n that._arrow.off();\n that._arrow = null;\n that._arrowIcon = null;\n that.optionLabel.off();\n if (that.filterInput) {\n that.filterInput.off(nsFocusEvent);\n }\n },\n open: function () {\n var that = this;\n var isFiltered = that.dataSource.filter() ? that.dataSource.filter().filters.length > 0 : false;\n var listView = this.listView;\n if (that.popup.visible()) {\n return;\n }\n if (!that.listView.bound() || that._state === STATE_ACCEPT) {\n that._open = true;\n that._state = 'rebind';\n if (that.filterInput) {\n that.filterInput.val('');\n that._prev = '';\n }\n if (that.filterInput && that.options.minLength !== 1 && !isFiltered) {\n that.refresh();\n that.popup.one('activate', that._focusInputHandler);\n that.wrapper.attr('aria-activedescendant', listView._optionID);\n that.popup.open();\n that._resizeFilterInput();\n } else {\n that._filterSource();\n }\n } else if (that._allowOpening()) {\n that._focusFilter = true;\n that.popup.one('activate', that._focusInputHandler);\n that.popup._hovered = true;\n that.wrapper.attr('aria-activedescendant', listView._optionID);\n that.popup.open();\n that._resizeFilterInput();\n that._focusItem();\n }\n },\n close: function () {\n this._attachAriaActiveDescendant();\n this.popup.close();\n },\n _attachAriaActiveDescendant: function () {\n var wrapper = this.wrapper, inputId = wrapper.find('.k-input').attr('id');\n wrapper.attr('aria-activedescendant', inputId);\n },\n _focusInput: function () {\n this._focusElement(this.filterInput);\n },\n _resizeFilterInput: function () {\n var filterInput = this.filterInput;\n var originalPrevent = this._prevent;\n if (!filterInput) {\n return;\n }\n var isInputActive = this.filterInput[0] === activeElement();\n var caret = kendo.caret(this.filterInput[0])[0];\n this._prevent = true;\n filterInput.css('display', 'none').css('width', this.popup.element.css('width')).css('display', 'inline-block');\n if (isInputActive) {\n filterInput.trigger('focus');\n kendo.caret(filterInput[0], caret);\n }\n this._prevent = originalPrevent;\n },\n _allowOpening: function () {\n return this.hasOptionLabel() || this.filterInput || Select.fn._allowOpening.call(this);\n },\n toggle: function (toggle) {\n this._toggle(toggle, true);\n },\n current: function (candidate) {\n var current;\n if (candidate === undefined) {\n current = this.listView.focus();\n if (!current && this.selectedIndex === 0 && this.hasOptionLabel()) {\n return this.optionLabel;\n }\n return current;\n }\n this._focus(candidate);\n },\n dataItem: function (index) {\n var that = this;\n var dataItem = null;\n if (index === null) {\n return index;\n }\n if (index === undefined) {\n dataItem = that.listView.selectedDataItems()[0];\n } else {\n if (typeof index !== 'number') {\n if (that.options.virtual) {\n return that.dataSource.getByUid($(index).data('uid'));\n }\n if (index.hasClass('k-list-optionlabel')) {\n index = -1;\n } else {\n index = $(that.items()).index(index);\n }\n } else if (that.hasOptionLabel()) {\n index -= 1;\n }\n dataItem = that.dataSource.flatView()[index];\n }\n if (!dataItem) {\n dataItem = that._optionLabelDataItem();\n }\n return dataItem;\n },\n refresh: function () {\n this.listView.refresh();\n },\n text: function (text) {\n var that = this;\n var loweredText;\n var ignoreCase = that.options.ignoreCase;\n text = text === null ? '' : text;\n if (text !== undefined) {\n if (typeof text !== 'string') {\n that._textAccessor(text);\n return;\n }\n loweredText = ignoreCase ? text.toLowerCase() : text;\n that._select(function (data) {\n data = that._text(data);\n if (ignoreCase) {\n data = (data + '').toLowerCase();\n }\n return data === loweredText;\n }).done(function () {\n that._textAccessor(that.dataItem() || text);\n });\n } else {\n return that._textAccessor();\n }\n },\n _clearFilter: function () {\n $(this.filterInput).val('');\n Select.fn._clearFilter.call(this);\n },\n value: function (value) {\n var that = this;\n var listView = that.listView;\n var dataSource = that.dataSource;\n if (value === undefined) {\n value = that._accessor() || that.listView.value()[0];\n return value === undefined || value === null ? '' : value;\n }\n that.requireValueMapper(that.options, value);\n if (value || !that.hasOptionLabel()) {\n that._initialIndex = null;\n }\n this.trigger('set', { value: value });\n if (that._request && that.options.cascadeFrom && that.listView.bound()) {\n if (that._valueSetter) {\n dataSource.unbind(CHANGE, that._valueSetter);\n }\n that._valueSetter = proxy(function () {\n that.value(value);\n }, that);\n dataSource.one(CHANGE, that._valueSetter);\n return;\n }\n if (that._isFilterEnabled() && listView.bound() && listView.isFiltered()) {\n that._clearFilter();\n } else {\n that._fetchData();\n }\n listView.value(value).done(function () {\n that._old = that._valueBeforeCascade = that._accessor();\n that._oldIndex = that.selectedIndex;\n });\n },\n hasOptionLabel: function () {\n return this.optionLabel && !!this.optionLabel[0];\n },\n _optionLabel: function () {\n var that = this;\n var options = that.options;\n var optionLabel = options.optionLabel;\n var template = options.optionLabelTemplate;\n if (!optionLabel) {\n that.optionLabel.off().remove();\n that.optionLabel = $();\n return;\n }\n if (!template) {\n template = '#:';\n if (typeof optionLabel === 'string') {\n template += 'data';\n } else {\n template += kendo.expr(options.dataTextField, 'data');\n }\n template += '#';\n }\n if (typeof template !== 'function') {\n template = kendo.template(template);\n }\n that.optionLabelTemplate = template;\n if (!that.hasOptionLabel()) {\n that.optionLabel = $('
').prependTo(that.list);\n }\n that.optionLabel.html(template(optionLabel)).off().on(CLICKEVENTS, proxy(that._click, that)).on(HOVEREVENTS, that._toggleHover);\n that.angular('compile', function () {\n return {\n elements: that.optionLabel,\n data: [{ dataItem: that._optionLabelDataItem() }]\n };\n });\n },\n _optionLabelText: function () {\n var optionLabel = this.options.optionLabel;\n return typeof optionLabel === 'string' ? optionLabel : this._text(optionLabel);\n },\n _optionLabelDataItem: function () {\n var that = this;\n var optionLabel = that.options.optionLabel;\n if (that.hasOptionLabel()) {\n return $.isPlainObject(optionLabel) ? new ObservableObject(optionLabel) : that._assignInstance(that._optionLabelText(), '');\n }\n return undefined;\n },\n _buildOptions: function (data) {\n var that = this;\n if (!that._isSelect) {\n return;\n }\n var value = that.listView.value()[0];\n var optionLabel = that._optionLabelDataItem();\n var optionLabelValue = optionLabel && that._value(optionLabel);\n if (value === undefined || value === null) {\n value = '';\n }\n if (optionLabel) {\n if (optionLabelValue === undefined || optionLabelValue === null) {\n optionLabelValue = '';\n }\n optionLabel = '';\n }\n that._options(data, optionLabel, value);\n if (value !== List.unifyType(that._accessor(), typeof value)) {\n that._customOption = null;\n that._custom(value);\n }\n },\n _listBound: function () {\n var that = this;\n var initialIndex = that._initialIndex;\n var filtered = that._state === STATE_FILTER;\n var data = that.dataSource.flatView();\n var dataItem;\n that._presetValue = false;\n that._renderFooter();\n that._renderNoData();\n that._toggleNoData(!data.length);\n that._resizePopup(true);\n that.popup.position();\n that._buildOptions(data);\n if (!filtered) {\n if (that._open) {\n that.toggle(that._allowOpening());\n }\n that._open = false;\n if (!that._fetch) {\n if (data.length) {\n if (!that.listView.value().length && initialIndex > -1 && initialIndex !== null) {\n that.select(initialIndex);\n }\n that._initialIndex = null;\n dataItem = that.listView.selectedDataItems()[0];\n if (dataItem && that.text() !== that._text(dataItem)) {\n that._selectValue(dataItem);\n }\n } else if (that._textAccessor() !== that._optionLabelText()) {\n that.listView.value('');\n that._selectValue(null);\n that._oldIndex = that.selectedIndex;\n }\n }\n }\n that._hideBusy();\n that.trigger('dataBound');\n },\n _listChange: function () {\n this._selectValue(this.listView.selectedDataItems()[0]);\n if (this._presetValue || this._old && this._oldIndex === -1) {\n this._oldIndex = this.selectedIndex;\n }\n },\n _filterPaste: function () {\n this._search();\n },\n _attachFocusHandlers: function () {\n var that = this;\n var wrapper = that.wrapper;\n wrapper.on('focusin' + nsFocusEvent, proxy(that._focusinHandler, that)).on('focusout' + nsFocusEvent, proxy(that._focusoutHandler, that));\n if (that.filterInput) {\n that.filterInput.on('focusin' + nsFocusEvent, proxy(that._focusinHandler, that)).on('focusout' + nsFocusEvent, proxy(that._focusoutHandler, that));\n }\n },\n _focusHandler: function () {\n this.wrapper.trigger('focus');\n },\n _focusinHandler: function () {\n this._inputWrapper.addClass(FOCUSED);\n this._prevent = false;\n },\n _focusoutHandler: function () {\n var that = this;\n var isIFrame = window.self !== window.top;\n if (!that._prevent) {\n clearTimeout(that._typingTimeout);\n if (support.mobileOS.ios && isIFrame) {\n that._change();\n } else {\n that._blur();\n }\n that._inputWrapper.removeClass(FOCUSED);\n that._prevent = true;\n that._open = false;\n that.element.trigger('blur');\n }\n },\n _wrapperMousedown: function () {\n this._prevent = !!this.filterInput;\n },\n _wrapperClick: function (e) {\n e.preventDefault();\n this.popup.unbind('activate', this._focusInputHandler);\n this._focused = this.wrapper;\n this._prevent = false;\n this._toggle();\n },\n _editable: function (options) {\n var that = this;\n var element = that.element;\n var disable = options.disable;\n var readonly = options.readonly;\n var wrapper = that.wrapper.add(that.filterInput).off(ns);\n var dropDownWrapper = that._inputWrapper.off(HOVEREVENTS);\n if (!readonly && !disable) {\n element.prop(DISABLED, false).prop(READONLY, false);\n dropDownWrapper.addClass(DEFAULT).removeClass(STATEDISABLED).on(HOVEREVENTS, that._toggleHover);\n wrapper.attr(TABINDEX, wrapper.data(TABINDEX)).attr(ARIA_DISABLED, false).attr(ARIA_READONLY, false).on('keydown' + ns, that, proxy(that._keydown, that)).on(kendo.support.mousedown + ns, proxy(that._wrapperMousedown, that)).on('paste' + ns, proxy(that._filterPaste, that));\n that.wrapper.on('click' + ns, proxy(that._wrapperClick, that));\n if (!that.filterInput) {\n wrapper.on('keypress' + ns, proxy(that._keypress, that));\n } else {\n wrapper.on('input' + ns, proxy(that._search, that));\n }\n } else if (disable) {\n wrapper.removeAttr(TABINDEX);\n dropDownWrapper.addClass(STATEDISABLED).removeClass(DEFAULT);\n } else {\n dropDownWrapper.addClass(DEFAULT).removeClass(STATEDISABLED);\n }\n element.attr(DISABLED, disable).attr(READONLY, readonly);\n wrapper.attr(ARIA_DISABLED, disable).attr(ARIA_READONLY, readonly);\n },\n _keydown: function (e) {\n var that = this;\n var key = e.keyCode;\n var altKey = e.altKey;\n var isInputActive;\n var handled;\n var isPopupVisible = that.popup.visible();\n if (that.filterInput) {\n isInputActive = that.filterInput[0] === activeElement();\n }\n if (key === keys.LEFT) {\n key = keys.UP;\n handled = true;\n } else if (key === keys.RIGHT) {\n key = keys.DOWN;\n handled = true;\n }\n if (handled && isInputActive) {\n return;\n }\n e.keyCode = key;\n if (altKey && key === keys.UP || key === keys.ESC) {\n that._focusElement(that.wrapper);\n }\n if (that._state === STATE_FILTER && key === keys.ESC) {\n that._clearFilter();\n that._open = false;\n that._state = STATE_ACCEPT;\n }\n if (key === keys.ENTER && that._typingTimeout && that.filterInput && isPopupVisible) {\n e.preventDefault();\n return;\n }\n if (key === keys.SPACEBAR && !isInputActive) {\n that.toggle(!isPopupVisible);\n e.preventDefault();\n }\n handled = that._move(e);\n if (handled) {\n return;\n }\n if (!isPopupVisible || !that.filterInput) {\n var current = that._focus();\n if (key === keys.HOME) {\n handled = true;\n that._firstItem();\n } else if (key === keys.END) {\n handled = true;\n that._lastItem();\n }\n if (handled) {\n if (that.trigger('select', {\n dataItem: that._getElementDataItem(that._focus()),\n item: that._focus()\n })) {\n that._focus(current);\n return;\n }\n that._select(that._focus(), true).done(function () {\n if (!isPopupVisible) {\n that._blur();\n }\n });\n e.preventDefault();\n }\n }\n if (!altKey && !handled && that.filterInput) {\n that._search();\n }\n },\n _matchText: function (text, word) {\n var ignoreCase = this.options.ignoreCase;\n if (text === undefined || text === null) {\n return false;\n }\n text = text + '';\n if (ignoreCase) {\n text = text.toLowerCase();\n }\n return text.indexOf(word) === 0;\n },\n _shuffleData: function (data, splitIndex) {\n var optionDataItem = this._optionLabelDataItem();\n if (optionDataItem) {\n data = [optionDataItem].concat(data);\n }\n return data.slice(splitIndex).concat(data.slice(0, splitIndex));\n },\n _selectNext: function () {\n var that = this;\n var data = that.dataSource.flatView();\n var dataLength = data.length + (that.hasOptionLabel() ? 1 : 0);\n var isInLoop = sameCharsOnly(that._word, that._last);\n var startIndex = that.selectedIndex;\n var oldFocusedItem;\n var text;\n if (startIndex === -1) {\n startIndex = 0;\n } else {\n startIndex += isInLoop ? 1 : 0;\n startIndex = normalizeIndex(startIndex, dataLength);\n }\n data = data.toJSON ? data.toJSON() : data.slice();\n data = that._shuffleData(data, startIndex);\n for (var idx = 0; idx < dataLength; idx++) {\n text = that._text(data[idx]);\n if (isInLoop && that._matchText(text, that._last)) {\n break;\n } else if (that._matchText(text, that._word)) {\n break;\n }\n }\n if (idx !== dataLength) {\n oldFocusedItem = that._focus();\n that._select(normalizeIndex(startIndex + idx, dataLength)).done(function () {\n var done = function () {\n if (!that.popup.visible()) {\n that._change();\n }\n };\n if (that.trigger('select', {\n dataItem: that._getElementDataItem(that._focus()),\n item: that._focus()\n })) {\n that._select(oldFocusedItem).done(done);\n } else {\n done();\n }\n });\n }\n },\n _keypress: function (e) {\n var that = this;\n if (e.which === 0 || e.keyCode === kendo.keys.ENTER) {\n return;\n }\n var character = String.fromCharCode(e.charCode || e.keyCode);\n if (that.options.ignoreCase) {\n character = character.toLowerCase();\n }\n if (character === ' ') {\n e.preventDefault();\n }\n that._word += character;\n that._last = character;\n that._search();\n },\n _popupOpen: function () {\n var popup = this.popup;\n popup.wrapper = kendo.wrap(popup.element);\n if (popup.element.closest('.km-root')[0]) {\n popup.wrapper.addClass('km-popup km-widget');\n this.wrapper.addClass('km-widget');\n }\n },\n _popup: function () {\n Select.fn._popup.call(this);\n this.popup.one('open', proxy(this._popupOpen, this));\n },\n _getElementDataItem: function (element) {\n if (!element || !element[0]) {\n return null;\n }\n if (element[0] === this.optionLabel[0]) {\n return this._optionLabelDataItem();\n }\n return this.listView.dataItemByIndex(this.listView.getElementIndex(element));\n },\n _click: function (e) {\n var that = this;\n var item = e.item || $(e.currentTarget);\n e.preventDefault();\n if (that.trigger('select', {\n dataItem: that._getElementDataItem(item),\n item: item\n })) {\n that.close();\n return;\n }\n that._userTriggered = true;\n that._select(item).done(function () {\n that._blur();\n that._focusElement(that.wrapper);\n });\n },\n _focusElement: function (element) {\n var active = activeElement();\n var wrapper = this.wrapper;\n var filterInput = this.filterInput;\n var compareElement = element === filterInput ? wrapper : filterInput;\n var touchEnabled = support.mobileOS && (support.touch || support.MSPointers || support.pointers);\n if (filterInput && filterInput[0] === element[0] && touchEnabled) {\n return;\n }\n if (filterInput && (compareElement[0] === active || this._focusFilter)) {\n this._focusFilter = false;\n this._prevent = true;\n this._focused = element.trigger('focus');\n }\n },\n _searchByWord: function (word) {\n if (!word) {\n return;\n }\n var that = this;\n var ignoreCase = that.options.ignoreCase;\n if (ignoreCase) {\n word = word.toLowerCase();\n }\n that._select(function (dataItem) {\n return that._matchText(that._text(dataItem), word);\n });\n },\n _inputValue: function () {\n return this.text();\n },\n _search: function () {\n var that = this;\n var dataSource = that.dataSource;\n clearTimeout(that._typingTimeout);\n if (that._isFilterEnabled()) {\n that._typingTimeout = setTimeout(function () {\n var value = that.filterInput.val();\n if (that._prev !== value) {\n that._prev = value;\n that.search(value);\n that._resizeFilterInput();\n }\n that._typingTimeout = null;\n }, that.options.delay);\n } else {\n that._typingTimeout = setTimeout(function () {\n that._word = '';\n }, that.options.delay);\n if (!that.listView.bound()) {\n dataSource.fetch().done(function () {\n that._selectNext();\n });\n return;\n }\n that._selectNext();\n }\n },\n _get: function (candidate) {\n var data, found, idx;\n var isFunction = typeof candidate === 'function';\n var jQueryCandidate = !isFunction ? $(candidate) : $();\n if (this.hasOptionLabel()) {\n if (typeof candidate === 'number') {\n if (candidate > -1) {\n candidate -= 1;\n }\n } else if (jQueryCandidate.hasClass('k-list-optionlabel')) {\n candidate = -1;\n }\n }\n if (isFunction) {\n data = this.dataSource.flatView();\n for (idx = 0; idx < data.length; idx++) {\n if (candidate(data[idx])) {\n candidate = idx;\n found = true;\n break;\n }\n }\n if (!found) {\n candidate = -1;\n }\n }\n return candidate;\n },\n _firstItem: function () {\n if (this.hasOptionLabel()) {\n this._focus(this.optionLabel);\n } else {\n this.listView.focusFirst();\n }\n },\n _lastItem: function () {\n this._resetOptionLabel();\n this.listView.focusLast();\n },\n _nextItem: function () {\n var focusIndex;\n if (this.optionLabel.hasClass('k-state-focused')) {\n this._resetOptionLabel();\n this.listView.focusFirst();\n focusIndex = 1;\n } else {\n focusIndex = this.listView.focusNext();\n }\n return focusIndex;\n },\n _prevItem: function () {\n var focusIndex;\n if (this.optionLabel.hasClass('k-state-focused')) {\n return;\n }\n focusIndex = this.listView.focusPrev();\n if (!this.listView.focus() && !this.options.virtual) {\n this._focus(this.optionLabel);\n }\n return focusIndex;\n },\n _focusItem: function () {\n var options = this.options;\n var listView = this.listView;\n var focusedItem = listView.focus();\n var index = listView.select();\n index = index[index.length - 1];\n if (index === undefined && options.highlightFirst && !focusedItem) {\n index = 0;\n }\n if (index !== undefined) {\n listView.focus(index);\n } else {\n if (options.optionLabel && (!options.virtual || options.virtual.mapValueTo !== 'dataItem')) {\n this._focus(this.optionLabel);\n this._select(this.optionLabel);\n this.listView.content.scrollTop(0);\n } else {\n listView.scrollToIndex(0);\n }\n }\n },\n _resetOptionLabel: function (additionalClass) {\n this.optionLabel.removeClass('k-state-focused' + (additionalClass || '')).removeAttr('id');\n },\n _focus: function (candidate) {\n var listView = this.listView;\n var optionLabel = this.optionLabel;\n if (candidate === undefined) {\n candidate = listView.focus();\n if (!candidate && optionLabel.hasClass('k-state-focused')) {\n candidate = optionLabel;\n }\n return candidate;\n }\n this._resetOptionLabel();\n candidate = this._get(candidate);\n listView.focus(candidate);\n if (candidate === -1) {\n optionLabel.addClass('k-state-focused').attr('id', listView._optionID);\n this._focused.add(this.filterInput).removeAttr('aria-activedescendant').attr('aria-activedescendant', listView._optionID);\n }\n },\n _select: function (candidate, keepState) {\n var that = this;\n candidate = that._get(candidate);\n return that.listView.select(candidate).done(function () {\n if (!keepState && that._state === STATE_FILTER) {\n that._state = STATE_ACCEPT;\n }\n if (candidate === -1) {\n that._selectValue(null);\n }\n });\n },\n _selectValue: function (dataItem) {\n var that = this;\n var optionLabel = that.options.optionLabel;\n var idx = that.listView.select();\n var value = '';\n var text = '';\n idx = idx[idx.length - 1];\n if (idx === undefined) {\n idx = -1;\n }\n this._resetOptionLabel(' k-state-selected');\n if (dataItem || dataItem === 0) {\n text = dataItem;\n value = that._dataValue(dataItem);\n if (optionLabel) {\n idx += 1;\n }\n } else if (optionLabel) {\n that._focus(that.optionLabel.addClass('k-state-selected'));\n text = that._optionLabelText();\n if (typeof optionLabel === 'string') {\n value = '';\n } else {\n value = that._value(optionLabel);\n }\n idx = 0;\n }\n that.selectedIndex = idx;\n if (value === null) {\n value = '';\n }\n that._textAccessor(text);\n that._accessor(value, idx);\n that._triggerCascade();\n },\n _mobile: function () {\n var that = this, popup = that.popup, mobileOS = support.mobileOS, root = popup.element.parents('.km-root').eq(0);\n if (root.length && mobileOS) {\n popup.options.animation.open.effects = mobileOS.android || mobileOS.meego ? 'fadeIn' : mobileOS.ios || mobileOS.wp ? 'slideIn:up' : popup.options.animation.open.effects;\n }\n },\n _filterHeader: function () {\n var icon;\n if (this.filterInput) {\n this.filterInput.off(ns).parent().remove();\n this.filterInput = null;\n }\n if (this._isFilterEnabled()) {\n icon = '';\n this.filterInput = $('').attr({\n placeholder: this.element.attr('placeholder'),\n title: this.options.filterTitle || this.element.attr('title'),\n role: 'searchbox',\n 'aria-haspopup': 'listbox',\n 'aria-autocomplete': 'list'\n });\n this.list.prepend($('').append(this.filterInput.add(icon)));\n }\n },\n _span: function () {\n var that = this, wrapper = that.wrapper, SELECTOR = 'span.k-input', id = kendo.guid(), span;\n span = wrapper.find(SELECTOR);\n if (!span[0]) {\n wrapper.append(' ').append(that.element);\n span = wrapper.find(SELECTOR);\n }\n that.span = span;\n that._inputWrapper = $(wrapper[0].firstChild);\n that._arrow = wrapper.find('.k-select');\n that._arrowIcon = that._arrow.find('.k-icon');\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 wrapper[0].style.cssText = DOMelement.style.cssText;\n wrapper[0].title = DOMelement.title;\n }\n that._focused = that.wrapper = wrapper.addClass('k-widget k-dropdown').addClass(DOMelement.className).removeClass('input-validation-error').css('display', '').attr({\n accesskey: element.attr('accesskey'),\n unselectable: 'on',\n role: 'listbox',\n 'aria-haspopup': 'listbox',\n 'aria-expanded': false\n });\n element.hide().removeAttr('accesskey');\n },\n _clearSelection: function (parent) {\n this.select(parent.value() ? 0 : -1);\n },\n _openHandler: function (e) {\n this._adjustListWidth();\n if (this.trigger(OPEN)) {\n e.preventDefault();\n } else {\n this.wrapper.attr('aria-expanded', true);\n this.ul.attr('aria-hidden', false);\n }\n },\n _closeHandler: function (e) {\n if (this.trigger(CLOSE)) {\n e.preventDefault();\n } else {\n this.wrapper.attr('aria-expanded', false);\n this.ul.attr('aria-hidden', true);\n }\n },\n _inputTemplate: function () {\n var that = this, template = that.options.valueTemplate;\n if (!template) {\n template = $.proxy(kendo.template('#:this._text(data)#', { useWithBlock: false }), that);\n } else {\n template = kendo.template(template);\n }\n that.valueTemplate = template;\n if (that.hasOptionLabel() && !that.options.optionLabelTemplate) {\n try {\n that.valueTemplate(that._optionLabelDataItem());\n } catch (e) {\n throw new Error(MSG_INVALID_OPTION_LABEL);\n }\n }\n },\n _textAccessor: function (text) {\n var dataItem = null;\n var template = this.valueTemplate;\n var optionLabelText = this._optionLabelText();\n var span = this.span;\n if (text === undefined) {\n return span.text();\n }\n if ($.isPlainObject(text) || text instanceof ObservableObject) {\n dataItem = text;\n } else if (optionLabelText && optionLabelText === text) {\n dataItem = this.options.optionLabel;\n }\n if (!dataItem) {\n dataItem = this._assignInstance(text, this._accessor());\n }\n if (this.hasOptionLabel()) {\n if (dataItem === optionLabelText || this._text(dataItem) === optionLabelText) {\n template = this.optionLabelTemplate;\n if (typeof this.options.optionLabel === 'string' && !this.options.optionLabelTemplate) {\n dataItem = optionLabelText;\n }\n }\n }\n var getElements = function () {\n return {\n elements: span.get(),\n data: [{ dataItem: dataItem }]\n };\n };\n this.angular('cleanup', getElements);\n try {\n span.html(template(dataItem));\n } catch (e) {\n span.html('');\n }\n this.angular('compile', getElements);\n },\n _preselect: function (value, text) {\n if (!value && !text) {\n text = this._optionLabelText();\n }\n this._accessor(value);\n this._textAccessor(text);\n this._old = this._accessor();\n this._oldIndex = this.selectedIndex;\n this.listView.setValue(value);\n this._initialIndex = null;\n this._presetValue = true;\n },\n _assignInstance: function (text, value) {\n var dataTextField = this.options.dataTextField;\n var dataItem = {};\n if (dataTextField) {\n assign(dataItem, dataTextField.split('.'), text);\n assign(dataItem, this.options.dataValueField.split('.'), value);\n dataItem = new ObservableObject(dataItem);\n } else {\n dataItem = text;\n }\n return dataItem;\n }\n });\n function assign(instance, fields, value) {\n var idx = 0, lastIndex = fields.length - 1, field;\n for (; idx < lastIndex; ++idx) {\n field = fields[idx];\n if (!(field in instance)) {\n instance[field] = {};\n }\n instance = instance[field];\n }\n instance[fields[lastIndex]] = value;\n }\n function normalizeIndex(index, length) {\n if (index >= length) {\n index -= length;\n }\n return index;\n }\n function sameCharsOnly(word, character) {\n for (var idx = 0; idx < word.length; idx++) {\n if (word.charAt(idx) !== character) {\n return false;\n }\n }\n return true;\n }\n ui.plugin(DropDownList);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"]}