@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
1 lines • 4.85 kB
JavaScript
import*as Common from"../../core/common/common.js";import*as i18n from"../../core/i18n/i18n.js";const UIStrings={sLatencySDownloadSTotal:"{PH1} latency, {PH2} download ({PH3} total)",sLatency:"{PH1} latency",sDownload:"{PH1} download",sFromServiceworker:"{PH1} (from `ServiceWorker`)",sFromCache:"{PH1} (from cache)"},str_=i18n.i18n.registerUIStrings("panels/network/NetworkTimeCalculator.ts",UIStrings),i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_);export class NetworkTimeBoundary{minimum;maximum;constructor(n,t){this.minimum=n,this.maximum=t}equals(n){return this.minimum===n.minimum&&this.maximum===n.maximum}}export class NetworkTimeCalculator extends Common.ObjectWrapper.ObjectWrapper{startAtZero;minimumBoundaryInternal;maximumBoundaryInternal;boundryChangedEventThrottler;window;workingArea;constructor(n){super(),this.startAtZero=n,this.minimumBoundaryInternal=-1,this.maximumBoundaryInternal=-1,this.boundryChangedEventThrottler=new Common.Throttler.Throttler(0),this.window=null}setWindow(n){this.window=n,this.boundaryChanged()}setInitialUserFriendlyBoundaries(){this.minimumBoundaryInternal=0,this.maximumBoundaryInternal=1}computePosition(n){return(n-this.minimumBoundary())/this.boundarySpan()*(this.workingArea||0)}formatValue(n,t){return i18n.TimeUtilities.secondsToString(n,Boolean(t))}minimumBoundary(){return this.window?this.window.minimum:this.minimumBoundaryInternal}zeroTime(){return this.minimumBoundaryInternal}maximumBoundary(){return this.window?this.window.maximum:this.maximumBoundaryInternal}boundary(){return new NetworkTimeBoundary(this.minimumBoundary(),this.maximumBoundary())}boundarySpan(){return this.maximumBoundary()-this.minimumBoundary()}reset(){this.minimumBoundaryInternal=-1,this.maximumBoundaryInternal=-1,this.boundaryChanged()}value(){return 0}setDisplayWidth(n){this.workingArea=n}computeBarGraphPercentages(n){let t,i,r;return t=-1!==n.startTime?(n.startTime-this.minimumBoundary())/this.boundarySpan()*100:0,i=-1!==n.responseReceivedTime?(n.responseReceivedTime-this.minimumBoundary())/this.boundarySpan()*100:this.startAtZero?t:100,r=-1!==n.endTime?(n.endTime-this.minimumBoundary())/this.boundarySpan()*100:this.startAtZero?i:100,this.startAtZero&&(r-=t,i-=t,t=0),{start:t,middle:i,end:r}}computePercentageFromEventTime(n){return-1===n||this.startAtZero?0:(n-this.minimumBoundary())/this.boundarySpan()*100}percentageToTime(n){return n*this.boundarySpan()/100+this.minimumBoundary()}boundaryChanged(){this.boundryChangedEventThrottler.schedule((async()=>{this.dispatchEventToListeners(Events.BoundariesChanged)}))}updateBoundariesForEventTime(n){-1===n||this.startAtZero||(void 0===this.maximumBoundaryInternal||n>this.maximumBoundaryInternal)&&(this.maximumBoundaryInternal=n,this.boundaryChanged())}computeBarGraphLabels(n){let t="";-1!==n.responseReceivedTime&&-1!==n.endTime&&(t=i18n.TimeUtilities.secondsToString(n.endTime-n.responseReceivedTime));const i=n.latency>0,r=i?i18n.TimeUtilities.secondsToString(n.latency):t;if(n.timing)return{left:r,right:t,tooltip:void 0};let e;if(i&&t){const i=i18n.TimeUtilities.secondsToString(n.duration);e=i18nString(UIStrings.sLatencySDownloadSTotal,{PH1:r,PH2:t,PH3:i})}else i?e=i18nString(UIStrings.sLatency,{PH1:r}):t&&(e=i18nString(UIStrings.sDownload,{PH1:t}));return n.fetchedViaServiceWorker?e=i18nString(UIStrings.sFromServiceworker,{PH1:String(e)}):n.cached()&&(e=i18nString(UIStrings.sFromCache,{PH1:String(e)})),{left:r,right:t,tooltip:e}}updateBoundaries(n){const t=this.lowerBound(n),i=this.upperBound(n);let r=!1;(-1!==t||this.startAtZero)&&(r=this.extendBoundariesToIncludeTimestamp(this.startAtZero?0:t)),-1!==i&&(r=this.extendBoundariesToIncludeTimestamp(i)||r),r&&this.boundaryChanged()}extendBoundariesToIncludeTimestamp(n){const t=this.minimumBoundaryInternal,i=this.maximumBoundaryInternal,r=_minimumSpread;return-1===this.minimumBoundaryInternal||-1===this.maximumBoundaryInternal?(this.minimumBoundaryInternal=n,this.maximumBoundaryInternal=n+r):(this.minimumBoundaryInternal=Math.min(n,this.minimumBoundaryInternal),this.maximumBoundaryInternal=Math.max(n,this.minimumBoundaryInternal+r,this.maximumBoundaryInternal)),t!==this.minimumBoundaryInternal||i!==this.maximumBoundaryInternal}lowerBound(n){return 0}upperBound(n){return 0}}export const _minimumSpread=.1;export var Events;!function(n){n.BoundariesChanged="BoundariesChanged"}(Events||(Events={}));export class NetworkTransferTimeCalculator extends NetworkTimeCalculator{constructor(){super(!1)}formatValue(n,t){return i18n.TimeUtilities.secondsToString(n-this.zeroTime(),Boolean(t))}lowerBound(n){return n.issueTime()}upperBound(n){return n.endTime}}export class NetworkTransferDurationCalculator extends NetworkTimeCalculator{constructor(){super(!0)}formatValue(n,t){return i18n.TimeUtilities.secondsToString(n,Boolean(t))}upperBound(n){return n.duration}}