react-native-inapp-inspector 2.5.12 → 2.5.13
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/android/.gradle/8.9/checksums/checksums.lock +0 -0
- package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.9/gc.properties +0 -0
- package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
- package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
- package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/9.2.0/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/.settings/org.eclipse.buildship.core.prefs +13 -0
- package/android/src/main/AndroidManifest.xml +11 -0
- package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +379 -19
- package/android/src/main/res/xml/inappinspector_file_paths.xml +7 -0
- package/dist/commonjs/components/Inspector/AnalyticsFilterModal.js +47 -49
- package/dist/commonjs/components/Inspector/BoxModelVisualizer.d.ts +8 -0
- package/dist/commonjs/components/Inspector/BoxModelVisualizer.js +76 -0
- package/dist/commonjs/components/Inspector/ConsoleExportModal.js +51 -51
- package/dist/commonjs/components/Inspector/CrashTab.js +17 -17
- package/dist/commonjs/components/Inspector/DebuggingTab.js +24 -24
- package/dist/commonjs/components/Inspector/DeviceInfoTab.js +2 -2
- package/dist/commonjs/components/Inspector/FabLauncher.js +2 -2
- package/dist/commonjs/components/Inspector/FloatingCaptureWidget.js +2 -2
- package/dist/commonjs/components/Inspector/InspectorHeader.js +10 -10
- package/dist/commonjs/components/Inspector/MediaGalleryTab.js +10 -10
- package/dist/commonjs/components/Inspector/MediaPreviewModal.d.ts +1 -0
- package/dist/commonjs/components/Inspector/MediaPreviewModal.js +222 -222
- package/dist/commonjs/components/Inspector/NetworkExportModal.d.ts +10 -0
- package/dist/commonjs/components/Inspector/NetworkExportModal.js +333 -0
- package/dist/commonjs/components/Inspector/NetworkTab.js +48 -41
- package/dist/commonjs/components/Inspector/NpmStarPrompt.js +11 -12
- package/dist/commonjs/components/Inspector/ReduxDetail.js +17 -19
- package/dist/commonjs/components/Inspector/ReduxTab.js +5 -5
- package/dist/commonjs/components/Inspector/SettingsPanel.js +3 -6
- package/dist/commonjs/components/Inspector/SocketCard.js +2 -2
- package/dist/commonjs/components/Inspector/SupportPage.js +5 -5
- package/dist/commonjs/components/Inspector/UiA11yAuditPanel.d.ts +7 -0
- package/dist/commonjs/components/Inspector/UiA11yAuditPanel.js +97 -0
- package/dist/commonjs/components/Inspector/UiInspectorDetail.d.ts +2 -0
- package/dist/commonjs/components/Inspector/UiInspectorDetail.js +485 -0
- package/dist/commonjs/components/Inspector/UiInspectorOverlay.d.ts +2 -0
- package/dist/commonjs/components/Inspector/UiInspectorOverlay.js +199 -0
- package/dist/commonjs/components/Inspector/UiInspectorTab.d.ts +2 -0
- package/dist/commonjs/components/Inspector/UiInspectorTab.js +117 -0
- package/dist/commonjs/components/Inspector/UiLiveStyleTweaker.d.ts +10 -0
- package/dist/commonjs/components/Inspector/UiLiveStyleTweaker.js +148 -0
- package/dist/commonjs/components/Inspector/index.d.ts +28 -0
- package/dist/commonjs/components/Inspector/index.js +1 -0
- package/dist/commonjs/components/LogCard.js +9 -7
- package/dist/commonjs/constants/index.js +1 -1
- package/dist/commonjs/constants/telemetryConfig.d.ts +3 -3
- package/dist/commonjs/constants/telemetryConfig.js +1 -1
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/customHooks/crashHandler.d.ts +1 -1
- package/dist/commonjs/customHooks/crashHandler.js +6 -6
- package/dist/commonjs/customHooks/uiInspectorManager.d.ts +22 -0
- package/dist/commonjs/customHooks/uiInspectorManager.js +1 -0
- package/dist/commonjs/helpers/index.js +1 -3
- package/dist/commonjs/helpers/searchQueryParser.d.ts +1 -0
- package/dist/commonjs/helpers/searchQueryParser.js +7 -5
- package/dist/commonjs/helpers/shareFormatter.d.ts +16 -0
- package/dist/commonjs/helpers/shareFormatter.js +16 -9
- package/dist/commonjs/helpers/uiInspectorEngine.d.ts +62 -0
- package/dist/commonjs/helpers/uiInspectorEngine.js +19 -0
- package/dist/commonjs/i18n/locales/ar.json +1 -1
- package/dist/commonjs/i18n/locales/bn.json +1 -1
- package/dist/commonjs/i18n/locales/de.json +1 -1
- package/dist/commonjs/i18n/locales/en.json +1 -1
- package/dist/commonjs/i18n/locales/es.json +1 -1
- package/dist/commonjs/i18n/locales/fr.json +1 -1
- package/dist/commonjs/i18n/locales/gu.json +1 -1
- package/dist/commonjs/i18n/locales/hi.json +1 -1
- package/dist/commonjs/i18n/locales/id.json +1 -1
- package/dist/commonjs/i18n/locales/it.json +1 -1
- package/dist/commonjs/i18n/locales/ja.json +1 -1
- package/dist/commonjs/i18n/locales/kn.json +1 -1
- package/dist/commonjs/i18n/locales/ko.json +1 -1
- package/dist/commonjs/i18n/locales/ml.json +1 -1
- package/dist/commonjs/i18n/locales/mr.json +1 -1
- package/dist/commonjs/i18n/locales/nl.json +1 -1
- package/dist/commonjs/i18n/locales/pa.json +1 -1
- package/dist/commonjs/i18n/locales/pl.json +1 -1
- package/dist/commonjs/i18n/locales/pt.json +1 -1
- package/dist/commonjs/i18n/locales/ru.json +1 -1
- package/dist/commonjs/i18n/locales/ta.json +1 -1
- package/dist/commonjs/i18n/locales/te.json +1 -1
- package/dist/commonjs/i18n/locales/tr.json +1 -1
- package/dist/commonjs/i18n/locales/vi.json +1 -1
- package/dist/commonjs/i18n/locales/zh.json +1 -1
- package/dist/commonjs/index.d.ts +3 -1
- package/dist/commonjs/index.js +3 -3
- package/dist/commonjs/native/NativeInspector.d.ts +2 -0
- package/dist/commonjs/native/NativeInspector.js +1 -1
- package/dist/commonjs/native/NativeNetworkInspector.d.ts +2 -0
- package/dist/commonjs/types/editor.d.ts +31 -0
- package/dist/esm/components/Inspector/AnalyticsFilterModal.js +73 -75
- package/dist/esm/components/Inspector/BoxModelVisualizer.d.ts +8 -0
- package/dist/esm/components/Inspector/BoxModelVisualizer.js +76 -0
- package/dist/esm/components/Inspector/ConsoleExportModal.js +67 -67
- package/dist/esm/components/Inspector/CrashTab.js +58 -58
- package/dist/esm/components/Inspector/DebuggingTab.js +89 -89
- package/dist/esm/components/Inspector/DeviceInfoTab.js +2 -2
- package/dist/esm/components/Inspector/FabLauncher.js +21 -21
- package/dist/esm/components/Inspector/FloatingCaptureWidget.js +23 -23
- package/dist/esm/components/Inspector/InspectorHeader.js +26 -26
- package/dist/esm/components/Inspector/MediaGalleryTab.js +151 -151
- package/dist/esm/components/Inspector/MediaPreviewModal.d.ts +1 -0
- package/dist/esm/components/Inspector/MediaPreviewModal.js +468 -468
- package/dist/esm/components/Inspector/NetworkExportModal.d.ts +10 -0
- package/dist/esm/components/Inspector/NetworkExportModal.js +333 -0
- package/dist/esm/components/Inspector/NetworkTab.js +118 -111
- package/dist/esm/components/Inspector/NpmStarPrompt.js +32 -33
- package/dist/esm/components/Inspector/ReduxDetail.js +54 -56
- package/dist/esm/components/Inspector/ReduxTab.js +9 -9
- package/dist/esm/components/Inspector/SettingsPanel.js +3 -6
- package/dist/esm/components/Inspector/SocketCard.js +13 -13
- package/dist/esm/components/Inspector/SupportPage.js +5 -5
- package/dist/esm/components/Inspector/UiA11yAuditPanel.d.ts +7 -0
- package/dist/esm/components/Inspector/UiA11yAuditPanel.js +97 -0
- package/dist/esm/components/Inspector/UiInspectorDetail.d.ts +2 -0
- package/dist/esm/components/Inspector/UiInspectorDetail.js +422 -0
- package/dist/esm/components/Inspector/UiInspectorOverlay.d.ts +2 -0
- package/dist/esm/components/Inspector/UiInspectorOverlay.js +138 -0
- package/dist/esm/components/Inspector/UiInspectorTab.d.ts +2 -0
- package/dist/esm/components/Inspector/UiInspectorTab.js +117 -0
- package/dist/esm/components/Inspector/UiLiveStyleTweaker.d.ts +10 -0
- package/dist/esm/components/Inspector/UiLiveStyleTweaker.js +148 -0
- package/dist/esm/components/Inspector/index.d.ts +28 -0
- package/dist/esm/components/Inspector/index.js +1 -0
- package/dist/esm/components/LogCard.js +57 -55
- package/dist/esm/constants/index.js +1 -1
- package/dist/esm/constants/telemetryConfig.d.ts +3 -3
- package/dist/esm/constants/telemetryConfig.js +1 -1
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/customHooks/crashHandler.d.ts +1 -1
- package/dist/esm/customHooks/crashHandler.js +6 -6
- package/dist/esm/customHooks/uiInspectorManager.d.ts +22 -0
- package/dist/esm/customHooks/uiInspectorManager.js +1 -0
- package/dist/esm/helpers/index.js +4 -6
- package/dist/esm/helpers/searchQueryParser.d.ts +1 -0
- package/dist/esm/helpers/searchQueryParser.js +7 -5
- package/dist/esm/helpers/shareFormatter.d.ts +16 -0
- package/dist/esm/helpers/shareFormatter.js +20 -13
- package/dist/esm/helpers/uiInspectorEngine.d.ts +48 -0
- package/dist/esm/helpers/uiInspectorEngine.js +19 -0
- package/dist/esm/i18n/locales/ar.json +1 -1
- package/dist/esm/i18n/locales/bn.json +1 -1
- package/dist/esm/i18n/locales/de.json +1 -1
- package/dist/esm/i18n/locales/en.json +1 -1
- package/dist/esm/i18n/locales/es.json +1 -1
- package/dist/esm/i18n/locales/fr.json +1 -1
- package/dist/esm/i18n/locales/gu.json +1 -1
- package/dist/esm/i18n/locales/hi.json +1 -1
- package/dist/esm/i18n/locales/id.json +1 -1
- package/dist/esm/i18n/locales/it.json +1 -1
- package/dist/esm/i18n/locales/ja.json +1 -1
- package/dist/esm/i18n/locales/kn.json +1 -1
- package/dist/esm/i18n/locales/ko.json +1 -1
- package/dist/esm/i18n/locales/ml.json +1 -1
- package/dist/esm/i18n/locales/mr.json +1 -1
- package/dist/esm/i18n/locales/nl.json +1 -1
- package/dist/esm/i18n/locales/pa.json +1 -1
- package/dist/esm/i18n/locales/pl.json +1 -1
- package/dist/esm/i18n/locales/pt.json +1 -1
- package/dist/esm/i18n/locales/ru.json +1 -1
- package/dist/esm/i18n/locales/ta.json +1 -1
- package/dist/esm/i18n/locales/te.json +1 -1
- package/dist/esm/i18n/locales/tr.json +1 -1
- package/dist/esm/i18n/locales/vi.json +1 -1
- package/dist/esm/i18n/locales/zh.json +1 -1
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +7 -7
- package/dist/esm/native/NativeInspector.d.ts +2 -0
- package/dist/esm/native/NativeInspector.js +1 -1
- package/dist/esm/native/NativeNetworkInspector.d.ts +2 -0
- package/dist/esm/types/editor.d.ts +31 -0
- package/ios/NetworkInspectorModule.mm +314 -16
- package/package.json +1 -1
- package/src/native/NativeInspector.ts +37 -0
- package/src/native/NativeNetworkInspector.ts +2 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { NetworkLog } from '../../types';
|
|
3
|
+
export interface NetworkExportModalProps {
|
|
4
|
+
visible: boolean;
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
filteredLogs: NetworkLog[];
|
|
7
|
+
allLogs: NetworkLog[];
|
|
8
|
+
}
|
|
9
|
+
export declare const NetworkExportModal: React.FC<NetworkExportModalProps>;
|
|
10
|
+
export default NetworkExportModal;
|
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(i,r,n,a){a===void 0&&(a=n);var t=Object.getOwnPropertyDescriptor(r,n);(!t||("get"in t?!r.__esModule:t.writable||t.configurable))&&(t={enumerable:!0,get:function(){return r[n]}}),Object.defineProperty(i,a,t)}):(function(i,r,n,a){a===void 0&&(a=n),i[a]=r[n]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(i,r){Object.defineProperty(i,"default",{enumerable:!0,value:r})}):function(i,r){i.default=r}),__importStar=this&&this.__importStar||(function(){var i=function(r){return i=Object.getOwnPropertyNames||function(n){var a=[];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(a[a.length]=t);return a},i(r)};return function(r){if(r&&r.__esModule)return r;var n={};if(r!=null)for(var a=i(r),t=0;t<a.length;t++)a[t]!=="default"&&__createBinding(n,r,a[t]);return __setModuleDefault(n,r),n}})(),__importDefault=this&&this.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.NetworkExportModal=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),TouchableScale_1=__importDefault(require("../TouchableScale")),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),NetworkIcons_1=require("../NetworkIcons"),NativeInspector_1=require("../../native/NativeInspector"),helpers_1=require("../../helpers"),shareFormatter_1=require("../../helpers/shareFormatter"),i18n_1=require("../../i18n"),NetworkExportModal=({visible:i,onClose:r,filteredLogs:n,allLogs:a})=>{const{t}=(0,i18n_1.useTranslation)(),[k,D]=(0,react_1.useState)("config"),[b,Y]=(0,react_1.useState)("filtered"),[S,Z]=(0,react_1.useState)("all"),[w,M]=(0,react_1.useState)("all"),[q,ee]=(0,react_1.useState)("50"),[B,te]=(0,react_1.useState)(""),[T,oe]=(0,react_1.useState)("txt"),[j,re]=(0,react_1.useState)(!1),[W,ie]=(0,react_1.useState)(!1),[$,ae]=(0,react_1.useState)(!1),[U,ne]=(0,react_1.useState)(!1),[G,le]=(0,react_1.useState)(!1),[K,se]=(0,react_1.useState)(!1),[Q,ce]=(0,react_1.useState)(!1),[ge,J]=(0,react_1.useState)(0),[fe,X]=(0,react_1.useState)(0),[_,pe]=(0,react_1.useState)(""),[A,de]=(0,react_1.useState)(""),[Ce,ue]=(0,react_1.useState)(0),V=(0,react_1.useRef)(new react_native_1.Animated.Value(0)).current,E=(0,react_1.useRef)(new react_native_1.Animated.Value(1)).current,F=(0,react_1.useMemo)(()=>{if(!B||B.trim().length===0)return{isValid:!0,error:null,regex:null};try{return{isValid:!0,error:null,regex:new RegExp(B.trim(),"i")}}catch(e){return{isValid:!1,error:e?.message||"Invalid pattern",regex:null}}},[B]),P=(0,react_1.useMemo)(()=>({includeRequestHeaders:j,includeRequestBody:W,includeResponseHeaders:$,includeResponseBody:U,includeCurlCommand:G,includeTimestamps:K,includeAppInfo:Q,ignorePattern:w==="custom"&&F.isValid?B.trim():void 0}),[j,W,$,U,G,K,Q,w,F.isValid,B]);(0,react_1.useEffect)(()=>{if(k==="progress"){const e=react_native_1.Animated.loop(react_native_1.Animated.sequence([react_native_1.Animated.timing(E,{toValue:1.05,duration:600,easing:react_native_1.Easing.inOut(react_native_1.Easing.ease),useNativeDriver:!0}),react_native_1.Animated.timing(E,{toValue:1,duration:600,easing:react_native_1.Easing.inOut(react_native_1.Easing.ease),useNativeDriver:!0})]));return e.start(),()=>e.stop()}},[k,E]),(0,react_1.useEffect)(()=>{i&&(D("config"),M("all"),Z("all"),oe("txt"),ee("50"),te(""),re(!1),ie(!1),ae(!1),ne(!1),le(!1),se(!1),ce(!1),J(0),X(0),pe(""),de(""),ue(0),V.setValue(0))},[i,V]);const I=(0,react_1.useMemo)(()=>b==="filtered"?n:a,[b,n,a]),R=(0,react_1.useMemo)(()=>{let e=0,o=0,C=0,v=0,m=0;return I.forEach(y=>{const x=typeof y.status=="number"?y.status:parseInt(String(y.status),10);y.status===0||y.status==null||!isNaN(x)&&x>=400?o++:!isNaN(x)&&x>=200&&x<400&&e++,(y.duration||0)>=500&&C++;const L=(y.method||"").toUpperCase();L==="POST"&&v++,L==="GET"&&m++}),{all:I.length,success:e,error:o,slow:C,post:v,get:m}},[I]),z=(0,react_1.useMemo)(()=>S==="all"?I:I.filter(e=>{const o=typeof e.status=="number"?e.status:parseInt(String(e.status),10),C=e.status===0||e.status==null||!isNaN(o)&&o>=400,v=!isNaN(o)&&o>=200&&o<400,m=(e.duration||0)>=500,y=(e.method||"").toUpperCase();return S==="success"?v:S==="error"?C:S==="slow"?m:S==="POST"?y==="POST":S==="GET"?y==="GET":!0}),[I,S]),{selectedLogs:h,ignoredCount:O}=(0,react_1.useMemo)(()=>{if(z.length===0)return{selectedLogs:[],ignoredCount:0};let o=z,C=0;if(w==="custom"&&F.regex){const m=F.regex,y=o.length;o=o.filter(x=>{const L=x.url||"",Te=x.method||"",Ae=x.client||"",_e=x.request?JSON.stringify(x.request):"",ve=x.response?JSON.stringify(x.response):"";return!m.test(L)&&!m.test(Te)&&!m.test(Ae)&&!m.test(_e)&&!m.test(ve)}),C=y-o.length}let v=o.length;if(w==="all")v=o.length;else if(w==="custom"){const m=parseInt(q,10);v=isNaN(m)||m<=0?o.length:Math.min(m,o.length)}return{selectedLogs:o.slice(-v),ignoredCount:C}},[z,w,q,F.regex]),N=(0,react_1.useMemo)(()=>(0,shareFormatter_1.estimateNetworkLogsExportSize)(h,T,P),[h,T,P]),H=e=>e<=0?"0 KB":e<1024?`${(e/1024).toFixed(2)} KB`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(2)} MB`,me=(0,react_1.useCallback)(()=>{if(h.length===0){(0,helpers_1.showToast)(t("network.noLogsToExport","No API requests available to export"));return}(0,NativeInspector_1.triggerNativeHaptic)("medium"),D("progress"),J(0),X(0),V.setValue(0);const e=h.length,o=Math.max(1,Math.floor(e/10));let C=0;const v=setInterval(()=>{C=Math.min(C+o,e);const m=C/e;J(Math.round(m*100)),X(C),react_native_1.Animated.timing(V,{toValue:m,duration:120,easing:react_native_1.Easing.linear,useNativeDriver:!1}).start(),C>=e&&(clearInterval(v),setTimeout(()=>{const y=(0,shareFormatter_1.formatNetworkLogsExport)(h,T,P),x=(0,shareFormatter_1.generateNetworkLogsFilename)(T);pe(y),de(x),ue(y.length),D("complete"),(0,NativeInspector_1.triggerNativeHaptic)("heavy")},180))},45)},[h,T,P,V,t]),ye=(0,react_1.useCallback)(async()=>{if(_){(0,NativeInspector_1.triggerNativeHaptic)("light");try{const e=await(0,NativeInspector_1.writeNativeExportFile)(A,_);if(e){const o=T==="json"?"application/json":"text/plain";if(await(0,NativeInspector_1.shareNativeFile)(e,o,A))return}await react_native_1.Share.share({title:A,message:_,url:e||void 0},{dialogTitle:`Share ${A}`,subject:A})}catch(e){e?.message!=="User did not share"&&(0,helpers_1.showToast)(e?.message||"Failed to open share sheet")}}},[_,A,T]),xe=(0,react_1.useCallback)(async()=>{if(_){(0,NativeInspector_1.triggerNativeHaptic)("medium");try{const e=await(0,NativeInspector_1.writeNativeExportFile)(A,_);if(e){const o=T==="json"?"application/json":"text/plain";if(await(0,NativeInspector_1.shareNativeFile)(e,o,`Save ${A}`)){(0,helpers_1.showToast)(t("network.savePromptOpened","Opened save to disk dialog"));return}}await react_native_1.Share.share({title:`Save ${A}`,message:_,url:e||void 0},{dialogTitle:`Save to Disk (${A})`,subject:A}),(0,helpers_1.showToast)(t("network.savePromptOpened","Opened save to disk dialog"))}catch(e){e?.message!=="User did not share"&&(0,helpers_1.showToast)(e?.message||"Save error")}}},[_,A,T,t]),he=(0,react_1.useCallback)(()=>{_&&((0,NativeInspector_1.triggerNativeHaptic)("light"),(0,helpers_1.copyToClipboard)(_,"API Network Logs"),(0,helpers_1.showToast)(t("network.copiedLogs","API requests copied to clipboard!")))},[_,t]),we=n.length!==a.length;return<react_native_1.Modal visible={i}transparent animationType="slide"onRequestClose={r}>
|
|
2
|
+
<react_native_1.View style={styles.overlay}>
|
|
3
|
+
<react_native_1.Pressable style={styles.backdrop}onPress={r}/>
|
|
4
|
+
|
|
5
|
+
<react_native_1.View style={styles.bottomSheetCard}>
|
|
6
|
+
|
|
7
|
+
<react_native_1.View style={styles.sheetHandleContainer}>
|
|
8
|
+
<react_native_1.View style={styles.sheetHandle}/>
|
|
9
|
+
</react_native_1.View>
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
<react_native_1.View style={styles.headerRow}>
|
|
13
|
+
<react_native_1.View style={styles.headerLeft}>
|
|
14
|
+
<react_native_1.View style={styles.iconBadge}>
|
|
15
|
+
<NetworkIcons_1.ExportIcon size={18}color={AppColors_1.AppColors.purple}/>
|
|
16
|
+
</react_native_1.View>
|
|
17
|
+
<react_native_1.View style={styles.headerTextGroup}>
|
|
18
|
+
<react_native_1.Text style={styles.title}>
|
|
19
|
+
{t("network.exportTitle","Export API Logs")}
|
|
20
|
+
</react_native_1.Text>
|
|
21
|
+
<react_native_1.Text style={styles.subtitle}>
|
|
22
|
+
{k==="config"?`${h.length} requests ready for export`:k==="progress"?"Preparing exported file...":"Export complete"}
|
|
23
|
+
</react_native_1.Text>
|
|
24
|
+
</react_native_1.View>
|
|
25
|
+
</react_native_1.View>
|
|
26
|
+
<TouchableScale_1.default onPress={r}hitSlop={10}style={styles.closeBtn}>
|
|
27
|
+
<NetworkIcons_1.CloseWhite size={12}color={AppColors_1.AppColors.grayTextWeak}/>
|
|
28
|
+
</TouchableScale_1.default>
|
|
29
|
+
</react_native_1.View>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
{k==="config"&&<>
|
|
33
|
+
<react_native_1.ScrollView showsVerticalScrollIndicator={!1}contentContainerStyle={styles.configContainer}>
|
|
34
|
+
|
|
35
|
+
{we&&<react_native_1.View style={styles.section}>
|
|
36
|
+
<react_native_1.Text style={styles.sectionLabel}>
|
|
37
|
+
{t("network.exportScope","REQUEST SOURCE SCOPE")}
|
|
38
|
+
</react_native_1.Text>
|
|
39
|
+
<react_native_1.View style={styles.segmentedRow}>
|
|
40
|
+
<TouchableScale_1.default onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),Y("filtered")}}style={[styles.segmentBtn,b==="filtered"&&styles.segmentBtnActive]}>
|
|
41
|
+
<NetworkIcons_1.FilterIcon size={13}color={b==="filtered"?AppColors_1.AppColors.purple:AppColors_1.AppColors.grayTextWeak}/>
|
|
42
|
+
<react_native_1.Text style={[styles.segmentBtnText,b==="filtered"&&styles.segmentBtnTextActive]}>
|
|
43
|
+
{t("network.filteredView","Active Filter")} (
|
|
44
|
+
{n.length})
|
|
45
|
+
</react_native_1.Text>
|
|
46
|
+
</TouchableScale_1.default>
|
|
47
|
+
|
|
48
|
+
<TouchableScale_1.default onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),Y("all")}}style={[styles.segmentBtn,b==="all"&&styles.segmentBtnActive]}>
|
|
49
|
+
<NetworkIcons_1.LayersIcon size={13}color={b==="all"?AppColors_1.AppColors.purple:AppColors_1.AppColors.grayTextWeak}/>
|
|
50
|
+
<react_native_1.Text style={[styles.segmentBtnText,b==="all"&&styles.segmentBtnTextActive]}>
|
|
51
|
+
{t("network.allLogsScope","All Requests")} ({a.length})
|
|
52
|
+
</react_native_1.Text>
|
|
53
|
+
</TouchableScale_1.default>
|
|
54
|
+
</react_native_1.View>
|
|
55
|
+
</react_native_1.View>}
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
<react_native_1.View style={styles.section}>
|
|
59
|
+
<react_native_1.Text style={styles.sectionLabel}>
|
|
60
|
+
{t("network.logCategoryFilter","REQUEST CATEGORY FILTER")}
|
|
61
|
+
</react_native_1.Text>
|
|
62
|
+
<react_native_1.View style={styles.levelRow}>
|
|
63
|
+
{[{id:"all",label:"All",count:R.all,color:AppColors_1.AppColors.purple,Icon:NetworkIcons_1.LayersIcon},{id:"success",label:"2xx OK",count:R.success,color:AppColors_1.AppColors.greenColor,Icon:NetworkIcons_1.CircleCheckIcon},{id:"error",label:"Errors",count:R.error,color:AppColors_1.AppColors.errorColor,Icon:NetworkIcons_1.CircleXIcon},{id:"slow",label:"Slow >500ms",count:R.slow,color:AppColors_1.AppColors.warningIconGold,Icon:NetworkIcons_1.ClockIcon},{id:"POST",label:"POST",count:R.post,color:AppColors_1.AppColors.blue500||"#3B82F6",Icon:NetworkIcons_1.RequestIcon},{id:"GET",label:"GET",count:R.get,color:AppColors_1.AppColors.emerald500||"#10B981",Icon:NetworkIcons_1.ResponseIcon}].map(e=>{const o=S===e.id,C=e.Icon;return<TouchableScale_1.default key={e.id}onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),Z(e.id)}}style={[styles.levelChip,o&&{backgroundColor:`${e.color}15`,borderColor:e.color}]}>
|
|
64
|
+
<C size={11}color={o?e.color:AppColors_1.AppColors.grayTextWeak}/>
|
|
65
|
+
<react_native_1.Text style={[styles.levelChipText,o&&{color:e.color,fontFamily:AppFonts_1.AppFonts.interBold}]}>
|
|
66
|
+
{e.label}
|
|
67
|
+
</react_native_1.Text>
|
|
68
|
+
<react_native_1.View style={[styles.levelCountBadge,o&&{backgroundColor:`${e.color}25`}]}>
|
|
69
|
+
<react_native_1.Text style={[styles.levelCountText,o&&{color:e.color}]}>
|
|
70
|
+
{e.count}
|
|
71
|
+
</react_native_1.Text>
|
|
72
|
+
</react_native_1.View>
|
|
73
|
+
</TouchableScale_1.default>})}
|
|
74
|
+
</react_native_1.View>
|
|
75
|
+
</react_native_1.View>
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
<react_native_1.View style={styles.section}>
|
|
79
|
+
<react_native_1.View style={styles.sectionHeaderRow}>
|
|
80
|
+
<react_native_1.Text style={styles.sectionLabel}>
|
|
81
|
+
{t("network.logsCountRange","REQUESTS COUNT RANGE")}
|
|
82
|
+
</react_native_1.Text>
|
|
83
|
+
<react_native_1.View style={styles.countPill}>
|
|
84
|
+
<react_native_1.Text style={styles.countPillText}>
|
|
85
|
+
Matched: {z.length}
|
|
86
|
+
</react_native_1.Text>
|
|
87
|
+
</react_native_1.View>
|
|
88
|
+
</react_native_1.View>
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
<react_native_1.View style={styles.segmentedRow}>
|
|
92
|
+
<TouchableScale_1.default onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),M("all")}}style={[styles.segmentBtn,w==="all"&&styles.segmentBtnActive]}>
|
|
93
|
+
<NetworkIcons_1.ZapIcon size={13}color={w==="all"?AppColors_1.AppColors.purple:AppColors_1.AppColors.grayTextStrong}/>
|
|
94
|
+
<react_native_1.Text style={[styles.segmentBtnText,w==="all"&&styles.segmentBtnTextActive]}>
|
|
95
|
+
All ({z.length})
|
|
96
|
+
</react_native_1.Text>
|
|
97
|
+
</TouchableScale_1.default>
|
|
98
|
+
|
|
99
|
+
<TouchableScale_1.default onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),M("custom")}}style={[styles.segmentBtn,w==="custom"&&styles.segmentBtnActive]}>
|
|
100
|
+
<NetworkIcons_1.PenIcon size={12}color={w==="custom"?AppColors_1.AppColors.purple:AppColors_1.AppColors.grayTextStrong}/>
|
|
101
|
+
<react_native_1.Text style={[styles.segmentBtnText,w==="custom"&&styles.segmentBtnTextActive]}>
|
|
102
|
+
Custom
|
|
103
|
+
</react_native_1.Text>
|
|
104
|
+
</TouchableScale_1.default>
|
|
105
|
+
</react_native_1.View>
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
{w==="custom"&&<react_native_1.View style={styles.customOptionsContainer}>
|
|
109
|
+
|
|
110
|
+
<react_native_1.View style={styles.customFieldRow}>
|
|
111
|
+
<react_native_1.Text style={styles.customFieldLabel}>
|
|
112
|
+
{t("network.enterCount","Enter number of requests:")}
|
|
113
|
+
</react_native_1.Text>
|
|
114
|
+
<react_native_1.TextInput keyboardType="number-pad"value={q}onChangeText={ee}style={styles.customCountInput}placeholder="e.g. 50"placeholderTextColor={AppColors_1.AppColors.slate400}/>
|
|
115
|
+
</react_native_1.View>
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
<react_native_1.View style={styles.regexFieldBlock}>
|
|
119
|
+
<react_native_1.View style={styles.regexLabelRow}>
|
|
120
|
+
<react_native_1.Text style={styles.customFieldLabel}>
|
|
121
|
+
{t("network.ignorePatterns","Ignore Patterns (Regex):")}
|
|
122
|
+
</react_native_1.Text>
|
|
123
|
+
{F.isValid&&O>0&&<react_native_1.View style={styles.regexExclusionBadge}>
|
|
124
|
+
<react_native_1.Text style={styles.regexExclusionBadgeText}>
|
|
125
|
+
-{O} excluded
|
|
126
|
+
</react_native_1.Text>
|
|
127
|
+
</react_native_1.View>}
|
|
128
|
+
</react_native_1.View>
|
|
129
|
+
|
|
130
|
+
<react_native_1.TextInput autoCapitalize="none"autoCorrect={!1}value={B}onChangeText={te}style={[styles.regexInput,!F.isValid&&styles.regexInputError]}placeholder="e.g. ^https://analytics|ping|token=.*"placeholderTextColor={AppColors_1.AppColors.slate400}/>
|
|
131
|
+
|
|
132
|
+
{F.isValid?<react_native_1.Text style={styles.regexHelpText}>
|
|
133
|
+
{t("network.ignorePatternsDesc","Requests matching this regex in URL, headers, or body will be excluded.")}
|
|
134
|
+
</react_native_1.Text>:<react_native_1.Text style={styles.regexErrorText}>
|
|
135
|
+
⚠️{" "}
|
|
136
|
+
{t("network.invalidRegex","Invalid regular expression syntax")}
|
|
137
|
+
</react_native_1.Text>}
|
|
138
|
+
</react_native_1.View>
|
|
139
|
+
</react_native_1.View>}
|
|
140
|
+
</react_native_1.View>
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
<react_native_1.View style={styles.section}>
|
|
144
|
+
<react_native_1.Text style={styles.sectionLabel}>
|
|
145
|
+
{t("network.exportFormat","EXPORT FORMAT")}
|
|
146
|
+
</react_native_1.Text>
|
|
147
|
+
<react_native_1.View style={styles.formatRowInline}>
|
|
148
|
+
{[{id:"txt",label:"Plain Text (.txt)",desc:"Universal text with structured banners"},{id:"log",label:"Log File (.log)",desc:"Standard log format with frame blocks"}].map(e=>{const o=T===e.id;return<TouchableScale_1.default key={e.id}onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),oe(e.id)}}style={[styles.formatCardInline,o&&styles.formatCardInlineActive]}>
|
|
149
|
+
<react_native_1.View style={styles.formatCardInlineHeader}>
|
|
150
|
+
<react_native_1.View style={[styles.radioCircle,o&&styles.radioCircleActive]}>
|
|
151
|
+
{o&&<react_native_1.View style={styles.radioDot}/>}
|
|
152
|
+
</react_native_1.View>
|
|
153
|
+
<react_native_1.Text style={[styles.formatCardTitle,o&&styles.formatCardTitleActive]}>
|
|
154
|
+
{e.label}
|
|
155
|
+
</react_native_1.Text>
|
|
156
|
+
</react_native_1.View>
|
|
157
|
+
<react_native_1.Text style={styles.formatCardDesc}>{e.desc}</react_native_1.Text>
|
|
158
|
+
</TouchableScale_1.default>})}
|
|
159
|
+
</react_native_1.View>
|
|
160
|
+
</react_native_1.View>
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
<react_native_1.View style={styles.section}>
|
|
164
|
+
<react_native_1.Text style={styles.sectionLabel}>
|
|
165
|
+
{t("network.contentOptions","CONTENT OPTIONS")}
|
|
166
|
+
</react_native_1.Text>
|
|
167
|
+
<react_native_1.View style={styles.optionsGrid}>
|
|
168
|
+
{[{key:"reqHeaders",label:"Request Headers",value:j,toggle:()=>re(e=>!e)},{key:"reqBody",label:"Request Body / Payload",value:W,toggle:()=>ie(e=>!e)},{key:"resHeaders",label:"Response Headers",value:$,toggle:()=>ae(e=>!e)},{key:"resBody",label:"Response Data / Body",value:U,toggle:()=>ne(e=>!e)},{key:"curl",label:"cURL Command",value:G,toggle:()=>le(e=>!e)},{key:"timestamps",label:"Exact Timestamps & Duration",value:K,toggle:()=>se(e=>!e)},{key:"appinfo",label:"System Header Banner",value:Q,toggle:()=>ce(e=>!e)}].map(e=><TouchableScale_1.default key={e.key}onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),e.toggle()}}style={[styles.optionRow,e.value&&styles.optionRowActive]}>
|
|
169
|
+
<react_native_1.View style={[styles.checkbox,e.value&&styles.checkboxActive]}>
|
|
170
|
+
{e.value&&<NetworkIcons_1.CheckIcon size={10}color={AppColors_1.AppColors.white}/>}
|
|
171
|
+
</react_native_1.View>
|
|
172
|
+
<react_native_1.Text style={[styles.optionLabel,e.value&&styles.optionLabelActive]}>
|
|
173
|
+
{e.label}
|
|
174
|
+
</react_native_1.Text>
|
|
175
|
+
</TouchableScale_1.default>)}
|
|
176
|
+
</react_native_1.View>
|
|
177
|
+
</react_native_1.View>
|
|
178
|
+
</react_native_1.ScrollView>
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
<react_native_1.View style={styles.staticFooter}>
|
|
182
|
+
<react_native_1.View style={styles.footerMinimalSummary}>
|
|
183
|
+
<react_native_1.View style={styles.footerSummaryLeft}>
|
|
184
|
+
<react_native_1.View style={styles.footerSummaryDot}/>
|
|
185
|
+
<react_native_1.Text style={styles.footerSummaryCountText}>
|
|
186
|
+
{h.length} requests
|
|
187
|
+
</react_native_1.Text>
|
|
188
|
+
<react_native_1.Text style={styles.footerSummaryDivider}>•</react_native_1.Text>
|
|
189
|
+
<react_native_1.Text style={styles.footerSummarySizeText}>
|
|
190
|
+
~{H(N)}
|
|
191
|
+
</react_native_1.Text>
|
|
192
|
+
<react_native_1.Text style={styles.footerSummaryDivider}>•</react_native_1.Text>
|
|
193
|
+
<react_native_1.Text style={styles.footerSummaryFormatText}>
|
|
194
|
+
.{T.toUpperCase()}
|
|
195
|
+
</react_native_1.Text>
|
|
196
|
+
</react_native_1.View>
|
|
197
|
+
|
|
198
|
+
{O>0&&<react_native_1.View style={styles.footerIgnoredPill}>
|
|
199
|
+
<react_native_1.Text style={styles.footerIgnoredPillText}>
|
|
200
|
+
-{O} ignored
|
|
201
|
+
</react_native_1.Text>
|
|
202
|
+
</react_native_1.View>}
|
|
203
|
+
</react_native_1.View>
|
|
204
|
+
|
|
205
|
+
<TouchableScale_1.default onPress={me}disabled={h.length===0}style={[styles.exportActionBtn,h.length===0&&styles.exportActionBtnDisabled]}>
|
|
206
|
+
<NetworkIcons_1.ExportIcon size={17}color={AppColors_1.AppColors.white}/>
|
|
207
|
+
<react_native_1.Text style={styles.exportActionBtnText}>
|
|
208
|
+
{t("network.exportLogsAction",{count:h.length,size:H(N),defaultValue:`Export ${h.length} Requests (${H(N)})`})}
|
|
209
|
+
</react_native_1.Text>
|
|
210
|
+
</TouchableScale_1.default>
|
|
211
|
+
</react_native_1.View>
|
|
212
|
+
</>}
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
{k==="progress"&&<react_native_1.View style={styles.progressContainer}>
|
|
216
|
+
<react_native_1.Animated.View style={[styles.progressIconBadge,{transform:[{scale:E}]}]}>
|
|
217
|
+
<NetworkIcons_1.ExportIcon size={30}color={AppColors_1.AppColors.purple}/>
|
|
218
|
+
</react_native_1.Animated.View>
|
|
219
|
+
|
|
220
|
+
<react_native_1.Text style={styles.progressHeading}>
|
|
221
|
+
{t("network.exportingLogs","Exporting API Requests...")}
|
|
222
|
+
</react_native_1.Text>
|
|
223
|
+
<react_native_1.Text style={styles.progressSub}>
|
|
224
|
+
{t("network.processingItem","Processing")} {fe} /{" "}
|
|
225
|
+
{h.length} {t("network.records","records")} (
|
|
226
|
+
{ge}%)
|
|
227
|
+
</react_native_1.Text>
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
<react_native_1.View style={styles.progressTrack}>
|
|
231
|
+
<react_native_1.Animated.View style={[styles.progressBar,{width:V.interpolate({inputRange:[0,1],outputRange:["0%","100%"]})}]}/>
|
|
232
|
+
</react_native_1.View>
|
|
233
|
+
|
|
234
|
+
<react_native_1.Text style={styles.progressFootnote}>
|
|
235
|
+
Formatting .{T.toUpperCase()} payload with structured details •{" "}
|
|
236
|
+
{H(N)}
|
|
237
|
+
</react_native_1.Text>
|
|
238
|
+
</react_native_1.View>}
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
{k==="complete"&&<react_native_1.View style={styles.completeContainer}>
|
|
242
|
+
<react_native_1.View style={styles.completeSuccessBadge}>
|
|
243
|
+
<NetworkIcons_1.CircleCheckIcon size={34}color={AppColors_1.AppColors.emerald500}/>
|
|
244
|
+
</react_native_1.View>
|
|
245
|
+
|
|
246
|
+
<react_native_1.Text style={styles.completeTitle}>
|
|
247
|
+
{t("network.exportSuccessTitle","API Export Ready!")}
|
|
248
|
+
</react_native_1.Text>
|
|
249
|
+
<react_native_1.Text style={styles.completeSub}>
|
|
250
|
+
{t("network.exportSuccessDesc","Generated full formatted API request bundle ready to share or save.")}
|
|
251
|
+
</react_native_1.Text>
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
<react_native_1.View style={styles.fileDetailsCard}>
|
|
255
|
+
<react_native_1.View style={styles.fileDetailsRow}>
|
|
256
|
+
<react_native_1.Text style={styles.fileDetailLabel}>
|
|
257
|
+
📁 {t("network.exportFileLabel","File:")}
|
|
258
|
+
</react_native_1.Text>
|
|
259
|
+
<react_native_1.Text style={styles.fileDetailValue}numberOfLines={1}>
|
|
260
|
+
{A}
|
|
261
|
+
</react_native_1.Text>
|
|
262
|
+
</react_native_1.View>
|
|
263
|
+
<react_native_1.View style={styles.fileDetailsRow}>
|
|
264
|
+
<react_native_1.Text style={styles.fileDetailLabel}>
|
|
265
|
+
📊 {t("network.exportLogCountLabel","Request Count:")}
|
|
266
|
+
</react_native_1.Text>
|
|
267
|
+
<react_native_1.Text style={styles.fileDetailValue}>
|
|
268
|
+
{h.length} requests
|
|
269
|
+
</react_native_1.Text>
|
|
270
|
+
</react_native_1.View>
|
|
271
|
+
<react_native_1.View style={styles.fileDetailsRow}>
|
|
272
|
+
<react_native_1.Text style={styles.fileDetailLabel}>
|
|
273
|
+
💾 {t("network.exportFinalSizeLabel","Final Size:")}
|
|
274
|
+
</react_native_1.Text>
|
|
275
|
+
<react_native_1.Text style={[styles.fileDetailValue,{color:AppColors_1.AppColors.emerald500,fontFamily:AppFonts_1.AppFonts.interBold}]}>
|
|
276
|
+
{H(Ce)}
|
|
277
|
+
</react_native_1.Text>
|
|
278
|
+
</react_native_1.View>
|
|
279
|
+
<react_native_1.View style={styles.fileDetailsRow}>
|
|
280
|
+
<react_native_1.Text style={styles.fileDetailLabel}>
|
|
281
|
+
⚙️ {t("network.exportFormatLabel","Format:")}
|
|
282
|
+
</react_native_1.Text>
|
|
283
|
+
<react_native_1.Text style={styles.fileDetailValue}>
|
|
284
|
+
.{T.toUpperCase()}
|
|
285
|
+
</react_native_1.Text>
|
|
286
|
+
</react_native_1.View>
|
|
287
|
+
</react_native_1.View>
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
<react_native_1.View style={styles.actionButtonGroup}>
|
|
291
|
+
|
|
292
|
+
<TouchableScale_1.default onPress={ye}style={[styles.primaryActionBtn,styles.shareBtn]}>
|
|
293
|
+
<NetworkIcons_1.ShareIcon size={15}color={AppColors_1.AppColors.white}/>
|
|
294
|
+
<react_native_1.Text style={styles.primaryActionBtnText}>
|
|
295
|
+
{t("network.shareReport","Share Requests")}
|
|
296
|
+
</react_native_1.Text>
|
|
297
|
+
</TouchableScale_1.default>
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
<TouchableScale_1.default onPress={xe}style={[styles.primaryActionBtn,styles.saveDiskBtn]}>
|
|
301
|
+
<NetworkIcons_1.SaveIcon size={15}color={AppColors_1.AppColors.white}/>
|
|
302
|
+
<react_native_1.Text style={styles.primaryActionBtnText}>
|
|
303
|
+
{t("network.saveToDisk","Save to Disk")}
|
|
304
|
+
</react_native_1.Text>
|
|
305
|
+
</TouchableScale_1.default>
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
<TouchableScale_1.default onPress={he}style={styles.secondaryActionBtn}>
|
|
309
|
+
<NetworkIcons_1.CopyIcon size={14}color={AppColors_1.AppColors.purple}/>
|
|
310
|
+
<react_native_1.Text style={styles.secondaryActionBtnText}>
|
|
311
|
+
{t("network.copyToClipboard","Copy Content")}
|
|
312
|
+
</react_native_1.Text>
|
|
313
|
+
</TouchableScale_1.default>
|
|
314
|
+
</react_native_1.View>
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
<react_native_1.View style={styles.bottomFooterRow}>
|
|
318
|
+
<TouchableScale_1.default onPress={()=>D("config")}style={styles.textBtn}>
|
|
319
|
+
<react_native_1.Text style={styles.textBtnText}>
|
|
320
|
+
{t("network.exportAnother","\u2190 Export Another")}
|
|
321
|
+
</react_native_1.Text>
|
|
322
|
+
</TouchableScale_1.default>
|
|
323
|
+
|
|
324
|
+
<TouchableScale_1.default onPress={r}style={styles.doneBtn}>
|
|
325
|
+
<react_native_1.Text style={styles.doneBtnText}>
|
|
326
|
+
{t("common.done","Done")}
|
|
327
|
+
</react_native_1.Text>
|
|
328
|
+
</TouchableScale_1.default>
|
|
329
|
+
</react_native_1.View>
|
|
330
|
+
</react_native_1.View>}
|
|
331
|
+
</react_native_1.View>
|
|
332
|
+
</react_native_1.View>
|
|
333
|
+
</react_native_1.Modal>};exports.NetworkExportModal=NetworkExportModal;const styles=react_native_1.StyleSheet.create({overlay:{flex:1,backgroundColor:"rgba(0,0,0,0.55)",justifyContent:"flex-end"},backdrop:{...react_native_1.StyleSheet.absoluteFillObject},bottomSheetCard:{width:"100%",maxHeight:"86%",backgroundColor:AppColors_1.AppColors.white,borderTopLeftRadius:24,borderTopRightRadius:24,overflow:"hidden",shadowColor:"#000",shadowOffset:{width:0,height:-6},shadowOpacity:.18,shadowRadius:16,elevation:24},sheetHandleContainer:{width:"100%",alignItems:"center",paddingTop:8,paddingBottom:4,backgroundColor:"#FAF9FE"},sheetHandle:{width:38,height:4,borderRadius:2,backgroundColor:`${AppColors_1.AppColors.grayTextWeak}40`},headerRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:18,paddingVertical:12,borderBottomWidth:1,borderBottomColor:AppColors_1.AppColors.dividerColor,backgroundColor:"#FAF9FE",shadowColor:"#000",shadowOffset:{width:0,height:2},shadowOpacity:.04,shadowRadius:4,elevation:3},headerLeft:{flexDirection:"row",alignItems:"center",gap:12,flex:1},headerTextGroup:{gap:2},iconBadge:{width:36,height:36,borderRadius:10,backgroundColor:`${AppColors_1.AppColors.purple}14`,borderWidth:1,borderColor:`${AppColors_1.AppColors.purple}28`,justifyContent:"center",alignItems:"center"},title:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:15.5,lineHeight:20,color:AppColors_1.AppColors.primaryBlack,letterSpacing:-.2},subtitle:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:11.5,lineHeight:15,color:AppColors_1.AppColors.grayTextWeak},closeBtn:{width:28,height:28,borderRadius:14,backgroundColor:AppColors_1.AppColors.dividerColor,justifyContent:"center",alignItems:"center"},configContainer:{padding:16,gap:14},section:{gap:7},sectionHeaderRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},sectionLabel:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10.5,lineHeight:14,color:AppColors_1.AppColors.grayTextWeak,letterSpacing:.6},levelRow:{flexDirection:"row",flexWrap:"wrap",gap:6},levelChip:{flexDirection:"row",alignItems:"center",paddingHorizontal:9,paddingVertical:5.5,borderRadius:8,backgroundColor:AppColors_1.AppColors.grayBackground,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor,gap:5},levelChipText:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:11,lineHeight:15,color:AppColors_1.AppColors.primaryBlack},levelCountBadge:{backgroundColor:"rgba(0,0,0,0.06)",paddingHorizontal:4.5,paddingVertical:1,borderRadius:5},levelCountText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:AppColors_1.AppColors.grayTextStrong},countPill:{backgroundColor:`${AppColors_1.AppColors.purple}12`,paddingHorizontal:8,paddingVertical:2,borderRadius:6},countPillText:{fontFamily:AppFonts_1.AppFonts.interSemiBold,fontSize:10.5,color:AppColors_1.AppColors.purple},segmentedRow:{flexDirection:"row",gap:7},segmentBtn:{flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:6,paddingVertical:8.5,borderRadius:9,backgroundColor:AppColors_1.AppColors.grayBackground,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor},segmentBtnActive:{backgroundColor:`${AppColors_1.AppColors.purple}14`,borderColor:AppColors_1.AppColors.purple},segmentBtnText:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:11.5,lineHeight:15,color:AppColors_1.AppColors.grayTextStrong},segmentBtnTextActive:{color:AppColors_1.AppColors.purple,fontFamily:AppFonts_1.AppFonts.interBold},customOptionsContainer:{marginTop:8,padding:12,backgroundColor:"#F8FAFC",borderRadius:12,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor,gap:12},customFieldRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:10},customFieldLabel:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:11.5,lineHeight:15,color:AppColors_1.AppColors.primaryBlack,flex:1},customCountInput:{width:75,height:32,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor,borderRadius:7,backgroundColor:AppColors_1.AppColors.white,paddingHorizontal:8,paddingVertical:4,fontFamily:AppFonts_1.AppFonts.interBold,fontSize:12.5,color:AppColors_1.AppColors.primaryBlack,textAlign:"center"},regexFieldBlock:{gap:5},regexLabelRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},regexExclusionBadge:{backgroundColor:`${AppColors_1.AppColors.errorColor}15`,paddingHorizontal:6,paddingVertical:1,borderRadius:4},regexExclusionBadgeText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:AppColors_1.AppColors.errorColor},regexInput:{height:34,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor,borderRadius:7,backgroundColor:AppColors_1.AppColors.white,paddingHorizontal:10,fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:11.5,color:AppColors_1.AppColors.primaryBlack},regexInputError:{borderColor:AppColors_1.AppColors.errorColor,backgroundColor:"#FFF5F5"},regexErrorText:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:10,color:AppColors_1.AppColors.errorColor,marginTop:2},regexHelpText:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:10,color:AppColors_1.AppColors.grayTextWeak,marginTop:2},formatRowInline:{flexDirection:"row",gap:8},formatCardInline:{flex:1,padding:10,borderRadius:10,backgroundColor:AppColors_1.AppColors.grayBackground,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor,gap:4},formatCardInlineActive:{backgroundColor:`${AppColors_1.AppColors.purple}0C`,borderColor:AppColors_1.AppColors.purple},formatCardInlineHeader:{flexDirection:"row",alignItems:"center",gap:6},radioCircle:{width:14,height:14,borderRadius:7,borderWidth:1.5,borderColor:AppColors_1.AppColors.grayTextWeak,justifyContent:"center",alignItems:"center"},radioCircleActive:{borderColor:AppColors_1.AppColors.purple},radioDot:{width:7,height:7,borderRadius:3.5,backgroundColor:AppColors_1.AppColors.purple},formatCardTitle:{fontFamily:AppFonts_1.AppFonts.interSemiBold,fontSize:11.5,lineHeight:15,color:AppColors_1.AppColors.grayTextStrong},formatCardTitleActive:{fontFamily:AppFonts_1.AppFonts.interBold,color:AppColors_1.AppColors.purple},formatCardDesc:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:10,lineHeight:13,color:AppColors_1.AppColors.grayTextWeak,paddingLeft:20},optionsGrid:{gap:6},optionRow:{flexDirection:"row",alignItems:"center",paddingVertical:7,paddingHorizontal:10,borderRadius:8,backgroundColor:AppColors_1.AppColors.grayBackground,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor,gap:8},optionRowActive:{backgroundColor:`${AppColors_1.AppColors.purple}0A`,borderColor:`${AppColors_1.AppColors.purple}30`},checkbox:{width:16,height:16,borderRadius:4,borderWidth:1.5,borderColor:AppColors_1.AppColors.grayTextWeak,justifyContent:"center",alignItems:"center",backgroundColor:AppColors_1.AppColors.white},checkboxActive:{backgroundColor:AppColors_1.AppColors.purple,borderColor:AppColors_1.AppColors.purple},optionLabel:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:11.5,lineHeight:15,color:AppColors_1.AppColors.grayTextStrong},optionLabelActive:{color:AppColors_1.AppColors.primaryBlack,fontFamily:AppFonts_1.AppFonts.interSemiBold},staticFooter:{paddingHorizontal:16,paddingTop:10,paddingBottom:16,borderTopWidth:1,borderTopColor:AppColors_1.AppColors.dividerColor,backgroundColor:"#FAF9FE",gap:10},footerMinimalSummary:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:2},footerSummaryLeft:{flexDirection:"row",alignItems:"center",gap:6},footerSummaryDot:{width:6,height:6,borderRadius:3,backgroundColor:AppColors_1.AppColors.emerald500||"#10B981"},footerSummaryCountText:{fontFamily:AppFonts_1.AppFonts.interSemiBold,fontSize:11.5,lineHeight:15,color:AppColors_1.AppColors.grayTextStrong},footerSummaryDivider:{fontSize:10,color:AppColors_1.AppColors.grayTextWeak},footerSummarySizeText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:11.5,lineHeight:15,color:AppColors_1.AppColors.purple},footerSummaryFormatText:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:11,lineHeight:14,color:AppColors_1.AppColors.grayTextWeak},footerIgnoredPill:{backgroundColor:`${AppColors_1.AppColors.errorColor}12`,paddingHorizontal:7,paddingVertical:1.5,borderRadius:5},footerIgnoredPillText:{fontFamily:AppFonts_1.AppFonts.interSemiBold,fontSize:10,color:AppColors_1.AppColors.errorColor},exportActionBtn:{flexDirection:"row",alignItems:"center",justifyContent:"center",backgroundColor:AppColors_1.AppColors.purple,paddingVertical:12,borderRadius:12,gap:7,shadowColor:AppColors_1.AppColors.purple,shadowOffset:{width:0,height:4},shadowOpacity:.25,shadowRadius:8,elevation:4},exportActionBtnDisabled:{opacity:.5},exportActionBtnText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:13.5,lineHeight:17,color:AppColors_1.AppColors.white,letterSpacing:.1},progressContainer:{padding:28,alignItems:"center",justifyContent:"center"},progressIconBadge:{width:60,height:60,borderRadius:30,backgroundColor:`${AppColors_1.AppColors.purple}18`,justifyContent:"center",alignItems:"center",marginBottom:14},progressHeading:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:15.5,lineHeight:21,color:AppColors_1.AppColors.primaryBlack,marginBottom:3},progressSub:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:12,lineHeight:16,color:AppColors_1.AppColors.grayTextWeak,marginBottom:18},progressTrack:{width:"100%",height:9,backgroundColor:AppColors_1.AppColors.grayBackground,borderRadius:4.5,overflow:"hidden",borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor,marginBottom:10},progressBar:{height:"100%",backgroundColor:AppColors_1.AppColors.purple,borderRadius:4.5},progressFootnote:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:11,lineHeight:14,color:AppColors_1.AppColors.grayTextWeak},completeContainer:{padding:20,alignItems:"center"},completeSuccessBadge:{width:58,height:58,borderRadius:29,backgroundColor:`${AppColors_1.AppColors.emerald500}18`,justifyContent:"center",alignItems:"center",marginBottom:12},completeTitle:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:16.5,lineHeight:22,color:AppColors_1.AppColors.primaryBlack},completeSub:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:12,lineHeight:16,color:AppColors_1.AppColors.grayTextWeak,textAlign:"center",marginTop:3,marginBottom:16},fileDetailsCard:{width:"100%",backgroundColor:"#F8FAFC",borderRadius:12,padding:12,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor,gap:7,marginBottom:16},fileDetailsRow:{flexDirection:"row",justifyContent:"space-between",alignItems:"center"},fileDetailLabel:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:11.5,lineHeight:15,color:AppColors_1.AppColors.grayTextStrong},fileDetailValue:{fontFamily:AppFonts_1.AppFonts.interSemiBold,fontSize:11.5,lineHeight:15,color:AppColors_1.AppColors.primaryBlack},actionButtonGroup:{width:"100%",gap:8,marginBottom:14},primaryActionBtn:{flexDirection:"row",alignItems:"center",justifyContent:"center",paddingVertical:12,borderRadius:10,gap:7},shareBtn:{backgroundColor:AppColors_1.AppColors.purple,shadowColor:AppColors_1.AppColors.purple,shadowOffset:{width:0,height:3},shadowOpacity:.2,shadowRadius:6,elevation:3},saveDiskBtn:{backgroundColor:AppColors_1.AppColors.teal600||"#0D9488",shadowColor:AppColors_1.AppColors.teal600||"#0D9488",shadowOffset:{width:0,height:3},shadowOpacity:.2,shadowRadius:6,elevation:3},primaryActionBtnText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:13,lineHeight:17,color:AppColors_1.AppColors.white},secondaryActionBtn:{flexDirection:"row",alignItems:"center",justifyContent:"center",paddingVertical:10,borderRadius:10,borderWidth:1,borderColor:`${AppColors_1.AppColors.purple}40`,backgroundColor:`${AppColors_1.AppColors.purple}0C`,gap:6},secondaryActionBtnText:{fontFamily:AppFonts_1.AppFonts.interSemiBold,fontSize:12,lineHeight:15,color:AppColors_1.AppColors.purple},bottomFooterRow:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"100%",paddingTop:8,borderTopWidth:1,borderTopColor:AppColors_1.AppColors.dividerColor},textBtn:{paddingVertical:5,paddingHorizontal:8},textBtnText:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:11.5,lineHeight:15,color:AppColors_1.AppColors.grayTextStrong},doneBtn:{paddingVertical:5,paddingHorizontal:14,borderRadius:6,backgroundColor:AppColors_1.AppColors.dividerColor},doneBtnText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:11.5,lineHeight:15,color:AppColors_1.AppColors.primaryBlack}});exports.default=exports.NetworkExportModal;
|