@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 30.1 kB
JavaScript
module.exports=function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}({0:function(e,t,n){e.exports=n(1394)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1017:function(e,t){e.exports=require("jquery")},1027:function(e,t){e.exports=require("./kendo.data")},1393:function(e,t){e.exports=require("./kendo.treeview.draganddrop")},1394:function(e,t,n){var r,i,a;(function(s){!function(s,define){i=[n(1027),n(1393)],r=s,a="function"==typeof r?r.apply(t,i):r,!(void 0!==a&&(e.exports=a))}(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 r(e){return f.template(e,{useWithBlock:!1})}function i(e){return e.find(".k-checkbox-wrapper:first input[type=checkbox]")}function a(e){return function(t,n){n=n.closest(Q);var r,i=n.parent();return i.parent().is("li")&&(r=i.parent()),this._dataSourceMove(t,i,r,function(t,r){var i=this.dataItem(n),a=i?i.parent().indexOf(i):n.index();return this._insert(t.data(),r,a+e)})}}function o(e,t){for(var n;e&&"ul"!=e.nodeName.toLowerCase();)n=e,e=e.nextSibling,3==n.nodeType&&(n.nodeValue=f.trim(n.nodeValue)),p.test(n.className)?t.insertBefore(n,t.firstChild):t.appendChild(n)}function d(t){var n=t.children("div"),r=t.children("ul"),i=n.children(".k-icon"),a=t.children("input[type=checkbox]"),s=n.children(".k-in");t.hasClass("k-treeview")||(n.length||(n=e("<div />").prependTo(t)),!i.length&&r.length?i=e("<span class='k-icon' />").prependTo(n):r.length&&r.children().length||(i.remove(),r.remove()),a.length&&e("<span class='k-checkbox-wrapper' />").appendTo(n).append(a),s.length||(s=t.children("a").eq(0).addClass("k-in k-link"),s.length||(s=e("<span class='k-in' />")),s.appendTo(n),n.length&&o(n[0].nextSibling,s[0])))}var l,c,h,u,p,f=window.kendo,g=f.ui,m=f.data,k=e.extend,v=f.template,_=e.isArray,x=g.Widget,b=m.HierarchicalDataSource,C=e.proxy,w=f.keys,y=".kendoTreeView",S=".kendoTreeViewTemp",N="select",T="check",I="navigate",D="expand",B="change",A="error",O="checked",U="indeterminate",q="collapse",E="dragstart",L="drag",H="drop",V="dragend",F="dataBound",j="click",R="undefined",P="k-state-hover",M="k-treeview",G=":visible",Q=".k-item",W="string",J="aria-checked",X="aria-selected",Y="aria-disabled",$="aria-expanded",z="k-state-disabled",K={text:"dataTextField",url:"dataUrlField",spriteCssClass:"dataSpriteCssClassField",imageUrl:"dataImageUrlField"},Z=function(e){return e instanceof f.jQuery||window.jQuery&&e instanceof window.jQuery},ee=function(e){return"object"==typeof HTMLElement?e instanceof HTMLElement:e&&"object"==typeof e&&1===e.nodeType&&typeof e.nodeName===W};c=n(".k-group"),h=n(".k-group,.k-content"),u=function(e){return e.children("div").children(".k-icon")},p=/k-sprite/,l=f.ui.DataBoundWidget.extend({init:function(e,t){var n,r=this,i=!1,a=t&&!!t.dataSource;_(t)&&(t={dataSource:t}),t&&typeof t.loadOnDemand==R&&_(t.dataSource)&&(t.loadOnDemand=!1),x.prototype.init.call(r,e,t),e=r.element,t=r.options,r._dataSourceUids={},n=e.is("ul")&&e||e.hasClass(M)&&e.children("ul"),i=!a&&n.length,i&&(t.dataSource.list=n),r._animation(),r._accessors(),r._templates(),e.hasClass(M)?(r.wrapper=e,r.root=e.children("ul").eq(0)):(r._wrapper(),n&&(r.root=e,r._group(r.wrapper))),r._tabindex(),r.wrapper.attr("role","tree"),r._dataSource(i),r._attachEvents(),r._dragging(),i?r._syncHtmlAndDataSource():t.autoBind&&(r._progress(!0),r.dataSource.fetch()),t.checkboxes&&t.checkboxes.checkChildren&&r.updateIndeterminate(),r.element[0].id&&(r._ariaId=f.format("{0}_tv_active",r.element[0].id)),f.notify(r)},_attachEvents:function(){var t=this,n=".k-in:not(.k-state-selected,.k-state-disabled)",r="mouseenter";t.wrapper.on(r+y,".k-in.k-state-selected",function(e){e.preventDefault()}).on(r+y,n,function(){e(this).addClass(P)}).on("mouseleave"+y,n,function(){e(this).removeClass(P)}).on(j+y,n,C(t._click,t)).on("dblclick"+y,".k-in:not(.k-state-disabled)",C(t._toggleButtonClick,t)).on(j+y,".k-i-expand,.k-i-collapse",C(t._toggleButtonClick,t)).on("keydown"+y,C(t._keydown,t)).on("keypress"+y,C(t._keypress,t)).on("focus"+y,C(t._focus,t)).on("blur"+y,C(t._blur,t)).on("mousedown"+y,".k-in,.k-checkbox-wrapper :checkbox,.k-i-expand,.k-i-collapse",C(t._mousedown,t)).on("change"+y,".k-checkbox-wrapper :checkbox",C(t._checkboxChange,t)).on("click"+y,".checkbox-span",C(t._checkboxLabelClick,t)).on("click"+y,".k-request-retry",C(t._retryRequest,t)).on("click"+y,".k-link.k-state-disabled",function(e){e.preventDefault()}).on("click"+y,function(n){var r=e(n.target);r.is(":kendoFocusable")||r.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,r,a,s,o,d=t.view(),l=f.attr("uid"),c=f.attr("expanded"),h=this.options.checkboxes,u=e.children("li");for(n=0;n<u.length;n++)a=d[n],s=a.uid,r=u.eq(n),r.attr("role","treeitem").attr(l,s).attr(X,r.hasClass("k-state-selected")),a.expanded="true"===r.attr(c),h&&(o=i(r),a.checked=o.prop(O),o.attr("id","_"+s),o.next(".k-checkbox-label").attr("for","_"+s)),this._syncHtmlAndDataSource(r.children("ul"),a.children)},_animation:function(){var e=this.options,t=e.animation,n=t.collapse&&"effects"in t.collapse,r=k({},t.expand,t.collapse);n||(r=k(r,{reverse:!0})),t===!1&&(t={expand:{effects:{}},collapse:{hide:!0,effects:{}}}),t.collapse=k(r,{hide:!0}),e.animation=t},_dragging:function(){var t,n=this.options.dragAndDrop,r=this.dragging;n&&!r?(t=this,this.dragging=new g.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:C(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 r=e(n.dropTarget),i=r.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:a})}var r=e.source,i=e.destination,a=e.position;"over"==a?t.append(r,i,n):("before"==a?r=t.insertBefore(r,i):"after"==a&&(r=t.insertAfter(r,i)),n(r))}})):!n&&r&&(r.destroy(),this.dragging=null)},_tempPreventNavigation:function(e){e.on(j+y+S,function(t){t.preventDefault(),e.off(j+y+S)})},_hintText:function(e){return this.templates.dragClue({item:this.dataItem(e),treeview:this.options})},_templates:function(){var e=this,t=e.options,n=C(e._fieldAccessor,e);t.template&&typeof t.template==W?t.template=v(t.template):t.template||(t.template=r("# 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="",r=e.attr||{};for(t in r)r.hasOwnProperty(t)&&"class"!==t&&(n+=t+'="'+r[t]+'" ');return n},wrapperCssClass:function(e,t){var n="k-item",r=t.index;return e.firstLevel&&0===r&&(n+=" k-first"),r==e.length-1&&(n+=" k-last"),n},cssClass:function(e,t){var n="",r=t.index,i=e.length-1;return e.firstLevel&&0===r&&(n+="k-top "),n+=0===r&&r!=i?"k-top":r==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:r("#= data.treeview.template(data) #"),group:r("<ul class='#= data.r.groupCssClass(data.group) #'#= data.r.groupAttributes(data.group) #>#= data.renderItems(data) #</ul>"),itemContent:r("# 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 #'></span># } ##= data.treeview.template(data) #"),itemElement:r("# 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) #'></span># } ## 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:r("# var item = data.item, r = data.r; #<li role='treeitem' class='#= r.wrapperCssClass(data.group, item) #'"+f.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:r("<div class='k-icon k-i-loading'></div> #: data.messages.loading #"),retry:r("#: 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=C(this.refresh,this),this._errorHandler=C(this._error,this),this.dataSource.bind(B,this._refreshHandler),this.dataSource.bind(A,this._errorHandler)},_unbindDataSource:function(){var e=this.dataSource;e&&(e.unbind(B,this._refreshHandler),e.unbind(A,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,r=n.options,i=r.dataSource;i=_(i)?{data:i}:i,n._unbindDataSource(),i.fields||(i.fields=[{field:"text"},{field:"url"},{field:"spriteCssClass"},{field:"imageUrl"}]),n.dataSource=i=b.create(i),e&&(i.fetch(),t(i.view())),n._bindDataSource()},events:[E,L,H,V,F,D,q,N,B,I,T],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,r=this,i=r.options,a=r.element;for(e in K)t=i[K[e]],n=a.attr(f.attr(e+"-field")),!t&&n&&(t=n),t||(t=e),_(t)||(t=[t]),i[K[e]]=t},_fieldAccessor:function(t){var n=this.options[K[t]],r=n.length,i="(function(item) {";return 0===r?i+="return item['"+t+"'];":(i+="var levels = ["+e.map(n,function(e){return"function(d){ return "+f.expr(e)+"}"}).join(",")+"];",i+="return levels[Math.min(item.level(), "+r+"-1)](item)"),i+="})"},setOptions:function(e){x.fn.setOptions.call(this,e),this._animation(),this._dragging(),this._templates()},_trigger:function(e,t){return this.trigger(e,{node:t.closest(Q)[0]})},_setChecked:function(t,n){if(t&&e.isFunction(t.view))for(var r=0,i=t.view();r<i.length;r++)i[r].enabled!==!1&&this._setCheckedValue(i[r],n),i[r].children&&this._setChecked(i[r].children,n)},_setCheckedValue:function(e,t){e[O]=t},_setIndeterminate:function(e){var t,n,r,a=c(e),s=!0;if(a.length&&(t=i(a.children()),n=t.length)){if(n>1){for(r=1;r<n;r++)if(t[r].checked!=t[r-1].checked||t[r].indeterminate||t[r-1].indeterminate){s=!1;break}}else s=!t[0].indeterminate;return e.attr(J,s?t[0].checked:"mixed"),i(e).data(U,!s).prop(U,!s).prop(O,s&&t[0].checked)}},updateIndeterminate:function(e){var t,n,r,i;if(e=e||this.wrapper,t=c(e).children(),t.length){for(n=0;n<t.length;n++)this.updateIndeterminate(t.eq(n));if(e.is(".k-treeview"))return;r=this._setIndeterminate(e),i=this.dataItem(e),r&&r.prop(O)?i.checked=!0:i&&delete i.checked}},_bubbleIndeterminate:function(e,t){if(e.length){t||this.updateIndeterminate(e);var n,r=this.parent(e);r.length&&(this._setIndeterminate(r),n=r.children("div").find(".k-checkbox-wrapper input[type=checkbox]"),this._skip=!0,n.prop(U)===!1?this.dataItem(r).set(O,n.prop(O)):this.dataItem(r).set(O,!1),this._skip=!1,this._bubbleIndeterminate(r,!0))}},_checkboxChange:function(t){var n=this,r=e(t.target),i=r.prop(O),a=r.closest(Q),s=this.dataItem(a);this._preventChange||(s.checked!=i&&(s.set(O,i),a.attr(J,i),this._trigger(T,a)),r.is(":focus")&&(n._trigger(I,a),n.focus()))},_toggleButtonClick:function(t){var n=e(t.currentTarget).closest(Q);n.is("[aria-disabled='true']")||this.toggle(n)},_mousedown:function(t){var n=this,r=e(t.currentTarget),i=e(t.currentTarget).closest(Q),a=f.support.browser;i.is("[aria-disabled='true']")||((a.msie||a.edge)&&r.is(":checkbox")&&(r.prop(U)?(n._preventChange=!1,r.prop(O,!r.prop(O)),r.trigger(B),r.on(j+y,function(e){e.preventDefault()}),n._preventChange=!0):(r.off(j+y),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(z)},_focus:function(){var t=this.select(),n=this._clickTarget;f.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],r=[],i=[],a=document.documentElement;do n=n.parentNode,n.scrollHeight>n.clientHeight&&(r.push(n),i.push(n.scrollTop));while(n!=a);for(f.focusElement(t),e=0;e<r.length;e++)r[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(z)},parent:function(t){var n,r,i=/\bk-treeview\b/,a=/\bk-item\b/;typeof t==W&&(t=this.element.find(t)),ee(t)||(t=t[0]),r=a.test(t.className);do t=t.parentNode,a.test(t.className)&&(r?n=t:r=!0);while(!i.test(t.className)&&!n);return e(n)},_nextVisible:function(e){function t(e){for(;e.length&&!e.next().length;)e=r.parent(e);return e.next().length?e.next():e}var n,r=this,i=r._expanded(e);return e.length&&e.is(":visible")?i?(n=c(e).children().first(),n.length||(n=t(e))):n=t(e):n=r.root.children().eq(0),n},_previousVisible:function(e){var t,n,r=this;if(!e.length||e.prev().length)for(n=e.length?e.prev():r.root.children().last();r._expanded(n)&&(t=c(n).children().last(),t.length);)n=t;else n=r.parent(e)||e;return n},_keydown:function(n){var r,i=this,a=n.keyCode,s=i.current(),o=i._expanded(s),d=s.find(".k-checkbox-wrapper:first :checkbox"),l=f.support.isRtl(i.element);n.target==n.currentTarget&&(!l&&a==w.RIGHT||l&&a==w.LEFT?o?r=i._nextVisible(s):s.find(".k-in:first").hasClass(z)||i.expand(s):!l&&a==w.LEFT||l&&a==w.RIGHT?o&&!s.find(".k-in:first").hasClass(z)?i.collapse(s):(r=i.parent(s),i._enabled(r)||(r=t)):a==w.DOWN?r=i._nextVisible(s):a==w.UP?r=i._previousVisible(s):a==w.HOME?r=i._nextVisible(e()):a==w.END?r=i._previousVisible(e()):a!=w.ENTER||s.find(".k-in:first").hasClass(z)?a==w.SPACEBAR&&d.length&&(s.find(".k-in:first").hasClass(z)||(d.prop(O,!d.prop(O)).data(U,!1).prop(U,!1),i._checkboxChange({target:d})),r=s):s.find(".k-in:first").hasClass("k-state-selected")||i._trigger(N,s)||i.select(s),r&&(n.preventDefault(),s[0]!=r[0]&&(i._trigger(I,r),i.current(r))))},_keypress:function(e){var t,n=this,r=300,i=n.current().get(0),a=e.key,s=1===a.length;s&&(n._match||(n._match=""),n._match+=a,clearTimeout(n._matchTimer),n._matchTimer=setTimeout(function(){n._match=""},r),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(I,t),n.current(t)))},_matchNextByText:function(t,n){var r=this.element,i=r.find(".k-in").filter(function(r,i){return r>t&&e(i).is(":visible")&&0===e(i).text().toLowerCase().indexOf(n)});return i.eq(0).closest(Q)},_click:function(t){var n,r=this,i=e(t.currentTarget),a=h(i.closest(Q)),s=i.attr("href");n=s?"#"==s||s.indexOf("#"+this.element.id+"-")>=0:a.length&&!a.children().length,n&&t.preventDefault(),i.hasClass(".k-state-selected")||r._trigger(N,i)||r.select(i)},_wrapper:function(){var e,t,n=this,r=n.element,i="k-widget k-treeview";r.is("ul")?(e=r.wrap("<div />").parent(),t=r):(e=r,t=e.children("ul").eq(0)),n.wrapper=e.addClass(i),n.root=t},_getSelectedNode:function(){return this.element.find(".k-state-selected").closest(Q)},_group:function(e){var t=this,n=e.hasClass(M),r={firstLevel:n,expanded:n||t._expanded(e)},i=e.children("ul");i.addClass(t.templates.groupCssClass(r)).css("display",r.expanded?"":"none"),n||i.attr("role","group"),t._nodes(i,r)},_nodes:function(t,n){var r,i=this,a=t.children("li");n=k({length:a.length},n),a.each(function(t,a){a=e(a),r={index:t,expanded:i._expanded(a)},d(a),i._updateNodeClasses(a,n,r),i._group(a)})},_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=k({template:e},t.checkboxes),typeof n.template==W&&(n.template=v(n.template)),t.checkboxes=n)},_updateNodeClasses:function(e,t,n){var r,i,a=e.children("div"),s=e.children("ul"),o=this.templates;e.hasClass("k-treeview")||(n=n||{},n.expanded=typeof n.expanded!=R?n.expanded:this._expanded(e),n.index=typeof n.index!=R?n.index:e.index(),n.enabled=typeof n.enabled!=R?n.enabled:!a.children(".k-in").hasClass("k-state-disabled"),t=t||{},t.firstLevel=typeof t.firstLevel!=R?t.firstLevel:e.parent().parent().hasClass(M),t.length=typeof t.length!=R?t.length:e.parent().children().length,e.removeClass("k-first k-last").addClass(o.wrapperCssClass(t,n)),a.removeClass("k-top k-mid k-bot").addClass(o.cssClass(t,n)),r=a.children(".k-in"),i=r[0]&&"a"==r[0].nodeName.toLowerCase(),r.removeClass("k-in k-link k-state-default k-state-disabled").addClass(o.textClass(n,i)),(s.length||"true"==e.attr("data-hasChildren"))&&(a.children(".k-icon").removeClass("k-i-expand k-i-collapse").addClass(o.toggleButtonClass(n)),s.addClass("k-group")))},_processNodes:function(t,n){var r,i=this,a=i.element.find(t);for(r=0;r<a.length;r++)n.call(i,r,e(a[r]).closest(Q))},dataItem:function(t){var n=e(t).closest(Q).attr(f.attr("uid")),r=this.dataSource;return r&&r.getByUid(n)},_dataItem:function(t){var n=e(t).closest(Q).attr(f.attr("uid")),r=this.dataSource;return r&&this._dataSourceUids[n]},_insertNode:function(t,n,r,i,a){var s,o,l,h,u,p,g=this,m=c(r),k=m.children().length+1,v={firstLevel:r.hasClass(M),expanded:!a,length:k},_="",x=function(e,t){e.appendTo(t)};for(l=0;l<t.length;l++)h=t[l],h.index=n+l,_+=g._renderItem({group:v,item:h});if(o=e(_),o.length){for(g.angular("compile",function(){return{elements:o.get(),data:t.map(function(e){return{dataItem:e}})}}),m.length||(m=e(g._renderGroup({group:v})).appendTo(r)),i(o,m),r.hasClass("k-item")&&(d(r),g._updateNodeClasses(r,v,{expanded:!a})),u=o.prev().first(),p=o.next().last(),g._updateNodeClasses(u,{},{expanded:"true"==u.attr(f.attr("expanded"))}),g._updateNodeClasses(p,{},{expanded:"true"==p.attr(f.attr("expanded"))}),l=0;l<t.length;l++)h=t[l],h.hasChildren&&(s=h.children.data(),s.length&&g._insertNode(s,h.index,o.eq(l),x,!h.expanded));return o}},_updateNodes:function(t,n){function r(e,t){e.is(".k-group")&&e.find(".k-item:not([aria-disabled])").attr(J,t),e.find(".k-checkbox-wrapper input[type=checkbox]:not([disabled])").prop(O,t).data(U,!1).prop(U,!1)}var i,a,s,o,d,l,c,u=this,p={treeview:u.options,item:o},f="expanded"!=n&&"checked"!=n;if("selected"==n)o=t[0],a=u.findByUid(o.uid).find(".k-in:first").removeClass("k-state-hover").toggleClass("k-state-selected",o[n]).end(),o[n]&&u.current(a),a.attr(X,!!o[n]);else{for(c=e.map(t,function(e){return u.findByUid(e.uid).children("div")}),f&&u.angular("cleanup",function(){return{elements:c}}),i=0;i<t.length;i++)p.item=o=t[i],s=c[i],a=s.parent(),f&&s.children(".k-in").html(u.templates.itemContent(p)),n==O?(d=o[n],r(s,d),a.attr(J,d),u.options.checkboxes.checkChildren&&(r(a.children(".k-group"),d),u._setChecked(o.children,d),u._bubbleIndeterminate(a))):"expanded"==n?u._toggle(a,o,o[n]):"enabled"==n&&(a.find(".k-checkbox-wrapper input[type=checkbox]").prop("disabled",!o[n]),l=!h(a).is(G),a.removeAttr(Y),o[n]||(o.selected&&o.set("selected",!1),o.expanded&&o.set("expanded",!1),l=!0,a.attr(X,!1).attr(Y,!0)),u._updateNodeClasses(a,{},{enabled:o[n],expanded:!l})),s.length&&(o._events&&o._events.change&&o._events.change.splice(1),this.trigger("itemChange",{item:s,data:o,ns:g}));f&&u.angular("compile",function(){return{elements:c,data:e.map(t,function(e){return[{dataItem:e}]})}})}},_appendItems:function(e,t,n){var r,i,a,s=c(n),o=s.children(),d=!this._expanded(n);this.element===n?(r=this.dataSource.data(),i=this.dataSource.view(),a=i.length<r.length?i:r,e=a.indexOf(t[0])):t.length&&(e=t[0].parent().indexOf(t[0])),typeof e==R&&(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}),c(n).css("display","block"))},_refreshChildren:function(e,t,n){var r,i,a,s=this.options,o=s.loadOnDemand,l=s.checkboxes&&s.checkboxes.checkChildren;if(c(e).empty(),t.length)for(this._appendItems(n,t,e),i=c(e).children(),o&&l&&this._bubbleIndeterminate(i.last()),r=0;r<i.length;r++)a=i.eq(r),this.trigger("itemChange",{item:a.children("div"),data:t[r],ns:g});else d(e)},_refreshRoot:function(t){var n,r,i,a=this._renderGroup({items:t,group:{firstLevel:!0,expanded:!0}});for(this.root.length?(this._angularItems("cleanup"),n=e(a),this.root.attr("class",n.attr("class")).html(n.html())):this.root=this.wrapper.html(a).children("ul"),r=this.root.children(".k-item"),i=0;i<t.length;i++)this.trigger("itemChange",{item:r.eq(i),data:t[i],ns:g});this._angularItems("compile")},refresh:function(e){var n,r,i=e.node,a=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"!=a){for(r=!1,n=0;n<s.length;n++)if("checked"in s[n]){r=!0;break}if(!r&&i&&i.checked)for(n=0;n<s.length;n++)s[n].checked=!0}if("add"==a?this._appendItems(e.index,s,o):"remove"==a?this._remove(this.findByUid(s[0].uid),!1):"itemchange"==a?this._updateNodes(s):"itemloaded"==a?this._refreshChildren(o,s,e.index):this._refreshRoot(s),"remove"!=a)for(n=0;n<s.length;n++)(!l||s[n].expanded||s[n]._loaded)&&s[n].load();this.trigger(F,{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),u(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 r=this,i=r._current,a=r.element,s=r._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=r._current=e(n,a).closest(Q),i.find(".k-in:first").addClass("k-state-focused"),s=i[0].id||s,s&&(r.wrapper.removeAttr("aria-activedescendant"),i.attr("id",s),r.wrapper.attr("aria-activedescendant",s)),t):(i||(i=r._nextVisible(e())),i)},select:function(n){var r=this,i=r.element;return arguments.length?(n=e(n,i).closest(Q),i.find(".k-state-selected").each(function(){var t=r.dataItem(this);t?(t.set("selected",!1),delete t.selected):e(this).removeClass("k-state-selected")}),n.length&&(r.dataItem(n).set("selected",!0),r._clickTarget=n),r.trigger(B),t):i.find(".k-state-selected").closest(Q)},_toggle:function(e,t,n){var r,i=this.options,a=h(e),s=n?"expand":"collapse";a.data("animating")||(r=t&&t.loaded(),n&&!r?(i.loadOnDemand&&this._progress(e,!0),a.remove(),t.load()):(this._updateNodeClasses(e,{},{expanded:n}),n||a.css("height",a.height()).css("height"),a.kendoStop(!0,!0).kendoAnimate(k({reset:!0},i.animation[s],{complete:function(){n&&a.css("height","")}}))))},toggle:function(t,n){t=e(t),u(t).is(".k-i-expand, .k-i-collapse")&&(1==arguments.length&&(n=!this._expanded(t)),this._expanded(t,n))},destroy:function(){var e=this;x.fn.destroy.call(e),e.wrapper.off(y),e.wrapper.find(".k-checkbox-wrapper :checkbox").off(y),e._unbindDataSource(),e.dragging&&e.dragging.destroy(),e._dataSourceUids={},f.destroy(e.element),e.root=e.wrapper=e.element=null},_expanded:function(e,n,r){var i,a=f.attr("expanded"),s=n,o=s?"expand":"collapse";return 1==arguments.length?(i=this._dataItem(e),"true"===e.attr(a)||i&&i.expanded):(i=this.dataItem(e),h(e).data("animating")||!r&&this._trigger(o,e)||(s?(e.attr(a,"true"),e.attr($,"true")):(e.removeAttr(a),e.attr($,"false")),i&&(i.set("expanded",s),s=i.expanded)),t)},_progress:function(e,t){var n=this.element,r=this.templates.loading({messages:this.options.messages});1==arguments.length?(t=e,t?n.html(r):n.empty()):u(e).toggleClass("k-i-loading",t).removeClass("k-i-reload")},text:function(e,n){var r=this.dataItem(e),i=this.options[K.text],a=r.level(),s=i.length,o=i[Math.min(a,s-1)];return n?(r.set(o,n),t):r[o]},_objectOrSelf:function(t){return e(t).closest("[data-role=treeview]").data("kendoTreeView")||this},_dataSourceMove:function(t,n,r,i){var a,s=this._objectOrSelf(r||n),o=s.dataSource,d=e.Deferred().resolve().promise();return r&&r[0]!=s.element[0]&&(a=s.dataItem(r),a.loaded()||(s._progress(r,!0),d=a.load()),r!=this.root&&(o=a.children,o&&o instanceof b||(a._initChildren(),a.loaded(!0),o=a.children))),t=this._toObservableData(t),i.call(s,o,t,d)},_toObservableData:function(t){var n,r,i=t;return(Z(t)||ee(t))&&(n=this._objectOrSelf(t).dataSource,r=e(t).attr(f.attr("uid")),i=n.getByUid(r),i&&(i=n.remove(i))),i},_insert:function(e,t,n){t instanceof f.data.ObservableArray?t=t.toJSON():_(t)||(t=[t]);var r=e.parent();return r&&r._initChildren&&(r.hasChildren=!0,r._initChildren()),e.splice.apply(e,[n,0].concat(t)),this.findByUid(e[n].uid)},insertAfter:a(1),insertBefore:a(0),append:function(t,n,r){var i=this.root;if(!(n&&t instanceof s&&n[0]===t[0]))return n=n&&n.length?n:null,n&&(i=c(n)),this._dataSourceMove(t,i,n,function(t,i,a){function s(){n&&d._expanded(n,!0,!0);var e=t.data(),r=Math.max(e.length,0);return d._insert(e,i,r)}var o,d=this;return a.done(function(){o=s(),(r=r||e.noop)(o)}),o||null})},_remove:function(t,n){var r,i,a,s=this;return t=e(t,s.element),this.angular("cleanup",function(){return{elements:t.get()}}),r=t.parent().parent(),i=t.prev(),a=t.next(),t[n?"detach":"remove"](),r.hasClass("k-item")&&(d(r),s._updateNodeClasses(r)),s._updateNodeClasses(i),s._updateNodeClasses(a),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,r){return e(r).text()==t}).closest(Q)},findByUid:function(t){var n,r,i=this.element.find(".k-item"),a=f.attr("uid");for(r=0;r<i.length;r++)if(i[r].getAttribute(a)==t){n=i[r];break}return e(n)},expandPath:function(t,n){function r(){s.shift(),s.length?i(s[0]).then(r):o.call(a)}function i(t){var n,r=e.Deferred(),i=a.dataSource.get(t),s=f.attr("expanded");return i?(n=a.findByUid(i.uid),i.loaded()?(i.set("expanded",!0),n.attr(s,!0),n.attr($,!0),r.resolve()):(a._progress(n,!0),i.load().then(function(){i.set("expanded",!0),n.attr(s,!0),n.attr($,!0),r.resolve()}))):r.resolve(),r.promise()}var a=this,s=t.slice(0),o=n||e.noop;i(s[0]).then(r)},_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 f.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="",r=0,i=e.items,a=i?i.length:0,s=e.group;for(s.length=a;r<a;r++)e.group=s,e.item=i[r],e.item.index=r,n+=t._renderItem(e);return n},e.r=t.templates,t.templates.group(e)}}),g.plugin(l)}(window.kendo.jQuery),window.kendo},n(3))}).call(t,n(1017))}});