@react-native/debugger-frontend
Version:
Debugger frontend for React Native based on Chrome DevTools
2 lines • 273 kB
JavaScript
import*as e from"../../core/i18n/i18n.js";import*as t from"../../ui/legacy/legacy.js";import*as i from"../../models/workspace/workspace.js";import*as o from"../../ui/legacy/components/source_frame/source_frame.js";import*as n from"../../core/common/common.js";import*as r from"../../core/sdk/sdk.js";import*as s from"../../third_party/codemirror.next/codemirror.next.js";import*as a from"../../ui/components/icon_button/icon_button.js";import*as c from"../../ui/components/text_editor/text_editor.js";import*as l from"../../ui/visual_logging/visual_logging.js";import*as d from"../../core/host/host.js";import*as u from"../../core/platform/platform.js";import{assertNotNullOrUndefined as h}from"../../core/platform/platform.js";import*as p from"../../models/bindings/bindings.js";import*as g from"../../models/persistence/persistence.js";import*as m from"../../models/source_map_scopes/source_map_scopes.js";import*as b from"../../models/text_utils/text_utils.js";import*as f from"../coverage/coverage.js";import*as v from"../../ui/legacy/components/color_picker/color_picker.js";import*as S from"../../ui/legacy/components/inline_editor/inline_editor.js";import*as C from"../../models/breakpoints/breakpoints.js";import*as w from"../../models/formatter/formatter.js";import*as I from"../../ui/components/buttons/buttons.js";import*as y from"../../ui/legacy/components/object_ui/object_ui.js";import*as x from"./components/components.js";import*as k from"../../core/root/root.js";import*as T from"../../models/extensions/extensions.js";import*as E from"../snippets/snippets.js";import*as L from"../../ui/components/floating_button/floating_button.js";import{PanelUtils as M}from"../utils/utils.js";import*as P from"../search/search.js";import*as F from"../../ui/legacy/components/quick_open/quick_open.js";import*as D from"../../models/issues_manager/issues_manager.js";import*as A from"../../ui/components/adorners/adorners.js";import*as N from"../../ui/components/issue_counter/issue_counter.js";import*as U from"../../ui/legacy/components/utils/utils.js";var B={cssText:`:host{padding:var(--sys-size-7) var(--sys-size-8)}.widget{align-items:center}label{white-space:nowrap}input[type="text"].add-source-map{box-shadow:0 0 0 1px var(--box-shadow-outline-color);font-size:inherit;margin:0 8px 0 5px}\n/*# sourceURL=${import.meta.resolve("./dialog.css")} */\n`};const R={sourceMapUrl:"Source map URL: ",debugInfoUrl:"DWARF symbols URL: ",add:"Add"},j=e.i18n.registerUIStrings("panels/sources/AddSourceMapURLDialog.ts",R),W=e.i18n.getLocalizedString.bind(void 0,j);class V extends t.Widget.HBox{input;dialog;callback;constructor(e,i,o){super(!0),this.registerRequiredCSS(B),this.contentElement.createChild("label").textContent=e,this.input=t.UIUtils.createInput("add-source-map","text","url"),this.input.addEventListener("keydown",this.onKeyDown.bind(this),!1),this.contentElement.appendChild(this.input);const n=t.UIUtils.createTextButton(W(R.add),this.apply.bind(this),{jslogContext:"add"});this.contentElement.appendChild(n),this.dialog=new t.Dialog.Dialog(i),this.dialog.setSizeBehavior("MeasureContent"),this.dialog.setDefaultFocusedElement(this.input),this.callback=o}static createAddSourceMapURLDialog(e){return new V(W(R.sourceMapUrl),"add-source-map-url",e)}static createAddDWARFSymbolsURLDialog(e){return new V(W(R.debugInfoUrl),"add-debug-info-url",e)}show(){super.show(this.dialog.contentElement),this.dialog.show()}done(e){this.dialog.hide(),this.callback(e)}apply(){this.done(this.input.value)}onKeyDown(e){"Enter"===e.key&&(e.consume(!0),this.apply())}}var O=Object.freeze({__proto__:null,AddDebugInfoURLDialog:V});class H{uiSourceCode;constructor(e,t){this.uiSourceCode=e}static accepts(e){return!1}willHide(){}rightToolbarItems(){return[]}leftToolbarItems(){return[]}populateLineGutterContextMenu(e,t){}populateTextAreaContextMenu(e,t,i){}decorationChanged(e,t){}editorExtension(){return[]}editorInitialized(e){}dispose(){}}var _=Object.freeze({__proto__:null,Plugin:H});const z={aiContentWarning:"This file contains AI-generated content"},q=e.i18n.registerUIStrings("panels/sources/AiWarningInfobarPlugin.ts",z),$=e.i18n.getLocalizedString.bind(void 0,q);class G extends H{#e=void 0;#t=null;constructor(e){super(e),this.uiSourceCode.addEventListener(i.UISourceCode.Events.WorkingCopyCommitted,this.#i,this)}dispose(){this.#t?.dispose(),this.#t=null,this.uiSourceCode.removeEventListener(i.UISourceCode.Events.WorkingCopyCommitted,this.#i,this),super.dispose()}static accepts(e){return e.contentType().hasScripts()||e.contentType().hasStyleSheets()}editorInitialized(e){this.#e=e,this.uiSourceCode.containsAiChanges()&&this.#o()}#i(){this.uiSourceCode.containsAiChanges()||(this.#t?.dispose(),this.#t=null)}#o(){const e=new t.Infobar.Infobar("warning",$(z.aiContentWarning),void 0,void 0,"contains-ai-content-warning");this.#t=e,e.setCloseCallback((()=>this.removeInfobar(this.#t))),this.attachInfobar(this.#t)}attachInfobar(e){this.#e&&this.#e.dispatch({effects:o.SourceFrame.addInfobar.of(e)})}removeInfobar(e){this.#e&&e&&this.#e.dispatch({effects:o.SourceFrame.removeInfobar.of(e)})}}var K=Object.freeze({__proto__:null,AiWarningInfobarPlugin:G}),J={cssText:`:host{z-index:30;padding:4px;background-color:var(--sys-color-surface3);border-radius:7px;border:2px solid var(--sys-color-divider);width:90%;pointer-events:auto}:host(.sources-edit-breakpoint-dialog){border-radius:0;z-index:30;background-color:var(--sys-color-surface3);width:555px;pointer-events:auto;margin-left:-1px;padding:0 10px 10px 5px;border:1px solid var(--sys-color-divider)}:host-context(.sources-edit-breakpoint-dialog) .condition-editor{background-color:var(--sys-color-cdt-base-container);margin:0 6px 20px 3px}:host-context(.sources-edit-breakpoint-dialog) .source-frame-breakpoint-toolbar{font-family:sans-serif;font-size:12px}:host-context(.sources-edit-breakpoint-dialog) .link,\n.devtools-link{font-family:sans-serif;font-size:12px;margin:0 3px}:host-context(.sources-edit-breakpoint-dialog) devtools-icon.link-icon{vertical-align:sub;margin-right:0.5ch;color:var(--icon-link);width:16px;height:16px}:host-context(.sources-edit-breakpoint-dialog) .link-wrapper{display:inline-flex}:host-context(.sources-edit-breakpoint-dialog) .dialog-header{display:flex;justify-content:space-between;align-items:center}:host-context(.sources-edit-breakpoint-dialog) .dialog-header > devtools-icon:hover{color:var(--icon-default-hover)}\n/*# sourceURL=${import.meta.resolve("./breakpointEditDialog.css")} */\n`};const{Direction:Q}=c.TextEditorHistory,X={breakpointType:"Breakpoint type",breakpoint:"Breakpoint",closeDialog:"Close edit dialog and save changes",conditionalBreakpoint:"Conditional breakpoint",logpoint:"Logpoint",expressionToCheckBeforePausingEg:"Expression to check before pausing, e.g. x > 5",pauseOnlyWhenTheConditionIsTrue:"Pause only when the condition is true",learnMoreOnBreakpointTypes:"Learn more: Breakpoint Types",logMessageEgXIsX:"Log message, e.g. `'x is', x`",logAMessageToConsoleDoNotBreak:"Log a message to Console, do not break"},Y=e.i18n.registerUIStrings("panels/sources/BreakpointEditDialog.ts",X),Z=e.i18n.getLocalizedString.bind(void 0,Y);class ee extends t.Widget.Widget{onFinish;finished;editor;typeSelector;placeholderCompartment;#n;#r;constructor(e,i,o,r){super(!0),this.registerRequiredCSS(J);const d=[s.javascript.javascriptLanguage,c.Config.baseConfiguration(i||""),c.Config.closeBrackets.instance(),c.Config.autocompletion.instance(),s.EditorView.lineWrapping,c.Config.showCompletionHint,c.Config.conservativeCompletion,s.javascript.javascriptLanguage.data.of({autocomplete:e=>this.#r.historyCompletions(e)}),s.autocompletion(),c.JavaScript.argumentHints()];this.onFinish=r,this.finished=!1,this.element.tabIndex=-1,this.element.classList.add("sources-edit-breakpoint-dialog"),this.element.setAttribute("jslog",`${l.dialog("edit-breakpoint")}`);const u=this.contentElement.createChild("div","dialog-header"),h=u.createChild("devtools-toolbar","source-frame-breakpoint-toolbar");h.appendText(`Line ${e+1}:`),this.typeSelector=new t.Toolbar.ToolbarComboBox(this.onTypeChanged.bind(this),Z(X.breakpointType),void 0,"type"),this.typeSelector.createOption(Z(X.breakpoint),"REGULAR_BREAKPOINT");const p=this.typeSelector.createOption(Z(X.conditionalBreakpoint),"CONDITIONAL_BREAKPOINT"),g=this.typeSelector.createOption(Z(X.logpoint),"LOGPOINT");this.typeSelector.select(o?g:p),h.appendToolbarItem(this.typeSelector);const m=i||"",b=e=>(c.JavaScript.isExpressionComplete(e.state.doc.toString()).then((t=>{t?this.finishEditing(!0,this.editor.state.doc.toString()):s.insertNewlineAndIndent(e)})),!0),f=[{key:"ArrowUp",run:()=>this.#r.moveHistory(-1)},{key:"ArrowDown",run:()=>this.#r.moveHistory(1)},{mac:"Ctrl-p",run:()=>this.#r.moveHistory(-1,!0)},{mac:"Ctrl-n",run:()=>this.#r.moveHistory(1,!0)},{key:"Mod-Enter",run:b},{key:"Enter",run:b},{key:"Shift-Enter",run:s.insertNewlineAndIndent},{key:"Escape",run:()=>(this.finishEditing(!1,""),!0)}];this.placeholderCompartment=new s.Compartment;const v=this.contentElement.appendChild(document.createElement("div"));v.classList.add("condition-editor"),v.setAttribute("jslog",`${l.textField().track({change:!0})}`),this.editor=new c.TextEditor.TextEditor(s.EditorState.create({doc:m,selection:{anchor:0,head:m.length},extensions:[this.placeholderCompartment.of(this.getPlaceholder()),s.keymap.of(f),d]})),v.appendChild(this.editor);const S=a.Icon.create("cross");S.title=Z(X.closeDialog),S.setAttribute("jslog",`${l.close().track({click:!0})}`),S.onclick=()=>this.finishEditing(!0,this.editor.state.doc.toString()),u.appendChild(S),this.#n=new c.AutocompleteHistory.AutocompleteHistory(n.Settings.Settings.instance().createLocalSetting("breakpoint-condition-history",[])),this.#r=new c.TextEditorHistory.TextEditorHistory(this.editor,this.#n);const C=this.contentElement.appendChild(document.createElement("div"));C.classList.add("link-wrapper");const w=t.Fragment.html`<x-link class="link devtools-link" tabindex="0" href="https://goo.gle/devtools-loc"
jslog="${l.link("learn-more")}">${Z(X.learnMoreOnBreakpointTypes)}</x-link>`,I=a.Icon.create("open-externally","link-icon");w.prepend(I),C.appendChild(w),this.updateTooltip()}saveAndFinish(){this.finishEditing(!0,this.editor.state.doc.toString())}focusEditor(){this.editor.editor.focus()}onTypeChanged(){"REGULAR_BREAKPOINT"!==this.breakpointType?(this.focusEditor(),this.editor.dispatch({effects:this.placeholderCompartment.reconfigure(this.getPlaceholder())}),this.updateTooltip()):this.finishEditing(!0,"")}get breakpointType(){const e=this.typeSelector.selectedOption();return e?e.value:null}getPlaceholder(){const e=this.breakpointType;return"CONDITIONAL_BREAKPOINT"===e?s.placeholder(Z(X.expressionToCheckBeforePausingEg)):"LOGPOINT"===e?s.placeholder(Z(X.logMessageEgXIsX)):[]}updateTooltip(){const e=this.breakpointType;"CONDITIONAL_BREAKPOINT"===e?t.Tooltip.Tooltip.install(this.typeSelector.element,Z(X.pauseOnlyWhenTheConditionIsTrue)):"LOGPOINT"===e&&t.Tooltip.Tooltip.install(this.typeSelector.element,Z(X.logAMessageToConsoleDoNotBreak))}finishEditing(e,t){if(this.finished)return;this.finished=!0,this.editor.remove(),this.#n.pushHistoryItem(t);const i="LOGPOINT"===this.breakpointType;this.onFinish({committed:e,condition:t,isLogpoint:i})}get editorForTest(){return this.editor}}var te=Object.freeze({__proto__:null,BreakpointEditDialog:ee}),ie={cssText:`.call-frame-warnings-message{text-align:center;font-style:italic;padding:4px;color:var(--sys-color-on-surface-yellow);background-color:var(--sys-color-surface-yellow)}.ignore-listed-message{padding:1px}.ignore-listed-message-label{color:var(--sys-color-token-subtle);align-items:center;display:flex}.show-more-message > .link{margin-left:5px}.show-more-message{text-align:center;font-style:italic;padding:4px;border-top:1px solid var(--sys-color-divider)}.call-frame-item{padding:3px 8px 3px 20px;position:relative;min-height:18px;line-height:15px;display:flex;flex-wrap:wrap}.call-frame-title-text{text-overflow:ellipsis;overflow:hidden}.async-header + .call-frame-item{border-top:0}.call-frame-item:not(.async-header){border-top:1px solid var(--sys-color-divider)}.call-frame-item-title,\n.call-frame-location{display:flex;white-space:nowrap}.async-header .call-frame-item-title{font-weight:bold;color:var(--sys-color-on-surface);background-color:var(--sys-color-cdt-base-container);margin-left:-5px;padding:0 5px;z-index:1}.call-frame-item:focus-visible,\n.call-frame-item.async-header:focus-visible .call-frame-item-title{background-color:var(--sys-color-tonal-container)}.ignore-listed-checkbox:focus-visible{outline-width:unset}.call-frame-item:not(.async-header):hover{background-color:var(--sys-color-state-hover-on-subtle)}.call-frame-location{color:var(--sys-color-token-subtle);margin-left:auto;padding:0 10px}.async-header::before{content:" ";width:100%;border-top:1px solid var(--sys-color-divider);margin-top:8px;position:absolute;left:0}.ignore-listed-call-frame{opacity:60%;font-style:italic}.selected-call-frame-icon{display:none;position:absolute;top:3px;left:4px}.call-frame-item.selected .selected-call-frame-icon{display:block}.call-frame-warning-icon{display:block;position:absolute;top:3px;right:4px}@media (forced-colors: active){.call-frame-item:focus-visible,\n .call-frame-item:not(.async-header):hover{forced-color-adjust:none;background-color:Highlight}.call-frame-item:focus-visible *,\n .call-frame-item:not(.async-header):hover *{color:HighlightText}}\n/*# sourceURL=${import.meta.resolve("./callStackSidebarPane.css")} */\n`};const oe={callStack:"Call Stack",notPaused:"Not paused",onIgnoreList:"on ignore list",showIgnorelistedFrames:"Show ignore-listed frames",showMore:"Show more",copyStackTrace:"Copy stack trace",callFrameWarnings:"Some call frames have warnings",debugFileNotFound:'Failed to load debug file "{PH1}".',restartFrame:"Restart frame"},ne=e.i18n.registerUIStrings("panels/sources/CallStackSidebarPane.ts",oe),re=e.i18n.getLocalizedString.bind(void 0,ne);let se;class ae extends t.View.SimpleView{ignoreListMessageElement;ignoreListCheckboxElement;notPausedMessageElement;callFrameWarningsElement;items;list;showMoreMessageElement;showIgnoreListed;locationPool;updateThrottler;maxAsyncStackChainDepth;updateItemThrottler;scheduledForUpdateItems;muteActivateItem;lastDebuggerModel=null;constructor(){super(re(oe.callStack),!0,"sources.callstack"),this.registerRequiredCSS(ie),this.contentElement.setAttribute("jslog",`${l.section("sources.callstack")}`),({element:this.ignoreListMessageElement,checkbox:this.ignoreListCheckboxElement}=this.createIgnoreListMessageElementAndCheckbox()),this.contentElement.appendChild(this.ignoreListMessageElement),this.notPausedMessageElement=this.contentElement.createChild("div","gray-info-message"),this.notPausedMessageElement.textContent=re(oe.notPaused),this.notPausedMessageElement.tabIndex=-1,this.callFrameWarningsElement=this.contentElement.createChild("div","call-frame-warnings-message");const e=new a.Icon.Icon;e.data={iconName:"warning-filled",color:"var(--icon-warning)",width:"14px",height:"14px"},e.classList.add("call-frame-warning-icon"),this.callFrameWarningsElement.appendChild(e),this.callFrameWarningsElement.appendChild(document.createTextNode(re(oe.callFrameWarnings))),this.callFrameWarningsElement.tabIndex=-1,this.items=new t.ListModel.ListModel,this.list=new t.ListControl.ListControl(this.items,this,t.ListControl.ListMode.NonViewport),this.contentElement.appendChild(this.list.element),this.list.element.addEventListener("contextmenu",this.onContextMenu.bind(this),!1),self.onInvokeElement(this.list.element,(e=>{const t=this.list.itemForNode(e.target);t&&(this.activateItem(t),e.consume(!0))})),this.showMoreMessageElement=this.createShowMoreMessageElement(),this.showMoreMessageElement.classList.add("hidden"),this.contentElement.appendChild(this.showMoreMessageElement),this.showIgnoreListed=!1,this.locationPool=new p.LiveLocation.LiveLocationPool,this.updateThrottler=new n.Throttler.Throttler(100),this.maxAsyncStackChainDepth=le,this.update(),this.updateItemThrottler=new n.Throttler.Throttler(100),this.scheduledForUpdateItems=new Set,r.TargetManager.TargetManager.instance().addModelListener(r.DebuggerModel.DebuggerModel,r.DebuggerModel.Events.DebugInfoAttached,this.debugInfoAttached,this)}static instance(e={forceNew:null}){const{forceNew:t}=e;return se&&!t||(se=new ae),se}flavorChanged(e){this.showIgnoreListed=!1,this.ignoreListCheckboxElement.checked=!1,this.maxAsyncStackChainDepth=le,this.update()}debugInfoAttached(){this.update()}setSourceMapSubscription(e){this.lastDebuggerModel!==e&&(this.lastDebuggerModel&&this.lastDebuggerModel.sourceMapManager().removeEventListener(r.SourceMapManager.Events.SourceMapAttached,this.debugInfoAttached,this),this.lastDebuggerModel=e,this.lastDebuggerModel&&this.lastDebuggerModel.sourceMapManager().addEventListener(r.SourceMapManager.Events.SourceMapAttached,this.debugInfoAttached,this))}update(){this.updateThrottler.schedule((()=>this.doUpdate()))}async doUpdate(){this.locationPool.disposeAll(),this.callFrameWarningsElement.classList.add("hidden");const e=t.Context.Context.instance().flavor(r.DebuggerModel.DebuggerPausedDetails);if(this.setSourceMapSubscription(e?.debuggerModel??null),!e)return this.notPausedMessageElement.classList.remove("hidden"),this.ignoreListMessageElement.classList.add("hidden"),this.showMoreMessageElement.classList.add("hidden"),this.items.replaceAll([]),void t.Context.Context.instance().setFlavor(r.DebuggerModel.CallFrame,null);this.notPausedMessageElement.classList.add("hidden");const i=[],o=new Set;for(const t of e.callFrames){const e=de.createForDebuggerCallFrame(t,this.locationPool,this.refreshItem.bind(this));i.push(e),t.missingDebugInfoDetails&&o.add(t.missingDebugInfoDetails.details)}const n=await Promise.all(i);o.size&&(this.callFrameWarningsElement.classList.remove("hidden"),t.Tooltip.Tooltip.install(this.callFrameWarningsElement,Array.from(o).join("\n")));let s=e.debuggerModel,a=e.asyncStackTraceId,c=e.asyncStackTrace,l=e.callFrames;for(let{maxAsyncStackChainDepth:e}=this;e>0;--e){if(!c){if(!a)break;if(a.debuggerId){const e=await r.DebuggerModel.DebuggerModel.modelForDebuggerId(a.debuggerId);if(!e)break;s=e}if(c=await s.fetchAsyncStackTrace(a),!c)break}const e=t.UIUtils.asyncStackTraceLabel(c.description,l);n.push(...await de.createItemsForAsyncStack(e,s,c.callFrames,this.locationPool,this.refreshItem.bind(this))),l=c.callFrames,a=c.parentId,c=c.parent}this.showMoreMessageElement.classList.toggle("hidden",!c),this.items.replaceAll(n);for(const e of this.items)this.refreshItem(e);if(this.maxAsyncStackChainDepth===le){this.list.selectNextItem(!0,!1);const e=this.list.selectedItem();e&&this.activateItem(e)}this.updatedForTest()}updatedForTest(){}refreshItem(e){this.scheduledForUpdateItems.add(e),this.updateItemThrottler.schedule((async()=>{const e=Array.from(this.scheduledForUpdateItems);if(this.scheduledForUpdateItems.clear(),this.muteActivateItem=!0,!this.showIgnoreListed&&this.items.every((e=>e.isIgnoreListed))){this.showIgnoreListed=!0;for(let e=0;e<this.items.length;++e)this.list.refreshItemByIndex(e);this.ignoreListMessageElement.classList.toggle("hidden",!0)}else{this.showIgnoreListed=this.ignoreListCheckboxElement.checked;const t=new Set(e);let i=!1;for(let e=0;e<this.items.length;++e){const o=this.items.at(e);t.has(o)&&this.list.refreshItemByIndex(e),i=i||o.isIgnoreListed}this.ignoreListMessageElement.classList.toggle("hidden",!i)}delete this.muteActivateItem}))}createElementForItem(e){const i=document.createElement("div");i.classList.add("call-frame-item");const o=i.createChild("div","call-frame-item-title").createChild("div","call-frame-title-text");if(o.textContent=e.title,e.isAsyncHeader)i.classList.add("async-header");else{t.Tooltip.Tooltip.install(o,e.title);const n=i.createChild("div","call-frame-location");n.textContent=u.StringUtilities.trimMiddle(e.linkText,30),t.Tooltip.Tooltip.install(n,e.linkText),i.classList.toggle("ignore-listed-call-frame",e.isIgnoreListed),e.isIgnoreListed&&t.ARIAUtils.setDescription(i,re(oe.onIgnoreList)),e.frame||t.ARIAUtils.setDisabled(i,!0)}const s=e.frame,c=s===t.Context.Context.instance().flavor(r.DebuggerModel.CallFrame);i.classList.toggle("selected",c),t.ARIAUtils.setSelected(i,c),i.classList.toggle("hidden",!this.showIgnoreListed&&e.isIgnoreListed);const l=new a.Icon.Icon;if(l.data={iconName:"large-arrow-right-filled",color:"var(--icon-arrow-main-thread)",width:"14px",height:"14px"},l.classList.add("selected-call-frame-icon"),i.appendChild(l),i.tabIndex=e===this.list.selectedItem()?0:-1,s?.missingDebugInfoDetails){const e=new a.Icon.Icon;e.data={iconName:"warning-filled",color:"var(--icon-warning)",width:"14px",height:"14px"},e.classList.add("call-frame-warning-icon");const o=s.missingDebugInfoDetails.resources.map((e=>re(oe.debugFileNotFound,{PH1:n.ParsedURL.ParsedURL.extractName(e.resourceUrl)})));t.Tooltip.Tooltip.install(e,[s.missingDebugInfoDetails.details,...o].join("\n")),i.appendChild(e)}return i}heightForItem(e){return console.assert(!1),0}isItemSelectable(e){return!0}selectedItemChanged(e,t,i,o){i&&(i.tabIndex=-1),o&&(this.setDefaultFocusedElement(o),o.tabIndex=0,this.hasFocus()&&o.focus())}updateSelectedItemARIA(e,t){return!0}createIgnoreListMessageElementAndCheckbox(){const e=document.createElement("div");e.classList.add("ignore-listed-message");const t=e.createChild("label");t.classList.add("ignore-listed-message-label");const i=t.createChild("input");i.tabIndex=0,i.type="checkbox",i.classList.add("ignore-listed-checkbox"),t.append(re(oe.showIgnorelistedFrames));return i.addEventListener("click",(()=>{this.showIgnoreListed=i.checked;for(const e of this.items)this.refreshItem(e)})),{element:e,checkbox:i}}createShowMoreMessageElement(){const e=document.createElement("div");e.classList.add("show-more-message"),e.createChild("span");const t=e.createChild("span","link");return t.textContent=re(oe.showMore),t.addEventListener("click",(()=>{this.maxAsyncStackChainDepth+=le,this.update()}),!1),e}onContextMenu(e){const i=this.list.itemForNode(e.target);if(!i)return;const o=new t.ContextMenu.ContextMenu(e),n=i.frame;n&&o.defaultSection().appendItem(re(oe.restartFrame),(()=>{d.userMetrics.actionTaken(d.UserMetrics.Action.StackFrameRestarted),n.restart()}),{disabled:!n.canBeRestarted,jslogContext:"restart-frame"}),o.defaultSection().appendItem(re(oe.copyStackTrace),this.copyStackTrace.bind(this),{jslogContext:"copy-stack-trace"}),i.uiLocation&&this.appendIgnoreListURLContextMenuItems(o,i.uiLocation.uiSourceCode),o.show()}onClick(e){const t=this.list.itemForNode(e.target);t&&this.activateItem(t)}activateItem(e){const i=e.uiLocation;if(this.muteActivateItem||!i)return;this.list.selectItem(e);const o=e.frame,s=this.activeCallFrameItem();o&&s!==e?(o.debuggerModel.setSelectedCallFrame(o),t.Context.Context.instance().setFlavor(r.DebuggerModel.CallFrame,o),s&&this.refreshItem(s),this.refreshItem(e)):n.Revealer.reveal(i)}activeCallFrameItem(){const e=t.Context.Context.instance().flavor(r.DebuggerModel.CallFrame);return e&&this.items.find((t=>t.frame===e))||null}appendIgnoreListURLContextMenuItems(e,t){const i=g.Persistence.PersistenceImpl.instance().binding(t);i&&(t=i.network);const o=e.section("ignoreList");if(!(o.items.length>0))for(const{text:e,callback:i,jslogContext:n}of p.IgnoreListManager.IgnoreListManager.instance().getIgnoreListURLContextMenuItems(t))o.appendItem(e,i,{jslogContext:n})}selectNextCallFrameOnStack(){const e=this.activeCallFrameItem();for(let t=e?this.items.indexOf(e)+1:0;t<this.items.length;t++){const e=this.items.at(t);if(e.frame){this.activateItem(e);break}}}selectPreviousCallFrameOnStack(){const e=this.activeCallFrameItem();for(let t=e?this.items.indexOf(e)-1:this.items.length-1;t>=0;t--){const e=this.items.at(t);if(e.frame){this.activateItem(e);break}}}copyStackTrace(){const e=[];for(const t of this.items){let i=t.title;t.uiLocation&&(i+=" ("+t.uiLocation.linkText(!0)+")"),e.push(i)}d.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(e.join("\n"))}}const ce=Symbol("element"),le=32;class de{isIgnoreListed;title;linkText;uiLocation;isAsyncHeader;updateDelegate;frame;static async createForDebuggerCallFrame(e,i,o){const n=e.functionName,r=new de(t.UIUtils.beautifyFunctionName(n),o,e);return await p.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance().createCallFrameLiveLocation(e.location(),r.update.bind(r),i),m.NamesResolver.resolveDebuggerFrameFunctionName(e).then((e=>{e&&e!==n&&(r.title=e,r.updateDelegate(r))})),r}static async createItemsForAsyncStack(e,i,o,n,r){const s=new WeakMap,a=new de(e,r);s.set(a,new Set),a.isAsyncHeader=!0;const c=[],l=[];for(const e of o){const o=new de(t.UIUtils.beautifyFunctionName(e.functionName),d),r=i.createRawLocationByScriptId(e.scriptId,e.lineNumber,e.columnNumber);l.push(p.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance().createCallFrameLiveLocation(r,o.update.bind(o),n)),c.push(o)}return await Promise.all(l),r(a),[a,...c];function d(e){r(e);let t=!1;const i=s.get(a);i&&(e.isIgnoreListed?(i.delete(e),t=0===i.size):(t=0===i.size,i.add(e)),a.isIgnoreListed=0===i.size),t&&r(a)}}constructor(e,t,i){this.isIgnoreListed=!1,this.title=e,this.linkText="",this.uiLocation=null,this.isAsyncHeader=!1,this.updateDelegate=t,this.frame=i}async update(e){const t=await e.uiLocation();this.isIgnoreListed=await e.isIgnoreListed(),this.linkText=t?t.linkText():"",this.uiLocation=t,this.updateDelegate(this)}}var ue=Object.freeze({__proto__:null,ActionDelegate:class{handleAction(e,t){switch(t){case"debugger.next-call-frame":return ae.instance().selectNextCallFrameOnStack(),!0;case"debugger.previous-call-frame":return ae.instance().selectPreviousCallFrameOnStack(),!0}return!1}},CallStackSidebarPane:ae,Item:de,defaultMaxAsyncStackChainDepth:le,elementSymbol:ce});const he={beforeBidderWorkletBiddingStart:"Bidder Bidding Phase Start",beforeBidderWorkletReportingStart:"Bidder Reporting Phase Start",beforeSellerWorkletScoringStart:"Seller Scoring Phase Start",beforeSellerWorkletReportingStart:"Seller Reporting Phase Start",setTimeoutOrIntervalFired:"{PH1} fired",scriptFirstStatement:"Script First Statement",scriptBlockedByContentSecurity:"Script Blocked by Content Security Policy",requestAnimationFrame:"Request Animation Frame",cancelAnimationFrame:"Cancel Animation Frame",animationFrameFired:"Animation Frame Fired",webglErrorFired:"WebGL Error Fired",webglWarningFired:"WebGL Warning Fired",setInnerhtml:"Set `innerHTML`",createCanvasContext:"Create canvas context",createAudiocontext:"Create `AudioContext`",closeAudiocontext:"Close `AudioContext`",resumeAudiocontext:"Resume `AudioContext`",suspendAudiocontext:"Suspend `AudioContext`",sinkViolations:"Sink Violations",policyViolations:"Policy Violations"},pe=e.i18n.registerUIStrings("panels/sources/CategorizedBreakpointL10n.ts",he),ge=e.i18n.getLazilyComputedLocalizedString.bind(void 0,pe);function me(t){return(ve.get(t)??e.i18n.lockedLazyString(t))()}const be={beforeBidderWorkletBiddingStart:ge(he.beforeBidderWorkletBiddingStart),beforeBidderWorkletReportingStart:ge(he.beforeBidderWorkletReportingStart),beforeSellerWorkletScoringStart:ge(he.beforeSellerWorkletScoringStart),beforeSellerWorkletReportingStart:ge(he.beforeSellerWorkletReportingStart),setTimeout:e.i18n.lockedLazyString("setTimeout"),clearTimeout:e.i18n.lockedLazyString("clearTimeout"),"setTimeout.callback":ge(he.setTimeoutOrIntervalFired,{PH1:"setTimeout"}),setInterval:e.i18n.lockedLazyString("setInterval"),clearInterval:e.i18n.lockedLazyString("clearInterval"),"setInterval.callback":ge(he.setTimeoutOrIntervalFired,{PH1:"setInterval"}),scriptFirstStatement:ge(he.scriptFirstStatement),scriptBlockedByCSP:ge(he.scriptBlockedByContentSecurity),sharedStorageWorkletScriptFirstStatement:ge(he.scriptFirstStatement),requestAnimationFrame:ge(he.requestAnimationFrame),cancelAnimationFrame:ge(he.cancelAnimationFrame),"requestAnimationFrame.callback":ge(he.animationFrameFired),webglErrorFired:ge(he.webglErrorFired),webglWarningFired:ge(he.webglWarningFired),"Element.setInnerHTML":ge(he.setInnerhtml),canvasContextCreated:ge(he.createCanvasContext),"Geolocation.getCurrentPosition":e.i18n.lockedLazyString("getCurrentPosition"),"Geolocation.watchPosition":e.i18n.lockedLazyString("watchPosition"),"Notification.requestPermission":e.i18n.lockedLazyString("requestPermission"),"DOMWindow.close":e.i18n.lockedLazyString("window.close"),"Document.write":e.i18n.lockedLazyString("document.write"),audioContextCreated:ge(he.createAudiocontext),audioContextClosed:ge(he.closeAudiocontext),audioContextResumed:ge(he.resumeAudiocontext),audioContextSuspended:ge(he.suspendAudiocontext)},fe={"trustedtype-policy-violation":ge(he.policyViolations),"trustedtype-sink-violation":ge(he.sinkViolations)},ve=new Map([...Object.entries(be),...Object.entries(fe)]);var Se=Object.freeze({__proto__:null,getLocalizedBreakpointName:me});const Ce={clickToShowCoveragePanel:"Click to show Coverage Panel",showDetails:"Show Details",coverageS:"Coverage: {PH1}",coverageNa:"Coverage: n/a"},we=e.i18n.registerUIStrings("panels/sources/CoveragePlugin.ts",Ce),Ie=e.i18n.getLocalizedString.bind(void 0,we);class ye extends H{originalSourceCode;infoInToolbar;model;coverage;#s;constructor(e,i){super(e),this.originalSourceCode=this.uiSourceCode,this.#s=i,this.infoInToolbar=new t.Toolbar.ToolbarButton(Ie(Ce.clickToShowCoveragePanel),void 0,void 0,"debugger.show-coverage"),this.infoInToolbar.setSecondary(),this.infoInToolbar.addEventListener("Click",(()=>{t.ViewManager.ViewManager.instance().showView("coverage")}));const o=r.TargetManager.TargetManager.instance().primaryPageTarget();o&&(this.model=o.model(f.CoverageModel.CoverageModel),this.model&&(this.model.addEventListener(f.CoverageModel.Events.CoverageReset,this.handleReset,this),this.coverage=this.model.getCoverageForUrl(this.originalSourceCode.url()),this.coverage&&this.coverage.addEventListener(f.CoverageModel.URLCoverageInfo.Events.SizesChanged,this.handleCoverageSizesChanged,this))),this.updateStats()}dispose(){this.coverage&&this.coverage.removeEventListener(f.CoverageModel.URLCoverageInfo.Events.SizesChanged,this.handleCoverageSizesChanged,this),this.model&&this.model.removeEventListener(f.CoverageModel.Events.CoverageReset,this.handleReset,this)}static accepts(e){return e.contentType().isDocumentOrScriptOrStyleSheet()}handleReset(){this.coverage=null,this.updateStats()}handleCoverageSizesChanged(){this.updateStats()}updateStats(){if(this.coverage){this.infoInToolbar.setTitle(Ie(Ce.showDetails));const t=new Intl.NumberFormat(e.DevToolsLocale.DevToolsLocale.instance().locale,{style:"percent",maximumFractionDigits:1});this.infoInToolbar.setText(Ie(Ce.coverageS,{PH1:t.format(this.coverage.usedPercentage())}))}else this.infoInToolbar.setTitle(Ie(Ce.clickToShowCoveragePanel)),this.infoInToolbar.setText(Ie(Ce.coverageNa))}rightToolbarItems(){return[this.infoInToolbar]}editorExtension(){return Me.of([])}getCoverageManager(){return this.uiSourceCode.getDecorationData("coverage")}editorInitialized(e){this.getCoverageManager()&&this.startDecoUpdate(e)}decorationChanged(e,t){"coverage"===e&&this.startDecoUpdate(t)}startDecoUpdate(e){const i=this.getCoverageManager();(i?i.usageByLine(this.uiSourceCode,this.#a(e)):Promise.resolve([])).then((i=>{const o=Boolean(e.state.field(Le,!1));var n;i.length?o?e.dispatch({effects:Ee.of(i)}):e.dispatch({effects:Me.reconfigure([Le.init((e=>Te(i,e))),(n=this.uiSourceCode.url(),s.gutter({markers:e=>e.state.field(Le),domEventHandlers:{click:()=>(t.ViewManager.ViewManager.instance().showView("coverage").then((()=>{const e=t.ViewManager.ViewManager.instance().view("coverage");return e?.widget()})).then((e=>{const t=n.match(/(.*):formatted$/),i=t?.[1]||n;e.selectCoverageItemByUrl(i)})),!0)},class:"cm-coverageGutter"})),Pe])}):o&&e.dispatch({effects:Me.reconfigure([])})}))}#a(e){const t=[];for(let i=1;i<=e.state.doc.lines;++i){const o=e.state.doc.line(i),{lineNumber:n,columnNumber:r}=this.#s.editorLocationToUILocation(i-1,0),{lineNumber:s,columnNumber:a}=this.#s.editorLocationToUILocation(i-1,o.length);t.push(new b.TextRange.TextRange(n,r,s,a))}return t}}const xe=new class extends s.GutterMarker{elementClass="cm-coverageUsed"},ke=new class extends s.GutterMarker{elementClass="cm-coverageUnused"};function Te(e,t){const i=new s.RangeSetBuilder;for(let o=0;o<e.length;o++){const n=e[o];if(void 0!==n&&o<t.doc.lines){const e=t.doc.line(o+1).from;i.add(e,e,n?xe:ke)}}return i.finish()}const Ee=s.StateEffect.define(),Le=s.StateField.define({create:()=>s.RangeSet.empty,update:(e,t)=>t.effects.reduce(((e,i)=>i.is(Ee)?Te(i.value,t.state):e),e.map(t.changes))});const Me=new s.Compartment,Pe=s.EditorView.baseTheme({".cm-line::selection":{backgroundColor:"transparent",color:"currentColor"},".cm-coverageGutter":{width:"5px",marginLeft:"3px"},".cm-coverageUnused":{backgroundColor:"var(--app-color-coverage-unused)"},".cm-coverageUsed":{backgroundColor:"var(--app-color-coverage-used)"}});var Fe=Object.freeze({__proto__:null,CoveragePlugin:ye});const De={openColorPicker:"Open color picker.",openCubicBezierEditor:"Open cubic bezier editor.",addSourceMap:"Add source map…"},Ae=e.i18n.registerUIStrings("panels/sources/CSSPlugin.ts",De),Ne=e.i18n.getLocalizedString.bind(void 0,Ae),Ue=new Set(["ColorLiteral","NumberLiteral","StringLiteral","Comment","Important"]);async function Be(e,t,i){const o=s.syntaxTree(e.state).resolveInner(e.pos,-1);if("ClassName"===o.name){h(i);const e=function(e,t){const i=t.getStyleSheetIdsForURL(e);if(0===i.length)throw new Error("Can't find style sheet ID for current URL");return i[0]}(t.url(),i),n=await i.getClassNames(e);return{from:o.from,options:n.map((e=>({type:"constant",label:e})))}}const n=function(e,t){if(Ue.has(e.name))return null;for(let i=e;i&&"StyleSheet"!==i.name&&"Styles"!==i.name&&"CallExpression"!==i.name;i=i.parent)if("Declaration"===i.name){const e=i.getChild("PropertyName"),o=i.getChild(":");return e&&o&&o.to<=t?e:null}return null}(o,e.pos);if(n){const t=r.CSSMetadata.cssMetadata().getPropertyValues(e.state.sliceDoc(n.from,n.to));return{from:"ValueName"===o.name?o.from:e.pos,options:t.map((e=>({type:"constant",label:e}))),validFor:/^[\w\P{ASCII}\-]+$/u}}return null}class Re extends s.WidgetType{#c;#l;#d;constructor(e,t,i){super(),this.#l=e,this.#c=t,this.#d=i}eq(e){return this.#l.equal(e.#l)&&this.#c===e.#c&&this.#d===e.#d}toDOM(e){const t=new S.ColorSwatch.ColorSwatch(Ne(De.openColorPicker));t.renderColor(this.#l);const i=t.createChild("span");return i.textContent=this.#c,i.setAttribute("hidden","true"),t.addEventListener(S.ColorSwatch.ColorChangedEvent.eventName,(i=>{const o=i.data.color.getAuthoredText()??i.data.color.asString();e.dispatch({changes:{from:this.#d,to:this.#d+this.#c.length,insert:o}}),this.#c=o,this.#l=t.getColor()})),t.addEventListener(S.ColorSwatch.ClickEvent.eventName,(i=>{i.consume(!0),e.dispatch({effects:We.of({type:0,pos:e.posAtDOM(t),text:this.#c,swatch:t,color:this.#l})})})),t}ignoreEvent(){return!0}}class je extends s.WidgetType{curve;text;constructor(e,t){super(),this.curve=e,this.text=t}eq(e){return this.curve.asCSSText()===e.curve.asCSSText()&&this.text===e.text}toDOM(e){const i=S.Swatches.BezierSwatch.create();return i.setBezierText(this.text),t.Tooltip.Tooltip.install(i.iconElement(),Ne(De.openCubicBezierEditor)),i.iconElement().addEventListener("click",(t=>{t.consume(!0),e.dispatch({effects:We.of({type:1,pos:e.posAtDOM(i),text:this.text,swatch:i,curve:this.curve})})}),!1),i.hideText(!0),i}ignoreEvent(){return!0}}const We=s.StateEffect.define(),Ve=s.Annotation.define(),Oe=s.StateField.define({create:()=>null,update(e,t){!t.docChanged&&!t.selection||t.annotation(Ve)||(e=null);for(const i of t.effects)i.is(We)&&(e=i.value);return e},provide:e=>s.showTooltip.from(e,(e=>e&&function(e){return{pos:e.pos,arrow:!1,create(t){let i,o,n=e.text;if(0===e.type){const n=new v.Spectrum.Spectrum;o=e=>{n.addEventListener("ColorChanged",e)},n.addEventListener("SizeChanged",(()=>t.requestMeasure())),n.setColor(e.color),i=n}else{const t=new S.BezierEditor.BezierEditor(e.curve);i=t,o=e=>{t.addEventListener("BezierChanged",e)}}const r=document.createElement("div");return r.className="cm-tooltip-swatchEdit",i.markAsRoot(),i.show(r),i.showWidget(),i.element.addEventListener("keydown",(o=>{"Escape"===o.key&&(o.consume(),t.dispatch({effects:We.of(null),changes:n===e.text?void 0:{from:e.pos,to:e.pos+n.length,insert:e.text}}),i.hideWidget(),t.focus())})),i.element.addEventListener("focusout",(e=>{e.relatedTarget&&!i.element.contains(e.relatedTarget)&&(t.dispatch({effects:We.of(null)}),i.hideWidget())}),!1),i.element.addEventListener("mousedown",(e=>e.consume())),{dom:r,resize:!1,offset:{x:-8,y:0},mount:()=>{i.focus(),i.wasShown(),o((i=>{t.dispatch({changes:{from:e.pos,to:e.pos+n.length,insert:i.data},annotations:Ve.of(!0)}),n=i.data}))}}}}}(e)))});function He(e,i,o){const r=new s.RangeSetBuilder;return function(e,i,o,r,a){let c=e.doc.lineAt(i);function l(t,i){return t>=c.to&&(c=e.doc.lineAt(t)),c.text.slice(t-c.from,i-c.from)}const d=s.ensureSyntaxTree(e,o,100);d&&d.iterate({from:i,to:o,enter:i=>{let o;if("ValueName"===i.name||"ColorLiteral"===i.name?o=l(i.from,i.to):"Callee"===i.name&&/^(?:(?:rgba?|hsla?|hwba?|lch|oklch|lab|oklab|color)|cubic-bezier)$/.test(l(i.from,i.to))&&(o=e.sliceDoc(i.from,i.node.parent.to)),o){const e=n.Color.parse(o);if(e)r(i.from,e,o);else{const e=t.Geometry.CubicBezier.parse(o);e&&a(i.from,e,o)}}}})}(e,i,o,((e,t,i)=>{r.add(e,e,s.Decoration.widget({widget:new Re(t,i,e)}))}),((e,t,i)=>{r.add(e,e,s.Decoration.widget({widget:new je(t,i)}))})),r.finish()}const _e=s.ViewPlugin.fromClass(class{decorations;constructor(e){this.decorations=He(e.state,e.viewport.from,e.viewport.to)}update(e){(e.viewportChanged||e.docChanged)&&(this.decorations=He(e.state,e.view.viewport.from,e.view.viewport.to))}},{decorations:e=>e.decorations});function ze(e){if("Unit"===e.name&&(e=e.parent),"NumberLiteral"===e.name){const t=e.lastChild;return{from:e.from,to:t&&"Unit"===t.name?t.from:e.to}}return null}function qe(e,t){const{head:i}=e.state.selection.main,o=s.syntaxTree(e.state).resolveInner(i,-1),n=ze(o)||ze(o.resolve(i,1));if(!n)return!1;const r=Number(e.state.sliceDoc(n.from,n.to));return!isNaN(r)&&(e.dispatch({changes:{from:n.from,to:n.to,insert:String(r+t)},scrollIntoView:!0,userEvent:"insert.modifyUnit"}),!0)}function $e(){let e=null;const i=t.ShortcutRegistry.ShortcutRegistry.instance().getShortcutListener({"sources.increment-css":()=>Promise.resolve(qe(e,1)),"sources.increment-css-by-ten":()=>Promise.resolve(qe(e,10)),"sources.decrement-css":()=>Promise.resolve(qe(e,-1)),"sources.decrement-css-by-ten":()=>Promise.resolve(qe(e,-10))});return s.EditorView.domEventHandlers({keydown:(t,o)=>{const n=e;return e=o,i(t),e=n,t.defaultPrevented}})}class Ge extends H{#u;constructor(e,t){super(e,t),r.TargetManager.TargetManager.instance().observeModels(r.CSSModel.CSSModel,this)}static accepts(e){return e.contentType().hasStyleSheets()}modelAdded(e){e.target()===r.TargetManager.TargetManager.instance().primaryPageTarget()&&(this.#u=e)}modelRemoved(e){this.#u===e&&(this.#u=void 0)}editorExtension(){return[$e(),this.#h(),[_e,Oe,Ke]]}#h(){const{cssCompletionSource:e}=s.css,t=this.uiSourceCode,i=this.#u;return s.autocompletion({override:[async o=>await(await Be(o,t,i)||e(o))]})}populateTextAreaContextMenu(e){const t=this.#u,o=this.uiSourceCode.url();if(this.uiSourceCode.project().type()===i.Workspace.projectTypes.Network&&t&&!p.IgnoreListManager.IgnoreListManager.instance().isUserIgnoreListedURL(o)){const i=Ne(De.addSourceMap);e.debugSection().appendItem(i,(()=>function(e,t){V.createAddSourceMapURLDialog((i=>{p.CSSWorkspaceBinding.CSSWorkspaceBinding.instance().modelToInfo.get(e)?.addSourceMap(t,i)})).show()}(t,o)),{jslogContext:"add-source-map"})}}}const Ke=s.EditorView.baseTheme({".cm-tooltip.cm-tooltip-swatchEdit":{"box-shadow":"var(--sys-elevation-level2)","background-color":"var(--sys-color-base-container-elevated)","border-radius":"var(--sys-shape-corner-extra-small)"}});var Je=Object.freeze({__proto__:null,CSSPlugin:Ge,cssBindings:$e}),Qe={cssText:`.paused-status{margin:6px;padding:4px 10px;border-radius:10px;background-color:var(--sys-color-yellow-container);color:var(--sys-color-on-yellow-container)}.paused-status.error-reason{background-color:var(--sys-color-surface-error);color:var(--sys-color-on-surface-error)}.status-main{padding-left:18px;position:relative}.status-sub:not(:empty){padding-left:15px;padding-top:5px;overflow:hidden;text-overflow:ellipsis}.paused-status.error-reason .status-sub{color:var(--sys-color-error);line-height:11px;max-height:27px;user-select:text}devtools-icon{position:absolute;left:-1px;top:-1px}\n/*# sourceURL=${import.meta.resolve("./debuggerPausedMessage.css")} */\n`};const Xe={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",webglErrorFiredS:"WebGL Error Fired ({PH1})",scriptBlockedDueToContent:"Script blocked due to Content Security Policy directive: {PH1}"},Ye=e.i18n.registerUIStrings("panels/sources/DebuggerPausedMessage.ts",Xe),Ze=e.i18n.getLocalizedString.bind(void 0,Ye),et=e.i18n.getLazilyComputedLocalizedString.bind(void 0,Ye);class tt{elementInternal;contentElement;constructor(){this.elementInternal=document.createElement("div"),this.elementInternal.classList.add("paused-message"),this.elementInternal.classList.add("flex-none"),this.elementInternal.setAttribute("jslog",`${l.dialog("debugger-paused")}`);const e=t.UIUtils.createShadowRootWithCoreStyles(this.elementInternal,{cssFile:Qe});this.contentElement=e.createChild("div"),t.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(t){const i=document.createElement("span"),o=t.debuggerModel.target().model(r.DOMDebuggerModel.DOMDebuggerModel);if(!t.auxData||!o)return i;const s=o.resolveDOMBreakpointData(t.auxData);if(!s)return i;const c=i.createChild("div","status-main"),l=new a.Icon.Icon;l.data={iconName:"info",color:"var(--sys-color-on-yellow-container)",width:"16px",height:"16px"},c.appendChild(l);const d=it.get(s.type);c.appendChild(document.createTextNode(Ze(Xe.pausedOnS,{PH1:d?d():String(null)})));const u=i.createChild("div","status-sub monospace"),h=await n.Linkifier.Linkifier.linkify(s.node);if(u.appendChild(h),s.targetNode){const t=await n.Linkifier.Linkifier.linkify(s.targetNode);let i;i=s.insertion?s.targetNode===s.node?e.i18n.getFormatLocalizedString(Ye,Xe.childSAdded,{PH1:t}):e.i18n.getFormatLocalizedString(Ye,Xe.descendantSAdded,{PH1:t}):e.i18n.getFormatLocalizedString(Ye,Xe.descendantSRemoved,{PH1:t}),u.appendChild(document.createElement("br")),u.appendChild(i)}return i}static#p(e){if(!e)return"";const{eventName:t,webglErrorName:i,directiveText:o,targetName:n}=e;if("instrumentation:webglErrorFired"===t&&i){const e=i.replace(/^.*(0x[0-9a-f]+).*$/i,"$1");return Ze(Xe.webglErrorFiredS,{PH1:e})}if("instrumentation:scriptBlockedByCSP"===t&&o)return Ze(Xe.scriptBlockedDueToContent,{PH1:o});let s=r.EventBreakpointsModel.EventBreakpointsManager.instance().resolveEventListenerBreakpoint(e);return s?me(s.name):(s=r.DOMDebuggerModel.DOMDebuggerManager.instance().resolveEventListenerBreakpoint(e),s&&n?n+"."+s.name:s?.name??"")}async render(e,i,o){if(this.contentElement.removeChildren(),this.contentElement.hidden=!e,!e)return;const n=this.contentElement.createChild("div","paused-status"),r="exception"===e.reason||"promiseRejection"===e.reason||"assert"===e.reason||"OOM"===e.reason;let s;if("DOM"===e.reason)s=await tt.createDOMBreakpointHitMessage(e);else if("EventListener"===e.reason){const t=tt.#p(e.auxData);s=c(Ze(Xe.pausedOnEventListener),t)}else if("XHR"===e.reason){const t=e.auxData;s=c(Ze(Xe.pausedOnXhrOrFetch),t.url||"")}else if("exception"===e.reason){const t=e.auxData,i=t.description||t.value||"",o=tt.descriptionWithoutStack(i);s=c(Ze(Xe.pausedOnException),o,i)}else if("promiseRejection"===e.reason){const t=e.auxData,i=t.description||t.value||"",o=tt.descriptionWithoutStack(i);s=c(Ze(Xe.pausedOnPromiseRejection),o,i)}else if("assert"===e.reason)s=c(Ze(Xe.pausedOnAssertion));else if("debugCommand"===e.reason)s=c(Ze(Xe.pausedOnDebuggedFunction));else if("OOM"===e.reason)s=c(Ze(Xe.pausedBeforePotentialOutofmemory));else if("CSPViolation"===e.reason&&e.auxData?.violationType){const t=e.auxData.violationType;"trustedtype-sink-violation"===t?s=c(Ze(Xe.pausedOnCspViolation),Ze(Xe.trustedTypeSinkViolation)):"trustedtype-policy-violation"===t&&(s=c(Ze(Xe.pausedOnCspViolation),Ze(Xe.trustedTypePolicyViolation)))}else if(e.callFrames.length){const t=await i.rawLocationToUILocation(e.callFrames[0].location()),n=t?o.findBreakpoint(t):null;s=c(Ze(n?Xe.pausedOnBreakpoint:Xe.debuggerPaused))}else console.warn("ScriptsPanel paused, but callFrames.length is zero.");function c(e,i,o){const n=document.createElement("span"),s=n.createChild("div","status-main"),c=new a.Icon.Icon;if(c.data={iconName:r?"cross-circle-filled":"info",color:r?"var(--icon-error)":"var(--sys-color-on-yellow-container)",width:"16px",height:"16px"},s.appendChild(c),s.appendChild(document.createTextNode(e)),i){const e=n.createChild("div","status-sub monospace");e.textContent=i,t.Tooltip.Tooltip.install(e,o||i)}return n}n.classList.toggle("error-reason",r),s&&n.appendChild(s)}}const it=new Map([["subtree-modified",et(Xe.subtreeModifications)],["attribute-modified",et(Xe.attributeModifications)],["node-removed",et(Xe.nodeRemoval)]]);var ot=Object.freeze({__proto__:null,BreakpointTypeNouns:it,DebuggerPausedMessage:tt}),nt={cssText:`.is-ignore-listed{.tree-element-title,\n .leading-icons{opacity:40%}}.tree-outline li{min-height:20px}.tree-outline li:hover:not(.selected) .selection{display:block;background-color:var(--sys-color-state-hover-on-subtle)}.navigator-fs-folder-tree-item devtools-icon{color:var(--icon-folder-workspace)}.navigator-fs-tree-item devtools-icon{color:var(--icon-file-authored)}.navigator-nw-folder-tree-item devtools-icon{color:var(--icon-folder-deployed)}.navigator-sm-script-tree-item devtools-icon,\n.navigator-script-tree-item devtools-icon,\n.navigator-snippet-tree-item devtools-icon{color:var(--icon-file-script)}.navigator-file-tree-item .ai-button-container{display:none;position:absolute;z-index:999;right:var(--sys-size-3)}.navigator-file-tree-item:hover .ai-button-container{display:inline-flex}.navigator-file-tree-item devtools-icon.dot::before{width:7px;height:7px;top:12px;left:11px}.navigator-file-tree-item:hover:not(.force-white-icons) devtools-icon.dot::before{outline-color:var(--icon-gap-hover)}.navigator-file-tree-item.selected:not(.force-white-icons) devtools-icon.dot::before{outline-color:var(--icon-gap-inactive)}.navigator-file-tree-item.selected.force-white-icons devtools-icon.dot::before{outline-color:var(--icon-gap-focus-selected)}.navigator-sm-stylesheet-tree-item devtools-icon,\n.navigator-stylesheet-tree-item devtools-icon{color:var(--icon-file-styles)}.navigator-image-tree-item devtools-icon,\n.navigator-font-tree-item devtools-icon{color:var(--icon-file-image)}.navigator-nw-folder-tree-item.is-from-source-map devtools-icon{color:var(--icon-folder-authored)}.navigator-fs-tree-item:not(.has-mapped-files, .selected) > :not(.selection),\n.navigator-fs-folder-tree-item:not(.has-mapped-files, .selected) > :not(.selection){color:var(--sys-color-on-surface-subtle);opacity:40%;& devtools-icon{color:var(--sys-color-on-surface-subtle)}}.tree-outline:not(:has(.navigator-deployed-tree-item)) .navigator-sm-folder-tree-item .tree-element-title,\n.tree-outline:not(:has(.navigator-deployed-tree-item)) .navigator-sm-script-tree-item .tree-element-title,\n.tree-outline:not(:has(.navigator-deployed-tree-item)) .navigator-sm-stylesheet-tree-item .tree-element-title{font-style:italic}@media (forced-colors: active){.tree-outline li .leading-icons devtools-icon{color:ButtonText}.tree-outline li:hover:not(.selected) .selection,\n .tree-outline li:hover:not(:has(dt-checkbox)) .selection{forced-color-adjust:none;background-color:Highlight}.tree-outline:not(.hide-selection-when-blurred) li.parent:hover:not(.selected)::before{background-color:HighlightText}.tree-outline:not(.hide-selection-when-blurred) li:hover:not(.selected) devtools-icon,\n .tree-outline li:not(.selected):hover .tree-element-title{forced-color-adjust:none;color:HighlightText}.navigator-fs-tree-item:not(.has-mapped-files, .selected) > :not(.selection),\n .navigator-fs-folder-tree-item:not(.has-mapped-files, .selected) > :not(.selection),\n .is-ignore-listed{filter:none;opacity:100%}}\n/*# sourceURL=${import.meta.resolve("./navigatorTree.css")} */\n`},rt={cssText:`.navigator-toolbar{border-bottom:1px solid var(--sys-color-divider);padding-left:8px}\n/*# sourceURL=${import.meta.resolve("./navigatorView.css")} */\n`};class st{searchId;searchResultCandidates;searchResultCallback;searchFinishedCallback;searchConfig;constructor(){this.searchId=0,this.searchResultCandidates=[],this.searchResultCallback=null,this.searchF