UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

1 lines 33.4 kB
module.exports=function(i){var r={};function n(e){if(r[e])return r[e].exports;var t=r[e]={exports:{},id:e,loaded:!1};return i[e].call(t.exports,t,t.exports,n),t.loaded=!0,t.exports}return n.m=i,n.c=r,n.p="",n(0)}({0:function(e,t,i){e.exports=i(1503)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1060:function(e,t){e.exports=require("jquery")},1063:function(e,t){e.exports=require("./kendo.data")},1104:function(e,t){e.exports=require("./kendo.html.input")},1297:function(e,t){e.exports=require("./kendo.treeview.draganddrop")},1503:function(e,t,i){var r,re;re=i(1060),i(3),i=[i(1063),i(1297),i(1104)],void 0===(t="function"==typeof(r=function(){var e={id:"treeview",name:"TreeView",category:"web",description:"The TreeView widget displays hierarchical data in a traditional tree structure,with support for interactive drag-and-drop operations.",depends:["data","html.input"],features:[{id:"treeview-dragging",name:"Drag & Drop",description:"Support for drag & drop",depends:["treeview.draganddrop"]}]},m=window.kendo.jQuery,c=void 0,k=window.kendo,g=k.ui,t,o=m.extend,n=k.template,u=Array.isArray,f=g.Widget,v=k.data.HierarchicalDataSource,d=k.keys,a=".kendoTreeView",i=".kendoTreeViewTemp",x="select",b="check",C="navigate",w,y="change",S="error",h="checked",p="indeterminate",N,T="dragstart",I="drag",D="drop",A="dragend",B="dataBound",O="itemsLoaded",H="loadCompleted",U="click",q,l="undefined",E="k-hover",L="k-treeview",V=":visible",s=".k-item",F="string",j="aria-checked",P="aria-selected",R="aria-disabled",M="aria-expanded",G="k-disabled",Q,_,W,J,$,X={text:"dataTextField",url:"dataUrlField",spriteCssClass:"dataSpriteCssClassField",imageUrl:"dataImageUrlField"},Y=function(e){return e instanceof k.jQuery||window.jQuery&&e instanceof window.jQuery},z=function(e){return typeof HTMLElement==="object"?e instanceof HTMLElement:e&&typeof e==="object"&&e.nodeType===1&&typeof e.nodeName===F};function K(i){return function(e){var t=e.children(".k-animation-container");if(!t.length)t=e;return t.children(i)}}function r(e){return k.template(e,{useWithBlock:false})}function Z(e){return e.find(".k-checkbox-wrapper:first input[type=checkbox]")}function ee(a){return function(e,n){n=n.closest(s);var t=n.parent(),i;if(t.parent().is("li"))i=t.parent();return this._dataSourceMove(e,t,i,function(e,t){var i=this.dataItem(n);var r=i?i.parent().indexOf(i):n.index();return this._insert(e.data(),t,r+a)})}}function te(e,t){var i;while(e&&e.nodeName.toLowerCase()!="ul"){i=e;e=e.nextSibling;if(i.nodeType==3)i.nodeValue=k.trim(i.nodeValue);if($.test(i.className))t.insertBefore(i,t.firstChild);else t.appendChild(i)}}function ie(e){var t=e.children("div"),i=e.children("ul"),r=t.find(".k-treeview-toggle > .k-icon"),n=e.children("input[type=checkbox]"),a=t.children(".k-in");if(e.hasClass("k-treeview"))return;if(!t.length)t=m("<div />").prependTo(e);if(!r.length&&i.length)r=m("<span class='k-treeview-toggle'><span class='k-icon' /></span>").prependTo(t);else if(!i.length||!i.children().length){r.parent().remove();i.remove()}if(n.length)m("<span class='k-checkbox-wrapper' />").appendTo(t).append(n);if(!a.length){a=e.children("a").eq(0).addClass("k-in k-link");if(!a.length)a=m("<span class='k-treeview-leaf k-in' />");a.appendTo(t);if(t.length)te(t[0].nextSibling,a[0])}}return _=K(".k-group"),W=K(".k-group,.k-content"),J=function(e){return e.children("div").find(".k-treeview-toggle > .k-icon")},$=/k-sprite/,Q=k.ui.DataBoundWidget.extend({init:function(e,t){var i=this,r=false,n=t&&!!t.dataSource,a;if(u(t))t={dataSource:t};if(t&&typeof t.loadOnDemand==l&&u(t.dataSource))t.loadOnDemand=false;f.prototype.init.call(i,e,t);e=i.element;t=i.options;i._dataSourceUids={};a=e.is("ul")&&e||e.hasClass(L)&&e.children("ul");r=!n&&a.length;if(r)t.dataSource.list=a;i._animation();i._accessors();i._templates();if(!e.hasClass(L)){i._wrapper();if(a){i.root=e;i._group(i.wrapper)}}else{i.wrapper=e;i.root=e.children("ul").eq(0)}i._applyCssClasses();i._tabindex();i.wrapper.attr("role","tree");i.wrapper.find(">ul").attr("role","none");i._dataSource(r);i._attachEvents();i._dragging();if(!r){if(t.autoBind){i._progress(true);i.dataSource.fetch(this._attemptLoadCompleted.bind(this))}}else i._syncHtmlAndDataSource();if(t.checkboxes&&t.checkboxes.checkChildren)i.updateIndeterminate();if(i.element[0].id)i._ariaId=k.format("{0}_tv_active",i.element[0].id);else i._ariaId=k.guid()+"_tv_active";k.notify(i)},_attachEvents:function(){var i=this,e=".k-in:not(.k-selected,.k-disabled)",t="mouseenter";i._clickHandler=i._click.bind(i);i.wrapper.on(t+a,".k-in.k-selected",function(e){e.preventDefault()}).on(t+a,e,function(){m(this).addClass(E)}).on("mouseleave"+a,e,function(){m(this).removeClass(E)}).on(U+a,e,i._clickHandler).on("dblclick"+a,".k-in:not(.k-disabled)",i._toggleButtonClick.bind(i)).on(U+a,".k-i-expand,.k-i-collapse",i._toggleButtonClick.bind(i)).on("keydown"+a,i,i._keydown.bind(i)).on("keypress"+a,i._keypress.bind(i)).on("focus"+a,i._focus.bind(i)).on("blur"+a,i._blur.bind(i)).on("mousedown"+a,".k-in,.k-checkbox-wrapper :checkbox,.k-i-expand,.k-i-collapse",i._mousedown.bind(i)).on("change"+a,".k-checkbox-wrapper :checkbox",i._checkboxChange.bind(i)).on("click"+a,".k-request-retry",i._retryRequest.bind(i)).on("click"+a,".k-link.k-disabled",function(e){e.preventDefault()}).on("click"+a,function(e){var t=m(e.target);if(!t.is(":kendoFocusable")&&!t.find("input,select,textarea,button,object").is(":kendoFocusable"))i.focus()})},_syncHtmlAndDataSource:function(e,t){e=e||this.root;t=t||this.dataSource;var i=t.view(),r=k.attr("uid"),c=k.attr("expanded"),u=this.options.checkboxes,n=e.children("li"),a,s,o,d,l;for(a=0;a<n.length;a++){o=i[a];d=o.uid;s=n.eq(a);s.attr("role","treeitem").attr(r,d).attr(P,s.hasClass("k-selected"));o.expanded=s.attr(c)==="true";if(u){l=Z(s);o.checked=l.prop(h);l.attr("id","_"+d);l.next(".k-checkbox-label").attr("for","_"+d)}this._syncHtmlAndDataSource(s.children("ul"),o.children)}},_animation:function(){var e=this.options,t=e.animation,i=t.collapse&&"effects"in t.collapse,r=o({},t.expand,t.collapse);if(!i)r=o(r,{reverse:true});if(t===false)t={expand:{effects:{}},collapse:{hide:true,effects:{}}};t.collapse=o(r,{hide:true});e.animation=t},_dragging:function(){var e=this.options.dragAndDrop;var t=this.dragging;if(e&&!t){var a=this;this.dragging=new g.HierarchicalDragAndDrop(this.element,{reorderable:true,$angular:this.options.$angular,autoScroll:this.options.autoScroll,filter:"div:not(.k-disabled) .k-in",allowedContainers:".k-treeview",itemSelector:".k-treeview .k-item",hintText:this._hintText.bind(this),contains:function(e,t){return m.contains(e,t)},dropHintContainer:function(e){return e},itemFromTarget:function(e){var t=e.closest(".k-treeview-top,.k-treeview-mid,.k-treeview-bot");return{item:t,content:e.closest(".k-in"),first:t.hasClass("k-treeview-top"),last:t.hasClass("k-treeview-bot")}},dropPositionFrom:function(e){return e.prevAll(".k-in").length>0?"after":"before"},dragstart:function(e){return a.trigger(T,{sourceNode:e[0]})},drag:function(e){a.trigger(I,{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(t){var e=m(t.dropTarget);var i=e.closest("a");if(i&&i.attr("href"))a._tempPreventNavigation(i);return a.trigger(D,{originalEvent:t.originalEvent,sourceNode:t.source,destinationNode:t.destination,valid:t.valid,setValid:function(e){this.valid=e;t.setValid(e)},dropTarget:t.dropTarget,dropPosition:t.position})},dragend:function(t){var e=t.source;var i=t.destination;var r=t.position;function n(e){if(a.options.checkboxes&&a.options.checkboxes.checkChildren)a.updateIndeterminate();a.current(e);a.element.focus();a.trigger(A,{originalEvent:t.originalEvent,sourceNode:e&&e[0],destinationNode:i[0],dropPosition:r})}if(r=="over")a.append(e,i,n);else{if(r=="before")e=a.insertBefore(e,i);else if(r=="after")e=a.insertAfter(e,i);n(e)}}})}else if(!e&&t){t.destroy();this.dragging=null}},_tempPreventNavigation:function(t){t.on(U+a+i,function(e){e.preventDefault();t.off(U+a+i)})},_hintText:function(e){return this.templates.dragClue({item:this.dataItem(e),treeview:this.options})},_templates:function(){var e=this,t=e.options,i=e._fieldAccessor.bind(e);if(t.template&&typeof t.template==F)t.template=n(t.template);else if(!t.template)t.template=r("# var text = "+i("text")+"(data.item); #"+"# if (typeof data.item.encoded != 'undefined' && data.item.encoded === false) {#"+"<span class='k-treeview-leaf-text'>#= text #</span>"+"# } else { #"+"<span class='k-treeview-leaf-text'>#: text #</span>"+"# } #");e._checkboxes();e.templates={setAttributes:function(e){var t="";var i=e.attr||{};for(var r in i)if(i.hasOwnProperty(r)&&r!=="class")t+=r+'="'+i[r]+'" ';return t},wrapperCssClass:function(e,t){var i="k-item k-treeview-item",r=t.index;if(e.firstLevel&&r===0)i+=" k-first";if(r==e.length-1)i+=" k-last";return i},cssClass:function(e,t){var i="",r=t.index,n=e.length-1;if(e.firstLevel&&r===0)i+="k-treeview-top ";if(r===0&&r!=n)i+="k-treeview-top";else if(r==n)i+="k-treeview-bot";else i+="k-treeview-mid";return i},textClass:function(e,t){var i="k-treeview-leaf k-in";if(t)i+=" k-link";if(e.enabled===false)i+=" k-disabled";if(e.selected===true)i+=" k-selected";return i},toggleButtonClass:function(e){var t="k-icon";if(e.expanded!==true)t+=" k-i-expand";else t+=" k-i-collapse";return t},groupAttributes:function(e){var t="";if(!e.firstLevel)t="role='group'";return t+(e.expanded!==true?" style='display:none'":"")},groupCssClass:function(e){var t="k-group k-treeview-group";if(e.firstLevel)t+=" k-treeview-lines";return 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 = "+i("imageUrl")+"(data.item); #"+"# var spriteCssClass = "+i("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 = "+i("url")+"(item); #"+"<div class='#= r.cssClass(data.group, item) #'>"+"# if (item.hasChildren) { #"+"<span class='k-treeview-toggle'>"+"<span class='#= r.toggleButtonClass(item) #'></span>"+"</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) #'"+k.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-button-md k-rounded-md k-button-solid k-button-solid-base k-request-retry'><span class='k-button-text'>#: data.messages.retry #</span></button>")}},items:function(){return this.element.find(".k-item > div:first-child")},setDataSource:function(e){var t=this.options;t.dataSource=e;this._dataSourceUids={};this._dataSource();if(t.checkboxes&&t.checkboxes.checkChildren)this.dataSource.one("change",this.updateIndeterminate.bind(this,null));if(this.options.autoBind)this.dataSource.fetch(this._attemptLoadCompleted.bind(this))},_bindDataSource:function(){var e=this;e._refreshHandler=e.refresh.bind(e);e._errorHandler=e._error.bind(e);e._loadCompletedHandler=e._loadCompleted.bind(e);e._loadedNodes=[];e.dataSource.bind(y,e._refreshHandler);e.dataSource.bind(S,e._errorHandler);e.dataSource.bind(O,e._loadCompletedHandler)},_loadCompleted:function(e){var t=this;t._loadedNodes=t._loadedNodes.concat(e.nodes);if(!t.dataSource.loading()&&t.options.loadOnDemand===false){t.trigger(H,{nodes:t._loadedNodes});t._loadedNodes=[]}},_attemptLoadCompleted:function(){var e=this,t=e.dataSource.view();if(e.options.loadOnDemand===false){for(var i=0;i<t.length;i++)if(t[i].hasChildren)return;e.trigger(H,{nodes:[]})}},_unbindDataSource:function(){var e=this.dataSource;if(e){e.unbind(y,this._refreshHandler);e.unbind(S,this._errorHandler);e.unbind(O,this._loadCompletedHandler)}},_dataSource:function(e){var t=this,i=t.options,r=i.dataSource;function n(e){for(var t=0;t<e.length;t++){e[t]._initChildren();e[t].children.fetch();n(e[t].children.view())}}r=u(r)?{data:r}:r;t._unbindDataSource();if(!r.fields)r.fields=[{field:"text"},{field:"url"},{field:"spriteCssClass"},{field:"imageUrl"}];t.dataSource=r=v.create(r);if(e){r.fetch();n(r.view())}t._bindDataSource()},events:[T,I,D,A,B,H,"expand","collapse",x,y,C,b,"kendoKeydown"],options:{name:"TreeView",dataSource:{},animation:{expand:{effects:"expand:vertical",duration:200},collapse:{duration:100}},messages:{loading:"Loading...",requestFailed:"Request failed.",retry:"Retry"},dragAndDrop:false,checkboxes:false,autoBind:true,autoScroll:false,loadOnDemand:true,template:"",dataTextField:null,size:"medium"},_accessors:function(){var e=this,t=e.options,i,r,n,a=e.element;for(i in X){r=t[X[i]];n=a.attr(k.attr(i+"-field"));if(!r&&n)r=n;if(!r)r=i;if(!u(r))r=[r];t[X[i]]=r}},_fieldAccessor:function(e){var t=this.options[X[e]],i=t.length,r="(function(item) {";if(i===0)r+="return item['"+e+"'];";else{r+="var levels = ["+m.map(t,function(e){return"function(d){ return "+k.expr(e)+"}"}).join(",")+"];";r+="return levels[Math.min(item.level(), "+i+"-1)](item)"}r+="})";return r},setOptions:function(e){f.fn.setOptions.call(this,e);this._animation();this._dragging();this._templates()},_trigger:function(e,t){return this.trigger(e,{node:t.closest(s)[0]})},_setChecked:function(e,t){if(!e||!k.isFunction(e.view))return;for(var i=0,r=e.view();i<r.length;i++){if(r[i].enabled!==false)this._setCheckedValue(r[i],t);if(r[i].children)this._setChecked(r[i].children,t)}},_setCheckedValue:function(e,t){e[h]=t},_setIndeterminate:function(e){var t=_(e),i,r,n=true,a;if(!t.length)return;i=Z(t.children());r=i.length;if(!r)return;else if(r>1){for(a=1;a<r;a++)if(i[a].checked!=i[a-1].checked||i[a].indeterminate||i[a-1].indeterminate){n=false;break}}else n=!i[0].indeterminate;e.attr(j,n?i[0].checked:"mixed");return Z(e).data(p,!n).prop(p,!n).prop(h,n&&i[0].checked)},updateIndeterminate:function(e){e=e||this.wrapper;var t=_(e).children();var i;var r;var n;if(t.length){for(i=0;i<t.length;i++)this.updateIndeterminate(t.eq(i));if(e.is(".k-treeview"))return;r=this._setIndeterminate(e);n=this.dataItem(e);if(r&&r.prop(h))n.checked=true;else if(n)delete n.checked}},_bubbleIndeterminate:function(e,t){if(!e.length)return;if(!t)this.updateIndeterminate(e);var i=this.parent(e),r;if(i.length){this._setIndeterminate(i);r=i.children("div").find(".k-checkbox-wrapper input[type=checkbox]");this._skip=true;if(r.prop(p)===false)this.dataItem(i).set(h,r.prop(h));else this.dataItem(i).set(h,false);this._skip=false;this._bubbleIndeterminate(i,true)}},_checkboxChange:function(e){var t=this;var i=m(e.target);var r=i.prop(h);var n=i.closest(s);var a=this.dataItem(n);if(this._preventChange)return;if(a.checked!=r){a.set(h,r);n.attr(j,r);this._trigger(b,n)}if(i.is(":focus")){t._trigger(C,n);t.focus()}},_toggleButtonClick:function(e){var t=m(e.currentTarget).closest(s);if(t.is("[aria-disabled='true']"))return;this.toggle(t)},_mousedown:function(e){var t=this;var i=m(e.currentTarget);var r=m(e.currentTarget).closest(s);var n=k.support.browser;if(r.is("[aria-disabled='true']"))return;if((n.msie||n.edge)&&i.is(":checkbox"))if(i.prop(p)){t._preventChange=false;i.prop(h,!i.prop(h));i.trigger(y);i.on(U+a,function(e){e.preventDefault()});t._preventChange=true}else{i.off(U+a);t._preventChange=false}t._clickTarget=r;t.current(r)},_focusable:function(e){return e&&e.length&&e.is(":visible")&&!e.find(".k-in").first().hasClass(G)},_focus:function(){var e=this.select(),t=this._clickTarget;if(k.support.touch)return;if(t&&t.length)e=t;if(!this._focusable(e))e=this.current();if(!this._focusable(e))e=this._nextVisible(m());this.current(e)},focus:function(){var e=this.wrapper,t=e[0],i=[],r=[],n=document.documentElement,a;do{t=t.parentNode;if(t.scrollHeight>t.clientHeight){i.push(t);r.push(t.scrollTop)}}while(t!=n);k.focusElement(e);for(a=0;a<i.length;a++)i[a].scrollTop=r[a]},_blur:function(){this.current().find(".k-in").first().removeClass("k-focus")},_enabled:function(e){return!e.children("div").children(".k-in").hasClass(G)},parent:function(e){var t=/\bk-treeview\b(?!-)/,i=/\bk-item\b/,r,n;if(typeof e==F)e=this.element.find(e);if(!z(e))e=e[0];n=i.test(e.className);do{e=e.parentNode;if(i.test(e.className))if(n)r=e;else n=true}while(!t.test(e.className)&&!r);return m(r)},_nextVisible:function(e){var t=this,i=t._expanded(e),r;function n(e){while(e.length&&!e.next().length)e=t.parent(e);if(e.next().length)return e.next();else return e}if(!e.length||!e.is(":visible"))r=t.root.children().eq(0);else if(i){r=_(e).children().first();if(!r.length)r=n(e)}else r=n(e);return r},_previousVisible:function(e){var t=this,i,r;if(!e.length||e.prev().length){if(e.length)r=e.prev();else r=t.root.children().last();while(t._expanded(r)){i=_(r).children().last();if(!i.length)break;r=i}}else r=t.parent(e)||e;return r},_keydown:function(e){var t=this,i=e.keyCode,r,n=t.current(),a=t._expanded(n),s=n.find(".k-checkbox-wrapper").first().find(":checkbox"),o=k.support.isRtl(t.element);if(e.target!=e.currentTarget)return;if(!o&&i==d.RIGHT||o&&i==d.LEFT){if(a)r=t._nextVisible(n);else if(!n.find(".k-in").first().hasClass(G))t.expand(n)}else if(!o&&i==d.LEFT||o&&i==d.RIGHT)if(a&&!n.find(".k-in").first().hasClass(G))t.collapse(n);else{r=t.parent(n);if(!t._enabled(r))r=c}else if(i==d.DOWN)r=t._nextVisible(n);else if(i==d.UP)r=t._previousVisible(n);else if(i==d.HOME)r=t._nextVisible(m());else if(i==d.END)r=t._previousVisible(m());else if(i==d.ENTER&&!n.find(".k-in").first().hasClass(G)){if(!n.find(".k-in").first().hasClass("k-selected"))if(!t._trigger(x,n))t.select(n)}else if(i==d.SPACEBAR&&s.length){if(!n.find(".k-in").first().hasClass(G)){s.prop(h,!s.prop(h)).data(p,false).prop(p,false);t._checkboxChange({target:s})}r=n}if(r){e.preventDefault();if(n[0]!=r[0]){t._trigger(C,r);t.current(r)}}},_keypress:function(e){var t=this;var i=300;var r=t.current().get(0);var n;var a=e.key;var s=a.length===1;if(!s)return;if(!t._match)t._match="";t._match+=a;clearTimeout(t._matchTimer);t._matchTimer=setTimeout(function(){t._match=""},i);n=r&&t._matchNextByText(Array.prototype.indexOf.call(t.element.find(".k-item"),r),t._match);if(!n.length)n=t._matchNextByText(-1,t._match);if(n.get(0)&&n.get(0)!==r){t._trigger(C,n);t.current(n)}},_matchNextByText:function(i,r){var e=this.element;var t=e.find(".k-in").filter(function(e,t){return e>i&&m(t).is(":visible")&&m(t).text().toLowerCase().indexOf(r)===0});return t.eq(0).closest(s)},_click:function(e){var t=this,i=m(e.currentTarget),r=W(i.closest(s)),n=i.attr("href"),a;if(n)a=n=="#"||n.indexOf("#"+this.element.id+"-")>=0;else a=r.length&&!r.children().length;if(a)e.preventDefault();if(!i.hasClass(".k-selected")&&!t._trigger(x,i))t.select(i)},_wrapper:function(){var e=this,t=e.element,i,r,n="k-treeview";if(t.is("ul")){i=t.wrap("<div />").parent();r=t}else{i=t;r=i.children("ul").eq(0)}e.wrapper=i.addClass(n);e.root=r},_getSelectedNode:function(){return this.element.find(".k-selected").closest(s)},_group:function(e){var t=this,i=e.hasClass(L),r={firstLevel:i,expanded:i||t._expanded(e)},n=e.children("ul");n.addClass(t.templates.groupCssClass(r)).css("display",r.expanded?"":"none");if(!i)n.attr("role","group");t._nodes(n,r)},_nodes:function(e,i){var r=this,t=e.children("li"),n;i=o({length:t.length},i);t.each(function(e,t){t=m(t);n={index:e,expanded:r._expanded(t)};ie(t);r._updateNodeClasses(t,i,n);r._group(t)})},_checkboxes:function(){var e=this.options;var t=e.checkboxes;var i,r;if(t){r="<input id='_#= item.uid #' aria-hidden='true' type='checkbox' tabindex='-1'";if(t.name)r+=" name='"+t.name+"'";r+=" />";i=k.html.renderCheckBox(m(r),m.extend({},e,{rounded:"medium"}));i=i.replace(/(<input[^/>]*)/,"$1 #= (item.enabled === false) ? 'disabled' : '' # #= item.checked ? 'checked' : '' #");t=o({template:i},e.checkboxes);if(typeof t.template==F)t.template=n(t.template);e.checkboxes=t}},_updateNodeClasses:function(e,t,i){var r=e.children("div"),n=e.children("ul"),a=this.templates;if(e.hasClass("k-treeview"))return;i=i||{};i.expanded=typeof i.expanded!=l?i.expanded:this._expanded(e);i.index=typeof i.index!=l?i.index:e.index();i.enabled=typeof i.enabled!=l?i.enabled:!r.children(".k-in").hasClass("k-disabled");t=t||{};t.firstLevel=typeof t.firstLevel!=l?t.firstLevel:e.parent().parent().hasClass(L);t.length=typeof t.length!=l?t.length:e.parent().children().length;e.removeClass("k-first k-last").addClass(a.wrapperCssClass(t,i));r.removeClass("k-treeview-top k-treeview-mid k-treeview-bot").addClass(a.cssClass(t,i));var s=r.children(".k-in");var o=s[0]&&s[0].nodeName.toLowerCase()=="a";s.removeClass("k-in k-link k-disabled").addClass(a.textClass(i,o));if(n.length||e.attr("data-hasChildren")=="true"){r.find(".k-treeview-toggle > .k-icon").removeClass("k-i-expand k-i-collapse").addClass(a.toggleButtonClass(i));n.addClass("k-group k-treeview-group")}},_processNodes:function(e,t){var i=this;var r=i.element.find(e);for(var n=0;n<r.length;n++)t.call(i,n,m(r[n]).closest(s))},dataItem:function(e){var t=m(e).closest(s).attr(k.attr("uid")),i=this.dataSource;return i&&i.getByUid(t)},_dataItem:function(e){var t=m(e).closest(s).attr(k.attr("uid")),i=this.dataSource;return i&&this._dataSourceUids[t]},_insertNode:function(e,c,t,u,f){var i=this,r=_(t),h=r.children().length+1,n,a={firstLevel:t.hasClass(L),expanded:!f,length:h},s,o,d,p="",l,g,v=function(e,t){e.appendTo(t)};for(o=0;o<e.length;o++){d=e[o];d.index=c+o;p+=i._renderItem({group:a,item:d})}s=m(p);if(!s.length)return;i.angular("compile",function(){return{elements:s.get(),data:e.map(function(e){return{dataItem:e}})}});if(!r.length)r=m(i._renderGroup({group:a})).appendTo(t);u(s,r);if(t.hasClass("k-item")){ie(t);i._updateNodeClasses(t,a,{expanded:!f})}l=s.prev().first();g=s.next().last();i._updateNodeClasses(l,{},{expanded:l.attr(k.attr("expanded"))=="true"});i._updateNodeClasses(g,{},{expanded:g.attr(k.attr("expanded"))=="true"});for(o=0;o<e.length;o++){d=e[o];if(d.hasChildren){n=d.children.data();if(n.length)i._insertNode(n,d.index,s.eq(o),v,!d.expanded)}}return s},_updateNodes:function(e,t){var i=this;var r,n,a,s,o,d;var c={treeview:i.options,item:s};var l=t!="expanded"&&t!="checked";function u(e,t){if(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(h,t).data(p,false).prop(p,false)}if(t=="selected"){s=e[0];n=i.findByUid(s.uid).find(".k-in").first();n.removeClass("k-hover").toggleClass("k-selected",s[t]).end();if(s[t])i.current(n);n.attr(P,!!s[t])}else{var f=m.map(e,function(e){return i.findByUid(e.uid).children("div")});if(l)i.angular("cleanup",function(){return{elements:f}});for(r=0;r<e.length;r++){c.item=s=e[r];a=f[r];n=a.parent();if(l){if(k.unbind)k.unbind(a);a.children(".k-in").html(i.templates.itemContent(c))}if(t==h){o=s[t];u(a,o);n.attr(j,o);if(i.options.checkboxes.checkChildren){u(n.children(".k-group"),o);i._setChecked(s.children,o);i._bubbleIndeterminate(n)}}else if(t=="expanded")i._toggle(n,s,s[t]);else if(t=="enabled"){n.find(".k-checkbox-wrapper input[type=checkbox]").prop("disabled",!s[t]);d=!W(n).is(V);n.removeAttr(R);if(!s[t]){if(s.selected)s.set("selected",false);if(s.expanded)s.set("expanded",false);d=true;n.attr(P,false).attr(R,true)}i._updateNodeClasses(n,{},{enabled:s[t],expanded:!d})}if(a.length)this.trigger("itemChange",{item:a,data:s,ns:g})}if(l)i.angular("compile",function(){return{elements:f,data:m.map(e,function(e){return[{dataItem:e}]})}})}},_appendItems:function(i,e,t){var r=_(t);var n=r.children();var a=!this._expanded(t);if(this.element===t){var s=this.dataSource.data();var o=this.dataSource.view();var d=o.length<s.length?o:s;i=d.indexOf(e[0])}else if(e.length)i=e[0].parent().indexOf(e[0]);if(typeof i==l)i=n.length;this._insertNode(e,i,t,function(e,t){if(i>=n.length)e.appendTo(t);else e.insertBefore(n.eq(i))},a);if(!a){this._updateNodeClasses(t,{},{expanded:!a});_(t).css("display","block")}},_refreshChildren:function(e,t,i){var r,n,a;var s=this.options;var o=s.loadOnDemand;var d=s.checkboxes&&s.checkboxes.checkChildren;_(e).empty();if(!t.length)ie(e);else{this._appendItems(i,t,e);n=_(e).children();if(o&&d)this._bubbleIndeterminate(n.last());for(r=0;r<n.length;r++){a=n.eq(r);this.trigger("itemChange",{item:a.children("div"),data:t[r],ns:g})}}},_refreshRoot:function(e){var t=this._renderGroup({items:e,group:{firstLevel:true,expanded:true}});if(this.root.length&&this.root[0].parentElement){this._angularItems("cleanup");var i=m(t);this.root.attr("class",i.attr("class")).html(i.html())}else this.root=this.wrapper.html(t).children("ul");var r=this.root.children(".k-item");for(var n=0;n<e.length;n++)this.trigger("itemChange",{item:r.eq(n),data:e[n],ns:g});this._angularItems("compile")},refresh:function(e){var t=e.node;var i=e.action;var r=e.items;var n=this.wrapper;var a=this.options;var s=a.loadOnDemand;var o=a.checkboxes&&a.checkboxes.checkChildren;var d;if(this._skip)return;for(d=0;d<r.length;d++)this._dataSourceUids[r[d].uid]=r[d];if(e.field){if(!r[0]||!r[0].level)return;return this._updateNodes(r,e.field)}if(t){n=this.findByUid(t.uid);this._progress(n,false)}if(o&&i!="remove"){var l=false;for(d=0;d<r.length;d++)if("checked"in r[d]){l=true;break}if(!l&&t&&t.checked)for(d=0;d<r.length;d++)r[d].checked=true}if(i=="add")this._appendItems(e.index,r,n);else if(i=="remove")this._remove(this.findByUid(r[0].uid),false);else if(i=="itemchange")this._updateNodes(r);else if(i=="itemloaded")this._refreshChildren(n,r,e.index);else{this._refreshRoot(r);this.element.attr("aria-busy",false)}if(i!="remove")for(d=0;d<r.length;d++)if(!s||r[d].expanded||r[d]._loaded)r[d].load();this.wrapper.find(">ul").attr("role","none");this.trigger(B,{node:t?n:c});if(this.dataSource.filter()&&this.options.checkboxes.checkChildren)this.updateIndeterminate(n)},_error:function(e){var t=e.node&&this.findByUid(e.node.uid);var i=this.templates.retry({messages:this.options.messages});if(t){this._progress(t,false);this._expanded(t,false);J(t).addClass("k-i-reload");e.node.loaded(false)}else{this._progress(false);this.dataSource.data([]);this.element.html(i)}},_retryRequest:function(e){e.preventDefault();this.dataSource.fetch(this._attemptLoadCompleted.bind(this))},expand:function(e){this._processNodes(e,function(e,t){this.toggle(t,true)})},collapse:function(e){this._processNodes(e,function(e,t){this.toggle(t,false)})},enable:function(e,i){if(typeof e==="boolean"){i=e;e=this.items()}else i=arguments.length==2?!!i:true;this._processNodes(e,function(e,t){this.dataItem(t).set("enabled",i)})},current:function(e){var t=this,i=t._current,r=t.element;if(arguments.length>0&&e&&e.length){if(i)i.find(".k-in").first().removeClass("k-focus");i=t._current=m(e,r).closest(s);i.find(".k-in").first().addClass("k-focus");t._updateActiveDescendant();return}if(!i)i=t._nextVisible(m());return i},_updateActiveDescendant:function(){var e=this._current,t=e[0].id||this._ariaId,i=this.element.find("#"+this._ariaId);if(i.length>0)i.removeAttr("id");this.wrapper.removeAttr("aria-activedescendant");e.attr("id",t);this.wrapper.attr("aria-activedescendant",t)},select:function(e){var t=this,i=t.element;if(!arguments.length)return i.find(".k-selected").closest(s);e=m(e,i).closest(s);i.find(".k-selected").each(function(){var e=t.dataItem(this);if(e){e.set("selected",false);delete e.selected}else m(this).removeClass("k-selected")});if(e.length){t.dataItem(e).set("selected",true);t._clickTarget=e}t.trigger(y)},_toggle:function(e,t,i){var r=this.options;var n=W(e);var a=i?"expand":"collapse";var s;if(n.data("animating"))return;s=t&&t.loaded();if(i&&!s){if(r.loadOnDemand)this._progress(e,true);n.remove();t.load()}else{this._updateNodeClasses(e,{},{expanded:i});if(!i)n.css("height",n.height()).css("height");n.kendoStop(true,true).kendoAnimate(o({reset:true},r.animation[a],{complete:function(){if(i)n.css("height","")}}))}},toggle:function(e,t){e=m(e);if(!J(e).is(".k-i-expand, .k-i-collapse"))return;if(arguments.length==1)t=!this._expanded(e);this._expanded(e,t)},destroy:function(){var e=this;f.fn.destroy.call(e);e.wrapper.off(a);e.wrapper.find(".k-checkbox-wrapper :checkbox").off(a);e._clickHandler=null;e._unbindDataSource();if(e.dragging)e.dragging.destroy();e._dataSourceUids={};k.destroy(e.element);e.root=e.wrapper=e.element=null},_expanded:function(e,t,i){var r=k.attr("expanded");var n;var a=t;var s=a?"expand":"collapse";if(arguments.length==1){n=this._dataItem(e);return e.attr(r)==="true"||n&&n.expanded}n=this.dataItem(e);if(W(e).data("animating"))return;if(i||!this._trigger(s,e)){if(a){e.attr(r,"true");e.attr(M,"true")}else{e.removeAttr(r);e.attr(M,"false")}if(n){n.set("expanded",a);a=n.expanded}}},_progress:function(e,t){var i=this.element;var r=this.templates.loading({messages:this.options.messages});if(arguments.length==1){t=e;if(t)i.html(r);else i.empty();i.attr("aria-busy",t)}else{J(e).toggleClass("k-i-loading",t).removeClass("k-i-reload");e.attr("aria-busy",t)}},text:function(e,t){var i=this.dataItem(e),r=this.options[X.text],n=i.level(),a=r.length,s=r[Math.min(n,a-1)];if(t)i.set(s,t);else return i[s]},_objectOrSelf:function(e){return m(e).closest("[data-role=treeview]").data("kendoTreeView")||this},_dataSourceMove:function(e,t,i,r){var n,a=this._objectOrSelf(i||t),s=a.dataSource;var o=m.Deferred().resolve().promise();if(i&&i[0]!=a.element[0]){n=a.dataItem(i);if(!n.loaded()){a._progress(i,true);o=n.load()}if(i!=this.root){s=n.children;if(!s||!(s instanceof v)){n._initChildren();n.loaded(true);s=n.children}}}e=this._toObservableData(e);return r.call(a,s,e,o)},_toObservableData:function(e){var t=e,i,r;if(Y(e)||z(e)){i=this._objectOrSelf(e).dataSource;r=m(e).attr(k.attr("uid"));t=i.getByUid(r);if(t)t=i.remove(t)}return t},_insert:function(e,t,i){if(!(t instanceof k.data.ObservableArray)){if(!u(t))t=[t]}else t=t.toJSON();var r=e.parent();if(r&&r._initChildren){r.hasChildren=true;r._initChildren()}e.splice.apply(e,[i,0].concat(t));return this.findByUid(e[i].uid)},insertAfter:ee(1),insertBefore:ee(0),append:function(e,s,o){var t=this.root;if(s&&e instanceof re&&s[0]===e[0])return;s=s&&s.length?s:null;if(s)t=_(s);return this._dataSourceMove(e,t,s,function(i,r,e){var t;var n=this;function a(){if(s)n._expanded(s,true,true);var e=i.data(),t=Math.max(e.length,0);return n._insert(e,r,t)}e.done(function(){t=a();o=o||m.noop;o(t)});return t||null})},_remove:function(e,t){var i=this,r,n,a;e=m(e,i.element);if(e.attr("id")===i.element.attr("aria-activedescendant"))i.element.removeAttr("aria-activedescendant");this.angular("cleanup",function(){return{elements:e.get()}});r=e.parent().parent();n=e.prev();a=e.next();e[t?"detach":"remove"]();if(r.hasClass("k-item")){ie(r);i._updateNodeClasses(r)}i._updateNodeClasses(n);i._updateNodeClasses(a);return e},remove:function(e){var t=this.dataItem(e);if(t)this.dataSource.remove(t)},detach:function(e){return this._remove(e,true)},findByText:function(i){return m(this.element).find(".k-in").filter(function(e,t){return m(t).text()==i}).closest(s)},findByUid:function(e){var t=this.element.find(".k-item");var i=k.attr("uid");var r;for(var n=0;n<t.length;n++)if(t[n].getAttribute(i)==e){r=t[n];break}return m(r)},expandPath:function(e,t){var a=this;var i=e.slice(0);var r=t||m.noop;function n(){i.shift();if(i.length)s(i[0]).then(n);else r.call(a)}function s(e){var t=m.Deferred();var i=a.dataSource.get(e);var r=k.attr("expanded");var n;if(i){n=a.findByUid(i.uid);if(i.loaded()){i.set("expanded",true);n.attr(r,true);n.attr(M,true);t.resolve()}else{a._progress(n,true);i.load().then(function(){i.set("expanded",true);n.attr(r,true);n.attr(M,true);t.resolve()})}}else t.resolve();return t.promise()}s(i[0]).then(n)},_parentIds:function(e){var t=e&&e.parentNode();var i=[];while(t&&t.parentNode){i.unshift(t.id);t=t.parentNode()}return i},expandTo:function(e){if(!(e instanceof k.data.Node))e=this.dataSource.get(e);var t=this._parentIds(e);this.expandPath(t)},_renderItem:function(e){if(!e.group)e.group={};e.treeview=this.options;e.r=this.templates;return this.templates.item(e)},_renderGroup:function(e){var s=this;e.renderItems=function(e){var t="",i=0,r=e.items,n=r?r.length:0,a=e.group;a.length=n;for(;i<n;i++){e.group=a;e.item=r[i];e.item.index=i;t+=s._renderItem(e)}return t};e.r=s.templates;return s.templates.group(e)}}),k.cssProperties.registerPrefix("TreeView","k-treeview-"),g.plugin(Q),window.kendo})?r.apply(t,i):r)||(e.exports=t)}});