@react-native/debugger-frontend 0.83.4 → 0.83.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BUILD_INFO +2 -2
- package/dist/third-party/front_end/core/i18n/locales/en-US.json +1 -1
- package/dist/third-party/front_end/core/rn_experiments/rn_experiments.js +1 -1
- package/dist/third-party/front_end/core/root/root.js +1 -1
- package/dist/third-party/front_end/entrypoints/rn_fusebox/rn_fusebox.js +3 -3
- package/dist/third-party/front_end/panels/timeline/timeline.js +2 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as e from"../root/root.js";const t=e.Runtime.RNExperimentName,i={didInitializeExperiments:!1,isReactNativeEntryPoint:!1};class n{name;title;unstable;docLink;feedbackLink;enabledByDefault;constructor(e){this.name=e.name,this.title=e.title,this.unstable=e.unstable,this.docLink=e.docLink,this.feedbackLink=e.feedbackLink,this.enabledByDefault=function(e,t){if(null==e)return()=>t;if("boolean"==typeof e)return()=>e;return e}(e.enabledByDefault,!1)}}const r=new class{#e=new Map;#t=new Set;register(e){if(i.didInitializeExperiments)throw new Error("Experiments must be registered before constructing MainImpl");const{name:t}=e;if(this.#e.has(t))throw new Error(`React Native Experiment ${t} is already registered`);this.#e.set(t,new n(e))}enableExperimentsByDefault(e){if(i.didInitializeExperiments)throw new Error("Experiments must be configured before constructing MainImpl");for(const i of e)if(Object.prototype.hasOwnProperty.call(t,i)){const e=this.#e.get(i);if(!e)throw new Error(`React Native Experiment ${i} is not registered`);e.enabledByDefault=()=>!0}else this.#t.add(i)}copyInto(e,t=""){for(const[n,r]of this.#e)e.register(n,t+r.title,r.unstable,r.docLink,r.feedbackLink),r.enabledByDefault({isReactNativeEntryPoint:i.isReactNativeEntryPoint})&&e.enableExperimentsByDefault([n]);for(const t of this.#t)e.enableExperimentsByDefault([t]);i.didInitializeExperiments=!0}};r.register({name:t.JS_HEAP_PROFILER_ENABLE,title:"Enable Heap Profiler (Memory Panel)",unstable:!1,enabledByDefault:({isReactNativeEntryPoint:e})=>!e}),r.register({name:t.REACT_NATIVE_SPECIFIC_UI,title:"Show React Native-specific UI",unstable:!1,enabledByDefault:({isReactNativeEntryPoint:e})=>e});var a=Object.freeze({__proto__:null,Instance:r,RNExperimentName:t,setIsReactNativeEntryPoint:function(e){if(i.didInitializeExperiments)throw new Error("setIsReactNativeEntryPoint must be called before constructing MainImpl");i.isReactNativeEntryPoint=e}});export{a as RNExperimentsImpl};
|
|
1
|
+
import*as e from"../root/root.js";const t=e.Runtime.RNExperimentName,i={didInitializeExperiments:!1,isReactNativeEntryPoint:!1};class n{name;title;unstable;docLink;feedbackLink;enabledByDefault;constructor(e){this.name=e.name,this.title=e.title,this.unstable=e.unstable,this.docLink=e.docLink,this.feedbackLink=e.feedbackLink,this.enabledByDefault=function(e,t){if(null==e)return()=>t;if("boolean"==typeof e)return()=>e;return e}(e.enabledByDefault,!1)}}const r=new class{#e=new Map;#t=new Set;register(e){if(i.didInitializeExperiments)throw new Error("Experiments must be registered before constructing MainImpl");const{name:t}=e;if(this.#e.has(t))throw new Error(`React Native Experiment ${t} is already registered`);this.#e.set(t,new n(e))}enableExperimentsByDefault(e){if(i.didInitializeExperiments)throw new Error("Experiments must be configured before constructing MainImpl");for(const i of e)if(Object.prototype.hasOwnProperty.call(t,i)){const e=this.#e.get(i);if(!e)throw new Error(`React Native Experiment ${i} is not registered`);e.enabledByDefault=()=>!0}else this.#t.add(i)}copyInto(e,t=""){for(const[n,r]of this.#e)e.register(n,t+r.title,r.unstable,r.docLink,r.feedbackLink),r.enabledByDefault({isReactNativeEntryPoint:i.isReactNativeEntryPoint})&&e.enableExperimentsByDefault([n]);for(const t of this.#t)e.enableExperimentsByDefault([t]);i.didInitializeExperiments=!0}};r.register({name:t.JS_HEAP_PROFILER_ENABLE,title:"Enable Heap Profiler (Memory Panel)",unstable:!1,enabledByDefault:({isReactNativeEntryPoint:e})=>!e}),r.register({name:t.REACT_NATIVE_SPECIFIC_UI,title:"Show React Native-specific UI",unstable:!1,enabledByDefault:({isReactNativeEntryPoint:e})=>e}),r.register({name:t.ENABLE_TIMELINE_FRAMES,title:"Enable performance frames track",unstable:!0});var a=Object.freeze({__proto__:null,Instance:r,RNExperimentName:t,setIsReactNativeEntryPoint:function(e){if(i.didInitializeExperiments)throw new Error("setIsReactNativeEntryPoint must be called before constructing MainImpl");i.isReactNativeEntryPoint=e}});export{a as RNExperimentsImpl};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as e from"../platform/platform.js";const t=new URLSearchParams(location.search);let n,r,s="";function i(){return window.location.pathname}function a(e){return["node_app","js_app"].some((t=>e.includes(t)))}class o{constructor(){}static instance(e={forceNew:null}){const{forceNew:t}=e;return n&&!t||(n=new o),n}static removeInstance(){n=void 0}static queryParam(e){return t.get(e)}static setQueryParamForTesting(e,n){t.set(e,n)}static isNode(){return void 0===r&&(r=a(i())),r}static setPlatform(e){s=e}static platform(){return s}static isDescriptorEnabled(e){const{experiment:t}=e;if("*"===t)return!0;if(t&&t.startsWith("!")&&h.isEnabled(t.substring(1)))return!1;if(t&&!t.startsWith("!")&&!h.isEnabled(t))return!1;const{condition:n}=e;return!n||n(f)}loadLegacyModule(e){console.log("Loading legacy module: "+e);return import(`../../${e}`).then((t=>(console.log("Loaded legacy module: "+e),t)))}}class l{#e=[];#t=new Set;#n=new Set;#r=new Set;#s=new Set;#i=new c;allConfigurableExperiments(){const e=[];for(const t of this.#e)this.#n.has(t.name)||e.push(t);return e}register(t,n,r,s,i){if(this.#t.has(t))throw new Error(`Duplicate registration of experiment '${t}'`);this.#t.add(t),this.#e.push(new m(this,t,n,Boolean(r),s??e.DevToolsPath.EmptyUrlString,i??e.DevToolsPath.EmptyUrlString))}isEnabled(e){return this.checkExperiment(e),!1!==this.#i.get(e)&&(!(!this.#n.has(e)&&!this.#r.has(e))||(!!this.#s.has(e)||Boolean(this.#i.get(e))))}setEnabled(e,t){this.checkExperiment(e),this.#i.set(e,t)}enableExperimentsTransiently(e){for(const t of e)this.checkExperiment(t),this.#n.add(t)}enableExperimentsByDefault(e){for(const t of e)this.checkExperiment(t),this.#r.add(t)}setServerEnabledExperiments(e){for(const t of e)this.checkExperiment(t),this.#s.add(t)}enableForTest(e){this.checkExperiment(e),this.#n.add(e)}disableForTest(e){this.checkExperiment(e),this.#n.delete(e)}clearForTest(){this.#e=[],this.#t.clear(),this.#n.clear(),this.#r.clear(),this.#s.clear()}cleanUpStaleExperiments(){this.#i.cleanUpStaleExperiments(this.#t)}checkExperiment(e){if(!this.#t.has(e))throw new Error(`Unknown experiment '${e}'`)}}class c{#e={};constructor(){try{const e=self.localStorage?.getItem("experiments");e&&(this.#e=JSON.parse(e))}catch{console.error("Failed to parse localStorage['experiments']")}}get(e){return this.#e[e]}set(e,t){this.#e[e]=t,this.#a()}cleanUpStaleExperiments(e){for(const[t]of Object.entries(this.#e))e.has(t)||delete this.#e[t];this.#a()}#a(){self.localStorage?.setItem("experiments",JSON.stringify(this.#e))}}class m{name;title;unstable;docLink;feedbackLink;#e;constructor(e,t,n,r,s,i){this.name=t,this.title=n,this.unstable=r,this.docLink=s,this.feedbackLink=i,this.#e=e}isEnabled(){return this.#e.isEnabled(this.name)}setEnabled(e){this.#e.setEnabled(this.name,e)}}const h=new l;var p,
|
|
1
|
+
import*as e from"../platform/platform.js";const t=new URLSearchParams(location.search);let n,r,s="";function i(){return window.location.pathname}function a(e){return["node_app","js_app"].some((t=>e.includes(t)))}class o{constructor(){}static instance(e={forceNew:null}){const{forceNew:t}=e;return n&&!t||(n=new o),n}static removeInstance(){n=void 0}static queryParam(e){return t.get(e)}static setQueryParamForTesting(e,n){t.set(e,n)}static isNode(){return void 0===r&&(r=a(i())),r}static setPlatform(e){s=e}static platform(){return s}static isDescriptorEnabled(e){const{experiment:t}=e;if("*"===t)return!0;if(t&&t.startsWith("!")&&h.isEnabled(t.substring(1)))return!1;if(t&&!t.startsWith("!")&&!h.isEnabled(t))return!1;const{condition:n}=e;return!n||n(f)}loadLegacyModule(e){console.log("Loading legacy module: "+e);return import(`../../${e}`).then((t=>(console.log("Loaded legacy module: "+e),t)))}}class l{#e=[];#t=new Set;#n=new Set;#r=new Set;#s=new Set;#i=new c;allConfigurableExperiments(){const e=[];for(const t of this.#e)this.#n.has(t.name)||e.push(t);return e}register(t,n,r,s,i){if(this.#t.has(t))throw new Error(`Duplicate registration of experiment '${t}'`);this.#t.add(t),this.#e.push(new m(this,t,n,Boolean(r),s??e.DevToolsPath.EmptyUrlString,i??e.DevToolsPath.EmptyUrlString))}isEnabled(e){return this.checkExperiment(e),!1!==this.#i.get(e)&&(!(!this.#n.has(e)&&!this.#r.has(e))||(!!this.#s.has(e)||Boolean(this.#i.get(e))))}setEnabled(e,t){this.checkExperiment(e),this.#i.set(e,t)}enableExperimentsTransiently(e){for(const t of e)this.checkExperiment(t),this.#n.add(t)}enableExperimentsByDefault(e){for(const t of e)this.checkExperiment(t),this.#r.add(t)}setServerEnabledExperiments(e){for(const t of e)this.checkExperiment(t),this.#s.add(t)}enableForTest(e){this.checkExperiment(e),this.#n.add(e)}disableForTest(e){this.checkExperiment(e),this.#n.delete(e)}clearForTest(){this.#e=[],this.#t.clear(),this.#n.clear(),this.#r.clear(),this.#s.clear()}cleanUpStaleExperiments(){this.#i.cleanUpStaleExperiments(this.#t)}checkExperiment(e){if(!this.#t.has(e))throw new Error(`Unknown experiment '${e}'`)}}class c{#e={};constructor(){try{const e=self.localStorage?.getItem("experiments");e&&(this.#e=JSON.parse(e))}catch{console.error("Failed to parse localStorage['experiments']")}}get(e){return this.#e[e]}set(e,t){this.#e[e]=t,this.#a()}cleanUpStaleExperiments(e){for(const[t]of Object.entries(this.#e))e.has(t)||delete this.#e[t];this.#a()}#a(){self.localStorage?.setItem("experiments",JSON.stringify(this.#e))}}class m{name;title;unstable;docLink;feedbackLink;#e;constructor(e,t,n,r,s,i){this.name=t,this.title=n,this.unstable=r,this.docLink=s,this.feedbackLink=i,this.#e=e}isEnabled(){return this.#e.isEnabled(this.name)}setEnabled(e){this.#e.setEnabled(this.name,e)}}const h=new l;var E,p,d,u;!function(e){e.REACT_NATIVE_SPECIFIC_UI="react-native-specific-ui",e.JS_HEAP_PROFILER_ENABLE="js-heap-profiler-enable",e.ENABLE_TIMELINE_FRAMES="enable-timeline-frames"}(E||(E={})),function(e){e.NOT_SOURCES_HIDE_ADD_FOLDER="!sources.hide_add_folder",e.REACT_NATIVE_UNSTABLE_NETWORK_PANEL="unstable_enableNetworkPanel"}(p||(p={})),function(e){e[e.ALLOW=0]="ALLOW",e[e.ALLOW_WITHOUT_LOGGING=1]="ALLOW_WITHOUT_LOGGING",e[e.DISABLE=2]="DISABLE"}(d||(d={})),function(e){e.ALL_SCRIPTS="ALL_SCRIPTS",e.SIDE_EFFECT_FREE_SCRIPTS_ONLY="SIDE_EFFECT_FREE_SCRIPTS_ONLY",e.NO_SCRIPTS="NO_SCRIPTS"}(u||(u={}));const f=Object.create(null),_={canDock:()=>Boolean(o.queryParam("can_dock")),notSourcesHideAddFolder:()=>Boolean(o.queryParam(p.NOT_SOURCES_HIDE_ADD_FOLDER)),reactNativeExpoNetworkPanel:()=>Boolean(o.queryParam(p.REACT_NATIVE_UNSTABLE_NETWORK_PANEL))};var x=Object.freeze({__proto__:null,get ConditionName(){return p},Experiment:m,ExperimentsSupport:l,get GenAiEnterprisePolicyValue(){return d},get HostConfigFreestylerExecutionMode(){return u},get RNExperimentName(){return E},Runtime:o,conditions:_,experiments:h,getChromeVersion:()=>{const e=navigator.userAgent.match(/(?:^|\W)(?:Chrome|HeadlessChrome)\/(\S+)/);return e&&e.length>1?e[1]:""},getPathName:i,getRemoteBase:function(e=self.location.toString()){const t=new URL(e).searchParams.get("remoteBase");if(!t)return null;const n=/\/serve_file\/(@[0-9a-zA-Z]+)\/?$/.exec(t);return n?{base:`devtools://devtools/remote/serve_file/${n[1]}/`,version:n[1]}:null},hostConfig:f,isNodeEntry:a});export{x as Runtime};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"../shell/shell.js";import*as e from"../../core/common/common.js";import*as t from"../../core/i18n/i18n.js";import*as o from"../../core/root/root.js";import*as i from"../../ui/legacy/legacy.js";import*as n from"../../core/sdk/sdk.js";import*as a from"../../models/issues_manager/issues_manager.js";import*as r from"../../models/extensions/extensions.js";import*as s from"../../models/workspace/workspace.js";import*as l from"../../panels/network/forward/forward.js";import*as c from"../../core/host/host.js";import*as d from"../../core/rn_experiments/rn_experiments.js";import*as g from"../main/main.js";import*as u from"../../ui/lit/lit.js";import*as m from"../../ui/visual_logging/visual_logging.js";const w={toggleDeviceToolbar:"Toggle device toolbar",captureScreenshot:"Capture screenshot",captureFullSizeScreenshot:"Capture full size screenshot",captureNodeScreenshot:"Capture node screenshot",showMediaQueries:"Show media queries",device:"device",hideMediaQueries:"Hide media queries",showRulers:"Show rulers in the Device Mode toolbar",hideRulers:"Hide rulers in the Device Mode toolbar",showDeviceFrame:"Show device frame",hideDeviceFrame:"Hide device frame"},p=t.i18n.registerUIStrings("panels/emulation/emulation-meta.ts",w),v=t.i18n.getLazilyComputedLocalizedString.bind(void 0,p);let h;async function y(){return h||(h=await import("../../panels/emulation/emulation.js")),h}i.ActionRegistration.registerActionExtension({category:"MOBILE",actionId:"emulation.toggle-device-mode",toggleable:!0,loadActionDelegate:async()=>new((await y()).DeviceModeWrapper.ActionDelegate),condition:o.Runtime.conditions.canDock,title:v(w.toggleDeviceToolbar),iconClass:"devices",bindings:[{platform:"windows,linux",shortcut:"Shift+Ctrl+M"},{platform:"mac",shortcut:"Shift+Meta+M"}]}),i.ActionRegistration.registerActionExtension({actionId:"emulation.capture-screenshot",category:"SCREENSHOT",loadActionDelegate:async()=>new((await y()).DeviceModeWrapper.ActionDelegate),condition:o.Runtime.conditions.canDock,title:v(w.captureScreenshot)}),i.ActionRegistration.registerActionExtension({actionId:"emulation.capture-full-height-screenshot",category:"SCREENSHOT",loadActionDelegate:async()=>new((await y()).DeviceModeWrapper.ActionDelegate),condition:o.Runtime.conditions.canDock,title:v(w.captureFullSizeScreenshot)}),i.ActionRegistration.registerActionExtension({actionId:"emulation.capture-node-screenshot",category:"SCREENSHOT",loadActionDelegate:async()=>new((await y()).DeviceModeWrapper.ActionDelegate),condition:o.Runtime.conditions.canDock,title:v(w.captureNodeScreenshot)}),e.Settings.registerSettingExtension({category:"MOBILE",settingName:"show-media-query-inspector",settingType:"boolean",defaultValue:!1,options:[{value:!0,title:v(w.showMediaQueries)},{value:!1,title:v(w.hideMediaQueries)}],tags:[v(w.device)]}),e.Settings.registerSettingExtension({category:"MOBILE",settingName:"emulation.show-rulers",settingType:"boolean",defaultValue:!1,options:[{value:!0,title:v(w.showRulers)},{value:!1,title:v(w.hideRulers)}],tags:[v(w.device)]}),e.Settings.registerSettingExtension({category:"MOBILE",settingName:"emulation.show-device-outline",settingType:"boolean",defaultValue:!1,options:[{value:!0,title:v(w.showDeviceFrame)},{value:!1,title:v(w.hideDeviceFrame)}],tags:[v(w.device)]}),i.Toolbar.registerToolbarItem({actionId:"emulation.toggle-device-mode",condition:o.Runtime.conditions.canDock,location:"main-toolbar-left",order:1,loadItem:void 0,separator:void 0}),e.AppProvider.registerAppProvider({loadAppProvider:async()=>(await y()).AdvancedApp.AdvancedAppProvider.instance(),condition:o.Runtime.conditions.canDock,order:0}),i.ContextMenu.registerItem({location:"deviceModeMenu/save",order:12,actionId:"emulation.capture-screenshot"}),i.ContextMenu.registerItem({location:"deviceModeMenu/save",order:13,actionId:"emulation.capture-full-height-screenshot"});const R={sensors:"Sensors",geolocation:"geolocation",timezones:"timezones",locale:"locale",locales:"locales",accelerometer:"accelerometer",deviceOrientation:"device orientation",locations:"Locations",touch:"Touch",devicebased:"Device-based",forceEnabled:"Force enabled",emulateIdleDetectorState:"Emulate Idle Detector state",noIdleEmulation:"No idle emulation",userActiveScreenUnlocked:"User active, screen unlocked",userActiveScreenLocked:"User active, screen locked",userIdleScreenUnlocked:"User idle, screen unlocked",userIdleScreenLocked:"User idle, screen locked",showSensors:"Show Sensors",showLocations:"Show Locations",cpuPressure:"CPU Pressure",noPressureEmulation:"No override",nominal:"Nominal",fair:"Fair",serious:"Serious",critical:"Critical"},f=t.i18n.registerUIStrings("panels/sensors/sensors-meta.ts",R),b=t.i18n.getLazilyComputedLocalizedString.bind(void 0,f);let k;async function S(){return k||(k=await import("../../panels/sensors/sensors.js")),k}i.ViewManager.registerViewExtension({location:"drawer-view",commandPrompt:b(R.showSensors),title:b(R.sensors),id:"sensors",persistence:"closeable",order:100,loadView:async()=>new((await S()).SensorsView.SensorsView),tags:[b(R.geolocation),b(R.timezones),b(R.locale),b(R.locales),b(R.accelerometer),b(R.deviceOrientation)]}),i.ViewManager.registerViewExtension({location:"settings-view",id:"emulation-locations",commandPrompt:b(R.showLocations),title:b(R.locations),order:40,loadView:async()=>new((await S()).LocationsSettingsTab.LocationsSettingsTab),settings:["emulation.locations"],iconName:"location-on"}),e.Settings.registerSettingExtension({storageType:"Synced",settingName:"emulation.locations",settingType:"array",defaultValue:[{title:"Berlin",lat:52.520007,long:13.404954,timezoneId:"Europe/Berlin",locale:"de-DE"},{title:"London",lat:51.507351,long:-.127758,timezoneId:"Europe/London",locale:"en-GB"},{title:"Moscow",lat:55.755826,long:37.6173,timezoneId:"Europe/Moscow",locale:"ru-RU"},{title:"Mountain View",lat:37.386052,long:-122.083851,timezoneId:"America/Los_Angeles",locale:"en-US"},{title:"Mumbai",lat:19.075984,long:72.877656,timezoneId:"Asia/Kolkata",locale:"mr-IN"},{title:"San Francisco",lat:37.774929,long:-122.419416,timezoneId:"America/Los_Angeles",locale:"en-US"},{title:"Shanghai",lat:31.230416,long:121.473701,timezoneId:"Asia/Shanghai",locale:"zh-Hans-CN"},{title:"São Paulo",lat:-23.55052,long:-46.633309,timezoneId:"America/Sao_Paulo",locale:"pt-BR"},{title:"Tokyo",lat:35.689487,long:139.691706,timezoneId:"Asia/Tokyo",locale:"ja-JP"}]}),e.Settings.registerSettingExtension({title:b(R.cpuPressure),reloadRequired:!0,settingName:"emulation.cpu-pressure",settingType:"enum",defaultValue:"none",options:[{value:"none",title:b(R.noPressureEmulation),text:b(R.noPressureEmulation)},{value:"nominal",title:b(R.nominal),text:b(R.nominal)},{value:"fair",title:b(R.fair),text:b(R.fair)},{value:"serious",title:b(R.serious),text:b(R.serious)},{value:"critical",title:b(R.critical),text:b(R.critical)}]}),e.Settings.registerSettingExtension({title:b(R.touch),reloadRequired:!0,settingName:"emulation.touch",settingType:"enum",defaultValue:"none",options:[{value:"none",title:b(R.devicebased),text:b(R.devicebased)},{value:"force",title:b(R.forceEnabled),text:b(R.forceEnabled)}]}),e.Settings.registerSettingExtension({title:b(R.emulateIdleDetectorState),settingName:"emulation.idle-detection",settingType:"enum",defaultValue:"none",options:[{value:"none",title:b(R.noIdleEmulation),text:b(R.noIdleEmulation)},{value:'{"isUserActive":true,"isScreenUnlocked":true}',title:b(R.userActiveScreenUnlocked),text:b(R.userActiveScreenUnlocked)},{value:'{"isUserActive":true,"isScreenUnlocked":false}',title:b(R.userActiveScreenLocked),text:b(R.userActiveScreenLocked)},{value:'{"isUserActive":false,"isScreenUnlocked":true}',title:b(R.userIdleScreenUnlocked),text:b(R.userIdleScreenUnlocked)},{value:'{"isUserActive":false,"isScreenUnlocked":false}',title:b(R.userIdleScreenLocked),text:b(R.userIdleScreenLocked)}]});const T={developerResources:"Developer resources",showDeveloperResources:"Show Developer resources"},A=t.i18n.registerUIStrings("panels/developer_resources/developer_resources-meta.ts",T),E=t.i18n.getLazilyComputedLocalizedString.bind(void 0,A);let N;async function P(){return N||(N=await import("../../panels/developer_resources/developer_resources.js")),N}i.ViewManager.registerViewExtension({location:"drawer-view",id:"developer-resources",title:E(T.developerResources),commandPrompt:E(T.showDeveloperResources),order:100,persistence:"closeable",loadView:async()=>new((await P()).DeveloperResourcesView.DeveloperResourcesView)}),e.Revealer.registerRevealer({contextTypes:()=>[n.PageResourceLoader.ResourceKey],destination:e.Revealer.RevealerDestination.DEVELOPER_RESOURCES_PANEL,loadRevealer:async()=>new((await P()).DeveloperResourcesView.DeveloperResourcesRevealer)});const x={rendering:"Rendering",showRendering:"Show Rendering",paint:"paint",layout:"layout",fps:"fps",cssMediaType:"CSS media type",cssMediaFeature:"CSS media feature",visionDeficiency:"vision deficiency",colorVisionDeficiency:"color vision deficiency",reloadPage:"Reload page",hardReloadPage:"Hard reload page",forceAdBlocking:"Force ad blocking on this site",blockAds:"Block ads on this site",showAds:"Show ads on this site, if allowed",autoOpenDevTools:"Auto-open DevTools for popups",doNotAutoOpen:"Do not auto-open DevTools for popups",disablePaused:"Disable paused state overlay",toggleCssPrefersColorSchemeMedia:"Toggle CSS media feature prefers-color-scheme"},I=t.i18n.registerUIStrings("entrypoints/inspector_main/inspector_main-meta.ts",x),D=t.i18n.getLazilyComputedLocalizedString.bind(void 0,I);let M;async function L(){return M||(M=await import("../inspector_main/inspector_main.js")),M}i.ViewManager.registerViewExtension({location:"drawer-view",id:"rendering",title:D(x.rendering),commandPrompt:D(x.showRendering),persistence:"closeable",order:50,loadView:async()=>new((await L()).RenderingOptions.RenderingOptionsView),tags:[D(x.paint),D(x.layout),D(x.fps),D(x.cssMediaType),D(x.cssMediaFeature),D(x.visionDeficiency),D(x.colorVisionDeficiency)]}),i.ActionRegistration.registerActionExtension({category:"NAVIGATION",actionId:"inspector-main.reload",loadActionDelegate:async()=>new((await L()).InspectorMain.ReloadActionDelegate),iconClass:"refresh",title:D(x.reloadPage),bindings:[{platform:"windows,linux",shortcut:"Ctrl+R"},{platform:"windows,linux",shortcut:"F5"},{platform:"mac",shortcut:"Meta+R"}]}),i.ActionRegistration.registerActionExtension({category:"NAVIGATION",actionId:"inspector-main.hard-reload",loadActionDelegate:async()=>new((await L()).InspectorMain.ReloadActionDelegate),title:D(x.hardReloadPage),bindings:[{platform:"windows,linux",shortcut:"Shift+Ctrl+R"},{platform:"windows,linux",shortcut:"Shift+F5"},{platform:"windows,linux",shortcut:"Ctrl+F5"},{platform:"windows,linux",shortcut:"Ctrl+Shift+F5"},{platform:"mac",shortcut:"Shift+Meta+R"}]}),i.ActionRegistration.registerActionExtension({actionId:"rendering.toggle-prefers-color-scheme",category:"RENDERING",title:D(x.toggleCssPrefersColorSchemeMedia),loadActionDelegate:async()=>new((await L()).RenderingOptions.ReloadActionDelegate)}),e.Settings.registerSettingExtension({category:"",title:D(x.forceAdBlocking),settingName:"network.ad-blocking-enabled",settingType:"boolean",storageType:"Session",defaultValue:!1,options:[{value:!0,title:D(x.blockAds)},{value:!1,title:D(x.showAds)}]}),e.Settings.registerSettingExtension({category:"GLOBAL",storageType:"Synced",title:D(x.autoOpenDevTools),settingName:"auto-attach-to-created-pages",settingType:"boolean",order:2,defaultValue:!1,options:[{value:!0,title:D(x.autoOpenDevTools)},{value:!1,title:D(x.doNotAutoOpen)}]}),e.Settings.registerSettingExtension({category:"APPEARANCE",storageType:"Synced",title:D(x.disablePaused),settingName:"disable-paused-state-overlay",settingType:"boolean",defaultValue:!1}),i.Toolbar.registerToolbarItem({loadItem:async()=>(await L()).InspectorMain.NodeIndicator.instance(),order:2,location:"main-toolbar-left"}),i.Toolbar.registerToolbarItem({loadItem:async()=>(await L()).OutermostTargetSelector.OutermostTargetSelector.instance(),order:98,location:"main-toolbar-right"});const C={issues:"Issues",showIssues:"Show Issues"},V=t.i18n.registerUIStrings("panels/issues/issues-meta.ts",C),F=t.i18n.getLazilyComputedLocalizedString.bind(void 0,V);let U;async function O(){return U||(U=await import("../../panels/issues/issues.js")),U}i.ViewManager.registerViewExtension({location:"drawer-view",id:"issues-pane",title:F(C.issues),commandPrompt:F(C.showIssues),order:100,persistence:"closeable",loadView:async()=>new((await O()).IssuesPane.IssuesPane)}),e.Revealer.registerRevealer({contextTypes:()=>[a.Issue.Issue],destination:e.Revealer.RevealerDestination.ISSUES_VIEW,loadRevealer:async()=>new((await O()).IssueRevealer.IssueRevealer)});const _={throttling:"Throttling",showThrottling:"Show Throttling",goOffline:"Go offline",device:"device",throttlingTag:"throttling",enableSlowGThrottling:"Enable slow `3G` throttling",enableFastGThrottling:"Enable fast `3G` throttling",goOnline:"Go online"},z=t.i18n.registerUIStrings("panels/mobile_throttling/mobile_throttling-meta.ts",_),B=t.i18n.getLazilyComputedLocalizedString.bind(void 0,z);let W;async function q(){return W||(W=await import("../../panels/mobile_throttling/mobile_throttling.js")),W}i.ViewManager.registerViewExtension({location:"settings-view",id:"throttling-conditions",title:B(_.throttling),commandPrompt:B(_.showThrottling),order:35,loadView:async()=>new((await q()).ThrottlingSettingsTab.ThrottlingSettingsTab),settings:["custom-network-conditions","calibrated-cpu-throttling"],iconName:"performance"}),i.ActionRegistration.registerActionExtension({actionId:"network-conditions.network-offline",category:"NETWORK",title:B(_.goOffline),loadActionDelegate:async()=>new((await q()).ThrottlingManager.ActionDelegate),tags:[B(_.device),B(_.throttlingTag)]}),i.ActionRegistration.registerActionExtension({actionId:"network-conditions.network-low-end-mobile",category:"NETWORK",title:B(_.enableSlowGThrottling),loadActionDelegate:async()=>new((await q()).ThrottlingManager.ActionDelegate),tags:[B(_.device),B(_.throttlingTag)]}),i.ActionRegistration.registerActionExtension({actionId:"network-conditions.network-mid-tier-mobile",category:"NETWORK",title:B(_.enableFastGThrottling),loadActionDelegate:async()=>new((await q()).ThrottlingManager.ActionDelegate),tags:[B(_.device),B(_.throttlingTag)]}),i.ActionRegistration.registerActionExtension({actionId:"network-conditions.network-online",category:"NETWORK",title:B(_.goOnline),loadActionDelegate:async()=>new((await q()).ThrottlingManager.ActionDelegate),tags:[B(_.device),B(_.throttlingTag)]}),e.Settings.registerSettingExtension({storageType:"Synced",settingName:"custom-network-conditions",settingType:"array",defaultValue:[]});const j={showNetwork:"Show Network",network:"Network",networkExpoUnstable:"Expo Network",showNetworkRequestBlocking:"Show Network request blocking",networkRequestBlocking:"Network request blocking",showNetworkConditions:"Show Network conditions",networkConditions:"Network conditions",diskCache:"disk cache",networkThrottling:"network throttling",showSearch:"Show Search",search:"Search",recordNetworkLog:"Record network log",stopRecordingNetworkLog:"Stop recording network log",hideRequestDetails:"Hide request details",colorcodeResourceTypes:"Color-code resource types",colorCode:"color code",resourceType:"resource type",colorCodeByResourceType:"Color code by resource type",useDefaultColors:"Use default colors",groupNetworkLogByFrame:"Group network log by frame",netWork:"network",frame:"frame",group:"group",groupNetworkLogItemsByFrame:"Group network log items by frame",dontGroupNetworkLogItemsByFrame:"Don't group network log items by frame",clear:"Clear network log",addNetworkRequestBlockingPattern:"Add network request blocking pattern",removeAllNetworkRequestBlockingPatterns:"Remove all network request blocking patterns",allowToGenerateHarWithSensitiveData:"Allow to generate `HAR` with sensitive data",dontAllowToGenerateHarWithSensitiveData:"Don't allow to generate `HAR` with sensitive data",allowToGenerateHarWithSensitiveDataDocumentation:"By default generated HAR logs are sanitized and don't include `Cookie`, `Set-Cookie`, or `Authorization` HTTP headers. When this setting is enabled, options to export/copy HAR with sensitive data are provided."},H=t.i18n.registerUIStrings("panels/network/network-meta.ts",j),G=t.i18n.getLazilyComputedLocalizedString.bind(void 0,H),K=t.i18n.getLocalizedString.bind(void 0,H);let Q;async function Y(){return Q||(Q=await import("../../panels/network/network.js")),Q}function $(e){return void 0===Q?[]:e(Q)}i.ViewManager.registerViewExtension({location:"panel",id:"network",commandPrompt:G(j.showNetwork),title:()=>o.Runtime.conditions.reactNativeExpoNetworkPanel()?K(j.networkExpoUnstable):K(j.network),order:40,loadView:async()=>(await Y()).NetworkPanel.NetworkPanel.instance()}),i.ViewManager.registerViewExtension({location:"drawer-view",id:"network.blocked-urls",commandPrompt:G(j.showNetworkRequestBlocking),title:G(j.networkRequestBlocking),persistence:"closeable",order:60,loadView:async()=>new((await Y()).BlockedURLsPane.BlockedURLsPane)}),i.ViewManager.registerViewExtension({location:"drawer-view",id:"network.config",commandPrompt:G(j.showNetworkConditions),title:G(j.networkConditions),persistence:"closeable",order:40,tags:[G(j.diskCache),G(j.networkThrottling),t.i18n.lockedLazyString("useragent"),t.i18n.lockedLazyString("user agent"),t.i18n.lockedLazyString("user-agent")],loadView:async()=>(await Y()).NetworkConfigView.NetworkConfigView.instance()}),i.ViewManager.registerViewExtension({location:"network-sidebar",id:"network.search-network-tab",commandPrompt:G(j.showSearch),title:G(j.search),persistence:"permanent",loadView:async()=>(await Y()).NetworkPanel.SearchNetworkView.instance()}),i.ActionRegistration.registerActionExtension({actionId:"network.toggle-recording",category:"NETWORK",iconClass:"record-start",toggleable:!0,toggledIconClass:"record-stop",toggleWithRedColor:!0,contextTypes:()=>$((e=>[e.NetworkPanel.NetworkPanel])),loadActionDelegate:async()=>new((await Y()).NetworkPanel.ActionDelegate),options:[{value:!0,title:G(j.recordNetworkLog)},{value:!1,title:G(j.stopRecordingNetworkLog)}],bindings:[{shortcut:"Ctrl+E",platform:"windows,linux"},{shortcut:"Meta+E",platform:"mac"}]}),i.ActionRegistration.registerActionExtension({actionId:"network.clear",category:"NETWORK",title:G(j.clear),iconClass:"clear",loadActionDelegate:async()=>new((await Y()).NetworkPanel.ActionDelegate),contextTypes:()=>$((e=>[e.NetworkPanel.NetworkPanel])),bindings:[{shortcut:"Ctrl+L"},{shortcut:"Meta+K",platform:"mac"}]}),i.ActionRegistration.registerActionExtension({actionId:"network.hide-request-details",category:"NETWORK",title:G(j.hideRequestDetails),contextTypes:()=>$((e=>[e.NetworkPanel.NetworkPanel])),loadActionDelegate:async()=>new((await Y()).NetworkPanel.ActionDelegate),bindings:[{shortcut:"Esc"}]}),i.ActionRegistration.registerActionExtension({actionId:"network.search",category:"NETWORK",title:G(j.search),contextTypes:()=>$((e=>[e.NetworkPanel.NetworkPanel])),loadActionDelegate:async()=>new((await Y()).NetworkPanel.ActionDelegate),bindings:[{platform:"mac",shortcut:"Meta+F",keybindSets:["devToolsDefault","vsCode"]},{platform:"windows,linux",shortcut:"Ctrl+F",keybindSets:["devToolsDefault","vsCode"]}]}),i.ActionRegistration.registerActionExtension({actionId:"network.add-network-request-blocking-pattern",category:"NETWORK",title:G(j.addNetworkRequestBlockingPattern),iconClass:"plus",contextTypes:()=>$((e=>[e.BlockedURLsPane.BlockedURLsPane])),loadActionDelegate:async()=>new((await Y()).BlockedURLsPane.ActionDelegate)}),i.ActionRegistration.registerActionExtension({actionId:"network.remove-all-network-request-blocking-patterns",category:"NETWORK",title:G(j.removeAllNetworkRequestBlockingPatterns),iconClass:"clear",contextTypes:()=>$((e=>[e.BlockedURLsPane.BlockedURLsPane])),loadActionDelegate:async()=>new((await Y()).BlockedURLsPane.ActionDelegate)}),e.Settings.registerSettingExtension({category:"NETWORK",storageType:"Synced",title:G(j.allowToGenerateHarWithSensitiveData),settingName:"network.show-options-to-generate-har-with-sensitive-data",settingType:"boolean",defaultValue:!1,tags:[t.i18n.lockedLazyString("HAR")],options:[{value:!0,title:G(j.allowToGenerateHarWithSensitiveData)},{value:!1,title:G(j.dontAllowToGenerateHarWithSensitiveData)}],learnMore:{url:"https://goo.gle/devtools-export-hars",tooltip:G(j.allowToGenerateHarWithSensitiveDataDocumentation)}}),e.Settings.registerSettingExtension({category:"NETWORK",storageType:"Synced",title:G(j.colorcodeResourceTypes),settingName:"network-color-code-resource-types",settingType:"boolean",defaultValue:!1,tags:[G(j.colorCode),G(j.resourceType)],options:[{value:!0,title:G(j.colorCodeByResourceType)},{value:!1,title:G(j.useDefaultColors)}]}),e.Settings.registerSettingExtension({category:"NETWORK",storageType:"Synced",title:G(j.groupNetworkLogByFrame),settingName:"network.group-by-frame",settingType:"boolean",defaultValue:!1,tags:[G(j.netWork),G(j.frame),G(j.group)],options:[{value:!0,title:G(j.groupNetworkLogItemsByFrame)},{value:!1,title:G(j.dontGroupNetworkLogItemsByFrame)}]}),i.ViewManager.registerLocationResolver({name:"network-sidebar",category:"NETWORK",loadResolver:async()=>(await Y()).NetworkPanel.NetworkPanel.instance()}),i.ContextMenu.registerProvider({contextTypes:()=>[n.NetworkRequest.NetworkRequest,n.Resource.Resource,s.UISourceCode.UISourceCode,n.TraceObject.RevealableNetworkRequest],loadProvider:async()=>(await Y()).NetworkPanel.NetworkPanel.instance(),experiment:void 0}),e.Revealer.registerRevealer({contextTypes:()=>[n.NetworkRequest.NetworkRequest],destination:e.Revealer.RevealerDestination.NETWORK_PANEL,loadRevealer:async()=>new((await Y()).NetworkPanel.RequestRevealer)}),e.Revealer.registerRevealer({contextTypes:()=>[l.UIRequestLocation.UIRequestLocation],destination:void 0,loadRevealer:async()=>new((await Y()).NetworkPanel.RequestLocationRevealer)}),e.Revealer.registerRevealer({contextTypes:()=>[l.NetworkRequestId.NetworkRequestId],destination:e.Revealer.RevealerDestination.NETWORK_PANEL,loadRevealer:async()=>new((await Y()).NetworkPanel.RequestIdRevealer)}),e.Revealer.registerRevealer({contextTypes:()=>[l.UIFilter.UIRequestFilter,r.ExtensionServer.RevealableNetworkRequestFilter],destination:e.Revealer.RevealerDestination.NETWORK_PANEL,loadRevealer:async()=>new((await Y()).NetworkPanel.NetworkLogWithFilterRevealer)});const J={title:"Components ⚛",command:"Show React DevTools Components panel"},X=t.i18n.registerUIStrings("panels/react_devtools/react_devtools_components-meta.ts",J),Z=t.i18n.getLazilyComputedLocalizedString.bind(void 0,X);let ee;i.ViewManager.registerViewExtension({location:"panel",id:"react-devtools-components",title:Z(J.title),commandPrompt:Z(J.command),persistence:"permanent",order:1e3,loadView:async()=>new((await async function(){return ee||(ee=await import("../../panels/react_devtools/react_devtools.js")),ee}()).ReactDevToolsComponentsView.ReactDevToolsComponentsViewImpl)});const te={title:"Profiler ⚛",command:"Show React DevTools Profiler panel"},oe=t.i18n.registerUIStrings("panels/react_devtools/react_devtools_profiler-meta.ts",te),ie=t.i18n.getLazilyComputedLocalizedString.bind(void 0,oe);let ne;i.ViewManager.registerViewExtension({location:"panel",id:"react-devtools-profiler",title:ie(te.title),commandPrompt:ie(te.command),persistence:"permanent",order:1e3,loadView:async()=>new((await async function(){return ne||(ne=await import("../../panels/react_devtools/react_devtools.js")),ne}()).ReactDevToolsProfilerView.ReactDevToolsProfilerViewImpl)});const ae={rnWelcome:"Welcome",showRnWelcome:"Show React Native Welcome panel",debuggerBrandName:"React Native DevTools"},re=t.i18n.registerUIStrings("panels/rn_welcome/rn_welcome-meta.ts",ae),se=t.i18n.getLazilyComputedLocalizedString.bind(void 0,re);let le;i.ViewManager.registerViewExtension({location:"panel",id:"rn-welcome",title:se(ae.rnWelcome),commandPrompt:se(ae.showRnWelcome),order:-10,persistence:"permanent",loadView:async()=>(await async function(){return le||(le=await import("../../panels/rn_welcome/rn_welcome.js")),le}()).RNWelcome.RNWelcomeImpl.instance({debuggerBrandName:se(ae.debuggerBrandName),showBetaLabel:!1,showDocs:!0}),experiment:"react-native-specific-ui"});const ce={performance:"Performance",showPerformance:"Show Performance",record:"Record",stop:"Stop",recordAndReload:"Record and reload",saveProfile:"Save profile…",loadProfile:"Load profile…",previousFrame:"Previous frame",nextFrame:"Next frame",showRecentTimelineSessions:"Show recent timeline sessions",previousRecording:"Previous recording",nextRecording:"Next recording",hideChromeFrameInLayersView:"Hide `chrome` frame in Layers view"},de=t.i18n.registerUIStrings("panels/timeline/timeline-meta.ts",ce),ge=t.i18n.getLazilyComputedLocalizedString.bind(void 0,de);let ue;async function me(){return ue||(ue=await import("../../panels/timeline/timeline.js")),ue}function we(e){return void 0===ue?[]:e(ue)}i.ViewManager.registerViewExtension({location:"panel",id:"timeline",title:ge(ce.performance),commandPrompt:ge(ce.showPerformance),order:50,loadView:async()=>(await me()).TimelinePanel.TimelinePanel.instance()}),i.ActionRegistration.registerActionExtension({actionId:"timeline.toggle-recording",category:"PERFORMANCE",iconClass:"record-start",toggleable:!0,toggledIconClass:"record-stop",toggleWithRedColor:!0,contextTypes:()=>we((e=>[e.TimelinePanel.TimelinePanel])),loadActionDelegate:async()=>new((await me()).TimelinePanel.ActionDelegate),options:[{value:!0,title:ge(ce.record)},{value:!1,title:ge(ce.stop)}],bindings:[{platform:"windows,linux",shortcut:"Ctrl+E"},{platform:"mac",shortcut:"Meta+E"}]}),i.ActionRegistration.registerActionExtension({actionId:"timeline.record-reload",iconClass:"refresh",contextTypes:()=>we((e=>[e.TimelinePanel.TimelinePanel])),category:"PERFORMANCE",title:ge(ce.recordAndReload),loadActionDelegate:async()=>new((await me()).TimelinePanel.ActionDelegate),bindings:[{platform:"windows,linux",shortcut:"Ctrl+Shift+E"},{platform:"mac",shortcut:"Meta+Shift+E"}],experiment:"!react-native-specific-ui"}),i.ActionRegistration.registerActionExtension({category:"PERFORMANCE",actionId:"timeline.save-to-file",contextTypes:()=>we((e=>[e.TimelinePanel.TimelinePanel])),loadActionDelegate:async()=>new((await me()).TimelinePanel.ActionDelegate),title:ge(ce.saveProfile),bindings:[{platform:"windows,linux",shortcut:"Ctrl+S"},{platform:"mac",shortcut:"Meta+S"}]}),i.ActionRegistration.registerActionExtension({category:"PERFORMANCE",actionId:"timeline.load-from-file",contextTypes:()=>we((e=>[e.TimelinePanel.TimelinePanel])),loadActionDelegate:async()=>new((await me()).TimelinePanel.ActionDelegate),title:ge(ce.loadProfile),bindings:[{platform:"windows,linux",shortcut:"Ctrl+O"},{platform:"mac",shortcut:"Meta+O"}]}),i.ActionRegistration.registerActionExtension({actionId:"timeline.jump-to-previous-frame",category:"PERFORMANCE",title:ge(ce.previousFrame),contextTypes:()=>we((e=>[e.TimelinePanel.TimelinePanel])),loadActionDelegate:async()=>new((await me()).TimelinePanel.ActionDelegate),bindings:[{shortcut:"["}]}),i.ActionRegistration.registerActionExtension({actionId:"timeline.jump-to-next-frame",category:"PERFORMANCE",title:ge(ce.nextFrame),contextTypes:()=>we((e=>[e.TimelinePanel.TimelinePanel])),loadActionDelegate:async()=>new((await me()).TimelinePanel.ActionDelegate),bindings:[{shortcut:"]"}]}),i.ActionRegistration.registerActionExtension({actionId:"timeline.show-history",loadActionDelegate:async()=>new((await me()).TimelinePanel.ActionDelegate),category:"PERFORMANCE",title:ge(ce.showRecentTimelineSessions),contextTypes:()=>we((e=>[e.TimelinePanel.TimelinePanel])),bindings:[{platform:"windows,linux",shortcut:"Ctrl+H"},{platform:"mac",shortcut:"Meta+Y"}]}),i.ActionRegistration.registerActionExtension({actionId:"timeline.previous-recording",category:"PERFORMANCE",loadActionDelegate:async()=>new((await me()).TimelinePanel.ActionDelegate),title:ge(ce.previousRecording),contextTypes:()=>we((e=>[e.TimelinePanel.TimelinePanel])),bindings:[{platform:"windows,linux",shortcut:"Alt+Left"},{platform:"mac",shortcut:"Meta+Left"}]}),i.ActionRegistration.registerActionExtension({actionId:"timeline.next-recording",category:"PERFORMANCE",loadActionDelegate:async()=>new((await me()).TimelinePanel.ActionDelegate),title:ge(ce.nextRecording),contextTypes:()=>we((e=>[e.TimelinePanel.TimelinePanel])),bindings:[{platform:"windows,linux",shortcut:"Alt+Right"},{platform:"mac",shortcut:"Meta+Right"}]}),e.Settings.registerSettingExtension({category:"PERFORMANCE",storageType:"Synced",title:ge(ce.hideChromeFrameInLayersView),settingName:"frame-viewer-hide-chrome-window",settingType:"boolean",defaultValue:!1}),e.Settings.registerSettingExtension({category:"PERFORMANCE",storageType:"Synced",settingName:"annotations-hidden",settingType:"boolean",defaultValue:!1}),e.Linkifier.registerLinkifier({contextTypes:()=>we((e=>[e.CLSLinkifier.CLSRect])),loadLinkifier:async()=>(await me()).CLSLinkifier.Linkifier.instance()}),i.ContextMenu.registerItem({location:"timelineMenu/open",actionId:"timeline.load-from-file",order:10}),i.ContextMenu.registerItem({location:"timelineMenu/open",actionId:"timeline.save-to-file",order:15}),e.Revealer.registerRevealer({contextTypes:()=>[n.TraceObject.TraceObject],destination:e.Revealer.RevealerDestination.TIMELINE_PANEL,loadRevealer:async()=>new((await me()).TimelinePanel.TraceRevealer)}),e.Revealer.registerRevealer({contextTypes:()=>[n.TraceObject.RevealableEvent],destination:e.Revealer.RevealerDestination.TIMELINE_PANEL,loadRevealer:async()=>new((await me()).TimelinePanel.EventRevealer)});class pe{static#e;#t;#o;#i;constructor(){}static instance(){return this.#e||(this.#e=new pe),this.#e}setAppInfo(e,t){this.#t=e,this.#o=t,this.#n()}setSuffix(e){this.#i=e,this.#n()}#n(){const e=[];this.#t&&e.push(this.#t),this.#o&&e.push(`(${this.#o})`),this.#i&&e.push(this.#i),e.push("- React Native DevTools"),document.title=e.join(" ")}}const{html:ve,render:he}=u,ye={networkInspectionUnavailable:"Network inspection is unavailable",performanceProfilingUnavailable:"Performance profiling is unavailable",multiHostFeatureUnavailableTitle:"Feature is unavailable",multiHostFeatureDisabledDetail:"This feature is disabled as the app or framework has registered multiple React Native hosts, which is not currently supported."},Re=t.i18n.registerUIStrings("entrypoints/rn_fusebox/FuseboxFeatureObserver.ts",ye),fe=t.i18n.getLocalizedString.bind(void 0,Re),be=new Set(["network","timeline"]);const ke={connectionStatusDisconnectedTooltip:"Debugging connection was closed",connectionStatusDisconnectedLabel:"Reconnect DevTools"},Se=t.i18n.registerUIStrings("entrypoints/rn_fusebox/FuseboxReconnectDeviceButton.ts",ke),Te=t.i18n.getLazilyComputedLocalizedString.bind(void 0,Se);let Ae;class Ee extends n.TargetManager.Observer{#a=new i.Toolbar.ToolbarButton("");constructor(){super(),this.#a.setVisible(!1),this.#a.setGlyph("refresh"),this.#a.addEventListener("Click",this.#r.bind(this)),n.TargetManager.TargetManager.instance().observeTargets(this,{scoped:!0})}static instance(){return Ae||(Ae=new Ee),Ae}targetAdded(e){this.#s(e)}targetRemoved(e){this.#s(e)}#s(e){const t=n.TargetManager.TargetManager.instance().rootTarget();this.#a.setTitle(Te(ke.connectionStatusDisconnectedTooltip)()),this.#a.setText(Te(ke.connectionStatusDisconnectedLabel)()),this.#a.setVisible(!t),t||this.#l(e)}#l(t){e.Settings.Settings.instance().moduleSetting("preserve-console-log").get()||t.model(n.ConsoleModel.ConsoleModel)?.addMessage(new n.ConsoleModel.ConsoleMessage(t.model(n.RuntimeModel.RuntimeModel),"recommendation","info","[React Native] Console messages are currently cleared upon DevTools disconnection. You can preserve logs in settings: ",{type:n.ConsoleModel.FrontendMessageType.System,context:"fusebox_preserve_log_rec"}))}#r(){window.location.reload()}item(){return this.#a}}c.rnPerfMetrics.registerPerfMetricsGlobalPostMessageHandler(),c.rnPerfMetrics.registerGlobalErrorReporting(),c.rnPerfMetrics.setLaunchId(o.Runtime.Runtime.queryParam("launchId")),c.rnPerfMetrics.setAppId(o.Runtime.Runtime.queryParam("appId")),c.rnPerfMetrics.setTelemetryInfo(JSON.parse(o.Runtime.Runtime.queryParam("telemetryInfo")||"{}")),c.rnPerfMetrics.entryPointLoadingStarted("rn_fusebox");const Ne={networkTitle:"React Native",showReactNative:"Show React Native",sendFeedback:"[FB-only] Send feedback"},Pe=t.i18n.registerUIStrings("entrypoints/rn_fusebox/rn_fusebox.ts",Ne),xe=t.i18n.getLazilyComputedLocalizedString.bind(void 0,Pe);let Ie;if(i.ViewManager.maybeRemoveViewExtension("network.blocked-urls"),i.ViewManager.maybeRemoveViewExtension("network.config"),i.ViewManager.maybeRemoveViewExtension("coverage"),i.ViewManager.maybeRemoveViewExtension("linear-memory-inspector"),i.ViewManager.maybeRemoveViewExtension("rendering"),i.ViewManager.maybeRemoveViewExtension("issues-pane"),i.ViewManager.maybeRemoveViewExtension("sensors"),i.ViewManager.maybeRemoveViewExtension("devices"),i.ViewManager.maybeRemoveViewExtension("emulation-locations"),i.ViewManager.maybeRemoveViewExtension("throttling-conditions"),d.RNExperimentsImpl.setIsReactNativeEntryPoint(!0),d.RNExperimentsImpl.Instance.enableExperimentsByDefault(["js-heap-profiler-enable","react-native-specific-ui"]),document.addEventListener("visibilitychange",(()=>{c.rnPerfMetrics.browserVisibilityChanged(document.visibilityState)})),n.SDKModel.SDKModel.register(n.ReactNativeApplicationModel.ReactNativeApplicationModel,{capabilities:0,autostart:!0,early:!0}),i.ViewManager.registerViewExtension({location:"navigator-view",id:"navigator-network",title:xe(Ne.networkTitle),commandPrompt:xe(Ne.showReactNative),order:2,persistence:"permanent",loadView:async()=>(await async function(){return Ie||(Ie=await import("../../panels/sources/sources.js")),Ie}()).SourcesNavigator.NetworkNavigatorView.instance()}),self.runtime=o.Runtime.Runtime.instance({forceNew:!0}),new g.MainImpl.MainImpl,globalThis.FB_ONLY__reactNativeFeedbackLink){const e=globalThis.FB_ONLY__reactNativeFeedbackLink,t="react-native-send-feedback",o={handleAction:(o,i)=>i===t&&(c.InspectorFrontendHost.InspectorFrontendHostInstance.openInNewTab(e),!0)};i.ActionRegistration.registerActionExtension({category:"GLOBAL",actionId:t,title:xe(Ne.sendFeedback),loadActionDelegate:async()=>o,iconClass:"bug"}),i.Toolbar.registerToolbarItem({location:"main-toolbar-right",actionId:t,label:xe(Ne.sendFeedback)})}i.Toolbar.registerToolbarItem({location:"main-toolbar-right",loadItem:async()=>Ee.instance()}),new class{constructor(e){e.observeModels(n.ReactNativeApplicationModel.ReactNativeApplicationModel,this)}modelAdded(e){e.ensureEnabled(),e.addEventListener("MetadataUpdated",this.#c,this)}modelRemoved(e){e.removeEventListener("MetadataUpdated",this.#c,this)}#c(e){const{appDisplayName:t,deviceName:o}=e.data;pe.instance().setAppInfo(t,o)}}(n.TargetManager.TargetManager.instance()),new class{#d=!1;constructor(e){e.observeModels(n.ReactNativeApplicationModel.ReactNativeApplicationModel,this)}modelAdded(e){e.ensureEnabled(),e.addEventListener("MetadataUpdated",this.#c,this),e.addEventListener("SystemStateChanged",this.#g,this)}modelRemoved(e){e.removeEventListener("MetadataUpdated",this.#c,this),e.removeEventListener("SystemStateChanged",this.#g,this)}#c(e){const{unstable_isProfilingBuild:t,unstable_networkInspectionEnabled:i}=e.data;t&&(pe.instance().setSuffix("[PROFILING]"),this.#u()),i||o.Runtime.conditions.reactNativeExpoNetworkPanel()||this.#m()}#g(e){const{isSingleHost:t}=e.data;t||this.#w()}#u(){i.InspectorView.InspectorView.instance().closeDrawer();const e=i.ViewManager.ViewManager.instance(),t=e.resolveLocation("panel"),o=e.resolveLocation("drawer-view");Promise.all([t,o]).then((([e,t])=>{i.ViewManager.getRegisteredViewExtensions().forEach((o=>{if("drawer-view"===o.location())t?.removeView(o);else switch(o.viewId()){case"console":case"heap-profiler":case"live-heap-profile":case"sources":case"network":case"react-devtools-components":case"react-devtools-profiler":e?.removeView(o)}}))}))}#m(){const e=i.ViewManager.ViewManager.instance();e.resolveLocation("panel").then((t=>{t?.removeView(e.view("network"))}))}#w(){if(this.#d)return;const e=n.TargetManager.TargetManager.instance();for(const t of e.targets())t.networkAgent().invoke_disable();this.#p();const t=i.InspectorView.InspectorView.instance(),o=new Set,a=(e,t)=>{const o=fe("network"===t?ye.networkInspectionUnavailable:"timeline"===t?ye.performanceProfilingUnavailable:ye.multiHostFeatureUnavailableTitle);for(const t of e.element.children){const e=t;e.style.opacity="0.5",e.style.pointerEvents="none",e.setAttribute("inert",""),e.setAttribute("aria-hidden","true")}const i=document.createElement("div");he(ve`
|
|
1
|
+
import"../shell/shell.js";import*as e from"../../core/common/common.js";import*as t from"../../core/i18n/i18n.js";import*as o from"../../core/root/root.js";import*as i from"../../ui/legacy/legacy.js";import*as n from"../../core/sdk/sdk.js";import*as a from"../../models/issues_manager/issues_manager.js";import*as r from"../../models/extensions/extensions.js";import*as s from"../../models/workspace/workspace.js";import*as l from"../../panels/network/forward/forward.js";import*as c from"../../core/host/host.js";import*as d from"../../core/rn_experiments/rn_experiments.js";import*as g from"../main/main.js";import*as m from"../../ui/lit/lit.js";import*as u from"../../ui/visual_logging/visual_logging.js";const w={toggleDeviceToolbar:"Toggle device toolbar",captureScreenshot:"Capture screenshot",captureFullSizeScreenshot:"Capture full size screenshot",captureNodeScreenshot:"Capture node screenshot",showMediaQueries:"Show media queries",device:"device",hideMediaQueries:"Hide media queries",showRulers:"Show rulers in the Device Mode toolbar",hideRulers:"Hide rulers in the Device Mode toolbar",showDeviceFrame:"Show device frame",hideDeviceFrame:"Hide device frame"},p=t.i18n.registerUIStrings("panels/emulation/emulation-meta.ts",w),v=t.i18n.getLazilyComputedLocalizedString.bind(void 0,p);let h;async function y(){return h||(h=await import("../../panels/emulation/emulation.js")),h}i.ActionRegistration.registerActionExtension({category:"MOBILE",actionId:"emulation.toggle-device-mode",toggleable:!0,loadActionDelegate:async()=>new((await y()).DeviceModeWrapper.ActionDelegate),condition:o.Runtime.conditions.canDock,title:v(w.toggleDeviceToolbar),iconClass:"devices",bindings:[{platform:"windows,linux",shortcut:"Shift+Ctrl+M"},{platform:"mac",shortcut:"Shift+Meta+M"}]}),i.ActionRegistration.registerActionExtension({actionId:"emulation.capture-screenshot",category:"SCREENSHOT",loadActionDelegate:async()=>new((await y()).DeviceModeWrapper.ActionDelegate),condition:o.Runtime.conditions.canDock,title:v(w.captureScreenshot)}),i.ActionRegistration.registerActionExtension({actionId:"emulation.capture-full-height-screenshot",category:"SCREENSHOT",loadActionDelegate:async()=>new((await y()).DeviceModeWrapper.ActionDelegate),condition:o.Runtime.conditions.canDock,title:v(w.captureFullSizeScreenshot)}),i.ActionRegistration.registerActionExtension({actionId:"emulation.capture-node-screenshot",category:"SCREENSHOT",loadActionDelegate:async()=>new((await y()).DeviceModeWrapper.ActionDelegate),condition:o.Runtime.conditions.canDock,title:v(w.captureNodeScreenshot)}),e.Settings.registerSettingExtension({category:"MOBILE",settingName:"show-media-query-inspector",settingType:"boolean",defaultValue:!1,options:[{value:!0,title:v(w.showMediaQueries)},{value:!1,title:v(w.hideMediaQueries)}],tags:[v(w.device)]}),e.Settings.registerSettingExtension({category:"MOBILE",settingName:"emulation.show-rulers",settingType:"boolean",defaultValue:!1,options:[{value:!0,title:v(w.showRulers)},{value:!1,title:v(w.hideRulers)}],tags:[v(w.device)]}),e.Settings.registerSettingExtension({category:"MOBILE",settingName:"emulation.show-device-outline",settingType:"boolean",defaultValue:!1,options:[{value:!0,title:v(w.showDeviceFrame)},{value:!1,title:v(w.hideDeviceFrame)}],tags:[v(w.device)]}),i.Toolbar.registerToolbarItem({actionId:"emulation.toggle-device-mode",condition:o.Runtime.conditions.canDock,location:"main-toolbar-left",order:1,loadItem:void 0,separator:void 0}),e.AppProvider.registerAppProvider({loadAppProvider:async()=>(await y()).AdvancedApp.AdvancedAppProvider.instance(),condition:o.Runtime.conditions.canDock,order:0}),i.ContextMenu.registerItem({location:"deviceModeMenu/save",order:12,actionId:"emulation.capture-screenshot"}),i.ContextMenu.registerItem({location:"deviceModeMenu/save",order:13,actionId:"emulation.capture-full-height-screenshot"});const R={sensors:"Sensors",geolocation:"geolocation",timezones:"timezones",locale:"locale",locales:"locales",accelerometer:"accelerometer",deviceOrientation:"device orientation",locations:"Locations",touch:"Touch",devicebased:"Device-based",forceEnabled:"Force enabled",emulateIdleDetectorState:"Emulate Idle Detector state",noIdleEmulation:"No idle emulation",userActiveScreenUnlocked:"User active, screen unlocked",userActiveScreenLocked:"User active, screen locked",userIdleScreenUnlocked:"User idle, screen unlocked",userIdleScreenLocked:"User idle, screen locked",showSensors:"Show Sensors",showLocations:"Show Locations",cpuPressure:"CPU Pressure",noPressureEmulation:"No override",nominal:"Nominal",fair:"Fair",serious:"Serious",critical:"Critical"},f=t.i18n.registerUIStrings("panels/sensors/sensors-meta.ts",R),b=t.i18n.getLazilyComputedLocalizedString.bind(void 0,f);let k;async function S(){return k||(k=await import("../../panels/sensors/sensors.js")),k}i.ViewManager.registerViewExtension({location:"drawer-view",commandPrompt:b(R.showSensors),title:b(R.sensors),id:"sensors",persistence:"closeable",order:100,loadView:async()=>new((await S()).SensorsView.SensorsView),tags:[b(R.geolocation),b(R.timezones),b(R.locale),b(R.locales),b(R.accelerometer),b(R.deviceOrientation)]}),i.ViewManager.registerViewExtension({location:"settings-view",id:"emulation-locations",commandPrompt:b(R.showLocations),title:b(R.locations),order:40,loadView:async()=>new((await S()).LocationsSettingsTab.LocationsSettingsTab),settings:["emulation.locations"],iconName:"location-on"}),e.Settings.registerSettingExtension({storageType:"Synced",settingName:"emulation.locations",settingType:"array",defaultValue:[{title:"Berlin",lat:52.520007,long:13.404954,timezoneId:"Europe/Berlin",locale:"de-DE"},{title:"London",lat:51.507351,long:-.127758,timezoneId:"Europe/London",locale:"en-GB"},{title:"Moscow",lat:55.755826,long:37.6173,timezoneId:"Europe/Moscow",locale:"ru-RU"},{title:"Mountain View",lat:37.386052,long:-122.083851,timezoneId:"America/Los_Angeles",locale:"en-US"},{title:"Mumbai",lat:19.075984,long:72.877656,timezoneId:"Asia/Kolkata",locale:"mr-IN"},{title:"San Francisco",lat:37.774929,long:-122.419416,timezoneId:"America/Los_Angeles",locale:"en-US"},{title:"Shanghai",lat:31.230416,long:121.473701,timezoneId:"Asia/Shanghai",locale:"zh-Hans-CN"},{title:"São Paulo",lat:-23.55052,long:-46.633309,timezoneId:"America/Sao_Paulo",locale:"pt-BR"},{title:"Tokyo",lat:35.689487,long:139.691706,timezoneId:"Asia/Tokyo",locale:"ja-JP"}]}),e.Settings.registerSettingExtension({title:b(R.cpuPressure),reloadRequired:!0,settingName:"emulation.cpu-pressure",settingType:"enum",defaultValue:"none",options:[{value:"none",title:b(R.noPressureEmulation),text:b(R.noPressureEmulation)},{value:"nominal",title:b(R.nominal),text:b(R.nominal)},{value:"fair",title:b(R.fair),text:b(R.fair)},{value:"serious",title:b(R.serious),text:b(R.serious)},{value:"critical",title:b(R.critical),text:b(R.critical)}]}),e.Settings.registerSettingExtension({title:b(R.touch),reloadRequired:!0,settingName:"emulation.touch",settingType:"enum",defaultValue:"none",options:[{value:"none",title:b(R.devicebased),text:b(R.devicebased)},{value:"force",title:b(R.forceEnabled),text:b(R.forceEnabled)}]}),e.Settings.registerSettingExtension({title:b(R.emulateIdleDetectorState),settingName:"emulation.idle-detection",settingType:"enum",defaultValue:"none",options:[{value:"none",title:b(R.noIdleEmulation),text:b(R.noIdleEmulation)},{value:'{"isUserActive":true,"isScreenUnlocked":true}',title:b(R.userActiveScreenUnlocked),text:b(R.userActiveScreenUnlocked)},{value:'{"isUserActive":true,"isScreenUnlocked":false}',title:b(R.userActiveScreenLocked),text:b(R.userActiveScreenLocked)},{value:'{"isUserActive":false,"isScreenUnlocked":true}',title:b(R.userIdleScreenUnlocked),text:b(R.userIdleScreenUnlocked)},{value:'{"isUserActive":false,"isScreenUnlocked":false}',title:b(R.userIdleScreenLocked),text:b(R.userIdleScreenLocked)}]});const T={developerResources:"Developer resources",showDeveloperResources:"Show Developer resources"},E=t.i18n.registerUIStrings("panels/developer_resources/developer_resources-meta.ts",T),A=t.i18n.getLazilyComputedLocalizedString.bind(void 0,E);let N;async function P(){return N||(N=await import("../../panels/developer_resources/developer_resources.js")),N}i.ViewManager.registerViewExtension({location:"drawer-view",id:"developer-resources",title:A(T.developerResources),commandPrompt:A(T.showDeveloperResources),order:100,persistence:"closeable",loadView:async()=>new((await P()).DeveloperResourcesView.DeveloperResourcesView)}),e.Revealer.registerRevealer({contextTypes:()=>[n.PageResourceLoader.ResourceKey],destination:e.Revealer.RevealerDestination.DEVELOPER_RESOURCES_PANEL,loadRevealer:async()=>new((await P()).DeveloperResourcesView.DeveloperResourcesRevealer)});const x={rendering:"Rendering",showRendering:"Show Rendering",paint:"paint",layout:"layout",fps:"fps",cssMediaType:"CSS media type",cssMediaFeature:"CSS media feature",visionDeficiency:"vision deficiency",colorVisionDeficiency:"color vision deficiency",reloadPage:"Reload page",hardReloadPage:"Hard reload page",forceAdBlocking:"Force ad blocking on this site",blockAds:"Block ads on this site",showAds:"Show ads on this site, if allowed",autoOpenDevTools:"Auto-open DevTools for popups",doNotAutoOpen:"Do not auto-open DevTools for popups",disablePaused:"Disable paused state overlay",toggleCssPrefersColorSchemeMedia:"Toggle CSS media feature prefers-color-scheme"},I=t.i18n.registerUIStrings("entrypoints/inspector_main/inspector_main-meta.ts",x),M=t.i18n.getLazilyComputedLocalizedString.bind(void 0,I);let D;async function L(){return D||(D=await import("../inspector_main/inspector_main.js")),D}i.ViewManager.registerViewExtension({location:"drawer-view",id:"rendering",title:M(x.rendering),commandPrompt:M(x.showRendering),persistence:"closeable",order:50,loadView:async()=>new((await L()).RenderingOptions.RenderingOptionsView),tags:[M(x.paint),M(x.layout),M(x.fps),M(x.cssMediaType),M(x.cssMediaFeature),M(x.visionDeficiency),M(x.colorVisionDeficiency)]}),i.ActionRegistration.registerActionExtension({category:"NAVIGATION",actionId:"inspector-main.reload",loadActionDelegate:async()=>new((await L()).InspectorMain.ReloadActionDelegate),iconClass:"refresh",title:M(x.reloadPage),bindings:[{platform:"windows,linux",shortcut:"Ctrl+R"},{platform:"windows,linux",shortcut:"F5"},{platform:"mac",shortcut:"Meta+R"}]}),i.ActionRegistration.registerActionExtension({category:"NAVIGATION",actionId:"inspector-main.hard-reload",loadActionDelegate:async()=>new((await L()).InspectorMain.ReloadActionDelegate),title:M(x.hardReloadPage),bindings:[{platform:"windows,linux",shortcut:"Shift+Ctrl+R"},{platform:"windows,linux",shortcut:"Shift+F5"},{platform:"windows,linux",shortcut:"Ctrl+F5"},{platform:"windows,linux",shortcut:"Ctrl+Shift+F5"},{platform:"mac",shortcut:"Shift+Meta+R"}]}),i.ActionRegistration.registerActionExtension({actionId:"rendering.toggle-prefers-color-scheme",category:"RENDERING",title:M(x.toggleCssPrefersColorSchemeMedia),loadActionDelegate:async()=>new((await L()).RenderingOptions.ReloadActionDelegate)}),e.Settings.registerSettingExtension({category:"",title:M(x.forceAdBlocking),settingName:"network.ad-blocking-enabled",settingType:"boolean",storageType:"Session",defaultValue:!1,options:[{value:!0,title:M(x.blockAds)},{value:!1,title:M(x.showAds)}]}),e.Settings.registerSettingExtension({category:"GLOBAL",storageType:"Synced",title:M(x.autoOpenDevTools),settingName:"auto-attach-to-created-pages",settingType:"boolean",order:2,defaultValue:!1,options:[{value:!0,title:M(x.autoOpenDevTools)},{value:!1,title:M(x.doNotAutoOpen)}]}),e.Settings.registerSettingExtension({category:"APPEARANCE",storageType:"Synced",title:M(x.disablePaused),settingName:"disable-paused-state-overlay",settingType:"boolean",defaultValue:!1}),i.Toolbar.registerToolbarItem({loadItem:async()=>(await L()).InspectorMain.NodeIndicator.instance(),order:2,location:"main-toolbar-left"}),i.Toolbar.registerToolbarItem({loadItem:async()=>(await L()).OutermostTargetSelector.OutermostTargetSelector.instance(),order:98,location:"main-toolbar-right"});const V={issues:"Issues",showIssues:"Show Issues"},C=t.i18n.registerUIStrings("panels/issues/issues-meta.ts",V),F=t.i18n.getLazilyComputedLocalizedString.bind(void 0,C);let U;async function O(){return U||(U=await import("../../panels/issues/issues.js")),U}i.ViewManager.registerViewExtension({location:"drawer-view",id:"issues-pane",title:F(V.issues),commandPrompt:F(V.showIssues),order:100,persistence:"closeable",loadView:async()=>new((await O()).IssuesPane.IssuesPane)}),e.Revealer.registerRevealer({contextTypes:()=>[a.Issue.Issue],destination:e.Revealer.RevealerDestination.ISSUES_VIEW,loadRevealer:async()=>new((await O()).IssueRevealer.IssueRevealer)});const _={throttling:"Throttling",showThrottling:"Show Throttling",goOffline:"Go offline",device:"device",throttlingTag:"throttling",enableSlowGThrottling:"Enable slow `3G` throttling",enableFastGThrottling:"Enable fast `3G` throttling",goOnline:"Go online"},B=t.i18n.registerUIStrings("panels/mobile_throttling/mobile_throttling-meta.ts",_),z=t.i18n.getLazilyComputedLocalizedString.bind(void 0,B);let W;async function q(){return W||(W=await import("../../panels/mobile_throttling/mobile_throttling.js")),W}i.ViewManager.registerViewExtension({location:"settings-view",id:"throttling-conditions",title:z(_.throttling),commandPrompt:z(_.showThrottling),order:35,loadView:async()=>new((await q()).ThrottlingSettingsTab.ThrottlingSettingsTab),settings:["custom-network-conditions","calibrated-cpu-throttling"],iconName:"performance"}),i.ActionRegistration.registerActionExtension({actionId:"network-conditions.network-offline",category:"NETWORK",title:z(_.goOffline),loadActionDelegate:async()=>new((await q()).ThrottlingManager.ActionDelegate),tags:[z(_.device),z(_.throttlingTag)]}),i.ActionRegistration.registerActionExtension({actionId:"network-conditions.network-low-end-mobile",category:"NETWORK",title:z(_.enableSlowGThrottling),loadActionDelegate:async()=>new((await q()).ThrottlingManager.ActionDelegate),tags:[z(_.device),z(_.throttlingTag)]}),i.ActionRegistration.registerActionExtension({actionId:"network-conditions.network-mid-tier-mobile",category:"NETWORK",title:z(_.enableFastGThrottling),loadActionDelegate:async()=>new((await q()).ThrottlingManager.ActionDelegate),tags:[z(_.device),z(_.throttlingTag)]}),i.ActionRegistration.registerActionExtension({actionId:"network-conditions.network-online",category:"NETWORK",title:z(_.goOnline),loadActionDelegate:async()=>new((await q()).ThrottlingManager.ActionDelegate),tags:[z(_.device),z(_.throttlingTag)]}),e.Settings.registerSettingExtension({storageType:"Synced",settingName:"custom-network-conditions",settingType:"array",defaultValue:[]});const j={showNetwork:"Show Network",network:"Network",networkExpoUnstable:"Expo Network",showNetworkRequestBlocking:"Show Network request blocking",networkRequestBlocking:"Network request blocking",showNetworkConditions:"Show Network conditions",networkConditions:"Network conditions",diskCache:"disk cache",networkThrottling:"network throttling",showSearch:"Show Search",search:"Search",recordNetworkLog:"Record network log",stopRecordingNetworkLog:"Stop recording network log",hideRequestDetails:"Hide request details",colorcodeResourceTypes:"Color-code resource types",colorCode:"color code",resourceType:"resource type",colorCodeByResourceType:"Color code by resource type",useDefaultColors:"Use default colors",groupNetworkLogByFrame:"Group network log by frame",netWork:"network",frame:"frame",group:"group",groupNetworkLogItemsByFrame:"Group network log items by frame",dontGroupNetworkLogItemsByFrame:"Don't group network log items by frame",clear:"Clear network log",addNetworkRequestBlockingPattern:"Add network request blocking pattern",removeAllNetworkRequestBlockingPatterns:"Remove all network request blocking patterns",allowToGenerateHarWithSensitiveData:"Allow to generate `HAR` with sensitive data",dontAllowToGenerateHarWithSensitiveData:"Don't allow to generate `HAR` with sensitive data",allowToGenerateHarWithSensitiveDataDocumentation:"By default generated HAR logs are sanitized and don't include `Cookie`, `Set-Cookie`, or `Authorization` HTTP headers. When this setting is enabled, options to export/copy HAR with sensitive data are provided."},H=t.i18n.registerUIStrings("panels/network/network-meta.ts",j),G=t.i18n.getLazilyComputedLocalizedString.bind(void 0,H),K=t.i18n.getLocalizedString.bind(void 0,H);let Q;async function Y(){return Q||(Q=await import("../../panels/network/network.js")),Q}function $(e){return void 0===Q?[]:e(Q)}i.ViewManager.registerViewExtension({location:"panel",id:"network",commandPrompt:G(j.showNetwork),title:()=>o.Runtime.conditions.reactNativeExpoNetworkPanel()?K(j.networkExpoUnstable):K(j.network),order:40,loadView:async()=>(await Y()).NetworkPanel.NetworkPanel.instance()}),i.ViewManager.registerViewExtension({location:"drawer-view",id:"network.blocked-urls",commandPrompt:G(j.showNetworkRequestBlocking),title:G(j.networkRequestBlocking),persistence:"closeable",order:60,loadView:async()=>new((await Y()).BlockedURLsPane.BlockedURLsPane)}),i.ViewManager.registerViewExtension({location:"drawer-view",id:"network.config",commandPrompt:G(j.showNetworkConditions),title:G(j.networkConditions),persistence:"closeable",order:40,tags:[G(j.diskCache),G(j.networkThrottling),t.i18n.lockedLazyString("useragent"),t.i18n.lockedLazyString("user agent"),t.i18n.lockedLazyString("user-agent")],loadView:async()=>(await Y()).NetworkConfigView.NetworkConfigView.instance()}),i.ViewManager.registerViewExtension({location:"network-sidebar",id:"network.search-network-tab",commandPrompt:G(j.showSearch),title:G(j.search),persistence:"permanent",loadView:async()=>(await Y()).NetworkPanel.SearchNetworkView.instance()}),i.ActionRegistration.registerActionExtension({actionId:"network.toggle-recording",category:"NETWORK",iconClass:"record-start",toggleable:!0,toggledIconClass:"record-stop",toggleWithRedColor:!0,contextTypes:()=>$((e=>[e.NetworkPanel.NetworkPanel])),loadActionDelegate:async()=>new((await Y()).NetworkPanel.ActionDelegate),options:[{value:!0,title:G(j.recordNetworkLog)},{value:!1,title:G(j.stopRecordingNetworkLog)}],bindings:[{shortcut:"Ctrl+E",platform:"windows,linux"},{shortcut:"Meta+E",platform:"mac"}]}),i.ActionRegistration.registerActionExtension({actionId:"network.clear",category:"NETWORK",title:G(j.clear),iconClass:"clear",loadActionDelegate:async()=>new((await Y()).NetworkPanel.ActionDelegate),contextTypes:()=>$((e=>[e.NetworkPanel.NetworkPanel])),bindings:[{shortcut:"Ctrl+L"},{shortcut:"Meta+K",platform:"mac"}]}),i.ActionRegistration.registerActionExtension({actionId:"network.hide-request-details",category:"NETWORK",title:G(j.hideRequestDetails),contextTypes:()=>$((e=>[e.NetworkPanel.NetworkPanel])),loadActionDelegate:async()=>new((await Y()).NetworkPanel.ActionDelegate),bindings:[{shortcut:"Esc"}]}),i.ActionRegistration.registerActionExtension({actionId:"network.search",category:"NETWORK",title:G(j.search),contextTypes:()=>$((e=>[e.NetworkPanel.NetworkPanel])),loadActionDelegate:async()=>new((await Y()).NetworkPanel.ActionDelegate),bindings:[{platform:"mac",shortcut:"Meta+F",keybindSets:["devToolsDefault","vsCode"]},{platform:"windows,linux",shortcut:"Ctrl+F",keybindSets:["devToolsDefault","vsCode"]}]}),i.ActionRegistration.registerActionExtension({actionId:"network.add-network-request-blocking-pattern",category:"NETWORK",title:G(j.addNetworkRequestBlockingPattern),iconClass:"plus",contextTypes:()=>$((e=>[e.BlockedURLsPane.BlockedURLsPane])),loadActionDelegate:async()=>new((await Y()).BlockedURLsPane.ActionDelegate)}),i.ActionRegistration.registerActionExtension({actionId:"network.remove-all-network-request-blocking-patterns",category:"NETWORK",title:G(j.removeAllNetworkRequestBlockingPatterns),iconClass:"clear",contextTypes:()=>$((e=>[e.BlockedURLsPane.BlockedURLsPane])),loadActionDelegate:async()=>new((await Y()).BlockedURLsPane.ActionDelegate)}),e.Settings.registerSettingExtension({category:"NETWORK",storageType:"Synced",title:G(j.allowToGenerateHarWithSensitiveData),settingName:"network.show-options-to-generate-har-with-sensitive-data",settingType:"boolean",defaultValue:!1,tags:[t.i18n.lockedLazyString("HAR")],options:[{value:!0,title:G(j.allowToGenerateHarWithSensitiveData)},{value:!1,title:G(j.dontAllowToGenerateHarWithSensitiveData)}],learnMore:{url:"https://goo.gle/devtools-export-hars",tooltip:G(j.allowToGenerateHarWithSensitiveDataDocumentation)}}),e.Settings.registerSettingExtension({category:"NETWORK",storageType:"Synced",title:G(j.colorcodeResourceTypes),settingName:"network-color-code-resource-types",settingType:"boolean",defaultValue:!1,tags:[G(j.colorCode),G(j.resourceType)],options:[{value:!0,title:G(j.colorCodeByResourceType)},{value:!1,title:G(j.useDefaultColors)}]}),e.Settings.registerSettingExtension({category:"NETWORK",storageType:"Synced",title:G(j.groupNetworkLogByFrame),settingName:"network.group-by-frame",settingType:"boolean",defaultValue:!1,tags:[G(j.netWork),G(j.frame),G(j.group)],options:[{value:!0,title:G(j.groupNetworkLogItemsByFrame)},{value:!1,title:G(j.dontGroupNetworkLogItemsByFrame)}]}),i.ViewManager.registerLocationResolver({name:"network-sidebar",category:"NETWORK",loadResolver:async()=>(await Y()).NetworkPanel.NetworkPanel.instance()}),i.ContextMenu.registerProvider({contextTypes:()=>[n.NetworkRequest.NetworkRequest,n.Resource.Resource,s.UISourceCode.UISourceCode,n.TraceObject.RevealableNetworkRequest],loadProvider:async()=>(await Y()).NetworkPanel.NetworkPanel.instance(),experiment:void 0}),e.Revealer.registerRevealer({contextTypes:()=>[n.NetworkRequest.NetworkRequest],destination:e.Revealer.RevealerDestination.NETWORK_PANEL,loadRevealer:async()=>new((await Y()).NetworkPanel.RequestRevealer)}),e.Revealer.registerRevealer({contextTypes:()=>[l.UIRequestLocation.UIRequestLocation],destination:void 0,loadRevealer:async()=>new((await Y()).NetworkPanel.RequestLocationRevealer)}),e.Revealer.registerRevealer({contextTypes:()=>[l.NetworkRequestId.NetworkRequestId],destination:e.Revealer.RevealerDestination.NETWORK_PANEL,loadRevealer:async()=>new((await Y()).NetworkPanel.RequestIdRevealer)}),e.Revealer.registerRevealer({contextTypes:()=>[l.UIFilter.UIRequestFilter,r.ExtensionServer.RevealableNetworkRequestFilter],destination:e.Revealer.RevealerDestination.NETWORK_PANEL,loadRevealer:async()=>new((await Y()).NetworkPanel.NetworkLogWithFilterRevealer)});const J={title:"Components ⚛",command:"Show React DevTools Components panel"},X=t.i18n.registerUIStrings("panels/react_devtools/react_devtools_components-meta.ts",J),Z=t.i18n.getLazilyComputedLocalizedString.bind(void 0,X);let ee;i.ViewManager.registerViewExtension({location:"panel",id:"react-devtools-components",title:Z(J.title),commandPrompt:Z(J.command),persistence:"permanent",order:1e3,loadView:async()=>new((await async function(){return ee||(ee=await import("../../panels/react_devtools/react_devtools.js")),ee}()).ReactDevToolsComponentsView.ReactDevToolsComponentsViewImpl)});const te={title:"Profiler ⚛",command:"Show React DevTools Profiler panel"},oe=t.i18n.registerUIStrings("panels/react_devtools/react_devtools_profiler-meta.ts",te),ie=t.i18n.getLazilyComputedLocalizedString.bind(void 0,oe);let ne;i.ViewManager.registerViewExtension({location:"panel",id:"react-devtools-profiler",title:ie(te.title),commandPrompt:ie(te.command),persistence:"permanent",order:1e3,loadView:async()=>new((await async function(){return ne||(ne=await import("../../panels/react_devtools/react_devtools.js")),ne}()).ReactDevToolsProfilerView.ReactDevToolsProfilerViewImpl)});const ae={rnWelcome:"Welcome",showRnWelcome:"Show React Native Welcome panel",debuggerBrandName:"React Native DevTools"},re=t.i18n.registerUIStrings("panels/rn_welcome/rn_welcome-meta.ts",ae),se=t.i18n.getLazilyComputedLocalizedString.bind(void 0,re);let le;i.ViewManager.registerViewExtension({location:"panel",id:"rn-welcome",title:se(ae.rnWelcome),commandPrompt:se(ae.showRnWelcome),order:-10,persistence:"permanent",loadView:async()=>(await async function(){return le||(le=await import("../../panels/rn_welcome/rn_welcome.js")),le}()).RNWelcome.RNWelcomeImpl.instance({debuggerBrandName:se(ae.debuggerBrandName),showBetaLabel:!1,showDocs:!0}),experiment:"react-native-specific-ui"});const ce={performance:"Performance",showPerformance:"Show Performance",record:"Record",stop:"Stop",recordAndReload:"Record and reload",saveProfile:"Save profile…",loadProfile:"Load profile…",previousFrame:"Previous frame",nextFrame:"Next frame",showRecentTimelineSessions:"Show recent timeline sessions",previousRecording:"Previous recording",nextRecording:"Next recording",hideChromeFrameInLayersView:"Hide `chrome` frame in Layers view"},de=t.i18n.registerUIStrings("panels/timeline/timeline-meta.ts",ce),ge=t.i18n.getLazilyComputedLocalizedString.bind(void 0,de);let me;async function ue(){return me||(me=await import("../../panels/timeline/timeline.js")),me}function we(e){return void 0===me?[]:e(me)}i.ViewManager.registerViewExtension({location:"panel",id:"timeline",title:ge(ce.performance),commandPrompt:ge(ce.showPerformance),order:50,loadView:async()=>(await ue()).TimelinePanel.TimelinePanel.instance()}),i.ActionRegistration.registerActionExtension({actionId:"timeline.toggle-recording",category:"PERFORMANCE",iconClass:"record-start",toggleable:!0,toggledIconClass:"record-stop",toggleWithRedColor:!0,contextTypes:()=>we((e=>[e.TimelinePanel.TimelinePanel])),loadActionDelegate:async()=>new((await ue()).TimelinePanel.ActionDelegate),options:[{value:!0,title:ge(ce.record)},{value:!1,title:ge(ce.stop)}],bindings:[{platform:"windows,linux",shortcut:"Ctrl+E"},{platform:"mac",shortcut:"Meta+E"}]}),i.ActionRegistration.registerActionExtension({actionId:"timeline.record-reload",iconClass:"refresh",contextTypes:()=>we((e=>[e.TimelinePanel.TimelinePanel])),category:"PERFORMANCE",title:ge(ce.recordAndReload),loadActionDelegate:async()=>new((await ue()).TimelinePanel.ActionDelegate),bindings:[{platform:"windows,linux",shortcut:"Ctrl+Shift+E"},{platform:"mac",shortcut:"Meta+Shift+E"}],experiment:"!react-native-specific-ui"}),i.ActionRegistration.registerActionExtension({category:"PERFORMANCE",actionId:"timeline.save-to-file",contextTypes:()=>we((e=>[e.TimelinePanel.TimelinePanel])),loadActionDelegate:async()=>new((await ue()).TimelinePanel.ActionDelegate),title:ge(ce.saveProfile),bindings:[{platform:"windows,linux",shortcut:"Ctrl+S"},{platform:"mac",shortcut:"Meta+S"}]}),i.ActionRegistration.registerActionExtension({category:"PERFORMANCE",actionId:"timeline.load-from-file",contextTypes:()=>we((e=>[e.TimelinePanel.TimelinePanel])),loadActionDelegate:async()=>new((await ue()).TimelinePanel.ActionDelegate),title:ge(ce.loadProfile),bindings:[{platform:"windows,linux",shortcut:"Ctrl+O"},{platform:"mac",shortcut:"Meta+O"}]}),i.ActionRegistration.registerActionExtension({actionId:"timeline.jump-to-previous-frame",category:"PERFORMANCE",title:ge(ce.previousFrame),contextTypes:()=>we((e=>[e.TimelinePanel.TimelinePanel])),loadActionDelegate:async()=>new((await ue()).TimelinePanel.ActionDelegate),bindings:[{shortcut:"["}]}),i.ActionRegistration.registerActionExtension({actionId:"timeline.jump-to-next-frame",category:"PERFORMANCE",title:ge(ce.nextFrame),contextTypes:()=>we((e=>[e.TimelinePanel.TimelinePanel])),loadActionDelegate:async()=>new((await ue()).TimelinePanel.ActionDelegate),bindings:[{shortcut:"]"}]}),i.ActionRegistration.registerActionExtension({actionId:"timeline.show-history",loadActionDelegate:async()=>new((await ue()).TimelinePanel.ActionDelegate),category:"PERFORMANCE",title:ge(ce.showRecentTimelineSessions),contextTypes:()=>we((e=>[e.TimelinePanel.TimelinePanel])),bindings:[{platform:"windows,linux",shortcut:"Ctrl+H"},{platform:"mac",shortcut:"Meta+Y"}]}),i.ActionRegistration.registerActionExtension({actionId:"timeline.previous-recording",category:"PERFORMANCE",loadActionDelegate:async()=>new((await ue()).TimelinePanel.ActionDelegate),title:ge(ce.previousRecording),contextTypes:()=>we((e=>[e.TimelinePanel.TimelinePanel])),bindings:[{platform:"windows,linux",shortcut:"Alt+Left"},{platform:"mac",shortcut:"Meta+Left"}]}),i.ActionRegistration.registerActionExtension({actionId:"timeline.next-recording",category:"PERFORMANCE",loadActionDelegate:async()=>new((await ue()).TimelinePanel.ActionDelegate),title:ge(ce.nextRecording),contextTypes:()=>we((e=>[e.TimelinePanel.TimelinePanel])),bindings:[{platform:"windows,linux",shortcut:"Alt+Right"},{platform:"mac",shortcut:"Meta+Right"}]}),e.Settings.registerSettingExtension({category:"PERFORMANCE",storageType:"Synced",title:ge(ce.hideChromeFrameInLayersView),settingName:"frame-viewer-hide-chrome-window",settingType:"boolean",defaultValue:!1}),e.Settings.registerSettingExtension({category:"PERFORMANCE",storageType:"Synced",settingName:"annotations-hidden",settingType:"boolean",defaultValue:!1}),e.Linkifier.registerLinkifier({contextTypes:()=>we((e=>[e.CLSLinkifier.CLSRect])),loadLinkifier:async()=>(await ue()).CLSLinkifier.Linkifier.instance()}),i.ContextMenu.registerItem({location:"timelineMenu/open",actionId:"timeline.load-from-file",order:10}),i.ContextMenu.registerItem({location:"timelineMenu/open",actionId:"timeline.save-to-file",order:15}),e.Revealer.registerRevealer({contextTypes:()=>[n.TraceObject.TraceObject],destination:e.Revealer.RevealerDestination.TIMELINE_PANEL,loadRevealer:async()=>new((await ue()).TimelinePanel.TraceRevealer)}),e.Revealer.registerRevealer({contextTypes:()=>[n.TraceObject.RevealableEvent],destination:e.Revealer.RevealerDestination.TIMELINE_PANEL,loadRevealer:async()=>new((await ue()).TimelinePanel.EventRevealer)});class pe{static#e;#t;#o;#i;constructor(){}static instance(){return this.#e||(this.#e=new pe),this.#e}setAppInfo(e,t){this.#t=e,this.#o=t,this.#n()}setSuffix(e){this.#i=e,this.#n()}#n(){const e=[];this.#t&&e.push(this.#t),this.#o&&e.push(`(${this.#o})`),this.#i&&e.push(this.#i),e.push("- React Native DevTools"),document.title=e.join(" ")}}const{html:ve,render:he}=m,ye={networkInspectionUnavailable:"Network inspection is unavailable",performanceProfilingUnavailable:"Performance profiling is unavailable",multiHostFeatureUnavailableTitle:"Feature is unavailable",reloadRequiredForTimelineFramesMessage:"Frame timings and screenshots are now available in the Performance panel. Please reload to enable.",multiHostFeatureDisabledDetail:"This feature is disabled as the app or framework has registered multiple React Native hosts, which is not currently supported."},Re=t.i18n.registerUIStrings("entrypoints/rn_fusebox/FuseboxFeatureObserver.ts",ye),fe=t.i18n.getLocalizedString.bind(void 0,Re),be=new Set(["network","timeline"]);const ke={connectionStatusDisconnectedTooltip:"Debugging connection was closed",connectionStatusDisconnectedLabel:"Reconnect DevTools"},Se=t.i18n.registerUIStrings("entrypoints/rn_fusebox/FuseboxReconnectDeviceButton.ts",ke),Te=t.i18n.getLazilyComputedLocalizedString.bind(void 0,Se);let Ee;class Ae extends n.TargetManager.Observer{#a=new i.Toolbar.ToolbarButton("");constructor(){super(),this.#a.setVisible(!1),this.#a.setGlyph("refresh"),this.#a.addEventListener("Click",this.#r.bind(this)),n.TargetManager.TargetManager.instance().observeTargets(this,{scoped:!0})}static instance(){return Ee||(Ee=new Ae),Ee}targetAdded(e){this.#s(e)}targetRemoved(e){this.#s(e)}#s(e){const t=n.TargetManager.TargetManager.instance().rootTarget();this.#a.setTitle(Te(ke.connectionStatusDisconnectedTooltip)()),this.#a.setText(Te(ke.connectionStatusDisconnectedLabel)()),this.#a.setVisible(!t),t||this.#l(e)}#l(t){e.Settings.Settings.instance().moduleSetting("preserve-console-log").get()||t.model(n.ConsoleModel.ConsoleModel)?.addMessage(new n.ConsoleModel.ConsoleMessage(t.model(n.RuntimeModel.RuntimeModel),"recommendation","info","[React Native] Console messages are currently cleared upon DevTools disconnection. You can preserve logs in settings: ",{type:n.ConsoleModel.FrontendMessageType.System,context:"fusebox_preserve_log_rec"}))}#r(){window.location.reload()}item(){return this.#a}}c.rnPerfMetrics.registerPerfMetricsGlobalPostMessageHandler(),c.rnPerfMetrics.registerGlobalErrorReporting(),c.rnPerfMetrics.setLaunchId(o.Runtime.Runtime.queryParam("launchId")),c.rnPerfMetrics.setAppId(o.Runtime.Runtime.queryParam("appId")),c.rnPerfMetrics.setTelemetryInfo(JSON.parse(o.Runtime.Runtime.queryParam("telemetryInfo")||"{}")),c.rnPerfMetrics.entryPointLoadingStarted("rn_fusebox");const Ne={networkTitle:"React Native",showReactNative:"Show React Native",sendFeedback:"[FB-only] Send feedback"},Pe=t.i18n.registerUIStrings("entrypoints/rn_fusebox/rn_fusebox.ts",Ne),xe=t.i18n.getLazilyComputedLocalizedString.bind(void 0,Pe);let Ie;if(i.ViewManager.maybeRemoveViewExtension("network.blocked-urls"),i.ViewManager.maybeRemoveViewExtension("network.config"),i.ViewManager.maybeRemoveViewExtension("coverage"),i.ViewManager.maybeRemoveViewExtension("linear-memory-inspector"),i.ViewManager.maybeRemoveViewExtension("rendering"),i.ViewManager.maybeRemoveViewExtension("issues-pane"),i.ViewManager.maybeRemoveViewExtension("sensors"),i.ViewManager.maybeRemoveViewExtension("devices"),i.ViewManager.maybeRemoveViewExtension("emulation-locations"),i.ViewManager.maybeRemoveViewExtension("throttling-conditions"),d.RNExperimentsImpl.setIsReactNativeEntryPoint(!0),d.RNExperimentsImpl.Instance.enableExperimentsByDefault(["js-heap-profiler-enable","react-native-specific-ui"]),document.addEventListener("visibilitychange",(()=>{c.rnPerfMetrics.browserVisibilityChanged(document.visibilityState)})),n.SDKModel.SDKModel.register(n.ReactNativeApplicationModel.ReactNativeApplicationModel,{capabilities:0,autostart:!0,early:!0}),i.ViewManager.registerViewExtension({location:"navigator-view",id:"navigator-network",title:xe(Ne.networkTitle),commandPrompt:xe(Ne.showReactNative),order:2,persistence:"permanent",loadView:async()=>(await async function(){return Ie||(Ie=await import("../../panels/sources/sources.js")),Ie}()).SourcesNavigator.NetworkNavigatorView.instance()}),self.runtime=o.Runtime.Runtime.instance({forceNew:!0}),new g.MainImpl.MainImpl,globalThis.FB_ONLY__reactNativeFeedbackLink){const e=globalThis.FB_ONLY__reactNativeFeedbackLink,t="react-native-send-feedback",o={handleAction:(o,i)=>i===t&&(c.InspectorFrontendHost.InspectorFrontendHostInstance.openInNewTab(e),!0)};i.ActionRegistration.registerActionExtension({category:"GLOBAL",actionId:t,title:xe(Ne.sendFeedback),loadActionDelegate:async()=>o,iconClass:"bug"}),i.Toolbar.registerToolbarItem({location:"main-toolbar-right",actionId:t,label:xe(Ne.sendFeedback)})}i.Toolbar.registerToolbarItem({location:"main-toolbar-right",loadItem:async()=>Ae.instance()}),new class{constructor(e){e.observeModels(n.ReactNativeApplicationModel.ReactNativeApplicationModel,this)}modelAdded(e){e.ensureEnabled(),e.addEventListener("MetadataUpdated",this.#c,this)}modelRemoved(e){e.removeEventListener("MetadataUpdated",this.#c,this)}#c(e){const{appDisplayName:t,deviceName:o}=e.data;pe.instance().setAppInfo(t,o)}}(n.TargetManager.TargetManager.instance()),new class{#d=!1;constructor(e){e.observeModels(n.ReactNativeApplicationModel.ReactNativeApplicationModel,this)}modelAdded(e){e.ensureEnabled(),e.addEventListener("MetadataUpdated",this.#c,this),e.addEventListener("SystemStateChanged",this.#g,this)}modelRemoved(e){e.removeEventListener("MetadataUpdated",this.#c,this),e.removeEventListener("SystemStateChanged",this.#g,this)}#c(e){const{unstable_isProfilingBuild:t,unstable_networkInspectionEnabled:i,unstable_frameRecordingEnabled:n}=e.data;t&&(pe.instance().setSuffix("[PROFILING]"),this.#m()),i||o.Runtime.conditions.reactNativeExpoNetworkPanel()||this.#u(),n&&this.#w()}#g(e){const{isSingleHost:t}=e.data;t||this.#p()}#m(){i.InspectorView.InspectorView.instance().closeDrawer();const e=i.ViewManager.ViewManager.instance(),t=e.resolveLocation("panel"),o=e.resolveLocation("drawer-view");Promise.all([t,o]).then((([e,t])=>{i.ViewManager.getRegisteredViewExtensions().forEach((o=>{if("drawer-view"===o.location())t?.removeView(o);else switch(o.viewId()){case"console":case"heap-profiler":case"live-heap-profile":case"sources":case"network":case"react-devtools-components":case"react-devtools-profiler":e?.removeView(o)}}))}))}#u(){const e=i.ViewManager.ViewManager.instance();e.resolveLocation("panel").then((t=>{t?.removeView(e.view("network"))}))}async#w(){o.Runtime.experiments.isEnabled(o.Runtime.RNExperimentName.ENABLE_TIMELINE_FRAMES)||(o.Runtime.experiments.setEnabled(o.Runtime.RNExperimentName.ENABLE_TIMELINE_FRAMES,!0),i.InspectorView?.InspectorView?.instance()?.displayReloadRequiredWarning(fe(ye.reloadRequiredForTimelineFramesMessage)))}#p(){if(this.#d)return;const e=n.TargetManager.TargetManager.instance();for(const t of e.targets())t.networkAgent().invoke_disable();this.#v();const t=i.InspectorView.InspectorView.instance(),o=new Set,a=(e,t)=>{const o=fe("network"===t?ye.networkInspectionUnavailable:"timeline"===t?ye.performanceProfilingUnavailable:ye.multiHostFeatureUnavailableTitle);for(const t of e.element.children){const e=t;e.style.opacity="0.5",e.style.pointerEvents="none",e.setAttribute("inert",""),e.setAttribute("aria-hidden","true")}const i=document.createElement("div");he(ve`
|
|
2
2
|
<style>
|
|
3
3
|
.alert-bar {
|
|
4
4
|
background: var(--sys-color-tonal-container);
|
|
@@ -18,7 +18,7 @@ import"../shell/shell.js";import*as e from"../../core/common/common.js";import*a
|
|
|
18
18
|
<div class="alert-title">${o}</div>
|
|
19
19
|
<div class="alert-detail">
|
|
20
20
|
${fe(ye.multiHostFeatureDisabledDetail)}
|
|
21
|
-
See <x-link href="https://github.com/react-native-community/discussions-and-proposals/discussions/954" class="devtools-link" jslog=${
|
|
21
|
+
See <x-link href="https://github.com/react-native-community/discussions-and-proposals/discussions/954" class="devtools-link" jslog=${u.link().track({click:!0,keydown:"Enter|Space"}).context("multi-host-learn-more")}>discussions/954</x-link>.
|
|
22
22
|
</div>
|
|
23
23
|
</div>
|
|
24
|
-
`,i,{host:this}),e.element.insertBefore(i,e.element.firstChild)};t.tabbedPane.addEventListener(i.TabbedPane.Events.TabSelected,(e=>{const i=e.data.tabId;be.has(i)&&!o.has(i)&&(o.add(i),t.panel(i).then((e=>{e&&a(e,i)})))}));const r=t.tabbedPane.selectedTabId;r&&be.has(r)&&(o.add(r),t.panel(r).then((e=>{e&&a(e,r)}))),this.#d=!0}async#
|
|
24
|
+
`,i,{host:this}),e.element.insertBefore(i,e.element.firstChild)};t.tabbedPane.addEventListener(i.TabbedPane.Events.TabSelected,(e=>{const i=e.data.tabId;be.has(i)&&!o.has(i)&&(o.add(i),t.panel(i).then((e=>{e&&a(e,i)})))}));const r=t.tabbedPane.selectedTabId;r&&be.has(r)&&(o.add(r),t.panel(r).then((e=>{e&&a(e,r)}))),this.#d=!0}async#v(){const e=i.InspectorView.InspectorView.instance();try{const t=await e.panel("network");t&&"toggleRecord"in t&&t.toggleRecord(!1)}catch{}}}(n.TargetManager.TargetManager.instance()),c.rnPerfMetrics.entryPointLoadingFinished("rn_fusebox");
|