magix-components
Version:
1 lines • 6.49 kB
JavaScript
define("mx-dragsort/index",["magix","../mx-dragdrop/index","../mx-runner/index","$"],function(_,e,t){var a=_("magix"),i=_("../mx-dragdrop/index"),o=_("../mx-runner/index"),n=_("$");a.applyStyle("k",'.bT{left:-1000px;top:0;background:#6363e6}.bT,.bU{position:absolute}.bU{width:26px;height:26px}.bV{background:#479b47}.bW{background:#e94f4f}.bU:after{font-size:20px;line-height:26px;color:#fff;position:absolute;left:0;right:0;top:0;bottom:0;text-align:center}.bV:after{content:"✓"}.bW:after{content:"✗"}');var r=a.guid("dbar_"),d=a.guid("pt_"),h=n(window),l=n(document),s={__aJ:function(){n("#"+r).length||n('<div class="bT" id="'+r+'"/>').appendTo("body")},__ar:function(_){_.child&&(n(_.child).css({opacity:.4}),this.__aJ())},__aC:function(_){_.child&&n(_.child).css({opacity:1}),this.__aK(),this.__aL()},__aK:function(){n("#"+r).css({left:-1e5})},__aM:function(_,e){var t=n("#"+r),a=!1;2&_.anchor&&(2&e?(t.css({height:2,width:_.bound.width,top:_.bound.y-1,left:_.bound.x}),a=!0):8&e&&(t.css({height:2,width:_.bound.width,top:_.bound.y+_.bound.height-1,left:_.bound.x}),a=!0)),!a&&1&_.anchor&&(1&e?t.css({height:_.bound.height,width:2,top:_.bound.y,left:_.bound.x-1}):4&e&&t.css({height:_.bound.height,width:2,top:_.bound.y,left:_.bound.x+_.bound.width-1}))},__aO:function(_){var e=this;_.atPlace&&_.child!=_.hover?(3==_.anchor?_.__aN&&e.__aM(_,_.side):_.__aO&&e.__aM(_,_.position),e.__aP(!0)):(e.__aK(),e.__aP())},__aQ:function(_){var e=n("#"+d);e.length||(e=n('<div class="bU" id="'+d+'"/>')).appendTo("body");var t=Math.max(0,Math.min(_.pageX+10,l.width()-e.width())),a=Math.max(0,Math.min(_.pageY+18,l.height()-e.height()));e.css({left:t,top:a,display:"block"})},__aP:function(_){var e=n("#"+d);_?e.removeClass("bW").addClass("bV"):e.addClass("bW").removeClass("bV")},__aL:function(){n("#"+d).hide()}};t.exports=a.View.extend({init:function(_){var e=this,t=n("#"+e.id);t.on("mousedown",_.selector,function(_){_.preventDefault(),e.__ar(_)}),e.on("destroy",function(){t.off("mousedown")}),e.__h=t;var i=[t.get(0)];_.drops&&(i=i.concat(_.drops.split(","))),e.__aR=i;var o=_.horizonal+""=="true",r=_.vertical+""=="true";o||r||(r=!0);var d=0;o&&(d|=1),r&&(d|=2),e.__aS=d;var h=!0;a.has(_,"sort")&&(h=_.sort+""=="true"),e.__aT=h},__aU:function(_){for(var e=0,t=this.__aR;e<t.length;e++){var i=t[e];if(a.inside(_,i))return a.node(i)}return null},__at:function(_,e){var t=this,a=null;if(e||(e=t.__aU(_)),!t.__aT&&t.__aV)return{child:t.__aV,zone:e};for(;e!=_;){if(_.parentNode==e){a=_;break}_=_.parentNode}return!e||e.firstChild||a||(a=e),a&&"false"===a.getAttribute("ds-draggable")&&(a=null),{child:a,zone:e}},__aX:function(_,e){var t=0,a=0,i=-1,o=-1,n=-1,r=-1,d=!1;if(e.pageX>=_.x&&e.pageX<=_.x+_.width&&e.pageY>=_.y&&e.pageY<=_.y+_.height&&(t|=e.pageX<=_.x+_.width/2?1:4,i=e.pageX-_.x,n=_.x+_.width-e.pageX,t|=e.pageY<=_.y+_.height/2?2:8,o=e.pageY-_.y,r=_.y+_.height-e.pageY,d=!0),d){var h=Math.min(i,o,n,r);h>-1&&(h==i?a=1:h==o?a=2:h==n?a=4:h==r&&(a=8))}var l=this.__aW;return l&&l.zone===l.hover&&(t=2,a=1),{position:t,atPlace:d,side:a}},__ar:function(_){if(1===_.which){var e=this,t=e.__at(_.target);t.child&&(e.__aV=t.child,e.__aY=t.zone,e.__h.trigger({type:"dragbegin",dragNode:t.child,dragZone:t.zone}),s.__ar(t),i.begin(t.zone,function(_){e.__aB(_)},function(_){e.__aC(_)}))}},__ba:function(_,e,t){var a=this,i=a.__aX(_,e),o=i.side!=a.__aZ,n=i.position!=a.__b_;(o||n)&&(a.__aZ=i.side,a.__b_=i.position,t.__aN=o,t.__aO=n,t.side=i.side,t.position=i.position,t.atPlace=i.atPlace,t.anchor=a.__aS,s.__aO(t))},__aB:function(_){var e=i.fromPoint(_.clientX,_.clientY),t=this;if(s.__aQ(_),t.__aD=_,t.__as=!0,t.__bb(),t.__aE(),t.__bc||t.__bd||!e)return delete t.__be,delete t.__aZ,void delete t.__b_;if(t.__be!=e){if(e.id===r)return;t.__be=e,delete t.__aZ;var o=t.__aU(e);if(o){o!=t.__bf&&(t.__bf=o,t.__h.trigger({type:"enterzone",zone:o,changePointer:s.__aP}));var d=t.__at(e,o);if(!d.child)return;var h=n(d.child),l=h.offset(),c={x:l.left,y:l.top,width:h.outerWidth(),height:h.outerHeight()};l=(h=n(d.zone)).offset(),t.__bg={x:l.left,y:l.top,scrollX:h.prop("scrollLeft"),scrollY:h.prop("scrollTop"),maxWidth:h.prop("scrollWidth"),maxHeight:h.prop("scrollHeight"),width:h.width(),height:h.height()},t.__ba(t.__bh=c,_,t.__aW={child:t.__aV,bound:c,zone:d.zone,hover:d.child})}else t.__bf&&(t.__h.trigger({type:"leavezone",zone:t.__bf,changePointer:s.__aP}),delete t.__bf)}else t.__bh&&a.inside(e,t.__aW.zone)?t.__ba(t.__bh,_,t.__aW):(delete t.__aZ,delete t.__b_,t.__aT&&(s.__aK(),s.__aP()))},__aC:function(){var _=this;_.__bi(),_.__aF(),s.__aC({child:_.__aV});var e=_.__b_,t=_.__aZ,a=_.__as,i=_.__aW,o=_.__aV;if(a&&(e||t)){var n=i.zone,r=_.__aS,d=3===r?t:e;if(1&r&&1&d||2&d&&2&r)i.hover==n?n.appendChild(o):n.insertBefore(o,i.hover);else if(8&d&&2&r||4&d&&1&r){for(var h=i.hover.nextSibling;h&&1!=h.nodeType;)h=h.nextSibling;n.insertBefore(o,h),h||(n.scrollTop=n.scrollHeight)}}i&&_.__h.trigger({type:"dragfinish",moved:a,dragNode:o,dragZone:_.__aY,dropNode:i.hover,dropZone:i.zone,outZone:!_.__bf}),delete _.__aV,delete _.__aY,delete _.__be,delete _.__aW,delete _.__bh,delete _.__b_,delete _.__aZ,delete _.__aD,delete _.__bd,delete _.__bf,delete _.__bg,delete _.__bc,delete _.__as},__bb:function(){var _=this;_.__bj||(_.__bj=function(){var e=_.__bg;if(e){var t=_.__aW.zone,a=0,i=0,o=_.__aD;o.pageX>e.x&&o.pageY>e.y&&o.pageX<e.x+e.width&&o.pageY<e.y+e.height?(o.pageX-e.x<20&&e.scrollX>0?a=-Math.min(7,e.scrollX):e.x+e.width-o.pageX<20&&e.scrollX+e.width<e.maxWidth&&(a=Math.min(7,e.maxWidth-e.scrollX-e.width)),o.pageY-e.y<20&&e.scrollY>0?i=-Math.min(7,e.scrollY):e.y+e.height-o.pageY<20&&e.scrollY+e.height<e.maxHeight&&(i=Math.min(7,e.maxHeight-e.scrollY-e.height)),a||i?(_.__bc=!0,_.__bk=!0,t.scrollTop+=i,t.scrollLeft+=a,e.scrollX+=a,e.scrollY+=i,delete _.__as,s.__aK(),s.__aP()):(delete _.__bc,delete _.__bk)):(delete _.__bc,delete _.__bk)}},o.__aH(30,_.__bj))},__aE:function(){var _=this;_.__aG||(_.__aG=function(){if(!_.__bk){var e=0,t=0,a=_.__aD,i=h.scrollTop(),o=h.height(),n=l.height(),r=l.width(),d=h.width(),c=h.scrollLeft();a.pageX-c<20&&c>0?e=-Math.min(7,c):c+d-a.pageX<20&&c+d<r&&(e=Math.min(7,r-d-c)),a.pageY-i<20&&i>0?t=-Math.min(7,i):i+o-a.pageY<20&&i+o<n&&(t=Math.min(7,n-o-i)),e||t?(_.__bd=!0,a.pageX+=e,a.pageY+=t,window.scrollBy(e,t),delete _.__as,s.__aK(),s.__aQ(a),s.__aP()):delete _.__bd}},o.__aH(30,_.__aG))},__bi:function(){var _=this;_.__bj&&(o.__aI(_.__bj),delete _.__bj,delete _.__bk)},__aF:function(){var _=this;_.__aG&&(o.__aI(_.__aG),delete _.__aG)}})});