@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 6.62 kB
JavaScript
module.exports=function(a){var n={};function t(e){if(n[e])return n[e].exports;var r=n[e]={exports:{},id:e,loaded:!1};return a[e].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}return t.m=a,t.c=n,t.p="",t(0)}({0:function(e,r,a){e.exports=a(1412)},3:function(e,r){e.exports=function(){throw Error("define cannot be used indirect")}},1051:function(e,r){e.exports=require("./kendo.core")},1137:function(e,r){e.exports=require("./kendo.draganddrop")},1412:function(e,r,a){var n;a(3),a=[a(1051),a(1137)],void 0===(r="function"==typeof(n=function(){var r={id:"reorderable",name:"Reorderable",category:"framework",depends:["core","draganddrop"],advanced:true},u=window.kendo.jQuery,a=void 0,n=window.kendo,_=n._outerWidth,c=n._outerHeight,f=n.getOffset,t=n.ui.Widget,d="change",o="k-reorderable",e=t.extend({init:function(e,i){var l=this,r,a=n.guid()+"-reorderable";t.fn.init.call(l,e,i);e=l.element.addClass(o);i=l.options;l.draggable=r=i.draggable||new n.ui.Draggable(e,{group:a,autoScroll:true,filter:i.filter,hint:i.hint});if(!l.options.dropFilter)l.options.dropFilter=r.options.filter;l.reorderDropCue=l.options.reorderDropCue;e.find(i.dropFilter).kendoDropTarget({group:r.options.group,dragenter:function(e){var r=l._externalDraggable(e);if(!l._draggable&&!r)return;if(r)l._handleExternalDraggable(r);var a=this.element,n;var t=l._isPartOfSortable(l._draggable)?!l._dropTargetAllowed(a)||l._isLastDraggable():false;l.toggleHintClass(e.draggable.hint,t);if(!t){n=f(a);var d={top:n.top,left:n.left};var o=i.orientation==="horizontal";if(!i.smartPosition||i.inSameContainer&&!i.inSameContainer({source:a,target:l._draggable,sourceIndex:l._index(a),targetIndex:l._index(l._draggable)}))l._dropTarget=a;else if(l._index(a)>l._index(l._draggable)&&i.smartPosition)d[o?"left":"top"]+=o?_(a):c(a);l.reorderDropCue.css({height:c(a),top:d.top,left:d.left,zIndex:19e3}).appendTo(document.body);if(i.positionDropCue)i.positionDropCue(l.reorderDropCue,a)}},dragleave:function(e){l.toggleHintClass(e.draggable.hint,true);l.reorderDropCue.remove();l._dropTarget=null},drop:function(){l._dropTarget=null;if(!l._draggable)return;var e=this.element;var r=l._draggable;var a=l._index(e);var n=l.options.orientation==="horizontal"?f(l.reorderDropCue).left>f(e).left:f(l.reorderDropCue).top>f(e).top;a=n?a+1:a;if(l._dropTargetAllowed(e)&&!l._isLastDraggable()&&l._index(r)!==a)l.trigger(d,{element:l._draggable,target:e,oldIndex:l._index(r),newIndex:l._index(e),position:n?"after":"before"});if(l.reorderDropCue)l.reorderDropCue.remove()}});r.bind(["dragcancel","dragend","dragstart","drag"],{dragcancel:l._dragcancel.bind(l),dragend:l._dragend.bind(l),dragstart:l._dragstart.bind(l),drag:l._drag.bind(l)})},options:{name:"Reorderable",filter:"*",orientation:"horizontal",deniedIcon:"k-i-cancel",allowIcon:"k-i-plus",reorderDropCue:u('<div class="k-reorder-cue"></div></div>'),smartPosition:true},events:[d],toggleHintClass:function(e,r){var a=this,n=a.options;e=u(e);if(r)e.find(".k-drag-status").removeClass(n.allowIcon).addClass(n.deniedIcon);else e.find(".k-drag-status").removeClass(n.deniedIcon).addClass(n.allowIcon)},_handleExternalDraggable:function(e){var r=this;var a=r.options.dropFilter.trimStart();if(a&&a[0]==">")a=a.substring(1);r._dragcancelHandler=r._dragcancel.bind(r);r._dragendHandler=r._dragend.bind(r);r._dragstartHandler=r._dragstart.bind(r);r._dragHandler=r._drag.bind(r);r._draggable=e.currentTarget.closest(a);r._draggableInstance=e;r._elements=r.element.find(r.options.dropFilter);e.bind(["dragcancel","dragend","dragstart","drag"],{dragcancel:r._dragcancelHandler,dragend:r._dragendHandler,dragstart:r._dragstartHandler,drag:r._dragHandler})},_dragcancel:function(){var e=this;if(e._draggableInstance&&(e._dragcancelHandler||e._dragendHandler||e._dragstartHandler||e._dragHandler))e._draggableInstance.unbind({dragcancel:e._dragcancelHandler,dragend:e._dragendHandler,dragstart:e._dragstartHandler,drag:e._dragHandler});if(e.reorderDropCue)e.reorderDropCue.remove();e._draggable=null;e._elements=null},_dragend:function(){var e=this;if(e._draggableInstance&&(e._dragcancelHandler||e._dragendHandler||e._dragstartHandler||e._dragHandler))e._draggableInstance.unbind({dragcancel:e._dragcancelHandler,dragend:e._dragendHandler,dragstart:e._dragstartHandler,drag:e._dragHandler});if(e.reorderDropCue)e.reorderDropCue.remove();e._draggable=null;e._elements=null},_dragstart:function(e){var r=this;var a=u(e.currentTarget);var n=r.options.dropFilter.trimStart();if(n&&n[0]==">")n=n.substring(1);r._draggable=a.is(n)?a:a.closest(n);r._elements=r.element.find(r.options.dropFilter)},_drag:function(e){var r=this,a,n,t,d={},o,i=r.options.dropFilter.trimStart();if(i&&i[0]==">")i=i.substring(1);o=u(e.currentTarget).closest(i);if(!r._dropTarget||r.options.smartPosition&&e.sender.hint.find(".k-drag-status").hasClass("k-i-cancel"))return;a=r._index(r._dropTarget);n=r._index(o);n=a>n?n+1:n;if(r.options.orientation==="horizontal"){var l=f(r._dropTarget).left;var s=_(r._dropTarget);if(e.pageX>l+s/2){d.left=l+s;a+=1}else d.left=l}else{var g=f(r._dropTarget).top;var p=c(r._dropTarget);if(e.pageY>g+p/2){d.top=g+p;a+=1}else d.top=g}r.reorderDropCue.css(d);if(r.options.positionDropCue)r.options.positionDropCue(r.reorderDropCue,r._dropTarget);if(r._isPartOfSortable(o)){t=n===a||r.options.dragOverContainers&&!r.options.dragOverContainers(n,a);r.toggleHintClass(e.sender.hint,t)}},_isPartOfSortable:function(e){var r=this;return r._elements.index(e)>=0},_externalDraggable:function(e){var r=this,a=r.options;if(!r._draggable&&a.externalDraggable)return a.externalDraggable(e);return null},_isLastDraggable:function(){var e=this.options.inSameContainer,r=this._draggable[0],a=this._elements.get(),n=false,t;if(!e)return false;while(!n&&a.length>0){t=a.pop();n=r!==t&&e({source:r,target:t,sourceIndex:this._index(r),targetIndex:this._index(t)})}return!n},_dropTargetAllowed:function(e){var r=this.options.inSameContainer,a=this.options.dragOverContainers,n=this._draggable;if(n[0]===e[0])return false;if(!r||!a)return true;if(r({source:n,target:e,sourceIndex:this._index(n),targetIndex:this._index(e)}))return true;return a(this._index(n),this._index(e))},_index:function(e){return this._elements.index(e)},destroy:function(){var e=this;t.fn.destroy.call(e);e.element.find(e.options.dropFilter).each(function(){var e=u(this);if(e.data("kendoDropTarget"))e.data("kendoDropTarget").destroy()});if(e.draggable){e.draggable.destroy();e.draggable.element=e.draggable=null}e.reorderDropCue.remove();e.elements=e.reorderDropCue=e._elements=e._draggable=null}});return n.ui.plugin(e),window.kendo})?n.apply(r,a):n)||(e.exports=r)}});