kendo.treeview.min.js 33 KB

1234567891011121314151617181920212223242526
  1. /**
  2. * Kendo UI v2019.2.619 (http://www.telerik.com/kendo-ui)
  3. * Copyright 2019 Progress Software Corporation and/or one of its subsidiaries or affiliates. All rights reserved.
  4. *
  5. * Kendo UI commercial licenses may be obtained at
  6. * http://www.telerik.com/purchase/license-agreement/kendo-ui-complete
  7. * If you do not own a commercial license, this file shall be governed by the trial license terms.
  8. */
  9. !function(e,define){define("kendo.treeview.min",["kendo.data.min","kendo.treeview.draganddrop.min"],e)}(function(){return function(e,t){function n(e){return function(t){var n=t.children(".k-animation-container");return n.length||(n=t),n.children(e)}}function a(e){return p.template(e,{useWithBlock:!1})}function i(e){return e.find(".k-checkbox-wrapper:first input[type=checkbox]")}function r(e){return function(t,n){n=n.closest(G);var a,i=n.parent();return i.parent().is("li")&&(a=i.parent()),this._dataSourceMove(t,i,a,function(t,a){var i=this.dataItem(n),r=i?i.parent().indexOf(i):n.index();return this._insert(t.data(),a,r+e)})}}function s(t,n){for(var a;t&&"ul"!=t.nodeName.toLowerCase();)a=t,t=t.nextSibling,3==a.nodeType&&(a.nodeValue=e.trim(a.nodeValue)),u.test(a.className)?n.insertBefore(a,n.firstChild):n.appendChild(a)}function o(t){var n=t.children("div"),a=t.children("ul"),i=n.children(".k-icon"),r=t.children("input[type=checkbox]"),o=n.children(".k-in");t.hasClass("k-treeview")||(n.length||(n=e("<div />").prependTo(t)),!i.length&&a.length?i=e("<span class='k-icon' />").prependTo(n):a.length&&a.children().length||(i.remove(),a.remove()),r.length&&e("<span class='k-checkbox-wrapper' />").appendTo(n).append(r),o.length||(o=t.children("a").eq(0).addClass("k-in k-link"),o.length||(o=e("<span class='k-in' />")),o.appendTo(n),n.length&&s(n[0].nextSibling,o[0])))}var d,l,c,h,u,p=window.kendo,f=p.ui,g=p.data,m=e.extend,k=p.template,v=e.isArray,_=f.Widget,x=g.HierarchicalDataSource,b=e.proxy,C=p.keys,w=".kendoTreeView",y=".kendoTreeViewTemp",S="select",N="check",T="navigate",I="expand",D="change",B="error",A="checked",O="indeterminate",U="collapse",E="dragstart",L="drag",H="drop",V="dragend",q="dataBound",F="click",j="undefined",R="k-state-hover",P="k-treeview",M=":visible",G=".k-item",Q="string",W="aria-checked",J="aria-selected",X="aria-disabled",Y="k-state-disabled",$={text:"dataTextField",url:"dataUrlField",spriteCssClass:"dataSpriteCssClassField",imageUrl:"dataImageUrlField"},z=function(e){return e instanceof p.jQuery||window.jQuery&&e instanceof window.jQuery},K=function(e){return"object"==typeof HTMLElement?e instanceof HTMLElement:e&&"object"==typeof e&&1===e.nodeType&&typeof e.nodeName===Q};l=n(".k-group"),c=n(".k-group,.k-content"),h=function(e){return e.children("div").children(".k-icon")},u=/k-sprite/,d=p.ui.DataBoundWidget.extend({init:function(e,t){var n,a=this,i=!1,r=t&&!!t.dataSource;v(t)&&(t={dataSource:t}),t&&typeof t.loadOnDemand==j&&v(t.dataSource)&&(t.loadOnDemand=!1),_.prototype.init.call(a,e,t),e=a.element,t=a.options,a._dataSourceUids={},n=e.is("ul")&&e||e.hasClass(P)&&e.children("ul"),i=!r&&n.length,i&&(t.dataSource.list=n),a._animation(),a._accessors(),a._templates(),e.hasClass(P)?(a.wrapper=e,a.root=e.children("ul").eq(0)):(a._wrapper(),n&&(a.root=e,a._group(a.wrapper))),a._tabindex(),a.wrapper.attr("role","tree"),a._dataSource(i),a._attachEvents(),a._dragging(),i?a._syncHtmlAndDataSource():t.autoBind&&(a._progress(!0),a.dataSource.fetch()),t.checkboxes&&t.checkboxes.checkChildren&&a.updateIndeterminate(),a.element[0].id&&(a._ariaId=p.format("{0}_tv_active",a.element[0].id)),p.notify(a)},_attachEvents:function(){var t=this,n=".k-in:not(.k-state-selected,.k-state-disabled)",a="mouseenter";t.wrapper.on(a+w,".k-in.k-state-selected",function(e){e.preventDefault()}).on(a+w,n,function(){e(this).addClass(R)}).on("mouseleave"+w,n,function(){e(this).removeClass(R)}).on(F+w,n,b(t._click,t)).on("dblclick"+w,".k-in:not(.k-state-disabled)",b(t._toggleButtonClick,t)).on(F+w,".k-i-expand,.k-i-collapse",b(t._toggleButtonClick,t)).on("keydown"+w,b(t._keydown,t)).on("keypress"+w,b(t._keypress,t)).on("focus"+w,b(t._focus,t)).on("blur"+w,b(t._blur,t)).on("mousedown"+w,".k-in,.k-checkbox-wrapper :checkbox,.k-i-expand,.k-i-collapse",b(t._mousedown,t)).on("change"+w,".k-checkbox-wrapper :checkbox",b(t._checkboxChange,t)).on("click"+w,".checkbox-span",b(t._checkboxLabelClick,t)).on("click"+w,".k-request-retry",b(t._retryRequest,t)).on("click"+w,".k-link.k-state-disabled",function(e){e.preventDefault()}).on("click"+w,function(n){var a=e(n.target);a.is(":kendoFocusable")||a.find("input,select,textarea,button,object").is(":kendoFocusable")||t.focus()})},_checkboxLabelClick:function(t){var n=e(t.target.previousSibling);n.is("[disabled]")||(n.prop("checked",!n.prop("checked")),n.trigger("change"))},_syncHtmlAndDataSource:function(e,t){e=e||this.root,t=t||this.dataSource;var n,a,r,s,o,d=t.view(),l=p.attr("uid"),c=p.attr("expanded"),h=this.options.checkboxes,u=e.children("li");for(n=0;n<u.length;n++)r=d[n],s=r.uid,a=u.eq(n),a.attr("role","treeitem").attr(l,s).attr(J,a.hasClass("k-state-selected")),r.expanded="true"===a.attr(c),h&&(o=i(a),r.checked=o.prop(A),o.attr("id","_"+s),o.next(".k-checkbox-label").attr("for","_"+s)),this._syncHtmlAndDataSource(a.children("ul"),r.children)},_animation:function(){var e=this.options,t=e.animation,n=t.collapse&&"effects"in t.collapse,a=m({},t.expand,t.collapse);n||(a=m(a,{reverse:!0})),t===!1&&(t={expand:{effects:{}},collapse:{hide:!0,effects:{}}}),t.collapse=m(a,{hide:!0}),e.animation=t},_dragging:function(){var t,n=this.options.dragAndDrop,a=this.dragging;n&&!a?(t=this,this.dragging=new f.HierarchicalDragAndDrop(this.element,{reorderable:!0,$angular:this.options.$angular,autoScroll:this.options.autoScroll,filter:"div:not(.k-state-disabled) .k-in",allowedContainers:".k-treeview",itemSelector:".k-treeview .k-item",hintText:b(this._hintText,this),contains:function(t,n){return e.contains(t,n)},dropHintContainer:function(e){return e},itemFromTarget:function(e){var t=e.closest(".k-top,.k-mid,.k-bot");return{item:t,content:e.closest(".k-in"),first:t.hasClass("k-top"),last:t.hasClass("k-bot")}},dropPositionFrom:function(e){return e.prevAll(".k-in").length>0?"after":"before"},dragstart:function(e){return t.trigger(E,{sourceNode:e[0]})},drag:function(e){t.trigger(L,{originalEvent:e.originalEvent,sourceNode:e.source[0],dropTarget:e.target[0],pageY:e.pageY,pageX:e.pageX,statusClass:e.status,setStatusClass:e.setStatus})},drop:function(n){var a=e(n.dropTarget),i=a.closest("a");return i&&i.attr("href")&&t._tempPreventNavigation(i),t.trigger(H,{originalEvent:n.originalEvent,sourceNode:n.source,destinationNode:n.destination,valid:n.valid,setValid:function(e){this.valid=e,n.setValid(e)},dropTarget:n.dropTarget,dropPosition:n.position})},dragend:function(e){function n(n){t.options.checkboxes&&t.options.checkboxes.checkChildren&&t.updateIndeterminate(),t.trigger(V,{originalEvent:e.originalEvent,sourceNode:n&&n[0],destinationNode:i[0],dropPosition:r})}var a=e.source,i=e.destination,r=e.position;"over"==r?t.append(a,i,n):("before"==r?a=t.insertBefore(a,i):"after"==r&&(a=t.insertAfter(a,i)),n(a))}})):!n&&a&&(a.destroy(),this.dragging=null)},_tempPreventNavigation:function(e){e.on(F+w+y,function(t){t.preventDefault(),e.off(F+w+y)})},_hintText:function(e){return this.templates.dragClue({item:this.dataItem(e),treeview:this.options})},_templates:function(){var e=this,t=e.options,n=b(e._fieldAccessor,e);t.template&&typeof t.template==Q?t.template=k(t.template):t.template||(t.template=a("# var text = "+n("text")+"(data.item); ## if (typeof data.item.encoded != 'undefined' && data.item.encoded === false) {##= text ## } else { ##: text ## } #")),e._checkboxes(),e.templates={setAttributes:function(e){var t,n="",a=e.attr||{};for(t in a)a.hasOwnProperty(t)&&"class"!==t&&(n+=t+'="'+a[t]+'" ');return n},wrapperCssClass:function(e,t){var n="k-item",a=t.index;return e.firstLevel&&0===a&&(n+=" k-first"),a==e.length-1&&(n+=" k-last"),n},cssClass:function(e,t){var n="",a=t.index,i=e.length-1;return e.firstLevel&&0===a&&(n+="k-top "),n+=0===a&&a!=i?"k-top":a==i?"k-bot":"k-mid"},textClass:function(e,t){var n="k-in";return t&&(n+=" k-link"),e.enabled===!1&&(n+=" k-state-disabled"),e.selected===!0&&(n+=" k-state-selected"),n},toggleButtonClass:function(e){var t="k-icon";return t+=e.expanded!==!0?" k-i-expand":" k-i-collapse"},groupAttributes:function(e){var t="";return e.firstLevel||(t="role='group'"),t+(e.expanded!==!0?" style='display:none'":"")},groupCssClass:function(e){var t="k-group";return e.firstLevel&&(t+=" k-treeview-lines"),t},dragClue:a("#= data.treeview.template(data) #"),group:a("<ul class='#= data.r.groupCssClass(data.group) #'#= data.r.groupAttributes(data.group) #>#= data.renderItems(data) #</ul>"),itemContent:a("# var imageUrl = "+n("imageUrl")+"(data.item); ## var spriteCssClass = "+n("spriteCssClass")+"(data.item); ## if (imageUrl) { #<img class='k-image' alt='' src='#= imageUrl #'># } ## if (spriteCssClass) { #<span class='k-sprite #= spriteCssClass #' /># } ##= data.treeview.template(data) #"),itemElement:a("# var item = data.item, r = data.r; ## var url = "+n("url")+"(item); #<div class='#= r.cssClass(data.group, item) #'># if (item.hasChildren) { #<span class='#= r.toggleButtonClass(item) #'/># } ## if (data.treeview.checkboxes) { #<span class='k-checkbox-wrapper' role='presentation'>#= data.treeview.checkboxes.template(data) #</span># } ## var tag = url ? 'a' : 'span'; ## var textAttr = url ? ' href=\\'' + url + '\\'' : ''; #<#=tag# class='#= r.textClass(item, !!url) #'#= textAttr #>#= r.itemContent(data) #</#=tag#></div>"),item:a("# var item = data.item, r = data.r; #<li role='treeitem' class='#= r.wrapperCssClass(data.group, item) #'"+p.attr("uid")+'=\'#= item.uid #\' #= r.setAttributes(item.toJSON ? item.toJSON() : item) # # if (data.treeview.checkboxes) { #aria-checked=\'#= item.checked ? "true" : "false" #\' # } #aria-selected=\'#= item.selected ? "true" : "false" #\' #=item.enabled === false ? "aria-disabled=\'true\'" : \'\'#aria-expanded=\'#= item.expanded ? "true" : "false" #\' data-expanded=\'#= item.expanded ? "true" : "false" #\' >#= r.itemElement(data) #</li>'),loading:a("<div class='k-icon k-i-loading' /> #: data.messages.loading #"),retry:a("#: data.messages.requestFailed # <button class='k-button k-request-retry'>#: data.messages.retry #</button>")}},items:function(){return this.element.find(".k-item > div:first-child")},setDataSource:function(t){var n=this.options;n.dataSource=t,this._dataSourceUids={},this._dataSource(),n.checkboxes&&n.checkboxes.checkChildren&&this.dataSource.one("change",e.proxy(this.updateIndeterminate,this,null)),this.options.autoBind&&this.dataSource.fetch()},_bindDataSource:function(){this._refreshHandler=b(this.refresh,this),this._errorHandler=b(this._error,this),this.dataSource.bind(D,this._refreshHandler),this.dataSource.bind(B,this._errorHandler)},_unbindDataSource:function(){var e=this.dataSource;e&&(e.unbind(D,this._refreshHandler),e.unbind(B,this._errorHandler))},_dataSource:function(e){function t(e){for(var n=0;n<e.length;n++)e[n]._initChildren(),e[n].children.fetch(),t(e[n].children.view())}var n=this,a=n.options,i=a.dataSource;i=v(i)?{data:i}:i,n._unbindDataSource(),i.fields||(i.fields=[{field:"text"},{field:"url"},{field:"spriteCssClass"},{field:"imageUrl"}]),n.dataSource=i=x.create(i),e&&(i.fetch(),t(i.view())),n._bindDataSource()},events:[E,L,H,V,q,I,U,S,D,T,N],options:{name:"TreeView",dataSource:{},animation:{expand:{effects:"expand:vertical",duration:200},collapse:{duration:100}},messages:{loading:"Loading...",requestFailed:"Request failed.",retry:"Retry"},dragAndDrop:!1,checkboxes:!1,autoBind:!0,autoScroll:!1,loadOnDemand:!0,template:"",dataTextField:null},_accessors:function(){var e,t,n,a=this,i=a.options,r=a.element;for(e in $)t=i[$[e]],n=r.attr(p.attr(e+"-field")),!t&&n&&(t=n),t||(t=e),v(t)||(t=[t]),i[$[e]]=t},_fieldAccessor:function(t){var n=this.options[$[t]],a=n.length,i="(function(item) {";return 0===a?i+="return item['"+t+"'];":(i+="var levels = ["+e.map(n,function(e){return"function(d){ return "+p.expr(e)+"}"}).join(",")+"];",i+="return levels[Math.min(item.level(), "+a+"-1)](item)"),i+="})"},setOptions:function(e){_.fn.setOptions.call(this,e),this._animation(),this._dragging(),this._templates()},_trigger:function(e,t){return this.trigger(e,{node:t.closest(G)[0]})},_setChecked:function(t,n){if(t&&e.isFunction(t.view))for(var a=0,i=t.view();a<i.length;a++)i[a].enabled!==!1&&this._setCheckedValue(i[a],n),i[a].children&&this._setChecked(i[a].children,n)},_setCheckedValue:function(e,t){e[A]=t},_setIndeterminate:function(e){var t,n,a,r=l(e),s=!0;if(r.length&&(t=i(r.children()),n=t.length)){if(n>1){for(a=1;a<n;a++)if(t[a].checked!=t[a-1].checked||t[a].indeterminate||t[a-1].indeterminate){s=!1;break}}else s=!t[0].indeterminate;return e.attr(W,s?t[0].checked:"mixed"),i(e).data(O,!s).prop(O,!s).prop(A,s&&t[0].checked)}},updateIndeterminate:function(e){var t,n,a,i;if(e=e||this.wrapper,t=l(e).children(),t.length){for(n=0;n<t.length;n++)this.updateIndeterminate(t.eq(n));if(e.is(".k-treeview"))return;a=this._setIndeterminate(e),i=this.dataItem(e),a&&a.prop(A)?i.checked=!0:i&&delete i.checked}},_bubbleIndeterminate:function(e,t){if(e.length){t||this.updateIndeterminate(e);var n,a=this.parent(e);a.length&&(this._setIndeterminate(a),n=a.children("div").find(".k-checkbox-wrapper input[type=checkbox]"),this._skip=!0,n.prop(O)===!1?this.dataItem(a).set(A,n.prop(A)):this.dataItem(a).set(A,!1),this._skip=!1,this._bubbleIndeterminate(a,!0))}},_checkboxChange:function(t){var n=e(t.target),a=n.prop(A),i=n.closest(G),r=this.dataItem(i);this._preventChange||r.checked!=a&&(r.set(A,a),i.attr(W,a),this._trigger(N,i))},_toggleButtonClick:function(t){var n=e(t.currentTarget).closest(G);n.is("[aria-disabled='true']")||this.toggle(n)},_mousedown:function(t){var n=this,a=e(t.currentTarget),i=e(t.currentTarget).closest(G),r=p.support.browser;i.is("[aria-disabled='true']")||((r.msie||r.edge)&&a.is(":checkbox")&&(a.prop(O)?(n._preventChange=!1,a.prop(A,!a.prop(A)),a.trigger(D),a.on(F+w,function(e){e.preventDefault()}),n._preventChange=!0):(a.off(F+w),n._preventChange=!1)),n._clickTarget=i,n.current(i))},_focusable:function(e){return e&&e.length&&e.is(":visible")&&!e.find(".k-in:first").hasClass(Y)},_focus:function(){var t=this.select(),n=this._clickTarget;p.support.touch||(n&&n.length&&(t=n),this._focusable(t)||(t=this.current()),this._focusable(t)||(t=this._nextVisible(e())),this.current(t))},focus:function(){var e,t=this.wrapper,n=t[0],a=[],i=[],r=document.documentElement;do n=n.parentNode,n.scrollHeight>n.clientHeight&&(a.push(n),i.push(n.scrollTop));while(n!=r);for(p.focusElement(t),e=0;e<a.length;e++)a[e].scrollTop=i[e]},_blur:function(){this.current().find(".k-in:first").removeClass("k-state-focused")},_enabled:function(e){return!e.children("div").children(".k-in").hasClass(Y)},parent:function(t){var n,a,i=/\bk-treeview\b/,r=/\bk-item\b/;typeof t==Q&&(t=this.element.find(t)),K(t)||(t=t[0]),a=r.test(t.className);do t=t.parentNode,r.test(t.className)&&(a?n=t:a=!0);while(!i.test(t.className)&&!n);return e(n)},_nextVisible:function(e){function t(e){for(;e.length&&!e.next().length;)e=a.parent(e);return e.next().length?e.next():e}var n,a=this,i=a._expanded(e);return e.length&&e.is(":visible")?i?(n=l(e).children().first(),n.length||(n=t(e))):n=t(e):n=a.root.children().eq(0),n},_previousVisible:function(e){var t,n,a=this;if(!e.length||e.prev().length)for(n=e.length?e.prev():a.root.children().last();a._expanded(n)&&(t=l(n).children().last(),t.length);)n=t;else n=a.parent(e)||e;return n},_keydown:function(n){var a,i=this,r=n.keyCode,s=i.current(),o=i._expanded(s),d=s.find(".k-checkbox-wrapper:first :checkbox"),l=p.support.isRtl(i.element);n.target==n.currentTarget&&(!l&&r==C.RIGHT||l&&r==C.LEFT?o?a=i._nextVisible(s):s.find(".k-in:first").hasClass(Y)||i.expand(s):!l&&r==C.LEFT||l&&r==C.RIGHT?o&&!s.find(".k-in:first").hasClass(Y)?i.collapse(s):(a=i.parent(s),i._enabled(a)||(a=t)):r==C.DOWN?a=i._nextVisible(s):r==C.UP?a=i._previousVisible(s):r==C.HOME?a=i._nextVisible(e()):r==C.END?a=i._previousVisible(e()):r!=C.ENTER||s.find(".k-in:first").hasClass(Y)?r==C.SPACEBAR&&d.length&&(s.find(".k-in:first").hasClass(Y)||(d.prop(A,!d.prop(A)).data(O,!1).prop(O,!1),i._checkboxChange({target:d})),a=s):s.find(".k-in:first").hasClass("k-state-selected")||i._trigger(S,s)||i.select(s),a&&(n.preventDefault(),s[0]!=a[0]&&(i._trigger(T,a),i.current(a))))},_keypress:function(e){var t,n=this,a=300,i=n.current().get(0),r=e.key,s=1===r.length;s&&(n._match||(n._match=""),n._match+=r,clearTimeout(n._matchTimer),n._matchTimer=setTimeout(function(){n._match=""},a),t=i&&n._matchNextByText(Array.prototype.indexOf.call(n.element.find(".k-item"),i),n._match),t.length||(t=n._matchNextByText(-1,n._match)),t.get(0)&&t.get(0)!==i&&(n._trigger(T,t),n.current(t)))},_matchNextByText:function(t,n){var a=this.element,i=a.find(".k-in").filter(function(a,i){return a>t&&e(i).is(":visible")&&0===e(i).text().toLowerCase().indexOf(n)});return i.eq(0).closest(G)},_click:function(t){var n,a=this,i=e(t.currentTarget),r=c(i.closest(G)),s=i.attr("href");n=s?"#"==s||s.indexOf("#"+this.element.id+"-")>=0:r.length&&!r.children().length,n&&t.preventDefault(),i.hasClass(".k-state-selected")||a._trigger(S,i)||a.select(i)},_wrapper:function(){var e,t,n=this,a=n.element,i="k-widget k-treeview";a.is("ul")?(e=a.wrap("<div />").parent(),t=a):(e=a,t=e.children("ul").eq(0)),n.wrapper=e.addClass(i),n.root=t},_getSelectedNode:function(){return this.element.find(".k-state-selected").closest(G)},_group:function(e){var t=this,n=e.hasClass(P),a={firstLevel:n,expanded:n||t._expanded(e)},i=e.children("ul");i.addClass(t.templates.groupCssClass(a)).css("display",a.expanded?"":"none"),t._nodes(i,a)},_nodes:function(t,n){var a,i=this,r=t.children("li");n=m({length:r.length},n),r.each(function(t,r){r=e(r),a={index:t,expanded:i._expanded(r)},o(r),i._updateNodeClasses(r,n,a),i._group(r)})},_checkboxes:function(){var e,t=this.options,n=t.checkboxes;n&&(e="<input type='checkbox' tabindex='-1' #= (item.enabled === false) ? 'disabled' : '' # #= item.checked ? 'checked' : '' #",n.name&&(e+=" name='"+n.name+"'"),e+=" id='_#= item.uid #' class='k-checkbox' /><span class='k-checkbox-label checkbox-span'></span>",n=m({template:e},t.checkboxes),typeof n.template==Q&&(n.template=k(n.template)),t.checkboxes=n)},_updateNodeClasses:function(e,t,n){var a,i,r=e.children("div"),s=e.children("ul"),o=this.templates;e.hasClass("k-treeview")||(n=n||{},n.expanded=typeof n.expanded!=j?n.expanded:this._expanded(e),n.index=typeof n.index!=j?n.index:e.index(),n.enabled=typeof n.enabled!=j?n.enabled:!r.children(".k-in").hasClass("k-state-disabled"),t=t||{},t.firstLevel=typeof t.firstLevel!=j?t.firstLevel:e.parent().parent().hasClass(P),t.length=typeof t.length!=j?t.length:e.parent().children().length,e.removeClass("k-first k-last").addClass(o.wrapperCssClass(t,n)),r.removeClass("k-top k-mid k-bot").addClass(o.cssClass(t,n)),a=r.children(".k-in"),i=a[0]&&"a"==a[0].nodeName.toLowerCase(),a.removeClass("k-in k-link k-state-default k-state-disabled").addClass(o.textClass(n,i)),(s.length||"true"==e.attr("data-hasChildren"))&&(r.children(".k-icon").removeClass("k-i-expand k-i-collapse").addClass(o.toggleButtonClass(n)),s.addClass("k-group")))},_processNodes:function(t,n){var a,i=this,r=i.element.find(t);for(a=0;a<r.length;a++)n.call(i,a,e(r[a]).closest(G))},dataItem:function(t){var n=e(t).closest(G).attr(p.attr("uid")),a=this.dataSource;return a&&a.getByUid(n)},_dataItem:function(t){var n=e(t).closest(G).attr(p.attr("uid")),a=this.dataSource;return a&&this._dataSourceUids[n]},_insertNode:function(t,n,a,i,r){var s,d,c,h,u,f,g=this,m=l(a),k=m.children().length+1,v={firstLevel:a.hasClass(P),expanded:!r,length:k},_="",x=function(e,t){e.appendTo(t)};for(c=0;c<t.length;c++)h=t[c],h.index=n+c,_+=g._renderItem({group:v,item:h});if(d=e(_),d.length){for(g.angular("compile",function(){return{elements:d.get(),data:t.map(function(e){return{dataItem:e}})}}),m.length||(m=e(g._renderGroup({group:v})).appendTo(a)),i(d,m),a.hasClass("k-item")&&(o(a),g._updateNodeClasses(a,v,{expanded:!r})),u=d.prev().first(),f=d.next().last(),g._updateNodeClasses(u,{},{expanded:"true"==u.attr(p.attr("expanded"))}),g._updateNodeClasses(f,{},{expanded:"true"==f.attr(p.attr("expanded"))}),c=0;c<t.length;c++)h=t[c],h.hasChildren&&(s=h.children.data(),s.length&&g._insertNode(s,h.index,d.eq(c),x,!h.expanded));return d}},_updateNodes:function(t,n){function a(e,t){e.is(".k-group")&&e.find(".k-item:not([aria-disabled])").attr(W,t),e.find(".k-checkbox-wrapper input[type=checkbox]:not([disabled])").prop(A,t).data(O,!1).prop(O,!1)}var i,r,s,o,d,l,h,u=this,p={treeview:u.options,item:o},g="expanded"!=n&&"checked"!=n;if("selected"==n)o=t[0],r=u.findByUid(o.uid).find(".k-in:first").removeClass("k-state-hover").toggleClass("k-state-selected",o[n]).end(),o[n]&&u.current(r),r.attr(J,!!o[n]);else{for(h=e.map(t,function(e){return u.findByUid(e.uid).children("div")}),g&&u.angular("cleanup",function(){return{elements:h}}),i=0;i<t.length;i++)p.item=o=t[i],s=h[i],r=s.parent(),g&&s.children(".k-in").html(u.templates.itemContent(p)),n==A?(d=o[n],a(s,d),r.attr(W,d),u.options.checkboxes.checkChildren&&(a(r.children(".k-group"),d),u._setChecked(o.children,d),u._bubbleIndeterminate(r))):"expanded"==n?u._toggle(r,o,o[n]):"enabled"==n&&(r.find(".k-checkbox-wrapper input[type=checkbox]").prop("disabled",!o[n]),l=!c(r).is(M),r.removeAttr(X),o[n]||(o.selected&&o.set("selected",!1),o.expanded&&o.set("expanded",!1),l=!0,r.attr(J,!1).attr(X,!0)),u._updateNodeClasses(r,{},{enabled:o[n],expanded:!l})),s.length&&this.trigger("itemChange",{item:s,data:o,ns:f});g&&u.angular("compile",function(){return{elements:h,data:e.map(t,function(e){return[{dataItem:e}]})}})}},_appendItems:function(e,t,n){var a,i,r,s=l(n),o=s.children(),d=!this._expanded(n);this.element===n?(a=this.dataSource.data(),i=this.dataSource.view(),r=i.length<a.length?i:a,e=r.indexOf(t[0])):t.length&&(e=t[0].parent().indexOf(t[0])),typeof e==j&&(e=o.length),this._insertNode(t,e,n,function(t,n){e>=o.length?t.appendTo(n):t.insertBefore(o.eq(e))},d),d||(this._updateNodeClasses(n,{},{expanded:!d}),l(n).css("display","block"))},_refreshChildren:function(e,t,n){var a,i,r,s=this.options,d=s.loadOnDemand,c=s.checkboxes&&s.checkboxes.checkChildren;if(l(e).empty(),t.length)for(this._appendItems(n,t,e),i=l(e).children(),d&&c&&this._bubbleIndeterminate(i.last()),a=0;a<i.length;a++)r=i.eq(a),this.trigger("itemChange",{item:r.children("div"),data:t[a],ns:f});else o(e)},_refreshRoot:function(t){var n,a,i,r=this._renderGroup({items:t,group:{firstLevel:!0,expanded:!0}});for(this.root.length?(this._angularItems("cleanup"),n=e(r),this.root.attr("class",n.attr("class")).html(n.html())):this.root=this.wrapper.html(r).children("ul"),a=this.root.children(".k-item"),i=0;i<t.length;i++)this.trigger("itemChange",{item:a.eq(i),data:t[i],ns:f});this._angularItems("compile")},refresh:function(e){var n,a,i=e.node,r=e.action,s=e.items,o=this.wrapper,d=this.options,l=d.loadOnDemand,c=d.checkboxes&&d.checkboxes.checkChildren;if(!this._skip){for(n=0;n<s.length;n++)this._dataSourceUids[s[n].uid]=s[n];if(e.field){if(!s[0]||!s[0].level)return;return this._updateNodes(s,e.field)}if(i&&(o=this.findByUid(i.uid),this._progress(o,!1)),c&&"remove"!=r){for(a=!1,n=0;n<s.length;n++)if("checked"in s[n]){a=!0;break}if(!a&&i&&i.checked)for(n=0;n<s.length;n++)s[n].checked=!0}if("add"==r?this._appendItems(e.index,s,o):"remove"==r?this._remove(this.findByUid(s[0].uid),!1):"itemchange"==r?this._updateNodes(s):"itemloaded"==r?this._refreshChildren(o,s,e.index):this._refreshRoot(s),"remove"!=r)for(n=0;n<s.length;n++)(!l||s[n].expanded||s[n]._loaded)&&s[n].load();this.trigger(q,{node:i?o:t}),this.dataSource.filter()&&this.options.checkboxes.checkChildren&&this.updateIndeterminate(o)}},_error:function(e){var t=e.node&&this.findByUid(e.node.uid),n=this.templates.retry({messages:this.options.messages});t?(this._progress(t,!1),this._expanded(t,!1),h(t).addClass("k-i-reload"),e.node.loaded(!1)):(this._progress(!1),this.element.html(n))},_retryRequest:function(e){e.preventDefault(),this.dataSource.fetch()},expand:function(e){this._processNodes(e,function(e,t){this.toggle(t,!0)})},collapse:function(e){this._processNodes(e,function(e,t){this.toggle(t,!1)})},enable:function(e,t){"boolean"==typeof e?(t=e,e=this.items()):t=2!=arguments.length||!!t,this._processNodes(e,function(e,n){this.dataItem(n).set("enabled",t)})},current:function(n){var a=this,i=a._current,r=a.element,s=a._ariaId;return arguments.length>0&&n&&n.length?(i&&(i[0].id===s&&i.removeAttr("id"),i.find(".k-in:first").removeClass("k-state-focused")),i=a._current=e(n,r).closest(G),i.find(".k-in:first").addClass("k-state-focused"),s=i[0].id||s,s&&(a.wrapper.removeAttr("aria-activedescendant"),i.attr("id",s),a.wrapper.attr("aria-activedescendant",s)),t):(i||(i=a._nextVisible(e())),i)},select:function(n){var a=this,i=a.element;return arguments.length?(n=e(n,i).closest(G),i.find(".k-state-selected").each(function(){var t=a.dataItem(this);t?(t.set("selected",!1),delete t.selected):e(this).removeClass("k-state-selected")}),n.length&&(a.dataItem(n).set("selected",!0),a._clickTarget=n),a.trigger(D),t):i.find(".k-state-selected").closest(G)},_toggle:function(e,t,n){var a,i=this.options,r=c(e),s=n?"expand":"collapse";r.data("animating")||(a=t&&t.loaded(),n&&!a?(i.loadOnDemand&&this._progress(e,!0),r.remove(),t.load()):(this._updateNodeClasses(e,{},{expanded:n}),n||r.css("height",r.height()).css("height"),r.kendoStop(!0,!0).kendoAnimate(m({reset:!0},i.animation[s],{complete:function(){n&&r.css("height","")}}))))},toggle:function(t,n){t=e(t),h(t).is(".k-i-expand, .k-i-collapse")&&(1==arguments.length&&(n=!this._expanded(t)),this._expanded(t,n))},destroy:function(){var e=this;_.fn.destroy.call(e),e.wrapper.off(w),e.wrapper.find(".k-checkbox-wrapper :checkbox").off(w),e._unbindDataSource(),e.dragging&&e.dragging.destroy(),e._dataSourceUids={},p.destroy(e.element),e.root=e.wrapper=e.element=null},_expanded:function(e,n,a){var i,r=p.attr("expanded"),s=n,o=s?"expand":"collapse";return 1==arguments.length?(i=this._dataItem(e),"true"===e.attr(r)||i&&i.expanded):(i=this.dataItem(e),c(e).data("animating")||!a&&this._trigger(o,e)||(s?(e.attr(r,"true"),e.attr("aria-expanded","true")):(e.removeAttr(r),e.attr("aria-expanded","false")),i&&(i.set("expanded",s),s=i.expanded)),t)},_progress:function(e,t){var n=this.element,a=this.templates.loading({messages:this.options.messages});1==arguments.length?(t=e,t?n.html(a):n.empty()):h(e).toggleClass("k-i-loading",t).removeClass("k-i-reload")},text:function(e,n){var a=this.dataItem(e),i=this.options[$.text],r=a.level(),s=i.length,o=i[Math.min(r,s-1)];return n?(a.set(o,n),t):a[o]},_objectOrSelf:function(t){return e(t).closest("[data-role=treeview]").data("kendoTreeView")||this},_dataSourceMove:function(t,n,a,i){var r,s=this._objectOrSelf(a||n),o=s.dataSource,d=e.Deferred().resolve().promise();return a&&a[0]!=s.element[0]&&(r=s.dataItem(a),r.loaded()||(s._progress(a,!0),d=r.load()),a!=this.root&&(o=r.children,o&&o instanceof x||(r._initChildren(),r.loaded(!0),o=r.children))),t=this._toObservableData(t),i.call(s,o,t,d)},_toObservableData:function(t){var n,a,i=t;return(z(t)||K(t))&&(n=this._objectOrSelf(t).dataSource,a=e(t).attr(p.attr("uid")),i=n.getByUid(a),i&&(i=n.remove(i))),i},_insert:function(e,t,n){t instanceof p.data.ObservableArray?t=t.toJSON():v(t)||(t=[t]);var a=e.parent();return a&&a._initChildren&&(a.hasChildren=!0,a._initChildren()),e.splice.apply(e,[n,0].concat(t)),this.findByUid(e[n].uid)},insertAfter:r(1),insertBefore:r(0),append:function(t,n,a){var i=this.root;if(!(n&&t instanceof jQuery&&n[0]===t[0]))return n=n&&n.length?n:null,n&&(i=l(n)),this._dataSourceMove(t,i,n,function(t,i,r){function s(){n&&d._expanded(n,!0,!0);var e=t.data(),a=Math.max(e.length,0);return d._insert(e,i,a)}var o,d=this;return r.done(function(){o=s(),(a=a||e.noop)(o)}),o||null})},_remove:function(t,n){var a,i,r,s=this;return t=e(t,s.element),this.angular("cleanup",function(){return{elements:t.get()}}),a=t.parent().parent(),i=t.prev(),r=t.next(),t[n?"detach":"remove"](),a.hasClass("k-item")&&(o(a),s._updateNodeClasses(a)),s._updateNodeClasses(i),s._updateNodeClasses(r),t},remove:function(e){var t=this.dataItem(e);t&&this.dataSource.remove(t)},detach:function(e){return this._remove(e,!0)},findByText:function(t){return e(this.element).find(".k-in").filter(function(n,a){return e(a).text()==t}).closest(G)},findByUid:function(t){var n,a,i=this.element.find(".k-item"),r=p.attr("uid");for(a=0;a<i.length;a++)if(i[a].getAttribute(r)==t){n=i[a];break}return e(n)},expandPath:function(t,n){function a(){s.shift(),s.length?i(s[0]).then(a):o.call(r)}function i(t){var n=e.Deferred(),a=r.dataSource.get(t);return a?a.loaded()?(a.set("expanded",!0),n.resolve()):(r._progress(r.findByUid(a.uid),!0),a.load().then(function(){a.set("expanded",!0),n.resolve()})):n.resolve(),n.promise()}var r=this,s=t.slice(0),o=n||e.noop;i(s[0]).then(a)},_parentIds:function(e){for(var t=e&&e.parentNode(),n=[];t&&t.parentNode;)n.unshift(t.id),t=t.parentNode();return n},expandTo:function(e){e instanceof p.data.Node||(e=this.dataSource.get(e));var t=this._parentIds(e);this.expandPath(t)},_renderItem:function(e){return e.group||(e.group={}),e.treeview=this.options,e.r=this.templates,this.templates.item(e)},_renderGroup:function(e){var t=this;return e.renderItems=function(e){var n="",a=0,i=e.items,r=i?i.length:0,s=e.group;for(s.length=r;a<r;a++)e.group=s,e.item=i[a],e.item.index=a,n+=t._renderItem(e);return n},e.r=t.templates,t.templates.group(e)}}),f.plugin(d)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,n){(n||t)()});
  10. //# sourceMappingURL=kendo.treeview.min.js.map