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