9 lines
4.0 KiB
JavaScript
9 lines
4.0 KiB
JavaScript
/*
|
|
* Kendo UI v2015.3.1111 (http://www.telerik.com/kendo-ui)
|
|
* Copyright 2015 Telerik AD. All rights reserved.
|
|
*
|
|
* Kendo UI commercial licenses may be obtained at
|
|
* http://www.telerik.com/purchase/license-agreement/kendo-ui-complete
|
|
* If you do not own a commercial license, this file shall be governed by the trial license terms.
|
|
*/
|
|
!function(e,define){define(["./kendo.data.min","./kendo.draganddrop.min"],e)}(function(){return function(e,t){var n=window.kendo,i=n.ui,o=e.proxy,r=e.extend,a="visibility",s="k-state-hover",l="input,a,textarea,.k-multiselect-wrap,select,button,a.k-button>.k-icon,button.k-button>.k-icon,span.k-icon.k-i-expand,span.k-icon.k-i-collapse";i.HierarchicalDragAndDrop=n.Class.extend({init:function(t,a){this.element=t,this.hovered=t,this.options=r({dragstart:e.noop,drag:e.noop,drop:e.noop,dragend:e.noop},a),this._draggable=new i.Draggable(t,{ignore:l,filter:a.filter,autoScroll:a.autoScroll,cursorOffset:{left:10,top:n.support.mobileOS?-40/n.support.zoomLevel():10},hint:o(this._hint,this),dragstart:o(this.dragstart,this),dragcancel:o(this.dragcancel,this),drag:o(this.drag,this),dragend:o(this.dragend,this),$angular:a.$angular})},_hint:function(e){return"<div class='k-header k-drag-clue'><span class='k-icon k-drag-status' />"+this.options.hintText(e)+"</div>"},_removeTouchHover:function(){n.support.touch&&this.hovered&&(this.hovered.find("."+s).removeClass(s),this.hovered=!1)},_hintStatus:function(n){var i=this._draggable.hint.find(".k-drag-status")[0];return n?(i.className="k-icon k-drag-status "+n,t):e.trim(i.className.replace(/k-(icon|drag-status)/g,""))},dragstart:function(t){this.source=t.currentTarget.closest(this.options.itemSelector),this.options.dragstart(this.source)&&t.preventDefault(),this.dropHint=this.options.reorderable?e("<div class='k-drop-hint' />").css(a,"hidden").appendTo(this.element):e()},drag:function(t){var i,o,r,l,c,u,d,h,f,p,g,m=this.options,v=this.source,_=this.dropTarget=e(n.eventTarget(t)),y=_.closest(m.allowedContainers);y.length?v[0]==_[0]||m.contains(v[0],_[0])?g="k-denied":(g="k-insert-middle",f=m.itemFromTarget(_),i=f.item,i.length?(this._removeTouchHover(),o=i.outerHeight(),l=f.content,m.reorderable?(c=o/(l.length>0?4:2),r=n.getOffset(i).top,u=r+c>t.y.location,d=t.y.location>r+o-c,h=l.length&&!u&&!d):(h=!0,u=!1,d=!1),this.hovered=h?y:!1,this.dropHint.css(a,h?"hidden":"visible"),this._lastHover&&this._lastHover[0]!=l[0]&&this._lastHover.removeClass(s),this._lastHover=l.toggleClass(s,h),h?g="k-add":(p=i.position(),p.top+=u?0:o,this.dropHint.css(p)[u?"prependTo":"appendTo"](m.dropHintContainer(i)),u&&f.first&&(g="k-insert-top"),d&&f.last&&(g="k-insert-bottom"))):_[0]!=this.dropHint[0]&&(this._lastHover&&this._lastHover.removeClass(s),g=e.contains(this.element[0],y[0])?"k-denied":"k-add")):(g="k-denied",this._removeTouchHover()),this.options.drag({originalEvent:t.originalEvent,source:v,target:_,pageY:t.y.location,pageX:t.x.location,status:g.substring(2),setStatus:function(e){g=e}}),"k-denied"==g&&this._lastHover&&this._lastHover.removeClass(s),0!==g.indexOf("k-insert")&&this.dropHint.css(a,"hidden"),this._hintStatus(g)},dragcancel:function(){this.dropHint.remove()},dragend:function(e){var n,i,o,r="over",l=this.source,c=this.dropHint,u=this.dropTarget;return"visible"==c.css(a)?(r=this.options.dropPositionFrom(c),n=c.closest(this.options.itemSelector)):u&&(n=u.closest(this.options.itemSelector),n.length||(n=u.closest(this.options.allowedContainers))),i={originalEvent:e.originalEvent,source:l[0],destination:n[0],valid:"k-denied"!=this._hintStatus(),setValid:function(e){this.valid=e},dropTarget:u[0],position:r},o=this.options.drop(i),c.remove(),this._removeTouchHover(),this._lastHover&&this._lastHover.removeClass(s),!i.valid||o?(this._draggable.dropped=i.valid,t):(this._draggable.dropped=!0,this.options.dragend({originalEvent:e.originalEvent,source:l,destination:n,position:r}),t)},destroy:function(){this._lastHover=this.hovered=null,this._draggable.destroy()}})}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t){t()}); |