react-native-inapp-inspector 2.3.24 → 2.3.25

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.
Files changed (145) hide show
  1. package/dist/commonjs/components/AnalyticsDetail.js +8 -8
  2. package/dist/commonjs/components/AnalyticsEventCard.js +11 -8
  3. package/dist/commonjs/components/AppHeaderLogo.js +1 -1
  4. package/dist/commonjs/components/BrandSquareIcon.js +12 -12
  5. package/dist/commonjs/components/ConsoleLogCard.d.ts +1 -0
  6. package/dist/commonjs/components/ConsoleLogCard.js +92 -80
  7. package/dist/commonjs/components/EndOfListFooter.d.ts +5 -1
  8. package/dist/commonjs/components/EndOfListFooter.js +27 -5
  9. package/dist/commonjs/components/Inspector/AnalyticsTab.js +30 -298
  10. package/dist/commonjs/components/Inspector/ConsoleTab.js +38 -93
  11. package/dist/commonjs/components/Inspector/CrashDetail.js +12 -12
  12. package/dist/commonjs/components/Inspector/CrashTab.js +43 -33
  13. package/dist/commonjs/components/Inspector/DebuggingTab.js +9 -9
  14. package/dist/commonjs/components/Inspector/DeviceInfoTab.js +54 -52
  15. package/dist/commonjs/components/Inspector/InspectorHeader.js +1 -1
  16. package/dist/commonjs/components/Inspector/MainScreen.js +23 -25
  17. package/dist/commonjs/components/Inspector/MediaGalleryTab.js +1 -1
  18. package/dist/commonjs/components/Inspector/MediaPreviewModal.js +3 -3
  19. package/dist/commonjs/components/Inspector/NetworkTab.js +31 -31
  20. package/dist/commonjs/components/Inspector/NpmStarPrompt.js +3 -3
  21. package/dist/commonjs/components/Inspector/NpmUpdateToast.js +21 -22
  22. package/dist/commonjs/components/Inspector/ReduxTab.js +110 -97
  23. package/dist/commonjs/components/Inspector/SettingsPanel.js +48 -100
  24. package/dist/commonjs/components/Inspector/StorageTab.js +56 -52
  25. package/dist/commonjs/components/Inspector/TabBar.js +29 -26
  26. package/dist/commonjs/components/JsonViewer.js +169 -164
  27. package/dist/commonjs/components/LogCard.js +34 -38
  28. package/dist/commonjs/components/LogSyntaxHighlighter.js +3 -3
  29. package/dist/commonjs/components/SegmentedTabs.d.ts +4 -1
  30. package/dist/commonjs/components/SegmentedTabs.js +8 -8
  31. package/dist/commonjs/constants/index.js +1 -1
  32. package/dist/commonjs/constants/version.d.ts +1 -1
  33. package/dist/commonjs/constants/version.js +1 -1
  34. package/dist/commonjs/customHooks/networkLogger.js +1 -2
  35. package/dist/commonjs/helpers/index.d.ts +6 -0
  36. package/dist/commonjs/helpers/index.js +4 -4
  37. package/dist/commonjs/helpers/memoryManager.d.ts +0 -1
  38. package/dist/commonjs/helpers/memoryManager.js +1 -1
  39. package/dist/commonjs/helpers/remoteConfig.js +1 -1
  40. package/dist/commonjs/helpers/settingsStore.js +1 -1
  41. package/dist/commonjs/i18n/index.d.ts +35 -0
  42. package/dist/commonjs/i18n/index.js +1 -1
  43. package/dist/commonjs/i18n/locales/ar.json +1 -0
  44. package/dist/commonjs/i18n/locales/de.json +1 -0
  45. package/dist/commonjs/i18n/locales/en.json +1 -1
  46. package/dist/commonjs/i18n/locales/es.json +1 -0
  47. package/dist/commonjs/i18n/locales/fr.json +1 -0
  48. package/dist/commonjs/i18n/locales/hi.json +1 -0
  49. package/dist/commonjs/i18n/locales/ja.json +1 -0
  50. package/dist/commonjs/i18n/locales/ko.json +1 -0
  51. package/dist/commonjs/i18n/locales/pt.json +1 -0
  52. package/dist/commonjs/i18n/locales/ru.json +1 -0
  53. package/dist/commonjs/i18n/locales/zh.json +1 -0
  54. package/dist/commonjs/index.d.ts +2 -4
  55. package/dist/commonjs/index.js +2 -2
  56. package/dist/commonjs/styles/AppColors.d.ts +40 -0
  57. package/dist/commonjs/styles/AppColors.js +1 -1
  58. package/dist/commonjs/styles/index.js +1 -1
  59. package/dist/commonjs/types/enums.d.ts +0 -20
  60. package/dist/commonjs/types/enums.js +1 -1
  61. package/dist/esm/components/AnalyticsDetail.js +75 -75
  62. package/dist/esm/components/AnalyticsEventCard.js +20 -17
  63. package/dist/esm/components/AppHeaderLogo.js +5 -5
  64. package/dist/esm/components/BrandSquareIcon.js +39 -39
  65. package/dist/esm/components/ConsoleLogCard.d.ts +1 -0
  66. package/dist/esm/components/ConsoleLogCard.js +98 -86
  67. package/dist/esm/components/EndOfListFooter.d.ts +5 -1
  68. package/dist/esm/components/EndOfListFooter.js +36 -14
  69. package/dist/esm/components/Inspector/AnalyticsTab.js +47 -315
  70. package/dist/esm/components/Inspector/ConsoleTab.js +61 -116
  71. package/dist/esm/components/Inspector/CrashDetail.js +49 -49
  72. package/dist/esm/components/Inspector/CrashTab.js +75 -65
  73. package/dist/esm/components/Inspector/DebuggingTab.js +31 -31
  74. package/dist/esm/components/Inspector/DeviceInfoTab.js +146 -144
  75. package/dist/esm/components/Inspector/InspectorHeader.js +5 -5
  76. package/dist/esm/components/Inspector/MainScreen.js +51 -53
  77. package/dist/esm/components/Inspector/MediaGalleryTab.js +1 -1
  78. package/dist/esm/components/Inspector/MediaPreviewModal.js +31 -31
  79. package/dist/esm/components/Inspector/NetworkTab.js +63 -63
  80. package/dist/esm/components/Inspector/NpmStarPrompt.js +42 -42
  81. package/dist/esm/components/Inspector/NpmUpdateToast.js +45 -46
  82. package/dist/esm/components/Inspector/ReduxTab.js +163 -150
  83. package/dist/esm/components/Inspector/SettingsPanel.js +136 -188
  84. package/dist/esm/components/Inspector/StorageTab.js +88 -84
  85. package/dist/esm/components/Inspector/TabBar.js +37 -34
  86. package/dist/esm/components/JsonViewer.js +173 -168
  87. package/dist/esm/components/LogCard.js +38 -42
  88. package/dist/esm/components/LogSyntaxHighlighter.js +1 -1
  89. package/dist/esm/components/SegmentedTabs.d.ts +4 -1
  90. package/dist/esm/components/SegmentedTabs.js +8 -8
  91. package/dist/esm/constants/index.js +1 -1
  92. package/dist/esm/constants/version.d.ts +1 -1
  93. package/dist/esm/constants/version.js +1 -1
  94. package/dist/esm/customHooks/networkLogger.js +1 -2
  95. package/dist/esm/helpers/index.d.ts +6 -0
  96. package/dist/esm/helpers/index.js +4 -4
  97. package/dist/esm/helpers/memoryManager.d.ts +0 -1
  98. package/dist/esm/helpers/memoryManager.js +1 -1
  99. package/dist/esm/helpers/remoteConfig.js +1 -1
  100. package/dist/esm/helpers/settingsStore.js +1 -1
  101. package/dist/esm/i18n/index.d.ts +35 -0
  102. package/dist/esm/i18n/index.js +1 -1
  103. package/dist/esm/i18n/locales/ar.json +1 -0
  104. package/dist/esm/i18n/locales/de.json +1 -0
  105. package/dist/esm/i18n/locales/en.json +1 -1
  106. package/dist/esm/i18n/locales/es.json +1 -0
  107. package/dist/esm/i18n/locales/fr.json +1 -0
  108. package/dist/esm/i18n/locales/hi.json +1 -0
  109. package/dist/esm/i18n/locales/ja.json +1 -0
  110. package/dist/esm/i18n/locales/ko.json +1 -0
  111. package/dist/esm/i18n/locales/pt.json +1 -0
  112. package/dist/esm/i18n/locales/ru.json +1 -0
  113. package/dist/esm/i18n/locales/zh.json +1 -0
  114. package/dist/esm/index.d.ts +2 -4
  115. package/dist/esm/index.js +5 -5
  116. package/dist/esm/styles/AppColors.d.ts +40 -0
  117. package/dist/esm/styles/AppColors.js +1 -1
  118. package/dist/esm/styles/index.js +1 -1
  119. package/dist/esm/types/enums.d.ts +0 -20
  120. package/dist/esm/types/enums.js +1 -1
  121. package/package.json +1 -15
  122. package/dist/commonjs/bundle.d.ts +0 -2
  123. package/dist/commonjs/bundle.js +0 -1
  124. package/dist/commonjs/components/Inspector/BundleTab.d.ts +0 -48
  125. package/dist/commonjs/components/Inspector/BundleTab.js +0 -1297
  126. package/dist/commonjs/components/Inspector/PerformanceTab.d.ts +0 -27
  127. package/dist/commonjs/components/Inspector/PerformanceTab.js +0 -454
  128. package/dist/commonjs/customHooks/bundleAnalyzer.d.ts +0 -115
  129. package/dist/commonjs/customHooks/bundleAnalyzer.js +0 -1
  130. package/dist/commonjs/customHooks/performanceTracker.d.ts +0 -144
  131. package/dist/commonjs/customHooks/performanceTracker.js +0 -63
  132. package/dist/commonjs/performance.d.ts +0 -2
  133. package/dist/commonjs/performance.js +0 -1
  134. package/dist/esm/bundle.d.ts +0 -2
  135. package/dist/esm/bundle.js +0 -1
  136. package/dist/esm/components/Inspector/BundleTab.d.ts +0 -48
  137. package/dist/esm/components/Inspector/BundleTab.js +0 -1297
  138. package/dist/esm/components/Inspector/PerformanceTab.d.ts +0 -27
  139. package/dist/esm/components/Inspector/PerformanceTab.js +0 -454
  140. package/dist/esm/customHooks/bundleAnalyzer.d.ts +0 -115
  141. package/dist/esm/customHooks/bundleAnalyzer.js +0 -1
  142. package/dist/esm/customHooks/performanceTracker.d.ts +0 -144
  143. package/dist/esm/customHooks/performanceTracker.js +0 -63
  144. package/dist/esm/performance.d.ts +0 -2
  145. package/dist/esm/performance.js +0 -1
