UNPKG

@progress/kendo-ui

Version:

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

3 lines (2 loc) 33.2 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("kendo.data.js"),require("kendo.treeview.draganddrop.js"),require("kendo.html.input.js"),require("kendo.icons.js")):"function"==typeof define&&define.amd?define(["exports","kendo.data.min","kendo.treeview.draganddrop.min","kendo.html.input.min","kendo.icons.min"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Treeview={}))}(this,(function(e){!function(e,t){var n,r,i,a,s,o=window.kendo,d=o.ui,l=o.data,c=o.htmlEncode,h=o.sanitizeLink,u=e.extend,p=o.template,f=Array.isArray,g=d.Widget,m=l.HierarchicalDataSource,v=o.keys,k=".kendoTreeView",_=".kendoTreeViewTemp",b="select",x="check",C="navigate",w="change",y="error",S="checked",T="indeterminate",N="dragstart",A="progress",I="drag",D="drop",O="dragend",B="dataBound",H="itemsLoaded",q="loadCompleted",$="requestEnd",E="click",L="undefined",V="k-hover",F="k-treeview",U=".k-treeview-item",j="k-icon",R="<span></span>",P="string",M="aria-checked",G="aria-selected",J="aria-disabled",Q="aria-expanded",W="aria-activedescendant",z="aria-busy",K="k-disabled",X={text:"dataTextField",url:"dataUrlField",spriteCssClass:"dataSpriteCssClassField",imageUrl:"dataImageUrlField",attr:"dataAttrField",imageAttr:"dataImageAttrField",contentAttr:"dataContentAttrField",linkAttr:"dataLinkAttrField"},Y=function(e){return"object"==typeof HTMLElement?e instanceof HTMLElement:e&&"object"==typeof e&&1===e.nodeType&&typeof e.nodeName===P};const Z="k-treeview-item",ee="k-image",te="k-treeview-leaf-text";function ne(e){return function(t){var n=t.children(".k-animation-container");return n.length||(n=t),n.children(e)}}function re(e){return e.find(".k-checkbox-wrap:first input[type=checkbox]")}function ie(e){return function(t,n){var r,i=(n=n.closest(U)).parent();return i.parent().is("li")&&(r=i.parent()),this._dataSourceMove(t,i,r,(function(t,r){var i=this.dataItem(n),a=i&&n.parent().children().length!==i.parent().length?i.parent().indexOf(i):n.index();return this._insert(t.data(),r,a+e)}))}}function ae(t){var n=t.children("div"),r=t.children("ul"),i=n.find(".k-treeview-toggle > span"),a=t.children("input[type=checkbox]"),d=n.children(".k-treeview-leaf");t.hasClass("k-treeview")||(n.length||(n=e("<div />").prependTo(t)),!i.length&&r.length?i=e(`<span class='k-treeview-toggle'>${R}</span>`).prependTo(n):r.length&&r.children().length||(i.parent().remove(),r.remove(),t.removeAttr(Q)),a.length&&e("<span class='k-checkbox-wrap' />").appendTo(n).append(a),d.length||((d=t.children("a").eq(0).addClass("k-treeview-leaf k-link")).length||(d=e("<span class='k-treeview-leaf' />")),d.appendTo(n),n.length&&function(e,t){for(var n;e&&"ul"!=e.nodeName.toLowerCase();)n=e,e=e.nextSibling,3==n.nodeType&&(n.nodeValue=o.trim(n.nodeValue)),s.test(n.className)?t.insertBefore(n,t.firstChild):t.appendChild(n)}(n[0].nextSibling,d[0])))}r=ne(".k-treeview-group"),i=ne(".k-treeview-group,.k-content"),a=function(e){return e.children("div").find(".k-treeview-toggle > span:first")},s=/k-sprite/,n=o.ui.DataBoundWidget.extend({init:function(e,t){var n,r,i=this,a=t&&!!t.dataSource;f(t)&&(t={dataSource:t}),t&&typeof t.loadOnDemand==L&&f(t.dataSource)&&(t.loadOnDemand=!1),g.prototype.init.call(i,e,t),e=i.element,t=i.options,i._dataSourceUids={},r=e.is("ul")&&e||e.hasClass(F)&&e.children("ul"),(n=!a&&r.length)&&(t.dataSource.list=r),i._animation(),i._accessors(),i._templates(),e.hasClass(F)?(i.wrapper=e,i.root=e.children("ul").eq(0)):(i._wrapper(),r&&(i.root=e,i._group(i.wrapper))),i._applyCssClasses(),i._tabindex(),i.wrapper.find(">ul").attr("role","tree"),i._dataSource(n),i._attachEvents(),i._dragging(),n?i._syncHtmlAndDataSource():t.autoBind?(i._progress(!0),i.dataSource.fetch(this._attemptLoadCompleted.bind(this))):(i._progressHandler=i._requestStart.bind(i),i.dataSource.bind(A,i._progressHandler)),t.checkboxes&&t.checkboxes.checkChildren&&i.updateIndeterminate(),i.element[0].id?i._ariaId=o.format("{0}_tv_active",i.element[0].id):i._ariaId=o.guid()+"_tv_active",o.notify(i)},_attachEvents:function(){var t=this,n=".k-treeview-leaf:not(.k-selected,.k-disabled)",r="mouseenter";t._clickHandler=t._click.bind(t),t.wrapper.on(r+k,".k-treeview-leaf.k-selected",(function(e){e.preventDefault()})).on(r+k,n,(function(){e(this).addClass(V)})).on("mouseleave"+k,n,(function(){e(this).removeClass(V)})).on(E+k,n,t._clickHandler).on("dblclick"+k,".k-treeview-leaf:not(.k-disabled)",t._toggleButtonClick.bind(t)).on(E+k,`.k-treeview-toggle .${j}`,t._toggleButtonClick.bind(t)).on("keydown"+k,t,t._keydown.bind(t)).on("keypress"+k,t._keypress.bind(t)).on("focus"+k,t._focus.bind(t)).on("blur"+k,t._blur.bind(t)).on("mousedown"+k,`.k-treeview-leaf,.k-checkbox-wrap :checkbox,.k-treeview-toggle .${j}`,t._mousedown.bind(t)).on("change"+k,".k-checkbox-wrap :checkbox",t._checkboxChange.bind(t)).on("click"+k,".k-request-retry",t._retryRequest.bind(t)).on("click"+k,".k-link.k-disabled",(function(e){e.preventDefault()})).on("click"+k,(function(n){var r=e(n.target);r.is(":kendoFocusable")||r.find("input,select,textarea,button,object").is(":kendoFocusable")||t.focus()}))},_requestStart:function(){this._progress(!0)},_syncHtmlAndDataSource:function(e,t){e=e||this.root;var n,r,i,a,s,d=(t=t||this.dataSource).view(),l=o.attr("uid"),c=o.attr("expanded"),h=this.options.checkboxes,u=e.children("li");for(n=0;n<u.length;n++)a=(i=d[n]).uid,(r=u.eq(n)).attr("role","treeitem").attr(l,a).attr(G,r.hasClass("k-selected")),i.expanded="true"===r.attr(c),i.hasChildren&&r.attr(Q,i.expanded),h&&(s=re(r),i.checked=s.prop(S),s.attr("id","_"+a),s.next(".k-checkbox-label").attr("for","_"+a),r.attr(M,r.checked)),this._syncHtmlAndDataSource(r.children("ul"),i.children)},_animation:function(){var e=this.options,t=e.animation,n=t.collapse&&"effects"in t.collapse,r=u({},t.expand,t.collapse);n||(r=u(r,{reverse:!0})),!1===t&&(t={expand:{effects:{}},collapse:{hide:!0,effects:{}}}),t.collapse=u(r,{hide:!0}),e.animation=t},_dragging:function(){var t=this.options.dragAndDrop,n=this.dragging;if(t&&!n){var r=this;this.dragging=new d.HierarchicalDragAndDrop(this.element,{reorderable:!0,autoScroll:this.options.autoScroll,filter:"div:not(.k-disabled) .k-treeview-leaf",allowedContainers:".k-treeview",itemSelector:".k-treeview .k-treeview-item",hintText:this._hintText.bind(this),clickMoveClick:!0===this.options.dragAndDrop.clickMoveClick,contains:function(t,n){return e.contains(t,n)},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-treeview-leaf"),first:t.hasClass("k-treeview-top"),last:t.hasClass("k-treeview-bot")}},dropPositionFrom:function(e){return e.prevAll(".k-treeview-leaf").length>0?"after":"before"},dragstart:function(e){return r.wrapper.attr(o.attr("scrollable"),!1),r.trigger(N,{sourceNode:e[0]})},drag:function(e){r.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 n=e(t.dropTarget).closest("a");return n&&n.attr("href")&&r._tempPreventNavigation(n),r.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(e){var t=e.source,n=e.destination,i=e.position;function a(t){r.options.checkboxes&&r.options.checkboxes.checkChildren&&r.updateIndeterminate(),r.current(t),r.element.focus(),r.trigger(O,{originalEvent:e.originalEvent,sourceNode:t&&t[0],destinationNode:n[0],dropPosition:i})}r.wrapper.removeAttr(o.attr("scrollable")),"over"==i?r.append(t,n,a):("before"==i?t=r.insertBefore(t,n):"after"==i&&(t=r.insertAfter(t,n)),a(t))}})}else!t&&n&&(n.destroy(),this.dragging=null)},_tempPreventNavigation:function(e){e.on(E+k+_,(function(t){t.preventDefault(),e.off(E+k+_)}))},_hintText:function(e){return this.templates.dragClue({item:this.dataItem(e),treeview:this.options})},_templates:function(){let t=this,n=t.options,r=t._fieldAccessor.bind(t);n.template&&typeof n.template==P?n.template=p(n.template):n.template||(n.template=({item:e})=>{let n=r("text")(e),i=r("contentAttr")(e);return void 0!==e.encoded&&!1===e.encoded?`<span ${t.templates.contentCssAttributes(i)}>${n}</span>`:`<span ${t.templates.contentCssAttributes(i)}>${c(n)}</span>`}),t._checkboxes(),t.templates={setAttributes:function(e){return t.templates.setDefaultClasses(Z,e.attr)},cssClass:function(e,t){var n="",r=t.index,i=e.length-1;return e.firstLevel&&0===r&&(n+="k-treeview-top "),n+=0===r&&r!=i?-1!=n.indexOf("k-treeview-top")?"":"k-treeview-top":r==i?"k-treeview-bot":"k-treeview-mid"},textClass:function(e,t){var n="k-treeview-leaf";return t&&(n+=" k-link"),!1===e.enabled&&(n+=" k-disabled"),!0===e.selected&&(n+=" k-selected"),n},checkboxClass:function(e){var t="k-checkbox";return!1===e.enabled&&(t+=" k-disabled"),t},toggleButtonClass:function(e){var t="k-treeview-toggle";return!1===e.enabled&&(t+=" k-disabled"),t},toggleIcon:function(e,n){return!0!==n.expanded?d.icon(e,{icon:"caret-alt-"+(o.support.isRtl(t.element)?"left":"right")}):d.icon(e,{icon:"caret-alt-down"})},groupAttributes:function(e){var t="";return e.firstLevel||(t="role='group'"),t+(!0!==e.expanded?` ${o.attr("style-display")}="none"`:"")},groupCssClass:function(e){var t="k-treeview-group";return e.firstLevel&&(t+=" k-treeview-lines"),t},dragClue:e=>e.treeview.template(e),group:e=>`<ul class='${e.r.groupCssClass(e.group)}'${e.r.groupAttributes(e.group)}>`+e.renderItems(e)+"</ul>",itemContent:e=>{let n=r("imageUrl")(e.item),i=r("imageAttr")(e.item),a=r("spriteCssClass")(e.item),s="";return n&&(s+=`<img ${t.templates.imageCssAttributes(i)} alt='' src='${n}'>`),a&&(s+=`<span class='k-sprite ${a}'></span>`),s+=e.treeview.template(e),s},itemElement:t=>{let n=t.item,i=t.r,a=r("url")(n),s=a?"a":"span",o=a?' href="'+h(a)+'"':"",d=`<div class="${i.cssClass(t.group,n)}">`;return n.hasChildren&&(d+=`<span class='${i.toggleButtonClass(n)}'>`+i.toggleIcon(e(R),n)+"</span>"),t.treeview.checkboxes&&(d+="<span class='k-checkbox-wrap' role='presentation'>"+t.treeview.checkboxes.template(t)+"</span>"),d+=`<${s} ${i.linkCssAttributes(n,!!a)} ${o}>`+i.itemContent(t)+`</${s}>`,d+="</div>",d},item:e=>{var t=e.item,n=e.r,r=`<li role='treeitem'${o.attr("uid")}="${t.uid}"${n.setAttributes(t.toJSON?t.toJSON():t)} `;return e.treeview.checkboxes&&(r+=`aria-checked="${t.checked?"true":"false"}" `),r+=`aria-selected="${t.selected?"true":"false"}" `+(!1===t.enabled?'aria-disabled="true"':""),t.hasChildren&&(r+=`aria-expanded="${t.expanded?"true":"false"}" `),r+=`data-expanded="${t.expanded?"true":"false"}" >`+n.itemElement(e)+"</li>"},loading:({messages:e})=>`<div class='k-icon k-i-loading'></div> ${c(e.loading)}`,retry:({messages:e})=>`${c(e.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'>${c(e.retry)}</span></button>`,imageCssAttributes:function(e){return t.templates.setDefaultClasses(ee,e)},contentCssAttributes:function(e){return t.templates.setDefaultClasses(te,e)},linkCssAttributes:function(e,n){return t.templates.setDefaultClasses(this.textClass(e,n),r("linkAttr")(e))},setDefaultClasses:function(e,n){return(n=n&&n.toJSON?n.toJSON():n||{}).class?n.class+=" "+e:n.class=e,t.templates.stringifyAttributes(n)},stringifyAttributes:function(e){let t="";for(let n in e)e.hasOwnProperty(n)&&(t+=n+'="'+e[n]+'" ');return t}}},items:function(){return this.element.find(".k-treeview-item > div:first-child")},setDataSource:function(e){var t=this.options;t.dataSource=e,this._dataSourceUids={},this._dataSource(),t.checkboxes&&t.checkboxes.checkChildren&&this.dataSource.one("change",this.updateIndeterminate.bind(this,null)),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._requestEndHandler=e._dsRequestEnd.bind(e),e._loadedNodes=[],e.dataSource.bind(w,e._refreshHandler),e.dataSource.bind(y,e._errorHandler),e.dataSource.bind(H,e._loadCompletedHandler),e.dataSource.bind($,e._requestEndHandler)},_dsRequestEnd:function(e){var t=this;setTimeout((function(){"read"!==e.type||t._loadCompletedFired||t._attemptLoadCompleted()}))},_loadCompleted:function(e){var t=this;t._loadedNodes=t._loadedNodes.concat(e.nodes),t.dataSource.loading()||!1!==t.options.loadOnDemand||(t.trigger(q,{nodes:t._loadedNodes}),t._loadedNodes=[])},_attemptLoadCompleted:function(){var e,t,n=this,r=n.dataSource.view();if(!1===n.options.loadOnDemand){for(t=0;t<r.length;t++)if((e=r[t]).hasChildren&&(!e.children||!e.children.data()||0===e.children.data().length))return;n._loadCompletedFired=!0,n.trigger(q,{nodes:[]})}},_unbindDataSource:function(){var e=this.dataSource;e&&(e.unbind(w,this._refreshHandler),e.unbind(A,this._progressHandler),e.unbind(y,this._errorHandler),e.unbind(H,this._loadCompletedHandler),e.unbind($,this._requestEndHandler))},_dataSource:function(e){var t=this,n=t.options.dataSource;n=f(n)?{data:n}:n,t._unbindDataSource(),n.fields||(n.fields=[{field:"text"},{field:"url"},{field:"spriteCssClass"},{field:"imageUrl"}]),t.dataSource=n=m.create(n),e&&(n.fetch(),function e(t){for(var n=0;n<t.length;n++)t[n]._initChildren(),t[n].children.fetch(),e(t[n].children.view())}(n.view())),t._bindDataSource()},events:[N,I,D,O,B,q,"expand","collapse",b,w,C,x,"kendoKeydown"],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,size:"medium"},_accessors:function(){var e,t,n,r=this.options,i=this.element;for(e in X)t=r[X[e]],n=i.attr(o.attr(e+"-field")),!t&&n&&(t=n),t||(t=e),f(t)||(t=[t]),r[X[e]]=t},_fieldAccessor:function(t){var n=this.options[X[t]],r=n.length;return function(i){return 0===r?o.getter(t)(i):e.map(n,(function(e){return function(t){return o.getter(e)(t)}}))[Math.min(i.level(),r-1)](i)}},setOptions:function(e){g.fn.setOptions.call(this,e),this._animation(),this._dragging(),this._accessors(),this._templates()},_trigger:function(e,t){return this.trigger(e,{node:t.closest(U)[0]})},_setChecked:function(e,t){if(e&&o.isFunction(e.view))for(var n=0,r=e.view();n<r.length;n++)!1!==r[n].enabled&&this._setCheckedValue(r[n],t),r[n].children&&this._setChecked(r[n].children,t)},_setCheckedValue:function(e,t){e[S]=t},_setIndeterminate:function(e){var t,n,i,a=r(e),s=!0;if(a.length&&(n=(t=re(a.children())).length)){if(n>1){for(i=1;i<n;i++)if(t[i].checked!=t[i-1].checked||t[i].indeterminate||t[i-1].indeterminate){s=!1;break}}else s=!t[0].indeterminate;return e.attr(M,s?t[0].checked:"mixed"),re(e).data(T,!s).prop(T,!s).prop(S,s&&t[0].checked)}},updateIndeterminate:function(e){e=e||this.wrapper;var t,n,i,a=r(e).children();if(a.length){for(t=0;t<a.length;t++)this.updateIndeterminate(a.eq(t));if(e.is(".k-treeview"))return;n=this._setIndeterminate(e),i=this.dataItem(e),n&&n.prop(S)?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-wrap input[type=checkbox]"),this._skip=!0,!1===n.prop(T)?this.dataItem(r).set(S,n.prop(S)):this.dataItem(r).set(S,!1),this._skip=!1,this._bubbleIndeterminate(r,!0))}},_checkboxChange:function(t){var n=e(t.target),r=n.prop(S),i=n.closest(U),a=this.dataItem(i);this._preventChange||(a.checked!=r&&(a.set(S,r),i.attr(M,r),this._trigger(x,i)),n.is(":focus")&&(this._trigger(C,i),this.focus()))},_toggleButtonClick:function(t){var n=e(t.currentTarget).closest(U);n.is("[aria-disabled='true']")||this.toggle(n)},_mousedown:function(t){var n=this,r=e(t.currentTarget),i=e(t.currentTarget).closest(U),a=o.support.browser;i.is("[aria-disabled='true']")||((a.msie||a.edge)&&r.is(":checkbox")&&(r.prop(T)?(n._preventChange=!1,r.prop(S,!r.prop(S)),r.trigger(w),r.on(E+k,(function(e){e.preventDefault()})),n._preventChange=!0):(r.off(E+k),n._preventChange=!1)),n._clickTarget=i,n.current(i))},_focusable:function(e){return e&&e.length&&e.is(":visible")&&!e.find(".k-treeview-leaf").first().hasClass(K)},_focus:function(){var t=this.select(),n=this._clickTarget;o.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).scrollHeight>n.clientHeight&&(r.push(n),i.push(n.scrollTop))}while(n!=a);for(o.focusElement(t),e=0;e<r.length;e++)r[e].scrollTop=i[e]},_blur:function(){this.current().find(".k-treeview-leaf").first().removeClass("k-focus")},_enabled:function(e){return!e.children("div").children(".k-treeview-leaf").hasClass(K)},parent:function(t){var n,r,i=/\bk-treeview\b(?!-)/,a=/\bk-treeview-item\b/;typeof t==P&&(t=this.element.find(t)),Y(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){var t,n=this,i=n._expanded(e);function a(e){for(;e.length&&!e.next().length;)e=n.parent(e);return e.next().length?e.next():e}return e.length&&e.is(":visible")?i&&(t=r(e).children().first()).length||(t=a(e)):t=n.root.children().eq(0),t},_previousVisible:function(e){var t,n,i=this;if(!e.length||e.prev().length)for(n=e.length?e.prev():i.root.children().last();i._expanded(n)&&(t=r(n).children().last()).length;)n=t;else n=i.parent(e)||e;return n},scrollTo:function(e){e&&e.length>0&&e[0].scrollIntoView({block:"nearest"})},_keydown:function(n){var r,i=this,a=n.keyCode,s=i.current(),d=i._expanded(s),l=s.find(".k-checkbox-wrap").first().find(":checkbox"),c=o.support.isRtl(i.element);n.target==n.currentTarget&&(!c&&a==v.RIGHT||c&&a==v.LEFT?d?r=i._nextVisible(s):s.find(".k-treeview-leaf").first().hasClass(K)||i.expand(s):!c&&a==v.LEFT||c&&a==v.RIGHT?d&&!s.find(".k-treeview-leaf").first().hasClass(K)?i.collapse(s):(r=i.parent(s),i._enabled(r)||(r=t)):a==v.DOWN?r=i._nextVisible(s):a==v.UP?r=i._previousVisible(s):a==v.HOME?r=i._nextVisible(e()):a==v.END?r=i._previousVisible(e()):a!=v.ENTER||s.find(".k-treeview-leaf").first().hasClass(K)?a==v.SPACEBAR&&l.length&&(s.find(".k-treeview-leaf").first().hasClass(K)||(l.prop(S,!l.prop(S)).data(T,!1).prop(T,!1),i._checkboxChange({target:l})),r=s):s.find(".k-treeview-leaf").first().hasClass("k-selected")||i._trigger(b,s)||i.select(s),r&&(n.preventDefault(),s[0]!=r[0]&&(i._trigger(C,r),i.current(r),i.scrollTo(r))))},_keypress:function(e){var t,n=this,r=n.current().get(0),i=e.key;1===i.length&&(n._match||(n._match=""),n._match+=i,clearTimeout(n._matchTimer),n._matchTimer=setTimeout((function(){n._match=""}),300),(t=r&&n._matchNextByText(Array.prototype.indexOf.call(n.element.find(".k-treeview-item"),r),n._match)).length||(t=n._matchNextByText(-1,n._match)),t.get(0)&&t.get(0)!==r&&(n._trigger(C,t),n.current(t)))},_matchNextByText:function(t,n){return this.element.find(".k-treeview-leaf").filter((function(r,i){return r>t&&e(i).is(":visible")&&0===e(i).text().toLowerCase().indexOf(n)})).eq(0).closest(U)},_click:function(t){var n=e(t.currentTarget),r=i(n.closest(U)),a=n.attr("href");(a?"#"==a||a.indexOf("#"+this.element.id+"-")>=0:r.length&&!r.children().length)&&t.preventDefault(),n.hasClass(".k-selected")||this._trigger(b,n)||this.select(n)},_wrapper:function(){var e,t,n=this,r=n.element;r.is("ul")?(e=r.wrap("<div />").parent(),t=r):t=(e=r).children("ul").eq(0),n.wrapper=e.addClass("k-treeview"),n.root=t},_getSelectedNode:function(){return this.element.find(".k-selected").closest(U)},_group:function(e){var t=this,n=e.hasClass(F),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=u({length:a.length},n),a.each((function(t,a){a=e(a),r={index:t,expanded:i._expanded(a)},ae(a),i._updateNodeClasses(a,n,r),i._group(a)}))},_checkboxes:function(){var t,n=this.options,r=n.checkboxes;r&&(t=(t=o.html.renderCheckBox(e("<input/>"),e.extend({},n,{rounded:"medium"}))).replace(">",""),typeof(r=u({template:({item:e})=>t+` id="_${e.uid}" aria-hidden="true" type="checkbox" tabindex="-1"`+(r.name?'name="'+r.name+'"':"")+" "+(!1===e.enabled?"disabled":"")+" "+(e.checked?"checked":"")+"/>"},n.checkboxes)).template==P&&(r.template=p(r.template)),n.checkboxes=r)},_updateNodeClasses:function(e,t,n){var r=e.children("div"),i=e.children("ul"),a=this.templates;if(!e.hasClass("k-treeview")){(n=n||{}).expanded=typeof n.expanded!=L?n.expanded:this._expanded(e),n.index=typeof n.index!=L?n.index:e.index(),n.enabled=typeof n.enabled!=L?n.enabled:!r.children(".k-treeview-leaf").hasClass("k-disabled"),(t=t||{}).firstLevel=typeof t.firstLevel!=L?t.firstLevel:e.parent().parent().hasClass(F),t.length=typeof t.length!=L?t.length:e.parent().children().length,e.addClass("k-treeview-item"),r.removeClass("k-treeview-top k-treeview-mid k-treeview-bot").addClass(a.cssClass(t,n)),r.find(".k-checkbox").removeClass("k-checkbox k-disabled").addClass(a.checkboxClass(n));var s=r.children(".k-treeview-leaf"),o=s[0]&&"a"==s[0].nodeName.toLowerCase();if(s.removeClass("k-treeview-leaf k-link k-disabled").addClass(a.textClass(n,o)),i.length||"true"==e.attr("data-hasChildren")){var d=r.find(".k-treeview-toggle"),l=d.children("span");d.removeClass("k-treeview-toggle k-disabled").addClass(a.toggleButtonClass(n)),a.toggleIcon(l,n),i.addClass("k-treeview-group")}}},_processNodes:function(t,n){for(var r=this.element.find(t),i=0;i<r.length;i++)n.call(this,i,e(r[i]).closest(U))},dataItem:function(t){var n=e(t).closest(U).attr(o.attr("uid")),r=this.dataSource;return r&&r.getByUid(n)},_dataItem:function(t){var n=e(t).closest(U).attr(o.attr("uid"));return this.dataSource&&this._dataSourceUids[n]},_insertNode:function(t,n,i,a,s){var d,l,c,h,u,p,f=this,g=r(i),m=g.children().length+1,v={firstLevel:i.hasClass(F),expanded:!s,length:m},k="",_=function(e,t){e.appendTo(t)};for(c=0;c<t.length;c++)(h=t[c]).index=n+c,k+=f._renderItem({group:v,item:h});if((l=e(k)).length){for(g.length||(g=e(f._renderGroup({group:v})),o.applyStylesFromKendoAttributes(g,["display"]),g.appendTo(i),i.attr(Q,!0)),a(l,g),i.hasClass("k-treeview-item")&&(ae(i),f._updateNodeClasses(i,v,{expanded:!s})),u=l.prev().first(),p=l.next().last(),f._updateNodeClasses(u,{},{expanded:"true"==u.attr(o.attr("expanded"))}),f._updateNodeClasses(p,{},{expanded:"true"==p.attr(o.attr("expanded"))}),c=0;c<t.length;c++)(h=t[c]).hasChildren&&(d=h.children.data()).length&&f._insertNode(d,h.index,l.eq(c),_,!h.expanded);return l}},_updateNodes:function(t,n){var r,a,s,l,c,h,u=this,p={treeview:u.options,item:l},f="expanded"!=n&&"checked"!=n;function g(e,t){e.is(".k-treeview-group")&&e.find(".k-treeview-item:not([aria-disabled])").attr(M,t),e.find(".k-checkbox-wrap input[type=checkbox]:not([disabled])").prop(S,t).data(T,!1).prop(T,!1)}if("selected"==n)l=t[0],(a=u.findByUid(l.uid)).find(".k-treeview-leaf").first().removeClass("k-hover").toggleClass("k-selected",l[n]).end(),l[n]&&u.current(a),a.attr(G,!!l[n]);else{var m=e.map(t,(function(e){return u.findByUid(e.uid).children("div")}));for(r=0;r<t.length;r++)p.item=l=t[r],a=(s=m[r]).parent(),f&&(o.unbind&&o.unbind(s),s.children(".k-treeview-leaf").html(u.templates.itemContent(p))),n==S?(g(s,c=l[n]),a.attr(M,c),u.options.checkboxes.checkChildren&&(g(a.children(".k-treeview-group"),c),u._setChecked(l.children,c),u._bubbleIndeterminate(a))):"expanded"==n?u._toggle(a,l,l[n]):"enabled"==n&&(a.find(".k-checkbox-wrap input[type=checkbox]").prop("disabled",!l[n]),h=!i(a).is(":visible"),a.removeAttr(J),l[n]||(l.selected&&l.set("selected",!1),l.expanded&&l.set("expanded",!1),h=!0,a.attr(G,!1).attr(J,!0)),u._updateNodeClasses(a,{},{enabled:l[n],expanded:!h})),s.length&&this.trigger("itemChange",{item:s,data:l,ns:d})}},_appendItems:function(e,t,n){var i=r(n).children(),a=!this._expanded(n);if(this.element===n){var s=this.dataSource.data(),o=this.dataSource.view(),d=o.length<s.length?o:s;e=d.indexOf(t[0])}else t.length&&(e=t[0].parent().indexOf(t[0]));typeof e==L&&(e=i.length),this._insertNode(t,e,n,(function(t,n){e>=i.length?t.appendTo(n):t.insertBefore(i.eq(e))}),a),this._updateNodeClasses(n,{},{expanded:!a}),a||r(n).css("display","block")},_refreshChildren:function(e,t,n){var i,a,s,o=this.options,l=o.loadOnDemand,c=o.checkboxes&&o.checkboxes.checkChildren;if(r(e).empty(),t.length)for(this._appendItems(n,t,e),a=r(e).children(),l&&c&&this._bubbleIndeterminate(a.last()),i=0;i<a.length;i++)s=a.eq(i),this.trigger("itemChange",{item:s.children("div"),data:t[i],ns:d});else ae(e)},_refreshRoot:function(t){var n=this._renderGroup({items:t,group:{firstLevel:!0,expanded:!0}});if(this.root.length&&this.root[0].parentElement){var r=e(n);this.root.attr("class",r.attr("class")).html(r.html())}else this.root=this.wrapper.html(n).children("ul");for(var i=this.root.children(".k-treeview-item"),a=0;a<t.length;a++)this.trigger("itemChange",{item:i.eq(a),data:t[a],ns:d})},refresh:function(e){var n,r=e.node,i=e.action,a=e.items,s=this.wrapper,o=this.options,d=o.loadOnDemand,l=o.checkboxes&&o.checkboxes.checkChildren;if(!this._skip){for(n=0;n<a.length;n++)this._dataSourceUids[a[n].uid]=a[n];if(e.field){if(!a[0]||!a[0].level)return;return this._updateNodes(a,e.field)}if(r&&(s=this.findByUid(r.uid),this._progress(s,!1)),l&&"remove"!=i){var c=!1;for(n=0;n<a.length;n++)if("checked"in a[n]){c=!0;break}if(!c&&r&&r.checked)for(n=0;n<a.length;n++)a[n].checked=!0}if("add"==i?this._appendItems(e.index,a,s):"remove"==i?this._remove(this.findByUid(a[0].uid),!1):"itemchange"==i?this._updateNodes(a):"itemloaded"==i?this._refreshChildren(s,a,e.index):(this._refreshRoot(a),this.element.attr(z,!1)),"remove"!=i)for(n=0;n<a.length;n++)(!d||a[n].expanded||a[n]._loaded)&&a[n].load();this.wrapper.find(">ul").attr("role","tree"),this.trigger(B,{node:r?s:t}),this.dataSource.filter()&&this.options.checkboxes.checkChildren&&this.updateIndeterminate(s)}},_error:function(t){var n=t.node&&this.findByUid(t.node.uid),r=this.templates.retry({messages:this.options.messages});n?(this._progress(n,!1),this._expanded(n,!1),a(n).replaceWith(d.icon(e(R),{icon:"arrow-rotate-cw"})),t.node.loaded(!1)):(this._progress(!1),this.dataSource.data([]),this.element.html(r))},_retryRequest:function(e){e.preventDefault(),this.dataSource.fetch(this._attemptLoadCompleted.bind(this))},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(t){var n=this,r=n._current,i=n.element;return arguments.length>0&&t&&t.length?(r&&r.find(".k-treeview-leaf").first().removeClass("k-focus"),(r=n._current=e(t,i).closest(U)).find(".k-treeview-leaf").first().addClass("k-focus"),void n._updateActiveDescendant()):(r||(r=n._nextVisible(e())),r)},_updateActiveDescendant:function(){var e=this._current,t=e[0].id||this._ariaId,n=this.element.find("#"+this._ariaId);n.length>0&&n.removeAttr("id"),this.root.removeAttr(W),e.attr("id",t),this.root.attr(W,t)},select:function(t){var n=this,r=n.element;if(!arguments.length)return r.find(".k-selected").closest(U);t=e(t,r).closest(U),r.find(".k-selected").each((function(){var t=n.dataItem(this);t?(t.set("selected",!1),delete t.selected):e(this).removeClass("k-selected")})),t.length&&(n.dataItem(t).set("selected",!0),n._clickTarget=t),n.trigger(w)},_toggle:function(e,t,n){var r,a=this.options,s=i(e),o=n?"expand":"collapse";s.data("animating")||(r=t&&t.loaded(),n&&!r?(a.loadOnDemand&&this._progress(e,!0),s.remove(),t.load()):(this._updateNodeClasses(e,{},{expanded:n}),n||s.css("height",s.height()).css("height"),s.kendoStop(!0,!0).kendoAnimate(u({reset:!0},a.animation[o],{complete:function(){n&&s.css("height","")}}))))},toggle:function(t,n){t=e(t),a(t)&&(1==arguments.length&&(n=!this._expanded(t)),this._expanded(t,n))},destroy:function(){var e=this;g.fn.destroy.call(e),e.wrapper.off(k),e.wrapper.find(".k-checkbox-wrap :checkbox").off(k),e._clickHandler=null,e._unbindDataSource(),e.dragging&&e.dragging.destroy(),e._dataSourceUids={},o.destroy(e.element),e.root=e.wrapper=e.element=null},_expanded:function(e,t,n){var r,a=o.attr("expanded"),s=t,d=s?"expand":"collapse";if(e.children().hasClass("k-hidden")&&e.children().removeClass("k-hidden"),1==arguments.length)return r=this._dataItem(e),"true"===e.attr(a)||r&&r.expanded;r=this.dataItem(e),i(e).data("animating")||!n&&this._trigger(d,e)||(s?(e.attr(a,"true"),e.attr(Q,"true")):(e.removeAttr(a),e.attr(Q,"false")),r&&(r.set("expanded",s),s=r.expanded))},_progress:function(t,n){var r=this.element,i=this.templates.loading({messages:this.options.messages});1==arguments.length?((n=t)?r.html(i):r.empty(),this.element.attr(z,n)):(a(t).replaceWith(e(R).toggleClass("k-i-loading",n).toggleClass("k-icon",n)),t.attr(z,n))},text:function(e,t){var n=this.dataItem(e),r=this.options[X.text],i=n.level(),a=r.length,s=r[Math.min(i,a-1)];if(!t)return n[s];n.set(s,t)},_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)).loaded()||(s._progress(r,!0),d=a.load()),r!=this.root&&((o=a.children)&&o instanceof m||(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,a=t;return((i=t)instanceof o.jQuery||window.jQuery&&i instanceof window.jQuery||Y(t))&&(n=this._objectOrSelf(t).dataSource,r=e(t).attr(o.attr("uid")),(a=n.getByUid(r))&&(a=n.remove(a))),a},_insert:function(e,t,n){t instanceof o.data.ObservableArray?t=t.toJSON():f(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:ie(1),insertBefore:ie(0),append:function(t,n,i){var a=this.root;if(!(n&&t instanceof jQuery&&n[0]===t[0]))return(n=n&&n.length?n:null)&&(a=r(n)),this._dataSourceMove(t,a,n,(function(t,r,a){var s,o=this;return a.done((function(){s=function(){n&&o._expanded(n,!0,!0);var e=t.data(),i=Math.max(e.length,0);return o._insert(e,r,i)}(),(i=i||e.noop)(s)})),s||null}))},_remove:function(t,n){var r,i,a,s=this;return(t=e(t,s.element)).attr("id")===s.root.attr(W)&&s.root.removeAttr(W),r=t.parent().parent(),i=t.prev(),a=t.next(),t[n?"detach":"remove"](),r.hasClass("k-treeview-item")&&(ae(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-treeview-leaf").filter((function(n,r){return e(r).text()==t})).closest(U)},findByUid:function(t){for(var n,r=this.element.find(".k-treeview-item"),i=o.attr("uid"),a=0;a<r.length;a++)if(r[a].getAttribute(i)==t){n=r[a];break}return e(n)},expandPath:function(t,n){var r=this,i=t.slice(0),a=n||e.noop;function s(t){var n,i=e.Deferred(),a=r.dataSource.get(t),s=o.attr("expanded");return a?(n=r.findByUid(a.uid),a.loaded()?(a.set("expanded",!0),n.attr(s,!0),n.attr(Q,!0),i.resolve()):(r._progress(n,!0),a.load().then((function(){a.set("expanded",!0),n.attr(s,!0),n.attr(Q,!0),i.resolve()})))):i.resolve(),i.promise()}s(i[0]).then((function e(){i.shift(),i.length?s(i[0]).then(e):a.call(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 o.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)}}),o.cssProperties.registerPrefix("TreeView","k-treeview-"),d.plugin(n)}(window.kendo.jQuery);var t=kendo;e.__meta__={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","icons"],features:[{id:"treeview-dragging",name:"Drag & Drop",description:"Support for drag & drop",depends:["treeview.draganddrop"]}]},e.default=t,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=kendo.treeview.min.js.map