UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 1.35 kB
import*as Common from"../../core/common/common.js";import*as Root from"../../core/root/root.js";import*as SDK from"../../core/sdk/sdk.js";let contrastCheckTriggerInstance=null;export class ContrastCheckTrigger{#e=new WeakMap;#t=new WeakMap;constructor(){SDK.TargetManager.TargetManager.instance().observeModels(SDK.ResourceTreeModel.ResourceTreeModel,this)}static instance({forceNew:e}={forceNew:!1}){return contrastCheckTriggerInstance&&!e||(contrastCheckTriggerInstance=new ContrastCheckTrigger),contrastCheckTriggerInstance}async modelAdded(e){this.#e.set(e,e.addEventListener(SDK.ResourceTreeModel.Events.Load,this.#r,this)),this.#t.set(e,e.addEventListener(SDK.ResourceTreeModel.Events.FrameAdded,this.#s,this))}modelRemoved(e){const t=this.#e.get(e);t&&Common.EventTarget.removeEventListeners([t]);const r=this.#t.get(e);r&&Common.EventTarget.removeEventListeners([r])}#o(e){Root.Runtime.experiments.isEnabled("contrastIssues")&&e.target().auditsAgent().invoke_checkContrast({})}#r(e){const{resourceTreeModel:t}=e.data;this.#o(t)}async#s(e){if(!Root.Runtime.experiments.isEnabled("contrastIssues"))return;const t=e.data;if(!t.isMainFrame())return;const r=await t.resourceTreeModel().target().runtimeAgent().invoke_evaluate({expression:"document.readyState",returnByValue:!0});r.result&&"complete"===r.result.value&&this.#o(t.resourceTreeModel())}}