@@ -1,332 +1,64 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(a,l,r,s){s===void 0&&(s=r);var p=Object.getOwnPropertyDescriptor(l,r);(!p||("get"in p?!l.__esModule:p.writable||p.configurable))&&(p={enumerable:!0,get:function(){return l[r]}}),Object.defineProperty(a,s,p)}):(function(a,l,r,s){s===void 0&&(s=r),a[s]=l[r]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(a,l){Object.defineProperty(a,"default",{enumerable:!0,value:l})}):function(a,l){a.default=l}),__importStar=this&&this.__importStar||(function(){var a=function(l){return a=Object.getOwnPropertyNames||function(r){var s=[];for(var p in r)Object.prototype.hasOwnProperty.call(r,p)&&(s[s.length]=p);return s},a(l)};return function(l){if(l&&l.__esModule)return l;var r={};if(l!=null)for(var s=a(l),p=0;p<s.length;p++)s[p]!=="default"&&__createBinding(r,l,s[p]);return __setModuleDefault(r,l),r}})(),__importDefault=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importStar(require("react")),react_native_1=require("react-native"),InspectorContext_1=require("./InspectorContext"),AnalyticsEventCard_1=__importDefault(require("../AnalyticsEventCard")),AnalyticsFilterModal_1=__importDefault(require("./AnalyticsFilterModal")),EndOfListFooter_1=__importDefault(require("../EndOfListFooter")),EmptyState_1=__importDefault(require("../EmptyState")),styles_1=__importDefault(require("../../styles")),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),i18n_1=require("../../i18n"),react_native_svg_1=__importStar(require("react-native-svg")),TouchableScale_1=__importDefault(require("../TouchableScale")),analyticsLogger_1=require("../../customHooks/analyticsLogger"),helpers_1=require("../../helpers"),NetworkIcons_1=require("../NetworkIcons"),AnalyticsHeader=react_1.default.memo(()=>{const{t:a}=(0,i18n_1.useTranslation)(),{analyticsEvents:l,filteredAnalyticsEvents:r,analyticsHeaderExpanded:s,setAnalyticsHeaderExpanded:p}=(0,InspectorContext_1.useInspector)(),[f,R]=(0,react_1.useState)(!1),L=(0,analyticsLogger_1.getCurrentUserId)(),B=(0,analyticsLogger_1.getCurrentUserProperties)(),S=(0,analyticsLogger_1.getDefaultEventParameters)(),v=(0,analyticsLogger_1.getCollectionEnabled)();if(l.length===0)return null;const I=Object.keys(B).length>0,D=Object.keys(S).length>0,b=r.length,k=(0,react_1.useMemo)(()=>{let e=0,o=0;for(const d of l){const n=(0,helpers_1.getEventCategory)(d.name),c=d.count||1;if(n==="ecommerce"){e+=c;const _=d.params?.value??d.params?.price;_&&!isNaN(Number(_))&&(o+=Number(_))}}return{ecommerce:e,totalRevenue:o}},[l]),E=(0,react_1.useMemo)(()=>{const e=new Map;for(const n of r){const c=n.screenName||n.params?.firebase_screen||n.params?.screen_name||n.params?.firebase_screen_class||n.screenClass;c&&typeof c=="string"&&c.trim()!==""&&e.set(c,(e.get(c)||0)+(n.count||1))}const o=Array.from(e.entries()).sort((n,c)=>c[1]-n[1]),d=o.length>0?o[0][1]:1;return o.slice(0,3).map(([n,c])=>({name:n,count:c,pct:Math.round(c/(r.length||1)*100),barWidthPct:Math.round(c/d*100)}))},[r]),h=12,u=64,A=320,[T,V]=(0,react_1.useState)(null),[F,$]=(0,react_1.useState)(0);(0,react_1.useEffect)(()=>{if(!v)return;const e=setInterval(()=>{$(o=>(o+1)%1e5)},1e3);return()=>clearInterval(e)},[v]);const y=(0,react_1.useMemo)(()=>{const e=[],o=Date.now(),d=6e4,n=d/h;for(let i=0;i<h;i++){const g=Math.round((h-1-i)*n/1e3);e.push({index:i,ecommerce:0,page_view:0,system:0,custom:0,total:0,x:i/(h-1)*(A-24)+12,y:u-12,isLatest:i===h-1,ageLabel:i===h-1?a("analytics.timeNow"):`-${g}s`})}for(const i of r){const g=o-i.timestamp;if(g>=0&&g<d){const m=Math.floor((d-1-g)/n);if(m>=0&&m<h){const C=(0,helpers_1.getEventCategory)(i.name),x=i.count||1;e[m].total+=x,C==="ecommerce"?e[m].ecommerce+=x:C==="page_view"?e[m].page_view+=x:C==="system"?e[m].system+=x:e[m].custom+=x}}}const c=Math.max(...e.map(i=>i.total),4);e.forEach(i=>{const g=i.total/c*(u-22);i.y=u-10-g});let _=`M ${e[0].x.toFixed(1)} ${e[0].y.toFixed(1)}`;for(let i=0;i<e.length-1;i++){const g=e[Math.max(0,i-1)],m=e[i],C=e[i+1],x=e[Math.min(e.length-1,i+2)],H=m.x+(C.x-g.x)/6,W=m.y+(C.y-g.y)/6,N=C.x-(x.x-m.x)/6,j=C.y-(x.y-m.y)/6;_+=` C ${H.toFixed(1)} ${W.toFixed(1)}, ${N.toFixed(1)} ${j.toFixed(1)}, ${C.x.toFixed(1)} ${C.y.toFixed(1)}`}const w=e[e.length-1],O=e[0],P=`${_} L ${w.x.toFixed(1)} ${u-4} L ${O.x.toFixed(1)} ${u-4} Z`,z=Math.max(...e.map(i=>i.total),0),M=Math.round(e.reduce((i,g)=>i+g.total,0));return{buckets:e,linePath:_,areaPath:P,peakVal:z,eventRate:M}},[r,u,A,F,a]),t=T!=null?y.buckets[T]:null;return<react_native_1.View style={styles_1.default.analyticsHeaderCard}>
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(n,l,r,a){a===void 0&&(a=r);var s=Object.getOwnPropertyDescriptor(l,r);(!s||("get"in s?!l.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return l[r]}}),Object.defineProperty(n,a,s)}):(function(n,l,r,a){a===void 0&&(a=r),n[a]=l[r]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(n,l){Object.defineProperty(n,"default",{enumerable:!0,value:l})}):function(n,l){n.default=l}),__importStar=this&&this.__importStar||(function(){var n=function(l){return n=Object.getOwnPropertyNames||function(r){var a=[];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(a[a.length]=s);return a},n(l)};return function(l){if(l&&l.__esModule)return l;var r={};if(l!=null)for(var a=n(l),s=0;s<a.length;s++)a[s]!=="default"&&__createBinding(r,l,a[s]);return __setModuleDefault(r,l),r}})(),__importDefault=this&&this.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importStar(require("react")),react_native_1=require("react-native"),InspectorContext_1=require("./InspectorContext"),AnalyticsEventCard_1=__importDefault(require("../AnalyticsEventCard")),AnalyticsFilterModal_1=__importDefault(require("./AnalyticsFilterModal")),EndOfListFooter_1=__importDefault(require("../EndOfListFooter")),EmptyState_1=__importDefault(require("../EmptyState")),styles_1=__importDefault(require("../../styles")),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),i18n_1=require("../../i18n"),TouchableScale_1=__importDefault(require("../TouchableScale")),helpers_1=require("../../helpers"),NetworkIcons_1=require("../NetworkIcons"),AnalyticsTab=react_1.default.memo(()=>{const{t:n}=(0,i18n_1.useTranslation)(),{analyticsEvents:l,filteredAnalyticsEvents:r,analyticsSearch:a,setAnalyticsSearch:s,analyticsFilters:v,setAnalyticsFilters:x,handleDelete:z,selectedEvent:L,setSelectedEvent:O,newEventIds:P,logRouteMapRef:V,isAnalyticsLayoutReady:B,setIsAnalyticsLayoutReady:E,isAnalyticsPaused:w,setIsAnalyticsPaused:N,isAnalyticsFilterApplied:A}=(0,InspectorContext_1.useInspector)(),R=(0,react_1.useRef)(null),[q,F]=(0,react_1.useState)(!1),[M,D]=(0,react_1.useState)(100),S=(0,react_1.useMemo)(()=>r.slice(0,M),[r,M]),u=(0,react_1.useMemo)(()=>{let e=0,o=0,t=0,i=0;for(const m of l){const C=(0,helpers_1.getEventCategory)(m.name),c=m.count||1;C==="ecommerce"?e+=c:C==="page_view"?o+=c:C==="system"?t+=c:i+=c}const _=e+o+t+i;return{ecommerce:e,page_view:o,system:t,custom:i,totalCount:_}},[l]),$=(0,react_1.useCallback)(e=>{(0,InspectorContext_1.animateNextLayout)(),x(o=>{if(e==="all")return{...o,categories:new Set(["all"])};const t=new Set(o.categories);if(t.has("all"))t.delete("all"),t.add(e);else if(t.has(e))t.delete(e),t.size===0&&t.add("all");else if(t.add(e),t.has("ecommerce")&&t.has("page_view")&&t.has("system")&&t.has("custom"))return{...o,categories:new Set(["all"])};return{...o,categories:t}})},[x]),j=(0,react_1.useCallback)((e,o)=>e?.id?.toString()??o.toString(),[]),H=(0,react_1.useCallback)(({item:e,index:o})=>{const t=r[o+1],i=r[o-1],_=t?e.timestamp-t.timestamp:void 0,m=Math.floor(e.timestamp/6e4),C=i?Math.floor(i.timestamp/6e4):-1,c=o===0||m!==C;return<AnalyticsEventCard_1.default event={e}onPress={()=>{O(e)}}isNew={P.has(e.id)}searchStr={a}isFirst={o===0}isLast={o===r.length-1}msSincePrev={_}showTimestamp={c}computedScreenName={(()=>{if(!e)return"";const b=e.screenName||e.screenClass||e.pageTitle||e.pageLocation||e.params?.firebase_screen||e.params?.screen_name||e.params?.firebase_screen_class||e.params?.screen_class;let I=typeof b=="string"?b:b?JSON.stringify(b):"";const T=V.current.get(e.id+1e6);if(!I&&T&&T.path!=="Navigators"){const k=T.path.split(" \u2794 ");I=k[k.length-1]}return I})()}/>},[r,a,P,O,V]),W=(0,react_1.useCallback)((e,o)=>({length:86,offset:86*o,index:o}),[]);return<>
2
2
 
3
- <react_native_1.TouchableOpacity activeOpacity={.7}onPress={()=>{(0,InspectorContext_1.animateNextLayout)(),R(e=>!e)}}style={{flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingVertical:2}}>
4
- <react_native_1.View style={{flex:1}}>
5
- <react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:6}}>
6
- <react_native_1.Text style={styles_1.default.analyticsHeaderTitle}>{a("analytics.realtimeStream")}</react_native_1.Text>
7
- <react_native_1.View style={[styles_1.default.statusDot,{backgroundColor:v?AppColors_1.AppColors.greenColor:AppColors_1.AppColors.errorColor}]}/>
8
- <react_native_1.Text style={[styles_1.default.statusText,{color:v?AppColors_1.AppColors.greenColor:AppColors_1.AppColors.errorColor,fontFamily:AppFonts_1.AppFonts.interBold}]}>
9
- {a(v?"performance.live":"common.pause")}
10
- </react_native_1.Text>
11
- </react_native_1.View>
12
- <react_native_1.Text style={styles_1.default.analyticsHeaderSubtitle}numberOfLines={1}>
13
- {L?`${a("analytics.userId")}: ${L}`:a("analytics.emptySubtitle")}
14
- </react_native_1.Text>
15
- </react_native_1.View>
16
-
17
- <react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:8}}>
18
- {f?<react_native_1.TouchableOpacity style={styles_1.default.analyticsHeaderToggle}activeOpacity={.7}onPress={e=>{e.stopPropagation(),(0,InspectorContext_1.animateNextLayout)(),p(!s)}}>
19
- <react_native_1.Text style={styles_1.default.analyticsHeaderToggleText}>
20
- {a(s?"common.close":"analytics.eventDetails")}
21
- </react_native_1.Text>
22
- </react_native_1.TouchableOpacity>:<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:`${AppColors_1.AppColors.purple}14`,paddingHorizontal:7,paddingVertical:3,borderRadius:6,borderWidth:1,borderColor:`${AppColors_1.AppColors.purple}25`}}>
23
- <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10,color:AppColors_1.AppColors.purple}}>
24
- {b} {b===1?"event":"events"}
25
- </react_native_1.Text>
26
- </react_native_1.View>}
27
-
28
- <NetworkIcons_1.ChevronIcon direction={f?"up":"down"}size={16}color={AppColors_1.AppColors.grayTextWeak}/>
29
- </react_native_1.View>
30
- </react_native_1.TouchableOpacity>
31
-
32
-
33
- {f&&<react_native_1.View style={{marginTop:10}}>
34
-
35
- <react_native_1.View style={{marginBottom:8,backgroundColor:AppColors_1.AppColors.grayBackground,borderRadius:10,borderWidth:1,borderColor:AppColors_1.AppColors.dividerColor,padding:10}}>
36
-
37
- <react_native_1.View style={{flexDirection:"row",justifyContent:"space-between",alignItems:"flex-start",marginBottom:6}}>
38
- <react_native_1.View>
39
- <react_native_1.View style={{flexDirection:"row",alignItems:"baseline",gap:6}}>
40
- <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:22,color:AppColors_1.AppColors.primaryBlack,lineHeight:26}}>
41
- {b}
42
- </react_native_1.Text>
43
- <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:10.5,color:AppColors_1.AppColors.grayTextWeak}}>
44
- {a("analytics.eventsInWindow")}
45
- </react_native_1.Text>
46
- </react_native_1.View>
47
- </react_native_1.View>
48
-
49
-
50
- <react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:5}}>
51
- <react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:`${AppColors_1.AppColors.purple}14`,paddingHorizontal:6,paddingVertical:2.5,borderRadius:4,borderWidth:1,borderColor:`${AppColors_1.AppColors.purple}2E`}}>
52
- <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:AppColors_1.AppColors.purple}}>
53
- {a("analytics.eventVelocity",{rate:y.eventRate})}
54
- </react_native_1.Text>
55
- </react_native_1.View>
56
-
57
- {k.totalRevenue>0&&<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:`${AppColors_1.AppColors.emerald600}15`,paddingHorizontal:6,paddingVertical:2.5,borderRadius:4,borderWidth:1,borderColor:`${AppColors_1.AppColors.emerald600}30`}}>
58
- <NetworkIcons_1.MoneyIcon color={AppColors_1.AppColors.emerald600}size={10}/>
59
- <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:AppColors_1.AppColors.emerald600}}>
60
- ${k.totalRevenue.toFixed(2)}
61
- </react_native_1.Text>
62
- </react_native_1.View>}
63
- </react_native_1.View>
64
- </react_native_1.View>
65
-
66
-
67
- <react_native_1.View style={{height:u,position:"relative",overflow:"hidden",borderRadius:8}}>
68
- <react_native_svg_1.default width="100%"height={u}viewBox={`0 0 ${A} ${u}`}preserveAspectRatio="none">
69
- <react_native_svg_1.Defs>
70
- <react_native_svg_1.LinearGradient id="crashlyticsBarGrad"x1="0"y1="0"x2="0"y2="1">
71
- <react_native_svg_1.Stop offset="0%"stopColor="#8B5CF6"stopOpacity="0.9"/>
72
- <react_native_svg_1.Stop offset="100%"stopColor="#6366F1"stopOpacity="0.6"/>
73
- </react_native_svg_1.LinearGradient>
74
- <react_native_svg_1.LinearGradient id="crashlyticsAreaGrad"x1="0"y1="0"x2="0"y2="1">
75
- <react_native_svg_1.Stop offset="0%"stopColor="#8B5CF6"stopOpacity="0.25"/>
76
- <react_native_svg_1.Stop offset="80%"stopColor="#8B5CF6"stopOpacity="0.04"/>
77
- <react_native_svg_1.Stop offset="100%"stopColor="#8B5CF6"stopOpacity="0.0"/>
78
- </react_native_svg_1.LinearGradient>
79
- </react_native_svg_1.Defs>
80
-
81
-
82
- <react_native_svg_1.Line x1="6"y1={u-6}x2={A-6}y2={u-6}stroke="#E2E8F0"strokeWidth="1"/>
83
- <react_native_svg_1.Line x1="6"y1={u/2}x2={A-6}y2={u/2}stroke="#F1F5F9"strokeWidth="1"strokeDasharray="4,4"/>
84
-
85
-
86
- <react_native_svg_1.Path d={y.areaPath}fill="url(#crashlyticsAreaGrad)"/>
87
-
88
-
89
- {y.buckets.map((e,o)=>{const d=T===o,n=10,c=e.x-n/2,_=Math.max(3,u-8-e.y),w=u-8-_;return<react_native_svg_1.G key={`bar-${e.index}`}>
90
-
91
- <react_native_svg_1.Rect x={c}y={6}width={n}height={u-14}rx={3}fill={d?"#EDE9FE":"#F8FAFC"}/>
92
-
93
-
94
- {e.total>0&&<react_native_svg_1.Rect x={c}y={w}width={n}height={_}rx={3}fill="url(#crashlyticsBarGrad)"/>}
95
-
96
-
97
- {d&&<react_native_svg_1.Line x1={e.x}y1={4}x2={e.x}y2={u-6}stroke="#8B5CF6"strokeWidth="1.5"strokeDasharray="2,2"/>}
98
- </react_native_svg_1.G>})}
99
-
100
-
101
- <react_native_svg_1.Path d={y.linePath}fill="none"stroke="#8B5CF6"strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
102
-
103
-
104
- {y.buckets.length>0&&<react_native_svg_1.G>
105
- <react_native_svg_1.Circle cx={y.buckets[y.buckets.length-1].x}cy={y.buckets[y.buckets.length-1].y}r="5.5"fill="#8B5CF6"opacity="0.25"/>
106
- <react_native_svg_1.Circle cx={y.buckets[y.buckets.length-1].x}cy={y.buckets[y.buckets.length-1].y}r="3"fill="#7C3AED"/>
107
- </react_native_svg_1.G>}
108
- </react_native_svg_1.default>
109
-
110
-
111
- <react_native_1.View style={{position:"absolute",top:0,left:0,right:0,bottom:0,flexDirection:"row"}}>
112
- {y.buckets.map((e,o)=><react_native_1.TouchableOpacity key={e.index}style={{flex:1,height:"100%"}}activeOpacity={.8}onPress={()=>V(T===o?null:o)}/>)}
113
- </react_native_1.View>
114
- </react_native_1.View>
115
-
116
-
117
- {t&&<react_native_1.View style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",backgroundColor:AppColors_1.AppColors.white,borderRadius:6,paddingHorizontal:8,paddingVertical:4,marginTop:4,borderWidth:1,borderColor:AppColors_1.AppColors.brandPurple}}>
118
- <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10,color:AppColors_1.AppColors.primaryBlack}}>
119
- {a("analytics.selectedBucket",{time:t.ageLabel,count:t.total})}
120
- </react_native_1.Text>
121
- <react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:6}}>
122
- {t.ecommerce>0&&<react_native_1.Text style={{fontSize:9,fontFamily:AppFonts_1.AppFonts.interBold,color:AppColors_1.AppColors.amber700}}>
123
- Ecom: {t.ecommerce}
124
- </react_native_1.Text>}
125
- {t.page_view>0&&<react_native_1.Text style={{fontSize:9,fontFamily:AppFonts_1.AppFonts.interBold,color:AppColors_1.AppColors.sky500}}>
126
- Screen: {t.page_view}
127
- </react_native_1.Text>}
128
- {t.custom>0&&<react_native_1.Text style={{fontSize:9,fontFamily:AppFonts_1.AppFonts.interBold,color:AppColors_1.AppColors.brandPurple}}>
129
- Custom: {t.custom}
130
- </react_native_1.Text>}
131
- </react_native_1.View>
132
- </react_native_1.View>}
133
-
134
-
135
- <react_native_1.View style={{flexDirection:"row",justifyContent:"space-between",marginTop:4,paddingHorizontal:4}}>
136
- <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:8.5,color:AppColors_1.AppColors.grayTextWeak}}>
137
- -60s
138
- </react_native_1.Text>
139
- <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:8.5,color:AppColors_1.AppColors.grayTextWeak}}>
140
- -40s
141
- </react_native_1.Text>
142
- <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:8.5,color:AppColors_1.AppColors.grayTextWeak}}>
143
- -20s
144
- </react_native_1.Text>
145
- <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:8.5,color:AppColors_1.AppColors.brandPurple}}>
146
- {a("analytics.timeNow")}
147
- </react_native_1.Text>
148
- </react_native_1.View>
149
- </react_native_1.View>
150
-
151
-
152
- {E.length>0&&<react_native_1.View style={{marginTop:4,backgroundColor:`${AppColors_1.AppColors.sky500}0A`,borderRadius:8,borderWidth:1,borderColor:`${AppColors_1.AppColors.sky500}22`,padding:8}}>
153
- <react_native_1.View style={{flexDirection:"row",justifyContent:"space-between",alignItems:"center",marginBottom:6}}>
154
- <react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:4}}>
155
- <NetworkIcons_1.PinIcon color={AppColors_1.AppColors.sky600}size={11}/>
156
- <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:AppColors_1.AppColors.sky600,letterSpacing:.3}}>
157
- TOP SCREENS (REALTIME)
158
- </react_native_1.Text>
159
- </react_native_1.View>
160
- <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:9,color:AppColors_1.AppColors.grayTextWeak}}>
161
- Views
162
- </react_native_1.Text>
163
- </react_native_1.View>
164
-
165
- <react_native_1.View style={{gap:4}}>
166
- {E.map(e=><react_native_1.View key={e.name}>
167
- <react_native_1.View style={{flexDirection:"row",justifyContent:"space-between",alignItems:"center",marginBottom:2}}>
168
- <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:10,color:AppColors_1.AppColors.primaryBlack}}numberOfLines={1}>
169
- {e.name}
170
- </react_native_1.Text>
171
- <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:AppColors_1.AppColors.sky600}}>
172
- {e.count} ({e.pct}%)
173
- </react_native_1.Text>
174
- </react_native_1.View>
175
-
176
- <react_native_1.View style={{height:3,borderRadius:1.5,backgroundColor:`${AppColors_1.AppColors.sky500}22`,overflow:"hidden"}}>
177
- <react_native_1.View style={{height:"100%",width:`${e.barWidthPct}%`,backgroundColor:AppColors_1.AppColors.sky500}}/>
178
- </react_native_1.View>
179
- </react_native_1.View>)}
180
- </react_native_1.View>
181
- </react_native_1.View>}
182
-
183
-
184
- {s&&<>
185
-
186
- <react_native_1.View style={styles_1.default.analyticsStatsRow}>
187
- <react_native_1.View style={styles_1.default.analyticsStatBox}>
188
- <react_native_1.Text style={styles_1.default.analyticsStatValue}>{b}</react_native_1.Text>
189
- <react_native_1.Text style={styles_1.default.analyticsStatLabel}>{a("analytics.eventCount",{count:b})}</react_native_1.Text>
190
- </react_native_1.View>
191
- <react_native_1.View style={styles_1.default.analyticsStatBox}>
192
- <react_native_1.Text style={styles_1.default.analyticsStatValue}>
193
- {Object.keys(B).length}
194
- </react_native_1.Text>
195
- <react_native_1.Text style={styles_1.default.analyticsStatLabel}>{a("analytics.props")}</react_native_1.Text>
196
- </react_native_1.View>
197
- <react_native_1.View style={styles_1.default.analyticsStatBox}>
198
- <react_native_1.Text style={styles_1.default.analyticsStatValue}>
199
- {Object.keys(S).length}
200
- </react_native_1.Text>
201
- <react_native_1.Text style={styles_1.default.analyticsStatLabel}>{a("analytics.defaultParameters")}</react_native_1.Text>
202
- </react_native_1.View>
203
- </react_native_1.View>
204
-
205
-
206
- {(I||D)&&<react_native_1.View style={styles_1.default.analyticsHeaderDetails}>
207
- {I&&<react_native_1.View style={{marginBottom:10}}>
208
- <react_native_1.Text style={styles_1.default.detailsGroupTitle}>{a("analytics.userProperties")}</react_native_1.Text>
209
- {Object.entries(B).map(([e,o])=><react_native_1.View key={e}style={styles_1.default.detailsRow}>
210
- <react_native_1.Text style={styles_1.default.detailsKey}selectable={!0}>{e}</react_native_1.Text>
211
- <react_native_1.Text style={styles_1.default.detailsValue}selectable={!0}>{String(o)}</react_native_1.Text>
212
- </react_native_1.View>)}
213
- </react_native_1.View>}
214
-
215
- {D&&<react_native_1.View>
216
- <react_native_1.Text style={styles_1.default.detailsGroupTitle}>{a("analytics.defaultParameters")}</react_native_1.Text>
217
- {Object.entries(S).map(([e,o])=><react_native_1.View key={e}style={styles_1.default.detailsRow}>
218
- <react_native_1.Text style={styles_1.default.detailsKey}selectable={!0}>{e}</react_native_1.Text>
219
- <react_native_1.Text style={styles_1.default.detailsValue}selectable={!0}>{String(o)}</react_native_1.Text>
220
- </react_native_1.View>)}
221
- </react_native_1.View>}
222
- </react_native_1.View>}
223
- </>}
224
- </react_native_1.View>}
225
- </react_native_1.View>}),AnalyticsTab=react_1.default.memo(()=>{const{t:a}=(0,i18n_1.useTranslation)(),{analyticsEvents:l,filteredAnalyticsEvents:r,analyticsSearch:s,setAnalyticsSearch:p,analyticsFilters:f,setAnalyticsFilters:R,handleDelete:L,selectedEvent:B,setSelectedEvent:S,newEventIds:v,logRouteMapRef:I,isAnalyticsLayoutReady:D,setIsAnalyticsLayoutReady:b,isAnalyticsPaused:k,setIsAnalyticsPaused:E,isAnalyticsFilterApplied:h}=(0,InspectorContext_1.useInspector)(),u=(0,react_1.useRef)(null),[A,T]=(0,react_1.useState)(!1),V=(0,react_1.useMemo)(()=>{let t=0,e=0,o=0,d=0;for(const c of l){const _=(0,helpers_1.getEventCategory)(c.name),w=c.count||1;_==="ecommerce"?t+=w:_==="page_view"?e+=w:_==="system"?o+=w:d+=w}const n=t+e+o+d;return{ecommerce:t,page_view:e,system:o,custom:d,totalCount:n}},[l]),F=(0,react_1.useCallback)(t=>{(0,InspectorContext_1.animateNextLayout)(),R(e=>{if(t==="all")return{...e,categories:new Set(["all"])};const o=new Set(e.categories);if(o.has("all"))o.delete("all"),o.add(t);else if(o.has(t))o.delete(t),o.size===0&&o.add("all");else if(o.add(t),o.has("ecommerce")&&o.has("page_view")&&o.has("system")&&o.has("custom"))return{...e,categories:new Set(["all"])};return{...e,categories:o}})},[R]),$=(0,react_1.useCallback)((t,e)=>t?.id?.toString()??e.toString(),[]),y=(0,react_1.useCallback)(({item:t,index:e})=>{const o=r[e+1],d=r[e-1],n=o?t.timestamp-o.timestamp:void 0,c=Math.floor(t.timestamp/6e4),_=d?Math.floor(d.timestamp/6e4):-1,w=e===0||c!==_;return<AnalyticsEventCard_1.default event={t}onPress={()=>{S(t)}}isNew={v.has(t.id)}searchStr={s}isFirst={e===0}isLast={e===r.length-1}msSincePrev={n}showTimestamp={w}computedScreenName={(()=>{if(!t)return"";const O=t.screenName||t.screenClass||t.pageTitle||t.pageLocation||t.params?.firebase_screen||t.params?.screen_name||t.params?.firebase_screen_class||t.params?.screen_class;let P=typeof O=="string"?O:O?JSON.stringify(O):"";const z=I.current.get(t.id+1e6);if(!P&&z&&z.path!=="Navigators"){const M=z.path.split(" \u2794 ");P=M[M.length-1]}return P})()}/>},[r,s,v,S,I]);return<>
226
-
227
- {B==null&&<react_native_1.View style={{backgroundColor:AppColors_1.AppColors.white,borderBottomWidth:1,borderBottomColor:AppColors_1.AppColors.dividerColor,paddingBottom:6}}>
3
+ {L==null&&<react_native_1.View style={{backgroundColor:AppColors_1.AppColors.white,borderBottomWidth:1,borderBottomColor:AppColors_1.AppColors.dividerColor,paddingBottom:6}}>
228
4
  <react_native_1.View style={[styles_1.default.toolbarRow,{marginTop:12,marginBottom:8}]}>
229
5
  <react_native_1.View style={styles_1.default.searchContainer}>
230
6
  <NetworkIcons_1.SearchIcon color={AppColors_1.AppColors.grayTextWeak}size={16}/>
231
- <react_native_1.TextInput placeholder="Search events..."placeholderTextColor={AppColors_1.AppColors.grayTextWeak}value={s}onChangeText={p}style={styles_1.default.searchInput}autoCorrect={!1}autoCapitalize="none"/>
232
- {s.length>0&&<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:4}}>
7
+ <react_native_1.TextInput placeholder={n("analytics.searchPlaceholder","Search events...")}placeholderTextColor={AppColors_1.AppColors.grayTextWeak}value={a}onChangeText={s}style={styles_1.default.searchInput}autoCorrect={!1}autoCapitalize="none"/>
8
+ {a.length>0&&<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:4}}>
233
9
  <react_native_1.View style={{backgroundColor:`${AppColors_1.AppColors.purple}20`,borderRadius:10,paddingHorizontal:6,paddingVertical:1.5}}>
234
10
  <react_native_1.Text style={{color:AppColors_1.AppColors.purple,fontSize:9.5,fontFamily:AppFonts_1.AppFonts.interBold}}>
235
11
  {r.length}
236
12
  </react_native_1.Text>
237
13
  </react_native_1.View>
238
- <react_native_1.Pressable onPress={()=>p("")}hitSlop={10}style={styles_1.default.clearBtn}>
14
+ <react_native_1.Pressable onPress={()=>s("")}hitSlop={10}style={styles_1.default.clearBtn}>
239
15
  <NetworkIcons_1.ClearIcon color={AppColors_1.AppColors.grayTextWeak}size={13}/>
240
16
  </react_native_1.Pressable>
241
17
  </react_native_1.View>}
242
18
  </react_native_1.View>
243
19
  <react_native_1.View style={styles_1.default.toolbarRight}>
244
- <react_native_1.TouchableOpacity style={[styles_1.default.toolbarBtn,k&&{borderColor:`${AppColors_1.AppColors.darkOrange}50`,backgroundColor:`${AppColors_1.AppColors.darkOrange}18`}]}onPress={()=>E(t=>!t)}hitSlop={6}>
245
- <NetworkIcons_1.HeaderPauseIcon isPaused={k}color={k?AppColors_1.AppColors.darkOrange:AppColors_1.AppColors.grayTextStrong}size={16}/>
20
+ <react_native_1.TouchableOpacity style={[styles_1.default.toolbarBtn,w&&{borderColor:`${AppColors_1.AppColors.darkOrange}50`,backgroundColor:`${AppColors_1.AppColors.darkOrange}18`}]}onPress={()=>N(e=>!e)}hitSlop={6}>
21
+ <NetworkIcons_1.HeaderPauseIcon isPaused={w}color={w?AppColors_1.AppColors.darkOrange:AppColors_1.AppColors.grayTextStrong}size={16}/>
246
22
  </react_native_1.TouchableOpacity>
247
23
 
248
24
 
249
- <react_native_1.TouchableOpacity style={[styles_1.default.toolbarBtn,h&&{borderColor:`${AppColors_1.AppColors.brandPurple}60`,backgroundColor:`${AppColors_1.AppColors.brandPurple}15`}]}onPress={()=>T(!0)}hitSlop={6}>
250
- <NetworkIcons_1.FilterIcon color={h?AppColors_1.AppColors.brandPurple:AppColors_1.AppColors.grayTextStrong}size={15}/>
251
- {h&&<react_native_1.View style={{position:"absolute",top:2,right:2,width:7,height:7,borderRadius:3.5,backgroundColor:AppColors_1.AppColors.darkOrange,borderWidth:1,borderColor:AppColors_1.AppColors.white}}/>}
25
+ <react_native_1.TouchableOpacity style={[styles_1.default.toolbarBtn,A&&{borderColor:`${AppColors_1.AppColors.brandPurple}60`,backgroundColor:`${AppColors_1.AppColors.brandPurple}15`}]}onPress={()=>F(!0)}hitSlop={6}>
26
+ <NetworkIcons_1.FilterIcon color={A?AppColors_1.AppColors.brandPurple:AppColors_1.AppColors.grayTextStrong}size={15}/>
27
+ {A&&<react_native_1.View style={{position:"absolute",top:2,right:2,width:7,height:7,borderRadius:3.5,backgroundColor:AppColors_1.AppColors.darkOrange,borderWidth:1,borderColor:AppColors_1.AppColors.white}}/>}
252
28
  </react_native_1.TouchableOpacity>
253
29
 
254
- <react_native_1.TouchableOpacity style={[styles_1.default.toolbarBtn,{borderColor:`${AppColors_1.AppColors.errorColor}38`,backgroundColor:`${AppColors_1.AppColors.errorColor}0F`}]}onPress={L}hitSlop={6}>
30
+ <react_native_1.TouchableOpacity style={[styles_1.default.toolbarBtn,{borderColor:`${AppColors_1.AppColors.errorColor}38`,backgroundColor:`${AppColors_1.AppColors.errorColor}0F`}]}onPress={z}hitSlop={6}>
255
31
  <NetworkIcons_1.TrashIcon color={AppColors_1.AppColors.errorColor}size={15}/>
256
32
  </react_native_1.TouchableOpacity>
257
33
  </react_native_1.View>
258
34
  </react_native_1.View>
259
35
 
260
36
 
261
- <react_native_1.ScrollView horizontal showsHorizontalScrollIndicator={!1}style={{marginVertical:4,maxHeight:46}}contentContainerStyle={{paddingHorizontal:16,paddingBottom:4,flexDirection:"row",alignItems:"center",gap:8}}>
262
-
263
- {(()=>{const t=f.categories.has("all");return<TouchableScale_1.default onPress={()=>F("all")}>
264
- <react_native_1.View style={[styles_1.default.statusFilterChip,{backgroundColor:t?AppColors_1.AppColors.indigo600Alt:AppColors_1.AppColors.indigo50,borderColor:t?AppColors_1.AppColors.indigo600:AppColors_1.AppColors.indigo400,borderRadius:8,paddingHorizontal:10,paddingVertical:6},t&&{shadowColor:AppColors_1.AppColors.indigo600Alt,shadowOffset:{width:0,height:1},shadowOpacity:.28,shadowRadius:2.5,elevation:2}]}>
265
- <react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:6}}>
266
- <NetworkIcons_1.LayersIcon size={13}color={t?AppColors_1.AppColors.white:AppColors_1.AppColors.indigo600Alt}/>
267
- <react_native_1.Text numberOfLines={1}style={[styles_1.default.statusFilterText,{color:t?AppColors_1.AppColors.white:AppColors_1.AppColors.indigo600Alt,fontFamily:AppFonts_1.AppFonts.interBold}]}>
268
- {a("common.all","All")} ({V.totalCount})
269
- </react_native_1.Text>
270
- </react_native_1.View>
271
- </react_native_1.View>
272
- </TouchableScale_1.default>})()}
273
-
274
-
275
- {(()=>{const t=!f.categories.has("all")&&f.categories.has("ecommerce");return<TouchableScale_1.default onPress={()=>F("ecommerce")}>
276
- <react_native_1.View style={[styles_1.default.statusFilterChip,{backgroundColor:t?AppColors_1.AppColors.amber600:AppColors_1.AppColors.amber100,borderColor:t?AppColors_1.AppColors.amber700:AppColors_1.AppColors.amber200,borderRadius:8,paddingHorizontal:10,paddingVertical:6},t&&{shadowColor:AppColors_1.AppColors.amber600,shadowOffset:{width:0,height:1},shadowOpacity:.28,shadowRadius:2.5,elevation:2}]}>
277
- <react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:6}}>
278
- <NetworkIcons_1.CartIcon size={13}color={t?AppColors_1.AppColors.white:AppColors_1.AppColors.amber700}/>
279
- <react_native_1.Text numberOfLines={1}style={[styles_1.default.statusFilterText,{color:t?AppColors_1.AppColors.white:AppColors_1.AppColors.amber800Warm,fontFamily:AppFonts_1.AppFonts.interBold}]}>
280
- Ecommerce ({V.ecommerce})
281
- </react_native_1.Text>
282
- </react_native_1.View>
283
- </react_native_1.View>
284
- </TouchableScale_1.default>})()}
285
-
286
-
287
- {(()=>{const t=!f.categories.has("all")&&f.categories.has("page_view");return<TouchableScale_1.default onPress={()=>F("page_view")}>
288
- <react_native_1.View style={[styles_1.default.statusFilterChip,{backgroundColor:t?AppColors_1.AppColors.sky600:AppColors_1.AppColors.sky100,borderColor:t?AppColors_1.AppColors.blue700:AppColors_1.AppColors.sky400,borderRadius:8,paddingHorizontal:10,paddingVertical:6},t&&{shadowColor:AppColors_1.AppColors.sky600,shadowOffset:{width:0,height:1},shadowOpacity:.28,shadowRadius:2.5,elevation:2}]}>
289
- <react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:6}}>
290
- <NetworkIcons_1.GlobeIcon size={13}color={t?AppColors_1.AppColors.white:AppColors_1.AppColors.sky600}/>
291
- <react_native_1.Text numberOfLines={1}style={[styles_1.default.statusFilterText,{color:t?AppColors_1.AppColors.white:AppColors_1.AppColors.sky600,fontFamily:AppFonts_1.AppFonts.interBold}]}>
292
- Screens ({V.page_view})
37
+ <react_native_1.View style={{flexDirection:"row",alignItems:"center",marginBottom:8,paddingHorizontal:12,gap:6}}>
38
+ <react_native_1.ScrollView horizontal showsHorizontalScrollIndicator={!1}style={{flex:1}}contentContainerStyle={{flexDirection:"row",alignItems:"center",gap:6,paddingRight:6}}>
39
+ {[{id:"all",label:n("common.all","All"),count:u.totalCount,color:AppColors_1.AppColors.purple,Icon:NetworkIcons_1.LayersIcon},{id:"ecommerce",label:"Ecommerce",count:u.ecommerce,color:AppColors_1.AppColors.amber600,Icon:NetworkIcons_1.CartIcon},{id:"page_view",label:"Screens",count:u.page_view,color:AppColors_1.AppColors.sky600,Icon:NetworkIcons_1.GlobeIcon},{id:"system",label:"System",count:u.system,color:AppColors_1.AppColors.violet600,Icon:NetworkIcons_1.BoltIcon},{id:"custom",label:"Custom",count:u.custom,color:AppColors_1.AppColors.teal600,Icon:NetworkIcons_1.SparkleIcon}].map(e=>{const o=e.id==="all"?v.categories.has("all"):!v.categories.has("all")&&v.categories.has(e.id),t=e.color||AppColors_1.AppColors.purple,i=o?AppColors_1.AppColors.white:t,_=e.Icon;return<TouchableScale_1.default key={e.id}onPress={()=>$(e.id)}>
40
+ <react_native_1.View style={{flexDirection:"row",alignItems:"center",paddingHorizontal:9,paddingVertical:4.5,borderRadius:8,backgroundColor:o?t:`${t}12`,borderWidth:1,borderColor:o?t:`${t}30`,gap:5}}>
41
+ <_ size={11}color={i}/>
42
+ <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10.5,color:o?AppColors_1.AppColors.white:AppColors_1.AppColors.primaryBlack}}>
43
+ {e.label}
293
44
  </react_native_1.Text>
45
+ <react_native_1.View style={{backgroundColor:o?"rgba(255,255,255,0.25)":`${t}20`,paddingHorizontal:5,paddingVertical:1,borderRadius:8,alignItems:"center",justifyContent:"center"}}>
46
+ <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:o?AppColors_1.AppColors.white:t}}>
47
+ {e.count}
48
+ </react_native_1.Text>
49
+ </react_native_1.View>
294
50
  </react_native_1.View>
