react-native-inapp-inspector 2.3.24 → 2.4.0

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 (207) hide show
  1. package/README.md +26 -5
  2. package/dist/commonjs/components/AnalyticsDetail.js +15 -12
  3. package/dist/commonjs/components/AnalyticsEventCard.js +11 -8
  4. package/dist/commonjs/components/AppHeaderLogo.js +4 -6
  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/AnalyticsFilterModal.js +1 -1
  10. package/dist/commonjs/components/Inspector/AnalyticsTab.js +27 -299
  11. package/dist/commonjs/components/Inspector/ConsoleTab.js +36 -94
  12. package/dist/commonjs/components/Inspector/CrashDetail.js +11 -10
  13. package/dist/commonjs/components/Inspector/CrashTab.js +43 -33
  14. package/dist/commonjs/components/Inspector/DebuggingTab.js +13 -13
  15. package/dist/commonjs/components/Inspector/DeviceInfoTab.js +107 -71
  16. package/dist/commonjs/components/Inspector/FabLauncher.js +8 -9
  17. package/dist/commonjs/components/Inspector/InspectorHeader.js +93 -70
  18. package/dist/commonjs/components/Inspector/LogDetail.js +10 -7
  19. package/dist/commonjs/components/Inspector/MainScreen.js +66 -30
  20. package/dist/commonjs/components/Inspector/MediaGalleryTab.js +1 -1
  21. package/dist/commonjs/components/Inspector/MediaPreviewModal.js +3 -3
  22. package/dist/commonjs/components/Inspector/NetworkDetail.js +29 -28
  23. package/dist/commonjs/components/Inspector/NetworkFilterModal.js +1 -1
  24. package/dist/commonjs/components/Inspector/NetworkTab.js +87 -85
  25. package/dist/commonjs/components/Inspector/NpmStarPrompt.js +3 -3
  26. package/dist/commonjs/components/Inspector/NpmUpdateToast.js +21 -22
  27. package/dist/commonjs/components/Inspector/PushCard.d.ts +4 -0
  28. package/dist/commonjs/components/Inspector/PushCard.js +89 -0
  29. package/dist/commonjs/components/Inspector/PushDetail.d.ts +4 -0
  30. package/dist/commonjs/components/Inspector/PushDetail.js +190 -0
  31. package/dist/commonjs/components/Inspector/PushTab.d.ts +3 -0
  32. package/dist/commonjs/components/Inspector/PushTab.js +45 -0
  33. package/dist/commonjs/components/Inspector/ReduxDetail.js +16 -13
  34. package/dist/commonjs/components/Inspector/ReduxTab.js +109 -106
  35. package/dist/commonjs/components/Inspector/SettingsPanel.js +230 -134
  36. package/dist/commonjs/components/Inspector/StorageTab.js +55 -51
  37. package/dist/commonjs/components/Inspector/TabBar.js +30 -26
  38. package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +2 -2
  39. package/dist/commonjs/components/JsonViewer.js +151 -159
  40. package/dist/commonjs/components/LogCard.js +34 -38
  41. package/dist/commonjs/components/LogSyntaxHighlighter.js +3 -3
  42. package/dist/commonjs/components/ModuleErrorBoundary.d.ts +24 -0
  43. package/dist/commonjs/components/ModuleErrorBoundary.js +33 -0
  44. package/dist/commonjs/components/NetworkIcons.d.ts +3 -3
  45. package/dist/commonjs/components/NetworkIcons.js +10 -6
  46. package/dist/commonjs/components/SegmentedTabs.d.ts +8 -2
  47. package/dist/commonjs/components/SegmentedTabs.js +11 -7
  48. package/dist/commonjs/components/ShareButton.d.ts +11 -0
  49. package/dist/commonjs/components/ShareButton.js +6 -0
  50. package/dist/commonjs/constants/index.js +1 -1
  51. package/dist/commonjs/constants/version.d.ts +1 -1
  52. package/dist/commonjs/constants/version.js +1 -1
  53. package/dist/commonjs/customHooks/crashHandler.js +4 -4
  54. package/dist/commonjs/customHooks/networkLogger.js +1 -2
  55. package/dist/commonjs/customHooks/pushNotificationLogger.d.ts +19 -0
  56. package/dist/commonjs/customHooks/pushNotificationLogger.js +1 -0
  57. package/dist/commonjs/helpers/index.d.ts +6 -0
  58. package/dist/commonjs/helpers/index.js +4 -4
  59. package/dist/commonjs/helpers/memoryManager.d.ts +2 -2
  60. package/dist/commonjs/helpers/memoryManager.js +1 -1
  61. package/dist/commonjs/helpers/remoteConfig.js +1 -1
  62. package/dist/commonjs/helpers/settingsStore.d.ts +1 -0
  63. package/dist/commonjs/helpers/settingsStore.js +1 -1
  64. package/dist/commonjs/helpers/shareFormatter.d.ts +13 -0
  65. package/dist/commonjs/helpers/shareFormatter.js +7 -0
  66. package/dist/commonjs/i18n/index.d.ts +35 -0
  67. package/dist/commonjs/i18n/index.js +1 -1
  68. package/dist/commonjs/i18n/locales/ar.json +1 -0
  69. package/dist/commonjs/i18n/locales/de.json +1 -0
  70. package/dist/commonjs/i18n/locales/en.json +1 -1
  71. package/dist/commonjs/i18n/locales/es.json +1 -0
  72. package/dist/commonjs/i18n/locales/fr.json +1 -0
  73. package/dist/commonjs/i18n/locales/hi.json +1 -0
  74. package/dist/commonjs/i18n/locales/ja.json +1 -0
  75. package/dist/commonjs/i18n/locales/ko.json +1 -0
  76. package/dist/commonjs/i18n/locales/pt.json +1 -0
  77. package/dist/commonjs/i18n/locales/ru.json +1 -0
  78. package/dist/commonjs/i18n/locales/zh.json +1 -0
  79. package/dist/commonjs/index.d.ts +6 -5
  80. package/dist/commonjs/index.js +4 -4
  81. package/dist/commonjs/push.d.ts +4 -0
  82. package/dist/commonjs/push.js +1 -0
  83. package/dist/commonjs/styles/AppColors.d.ts +40 -0
  84. package/dist/commonjs/styles/AppColors.js +1 -1
  85. package/dist/commonjs/styles/index.js +1 -1
  86. package/dist/commonjs/types/enums.d.ts +30 -20
  87. package/dist/commonjs/types/enums.js +1 -1
  88. package/dist/commonjs/types/index.d.ts +10 -0
  89. package/dist/commonjs/types/interfaces.d.ts +63 -7
  90. package/dist/esm/components/AnalyticsDetail.js +84 -81
  91. package/dist/esm/components/AnalyticsEventCard.js +20 -17
  92. package/dist/esm/components/AppHeaderLogo.js +5 -7
  93. package/dist/esm/components/ConsoleLogCard.d.ts +1 -0
  94. package/dist/esm/components/ConsoleLogCard.js +98 -86
  95. package/dist/esm/components/EndOfListFooter.d.ts +5 -1
  96. package/dist/esm/components/EndOfListFooter.js +36 -14
  97. package/dist/esm/components/Inspector/AnalyticsFilterModal.js +14 -14
  98. package/dist/esm/components/Inspector/AnalyticsTab.js +44 -316
  99. package/dist/esm/components/Inspector/ConsoleTab.js +55 -113
  100. package/dist/esm/components/Inspector/CrashDetail.js +53 -52
  101. package/dist/esm/components/Inspector/CrashTab.js +74 -64
  102. package/dist/esm/components/Inspector/DebuggingTab.js +33 -33
  103. package/dist/esm/components/Inspector/DeviceInfoTab.js +174 -138
  104. package/dist/esm/components/Inspector/FabLauncher.js +41 -42
  105. package/dist/esm/components/Inspector/InspectorHeader.js +138 -115
  106. package/dist/esm/components/Inspector/LogDetail.js +24 -21
  107. package/dist/esm/components/Inspector/MainScreen.js +98 -62
  108. package/dist/esm/components/Inspector/MediaGalleryTab.js +1 -1
  109. package/dist/esm/components/Inspector/MediaPreviewModal.js +31 -31
  110. package/dist/esm/components/Inspector/NetworkDetail.js +88 -87
  111. package/dist/esm/components/Inspector/NetworkFilterModal.js +8 -8
  112. package/dist/esm/components/Inspector/NetworkTab.js +132 -130
  113. package/dist/esm/components/Inspector/NpmStarPrompt.js +42 -42
  114. package/dist/esm/components/Inspector/NpmUpdateToast.js +45 -46
  115. package/dist/esm/components/Inspector/PushCard.d.ts +4 -0
  116. package/dist/esm/components/Inspector/PushCard.js +89 -0
  117. package/dist/esm/components/Inspector/PushDetail.d.ts +4 -0
  118. package/dist/esm/components/Inspector/PushDetail.js +190 -0
  119. package/dist/esm/components/Inspector/PushTab.d.ts +3 -0
  120. package/dist/esm/components/Inspector/PushTab.js +45 -0
  121. package/dist/esm/components/Inspector/ReduxDetail.js +40 -37
  122. package/dist/esm/components/Inspector/ReduxTab.js +155 -152
  123. package/dist/esm/components/Inspector/SettingsPanel.js +380 -284
  124. package/dist/esm/components/Inspector/StorageTab.js +177 -173
  125. package/dist/esm/components/Inspector/TabBar.js +38 -34
  126. package/dist/esm/components/Inspector/UpdateAvailableModal.js +1 -1
  127. package/dist/esm/components/JsonViewer.js +161 -169
  128. package/dist/esm/components/LogCard.js +38 -42
  129. package/dist/esm/components/LogSyntaxHighlighter.js +1 -1
  130. package/dist/esm/components/ModuleErrorBoundary.d.ts +24 -0
  131. package/dist/esm/components/ModuleErrorBoundary.js +33 -0
  132. package/dist/esm/components/NetworkIcons.d.ts +3 -3
  133. package/dist/esm/components/NetworkIcons.js +7 -3
  134. package/dist/esm/components/SegmentedTabs.d.ts +8 -2
  135. package/dist/esm/components/SegmentedTabs.js +12 -8
  136. package/dist/esm/components/ShareButton.d.ts +11 -0
  137. package/dist/esm/components/ShareButton.js +6 -0
  138. package/dist/esm/constants/index.js +1 -1
  139. package/dist/esm/constants/version.d.ts +1 -1
  140. package/dist/esm/constants/version.js +1 -1
  141. package/dist/esm/customHooks/crashHandler.js +6 -6
  142. package/dist/esm/customHooks/networkLogger.js +1 -2
  143. package/dist/esm/customHooks/pushNotificationLogger.d.ts +19 -0
  144. package/dist/esm/customHooks/pushNotificationLogger.js +1 -0
  145. package/dist/esm/helpers/index.d.ts +6 -0
  146. package/dist/esm/helpers/index.js +4 -4
  147. package/dist/esm/helpers/memoryManager.d.ts +2 -2
  148. package/dist/esm/helpers/memoryManager.js +1 -1
  149. package/dist/esm/helpers/remoteConfig.js +1 -1
  150. package/dist/esm/helpers/settingsStore.d.ts +1 -0
  151. package/dist/esm/helpers/settingsStore.js +1 -1
  152. package/dist/esm/helpers/shareFormatter.d.ts +13 -0
  153. package/dist/esm/helpers/shareFormatter.js +7 -0
  154. package/dist/esm/i18n/index.d.ts +35 -0
  155. package/dist/esm/i18n/index.js +1 -1
  156. package/dist/esm/i18n/locales/ar.json +1 -0
  157. package/dist/esm/i18n/locales/de.json +1 -0
  158. package/dist/esm/i18n/locales/en.json +1 -1
  159. package/dist/esm/i18n/locales/es.json +1 -0
  160. package/dist/esm/i18n/locales/fr.json +1 -0
  161. package/dist/esm/i18n/locales/hi.json +1 -0
  162. package/dist/esm/i18n/locales/ja.json +1 -0
  163. package/dist/esm/i18n/locales/ko.json +1 -0
  164. package/dist/esm/i18n/locales/pt.json +1 -0
  165. package/dist/esm/i18n/locales/ru.json +1 -0
  166. package/dist/esm/i18n/locales/zh.json +1 -0
  167. package/dist/esm/index.d.ts +6 -5
  168. package/dist/esm/index.js +7 -7
  169. package/dist/esm/push.d.ts +4 -0
  170. package/dist/esm/push.js +1 -0
  171. package/dist/esm/styles/AppColors.d.ts +40 -0
  172. package/dist/esm/styles/AppColors.js +1 -1
  173. package/dist/esm/styles/index.js +1 -1
  174. package/dist/esm/types/enums.d.ts +30 -20
  175. package/dist/esm/types/enums.js +1 -1
  176. package/dist/esm/types/index.d.ts +10 -0
  177. package/dist/esm/types/interfaces.d.ts +63 -7
  178. package/package.json +53 -24
  179. package/src/native/NativeInspector.ts +0 -1
  180. package/dist/commonjs/bundle.d.ts +0 -2
  181. package/dist/commonjs/bundle.js +0 -1
  182. package/dist/commonjs/components/BrandSquareIcon.d.ts +0 -5
  183. package/dist/commonjs/components/BrandSquareIcon.js +0 -112
  184. package/dist/commonjs/components/Inspector/BundleTab.d.ts +0 -48
  185. package/dist/commonjs/components/Inspector/BundleTab.js +0 -1297
  186. package/dist/commonjs/components/Inspector/PerformanceTab.d.ts +0 -27
  187. package/dist/commonjs/components/Inspector/PerformanceTab.js +0 -454
  188. package/dist/commonjs/customHooks/bundleAnalyzer.d.ts +0 -115
  189. package/dist/commonjs/customHooks/bundleAnalyzer.js +0 -1
  190. package/dist/commonjs/customHooks/performanceTracker.d.ts +0 -144
  191. package/dist/commonjs/customHooks/performanceTracker.js +0 -63
  192. package/dist/commonjs/performance.d.ts +0 -2
  193. package/dist/commonjs/performance.js +0 -1
  194. package/dist/esm/bundle.d.ts +0 -2
  195. package/dist/esm/bundle.js +0 -1
  196. package/dist/esm/components/BrandSquareIcon.d.ts +0 -5
  197. package/dist/esm/components/BrandSquareIcon.js +0 -112
  198. package/dist/esm/components/Inspector/BundleTab.d.ts +0 -48
  199. package/dist/esm/components/Inspector/BundleTab.js +0 -1297
  200. package/dist/esm/components/Inspector/PerformanceTab.d.ts +0 -27
  201. package/dist/esm/components/Inspector/PerformanceTab.js +0 -454
  202. package/dist/esm/customHooks/bundleAnalyzer.d.ts +0 -115
  203. package/dist/esm/customHooks/bundleAnalyzer.js +0 -1
  204. package/dist/esm/customHooks/performanceTracker.d.ts +0 -144
  205. package/dist/esm/customHooks/performanceTracker.js +0 -63
  206. package/dist/esm/performance.d.ts +0 -2
  207. package/dist/esm/performance.js +0 -1
