rich-filemanager
Version:
Highly customizable open-source file manager
9 lines (7 loc) • 7.66 kB
JavaScript
/*! jQuery Splitter - v2.0.1 - 2014-03-22
* http://jquery.com
* Includes: splitter.js
* Copyright 2014 Dave Methvin and other contributors
* Licensed MIT, GPL
*/
!function(a){function b(){return"msie"===c[0]&&parseInt(c[1])<9}var c=function(){var a,b=navigator.appName,c=navigator.userAgent,d=c.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);return d&&null!=(a=c.match(/version\/([\.\d]+)/i))&&(d[2]=a[1]),d=d?[d[1],d[2]]:[b,navigator.appVersion,"-?"]}(),d=0;a.fn.splitter=function(e){return e=e||{},this.each(function(){function f(a){u.removeClass(o.barStateClasses).addClass(a)}function g(b){1===b.which&&(u.removeClass(o.barHoverClass),o.outline&&(m=m||u.clone(!1).insertAfter(r),u.removeClass(o.barDockedClass)),f(o.barActiveClass),q.css({"user-select":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","pointer-events":"none"}).find("iframe").addClass(o.iframeClass),r._posSplit=r[0][o.pxSplit]-b[o.eventPos],a(document).bind("mousemove"+o.eventNamespace,h).bind("mouseup"+o.eventNamespace,i))}function h(a){var b=r._posSplit+a[o.eventPos],c=Math.max(0,Math.min(b,p._DA-u._DA)),d=Math.max(r._min,p._DA-s._max,Math.min(b,r._max,p._DA-u._DA-s._min));o.outline?(o.dockPane===r&&b<Math.max(r._min,u._DA)||o.dockPane===s&&b>Math.min(b,r._max,p._DA-u._DA-s._min)?u.addClass(o.barDockedClass).css(o.origin,c):u.removeClass(o.barDockedClass).css(o.origin,d),u._DA=u[0][o.pxSplit]):j(b),f(b===d?o.barActiveClass:o.barLimitClass)}function i(b){f(o.barNormalClass),u.addClass(o.barHoverClass);var c=r._posSplit+b[o.eventPos];o.outline&&(m&&m.remove(),m=null,j(c)),q.css({"user-select":"text","-webkit-user-select":"text","-khtml-user-select":"text","-moz-user-select":"text","pointer-events":"auto"}).find("iframe").removeClass(o.iframeClass),a(document).unbind("mousemove"+o.eventNamespace+" mouseup"+o.eventNamespace)}function j(a){u._DA=u[0][o.pxSplit],o.dockPane===r&&a<Math.max(r._min,u._DA)||o.dockPane===s&&a>Math.min(a,r._max,p._DA-u._DA-s._min)?(u.addClass(o.barDockedClass),u._DA=u[0][o.pxSplit],a=o.dockPane===r?0:p._DA-u._DA,null===u._pos&&(u._pos=r[0][o.pxSplit])):(u.removeClass(o.barDockedClass),u._DA=u[0][o.pxSplit],u._pos=null,a=Math.max(r._min,p._DA-s._max,Math.min(a,r._max,p._DA-u._DA-s._min))),u.css(o.origin,a).css(o.fixed,p._DF),r.css(o.origin,0).css(o.split,a).css(o.fixed,p._DF),s.css(o.origin,a+u._DA).css(o.split,p._DA-u._DA-a).css(o.fixed,p._DF),b()||q.triggerHandler("resize")}function k(a){for(var b=0,c=1;c<arguments.length;c++)b+=Math.max(parseInt(a.css(arguments[c]),10)||0,0);return b}function l(a){p._DF=p[0][o.pxFixed]-p._PBF,p._DA=p[0][o.pxSplit]-p._PBA,p._DF<=0||p._DA<=0||(p._oldW!==p.width()||p._oldH!==p.height())&&(p._oldW=p.width(),p._oldH=p.height(),j(isNaN(a)?o.sizeRight||o.sizeBottom?p._DA-s[0][o.pxSplit]-u._DA:r[0][o.pxSplit]:a),f(o.barNormalClass))}if(!a(this).attr("data-splitter-initialized")){var m,n=(e.splitHorizontal?"h":e.splitVertical?"v":e.type)||"v",o=a.extend({splitterClass:"splitter ui-widget ui-widget-content",paneClass:"splitter-pane",barClass:"splitter-bar",barNormalClass:"ui-state-default",barHoverClass:"ui-state-hover",barActiveClass:"ui-state-highlight",barLimitClass:"ui-state-error",iframeClass:"splitter-iframe-hide",eventNamespace:".splitter"+ ++d,pxPerKey:8,tabIndex:0,accessKey:"",dockSpeed:1,undockSpeed:1,dockEase:null,undockEase:null},{v:{keyLeft:39,keyRight:37,cursor:"e-resize",barStateClass:"splitter-bar-vertical",barDockedClass:"splitter-bar-vertical-docked"},h:{keyTop:40,keyBottom:38,cursor:"n-resize",barStateClass:"splitter-bar-horizontal",barDockedClass:"splitter-bar-horizontal-docked"}}[n],e,{v:{type:"v",eventPos:"pageX",origin:"left",split:"width",pxSplit:"offsetWidth",side1:"Left",side2:"Right",fixed:"height",pxFixed:"offsetHeight",side3:"Top",side4:"Bottom"},h:{type:"h",eventPos:"pageY",origin:"top",split:"height",pxSplit:"offsetHeight",side1:"Top",side2:"Bottom",fixed:"width",pxFixed:"offsetWidth",side3:"Left",side4:"Right"}}[n]);o.barStateClasses=[o.barNormalClass,o.barHoverClass,o.barActiveClass,o.barLimitClass].join(" ");var p=a(this).css({position:"relative"}).addClass(o.splitterClass).attr("data-splitter-initialized",!0),q=a(">*",p[0]).addClass(o.paneClass).css({position:"absolute","z-index":"1","-moz-outline-style":"none"}),r=a(q[0]),s=a(q[1]);o.dockPane=o.dock&&(/right|bottom/.test(o.dock)?s:r);var t=a("<a />").attr({accessKey:o.accessKey,tabIndex:o.tabIndex,title:o.splitbarClass}).bind(("opera"===c?"click":"focus")+o.eventNamespace,function(){this.focus(),u.addClass(o.barActiveClass)}).bind("blur"+o.eventNamespace,function(){u.removeClass(o.barActiveClass)});""!==o.accessKey&&t.bind("keydown"+o.eventNamespace,function(a){var b=a.which||a.keyCode,c=b===o["key"+o.side1]?1:b===o["key"+o.side2]?-1:0;c&&j(r[0][o.pxSplit]+c*o.pxPerKey)});var u=a("<div />").insertAfter(r).addClass(o.barClass).addClass(o.barStateClass).append(t).attr({unselectable:"on"}).css({position:"absolute","user-select":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","z-index":"100"}).bind("mousedown"+o.eventNamespace,g).bind("mouseover"+o.eventNamespace,function(){a(this).addClass(o.barHoverClass)}).bind("mouseout"+o.eventNamespace,function(){a(this).removeClass(o.barHoverClass)});/^(auto|default|)$/.test(u.css("cursor"))&&u.css("cursor",o.cursor),u._DA=u[0][o.pxSplit],p._PBF=k(p,"border"+o.side3+"Width","border"+o.side4+"Width"),p._PBA=k(p,"border"+o.side1+"Width","border"+o.side2+"Width"),r._pane=o.side1,s._pane=o.side2,a.each([r,s],function(){this._splitter_style=this.style,this._min=o["min"+this._pane]||k(this,"min-"+o.split),this._max=o["max"+this._pane]||k(this,"max-"+o.split)||9999,this._init=o["size"+this._pane]===!0?parseInt(a.css(this[0],o.split),10):o["size"+this._pane]});var v=r._init;isNaN(s._init)||(v=p[0][o.pxSplit]-p._PBA-s._init-u._DA),isNaN(v)&&(v=Math.round((p[0][o.pxSplit]-p._PBA-u._DA)/2)),o.anchorToWindow&&(o.resizeTo=window),o.resizeTo?(p._hadjust=k(p,"borderTopWidth","borderBottomWidth","marginBottom"),p._hmin=Math.max(k(p,"minHeight"),20),a(window).bind("resize"+o.eventNamespace,function(){var c=p.offset().top,d=a(o.resizeTo).height();p.css("height",Math.max(d-c-p._hadjust,p._hmin)+"px"),b()||p.triggerHandler("resize")}).triggerHandler("resize")):o.resizeToWidth&&!b()&&a(window).bind("resize"+o.eventNamespace,function(){l()}),o.dock&&(p.bind("toggleDock"+o.eventNamespace,function(){var a=o.dockPane[0][o.pxSplit];p.triggerHandler(a?"dock":"undock")}).bind("dock"+o.eventNamespace,function(){var a=r[0][o.pxSplit];if(a){u._pos=a;var b={};b[o.origin]=o.dockPane===r?0:p[0][o.pxSplit]-p._PBA-u[0][o.pxSplit],u.animate(b,o.dockSpeed||1,o.dockEasing,function(){u.addClass(o.barDockedClass),j(b[o.origin])})}}).bind("undock"+o.eventNamespace,function(){var a=o.dockPane[0][o.pxSplit];if(!a){var b={};b[o.origin]=u._pos+"px",u.removeClass(o.barDockedClass).animate(b,o.undockSpeed||o.dockSpeed||1,o.undockEasing||o.dockEasing,function(){j(u._pos),u._pos=null})}}),o.dockKey&&a('<a title="'+o.splitbarClass+' toggle dock"></a>').attr({accessKey:o.dockKey,tabIndex:-1}).appendTo(u).bind("opera"===c?"click":"focus",function(){p.triggerHandler("toggleDock"),this.blur()}),u.bind("dblclick",function(){p.triggerHandler("toggleDock")})),p.bind("destroy"+o.eventNamespace,function(){a([window,document]).unbind(o.eventNamespace),u.unbind().remove(),q.removeClass(o.paneClass),p.removeClass(o.splitterClass).add(q).unbind(o.eventNamespace).attr("style",function(){return this._splitter_style||""}),p=u=t=q=r=s=o=e=null}).bind("resize"+o.eventNamespace,function(a,b){l(b)}).triggerHandler("resize",[v])}})}}(jQuery);