react-native-inapp-inspector 2.3.20 → 2.3.21
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/README.md +14 -14
- package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +57 -0
- package/dist/commonjs/components/AppHeaderLogo.js +2 -2
- package/dist/commonjs/components/ConsoleLogCard.js +1 -1
- package/dist/commonjs/components/HighlightText.js +13 -13
- package/dist/commonjs/components/Inspector/AboutModal.js +143 -251
- package/dist/commonjs/components/Inspector/DebuggingTab.js +19 -13
- package/dist/commonjs/components/Inspector/InspectorHeader.js +54 -80
- package/dist/commonjs/components/Inspector/MainScreen.js +13 -23
- package/dist/commonjs/components/Inspector/MediaGalleryTab.js +4 -4
- package/dist/commonjs/components/Inspector/MediaPreviewModal.js +1 -1
- package/dist/commonjs/components/Inspector/NpmStarPrompt.js +1 -1
- package/dist/commonjs/components/Inspector/TabBar.js +7 -7
- package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +23 -24
- package/dist/commonjs/components/LogCard.js +16 -16
- package/dist/commonjs/components/NetworkIcons.d.ts +10 -0
- package/dist/commonjs/components/NetworkIcons.js +46 -4
- package/dist/commonjs/components/QRCodeView.js +2 -2
- package/dist/commonjs/components/TreeNode.js +16 -16
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/customHooks/bundleAnalyzer.js +1 -1
- package/dist/commonjs/helpers/index.d.ts +1 -0
- package/dist/commonjs/helpers/index.js +2 -2
- package/dist/commonjs/index.js +1 -1
- package/dist/commonjs/native/NativeInspector.d.ts +1 -0
- package/dist/commonjs/native/NativeInspector.js +1 -1
- package/dist/commonjs/types/interfaces.d.ts +0 -2
- package/dist/esm/components/AppHeaderLogo.js +6 -6
- package/dist/esm/components/ConsoleLogCard.js +6 -6
- package/dist/esm/components/HighlightText.js +17 -17
- package/dist/esm/components/Inspector/AboutModal.js +205 -313
- package/dist/esm/components/Inspector/DebuggingTab.js +32 -26
- package/dist/esm/components/Inspector/InspectorHeader.js +96 -122
- package/dist/esm/components/Inspector/MainScreen.js +66 -76
- package/dist/esm/components/Inspector/MediaGalleryTab.js +19 -19
- package/dist/esm/components/Inspector/MediaPreviewModal.js +18 -18
- package/dist/esm/components/Inspector/NpmStarPrompt.js +1 -1
- package/dist/esm/components/Inspector/TabBar.js +21 -21
- package/dist/esm/components/Inspector/UpdateAvailableModal.js +65 -66
- package/dist/esm/components/LogCard.js +43 -43
- package/dist/esm/components/NetworkIcons.d.ts +10 -0
- package/dist/esm/components/NetworkIcons.js +191 -149
- package/dist/esm/components/QRCodeView.js +4 -4
- package/dist/esm/components/TreeNode.js +53 -53
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/customHooks/bundleAnalyzer.js +1 -1
- package/dist/esm/helpers/index.d.ts +1 -0
- package/dist/esm/helpers/index.js +4 -4
- package/dist/esm/index.js +7 -7
- package/dist/esm/native/NativeInspector.d.ts +1 -0
- package/dist/esm/native/NativeInspector.js +1 -1
- package/dist/esm/types/interfaces.d.ts +0 -2
- package/ios/NetworkInspectorModule.mm +39 -3
- package/package.json +1 -1
- package/src/native/NativeInspector.ts +18 -0
- package/dist/commonjs/components/Inspector/FeedbackModal.d.ts +0 -16
- package/dist/commonjs/components/Inspector/FeedbackModal.js +0 -198
- package/dist/esm/components/Inspector/FeedbackModal.d.ts +0 -16
- package/dist/esm/components/Inspector/FeedbackModal.js +0 -198
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(e,o,l,r){r===void 0&&(r=l);var n=Object.getOwnPropertyDescriptor(o,l);(!n||("get"in n?!o.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return o[l]}}),Object.defineProperty(e,r,n)}):(function(e,o,l,r){r===void 0&&(r=l),e[r]=o[l]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(e,o){Object.defineProperty(e,"default",{enumerable:!0,value:o})}):function(e,o){e.default=o}),__importStar=this&&this.__importStar||(function(){var e=function(o){return e=Object.getOwnPropertyNames||function(l){var r=[];for(var n in l)Object.prototype.hasOwnProperty.call(l,n)&&(r[r.length]=n);return r},e(o)};return function(o){if(o&&o.__esModule)return o;var l={};if(o!=null)for(var r=e(o),n=0;n<r.length;n++)r[n]!=="default"&&__createBinding(l,o,r[n]);return __setModuleDefault(l,o),l}})(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.DebuggingTab=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),QRCodeView_1=__importDefault(require("../QRCodeView")),TouchableScale_1=__importDefault(require("../TouchableScale")),toast_1=require("../../helpers/toast"),NativeInspector_1=require("../../native/NativeInspector"),NetworkIcons_1=require("../NetworkIcons"),react_native_svg_1=__importStar(require("react-native-svg")),TerminalConsoleIcon=({color:e=AppColors_1.AppColors.purple,size:o=13})=><react_native_svg_1.default width={o}height={o}viewBox="0 0 24 24"fill="none">
|
|
2
2
|
<react_native_svg_1.Path d="M4 17l6-6-6-6M12 19h8"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
|
|
3
|
-
</react_native_svg_1.default>,DebuggingTab=()=>{const e=(0,react_1.useMemo)(()=>{const a=react_native_1.NativeModules.SourceCode?.scriptURL||"";let s="localhost",t=8081;try{if(a.includes("://")){const d=a.split("://")[1].split("/")[0];if(d.includes(":")){const u=d.split(":");s=u[0];const
|
|
3
|
+
</react_native_svg_1.default>,DebuggingTab=()=>{const e=(0,react_1.useMemo)(()=>{const a=react_native_1.NativeModules.SourceCode?.scriptURL||"";let s="localhost",t=8081;try{if(a.includes("://")){const d=a.split("://")[1].split("/")[0];if(d.includes(":")){const u=d.split(":");s=u[0];const y=parseInt(u[1],10);isNaN(y)||(t=y)}else s=d}}catch{}return{host:s,port:t,scriptURL:a}},[]),[o,l]=(0,react_1.useState)(()=>e.host&&e.host!=="localhost"&&e.host!=="127.0.0.1"&&e.host!=="10.0.2.2"?e.host:"192.168.1.2"),[r,n]=(0,react_1.useState)(e.port||8083),[V,A]=(0,react_1.useState)("app-debug.apk"),[T,x]=(0,react_1.useState)(null),[g,v]=(0,react_1.useState)("assembleRelease"),[f,k]=(0,react_1.useState)(!0),[i,C]=(0,react_1.useState)({status:"idle",scheme:"assembleRelease",clean:!0,progress:0,currentTask:"",error:null,apkName:null,apkSize:null}),p=(0,react_1.useRef)(null),_=(0,react_1.useRef)(new react_native_1.Animated.Value(0)).current,[m,I]=(0,react_1.useState)(!0),S=(0,react_1.useRef)(null);(0,react_1.useEffect)(()=>{react_native_1.Animated.timing(_,{toValue:Math.max(0,Math.min(100,i.progress)),duration:350,useNativeDriver:!1}).start()},[i.progress,_]),(0,react_1.useEffect)(()=>{i.logs&&i.logs.length>0&&setTimeout(()=>{S.current?.scrollToEnd({animated:!0})},50)},[i.logs]);const w=(0,react_1.useCallback)(async()=>{const a=Array.from(new Set([e.host,"10.0.2.2","localhost","127.0.0.1"].filter(Boolean))),s=Array.from(new Set([e.port,8083,8081,8082].filter(Boolean)));for(const t of a)for(const h of s)try{const d=new AbortController,u=setTimeout(()=>d.abort(),1200),y=await fetch(`http://${t}:${h}/__inapp_inspector/apk-info`,{signal:d.signal});if(clearTimeout(u),y.ok){const c=await y.json();c.hostIp&&c.hostIp!=="127.0.0.1"&&c.hostIp!=="localhost"&&c.hostIp!=="10.0.2.2"&&l(c.hostIp),c.port&&n(c.port),c.apkName&&A(c.apkName),c.apkSize&&x((c.apkSize/(1024*1024)).toFixed(1));return}}catch{}},[e.host,e.port]);(0,react_1.useEffect)(()=>{w()},[w]),(0,react_1.useEffect)(()=>()=>{p.current&&clearInterval(p.current)},[]);const R=(0,react_1.useCallback)(()=>{p.current&&clearInterval(p.current);const a=e.host||"10.0.2.2";p.current=setInterval(async()=>{try{const s=await fetch(`http://${a}:${r}/__inapp_inspector/build-status`);if(s.ok){const t=await s.json();C(t),t.status==="completed"?(p.current&&clearInterval(p.current),(0,NativeInspector_1.triggerNativeHaptic)("success"),(0,toast_1.showToast)("\u2713 APK Build Generated Successfully!"),t.apkSize&&x((t.apkSize/(1024*1024)).toFixed(1)),t.apkName&&A(t.apkName),w()):t.status==="failed"&&(p.current&&clearInterval(p.current),(0,NativeInspector_1.triggerNativeHaptic)("error"),(0,toast_1.showToast)("\u2715 Build Failed: "+(t.error||"Gradle error")))}}catch{}},1e3)},[e.host,r,w]),F=async()=>{(0,NativeInspector_1.triggerNativeHaptic)("medium"),C({status:"running",scheme:g,clean:f,progress:5,currentTask:f?"Cleaning build cache...":"Initializing build...",error:null,apkName:null,apkSize:null});const a=Array.from(new Set([e.host,"10.0.2.2","localhost","127.0.0.1"].filter(Boolean))),s=Array.from(new Set([r,8083,8081,8082].filter(Boolean)));let t=!1;for(const h of a)for(const d of s)try{const u=new AbortController,y=setTimeout(()=>u.abort(),2e3),c=await fetch(`http://${h}:${d}/__inapp_inspector/build-apk?scheme=${g}&clean=${f}`,{signal:u.signal});if(clearTimeout(y),c.ok){t=!0,R();return}}catch{}t||C(h=>({...h,status:"failed",error:"Cannot reach build server. Ensure npm start or npm run serve-apk is running on host."}))},D=async()=>{(0,NativeInspector_1.triggerNativeHaptic)("warning"),p.current&&clearInterval(p.current);const a=Array.from(new Set([e.host,"10.0.2.2","localhost","127.0.0.1"].filter(Boolean))),s=Array.from(new Set([r,8083,8081,8082].filter(Boolean)));for(const t of a)for(const h of s)try{const d=new AbortController,u=setTimeout(()=>d.abort(),1500);await fetch(`http://${t}:${h}/__inapp_inspector/stop-build`,{signal:d.signal}),clearTimeout(u)}catch{}C(t=>({...t,status:"idle",currentTask:"Build cancelled by user",logs:[...t.logs||[],"\u{1F6D1} Build cancelled by user."]})),(0,toast_1.showToast)("Build cancelled")},B=`http://${o}:${r}/${V.replace(/^\/+/,"")}`,z=()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),react_native_1.Share.share({message:B,title:"Install Android APK"})},b=i.status==="running";return<react_native_1.ScrollView style={styles.scrollArea}contentContainerStyle={styles.scrollContent}showsVerticalScrollIndicator={!1}>
|
|
4
4
|
|
|
5
5
|
<react_native_1.View style={styles.heroCard}>
|
|
6
6
|
<react_native_1.View style={styles.heroHeader}>
|
|
@@ -84,23 +84,29 @@
|
|
|
84
84
|
|
|
85
85
|
|
|
86
86
|
<react_native_1.View style={styles.subTabStrip}>
|
|
87
|
-
<react_native_1.TouchableOpacity disabled={b}activeOpacity={.7}onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),v("assembleRelease")}}style={[styles.subTabItem,
|
|
88
|
-
<react_native_1.
|
|
89
|
-
|
|
90
|
-
|
|
87
|
+
<react_native_1.TouchableOpacity disabled={b}activeOpacity={.7}onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),v("assembleRelease")}}style={[styles.subTabItem,g==="assembleRelease"&&styles.subTabItemActive]}>
|
|
88
|
+
<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:5}}>
|
|
89
|
+
<NetworkIcons_1.BoltIcon size={12}color={g==="assembleRelease"?AppColors_1.AppColors.white:AppColors_1.AppColors.grayText}/>
|
|
90
|
+
<react_native_1.Text style={[styles.subTabText,g==="assembleRelease"&&styles.subTabTextActive]}>
|
|
91
|
+
Release (assembleRelease)
|
|
92
|
+
</react_native_1.Text>
|
|
93
|
+
</react_native_1.View>
|
|
91
94
|
</react_native_1.TouchableOpacity>
|
|
92
95
|
|
|
93
|
-
<react_native_1.TouchableOpacity disabled={b}activeOpacity={.7}onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),v("assembleDebug")}}style={[styles.subTabItem,
|
|
94
|
-
<react_native_1.
|
|
95
|
-
|
|
96
|
-
|
|
96
|
+
<react_native_1.TouchableOpacity disabled={b}activeOpacity={.7}onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),v("assembleDebug")}}style={[styles.subTabItem,g==="assembleDebug"&&styles.subTabItemActive]}>
|
|
97
|
+
<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:5}}>
|
|
98
|
+
<NetworkIcons_1.WrenchIcon size={12}color={g==="assembleDebug"?AppColors_1.AppColors.white:AppColors_1.AppColors.grayText}/>
|
|
99
|
+
<react_native_1.Text style={[styles.subTabText,g==="assembleDebug"&&styles.subTabTextActive]}>
|
|
100
|
+
Debug (assembleDebug)
|
|
101
|
+
</react_native_1.Text>
|
|
102
|
+
</react_native_1.View>
|
|
97
103
|
</react_native_1.TouchableOpacity>
|
|
98
104
|
</react_native_1.View>
|
|
99
105
|
|
|
100
106
|
|
|
101
|
-
<react_native_1.TouchableOpacity disabled={b}activeOpacity={.7}onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),k(!
|
|
102
|
-
<react_native_1.View style={[styles.checkboxBox,
|
|
103
|
-
{
|
|
107
|
+
<react_native_1.TouchableOpacity disabled={b}activeOpacity={.7}onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),k(!f)}}style={styles.cleanRow}>
|
|
108
|
+
<react_native_1.View style={[styles.checkboxBox,f&&styles.checkboxBoxActive]}>
|
|
109
|
+
{f&&<NetworkIcons_1.CheckIcon size={11}color={AppColors_1.AppColors.white}/>}
|
|
104
110
|
</react_native_1.View>
|
|
105
111
|
<react_native_1.Text style={styles.cleanLabel}>
|
|
106
112
|
Clean build cache <react_native_1.Text style={styles.cleanCode}>(./gradlew clean)</react_native_1.Text>
|
|
@@ -175,7 +181,7 @@
|
|
|
175
181
|
<react_native_1.View style={styles.ctaContentRow}>
|
|
176
182
|
<NetworkIcons_1.SparkleIcon size={14}color={AppColors_1.AppColors.white}/>
|
|
177
183
|
<react_native_1.Text style={styles.generateBtnText}>
|
|
178
|
-
{
|
|
184
|
+
{f?"Clean & Generate Build":"Generate Build"}
|
|
179
185
|
</react_native_1.Text>
|
|
180
186
|
</react_native_1.View>
|
|
181
187
|
</TouchableScale_1.default>}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(i,
|
|
2
|
-
<react_native_1.View style={[styles_1.default.headerGradient,{minHeight:(e?58:62)+
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(i,o,n,r){r===void 0&&(r=n);var l=Object.getOwnPropertyDescriptor(o,n);(!l||("get"in l?!o.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return o[n]}}),Object.defineProperty(i,r,l)}):(function(i,o,n,r){r===void 0&&(r=n),i[r]=o[n]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}):function(i,o){i.default=o}),__importStar=this&&this.__importStar||(function(){var i=function(o){return i=Object.getOwnPropertyNames||function(n){var r=[];for(var l in n)Object.prototype.hasOwnProperty.call(n,l)&&(r[r.length]=l);return r},i(o)};return function(o){if(o&&o.__esModule)return o;var n={};if(o!=null)for(var r=i(o),l=0;l<r.length;l++)r[l]!=="default"&&__createBinding(n,o,r[l]);return __setModuleDefault(n,o),n}})(),__importDefault=this&&this.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importStar(require("react")),react_native_1=require("react-native"),react_native_linear_gradient_1=__importDefault(require("react-native-linear-gradient")),InspectorContext_1=require("./InspectorContext"),TouchableScale_1=__importDefault(require("../TouchableScale")),AppHeaderLogo_1=__importDefault(require("../AppHeaderLogo")),styles_1=__importDefault(require("../../styles")),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),constants_1=require("../../constants"),constants_2=require("../../constants"),helpers_1=require("../../helpers"),NativeInspector_1=require("../../native/NativeInspector"),capture_1=require("../../capture"),toast_1=require("../../helpers/toast"),UpdateAvailableModal_1=require("./UpdateAvailableModal"),MediaPreviewModal_1=require("./MediaPreviewModal"),NetworkIcons_1=require("../NetworkIcons"),i18n_1=require("../../i18n"),InspectorHeader=react_1.default.memo(()=>{const{t:i}=(0,i18n_1.useTranslation)(),{modalHeightPercent:o,appIcon:n,selected:r,setSelected:l,selectedEvent:d,setSelectedEvent:L,selectedLog:p,setSelectedLog:E,selectedReduxSlice:w,setSelectedReduxSlice:q,selectedReduxAction:b,setSelectedReduxAction:W,reduxState:N,reduxLastActionMap:j,showHeaderInfo:se,setShowHeaderInfo:de,updateAvailable:V,latestNpmVersion:U,clearAnim:$,activePulseAnim:G,unreadPulseAnim:K,runClearAllWithAnimation:Q,settingsPage:f,setSettingsPage:z,isAboutOpen:I,setIsAboutOpen:H,resetToDefaults:J,closeModal:O,minimizeInspector:X,detailTitle:Y,activeTab:c,environment:B,visible:ce,selectedCrash:s,setSelectedCrash:Z,refreshMediaCount:_}=(0,InspectorContext_1.useInspector)(),{width:m}=(0,react_native_1.useWindowDimensions)(),e=m<360,C=m<400,pe=m>=600,[ee,D]=react_1.default.useState(!1),[te,ue]=react_1.default.useState(()=>(0,helpers_1.getAppVersionAndBuild)().formatted),[u,T]=react_1.default.useState(!1),[ie,R]=react_1.default.useState(0),g=react_1.default.useRef(null);react_1.default.useEffect(()=>{capture_1.ScreenCapture.isRecording().then(t=>{T(t)}).catch(()=>{})},[]),react_1.default.useEffect(()=>(u?(R(0),g.current=setInterval(()=>{R(t=>t+1)},1e3)):(g.current&&(clearInterval(g.current),g.current=null),R(0)),()=>{g.current&&clearInterval(g.current)}),[u]);const[k,y]=react_1.default.useState(null),re=react_1.default.useCallback(async()=>{try{(0,NativeInspector_1.triggerNativeHaptic)("light");const t=await capture_1.ScreenCapture.takeScreenshot({format:"png",quality:.9,hideInspector:!0});if(t){(0,NativeInspector_1.triggerNativeHaptic)("success");const a={id:`screenshot_${t.timestamp}.png`,type:"image",format:t.format,uri:t.uri,filename:t.uri.split("/").pop()||`screenshot_${t.timestamp}.png`,sizeBytes:t.sizeBytes,timestamp:t.timestamp,width:t.width,height:t.height};y(a),_?.().catch(()=>{}),(0,toast_1.showToast)(i("header.screenshotCaptured"))}else(0,toast_1.showToast)(i("header.screenshotFailed"))}catch{(0,toast_1.showToast)(i("header.screenshotError"))}},[_,i]),ae=react_1.default.useCallback(async()=>{try{if(u){(0,NativeInspector_1.triggerNativeHaptic)("medium");const t=await capture_1.ScreenCapture.stopRecording();if(T(!1),t){(0,NativeInspector_1.triggerNativeHaptic)("success");const a={id:`video_${t.timestamp}.${t.format}`,type:t.format==="gif"?"gif":"video",format:t.format,uri:t.uri,filename:t.uri.split("/").pop()||`video_${t.timestamp}.${t.format}`,sizeBytes:t.sizeBytes,timestamp:t.timestamp,durationMs:t.durationMs,width:t.width,height:t.height,hasAudio:t.hasAudio};y(a),_?.().catch(()=>{}),(0,toast_1.showToast)(i("header.recordingSaved",{duration:(t.durationMs/1e3).toFixed(1)}))}}else(0,NativeInspector_1.triggerNativeHaptic)("medium"),await capture_1.ScreenCapture.startRecording({fps:24,audioSource:"none"})?(T(!0),(0,toast_1.showToast)(i("header.recordingStarted"))):(0,toast_1.showToast)(i("header.recordingStartFailed"))}catch{(0,toast_1.showToast)(i("header.recordingError")),T(!1)}},[u,i]),oe=t=>{const a=Math.floor(t/60),M=t%60;return`${a.toString().padStart(2,"0")}:${M.toString().padStart(2,"0")}`},v=(0,react_1.useMemo)(()=>{const t=(B||(__DEV__?"DEV":"PROD")).trim(),a=t.toUpperCase();return a==="DEV"||a.includes("DEV")||a==="LOCAL"?{label:t,bg:`${AppColors_1.AppColors.emerald500}40`,border:`${AppColors_1.AppColors.emerald400}8C`,text:AppColors_1.AppColors.mintGreenBorder}:a==="UAT"||a==="QA"||a==="TEST"?{label:t,bg:`${AppColors_1.AppColors.amber500}47`,border:`${AppColors_1.AppColors.amber400}99`,text:AppColors_1.AppColors.amberWarmBorder}:a==="PREPROD"||a==="STAGE"||a==="STAGING"?{label:t,bg:`${AppColors_1.AppColors.purple500}47`,border:`${AppColors_1.AppColors.purple400}99`,text:AppColors_1.AppColors.violetSoftBorder}:{label:t,bg:`${AppColors_1.AppColors.rose500}40`,border:`${AppColors_1.AppColors.roseBorder}8C`,text:AppColors_1.AppColors.errorBorder}},[B]),S=c==="apis"&&r!=null||c==="analytics"&&d!=null||c==="logs"&&p!=null||c==="redux"&&(w!=null||b!=null)||c==="crash"&&s!=null,x=f!==null,A=S||x||I,le=(0,react_1.useMemo)(()=>{switch(f){case"apis":return"APIs (Network)";case"logs":return"Console Logs";case"performance":return"Performance Tracker";case"bundle":return"Bundle Analyzer";case"crash":return"Crash Protection";case"analytics":return"Analytics Logger";case"redux":return"Redux Inspector";default:return"Settings & Modules"}},[f]),P=(0,react_1.useMemo)(()=>react_native_1.Platform.OS==="ios"?o>=98?m>=390?50:44:0:react_native_1.Platform.OS==="android"&&o>=98?react_native_1.StatusBar.currentHeight||24:0,[o,m]),h=e?28:C?30:32,ne=e?42:C?46:50;return<>
|
|
2
|
+
<react_native_1.View style={[styles_1.default.headerGradient,{minHeight:(e?58:62)+P}]}>
|
|
3
3
|
|
|
4
4
|
<react_native_linear_gradient_1.default colors={[AppColors_1.AppColors.indigo600,AppColors_1.AppColors.violet600]}start={{x:0,y:0}}end={{x:1,y:1}}style={{position:"absolute",top:0,left:0,right:0,bottom:0,borderTopLeftRadius:20,borderTopRightRadius:20}}pointerEvents="none"/>
|
|
5
|
-
<react_native_1.View style={{paddingTop:
|
|
5
|
+
<react_native_1.View style={{paddingTop:P,width:"100%"}}>
|
|
6
6
|
<react_native_1.View style={[styles_1.default.header,{width:"100%",justifyContent:"space-between",paddingHorizontal:e?12:16,paddingVertical:e?8:10,minHeight:e?52:56}]}>
|
|
7
|
-
<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:e?8:10,flex:
|
|
8
|
-
{
|
|
7
|
+
<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:e?8:10,flex:S?void 0:1,flexShrink:S?0:1,minWidth:0}}>
|
|
8
|
+
{A&&<TouchableScale_1.default onPress={()=>{if(I){H(!1);return}if(x){z(f==="main"?null:"main");return}l(null),L(null),E(null),q(null),W(null),Z(null)}}hitSlop={15}style={{width:e?32:36,height:e?32:36,borderRadius:e?16:18,alignItems:"center",justifyContent:"center",backgroundColor:`${AppColors_1.AppColors.white}2E`,borderWidth:1,borderColor:`${AppColors_1.AppColors.white}4D`}}>
|
|
9
9
|
<react_native_1.View style={{position:"absolute",width:e?40:44,height:e?40:44,borderRadius:22,backgroundColor:`${AppColors_1.AppColors.white}1A`}}/>
|
|
10
10
|
<NetworkIcons_1.WhiteBackNavigation/>
|
|
11
11
|
</TouchableScale_1.default>}
|
|
12
12
|
|
|
13
|
-
{
|
|
13
|
+
{I?<react_native_1.View style={{gap:3,flex:1,minWidth:0,justifyContent:"center"}}>
|
|
14
14
|
<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:6}}>
|
|
15
15
|
<react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:e?15:16.5,lineHeight:e?19:21,color:AppColors_1.AppColors.white,letterSpacing:-.2}}numberOfLines={1}>
|
|
16
16
|
About & Specs
|
|
@@ -24,24 +24,10 @@
|
|
|
24
24
|
<react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:e?10:11,lineHeight:e?14:15,color:`${AppColors_1.AppColors.white}CC`,marginTop:1}}numberOfLines={1}>
|
|
25
25
|
Package info, runtime specs & diagnostic payload
|
|
26
26
|
</react_native_1.Text>
|
|
27
|
-
</react_native_1.View>:I?<react_native_1.View style={{gap:3,flex:1,minWidth:0,justifyContent:"center"}}>
|
|
28
|
-
<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:6}}>
|
|
29
|
-
<react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:e?15:16.5,lineHeight:e?19:21,color:AppColors_1.AppColors.white,letterSpacing:-.2}}numberOfLines={1}>
|
|
30
|
-
Support & Feedback
|
|
31
|
-
</react_native_1.Text>
|
|
32
|
-
<react_native_1.View style={{backgroundColor:`${AppColors_1.AppColors.white}26`,paddingHorizontal:e?5:6,paddingVertical:2,borderRadius:8,borderWidth:1,borderColor:`${AppColors_1.AppColors.white}20`}}>
|
|
33
|
-
<react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:e?8.5:9.5,lineHeight:12,color:AppColors_1.AppColors.white}}>
|
|
34
|
-
v{constants_2.LIB_VERSION}
|
|
35
|
-
</react_native_1.Text>
|
|
36
|
-
</react_native_1.View>
|
|
37
|
-
</react_native_1.View>
|
|
38
|
-
<react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:e?10:11,lineHeight:e?14:15,color:`${AppColors_1.AppColors.white}CC`,marginTop:1}}numberOfLines={1}>
|
|
39
|
-
Direct line to maintainers & developers
|
|
40
|
-
</react_native_1.Text>
|
|
41
27
|
</react_native_1.View>:x?<react_native_1.View style={{gap:3,flex:1,minWidth:0,justifyContent:"center"}}>
|
|
42
28
|
<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:6}}>
|
|
43
29
|
<react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:e?15:16.5,lineHeight:e?19:21,color:AppColors_1.AppColors.white,letterSpacing:-.2}}numberOfLines={1}>
|
|
44
|
-
{
|
|
30
|
+
{le}
|
|
45
31
|
</react_native_1.Text>
|
|
46
32
|
{f==="main"&&<react_native_1.View style={{backgroundColor:`${AppColors_1.AppColors.white}26`,paddingHorizontal:e?5:6,paddingVertical:2,borderRadius:8,borderWidth:1,borderColor:`${AppColors_1.AppColors.white}20`}}>
|
|
47
33
|
<react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:e?8.5:9.5,lineHeight:12,color:AppColors_1.AppColors.white}}>
|
|
@@ -52,11 +38,11 @@
|
|
|
52
38
|
<react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:e?10:11,lineHeight:e?14:15,color:`${AppColors_1.AppColors.white}CC`,marginTop:1}}numberOfLines={1}>
|
|
53
39
|
{f==="main"?"Manage modules and preferences":"Configure module parameters"}
|
|
54
40
|
</react_native_1.Text>
|
|
55
|
-
</react_native_1.View>:
|
|
56
|
-
<AppHeaderLogo_1.default size={
|
|
41
|
+
</react_native_1.View>:A?null:<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:e?10:12,flex:1,minWidth:0,marginRight:4}}>
|
|
42
|
+
<AppHeaderLogo_1.default size={ne}customIcon={n}/>
|
|
57
43
|
<react_native_1.View style={{gap:4,flex:1,minWidth:0,justifyContent:"center"}}>
|
|
58
44
|
<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:e?6:7,minWidth:0}}>
|
|
59
|
-
<react_native_1.Text style={[styles_1.default.headerTitle,{fontSize:e?15:
|
|
45
|
+
<react_native_1.Text style={[styles_1.default.headerTitle,{fontSize:e?15:C?16:17,lineHeight:e?20:C?22:23,flexShrink:1,paddingBottom:0}]}numberOfLines={1}ellipsizeMode="tail">
|
|
60
46
|
{(0,helpers_1.getAppName)()}
|
|
61
47
|
</react_native_1.Text>
|
|
62
48
|
<react_native_1.View style={[styles_1.default.envBadge,{backgroundColor:v.bg,borderColor:v.border,flexShrink:0,paddingHorizontal:e?6:7,paddingVertical:2.5,borderRadius:6,marginBottom:0}]}>
|
|
@@ -64,8 +50,8 @@
|
|
|
64
50
|
{v.label}
|
|
65
51
|
</react_native_1.Text>
|
|
66
52
|
</react_native_1.View>
|
|
67
|
-
{V&&<react_native_1.Pressable hitSlop={10}onPress={()=>
|
|
68
|
-
<react_native_1.Animated.View style={{width:5,height:5,borderRadius:2.5,backgroundColor:AppColors_1.AppColors.white,opacity:
|
|
53
|
+
{V&&<react_native_1.Pressable hitSlop={10}onPress={()=>D(!0)}style={{flexDirection:"row",alignItems:"center",backgroundColor:AppColors_1.AppColors.warningAmber,borderRadius:6,paddingHorizontal:e?5:6.5,paddingVertical:2.5,gap:3.5,shadowColor:AppColors_1.AppColors.warningAmber,shadowOffset:{width:0,height:1.5},shadowOpacity:.35,shadowRadius:3,elevation:3,flexShrink:0}}>
|
|
54
|
+
<react_native_1.Animated.View style={{width:5,height:5,borderRadius:2.5,backgroundColor:AppColors_1.AppColors.white,opacity:G,transform:[{scale:K}]}}/>
|
|
69
55
|
{!e&&<react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:8.5,lineHeight:11,color:AppColors_1.AppColors.white,letterSpacing:.3}}>
|
|
70
56
|
UPDATE
|
|
71
57
|
</react_native_1.Text>}
|
|
@@ -78,11 +64,11 @@
|
|
|
78
64
|
<react_native_1.View style={{flexDirection:"row",alignItems:"center",backgroundColor:`${AppColors_1.AppColors.white}1F`,borderRadius:6,paddingHorizontal:e?6:7,paddingVertical:3,gap:4,borderWidth:1,borderColor:`${AppColors_1.AppColors.white}2E`,flexShrink:1,minWidth:0}}>
|
|
79
65
|
{react_native_1.Platform.OS==="ios"?<NetworkIcons_1.AppleIcon color={`${AppColors_1.AppColors.white}E6`}size={e?9.5:10.5}/>:<NetworkIcons_1.AndroidIcon color={`${AppColors_1.AppColors.white}E6`}size={e?9.5:10.5}/>}
|
|
80
66
|
<react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:e?9:10,lineHeight:13,color:`${AppColors_1.AppColors.white}EB`,letterSpacing:.1}}numberOfLines={1}ellipsizeMode="tail">
|
|
81
|
-
{
|
|
67
|
+
{te}
|
|
82
68
|
</react_native_1.Text>
|
|
83
69
|
</react_native_1.View>
|
|
84
70
|
|
|
85
|
-
<react_native_1.Pressable onPress={()=>{V?
|
|
71
|
+
<react_native_1.Pressable onPress={()=>{V?D(!0):react_native_1.Linking.openURL("https://www.npmjs.com/package/react-native-inapp-inspector").catch(()=>{})}}style={{flexDirection:"row",alignItems:"center",backgroundColor:`${AppColors_1.AppColors.white}1F`,borderRadius:6,paddingHorizontal:e?6:7,paddingVertical:3,gap:4,borderWidth:1,borderColor:`${AppColors_1.AppColors.white}2E`,flexShrink:0}}>
|
|
86
72
|
<NetworkIcons_1.NpmIcon size={e?9.5:10.5}color={AppColors_1.AppColors.npmRedLight}/>
|
|
87
73
|
<react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:e?9:10,lineHeight:13,color:`${AppColors_1.AppColors.white}EB`,letterSpacing:.1}}numberOfLines={1}>
|
|
88
74
|
v{constants_2.LIB_VERSION}
|
|
@@ -96,8 +82,8 @@
|
|
|
96
82
|
</react_native_1.View>}
|
|
97
83
|
</react_native_1.View>
|
|
98
84
|
|
|
99
|
-
{
|
|
100
|
-
{
|
|
85
|
+
{S&&<react_native_1.View style={[styles_1.default.headerCenter,{paddingHorizontal:e?2:6}]}>
|
|
86
|
+
{c==="apis"&&r!=null?<react_native_1.View style={styles_1.default.headerDetailCenter}>
|
|
101
87
|
<react_native_1.View style={styles_1.default.headerDetailRow}>
|
|
102
88
|
<react_native_1.View style={[styles_1.default.headerMethodBadge,{backgroundColor:constants_1.METHOD_COLORS[r.method]??AppColors_1.AppColors.grayText,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
|
|
103
89
|
<react_native_1.Text style={[styles_1.default.headerMethodText,{fontSize:e?9:10}]}>
|
|
@@ -105,7 +91,7 @@
|
|
|
105
91
|
</react_native_1.Text>
|
|
106
92
|
</react_native_1.View>
|
|
107
93
|
<react_native_1.Text style={[styles_1.default.headerDetailTitle,{fontSize:e?13.5:15}]}numberOfLines={1}ellipsizeMode="middle">
|
|
108
|
-
{
|
|
94
|
+
{Y}
|
|
109
95
|
</react_native_1.Text>
|
|
110
96
|
</react_native_1.View>
|
|
111
97
|
<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1}}>
|
|
@@ -128,49 +114,49 @@
|
|
|
128
114
|
</react_native_1.Text>
|
|
129
115
|
</react_native_1.View>}
|
|
130
116
|
</react_native_1.View>
|
|
131
|
-
</react_native_1.View>:
|
|
117
|
+
</react_native_1.View>:c==="analytics"&&d!=null?<react_native_1.View style={styles_1.default.headerDetailCenter}>
|
|
132
118
|
<react_native_1.View style={styles_1.default.headerDetailRow}>
|
|
133
|
-
<react_native_1.View style={[styles_1.default.headerMethodBadge,{backgroundColor:
|
|
119
|
+
<react_native_1.View style={[styles_1.default.headerMethodBadge,{backgroundColor:d.source==="firebase"?`${AppColors_1.AppColors.firebaseOrange}4D`:`${AppColors_1.AppColors.purple}4D`,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
|
|
134
120
|
<react_native_1.Text style={[styles_1.default.headerMethodText,{fontSize:e?9:10}]}>
|
|
135
|
-
{
|
|
121
|
+
{d.source==="firebase"?"FB":"MAN"}
|
|
136
122
|
</react_native_1.Text>
|
|
137
123
|
</react_native_1.View>
|
|
138
124
|
<react_native_1.Text style={[styles_1.default.headerDetailTitle,{fontSize:e?13.5:15}]}numberOfLines={1}ellipsizeMode="middle">
|
|
139
|
-
#{
|
|
140
|
-
{
|
|
125
|
+
#{d.id!=null?d.id+1:1}{" "}
|
|
126
|
+
{d.name}
|
|
141
127
|
</react_native_1.Text>
|
|
142
128
|
</react_native_1.View>
|
|
143
129
|
<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1}}>
|
|
144
|
-
<react_native_1.View style={[styles_1.default.headerStatusDot,{backgroundColor:
|
|
130
|
+
<react_native_1.View style={[styles_1.default.headerStatusDot,{backgroundColor:d.source==="firebase"?AppColors_1.AppColors.firebaseOrange:AppColors_1.AppColors.purple,width:e?6:7,height:e?6:7}]}/>
|
|
145
131
|
<react_native_1.Text style={[styles_1.default.headerSubTitle,{fontSize:e?10:11}]}>
|
|
146
|
-
{Object.keys(
|
|
147
|
-
{Object.keys(
|
|
132
|
+
{Object.keys(d.params).length} param
|
|
133
|
+
{Object.keys(d.params).length!==1?"s":""}
|
|
148
134
|
{" \xB7 "}
|
|
149
|
-
{
|
|
135
|
+
{d.source}
|
|
150
136
|
</react_native_1.Text>
|
|
151
137
|
</react_native_1.View>
|
|
152
|
-
</react_native_1.View>:
|
|
138
|
+
</react_native_1.View>:c==="logs"&&p!=null?<react_native_1.View style={styles_1.default.headerDetailCenter}>
|
|
153
139
|
<react_native_1.View style={styles_1.default.headerDetailRow}>
|
|
154
|
-
<react_native_1.View style={[styles_1.default.headerMethodBadge,{backgroundColor:
|
|
140
|
+
<react_native_1.View style={[styles_1.default.headerMethodBadge,{backgroundColor:p.type==="error"?`${AppColors_1.AppColors.errorColor}4D`:p.type==="warn"?`${AppColors_1.AppColors.lightOrange}4D`:`${AppColors_1.AppColors.purple}4D`,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
|
|
155
141
|
<react_native_1.Text style={[styles_1.default.headerMethodText,{fontSize:e?9:10}]}>
|
|
156
|
-
{
|
|
142
|
+
{p.type.toUpperCase()}
|
|
157
143
|
</react_native_1.Text>
|
|
158
144
|
</react_native_1.View>
|
|
159
145
|
<react_native_1.Text style={[styles_1.default.headerDetailTitle,{fontSize:e?13.5:15}]}numberOfLines={1}ellipsizeMode="middle">
|
|
160
|
-
#{
|
|
146
|
+
#{p.id!=null?p.id+1:1}{" "}
|
|
161
147
|
console.
|
|
162
|
-
{
|
|
148
|
+
{p.sourceMethod||p.type||"log"}
|
|
163
149
|
</react_native_1.Text>
|
|
164
150
|
</react_native_1.View>
|
|
165
151
|
<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1}}>
|
|
166
152
|
<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${AppColors_1.AppColors.white}29`}}>
|
|
167
153
|
<NetworkIcons_1.ClockIcon color={AppColors_1.AppColors.white}size={e?10:11}/>
|
|
168
154
|
<react_native_1.Text style={[styles_1.default.headerSubTitle,{fontSize:e?10:11}]}>
|
|
169
|
-
{(0,helpers_1.formatTime)(
|
|
155
|
+
{(0,helpers_1.formatTime)(p.timestamp)}
|
|
170
156
|
</react_native_1.Text>
|
|
171
157
|
</react_native_1.View>
|
|
172
158
|
</react_native_1.View>
|
|
173
|
-
</react_native_1.View>:
|
|
159
|
+
</react_native_1.View>:c==="redux"&&w!=null?(()=>{const t=N?.[w],a=t&&typeof t=="object"?Object.keys(t).length:typeof t<"u"?1:0,M=(0,helpers_1.getSize)(t),F=j[w];return<react_native_1.View style={styles_1.default.headerDetailCenter}>
|
|
174
160
|
<react_native_1.View style={styles_1.default.headerDetailRow}>
|
|
175
161
|
<react_native_1.View style={[styles_1.default.headerMethodBadge,{backgroundColor:`${AppColors_1.AppColors.purple}4D`,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
|
|
176
162
|
<react_native_1.Text style={[styles_1.default.headerMethodText,{fontSize:e?9:10}]}>
|
|
@@ -190,7 +176,7 @@
|
|
|
190
176
|
•
|
|
191
177
|
</react_native_1.Text>
|
|
192
178
|
<react_native_1.Text style={[styles_1.default.headerSubTitle,{fontSize:e?10:11}]}>
|
|
193
|
-
{
|
|
179
|
+
{a} keys
|
|
194
180
|
</react_native_1.Text>
|
|
195
181
|
<react_native_1.Text style={[styles_1.default.headerSubTitle,{opacity:.6,fontSize:e?10:11}]}>
|
|
196
182
|
•
|
|
@@ -198,19 +184,19 @@
|
|
|
198
184
|
<react_native_1.Text style={[styles_1.default.headerSubTitle,{fontSize:e?10:11}]}>
|
|
199
185
|
{M}
|
|
200
186
|
</react_native_1.Text>
|
|
201
|
-
{
|
|
187
|
+
{F?.timestamp&&<>
|
|
202
188
|
<react_native_1.Text style={[styles_1.default.headerSubTitle,{opacity:.6,fontSize:e?10:11}]}>
|
|
203
189
|
•
|
|
204
190
|
</react_native_1.Text>
|
|
205
191
|
<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:3}}>
|
|
206
192
|
<NetworkIcons_1.ClockIcon color={AppColors_1.AppColors.white}size={e?9:10}/>
|
|
207
193
|
<react_native_1.Text style={[styles_1.default.headerSubTitle,{fontSize:e?10:11}]}>
|
|
208
|
-
{
|
|
194
|
+
{F.timestamp}
|
|
209
195
|
</react_native_1.Text>
|
|
210
196
|
</react_native_1.View>
|
|
211
197
|
</>}
|
|
212
198
|
</react_native_1.View>
|
|
213
|
-
</react_native_1.View>})():
|
|
199
|
+
</react_native_1.View>})():c==="redux"&&b!=null?<react_native_1.View style={styles_1.default.headerDetailCenter}>
|
|
214
200
|
<react_native_1.View style={styles_1.default.headerDetailRow}>
|
|
215
201
|
<react_native_1.View style={[styles_1.default.headerMethodBadge,{backgroundColor:`${AppColors_1.AppColors.brandPurple}4D`,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
|
|
216
202
|
<react_native_1.Text style={[styles_1.default.headerMethodText,{fontSize:e?9:10}]}>
|
|
@@ -218,16 +204,16 @@
|
|
|
218
204
|
</react_native_1.Text>
|
|
219
205
|
</react_native_1.View>
|
|
220
206
|
<react_native_1.Text style={[styles_1.default.headerDetailTitle,{fontSize:e?13.5:15}]}numberOfLines={1}ellipsizeMode="middle">
|
|
221
|
-
{
|
|
207
|
+
{b.type}
|
|
222
208
|
</react_native_1.Text>
|
|
223
209
|
</react_native_1.View>
|
|
224
210
|
<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1}}>
|
|
225
211
|
<react_native_1.View style={[styles_1.default.headerStatusDot,{backgroundColor:AppColors_1.AppColors.purple,width:e?6:7,height:e?6:7}]}/>
|
|
226
212
|
<react_native_1.Text style={[styles_1.default.headerSubTitle,{fontSize:e?10:11}]}>
|
|
227
|
-
{
|
|
213
|
+
{b.timestamp||"Dispatched"}
|
|
228
214
|
</react_native_1.Text>
|
|
229
215
|
</react_native_1.View>
|
|
230
|
-
</react_native_1.View>:
|
|
216
|
+
</react_native_1.View>:c==="crash"&&s!=null?<react_native_1.View style={styles_1.default.headerDetailCenter}>
|
|
231
217
|
<react_native_1.View style={styles_1.default.headerDetailRow}>
|
|
232
218
|
<react_native_1.View style={[styles_1.default.headerMethodBadge,{backgroundColor:s.isFatal?AppColors_1.AppColors.red600:AppColors_1.AppColors.amber600,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
|
|
233
219
|
<react_native_1.Text style={[styles_1.default.headerMethodText,{fontSize:e?9:10}]}>
|
|
@@ -256,44 +242,32 @@
|
|
|
256
242
|
</react_native_1.View>}
|
|
257
243
|
|
|
258
244
|
<react_native_1.View style={[styles_1.default.headerRight,{flexDirection:"row",alignItems:"center",justifyContent:"flex-end",flexShrink:0,gap:e?4:5}]}>
|
|
259
|
-
|
|
260
|
-
{y&&<>
|
|
261
|
-
|
|
262
|
-
<TouchableScale_1.default accessible={!0}accessibilityRole="button"accessibilityLabel={i("header.photo","Photo")}onPress={P}hitSlop={10}style={[styles_1.default.closeButtonSquare,{width:c,height:c,borderRadius:e?6:7}]}>
|
|
263
|
-
<NetworkIcons_1.CameraIcon size={e?12:13}color={AppColors_1.AppColors.white}/>
|
|
264
|
-
</TouchableScale_1.default>
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
<TouchableScale_1.default accessible={!0}accessibilityRole="button"accessibilityLabel={i("header.record","Record")}onPress={L}hitSlop={10}style={[styles_1.default.closeButtonSquare,{width:c,height:c,borderRadius:e?6:7,backgroundColor:d?`${AppColors_1.AppColors.red500}40`:`${AppColors_1.AppColors.white}24`,borderColor:d?AppColors_1.AppColors.red500:`${AppColors_1.AppColors.white}33`}]}>
|
|
268
|
-
{d?<react_native_1.Animated.View style={{width:6,height:6,borderRadius:3,backgroundColor:AppColors_1.AppColors.red500}}/>:<NetworkIcons_1.VideoCameraIcon size={e?12:13}color={AppColors_1.AppColors.white}/>}
|
|
269
|
-
</TouchableScale_1.default>
|
|
270
|
-
</>}
|
|
271
245
|
|
|
272
|
-
{x&&<TouchableScale_1.default onPress={()=>{react_native_1.Alert.alert("Reset All Settings","This restores all module visibility and UI preferences to defaults. Continue?",[{text:"Cancel",style:"cancel"},{text:"Reset",style:"destructive",onPress:
|
|
246
|
+
{x&&<TouchableScale_1.default onPress={()=>{react_native_1.Alert.alert("Reset All Settings","This restores all module visibility and UI preferences to defaults. Continue?",[{text:"Cancel",style:"cancel"},{text:"Reset",style:"destructive",onPress:J}])}}hitSlop={15}style={[styles_1.default.closeButtonSquare,{width:h,height:h,borderRadius:e?6:7}]}>
|
|
273
247
|
<NetworkIcons_1.ResetIcon color={AppColors_1.AppColors.white}size={e?12:14}/>
|
|
274
248
|
</TouchableScale_1.default>}
|
|
275
249
|
|
|
276
|
-
{!
|
|
250
|
+
{!A&&<TouchableScale_1.default accessible={!0}accessibilityRole="button"accessibilityLabel="Settings"onPress={()=>z("main")}hitSlop={15}style={[styles_1.default.closeButtonSquare,{width:h,height:h,borderRadius:e?6:7}]}>
|
|
277
251
|
<NetworkIcons_1.SettingsIcon color={AppColors_1.AppColors.white}size={e?12:14}/>
|
|
278
252
|
</TouchableScale_1.default>}
|
|
279
253
|
|
|
280
254
|
|
|
281
|
-
<react_native_1.TouchableOpacity onPress={
|
|
255
|
+
<react_native_1.TouchableOpacity onPress={X||O}hitSlop={{top:12,bottom:12,left:12,right:12}}activeOpacity={.6}accessibilityRole="button"accessibilityLabel={i("common.minimize","Minimize")}style={[styles_1.default.closeButtonSquare,{width:h,height:h,borderRadius:e?6:7}]}>
|
|
282
256
|
<NetworkIcons_1.ChevronDownIcon size={e?14:16}color={AppColors_1.AppColors.white}/>
|
|
283
257
|
</react_native_1.TouchableOpacity>
|
|
284
258
|
|
|
285
259
|
|
|
286
|
-
<react_native_1.TouchableOpacity onPress={
|
|
260
|
+
<react_native_1.TouchableOpacity onPress={O}hitSlop={{top:12,bottom:12,left:12,right:12}}activeOpacity={.6}accessibilityRole="button"accessibilityLabel={i("common.close","Close")}style={[styles_1.default.closeButtonSquare,{width:h,height:h,borderRadius:e?6:7}]}>
|
|
287
261
|
<NetworkIcons_1.CloseWhite size={e?12:14}/>
|
|
288
262
|
</react_native_1.TouchableOpacity>
|
|
289
263
|
</react_native_1.View>
|
|
290
264
|
</react_native_1.View>
|
|
291
265
|
|
|
292
266
|
|
|
293
|
-
{!
|
|
267
|
+
{!A&&<react_native_1.View style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:e?10:14,paddingBottom:e?8:10,paddingTop:2,gap:6}}>
|
|
294
268
|
<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:6}}>
|
|
295
269
|
|
|
296
|
-
<TouchableScale_1.default onPress={
|
|
270
|
+
<TouchableScale_1.default onPress={re}style={{flexDirection:"row",alignItems:"center",gap:5,backgroundColor:`${AppColors_1.AppColors.white}24`,paddingHorizontal:e?9:11,paddingVertical:e?5:6,borderRadius:7,borderWidth:1,borderColor:`${AppColors_1.AppColors.white}33`}}>
|
|
297
271
|
<NetworkIcons_1.CameraIcon size={e?12:13}color={AppColors_1.AppColors.white}/>
|
|
298
272
|
<react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interSemiBold,fontSize:e?10.5:11.5,lineHeight:e?13:14,color:AppColors_1.AppColors.white}}>
|
|
299
273
|
{i("header.photo")}
|
|
@@ -301,18 +275,18 @@
|
|
|
301
275
|
</TouchableScale_1.default>
|
|
302
276
|
|
|
303
277
|
|
|
304
|
-
<TouchableScale_1.default onPress={
|
|
305
|
-
{
|
|
306
|
-
<react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interSemiBold,fontSize:e?10.5:11.5,lineHeight:e?13:14,color:
|
|
307
|
-
{
|
|
278
|
+
<TouchableScale_1.default onPress={ae}style={{flexDirection:"row",alignItems:"center",gap:5,backgroundColor:u?`${AppColors_1.AppColors.red500}33`:`${AppColors_1.AppColors.white}24`,paddingHorizontal:e?9:11,paddingVertical:e?5:6,borderRadius:7,borderWidth:1,borderColor:u?AppColors_1.AppColors.red500:`${AppColors_1.AppColors.white}33`}}>
|
|
279
|
+
{u?<react_native_1.Animated.View style={{width:6,height:6,borderRadius:3,backgroundColor:AppColors_1.AppColors.red500}}/>:<NetworkIcons_1.VideoCameraIcon size={e?12:13}color={AppColors_1.AppColors.white}/>}
|
|
280
|
+
<react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interSemiBold,fontSize:e?10.5:11.5,lineHeight:e?13:14,color:u?AppColors_1.AppColors.red300:AppColors_1.AppColors.white}}>
|
|
281
|
+
{u?`${i("header.rec")} ${oe(ie)}`:i("header.record")}
|
|
308
282
|
</react_native_1.Text>
|
|
309
283
|
</TouchableScale_1.default>
|
|
310
284
|
</react_native_1.View>
|
|
311
285
|
|
|
312
286
|
<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:6}}>
|
|
313
287
|
|
|
314
|
-
<TouchableScale_1.default accessible={!0}accessibilityRole="button"accessibilityLabel={i("common.clearAll")}onPress={()=>{react_native_1.Alert.alert(i("header.clearEverythingTitle"),i("header.clearEverythingMessage"),[{text:i("common.cancel"),style:"cancel"},{text:i("common.clearAll"),onPress:
|
|
315
|
-
<react_native_1.Animated.View style={{transform:[{rotate
|
|
288
|
+
<TouchableScale_1.default accessible={!0}accessibilityRole="button"accessibilityLabel={i("common.clearAll")}onPress={()=>{react_native_1.Alert.alert(i("header.clearEverythingTitle"),i("header.clearEverythingMessage"),[{text:i("common.cancel"),style:"cancel"},{text:i("common.clearAll"),onPress:Q,style:"destructive"}])}}hitSlop={10}style={{flexDirection:"row",alignItems:"center",gap:5,backgroundColor:`${AppColors_1.AppColors.white}24`,paddingHorizontal:e?9:11,paddingVertical:e?5:6,borderRadius:7,borderWidth:1,borderColor:`${AppColors_1.AppColors.white}33`}}>
|
|
289
|
+
<react_native_1.Animated.View style={{transform:[{rotate:$.interpolate({inputRange:[0,1],outputRange:["0deg","-25deg"]})},{scale:$.interpolate({inputRange:[0,.5,1],outputRange:[1,1.25,1]})}]}}>
|
|
316
290
|
<NetworkIcons_1.TrashIcon color={AppColors_1.AppColors.white}size={e?12:13}/>
|
|
317
291
|
</react_native_1.Animated.View>
|
|
318
292
|
<react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interSemiBold,fontSize:e?10.5:11.5,lineHeight:e?13:14,color:AppColors_1.AppColors.white}}>
|
|
@@ -333,8 +307,8 @@
|
|
|
333
307
|
</react_native_1.View>
|
|
334
308
|
|
|
335
309
|
|
|
336
|
-
<UpdateAvailableModal_1.UpdateAvailableModal visible={
|
|
310
|
+
<UpdateAvailableModal_1.UpdateAvailableModal visible={ee}latestVersion={U}onClose={()=>D(!1)}/>
|
|
337
311
|
|
|
338
312
|
|
|
339
|
-
<MediaPreviewModal_1.MediaPreviewModal item={
|
|
313
|
+
<MediaPreviewModal_1.MediaPreviewModal item={k}visible={!!k}onClose={()=>y(null)}onDelete={async t=>{await capture_1.ScreenCapture.deleteMedia(t.uri),_?.().catch(()=>{}),y(null)}}onConvertToGif={async t=>{const a=await capture_1.ScreenCapture.convertToGif(t.uri,{fps:12,width:480});a&&(_?.().catch(()=>{}),y({id:`anim_${a.timestamp}.gif`,type:"gif",format:"gif",uri:a.uri,filename:a.uri.split("/").pop()||`anim_${a.timestamp}.gif`,sizeBytes:a.sizeBytes,timestamp:a.timestamp,durationMs:a.durationMs}))}}/>
|
|
340
314
|
</>});exports.default=InspectorHeader;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(r,e,a,o){o===void 0&&(o=a);var i=Object.getOwnPropertyDescriptor(e,a);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[a]}}),Object.defineProperty(r,o,i)}):(function(r,e,a,o){o===void 0&&(o=a),r[o]=e[a]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}):function(r,e){r.default=e}),__importStar=this&&this.__importStar||(function(){var r=function(e){return r=Object.getOwnPropertyNames||function(a){var o=[];for(var i in a)Object.prototype.hasOwnProperty.call(a,i)&&(o[o.length]=i);return o},r(e)};return function(e){if(e&&e.__esModule)return e;var a={};if(e!=null)for(var o=r(e),i=0;i<o.length;i++)o[i]!=="default"&&__createBinding(a,e,o[i]);return __setModuleDefault(a,e),a}})(),__importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importStar(require("react")),react_native_1=require("react-native"),InspectorContext_1=require("./InspectorContext"),ErrorBoundary_1=__importDefault(require("../ErrorBoundary")),FabLauncher_1=__importDefault(require("./FabLauncher")),InspectorHeader_1=__importDefault(require("./InspectorHeader")),TabBar_1=__importDefault(require("./TabBar")),NetworkTab_1=__importDefault(require("./NetworkTab")),NetworkDetail_1=__importDefault(require("./NetworkDetail")),LogDetail_1=__importDefault(require("./LogDetail")),ConsoleTab_1=__importDefault(require("./ConsoleTab")),AnalyticsTab_1=__importDefault(require("./AnalyticsTab")),AnalyticsDetail_1=__importDefault(require("../AnalyticsDetail")),ReduxTab_1=__importDefault(require("./ReduxTab")),ReduxDetail_1=__importDefault(require("./ReduxDetail")),BundleTab_1=__importDefault(require("./BundleTab")),PerformanceTab_1=__importDefault(require("./PerformanceTab")),CrashTab_1=__importDefault(require("./CrashTab")),CrashDetail_1=__importDefault(require("./CrashDetail")),DeviceInfoTab_1=__importDefault(require("./DeviceInfoTab")),StorageTab_1=__importDefault(require("./StorageTab")),DebuggingTab_1=__importDefault(require("./DebuggingTab")),MediaGalleryTab_1=require("./MediaGalleryTab"),SettingsPanel_1=__importDefault(require("./SettingsPanel")),AboutModal_1=__importDefault(require("./AboutModal")),NpmUpdateToast_1=__importDefault(require("./NpmUpdateToast")),NpmStarPrompt_1=__importDefault(require("./NpmStarPrompt")),
|
|
2
|
-
{(react_native_1.Platform.OS==="ios"||react_native_1.Platform.OS==="android")&&
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(r,e,a,o){o===void 0&&(o=a);var i=Object.getOwnPropertyDescriptor(e,a);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[a]}}),Object.defineProperty(r,o,i)}):(function(r,e,a,o){o===void 0&&(o=a),r[o]=e[a]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}):function(r,e){r.default=e}),__importStar=this&&this.__importStar||(function(){var r=function(e){return r=Object.getOwnPropertyNames||function(a){var o=[];for(var i in a)Object.prototype.hasOwnProperty.call(a,i)&&(o[o.length]=i);return o},r(e)};return function(e){if(e&&e.__esModule)return e;var a={};if(e!=null)for(var o=r(e),i=0;i<o.length;i++)o[i]!=="default"&&__createBinding(a,e,o[i]);return __setModuleDefault(a,e),a}})(),__importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importStar(require("react")),react_native_1=require("react-native"),InspectorContext_1=require("./InspectorContext"),ErrorBoundary_1=__importDefault(require("../ErrorBoundary")),FabLauncher_1=__importDefault(require("./FabLauncher")),InspectorHeader_1=__importDefault(require("./InspectorHeader")),TabBar_1=__importDefault(require("./TabBar")),NetworkTab_1=__importDefault(require("./NetworkTab")),NetworkDetail_1=__importDefault(require("./NetworkDetail")),LogDetail_1=__importDefault(require("./LogDetail")),ConsoleTab_1=__importDefault(require("./ConsoleTab")),AnalyticsTab_1=__importDefault(require("./AnalyticsTab")),AnalyticsDetail_1=__importDefault(require("../AnalyticsDetail")),ReduxTab_1=__importDefault(require("./ReduxTab")),ReduxDetail_1=__importDefault(require("./ReduxDetail")),BundleTab_1=__importDefault(require("./BundleTab")),PerformanceTab_1=__importDefault(require("./PerformanceTab")),CrashTab_1=__importDefault(require("./CrashTab")),CrashDetail_1=__importDefault(require("./CrashDetail")),DeviceInfoTab_1=__importDefault(require("./DeviceInfoTab")),StorageTab_1=__importDefault(require("./StorageTab")),DebuggingTab_1=__importDefault(require("./DebuggingTab")),MediaGalleryTab_1=require("./MediaGalleryTab"),SettingsPanel_1=__importDefault(require("./SettingsPanel")),AboutModal_1=__importDefault(require("./AboutModal")),NpmUpdateToast_1=__importDefault(require("./NpmUpdateToast")),NpmStarPrompt_1=__importDefault(require("./NpmStarPrompt")),Toast_1=__importDefault(require("../Toast")),styles_1=__importDefault(require("../../styles")),AppColors_1=require("../../styles/AppColors"),NavigationTracker_1=__importDefault(require("./NavigationTracker")),helpers_1=require("../../helpers"),MainScreen=()=>{const{visible:r,isMinimized:e,modalAnimationType:a,closeModal:o,modalHeightPercent:i,selected:d,selectedEvent:c,selectedLog:p,selectedReduxSlice:b,selectedReduxAction:_,selectedCrash:f,settingsPage:n,isAboutOpen:l,setIsAboutOpen:y,activeTab:t,isReady:h,enabled:w,useNativeFab:v,hasNavigationContext:m,setNavState:S}=(0,InspectorContext_1.useInspector)(),g=t==="apis"&&d!=null||t==="analytics"&&c!=null||t==="logs"&&p!=null||t==="redux"&&(b!=null||_!=null)||t==="crash"&&f!=null,s=(0,react_1.useRef)(new react_native_1.Animated.Value(0)).current;(0,react_1.useEffect)(()=>{n!==null&&(s.setValue(0),react_native_1.Animated.spring(s,{toValue:1,friction:8,tension:65,useNativeDriver:!1}).start())},[n!==null]);const u=(0,react_1.useRef)(new react_native_1.Animated.Value(0)).current;return(0,react_1.useEffect)(()=>{l&&(u.setValue(0),react_native_1.Animated.spring(u,{toValue:1,friction:8,tension:65,useNativeDriver:!1}).start())},[l]),<>
|
|
2
|
+
{(react_native_1.Platform.OS==="ios"||react_native_1.Platform.OS==="android")&&w&&!r&&<FabLauncher_1.default/>}
|
|
3
3
|
<react_native_1.Modal visible={r}animationType={a}transparent statusBarTranslucent={!0}onRequestClose={o}>
|
|
4
4
|
<ErrorBoundary_1.default onClose={o}>
|
|
5
5
|
<react_native_1.View style={styles_1.default.modalBackdrop}>
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
|
|
12
12
|
<react_native_1.View style={{flex:1}}>
|
|
13
13
|
|
|
14
|
-
<react_native_1.View style={{flex:1}}pointerEvents={
|
|
14
|
+
<react_native_1.View style={{flex:1}}pointerEvents={g||n!==null||l?"none":"auto"}>
|
|
15
15
|
<TabBar_1.default/>
|
|
16
|
-
{
|
|
16
|
+
{h?<react_native_1.View style={{flex:1}}>
|
|
17
17
|
{t==="apis"&&<NetworkTab_1.default/>}
|
|
18
18
|
{t==="logs"&&<ConsoleTab_1.default/>}
|
|
19
19
|
{t==="analytics"&&<AnalyticsTab_1.default/>}
|
|
@@ -29,33 +29,23 @@
|
|
|
29
29
|
</react_native_1.View>
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
{
|
|
33
|
-
{t==="apis"&&
|
|
34
|
-
{t==="analytics"&&
|
|
35
|
-
{t==="logs"&&
|
|
32
|
+
{g&&<react_native_1.View style={[react_native_1.StyleSheet.absoluteFill,{backgroundColor:AppColors_1.AppColors.contentBg,zIndex:10}]}>
|
|
33
|
+
{t==="apis"&&d!=null&&<NetworkDetail_1.default/>}
|
|
34
|
+
{t==="analytics"&&c!=null&&<AnalyticsDetail_1.default event={c}/>}
|
|
35
|
+
{t==="logs"&&p!=null&&<LogDetail_1.default/>}
|
|
36
36
|
{t==="redux"&&<ReduxDetail_1.default/>}
|
|
37
|
-
{t==="crash"&&
|
|
37
|
+
{t==="crash"&&f!=null&&<CrashDetail_1.default/>}
|
|
38
38
|
</react_native_1.View>}
|
|
39
39
|
|
|
40
40
|
|
|
41
|
-
{n!==null&&<react_native_1.Animated.View style={[react_native_1.StyleSheet.absoluteFill,{backgroundColor:AppColors_1.AppColors.grayBackground,opacity:
|
|
41
|
+
{n!==null&&<react_native_1.Animated.View style={[react_native_1.StyleSheet.absoluteFill,{backgroundColor:AppColors_1.AppColors.grayBackground,opacity:s,transform:[{translateY:s.interpolate({inputRange:[0,1],outputRange:[24,0]})}]}]}>
|
|
42
42
|
<SettingsPanel_1.default/>
|
|
43
43
|
</react_native_1.Animated.View>}
|
|
44
44
|
|
|
45
45
|
|
|
46
|
-
{l&&<react_native_1.Animated.View style={[react_native_1.StyleSheet.absoluteFill,{backgroundColor:AppColors_1.AppColors.primaryLight,opacity:
|
|
47
|
-
<
|
|
46
|
+
{l&&<react_native_1.Animated.View style={[react_native_1.StyleSheet.absoluteFill,{backgroundColor:AppColors_1.AppColors.primaryLight,opacity:u,transform:[{translateY:u.interpolate({inputRange:[0,1],outputRange:[24,0]})}]}]}>
|
|
47
|
+
<AboutModal_1.default onClose={()=>y(!1)}/>
|
|
48
48
|
</react_native_1.Animated.View>}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
{s&&<react_native_1.Animated.View style={[react_native_1.StyleSheet.absoluteFill,{backgroundColor:AppColors_1.AppColors.primaryLight,opacity:d,transform:[{translateY:d.interpolate({inputRange:[0,1],outputRange:[24,0]})}]}]}>
|
|
52
|
-
<AboutModal_1.default onClose={()=>w(!1)}/>
|
|
53
|
-
</react_native_1.Animated.View>}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
{!f&&n===null&&!l&&!s&&<react_native_1.TouchableOpacity activeOpacity={.8}onPress={()=>y(!0)}hitSlop={{top:10,bottom:10,left:10,right:10}}style={styles_1.default.supportFab}>
|
|
57
|
-
<NetworkIcons_1.HeadphonesIcon color={AppColors_1.AppColors.white}size={20}/>
|
|
58
|
-
</react_native_1.TouchableOpacity>}
|
|
59
49
|
</react_native_1.View>
|
|
60
50
|
|
|
61
51
|
|
|
@@ -69,7 +59,7 @@
|
|
|
69
59
|
</react_native_1.View>
|
|
70
60
|
</react_native_1.View>
|
|
71
61
|
</ErrorBoundary_1.default>
|
|
72
|
-
{
|
|
62
|
+
{m&&<NavigationTracker_1.default onStateChange={S}/>}
|
|
73
63
|
</react_native_1.Modal>
|
|
74
64
|
</>},MainScreenSkeleton=react_1.default.memo(function(){const e=(0,react_1.useRef)(new react_native_1.Animated.Value(.35)).current;return(0,react_1.useEffect)(()=>{const a=react_native_1.Animated.loop(react_native_1.Animated.sequence([react_native_1.Animated.timing(e,{toValue:.85,duration:750,useNativeDriver:!1}),react_native_1.Animated.timing(e,{toValue:.35,duration:750,useNativeDriver:!1})]));return a.start(),()=>a.stop()},[e]),<react_native_1.View style={skeletonStyles.container}>
|
|
75
65
|
|