@@ -1,15 +1,37 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.EndOfListFooter=void 0;const react_1=__importDefault(require("react")),react_native_1=require("react-native"),AppColors_1=require("../styles/AppColors"),AppFonts_1=require("../styles/AppFonts"),NetworkIcons_1=require("./NetworkIcons");exports.EndOfListFooter=react_1.default.memo(({count:e,label:t,message:o="You've reached the end of the list"})=><react_native_1.View style={styles.container}>
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.EndOfListFooter=void 0;const react_1=__importDefault(require("react")),react_native_1=require("react-native"),AppColors_1=require("../styles/AppColors"),AppFonts_1=require("../styles/AppFonts"),NetworkIcons_1=require("./NetworkIcons"),TouchableScale_1=__importDefault(require("./TouchableScale")),i18n_1=require("../i18n");exports.EndOfListFooter=react_1.default.memo(({count:e,totalCount:o,label:r="items",message:s,hasMore:d=!1,onLoadMore:i,loadMoreStep:a=10})=>{const{t:n}=(0,i18n_1.useTranslation)(),c=s??n("footer.endOfList","You've reached the end of the list"),p=d||o!=null&&e!=null&&e<o&&!!i,g=o!=null&&e!=null?Math.max(0,o-e):a,l=Math.min(g||a,a);if(p&&i)return<react_native_1.View style={styles.container}>
2
+ <react_native_1.View style={styles.dividerLine}/>
3
+ <react_native_1.View style={styles.loadMoreContainer}>
4
+ <TouchableScale_1.default onPress={i}hitSlop={6}style={styles.loadMoreBtn}>
5
+ <react_native_1.View style={styles.loadMoreIconWrap}>
6
+ <NetworkIcons_1.ChevronIcon color={AppColors_1.AppColors.white}size={9}direction="down"/>
7
+ </react_native_1.View>
8
+ <react_native_1.Text style={styles.loadMoreBtnText}>
9
+ {n("footer.loadMore",{count:l,defaultValue:`Load ${l} More`})}
10
+ </react_native_1.Text>
11
+ {o!=null&&e!=null&&<react_native_1.View style={styles.loadMoreCountBadge}>
12
+ <react_native_1.Text style={styles.loadMoreCountText}>
13
+ {e}/{o}
14
+ </react_native_1.Text>
15
+ </react_native_1.View>}
16
+ </TouchableScale_1.default>
17
+ {o!=null&&e!=null&&<react_native_1.Text style={styles.loadMoreSubtitle}>
18
+ {n("footer.showingOf",{count:e,total:o,label:r,defaultValue:`Showing ${e} of ${o} ${r}`})}
19
+ </react_native_1.Text>}
20
+ </react_native_1.View>
21
+ <react_native_1.View style={styles.dividerLine}/>
22
+ </react_native_1.View>;const t=e??o;return<react_native_1.View style={styles.container}>
2
23
  <react_native_1.View style={styles.dividerLine}/>
3
24
  <react_native_1.View style={styles.badgePill}>
4
25
  <react_native_1.View style={styles.iconCircle}>
5
26
  <NetworkIcons_1.CheckIcon color={AppColors_1.AppColors.purple}size={8}/>
6
27
  </react_native_1.View>
7
- <react_native_1.Text style={styles.messageText}>{o}</react_native_1.Text>
8
- {e!=null&&e>0&&<react_native_1.View style={styles.countBadge}>
28
+ <react_native_1.Text style={styles.messageText}>{c}</react_native_1.Text>
29
+ {t!=null&&t>0&&<react_native_1.View style={styles.countBadge}>
9
30
  <react_native_1.Text style={styles.countText}>
10
- {e} {t?e===1?t.replace(/s$/,""):t:""}
31
+ {t}{" "}
32
+ {r?t===1?r.replace(/s$/,""):r:""}
11
33
  </react_native_1.Text>
12
34
  </react_native_1.View>}
13
35
  </react_native_1.View>
14
36
  <react_native_1.View style={styles.dividerLine}/>
15
- </react_native_1.View>);const styles=react_native_1.StyleSheet.create({container:{flexDirection:"row",alignItems:"center",justifyContent:"center",paddingHorizontal:16,paddingTop:16,paddingBottom:react_native_1.Platform.OS==="ios"?44:32,gap:8},dividerLine:{flex:1,height:1,backgroundColor:AppColors_1.AppColors.dividerColor,opacity:.7},badgePill:{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:10,paddingVertical:5,borderRadius:999,backgroundColor:AppColors_1.AppColors.primaryLight,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary,shadowColor:AppColors_1.AppColors.black,shadowOffset:{width:0,height:1},shadowOpacity:.04,shadowRadius:2,elevation:1},iconCircle:{width:14,height:14,borderRadius:7,backgroundColor:`${AppColors_1.AppColors.purple}18`,alignItems:"center",justifyContent:"center"},messageText:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:11,color:AppColors_1.AppColors.grayTextWeak,letterSpacing:.1},countBadge:{paddingHorizontal:5,paddingVertical:1,borderRadius:6,backgroundColor:AppColors_1.AppColors.grayBackground,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary},countText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:AppColors_1.AppColors.grayTextStrong}});exports.default=exports.EndOfListFooter;
37
+ </react_native_1.View>});const styles=react_native_1.StyleSheet.create({container:{flexDirection:"row",alignItems:"center",justifyContent:"center",paddingHorizontal:16,paddingTop:14,paddingBottom:react_native_1.Platform.OS==="ios"?40:28,gap:8},dividerLine:{flex:1,height:1,backgroundColor:AppColors_1.AppColors.dividerColor,opacity:.7},loadMoreContainer:{alignItems:"center",gap:5},loadMoreBtn:{flexDirection:"row",alignItems:"center",backgroundColor:AppColors_1.AppColors.brandPurple,paddingVertical:6,paddingHorizontal:12,borderRadius:20,gap:6,shadowColor:AppColors_1.AppColors.brandPurple,shadowOffset:{width:0,height:2},shadowOpacity:.25,shadowRadius:4,elevation:2,borderWidth:1,borderColor:"rgba(255, 255, 255, 0.2)"},loadMoreIconWrap:{width:15,height:15,borderRadius:7.5,backgroundColor:"rgba(255, 255, 255, 0.25)",alignItems:"center",justifyContent:"center"},loadMoreBtnText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:11,color:AppColors_1.AppColors.white,letterSpacing:.2},loadMoreCountBadge:{backgroundColor:"rgba(255, 255, 255, 0.2)",paddingHorizontal:5,paddingVertical:1,borderRadius:10},loadMoreCountText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:AppColors_1.AppColors.white},loadMoreSubtitle:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:10,color:AppColors_1.AppColors.grayTextWeak,letterSpacing:.1},badgePill:{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:10,paddingVertical:5,borderRadius:999,backgroundColor:AppColors_1.AppColors.primaryLight,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary,shadowColor:AppColors_1.AppColors.black,shadowOffset:{width:0,height:1},shadowOpacity:.04,shadowRadius:2,elevation:1},iconCircle:{width:14,height:14,borderRadius:7,backgroundColor:`${AppColors_1.AppColors.purple}18`,alignItems:"center",justifyContent:"center"},messageText:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:11,color:AppColors_1.AppColors.grayTextWeak,letterSpacing:.1},countBadge:{paddingHorizontal:5,paddingVertical:1,borderRadius:6,backgroundColor:AppColors_1.AppColors.grayBackground,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary},countText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:AppColors_1.AppColors.grayTextStrong}});exports.default=exports.EndOfListFooter;
@@ -1,4 +1,4 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(a,i,n,o){o===void 0&&(o=n);var s=Object.getOwnPropertyDescriptor(i,n);(!s||("get"in s?!i.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return i[n]}}),Object.defineProperty(a,o,s)}):(function(a,i,n,o){o===void 0&&(o=n),a[o]=i[n]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(a,i){Object.defineProperty(a,"default",{enumerable:!0,value:i})}):function(a,i){a.default=i}),__importStar=this&&this.__importStar||(function(){var a=function(i){return a=Object.getOwnPropertyNames||function(n){var o=[];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(o[o.length]=s);return o},a(i)};return function(i){if(i&&i.__esModule)return i;var n={};if(i!=null)for(var o=a(i),s=0;s<o.length;s++)o[s]!=="default"&&__createBinding(n,i,o[s]);return __setModuleDefault(n,i),n}})(),__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"),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),helpers_1=require("../../helpers"),NetworkIcons_1=require("../NetworkIcons"),TouchableScale_1=__importDefault(require("../TouchableScale")),DEFAULT_FILTERS={categories:new Set(["all"]),screens:new Set,sources:new Set(["all"]),userTypes:new Set(["all"]),timeWindow:"all",payloadComplexity:"all",hasRevenue:!1,hasItems:!1,hasUserProps:!1,hasParams:!1,onlyDuplicates:!1,onlyConversions:!1,sortBy:"time_desc"},AnalyticsFilterModal=({visible:a,onClose:i})=>{const{analyticsEvents:n,analyticsSearch:o,analyticsFilters:s,setAnalyticsFilters:v}=(0,InspectorContext_1.useInspector)(),[e,c]=(0,react_1.useState)(()=>({...s,categories:new Set(s.categories),screens:new Set(s.screens),sources:new Set(s.sources||["all"]),userTypes:new Set(s.userTypes||["all"])}));(0,react_1.useEffect)(()=>{a&&c({...s,categories:new Set(s.categories),screens:new Set(s.screens),sources:new Set(s.sources||["all"]),userTypes:new Set(s.userTypes||["all"])})},[a,s]);const y=(0,react_1.useMemo)(()=>{const t=new Set;for(const l of n){const r=l.screenName||l.params?.firebase_screen||l.params?.screen_name||l.params?.firebase_screen_class||l.screenClass;r&&typeof r=="string"&&r.trim()!==""&&t.add(r.trim())}return Array.from(t)},[n]),u=t=>{c(l=>{const r=new Set(l.categories);return t==="all"?{...l,categories:new Set(["all"])}:(r.delete("all"),r.has(t)?(r.delete(t),r.size===0&&r.add("all")):r.add(t),{...l,categories:r})})},C=t=>{c(l=>{const r=new Set(l.screens);return r.has(t)?r.delete(t):r.add(t),{...l,screens:r}})},_=t=>{c(l=>{const r=new Set(l.sources);return t==="all"?{...l,sources:new Set(["all"])}:(r.delete("all"),r.has(t)?(r.delete(t),r.size===0&&r.add("all")):r.add(t),{...l,sources:r})})},T=t=>{c(l=>{const r=new Set(l.userTypes);return t==="all"?{...l,userTypes:new Set(["all"])}:(r.delete("all"),r.has(t)?(r.delete(t),r.size===0&&r.add("all")):r.add(t),{...l,userTypes:r})})},p=t=>{c(l=>({...l,[t]:!l[t]}))},A=t=>{c(l=>({...l,timeWindow:t}))},m=t=>{c(l=>({...l,payloadComplexity:t}))},d=t=>{c(l=>({...l,sortBy:t}))},g=()=>{c({categories:new Set(["all"]),screens:new Set,sources:new Set(["all"]),userTypes:new Set(["all"]),timeWindow:"all",payloadComplexity:"all",hasRevenue:!1,hasItems:!1,hasUserProps:!1,hasParams:!1,onlyDuplicates:!1,onlyConversions:!1,sortBy:"time_desc"})},b=()=>{v({...e,categories:new Set(e.categories),screens:new Set(e.screens),sources:new Set(e.sources),userTypes:new Set(e.userTypes)}),i()},f=()=>{c({...s,categories:new Set(s.categories),screens:new Set(s.screens),sources:new Set(s.sources||["all"]),userTypes:new Set(s.userTypes||["all"])}),i()},S=(0,react_1.useMemo)(()=>{let t=n;if(o){const l=o.toLowerCase();t=t.filter(r=>r.name.toLowerCase().includes(l)||JSON.stringify(r.params||{}).toLowerCase().includes(l)||(r.screenName??"").toLowerCase().includes(l)||(r.pageTitle??"").toLowerCase().includes(l))}if(e.categories.size>0&&!e.categories.has("all")&&(t=t.filter(l=>{const r=(0,helpers_1.getEventCategory)(l.name);return e.categories.has(r)})),e.timeWindow!=="all"){const l=Date.now(),r=e.timeWindow==="1m"?l-60*1e3:e.timeWindow==="5m"?l-300*1e3:e.timeWindow==="15m"?l-900*1e3:l-3600*1e3;t=t.filter(P=>P.timestamp>=r)}if(e.sources.size>0&&!e.sources.has("all")&&(t=t.filter(l=>e.sources.has(l.source||"manual"))),e.userTypes.size>0&&!e.userTypes.has("all")&&(t=t.filter(l=>{const r=!!(l.userId&&l.userId.trim()!=="");return!!(e.userTypes.has("identified")&&r||e.userTypes.has("anonymous")&&!r)})),e.payloadComplexity!=="all"&&(t=t.filter(l=>{const r=l.params?Object.keys(l.params).length:0;return e.payloadComplexity==="none"?r===0:e.payloadComplexity==="simple"?r>=1&&r<=5:e.payloadComplexity==="heavy"?r>5:!0})),e.onlyConversions){const l=["purchase","item_purchase","ecommerce_purchase","sign_up","login","lead","generate_lead","tutorial_complete","add_payment_info","begin_checkout"];t=t.filter(r=>l.some(P=>r.name.toLowerCase().includes(P)))}return e.screens.size>0&&(t=t.filter(l=>{const r=l.screenName||l.params?.firebase_screen||l.params?.screen_name||l.params?.firebase_screen_class||l.screenClass||"";return e.screens.has(r)})),e.hasRevenue&&(t=t.filter(l=>{const r=l.params?.value??l.params?.price;return r!=null&&Number(r)>0})),e.hasItems&&(t=t.filter(l=>Array.isArray(l.params?.items)&&l.params.items.length>0)),e.hasUserProps&&(t=t.filter(l=>l.userProperties&&Object.keys(l.userProperties).length>0)),e.hasParams&&(t=t.filter(l=>l.params&&Object.keys(l.params).length>0)),t.length},[n,o,e]),h=e.categories.has("all")||e.categories.size===0,w=e.sources.has("all")||e.sources.size===0,x=e.userTypes.has("all")||e.userTypes.size===0;return<react_native_1.Modal visible={a}transparent animationType="fade"onRequestClose={f}>
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(a,i,n,o){o===void 0&&(o=n);var s=Object.getOwnPropertyDescriptor(i,n);(!s||("get"in s?!i.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return i[n]}}),Object.defineProperty(a,o,s)}):(function(a,i,n,o){o===void 0&&(o=n),a[o]=i[n]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(a,i){Object.defineProperty(a,"default",{enumerable:!0,value:i})}):function(a,i){a.default=i}),__importStar=this&&this.__importStar||(function(){var a=function(i){return a=Object.getOwnPropertyNames||function(n){var o=[];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(o[o.length]=s);return o},a(i)};return function(i){if(i&&i.__esModule)return i;var n={};if(i!=null)for(var o=a(i),s=0;s<o.length;s++)o[s]!=="default"&&__createBinding(n,i,o[s]);return __setModuleDefault(n,i),n}})(),__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"),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),helpers_1=require("../../helpers"),NetworkIcons_1=require("../NetworkIcons"),TouchableScale_1=__importDefault(require("../TouchableScale")),AnalyticsFilterModal=({visible:a,onClose:i})=>{const{analyticsEvents:n,analyticsSearch:o,analyticsFilters:s,setAnalyticsFilters:v}=(0,InspectorContext_1.useInspector)(),[e,c]=(0,react_1.useState)(()=>({...s,categories:new Set(s.categories),screens:new Set(s.screens),sources:new Set(s.sources||["all"]),userTypes:new Set(s.userTypes||["all"])}));(0,react_1.useEffect)(()=>{a&&c({...s,categories:new Set(s.categories),screens:new Set(s.screens),sources:new Set(s.sources||["all"]),userTypes:new Set(s.userTypes||["all"])})},[a,s]);const y=(0,react_1.useMemo)(()=>{const t=new Set;for(const l of n){const r=l.screenName||l.params?.firebase_screen||l.params?.screen_name||l.params?.firebase_screen_class||l.screenClass;r&&typeof r=="string"&&r.trim()!==""&&t.add(r.trim())}return Array.from(t)},[n]),u=t=>{c(l=>{const r=new Set(l.categories);return t==="all"?{...l,categories:new Set(["all"])}:(r.delete("all"),r.has(t)?(r.delete(t),r.size===0&&r.add("all")):r.add(t),{...l,categories:r})})},C=t=>{c(l=>{const r=new Set(l.screens);return r.has(t)?r.delete(t):r.add(t),{...l,screens:r}})},_=t=>{c(l=>{const r=new Set(l.sources);return t==="all"?{...l,sources:new Set(["all"])}:(r.delete("all"),r.has(t)?(r.delete(t),r.size===0&&r.add("all")):r.add(t),{...l,sources:r})})},T=t=>{c(l=>{const r=new Set(l.userTypes);return t==="all"?{...l,userTypes:new Set(["all"])}:(r.delete("all"),r.has(t)?(r.delete(t),r.size===0&&r.add("all")):r.add(t),{...l,userTypes:r})})},p=t=>{c(l=>({...l,[t]:!l[t]}))},A=t=>{c(l=>({...l,timeWindow:t}))},m=t=>{c(l=>({...l,payloadComplexity:t}))},d=t=>{c(l=>({...l,sortBy:t}))},g=()=>{c({categories:new Set(["all"]),screens:new Set,sources:new Set(["all"]),userTypes:new Set(["all"]),timeWindow:"all",payloadComplexity:"all",hasRevenue:!1,hasItems:!1,hasUserProps:!1,hasParams:!1,onlyDuplicates:!1,onlyConversions:!1,sortBy:"time_desc"})},b=()=>{v({...e,categories:new Set(e.categories),screens:new Set(e.screens),sources:new Set(e.sources),userTypes:new Set(e.userTypes)}),i()},f=()=>{c({...s,categories:new Set(s.categories),screens:new Set(s.screens),sources:new Set(s.sources||["all"]),userTypes:new Set(s.userTypes||["all"])}),i()},S=(0,react_1.useMemo)(()=>{let t=n;if(o){const l=o.toLowerCase();t=t.filter(r=>r.name.toLowerCase().includes(l)||JSON.stringify(r.params||{}).toLowerCase().includes(l)||(r.screenName??"").toLowerCase().includes(l)||(r.pageTitle??"").toLowerCase().includes(l))}if(e.categories.size>0&&!e.categories.has("all")&&(t=t.filter(l=>{const r=(0,helpers_1.getEventCategory)(l.name);return e.categories.has(r)})),e.timeWindow!=="all"){const l=Date.now(),r=e.timeWindow==="1m"?l-60*1e3:e.timeWindow==="5m"?l-300*1e3:e.timeWindow==="15m"?l-900*1e3:l-3600*1e3;t=t.filter(P=>P.timestamp>=r)}if(e.sources.size>0&&!e.sources.has("all")&&(t=t.filter(l=>e.sources.has(l.source||"manual"))),e.userTypes.size>0&&!e.userTypes.has("all")&&(t=t.filter(l=>{const r=!!(l.userId&&l.userId.trim()!=="");return!!(e.userTypes.has("identified")&&r||e.userTypes.has("anonymous")&&!r)})),e.payloadComplexity!=="all"&&(t=t.filter(l=>{const r=l.params?Object.keys(l.params).length:0;return e.payloadComplexity==="none"?r===0:e.payloadComplexity==="simple"?r>=1&&r<=5:e.payloadComplexity==="heavy"?r>5:!0})),e.onlyConversions){const l=["purchase","item_purchase","ecommerce_purchase","sign_up","login","lead","generate_lead","tutorial_complete","add_payment_info","begin_checkout"];t=t.filter(r=>l.some(P=>r.name.toLowerCase().includes(P)))}return e.screens.size>0&&(t=t.filter(l=>{const r=l.screenName||l.params?.firebase_screen||l.params?.screen_name||l.params?.firebase_screen_class||l.screenClass||"";return e.screens.has(r)})),e.hasRevenue&&(t=t.filter(l=>{const r=l.params?.value??l.params?.price;return r!=null&&Number(r)>0})),e.hasItems&&(t=t.filter(l=>Array.isArray(l.params?.items)&&l.params.items.length>0)),e.hasUserProps&&(t=t.filter(l=>l.userProperties&&Object.keys(l.userProperties).length>0)),e.hasParams&&(t=t.filter(l=>l.params&&Object.keys(l.params).length>0)),t.length},[n,o,e]),h=e.categories.has("all")||e.categories.size===0,w=e.sources.has("all")||e.sources.size===0,x=e.userTypes.has("all")||e.userTypes.size===0;return<react_native_1.Modal visible={a}transparent animationType="fade"onRequestClose={f}>
2
2
  <react_native_1.View style={styles.backdrop}>
