2026-07-24 07:16:23 +00:00
// Module ID: 9178
// Function ID: 71862
2026-07-20 16:05:17 +00:00
// Name: _createForOfIteratorHelperLoose
2026-07-23 10:11:24 +00:00
// Dependencies: [5, 6, 7, 44, 686, 2]
2026-07-20 16:05:17 +00:00
2026-07-24 07:16:23 +00:00
// Module 9178 (_createForOfIteratorHelperLoose)
2026-07-23 10:11:24 +00:00
import set from "set" ;
import _classCallCheck from "_classCallCheck" ;
import _defineProperties from "_defineProperties" ;
function _createForOfIteratorHelperLoose ( iterable ) {
let closure_0 = iterable ;
iterable = "undefined" !== typeof Symbol ;
if ( iterable ) {
2026-07-20 16:05:17 +00:00
const _Symbol = Symbol ;
2026-07-23 10:11:24 +00:00
iterable = iterable [ Symbol . iterator ] ;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
if ( ! iterable ) {
iterable = iterable [ Symbol . iterator ] ;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
if ( iterable ) {
const iter = iterable . call ( iterable ) ;
2026-07-20 16:05:17 +00:00
const next = iter . next ;
return next . bind ( iter ) ;
} else {
const _Array = Array ;
2026-07-23 10:11:24 +00:00
let tmp = iterable ;
if ( ! Array . isArray ( iterable ) ) {
2026-07-20 16:05:17 +00:00
let tmp2 ;
2026-07-23 10:11:24 +00:00
if ( iterable ) {
if ( "string" === typeof iterable ) {
tmp2 = _arrayLikeToArray ( iterable , undefined ) ;
2026-07-20 16:05:17 +00:00
} else {
const toString = { } . toString ;
2026-07-23 10:11:24 +00:00
const substr = toString . call ( iterable ) . slice ( 8 , - 1 ) ;
2026-07-20 16:05:17 +00:00
let name = substr ;
if ( tmp3 ) {
2026-07-23 10:11:24 +00:00
name = iterable . constructor . name ;
2026-07-20 16:05:17 +00:00
}
if ( "Map" !== name ) {
if ( "Set" !== name ) {
if ( "Arguments" === name ) {
2026-07-23 10:11:24 +00:00
let arr = _arrayLikeToArray ( iterable , undefined ) ;
2026-07-20 16:05:17 +00:00
} else {
2026-07-23 10:11:24 +00:00
let obj = /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/ ;
2026-07-20 16:05:17 +00:00
}
}
tmp2 = arr ;
}
const _Array2 = Array ;
2026-07-23 10:11:24 +00:00
arr = Array . from ( iterable ) ;
const callResult = toString . call ( iterable ) ;
tmp3 = "Object" === substr && iterable . constructor ;
2026-07-20 16:05:17 +00:00
}
}
tmp = tmp2 ;
if ( ! tmp2 ) {
const _TypeError = TypeError ;
const typeError = new TypeError ( "Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." ) ;
throw typeError ;
}
}
if ( tmp ) {
2026-07-23 10:11:24 +00:00
closure_0 = tmp ;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
let c1 = 0 ;
2026-07-20 16:05:17 +00:00
return ( ) = > {
2026-07-23 10:11:24 +00:00
if ( closure_1 >= length . length ) {
2026-07-20 16:05:17 +00:00
let obj = { done : true } ;
} else {
obj = { done : false } ;
closure_1 = tmp3 + 1 ;
2026-07-23 10:11:24 +00:00
obj . value = length [ + closure_1 ] ;
2026-07-20 16:05:17 +00:00
}
return obj ;
} ;
}
}
function _arrayLikeToArray ( arg0 , arg1 ) {
let length ;
if ( tmp ) {
length = arg0 . length ;
}
const ArrayResult = Array ( length ) ;
for ( let num = 0 ; num < length ; num = num + 1 ) {
ArrayResult [ num ] = arg0 [ num ] ;
}
return ArrayResult ;
}
2026-07-23 10:11:24 +00:00
let obj = { IMMEDIATE : 0 , [ 0 ] : "IMMEDIATE" , IMMEDIATE_WITH_COOLDOWN : 1 , [ 1 ] : "IMMEDIATE_WITH_COOLDOWN" , IMMEDIATE_WITH_DELAY : 2 , [ 2 ] : "IMMEDIATE_WITH_DELAY" } ;
let tmp2 = ( ( ) = > {
2026-07-20 16:05:17 +00:00
class TrackedFeedItem {
constructor ( ) {
2026-07-23 10:11:24 +00:00
tmp = outer1_3 ( this , TrackedFeedItem ) ;
2026-07-20 16:05:17 +00:00
this . seenIntervals = [ ] ;
return ;
}
}
let obj = {
key : "maybeMarkSeen" ,
value ( startTimeMillis ) {
let flag = null == tmp ;
if ( ! flag ) {
flag = null != tmp . endTimeMillis ;
}
if ( flag ) {
const seenIntervals = this . seenIntervals ;
const obj = { startTimeMillis } ;
seenIntervals . push ( obj ) ;
flag = true ;
}
return flag ;
}
} ;
2026-07-23 10:11:24 +00:00
let items = [ obj , , , ] ;
2026-07-20 16:05:17 +00:00
obj = {
key : "maybeMarkUnseen" ,
value ( endTimeMillis ) {
let flag = null != tmp && null == tmp . endTimeMillis ;
if ( flag ) {
tmp . endTimeMillis = endTimeMillis ;
flag = true ;
}
return flag ;
}
} ;
items [ 1 ] = obj ;
obj = {
key : "isVisible" ,
value() {
let startTimeMillis ;
2026-07-23 10:11:24 +00:00
if ( null != this . seenIntervals [ this . seenIntervals . length - 1 ] ) {
2026-07-20 16:05:17 +00:00
startTimeMillis = tmp . startTimeMillis ;
}
let tmp3 = null != startTimeMillis ;
if ( tmp3 ) {
let endTimeMillis ;
if ( null != tmp ) {
endTimeMillis = tmp . endTimeMillis ;
}
tmp3 = null == endTimeMillis ;
}
return tmp3 ;
}
} ;
items [ 2 ] = obj ;
items [ 3 ] = {
key : "computeSeenTimeDestructive" ,
value ( arg0 ) {
let iter3 ;
const items = [ ] ;
2026-07-23 10:11:24 +00:00
const tmp = outer1_7 ( this . seenIntervals ) ;
2026-07-20 16:05:17 +00:00
const iter = tmp ( ) ;
let iter2 = iter ;
let num = 0 ;
let num2 = 0 ;
if ( ! iter . done ) {
do {
let value = iter2 . value ;
if ( null == value . endTimeMillis ) {
if ( arg0 ) {
let _Date = Date ;
let timestamp = Date . now ( ) ;
let sum = num + ( timestamp - value . startTimeMillis ) ;
let obj = { startTimeMillis : timestamp } ;
let arr = items . push ( obj ) ;
} else {
arr = items . push ( value ) ;
sum = num ;
}
} else {
sum = num + ( value . endTimeMillis - value . startTimeMillis ) ;
}
iter3 = tmp ( ) ;
num = sum ;
iter2 = iter3 ;
num2 = sum ;
} while ( ! iter3 . done ) ;
}
2026-07-23 10:11:24 +00:00
TrackedFeedItem ( outer1_1 [ 3 ] ) ( items . length < 2 , "there should only be a single left over data" ) ;
2026-07-20 16:05:17 +00:00
this . seenIntervals = items ;
return Math . round ( num2 ) ;
}
} ;
return callback ( TrackedFeedItem , items ) ;
2026-07-23 10:11:24 +00:00
} ) ( ) ;
let closure_6 = tmp2 ;
let tmp3 = ( ( ) = > {
2026-07-20 16:05:17 +00:00
class AnalyticsFeedItemSeenManager {
constructor ( arg0 ) {
self = this ;
2026-07-23 10:11:24 +00:00
self = this ;
2026-07-20 16:05:17 +00:00
isPaused = arg0 . isPaused ;
( { id , windowId } = arg0 ) ;
2026-07-23 10:11:24 +00:00
tmp = outer1_3 ( this , self ) ;
2026-07-20 16:05:17 +00:00
this . initialize = ( ) = > {
2026-07-23 10:11:24 +00:00
const subscription = AnalyticsFeedItemSeenManager ( outer2_1 [ 4 ] ) . subscribe ( "ANALYTICS_FEED_ITEM_SEEN" , self . handleFeedItemSeen ) ;
const obj = AnalyticsFeedItemSeenManager ( outer2_1 [ 4 ] ) ;
const subscription1 = AnalyticsFeedItemSeenManager ( outer2_1 [ 4 ] ) . subscribe ( "ANALYTICS_FEED_ITEM_UNSEEN" , self . handleFeedItemUnseen ) ;
const obj2 = AnalyticsFeedItemSeenManager ( outer2_1 [ 4 ] ) ;
const subscription2 = AnalyticsFeedItemSeenManager ( outer2_1 [ 4 ] ) . subscribe ( "ANALYTICS_FEED_FLUSH" , self . handleFeedItemFlush ) ;
const obj3 = AnalyticsFeedItemSeenManager ( outer2_1 [ 4 ] ) ;
const subscription3 = AnalyticsFeedItemSeenManager ( outer2_1 [ 4 ] ) . subscribe ( "APP_STATE_UPDATE" , self . handleAppStateUpdate ) ;
const obj4 = AnalyticsFeedItemSeenManager ( outer2_1 [ 4 ] ) ;
const subscription4 = AnalyticsFeedItemSeenManager ( outer2_1 [ 4 ] ) . subscribe ( "WINDOW_FOCUS" , self . handleWindowFocus ) ;
2026-07-20 16:05:17 +00:00
const onInitialize = self . onInitialize ;
if ( null != onInitialize ) {
onInitialize . call ( self ) ;
}
} ;
this . terminate = ( ) = > {
2026-07-23 10:11:24 +00:00
AnalyticsFeedItemSeenManager ( outer2_1 [ 4 ] ) . unsubscribe ( "ANALYTICS_FEED_ITEM_SEEN" , self . handleFeedItemSeen ) ;
const obj = AnalyticsFeedItemSeenManager ( outer2_1 [ 4 ] ) ;
AnalyticsFeedItemSeenManager ( outer2_1 [ 4 ] ) . unsubscribe ( "ANALYTICS_FEED_ITEM_UNSEEN" , self . handleFeedItemUnseen ) ;
const obj2 = AnalyticsFeedItemSeenManager ( outer2_1 [ 4 ] ) ;
AnalyticsFeedItemSeenManager ( outer2_1 [ 4 ] ) . unsubscribe ( "ANALYTICS_FEED_FLUSH" , self . handleFeedItemFlush ) ;
const obj3 = AnalyticsFeedItemSeenManager ( outer2_1 [ 4 ] ) ;
AnalyticsFeedItemSeenManager ( outer2_1 [ 4 ] ) . unsubscribe ( "APP_STATE_UPDATE" , self . handleAppStateUpdate ) ;
const obj4 = AnalyticsFeedItemSeenManager ( outer2_1 [ 4 ] ) ;
AnalyticsFeedItemSeenManager ( outer2_1 [ 4 ] ) . unsubscribe ( "WINDOW_FOCUS" , self . handleWindowFocus ) ;
2026-07-20 16:05:17 +00:00
const onTerminate = self . onTerminate ;
if ( null != onTerminate ) {
onTerminate . call ( self ) ;
}
2026-07-23 10:11:24 +00:00
self . maybeFlushSeenItems ( outer2_5 . IMMEDIATE ) ;
2026-07-20 16:05:17 +00:00
} ;
this . handleFeedItemFlush = ( id ) = > {
if ( self . _id === id . id ) {
self . maybeFlushSeenItems ( tmp ) ;
}
} ;
this . handleFeedItemSeen = ( feedItemId ) = > {
feedItemId = feedItemId . feedItemId ;
if ( feedItemId . id === self . _id ) {
if ( self . _paused ) {
const _pausedFeedItemIds = obj . _pausedFeedItemIds ;
_pausedFeedItemIds . add ( feedItemId ) ;
} else {
const trackedFeedItem = obj . getTrackedFeedItem ( feedItemId ) ;
const onFeedItemSeen = obj . onFeedItemSeen ;
if ( null != onFeedItemSeen ) {
onFeedItemSeen . call ( self , feedItemId , tmp3 ) ;
}
}
}
} ;
this . handleFeedItemUnseen = ( feedItemId ) = > {
feedItemId = feedItemId . feedItemId ;
if ( feedItemId . id === self . _id ) {
if ( self . _paused ) {
const _pausedFeedItemIds = self . _pausedFeedItemIds ;
_pausedFeedItemIds . delete ( feedItemId ) ;
}
const trackedFeedItem = self . getTrackedFeedItem ( feedItemId ) ;
const onFeedItemUnseen = self . onFeedItemUnseen ;
if ( null != onFeedItemUnseen ) {
onFeedItemUnseen . call ( self , feedItemId , tmp6 ) ;
}
self . maybeFlushSeenItems ( ) ;
}
} ;
this . getTrackedFeedItem = ( arg0 ) = > {
if ( null == self . trackedFeedItems [ arg0 ] ) {
2026-07-23 10:11:24 +00:00
const prototype = outer2_6 . prototype ;
const tmp5 = new outer2_6 ( ) ;
2026-07-20 16:05:17 +00:00
self . trackedFeedItems [ arg0 ] = tmp5 ;
}
return self . trackedFeedItems [ arg0 ] ;
} ;
this . getVisibleFeedItemIds = ( ) = > {
const keys = Object . keys ( self . trackedFeedItems ) ;
return new Set ( keys . filter ( ( arg0 ) = > {
let isVisibleResult ;
2026-07-23 10:11:24 +00:00
if ( null != outer1_0 . trackedFeedItems [ arg0 ] ) {
2026-07-20 16:05:17 +00:00
isVisibleResult = obj . isVisible ( ) ;
}
return isVisibleResult ;
} ) ) ;
} ;
this . handleAppStateUpdate = ( state ) = > {
state = state . state ;
let _isReactNavigationFocused = "active" === state ;
if ( _isReactNavigationFocused ) {
_isReactNavigationFocused = self . _isReactNavigationFocused ;
}
if ( _isReactNavigationFocused ) {
self . resume ( ) ;
}
if ( "background" === state ) {
if ( self . _isReactNavigationFocused ) {
self . pause ( ) ;
}
2026-07-23 10:11:24 +00:00
self . maybeFlushSeenItems ( outer2_5 . IMMEDIATE ) ;
2026-07-20 16:05:17 +00:00
}
} ;
this . clearPausedFeedItemIds = ( ) = > {
self . _pausedFeedItemIds = new Set ( ) ;
self . _paused = false ;
} ;
this . pause = ( ) = > {
if ( ! self . _paused ) {
const visibleFeedItemIds = self . getVisibleFeedItemIds ( ) ;
const item = visibleFeedItemIds . forEach ( ( feedItemId ) = > {
2026-07-23 10:11:24 +00:00
outer1_0 . handleFeedItemUnseen ( { id : outer1_0._id , feedItemId , timestampMillis : Date.now ( ) , type : "ANALYTICS_FEED_ITEM_UNSEEN" } ) ;
2026-07-20 16:05:17 +00:00
} ) ;
self . _paused = true ;
self . _pausedFeedItemIds = visibleFeedItemIds ;
}
} ;
this . resume = ( ) = > {
if ( self . _paused ) {
self . _paused = false ;
const _pausedFeedItemIds = self . _pausedFeedItemIds ;
const item = _pausedFeedItemIds . forEach ( ( feedItemId ) = > {
2026-07-23 10:11:24 +00:00
outer1_0 . handleFeedItemSeen ( { id : outer1_0._id , feedItemId , timestampMillis : Date.now ( ) , type : "ANALYTICS_FEED_ITEM_SEEN" } ) ;
2026-07-20 16:05:17 +00:00
} ) ;
const result = self . clearPausedFeedItemIds ( ) ;
}
} ;
this . handleReactNavigationFocus = ( _isReactNavigationFocused ) = > {
self . _isReactNavigationFocused = _isReactNavigationFocused ;
if ( self . _isReactNavigationFocused ) {
obj . resume ( ) ;
} else {
obj . pause ( ) ;
}
} ;
this . handleWindowFocus = ( windowId ) = > {
if ( self . _windowId === windowId . windowId ) {
if ( windowId . focused ) {
obj . resume ( ) ;
} else {
obj . pause ( ) ;
}
}
} ;
this . trackedFeedItems = { } ;
this . _id = id ;
this . _windowId = windowId ;
set = new Set ( ) ;
this . _pausedFeedItemIds = set ;
self . _paused = null != isPaused && isPaused ;
self . _isReactNavigationFocused = true ;
self . _lastFlushTimeMillis = Date . now ( ) ;
return ;
}
}
const items = [
{
key : "maybeFlushSeenItems" ,
value ( arg0 ) {
const self = this ;
if ( null == arg0 ) {
const _Date = Date ;
if ( Date . now ( ) - self . _lastFlushTimeMillis < 60000 ) {
return Promise . resolve ( ) ;
}
}
2026-07-23 10:11:24 +00:00
if ( arg0 === outer1_5 . IMMEDIATE_WITH_COOLDOWN ) {
2026-07-20 16:05:17 +00:00
const _Date2 = Date ;
if ( Date . now ( ) - self . _lastFlushTimeMillis < 3000 ) {
return Promise . resolve ( ) ;
}
}
const flushSeenItemsFunction = self . createFlushSeenItemsFunction ( arg0 ) ;
if ( null == flushSeenItemsFunction ) {
let resolved = Promise . resolve ( ) ;
} else {
const _Date3 = Date ;
self . _lastFlushTimeMillis = Date . now ( ) ;
2026-07-23 10:11:24 +00:00
if ( arg0 !== outer1_5 . IMMEDIATE ) {
if ( arg0 !== outer1_5 . IMMEDIATE_WITH_COOLDOWN ) {
2026-07-20 16:05:17 +00:00
resolved = new Promise ( ( arg0 ) = > {
2026-07-23 10:11:24 +00:00
let closure_0 = arg0 ;
2026-07-20 16:05:17 +00:00
// CreateGeneratorClosureLongIndex (0x67)
2026-07-23 10:11:24 +00:00
const timerId = setTimeout ( outer2_2 ( tmp ) , 100 ) ;
2026-07-20 16:05:17 +00:00
} ) ;
}
}
2026-07-23 10:11:24 +00:00
resolved = new Promise ( ( ( ) = > {
2026-07-20 16:05:17 +00:00
// CreateGeneratorClosureLongIndex (0x67)
2026-07-23 10:11:24 +00:00
let closure_0 = outer2_2 ( tmp ) ;
2026-07-20 16:05:17 +00:00
return function ( ) {
return callback ( . . . arguments ) ;
} ;
2026-07-23 10:11:24 +00:00
} ) ( ) ) ;
2026-07-20 16:05:17 +00:00
}
return resolved ;
}
}
] ;
return callback ( AnalyticsFeedItemSeenManager , items ) ;
2026-07-23 10:11:24 +00:00
} ) ( ) ;
let result = require ( "_defineProperties" ) . fileFinishedImporting ( "utils/AnalyticsFeedItemSeenManager.tsx" ) ;
2026-07-20 16:05:17 +00:00
export const AnalyticsFeedTypes = { FORUM_CHANNEL : "forum_channel" } ;
export const ForceFlushType = obj ;
export const TrackedFeedItem = tmp2 ;
export const AnalyticsFeedItemSeenManager = tmp3 ;