{"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","_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","value","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 _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}));"]}