3
3
  <react_native_1.Pressable style={react_native_1.StyleSheet.absoluteFill}onPress={f}/>
4
4
 
@@ -1,254 +1,26 @@
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:w,setAnalyticsFilters:T,handleDelete:L,selectedEvent:z,setSelectedEvent:x,newEventIds:V,logRouteMapRef:F,isAnalyticsLayoutReady:E,setIsAnalyticsLayoutReady:B,isAnalyticsFilterApplied:v}=(0,InspectorContext_1.useInspector)(),N=(0,react_1.useRef)(null),[R,O]=(0,react_1.useState)(!1),[P,k]=(0,react_1.useState)(100),A=(0,react_1.useMemo)(()=>r.slice(0,P),[r,P]),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]),q=(0,react_1.useCallback)(e=>{(0,InspectorContext_1.animateNextLayout)(),T(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}})},[T]),D=(0,react_1.useCallback)((e,o)=>e?.id?.toString()??o.toString(),[]),j=(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={()=>{x(e)}}isNew={V.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 S=typeof b=="string"?b:b?JSON.stringify(b):"";const I=F.current.get(e.id+1e6);if(!S&&I&&I.path!=="Navigators"){const M=I.path.split(" \u2794 ");S=M[M.length-1]}return S})()}/>},[r,a,V,x,F]),$=(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
+ {z==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}/>
246
- </react_native_1.TouchableOpacity>
247
-
248
20
 
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}}/>}
21
+ <react_native_1.TouchableOpacity style={[styles_1.default.toolbarBtn,v&&{borderColor:`${AppColors_1.AppColors.brandPurple}60`,backgroundColor:`${AppColors_1.AppColors.brandPurple}15`}]}onPress={()=>O(!0)}hitSlop={6}>
22
+ <NetworkIcons_1.FilterIcon color={v?AppColors_1.AppColors.brandPurple:AppColors_1.AppColors.grayTextStrong}size={15}/>
23
+ {v&&<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
24
  </react_native_1.TouchableOpacity>
253
25
 
254
26
  <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}>
