UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 5.93 kB
import*as Common from"../../core/common/common.js";import*as i18n from"../../core/i18n/i18n.js";import*as SDK from"../../core/sdk/sdk.js";import*as IconButton from"../../ui/components/icon_button/icon_button.js";import debuggerPausedMessageStyles from"./debuggerPausedMessage.css.js";import*as UI from"../../ui/legacy/legacy.js";const UIStrings={pausedOnS:"Paused on {PH1}",childSAdded:"Child {PH1} added",descendantSAdded:"Descendant {PH1} added",descendantSRemoved:"Descendant {PH1} removed",pausedOnEventListener:"Paused on event listener",pausedOnXhrOrFetch:"Paused on XHR or fetch",pausedOnException:"Paused on exception",pausedOnPromiseRejection:"Paused on `promise` rejection",pausedOnAssertion:"Paused on assertion",pausedOnDebuggedFunction:"Paused on debugged function",pausedBeforePotentialOutofmemory:"Paused before potential out-of-memory crash",pausedOnCspViolation:"Paused on CSP violation",trustedTypeSinkViolation:"`Trusted Type` Sink Violation",trustedTypePolicyViolation:"`Trusted Type` Policy Violation",pausedOnBreakpoint:"Paused on breakpoint",debuggerPaused:"Debugger paused",subtreeModifications:"subtree modifications",attributeModifications:"attribute modifications",nodeRemoval:"node removal"},str_=i18n.i18n.registerUIStrings("panels/sources/DebuggerPausedMessage.ts",UIStrings),i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_),i18nLazyString=i18n.i18n.getLazilyComputedLocalizedString.bind(void 0,str_);export class DebuggerPausedMessage{elementInternal;contentElement;constructor(){this.elementInternal=document.createElement("div"),this.elementInternal.classList.add("paused-message"),this.elementInternal.classList.add("flex-none");const e=UI.Utils.createShadowRootWithCoreStyles(this.elementInternal,{cssFile:[debuggerPausedMessageStyles],delegatesFocus:void 0});this.contentElement=e.createChild("div"),UI.ARIAUtils.markAsPoliteLiveRegion(this.elementInternal,!1)}element(){return this.elementInternal}static descriptionWithoutStack(e){const t=/^\s+at\s/m.exec(e);return t?e.substring(0,t.index-1):e.substring(0,e.lastIndexOf("\n"))}static async createDOMBreakpointHitMessage(e){const t=document.createElement("span"),n=e.debuggerModel.target().model(SDK.DOMDebuggerModel.DOMDebuggerModel);if(!e.auxData||!n)return t;const i=n.resolveDOMBreakpointData(e.auxData);if(!i)return t;const s=t.createChild("div","status-main"),o=new IconButton.Icon.Icon;o.data={iconName:"info-filled",color:"var(--icon-default)",width:"14px",height:"14px"},s.appendChild(o);const a=BreakpointTypeNouns.get(i.type);s.appendChild(document.createTextNode(i18nString(UIStrings.pausedOnS,{PH1:a?a():String(null)})));const r=t.createChild("div","status-sub monospace"),d=await Common.Linkifier.Linkifier.linkify(i.node);if(r.appendChild(d),i.targetNode){const e=await Common.Linkifier.Linkifier.linkify(i.targetNode);let t;t=i.insertion?i.targetNode===i.node?i18n.i18n.getFormatLocalizedString(str_,UIStrings.childSAdded,{PH1:e}):i18n.i18n.getFormatLocalizedString(str_,UIStrings.descendantSAdded,{PH1:e}):i18n.i18n.getFormatLocalizedString(str_,UIStrings.descendantSRemoved,{PH1:e}),r.appendChild(document.createElement("br")),r.appendChild(t)}return t}async render(e,t,n){if(this.contentElement.removeChildren(),this.contentElement.hidden=!e,!e)return;const i=this.contentElement.createChild("div","paused-status"),s="exception"===e.reason||"promiseRejection"===e.reason||"assert"===e.reason||"OOM"===e.reason;let o;if("DOM"===e.reason)o=await DebuggerPausedMessage.createDOMBreakpointHitMessage(e);else if("EventListener"===e.reason){let t="";if(e.auxData){const n=SDK.EventBreakpointsModel.EventBreakpointsManager.instance().resolveEventListenerBreakpointTitle(e.auxData);t=n||SDK.DOMDebuggerModel.DOMDebuggerManager.instance().resolveEventListenerBreakpointTitle(e.auxData)}o=a(i18nString(UIStrings.pausedOnEventListener),t)}else if("XHR"===e.reason){const t=e.auxData;o=a(i18nString(UIStrings.pausedOnXhrOrFetch),t.url||"")}else if("exception"===e.reason){const t=e.auxData,n=t.description||t.value||"",i=DebuggerPausedMessage.descriptionWithoutStack(n);o=a(i18nString(UIStrings.pausedOnException),i,n)}else if("promiseRejection"===e.reason){const t=e.auxData,n=t.description||t.value||"",i=DebuggerPausedMessage.descriptionWithoutStack(n);o=a(i18nString(UIStrings.pausedOnPromiseRejection),i,n)}else if("assert"===e.reason)o=a(i18nString(UIStrings.pausedOnAssertion));else if("debugCommand"===e.reason)o=a(i18nString(UIStrings.pausedOnDebuggedFunction));else if("OOM"===e.reason)o=a(i18nString(UIStrings.pausedBeforePotentialOutofmemory));else if("CSPViolation"===e.reason&&e.auxData&&e.auxData.violationType){const t=e.auxData.violationType;"trustedtype-sink-violation"===t?o=a(i18nString(UIStrings.pausedOnCspViolation),i18nString(UIStrings.trustedTypeSinkViolation)):"trustedtype-policy-violation"===t&&(o=a(i18nString(UIStrings.pausedOnCspViolation),i18nString(UIStrings.trustedTypePolicyViolation)))}else if(e.callFrames.length){const i=await t.rawLocationToUILocation(e.callFrames[0].location()),s=i?n.findBreakpoint(i):null;o=a(i18nString(s?UIStrings.pausedOnBreakpoint:UIStrings.debuggerPaused))}else console.warn("ScriptsPanel paused, but callFrames.length is zero.");function a(e,t,n){const i=document.createElement("span"),o=i.createChild("div","status-main"),a=new IconButton.Icon.Icon;if(a.data={iconName:s?"cross-circle-filled":"info-filled",color:s?"var(--icon-error)":"var(--icon-default)",width:"14px",height:"14px"},o.appendChild(a),o.appendChild(document.createTextNode(e)),t){const e=i.createChild("div","status-sub monospace");e.textContent=t,UI.Tooltip.Tooltip.install(e,n||t)}return i}i.classList.toggle("error-reason",s),o&&i.appendChild(o)}}export const BreakpointTypeNouns=new Map([["subtree-modified",i18nLazyString(UIStrings.subtreeModifications)],["attribute-modified",i18nLazyString(UIStrings.attributeModifications)],["node-removed",i18nLazyString(UIStrings.nodeRemoval)]]);