2026-07-25 08:10:48 +00:00
// Module ID: 5930
2026-07-27 11:26:19 +00:00
// Function ID: 52651
2026-07-20 16:05:17 +00:00
// Name: _createForOfIteratorHelperLoose
2026-07-25 08:10:48 +00:00
// Dependencies: [1922, 5931, 5932, 4977, 4980, 1360, 5947, 1184, 2]
2026-07-20 16:05:17 +00:00
// Exports: captureQuestsException, earnedDecisionIsValid, findNextUpcomingExpirationEpochMs, findQuestOrReplacement, getAdContext, getAdDecisionData, getAdMetadataSealed, getAdTrafficMetadataSealed, getIsQuestExpiredButWithinThirtyDayLookback, getQuestForPlacement, getQuestFormattedDate, hasUnclaimedReward, isBillableQuestContent, isDismissed
2026-07-25 08:10:48 +00:00
// Module 5930 (_createForOfIteratorHelperLoose)
2026-07-23 10:11:24 +00:00
import _isNativeReflectConstruct from "_isNativeReflectConstruct" ;
import _createForOfIteratorHelperLoose from "_createForOfIteratorHelperLoose" ;
import closure_5 from "_isNativeReflectConstruct" ;
import QuestsExperimentLocations from "QuestsExperimentLocations" ;
let closure_6 ;
let closure_7 ;
let closure_8 ;
const require = arg1 ;
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 ;
}
function isDismissible ( ACTIVITY_PANEL ) {
const keys = Object . keys ( closure_6 ) ;
2026-07-25 08:10:48 +00:00
return keys . includes ( require ( 4980 ) /* QuestsVisibleMessagesChangedSource */ . QuestContent [ ACTIVITY_PANEL ] ) ;
2026-07-20 16:05:17 +00:00
}
function isQuestConfigExpired ( config ) {
const date = new Date ( config . expiresAt ) ;
return new Date ( config . expiresAt ) . valueOf ( ) <= Date . now ( ) ;
}
function isQuestExpired ( value ) {
return isQuestConfigExpired ( value . config ) ;
}
function getQuestPlacementFromQuestContent ( questContent ) {
const obj = { } ;
2026-07-25 08:10:48 +00:00
obj [ require ( 4980 ) /* QuestsVisibleMessagesChangedSource */ . QuestContent . QUEST_BAR ] = require ( 4980 ) /* QuestsVisibleMessagesChangedSource */ . AdPlacement . DESKTOP_ACCOUNT_PANEL_AREA ;
obj [ require ( 4980 ) /* QuestsVisibleMessagesChangedSource */ . QuestContent . QUEST_BAR_V2 ] = require ( 4980 ) /* QuestsVisibleMessagesChangedSource */ . AdPlacement . DESKTOP_ACCOUNT_PANEL_AREA ;
obj [ require ( 4980 ) /* QuestsVisibleMessagesChangedSource */ . QuestContent . QUEST_BAR_MOBILE ] = require ( 4980 ) /* QuestsVisibleMessagesChangedSource */ . AdPlacement . MOBILE_HOME_DOCK_AREA ;
obj [ require ( 4980 ) /* QuestsVisibleMessagesChangedSource */ . QuestContent . QUEST_HOME_HERO ] = require ( 4980 ) /* QuestsVisibleMessagesChangedSource */ . AdPlacement . QUEST_HOME_BANNER_DESKTOP ;
obj [ require ( 4980 ) /* QuestsVisibleMessagesChangedSource */ . QuestContent . QUEST_HOME_HERO_SHELF ] = require ( 4980 ) /* QuestsVisibleMessagesChangedSource */ . AdPlacement . QUEST_HOME_BANNER_DESKTOP ;
obj [ require ( 4980 ) /* QuestsVisibleMessagesChangedSource */ . QuestContent . QUEST_HOME_MOBILE_CAROUSEL ] = require ( 4980 ) /* QuestsVisibleMessagesChangedSource */ . AdPlacement . QUEST_HOME_MOBILE_CAROUSEL ;
obj [ require ( 4980 ) /* QuestsVisibleMessagesChangedSource */ . QuestContent . VIDEO_MODAL_MOBILE ] = require ( 4980 ) /* QuestsVisibleMessagesChangedSource */ . AdPlacement . VIDEO_MODAL_MOBILE ;
2026-07-20 16:05:17 +00:00
return obj [ questContent ] ;
}
function mapQuestAdDecision ( value ) {
return { questId : value.questId , adCreativeId : value.adCreativeId , adDecisionData : value.adDecisionData , adContext : value.adContext , metadataSealed : value.metadataSealed , trafficMetadataSealed : value.trafficMetadataSealed } ;
}
function getQuestDeliveryDataForPlacement ( arg0 , adContentId ) {
2026-07-25 08:10:48 +00:00
if ( arg0 === require ( 4980 ) /* QuestsVisibleMessagesChangedSource */ . AdPlacement . QUEST_HOME_MOBILE_CAROUSEL ) {
2026-07-20 16:05:17 +00:00
let tmp3 = null ;
if ( null != adContentId ) {
2026-07-23 10:11:24 +00:00
adDecisionByPlacementAndAdCreativeId = adDecisionByPlacementAndAdCreativeId . getAdDecisionByPlacementAndAdCreativeId ( arg0 , adContentId ) ;
2026-07-20 16:05:17 +00:00
let tmp7 = null ;
if ( null != adDecisionByPlacementAndAdCreativeId ) {
tmp7 = mapQuestAdDecision ( adDecisionByPlacementAndAdCreativeId ) ;
}
tmp3 = tmp7 ;
}
} else {
tmp3 = null ;
}
if ( null != tmp3 ) {
return tmp3 ;
} else {
let obj = { location : "getQuestDeliveryDataForPlacement" } ;
const questAdDecisionByPlacement = quest . questAdDecisionByPlacement ;
let value = questAdDecisionByPlacement . get ( arg0 ) ;
2026-07-25 08:10:48 +00:00
if ( arg0 === require ( 4980 ) /* QuestsVisibleMessagesChangedSource */ . AdPlacement . QUEST_HOME_BANNER_DESKTOP ) {
2026-07-20 16:05:17 +00:00
if ( null != value ) {
return mapQuestAdDecision ( value ) ;
}
}
if ( obj2 . getConfig ( obj ) . enableNewRequestBehavior ) {
let tmp12 = null ;
if ( null != value ) {
tmp12 = mapQuestAdDecision ( value ) ;
}
return tmp12 ;
} else {
const questToDeliverForPlacement = quest . questToDeliverForPlacement ;
value = questToDeliverForPlacement . get ( arg0 ) ;
let tmp11 = null ;
if ( null != value ) {
obj = { questId : value.quest.id , adCreativeId : value.quest.id } ;
( { adDecisionData : obj.adDecisionData , adContext : obj.adContext , metadataSealed : obj.metadataSealed , trafficMetadataSealed : obj.trafficMetadataSealed } = value ) ;
tmp11 = obj ;
}
return tmp11 ;
}
2026-07-25 08:10:48 +00:00
obj2 = importDefault ( 5947 ) ;
2026-07-20 16:05:17 +00:00
}
}
2026-07-23 10:11:24 +00:00
( { DismissibleQuestContentFlags : closure_6 , BILLABLE_PLACEMENTS : closure_7 , EMPTY_AD_DECISION_DATA : closure_8 } = QuestsExperimentLocations ) ;
const result = require ( "_isNativeReflectConstruct" ) . fileFinishedImporting ( "modules/quests/utils/QuestDataUtils.tsx" ) ;
2026-07-20 16:05:17 +00:00
export const THIRTY_DAYS_MS = 2592000000 ;
export const earnedDecisionIsValid = function earnedDecisionIsValid ( value ) {
let tmp = null != value ;
if ( tmp ) {
const _Date = Date ;
const sum = value . fetchedAt + value . ttlMillis ;
tmp = sum >= Date . now ( ) ;
}
return tmp ;
} ;
export const findQuestOrReplacement = function findQuestOrReplacement ( scrollToQuestId , quests , excludedQuests ) {
let map = quests ;
if ( Array . isArray ( quests ) ) {
const _Map = Map ;
map = new Map ( quests . map ( ( id ) = > {
const items = [ id . id , id ] ;
return items ;
} ) ) ;
}
let map1 = excludedQuests ;
if ( Array . isArray ( excludedQuests ) ) {
const _Map2 = Map ;
map1 = new Map ( excludedQuests . map ( ( id ) = > {
const items = [ id . id , id ] ;
return items ;
} ) ) ;
}
let value = map . get ( scrollToQuestId ) ;
if ( null != value ) {
return value ;
} else {
value = map1 . get ( scrollToQuestId ) ;
let replacementId ;
if ( null != value ) {
replacementId = value . replacementId ;
}
let value1 ;
if ( null != replacementId ) {
value1 = map . get ( replacementId ) ;
}
return value1 ;
}
} ;
export { isDismissible } ;
export const isDismissed = function isDismissed ( userStatus , ACTIVITY_PANEL ) {
if ( isDismissible ( ACTIVITY_PANEL ) ) {
2026-07-25 08:10:48 +00:00
return require ( 1360 ) /* hasFlag */ . hasFlag ( userStatus . dismissedQuestContent , table [ require ( undefined , 4980 ) /* QuestsVisibleMessagesChangedSource */ . QuestContent [ ACTIVITY_PANEL ] ] ) ;
2026-07-20 16:05:17 +00:00
} else {
return false ;
}
} ;
export { isQuestConfigExpired } ;
export { isQuestExpired } ;
export const getIsQuestExpiredButWithinThirtyDayLookback = function getIsQuestExpiredButWithinThirtyDayLookback ( quest ) {
if ( isQuestExpired ( quest ) ) {
const _Date = Date ;
const _Date2 = Date ;
const diff = Date . now ( ) - 2592000000 ;
const date = new Date ( quest . config . expiresAt ) ;
return null != quest . config . expiresAt && date . valueOf ( ) > diff ;
} else {
return false ;
}
} ;
export const findNextUpcomingExpirationEpochMs = function findNextUpcomingExpirationEpochMs ( arg0 ) {
let iter3 ;
const timestamp = Date . now ( ) ;
const tmp2 = _createForOfIteratorHelperLoose ( arg0 ) ;
const iter = tmp2 ( ) ;
let iter2 = iter ;
let tmp3 = null ;
let tmp4 = null ;
if ( ! iter . done ) {
do {
let _Date = Date ;
let tmp5 = new . target ;
let tmp6 = new . target ;
let date = new Date ( iter2 . value . config . expiresAt ) ;
let tmp7 = date ;
let valueOfResult = date . valueOf ( ) ;
let tmp9 = tmp3 ;
if ( valueOfResult > timestamp ) {
let tmp10 = null == tmp3 || valueOfResult < tmp3 ;
if ( tmp10 ) {
tmp3 = valueOfResult ;
}
tmp9 = tmp3 ;
}
iter3 = tmp2 ( ) ;
tmp3 = tmp9 ;
iter2 = iter3 ;
tmp4 = tmp9 ;
} while ( ! iter3 . done ) ;
}
return tmp4 ;
} ;
export const hasUnclaimedReward = function hasUnclaimedReward ( userStatus ) {
return null != userStatus && null != userStatus . completedAt && null == userStatus . claimedAt ;
} ;
export const getQuestFormattedDate = function getQuestFormattedDate ( expiresAtPremium ) {
let tmp = arg1 ;
if ( arg1 === undefined ) {
const obj = { dateStyle : "short" } ;
tmp = obj ;
}
let str2 = "" ;
if ( null != expiresAtPremium ) {
const _Date = Date ;
const date = new Date ( expiresAtPremium ) ;
str2 = date . toLocaleDateString ( locale . locale , tmp ) ;
}
return str2 ;
} ;
export const getQuestForPlacement = function getQuestForPlacement ( quests , questToDeliverForPlacement , MOBILE_HOME_DOCK_AREA ) {
let value = questToDeliverForPlacement . get ( MOBILE_HOME_DOCK_AREA ) ;
if ( null != value ) {
value = quests . get ( value . quest . id ) ;
let tmp3 ;
if ( null != value ) {
if ( ! isQuestExpired ( value ) ) {
tmp3 = value ;
}
}
return tmp3 ;
}
} ;
export { getQuestPlacementFromQuestContent } ;
export const isBillableQuestContent = function isBillableQuestContent ( questContent ) {
const tmp = getQuestPlacementFromQuestContent ( questContent ) ;
let hasItem = null != tmp ;
if ( hasItem ) {
hasItem = set . has ( tmp ) ;
}
return hasItem ;
} ;
export const getAdDecisionData = function getAdDecisionData ( adCreativeId , questContent ) {
const tmp = getQuestPlacementFromQuestContent ( questContent ) ;
if ( null == tmp ) {
return closure_8 ;
} else {
let obj = getQuestDeliveryDataForPlacement ( tmp , adCreativeId ) ;
if ( null == obj ) {
obj = { } ;
}
const adDecisionData = obj . adDecisionData ;
if ( null == adDecisionData ) {
let tmp5 = closure_8 ;
} else {
tmp5 = adDecisionData ;
if ( tmp3 !== adCreativeId ) {
tmp5 = adDecisionData ;
if ( tmp4 !== adCreativeId ) {
tmp5 = adDecisionData ;
if ( adDecisionData . ad_id !== adCreativeId ) {
tmp5 = closure_8 ;
}
}
}
}
return tmp5 ;
}
} ;
export const getAdMetadataSealed = function getAdMetadataSealed ( sourceQuestContent , adCreativeId ) {
const tmp = getQuestPlacementFromQuestContent ( sourceQuestContent ) ;
if ( null != tmp ) {
const tmp4 = getQuestDeliveryDataForPlacement ( tmp , adCreativeId ) ;
let metadataSealed ;
if ( null != tmp4 ) {
metadataSealed = tmp4 . metadataSealed ;
}
return metadataSealed ;
}
} ;
export const getAdTrafficMetadataSealed = function getAdTrafficMetadataSealed ( sourceQuestContent , adCreativeId , adContentId ) {
const tmp = getQuestPlacementFromQuestContent ( sourceQuestContent ) ;
if ( null != tmp ) {
let obj = getQuestDeliveryDataForPlacement ( tmp , adContentId ) ;
if ( null == obj ) {
obj = { } ;
}
const trafficMetadataSealed = obj . trafficMetadataSealed ;
if ( null != trafficMetadataSealed ) {
return trafficMetadataSealed ;
}
}
if ( null != adCreativeId ) {
2026-07-23 10:11:24 +00:00
quest = quest . getQuest ( adCreativeId ) ;
2026-07-20 16:05:17 +00:00
let prop ;
if ( null != quest ) {
prop = quest . trafficMetadataSealed ;
}
return prop ;
}
} ;
export const getAdContext = function getAdContext ( questContent , adContentId ) {
const tmp = getQuestPlacementFromQuestContent ( questContent ) ;
if ( null != tmp ) {
const tmp4 = getQuestDeliveryDataForPlacement ( tmp , adContentId ) ;
let adContext ;
if ( null != tmp4 ) {
adContext = tmp4 . adContext ;
}
return adContext ;
}
} ;
export const captureQuestsException = function captureQuestsException ( error , tags ) {
2026-07-23 10:11:24 +00:00
let obj = importDefault ( 1184 ) ;
2026-07-20 16:05:17 +00:00
obj = { } ;
const merged = Object . assign ( tags ) ;
obj = { } ;
tags = undefined ;
if ( null != tags ) {
tags = tags . tags ;
}
const merged1 = Object . assign ( tags ) ;
obj [ "app_context" ] = "quests" ;
obj [ "tags" ] = obj ;
obj . captureException ( error , obj ) ;
} ;