295
- </react_native_1.View>
296
- </TouchableScale_1.default>})()}
297
-
298
-
299
- {(()=>{const t=!f.categories.has("all")&&f.categories.has("system");return<TouchableScale_1.default onPress={()=>F("system")}>
300
- <react_native_1.View style={[styles_1.default.statusFilterChip,{backgroundColor:t?AppColors_1.AppColors.violet600:AppColors_1.AppColors.purple100,borderColor:t?AppColors_1.AppColors.purpleShade700:AppColors_1.AppColors.purple200,borderRadius:8,paddingHorizontal:10,paddingVertical:6},t&&{shadowColor:AppColors_1.AppColors.violet600,shadowOffset:{width:0,height:1},shadowOpacity:.28,shadowRadius:2.5,elevation:2}]}>
301
- <react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:6}}>
302
- <NetworkIcons_1.BoltIcon size={13}color={t?AppColors_1.AppColors.white:AppColors_1.AppColors.purple}/>
303
- <react_native_1.Text numberOfLines={1}style={[styles_1.default.statusFilterText,{color:t?AppColors_1.AppColors.white:AppColors_1.AppColors.brandPurple,fontFamily:AppFonts_1.AppFonts.interBold}]}>
304
- System ({V.system})
305
- </react_native_1.Text>
306
- </react_native_1.View>
307
- </react_native_1.View>
308
- </TouchableScale_1.default>})()}
309
-
310
-
311
- {(()=>{const t=!f.categories.has("all")&&f.categories.has("custom");return<TouchableScale_1.default onPress={()=>F("custom")}>
312
- <react_native_1.View style={[styles_1.default.statusFilterChip,{backgroundColor:t?AppColors_1.AppColors.pink600:AppColors_1.AppColors.pink100,borderColor:t?AppColors_1.AppColors.rose700:AppColors_1.AppColors.roseBorder,borderRadius:8,paddingHorizontal:10,paddingVertical:6},t&&{shadowColor:AppColors_1.AppColors.pink600,shadowOffset:{width:0,height:1},shadowOpacity:.28,shadowRadius:2.5,elevation:2}]}>
313
- <react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:6}}>
314
- <NetworkIcons_1.SparkleIcon size={13}color={t?AppColors_1.AppColors.white:AppColors_1.AppColors.brandPurple}/>
315
- <react_native_1.Text numberOfLines={1}style={[styles_1.default.statusFilterText,{color:t?AppColors_1.AppColors.white:AppColors_1.AppColors.pink600,fontFamily:AppFonts_1.AppFonts.interBold}]}>
316
- Custom ({V.custom})
317
- </react_native_1.Text>
318
- </react_native_1.View>
319
- </react_native_1.View>
320
- </TouchableScale_1.default>})()}
321
- </react_native_1.ScrollView>
51
+ </TouchableScale_1.default>})}
52
+ </react_native_1.ScrollView>
53
+ </react_native_1.View>
322
54
  </react_native_1.View>}
