@adview/react 1.1.11 → 1.1.12
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.
- package/dist/AdViewUnit/AdViewUnit.cjs +23 -6
- package/dist/AdViewUnit/AdViewUnit.cjs.map +1 -1
- package/dist/AdViewUnit/AdViewUnit.client.cjs +23 -6
- package/dist/AdViewUnit/AdViewUnit.client.cjs.map +1 -1
- package/dist/AdViewUnit/AdViewUnit.client.d.cts +2 -1
- package/dist/AdViewUnit/AdViewUnit.client.d.ts +2 -1
- package/dist/AdViewUnit/AdViewUnit.client.js +23 -6
- package/dist/AdViewUnit/AdViewUnit.client.js.map +1 -1
- package/dist/AdViewUnit/AdViewUnit.d.cts +1 -0
- package/dist/AdViewUnit/AdViewUnit.d.ts +1 -0
- package/dist/AdViewUnit/AdViewUnit.js +23 -6
- package/dist/AdViewUnit/AdViewUnit.js.map +1 -1
- package/dist/index.cjs +23 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +23 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/AdViewUnit/AdViewUnit.client.tsx","../../src/AdViewUnit/AdViewUnitBannerTemplate.tsx","../../src/AdViewUnit/utils.ts","../../src/AdViewUnit/AdViewUnitNativeTemplate.tsx","../../src/AdViewUnit/AdViewUnitProxyTemplate.tsx","../../src/AdViewUnit/AdViewUnitTemplate.tsx","../../src/AdViewUnit/AdViewUnitTracking.tsx","../../src/AdViewUnit/useAdViewController.ts","../../src/AdViewUnit/AdViewProvider.tsx"],"sourcesContent":["'use client';\n\nimport { AdViewGroupItem } from '@adview/core';\nimport React from 'react';\nimport { AdViewUnitClientChildren, AdViewUnitPropsBase } from '../types';\nimport AdViewUnitBannerTemplate from './AdViewUnitBannerTemplate';\nimport AdViewUnitNativeTemplate from './AdViewUnitNativeTemplate';\nimport AdViewUnitProxyTemplate from './AdViewUnitProxyTemplate';\nimport { renderAnyTemplates } from './AdViewUnitTemplate';\nimport AdViewUnitTracking from './AdViewUnitTracking';\nimport useAdViewController from './useAdViewController';\n\nexport type AdViewUnitClientProps = AdViewUnitPropsBase & {\n children?: AdViewUnitClientChildren;\n wrapper?: (elms: React.ReactNode[]) => React.ReactNode;\n trackingWrapperClassName?: string;\n sources?: string[];\n};\n\n// AdViewUnitClient is a client-side component that fetches ad data and renders it\n// using the provided children function. It handles loading, error states, and\n// tracks ad interactions.\n//\n// Example usage:\n// <AdView.Unit unitId=\"my-unit\" format=\"banner\" srcURL=\"https://api.example.com/ads/{<id>}\">\n// {({ data, state, error }) => (\n// <div>\n// {state.isLoading && <span>Loading...</span>}\n// {error && <span>Error: {error.message}</span>}\n// {data && <img src={data.imageUrl} alt={data.title} />\n// </div>\n// )}\n// </AdView.Unit>\n//\n// Note: This component is designed to be used in a client-side environment where\n// ad data can be fetched dynamically. It is not suitable for server-side rendering.\n// It uses the AdViewUnitTracking component to handle ad tracking and interactions.\nfunction AdViewUnitClient({\n unitId,\n limit = 1,\n format,\n query,\n children,\n wrapper,\n trackingWrapperClassName,\n sources,\n ...config\n}: AdViewUnitClientProps) {\n const checkFormat = (f: string) => {\n if (!format) {\n return true;\n }\n return Array.isArray(format) ? format.includes(f) : f === format;\n };\n\n const [response, error, loadState] = useAdViewController(\n config,\n unitId,\n limit || 1,\n format,\n query,\n sources,\n );\n\n const {\n responseGroup: _,\n customTracker,\n groupItems,\n } = error\n ? { responseGroup: null, customTracker: {}, groupItems: [] }\n : (() => {\n for (let responseGroup of response?.groups || []) {\n const customTracker = responseGroup?.custom_tracker ?? {};\n const groupItems = (responseGroup?.items || [])\n .map(it => (checkFormat(it.type) ? it : null))\n .filter(Boolean);\n if (groupItems && groupItems.length > 0) {\n return { responseGroup, customTracker, groupItems };\n }\n }\n return { responseGroup: null, customTracker: {}, groupItems: [] };\n })();\n\n if (!children) {\n children = [\n <AdViewUnitBannerTemplate />,\n <AdViewUnitNativeTemplate />,\n <AdViewUnitProxyTemplate />,\n ];\n }\n\n if (!wrapper) {\n wrapper = (elms: React.ReactNode[]) => <>{elms}</>;\n }\n\n if (groupItems && groupItems?.length > 0) {\n return wrapper(\n (groupItems as AdViewGroupItem[]).map(({ tracker, ...data }, index) => {\n return (\n <AdViewUnitTracking\n key={data.id}\n {...tracker}\n className={trackingWrapperClassName}\n >\n {renderAnyTemplates(children, {\n unitId,\n index,\n data,\n type: data.type || 'default',\n error,\n state: loadState,\n })}\n </AdViewUnitTracking>\n );\n }),\n );\n }\n\n return wrapper([\n <AdViewUnitTracking {...customTracker} className={trackingWrapperClassName}>\n {renderAnyTemplates(children, {\n unitId,\n index: -1,\n data: null,\n type: 'default',\n error,\n state: loadState,\n })}\n </AdViewUnitTracking>,\n ]);\n}\n\nexport default AdViewUnitClient;\n","import {\n getAssetByName,\n getPrepareURL,\n getSrcSetCSSThumbs,\n} from '@adview/core/utils';\nimport React from 'react';\nimport { AdLoadState, AdViewUnitTemplateTypeProps } from '../types';\nimport { matchExpectedState } from './utils';\n\ntype AdViewUnitBannerTemplateProps = Omit<\n AdViewUnitTemplateTypeProps,\n 'type'\n> & {\n type?: 'banner';\n className?: string;\n style?: React.CSSProperties;\n};\n\nfunction AdViewUnitBannerTemplate({\n className = 'banner',\n style,\n data,\n state,\n ...props\n}: AdViewUnitBannerTemplateProps) {\n const expectState: AdLoadState =\n props?.isInitial || props?.isLoading || props?.isError || props?.isComplete\n ? {\n isInitial: props?.isInitial,\n isLoading: props?.isLoading,\n isError: props?.isError,\n isComplete: props?.isComplete,\n }\n : { isComplete: true };\n\n if (!data || !data.assets || !data.assets.length) {\n return null;\n }\n\n // Check if the expected state matches the current state\n if (!matchExpectedState(expectState, state)) {\n return null;\n }\n\n const asset = getAssetByName('main', data.assets);\n\n return (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(data.url)}\n className={className}\n style={{ fontSize: 0, ...style }}\n >\n {asset && (\n <img\n alt=\"main\"\n src={asset.path}\n srcSet={asset.thumbs ? getSrcSetCSSThumbs(asset.thumbs) : ''}\n style={{ maxWidth: '100%' }}\n />\n )}\n </a>\n );\n}\n\nAdViewUnitBannerTemplate.defaults = {\n type: 'banner',\n};\n\nexport default AdViewUnitBannerTemplate;\n","import { AdLoadState } from \"../types\";\n\nexport const matchExpectedState = (expectState?: AdLoadState, state?: AdLoadState) => {\n return !expectState || (\n (expectState.isInitial === undefined || expectState.isInitial === state?.isInitial) &&\n (expectState.isLoading === undefined || expectState.isLoading === state?.isLoading) &&\n (expectState.isError === undefined || expectState.isError === state?.isError) &&\n (expectState.isComplete === undefined || expectState.isComplete === state?.isComplete)\n );\n};\n","import { getAssetByName, getPrepareURL, getSrcSetCSSThumbs } from '@adview/core/utils';\nimport React from 'react';\nimport { AdLoadState, AdViewStyleTokensNative, AdViewUnitTemplateTypeProps } from '../types';\nimport { matchExpectedState } from './utils';\n\ntype AdViewUnitNativeTemplateProps = Omit<AdViewUnitTemplateTypeProps, 'type'> & {\n type?: 'native';\n classNames?: AdViewStyleTokensNative;\n};\n\nfunction AdViewUnitNativeTemplate({classNames, data, state, ...props}: AdViewUnitNativeTemplateProps) {\n if (!data || !data.assets || !data.assets.length) {\n return null;\n }\n\n const expectState: AdLoadState =\n (props?.isInitial || props?.isLoading || props?.isError || props?.isComplete) ? {\n isInitial: props?.isInitial,\n isLoading: props?.isLoading,\n isError: props?.isError,\n isComplete: props?.isComplete\n } : {isComplete: true};\n\n // Check if the expected state matches the current state\n if (!matchExpectedState(expectState, state)) {\n return null;\n }\n\n const { assets, url, fields } = data;\n const asset = getAssetByName('main', assets);\n\n if (!url) {\n return null;\n }\n\n return (\n <div className={classNames?.container}>\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n className={classNames?.imageLink}\n >\n {asset && (\n <img\n alt={fields?.title}\n title={fields?.title}\n src={asset.path}\n srcSet={asset.thumbs ? getSrcSetCSSThumbs(asset.thumbs) : undefined}\n className={classNames?.image}\n style={{ objectFit: 'cover', width: '100%', height: '100%' }}\n />\n )}\n </a>\n <div className={classNames?.label}>\n {fields?.title && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n data-class=\"titleLink\"\n className={classNames?.titleLink}\n >\n {fields.title}\n </a>\n )}\n {fields?.description && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n data-class=\"descriptionLink\"\n className={classNames?.descriptionLink}\n >\n {fields.description}\n </a>\n )}\n {fields?.brandname && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n data-class=\"brandNameLink\"\n className={classNames?.brandNameLink}\n >\n {fields.brandname}\n </a>\n )}\n {fields?.phone && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n data-class=\"phoneLink\"\n className={classNames?.phoneLink}\n >\n {fields.phone}\n </a>\n )}\n {fields?.url && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n data-class=\"urlLink\"\n className={classNames?.urlLink}\n >\n {fields?.url}\n </a>\n )}\n </div>\n </div>\n );\n}\n\nAdViewUnitNativeTemplate.defaults = {\n type: 'native',\n};\n\nexport default AdViewUnitNativeTemplate;\n","import React from 'react';\nimport { AdLoadState, AdViewUnitTemplateTypeProps } from '../types';\nimport { matchExpectedState } from './utils';\n\ntype AdViewUnitProxyTemplateProps = Omit<AdViewUnitTemplateTypeProps, 'type'> & {\n type?: 'proxy';\n className?: string;\n style?: React.CSSProperties;\n};\n\nfunction AdViewUnitProxyTemplate({className, style, data, state, ...props}: AdViewUnitProxyTemplateProps) {\n if (!data) {\n return null;\n }\n\n const expectState: AdLoadState =\n (props?.isInitial || props?.isLoading || props?.isError || props?.isComplete) ? {\n isInitial: props?.isInitial,\n isLoading: props?.isLoading,\n isError: props?.isError,\n isComplete: props?.isComplete\n } : {isComplete: true};\n\n // Check if the expected state matches the current state\n if (!matchExpectedState(expectState, state)) {\n return null;\n }\n\n const { url, fields } = data;\n const iframeSrc = fields?.url || url;\n\n if (!iframeSrc) {\n return null;\n }\n\n return (\n <iframe\n className={className}\n width=\"100%\"\n height=\"100%\"\n frameBorder=\"0\"\n marginWidth={0}\n marginHeight={0}\n allowTransparency={true}\n scrolling=\"no\"\n allowFullScreen={true}\n style={{ width: '100%', height: '100%', border: 'none', ...style }}\n src={iframeSrc}\n ></iframe>\n );\n}\n\nAdViewUnitProxyTemplate.defaults = {\n type: 'proxy',\n};\n\nexport default AdViewUnitProxyTemplate;\n","//\n// Example\n// <AdView.Unit>\n// <AdView.Template type=\"banner\">\n// <...>\n// </AdView.Template>\n// </AdView.Unit>\n//\n\nimport React, { JSX } from 'react';\nimport {\n AdLoadState,\n AdViewUnitClientChildrenProps,\n AdViewUnitTemplateProps,\n AdViewUnitTemplateTypeProps,\n} from '../types';\nimport { matchExpectedState } from './utils';\n\n// TemplateListRender is a function that takes a list of TemplateType and returns a React element\nexport type TemplateListRender = (\n tmpls: TemplateElement[],\n) => React.ReactElement | JSX.Element;\n\n// TemplateType is a React component that can be used to render ad templates\nexport type TemplateType = React.Component<AdViewUnitTemplateProps>;\nexport type TemplateElement = React.ReactElement<AdViewUnitTemplateProps>;\n\n// TemplateTypeFunction is a function that takes AdViewUnitTemplateTypeProps and returns a React node or element\nexport type TemplateTypeFunction = (\n props: AdViewUnitTemplateTypeProps,\n) => React.ReactNode | React.ReactElement;\n\n// templateFromListRender is a function that takes a list of TemplateType and returns a React element\nexport const templateFromListRender = (\n tmpls: TemplateElement[],\n data: AdViewUnitTemplateTypeProps,\n wrap?: (children: React.ReactNode) => React.ReactNode,\n): JSX.Element | React.ReactElement => {\n if (!wrap) {\n wrap = (children: React.ReactNode) => children;\n }\n\n let renderedTemplate = null;\n\n for (let tpl of tmpls) {\n let tmp = renderTemplate(tpl, data);\n if (tmp && React.isValidElement(tmp)) {\n renderedTemplate = wrap(tmp);\n break;\n }\n }\n\n if (!renderedTemplate) {\n for (let tpl of tmpls) {\n let tmp = renderTemplate(tpl, { ...data, type: 'default' });\n if (tmp && React.isValidElement(tmp)) {\n renderedTemplate = wrap(tmp);\n break;\n }\n }\n }\n\n return <>{renderedTemplate}</>;\n};\n\n// renderTemplate is a function that takes a TemplateType or a function and returns a React node\nexport const renderTemplate = (\n tmpl: TemplateElement | TemplateTypeFunction,\n data: AdViewUnitTemplateTypeProps,\n): React.ReactNode => {\n const isFunction = typeof tmpl === 'function';\n const isReactElement = React.isValidElement(tmpl);\n\n if (isReactElement) {\n // Extract type and children from the React element\n let { type, children } = tmpl.props;\n if (!type && typeof tmpl.type !== 'string') {\n type = (tmpl.type as any)?.defaults?.type;\n }\n // If the type does not match, return null\n if (!!type && type !== '*' && data.type !== type) {\n return null;\n }\n // If children is a function, call it with the data\n if (typeof children === 'function') {\n return children(data as AdViewUnitClientChildrenProps);\n }\n // If children is a React element, clone it with the new props\n return React.cloneElement(tmpl as TemplateElement, {\n ...data,\n children: children,\n });\n }\n\n if (isFunction) {\n return tmpl(data);\n }\n\n return null;\n};\n\n// renderTemplates is a function that takes a list of TemplateType and returns a React element\nexport const renderTemplates = (\n tmpls: TemplateElement[],\n data: AdViewUnitTemplateTypeProps,\n listRender?: TemplateListRender,\n): React.ReactNode | React.ReactElement | JSX.Element => {\n return listRender ? listRender(tmpls) : templateFromListRender(tmpls, data);\n};\n\nexport const renderAnyTemplates = (\n tmpls: any,\n data: AdViewUnitTemplateTypeProps,\n listRender?: TemplateListRender,\n): React.ReactNode | React.ReactElement | JSX.Element | null => {\n if (!tmpls) {\n return null;\n }\n\n if (Array.isArray(tmpls)) {\n return renderTemplates(tmpls as TemplateElement[], data, listRender);\n }\n\n if (typeof tmpls === 'function') {\n return tmpls(data);\n }\n\n if (React.isValidElement(tmpls)) {\n return templateFromListRender([tmpls as TemplateElement], data);\n }\n\n return null;\n};\n\n// Template is a React component that renders a template based on the type and data provided\n// Example usage:\n// <AdView.Unit>\n// <AdView.Template type=\"banner\" data={{...}}>\n// </AdView.Unit>\nconst AdViewUnitTemplate = ({\n type,\n state,\n children,\n ...props\n}: AdViewUnitTemplateProps) => {\n const tmplProps: AdViewUnitTemplateTypeProps = {\n type,\n state,\n ...props,\n };\n\n const expectState: AdLoadState =\n props?.isInitial || props?.isLoading || props?.isError || props?.isComplete\n ? {\n isInitial: props?.isInitial,\n isLoading: props?.isLoading,\n isError: props?.isError,\n isComplete: props?.isComplete,\n }\n : { isComplete: true };\n\n // Check if the expected state matches the current state\n if (!matchExpectedState(expectState, state)) {\n return null;\n }\n\n // If children is a function, call it with the data\n if (typeof children === 'function') {\n return children(\n tmplProps as AdViewUnitClientChildrenProps,\n ) as React.ReactElement;\n }\n\n // If children is a React element, clone it with the new props\n if (React.isValidElement(children)) {\n return React.cloneElement(children, tmplProps);\n }\n\n // If no children are provided, return an empty fragment\n return <></>;\n};\n\nexport default AdViewUnitTemplate;\n","'use client';\n\nimport { executeImpressionsTracking } from '@adview/core/utils';\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react';\n\ntype AdViewUnitTrackingProps = {\n impressions?: string[];\n views?: string[];\n clicks?: string[];\n children: React.ReactNode;\n className?: string;\n};\n\nfunction AdViewUnitTracking({\n impressions,\n views,\n clicks,\n children,\n className,\n}: AdViewUnitTrackingProps) {\n const isServer = typeof window === 'undefined';\n const wrapperRef = useRef<HTMLDivElement>(null);\n const executeImpressionsTrackingHandler = useCallback(\n () => executeImpressionsTracking(impressions),\n [impressions],\n );\n const trackingObserverInstanceHandler = useCallback(\n (entries: IntersectionObserverEntry[]) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n executeImpressionsTracking(views);\n trackingObserverInstance?.unobserve(wrapperRef.current!);\n }\n });\n },\n [views],\n );\n const trackingObserverInstance = useMemo<IntersectionObserver | null>(() => {\n return !isServer\n ? new IntersectionObserver(trackingObserverInstanceHandler)\n : null;\n }, [isServer, trackingObserverInstanceHandler]);\n const clickTrackerHandler = useCallback(() => {\n executeImpressionsTracking(clicks);\n\n wrapperRef.current?.removeEventListener('click', clickTrackerHandler);\n }, [clicks]);\n\n useEffect(() => {\n if (wrapperRef.current && trackingObserverInstance) {\n executeImpressionsTrackingHandler();\n wrapperRef.current?.addEventListener('click', clickTrackerHandler);\n trackingObserverInstance?.observe(wrapperRef.current);\n\n return () => {\n wrapperRef.current?.removeEventListener('click', clickTrackerHandler);\n if (wrapperRef.current)\n trackingObserverInstance?.unobserve(wrapperRef.current);\n };\n }\n\n return () => {};\n }, [\n trackingObserverInstance,\n executeImpressionsTrackingHandler,\n clickTrackerHandler,\n ]);\n\n return (\n <div ref={wrapperRef} className={className}>\n {children}\n </div>\n );\n}\n\nexport default AdViewUnitTracking;\n","'use client';\n\nimport { AdViewData, AdViewDataLoader } from '@adview/core/typings';\nimport { getDataLoaderFromConfig, getResolveConfig } from '@adview/core/utils';\nimport { useContext, useEffect, useState } from 'react';\nimport { AdLoadState, AdViewConfig } from '../types';\nimport { AdViewProviderContext } from './AdViewProvider';\n\ntype UseAdViewControllerProps = [AdViewData | null, Error | null, AdLoadState];\n\nfunction useAdViewController(\n adUnitConfig: AdViewConfig,\n unitId: string,\n limit: number = 1,\n format?: string | string[],\n query?: { [key: string]: any },\n sources?: string[],\n): UseAdViewControllerProps {\n const [adLoadState, setAdLoadState] = useState<string>('initial');\n const [adData, setAdData] = useState<AdViewData | null>(null);\n const [errorMessage, setErrorMessage] = useState<Error | null>(null);\n const globalConfig = useContext(AdViewProviderContext);\n const baseConfig = getResolveConfig({ ...adUnitConfig, ...globalConfig });\n const dataLoader: AdViewDataLoader = getDataLoaderFromConfig(\n baseConfig,\n sources,\n );\n\n const loadAd = async () => {\n setAdLoadState('loading');\n\n try {\n const response = await dataLoader.fetchAdData(\n unitId,\n limit || 1,\n format,\n query,\n );\n\n if (response instanceof Error) {\n setAdLoadState('error');\n setErrorMessage(response);\n } else {\n setAdData(response);\n }\n setAdLoadState('complete');\n } catch (error) {\n setAdLoadState('error');\n setAdLoadState('complete');\n setErrorMessage(error as Error);\n }\n };\n\n const loadState = {\n isInitial: adLoadState === 'initial',\n isLoading: adLoadState === 'loading',\n isComplete: adLoadState === 'complete',\n isError: adLoadState === 'error',\n };\n\n useEffect(() => {\n loadAd();\n }, [unitId, limit, format]);\n\n return [adData, errorMessage, loadState];\n}\n\nexport default useAdViewController;\n","'use client';\n\nimport React, { createContext } from 'react';\nimport { type AdViewConfig } from '../types';\n\ntype AdViewProviderContextProps = AdViewConfig;\n\nexport const AdViewProviderContext = createContext<AdViewProviderContextProps>(\n {} as AdViewProviderContextProps,\n);\n\ntype AdViewProviderProps = {\n children: React.ReactNode;\n} & AdViewProviderContextProps;\n\nconst AdViewProvider = ({ children, ...props }: AdViewProviderProps) => {\n return (\n <AdViewProviderContext.Provider value={props}>\n {children}\n </AdViewProviderContext.Provider>\n );\n};\n\nexport default AdViewProvider;\n"],"mappings":"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","names":["React","getAssetByName","getPrepareURL","getSrcSetCSSThumbs","React","getAssetByName","React","getPrepareURL","getSrcSetCSSThumbs","React","React","React","React","React","useEffect","React","useEffect","customTracker","groupItems","React"]}
|
|
1
|
+
{"version":3,"sources":["../../src/AdViewUnit/AdViewUnit.client.tsx","../../src/AdViewUnit/AdViewUnitBannerTemplate.tsx","../../src/AdViewUnit/utils.ts","../../src/AdViewUnit/AdViewUnitNativeTemplate.tsx","../../src/AdViewUnit/AdViewUnitProxyTemplate.tsx","../../src/AdViewUnit/AdViewUnitTemplate.tsx","../../src/AdViewUnit/AdViewUnitTracking.tsx","../../src/AdViewUnit/useAdViewController.ts","../../src/AdViewUnit/AdViewProvider.tsx"],"sourcesContent":["'use client';\n\nimport { AdViewData, AdViewGroupItem } from '@adview/core';\nimport React from 'react';\nimport { AdViewUnitClientChildren, AdViewUnitPropsBase } from '../types';\nimport AdViewUnitBannerTemplate from './AdViewUnitBannerTemplate';\nimport AdViewUnitNativeTemplate from './AdViewUnitNativeTemplate';\nimport AdViewUnitProxyTemplate from './AdViewUnitProxyTemplate';\nimport { renderAnyTemplates } from './AdViewUnitTemplate';\nimport AdViewUnitTracking from './AdViewUnitTracking';\nimport useAdViewController from './useAdViewController';\n\nexport type AdViewUnitClientProps = AdViewUnitPropsBase & {\n children?: AdViewUnitClientChildren;\n wrapper?: (\n adViewData: AdViewData | null,\n elms: React.ReactNode[],\n ) => React.ReactNode;\n trackingWrapperClassName?: string;\n sources?: string[];\n};\n\n// AdViewUnitClient is a client-side component that fetches ad data and renders it\n// using the provided children function. It handles loading, error states, and\n// tracks ad interactions.\n//\n// Example usage:\n// <AdView.Unit unitId=\"my-unit\" format=\"banner\" srcURL=\"https://api.example.com/ads/{<id>}\">\n// {({ data, state, error }) => (\n// <div>\n// {state.isLoading && <span>Loading...</span>}\n// {error && <span>Error: {error.message}</span>}\n// {data && <img src={data.imageUrl} alt={data.title} />\n// </div>\n// )}\n// </AdView.Unit>\n//\n// Note: This component is designed to be used in a client-side environment where\n// ad data can be fetched dynamically. It is not suitable for server-side rendering.\n// It uses the AdViewUnitTracking component to handle ad tracking and interactions.\nfunction AdViewUnitClient({\n unitId,\n limit = 1,\n format,\n query,\n children,\n wrapper,\n trackingWrapperClassName,\n sources,\n ...config\n}: AdViewUnitClientProps) {\n const checkFormat = (f: string) => {\n if (!format) {\n return true;\n }\n return Array.isArray(format) ? format.includes(f) : f === format;\n };\n\n const [response, error, loadState] = useAdViewController(\n config,\n unitId,\n limit || 1,\n format,\n query,\n sources,\n );\n\n const {\n responseGroup: _,\n customTracker,\n groupItems,\n adViewData,\n } = error\n ? {\n responseGroup: null,\n customTracker: {},\n groupItems: [],\n adViewData: null,\n }\n : (() => {\n for (let responseGroup of response?.groups || []) {\n const customTracker = responseGroup?.custom_tracker ?? {};\n const groupItems = (responseGroup?.items || [])\n .map(it => (checkFormat(it.type) ? it : null))\n .filter(Boolean);\n if (groupItems && groupItems.length > 0) {\n return {\n responseGroup,\n customTracker,\n groupItems,\n adViewData: response,\n };\n }\n }\n return {\n responseGroup: null,\n customTracker: {},\n groupItems: [],\n adViewData: response,\n };\n })();\n\n if (!children) {\n children = [\n <AdViewUnitBannerTemplate />,\n <AdViewUnitNativeTemplate />,\n <AdViewUnitProxyTemplate />,\n ];\n }\n\n if (!wrapper) {\n wrapper = (_: AdViewData | null, elms: React.ReactNode[]) => <>{elms}</>;\n }\n\n if (groupItems && groupItems?.length > 0) {\n return wrapper(\n adViewData,\n (groupItems as AdViewGroupItem[]).map(({ tracker, ...data }, index) => {\n return (\n <AdViewUnitTracking\n key={data.id}\n {...tracker}\n className={trackingWrapperClassName}\n >\n {renderAnyTemplates(children, {\n unitId,\n index,\n data,\n type: data.type || 'default',\n error,\n state: loadState,\n })}\n </AdViewUnitTracking>\n );\n }),\n );\n }\n\n return wrapper(adViewData, [\n <AdViewUnitTracking {...customTracker} className={trackingWrapperClassName}>\n {renderAnyTemplates(children, {\n unitId,\n index: -1,\n data: null,\n type: 'default',\n error,\n state: loadState,\n })}\n </AdViewUnitTracking>,\n ]);\n}\n\nexport default AdViewUnitClient;\n","import {\n getAssetByName,\n getPrepareURL,\n getSrcSetCSSThumbs,\n} from '@adview/core/utils';\nimport React from 'react';\nimport { AdLoadState, AdViewUnitTemplateTypeProps } from '../types';\nimport { matchExpectedState } from './utils';\n\ntype AdViewUnitBannerTemplateProps = Omit<\n AdViewUnitTemplateTypeProps,\n 'type'\n> & {\n type?: 'banner';\n className?: string;\n style?: React.CSSProperties;\n};\n\nfunction AdViewUnitBannerTemplate({\n className = 'banner',\n style,\n data,\n state,\n ...props\n}: AdViewUnitBannerTemplateProps) {\n const expectState: AdLoadState =\n props?.isInitial || props?.isLoading || props?.isError || props?.isComplete\n ? {\n isInitial: props?.isInitial,\n isLoading: props?.isLoading,\n isError: props?.isError,\n isComplete: props?.isComplete,\n }\n : { isComplete: true };\n\n if (!data || !data.assets || !data.assets.length) {\n return null;\n }\n\n // Check if the expected state matches the current state\n if (!matchExpectedState(expectState, state)) {\n return null;\n }\n\n const asset = getAssetByName('main', data.assets);\n\n return (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(data.url)}\n className={className}\n style={{ fontSize: 0, ...style }}\n >\n {asset && (\n <img\n alt=\"main\"\n src={asset.path}\n srcSet={asset.thumbs ? getSrcSetCSSThumbs(asset.thumbs) : ''}\n style={{ maxWidth: '100%' }}\n />\n )}\n </a>\n );\n}\n\nAdViewUnitBannerTemplate.defaults = {\n type: 'banner',\n};\n\nexport default AdViewUnitBannerTemplate;\n","import { AdLoadState } from \"../types\";\n\nexport const matchExpectedState = (expectState?: AdLoadState, state?: AdLoadState) => {\n return !expectState || (\n (expectState.isInitial === undefined || expectState.isInitial === state?.isInitial) &&\n (expectState.isLoading === undefined || expectState.isLoading === state?.isLoading) &&\n (expectState.isError === undefined || expectState.isError === state?.isError) &&\n (expectState.isComplete === undefined || expectState.isComplete === state?.isComplete)\n );\n};\n","import { getAssetByName, getPrepareURL, getSrcSetCSSThumbs } from '@adview/core/utils';\nimport React from 'react';\nimport { AdLoadState, AdViewStyleTokensNative, AdViewUnitTemplateTypeProps } from '../types';\nimport { matchExpectedState } from './utils';\n\ntype AdViewUnitNativeTemplateProps = Omit<AdViewUnitTemplateTypeProps, 'type'> & {\n type?: 'native';\n classNames?: AdViewStyleTokensNative;\n};\n\nfunction AdViewUnitNativeTemplate({classNames, data, state, ...props}: AdViewUnitNativeTemplateProps) {\n if (!data || !data.assets || !data.assets.length) {\n return null;\n }\n\n const expectState: AdLoadState =\n (props?.isInitial || props?.isLoading || props?.isError || props?.isComplete) ? {\n isInitial: props?.isInitial,\n isLoading: props?.isLoading,\n isError: props?.isError,\n isComplete: props?.isComplete\n } : {isComplete: true};\n\n // Check if the expected state matches the current state\n if (!matchExpectedState(expectState, state)) {\n return null;\n }\n\n const { assets, url, fields } = data;\n const asset = getAssetByName('main', assets);\n\n if (!url) {\n return null;\n }\n\n return (\n <div className={classNames?.container}>\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n className={classNames?.imageLink}\n >\n {asset && (\n <img\n alt={fields?.title}\n title={fields?.title}\n src={asset.path}\n srcSet={asset.thumbs ? getSrcSetCSSThumbs(asset.thumbs) : undefined}\n className={classNames?.image}\n style={{ objectFit: 'cover', width: '100%', height: '100%' }}\n />\n )}\n </a>\n <div className={classNames?.label}>\n {fields?.title && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n data-class=\"titleLink\"\n className={classNames?.titleLink}\n >\n {fields.title}\n </a>\n )}\n {fields?.description && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n data-class=\"descriptionLink\"\n className={classNames?.descriptionLink}\n >\n {fields.description}\n </a>\n )}\n {fields?.brandname && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n data-class=\"brandNameLink\"\n className={classNames?.brandNameLink}\n >\n {fields.brandname}\n </a>\n )}\n {fields?.phone && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n data-class=\"phoneLink\"\n className={classNames?.phoneLink}\n >\n {fields.phone}\n </a>\n )}\n {fields?.url && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n data-class=\"urlLink\"\n className={classNames?.urlLink}\n >\n {fields?.url}\n </a>\n )}\n </div>\n </div>\n );\n}\n\nAdViewUnitNativeTemplate.defaults = {\n type: 'native',\n};\n\nexport default AdViewUnitNativeTemplate;\n","import React from 'react';\nimport { AdLoadState, AdViewUnitTemplateTypeProps } from '../types';\nimport { matchExpectedState } from './utils';\n\ntype AdViewUnitProxyTemplateProps = Omit<AdViewUnitTemplateTypeProps, 'type'> & {\n type?: 'proxy';\n className?: string;\n style?: React.CSSProperties;\n};\n\nfunction AdViewUnitProxyTemplate({className, style, data, state, ...props}: AdViewUnitProxyTemplateProps) {\n if (!data) {\n return null;\n }\n\n const expectState: AdLoadState =\n (props?.isInitial || props?.isLoading || props?.isError || props?.isComplete) ? {\n isInitial: props?.isInitial,\n isLoading: props?.isLoading,\n isError: props?.isError,\n isComplete: props?.isComplete\n } : {isComplete: true};\n\n // Check if the expected state matches the current state\n if (!matchExpectedState(expectState, state)) {\n return null;\n }\n\n const { url, fields } = data;\n const iframeSrc = fields?.url || url;\n\n if (!iframeSrc) {\n return null;\n }\n\n return (\n <iframe\n className={className}\n width=\"100%\"\n height=\"100%\"\n frameBorder=\"0\"\n marginWidth={0}\n marginHeight={0}\n allowTransparency={true}\n scrolling=\"no\"\n allowFullScreen={true}\n style={{ width: '100%', height: '100%', border: 'none', ...style }}\n src={iframeSrc}\n ></iframe>\n );\n}\n\nAdViewUnitProxyTemplate.defaults = {\n type: 'proxy',\n};\n\nexport default AdViewUnitProxyTemplate;\n","//\n// Example\n// <AdView.Unit>\n// <AdView.Template type=\"banner\">\n// <...>\n// </AdView.Template>\n// </AdView.Unit>\n//\n\nimport React, { JSX } from 'react';\nimport {\n AdLoadState,\n AdViewUnitClientChildrenProps,\n AdViewUnitTemplateProps,\n AdViewUnitTemplateTypeProps,\n} from '../types';\nimport { matchExpectedState } from './utils';\n\n// TemplateListRender is a function that takes a list of TemplateType and returns a React element\nexport type TemplateListRender = (\n tmpls: TemplateElement[],\n) => React.ReactElement | JSX.Element;\n\n// TemplateType is a React component that can be used to render ad templates\nexport type TemplateType = React.Component<AdViewUnitTemplateProps>;\nexport type TemplateElement = React.ReactElement<AdViewUnitTemplateProps>;\n\n// TemplateTypeFunction is a function that takes AdViewUnitTemplateTypeProps and returns a React node or element\nexport type TemplateTypeFunction = (\n props: AdViewUnitTemplateTypeProps,\n) => React.ReactNode | React.ReactElement;\n\n// templateFromListRender is a function that takes a list of TemplateType and returns a React element\nexport const templateFromListRender = (\n tmpls: TemplateElement[],\n data: AdViewUnitTemplateTypeProps,\n wrap?: (children: React.ReactNode) => React.ReactNode,\n): JSX.Element | React.ReactElement => {\n if (!wrap) {\n wrap = (children: React.ReactNode) => children;\n }\n\n let renderedTemplate = null;\n\n for (let tpl of tmpls) {\n let tmp = renderTemplate(tpl, data);\n if (tmp && React.isValidElement(tmp)) {\n renderedTemplate = wrap(tmp);\n break;\n }\n }\n\n if (!renderedTemplate) {\n for (let tpl of tmpls) {\n let tmp = renderTemplate(tpl, { ...data, type: 'default' });\n if (tmp && React.isValidElement(tmp)) {\n renderedTemplate = wrap(tmp);\n break;\n }\n }\n }\n\n return <>{renderedTemplate}</>;\n};\n\n// renderTemplate is a function that takes a TemplateType or a function and returns a React node\nexport const renderTemplate = (\n tmpl: TemplateElement | TemplateTypeFunction,\n data: AdViewUnitTemplateTypeProps,\n): React.ReactNode => {\n const isFunction = typeof tmpl === 'function';\n const isReactElement = React.isValidElement(tmpl);\n\n if (isReactElement) {\n // Extract type and children from the React element\n let { type, children } = tmpl.props;\n if (!type && typeof tmpl.type !== 'string') {\n type = (tmpl.type as any)?.defaults?.type;\n }\n // If the type does not match, return null\n if (!!type && type !== '*' && data.type !== type) {\n return null;\n }\n // If children is a function, call it with the data\n if (typeof children === 'function') {\n return children(data as AdViewUnitClientChildrenProps);\n }\n // If children is a React element, clone it with the new props\n return React.cloneElement(tmpl as TemplateElement, {\n ...data,\n children: children,\n });\n }\n\n if (isFunction) {\n return tmpl(data);\n }\n\n return null;\n};\n\n// renderTemplates is a function that takes a list of TemplateType and returns a React element\nexport const renderTemplates = (\n tmpls: TemplateElement[],\n data: AdViewUnitTemplateTypeProps,\n listRender?: TemplateListRender,\n): React.ReactNode | React.ReactElement | JSX.Element => {\n return listRender ? listRender(tmpls) : templateFromListRender(tmpls, data);\n};\n\nexport const renderAnyTemplates = (\n tmpls: any,\n data: AdViewUnitTemplateTypeProps,\n listRender?: TemplateListRender,\n): React.ReactNode | React.ReactElement | JSX.Element | null => {\n if (!tmpls) {\n return null;\n }\n\n if (Array.isArray(tmpls)) {\n return renderTemplates(tmpls as TemplateElement[], data, listRender);\n }\n\n if (typeof tmpls === 'function') {\n return tmpls(data);\n }\n\n if (React.isValidElement(tmpls)) {\n return templateFromListRender([tmpls as TemplateElement], data);\n }\n\n return null;\n};\n\n// Template is a React component that renders a template based on the type and data provided\n// Example usage:\n// <AdView.Unit>\n// <AdView.Template type=\"banner\" data={{...}}>\n// </AdView.Unit>\nconst AdViewUnitTemplate = ({\n type,\n state,\n children,\n ...props\n}: AdViewUnitTemplateProps) => {\n const tmplProps: AdViewUnitTemplateTypeProps = {\n type,\n state,\n ...props,\n };\n\n const expectState: AdLoadState =\n props?.isInitial || props?.isLoading || props?.isError || props?.isComplete\n ? {\n isInitial: props?.isInitial,\n isLoading: props?.isLoading,\n isError: props?.isError,\n isComplete: props?.isComplete,\n }\n : { isComplete: true };\n\n // Check if the expected state matches the current state\n if (!matchExpectedState(expectState, state)) {\n return null;\n }\n\n // If children is a function, call it with the data\n if (typeof children === 'function') {\n return children(\n tmplProps as AdViewUnitClientChildrenProps,\n ) as React.ReactElement;\n }\n\n // If children is a React element, clone it with the new props\n if (React.isValidElement(children)) {\n return React.cloneElement(children, tmplProps);\n }\n\n // If no children are provided, return an empty fragment\n return <></>;\n};\n\nexport default AdViewUnitTemplate;\n","'use client';\n\nimport { executeImpressionsTracking } from '@adview/core/utils';\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react';\n\ntype AdViewUnitTrackingProps = {\n impressions?: string[];\n views?: string[];\n clicks?: string[];\n children: React.ReactNode;\n className?: string;\n};\n\nfunction AdViewUnitTracking({\n impressions,\n views,\n clicks,\n children,\n className,\n}: AdViewUnitTrackingProps) {\n const isServer = typeof window === 'undefined';\n const wrapperRef = useRef<HTMLDivElement>(null);\n const executeImpressionsTrackingHandler = useCallback(\n () => executeImpressionsTracking(impressions),\n [impressions],\n );\n const trackingObserverInstanceHandler = useCallback(\n (entries: IntersectionObserverEntry[]) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n executeImpressionsTracking(views);\n trackingObserverInstance?.unobserve(wrapperRef.current!);\n }\n });\n },\n [views],\n );\n const trackingObserverInstance = useMemo<IntersectionObserver | null>(() => {\n return !isServer\n ? new IntersectionObserver(trackingObserverInstanceHandler)\n : null;\n }, [isServer, trackingObserverInstanceHandler]);\n const clickTrackerHandler = useCallback(() => {\n executeImpressionsTracking(clicks);\n\n wrapperRef.current?.removeEventListener('click', clickTrackerHandler);\n }, [clicks]);\n\n useEffect(() => {\n if (wrapperRef.current && trackingObserverInstance) {\n executeImpressionsTrackingHandler();\n wrapperRef.current?.addEventListener('click', clickTrackerHandler);\n trackingObserverInstance?.observe(wrapperRef.current);\n\n return () => {\n wrapperRef.current?.removeEventListener('click', clickTrackerHandler);\n if (wrapperRef.current)\n trackingObserverInstance?.unobserve(wrapperRef.current);\n };\n }\n\n return () => {};\n }, [\n trackingObserverInstance,\n executeImpressionsTrackingHandler,\n clickTrackerHandler,\n ]);\n\n return (\n <div ref={wrapperRef} className={className}>\n {children}\n </div>\n );\n}\n\nexport default AdViewUnitTracking;\n","'use client';\n\nimport { AdViewData, AdViewDataLoader } from '@adview/core/typings';\nimport { getDataLoaderFromConfig, getResolveConfig } from '@adview/core/utils';\nimport { useContext, useEffect, useState } from 'react';\nimport { AdLoadState, AdViewConfig } from '../types';\nimport { AdViewProviderContext } from './AdViewProvider';\n\ntype UseAdViewControllerProps = [AdViewData | null, Error | null, AdLoadState];\n\nfunction useAdViewController(\n adUnitConfig: AdViewConfig,\n unitId: string,\n limit: number = 1,\n format?: string | string[],\n query?: { [key: string]: any },\n sources?: string[],\n): UseAdViewControllerProps {\n const [adLoadState, setAdLoadState] = useState<string>('initial');\n const [adData, setAdData] = useState<AdViewData | null>(null);\n const [errorMessage, setErrorMessage] = useState<Error | null>(null);\n const globalConfig = useContext(AdViewProviderContext);\n const baseConfig = getResolveConfig({ ...adUnitConfig, ...globalConfig });\n const dataLoader: AdViewDataLoader = getDataLoaderFromConfig(\n baseConfig,\n sources,\n );\n\n const loadAd = async () => {\n setAdLoadState('loading');\n\n try {\n const response = await dataLoader.fetchAdData(\n unitId,\n limit || 1,\n format,\n query,\n );\n\n if (response instanceof Error) {\n setAdLoadState('error');\n setErrorMessage(response);\n } else {\n setAdData(response);\n }\n setAdLoadState('complete');\n } catch (error) {\n setAdLoadState('error');\n setAdLoadState('complete');\n setErrorMessage(error as Error);\n }\n };\n\n const loadState = {\n isInitial: adLoadState === 'initial',\n isLoading: adLoadState === 'loading',\n isComplete: adLoadState === 'complete',\n isError: adLoadState === 'error',\n };\n\n useEffect(() => {\n loadAd();\n }, [unitId, limit, format]);\n\n return [adData, errorMessage, loadState];\n}\n\nexport default useAdViewController;\n","'use client';\n\nimport React, { createContext } from 'react';\nimport { type AdViewConfig } from '../types';\n\ntype AdViewProviderContextProps = AdViewConfig;\n\nexport const AdViewProviderContext = createContext<AdViewProviderContextProps>(\n {} as AdViewProviderContextProps,\n);\n\ntype AdViewProviderProps = {\n children: React.ReactNode;\n} & AdViewProviderContextProps;\n\nconst AdViewProvider = ({ children, ...props }: AdViewProviderProps) => {\n return (\n <AdViewProviderContext.Provider value={props}>\n {children}\n </AdViewProviderContext.Provider>\n );\n};\n\nexport default AdViewProvider;\n"],"mappings":"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","names":["React","getAssetByName","getPrepareURL","getSrcSetCSSThumbs","React","getAssetByName","React","getPrepareURL","getSrcSetCSSThumbs","React","React","React","React","React","useEffect","React","useEffect","customTracker","groupItems","React","_"]}
|
|
@@ -413,16 +413,32 @@ function AdViewUnitClient({
|
|
|
413
413
|
const {
|
|
414
414
|
responseGroup: _,
|
|
415
415
|
customTracker,
|
|
416
|
-
groupItems
|
|
417
|
-
|
|
416
|
+
groupItems,
|
|
417
|
+
adViewData
|
|
418
|
+
} = error ? {
|
|
419
|
+
responseGroup: null,
|
|
420
|
+
customTracker: {},
|
|
421
|
+
groupItems: [],
|
|
422
|
+
adViewData: null
|
|
423
|
+
} : (() => {
|
|
418
424
|
for (let responseGroup of response?.groups || []) {
|
|
419
425
|
const customTracker2 = responseGroup?.custom_tracker ?? {};
|
|
420
426
|
const groupItems2 = (responseGroup?.items || []).map((it) => checkFormat(it.type) ? it : null).filter(Boolean);
|
|
421
427
|
if (groupItems2 && groupItems2.length > 0) {
|
|
422
|
-
return {
|
|
428
|
+
return {
|
|
429
|
+
responseGroup,
|
|
430
|
+
customTracker: customTracker2,
|
|
431
|
+
groupItems: groupItems2,
|
|
432
|
+
adViewData: response
|
|
433
|
+
};
|
|
423
434
|
}
|
|
424
435
|
}
|
|
425
|
-
return {
|
|
436
|
+
return {
|
|
437
|
+
responseGroup: null,
|
|
438
|
+
customTracker: {},
|
|
439
|
+
groupItems: [],
|
|
440
|
+
adViewData: response
|
|
441
|
+
};
|
|
426
442
|
})();
|
|
427
443
|
if (!children) {
|
|
428
444
|
children = [
|
|
@@ -432,10 +448,11 @@ function AdViewUnitClient({
|
|
|
432
448
|
];
|
|
433
449
|
}
|
|
434
450
|
if (!wrapper) {
|
|
435
|
-
wrapper = (elms) => /* @__PURE__ */ React7.createElement(React7.Fragment, null, elms);
|
|
451
|
+
wrapper = (_2, elms) => /* @__PURE__ */ React7.createElement(React7.Fragment, null, elms);
|
|
436
452
|
}
|
|
437
453
|
if (groupItems && groupItems?.length > 0) {
|
|
438
454
|
return wrapper(
|
|
455
|
+
adViewData,
|
|
439
456
|
groupItems.map(({ tracker, ...data }, index) => {
|
|
440
457
|
return /* @__PURE__ */ React7.createElement(
|
|
441
458
|
AdViewUnitTracking_default,
|
|
@@ -456,7 +473,7 @@ function AdViewUnitClient({
|
|
|
456
473
|
})
|
|
457
474
|
);
|
|
458
475
|
}
|
|
459
|
-
return wrapper([
|
|
476
|
+
return wrapper(adViewData, [
|
|
460
477
|
/* @__PURE__ */ React7.createElement(AdViewUnitTracking_default, { ...customTracker, className: trackingWrapperClassName }, renderAnyTemplates(children, {
|
|
461
478
|
unitId,
|
|
462
479
|
index: -1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/AdViewUnit/AdViewUnit.tsx","../../src/AdViewUnit/AdViewUnit.client.tsx","../../src/AdViewUnit/AdViewUnitBannerTemplate.tsx","../../src/AdViewUnit/utils.ts","../../src/AdViewUnit/AdViewUnitNativeTemplate.tsx","../../src/AdViewUnit/AdViewUnitProxyTemplate.tsx","../../src/AdViewUnit/AdViewUnitTemplate.tsx","../../src/AdViewUnit/AdViewUnitTracking.tsx","../../src/AdViewUnit/useAdViewController.ts","../../src/AdViewUnit/AdViewProvider.tsx","../../src/AdViewUnit/AdViewUnit.server.tsx"],"sourcesContent":["import React from 'react';\nimport AdViewUnitClient, { AdViewUnitClientProps } from './AdViewUnit.client';\nimport AdViewUnitServer, { AdViewUnitServerProps } from './AdViewUnit.server';\n\nexport type AdViewUnitProps = typeof window extends undefined\n ? AdViewUnitServerProps\n : AdViewUnitClientProps;\n\nfunction AdViewUnit(props: AdViewUnitProps) {\n const isServer = typeof window === 'undefined';\n\n if (isServer) {\n return <AdViewUnitServer {...(props as AdViewUnitServerProps)} />;\n }\n\n return <AdViewUnitClient {...(props as AdViewUnitClientProps)} />;\n}\n\nexport default AdViewUnit;\n","'use client';\n\nimport { AdViewGroupItem } from '@adview/core';\nimport React from 'react';\nimport { AdViewUnitClientChildren, AdViewUnitPropsBase } from '../types';\nimport AdViewUnitBannerTemplate from './AdViewUnitBannerTemplate';\nimport AdViewUnitNativeTemplate from './AdViewUnitNativeTemplate';\nimport AdViewUnitProxyTemplate from './AdViewUnitProxyTemplate';\nimport { renderAnyTemplates } from './AdViewUnitTemplate';\nimport AdViewUnitTracking from './AdViewUnitTracking';\nimport useAdViewController from './useAdViewController';\n\nexport type AdViewUnitClientProps = AdViewUnitPropsBase & {\n children?: AdViewUnitClientChildren;\n wrapper?: (elms: React.ReactNode[]) => React.ReactNode;\n trackingWrapperClassName?: string;\n sources?: string[];\n};\n\n// AdViewUnitClient is a client-side component that fetches ad data and renders it\n// using the provided children function. It handles loading, error states, and\n// tracks ad interactions.\n//\n// Example usage:\n// <AdView.Unit unitId=\"my-unit\" format=\"banner\" srcURL=\"https://api.example.com/ads/{<id>}\">\n// {({ data, state, error }) => (\n// <div>\n// {state.isLoading && <span>Loading...</span>}\n// {error && <span>Error: {error.message}</span>}\n// {data && <img src={data.imageUrl} alt={data.title} />\n// </div>\n// )}\n// </AdView.Unit>\n//\n// Note: This component is designed to be used in a client-side environment where\n// ad data can be fetched dynamically. It is not suitable for server-side rendering.\n// It uses the AdViewUnitTracking component to handle ad tracking and interactions.\nfunction AdViewUnitClient({\n unitId,\n limit = 1,\n format,\n query,\n children,\n wrapper,\n trackingWrapperClassName,\n sources,\n ...config\n}: AdViewUnitClientProps) {\n const checkFormat = (f: string) => {\n if (!format) {\n return true;\n }\n return Array.isArray(format) ? format.includes(f) : f === format;\n };\n\n const [response, error, loadState] = useAdViewController(\n config,\n unitId,\n limit || 1,\n format,\n query,\n sources,\n );\n\n const {\n responseGroup: _,\n customTracker,\n groupItems,\n } = error\n ? { responseGroup: null, customTracker: {}, groupItems: [] }\n : (() => {\n for (let responseGroup of response?.groups || []) {\n const customTracker = responseGroup?.custom_tracker ?? {};\n const groupItems = (responseGroup?.items || [])\n .map(it => (checkFormat(it.type) ? it : null))\n .filter(Boolean);\n if (groupItems && groupItems.length > 0) {\n return { responseGroup, customTracker, groupItems };\n }\n }\n return { responseGroup: null, customTracker: {}, groupItems: [] };\n })();\n\n if (!children) {\n children = [\n <AdViewUnitBannerTemplate />,\n <AdViewUnitNativeTemplate />,\n <AdViewUnitProxyTemplate />,\n ];\n }\n\n if (!wrapper) {\n wrapper = (elms: React.ReactNode[]) => <>{elms}</>;\n }\n\n if (groupItems && groupItems?.length > 0) {\n return wrapper(\n (groupItems as AdViewGroupItem[]).map(({ tracker, ...data }, index) => {\n return (\n <AdViewUnitTracking\n key={data.id}\n {...tracker}\n className={trackingWrapperClassName}\n >\n {renderAnyTemplates(children, {\n unitId,\n index,\n data,\n type: data.type || 'default',\n error,\n state: loadState,\n })}\n </AdViewUnitTracking>\n );\n }),\n );\n }\n\n return wrapper([\n <AdViewUnitTracking {...customTracker} className={trackingWrapperClassName}>\n {renderAnyTemplates(children, {\n unitId,\n index: -1,\n data: null,\n type: 'default',\n error,\n state: loadState,\n })}\n </AdViewUnitTracking>,\n ]);\n}\n\nexport default AdViewUnitClient;\n","import {\n getAssetByName,\n getPrepareURL,\n getSrcSetCSSThumbs,\n} from '@adview/core/utils';\nimport React from 'react';\nimport { AdLoadState, AdViewUnitTemplateTypeProps } from '../types';\nimport { matchExpectedState } from './utils';\n\ntype AdViewUnitBannerTemplateProps = Omit<\n AdViewUnitTemplateTypeProps,\n 'type'\n> & {\n type?: 'banner';\n className?: string;\n style?: React.CSSProperties;\n};\n\nfunction AdViewUnitBannerTemplate({\n className = 'banner',\n style,\n data,\n state,\n ...props\n}: AdViewUnitBannerTemplateProps) {\n const expectState: AdLoadState =\n props?.isInitial || props?.isLoading || props?.isError || props?.isComplete\n ? {\n isInitial: props?.isInitial,\n isLoading: props?.isLoading,\n isError: props?.isError,\n isComplete: props?.isComplete,\n }\n : { isComplete: true };\n\n if (!data || !data.assets || !data.assets.length) {\n return null;\n }\n\n // Check if the expected state matches the current state\n if (!matchExpectedState(expectState, state)) {\n return null;\n }\n\n const asset = getAssetByName('main', data.assets);\n\n return (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(data.url)}\n className={className}\n style={{ fontSize: 0, ...style }}\n >\n {asset && (\n <img\n alt=\"main\"\n src={asset.path}\n srcSet={asset.thumbs ? getSrcSetCSSThumbs(asset.thumbs) : ''}\n style={{ maxWidth: '100%' }}\n />\n )}\n </a>\n );\n}\n\nAdViewUnitBannerTemplate.defaults = {\n type: 'banner',\n};\n\nexport default AdViewUnitBannerTemplate;\n","import { AdLoadState } from \"../types\";\n\nexport const matchExpectedState = (expectState?: AdLoadState, state?: AdLoadState) => {\n return !expectState || (\n (expectState.isInitial === undefined || expectState.isInitial === state?.isInitial) &&\n (expectState.isLoading === undefined || expectState.isLoading === state?.isLoading) &&\n (expectState.isError === undefined || expectState.isError === state?.isError) &&\n (expectState.isComplete === undefined || expectState.isComplete === state?.isComplete)\n );\n};\n","import { getAssetByName, getPrepareURL, getSrcSetCSSThumbs } from '@adview/core/utils';\nimport React from 'react';\nimport { AdLoadState, AdViewStyleTokensNative, AdViewUnitTemplateTypeProps } from '../types';\nimport { matchExpectedState } from './utils';\n\ntype AdViewUnitNativeTemplateProps = Omit<AdViewUnitTemplateTypeProps, 'type'> & {\n type?: 'native';\n classNames?: AdViewStyleTokensNative;\n};\n\nfunction AdViewUnitNativeTemplate({classNames, data, state, ...props}: AdViewUnitNativeTemplateProps) {\n if (!data || !data.assets || !data.assets.length) {\n return null;\n }\n\n const expectState: AdLoadState =\n (props?.isInitial || props?.isLoading || props?.isError || props?.isComplete) ? {\n isInitial: props?.isInitial,\n isLoading: props?.isLoading,\n isError: props?.isError,\n isComplete: props?.isComplete\n } : {isComplete: true};\n\n // Check if the expected state matches the current state\n if (!matchExpectedState(expectState, state)) {\n return null;\n }\n\n const { assets, url, fields } = data;\n const asset = getAssetByName('main', assets);\n\n if (!url) {\n return null;\n }\n\n return (\n <div className={classNames?.container}>\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n className={classNames?.imageLink}\n >\n {asset && (\n <img\n alt={fields?.title}\n title={fields?.title}\n src={asset.path}\n srcSet={asset.thumbs ? getSrcSetCSSThumbs(asset.thumbs) : undefined}\n className={classNames?.image}\n style={{ objectFit: 'cover', width: '100%', height: '100%' }}\n />\n )}\n </a>\n <div className={classNames?.label}>\n {fields?.title && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n data-class=\"titleLink\"\n className={classNames?.titleLink}\n >\n {fields.title}\n </a>\n )}\n {fields?.description && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n data-class=\"descriptionLink\"\n className={classNames?.descriptionLink}\n >\n {fields.description}\n </a>\n )}\n {fields?.brandname && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n data-class=\"brandNameLink\"\n className={classNames?.brandNameLink}\n >\n {fields.brandname}\n </a>\n )}\n {fields?.phone && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n data-class=\"phoneLink\"\n className={classNames?.phoneLink}\n >\n {fields.phone}\n </a>\n )}\n {fields?.url && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n data-class=\"urlLink\"\n className={classNames?.urlLink}\n >\n {fields?.url}\n </a>\n )}\n </div>\n </div>\n );\n}\n\nAdViewUnitNativeTemplate.defaults = {\n type: 'native',\n};\n\nexport default AdViewUnitNativeTemplate;\n","import React from 'react';\nimport { AdLoadState, AdViewUnitTemplateTypeProps } from '../types';\nimport { matchExpectedState } from './utils';\n\ntype AdViewUnitProxyTemplateProps = Omit<AdViewUnitTemplateTypeProps, 'type'> & {\n type?: 'proxy';\n className?: string;\n style?: React.CSSProperties;\n};\n\nfunction AdViewUnitProxyTemplate({className, style, data, state, ...props}: AdViewUnitProxyTemplateProps) {\n if (!data) {\n return null;\n }\n\n const expectState: AdLoadState =\n (props?.isInitial || props?.isLoading || props?.isError || props?.isComplete) ? {\n isInitial: props?.isInitial,\n isLoading: props?.isLoading,\n isError: props?.isError,\n isComplete: props?.isComplete\n } : {isComplete: true};\n\n // Check if the expected state matches the current state\n if (!matchExpectedState(expectState, state)) {\n return null;\n }\n\n const { url, fields } = data;\n const iframeSrc = fields?.url || url;\n\n if (!iframeSrc) {\n return null;\n }\n\n return (\n <iframe\n className={className}\n width=\"100%\"\n height=\"100%\"\n frameBorder=\"0\"\n marginWidth={0}\n marginHeight={0}\n allowTransparency={true}\n scrolling=\"no\"\n allowFullScreen={true}\n style={{ width: '100%', height: '100%', border: 'none', ...style }}\n src={iframeSrc}\n ></iframe>\n );\n}\n\nAdViewUnitProxyTemplate.defaults = {\n type: 'proxy',\n};\n\nexport default AdViewUnitProxyTemplate;\n","//\n// Example\n// <AdView.Unit>\n// <AdView.Template type=\"banner\">\n// <...>\n// </AdView.Template>\n// </AdView.Unit>\n//\n\nimport React, { JSX } from 'react';\nimport {\n AdLoadState,\n AdViewUnitClientChildrenProps,\n AdViewUnitTemplateProps,\n AdViewUnitTemplateTypeProps,\n} from '../types';\nimport { matchExpectedState } from './utils';\n\n// TemplateListRender is a function that takes a list of TemplateType and returns a React element\nexport type TemplateListRender = (\n tmpls: TemplateElement[],\n) => React.ReactElement | JSX.Element;\n\n// TemplateType is a React component that can be used to render ad templates\nexport type TemplateType = React.Component<AdViewUnitTemplateProps>;\nexport type TemplateElement = React.ReactElement<AdViewUnitTemplateProps>;\n\n// TemplateTypeFunction is a function that takes AdViewUnitTemplateTypeProps and returns a React node or element\nexport type TemplateTypeFunction = (\n props: AdViewUnitTemplateTypeProps,\n) => React.ReactNode | React.ReactElement;\n\n// templateFromListRender is a function that takes a list of TemplateType and returns a React element\nexport const templateFromListRender = (\n tmpls: TemplateElement[],\n data: AdViewUnitTemplateTypeProps,\n wrap?: (children: React.ReactNode) => React.ReactNode,\n): JSX.Element | React.ReactElement => {\n if (!wrap) {\n wrap = (children: React.ReactNode) => children;\n }\n\n let renderedTemplate = null;\n\n for (let tpl of tmpls) {\n let tmp = renderTemplate(tpl, data);\n if (tmp && React.isValidElement(tmp)) {\n renderedTemplate = wrap(tmp);\n break;\n }\n }\n\n if (!renderedTemplate) {\n for (let tpl of tmpls) {\n let tmp = renderTemplate(tpl, { ...data, type: 'default' });\n if (tmp && React.isValidElement(tmp)) {\n renderedTemplate = wrap(tmp);\n break;\n }\n }\n }\n\n return <>{renderedTemplate}</>;\n};\n\n// renderTemplate is a function that takes a TemplateType or a function and returns a React node\nexport const renderTemplate = (\n tmpl: TemplateElement | TemplateTypeFunction,\n data: AdViewUnitTemplateTypeProps,\n): React.ReactNode => {\n const isFunction = typeof tmpl === 'function';\n const isReactElement = React.isValidElement(tmpl);\n\n if (isReactElement) {\n // Extract type and children from the React element\n let { type, children } = tmpl.props;\n if (!type && typeof tmpl.type !== 'string') {\n type = (tmpl.type as any)?.defaults?.type;\n }\n // If the type does not match, return null\n if (!!type && type !== '*' && data.type !== type) {\n return null;\n }\n // If children is a function, call it with the data\n if (typeof children === 'function') {\n return children(data as AdViewUnitClientChildrenProps);\n }\n // If children is a React element, clone it with the new props\n return React.cloneElement(tmpl as TemplateElement, {\n ...data,\n children: children,\n });\n }\n\n if (isFunction) {\n return tmpl(data);\n }\n\n return null;\n};\n\n// renderTemplates is a function that takes a list of TemplateType and returns a React element\nexport const renderTemplates = (\n tmpls: TemplateElement[],\n data: AdViewUnitTemplateTypeProps,\n listRender?: TemplateListRender,\n): React.ReactNode | React.ReactElement | JSX.Element => {\n return listRender ? listRender(tmpls) : templateFromListRender(tmpls, data);\n};\n\nexport const renderAnyTemplates = (\n tmpls: any,\n data: AdViewUnitTemplateTypeProps,\n listRender?: TemplateListRender,\n): React.ReactNode | React.ReactElement | JSX.Element | null => {\n if (!tmpls) {\n return null;\n }\n\n if (Array.isArray(tmpls)) {\n return renderTemplates(tmpls as TemplateElement[], data, listRender);\n }\n\n if (typeof tmpls === 'function') {\n return tmpls(data);\n }\n\n if (React.isValidElement(tmpls)) {\n return templateFromListRender([tmpls as TemplateElement], data);\n }\n\n return null;\n};\n\n// Template is a React component that renders a template based on the type and data provided\n// Example usage:\n// <AdView.Unit>\n// <AdView.Template type=\"banner\" data={{...}}>\n// </AdView.Unit>\nconst AdViewUnitTemplate = ({\n type,\n state,\n children,\n ...props\n}: AdViewUnitTemplateProps) => {\n const tmplProps: AdViewUnitTemplateTypeProps = {\n type,\n state,\n ...props,\n };\n\n const expectState: AdLoadState =\n props?.isInitial || props?.isLoading || props?.isError || props?.isComplete\n ? {\n isInitial: props?.isInitial,\n isLoading: props?.isLoading,\n isError: props?.isError,\n isComplete: props?.isComplete,\n }\n : { isComplete: true };\n\n // Check if the expected state matches the current state\n if (!matchExpectedState(expectState, state)) {\n return null;\n }\n\n // If children is a function, call it with the data\n if (typeof children === 'function') {\n return children(\n tmplProps as AdViewUnitClientChildrenProps,\n ) as React.ReactElement;\n }\n\n // If children is a React element, clone it with the new props\n if (React.isValidElement(children)) {\n return React.cloneElement(children, tmplProps);\n }\n\n // If no children are provided, return an empty fragment\n return <></>;\n};\n\nexport default AdViewUnitTemplate;\n","'use client';\n\nimport { executeImpressionsTracking } from '@adview/core/utils';\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react';\n\ntype AdViewUnitTrackingProps = {\n impressions?: string[];\n views?: string[];\n clicks?: string[];\n children: React.ReactNode;\n className?: string;\n};\n\nfunction AdViewUnitTracking({\n impressions,\n views,\n clicks,\n children,\n className,\n}: AdViewUnitTrackingProps) {\n const isServer = typeof window === 'undefined';\n const wrapperRef = useRef<HTMLDivElement>(null);\n const executeImpressionsTrackingHandler = useCallback(\n () => executeImpressionsTracking(impressions),\n [impressions],\n );\n const trackingObserverInstanceHandler = useCallback(\n (entries: IntersectionObserverEntry[]) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n executeImpressionsTracking(views);\n trackingObserverInstance?.unobserve(wrapperRef.current!);\n }\n });\n },\n [views],\n );\n const trackingObserverInstance = useMemo<IntersectionObserver | null>(() => {\n return !isServer\n ? new IntersectionObserver(trackingObserverInstanceHandler)\n : null;\n }, [isServer, trackingObserverInstanceHandler]);\n const clickTrackerHandler = useCallback(() => {\n executeImpressionsTracking(clicks);\n\n wrapperRef.current?.removeEventListener('click', clickTrackerHandler);\n }, [clicks]);\n\n useEffect(() => {\n if (wrapperRef.current && trackingObserverInstance) {\n executeImpressionsTrackingHandler();\n wrapperRef.current?.addEventListener('click', clickTrackerHandler);\n trackingObserverInstance?.observe(wrapperRef.current);\n\n return () => {\n wrapperRef.current?.removeEventListener('click', clickTrackerHandler);\n if (wrapperRef.current)\n trackingObserverInstance?.unobserve(wrapperRef.current);\n };\n }\n\n return () => {};\n }, [\n trackingObserverInstance,\n executeImpressionsTrackingHandler,\n clickTrackerHandler,\n ]);\n\n return (\n <div ref={wrapperRef} className={className}>\n {children}\n </div>\n );\n}\n\nexport default AdViewUnitTracking;\n","'use client';\n\nimport { AdViewData, AdViewDataLoader } from '@adview/core/typings';\nimport { getDataLoaderFromConfig, getResolveConfig } from '@adview/core/utils';\nimport { useContext, useEffect, useState } from 'react';\nimport { AdLoadState, AdViewConfig } from '../types';\nimport { AdViewProviderContext } from './AdViewProvider';\n\ntype UseAdViewControllerProps = [AdViewData | null, Error | null, AdLoadState];\n\nfunction useAdViewController(\n adUnitConfig: AdViewConfig,\n unitId: string,\n limit: number = 1,\n format?: string | string[],\n query?: { [key: string]: any },\n sources?: string[],\n): UseAdViewControllerProps {\n const [adLoadState, setAdLoadState] = useState<string>('initial');\n const [adData, setAdData] = useState<AdViewData | null>(null);\n const [errorMessage, setErrorMessage] = useState<Error | null>(null);\n const globalConfig = useContext(AdViewProviderContext);\n const baseConfig = getResolveConfig({ ...adUnitConfig, ...globalConfig });\n const dataLoader: AdViewDataLoader = getDataLoaderFromConfig(\n baseConfig,\n sources,\n );\n\n const loadAd = async () => {\n setAdLoadState('loading');\n\n try {\n const response = await dataLoader.fetchAdData(\n unitId,\n limit || 1,\n format,\n query,\n );\n\n if (response instanceof Error) {\n setAdLoadState('error');\n setErrorMessage(response);\n } else {\n setAdData(response);\n }\n setAdLoadState('complete');\n } catch (error) {\n setAdLoadState('error');\n setAdLoadState('complete');\n setErrorMessage(error as Error);\n }\n };\n\n const loadState = {\n isInitial: adLoadState === 'initial',\n isLoading: adLoadState === 'loading',\n isComplete: adLoadState === 'complete',\n isError: adLoadState === 'error',\n };\n\n useEffect(() => {\n loadAd();\n }, [unitId, limit, format]);\n\n return [adData, errorMessage, loadState];\n}\n\nexport default useAdViewController;\n","'use client';\n\nimport React, { createContext } from 'react';\nimport { type AdViewConfig } from '../types';\n\ntype AdViewProviderContextProps = AdViewConfig;\n\nexport const AdViewProviderContext = createContext<AdViewProviderContextProps>(\n {} as AdViewProviderContextProps,\n);\n\ntype AdViewProviderProps = {\n children: React.ReactNode;\n} & AdViewProviderContextProps;\n\nconst AdViewProvider = ({ children, ...props }: AdViewProviderProps) => {\n return (\n <AdViewProviderContext.Provider value={props}>\n {children}\n </AdViewProviderContext.Provider>\n );\n};\n\nexport default AdViewProvider;\n","import React from 'react';\n\nimport { AdViewData, AdViewDataLoader } from '@adview/core';\nimport { AdViewGroupItem } from '@adview/core/typings';\nimport { getDataLoaderFromConfig, getResolveConfig } from '@adview/core/utils';\nimport { AdViewUnitClientChildren, AdViewUnitPropsBase } from '../types';\nimport AdViewUnitBannerTemplate from './AdViewUnitBannerTemplate';\nimport AdViewUnitNativeTemplate from './AdViewUnitNativeTemplate';\nimport AdViewUnitProxyTemplate from './AdViewUnitProxyTemplate';\nimport { renderAnyTemplates } from './AdViewUnitTemplate';\nimport AdViewUnitTracking from './AdViewUnitTracking';\n\nexport type AdViewUnitServerProps = AdViewUnitPropsBase & {\n children?: AdViewUnitClientChildren;\n wrapper?: (elms: React.ReactNode[]) => React.ReactNode;\n trackingWrapperClassName?: string;\n sources?: string[];\n};\n\nasync function AdViewUnitServer({\n unitId,\n format,\n children,\n limit,\n query,\n wrapper,\n trackingWrapperClassName,\n sources,\n ...config\n}: AdViewUnitServerProps) {\n const checkFormat = (f: string) => {\n if (!format) {\n return true;\n }\n return Array.isArray(format) ? format.includes(f) : f === format;\n };\n\n const baseConfig = getResolveConfig(config);\n const dataLoader: AdViewDataLoader = getDataLoaderFromConfig(\n baseConfig,\n sources,\n );\n const response = await dataLoader.fetchAdData(\n unitId,\n limit || 1,\n format,\n query,\n );\n const isLoadingError = response instanceof Error;\n const error = isLoadingError ? response : undefined;\n const state = {\n isLoading: true,\n isComplete: true,\n isInitial: false,\n isError: isLoadingError,\n };\n\n const {\n responseGroup: _,\n customTracker,\n groupItems,\n } = error\n ? { responseGroup: null, customTracker: {}, groupItems: [] }\n : (() => {\n for (let responseGroup of (response as AdViewData)?.groups || []) {\n const customTracker = responseGroup?.custom_tracker ?? {};\n const groupItems = (responseGroup?.items || [])\n .map(it => (checkFormat(it.type) ? it : null))\n .filter(Boolean) as AdViewGroupItem[];\n if (groupItems && groupItems.length > 0) {\n return { responseGroup, customTracker, groupItems };\n }\n }\n return { responseGroup: null, customTracker: {}, groupItems: [] };\n })();\n\n if (!children) {\n children = [\n <AdViewUnitBannerTemplate />,\n <AdViewUnitNativeTemplate />,\n <AdViewUnitProxyTemplate />,\n ];\n }\n\n if (!wrapper) {\n wrapper = (elms: React.ReactNode[]) => <>{elms}</>;\n }\n\n if (groupItems && groupItems.length) {\n return wrapper(\n groupItems.map(({ tracker, ...data }: AdViewGroupItem, index: number) => {\n return (\n <AdViewUnitTracking\n key={data.id}\n {...tracker}\n className={trackingWrapperClassName}\n >\n {renderAnyTemplates(children, {\n unitId,\n index,\n data,\n type: data.type || 'default',\n error,\n state: state,\n })}\n </AdViewUnitTracking>\n );\n }),\n );\n }\n\n return wrapper([\n <AdViewUnitTracking {...customTracker} className={trackingWrapperClassName}>\n {renderAnyTemplates(children, {\n unitId,\n index: -1,\n data: null,\n type: 'default',\n error,\n state: state,\n })}\n </AdViewUnitTracking>,\n ]);\n}\n\nexport default AdViewUnitServer;\n"],"mappings":"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","names":["React","React","getAssetByName","getPrepareURL","getSrcSetCSSThumbs","React","getAssetByName","React","getPrepareURL","getSrcSetCSSThumbs","React","React","React","React","React","useEffect","React","useEffect","customTracker","groupItems","React","React","getDataLoaderFromConfig","getResolveConfig","getResolveConfig","getDataLoaderFromConfig","customTracker","groupItems","React","React"]}
|
|
1
|
+
{"version":3,"sources":["../../src/AdViewUnit/AdViewUnit.tsx","../../src/AdViewUnit/AdViewUnit.client.tsx","../../src/AdViewUnit/AdViewUnitBannerTemplate.tsx","../../src/AdViewUnit/utils.ts","../../src/AdViewUnit/AdViewUnitNativeTemplate.tsx","../../src/AdViewUnit/AdViewUnitProxyTemplate.tsx","../../src/AdViewUnit/AdViewUnitTemplate.tsx","../../src/AdViewUnit/AdViewUnitTracking.tsx","../../src/AdViewUnit/useAdViewController.ts","../../src/AdViewUnit/AdViewProvider.tsx","../../src/AdViewUnit/AdViewUnit.server.tsx"],"sourcesContent":["import React from 'react';\nimport AdViewUnitClient, { AdViewUnitClientProps } from './AdViewUnit.client';\nimport AdViewUnitServer, { AdViewUnitServerProps } from './AdViewUnit.server';\n\nexport type AdViewUnitProps = typeof window extends undefined\n ? AdViewUnitServerProps\n : AdViewUnitClientProps;\n\nfunction AdViewUnit(props: AdViewUnitProps) {\n const isServer = typeof window === 'undefined';\n\n if (isServer) {\n return <AdViewUnitServer {...(props as AdViewUnitServerProps)} />;\n }\n\n return <AdViewUnitClient {...(props as AdViewUnitClientProps)} />;\n}\n\nexport default AdViewUnit;\n","'use client';\n\nimport { AdViewData, AdViewGroupItem } from '@adview/core';\nimport React from 'react';\nimport { AdViewUnitClientChildren, AdViewUnitPropsBase } from '../types';\nimport AdViewUnitBannerTemplate from './AdViewUnitBannerTemplate';\nimport AdViewUnitNativeTemplate from './AdViewUnitNativeTemplate';\nimport AdViewUnitProxyTemplate from './AdViewUnitProxyTemplate';\nimport { renderAnyTemplates } from './AdViewUnitTemplate';\nimport AdViewUnitTracking from './AdViewUnitTracking';\nimport useAdViewController from './useAdViewController';\n\nexport type AdViewUnitClientProps = AdViewUnitPropsBase & {\n children?: AdViewUnitClientChildren;\n wrapper?: (\n adViewData: AdViewData | null,\n elms: React.ReactNode[],\n ) => React.ReactNode;\n trackingWrapperClassName?: string;\n sources?: string[];\n};\n\n// AdViewUnitClient is a client-side component that fetches ad data and renders it\n// using the provided children function. It handles loading, error states, and\n// tracks ad interactions.\n//\n// Example usage:\n// <AdView.Unit unitId=\"my-unit\" format=\"banner\" srcURL=\"https://api.example.com/ads/{<id>}\">\n// {({ data, state, error }) => (\n// <div>\n// {state.isLoading && <span>Loading...</span>}\n// {error && <span>Error: {error.message}</span>}\n// {data && <img src={data.imageUrl} alt={data.title} />\n// </div>\n// )}\n// </AdView.Unit>\n//\n// Note: This component is designed to be used in a client-side environment where\n// ad data can be fetched dynamically. It is not suitable for server-side rendering.\n// It uses the AdViewUnitTracking component to handle ad tracking and interactions.\nfunction AdViewUnitClient({\n unitId,\n limit = 1,\n format,\n query,\n children,\n wrapper,\n trackingWrapperClassName,\n sources,\n ...config\n}: AdViewUnitClientProps) {\n const checkFormat = (f: string) => {\n if (!format) {\n return true;\n }\n return Array.isArray(format) ? format.includes(f) : f === format;\n };\n\n const [response, error, loadState] = useAdViewController(\n config,\n unitId,\n limit || 1,\n format,\n query,\n sources,\n );\n\n const {\n responseGroup: _,\n customTracker,\n groupItems,\n adViewData,\n } = error\n ? {\n responseGroup: null,\n customTracker: {},\n groupItems: [],\n adViewData: null,\n }\n : (() => {\n for (let responseGroup of response?.groups || []) {\n const customTracker = responseGroup?.custom_tracker ?? {};\n const groupItems = (responseGroup?.items || [])\n .map(it => (checkFormat(it.type) ? it : null))\n .filter(Boolean);\n if (groupItems && groupItems.length > 0) {\n return {\n responseGroup,\n customTracker,\n groupItems,\n adViewData: response,\n };\n }\n }\n return {\n responseGroup: null,\n customTracker: {},\n groupItems: [],\n adViewData: response,\n };\n })();\n\n if (!children) {\n children = [\n <AdViewUnitBannerTemplate />,\n <AdViewUnitNativeTemplate />,\n <AdViewUnitProxyTemplate />,\n ];\n }\n\n if (!wrapper) {\n wrapper = (_: AdViewData | null, elms: React.ReactNode[]) => <>{elms}</>;\n }\n\n if (groupItems && groupItems?.length > 0) {\n return wrapper(\n adViewData,\n (groupItems as AdViewGroupItem[]).map(({ tracker, ...data }, index) => {\n return (\n <AdViewUnitTracking\n key={data.id}\n {...tracker}\n className={trackingWrapperClassName}\n >\n {renderAnyTemplates(children, {\n unitId,\n index,\n data,\n type: data.type || 'default',\n error,\n state: loadState,\n })}\n </AdViewUnitTracking>\n );\n }),\n );\n }\n\n return wrapper(adViewData, [\n <AdViewUnitTracking {...customTracker} className={trackingWrapperClassName}>\n {renderAnyTemplates(children, {\n unitId,\n index: -1,\n data: null,\n type: 'default',\n error,\n state: loadState,\n })}\n </AdViewUnitTracking>,\n ]);\n}\n\nexport default AdViewUnitClient;\n","import {\n getAssetByName,\n getPrepareURL,\n getSrcSetCSSThumbs,\n} from '@adview/core/utils';\nimport React from 'react';\nimport { AdLoadState, AdViewUnitTemplateTypeProps } from '../types';\nimport { matchExpectedState } from './utils';\n\ntype AdViewUnitBannerTemplateProps = Omit<\n AdViewUnitTemplateTypeProps,\n 'type'\n> & {\n type?: 'banner';\n className?: string;\n style?: React.CSSProperties;\n};\n\nfunction AdViewUnitBannerTemplate({\n className = 'banner',\n style,\n data,\n state,\n ...props\n}: AdViewUnitBannerTemplateProps) {\n const expectState: AdLoadState =\n props?.isInitial || props?.isLoading || props?.isError || props?.isComplete\n ? {\n isInitial: props?.isInitial,\n isLoading: props?.isLoading,\n isError: props?.isError,\n isComplete: props?.isComplete,\n }\n : { isComplete: true };\n\n if (!data || !data.assets || !data.assets.length) {\n return null;\n }\n\n // Check if the expected state matches the current state\n if (!matchExpectedState(expectState, state)) {\n return null;\n }\n\n const asset = getAssetByName('main', data.assets);\n\n return (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(data.url)}\n className={className}\n style={{ fontSize: 0, ...style }}\n >\n {asset && (\n <img\n alt=\"main\"\n src={asset.path}\n srcSet={asset.thumbs ? getSrcSetCSSThumbs(asset.thumbs) : ''}\n style={{ maxWidth: '100%' }}\n />\n )}\n </a>\n );\n}\n\nAdViewUnitBannerTemplate.defaults = {\n type: 'banner',\n};\n\nexport default AdViewUnitBannerTemplate;\n","import { AdLoadState } from \"../types\";\n\nexport const matchExpectedState = (expectState?: AdLoadState, state?: AdLoadState) => {\n return !expectState || (\n (expectState.isInitial === undefined || expectState.isInitial === state?.isInitial) &&\n (expectState.isLoading === undefined || expectState.isLoading === state?.isLoading) &&\n (expectState.isError === undefined || expectState.isError === state?.isError) &&\n (expectState.isComplete === undefined || expectState.isComplete === state?.isComplete)\n );\n};\n","import { getAssetByName, getPrepareURL, getSrcSetCSSThumbs } from '@adview/core/utils';\nimport React from 'react';\nimport { AdLoadState, AdViewStyleTokensNative, AdViewUnitTemplateTypeProps } from '../types';\nimport { matchExpectedState } from './utils';\n\ntype AdViewUnitNativeTemplateProps = Omit<AdViewUnitTemplateTypeProps, 'type'> & {\n type?: 'native';\n classNames?: AdViewStyleTokensNative;\n};\n\nfunction AdViewUnitNativeTemplate({classNames, data, state, ...props}: AdViewUnitNativeTemplateProps) {\n if (!data || !data.assets || !data.assets.length) {\n return null;\n }\n\n const expectState: AdLoadState =\n (props?.isInitial || props?.isLoading || props?.isError || props?.isComplete) ? {\n isInitial: props?.isInitial,\n isLoading: props?.isLoading,\n isError: props?.isError,\n isComplete: props?.isComplete\n } : {isComplete: true};\n\n // Check if the expected state matches the current state\n if (!matchExpectedState(expectState, state)) {\n return null;\n }\n\n const { assets, url, fields } = data;\n const asset = getAssetByName('main', assets);\n\n if (!url) {\n return null;\n }\n\n return (\n <div className={classNames?.container}>\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n className={classNames?.imageLink}\n >\n {asset && (\n <img\n alt={fields?.title}\n title={fields?.title}\n src={asset.path}\n srcSet={asset.thumbs ? getSrcSetCSSThumbs(asset.thumbs) : undefined}\n className={classNames?.image}\n style={{ objectFit: 'cover', width: '100%', height: '100%' }}\n />\n )}\n </a>\n <div className={classNames?.label}>\n {fields?.title && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n data-class=\"titleLink\"\n className={classNames?.titleLink}\n >\n {fields.title}\n </a>\n )}\n {fields?.description && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n data-class=\"descriptionLink\"\n className={classNames?.descriptionLink}\n >\n {fields.description}\n </a>\n )}\n {fields?.brandname && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n data-class=\"brandNameLink\"\n className={classNames?.brandNameLink}\n >\n {fields.brandname}\n </a>\n )}\n {fields?.phone && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n data-class=\"phoneLink\"\n className={classNames?.phoneLink}\n >\n {fields.phone}\n </a>\n )}\n {fields?.url && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n data-class=\"urlLink\"\n className={classNames?.urlLink}\n >\n {fields?.url}\n </a>\n )}\n </div>\n </div>\n );\n}\n\nAdViewUnitNativeTemplate.defaults = {\n type: 'native',\n};\n\nexport default AdViewUnitNativeTemplate;\n","import React from 'react';\nimport { AdLoadState, AdViewUnitTemplateTypeProps } from '../types';\nimport { matchExpectedState } from './utils';\n\ntype AdViewUnitProxyTemplateProps = Omit<AdViewUnitTemplateTypeProps, 'type'> & {\n type?: 'proxy';\n className?: string;\n style?: React.CSSProperties;\n};\n\nfunction AdViewUnitProxyTemplate({className, style, data, state, ...props}: AdViewUnitProxyTemplateProps) {\n if (!data) {\n return null;\n }\n\n const expectState: AdLoadState =\n (props?.isInitial || props?.isLoading || props?.isError || props?.isComplete) ? {\n isInitial: props?.isInitial,\n isLoading: props?.isLoading,\n isError: props?.isError,\n isComplete: props?.isComplete\n } : {isComplete: true};\n\n // Check if the expected state matches the current state\n if (!matchExpectedState(expectState, state)) {\n return null;\n }\n\n const { url, fields } = data;\n const iframeSrc = fields?.url || url;\n\n if (!iframeSrc) {\n return null;\n }\n\n return (\n <iframe\n className={className}\n width=\"100%\"\n height=\"100%\"\n frameBorder=\"0\"\n marginWidth={0}\n marginHeight={0}\n allowTransparency={true}\n scrolling=\"no\"\n allowFullScreen={true}\n style={{ width: '100%', height: '100%', border: 'none', ...style }}\n src={iframeSrc}\n ></iframe>\n );\n}\n\nAdViewUnitProxyTemplate.defaults = {\n type: 'proxy',\n};\n\nexport default AdViewUnitProxyTemplate;\n","//\n// Example\n// <AdView.Unit>\n// <AdView.Template type=\"banner\">\n// <...>\n// </AdView.Template>\n// </AdView.Unit>\n//\n\nimport React, { JSX } from 'react';\nimport {\n AdLoadState,\n AdViewUnitClientChildrenProps,\n AdViewUnitTemplateProps,\n AdViewUnitTemplateTypeProps,\n} from '../types';\nimport { matchExpectedState } from './utils';\n\n// TemplateListRender is a function that takes a list of TemplateType and returns a React element\nexport type TemplateListRender = (\n tmpls: TemplateElement[],\n) => React.ReactElement | JSX.Element;\n\n// TemplateType is a React component that can be used to render ad templates\nexport type TemplateType = React.Component<AdViewUnitTemplateProps>;\nexport type TemplateElement = React.ReactElement<AdViewUnitTemplateProps>;\n\n// TemplateTypeFunction is a function that takes AdViewUnitTemplateTypeProps and returns a React node or element\nexport type TemplateTypeFunction = (\n props: AdViewUnitTemplateTypeProps,\n) => React.ReactNode | React.ReactElement;\n\n// templateFromListRender is a function that takes a list of TemplateType and returns a React element\nexport const templateFromListRender = (\n tmpls: TemplateElement[],\n data: AdViewUnitTemplateTypeProps,\n wrap?: (children: React.ReactNode) => React.ReactNode,\n): JSX.Element | React.ReactElement => {\n if (!wrap) {\n wrap = (children: React.ReactNode) => children;\n }\n\n let renderedTemplate = null;\n\n for (let tpl of tmpls) {\n let tmp = renderTemplate(tpl, data);\n if (tmp && React.isValidElement(tmp)) {\n renderedTemplate = wrap(tmp);\n break;\n }\n }\n\n if (!renderedTemplate) {\n for (let tpl of tmpls) {\n let tmp = renderTemplate(tpl, { ...data, type: 'default' });\n if (tmp && React.isValidElement(tmp)) {\n renderedTemplate = wrap(tmp);\n break;\n }\n }\n }\n\n return <>{renderedTemplate}</>;\n};\n\n// renderTemplate is a function that takes a TemplateType or a function and returns a React node\nexport const renderTemplate = (\n tmpl: TemplateElement | TemplateTypeFunction,\n data: AdViewUnitTemplateTypeProps,\n): React.ReactNode => {\n const isFunction = typeof tmpl === 'function';\n const isReactElement = React.isValidElement(tmpl);\n\n if (isReactElement) {\n // Extract type and children from the React element\n let { type, children } = tmpl.props;\n if (!type && typeof tmpl.type !== 'string') {\n type = (tmpl.type as any)?.defaults?.type;\n }\n // If the type does not match, return null\n if (!!type && type !== '*' && data.type !== type) {\n return null;\n }\n // If children is a function, call it with the data\n if (typeof children === 'function') {\n return children(data as AdViewUnitClientChildrenProps);\n }\n // If children is a React element, clone it with the new props\n return React.cloneElement(tmpl as TemplateElement, {\n ...data,\n children: children,\n });\n }\n\n if (isFunction) {\n return tmpl(data);\n }\n\n return null;\n};\n\n// renderTemplates is a function that takes a list of TemplateType and returns a React element\nexport const renderTemplates = (\n tmpls: TemplateElement[],\n data: AdViewUnitTemplateTypeProps,\n listRender?: TemplateListRender,\n): React.ReactNode | React.ReactElement | JSX.Element => {\n return listRender ? listRender(tmpls) : templateFromListRender(tmpls, data);\n};\n\nexport const renderAnyTemplates = (\n tmpls: any,\n data: AdViewUnitTemplateTypeProps,\n listRender?: TemplateListRender,\n): React.ReactNode | React.ReactElement | JSX.Element | null => {\n if (!tmpls) {\n return null;\n }\n\n if (Array.isArray(tmpls)) {\n return renderTemplates(tmpls as TemplateElement[], data, listRender);\n }\n\n if (typeof tmpls === 'function') {\n return tmpls(data);\n }\n\n if (React.isValidElement(tmpls)) {\n return templateFromListRender([tmpls as TemplateElement], data);\n }\n\n return null;\n};\n\n// Template is a React component that renders a template based on the type and data provided\n// Example usage:\n// <AdView.Unit>\n// <AdView.Template type=\"banner\" data={{...}}>\n// </AdView.Unit>\nconst AdViewUnitTemplate = ({\n type,\n state,\n children,\n ...props\n}: AdViewUnitTemplateProps) => {\n const tmplProps: AdViewUnitTemplateTypeProps = {\n type,\n state,\n ...props,\n };\n\n const expectState: AdLoadState =\n props?.isInitial || props?.isLoading || props?.isError || props?.isComplete\n ? {\n isInitial: props?.isInitial,\n isLoading: props?.isLoading,\n isError: props?.isError,\n isComplete: props?.isComplete,\n }\n : { isComplete: true };\n\n // Check if the expected state matches the current state\n if (!matchExpectedState(expectState, state)) {\n return null;\n }\n\n // If children is a function, call it with the data\n if (typeof children === 'function') {\n return children(\n tmplProps as AdViewUnitClientChildrenProps,\n ) as React.ReactElement;\n }\n\n // If children is a React element, clone it with the new props\n if (React.isValidElement(children)) {\n return React.cloneElement(children, tmplProps);\n }\n\n // If no children are provided, return an empty fragment\n return <></>;\n};\n\nexport default AdViewUnitTemplate;\n","'use client';\n\nimport { executeImpressionsTracking } from '@adview/core/utils';\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react';\n\ntype AdViewUnitTrackingProps = {\n impressions?: string[];\n views?: string[];\n clicks?: string[];\n children: React.ReactNode;\n className?: string;\n};\n\nfunction AdViewUnitTracking({\n impressions,\n views,\n clicks,\n children,\n className,\n}: AdViewUnitTrackingProps) {\n const isServer = typeof window === 'undefined';\n const wrapperRef = useRef<HTMLDivElement>(null);\n const executeImpressionsTrackingHandler = useCallback(\n () => executeImpressionsTracking(impressions),\n [impressions],\n );\n const trackingObserverInstanceHandler = useCallback(\n (entries: IntersectionObserverEntry[]) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n executeImpressionsTracking(views);\n trackingObserverInstance?.unobserve(wrapperRef.current!);\n }\n });\n },\n [views],\n );\n const trackingObserverInstance = useMemo<IntersectionObserver | null>(() => {\n return !isServer\n ? new IntersectionObserver(trackingObserverInstanceHandler)\n : null;\n }, [isServer, trackingObserverInstanceHandler]);\n const clickTrackerHandler = useCallback(() => {\n executeImpressionsTracking(clicks);\n\n wrapperRef.current?.removeEventListener('click', clickTrackerHandler);\n }, [clicks]);\n\n useEffect(() => {\n if (wrapperRef.current && trackingObserverInstance) {\n executeImpressionsTrackingHandler();\n wrapperRef.current?.addEventListener('click', clickTrackerHandler);\n trackingObserverInstance?.observe(wrapperRef.current);\n\n return () => {\n wrapperRef.current?.removeEventListener('click', clickTrackerHandler);\n if (wrapperRef.current)\n trackingObserverInstance?.unobserve(wrapperRef.current);\n };\n }\n\n return () => {};\n }, [\n trackingObserverInstance,\n executeImpressionsTrackingHandler,\n clickTrackerHandler,\n ]);\n\n return (\n <div ref={wrapperRef} className={className}>\n {children}\n </div>\n );\n}\n\nexport default AdViewUnitTracking;\n","'use client';\n\nimport { AdViewData, AdViewDataLoader } from '@adview/core/typings';\nimport { getDataLoaderFromConfig, getResolveConfig } from '@adview/core/utils';\nimport { useContext, useEffect, useState } from 'react';\nimport { AdLoadState, AdViewConfig } from '../types';\nimport { AdViewProviderContext } from './AdViewProvider';\n\ntype UseAdViewControllerProps = [AdViewData | null, Error | null, AdLoadState];\n\nfunction useAdViewController(\n adUnitConfig: AdViewConfig,\n unitId: string,\n limit: number = 1,\n format?: string | string[],\n query?: { [key: string]: any },\n sources?: string[],\n): UseAdViewControllerProps {\n const [adLoadState, setAdLoadState] = useState<string>('initial');\n const [adData, setAdData] = useState<AdViewData | null>(null);\n const [errorMessage, setErrorMessage] = useState<Error | null>(null);\n const globalConfig = useContext(AdViewProviderContext);\n const baseConfig = getResolveConfig({ ...adUnitConfig, ...globalConfig });\n const dataLoader: AdViewDataLoader = getDataLoaderFromConfig(\n baseConfig,\n sources,\n );\n\n const loadAd = async () => {\n setAdLoadState('loading');\n\n try {\n const response = await dataLoader.fetchAdData(\n unitId,\n limit || 1,\n format,\n query,\n );\n\n if (response instanceof Error) {\n setAdLoadState('error');\n setErrorMessage(response);\n } else {\n setAdData(response);\n }\n setAdLoadState('complete');\n } catch (error) {\n setAdLoadState('error');\n setAdLoadState('complete');\n setErrorMessage(error as Error);\n }\n };\n\n const loadState = {\n isInitial: adLoadState === 'initial',\n isLoading: adLoadState === 'loading',\n isComplete: adLoadState === 'complete',\n isError: adLoadState === 'error',\n };\n\n useEffect(() => {\n loadAd();\n }, [unitId, limit, format]);\n\n return [adData, errorMessage, loadState];\n}\n\nexport default useAdViewController;\n","'use client';\n\nimport React, { createContext } from 'react';\nimport { type AdViewConfig } from '../types';\n\ntype AdViewProviderContextProps = AdViewConfig;\n\nexport const AdViewProviderContext = createContext<AdViewProviderContextProps>(\n {} as AdViewProviderContextProps,\n);\n\ntype AdViewProviderProps = {\n children: React.ReactNode;\n} & AdViewProviderContextProps;\n\nconst AdViewProvider = ({ children, ...props }: AdViewProviderProps) => {\n return (\n <AdViewProviderContext.Provider value={props}>\n {children}\n </AdViewProviderContext.Provider>\n );\n};\n\nexport default AdViewProvider;\n","import React from 'react';\n\nimport { AdViewData, AdViewDataLoader } from '@adview/core';\nimport { AdViewGroupItem } from '@adview/core/typings';\nimport { getDataLoaderFromConfig, getResolveConfig } from '@adview/core/utils';\nimport { AdViewUnitClientChildren, AdViewUnitPropsBase } from '../types';\nimport AdViewUnitBannerTemplate from './AdViewUnitBannerTemplate';\nimport AdViewUnitNativeTemplate from './AdViewUnitNativeTemplate';\nimport AdViewUnitProxyTemplate from './AdViewUnitProxyTemplate';\nimport { renderAnyTemplates } from './AdViewUnitTemplate';\nimport AdViewUnitTracking from './AdViewUnitTracking';\n\nexport type AdViewUnitServerProps = AdViewUnitPropsBase & {\n children?: AdViewUnitClientChildren;\n wrapper?: (elms: React.ReactNode[]) => React.ReactNode;\n trackingWrapperClassName?: string;\n sources?: string[];\n};\n\nasync function AdViewUnitServer({\n unitId,\n format,\n children,\n limit,\n query,\n wrapper,\n trackingWrapperClassName,\n sources,\n ...config\n}: AdViewUnitServerProps) {\n const checkFormat = (f: string) => {\n if (!format) {\n return true;\n }\n return Array.isArray(format) ? format.includes(f) : f === format;\n };\n\n const baseConfig = getResolveConfig(config);\n const dataLoader: AdViewDataLoader = getDataLoaderFromConfig(\n baseConfig,\n sources,\n );\n const response = await dataLoader.fetchAdData(\n unitId,\n limit || 1,\n format,\n query,\n );\n const isLoadingError = response instanceof Error;\n const error = isLoadingError ? response : undefined;\n const state = {\n isLoading: true,\n isComplete: true,\n isInitial: false,\n isError: isLoadingError,\n };\n\n const {\n responseGroup: _,\n customTracker,\n groupItems,\n } = error\n ? { responseGroup: null, customTracker: {}, groupItems: [] }\n : (() => {\n for (let responseGroup of (response as AdViewData)?.groups || []) {\n const customTracker = responseGroup?.custom_tracker ?? {};\n const groupItems = (responseGroup?.items || [])\n .map(it => (checkFormat(it.type) ? it : null))\n .filter(Boolean) as AdViewGroupItem[];\n if (groupItems && groupItems.length > 0) {\n return { responseGroup, customTracker, groupItems };\n }\n }\n return { responseGroup: null, customTracker: {}, groupItems: [] };\n })();\n\n if (!children) {\n children = [\n <AdViewUnitBannerTemplate />,\n <AdViewUnitNativeTemplate />,\n <AdViewUnitProxyTemplate />,\n ];\n }\n\n if (!wrapper) {\n wrapper = (elms: React.ReactNode[]) => <>{elms}</>;\n }\n\n if (groupItems && groupItems.length) {\n return wrapper(\n groupItems.map(({ tracker, ...data }: AdViewGroupItem, index: number) => {\n return (\n <AdViewUnitTracking\n key={data.id}\n {...tracker}\n className={trackingWrapperClassName}\n >\n {renderAnyTemplates(children, {\n unitId,\n index,\n data,\n type: data.type || 'default',\n error,\n state: state,\n })}\n </AdViewUnitTracking>\n );\n }),\n );\n }\n\n return wrapper([\n <AdViewUnitTracking {...customTracker} className={trackingWrapperClassName}>\n {renderAnyTemplates(children, {\n unitId,\n index: -1,\n data: null,\n type: 'default',\n error,\n state: state,\n })}\n </AdViewUnitTracking>,\n ]);\n}\n\nexport default AdViewUnitServer;\n"],"mappings":"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","names":["React","React","getAssetByName","getPrepareURL","getSrcSetCSSThumbs","React","getAssetByName","React","getPrepareURL","getSrcSetCSSThumbs","React","React","React","React","React","useEffect","React","useEffect","customTracker","groupItems","React","_","React","getDataLoaderFromConfig","getResolveConfig","getResolveConfig","getDataLoaderFromConfig","customTracker","groupItems","React","React"]}
|
package/dist/index.cjs
CHANGED
|
@@ -488,16 +488,32 @@ function AdViewUnitClient({
|
|
|
488
488
|
const {
|
|
489
489
|
responseGroup: _,
|
|
490
490
|
customTracker,
|
|
491
|
-
groupItems
|
|
492
|
-
|
|
491
|
+
groupItems,
|
|
492
|
+
adViewData
|
|
493
|
+
} = error ? {
|
|
494
|
+
responseGroup: null,
|
|
495
|
+
customTracker: {},
|
|
496
|
+
groupItems: [],
|
|
497
|
+
adViewData: null
|
|
498
|
+
} : (() => {
|
|
493
499
|
for (let responseGroup of response?.groups || []) {
|
|
494
500
|
const customTracker2 = responseGroup?.custom_tracker ?? {};
|
|
495
501
|
const groupItems2 = (responseGroup?.items || []).map((it) => checkFormat(it.type) ? it : null).filter(Boolean);
|
|
496
502
|
if (groupItems2 && groupItems2.length > 0) {
|
|
497
|
-
return {
|
|
503
|
+
return {
|
|
504
|
+
responseGroup,
|
|
505
|
+
customTracker: customTracker2,
|
|
506
|
+
groupItems: groupItems2,
|
|
507
|
+
adViewData: response
|
|
508
|
+
};
|
|
498
509
|
}
|
|
499
510
|
}
|
|
500
|
-
return {
|
|
511
|
+
return {
|
|
512
|
+
responseGroup: null,
|
|
513
|
+
customTracker: {},
|
|
514
|
+
groupItems: [],
|
|
515
|
+
adViewData: response
|
|
516
|
+
};
|
|
501
517
|
})();
|
|
502
518
|
if (!children) {
|
|
503
519
|
children = [
|
|
@@ -507,10 +523,11 @@ function AdViewUnitClient({
|
|
|
507
523
|
];
|
|
508
524
|
}
|
|
509
525
|
if (!wrapper) {
|
|
510
|
-
wrapper = (elms) => /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, elms);
|
|
526
|
+
wrapper = (_2, elms) => /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, elms);
|
|
511
527
|
}
|
|
512
528
|
if (groupItems && groupItems?.length > 0) {
|
|
513
529
|
return wrapper(
|
|
530
|
+
adViewData,
|
|
514
531
|
groupItems.map(({ tracker, ...data }, index) => {
|
|
515
532
|
return /* @__PURE__ */ import_react8.default.createElement(
|
|
516
533
|
AdViewUnitTracking_default,
|
|
@@ -531,7 +548,7 @@ function AdViewUnitClient({
|
|
|
531
548
|
})
|
|
532
549
|
);
|
|
533
550
|
}
|
|
534
|
-
return wrapper([
|
|
551
|
+
return wrapper(adViewData, [
|
|
535
552
|
/* @__PURE__ */ import_react8.default.createElement(AdViewUnitTracking_default, { ...customTracker, className: trackingWrapperClassName }, renderAnyTemplates(children, {
|
|
536
553
|
unitId,
|
|
537
554
|
index: -1,
|