UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 3.3 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";import*as UI from"../../ui/legacy/legacy.js";import{ElementsPanel}from"./ElementsPanel.js";let inspectElementModeController,toggleSearchActionDelegateInstance;export class InspectElementModeController{toggleSearchAction;mode;showDetailedInspectTooltipSetting;constructor(){this.toggleSearchAction=UI.ActionRegistry.ActionRegistry.instance().action("elements.toggle-element-search"),this.mode="none",SDK.TargetManager.TargetManager.instance().addEventListener(SDK.TargetManager.Events.SuspendStateChanged,this.suspendStateChanged,this),SDK.TargetManager.TargetManager.instance().addModelListener(SDK.OverlayModel.OverlayModel,SDK.OverlayModel.Events.ExitedInspectMode,(()=>this.setMode("none")),void 0,{scoped:!0}),SDK.OverlayModel.OverlayModel.setInspectNodeHandler(this.inspectNode.bind(this)),SDK.TargetManager.TargetManager.instance().observeModels(SDK.OverlayModel.OverlayModel,this,{scoped:!0}),this.showDetailedInspectTooltipSetting=Common.Settings.Settings.instance().moduleSetting("showDetailedInspectTooltip"),this.showDetailedInspectTooltipSetting.addChangeListener(this.showDetailedInspectTooltipChanged.bind(this)),document.addEventListener("keydown",(e=>{e.keyCode===UI.KeyboardShortcut.Keys.Esc.code&&this.isInInspectElementMode()&&(this.setMode("none"),e.consume(!0))}),!0)}static instance({forceNew:e}={forceNew:!1}){return inspectElementModeController&&!e||(inspectElementModeController=new InspectElementModeController),inspectElementModeController}modelAdded(e){"none"!==this.mode&&e.setInspectMode(this.mode,this.showDetailedInspectTooltipSetting.get())}modelRemoved(e){}isInInspectElementMode(){return"none"!==this.mode}toggleInspectMode(){let e;e=this.isInInspectElementMode()?"none":Common.Settings.Settings.instance().moduleSetting("showUAShadowDOM").get()?"searchForUAShadowDOM":"searchForNode",this.setMode(e)}captureScreenshotMode(){this.setMode("captureAreaScreenshot")}setMode(e){if(!SDK.TargetManager.TargetManager.instance().allTargetsSuspended()){this.mode=e;for(const t of SDK.TargetManager.TargetManager.instance().models(SDK.OverlayModel.OverlayModel,{scoped:!0}))t.setInspectMode(e,this.showDetailedInspectTooltipSetting.get());this.toggleSearchAction&&this.toggleSearchAction.setToggled(this.isInInspectElementMode())}}suspendStateChanged(){SDK.TargetManager.TargetManager.instance().allTargetsSuspended()&&(this.mode="none",this.toggleSearchAction&&this.toggleSearchAction.setToggled(!1))}inspectNode(e){ElementsPanel.instance().revealAndSelectNode(e,!0,!0)}showDetailedInspectTooltipChanged(){this.setMode(this.mode)}}export class ToggleSearchActionDelegate{handleAction(e,t){return!Root.Runtime.Runtime.queryParam("isSharedWorker")&&(inspectElementModeController=InspectElementModeController.instance(),!!inspectElementModeController&&("elements.toggle-element-search"===t?inspectElementModeController.toggleInspectMode():"elements.capture-area-screenshot"===t&&inspectElementModeController.captureScreenshotMode(),!0))}static instance(e={forceNew:null}){const{forceNew:t}=e;return toggleSearchActionDelegateInstance&&!t||(toggleSearchActionDelegateInstance=new ToggleSearchActionDelegate),toggleSearchActionDelegateInstance}}