UNPKG

@progress/kendo-ui

Version:

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

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