{"version":3,"file":"static/chunks/6944.00f1590ac209ff9c.js","mappings":"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","sources":["webpack://_N_E/./components/modules/ads/displayAds/widget/constants.ts","webpack://_N_E/./node_modules/rooks/dist/esm/hooks/useFreshRef.js?9a0c","webpack://_N_E/./node_modules/rooks/dist/esm/hooks/useFreshTick.js?4e4a","webpack://_N_E/./node_modules/rooks/dist/esm/hooks/warning.js?2493","webpack://_N_E/./node_modules/rooks/dist/esm/hooks/useGlobalObjectEventListener.js?2597","webpack://_N_E/./node_modules/rooks/dist/esm/hooks/useDocumentVisibilityState.js?b9f5","webpack://_N_E/./node_modules/rooks/dist/esm/hooks/useInViewRef.js?a462","webpack://_N_E/./hooks/ads/useDisplayAds/constants.ts","webpack://_N_E/./hooks/ads/useDisplayAds/useDisplayAds.ts","webpack://_N_E/./hooks/ads/useDefaultAds/useDefaultAds.ts","webpack://_N_E/./components/elements/ads/defaultAd/defaultAd.tsx","webpack://_N_E/./components/elements/ads/displayAdWidgetView/constants.ts","webpack://_N_E/./components/elements/ads/displayAdWidgetView/displayAdWidgetView.tsx","webpack://_N_E/./components/modules/ads/displayAds/widget/utils.ts","webpack://_N_E/./components/modules/ads/displayAds/widget/displayAdWidget.tsx"],"sourcesContent":["export const adVisibilityThreshold = 0.3;\n\nexport const intersectionObserverOptions: IntersectionObserverInit = {\n threshold: adVisibilityThreshold, // 0.3 ==> 30% is the representation of the percentage of the target element which is visible: value between 0.0 and 1.0 (trade off at 0.3 to compensate for ad request time - we may modify this value)\n root: null, // To watch for intersections relative to the device's viewport\n rootMargin: '0px' // Margin around the root. These values serves to grow or shrink each side of the root element's bounding box before computing intersections.\n};\n\nexport const positionOfLastTaboolaWidgetOnPage = 'below_content';\nexport const feedCategoryType = 'auto';\nexport const position = 'below_content';\n","import { useRef, useEffect } from 'react';\nimport { useIsomorphicEffect } from './useIsomorphicEffect.js';\n\n/**\r\n * useFreshRef\r\n *\r\n * @param value The value which needs to be fresh at all times. Probably\r\n * best used with functions\r\n * @param preferLayoutEffect Should the value be updated using a layout effect\r\n * or a passive effect. Defaults to false.\r\n * @returns A ref containing the fresh value\r\n * @see https://rooks.vercel.app/docs/useFreshRef\r\n */\r\nfunction useFreshRef(value, preferLayoutEffect = false) {\r\n const useEffectToUse = preferLayoutEffect ? useIsomorphicEffect : useEffect;\r\n const ref = useRef(value);\r\n useEffectToUse(() => {\r\n ref.current = value;\r\n });\r\n return ref;\r\n}\n\nexport { useFreshRef };\n","import { useFreshRef } from './useFreshRef.js';\n\n/**\r\n * useFreshTick\r\n * @param callback The callback to be called on mount\r\n * @returns A fresh callback.\r\n * @see https://rooks.vercel.app/docs/useFreshCallback\r\n */\r\nfunction useFreshTick(callback) {\r\n const freshRef = useFreshRef(callback);\r\n function tick(...args) {\r\n if (typeof freshRef.current === \"function\") {\r\n freshRef.current(...args);\r\n }\r\n }\r\n return tick;\r\n}\n\nexport { useFreshTick };\n","const isDevelopmentEnvironment = process.env.NODE_ENV !== \"production\";\r\n// eslint-disable-next-line import/no-mutable-exports\r\nlet warning = () => { };\r\nif (isDevelopmentEnvironment) {\r\n const printWarning = (actualMessage) => {\r\n const message = `Warning: ${actualMessage}`;\r\n if (typeof console !== \"undefined\") {\r\n console.error(message);\r\n }\r\n try {\r\n // --- Welcome to debugging React ---\r\n // This error was thrown as a convenience so that you can use this stack\r\n // to find the call site that caused this warning to fire.\r\n throw new Error(message);\r\n // eslint-disable-next-line no-empty\r\n }\r\n catch (_a) { }\r\n };\r\n warning = function (condition, actualMessage) {\r\n if (!condition) {\r\n printWarning(actualMessage);\r\n }\r\n };\r\n}\n\nexport { warning };\n","import { useEffect } from 'react';\nimport { useFreshTick } from './useFreshTick.js';\nimport { useIsomorphicEffect } from './useIsomorphicEffect.js';\nimport { warning } from './warning.js';\n\n/**\r\n * useGlobalObjectEventListener hook\r\n *\r\n * A react hook to an event listener to a global object\r\n *\r\n * @param {Window|Document} globalObject The global object to add event onto\r\n * @param {string} eventName The event to track\r\n * @param {Function} callback The callback to be called on event\r\n * @param {ListenerOptions} listenerOptions The options to be passed to the event listener\r\n * @param {boolean} when Should the event listener be active\r\n * @param {boolean} isLayoutEffect Should it use layout effect. Defaults to false\r\n * @see https://rooks.vercel.app/docs/useGlobalObjectEventListener\r\n */\r\nfunction useGlobalObjectEventListener(globalObject, eventName, callback, listenerOptions = {}, when = true, isLayoutEffect = false) {\r\n const freshCallback = useFreshTick(callback);\r\n const useEffectToRun = isLayoutEffect ? useIsomorphicEffect : useEffect;\r\n useEffectToRun(() => {\r\n warning(typeof globalObject !== \"undefined\", \"[useGlobalObjectEventListener]: Cannot attach event handlers to undefined.\");\r\n if (typeof globalObject !== \"undefined\" && when) {\r\n globalObject.addEventListener(eventName, freshCallback, listenerOptions);\r\n return () => {\r\n globalObject.removeEventListener(eventName, freshCallback, listenerOptions);\r\n };\r\n }\r\n return () => { };\r\n }, [eventName, listenerOptions]);\r\n}\n\nexport { useGlobalObjectEventListener };\n","import { useState, useCallback } from 'react';\nimport { useGlobalObjectEventListener } from './useGlobalObjectEventListener.js';\n\n/**\r\n * useDocumentVisibilityState\r\n * @description Returns the visibility state of the document. Returns null on the server side.\r\n * @returns {UseDocumentVisibilityStateReturnType} The visibility state of the document. `null` on the server.\r\n * @see {@link https://rooks.vercel.app/docs/useDocumentVisibilityState}\r\n */\r\nfunction useDocumentVisibilityState() {\r\n const [visibilityState, setVisibilityState] = useState(document ? document.visibilityState : null);\r\n const handleVisibilityChange = useCallback(() => {\r\n setVisibilityState(document ? document.visibilityState : null);\r\n }, []);\r\n useGlobalObjectEventListener(global.document, \"visibilitychange\", handleVisibilityChange, {}, true, true);\r\n return visibilityState;\r\n}\n\nexport { useDocumentVisibilityState };\n","import { useState, useEffect, useCallback } from 'react';\nimport { noop } from '../utils/noop.js';\n\nconst config = {\r\n root: null,\r\n rootMargin: \"0px 0px 0px 0px\",\r\n threshold: [0, 1],\r\n};\r\nfunction useInViewRef(callbackOrOptions, options) {\r\n const callback = typeof callbackOrOptions === \"function\" ? callbackOrOptions : noop;\r\n const opts = typeof callbackOrOptions === \"object\"\r\n ? callbackOrOptions\r\n : options || config;\r\n const { root = null, rootMargin, threshold } = opts;\r\n const [node, setNode] = useState(null);\r\n const [inView, setInView] = useState(false);\r\n useEffect(() => {\r\n if (node) {\r\n const observer = new IntersectionObserver((entries, observerRef) => {\r\n for (const { isIntersecting } of entries)\r\n setInView(isIntersecting);\r\n callback(entries, observerRef);\r\n }, opts);\r\n observer.observe(node);\r\n return () => {\r\n observer.disconnect();\r\n };\r\n }\r\n return noop;\r\n }, [node, callback, root, rootMargin, threshold, opts]);\r\n const ref = useCallback((nodeElement) => {\r\n setNode(nodeElement);\r\n }, []);\r\n return [ref, inView];\r\n}\n\nexport { useInViewRef };\n","export const BANNER_AD_SLOT_ID = 'wb_banner';\n\nexport const appNexusOnEventKey = {\n adAvailable: 'adAvailable',\n adRequestFailure: 'adRequestFailure',\n adNoBid: 'adNoBid',\n adError: 'adError',\n adBadRequest: 'adBadRequest',\n adLoaded: 'adLoaded'\n} as const;\n","/* eslint-disable operator-linebreak */\nimport { MutableRefObject, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { DisplayAdRenderingManager } from '../../../components/modules/ads/displayAds/slices/providers/displayAdRenderingManager';\nimport type { DisplayAdsConfigs, Slot } from '../../../components/modules/ads/displayAds/slices/providers/types';\nimport {\n displayInfiniteScrollAd,\n renderDisplayAdForSlot\n} from '../../../components/modules/ads/displayAds/slices/reduxConnect/adRenderingActionCreators';\nimport { selectDisplayAds } from '../../../components/modules/ads/displayAds/slices/reduxConnect/displayAdSlice';\nimport { useAppDispatch, useAppSelector } from '../../../store/redux/storeHooks/hooks';\nimport { appNexusOnEventKey } from './constants';\nimport type { DisplayAdsParams } from './types';\n\ninterface UseDisplayAdHookProps {\n refreshAdEnabled: boolean;\n slotId: string;\n latitude: number;\n longitude: number;\n pageId: string;\n enableAds: boolean;\n isAdVisible: boolean;\n adRefreshIntervalSeconds: number;\n isInfiniteScrollAd?: boolean;\n infiniteScrollIndex?: number;\n adServerRef: MutableRefObject;\n}\n\nexport const useDisplayAds = ({\n refreshAdEnabled,\n slotId,\n pageId,\n latitude,\n longitude,\n enableAds,\n isAdVisible,\n adRefreshIntervalSeconds,\n isInfiniteScrollAd,\n infiniteScrollIndex,\n adServerRef\n}: UseDisplayAdHookProps) => {\n const [adUnitState, setAdUnitState] = useState({\n adLoadFailed: false,\n adLoaded: false,\n adDisplayed: false,\n requestedAdIsAvailable: false,\n adRefreshed: false\n });\n\n // redux stuff\n const {\n adConfig: globalAdConfig,\n pageAdsConfigured,\n adConfigIsFetching,\n adsConfigured,\n currentConfiguredLatitude,\n currentConfiguredLongitude,\n currentConfiguredPageId\n } = useAppSelector(selectDisplayAds);\n\n const dispatch = useAppDispatch();\n\n // custom hook internal Refs\n const adRefreshTimerRef = useRef(null);\n const adEventsRegistered = useRef(false);\n const prevConfiguredPageAdLocation = useRef<{\n latitude: number;\n longitude: number;\n } | null>(null);\n\n const adLoadFailure = useCallback(() => {\n setAdUnitState((prevState) => {\n return {\n ...prevState,\n adLoadFailed: true,\n requestedAdIsAvailable: false\n };\n });\n }, []);\n\n const clearRefreshTimer = useCallback(() => {\n if (adRefreshTimerRef.current) {\n clearTimeout(adRefreshTimerRef.current);\n adRefreshTimerRef.current = null;\n }\n }, []);\n\n const setupRefreshTimer = useCallback(\n (\n isAdUnitInViewPort: boolean,\n refreshAdEnabled: boolean,\n slotIdOfAdToSetRefreshOn: string,\n pageId: string,\n globalAdsConfig: DisplayAdsConfigs,\n adRefreshIntervalSeconds: number,\n isInfiniteScrollAd?: boolean,\n infiniteScrollAdDivId?: string\n ) => {\n if (refreshAdEnabled && isAdUnitInViewPort && slotIdOfAdToSetRefreshOn) {\n clearRefreshTimer();\n adRefreshTimerRef.current = setTimeout(() => {\n setAdUnitState((prevState) => {\n return {\n ...prevState,\n adLoadFailed: false\n };\n });\n const displayAdRenderingManagerInstance = new DisplayAdRenderingManager();\n displayAdRenderingManagerInstance.refreshAd({\n slotId: slotIdOfAdToSetRefreshOn,\n pageId,\n globalAdConfig: globalAdsConfig,\n isInfiniteScrollAd,\n infiniteScrollAdDivId\n });\n adRefreshTimerRef.current = null;\n }, adRefreshIntervalSeconds * 1000);\n }\n },\n [clearRefreshTimer, dispatch]\n );\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const renderInfiniteScrollAd = (\n infiniteScrollAdslotId: string,\n globalAdConfig: DisplayAdsConfigs,\n adConfig?: Slot,\n infiniteScrollIndex?: number\n ) => {\n if (!adConfig || !infiniteScrollAdslotId || !Number.isInteger(infiniteScrollIndex)) {\n setAdUnitState((prevState) => {\n return {\n ...prevState,\n adLoadFailed: true\n };\n });\n return;\n }\n const registeredSlotId = infiniteScrollAdslotId + infiniteScrollIndex;\n dispatch(displayInfiniteScrollAd(registeredSlotId, adConfig, globalAdConfig));\n };\n\n const registerAdEvents = useCallback(\n (slotIdOfAdToRegister: string, isInfiniteScrollAd?: boolean, infiniteScrollIndex?: number) => {\n if (adServerRef.current?.onEvent && !adEventsRegistered.current) {\n const registeredSlotId =\n isInfiniteScrollAd && Number.isInteger(infiniteScrollIndex)\n ? slotIdOfAdToRegister + infiniteScrollIndex\n : slotIdOfAdToRegister;\n adServerRef.current.onEvent(appNexusOnEventKey.adAvailable, registeredSlotId, () => {\n setAdUnitState((prevState) => {\n return {\n ...prevState,\n adLoadFailed: false,\n requestedAdIsAvailable: true\n };\n });\n });\n adServerRef.current.onEvent(appNexusOnEventKey.adRequestFailure, registeredSlotId, adLoadFailure);\n adServerRef.current.onEvent(appNexusOnEventKey.adNoBid, registeredSlotId, adLoadFailure);\n adServerRef.current.onEvent(appNexusOnEventKey.adError, registeredSlotId, adLoadFailure);\n adServerRef.current.onEvent(appNexusOnEventKey.adBadRequest, registeredSlotId, adLoadFailure);\n adServerRef.current.onEvent(appNexusOnEventKey.adLoaded, registeredSlotId, () => {\n setAdUnitState((prevState) => {\n return {\n ...prevState,\n adLoadFailed: false,\n adLoaded: true,\n adDisplayed: true\n };\n });\n });\n adEventsRegistered.current = true;\n }\n },\n [adLoadFailure, adServerRef.current, adsConfigured]\n );\n\n const unregisterAdEvents = useCallback(\n (slotIdOfAdToRegister: string, isInfiniteScrollAd?: boolean, infiniteScrollIndex?: number) => {\n if (adServerRef.current?.offEvent && adEventsRegistered.current) {\n const registeredSlotId = isInfiniteScrollAd\n ? slotIdOfAdToRegister + infiniteScrollIndex\n : slotIdOfAdToRegister;\n adServerRef.current.offEvent(appNexusOnEventKey.adRequestFailure, registeredSlotId);\n adServerRef.current.offEvent(appNexusOnEventKey.adNoBid, registeredSlotId);\n adServerRef.current.offEvent(appNexusOnEventKey.adError, registeredSlotId);\n adServerRef.current.offEvent(appNexusOnEventKey.adBadRequest, registeredSlotId);\n adServerRef.current.offEvent(appNexusOnEventKey.adLoaded, registeredSlotId);\n adServerRef.current.offEvent(appNexusOnEventKey.adAvailable, registeredSlotId);\n }\n },\n [adServerRef.current, adsConfigured]\n );\n\n const displayAd = useCallback(\n ({\n adUnitSlotId,\n adLoadFailed,\n isAdUnitInViewport,\n globalAdConfig,\n enableAds,\n refreshAdEnabled,\n adConfig,\n isInfiniteScrollAd,\n infiniteScrollIndex,\n adRefreshIntervalSeconds\n }: DisplayAdsParams) => {\n if (!adLoadFailed && enableAds && globalAdConfig) {\n registerAdEvents(adUnitSlotId, isInfiniteScrollAd, infiniteScrollIndex);\n if (isInfiniteScrollAd) {\n renderInfiniteScrollAd(adUnitSlotId, globalAdConfig, adConfig, infiniteScrollIndex);\n } else {\n dispatch(renderDisplayAdForSlot(adUnitSlotId));\n }\n const infiniteScrollAdDivId = isInfiniteScrollAd ? adUnitSlotId + infiniteScrollIndex : undefined;\n setupRefreshTimer(\n isAdUnitInViewport,\n refreshAdEnabled,\n adUnitSlotId,\n pageId,\n globalAdConfig,\n adRefreshIntervalSeconds,\n isInfiniteScrollAd,\n infiniteScrollAdDivId\n );\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [registerAdEvents, setupRefreshTimer, dispatch]\n );\n\n // TODO: We may have to scrap this, our page rendering strategy will change significantly from Web 1 so this function may not be needed\n const onAdRequestedAvailable = useCallback(() => {\n if (\n slotId &&\n isAdVisible &&\n adUnitState.requestedAdIsAvailable &&\n !adUnitState.adDisplayed &&\n !adUnitState.adRefreshed &&\n pageAdsConfigured &&\n adsConfigured &&\n globalAdConfig &&\n pageId === currentConfiguredPageId &&\n latitude === currentConfiguredLatitude &&\n longitude === currentConfiguredLongitude\n ) {\n displayAd({\n adUnitSlotId: slotId,\n adLoadFailed: adUnitState.adLoadFailed,\n isAdUnitInViewport: isAdVisible,\n globalAdConfig,\n enableAds,\n refreshAdEnabled,\n isInfiniteScrollAd,\n infiniteScrollIndex,\n adRefreshIntervalSeconds\n });\n }\n\n if (!isAdVisible) {\n clearRefreshTimer();\n }\n }, [\n slotId,\n globalAdConfig,\n isAdVisible,\n pageAdsConfigured,\n adsConfigured,\n pageId,\n currentConfiguredPageId,\n latitude,\n currentConfiguredLatitude,\n longitude,\n currentConfiguredLongitude,\n adUnitState.adLoadFailed,\n adUnitState.adDisplayed,\n adUnitState.requestedAdIsAvailable,\n adUnitState.adRefreshed,\n enableAds,\n refreshAdEnabled,\n isInfiniteScrollAd,\n infiniteScrollIndex,\n adRefreshIntervalSeconds,\n displayAd,\n clearRefreshTimer\n ]);\n\n useEffect(() => {\n // TODO:\n // This will strictly vary per Rendering strategy used on a given page - we are no longer doing Client Side Rendering\n // so there's a high chance this step might not be required.\n // Handle Ad Unit Refreshes based on user actions (Location change, pageId changes when using dynamic routes)\n // if (adRefreshTimerRef.current) {\n // }\n if (\n pageId &&\n adsConfigured &&\n pageAdsConfigured &&\n currentConfiguredPageId &&\n !adConfigIsFetching &&\n globalAdConfig &&\n slotId &&\n pageId === currentConfiguredPageId &&\n Number.isFinite(prevConfiguredPageAdLocation.current?.latitude) &&\n Number.isFinite(prevConfiguredPageAdLocation.current?.longitude) &&\n Number.isFinite(currentConfiguredLatitude) &&\n Number.isFinite(currentConfiguredLongitude) &&\n prevConfiguredPageAdLocation.current?.latitude !== currentConfiguredLatitude &&\n prevConfiguredPageAdLocation.current?.longitude !== currentConfiguredLongitude\n ) {\n const infiniteScrollAdDivId =\n isInfiniteScrollAd && Number.isFinite(infiniteScrollIndex)\n ? `${slotId}${infiniteScrollIndex}`\n : undefined;\n\n clearRefreshTimer();\n setAdUnitState((prevState) => {\n return {\n ...prevState,\n adDisplayed: false,\n adLoaded: false,\n adLoadFailed: false,\n requestedAdIsAvailable: false\n };\n });\n const displayAdRenderingManagerInstance = new DisplayAdRenderingManager();\n displayAdRenderingManagerInstance.refreshAd({\n slotId,\n pageId,\n globalAdConfig,\n isInfiniteScrollAd,\n infiniteScrollAdDivId\n });\n setupRefreshTimer(\n isAdVisible,\n refreshAdEnabled,\n slotId,\n pageId,\n globalAdConfig,\n adRefreshIntervalSeconds,\n isInfiniteScrollAd,\n infiniteScrollAdDivId\n );\n }\n prevConfiguredPageAdLocation.current = {\n latitude: currentConfiguredLatitude!,\n longitude: currentConfiguredLongitude!\n };\n }, [\n isAdVisible,\n pageId,\n currentConfiguredLatitude,\n currentConfiguredLongitude,\n currentConfiguredPageId,\n slotId,\n globalAdConfig,\n isInfiniteScrollAd,\n infiniteScrollIndex,\n clearRefreshTimer,\n setupRefreshTimer,\n adRefreshIntervalSeconds,\n adsConfigured,\n pageAdsConfigured,\n adConfigIsFetching\n ]);\n\n return useMemo(\n () => ({\n adRefreshTimerRef,\n adUnitState,\n displayAd,\n onAdRequestedAvailable,\n registerAdEvents,\n setupRefreshTimer,\n clearRefreshTimer,\n unregisterAdEvents\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n adUnitState,\n adUnitState.adDisplayed,\n adUnitState.adLoadFailed,\n adUnitState.adLoaded,\n adUnitState.requestedAdIsAvailable,\n adUnitState.adRefreshed,\n displayAd,\n onAdRequestedAvailable,\n registerAdEvents,\n clearRefreshTimer,\n setupRefreshTimer,\n unregisterAdEvents\n ]\n );\n};\n","import { defaultAdsMap } from './constants';\n\ntype UseDefaultAdsProps = {\n width: number;\n height: number;\n};\n\nexport const useDefaultAds = ({ width, height }: UseDefaultAdsProps) => {\n if (!Number.isInteger(width) || !Number.isInteger(height)) {\n return;\n }\n const defaultAdKey = `${width}:${height}`;\n\n return defaultAdsMap.get(defaultAdKey);\n};\n","import Image from 'next/image';\nimport styled from 'styled-components';\nimport { useDefaultAds } from '../../../../hooks/ads/useDefaultAds/useDefaultAds';\n\nexport type DefaultAdProps = {\n width: number;\n height: number;\n};\n\nexport const DefaultAd = ({ width, height }: DefaultAdProps) => {\n const defaultAdData = useDefaultAds({ width, height });\n\n if (!defaultAdData) {\n return null;\n }\n\n return (\n \n \n \n );\n};\n\nconst Container = styled.a`\n display: flex;\n width: 100%;\n height: 100%;\n justify-content: center;\n align-items: center;\n`;\n","export const displayAdWidgetViewTestId = 'display-ad-widget-view';\n","/* eslint-disable no-extra-parens */\nimport { forwardRef } from 'react';\nimport styled from 'styled-components';\nimport { DefaultAd } from '../defaultAd/defaultAd';\nimport { displayAdWidgetViewTestId } from './constants';\n\nexport type DisplayAdWidgetViewProps = {\n enableAds?: boolean;\n slotId: string;\n width: number;\n height: number;\n showDefaultAd: boolean;\n};\n\nexport const DisplayAdWidgetView = forwardRef(\n ({ slotId, width, height, showDefaultAd = true }, ref) => {\n return (\n \n {slotId ? {showDefaultAd && }
: null}\n \n );\n }\n);\n\nDisplayAdWidgetView.displayName = 'DisplayAdWidgetView';\n\nconst Container = styled.div`\n display: flex;\n width: 100%;\n height: 100%;\n justify-content: center;\n`;\n","import { DisplayAdsConfigs } from '../slices/providers/types';\n\nexport const isPageVisible = (visibility: DocumentVisibilityState | null) => {\n switch (visibility) {\n case 'visible': {\n return true;\n }\n default:\n case 'hidden': {\n return false;\n }\n }\n};\n\nexport const getAdPlacementConfigData = (slotId: string, pageId: string, globalAdConfig?: DisplayAdsConfigs | null) => {\n const pageAdConfig = globalAdConfig?.PageAdConfigs?.find(\n (pageConfig) => pageConfig?.PageId?.toLowerCase() === pageId?.toLowerCase()\n );\n const adPlacementConfig = pageAdConfig?.Slots?.find((x) => x?.SlotId === slotId);\n const placementId = adPlacementConfig?.TagId || '';\n\n return {\n adPlacementConfig,\n placementId\n };\n};\n","/* eslint-disable no-extra-parens */\n/* eslint-disable operator-linebreak */\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport { useDocumentVisibilityState, useInViewRef } from 'rooks';\nimport { useDisplayAds } from '../../../../../hooks/ads/useDisplayAds/useDisplayAds';\nimport { selectAppConfig } from '../../../../../store/redux/common/dataLayer/appConfig/slices/appConfigSlice';\nimport { selectUserProfile } from '../../../../../store/redux/common/dataLayer/user/slices/userSlice';\nimport { useAppSelector } from '../../../../../store/redux/storeHooks/hooks';\nimport { DisplayAdWidgetView } from '../../../../elements/ads/displayAdWidgetView/displayAdWidgetView';\nimport { selectDisplayAds } from '../slices/reduxConnect/displayAdSlice';\nimport { intersectionObserverOptions } from './constants';\nimport type { BaseDisplayAdWidgetProps } from './types';\nimport { getAdPlacementConfigData, isPageVisible } from './utils';\n\nexport type DisplayAdWidgetProps = BaseDisplayAdWidgetProps;\n\nexport const DisplayAdWidget = ({\n slotId,\n refreshAdEnabled = true,\n isInfiniteScrollAd,\n infiniteScrollIndex,\n width,\n height,\n displayDefaultAd = true\n}: DisplayAdWidgetProps) => {\n const pageVisibilityState = useDocumentVisibilityState();\n\n // ad server ref\n const adServerRef = useRef(window.apntag);\n\n // app state\n const { pageRouteInfo, config, enableAds } = useAppSelector(selectAppConfig);\n const { pageId } = pageRouteInfo || {};\n const { defaultAdRefeshIntervalSeconds: adRefreshIntervalSeconds } = config || {};\n const { userProfile } = useAppSelector(selectUserProfile);\n const { Latitude: latitude, Longitude: longitude } = userProfile?.ActiveLocation?.Locality || {};\n\n // component state\n const [initialAdLoadComplete, setInitialAdLoadComplete] = useState(false);\n\n const {\n adConfig: globalAdConfig,\n pageAdsConfigured,\n adsConfigured,\n currentConfiguredLatitude,\n currentConfiguredLongitude,\n currentConfiguredPageId\n } = useAppSelector(selectDisplayAds);\n\n const [adUnitWrapperRef, isAdPlacementVisible] = useInViewRef(intersectionObserverOptions);\n\n const { adUnitState, displayAd, registerAdEvents, clearRefreshTimer, setupRefreshTimer, adRefreshTimerRef } =\n useDisplayAds({\n adServerRef,\n refreshAdEnabled,\n slotId,\n pageId: pageId as string,\n enableAds: enableAds as boolean,\n isAdVisible: isAdPlacementVisible,\n latitude: latitude as number,\n longitude: longitude as number,\n adRefreshIntervalSeconds: adRefreshIntervalSeconds as number,\n infiniteScrollIndex,\n isInfiniteScrollAd\n });\n\n const { adPlacementConfig } = useMemo(() => {\n if (!pageId) {\n return {} as ReturnType;\n }\n return getAdPlacementConfigData(slotId, pageId, globalAdConfig);\n }, [pageId, slotId, globalAdConfig]);\n\n useEffect(() => {\n // Set Server object reference\n if (!adServerRef.current) {\n adServerRef.current = window.apntag;\n }\n }, []);\n\n useEffect(() => {\n // Register Normal Banner ads\n if (slotId && !isInfiniteScrollAd) {\n registerAdEvents(slotId);\n }\n }, [registerAdEvents, slotId, isInfiniteScrollAd]);\n\n useEffect(() => {\n // Handles changes based on the visibility state of a document - Stop Ad Refresh when tab isn't active, set ad refresh when visible again.\n if (!isPageVisible(pageVisibilityState)) {\n clearRefreshTimer();\n } else if (\n isPageVisible(pageVisibilityState) &&\n !adRefreshTimerRef.current &&\n isAdPlacementVisible &&\n globalAdConfig &&\n pageId &&\n slotId &&\n Number.isFinite(adRefreshIntervalSeconds)\n ) {\n const infiniteScrollAdDivId = isInfiniteScrollAd ? `${slotId}${infiniteScrollIndex}` : undefined;\n setupRefreshTimer(\n isAdPlacementVisible,\n refreshAdEnabled,\n slotId,\n pageId,\n globalAdConfig,\n adRefreshIntervalSeconds as number,\n isInfiniteScrollAd,\n infiniteScrollAdDivId\n );\n }\n }, [\n pageVisibilityState,\n clearRefreshTimer,\n setupRefreshTimer,\n adRefreshTimerRef,\n refreshAdEnabled,\n slotId,\n adRefreshIntervalSeconds,\n isAdPlacementVisible,\n pageId,\n globalAdConfig,\n isInfiniteScrollAd,\n infiniteScrollIndex\n ]);\n\n useEffect(() => {\n // Display Normal | Infinite Scroll Ad Unit\n if (\n isPageVisible(pageVisibilityState) &&\n globalAdConfig &&\n ((slotId &&\n isAdPlacementVisible &&\n adsConfigured &&\n pageAdsConfigured &&\n adUnitState.requestedAdIsAvailable &&\n !isInfiniteScrollAd &&\n !adUnitState.adDisplayed &&\n !adUnitState.adRefreshed &&\n pageId === currentConfiguredPageId &&\n latitude === currentConfiguredLatitude &&\n longitude === currentConfiguredLongitude) ||\n (isInfiniteScrollAd && Number.isInteger(infiniteScrollIndex) && isAdPlacementVisible))\n ) {\n displayAd({\n adUnitSlotId: slotId,\n adLoadFailed: adUnitState.adLoadFailed,\n isAdUnitInViewport: isAdPlacementVisible,\n globalAdConfig,\n adConfig: adPlacementConfig,\n enableAds: enableAds as boolean,\n refreshAdEnabled,\n isInfiniteScrollAd,\n infiniteScrollIndex,\n adRefreshIntervalSeconds: adRefreshIntervalSeconds as number\n });\n }\n }, [\n isAdPlacementVisible,\n adsConfigured,\n pageAdsConfigured,\n adUnitState.requestedAdIsAvailable,\n adUnitState.adDisplayed,\n adUnitState.adLoadFailed,\n adUnitState.adRefreshed,\n pageId,\n currentConfiguredPageId,\n latitude,\n currentConfiguredLatitude,\n longitude,\n currentConfiguredLongitude,\n slotId,\n adRefreshIntervalSeconds,\n isInfiniteScrollAd,\n infiniteScrollIndex,\n globalAdConfig,\n enableAds,\n refreshAdEnabled,\n adPlacementConfig,\n pageVisibilityState,\n displayAd\n ]);\n\n useEffect(() => {\n if (displayDefaultAd) {\n if (adUnitState.adDisplayed && !initialAdLoadComplete) {\n setInitialAdLoadComplete(true);\n } else if (adUnitState.adLoadFailed && initialAdLoadComplete) {\n setInitialAdLoadComplete(false);\n }\n }\n }, [adUnitState.adDisplayed, adUnitState.adLoadFailed, initialAdLoadComplete, displayDefaultAd]);\n\n return (\n \n );\n};\n"],"names":["intersectionObserverOptions","threshold","root","rootMargin","positionOfLastTaboolaWidgetOnPage","feedCategoryType","position","warning","config","appNexusOnEventKey","adAvailable","adRequestFailure","adNoBid","adError","adBadRequest","adLoaded","useDisplayAds","refreshAdEnabled","slotId","pageId","latitude","longitude","enableAds","isAdVisible","adRefreshIntervalSeconds","isInfiniteScrollAd","infiniteScrollIndex","adServerRef","param","adUnitState","setAdUnitState","useState","adLoadFailed","adDisplayed","requestedAdIsAvailable","adRefreshed","adConfig","globalAdConfig","pageAdsConfigured","adConfigIsFetching","adsConfigured","currentConfiguredLatitude","currentConfiguredLongitude","currentConfiguredPageId","useAppSelector","selectDisplayAds","dispatch","useAppDispatch","adRefreshTimerRef","useRef","adEventsRegistered","prevConfiguredPageAdLocation","adLoadFailure","useCallback","prevState","clearRefreshTimer","current","clearTimeout","setupRefreshTimer","isAdUnitInViewPort","slotIdOfAdToSetRefreshOn","globalAdsConfig","infiniteScrollAdDivId","setTimeout","displayAdRenderingManagerInstance","DisplayAdRenderingManager","refreshAd","renderInfiniteScrollAd","infiniteScrollAdslotId","Number","isInteger","displayInfiniteScrollAd","registerAdEvents","slotIdOfAdToRegister","onEvent","registeredSlotId","unregisterAdEvents","offEvent","displayAd","adUnitSlotId","isAdUnitInViewport","renderDisplayAdForSlot","undefined","onAdRequestedAvailable","useEffect","isFinite","concat","useMemo","useDefaultAds","width","height","defaultAdKey","defaultAdsMap","get","DefaultAd","defaultAdData","jsx_runtime","jsx","Container","href","Image","src","alt","priority","styled","a","withConfig","DisplayAdWidgetView","forwardRef","ref","showDefaultAd","data-testid","div","id","displayName","isPageVisible","visibility","getAdPlacementConfigData","pageAdConfig","PageAdConfigs","find","pageConfig","PageId","toLowerCase","adPlacementConfig","Slots","x","SlotId","placementId","TagId","DisplayAdWidget","userProfile","displayDefaultAd","pageVisibilityState","useDocumentVisibilityState","visibilityState","setVisibilityState","react","document","handleVisibilityChange","useGlobalObjectEventListener","globalObject","eventName","callback","listenerOptions","when","isLayoutEffect","freshCallback","useFreshTick","freshRef","useFreshRef","value","preferLayoutEffect","useEffectToUse","useIsomorphicEffect","Y","args","useEffectToRun","addEventListener","removeEventListener","__webpack_require__","g","window","apntag","pageRouteInfo","selectAppConfig","defaultAdRefeshIntervalSeconds","selectUserProfile","Latitude","Longitude","ActiveLocation","Locality","initialAdLoadComplete","setInitialAdLoadComplete","adUnitWrapperRef","isAdPlacementVisible","useInViewRef","callbackOrOptions","options","noop","Z","opts","node","setNode","inView","setInView","observer","IntersectionObserver","entries","observerRef","isIntersecting","observe","disconnect","nodeElement"],"sourceRoot":""}