@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 4.21 kB
JavaScript
module.exports=function(t){function i(e){if(o[e])return o[e].exports;var s=o[e]={exports:{},id:e,loaded:!1};return t[e].call(s.exports,s,s.exports,i),s.loaded=!0,s.exports}var o={};return i.m=t,i.c=o,i.p="",i(0)}({0:function(t,i,o){t.exports=o(1360)},3:function(t,i){t.exports=function(){throw Error("define cannot be used indirect")}},1015:function(t,i){t.exports=require("./kendo.data")},1061:function(t,i){t.exports=require("./kendo.draganddrop")},1360:function(t,i,o){var e,s,n;!function(r,define){s=[o(1015),o(1061)],e=r,n="function"==typeof e?e.apply(i,s):e,!(void 0!==n&&(t.exports=n))}(function(){return function(t,i){var o=window.kendo,e=o.ui,s=t.proxy,n=t.extend,r="visibility",a="k-state-hover",d="input,a:not(.k-in),textarea,.k-multiselect-wrap,select,button,a.k-button>.k-icon,button.k-button>.k-icon,span.k-icon.k-i-arrow-60-right,span.k-icon.k-i-arrow-45-down-right";e.HierarchicalDragAndDrop=o.Class.extend({init:function(i,r){this.element=i,this.hovered=i,this.options=n({dragstart:t.noop,drag:t.noop,drop:t.noop,dragend:t.noop},r),this._draggable=new e.Draggable(i,{ignore:d,filter:r.filter,autoScroll:r.autoScroll,cursorOffset:{left:10,top:o.support.mobileOS?-40/o.support.zoomLevel():10},hint:s(this._hint,this),dragstart:s(this.dragstart,this),dragcancel:s(this.dragcancel,this),drag:s(this.drag,this),dragend:s(this.dragend,this),$angular:r.$angular})},_hint:function(t){return"<div class='k-header k-drag-clue'><span class='k-icon k-drag-status' />"+this.options.hintText(t)+"</div>"},_removeTouchHover:function(){o.support.touch&&this.hovered&&(this.hovered.find("."+a).removeClass(a),this.hovered=!1)},_hintStatus:function(o){var e=this._draggable.hint.find(".k-drag-status")[0];return o?(e.className="k-icon k-drag-status "+o,i):t.trim(e.className.replace(/(p|k)-(icon|drag-status)/g,""))},dragstart:function(i){this.source=i.currentTarget.closest(this.options.itemSelector),this.options.dragstart(this.source)&&i.preventDefault(),this.dropHint=this.options.reorderable?t("<div class='k-icon k-i-drag-and-drop' />").css(r,"hidden").appendTo(this.element):t()},drag:function(i){var e,s,n,d,l,h,c,p,u,g,v,f=this.options,k=this.source,m=this.dropTarget=t(o.eventTarget(i)),_=m.closest(f.allowedContainers);_.length?k[0]==m[0]||f.contains(k[0],m[0])?v="k-i-cancel":(v="k-i-insert-middle",u=f.itemFromTarget(m),e=u.item,e.length?(this._removeTouchHover(),s=o._outerHeight(e),d=u.content,f.reorderable?(l=s/(d.length>0?4:2),n=o.getOffset(e).top,h=i.y.location<n+l,c=n+s-l<i.y.location,p=d.length&&!h&&!c):(p=!0,h=!1,c=!1),this.hovered=!!p&&_,this.dropHint.css(r,p?"hidden":"visible"),this._lastHover&&this._lastHover[0]!=d[0]&&this._lastHover.removeClass(a),this._lastHover=d.toggleClass(a,p),p?v="k-i-plus":(g=e.position(),g.top+=h?0:s,this.dropHint.css(g)[h?"prependTo":"appendTo"](f.dropHintContainer(e)),h&&u.first&&(v="k-i-insert-up"),c&&u.last&&(v="k-i-insert-down"))):m[0]!=this.dropHint[0]&&(this._lastHover&&this._lastHover.removeClass(a),v=t.contains(this.element[0],_[0])?"k-i-cancel":"k-i-plus")):(v="k-i-cancel",this._removeTouchHover()),this.options.drag({originalEvent:i.originalEvent,source:k,target:m,pageY:i.y.location,pageX:i.x.location,status:v.substring(2),setStatus:function(t){v=t}}),0!==v.indexOf("k-i-insert")&&this.dropHint.css(r,"hidden"),this._hintStatus(v)},dragcancel:function(){this.dropHint.remove()},dragend:function(t){var o,e,s,n="over",d=this.source,l=this.dropHint,h=this.dropTarget;return"visible"==l.css(r)?(n=this.options.dropPositionFrom(l),o=l.closest(this.options.itemSelector)):h&&(o=h.closest(this.options.itemSelector),o.length||(o=h.closest(this.options.allowedContainers))),e={originalEvent:t.originalEvent,source:d[0],destination:o[0],valid:"k-i-cancel"!=this._hintStatus(),setValid:function(t){this.valid=t},dropTarget:h[0],position:n},s=this.options.drop(e),l.remove(),this._removeTouchHover(),this._lastHover&&this._lastHover.removeClass(a),!e.valid||s?(this._draggable.dropped=e.valid,i):(this._draggable.dropped=!0,this.options.dragend({originalEvent:t.originalEvent,source:d,destination:o,position:n}),i)},destroy:function(){this._lastHover=this.hovered=null,this._draggable.destroy()}})}(window.kendo.jQuery),window.kendo},o(3))}});