UNPKG

@progress/kendo-ui

Version:

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

1 lines 7.58 kB
module.exports=function(n){var r={};function i(e){if(r[e])return r[e].exports;var t=r[e]={exports:{},id:e,loaded:!1};return n[e].call(t.exports,t,t.exports,i),t.loaded=!0,t.exports}return i.m=n,i.c=r,i.p="",i(0)}({0:function(e,t,n){e.exports=n(1437)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1060:function(e,t){e.exports=require("jquery")},1137:function(e,t){e.exports=require("./kendo.draganddrop")},1437:function(e,t,n){var r,C;C=n(1060),n(3),n=[n(1137)],void 0===(t="function"==typeof(r=function(){var e={id:"sortable",name:"Sortable",category:"framework",depends:["draganddrop"]},u=window.kendo.jQuery,t=void 0,o=window.kendo,r=o.ui.Widget,l=o._outerWidth,a=o._outerHeight,d="start",i="beforeMove",s="move",h="end",f="change",n="cancel",g="sort",p="remove",m="receive",v,c=-1;function x(e,t){try{return u.contains(e,t)||e==t}catch(e){return false}}function _(e){return e.clone()}function b(e){return e.clone().removeAttr("id").css("visibility","hidden")}var y=r.extend({init:function(e,t){var n=this;r.fn.init.call(n,e,t);if(!n.options.placeholder)n.options.placeholder=b;if(!n.options.hint)n.options.hint=_;n.draggable=n._createDraggable()},events:[d,i,s,h,f,n],options:{name:"Sortable",hint:null,placeholder:null,filter:">*",holdToDrag:false,disabled:null,container:null,connectWith:null,handler:null,cursorOffset:null,axis:null,ignore:null,autoScroll:false,cursor:"auto",moveOnDragEnter:false},destroy:function(){this.draggable.destroy();r.fn.destroy.call(this)},_createDraggable:function(){var e=this,t=e.element,n=e.options;return new o.ui.Draggable(t,{filter:n.filter,hint:o.isFunction(n.hint)?n.hint:u(n.hint),holdToDrag:n.holdToDrag,container:n.container?u(n.container):null,cursorOffset:n.cursorOffset,axis:n.axis,ignore:n.ignore,autoScroll:n.autoScroll,dragstart:e._dragstart.bind(e),dragcancel:e._dragcancel.bind(e),drag:e._drag.bind(e),dragend:e._dragend.bind(e)})},_dragstart:function(e){var t=this.draggedElement=e.currentTarget,n=this.options.disabled,r=this.options.handler,i=this.options.placeholder,s=this.placeholder=o.isFunction(i)?u(i.call(this,t)):u(i);if(n&&t.is(n))e.preventDefault();else if(r&&!u(e.initialTarget).is(r))e.preventDefault();else if(this.trigger(d,{item:t,draggableEvent:e}))e.preventDefault();else{t.css("display","none");t.before(s);this._setCursor()}},_dragcancel:function(){this._cancel();this.trigger(n,{item:this.draggedElement});this._resetCursor()},_drag:function(e){var h=this.draggedElement,t=this._findTarget(e),n,f={left:e.x.location,top:e.y.location},r,i={x:e.x.delta,y:e.y.delta},s,o,c,l=this.options.axis,a=this.options.moveOnDragEnter,d={item:h,list:this,draggableEvent:e};if(l==="x"||l==="y"){this._movementByAxis(l,f,i[l],d);return}if(t){n=this._getElementCenter(t.element);r={left:Math.round(f.left-n.left),top:Math.round(f.top-n.top)};u.extend(d,{target:t.element});if(t.appendToBottom){this._movePlaceholder(t,null,d);return}if(t.appendAfterHidden)this._movePlaceholder(t,"next",d);if(this._isFloating(t.element)){if(i.x<0&&a||!a&&r.left<0)s="prev";else if(i.x>0&&a||!a&&r.left>0)s="next"}else if(i.y<0&&a||!a&&r.top<0)s="prev";else if(i.y>0&&a||!a&&r.top>0)s="next";if(s){c=s==="prev"?C.fn.prev:C.fn.next;o=c.call(t.element);while(o.length&&!o.is(":visible"))o=c.call(o);if(o[0]!=this.placeholder[0])this._movePlaceholder(t,s,d)}}},_dragend:function(e){var t=this.placeholder,n=this.draggedElement,r=this.indexOf(n),i=this.indexOf(t),s=this.options.connectWith,o,l,a,d;this._resetCursor();a={action:g,item:n,oldIndex:r,newIndex:i,draggableEvent:e};if(i>=0)l=this.trigger(h,a);else{o=t.parents(s).getKendoSortable();a.action=p;d=u.extend({},a,{action:m,oldIndex:c,newIndex:o.indexOf(t)});l=!(!this.trigger(h,a)&&!o.trigger(h,d))}if(l||i===r){this._cancel();return}t.replaceWith(n);n.show();this.draggable.dropped=true;a={action:this.indexOf(n)!=c?g:p,item:n,oldIndex:r,newIndex:this.indexOf(n),draggableEvent:e};this.trigger(f,a);if(o){d=u.extend({},a,{action:m,oldIndex:c,newIndex:o.indexOf(n)});o.trigger(f,d)}},_findTarget:function(e){var t=this._findElementUnderCursor(e),n,r=this.options.connectWith,i;if(u.contains(this.element[0],t)){n=this.items();i=n.filter(t)[0]||n.has(t)[0];return i?{element:u(i),sortable:this}:null}else if(this.element[0]==t&&this._isEmpty())return{element:this.element,sortable:this,appendToBottom:true};else if(this.element[0]==t&&this._isLastHidden()){i=this.items().eq(0);return{element:i,sortable:this,appendAfterHidden:true}}else if(r)return this._searchConnectedTargets(t,e)},_findElementUnderCursor:function(e){var t=o.elementUnderCursor(e),n=e.sender;if(x(n.hint[0],t)){n.hint.hide();t=o.elementUnderCursor(e);if(!t)t=o.elementUnderCursor(e);n.hint.show()}return t},_searchConnectedTargets:function(e,t){var n=u(this.options.connectWith),r,i,s;for(var o=0;o<n.length;o++){r=n.eq(o).getKendoSortable();if(u.contains(n[o],e)){if(r){i=r.items();s=i.filter(e)[0]||i.has(e)[0];if(s){r.placeholder=this.placeholder;return{element:u(s),sortable:r}}else return null}}else if(n[o]==e)if(r&&r._isEmpty())return{element:n.eq(o),sortable:r,appendToBottom:true};else if(this._isCursorAfterLast(r,t)){s=r.items().last();return{element:s,sortable:r}}}},_isCursorAfterLast:function(e,t){var n=e.items().last(),r={left:t.x.location,top:t.y.location},i,s;i=o.getOffset(n);i.top+=a(n);i.left+=l(n);if(this._isFloating(n))s=i.left-r.left;else s=i.top-r.top;return s<0?true:false},_movementByAxis:function(e,t,n,r){var i=e==="x"?t.left:t.top,s=n<0?this.placeholder.prev():this.placeholder.next(),o=this.items(),l;if(s.length&&!s.is(":visible"))s=n<0?s.prev():s.next();if(!o.filter(s).length)return;u.extend(r,{target:s});l=this._getElementCenter(s);if(l)l=e==="x"?l.left:l.top;if(s.length&&n<0&&i-l<0)this._movePlaceholder({element:s,sortable:this},"prev",r);else if(s.length&&n>0&&i-l>0)this._movePlaceholder({element:s,sortable:this},"next",r)},_movePlaceholder:function(e,t,n){var r=this.placeholder;if(!e.sortable.trigger(i,n)){if(!t)e.element.append(r);else if(t==="prev")e.element.before(r);else if(t==="next")e.element.after(r);e.sortable.trigger(s,n)}},_setCursor:function(){var e=this.options.cursor,t;if(e&&e!=="auto"){t=u(document.body);this._originalCursorType=t.css("cursor");t.css({cursor:e});if(!this._cursorStylesheet)this._cursorStylesheet=u("<style>* { cursor: "+e+" !important; }</style>");this._cursorStylesheet.appendTo(t)}},_resetCursor:function(){if(this._originalCursorType){u(document.body).css("cursor",this._originalCursorType);this._originalCursorType=null;this._cursorStylesheet.remove()}},_getElementCenter:function(e){var t=e.length?o.getOffset(e):null;if(t){t.top+=a(e)/2;t.left+=l(e)/2}return t},_isFloating:function(e){var t=/left|right/.test(e.css("float"));var n=/inline|table-cell/.test(e.css("display"));var r=/flex/.test(e.parent().css("display"))&&(/row|row-reverse/.test(e.parent().css("flex-direction"))||!e.parent().css("flex-direction"));return t||n||r},_cancel:function(){this.draggedElement.show();this.placeholder.remove();this.draggable.dropped=true},_items:function(){var e=this.options.filter,t;if(e)t=this.element.find(e);else t=this.element.children();return t},indexOf:function(e){var t=this._items(),n=this.placeholder,r=this.draggedElement;if(n&&e[0]==n[0])return t.not(r).index(e);else return t.not(n).index(e)},items:function(){var e=this.placeholder,t=this._items();if(e)t=t.not(e);return t},_isEmpty:function(){return!this.items().length},_isLastHidden:function(){return this.items().length===1&&this.items().is(":hidden")}});return o.ui.plugin(y),window.kendo})?r.apply(t,n):r)||(e.exports=t)}});