{"version":3,"sources":["kendo.dropdowntree.js"],"names":["f","define","$","undefined","contentChild","filter","node","result","children","length","kendo","window","ui","keys","DISABLED","SELECT","CHECKED","DATABOUND","INDETERMINATE","NAVIGATE","TreeView","subGroup","Tree","extend","init","element","options","dropdowntree","that","this","fn","call","_checkOnSelect","e","isDefaultPrevented","dataItem","set","checked","_setCheckedValue","value","_click","_isMultipleSelection","one","defaultrefresh","i","bubble","action","items","parentNode","wrapper","loadOnDemand","checkChildren","checkboxes","_skip","field","level","_updateNodes","findByUid","uid","_progress","_appendItems","index","_remove","_refreshChildren","_refreshRoot","expanded","load","trigger","_treeViewDataBound","sender","updateIndeterminate","_previousVisible","lastChild","prev","root","last","_expanded","parent","checkAll","is","find","focus","filterInput","_keydown","target","key","keyCode","focused","current","checkbox","rtl","support","isRtl","currentTarget","RIGHT","LEFT","_nextVisible","hasClass","expand","collapse","_enabled","DOWN","UP","altKey","HOME","END","ENTER","SPACEBAR","prop","data","_checkboxChange","ESC","_closePopup","_trigger","select","preventDefault","close","refresh","skipUpdateOnBind","_checkValue","selected","_selectValue","_dropdowntree","jQuery","amd","a1","a2","a3","assign","instance","fields","idx","lastIndex","SingleSelection","MultipleSelection","Widget","ObservableArray","ObservableObject","activeElement","_activeElement","ns","HIDDENCLASS","WIDTH","browser","outerWidth","_outerWidth","DOT","READONLY","STATEDISABLED","ARIA_DISABLED","HOVER","FOCUSED","HOVEREVENTS","TABINDEX","CLICK","OPEN","CLOSE","CHANGE","proxy","DropDownTree","text","disabled","_selection","_getSelection","_focusInputHandler","_focusInput","_initial","val","_values","_noInitialValue","_valueMethodCalled","isArray","slice","_inputTemplate","_accessors","_setTreeViewOptions","_dataSource","_initWrapper","_placeholder","_tabindex","attr","tree","tabIndex","aria-hidden","list","append","_header","_noData","_footer","_reset","_popup","popup","_popupOpen","_clearButton","_filterHeader","_treeview","_renderFooter","_checkAll","_enable","_toggleCloseVisibility","autoBind","_preselect","_textAccessor","placeholder","parents","enable","notify","treeviewOptions","dataImageUrlField","dataSpriteCssClassField","dataTextField","dataUrlField","treeview","template","rootDataSource","dataSource","HierarchicalDataSource","create","wrap","setDataSource","name","animation","autoClose","autoWidth","clearButton","dataValueField","delay","enabled","enforceMinLength","height","ignoreCase","messages","singleTag","clear","deleteTag","minLength","noDataTemplate","checkAllTemplate","tagMode","valuePrimitive","footerTemplate","headerTemplate","valueTemplate","events","readonly","_editable","disable","toggle","open","_toggle","_isFilterEnabled","_search","fetch","visible","_allowOpening","addClass","_hovered","search","word","clearTimeout","_typingTimeout","_getFilter","_filtering","operator","flatView","_renderNoData","noData","setOptions","css","span","destroy","off","_clear","_inputWrapper","tagList","unbind","_form","_resetHandler","setValue","dataItems","_filter","_setValue","loweredText","toLowerCase","_selectItemByText","header","_angularElement","remove","prepend","angular","elements","appendTo","html","footer","_adjustListWidth","computedStyle","computedWidth","width","style","getComputedStyle","parseFloat","msie","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","fontFamily","minWidth","whiteSpace","formId","form","closest","setTimeout","on","Popup","anchor","_openHandler","_closeHandler","autosize","show","toggleClass","_currentValue","currentValue","_value","alreadyAddedTag","itemToAdd","itemToRemove","indexOfValue","isMultiple","_level","indexOf","grep","_tags","item","_tagUid","toJSON","push","hide","_multipleTags","_treeViewCheckAllCheck","splice","_preventChangeTrigger","position","_text","_accessor","_clearClick","stopPropagation","_clearTextAndValue","_clearInput","_clearText","_clearValue","useWithBlock","_assignInstance","split","getElements","removeClass","isPlainObject","get","getter","textField","valueField","getterFunction","count","levels","map","x","d","Math","min","_accessorInput","clearTitle","role","insertAfter","isReadOnly","hasValue","valueDoesNotEqualPlaceHolder","_hideClear","_showClear","guid","rootItems","rootItem","subItems","_prev","_deselectItem","_checkLoadedItems","_valueComparer","_checkLoadedItem","_getAllChecked","_checkCheckAll","_uncheckCheckAll","checkAllCheckbox","_allItemsAreChecked","_allItemsAreUnchecked","icon","_disableCheckChildren","title","aria-haspopup","aria-expanded","_filterChange","insertBefore","add","_clickCheckAll","_changeCheckAll","_keydownCheckAll","_disabledCheckedItems","_disabledUnCheckedItems","isChecked","edge","_updateCheckAll","_toggleCheckAllItems","_dfs","_traverceChildren","_uncheckItemByUid","_uncheckItemEqualsUid","_itemEqualsText","_selectItemByValue","_itemEqualsValue","_checkItemByValue","_checkItemEqualsValue","itemText","newValue","itemValue","_allCheckedItems","_getAllCheckedItems","childrenField","_childrenOptions","schema","_checkAllCheckItem","dropDownWrapper","removeAttr","_focusinHandler","_focusoutHandler","_toggleHover","_wrapperClick","_removeTagClick","_focused","_prevent","type","isFilterInputActive","isWrapperActive","tagItem","isPopupVisible","_focusPrevTag","_focusNextTag","_focusFirstTag","_focusLastTag","DELETE","first","_removeTag","BACKSPACE","_clearFilter","version","activedescendant","next","firstTag","_clearDisabledTag","lastTag","parentElement","plugin","Class","view","_wrapper","_span","DOMelement","cssText","className","accesskey","unselectable","SELECTOR","firstChild","_arrow","_arrowIcon","selectedNode","tempItem","_tagTemplate","_tagList","valueToSelect","tagTemplate","aria-activedescendant","_innerWrapper","tagCollection","viewModel","observable","multipleTag","tags","bind","oldValues","_removeValues","j","removedValues","_getNewValues","tagsArray","_findTag","tempItemValue"],"mappings":"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","file":"kendo.dropdowntree.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('dropdowntree/treeview', ['kendo.treeview'], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.ui, keys = kendo.keys, DISABLED = 'k-state-disabled', SELECT = 'select', CHECKED = 'checked', DATABOUND = 'dataBound', INDETERMINATE = 'indeterminate', NAVIGATE = 'navigate', subGroup, TreeView = ui.TreeView;\n function contentChild(filter) {\n return function (node) {\n var result = node.children('.k-animation-container');\n if (!result.length) {\n result = node;\n }\n return result.children(filter);\n };\n }\n subGroup = contentChild('.k-group');\n var Tree = TreeView.extend({\n init: function (element, options, dropdowntree) {\n var that = this;\n that.dropdowntree = dropdowntree;\n TreeView.fn.init.call(that, element, options);\n },\n _checkOnSelect: function (e) {\n if (!e.isDefaultPrevented()) {\n var dataItem = this.dataItem(e.node);\n dataItem.set('checked', !dataItem.checked);\n }\n },\n _setCheckedValue: function (node, value) {\n node.set(CHECKED, value);\n },\n _click: function (e) {\n var that = this;\n if (that.dropdowntree._isMultipleSelection()) {\n that.one('select', that._checkOnSelect);\n }\n TreeView.fn._click.call(that, e);\n },\n defaultrefresh: function (e) {\n var node = e.node;\n var action = e.action;\n var items = e.items;\n var parentNode = this.wrapper;\n var options = this.options;\n var loadOnDemand = options.loadOnDemand;\n var checkChildren = options.checkboxes && options.checkboxes.checkChildren;\n var i;\n if (this._skip) {\n return;\n }\n if (e.field) {\n if (!items[0] || !items[0].level) {\n return;\n }\n return this._updateNodes(items, e.field);\n }\n if (node) {\n parentNode = this.findByUid(node.uid);\n this._progress(parentNode, false);\n }\n if (checkChildren && action != 'remove') {\n var bubble = false;\n for (i = 0; i < items.length; i++) {\n if ('checked' in items[i]) {\n bubble = true;\n break;\n }\n }\n if (!bubble && node && node.checked) {\n for (i = 0; i < items.length; i++) {\n items[i].checked = true;\n }\n }\n }\n if (action == 'add') {\n this._appendItems(e.index, items, parentNode);\n } else if (action == 'remove') {\n this._remove(this.findByUid(items[0].uid), false);\n } else if (action == 'itemchange') {\n this._updateNodes(items);\n } else if (action == 'itemloaded') {\n this._refreshChildren(parentNode, items, e.index);\n } else {\n this._refreshRoot(items);\n }\n if (action != 'remove') {\n for (i = 0; i < items.length; i++) {\n if (!loadOnDemand || items[i].expanded) {\n items[i].load();\n }\n }\n }\n this.trigger(DATABOUND, { node: node ? parentNode : undefined });\n this.dropdowntree._treeViewDataBound({\n node: node ? parentNode : undefined,\n sender: this\n });\n if (this.options.checkboxes.checkChildren) {\n this.updateIndeterminate();\n }\n },\n _previousVisible: function (node) {\n var that = this, lastChild, result;\n if (!node.length || node.prev().length) {\n if (node.length) {\n result = node.prev();\n } else {\n result = that.root.children().last();\n }\n while (that._expanded(result)) {\n lastChild = subGroup(result).children().last();\n if (!lastChild.length) {\n break;\n }\n result = lastChild;\n }\n } else {\n result = that.parent(node) || node;\n if (!result.length) {\n if (that.dropdowntree.checkAll && that.dropdowntree.checkAll.is(':visible')) {\n that.dropdowntree.checkAll.find('.k-checkbox').focus();\n } else if (that.dropdowntree.filterInput) {\n that.dropdowntree.filterInput.focus();\n } else {\n that.dropdowntree.wrapper.focus();\n }\n }\n }\n return result;\n },\n _keydown: function (e) {\n var that = this, key = e.keyCode, target, focused = that.current(), expanded = that._expanded(focused), checkbox = focused.find('.k-checkbox-wrapper:first :checkbox'), rtl = kendo.support.isRtl(that.element);\n if (e.target != e.currentTarget) {\n return;\n }\n if (!rtl && key == keys.RIGHT || rtl && key == keys.LEFT) {\n if (expanded) {\n target = that._nextVisible(focused);\n } else if (!focused.find('.k-in:first').hasClass(DISABLED)) {\n that.expand(focused);\n }\n } else if (!rtl && key == keys.LEFT || rtl && key == keys.RIGHT) {\n if (expanded && !focused.find('.k-in:first').hasClass(DISABLED)) {\n that.collapse(focused);\n } else {\n target = that.parent(focused);\n if (!that._enabled(target)) {\n target = undefined;\n }\n }\n } else if (key == keys.DOWN) {\n target = that._nextVisible(focused);\n } else if (key == keys.UP && !e.altKey) {\n target = that._previousVisible(focused);\n } else if (key == keys.HOME) {\n target = that._nextVisible($());\n } else if (key == keys.END) {\n target = that._previousVisible($());\n } else if (key == keys.ENTER && !focused.find('.k-in:first').hasClass(DISABLED)) {\n if (!focused.find('.k-in:first').hasClass('k-state-selected')) {\n if (!that._trigger(SELECT, focused)) {\n that.select(focused);\n }\n }\n } else if (key == keys.SPACEBAR && checkbox.length && !focused.find('.k-in:first').hasClass(DISABLED)) {\n checkbox.prop(CHECKED, !checkbox.prop(CHECKED)).data(INDETERMINATE, false).prop(INDETERMINATE, false);\n that._checkboxChange({ target: checkbox });\n target = focused;\n } else if (e.altKey && key === keys.UP || key === keys.ESC) {\n that._closePopup();\n }\n if (target) {\n e.preventDefault();\n if (focused[0] != target[0]) {\n that._trigger(NAVIGATE, target);\n that.current(target);\n }\n }\n },\n _closePopup: function () {\n this.dropdowntree.close();\n this.dropdowntree.wrapper.focus();\n },\n refresh: function (e) {\n this.defaultrefresh(e);\n if (this.dropdowntree.options.skipUpdateOnBind) {\n return;\n }\n if (e.action === 'itemchange') {\n if (this.dropdowntree._isMultipleSelection()) {\n if (e.field === 'checked') {\n this.dropdowntree._checkValue(e.items[0]);\n }\n } else {\n if (e.field !== 'checked' && e.field !== 'expanded' && e.items[0].selected) {\n this.dropdowntree._selectValue(e.items[0]);\n }\n }\n } else {\n this.dropdowntree.refresh(e);\n }\n }\n });\n kendo.ui._dropdowntree = Tree;\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.dropdowntree', [\n 'dropdowntree/treeview',\n 'kendo.popup'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'dropdowntree',\n name: 'DropDownTree',\n category: 'web',\n description: 'The DropDownTree widget displays a hierarchy of items and allows the selection of single or multiple items.',\n depends: [\n 'treeview',\n 'popup'\n ]\n };\n (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.ui, Widget = ui.Widget, TreeView = ui._dropdowntree, ObservableArray = kendo.data.ObservableArray, ObservableObject = kendo.data.ObservableObject, extend = $.extend, activeElement = kendo._activeElement, ns = '.kendoDropDownTree', keys = kendo.keys, support = kendo.support, HIDDENCLASS = 'k-hidden', WIDTH = 'width', browser = support.browser, outerWidth = kendo._outerWidth, DOT = '.', DISABLED = 'disabled', READONLY = 'readonly', STATEDISABLED = 'k-state-disabled', ARIA_DISABLED = 'aria-disabled', HOVER = 'k-state-hover', FOCUSED = 'k-state-focused', HOVEREVENTS = 'mouseenter' + ns + ' mouseleave' + ns, TABINDEX = 'tabindex', CLICK = 'click', OPEN = 'open', CLOSE = 'close', CHANGE = 'change', proxy = $.proxy;\n var DropDownTree = kendo.ui.Widget.extend({\n init: function (element, options) {\n this.ns = ns;\n kendo.ui.Widget.fn.init.call(this, element, options);\n this._selection = this._getSelection();\n this._focusInputHandler = $.proxy(this._focusInput, this);\n this._initial = this.element.val();\n this._values = [];\n var value = this.options.value;\n if (value === null || !value.length) {\n this._noInitialValue = true;\n }\n if (value) {\n this._valueMethodCalled = true;\n this._values = $.isArray(value) ? value.slice(0) : [value];\n }\n this._inputTemplate();\n this._accessors();\n this._setTreeViewOptions(this.options);\n this._dataSource();\n this._selection._initWrapper();\n this._placeholder(true);\n this._tabindex();\n this.wrapper.data(TABINDEX, this.wrapper.attr(TABINDEX));\n this.tree = $('
').attr({\n tabIndex: -1,\n 'aria-hidden': true\n });\n this.list = $('
').append(this.tree);\n this._header();\n this._noData();\n this._footer();\n this._reset();\n this._popup();\n this.popup.one('open', proxy(this._popupOpen, this));\n this._clearButton();\n this._filterHeader();\n this._treeview();\n this._renderFooter();\n this._checkAll();\n this._enable();\n this._toggleCloseVisibility();\n if (!this.options.autoBind) {\n var text = options.text || '';\n if (options.value) {\n this._preselect(options.value);\n } else if (text) {\n this._textAccessor(text);\n } else if (options.placeholder) {\n this._placeholder(true);\n }\n }\n var disabled = $(this.element).parents('fieldset').is(':disabled');\n if (disabled) {\n this.enable(false);\n }\n this._valueMethodCalled = false;\n kendo.notify(this);\n },\n _preselect: function (data, value) {\n this._selection._preselect(data, value);\n },\n _setTreeViewOptions: function (options) {\n var treeviewOptions = {\n autoBind: options.autoBind,\n checkboxes: options.checkboxes,\n dataImageUrlField: options.dataImageUrlField,\n dataSpriteCssClassField: options.dataSpriteCssClassField,\n dataTextField: options.dataTextField,\n dataUrlField: options.dataUrlField,\n loadOnDemand: options.loadOnDemand\n };\n this.options.treeview = $.extend({}, treeviewOptions, this.options.treeview);\n if (options.template) {\n this.options.treeview.template = options.template;\n }\n },\n _dataSource: function () {\n var rootDataSource = this.options.dataSource;\n this.dataSource = kendo.data.HierarchicalDataSource.create(rootDataSource);\n if (rootDataSource) {\n $.extend(this.options.treeview, { dataSource: this.dataSource });\n }\n },\n _popupOpen: function () {\n var popup = this.popup;\n popup.wrapper = kendo.wrap(popup.element);\n },\n _getSelection: function () {\n if (this._isMultipleSelection()) {\n return new ui.DropDownTree.MultipleSelection(this);\n } else {\n return new ui.DropDownTree.SingleSelection(this);\n }\n },\n setDataSource: function (dataSource) {\n this.dataSource = dataSource;\n this.treeview.setDataSource(dataSource);\n },\n _isMultipleSelection: function () {\n return this.options && (this.options.treeview.checkboxes || this.options.checkboxes);\n },\n options: {\n name: 'DropDownTree',\n animation: {},\n autoBind: true,\n autoClose: true,\n autoWidth: false,\n clearButton: true,\n dataTextField: '',\n dataValueField: '',\n dataImageUrlField: '',\n dataSpriteCssClassField: '',\n dataUrlField: '',\n delay: 500,\n enabled: true,\n enforceMinLength: false,\n filter: 'none',\n height: 200,\n ignoreCase: true,\n index: 0,\n loadOnDemand: false,\n messages: {\n 'singleTag': 'item(s) selected',\n 'clear': 'clear',\n 'deleteTag': 'delete'\n },\n minLength: 1,\n checkboxes: false,\n noDataTemplate: 'No data found.',\n placeholder: '',\n checkAll: false,\n checkAllTemplate: 'Check all',\n tagMode: 'multiple',\n template: null,\n text: null,\n treeview: {},\n valuePrimitive: false,\n footerTemplate: '',\n headerTemplate: '',\n value: null,\n valueTemplate: null\n },\n events: [\n 'open',\n 'close',\n 'dataBound',\n CHANGE,\n 'select',\n 'filtering'\n ],\n focus: function () {\n this.wrapper.focus();\n },\n dataItem: function (node) {\n return this.treeview.dataItem(node);\n },\n readonly: function (readonly) {\n this._editable({\n readonly: readonly === undefined ? true : readonly,\n disable: false\n });\n this._toggleCloseVisibility();\n },\n enable: function (enable) {\n this._editable({\n readonly: false,\n disable: !(enable = enable === undefined ? true : enable)\n });\n this._toggleCloseVisibility();\n },\n toggle: function (open) {\n this._toggle(open);\n },\n open: function () {\n var popup = this.popup;\n if (!this.options.autoBind && !this.dataSource.data().length) {\n this.treeview._progress(true);\n if (this._isFilterEnabled()) {\n this._search();\n } else {\n this.dataSource.fetch();\n }\n }\n if (popup.visible() || !this._allowOpening()) {\n return;\n }\n if (this._isMultipleSelection()) {\n popup.element.addClass('k-multiple-selection');\n }\n popup.element.addClass('k-popup-dropdowntree');\n popup.one('activate', this._focusInputHandler);\n popup._hovered = true;\n popup.open();\n },\n close: function () {\n this.popup.close();\n },\n search: function (word) {\n var options = this.options;\n var filter;\n clearTimeout(this._typingTimeout);\n if (!options.enforceMinLength && !word.length || word.length >= options.minLength) {\n filter = this._getFilter(word);\n if (this.trigger('filtering', { filter: filter }) || $.isArray(this.options.dataTextField)) {\n return;\n }\n this._filtering = true;\n this.treeview.dataSource.filter(filter);\n }\n },\n _getFilter: function (word) {\n return {\n field: this.options.dataTextField,\n operator: this.options.filter,\n value: word,\n ignoreCase: this.options.ignoreCase\n };\n },\n refresh: function () {\n var data = this.treeview.dataSource.flatView();\n this._renderFooter();\n this._renderNoData();\n if (this.filterInput && this.checkAll) {\n this.checkAll.toggle(!this.filterInput.val().length);\n }\n this.tree.toggle(!!data.length);\n $(this.noData).toggle(!data.length);\n },\n setOptions: function (options) {\n Widget.fn.setOptions.call(this, options);\n this._setTreeViewOptions(options);\n this._dataSource();\n if (this.options.treeview) {\n this.treeview.setOptions(this.options.treeview);\n }\n if (options.height && this.tree) {\n this.tree.css('max-height', options.height);\n }\n this._header();\n this._noData();\n this._footer();\n this._renderFooter();\n this._renderNoData();\n if (this.span && (this._isMultipleSelection() || this.span.hasClass('k-readonly'))) {\n this._placeholder(true);\n }\n this._inputTemplate();\n this._accessors();\n this._filterHeader();\n this._checkAll();\n this._enable();\n if (options && (options.enable || options.enabled)) {\n this.enable(true);\n }\n this._clearButton();\n },\n destroy: function () {\n kendo.ui.Widget.fn.destroy.call(this);\n if (this.treeview) {\n this.treeview.destroy();\n }\n this.popup.destroy();\n this.wrapper.off(ns);\n this._clear.off(ns);\n this._inputWrapper.off(ns);\n if (this.filterInput) {\n this.filterInput.off(ns);\n }\n if (this.tagList) {\n this.tagList.off(ns);\n }\n kendo.unbind(this.tagList);\n if (this.options.checkAll && this.checkAll) {\n this.checkAll.off(ns);\n }\n if (this._form) {\n this._form.off('reset', this._resetHandler);\n }\n },\n setValue: function (value) {\n value = $.isArray(value) || value instanceof ObservableArray ? value.slice(0) : [value];\n this._values = value;\n },\n items: function () {\n this.treeview.dataItems();\n },\n value: function (value) {\n var that = this;\n if (value) {\n if (that.filterInput && that.dataSource._filter) {\n that._filtering = true;\n that.dataSource.filter({});\n } else if (!that.dataSource.data().length) {\n that.dataSource.fetch(function () {\n that._selection._setValue(value);\n });\n return;\n }\n }\n return that._selection._setValue(value);\n },\n text: function (text) {\n var loweredText;\n var ignoreCase = this.options.ignoreCase;\n text = text === null ? '' : text;\n if (text !== undefined && !this._isMultipleSelection()) {\n if (typeof text !== 'string') {\n this._textAccessor(text);\n return;\n }\n loweredText = ignoreCase ? text : text.toLowerCase();\n this._selectItemByText(loweredText);\n this._textAccessor(loweredText);\n } else {\n return this._textAccessor();\n }\n },\n _header: function () {\n var list = this;\n var header = $(list.header);\n var template = list.options.headerTemplate;\n this._angularElement(header, 'cleanup');\n kendo.destroy(header);\n header.remove();\n if (!template) {\n list.header = null;\n return;\n }\n var headerTemplate = typeof template !== 'function' ? kendo.template(template) : template;\n header = $(headerTemplate({}));\n list.header = header[0] ? header : null;\n list.list.prepend(header);\n this._angularElement(list.header, 'compile');\n },\n _noData: function () {\n var list = this;\n var noData = $(list.noData);\n var template = list.options.noDataTemplate;\n list.angular('cleanup', function () {\n return { elements: noData };\n });\n kendo.destroy(noData);\n noData.remove();\n if (!template) {\n list.noData = null;\n return;\n }\n list.noData = $('
').appendTo(list.list);\n list.noDataTemplate = typeof template !== 'function' ? kendo.template(template) : template;\n },\n _renderNoData: function () {\n var list = this;\n var noData = list.noData;\n if (!noData) {\n return;\n }\n this._angularElement(noData, 'cleanup');\n noData.children(':first').html(list.noDataTemplate({ instance: list }));\n this._angularElement(noData, 'compile');\n },\n _footer: function () {\n var list = this;\n var footer = $(list.footer);\n var template = list.options.footerTemplate;\n this._angularElement(footer, 'cleanup');\n kendo.destroy(footer);\n footer.remove();\n if (!template) {\n list.footer = null;\n return;\n }\n list.footer = $('
').appendTo(list.list);\n list.footerTemplate = typeof template !== 'function' ? kendo.template(template) : template;\n },\n _renderFooter: function () {\n var list = this;\n var footer = list.footer;\n if (!footer) {\n return;\n }\n this._angularElement(footer, 'cleanup');\n footer.html(list.footerTemplate({ instance: list }));\n this._angularElement(footer, 'compile');\n },\n _enable: function () {\n var that = this, options = that.options, disabled = that.element.is('[disabled]');\n if (options.enable !== undefined) {\n options.enabled = options.enable;\n }\n if (!options.enabled || disabled) {\n that.enable(false);\n } else {\n that.readonly(that.element.is('[readonly]'));\n }\n },\n _adjustListWidth: function () {\n var that = this, list = that.list, width = list[0].style.width, wrapper = that.wrapper, computedStyle, computedWidth;\n if (!list.data(WIDTH) && width) {\n return;\n }\n computedStyle = window.getComputedStyle ? window.getComputedStyle(wrapper[0], null) : 0;\n computedWidth = parseFloat(computedStyle && computedStyle.width) || outerWidth(wrapper);\n if (computedStyle && browser.msie) {\n computedWidth += parseFloat(computedStyle.paddingLeft) + parseFloat(computedStyle.paddingRight) + parseFloat(computedStyle.borderLeftWidth) + parseFloat(computedStyle.borderRightWidth);\n }\n if (list.css('box-sizing') !== 'border-box') {\n width = computedWidth - (outerWidth(list) - list.width());\n } else {\n width = computedWidth;\n }\n list.css({\n fontFamily: wrapper.css('font-family'),\n width: that.options.autoWidth ? 'auto' : width,\n minWidth: width,\n whiteSpace: that.options.autoWidth ? 'nowrap' : 'normal'\n }).data(WIDTH, width);\n return true;\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._initial);\n });\n };\n that._form = form.on('reset', that._resetHandler);\n }\n },\n _popup: function () {\n var list = this;\n list.popup = new ui.Popup(list.list, extend({}, list.options.popup, {\n anchor: list.wrapper,\n open: proxy(list._openHandler, list),\n close: proxy(list._closeHandler, list),\n animation: list.options.animation,\n isRtl: support.isRtl(list.wrapper),\n autosize: list.options.autoWidth\n }));\n },\n _angularElement: function (element, action) {\n if (!element) {\n return;\n }\n this.angular(action, function () {\n return { elements: element };\n });\n },\n _allowOpening: function () {\n return this.options.noDataTemplate || this.treeview.dataSource.flatView().length;\n },\n _placeholder: function (show) {\n if (this.span) {\n this.span.toggleClass('k-readonly', show).text(show ? this.options.placeholder : '');\n }\n },\n _currentValue: function (dataItem) {\n var currentValue = this._value(dataItem);\n if (!currentValue && currentValue !== 0) {\n currentValue = dataItem;\n }\n return currentValue;\n },\n _checkValue: function (dataItem) {\n var value = '';\n var indexOfValue = -1;\n var currentValue = this.value();\n var isMultiple = this.options.tagMode === 'multiple';\n if (dataItem || dataItem === 0) {\n if (dataItem.level) {\n dataItem._level = dataItem.level();\n }\n value = this._currentValue(dataItem);\n indexOfValue = currentValue.indexOf(value);\n }\n if (dataItem.checked) {\n var alreadyAddedTag = $.grep(this._tags, function (item) {\n return item.uid === dataItem._tagUid;\n });\n if (alreadyAddedTag.length) {\n return;\n }\n var itemToAdd = new ObservableObject(dataItem.toJSON());\n dataItem._tagUid = itemToAdd.uid;\n this._tags.push(itemToAdd);\n if (this._tags.length === 1) {\n this.span.hide();\n if (!isMultiple) {\n this._multipleTags.push(itemToAdd);\n }\n }\n if (indexOfValue === -1) {\n currentValue.push(value);\n this.setValue(currentValue);\n }\n } else {\n var itemToRemove = this._tags.find(function (item) {\n return item.uid === dataItem._tagUid;\n });\n var idx = this._tags.indexOf(itemToRemove);\n if (idx !== -1) {\n this._tags.splice(idx, 1);\n } else {\n this._treeViewCheckAllCheck(dataItem);\n return;\n }\n if (this._tags.length === 0) {\n this.span.show();\n if (!isMultiple) {\n this._multipleTags.splice(0, 1);\n }\n }\n if (indexOfValue !== -1) {\n currentValue.splice(indexOfValue, 1);\n this.setValue(currentValue);\n }\n }\n this._treeViewCheckAllCheck(dataItem);\n if (!this._preventChangeTrigger && !this._valueMethodCalled && !this._noInitialValue) {\n this.trigger(CHANGE);\n }\n if (this.options.autoClose && this.popup.visible()) {\n this.close();\n this.wrapper.focus();\n }\n this.popup.position();\n this._toggleCloseVisibility();\n },\n _selectValue: function (dataItem) {\n var value = '';\n var text = '';\n if (dataItem || dataItem === 0) {\n if (dataItem.level) {\n dataItem._level = dataItem.level();\n }\n text = this._text(dataItem) || dataItem;\n value = this._currentValue(dataItem);\n }\n if (value === null) {\n value = '';\n }\n this.setValue(value);\n this._textAccessor(text, dataItem);\n this._accessor(value);\n if (!this._valueMethodCalled) {\n this.trigger(CHANGE);\n }\n this._valueMethodCalled = false;\n if (this.options.autoClose && this.popup.visible()) {\n this.close();\n this.wrapper.focus();\n }\n this.popup.position();\n this._toggleCloseVisibility();\n },\n _clearClick: function (e) {\n e.stopPropagation();\n this._clearTextAndValue();\n },\n _clearTextAndValue: function () {\n this.setValue([]);\n this._clearInput();\n this._clearText();\n this._selection._clearValue();\n this.popup.position();\n this._toggleCloseVisibility();\n },\n _clearText: function () {\n if (this.options.placeholder) {\n this._placeholder(true);\n } else {\n if (this.span) {\n this.span.html('');\n }\n }\n },\n _inputTemplate: function () {\n var template = this.options.valueTemplate;\n if (!template) {\n template = $.proxy(kendo.template('#:this._text(data)#', { useWithBlock: false }), this);\n } else {\n template = kendo.template(template);\n }\n this.valueTemplate = template;\n },\n _assignInstance: function (text, value) {\n var dataTextField = this.options.dataTextField;\n var dataItem = {};\n if (dataTextField) {\n assign(dataItem, dataTextField.split(DOT), text);\n assign(dataItem, this.options.dataValueField.split(DOT), value);\n dataItem = new ObservableObject(dataItem);\n } else {\n dataItem = text;\n }\n return dataItem;\n },\n _textAccessor: function (text, dataItem) {\n var valueTemplate = this.valueTemplate;\n var span = this.span;\n if (text === undefined) {\n return span.text();\n }\n span.removeClass('k-readonly');\n if (!dataItem && ($.isPlainObject(text) || text instanceof ObservableObject)) {\n dataItem = text;\n }\n if (!dataItem) {\n dataItem = this._assignInstance(text, this._accessor());\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(valueTemplate(dataItem));\n } catch (e) {\n if (span) {\n span.html('');\n }\n }\n this.angular('compile', getElements);\n },\n _accessors: function () {\n var element = this.element;\n var options = this.options;\n var getter = kendo.getter;\n var textField = element.attr(kendo.attr('text-field'));\n var valueField = element.attr(kendo.attr('value-field'));\n var getterFunction = function (field) {\n if ($.isArray(field)) {\n var count = field.length;\n var levels = $.map(field, function (x) {\n return function (d) {\n return d[x];\n };\n });\n return function (dataItem) {\n var level = dataItem._level;\n if (!level && level !== 0) {\n return;\n }\n return levels[Math.min(level, count - 1)](dataItem);\n };\n } else {\n return getter(field);\n }\n };\n if (!options.dataTextField && textField) {\n options.dataTextField = textField;\n }\n if (!options.dataValueField && valueField) {\n options.dataValueField = valueField;\n }\n options.dataTextField = options.dataTextField || 'text';\n options.dataValueField = options.dataValueField || 'value';\n this._text = getterFunction(options.dataTextField);\n this._value = getterFunction(options.dataValueField);\n },\n _accessor: function (value, idx) {\n return this._accessorInput(value, idx);\n },\n _accessorInput: function (value) {\n var element = this.element[0];\n if (value === undefined) {\n return element.value;\n } else {\n if (value === null) {\n value = '';\n }\n element.value = value;\n }\n },\n _clearInput: function () {\n var element = this.element[0];\n element.value = '';\n },\n _clearButton: function () {\n var clearTitle = this.options.messages && this.options.messages.clear ? this.options.messages.clear : 'clear';\n if (!this._clear) {\n this._clear = $('').attr({\n 'role': 'button',\n 'tabIndex': -1\n });\n }\n if (this.options.clearButton) {\n this._clear.insertAfter(this.span);\n this.wrapper.addClass('k-dropdowntree-clearable');\n } else {\n if (!this.options.clearButton) {\n this._clear.remove();\n }\n }\n },\n _toggleCloseVisibility: function () {\n var isReadOnly = this.element.attr(READONLY);\n var hasValue = this.value() && !this._isMultipleSelection() || this.value().length;\n var valueDoesNotEqualPlaceHolder = this.element.val() && this.element.val() !== this.options.placeholder;\n if (!isReadOnly && (hasValue || valueDoesNotEqualPlaceHolder)) {\n this._showClear();\n } else {\n this._hideClear();\n }\n },\n _showClear: function () {\n if (this._clear) {\n this._clear.removeClass(HIDDENCLASS);\n }\n },\n _hideClear: function () {\n if (this._clear) {\n this._clear.addClass(HIDDENCLASS);\n }\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.tree.attr('aria-hidden', false).attr('role', 'tree');\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.tree.attr('aria-hidden', true);\n }\n },\n _treeview: function () {\n var that = this;\n if (that.options.height) {\n that.tree.css('max-height', that.options.height);\n }\n that.tree.attr('id', kendo.guid());\n that.treeview = new TreeView(that.tree, extend({ select: that.options.select }, that.options.treeview), that);\n that.dataSource = that.treeview.dataSource;\n },\n _treeViewDataBound: function (e) {\n if (e.node && this._prev && this._prev.length) {\n e.sender.expand(e.node);\n }\n if (this._filtering) {\n if (!e.node) {\n this._filtering = false;\n }\n if (!this._isMultipleSelection()) {\n this._deselectItem(e);\n }\n return;\n }\n if (!this.treeview) {\n this.treeview = e.sender;\n }\n if (!e.node) {\n var rootItems = e.sender.dataSource.data();\n this._checkLoadedItems(rootItems);\n if (this._noInitialValue) {\n this._noInitialValue = false;\n }\n } else {\n var rootItem = e.sender.dataItem(e.node);\n if (rootItem) {\n var subItems = rootItem.children.data();\n this._checkLoadedItems(subItems);\n }\n }\n this.trigger('dataBound', e);\n },\n _deselectItem: function (e) {\n var items = [];\n if (!e.node) {\n items = e.sender.dataSource.data();\n } else {\n var rootItem = e.sender.dataItem(e.node);\n if (rootItem) {\n items = rootItem.children.data();\n }\n }\n for (var i = 0; i < items.length; i++) {\n if (items[i].selected && !this._valueComparer(items[i], this.value())) {\n items[i].set('selected', false);\n }\n }\n },\n _checkLoadedItems: function (items) {\n var value = this.value();\n if (!items) {\n return;\n }\n for (var idx = 0; idx < items.length; idx++) {\n this._selection._checkLoadedItem(items[idx], value);\n }\n },\n _treeViewCheckAllCheck: function (dataItem) {\n if (this.options.checkAll && this.checkAll) {\n this._getAllChecked();\n if (dataItem.checked) {\n this._checkCheckAll();\n } else {\n this._uncheckCheckAll();\n }\n }\n },\n _checkCheckAll: function () {\n var checkAllCheckbox = this.checkAll.find('.k-checkbox');\n if (this._allItemsAreChecked) {\n checkAllCheckbox.prop('checked', true).prop('indeterminate', false);\n } else {\n checkAllCheckbox.prop('indeterminate', true);\n }\n },\n _uncheckCheckAll: function () {\n var checkAllCheckbox = this.checkAll.find('.k-checkbox');\n if (this._allItemsAreUnchecked) {\n checkAllCheckbox.prop('checked', false).prop('indeterminate', false);\n } else {\n checkAllCheckbox.prop('indeterminate', true);\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 this._disableCheckChildren();\n icon = '';\n this.filterInput = $('').attr({\n placeholder: this.element.attr('placeholder'),\n title: this.element.attr('title'),\n role: 'listbox',\n 'aria-haspopup': true,\n 'aria-expanded': false\n });\n this.filterInput.on('input', proxy(this._filterChange, this));\n $('').insertBefore(this.tree).append(this.filterInput.add(icon));\n }\n },\n _filterChange: function () {\n if (this.filterInput) {\n this._search();\n }\n },\n _disableCheckChildren: function () {\n if (this._isMultipleSelection() && this.options.treeview.checkboxes && this.options.treeview.checkboxes.checkChildren) {\n this.options.treeview.checkboxes.checkChildren = false;\n }\n },\n _checkAll: function () {\n if (this.checkAll) {\n this.checkAll.find('.k-checkbox-label, .k-checkbox').off(ns);\n this.checkAll.remove();\n this.checkAll = null;\n }\n if (this._isMultipleSelection() && this.options.checkAll) {\n this.checkAll = $('
Check All
').insertBefore(this.tree);\n this.checkAll.find('.k-checkbox-label').html(kendo.template(this.options.checkAllTemplate)({ instance: this }));\n this.checkAll.find('.k-checkbox-label').on(CLICK + ns, proxy(this._clickCheckAll, this));\n this.checkAll.find('.k-checkbox').on('change' + ns, proxy(this._changeCheckAll, this)).on('keydown' + ns, proxy(this._keydownCheckAll, this));\n this._disabledCheckedItems = [];\n this._disabledUnCheckedItems = [];\n this._getAllChecked();\n if (!this._allItemsAreUnchecked) {\n this._checkCheckAll();\n }\n }\n },\n _changeCheckAll: function () {\n var checkAllCheckbox = this.checkAll.find('.k-checkbox');\n var isChecked = checkAllCheckbox.prop('checked');\n if (!browser.msie && !browser.edge) {\n this._updateCheckAll(isChecked);\n }\n },\n _updateCheckAll: function (isChecked) {\n var checkAllCheckbox = this.checkAll.find('.k-checkbox');\n this._toggleCheckAllItems(isChecked);\n checkAllCheckbox.prop('checked', isChecked);\n if (this._disabledCheckedItems.length && this._disabledUnCheckedItems.length) {\n checkAllCheckbox.prop('indeterminate', true);\n } else if (this._disabledCheckedItems.length) {\n checkAllCheckbox.prop('indeterminate', !isChecked);\n } else if (this._disabledUnCheckedItems.length) {\n checkAllCheckbox.prop('indeterminate', isChecked);\n } else {\n checkAllCheckbox.prop('indeterminate', false);\n }\n this._disabledCheckedItems = [];\n this._disabledUnCheckedItems = [];\n },\n _keydownCheckAll: function (e) {\n var key = e.keyCode;\n var altKey = e.altKey;\n if (altKey && key === keys.UP || key === keys.ESC) {\n this.close();\n this.wrapper.focus();\n e.preventDefault();\n return;\n }\n if (key === keys.UP) {\n if (this.filterInput) {\n this.filterInput.focus();\n } else {\n this.wrapper.focus();\n }\n e.preventDefault();\n }\n if (key === keys.DOWN) {\n if (this.tree && this.tree.is(':visible')) {\n this.tree.focus();\n }\n e.preventDefault();\n }\n if (key === keys.SPACEBAR && (browser.msie || browser.edge)) {\n this._clickCheckAll();\n e.preventDefault();\n }\n },\n _clickCheckAll: function () {\n var checkAllCheckbox = this.checkAll.find('.k-checkbox');\n var isChecked = checkAllCheckbox.prop('checked');\n this._updateCheckAll(!isChecked);\n checkAllCheckbox.focus();\n },\n _dfs: function (items, action, prop) {\n for (var idx = 0; idx < items.length; idx++) {\n if (!this[action](items[idx], prop)) {\n break;\n }\n this._traverceChildren(items[idx], action, prop);\n }\n },\n _uncheckItemByUid: function (uid) {\n this._dfs(this.dataSource.data(), '_uncheckItemEqualsUid', uid);\n },\n _uncheckItemEqualsUid: function (item, uid) {\n if (item.enabled !== false && item._tagUid == uid) {\n item.set('checked', false);\n return false;\n }\n return true;\n },\n _selectItemByText: function (text) {\n this._dfs(this.dataSource.data(), '_itemEqualsText', text);\n },\n _itemEqualsText: function (item, text) {\n if (item.enabled !== false && this._text(item) === text) {\n this.treeview.select(this.treeview.findByUid(item.uid));\n this._selectValue(item);\n return false;\n }\n return true;\n },\n _selectItemByValue: function (value) {\n this._dfs(this.dataSource.data(), '_itemEqualsValue', value);\n },\n _itemEqualsValue: function (item, value) {\n if (item.enabled !== false && this._valueComparer(item, value)) {\n this.treeview.select(this.treeview.findByUid(item.uid));\n return false;\n }\n return true;\n },\n _checkItemByValue: function (value) {\n var items = this.treeview.dataItems();\n for (var idx = 0; idx < value.length; idx++) {\n this._dfs(items, '_checkItemEqualsValue', value[idx]);\n }\n },\n _checkItemEqualsValue: function (item, value) {\n if (item.enabled !== false && this._valueComparer(item, value)) {\n item.set('checked', true);\n return false;\n }\n return true;\n },\n _valueComparer: function (item, value) {\n var itemValue = this._value(item);\n var itemText;\n if (itemValue) {\n if (!value) {\n return false;\n }\n var newValue = this._value(value);\n if (newValue) {\n return itemValue == newValue;\n } else {\n return itemValue == value;\n }\n }\n itemText = this._text(item);\n if (itemText) {\n if (this._text(value)) {\n return itemText == this._text(value);\n } else {\n return itemText == value;\n }\n }\n return false;\n },\n _getAllChecked: function () {\n this._allCheckedItems = [];\n this._allItemsAreChecked = true;\n this._allItemsAreUnchecked = true;\n this._dfs(this.dataSource.data(), '_getAllCheckedItems');\n return this._allCheckedItems;\n },\n _getAllCheckedItems: function (item) {\n if (this._allItemsAreChecked) {\n this._allItemsAreChecked = item.checked;\n }\n if (this._allItemsAreUnchecked) {\n this._allItemsAreUnchecked = !item.checked;\n }\n if (item.checked) {\n this._allCheckedItems.push(item);\n }\n return true;\n },\n _traverceChildren: function (item, action, prop) {\n var childrenField = item._childrenOptions && item._childrenOptions.schema ? item._childrenOptions.schema.data : null;\n var subItems = item[childrenField] || item.items || item.children;\n if (!subItems) {\n return;\n }\n this._dfs(subItems, action, prop);\n },\n _toggleCheckAllItems: function (checked) {\n this._dfs(this.dataSource.data(), '_checkAllCheckItem', checked);\n },\n _checkAllCheckItem: function (item, checked) {\n if (item.enabled === false) {\n if (item.checked) {\n this._disabledCheckedItems.push(item);\n } else {\n this._disabledUnCheckedItems.push(item);\n }\n } else {\n item.set('checked', checked);\n }\n return true;\n },\n _isFilterEnabled: function () {\n var filter = this.options.filter;\n return filter && filter !== 'none';\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 (that._isMultipleSelection()) {\n that.tagList.off(CLICK + ns);\n }\n if (!readonly && !disable) {\n element.removeAttr(DISABLED).removeAttr(READONLY);\n dropDownWrapper.removeClass(STATEDISABLED).on(HOVEREVENTS, that._toggleHover);\n that._clear.on('click' + ns, proxy(that._clearClick, that));\n wrapper.attr(TABINDEX, wrapper.data(TABINDEX)).attr(ARIA_DISABLED, false).on('keydown' + ns, proxy(that._keydown, that)).on('focusin' + ns, proxy(that._focusinHandler, that)).on('focusout' + ns, proxy(that._focusoutHandler, that));\n that.wrapper.on(CLICK + ns, proxy(that._wrapperClick, that));\n if (this._isMultipleSelection()) {\n that.tagList.on(CLICK + ns, 'li.k-button', function (e) {\n $(e.currentTarget).addClass(FOCUSED);\n });\n that.tagList.on(CLICK + ns, '.k-select', function (e) {\n that._removeTagClick(e);\n });\n }\n } else if (disable) {\n wrapper.removeAttr(TABINDEX);\n dropDownWrapper.addClass(STATEDISABLED);\n } else {\n wrapper.attr(TABINDEX, wrapper.data(TABINDEX));\n dropDownWrapper.removeClass(STATEDISABLED);\n wrapper.on('focusin' + ns, proxy(that._focusinHandler, that)).on('focusout' + ns, proxy(that._focusoutHandler, that));\n }\n element.attr(DISABLED, disable).attr(READONLY, readonly);\n wrapper.attr(ARIA_DISABLED, disable);\n },\n _focusinHandler: function () {\n this._inputWrapper.addClass(FOCUSED);\n },\n _focusoutHandler: function () {\n this._inputWrapper.removeClass(FOCUSED);\n if (this._isMultipleSelection()) {\n this.tagList.find(DOT + FOCUSED).removeClass(FOCUSED);\n }\n },\n _toggle: function (open) {\n open = open !== undefined ? open : !this.popup.visible();\n this[open ? OPEN : CLOSE]();\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 _toggleHover: function (e) {\n $(e.currentTarget).toggleClass(HOVER, e.type === 'mouseenter');\n },\n _focusInput: function () {\n if (this.filterInput) {\n this.filterInput.focus();\n } else if (this.checkAll) {\n this.checkAll.find('.k-checkbox').focus();\n } else if (this.tree.is(':visible')) {\n this.tree.focus();\n }\n },\n _keydown: function (e) {\n var key = e.keyCode;\n var altKey = e.altKey;\n var isFilterInputActive;\n var isWrapperActive;\n var focused, tagItem;\n var isPopupVisible = this.popup.visible();\n if (this.filterInput) {\n isFilterInputActive = this.filterInput[0] === activeElement();\n }\n if (this.wrapper) {\n isWrapperActive = this.wrapper[0] === activeElement();\n }\n if (isWrapperActive) {\n if (key === keys.ESC) {\n this._clearTextAndValue();\n e.preventDefault();\n return;\n }\n if (this._isMultipleSelection()) {\n if (key === keys.LEFT) {\n this._focusPrevTag();\n e.preventDefault();\n return;\n }\n if (key === keys.RIGHT) {\n this._focusNextTag();\n e.preventDefault();\n return;\n }\n if (key === keys.HOME) {\n this._focusFirstTag();\n e.preventDefault();\n return;\n }\n if (key === keys.END) {\n this._focusLastTag();\n e.preventDefault();\n return;\n }\n if (key === keys.DELETE) {\n focused = this.tagList.find(DOT + FOCUSED).first();\n if (focused.length) {\n tagItem = this._tags[focused.index()];\n this._removeTag(tagItem);\n }\n e.preventDefault();\n return;\n }\n if (key === keys.BACKSPACE) {\n focused = this.tagList.find(DOT + FOCUSED).first();\n if (focused.length) {\n tagItem = this._tags[focused.index()];\n this._removeTag(tagItem);\n } else {\n focused = this._focusLastTag();\n if (focused.length) {\n tagItem = this._tags[focused.index()];\n this._removeTag(tagItem);\n }\n }\n e.preventDefault();\n return;\n }\n }\n }\n if (isFilterInputActive) {\n if (key === keys.ESC) {\n this._clearFilter();\n }\n if (key === keys.UP && !altKey) {\n this.wrapper.focus();\n e.preventDefault();\n }\n if (browser.msie && browser.version < 10) {\n if (key === keys.BACKSPACE || key === keys.DELETE) {\n this._search();\n }\n }\n }\n if (altKey && key === keys.UP || key === keys.ESC) {\n this.wrapper.focus();\n this.close();\n e.preventDefault();\n return;\n }\n if (key === keys.ENTER && this._typingTimeout && this.filterInput && isPopupVisible) {\n e.preventDefault();\n return;\n }\n if (key === keys.SPACEBAR && !isFilterInputActive) {\n this._toggle(!isPopupVisible);\n e.preventDefault();\n }\n if (altKey && key === keys.DOWN && !isPopupVisible) {\n this.open();\n e.preventDefault();\n }\n if (key === keys.DOWN && isPopupVisible) {\n if (this.filterInput && !isFilterInputActive) {\n this.filterInput.focus();\n } else if (this.checkAll && this.checkAll.is(':visible')) {\n this.checkAll.find('input').focus();\n } else if (this.tree.is(':visible')) {\n this.tree.focus();\n }\n e.preventDefault();\n }\n },\n _focusPrevTag: function () {\n var focused = this.tagList.find(DOT + FOCUSED);\n if (focused.length) {\n var activedescendant = this.wrapper.attr('aria-activedescendant');\n focused.first().removeClass(FOCUSED).removeAttr('id').prev().addClass(FOCUSED).attr('id', activedescendant);\n this.wrapper.attr('aria-activedescendant', activedescendant);\n } else {\n this._focusLastTag();\n }\n },\n _focusNextTag: function () {\n var focused = this.tagList.find(DOT + FOCUSED);\n if (focused.length) {\n var activedescendant = this.wrapper.attr('aria-activedescendant');\n focused.first().removeClass(FOCUSED).removeAttr('id').next().addClass(FOCUSED).attr('id', activedescendant);\n this.wrapper.attr('aria-activedescendant', activedescendant);\n } else {\n this._focusFirstTag();\n }\n },\n _focusFirstTag: function () {\n var activedescendant = this.wrapper.attr('aria-activedescendant');\n this._clearDisabledTag();\n var firstTag = this.tagList.children('li').first().addClass(FOCUSED).attr('id', activedescendant);\n this.wrapper.attr('aria-activedescendant', activedescendant);\n return firstTag;\n },\n _focusLastTag: function () {\n var activedescendant = this.wrapper.attr('aria-activedescendant');\n this._clearDisabledTag();\n var lastTag = this.tagList.children('li').last().addClass(FOCUSED).attr('id', activedescendant);\n this.wrapper.attr('aria-activedescendant', activedescendant);\n return lastTag;\n },\n _clearDisabledTag: function () {\n this.tagList.find(DOT + FOCUSED).removeClass(FOCUSED).removeAttr('id');\n },\n _search: function () {\n var that = this;\n clearTimeout(that._typingTimeout);\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 }\n that._typingTimeout = null;\n }, that.options.delay);\n },\n _clearFilter: function () {\n if (this.filterInput.val().length) {\n this.filterInput.val('');\n this._prev = '';\n this._filtering = true;\n this.treeview.dataSource.filter({});\n }\n },\n _removeTagClick: function (e) {\n e.stopPropagation();\n var tagItem = this._tags[$(e.currentTarget.parentElement).index()];\n this._removeTag(tagItem);\n },\n _removeTag: function (tagItem) {\n if (!tagItem) {\n return;\n }\n var uid = tagItem.uid;\n this._uncheckItemByUid(uid);\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 ui.plugin(DropDownTree);\n var SingleSelection = kendo.Class.extend({\n init: function (view) {\n this._dropdowntree = view;\n },\n _initWrapper: function () {\n this._wrapper();\n this._span();\n },\n _preselect: function (data) {\n var dropdowntree = this._dropdowntree;\n dropdowntree._selectValue(data);\n },\n _wrapper: function () {\n var dropdowntree = this._dropdowntree, element = dropdowntree.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 dropdowntree._focused = dropdowntree.wrapper = wrapper.addClass('k-widget k-dropdowntree').addClass(DOMelement.className).css('display', '').attr({\n accesskey: element.attr('accesskey'),\n unselectable: 'on',\n role: 'listbox',\n 'aria-haspopup': true,\n 'aria-expanded': false\n });\n element.hide().removeAttr('accesskey');\n },\n _span: function () {\n var dropdowntree = this._dropdowntree, wrapper = dropdowntree.wrapper, SELECTOR = 'span.k-input', span;\n span = wrapper.find(SELECTOR);\n if (!span[0]) {\n wrapper.append(' ').append(dropdowntree.element);\n span = wrapper.find(SELECTOR);\n }\n dropdowntree.span = span;\n dropdowntree._inputWrapper = $(wrapper[0].firstChild);\n dropdowntree._arrow = wrapper.find('.k-select');\n dropdowntree._arrowIcon = dropdowntree._arrow.find('.k-icon');\n },\n _setValue: function (value) {\n var dropdowntree = this._dropdowntree;\n var currentValue;\n if (value === undefined || value === null) {\n currentValue = dropdowntree._values.slice()[0];\n value = typeof currentValue === 'object' ? currentValue : dropdowntree._accessor() || currentValue;\n return value === undefined || value === null ? '' : value;\n }\n dropdowntree._valueMethodCalled = true;\n if (value.length === 0) {\n dropdowntree._clearTextAndValue();\n dropdowntree._valueMethodCalled = false;\n return;\n }\n dropdowntree._selectItemByValue(value);\n dropdowntree._toggleCloseVisibility();\n },\n _clearValue: function () {\n var dropdowntree = this._dropdowntree;\n var selectedNode = dropdowntree.treeview.select();\n if (dropdowntree.treeview.dataItem(selectedNode)) {\n dropdowntree.treeview.dataItem(selectedNode).set('selected', false);\n if (!dropdowntree._valueMethodCalled) {\n dropdowntree.trigger(CHANGE);\n }\n }\n },\n _checkLoadedItem: function (tempItem, value) {\n var dropdowntree = this._dropdowntree;\n if (value && dropdowntree._valueComparer(tempItem, value) || !value && tempItem.selected) {\n dropdowntree.treeview.select(dropdowntree.treeview.findByUid(tempItem.uid));\n }\n }\n });\n var MultipleSelection = kendo.Class.extend({\n init: function (view) {\n this._dropdowntree = view;\n },\n _initWrapper: function () {\n var dropdowntree = this._dropdowntree;\n this._tagTemplate();\n dropdowntree.element.attr('multiple', 'multiple').hide();\n this._wrapper();\n dropdowntree._tags = new ObservableArray([]);\n dropdowntree._multipleTags = new ObservableArray([]);\n this._tagList();\n dropdowntree.span = $(' ').insertAfter(dropdowntree.tagList);\n dropdowntree._inputWrapper = $(dropdowntree.wrapper[0].firstChild);\n },\n _preselect: function (data, value) {\n var dropdowntree = this._dropdowntree;\n var valueToSelect = value || dropdowntree.options.value;\n if (!$.isArray(data) && !(data instanceof kendo.data.ObservableArray)) {\n data = [data];\n }\n if ($.isPlainObject(data[0]) || data[0] instanceof kendo.data.ObservableObject || !dropdowntree.options.dataValueField) {\n dropdowntree.dataSource.data(data);\n dropdowntree.value(valueToSelect);\n }\n },\n _tagTemplate: function () {\n var dropdowntree = this._dropdowntree;\n var options = dropdowntree.options;\n var tagTemplate = options.valueTemplate;\n var isMultiple = options.tagMode === 'multiple';\n var singleTag = options.messages.singleTag;\n tagTemplate = tagTemplate ? kendo.template(tagTemplate) : dropdowntree.valueTemplate;\n dropdowntree.valueTemplate = function (data) {\n if (isMultiple) {\n return '
  • ' + '' + tagTemplate(data) + '' + '' + '' + '' + '
  • ';\n }\n return '
  • ' + '' + ' ' + singleTag + '' + '
  • ';\n };\n },\n _wrapper: function () {\n var dropdowntree = this._dropdowntree, element = dropdowntree.element, wrapper = element.parent('span.k-dropdowntree');\n if (!wrapper[0]) {\n wrapper = element.wrap('
    ').parent();\n wrapper[0].style.cssText = element[0].style.cssText;\n wrapper[0].title = element[0].title;\n $('
    ').insertBefore(element);\n }\n dropdowntree.wrapper = wrapper.addClass(element[0].className).css('display', '').attr({\n role: 'listbox',\n 'aria-activedescendant': kendo.guid(),\n 'aria-haspopup': true,\n 'aria-expanded': false\n });\n dropdowntree._innerWrapper = $(wrapper[0].firstChild);\n },\n _tagList: function () {\n var dropdowntree = this._dropdowntree, tagList = dropdowntree._innerWrapper.children('ul');\n if (!tagList[0]) {\n var isMultiple = dropdowntree.options.tagMode === 'multiple';\n var tagCollection = isMultiple ? 'tags' : 'multipleTag';\n tagList = $('
      ').appendTo(dropdowntree._innerWrapper);\n }\n dropdowntree.tagList = tagList;\n dropdowntree.tagList.attr('id', kendo.guid() + '_tagList');\n dropdowntree.wrapper.attr('aria-owns', dropdowntree.tagList.attr('id'));\n var viewModel = kendo.observable({\n multipleTag: dropdowntree._multipleTags,\n tags: dropdowntree._tags,\n tagTemplate: dropdowntree.valueTemplate\n });\n kendo.bind(dropdowntree.tagList, viewModel);\n dropdowntree.tagList.attr('data-stop', true);\n },\n _setValue: function (value) {\n var dropdowntree = this._dropdowntree;\n var oldValues = dropdowntree._values;\n if (value === undefined || value === null) {\n return dropdowntree._values.slice();\n }\n dropdowntree.setValue(value);\n dropdowntree._valueMethodCalled = true;\n if (value.length) {\n this._removeValues(oldValues, value);\n dropdowntree._checkItemByValue(value);\n } else {\n dropdowntree._clearTextAndValue();\n }\n dropdowntree._valueMethodCalled = false;\n dropdowntree._toggleCloseVisibility();\n },\n _removeValues: function (oldValues, value) {\n var dropdowntree = this._dropdowntree;\n var removedValues = this._getNewValues(oldValues, value);\n for (var idx = 0; idx < removedValues.length; idx++) {\n for (var j = 0; j < dropdowntree._tags.length; j++) {\n if (dropdowntree._valueComparer(dropdowntree._tags[j], removedValues[idx])) {\n dropdowntree._uncheckItemByUid(dropdowntree._tags[j].uid);\n }\n }\n }\n },\n _getNewValues: function (oldValues, value) {\n var removedValues = [];\n for (var idx = 0; idx < oldValues.length; idx++) {\n if (value.indexOf(oldValues[idx]) === -1) {\n removedValues.push(oldValues[idx]);\n }\n }\n return removedValues;\n },\n _clearValue: function () {\n var dropdowntree = this._dropdowntree;\n var tagsArray = dropdowntree._tags.slice();\n for (var idx = 0; idx < tagsArray.length; idx++) {\n var uid = tagsArray[idx].uid;\n dropdowntree._preventChangeTrigger = true;\n dropdowntree._uncheckItemByUid(uid);\n }\n if (tagsArray.length) {\n dropdowntree._preventChangeTrigger = false;\n if (!dropdowntree._valueMethodCalled) {\n dropdowntree.trigger(CHANGE);\n }\n }\n },\n _checkLoadedItem: function (tempItem, value) {\n var dropdowntree = this._dropdowntree;\n if (dropdowntree._noInitialValue && tempItem.checked) {\n dropdowntree._checkValue(tempItem);\n return;\n }\n if (value.length && (value.indexOf(dropdowntree._currentValue(tempItem)) !== -1 || value.indexOf(tempItem)) !== -1 && !this._findTag(dropdowntree._currentValue(tempItem))) {\n if (tempItem.checked) {\n dropdowntree._checkValue(tempItem);\n } else {\n tempItem.set('checked', true);\n }\n }\n },\n _findTag: function (tempItemValue) {\n var dropdowntree = this._dropdowntree;\n return dropdowntree._tags.find(function (item) {\n return dropdowntree._valueComparer(item, tempItemValue);\n });\n }\n });\n kendo.ui.DropDownTree.SingleSelection = SingleSelection;\n kendo.ui.DropDownTree.MultipleSelection = MultipleSelection;\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"]}