UNPKG

@progress/kendo-ui

Version:

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

3 lines (2 loc) 6.83 kB
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("kendo.core.js"),require("kendo.draganddrop.js"),require("kendo.icons.js")):"function"==typeof define&&define.amd?define(["exports","kendo.core.min","kendo.draganddrop","kendo.icons"],r):r(((e="undefined"!=typeof globalThis?globalThis:e||self).kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Reorderable={}))}(this,(function(e){!function(e){var r=window.kendo,a=r._outerWidth,n=r._outerHeight,t=r.getOffset,d=r.ui.Widget,o="change",i=d.extend({init:function(e,r){var i=this;d.fn.init.call(i,e,r),e=i.element,r=i.options,i._initDraggable(),i.options.dropFilter||(i.options.dropFilter=i.draggable.options.filter),i.reorderDropCue=i.options.reorderDropCue,e.find(r.dropFilter).kendoDropTarget({group:i.draggable.options.group,dragenter:function(e){var d=i._externalDraggable(e);if(i._draggable||d){d&&i._handleExternalDraggable(d);var o,l=this.element,g=!!i._isPartOfSortable(i._draggable)&&(!i._dropTargetAllowed(l)||i._isLastDraggable());if(i.toggleHintClass(e.draggable.hint,g),!g){var s={top:(o=t(l)).top,left:o.left},p="horizontal"===r.orientation;!r.smartPosition||r.inSameContainer&&!r.inSameContainer({source:l,target:i._draggable,sourceIndex:i._index(l),targetIndex:i._index(i._draggable)})?i._dropTarget=l:i._index(l)>i._index(i._draggable)&&r.smartPosition&&(s[p?"left":"top"]+=p?a(l):n(l)),i.reorderDropCue.css({height:n(l),top:s.top,left:s.left,zIndex:19e3}),r.positionDropCue&&r.positionDropCue(i.reorderDropCue,l),i.reorderDropCue.appendTo(document.body)}}},dragleave:function(e){i._dropTarget=null},drop:function(){if(i._dropTarget=null,i._draggable){var e=this.element,r=i._draggable,a=i._index(e),n="horizontal"===i.options.orientation?t(i.reorderDropCue).left>t(e).left:t(i.reorderDropCue).top>t(e).top;a=n?a+1:a,!i._dropTargetAllowed(e)||i._isLastDraggable()||i._index(r)===a&&!i.options.allowDropAfterLastItem||i.trigger(o,{element:i._draggable,target:e,oldIndex:i._index(r),newIndex:i._index(e),position:n?"after":"before"}),i.reorderDropCue&&i.reorderDropCue.remove()}}}),i.draggable.bind(["dragcancel","dragend","dragstart","drag"],{dragcancel:i._dragcancel.bind(i),dragend:i._dragend.bind(i),dragstart:i._dragstart.bind(i),drag:i._drag.bind(i)})},options:{name:"Reorderable",filter:"*",orientation:"horizontal",deniedIcon:"cancel",allowIcon:"plus",reorderDropCue:e('<div class="k-reorder-cue"></div></div>'),smartPosition:!0},events:[o],toggleHintClass:function(a,n){var t=this.options;(a=e(a)).find(".k-drag-status").length>0&&r.ui.icon(a.find(".k-drag-status").eq(0),{icon:n?t.deniedIcon:t.allowIcon})},_initDraggable:function(){let e=this,a=e.options;e.draggable=a.draggable||new r.ui.Draggable(e.element,{group:r.guid()+"-reorderable",autoScroll:!0,filter:a.filter,hint:a.hint});let n=e.draggable._elementUnderCursor;e.draggable._elementUnderCursor=function(r){let a=e.reorderDropCue&&e.reorderDropCue.is(":visible");a&&e.reorderDropCue.hide();let t=n.call(e.draggable,r);return a&&e.reorderDropCue.show(),t}},_handleExternalDraggable:function(e){var r=this,a=r.options.dropFilter.trimStart();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;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}),e.reorderDropCue&&e.reorderDropCue.remove(),e._draggable=null,e._elements=null},_dragend:function(){var e=this;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}),e.reorderDropCue&&e.reorderDropCue.remove(),e._draggable=null,e._elements=null},_dragstart:function(r){var a=this,n=e(r.currentTarget),t=a.options.dropFilter.trimStart();t&&">"==t[0]&&(t=t.substring(1)),a._draggable=n.is(t)?n:n.closest(t),a._elements=a.element.find(a.options.dropFilter)},_drag:function(r){var d,o,i,l,g=this,s={},p=g.options.dropFilter.trimStart();if(p&&">"==p[0]&&(p=p.substring(1)),l=e(r.currentTarget).closest(p),!(!g._dropTarget||g.options.smartPosition&&r.sender.hint.find(".k-drag-status").is(".k-i-cancel,.k-svg-i-cancel"))){if(o=(d=g._index(g._dropTarget))>(o=g._index(l))?o+1:o,"horizontal"===g.options.orientation){var _=t(g._dropTarget).left,u=a(g._dropTarget);r.pageX>_+u/2?(s.left=_+u,d+=1):s.left=_}else{var c=t(g._dropTarget).top,b=n(g._dropTarget);r.pageY>c+b/2?(s.top=c+b,d+=1):s.top=c}g.reorderDropCue.css(s),g.options.positionDropCue&&g.options.positionDropCue(g.reorderDropCue,g._dropTarget),g._isPartOfSortable(l)&&(i=o===d&&!g.options.allowDropAfterLastItem||g.options.dragOverContainers&&!g.options.dragOverContainers(o,d)||r.clickMoveClick&&r.currentTarget.hasClass("k-drag-cell")&&0===e(r.elementUnderCursor).closest(".k-drag-cell").length,g.toggleHintClass(r.sender.hint,i))}},_isPartOfSortable:function(e){return this._elements.index(e)>=0},_externalDraggable:function(e){var r=this.options;return!this._draggable&&r.externalDraggable?r.externalDraggable(e):null},_isLastDraggable:function(){var e,r=this.options.inSameContainer,a=this._draggable[0],n=this._elements.get(),t=!1;if(!r)return!1;for(;!t&&n.length>0;)t=a!==(e=n.pop())&&r({source:a,target:e,sourceIndex:this._index(a),targetIndex:this._index(e)});return!t},_dropTargetAllowed:function(e){var r=this.options.inSameContainer,a=this.options.dragOverContainers,n=this._draggable;return n[0]!==e[0]&&(!r||!a||(!!r({source:n,target:e,sourceIndex:this._index(n),targetIndex:this._index(e)})||a(this._index(n),this._index(e))))},_index:function(e){return this._elements.index(e)},destroy:function(){var r=this;d.fn.destroy.call(r),r.element.find(r.options.dropFilter).each((function(){var r=e(this);r.data("kendoDropTarget")&&r.data("kendoDropTarget").destroy()})),r.draggable&&(r.draggable.destroy(),r.draggable.element=r.draggable=null),r.reorderDropCue.remove(),r.elements=r.reorderDropCue=r._elements=r._draggable=null}});r.ui.plugin(i)}(window.kendo.jQuery);var r=kendo;e.__meta__={id:"reorderable",name:"Reorderable",category:"framework",depends:["core","draganddrop","icons"],advanced:!0},e.default=r,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=kendo.reorderable.min.js.map