// Module ID: 10908 // Function ID: 84744 // Name: _createForOfIteratorHelperLoose // Dependencies: [57, 31, 6271, 10434, 653, 6619, 8063, 566, 10432, 10433, 5960, 2] // Exports: QuestContentImpressionTrackerNative // Module 10908 (_createForOfIteratorHelperLoose) import _slicedToArray from "_slicedToArray"; import result from "result"; import _isNativeReflectConstruct from "_isNativeReflectConstruct"; import { MIN_QUEST_CONTENT_VISIBILITY_PERCENTAGE as closure_6 } from "MAX_BRAND_SAFETY_CONTEXT_ARRAY_LEN"; import { AppStates } from "ME"; import { createElement } from "result"; const require = arg1; function _createForOfIteratorHelperLoose(iterable) { let closure_0 = iterable; iterable = "undefined" !== typeof Symbol; if (iterable) { const _Symbol = Symbol; iterable = iterable[Symbol.iterator]; } if (!iterable) { iterable = iterable[Symbol.iterator]; } if (iterable) { const iter = iterable.call(iterable); const next = iter.next; return next.bind(iter); } else { const _Array = Array; let tmp = iterable; if (!Array.isArray(iterable)) { let tmp2; if (iterable) { if ("string" === typeof iterable) { tmp2 = _arrayLikeToArray(iterable, undefined); } else { const toString = {}.toString; const substr = toString.call(iterable).slice(8, -1); let name = substr; if (tmp3) { name = iterable.constructor.name; } if ("Map" !== name) { if ("Set" !== name) { if ("Arguments" === name) { let arr = _arrayLikeToArray(iterable, undefined); } else { let obj = /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/; } } tmp2 = arr; } const _Array2 = Array; arr = Array.from(iterable); const callResult = toString.call(iterable); tmp3 = "Object" === substr && iterable.constructor; } } 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) { closure_0 = tmp; } let c1 = 0; return () => { if (closure_1 >= length.length) { let obj = { done: true }; } else { obj = { done: false }; closure_1 = tmp3 + 1; obj.value = length[+closure_1]; } 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 calculateVisibilityPercentage(visibilityRef) { visibilityRef = visibilityRef.visibilityRef; let tmp2; if (null != visibilityRef) { const current = visibilityRef.current; if (null != current) { const children = current.children; if (null != children) { tmp2 = children[tmp]; } } } let layout; if (null != tmp2) { layout = tmp2.layout; } if (null != layout) { let layout1; if (null != visibilityRef) { const parent = visibilityRef.current.parent; if (null != parent) { layout1 = parent.layout; } } if (null != layout1) { const axis = visibilityRef.current.axis; let str = "vertical"; if (null != axis) { str = axis; } if ("horizontal" === str) { if (null == visibilityRef.current.parent.scrollX) { return 0; } else { const items = [tmp2.layout.x, tmp2.layout.x + tmp2.layout.width]; const items1 = [visibilityRef.current.parent.scrollX, visibilityRef.current.parent.scrollX + visibilityRef.current.parent.layout.width]; let height = tmp2.layout.width; let items2 = items; let items3 = items1; } } else if (null == visibilityRef.current.parent.scrollY) { return 0; } else { items2 = [tmp2.layout.y, tmp2.layout.y + tmp2.layout.height]; items3 = [visibilityRef.current.parent.scrollY, visibilityRef.current.parent.scrollY + visibilityRef.current.parent.layout.height]; height = tmp2.layout.height; } if (null != visibilityRef.current.parent.firstItemOffset) { const firstItemOffset = visibilityRef.current.parent.firstItemOffset; items2[0] = items2[0] + firstItemOffset; items2[1] = items2[1] + firstItemOffset; } const _Math = Math; const _Math2 = Math; const bound = Math.max(items2[0], items3[0]); const _Math3 = Math; const _Math4 = Math; return Math.min(Math.max(0, Math.min(items2[1], items3[1]) - bound) / height, 1); } } return 0; } function useVisibilityData(adContentIds) { adContentIds = adContentIds.adContentIds; const visibilityRef = adContentIds.visibilityRef; const overrideVisibility = adContentIds.overrideVisibility; const joined = adContentIds.join("_"); let obj = adContentIds(6619); const items = [joined]; const tmp2 = callback(obj.useRecyclingState(false, items), 2); let first = tmp2[0]; const dependencyMap = tmp4; const items1 = [adContentIds, tmp2[1], visibilityRef]; const effect = React.useEffect(() => { (function initHandlers(arg0) { let children; let done; let visibilityRef; ({ setVisible: children, visibilityRef } = arg0); if (null != visibilityRef) { function _loop(value) { let closure_0 = value; const obj = {}; const merged = Object.assign(visibilityRef.current.children[value]); obj["calculateVisibility"] = function calculateVisibility() { value(outer4_11({ visibilityRef: outer1_1, entityId: value }) >= outer4_6); }; visibilityRef.current.children[value] = obj; } const tmp3 = outer2_9(tmp); let iter = tmp3(); if (!iter.done) { do { let _loopResult = _loop(iter.value); let iter2 = tmp3(); iter = iter2; done = iter2.done; } while (!done); } } })({ adContentIds: children, setVisible: closure_2, visibilityRef }); children = undefined; if (null != visibilityRef) { const current = visibilityRef.current; if (null != current) { children = current.children; } } return () => { let iter2; if (null != children) { const tmp3 = outer2_9(children); let iter = tmp3(); if (!iter.done) { do { let tmp4 = children; let tmp5 = children[iter.value]; if (null != tmp5) { tmp5.calculateVisibility = undefined; } iter2 = tmp3(); iter = iter2; } while (!iter2.done); } } }; }, items1); if (null != overrideVisibility) { first = overrideVisibility; } obj = { visible: first, visibleChanged: first !== visibilityRef(8063)(first) }; return obj; } const result = require("_isNativeReflectConstruct").fileFinishedImporting("modules/quests/native/QuestContentImpressionTracker.native.tsx"); export const QuestContentImpressionTrackerNative = function QuestContentImpressionTrackerNative(skipRemountKey) { let obj = require(566) /* initialize */; const items = [_isNativeReflectConstruct]; const tmp = obj.useStateFromStores(items, () => outer1_5.getState()) === AppStates.ACTIVE; const ref = React.useRef(null); let obj1 = require(10432) /* useQuestImpressionRef */; const adContentImpressionTrackerProps = obj1.useAdContentImpressionTrackerProps(skipRemountKey); const adContentIds = adContentImpressionTrackerProps.adContentIds; obj = {}; const merged = Object.assign(skipRemountKey); obj["adContentIds"] = adContentIds; const tmp3 = importDefault(8063)(tmp); obj = {}; const merged1 = Object.assign(skipRemountKey); const merged2 = Object.assign(useVisibilityData(obj)); obj["focused"] = tmp; obj["focusedChanged"] = tmp !== tmp3; obj["reference"] = ref; obj["isFocused"] = tmp; let key; if (!skipRemountKey.skipRemountKey) { key = adContentImpressionTrackerProps.key; } obj1 = {}; const merged3 = Object.assign(obj); obj1["key"] = key; obj1["adContentIds"] = adContentIds; if (tmp11) { obj1["adCreativeType"] = require(5960) /* AdCreativeType */.AdCreativeType.QUEST; let tmp13 = obj1; } else { obj1["adCreativeType"] = skipRemountKey.adCreativeType; tmp13 = obj1; } return createElement(require(10433) /* getQuestPlacementCombinationKey */.QuestContentImpressionTracker, tmp13); };