323
55
 
324
56
 
325
- <AnalyticsFilterModal_1.default visible={A}onClose={()=>T(!1)}/>
57
+ <AnalyticsFilterModal_1.default visible={q}onClose={()=>F(!1)}/>
326
58
 
327
- <react_native_1.View style={{flex:1}}onLayout={()=>b(!0)}>
328
- {D?<>
329
- <react_native_1.FlatList ref={u}data={r}keyExtractor={$}ListHeaderComponent={AnalyticsHeader}renderItem={y}initialNumToRender={12}maxToRenderPerBatch={8}windowSize={5}removeClippedSubviews={react_native_1.Platform.OS==="android"}renderToHardwareTextureAndroid={!0}ListEmptyComponent={<EmptyState_1.default isSearch={s.length>0}searchQuery={s}customTitle={s.length>0?"No matching analytics events":"No analytics events yet"}customSub={s.length>0?`No events matched "${s}"`:"Call setupAnalyticsLogger(analytics()) at app start."}onClearSearch={()=>p("")}/>}ListFooterComponent={r.length>0?<EndOfListFooter_1.default count={r.length}label="events"/>:null}contentContainerStyle={[styles_1.default.listContent,r.length===0&&{flexGrow:1}]}keyboardShouldPersistTaps="handled"/>
59
+ <react_native_1.View style={{flex:1}}onLayout={()=>E(!0)}>
60
+ {B?<>
61
+ <react_native_1.FlatList ref={R}data={S}keyExtractor={j}renderItem={H}getItemLayout={W}initialNumToRender={15}maxToRenderPerBatch={10}windowSize={9}removeClippedSubviews={react_native_1.Platform.OS==="android"}renderToHardwareTextureAndroid={!0}ListEmptyComponent={<EmptyState_1.default isSearch={a.length>0}searchQuery={a}customTitle={a.length>0?"No matching analytics events":"No analytics events yet"}customSub={a.length>0?`No events matched "${a}"`:"Call setupAnalyticsLogger(analytics()) at app start."}onClearSearch={()=>s("")}/>}ListFooterComponent={r.length>0?<EndOfListFooter_1.default count={S.length}totalCount={r.length}label="events"hasMore={S.length<r.length}onLoadMore={()=>D(e=>e+10)}/>:null}contentContainerStyle={[styles_1.default.listContent,r.length===0&&{flexGrow:1}]}keyboardShouldPersistTaps="handled"/>
330
62
  </>:null}
331
63
  </react_native_1.View>
332
64
  </>});exports.default=AnalyticsTab;