forked from nathancahill/split
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsplit.min.js
More file actions
1 lines (1 loc) · 5.17 KB
/
split.min.js
File metadata and controls
1 lines (1 loc) · 5.17 KB
1
"use strict";(function(){var e=this,t=e.attachEvent&&!e[s],i=e.document,s="addEventListener",r="removeEventListener",n="getBoundingClientRect",a=function(){var e,t=["","-webkit-","-moz-","-o-"];for(var s=0;s<t.length;s++){e=i.createElement("div");e.style.cssText="width:"+t[s]+"calc(9px)";if(e.style.length){return t[s]+"calc"}}}(),o=function(e){if(typeof e==="string"||e instanceof String){return i.querySelector(e)}else{return e}},l=function(l,u){var c,f,h,g,p,d,z,S,y=[];u=typeof u!=="undefined"?u:{};if(typeof u.gutterSize==="undefined")u.gutterSize=10;if(typeof u.minSize==="undefined")u.minSize=100;if(typeof u.snapOffset==="undefined")u.snapOffset=30;if(typeof u.direction==="undefined")u.direction="horizontal";if(u.direction=="horizontal"){c="width";h="clientWidth";g="clientX";p="left";d="gutter gutter-horizontal";z="paddingLeft";S="paddingRight";if(!u.cursor)u.cursor="ew-resize"}else if(u.direction=="vertical"){c="height";h="clientHeight";g="clientY";p="top";d="gutter gutter-vertical";z="paddingTop";S="paddingBottom";if(!u.cursor)u.cursor="ns-resize"}var v=function(t){var i=this,r=i.a,n=i.b;if(!i.dragging&&u.onDragStart){u.onDragStart()}t.preventDefault();i.dragging=true;i.move=m.bind(i);i.stop=b.bind(i);e[s]("mouseup",i.stop);e[s]("touchend",i.stop);e[s]("touchcancel",i.stop);i.parent[s]("mousemove",i.move);i.parent[s]("touchmove",i.move);r[s]("selectstart",D);r[s]("dragstart",D);n[s]("selectstart",D);n[s]("dragstart",D);r.style.userSelect="none";r.style.webkitUserSelect="none";r.style.MozUserSelect="none";r.style.pointerEvents="none";n.style.userSelect="none";n.style.webkitUserSelect="none";n.style.MozUserSelect="none";n.style.pointerEvents="none";i.gutter.style.cursor=u.cursor;i.parent.style.cursor=u.cursor;G.call(i)},b=function(){var t=this,i=t.a,s=t.b;if(t.dragging&&u.onDragEnd){u.onDragEnd()}t.dragging=false;e[r]("mouseup",t.stop);e[r]("touchend",t.stop);e[r]("touchcancel",t.stop);t.parent[r]("mousemove",t.move);t.parent[r]("touchmove",t.move);delete t.stop;delete t.move;i[r]("selectstart",D);i[r]("dragstart",D);s[r]("selectstart",D);s[r]("dragstart",D);i.style.userSelect="";i.style.webkitUserSelect="";i.style.MozUserSelect="";i.style.pointerEvents="";s.style.userSelect="";s.style.webkitUserSelect="";s.style.MozUserSelect="";s.style.pointerEvents="";t.gutter.style.cursor="";t.parent.style.cursor=""},m=function(e){var t;if(!this.dragging)return;if("touches"in e){t=e.touches[0][g]-this.start}else{t=e[g]-this.start}if(t<=this.aMin+u.snapOffset+this.aGutterSize){t=this.aMin+this.aGutterSize}else if(t>=this.size-(this.bMin+u.snapOffset+this.bGutterSize)){t=this.size-(this.bMin+this.bGutterSize)}if(u.adjust){u.adjust.call(this,t)}else M.call(this,t);if(u.onDrag){u.onDrag()}},G=function(){var t=e.getComputedStyle(this.parent),i=this.parent[h]-parseFloat(t[z])-parseFloat(t[S]);this.size=this.a[n]()[c]+this.b[n]()[c]+this.aGutterSize+this.bGutterSize;this.percentage=Math.min(this.size/i*100,100);this.start=this.a[n]()[p]},M=function(e){this.a.style[c]=a+"("+e/this.size*this.percentage+"% - "+this.aGutterSize+"px)";this.b.style[c]=a+"("+(this.percentage-e/this.size*this.percentage)+"% - "+this.bGutterSize+"px)"},x=function(){var e=this,t=e.a,i=e.b;if(t[n]()[c]<e.aMin){t.style[c]=e.aMin-e.aGutterSize+"px";i.style[c]=e.size-e.aMin-e.aGutterSize+"px"}else if(i[n]()[c]<e.bMin){t.style[c]=e.size-e.bMin-e.bGutterSize+"px";i.style[c]=e.bMin-e.bGutterSize+"px"}},w=function(){var e=this,t=e.a,i=e.b;if(i[n]()[c]<e.bMin){t.style[c]=e.size-e.bMin-e.bGutterSize+"px";i.style[c]=e.bMin-e.bGutterSize+"px"}else if(t[n]()[c]<e.aMin){t.style[c]=e.aMin-e.aGutterSize+"px";i.style[c]=e.size-e.aMin-e.aGutterSize+"px"}},E=function(e){for(var t=0;t<e.length;t++){G.call(e[t]);x.call(e[t])}for(t=e.length-1;t>=0;t--){G.call(e[t]);w.call(e[t])}},U=function(e,i,s){if(typeof i!=="string"&&!(i instanceof String)){if(!t){i=a+"("+i+"% - "+s+"px)"}else{i=u.sizes[f]+"%"}}e.style[c]=i},D=function(){return false},k=o(l[0]).parentNode;if(!u.sizes){var L=100/l.length;u.sizes=[];for(f=0;f<l.length;f++){u.sizes.push(L)}}if(!Array.isArray(u.minSize)){var O=[];for(f=0;f<l.length;f++){O.push(u.minSize)}u.minSize=O}for(f=0;f<l.length;f++){var B=o(l[f]),C=f==1,F=f==l.length-1,j=u.sizes[f],A=u.gutterSize,N;if(f>0){N={a:o(l[f-1]),b:B,aMin:u.minSize[f-1],bMin:u.minSize[f],dragging:false,parent:k,isFirst:C,isLast:F,direction:u.direction};N.aGutterSize=u.gutterSize;N.bGutterSize=u.gutterSize;if(C){N.aGutterSize=u.gutterSize/2}if(F){N.bGutterSize=u.gutterSize/2}}if(!t){if(f>0){var R=i.createElement("div");R.className=d;R.style[c]=u.gutterSize+"px";R[s]("mousedown",v.bind(N));R[s]("touchstart",v.bind(N));k.insertBefore(R,B);N.gutter=R}if(f===0||f==l.length-1){A=u.gutterSize/2}}U(B,j,A);if(f>0){y.push(N)}}E(y);return{setSizes:function(e){for(var t=0;t<e.length;t++){if(t>0){var i=y[t-1];U(i.a,e[t-1],i.aGutterSize);U(i.b,e[t],i.bGutterSize)}}},collapse:function(e){var t;if(e===y.length){t=y[e-1];G.call(t);M.call(t,t.size-t.bGutterSize)}else{t=y[e];G.call(t);M.call(t,t.aGutterSize)}},destroy:function(){for(var e=0;e<y.length;e++){y[e].parent.removeChild(y[e].gutter);y[e].a.style[c]="";y[e].b.style[c]=""}}}};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){exports=module.exports=l}exports.Split=l}else{e.Split=l}}).call(window);