UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 2.96 kB
import*as CSSOverviewComponents from"./components/components.js";import cssOverviewStyles from"./cssOverview.css.js";import*as Host from"../../core/host/host.js";import*as SDK from"../../core/sdk/sdk.js";import*as UI from"../../ui/legacy/legacy.js";import{CSSOverviewCompletedView}from"./CSSOverviewCompletedView.js";import{CSSOverviewModel}from"./CSSOverviewModel.js";import{CSSOverviewProcessingView}from"./CSSOverviewProcessingView.js";export class CSSOverviewPanel extends UI.Panel.Panel{#e;#t;#s;#i;#o;#r;#l;#n;#a;#h;#d;#w;#v;#C;#c;constructor(e){super("css_overview"),this.element.classList.add("css-overview-panel"),this.#e=e,this.#t=new CSSOverviewComponents.CSSOverviewStartView.CSSOverviewStartView,this.#t.addEventListener("overviewstartrequested",(()=>this.#e.dispatchEventToListeners("RequestOverviewStart"))),this.#s=new CSSOverviewProcessingView(this.#e),this.#i=new CSSOverviewCompletedView(this.#e),SDK.TargetManager.TargetManager.instance().observeTargets(this),this.#e.addEventListener("RequestOverviewStart",(e=>{Host.userMetrics.actionTaken(Host.UserMetrics.Action.CaptureCssOverviewClicked),this.#m()}),this),this.#e.addEventListener("OverviewCompleted",this.#S,this),this.#e.addEventListener("Reset",this.#g,this),this.#e.addEventListener("RequestNodeHighlight",this.#p,this),this.#g()}targetAdded(e){if(e!==SDK.TargetManager.TargetManager.instance().primaryPageTarget())return;this.#i.initializeModels(e);const t=e.model(CSSOverviewModel);this.#o=t}targetRemoved(){}#u(){if(!this.#o)throw new Error("Did not retrieve model information yet.");return this.#o}#g(){this.#r=new Map,this.#l=new Map,this.#n=new Map,this.#a=new Map,this.#h=new Map,this.#d=new Map,this.#w=new Map,this.#v=0,this.#C={styleRules:0,inlineStyles:0,externalSheets:0,stats:{type:0,class:0,id:0,universal:0,attribute:0,nonSimple:0}},this.#c=new Map,this.#V()}#p(e){this.#u().highlightNode(e.data)}#V(){this.#s.hideWidget(),this.#i.hideWidget(),this.contentElement.append(this.#t),this.#t.show()}#f(){this.#t.hide(),this.#i.hideWidget(),this.#s.show(this.contentElement)}#O(){this.#t.hide(),this.#s.hideWidget(),this.#i.show(this.contentElement),this.#i.setOverviewData({backgroundColors:this.#r,textColors:this.#l,textColorContrastIssues:this.#c,fillColors:this.#n,borderColors:this.#a,globalStyleStats:this.#C,fontInfo:this.#h,elementCount:this.#v,mediaQueries:this.#d,unusedDeclarations:this.#w})}async#m(){this.#f();const e=this.#u(),[t,{elementCount:s,backgroundColors:i,textColors:o,textColorContrastIssues:r,fillColors:l,borderColors:n,fontInfo:a,unusedDeclarations:h},d]=await Promise.all([e.getGlobalStylesheetStats(),e.getNodeStyleStats(),e.getMediaQueries()]);s&&(this.#v=s),t&&(this.#C=t),d&&(this.#d=d),i&&(this.#r=i),o&&(this.#l=o),r&&(this.#c=r),l&&(this.#n=l),n&&(this.#a=n),a&&(this.#h=a),h&&(this.#w=h),this.#e.dispatchEventToListeners("OverviewCompleted")}#S(){this.#O()}wasShown(){super.wasShown(),this.registerCSSFiles([cssOverviewStyles])}}