@@ -258,75 +30,31 @@
258
30
  </react_native_1.View>
259
31
 
260
32
 
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})
33
+ <react_native_1.View style={{flexDirection:"row",alignItems:"center",marginBottom:8,paddingHorizontal:12,gap:6}}>
34
+ <react_native_1.ScrollView horizontal showsHorizontalScrollIndicator={!1}style={{flex:1}}contentContainerStyle={{flexDirection:"row",alignItems:"center",gap:6,paddingRight:6}}>
35
+ {[{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"?w.categories.has("all"):!w.categories.has("all")&&w.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={()=>q(e.id)}>
36
+ <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}}>
37
+ <_ size={11}color={i}/>
38
+ <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10.5,color:o?AppColors_1.AppColors.white:AppColors_1.AppColors.primaryBlack}}>
39
+ {e.label}
269
40
  </react_native_1.Text>
41
+ <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"}}>
42
+ <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:o?AppColors_1.AppColors.white:t}}>
43
+ {e.count}
44
+ </react_native_1.Text>
45
+ </react_native_1.View>
270
46
  </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})
293
- </react_native_1.Text>
294
- </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>
47
+ </TouchableScale_1.default>})}
48
+ </react_native_1.ScrollView>
49
+ </react_native_1.View>
322
50
  </react_native_1.View>}
323
51
 
324
52
 
325
- <AnalyticsFilterModal_1.default visible={A}onClose={()=>T(!1)}/>
53
+ <AnalyticsFilterModal_1.default visible={R}onClose={()=>O(!1)}/>
326
54
 
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"/>
55
+ <react_native_1.View style={{flex:1}}onLayout={()=>B(!0)}>
56
+ {E?<>
57
+ <react_native_1.FlatList ref={N}data={A}keyExtractor={D}renderItem={j}getItemLayout={$}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={A.length}totalCount={r.length}label="events"hasMore={A.length<r.length}onLoadMore={()=>k(e=>e+10)}/>:null}contentContainerStyle={[styles_1.default.listContent,r.length===0&&{flexGrow:1}]}keyboardShouldPersistTaps="handled"/>
330
58
  </>:null}
331
59
  </react_native_1.View>
332
60
  </>});exports.default=AnalyticsTab;