@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
1 lines • 1.32 kB
JavaScript
import*as TraceEngine from"../../models/trace/trace.js";import*as i18n from"../../core/i18n/i18n.js";import{buildGroupStyle,buildTrackHeader,getFormattedTime}from"./AppenderUtils.js";const UIStrings={layoutShifts:"Layout Shifts"},str_=i18n.i18n.registerUIStrings("panels/timeline/LayoutShiftsTrackAppender.ts",UIStrings),i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_);export class LayoutShiftsTrackAppender{appenderName="LayoutShifts";#t;#e;#i;constructor(t,e,i){this.#t=t,this.#e=e,this.#i=i}appendTrackAtLevel(t,e){return 0===this.#i.LayoutShifts.clusters.length?t:(this.#r(t,e),this.#a(t))}#r(t,e){const i=buildGroupStyle({collapsible:!1}),r=buildTrackHeader(t,i18nString(UIStrings.layoutShifts),i,!0,e);this.#t.registerTrackForGroup(r,this)}#a(t){const e=this.#i.LayoutShifts.clusters.flatMap((t=>t.events)),i=this.#t.appendEventsAtLevel(e,t,this),r=TraceEngine.Types.Timing.MicroSeconds(5e3);for(let t=0;t<e.length;++t){const i=this.#t.indexForEvent(e[t]);void 0!==i&&(this.#e.entryTotalTimes[i]=TraceEngine.Helpers.Timing.microSecondsToMilliseconds(r))}return i}colorForEvent(t){return"rgb(155 127 230)"}titleForEvent(t){return TraceEngine.Types.TraceEvents.isTraceEventLayoutShift(t)?"Layout shift":t.name}highlightedEntryInfo(t){return{title:this.titleForEvent(t),formattedTime:getFormattedTime(t.dur)}}}