UNPKG

magix-components

Version:
1 lines 3.09 kB
define("mx-dragselect/index",["magix","../mx-dragdrop/index","../mx-runner/index","$"],function(a,_,e){var t=a("magix"),i=a("../mx-dragdrop/index"),n=a("../mx-runner/index"),h=a("$");t.applyStyle("j",".bS{left:-1000px;top:0;background:#6363e6;position:absolute;opacity:.3;border:1px solid #2b2bb9}");var r=t.guid("area_"),o=h(window),d=h(document),g={__ao:function(){var a=h("#"+r);a.length||(a=h('<div id="'+r+'" class="bS" />').appendTo("body"))},__ap:function(a,_,e,t){h("#"+r).css({left:a,top:_,width:e,height:t})},__aq:function(){h("#"+r).css({left:-1e5})}},c=function(a,_){var e=a.width/2,t=a.height/2,i=_.width/2,n=_.height/2,h={x:a.x+e,y:a.y+t},r={x:_.x+i,y:_.y+n};return Math.abs(r.x-h.x)<=e+i&&Math.abs(r.y-h.y)<=t+n};e.exports=t.View.extend({init:function(a){var _=this,e=h("#"+_.id);e.on("mousedown",function(a){a.preventDefault(),_.__ar(a)}),e.on("click",function(a){if(!_.__as){var t=_.__at(a.target);t&&e.trigger({type:"change",action:"add",mode:"click",node:t})}delete _.__as}),_.on("destroy",function(){e.off("mousedown click")}),_.__au=a.selector,_.__h=e},__at:function(a){for(var _=this,e=null,t=_.__h[0];t!=a;){if(a.parentNode==t){e=a;break}a=a.parentNode}return e&&_.__au&&(h.find.matchesSelector(e,_.__au)||(e=null)),e},__av:function(){for(var a=this,_=[],e=0,t=0,i=a.__au?a.__h.find(a.__au):a.__h.children();t<i.length;t++){var n=i[t],r=h(n),o=r.offset();_.push({id:e++,c:n,x:o.left,y:o.top,width:r.width(),height:r.height()})}return _},__aA:function(a){var _=this,e={x:a.pageX,y:a.pageY},t=_.__aw;e.x<t.x?e.x=t.x:e.x>t.x+t.width&&(e.x=t.x+t.width),e.y<t.y?e.y=t.y:e.y>t.y+t.height&&(e.y=t.y+t.height);var i=_.__ax,n=Math.min(e.x,i.x),h=Math.min(e.y,i.y),r=Math.abs(e.x-i.x),o=Math.abs(e.y-i.y);g.__ap(n,h,r,o);for(var d=_.__ay,f={x:n,y:h,width:r,height:o},x=_.__az,s=0,u=d;s<u.length;s++){var l=u[s];c(f,l)?1!==x[l.id]&&(x[l.id]=1,_.__h.trigger({type:"change",action:"add",mode:"drag",node:l.c})):1===x[l.id]&&(delete x[l.id],_.__h.trigger({type:"change",action:"remove",mode:"drag",node:l.c}))}},__ar:function(a){if(1===a.which){var _=this;_.__ax={x:a.pageX,y:a.pageY};var e=_.__h,t=e.offset();_.__aw={x:t.left,y:t.top,width:e.width(),height:e.height()},_.__az={},g.__ao(),e.trigger("dragbegin"),i.begin(a.target,function(a){_.__aB(a)},function(a){_.__aC(a)})}},__aB:function(a){var _=this;if(!_.__as){var e=_.__ax;(Math.abs(a.pageX-e.x)>5||Math.abs(a.pageY-e.y)>5)&&(_.__as=!0)}_.__as&&(_.__ay||(_.__ay=_.__av()),_.__aD=a,_.__aE(),_.__aA(a))},__aC:function(){var a=this;a.__aF(),g.__aq(),delete a.__aD,delete a.__ax,delete a.__aw,delete a.__ay,delete a.__az,a.__h.trigger("dragfinish")},__aE:function(){var a=this;a.__aG||(a.__aG=function(){var _=0,e=0,t=a.__aD,i=o.scrollTop(),n=o.height(),h=d.height(),r=d.width(),g=o.width(),c=o.scrollLeft();t.pageX-c<20&&c>0?_=-Math.min(7,c):c+g-t.pageX<20&&c+g<r&&(_=Math.min(7,r-g-c)),t.pageY-i<20&&i>0?e=-Math.min(7,i):i+n-t.pageY<20&&i+n<h&&(e=Math.min(7,h-n-i)),(_||e)&&(t.pageX+=_,t.pageY+=e,a.__aA(t),window.scrollBy(_,e))},n.__aH(30,a.__aG))},__aF:function(){var a=this;a.__aG&&(n.__aI(a.__aG),delete a.__aG)}})});