{"version":3,"sources":["kendo.treeview.js"],"names":["f","define","$","undefined","contentChild","filter","node","result","children","length","templateNoWith","code","kendo","template","useWithBlock","checkboxes","find","insertAction","indexOffset","nodeData","referenceNode","closest","NODE","parentNode","group","parent","is","this","_dataSourceMove","dataSource","model","referenceItem","dataItem","referenceNodeIndex","indexOf","index","_insert","data","moveContents","container","tmp","nodeName","toLowerCase","nextSibling","nodeType","nodeValue","trim","spriteRe","test","className","insertBefore","firstChild","appendChild","updateNodeHtml","wrapper","toggleButton","checkbox","innerWrapper","hasClass","prependTo","remove","appendTo","append","eq","addClass","TreeView","subGroup","nodeContents","nodeIcon","window","ui","extend","isArray","Widget","HierarchicalDataSource","proxy","keys","NS","TEMP_NS","SELECT","CHECK","NAVIGATE","EXPAND","CHANGE","ERROR","CHECKED","INDETERMINATE","COLLAPSE","DRAGSTART","DRAG","DROP","DRAGEND","DATABOUND","CLICK","KENDOKEYDOWN","UNDEFINED","KSTATEHOVER","KTREEVIEW","VISIBLE","STRING","ARIACHECKED","ARIASELECTED","ARIADISABLED","ARIAEXPANDED","DISABLED","bindings","text","url","spriteCssClass","imageUrl","isJQueryInstance","obj","jQuery","isDomElement","o","HTMLElement","DataBoundWidget","init","element","options","list","that","inferred","hasDataSource","loadOnDemand","prototype","call","_dataSourceUids","_animation","_accessors","_templates","root","_wrapper","_group","_tabindex","attr","_dataSource","_attachEvents","_dragging","_syncHtmlAndDataSource","autoBind","_progress","fetch","checkChildren","updateIndeterminate","id","_ariaId","format","notify","clickableItems","MOUSEENTER","on","e","preventDefault","removeClass","_click","_toggleButtonClick","_keydown","_keypress","_focus","_blur","_mousedown","_checkboxChange","_checkboxLabelClick","_retryRequest","target","focus","previousSibling","prop","trigger","i","item","uid","itemCheckbox","view","uidAttr","expandedAttr","checkboxesEnabled","items","expanded","checked","next","animationOptions","animation","hasCollapseAnimation","collapse","expand","reverse","effects","hide","widget","enabled","dragAndDrop","dragging","HierarchicalDragAndDrop","reorderable","$angular","autoScroll","allowedContainers","itemSelector","hintText","_hintText","contains","source","destination","dropHintContainer","itemFromTarget","content","first","last","dropPositionFrom","dropHint","prevAll","dragstart","sourceNode","drag","originalEvent","dropTarget","pageY","pageX","statusClass","status","setStatusClass","setStatus","drop","navigationTarget","_tempPreventNavigation","destinationNode","valid","setValid","state","dropPosition","position","dragend","triggerDragEnd","insertAfter","destroy","ev","off","templates","dragClue","treeview","fieldAccessor","_fieldAccessor","_checkboxes","setAttributes","attributes","hasOwnProperty","wrapperCssClass","firstLevel","cssClass","groupLength","textClass","isLink","selected","toggleButtonClass","groupAttributes","groupCssClass","itemContent","itemElement","loading","retry","setDataSource","one","_bindDataSource","_refreshHandler","refresh","_errorHandler","_error","bind","_unbindDataSource","unbind","silentRead","recursiveRead","_initChildren","fields","field","create","events","name","duration","messages","requestFailed","dataTextField","textField","fieldName","fieldBindings","count","map","x","expr","join","setOptions","fn","_trigger","eventName","_setChecked","datasource","value","isFunction","nodes","_setCheckedValue","_setIndeterminate","siblings","all","indeterminate","subnodes","_bubbleIndeterminate","skipDownward","_skip","set","isChecked","_preventChange","currentTarget","toggle","browser","support","msie","edge","_clickTarget","current","_focusable","select","clickTarget","touch","_nextVisible","scrollContainer","containers","offsets","documentElement","document","scrollHeight","clientHeight","push","scrollTop","focusElement","_enabled","skipSelf","wrapperRe","itemRe","nextParent","_expanded","_previousVisible","lastChild","prev","key","keyCode","focused","rtl","isRtl","RIGHT","LEFT","DOWN","UP","HOME","END","ENTER","SPACEBAR","matchToFocus","delay","focusedNode","get","isPrintable","_match","clearTimeout","_matchTimer","setTimeout","_matchNextByText","Array","startIndex","textNodes","shouldNavigate","contents","href","wrapperClasses","wrap","_getSelectedNode","groupElement","css","_nodes","groupData","each","_updateNodeClasses","defaultTemplate","textWrap","_processNodes","callback","getByUid","_dataItem","_insertNode","insertCallback","collapsed","childrenData","updatedGroupLength","nodeHtml","_renderItem","angular","elements","_renderGroup","hasChildren","_updateNodes","setCheckedState","nodeWrapper","isCollapsed","context","render","findByUid","toggleClass","end","html","_toggle","removeAttr","_events","change","splice","ns","_appendItems","dataItems","viewItems","rootItems","_refreshChildren","child","empty","_refreshRoot","groupHtml","parentElement","_angularItems","bubble","action","level","_remove","_loaded","load","retryHtml","loaded","enable","arguments","_current","direction","height","kendoStop","kendoAnimate","reset","complete","force","showProgress","loadingText","Math","min","_objectOrSelf","referenceDataItem","destTreeview","destDataSource","loadPromise","Deferred","resolve","promise","_toObservableData","ObservableArray","toJSON","apply","concat","success","loadModel","add","max","inserted","done","noop","keepData","prevSibling","detach","findByText","getAttribute","expandPath","path","proceed","nodeIds","shift","then","nodeElement","slice","_parentIds","parents","unshift","expandTo","Node","r","renderItems","len","plugin","amd","a1","a2","a3"],"mappings":"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","file":"kendo.treeview.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('kendo.treeview', [\n 'kendo.data',\n 'kendo.treeview.draganddrop'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'treeview',\n name: 'TreeView',\n category: 'web',\n description: 'The TreeView widget displays hierarchical data in a traditional tree structure,with support for interactive drag-and-drop operations.',\n depends: ['data'],\n features: [{\n id: 'treeview-dragging',\n name: 'Drag & Drop',\n description: 'Support for drag & drop',\n depends: ['treeview.draganddrop']\n }]\n };\n (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.ui, data = kendo.data, extend = $.extend, template = kendo.template, isArray = $.isArray, Widget = ui.Widget, HierarchicalDataSource = data.HierarchicalDataSource, proxy = $.proxy, keys = kendo.keys, NS = '.kendoTreeView', TEMP_NS = '.kendoTreeViewTemp', SELECT = 'select', CHECK = 'check', NAVIGATE = 'navigate', EXPAND = 'expand', CHANGE = 'change', ERROR = 'error', CHECKED = 'checked', INDETERMINATE = 'indeterminate', COLLAPSE = 'collapse', DRAGSTART = 'dragstart', DRAG = 'drag', DROP = 'drop', DRAGEND = 'dragend', DATABOUND = 'dataBound', CLICK = 'click', KENDOKEYDOWN = 'kendoKeydown', UNDEFINED = 'undefined', KSTATEHOVER = 'k-state-hover', KTREEVIEW = 'k-treeview', VISIBLE = ':visible', NODE = '.k-item', STRING = 'string', ARIACHECKED = 'aria-checked', ARIASELECTED = 'aria-selected', ARIADISABLED = 'aria-disabled', ARIAEXPANDED = 'aria-expanded', DISABLED = 'k-state-disabled', TreeView, subGroup, nodeContents, nodeIcon, spriteRe, bindings = {\n text: 'dataTextField',\n url: 'dataUrlField',\n spriteCssClass: 'dataSpriteCssClassField',\n imageUrl: 'dataImageUrlField'\n }, isJQueryInstance = function (obj) {\n return obj instanceof kendo.jQuery || window.jQuery && obj instanceof window.jQuery;\n }, isDomElement = function (o) {\n return typeof HTMLElement === 'object' ? o instanceof HTMLElement : o && typeof o === 'object' && o.nodeType === 1 && typeof o.nodeName === STRING;\n };\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 function templateNoWith(code) {\n return kendo.template(code, { useWithBlock: false });\n }\n subGroup = contentChild('.k-group');\n nodeContents = contentChild('.k-group,.k-content');\n nodeIcon = function (node) {\n return node.children('div').children('.k-icon');\n };\n function checkboxes(node) {\n return node.find('.k-checkbox-wrapper:first input[type=checkbox]');\n }\n function insertAction(indexOffset) {\n return function (nodeData, referenceNode) {\n referenceNode = referenceNode.closest(NODE);\n var group = referenceNode.parent(), parentNode;\n if (group.parent().is('li')) {\n parentNode = group.parent();\n }\n return this._dataSourceMove(nodeData, group, parentNode, function (dataSource, model) {\n var referenceItem = this.dataItem(referenceNode);\n var referenceNodeIndex = referenceItem ? referenceItem.parent().indexOf(referenceItem) : referenceNode.index();\n return this._insert(dataSource.data(), model, referenceNodeIndex + indexOffset);\n });\n };\n }\n spriteRe = /k-sprite/;\n function moveContents(node, container) {\n var tmp;\n while (node && node.nodeName.toLowerCase() != 'ul') {\n tmp = node;\n node = node.nextSibling;\n if (tmp.nodeType == 3) {\n tmp.nodeValue = kendo.trim(tmp.nodeValue);\n }\n if (spriteRe.test(tmp.className)) {\n container.insertBefore(tmp, container.firstChild);\n } else {\n container.appendChild(tmp);\n }\n }\n }\n function updateNodeHtml(node) {\n var wrapper = node.children('div'), group = node.children('ul'), toggleButton = wrapper.children('.k-icon'), checkbox = node.children('input[type=checkbox]'), innerWrapper = wrapper.children('.k-in');\n if (node.hasClass('k-treeview')) {\n return;\n }\n if (!wrapper.length) {\n wrapper = $('
').prependTo(node);\n }\n if (!toggleButton.length && group.length) {\n toggleButton = $('').prependTo(wrapper);\n } else if (!group.length || !group.children().length) {\n toggleButton.remove();\n group.remove();\n }\n if (checkbox.length) {\n $('').appendTo(wrapper).append(checkbox);\n }\n if (!innerWrapper.length) {\n innerWrapper = node.children('a').eq(0).addClass('k-in k-link');\n if (!innerWrapper.length) {\n innerWrapper = $('');\n }\n innerWrapper.appendTo(wrapper);\n if (wrapper.length) {\n moveContents(wrapper[0].nextSibling, innerWrapper[0]);\n }\n }\n }\n TreeView = kendo.ui.DataBoundWidget.extend({\n init: function (element, options) {\n var that = this, inferred = false, hasDataSource = options && !!options.dataSource, list;\n if (isArray(options)) {\n options = { dataSource: options };\n }\n if (options && typeof options.loadOnDemand == UNDEFINED && isArray(options.dataSource)) {\n options.loadOnDemand = false;\n }\n Widget.prototype.init.call(that, element, options);\n element = that.element;\n options = that.options;\n that._dataSourceUids = {};\n list = element.is('ul') && element || element.hasClass(KTREEVIEW) && element.children('ul');\n inferred = !hasDataSource && list.length;\n if (inferred) {\n options.dataSource.list = list;\n }\n that._animation();\n that._accessors();\n that._templates();\n if (!element.hasClass(KTREEVIEW)) {\n that._wrapper();\n if (list) {\n that.root = element;\n that._group(that.wrapper);\n }\n } else {\n that.wrapper = element;\n that.root = element.children('ul').eq(0);\n }\n that._tabindex();\n that.wrapper.attr('role', 'tree');\n that._dataSource(inferred);\n that._attachEvents();\n that._dragging();\n if (!inferred) {\n if (options.autoBind) {\n that._progress(true);\n that.dataSource.fetch();\n }\n } else {\n that._syncHtmlAndDataSource();\n }\n if (options.checkboxes && options.checkboxes.checkChildren) {\n that.updateIndeterminate();\n }\n if (that.element[0].id) {\n that._ariaId = kendo.format('{0}_tv_active', that.element[0].id);\n }\n kendo.notify(that);\n },\n _attachEvents: function () {\n var that = this, clickableItems = '.k-in:not(.k-state-selected,.k-state-disabled)', MOUSEENTER = 'mouseenter';\n that.wrapper.on(MOUSEENTER + NS, '.k-in.k-state-selected', function (e) {\n e.preventDefault();\n }).on(MOUSEENTER + NS, clickableItems, function () {\n $(this).addClass(KSTATEHOVER);\n }).on('mouseleave' + NS, clickableItems, function () {\n $(this).removeClass(KSTATEHOVER);\n }).on(CLICK + NS, clickableItems, proxy(that._click, that)).on('dblclick' + NS, '.k-in:not(.k-state-disabled)', proxy(that._toggleButtonClick, that)).on(CLICK + NS, '.k-i-expand,.k-i-collapse', proxy(that._toggleButtonClick, that)).on('keydown' + NS, that, proxy(that._keydown, that)).on('keypress' + NS, proxy(that._keypress, that)).on('focus' + NS, proxy(that._focus, that)).on('blur' + NS, proxy(that._blur, that)).on('mousedown' + NS, '.k-in,.k-checkbox-wrapper :checkbox,.k-i-expand,.k-i-collapse', proxy(that._mousedown, that)).on('change' + NS, '.k-checkbox-wrapper :checkbox', proxy(that._checkboxChange, that)).on('click' + NS, '.checkbox-span', proxy(that._checkboxLabelClick, that)).on('click' + NS, '.k-request-retry', proxy(that._retryRequest, that)).on('click' + NS, '.k-link.k-state-disabled', function (e) {\n e.preventDefault();\n }).on('click' + NS, function (e) {\n var target = $(e.target);\n if (!target.is(':kendoFocusable') && !target.find('input,select,textarea,button,object').is(':kendoFocusable')) {\n that.focus();\n }\n });\n },\n _checkboxLabelClick: function (e) {\n var checkbox = $(e.target.previousSibling);\n if (checkbox.is('[disabled]')) {\n return;\n }\n checkbox.prop('checked', !checkbox.prop('checked'));\n checkbox.trigger('change');\n },\n _syncHtmlAndDataSource: function (root, dataSource) {\n root = root || this.root;\n dataSource = dataSource || this.dataSource;\n var data = dataSource.view(), uidAttr = kendo.attr('uid'), expandedAttr = kendo.attr('expanded'), checkboxesEnabled = this.options.checkboxes, items = root.children('li'), i, item, dataItem, uid, itemCheckbox;\n for (i = 0; i < items.length; i++) {\n dataItem = data[i];\n uid = dataItem.uid;\n item = items.eq(i);\n item.attr('role', 'treeitem').attr(uidAttr, uid).attr(ARIASELECTED, item.hasClass('k-state-selected'));\n dataItem.expanded = item.attr(expandedAttr) === 'true';\n if (checkboxesEnabled) {\n itemCheckbox = checkboxes(item);\n dataItem.checked = itemCheckbox.prop(CHECKED);\n itemCheckbox.attr('id', '_' + uid);\n itemCheckbox.next('.k-checkbox-label').attr('for', '_' + uid);\n }\n this._syncHtmlAndDataSource(item.children('ul'), dataItem.children);\n }\n },\n _animation: function () {\n var options = this.options, animationOptions = options.animation, hasCollapseAnimation = animationOptions.collapse && 'effects' in animationOptions.collapse, collapse = extend({}, animationOptions.expand, animationOptions.collapse);\n if (!hasCollapseAnimation) {\n collapse = extend(collapse, { reverse: true });\n }\n if (animationOptions === false) {\n animationOptions = {\n expand: { effects: {} },\n collapse: {\n hide: true,\n effects: {}\n }\n };\n }\n animationOptions.collapse = extend(collapse, { hide: true });\n options.animation = animationOptions;\n },\n _dragging: function () {\n var enabled = this.options.dragAndDrop;\n var dragging = this.dragging;\n if (enabled && !dragging) {\n var widget = this;\n this.dragging = new ui.HierarchicalDragAndDrop(this.element, {\n reorderable: true,\n $angular: this.options.$angular,\n autoScroll: this.options.autoScroll,\n filter: 'div:not(.k-state-disabled) .k-in',\n allowedContainers: '.k-treeview',\n itemSelector: '.k-treeview .k-item',\n hintText: proxy(this._hintText, this),\n contains: function (source, destination) {\n return $.contains(source, destination);\n },\n dropHintContainer: function (item) {\n return item;\n },\n itemFromTarget: function (target) {\n var item = target.closest('.k-top,.k-mid,.k-bot');\n return {\n item: item,\n content: target.closest('.k-in'),\n first: item.hasClass('k-top'),\n last: item.hasClass('k-bot')\n };\n },\n dropPositionFrom: function (dropHint) {\n return dropHint.prevAll('.k-in').length > 0 ? 'after' : 'before';\n },\n dragstart: function (source) {\n return widget.trigger(DRAGSTART, { sourceNode: source[0] });\n },\n drag: function (options) {\n widget.trigger(DRAG, {\n originalEvent: options.originalEvent,\n sourceNode: options.source[0],\n dropTarget: options.target[0],\n pageY: options.pageY,\n pageX: options.pageX,\n statusClass: options.status,\n setStatusClass: options.setStatus\n });\n },\n drop: function (options) {\n var dropTarget = $(options.dropTarget);\n var navigationTarget = dropTarget.closest('a');\n if (navigationTarget && navigationTarget.attr('href')) {\n widget._tempPreventNavigation(navigationTarget);\n }\n return widget.trigger(DROP, {\n originalEvent: options.originalEvent,\n sourceNode: options.source,\n destinationNode: options.destination,\n valid: options.valid,\n setValid: function (state) {\n this.valid = state;\n options.setValid(state);\n },\n dropTarget: options.dropTarget,\n dropPosition: options.position\n });\n },\n dragend: function (options) {\n var source = options.source;\n var destination = options.destination;\n var position = options.position;\n function triggerDragEnd(source) {\n if (widget.options.checkboxes && widget.options.checkboxes.checkChildren) {\n widget.updateIndeterminate();\n }\n widget.trigger(DRAGEND, {\n originalEvent: options.originalEvent,\n sourceNode: source && source[0],\n destinationNode: destination[0],\n dropPosition: position\n });\n }\n if (position == 'over') {\n widget.append(source, destination, triggerDragEnd);\n } else {\n if (position == 'before') {\n source = widget.insertBefore(source, destination);\n } else if (position == 'after') {\n source = widget.insertAfter(source, destination);\n }\n triggerDragEnd(source);\n }\n }\n });\n } else if (!enabled && dragging) {\n dragging.destroy();\n this.dragging = null;\n }\n },\n _tempPreventNavigation: function (node) {\n node.on(CLICK + NS + TEMP_NS, function (ev) {\n ev.preventDefault();\n node.off(CLICK + NS + TEMP_NS);\n });\n },\n _hintText: function (node) {\n return this.templates.dragClue({\n item: this.dataItem(node),\n treeview: this.options\n });\n },\n _templates: function () {\n var that = this, options = that.options, fieldAccessor = proxy(that._fieldAccessor, that);\n if (options.template && typeof options.template == STRING) {\n options.template = template(options.template);\n } else if (!options.template) {\n options.template = templateNoWith('# var text = ' + fieldAccessor('text') + '(data.item); #' + '# if (typeof data.item.encoded != \\'undefined\\' && data.item.encoded === false) {#' + '#= text #' + '# } else { #' + '#: text #' + '# } #');\n }\n that._checkboxes();\n that.templates = {\n setAttributes: function (item) {\n var result = '';\n var attributes = item.attr || {};\n for (var attr in attributes) {\n if (attributes.hasOwnProperty(attr) && attr !== 'class') {\n result += attr + '=\"' + attributes[attr] + '\" ';\n }\n }\n return result;\n },\n wrapperCssClass: function (group, item) {\n var result = 'k-item', index = item.index;\n if (group.firstLevel && index === 0) {\n result += ' k-first';\n }\n if (index == group.length - 1) {\n result += ' k-last';\n }\n return result;\n },\n cssClass: function (group, item) {\n var result = '', index = item.index, groupLength = group.length - 1;\n if (group.firstLevel && index === 0) {\n result += 'k-top ';\n }\n if (index === 0 && index != groupLength) {\n result += 'k-top';\n } else if (index == groupLength) {\n result += 'k-bot';\n } else {\n result += 'k-mid';\n }\n return result;\n },\n textClass: function (item, isLink) {\n var result = 'k-in';\n if (isLink) {\n result += ' k-link';\n }\n if (item.enabled === false) {\n result += ' k-state-disabled';\n }\n if (item.selected === true) {\n result += ' k-state-selected';\n }\n return result;\n },\n toggleButtonClass: function (item) {\n var result = 'k-icon';\n if (item.expanded !== true) {\n result += ' k-i-expand';\n } else {\n result += ' k-i-collapse';\n }\n return result;\n },\n groupAttributes: function (group) {\n var attributes = '';\n if (!group.firstLevel) {\n attributes = 'role=\\'group\\'';\n }\n return attributes + (group.expanded !== true ? ' style=\\'display:none\\'' : '');\n },\n groupCssClass: function (group) {\n var cssClass = 'k-group';\n if (group.firstLevel) {\n cssClass += ' k-treeview-lines';\n }\n return cssClass;\n },\n dragClue: templateNoWith('#= data.treeview.template(data) #'),\n group: templateNoWith('
    ' + '#= data.renderItems(data) #' + '
'),\n itemContent: templateNoWith('# var imageUrl = ' + fieldAccessor('imageUrl') + '(data.item); #' + '# var spriteCssClass = ' + fieldAccessor('spriteCssClass') + '(data.item); #' + '# if (imageUrl) { #' + '\\'\\'' + '# } #' + '# if (spriteCssClass) { #' + '' + '# } #' + '#= data.treeview.template(data) #'),\n itemElement: templateNoWith('# var item = data.item, r = data.r; #' + '# var url = ' + fieldAccessor('url') + '(item); #' + '
' + '# if (item.hasChildren) { #' + '' + '# } #' + '# if (data.treeview.checkboxes) { #' + '' + '#= data.treeview.checkboxes.template(data) #' + '' + '# } #' + '# var tag = url ? \\'a\\' : \\'span\\'; #' + '# var textAttr = url ? \\' href=\\\\\\'\\' + url + \\'\\\\\\'\\' : \\'\\'; #' + '<#=tag# class=\\'#= r.textClass(item, !!url) #\\'#= textAttr #>' + '#= r.itemContent(data) #' + '' + '
'),\n item: templateNoWith('# var item = data.item, r = data.r; #' + '
  • ' + '#= r.itemElement(data) #' + '
  • '),\n loading: templateNoWith('
    #: data.messages.loading #'),\n retry: templateNoWith('#: data.messages.requestFailed # ' + '')\n };\n },\n items: function () {\n return this.element.find('.k-item > div:first-child');\n },\n setDataSource: function (dataSource) {\n var options = this.options;\n options.dataSource = dataSource;\n this._dataSourceUids = {};\n this._dataSource();\n if (options.checkboxes && options.checkboxes.checkChildren) {\n this.dataSource.one('change', $.proxy(this.updateIndeterminate, this, null));\n }\n if (this.options.autoBind) {\n this.dataSource.fetch();\n }\n },\n _bindDataSource: function () {\n this._refreshHandler = proxy(this.refresh, this);\n this._errorHandler = proxy(this._error, this);\n this.dataSource.bind(CHANGE, this._refreshHandler);\n this.dataSource.bind(ERROR, this._errorHandler);\n },\n _unbindDataSource: function () {\n var dataSource = this.dataSource;\n if (dataSource) {\n dataSource.unbind(CHANGE, this._refreshHandler);\n dataSource.unbind(ERROR, this._errorHandler);\n }\n },\n _dataSource: function (silentRead) {\n var that = this, options = that.options, dataSource = options.dataSource;\n function recursiveRead(data) {\n for (var i = 0; i < data.length; i++) {\n data[i]._initChildren();\n data[i].children.fetch();\n recursiveRead(data[i].children.view());\n }\n }\n dataSource = isArray(dataSource) ? { data: dataSource } : dataSource;\n that._unbindDataSource();\n if (!dataSource.fields) {\n dataSource.fields = [\n { field: 'text' },\n { field: 'url' },\n { field: 'spriteCssClass' },\n { field: 'imageUrl' }\n ];\n }\n that.dataSource = dataSource = HierarchicalDataSource.create(dataSource);\n if (silentRead) {\n dataSource.fetch();\n recursiveRead(dataSource.view());\n }\n that._bindDataSource();\n },\n events: [\n DRAGSTART,\n DRAG,\n DROP,\n DRAGEND,\n DATABOUND,\n EXPAND,\n COLLAPSE,\n SELECT,\n CHANGE,\n NAVIGATE,\n CHECK,\n KENDOKEYDOWN\n ],\n options: {\n name: 'TreeView',\n dataSource: {},\n animation: {\n expand: {\n effects: 'expand:vertical',\n duration: 200\n },\n collapse: { duration: 100 }\n },\n messages: {\n loading: 'Loading...',\n requestFailed: 'Request failed.',\n retry: 'Retry'\n },\n dragAndDrop: false,\n checkboxes: false,\n autoBind: true,\n autoScroll: false,\n loadOnDemand: true,\n template: '',\n dataTextField: null\n },\n _accessors: function () {\n var that = this, options = that.options, i, field, textField, element = that.element;\n for (i in bindings) {\n field = options[bindings[i]];\n textField = element.attr(kendo.attr(i + '-field'));\n if (!field && textField) {\n field = textField;\n }\n if (!field) {\n field = i;\n }\n if (!isArray(field)) {\n field = [field];\n }\n options[bindings[i]] = field;\n }\n },\n _fieldAccessor: function (fieldName) {\n var fieldBindings = this.options[bindings[fieldName]], count = fieldBindings.length, result = '(function(item) {';\n if (count === 0) {\n result += 'return item[\\'' + fieldName + '\\'];';\n } else {\n result += 'var levels = [' + $.map(fieldBindings, function (x) {\n return 'function(d){ return ' + kendo.expr(x) + '}';\n }).join(',') + '];';\n result += 'return levels[Math.min(item.level(), ' + count + '-1)](item)';\n }\n result += '})';\n return result;\n },\n setOptions: function (options) {\n Widget.fn.setOptions.call(this, options);\n this._animation();\n this._dragging();\n this._templates();\n },\n _trigger: function (eventName, node) {\n return this.trigger(eventName, { node: node.closest(NODE)[0] });\n },\n _setChecked: function (datasource, value) {\n if (!datasource || !$.isFunction(datasource.view)) {\n return;\n }\n for (var i = 0, nodes = datasource.view(); i < nodes.length; i++) {\n if (nodes[i].enabled !== false) {\n this._setCheckedValue(nodes[i], value);\n }\n if (nodes[i].children) {\n this._setChecked(nodes[i].children, value);\n }\n }\n },\n _setCheckedValue: function (node, value) {\n node[CHECKED] = value;\n },\n _setIndeterminate: function (node) {\n var group = subGroup(node), siblings, length, all = true, i;\n if (!group.length) {\n return;\n }\n siblings = checkboxes(group.children());\n length = siblings.length;\n if (!length) {\n return;\n } else if (length > 1) {\n for (i = 1; i < length; i++) {\n if (siblings[i].checked != siblings[i - 1].checked || siblings[i].indeterminate || siblings[i - 1].indeterminate) {\n all = false;\n break;\n }\n }\n } else {\n all = !siblings[0].indeterminate;\n }\n node.attr(ARIACHECKED, all ? siblings[0].checked : 'mixed');\n return checkboxes(node).data(INDETERMINATE, !all).prop(INDETERMINATE, !all).prop(CHECKED, all && siblings[0].checked);\n },\n updateIndeterminate: function (node) {\n node = node || this.wrapper;\n var subnodes = subGroup(node).children();\n var i;\n var checkbox;\n var dataItem;\n if (subnodes.length) {\n for (i = 0; i < subnodes.length; i++) {\n this.updateIndeterminate(subnodes.eq(i));\n }\n if (node.is('.k-treeview')) {\n return;\n }\n checkbox = this._setIndeterminate(node);\n dataItem = this.dataItem(node);\n if (checkbox && checkbox.prop(CHECKED)) {\n dataItem.checked = true;\n } else {\n if (dataItem) {\n delete dataItem.checked;\n }\n }\n }\n },\n _bubbleIndeterminate: function (node, skipDownward) {\n if (!node.length) {\n return;\n }\n if (!skipDownward) {\n this.updateIndeterminate(node);\n }\n var parentNode = this.parent(node), checkbox;\n if (parentNode.length) {\n this._setIndeterminate(parentNode);\n checkbox = parentNode.children('div').find('.k-checkbox-wrapper input[type=checkbox]');\n this._skip = true;\n if (checkbox.prop(INDETERMINATE) === false) {\n this.dataItem(parentNode).set(CHECKED, checkbox.prop(CHECKED));\n } else {\n this.dataItem(parentNode).set(CHECKED, false);\n }\n this._skip = false;\n this._bubbleIndeterminate(parentNode, true);\n }\n },\n _checkboxChange: function (e) {\n var that = this;\n var checkbox = $(e.target);\n var isChecked = checkbox.prop(CHECKED);\n var node = checkbox.closest(NODE);\n var dataItem = this.dataItem(node);\n if (this._preventChange) {\n return;\n }\n if (dataItem.checked != isChecked) {\n dataItem.set(CHECKED, isChecked);\n node.attr(ARIACHECKED, isChecked);\n this._trigger(CHECK, node);\n }\n if (checkbox.is(':focus')) {\n that._trigger(NAVIGATE, node);\n that.focus();\n }\n },\n _toggleButtonClick: function (e) {\n var node = $(e.currentTarget).closest(NODE);\n if (node.is('[aria-disabled=\\'true\\']')) {\n return;\n }\n this.toggle(node);\n },\n _mousedown: function (e) {\n var that = this;\n var currentTarget = $(e.currentTarget);\n var node = $(e.currentTarget).closest(NODE);\n var browser = kendo.support.browser;\n if (node.is('[aria-disabled=\\'true\\']')) {\n return;\n }\n if ((browser.msie || browser.edge) && currentTarget.is(':checkbox')) {\n if (currentTarget.prop(INDETERMINATE)) {\n that._preventChange = false;\n currentTarget.prop(CHECKED, !currentTarget.prop(CHECKED));\n currentTarget.trigger(CHANGE);\n currentTarget.on(CLICK + NS, function (e) {\n e.preventDefault();\n });\n that._preventChange = true;\n } else {\n currentTarget.off(CLICK + NS);\n that._preventChange = false;\n }\n }\n that._clickTarget = node;\n that.current(node);\n },\n _focusable: function (node) {\n return node && node.length && node.is(':visible') && !node.find('.k-in:first').hasClass(DISABLED);\n },\n _focus: function () {\n var current = this.select(), clickTarget = this._clickTarget;\n if (kendo.support.touch) {\n return;\n }\n if (clickTarget && clickTarget.length) {\n current = clickTarget;\n }\n if (!this._focusable(current)) {\n current = this.current();\n }\n if (!this._focusable(current)) {\n current = this._nextVisible($());\n }\n this.current(current);\n },\n focus: function () {\n var wrapper = this.wrapper, scrollContainer = wrapper[0], containers = [], offsets = [], documentElement = document.documentElement, i;\n do {\n scrollContainer = scrollContainer.parentNode;\n if (scrollContainer.scrollHeight > scrollContainer.clientHeight) {\n containers.push(scrollContainer);\n offsets.push(scrollContainer.scrollTop);\n }\n } while (scrollContainer != documentElement);\n kendo.focusElement(wrapper);\n for (i = 0; i < containers.length; i++) {\n containers[i].scrollTop = offsets[i];\n }\n },\n _blur: function () {\n this.current().find('.k-in:first').removeClass('k-state-focused');\n },\n _enabled: function (node) {\n return !node.children('div').children('.k-in').hasClass(DISABLED);\n },\n parent: function (node) {\n var wrapperRe = /\\bk-treeview\\b/, itemRe = /\\bk-item\\b/, result, skipSelf;\n if (typeof node == STRING) {\n node = this.element.find(node);\n }\n if (!isDomElement(node)) {\n node = node[0];\n }\n skipSelf = itemRe.test(node.className);\n do {\n node = node.parentNode;\n if (itemRe.test(node.className)) {\n if (skipSelf) {\n result = node;\n } else {\n skipSelf = true;\n }\n }\n } while (!wrapperRe.test(node.className) && !result);\n return $(result);\n },\n _nextVisible: function (node) {\n var that = this, expanded = that._expanded(node), result;\n function nextParent(node) {\n while (node.length && !node.next().length) {\n node = that.parent(node);\n }\n if (node.next().length) {\n return node.next();\n } else {\n return node;\n }\n }\n if (!node.length || !node.is(':visible')) {\n result = that.root.children().eq(0);\n } else if (expanded) {\n result = subGroup(node).children().first();\n if (!result.length) {\n result = nextParent(node);\n }\n } else {\n result = nextParent(node);\n }\n return result;\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 }\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) {\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) {\n if (!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 }\n target = focused;\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 _keypress: function (e) {\n var that = this;\n var delay = 300;\n var focusedNode = that.current().get(0);\n var matchToFocus;\n var key = e.key;\n var isPrintable = key.length === 1;\n if (!isPrintable) {\n return;\n }\n if (!that._match) {\n that._match = '';\n }\n that._match += key;\n clearTimeout(that._matchTimer);\n that._matchTimer = setTimeout(function () {\n that._match = '';\n }, delay);\n matchToFocus = focusedNode && that._matchNextByText(Array.prototype.indexOf.call(that.element.find('.k-item'), focusedNode), that._match);\n if (!matchToFocus.length) {\n matchToFocus = that._matchNextByText(-1, that._match);\n }\n if (matchToFocus.get(0) && matchToFocus.get(0) !== focusedNode) {\n that._trigger(NAVIGATE, matchToFocus);\n that.current(matchToFocus);\n }\n },\n _matchNextByText: function (startIndex, text) {\n var element = this.element;\n var textNodes = element.find('.k-in').filter(function (i, element) {\n return i > startIndex && $(element).is(':visible') && $(element).text().toLowerCase().indexOf(text) === 0;\n });\n return textNodes.eq(0).closest(NODE);\n },\n _click: function (e) {\n var that = this, node = $(e.currentTarget), contents = nodeContents(node.closest(NODE)), href = node.attr('href'), shouldNavigate;\n if (href) {\n shouldNavigate = href == '#' || href.indexOf('#' + this.element.id + '-') >= 0;\n } else {\n shouldNavigate = contents.length && !contents.children().length;\n }\n if (shouldNavigate) {\n e.preventDefault();\n }\n if (!node.hasClass('.k-state-selected') && !that._trigger(SELECT, node)) {\n that.select(node);\n }\n },\n _wrapper: function () {\n var that = this, element = that.element, wrapper, root, wrapperClasses = 'k-widget k-treeview';\n if (element.is('ul')) {\n wrapper = element.wrap('
    ').parent();\n root = element;\n } else {\n wrapper = element;\n root = wrapper.children('ul').eq(0);\n }\n that.wrapper = wrapper.addClass(wrapperClasses);\n that.root = root;\n },\n _getSelectedNode: function () {\n return this.element.find('.k-state-selected').closest(NODE);\n },\n _group: function (item) {\n var that = this, firstLevel = item.hasClass(KTREEVIEW), group = {\n firstLevel: firstLevel,\n expanded: firstLevel || that._expanded(item)\n }, groupElement = item.children('ul');\n groupElement.addClass(that.templates.groupCssClass(group)).css('display', group.expanded ? '' : 'none');\n if (!firstLevel) {\n groupElement.attr('role', 'group');\n }\n that._nodes(groupElement, group);\n },\n _nodes: function (groupElement, groupData) {\n var that = this, nodes = groupElement.children('li'), nodeData;\n groupData = extend({ length: nodes.length }, groupData);\n nodes.each(function (i, node) {\n node = $(node);\n nodeData = {\n index: i,\n expanded: that._expanded(node)\n };\n updateNodeHtml(node);\n that._updateNodeClasses(node, groupData, nodeData);\n that._group(node);\n });\n },\n _checkboxes: function () {\n var options = this.options;\n var checkboxes = options.checkboxes;\n var defaultTemplate;\n if (checkboxes) {\n defaultTemplate = '';\n checkboxes = extend({ template: defaultTemplate }, options.checkboxes);\n if (typeof checkboxes.template == STRING) {\n checkboxes.template = template(checkboxes.template);\n }\n options.checkboxes = checkboxes;\n }\n },\n _updateNodeClasses: function (node, groupData, nodeData) {\n var wrapper = node.children('div'), group = node.children('ul'), templates = this.templates;\n if (node.hasClass('k-treeview')) {\n return;\n }\n nodeData = nodeData || {};\n nodeData.expanded = typeof nodeData.expanded != UNDEFINED ? nodeData.expanded : this._expanded(node);\n nodeData.index = typeof nodeData.index != UNDEFINED ? nodeData.index : node.index();\n nodeData.enabled = typeof nodeData.enabled != UNDEFINED ? nodeData.enabled : !wrapper.children('.k-in').hasClass('k-state-disabled');\n groupData = groupData || {};\n groupData.firstLevel = typeof groupData.firstLevel != UNDEFINED ? groupData.firstLevel : node.parent().parent().hasClass(KTREEVIEW);\n groupData.length = typeof groupData.length != UNDEFINED ? groupData.length : node.parent().children().length;\n node.removeClass('k-first k-last').addClass(templates.wrapperCssClass(groupData, nodeData));\n wrapper.removeClass('k-top k-mid k-bot').addClass(templates.cssClass(groupData, nodeData));\n var textWrap = wrapper.children('.k-in');\n var isLink = textWrap[0] && textWrap[0].nodeName.toLowerCase() == 'a';\n textWrap.removeClass('k-in k-link k-state-default k-state-disabled').addClass(templates.textClass(nodeData, isLink));\n if (group.length || node.attr('data-hasChildren') == 'true') {\n wrapper.children('.k-icon').removeClass('k-i-expand k-i-collapse').addClass(templates.toggleButtonClass(nodeData));\n group.addClass('k-group');\n }\n },\n _processNodes: function (nodes, callback) {\n var that = this;\n var items = that.element.find(nodes);\n for (var i = 0; i < items.length; i++) {\n callback.call(that, i, $(items[i]).closest(NODE));\n }\n },\n dataItem: function (node) {\n var uid = $(node).closest(NODE).attr(kendo.attr('uid')), dataSource = this.dataSource;\n return dataSource && dataSource.getByUid(uid);\n },\n _dataItem: function (node) {\n var uid = $(node).closest(NODE).attr(kendo.attr('uid')), dataSource = this.dataSource;\n return dataSource && this._dataSourceUids[uid];\n },\n _insertNode: function (nodeData, index, parentNode, insertCallback, collapsed) {\n var that = this, group = subGroup(parentNode), updatedGroupLength = group.children().length + 1, childrenData, groupData = {\n firstLevel: parentNode.hasClass(KTREEVIEW),\n expanded: !collapsed,\n length: updatedGroupLength\n }, node, i, item, nodeHtml = '', firstChild, lastChild, append = function (item, group) {\n item.appendTo(group);\n };\n for (i = 0; i < nodeData.length; i++) {\n item = nodeData[i];\n item.index = index + i;\n nodeHtml += that._renderItem({\n group: groupData,\n item: item\n });\n }\n node = $(nodeHtml);\n if (!node.length) {\n return;\n }\n that.angular('compile', function () {\n return {\n elements: node.get(),\n data: nodeData.map(function (item) {\n return { dataItem: item };\n })\n };\n });\n if (!group.length) {\n group = $(that._renderGroup({ group: groupData })).appendTo(parentNode);\n }\n insertCallback(node, group);\n if (parentNode.hasClass('k-item')) {\n updateNodeHtml(parentNode);\n that._updateNodeClasses(parentNode, groupData, { expanded: !collapsed });\n }\n firstChild = node.prev().first();\n lastChild = node.next().last();\n that._updateNodeClasses(firstChild, {}, { expanded: firstChild.attr(kendo.attr('expanded')) == 'true' });\n that._updateNodeClasses(lastChild, {}, { expanded: lastChild.attr(kendo.attr('expanded')) == 'true' });\n for (i = 0; i < nodeData.length; i++) {\n item = nodeData[i];\n if (item.hasChildren) {\n childrenData = item.children.data();\n if (childrenData.length) {\n that._insertNode(childrenData, item.index, node.eq(i), append, !item.expanded);\n }\n }\n }\n return node;\n },\n _updateNodes: function (items, field) {\n var that = this;\n var i, node, nodeWrapper, item, isChecked, isCollapsed;\n var context = {\n treeview: that.options,\n item: item\n };\n var render = field != 'expanded' && field != 'checked';\n function setCheckedState(root, state) {\n if (root.is('.k-group')) {\n root.find('.k-item:not([aria-disabled])').attr(ARIACHECKED, state);\n }\n root.find('.k-checkbox-wrapper input[type=checkbox]:not([disabled])').prop(CHECKED, state).data(INDETERMINATE, false).prop(INDETERMINATE, false);\n }\n if (field == 'selected') {\n item = items[0];\n node = that.findByUid(item.uid).find('.k-in:first').removeClass('k-state-hover').toggleClass('k-state-selected', item[field]).end();\n if (item[field]) {\n that.current(node);\n }\n node.attr(ARIASELECTED, !!item[field]);\n } else {\n var elements = $.map(items, function (item) {\n return that.findByUid(item.uid).children('div');\n });\n if (render) {\n that.angular('cleanup', function () {\n return { elements: elements };\n });\n }\n for (i = 0; i < items.length; i++) {\n context.item = item = items[i];\n nodeWrapper = elements[i];\n node = nodeWrapper.parent();\n if (render) {\n nodeWrapper.children('.k-in').html(that.templates.itemContent(context));\n }\n if (field == CHECKED) {\n isChecked = item[field];\n setCheckedState(nodeWrapper, isChecked);\n node.attr(ARIACHECKED, isChecked);\n if (that.options.checkboxes.checkChildren) {\n setCheckedState(node.children('.k-group'), isChecked);\n that._setChecked(item.children, isChecked);\n that._bubbleIndeterminate(node);\n }\n } else if (field == 'expanded') {\n that._toggle(node, item, item[field]);\n } else if (field == 'enabled') {\n node.find('.k-checkbox-wrapper input[type=checkbox]').prop('disabled', !item[field]);\n isCollapsed = !nodeContents(node).is(VISIBLE);\n node.removeAttr(ARIADISABLED);\n if (!item[field]) {\n if (item.selected) {\n item.set('selected', false);\n }\n if (item.expanded) {\n item.set('expanded', false);\n }\n isCollapsed = true;\n node.attr(ARIASELECTED, false).attr(ARIADISABLED, true);\n }\n that._updateNodeClasses(node, {}, {\n enabled: item[field],\n expanded: !isCollapsed\n });\n }\n if (nodeWrapper.length) {\n if (item._events && item._events.change) {\n item._events.change.splice(1);\n }\n this.trigger('itemChange', {\n item: nodeWrapper,\n data: item,\n ns: ui\n });\n }\n }\n if (render) {\n that.angular('compile', function () {\n return {\n elements: elements,\n data: $.map(items, function (item) {\n return [{ dataItem: item }];\n })\n };\n });\n }\n }\n },\n _appendItems: function (index, items, parentNode) {\n var group = subGroup(parentNode);\n var children = group.children();\n var collapsed = !this._expanded(parentNode);\n if (this.element === parentNode) {\n var dataItems = this.dataSource.data();\n var viewItems = this.dataSource.view();\n var rootItems = viewItems.length < dataItems.length ? viewItems : dataItems;\n index = rootItems.indexOf(items[0]);\n } else if (items.length) {\n index = items[0].parent().indexOf(items[0]);\n }\n if (typeof index == UNDEFINED) {\n index = children.length;\n }\n this._insertNode(items, index, parentNode, function (item, group) {\n if (index >= children.length) {\n item.appendTo(group);\n } else {\n item.insertBefore(children.eq(index));\n }\n }, collapsed);\n if (!collapsed) {\n this._updateNodeClasses(parentNode, {}, { expanded: !collapsed });\n subGroup(parentNode).css('display', 'block');\n }\n },\n _refreshChildren: function (parentNode, items, index) {\n var i, children, child;\n var options = this.options;\n var loadOnDemand = options.loadOnDemand;\n var checkChildren = options.checkboxes && options.checkboxes.checkChildren;\n subGroup(parentNode).empty();\n if (!items.length) {\n updateNodeHtml(parentNode);\n } else {\n this._appendItems(index, items, parentNode);\n children = subGroup(parentNode).children();\n if (loadOnDemand && checkChildren) {\n this._bubbleIndeterminate(children.last());\n }\n for (i = 0; i < children.length; i++) {\n child = children.eq(i);\n this.trigger('itemChange', {\n item: child.children('div'),\n data: items[i],\n ns: ui\n });\n }\n }\n },\n _refreshRoot: function (items) {\n var groupHtml = this._renderGroup({\n items: items,\n group: {\n firstLevel: true,\n expanded: true\n }\n });\n if (this.root.length && this.root[0].parentElement) {\n this._angularItems('cleanup');\n var group = $(groupHtml);\n this.root.attr('class', group.attr('class')).html(group.html());\n } else {\n this.root = this.wrapper.html(groupHtml).children('ul');\n }\n var elements = this.root.children('.k-item');\n for (var i = 0; i < items.length; i++) {\n this.trigger('itemChange', {\n item: elements.eq(i),\n data: items[i],\n ns: ui\n });\n }\n this._angularItems('compile');\n },\n refresh: 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 for (i = 0; i < items.length; i++) {\n this._dataSourceUids[items[i].uid] = items[i];\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 || items[i]._loaded) {\n items[i].load();\n }\n }\n }\n this.trigger(DATABOUND, { node: node ? parentNode : undefined });\n if (this.dataSource.filter() && this.options.checkboxes.checkChildren) {\n this.updateIndeterminate(parentNode);\n }\n },\n _error: function (e) {\n var node = e.node && this.findByUid(e.node.uid);\n var retryHtml = this.templates.retry({ messages: this.options.messages });\n if (node) {\n this._progress(node, false);\n this._expanded(node, false);\n nodeIcon(node).addClass('k-i-reload');\n e.node.loaded(false);\n } else {\n this._progress(false);\n this.dataSource.data([]);\n this.element.html(retryHtml);\n }\n },\n _retryRequest: function (e) {\n e.preventDefault();\n this.dataSource.fetch();\n },\n expand: function (nodes) {\n this._processNodes(nodes, function (index, item) {\n this.toggle(item, true);\n });\n },\n collapse: function (nodes) {\n this._processNodes(nodes, function (index, item) {\n this.toggle(item, false);\n });\n },\n enable: function (nodes, enable) {\n if (typeof nodes === 'boolean') {\n enable = nodes;\n nodes = this.items();\n } else {\n enable = arguments.length == 2 ? !!enable : true;\n }\n this._processNodes(nodes, function (index, item) {\n this.dataItem(item).set('enabled', enable);\n });\n },\n current: function (node) {\n var that = this, current = that._current, element = that.element, id = that._ariaId;\n if (arguments.length > 0 && node && node.length) {\n if (current) {\n if (current[0].id === id) {\n current.removeAttr('id');\n }\n current.find('.k-in:first').removeClass('k-state-focused');\n }\n current = that._current = $(node, element).closest(NODE);\n current.find('.k-in:first').addClass('k-state-focused');\n id = current[0].id || id;\n if (id) {\n that.wrapper.removeAttr('aria-activedescendant');\n current.attr('id', id);\n that.wrapper.attr('aria-activedescendant', id);\n }\n return;\n }\n if (!current) {\n current = that._nextVisible($());\n }\n return current;\n },\n select: function (node) {\n var that = this, element = that.element;\n if (!arguments.length) {\n return element.find('.k-state-selected').closest(NODE);\n }\n node = $(node, element).closest(NODE);\n element.find('.k-state-selected').each(function () {\n var dataItem = that.dataItem(this);\n if (dataItem) {\n dataItem.set('selected', false);\n delete dataItem.selected;\n } else {\n $(this).removeClass('k-state-selected');\n }\n });\n if (node.length) {\n that.dataItem(node).set('selected', true);\n that._clickTarget = node;\n }\n that.trigger(CHANGE);\n },\n _toggle: function (node, dataItem, expand) {\n var options = this.options;\n var contents = nodeContents(node);\n var direction = expand ? 'expand' : 'collapse';\n var loaded;\n if (contents.data('animating')) {\n return;\n }\n loaded = dataItem && dataItem.loaded();\n if (expand && !loaded) {\n if (options.loadOnDemand) {\n this._progress(node, true);\n }\n contents.remove();\n dataItem.load();\n } else {\n this._updateNodeClasses(node, {}, { expanded: expand });\n if (!expand) {\n contents.css('height', contents.height()).css('height');\n }\n contents.kendoStop(true, true).kendoAnimate(extend({ reset: true }, options.animation[direction], {\n complete: function () {\n if (expand) {\n contents.css('height', '');\n }\n }\n }));\n }\n },\n toggle: function (node, expand) {\n node = $(node);\n if (!nodeIcon(node).is('.k-i-expand, .k-i-collapse')) {\n return;\n }\n if (arguments.length == 1) {\n expand = !this._expanded(node);\n }\n this._expanded(node, expand);\n },\n destroy: function () {\n var that = this;\n Widget.fn.destroy.call(that);\n that.wrapper.off(NS);\n that.wrapper.find('.k-checkbox-wrapper :checkbox').off(NS);\n that._unbindDataSource();\n if (that.dragging) {\n that.dragging.destroy();\n }\n that._dataSourceUids = {};\n kendo.destroy(that.element);\n that.root = that.wrapper = that.element = null;\n },\n _expanded: function (node, value, force) {\n var expandedAttr = kendo.attr('expanded');\n var dataItem;\n var expanded = value;\n var direction = expanded ? 'expand' : 'collapse';\n if (arguments.length == 1) {\n dataItem = this._dataItem(node);\n return node.attr(expandedAttr) === 'true' || dataItem && dataItem.expanded;\n }\n dataItem = this.dataItem(node);\n if (nodeContents(node).data('animating')) {\n return;\n }\n if (force || !this._trigger(direction, node)) {\n if (expanded) {\n node.attr(expandedAttr, 'true');\n node.attr(ARIAEXPANDED, 'true');\n } else {\n node.removeAttr(expandedAttr);\n node.attr(ARIAEXPANDED, 'false');\n }\n if (dataItem) {\n dataItem.set('expanded', expanded);\n expanded = dataItem.expanded;\n }\n }\n },\n _progress: function (node, showProgress) {\n var element = this.element;\n var loadingText = this.templates.loading({ messages: this.options.messages });\n if (arguments.length == 1) {\n showProgress = node;\n if (showProgress) {\n element.html(loadingText);\n } else {\n element.empty();\n }\n } else {\n nodeIcon(node).toggleClass('k-i-loading', showProgress).removeClass('k-i-reload');\n }\n },\n text: function (node, text) {\n var dataItem = this.dataItem(node), fieldBindings = this.options[bindings.text], level = dataItem.level(), length = fieldBindings.length, field = fieldBindings[Math.min(level, length - 1)];\n if (text) {\n dataItem.set(field, text);\n } else {\n return dataItem[field];\n }\n },\n _objectOrSelf: function (node) {\n return $(node).closest('[data-role=treeview]').data('kendoTreeView') || this;\n },\n _dataSourceMove: function (nodeData, group, parentNode, callback) {\n var referenceDataItem, destTreeview = this._objectOrSelf(parentNode || group), destDataSource = destTreeview.dataSource;\n var loadPromise = $.Deferred().resolve().promise();\n if (parentNode && parentNode[0] != destTreeview.element[0]) {\n referenceDataItem = destTreeview.dataItem(parentNode);\n if (!referenceDataItem.loaded()) {\n destTreeview._progress(parentNode, true);\n loadPromise = referenceDataItem.load();\n }\n if (parentNode != this.root) {\n destDataSource = referenceDataItem.children;\n if (!destDataSource || !(destDataSource instanceof HierarchicalDataSource)) {\n referenceDataItem._initChildren();\n referenceDataItem.loaded(true);\n destDataSource = referenceDataItem.children;\n }\n }\n }\n nodeData = this._toObservableData(nodeData);\n return callback.call(destTreeview, destDataSource, nodeData, loadPromise);\n },\n _toObservableData: function (node) {\n var dataItem = node, dataSource, uid;\n if (isJQueryInstance(node) || isDomElement(node)) {\n dataSource = this._objectOrSelf(node).dataSource;\n uid = $(node).attr(kendo.attr('uid'));\n dataItem = dataSource.getByUid(uid);\n if (dataItem) {\n dataItem = dataSource.remove(dataItem);\n }\n }\n return dataItem;\n },\n _insert: function (data, model, index) {\n if (!(model instanceof kendo.data.ObservableArray)) {\n if (!isArray(model)) {\n model = [model];\n }\n } else {\n model = model.toJSON();\n }\n var parentNode = data.parent();\n if (parentNode && parentNode._initChildren) {\n parentNode.hasChildren = true;\n parentNode._initChildren();\n }\n data.splice.apply(data, [\n index,\n 0\n ].concat(model));\n return this.findByUid(data[index].uid);\n },\n insertAfter: insertAction(1),\n insertBefore: insertAction(0),\n append: function (nodeData, parentNode, success) {\n var group = this.root;\n if (parentNode && nodeData instanceof jQuery && parentNode[0] === nodeData[0]) {\n return;\n }\n parentNode = parentNode && parentNode.length ? parentNode : null;\n if (parentNode) {\n group = subGroup(parentNode);\n }\n return this._dataSourceMove(nodeData, group, parentNode, function (dataSource, model, loadModel) {\n var inserted;\n var that = this;\n function add() {\n if (parentNode) {\n that._expanded(parentNode, true, true);\n }\n var data = dataSource.data(), index = Math.max(data.length, 0);\n return that._insert(data, model, index);\n }\n loadModel.done(function () {\n inserted = add();\n success = success || $.noop;\n success(inserted);\n });\n return inserted || null;\n });\n },\n _remove: function (node, keepData) {\n var that = this, parentNode, prevSibling, nextSibling;\n node = $(node, that.element);\n this.angular('cleanup', function () {\n return { elements: node.get() };\n });\n parentNode = node.parent().parent();\n prevSibling = node.prev();\n nextSibling = node.next();\n node[keepData ? 'detach' : 'remove']();\n if (parentNode.hasClass('k-item')) {\n updateNodeHtml(parentNode);\n that._updateNodeClasses(parentNode);\n }\n that._updateNodeClasses(prevSibling);\n that._updateNodeClasses(nextSibling);\n return node;\n },\n remove: function (node) {\n var dataItem = this.dataItem(node);\n if (dataItem) {\n this.dataSource.remove(dataItem);\n }\n },\n detach: function (node) {\n return this._remove(node, true);\n },\n findByText: function (text) {\n return $(this.element).find('.k-in').filter(function (i, element) {\n return $(element).text() == text;\n }).closest(NODE);\n },\n findByUid: function (uid) {\n var items = this.element.find('.k-item');\n var uidAttr = kendo.attr('uid');\n var result;\n for (var i = 0; i < items.length; i++) {\n if (items[i].getAttribute(uidAttr) == uid) {\n result = items[i];\n break;\n }\n }\n return $(result);\n },\n expandPath: function (path, complete) {\n var treeview = this;\n var nodeIds = path.slice(0);\n var callback = complete || $.noop;\n function proceed() {\n nodeIds.shift();\n if (nodeIds.length) {\n expand(nodeIds[0]).then(proceed);\n } else {\n callback.call(treeview);\n }\n }\n function expand(id) {\n var result = $.Deferred();\n var node = treeview.dataSource.get(id);\n var expandedAttr = kendo.attr('expanded');\n var nodeElement;\n if (node) {\n nodeElement = treeview.findByUid(node.uid);\n if (node.loaded()) {\n node.set('expanded', true);\n nodeElement.attr(expandedAttr, true);\n nodeElement.attr(ARIAEXPANDED, true);\n result.resolve();\n } else {\n treeview._progress(nodeElement, true);\n node.load().then(function () {\n node.set('expanded', true);\n nodeElement.attr(expandedAttr, true);\n nodeElement.attr(ARIAEXPANDED, true);\n result.resolve();\n });\n }\n } else {\n result.resolve();\n }\n return result.promise();\n }\n expand(nodeIds[0]).then(proceed);\n },\n _parentIds: function (node) {\n var parent = node && node.parentNode();\n var parents = [];\n while (parent && parent.parentNode) {\n parents.unshift(parent.id);\n parent = parent.parentNode();\n }\n return parents;\n },\n expandTo: function (node) {\n if (!(node instanceof kendo.data.Node)) {\n node = this.dataSource.get(node);\n }\n var parents = this._parentIds(node);\n this.expandPath(parents);\n },\n _renderItem: function (options) {\n if (!options.group) {\n options.group = {};\n }\n options.treeview = this.options;\n options.r = this.templates;\n return this.templates.item(options);\n },\n _renderGroup: function (options) {\n var that = this;\n options.renderItems = function (options) {\n var html = '', i = 0, items = options.items, len = items ? items.length : 0, group = options.group;\n group.length = len;\n for (; i < len; i++) {\n options.group = group;\n options.item = items[i];\n options.item.index = i;\n html += that._renderItem(options);\n }\n return html;\n };\n options.r = that.templates;\n return that.templates.group(options);\n }\n });\n ui.plugin(TreeView);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"]}