/*! * UI development toolkit for HTML5 (OpenUI5) * (c) Copyright 2009-2018 SAP SE or an SAP affiliate company. * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. */ sap.ui.define(['jquery.sap.global','./library','sap/ui/core/Control','sap/ui/core/Popup','sap/ui/core/ResizeHandler','sap/ui/core/delegate/ItemNavigation',"./SplitterRenderer",'jquery.sap.events','jquery.sap.keycodes'],function(q,l,C,P,R,I,S){"use strict";var a=C.extend("sap.ui.commons.Splitter",{metadata:{library:"sap.ui.commons",properties:{splitterOrientation:{type:"sap.ui.core.Orientation",group:"Behavior",defaultValue:sap.ui.core.Orientation.Vertical},splitterPosition:{type:"sap.ui.core.Percentage",group:"Behavior",defaultValue:'50%'},minSizeFirstPane:{type:"sap.ui.core.Percentage",group:"Behavior",defaultValue:'0%'},minSizeSecondPane:{type:"sap.ui.core.Percentage",group:"Behavior",defaultValue:'0%'},width:{type:"sap.ui.commons.SplitterSize",group:"Behavior",defaultValue:'100%'},height:{type:"sap.ui.commons.SplitterSize",group:"Behavior",defaultValue:'100%'},showScrollBars:{type:"boolean",group:"Behavior",defaultValue:true},splitterBarVisible:{type:"boolean",group:"Behavior",defaultValue:true}},aggregations:{firstPaneContent:{type:"sap.ui.core.Control",multiple:true,singularName:"firstPaneContent"},secondPaneContent:{type:"sap.ui.core.Control",multiple:true,singularName:"secondPaneContent"}}}});a.prototype.onBeforeRendering=function(){if(this.sResizeListenerId){R.deregister(this.sResizeListenerId);this.sResizeListenerId=null;}if(this.sSpecialResizeListenerId){R.deregister(this.sSpecialResizeListenerId);this.sSpecialResizeListenerId=null;}};a.prototype.onAfterRendering=function(){this._recalculateInternals();this.sResizeListenerId=R.register(this.splitterDIV,q.proxy(this.onresize,this));};a.prototype._recalculateInternals=function(){this.splitterDIV=this.getDomRef();this.splitterBar=q.sap.domById(this.getId()+'_SB');this.firstPane=q.sap.domById(this.getId()+'_firstPane');this.secondPane=q.sap.domById(this.getId()+'_secondPane');this.minSizeFP=this.getMinSizeFirstPane();this.minSizeSP=this.getMinSizeSecondPane();this.minSizeFP=this.minSizeFP.substring(0,(this.minSizeFP).length-1);this.minSizeFP=parseFloat(this.minSizeFP);this.minSizeSP=this.minSizeSP.substring(0,(this.minSizeSP).length-1);this.minSizeSP=parseFloat(this.minSizeSP);this.spOrientation=this.getSplitterOrientation();this.sBarPosition=this.getSplitterPosition();this.sBarPosition=this.sBarPosition.substring(0,this.sBarPosition.length-1);this.sBarPosition=parseFloat(this.sBarPosition);if(sap.ui.getCore().getConfiguration().getTheme()=="sap_hcb"){this.sbSize=6;}else{this.sbSize=4;}this.resizeSplitterElements();var s=q(this.splitterBar).height();if(this.spOrientation==sap.ui.core.Orientation.Vertical){if(s<=0||s>q(this.splitterDIV).height()){this.fixHeight();}}else{if(s<=0||s!=this.sbSize){this.fixHeight();}}};a.prototype.onresize=function(e){this.resizeSplitterElements();};a.prototype.resizeSplitterElements=function(){var s,b,w,h,c,d;if(this.spOrientation==sap.ui.core.Orientation.Vertical){w=q(this.splitterDIV).width();if(w==0){w=100;}s=(this.sbSize*100)/w;if(this.sBarPosition>=100||this.sBarPosition+s>100){this.sBarPosition=100-s;c=0;}else{c=100-s-this.sBarPosition;}q(this.firstPane).css("width",this.sBarPosition+"%");q(this.splitterBar).css("width",s+"%");q(this.secondPane).css("width",c+"%");}else{h=q(this.splitterDIV).height();if(h==0){h=100;}b=(this.sbSize*100)/h;if(this.sBarPosition>=100||this.sBarPosition+b>100){this.sBarPosition=100-b;d=0;}else{d=100-b-this.sBarPosition;}q(this.firstPane).css("height",this.sBarPosition+"%");q(this.splitterBar).css("height",b+"%");q(this.secondPane).css("height",d+"%");}this.setProperty("splitterPosition",this.sBarPosition+"%",true);if(q(this.splitterDIV).height()==0&&!this.splitterDIV.style.height){q(this.splitterDIV).css("height","100px");q(this.splitterBar).css("height","100px");}};a.prototype.setSplitterPosition=function(p){if(this.getDomRef()){this.setProperty("splitterPosition",p,true);this._recalculateInternals();}else{this.setProperty("splitterPosition",p);}return this;};a.prototype.setSplitterBarVisible=function(v){if(this.getDomRef()){this.setProperty("splitterBarVisible",v,true);var c=this.getSplitterOrientation()===sap.ui.core.Orientation.Vertical?"sapUiVertical":"sapUiHorizontal";if(v){q.sap.byId(this.getId()+"_SB").removeClass(c+"SplitterBarHidden").addClass(c+"SplitterBar");}else{q.sap.byId(this.getId()+"_SB").removeClass(c+"SplitterBar").addClass(c+"SplitterBarHidden");}}else{this.setProperty("splitterBarVisible",v);}return this;};a.prototype.fixHeight=function(){var p=q(this.splitterDIV.parentNode).height();var s=q(this.splitterDIV).height();if(p>s){s=p;var c=this.getHeight();if(c&&c.toLowerCase().indexOf("px")!=-1){s=parseInt(c,10);}if(c&&c.toLowerCase().indexOf("%")!=-1){var b=parseInt(c,10);if(b<100){s=q(this.splitterDIV).height();}}if(s<=0){s=p;}}q(this.splitterDIV).css("height",s+"px");if(this.spOrientation==sap.ui.core.Orientation.Vertical){q(this.splitterBar).css("height",s+"px");}var o=this.splitterDIV.parentNode;if(o){var h=q.proxy(this.onresizespecial,this);this.sSpecialResizeListenerId=R.register(o,h);}};a.prototype.exit=function(){if(this.sResizeListenerId){R.deregister(this.sResizeListenerId);this.sResizeListenerId=null;}if(this.sSpecialResizeListenerId){R.deregister(this.sSpecialResizeListenerId);this.sSpecialResizeListenerId=null;}};a.prototype.onresizespecial=function(e){var s=q(this.splitterDIV);var o=s.height();s.css("height","0px");var d=this.getDomRef();if(d&&window.getComputedStyle){window.getComputedStyle(d);}var p=q(e.target).height();var c=s.height();if(c!=p){s.css("height",p+"px");if(this.spOrientation==sap.ui.core.Orientation.Vertical){q(this.splitterBar).css("height",p+"px");}}if(p<=0){s.css("height",o+"px");if(this.spOrientation==sap.ui.core.Orientation.Vertical){q(this.splitterBar).css("height",o+"px");}}};a.prototype.onmousedown=function(e){if(e.target!=this.splitterBar){return;}var j=q(document.body);j.bind("selectstart",q.proxy(this.splitterSelectStart,this));var o=q(this.splitterBar).offset();var h=q(this.splitterBar).height();var w=q(this.splitterBar).width();var c;if(this.spOrientation==sap.ui.core.Orientation.Vertical){c="sapUiVSBGhost";}else{c="sapUiHSBGhost";}var z=P.getLastZIndex()+5;if(z<20){z=20;}q(document.body).append("
");q(document.body).append("
");q(document).bind("mouseup",q.proxy(this.onGhostMouseRelease,this));q(document).bind("mousemove",q.proxy(this.onGhostMouseMove,this));q(this.splitterBar).focus();e.preventDefault();e.stopPropagation();};a.prototype.splitterSelectStart=function(e){e.preventDefault();e.stopPropagation();return false;};a.prototype.onGhostMouseRelease=function(e){var n,s,b;var c=q.sap.domById(this.getId()+"_ghost");var r=sap.ui.getCore().getConfiguration().getRTL();if(this.spOrientation==sap.ui.core.Orientation.Vertical){if(!r){n=e.pageX-q(this.firstPane).offset().left;b=q(this.splitterDIV).width();n=(n*100)/b;}else{n=e.pageX-q(this.secondPane).offset().left;b=q(this.splitterDIV).width();n=((b-n)*100)/b;}}else{n=e.pageY-q(this.firstPane).offset().top;s=q(this.splitterDIV).height();n=(n*100)/s;}if(nb&&e.pageXb&&e.pageXb&&e.pageY