-
-
Notifications
You must be signed in to change notification settings - Fork 452
/
split.min.js
1 lines (1 loc) · 4.4 KB
/
split.min.js
1
"use strict";(function(){var t=this;if(!Array.isArray){Array.isArray=function(t){return Object.prototype.toString.call(t)==="[object Array]"}}var e=function(){return t.attachEvent&&!t.addEventListener}();var i=function(){var t=["","-webkit-","-moz-","-o-"],e;for(var i=0;i<t.length;i++){e=document.createElement("div");e.style.cssText="width:"+t[i]+"calc(9px)";if(e.style.length){return t[i]+"calc"}}}();var s=function(t,s){var n,r,a,h,l,o=[];s=typeof s!=="undefined"?s:{};if(!s.gutterSize)s.gutterSize=10;if(!s.minSize)s.minSize=100;if(!s.snapOffset)s.snapOffset=30;if(!s.direction)s.direction="horizontal";if(s.direction=="horizontal"){n="width";r="clientWidth";a="clientX";h="left";l="gutter gutter-horizontal"}else if(s.direction=="vertical"){n="height";r="clientHeight";a="clientY";h="top";l="gutter gutter-vertical"}var u=function(t){t.preventDefault();this.dragging=true;this.a.addEventListener("selectstart",p);this.a.addEventListener("dragstart",p);this.b.addEventListener("selectstart",p);this.b.addEventListener("dragstart",p);this.a.style.userSelect="none";this.a.style.webkitUserSelect="none";this.a.style.MozUserSelect="none";this.b.style.userSelect="none";this.b.style.webkitUserSelect="none";this.b.style.MozUserSelect="none";g.call(this);if(s.onDragStart){s.onDragStart()}},c=function(){this.dragging=false;this.a.removeEventListener("selectstart",p);this.a.removeEventListener("dragstart",p);this.b.removeEventListener("selectstart",p);this.b.removeEventListener("dragstart",p);this.a.style.userSelect="";this.a.style.webkitUserSelect="";this.a.style.MozUserSelect="";this.b.style.userSelect="";this.b.style.webkitUserSelect="";this.b.style.MozUserSelect="";if(s.onDragEnd){s.onDragEnd()}},f=function(t){if(!this.dragging)return;var e=t[a]-this.start;if(e<=this.aMin+s.snapOffset){e=this.aMin}else if(e>=this.size-this.bMin-s.snapOffset){e=this.size-this.bMin}d.call(this,e);if(s.onDrag){s.onDrag()}},g=function(){this.size=this.a.getBoundingClientRect()[n]+this.b.getBoundingClientRect()[n]+this.aGutterSize+this.bGutterSize;this.percentage=Math.min(this.size/this.parent[r]*100,100);this.start=this.a.getBoundingClientRect()[h]},d=function(t){this.a.style[n]=i+"("+t/this.size*this.percentage+"% - "+this.aGutterSize+"px)";this.b.style[n]=i+"("+(this.percentage-t/this.size*this.percentage)+"% - "+this.bGutterSize+"px)"},z=function(){if(this.a.getBoundingClientRect()[n]<this.aMin){this.a.style[n]=this.aMin-this.aGutterSize+"px";this.b.style[n]=this.size-this.aMin-this.aGutterSize+"px"}else if(this.b.getBoundingClientRect()[n]<this.bMin){this.a.style[n]=this.size-this.bMin-this.bGutterSize+"px";this.b.style[n]=this.bMin-this.bGutterSize+"px"}},S=function(){if(this.b.getBoundingClientRect()[n]<this.bMin){this.a.style[n]=this.size-this.bMin-this.bGutterSize+"px";this.b.style[n]=this.bMin-this.bGutterSize+"px"}else if(this.a.getBoundingClientRect()[n]<this.aMin){this.a.style[n]=this.aMin-this.aGutterSize+"px";this.b.style[n]=this.size-this.aMin-this.aGutterSize+"px"}},b=function(t){for(var e=0;e<t.length;e++){g.call(t[e]);z.call(t[e])}for(var e=t.length-1;e>=0;e--){g.call(t[e]);S.call(t[e])}},p=function(){return false},v=document.getElementById(t[0]).parentNode;if(!s.sizes){var y=100/t.length;s.sizes=[];for(var m=0;m<t.length;m++){s.sizes.push(y)}}if(!Array.isArray(s.minSize)){var M=[];for(var m=0;m<t.length;m++){M.push(s.minSize)}s.minSize=M}for(var m=0;m<t.length;m++){var E=document.getElementById(t[m]),x=m==1,G=m==t.length-1,L,B=s.gutterSize,w;if(m>0){w={a:document.getElementById(t[m-1]),b:E,aMin:s.minSize[m-1],bMin:s.minSize[m],dragging:false,parent:v,isFirst:x,isLast:G,direction:s.direction};w.aGutterSize=s.gutterSize;w.bGutterSize=s.gutterSize;if(x){w.aGutterSize=s.gutterSize/2}if(G){w.bGutterSize=s.gutterSize/2}}if(!e){if(m>0){var U=document.createElement("div");U.className=l;U.style[n]=s.gutterSize+"px";U.addEventListener("mousedown",u.bind(w));v.addEventListener("mouseup",c.bind(w));v.addEventListener("mousemove",f.bind(w));v.addEventListener("mouseleave",c.bind(w));v.insertBefore(U,E);w.gutter=U}if(m==0||m==t.length-1){B=s.gutterSize/2}if(typeof s.sizes[m]==="string"||s.sizes[m]instanceof String){L=s.sizes[m]}else{L=i+"("+s.sizes[m]+"% - "+B+"px)"}}else{if(typeof s.sizes[m]==="string"||s.sizes[m]instanceof String){L=s.sizes[m]}else{L=s.sizes[m]+"%"}}E.style[n]=L;if(m>0){o.push(w)}}b(o)};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){exports=module.exports=s}exports.Split=s}else{t.Split=s}}).call(this);