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) 4.71 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("kendo.data.js"),require("kendo.draganddrop.js")):"function"==typeof define&&define.amd?define(["exports","kendo.data","kendo.draganddrop"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).kendo=t.kendo||{},t.kendo._globals=t.kendo._globals||{},t.kendo._globals.TreeviewDraganddrop={}))}(this,(function(t){!function(t){var e=window.kendo,o=e.ui,i=t.extend,s="visibility",n="k-drag-status",r=`<span class="${n}"></span>`,a="k-hover";o.HierarchicalDragAndDrop=e.Class.extend({init:function(s,n){this.element=s,this.hovered=s,this.options=i({dragstart:t.noop,drag:t.noop,drop:t.noop,dragend:t.noop},n),this._draggable=new o.Draggable(s,{ignore:"input,a:not(.k-treeview-leaf),textarea,.k-multiselect-wrap,select,button,a.k-button>.k-icon,.k-button>.k-button-text,button.k-button>.k-icon,span.k-toggle-icon,a.k-button>.k-svg-icon,button.k-button>.k-svg-icon,.k-button>.k-svg-icon>svg,.k-button>.k-svg-icon>svg>path",filter:n.filter,autoScroll:n.autoScroll,cursorOffset:{left:10,top:e.support.mobileOS?-40/e.support.zoomLevel():10},hint:this._hint.bind(this),dragstart:this.dragstart.bind(this),dragcancel:this.dragcancel.bind(this),hintDestroyed:this.dragcancel.bind(this),drag:this.drag.bind(this),dragend:this.dragend.bind(this),holdToDrag:n.holdToDrag,clickMoveClick:n.clickMoveClick})},_hint:function(t){return"<div class='k-drag-clue'>"+r+this.options.hintText(t)+"</div>"},_removeTouchHover:function(){e.support.touch&&this.hovered&&(this.hovered.find("."+a).removeClass(a),this.hovered=!1)},_hintStatus:function(t){var e=this._draggable.hint.find(`.${n}`);t?(this.status=t,o.icon(e,{icon:t})):(this.status="",e.replaceWith(r))},dragstart:function(e){this.dropHint&&this.dropHint.remove(),this.source=e.currentTarget.closest(this.options.itemSelector),this.options.dragstart(this.source)&&e.preventDefault(),this.options.reorderable?this.dropHint=t("<div class='k-drop-hint k-drop-hint-h'><div class='k-drop-hint-start'></div><div class='k-drop-hint-line'></div></div>").css(s,"hidden").appendTo(this.element):this.dropHint=t()},drag:function(o){var i,n,r,d,l,h,c,g,p,v,u,k=this.options,f=this.source,b=this.dropTarget=t(e.eventTarget(o)),_=b.closest(k.allowedContainers);_.length?f[0]==b[0]||k.contains(f[0],b[0])||o.clickMoveClick&&o.currentTarget.hasClass("k-drag-cell")&&0===b.closest(".k-drag-cell").length||o.clickMoveClick&&o.currentTarget.hasClass("k-treeview-leaf")&&0===b.closest(".k-treeview-leaf").length?u="cancel":(u="insert-middle",(i=(p=k.itemFromTarget(b)).item).length?(this._removeTouchHover(),n=e._outerHeight(i),d=p.content,k.reorderable?(l=n/(d.length>0?4:2),r=e.getOffset(i).top,h=o.y.location<r+l,c=r+n-l<o.y.location,g=d.length&&!h&&!c):(g=!0,h=!1,c=!1),this.hovered=!!g&&_,this.dropHint.css(s,g?"hidden":"visible"),this._lastHover&&this._lastHover[0]!=d[0]&&this._lastHover.removeClass(a),this._lastHover=d.toggleClass(a,g),g?u="plus":((v=i.position()).top+=h?0:n,this.dropHint.css(v)[h?"prependTo":"appendTo"](k.dropHintContainer(i)),h&&p.first&&(u="insert-top"),c&&p.last&&(u="insert-bottom"))):b[0]!=this.dropHint[0]&&(this._lastHover&&this._lastHover.removeClass(a),u=t.contains(this.element[0],_[0])?"cancel":"plus")):(u="cancel",this._removeTouchHover()),this.options.drag({originalEvent:o.originalEvent,source:f,target:b,pageY:o.y.location,pageX:o.x.location,status:u,setStatus:function(t){u=t}}),0!==u.indexOf("insert")&&this.dropHint.css(s,"hidden"),this._hintStatus(u)},dragcancel:function(){this.dropHint&&this.dropHint.remove()},dragend:function(o){var i,n,r,d,l="over",h=this.source,c=this.dropHint,g=this.dropTarget||t(e.eventTarget(o));c&&"visible"==c.css(s)?(l=this.options.dropPositionFrom(c),i=c.closest(this.options.itemSelector),d=!0):g&&((i=g.closest(this.options.itemSelector)).length||(i=g.closest(this.options.allowedContainers))),!d||i.length?(n={originalEvent:o.originalEvent,source:h[0],destination:i[0],valid:"cancel"!=this.status,setValid:function(t){this.valid=t},dropTarget:g[0],position:l},r=this.options.drop(n),c.remove(),this._removeTouchHover(),this._lastHover&&this._lastHover.removeClass(a),n.valid&&!r?(this._draggable.dropped=!0,this.options.dragend({originalEvent:o.originalEvent,source:h,destination:i,position:l})):this._draggable.dropped=n.valid):this.dragcancel()},destroy:function(){this._lastHover=this.hovered=null,this._draggable.destroy()}})}(window.kendo.jQuery);var e=kendo;t.__meta__={id:"treeview.draganddrop",name:"Hierarchical Drag & Drop",category:"framework",depends:["core","draganddrop"],advanced:!0},t.default=e,Object.defineProperty(t,"__esModule",{value:!0})})); //# sourceMappingURL=kendo.treeview.draganddrop.min.js.map