/* See license.txt for terms of usage */ define("tabs/pageTimeline",["domplate/domplate","core/lib","core/trace","i18n!nls/pageTimeline","preview/harModel"],function(Domplate,Lib,Trace,Strings,HarModel){with(Domplate){function Timeline(){this.listeners=[],this.element=null,this.maxElapsedTime=-1,this.lastSelectedBar=null}Timeline.prototype=domplate({graphCols:FOR("page","$input|getPages",TD({"class":"pageTimelineCol"},DIV({"class":"pageBar",_input:"$input",_page:"$page",title:Strings.pageBarTooltip,style:"height: $page|getHeight\\px",onmousemove:"$onMouseMove",onclick:"$onClick"}))),pageGraph:TABLE({"class":"pageTimelineTable",cellpadding:0,cellspacing:0},TBODY(TR({"class":"pageTimelineRow"},TAG("$graphCols",{input:"$input"})))),tag:DIV({"class":"pageTimelineBody",style:"height: auto; display: none"},TABLE({style:"margin: 7px;",cellpadding:0,cellspacing:0},TBODY(TR(TD(TAG("$pageGraph",{input:"$input"}))),TR(TD({"class":"pageDescContainer",colspan:2}))))),getHeight:function(e){var t=1,n=e.pageTimings.onLoad;return n>0&&this.maxElapsedTime>0&&(t=Math.round(n/this.maxElapsedTime*100)),Math.max(1,t)},onClick:function(e){var t=Lib.fixEvent(e),n=t.target;if(!Lib.hasClass(n,"pageBar"))return;var r=Lib.isControlClick(t),i=Lib.isShiftClick(t),s=Lib.getAncestorByClass(n,"pageTimelineRow");!r&&!i&&Selection.unselectAll(s,n),Selection.toggle(n),this.selectionChanged()},onMouseMove:function(e){var t=Lib.fixEvent(e),n=t.target;if(!Lib.hasClass(n,"pageBar"))return;if(this.highlightedPage==n.page)return;this.highlightedPage=n.page;var r=Lib.getElementByClass(this.element,"pageDescContainer");Timeline.Desc.render(r,n)},getPages:function(e){return e.log.pages?e.log.pages:[]},getPageBar:function(e){if(!this.element)return;var t=Lib.getElementByClass(this.element,"pageTimelineTable"),n=t.firstChild.firstChild.firstChild;while(n){if(n.firstChild.page==e)return n.firstChild;n=n.nextSibling}},recalcLayout:function(){this.maxElapsedTime=0;var e=this.maxElapsedTime,t=Lib.getElementsByClass(this.element,"pageBar");for(var n=0;n0&&this.maxElapsedTime0&&(t+=Strings.pageLoad+": "+Lib.formatTime(n)+", ");var r=HarModel.getPageEntries(e.input,e.page),i=r.length;return t+=i+" "+(i==1?Strings.request:Strings.requests),t},getTime:function(e){var t=Lib.parseISO8601(e.startedDateTime),n=new Date(t);return n.toLocaleString()},getTitle:function(e){return e.title},getComment:function(e){return e.comment?e.comment:""},render:function(e,t){var n={input:t.input,page:t.page},r=this.tag.replace({object:n},e),i=Lib.$(r,"connector");return i.style.marginLeft=t.parentNode.offsetLeft+"px",r}});var Selection={isSelected:function(e){return Lib.hasClass(e,"selected")},toggle:function(e){Lib.toggleClass(e,"selected")},select:function(e){this.isSelected(e)||Lib.setClass(e,"selected")},unselect:function(e){this.isSelected(e)&&Lib.removeClass(e,"selected")},getSelection:function(e){var t=[],n=Lib.getElementsByClass(e,"pageBar");for(var r=0;r