Project

General

Profile

1
!function(t){var e;window.UIkit&&(e=t(UIkit)),"function"==typeof define&&define.amd&&define("uikit-sortable",["uikit"],function(){return e||t(UIkit)})}(function(d){"use strict";var r,u,a,i,l,c,h,p,g=["touchmove","mousemove","mouseout"],f=["touchmove","mousemove"],m=["touchstart","mousedown"];return d.component("sortable",{defaults:{animation:150,threshold:10,childClass:"uk-sortable-item",placeholderClass:"uk-sortable-placeholder",overClass:"uk-sortable-over",draggingClass:"uk-sortable-dragged",dragMovingClass:"uk-sortable-moving",baseClass:"uk-sortable",noDragClass:"uk-sortable-nodrag",emptyClass:"uk-sortable-empty",dragCustomClass:"",handleClass:!1,group:!1,stop:function(){},start:function(){},change:function(){}},boot:function(){d.ready(function(t){d.$("[data-uk-sortable]",t).each(function(){var t=d.$(this);t.data("sortable")||d.sortable(t,d.Utils.options(t.attr("data-uk-sortable")))})}),d.$html.on("mousemove touchmove",function(t){if(l){var e=t.originalEvent.targetTouches?t.originalEvent.targetTouches[0]:t;(Math.abs(e.pageX-l.pos.x)>l.threshold||Math.abs(e.pageY-l.pos.y)>l.threshold)&&l.apply(e)}if(r){i||(i=!0,r.show(),r.$current.addClass(r.$sortable.options.placeholderClass),r.$sortable.element.children().addClass(r.$sortable.options.childClass),d.$html.addClass(r.$sortable.options.dragMovingClass));var o=r.data("mouse-offset"),s=parseInt(t.originalEvent.touches&&t.originalEvent.touches[0]?t.originalEvent.touches[0].pageX:t.originalEvent.pageX,10)+o.left,a=parseInt(t.originalEvent.touches&&t.originalEvent.touches[0]?t.originalEvent.touches[0].pageY:t.originalEvent.pageY,10)+o.top;if(r.css({left:s,top:a}),a+r.height()/3>document.body.offsetHeight)return;a<d.$win.scrollTop()?d.$win.scrollTop(d.$win.scrollTop()-Math.ceil(r.height()/3)):a+r.height()/3>window.innerHeight+d.$win.scrollTop()&&d.$win.scrollTop(d.$win.scrollTop()+Math.ceil(r.height()/3))}}),d.$html.on("mouseup touchend",function(t){if(l=!1,u&&r){var e=function(t){t=d.$(t);do{if(t.data("sortable"))return t;t=d.$(t).parent()}while(t.length);return t}(u),o=r.$sortable,s={type:t.type};e[0]&&o.dragDrop(s,o.element),o.dragEnd(s,o.element)}else u=r=null})},init:function(){var n=this,r=this.element[0];c=[],this.checkEmptyList(),this.element.data("sortable-group",this.options.group?this.options.group:d.Utils.uid("sortable-group"));var e=t(function(t){if(!t.data||!t.data.sortable){var e=d.$(t.target),o=e.is("a[href]")?e:e.parents("a[href]");if(!e.is(":input"))return t.preventDefault(),!t.touches&&o.length&&o.one("click",function(t){t.preventDefault()}).one("mouseup",function(){h||o.trigger("click")}),t.data=t.data||{},t.data.sortable=r,n.dragStart(t,this)}}),o=(t(d.Utils.debounce(function(t){return n.dragEnter(t,this)})),t(function(t){var e=n.dragenterData(this);n.dragenterData(this,e-1),n.dragenterData(this)||(d.$(this).removeClass(n.options.overClass),n.dragenterData(this,!1))}),t(function(t){return!u||u===this||a===this||(n.element.children().removeClass(n.options.overClass),a=this,n.moveElementNextTo(u,this),function(t){t.stopPropagation&&t.stopPropagation();t.preventDefault&&t.preventDefault();t.returnValue=!1}(t))}));function s(t){u&&n.dragMove(t,n)}function t(a){return function(t){var e,o,s;t&&(o=(e=t.touches&&t.touches[0]||{}).target||t.target,t.touches&&t.touches[0]&&document.elementFromPoint&&(o=document.elementFromPoint(e.pageX-document.body.scrollLeft,e.pageY-document.body.scrollTop)),p=d.$(o)),d.$(o).hasClass(n.options.childClass)?a.apply(o,[t]):o!==r&&(s=function(t,e){var o=e;if(o==t)return null;for(;o;){if(o.parentNode===t)return o;if(!(o=o.parentNode)||!o.ownerDocument||11===o.nodeType)break}return null}(r,o))&&a.apply(s,[t])}}this.addDragHandlers=function(){g.forEach(function(t){r.addEventListener(t,o,!1)})},this.removeDragHandlers=function(){g.forEach(function(t){r.removeEventListener(t,o,!1)})},f.forEach(function(t){window.addEventListener(t,s,!1)}),m.forEach(function(t){r.addEventListener(t,e,!1)})},dragStart:function(t,e){i=h=!1;var o=this,s=d.$(t.target);if(t.touches||2!=t.button){if(o.options.handleClass)if(!(s.hasClass(o.options.handleClass)?s:s.closest("."+o.options.handleClass,o.element)).length)return;if(!s.is("."+o.options.noDragClass)&&!s.closest("."+o.options.noDragClass).length&&!s.is(":input")){u=e,r&&r.remove();var a=d.$(u),n=a.offset();l={pos:{x:t.touches&&t.touches[0]?t.touches[0].pageX:t.pageX,y:t.touches&&t.touches[0]?t.touches[0].pageY:t.pageY},threshold:o.options.threshold,apply:function(t){(r=d.$('<div class="'+[o.options.draggingClass,o.options.dragCustomClass].join(" ")+'"></div>').css({display:"none",top:n.top,left:n.left,width:a.width(),height:a.height(),padding:a.css("padding")}).data({"mouse-offset":{left:n.left-parseInt(t.pageX,10),top:n.top-parseInt(t.pageY,10)},origin:o.element,index:a.index()}).append(a.html()).appendTo("body")).$current=a,r.$sortable=o,a.data({"start-list":a.parent(),"start-index":a.index(),"sortable-group":o.options.group}),o.addDragHandlers(),o.options.start(this,u),o.trigger("start.uk.sortable",[o,u]),l=!(h=!0)}}}}},dragMove:function(t,e){var o,s=t.touches&&t.touches[0]?t.touches[0].pageX:t.pageX,a=t.touches&&t.touches[0]?t.touches[0].pageY:t.pageY,n=(p=d.$(document.elementFromPoint(s-(document.body.scrollLeft||document.scrollLeft||0),a-(document.body.scrollTop||document.documentElement.scrollTop||0)))).closest("."+this.options.baseClass),r=n.data("sortable-group"),i=d.$(u),l=i.parent(),h=i.data("sortable-group");n[0]!==l[0]&&void 0!==h&&r===h&&(n.data("sortable").addDragHandlers(),c.push(n),n.children().addClass(this.options.childClass),0<n.children().length?(o=p.closest("."+this.options.childClass)).length?o.before(i):n.append(i):p.append(i),UIkit.$doc.trigger("mouseover")),this.checkEmptyList(),this.checkEmptyList(l)},dragEnter:function(t,e){if(!u||u===e)return!0;var o=this.dragenterData(e);if(this.dragenterData(e,o+1),0===o){var s=d.$(e).parent(),a=d.$(u).data("start-list");if(s[0]!==a[0]){var n=s.data("sortable-group"),r=d.$(u).data("sortable-group");if((n||r)&&n!=r)return!1}d.$(e).addClass(this.options.overClass),this.moveElementNextTo(u,e)}return!1},dragEnd:function(t,e){var o=this;u&&(this.options.stop(e),this.trigger("stop.uk.sortable",[this])),a=u=null,c.push(this.element),c.forEach(function(t,e){d.$(t).children().each(function(){1===this.nodeType&&(d.$(this).removeClass(o.options.overClass).removeClass(o.options.placeholderClass).removeClass(o.options.childClass),o.dragenterData(this,!1))})}),c=[],d.$html.removeClass(this.options.dragMovingClass),this.removeDragHandlers(),r&&(r.remove(),r=null)},dragDrop:function(t,e){"drop"===t.type&&(t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault()),this.triggerChangeEvents()},triggerChangeEvents:function(){if(u){var t=d.$(u),e=r.data("origin"),o=t.closest("."+this.options.baseClass),s=[],a=d.$(u);e[0]===o[0]&&r.data("index")!=t.index()?s.push({sortable:this,mode:"moved"}):e[0]!=o[0]&&s.push({sortable:d.$(o).data("sortable"),mode:"added"},{sortable:d.$(e).data("sortable"),mode:"removed"}),s.forEach(function(t,e){t.sortable&&t.sortable.element.trigger("change.uk.sortable",[t.sortable,a,t.mode])})}},dragenterData:function(t,e){if(t=d.$(t),1==arguments.length)return parseInt(t.data("child-dragenter"),10)||0;e?t.data("child-dragenter",Math.max(0,e)):t.removeData("child-dragenter")},moveElementNextTo:function(t,e){!0;var o=this,s=d.$(t).parent().css("min-height",""),a=function(t,e){var o=t.parentNode;if(e.parentNode!=o)return!1;var s=t.previousSibling;for(;s&&9!==s.nodeType;){if(s===e)return!0;s=s.previousSibling}return!1}(t,e)?e:e.nextSibling,n=s.children(),r=n.length;if(!o.options.animation)return e.parentNode.insertBefore(t,a),void d.Utils.checkDisplay(o.element.parent());s.css("min-height",s.height()),n.stop().each(function(){var t=d.$(this),e=t.position();e.width=t.width(),t.data("offset-before",e)}),e.parentNode.insertBefore(t,a),d.Utils.checkDisplay(o.element.parent()),(n=s.children().each(function(){var t=d.$(this);t.data("offset-after",t.position())}).each(function(){var t=d.$(this),e=t.data("offset-before");t.css({position:"absolute",top:e.top,left:e.left,"min-width":e.width})})).each(function(){var t=d.$(this),e=(t.data("offset-before"),t.data("offset-after"));t.css("pointer-events","none").width(),setTimeout(function(){t.animate({top:e.top,left:e.left},o.options.animation,function(){t.css({position:"",top:"",left:"","min-width":"","pointer-events":""}).removeClass(o.options.overClass).removeData("child-dragenter"),--r||(s.css("min-height",""),d.Utils.checkDisplay(o.element.parent()))})},0)})},serialize:function(){var s,a,n=[];return this.element.children().each(function(t,e){s={};for(var o=0;o<e.attributes.length;o++)0===(a=e.attributes[o]).name.indexOf("data-")&&(s[a.name.substr(5)]=d.Utils.str2json(a.value));n.push(s)}),n},checkEmptyList:function(t){t=t?d.$(t):this.element,this.options.emptyClass&&t[t.children().length?"removeClass":"addClass"](this.options.emptyClass)}}),d.sortable});
(23-23/27)