@adview/react 1.0.13 → 1.0.14
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 +106 -298
- package/dist/AdViewUnit/AdViewUnit.cjs.map +1 -1
- package/dist/AdViewUnit/AdViewUnit.client.cjs +86 -256
- package/dist/AdViewUnit/AdViewUnit.client.cjs.map +1 -1
- package/dist/AdViewUnit/AdViewUnit.client.d.cts +2 -2
- package/dist/AdViewUnit/AdViewUnit.client.d.ts +2 -2
- package/dist/AdViewUnit/AdViewUnit.client.js +69 -239
- package/dist/AdViewUnit/AdViewUnit.client.js.map +1 -1
- package/dist/AdViewUnit/AdViewUnit.d.cts +1 -1
- package/dist/AdViewUnit/AdViewUnit.d.ts +1 -1
- package/dist/AdViewUnit/AdViewUnit.js +85 -277
- package/dist/AdViewUnit/AdViewUnit.js.map +1 -1
- package/dist/AdViewUnit/AdViewUnit.server.cjs +82 -214
- package/dist/AdViewUnit/AdViewUnit.server.cjs.map +1 -1
- package/dist/AdViewUnit/AdViewUnit.server.d.cts +2 -2
- package/dist/AdViewUnit/AdViewUnit.server.d.ts +2 -2
- package/dist/AdViewUnit/AdViewUnit.server.js +72 -204
- package/dist/AdViewUnit/AdViewUnit.server.js.map +1 -1
- package/dist/AdViewUnit/{AdViewUnitBanner.cjs → AdViewUnitBannerTemplate.cjs} +17 -14
- package/dist/AdViewUnit/AdViewUnitBannerTemplate.cjs.map +1 -0
- package/dist/AdViewUnit/AdViewUnitBannerTemplate.d.cts +12 -0
- package/dist/AdViewUnit/AdViewUnitBannerTemplate.d.ts +12 -0
- package/dist/AdViewUnit/AdViewUnitBannerTemplate.js +32 -0
- package/dist/AdViewUnit/AdViewUnitBannerTemplate.js.map +1 -0
- package/dist/AdViewUnit/AdViewUnitDefaultTemplate.cjs +48 -0
- package/dist/AdViewUnit/AdViewUnitDefaultTemplate.cjs.map +1 -0
- package/dist/AdViewUnit/AdViewUnitDefaultTemplate.d.cts +17 -0
- package/dist/AdViewUnit/AdViewUnitDefaultTemplate.d.ts +17 -0
- package/dist/AdViewUnit/AdViewUnitDefaultTemplate.js +17 -0
- package/dist/AdViewUnit/AdViewUnitDefaultTemplate.js.map +1 -0
- package/dist/AdViewUnit/{AdViewUnitNative.cjs → AdViewUnitNativeTemplate.cjs} +12 -13
- package/dist/AdViewUnit/AdViewUnitNativeTemplate.cjs.map +1 -0
- package/dist/AdViewUnit/AdViewUnitNativeTemplate.d.cts +11 -0
- package/dist/AdViewUnit/AdViewUnitNativeTemplate.d.ts +11 -0
- package/dist/AdViewUnit/{AdViewUnitNative.js → AdViewUnitNativeTemplate.js} +9 -10
- package/dist/AdViewUnit/AdViewUnitNativeTemplate.js.map +1 -0
- package/dist/AdViewUnit/{AdViewUnitProxy.cjs → AdViewUnitProxyTemplate.cjs} +14 -13
- package/dist/AdViewUnit/AdViewUnitProxyTemplate.cjs.map +1 -0
- package/dist/AdViewUnit/AdViewUnitProxyTemplate.d.cts +12 -0
- package/dist/AdViewUnit/AdViewUnitProxyTemplate.d.ts +12 -0
- package/dist/AdViewUnit/AdViewUnitProxyTemplate.js +33 -0
- package/dist/AdViewUnit/AdViewUnitProxyTemplate.js.map +1 -0
- package/dist/AdViewUnit/AdViewUnitTemplate.cjs +114 -0
- package/dist/AdViewUnit/AdViewUnitTemplate.cjs.map +1 -1
- package/dist/AdViewUnit/AdViewUnitTemplate.d.cts +14 -1
- package/dist/AdViewUnit/AdViewUnitTemplate.d.ts +14 -1
- package/dist/AdViewUnit/AdViewUnitTemplate.js +77 -0
- package/dist/AdViewUnit/AdViewUnitTemplate.js.map +1 -1
- package/dist/AdViewUnit/useAdViewController.cjs +5 -1
- package/dist/AdViewUnit/useAdViewController.cjs.map +1 -1
- package/dist/AdViewUnit/useAdViewController.d.cts +2 -2
- package/dist/AdViewUnit/useAdViewController.d.ts +2 -2
- package/dist/AdViewUnit/useAdViewController.js +5 -1
- package/dist/AdViewUnit/useAdViewController.js.map +1 -1
- package/dist/index.cjs +250 -232
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +8 -7
- package/dist/index.d.ts +8 -7
- package/dist/index.js +232 -222
- package/dist/index.js.map +1 -1
- package/dist/server.cjs +216 -162
- package/dist/server.cjs.map +1 -1
- package/dist/server.d.cts +7 -6
- package/dist/server.d.ts +7 -6
- package/dist/server.js +196 -149
- package/dist/server.js.map +1 -1
- package/dist/{types-BaV07oMT.d.cts → types-B65WDsgh.d.cts} +29 -25
- package/dist/{types-BaV07oMT.d.ts → types-B65WDsgh.d.ts} +29 -25
- package/package.json +1 -1
- package/dist/AdViewUnit/AdViewUnitBanner.cjs.map +0 -1
- package/dist/AdViewUnit/AdViewUnitBanner.d.cts +0 -10
- package/dist/AdViewUnit/AdViewUnitBanner.d.ts +0 -10
- package/dist/AdViewUnit/AdViewUnitBanner.js +0 -29
- package/dist/AdViewUnit/AdViewUnitBanner.js.map +0 -1
- package/dist/AdViewUnit/AdViewUnitNative.cjs.map +0 -1
- package/dist/AdViewUnit/AdViewUnitNative.d.cts +0 -10
- package/dist/AdViewUnit/AdViewUnitNative.d.ts +0 -10
- package/dist/AdViewUnit/AdViewUnitNative.js.map +0 -1
- package/dist/AdViewUnit/AdViewUnitProxy.cjs.map +0 -1
- package/dist/AdViewUnit/AdViewUnitProxy.d.cts +0 -10
- package/dist/AdViewUnit/AdViewUnitProxy.d.ts +0 -10
- package/dist/AdViewUnit/AdViewUnitProxy.js +0 -32
- package/dist/AdViewUnit/AdViewUnitProxy.js.map +0 -1
- package/dist/AdViewUnit/AdViewUnitTypeSwitch.cjs +0 -203
- package/dist/AdViewUnit/AdViewUnitTypeSwitch.cjs.map +0 -1
- package/dist/AdViewUnit/AdViewUnitTypeSwitch.d.cts +0 -12
- package/dist/AdViewUnit/AdViewUnitTypeSwitch.d.ts +0 -12
- package/dist/AdViewUnit/AdViewUnitTypeSwitch.js +0 -170
- package/dist/AdViewUnit/AdViewUnitTypeSwitch.js.map +0 -1
- package/dist/AdViewUnit/AdViewUnitWrapper.client.cjs +0 -250
- package/dist/AdViewUnit/AdViewUnitWrapper.client.cjs.map +0 -1
- package/dist/AdViewUnit/AdViewUnitWrapper.client.d.cts +0 -11
- package/dist/AdViewUnit/AdViewUnitWrapper.client.d.ts +0 -11
- package/dist/AdViewUnit/AdViewUnitWrapper.client.js +0 -220
- package/dist/AdViewUnit/AdViewUnitWrapper.client.js.map +0 -1
- package/dist/AdViewUnit/AdViewUnitWrapper.server.cjs +0 -232
- package/dist/AdViewUnit/AdViewUnitWrapper.server.cjs.map +0 -1
- package/dist/AdViewUnit/AdViewUnitWrapper.server.d.cts +0 -11
- package/dist/AdViewUnit/AdViewUnitWrapper.server.d.ts +0 -11
- package/dist/AdViewUnit/AdViewUnitWrapper.server.js +0 -201
- package/dist/AdViewUnit/AdViewUnitWrapper.server.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -11,11 +11,82 @@ var AdViewProvider = ({ children, ...props }) => {
|
|
|
11
11
|
var AdViewProvider_default = AdViewProvider;
|
|
12
12
|
|
|
13
13
|
// src/AdViewUnit/AdViewUnit.client.tsx
|
|
14
|
-
import
|
|
14
|
+
import React4 from "react";
|
|
15
|
+
|
|
16
|
+
// src/AdViewUnit/AdViewUnitTemplate.tsx
|
|
17
|
+
import React2 from "react";
|
|
18
|
+
var templateFromListRender = (tmpls, data, wrap) => {
|
|
19
|
+
let renderedRemplates = tmpls.map((tmpl, index) => {
|
|
20
|
+
let tmp = renderTemplate(tmpl, data);
|
|
21
|
+
return !!tmp && React2.isValidElement(tmp) ? /* @__PURE__ */ React2.createElement(React2.Fragment, { key: index }, !!wrap ? wrap(tmp) : tmp) : null;
|
|
22
|
+
}).filter((it) => !!it);
|
|
23
|
+
if (!renderedRemplates.length) {
|
|
24
|
+
renderedRemplates = tmpls.map((tmpl, index) => {
|
|
25
|
+
let tmp = renderTemplate(tmpl, { ...data, type: "default" });
|
|
26
|
+
return !!tmp && React2.isValidElement(tmp) ? /* @__PURE__ */ React2.createElement(React2.Fragment, { key: index }, !!wrap ? wrap(tmp) : tmp) : null;
|
|
27
|
+
}).filter((it) => !!it);
|
|
28
|
+
}
|
|
29
|
+
return /* @__PURE__ */ React2.createElement(React2.Fragment, null, renderedRemplates);
|
|
30
|
+
};
|
|
31
|
+
var renderTemplate = (tmpl, data) => {
|
|
32
|
+
const isFunction = typeof tmpl === "function";
|
|
33
|
+
const isReactElement = React2.isValidElement(tmpl);
|
|
34
|
+
if (isReactElement) {
|
|
35
|
+
const { type, children } = tmpl.props;
|
|
36
|
+
console.log("=====>\nrenderTemplate: React element detected, type:", type, "data:", data.type, data.type !== type);
|
|
37
|
+
if (data.type !== type) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
if (typeof children === "function") {
|
|
41
|
+
return children(data);
|
|
42
|
+
}
|
|
43
|
+
console.log("CLONE ELEMENT", tmpl);
|
|
44
|
+
return React2.cloneElement(tmpl, {
|
|
45
|
+
...data,
|
|
46
|
+
children
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
if (isFunction) {
|
|
50
|
+
return tmpl(data);
|
|
51
|
+
}
|
|
52
|
+
return null;
|
|
53
|
+
};
|
|
54
|
+
var renderTemplates = (tmpls, data, listRender) => {
|
|
55
|
+
return listRender ? listRender(tmpls) : templateFromListRender(tmpls, data);
|
|
56
|
+
};
|
|
57
|
+
var renderAnyTemplates = (tmpls, data, listRender) => {
|
|
58
|
+
if (!tmpls) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
if (Array.isArray(tmpls)) {
|
|
62
|
+
return renderTemplates(tmpls, data, listRender);
|
|
63
|
+
}
|
|
64
|
+
if (typeof tmpls === "function") {
|
|
65
|
+
return tmpls(data);
|
|
66
|
+
}
|
|
67
|
+
if (React2.isValidElement(tmpls)) {
|
|
68
|
+
return templateFromListRender([tmpls], data);
|
|
69
|
+
}
|
|
70
|
+
return null;
|
|
71
|
+
};
|
|
72
|
+
var AdViewUnitTemplate = ({ type, children, ...data }) => {
|
|
73
|
+
const tmplProps = {
|
|
74
|
+
type,
|
|
75
|
+
...data
|
|
76
|
+
};
|
|
77
|
+
if (typeof children === "function") {
|
|
78
|
+
return children(tmplProps);
|
|
79
|
+
}
|
|
80
|
+
if (React2.isValidElement(children)) {
|
|
81
|
+
return React2.cloneElement(children, tmplProps);
|
|
82
|
+
}
|
|
83
|
+
return /* @__PURE__ */ React2.createElement(React2.Fragment, null);
|
|
84
|
+
};
|
|
85
|
+
var AdViewUnitTemplate_default = AdViewUnitTemplate;
|
|
15
86
|
|
|
16
87
|
// src/AdViewUnit/AdViewUnitTracking.tsx
|
|
17
88
|
import { executeImpressionsTracking } from "@adview/core/utils";
|
|
18
|
-
import
|
|
89
|
+
import React3, { useCallback, useEffect, useMemo, useRef } from "react";
|
|
19
90
|
function AdViewUnitTracking({
|
|
20
91
|
impressions,
|
|
21
92
|
views,
|
|
@@ -64,113 +135,223 @@ function AdViewUnitTracking({
|
|
|
64
135
|
executeImpressionsTrackingHandler,
|
|
65
136
|
clickTrackerHandler
|
|
66
137
|
]);
|
|
67
|
-
return /* @__PURE__ */
|
|
138
|
+
return /* @__PURE__ */ React3.createElement("div", { ref: wrapperRef }, children);
|
|
68
139
|
}
|
|
69
140
|
var AdViewUnitTracking_default = AdViewUnitTracking;
|
|
70
141
|
|
|
71
|
-
// src/AdViewUnit/
|
|
72
|
-
import
|
|
142
|
+
// src/AdViewUnit/useAdViewController.ts
|
|
143
|
+
import { adViewFetcher, getAdRequestUrl, getResolveConfig } from "@adview/core/utils";
|
|
144
|
+
import { useContext, useEffect as useEffect2, useState } from "react";
|
|
145
|
+
function useAdViewController(adUnitConfig, unitId, format) {
|
|
146
|
+
const [adLoadState, setAdLoadState] = useState("initial");
|
|
147
|
+
const [adData, setAdData] = useState(null);
|
|
148
|
+
const [errorMessage, setErrorMessage] = useState(null);
|
|
149
|
+
const globalConfig = useContext(AdViewProviderContext);
|
|
150
|
+
const baseConfig = getResolveConfig({ ...adUnitConfig, ...globalConfig });
|
|
151
|
+
const requestUrl = getAdRequestUrl(
|
|
152
|
+
baseConfig,
|
|
153
|
+
unitId,
|
|
154
|
+
typeof format === "string" ? format : format?.join(",") || ""
|
|
155
|
+
);
|
|
156
|
+
const loadAd = async () => {
|
|
157
|
+
setAdLoadState("loading");
|
|
158
|
+
try {
|
|
159
|
+
console.log("Requesting ad data from:", adViewFetcher, "with URL:", requestUrl);
|
|
160
|
+
const response = await adViewFetcher(requestUrl, baseConfig.defaultAdData);
|
|
161
|
+
console.log("AdViewController response:", response);
|
|
162
|
+
if (response instanceof Error) {
|
|
163
|
+
setAdLoadState("error");
|
|
164
|
+
setErrorMessage(response);
|
|
165
|
+
} else {
|
|
166
|
+
setAdData(response);
|
|
167
|
+
}
|
|
168
|
+
setAdLoadState("complete");
|
|
169
|
+
} catch (error) {
|
|
170
|
+
setAdLoadState("error");
|
|
171
|
+
setAdLoadState("complete");
|
|
172
|
+
setErrorMessage(error);
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
const loadState = {
|
|
176
|
+
isInitial: adLoadState === "initial",
|
|
177
|
+
isLoading: adLoadState === "loading",
|
|
178
|
+
isComplete: adLoadState === "complete",
|
|
179
|
+
isError: adLoadState === "error"
|
|
180
|
+
};
|
|
181
|
+
useEffect2(() => {
|
|
182
|
+
loadAd();
|
|
183
|
+
}, []);
|
|
184
|
+
return [adData, errorMessage, loadState];
|
|
185
|
+
}
|
|
186
|
+
var useAdViewController_default = useAdViewController;
|
|
73
187
|
|
|
74
|
-
// src/AdViewUnit/
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
url,
|
|
81
|
-
classNames
|
|
188
|
+
// src/AdViewUnit/AdViewUnit.client.tsx
|
|
189
|
+
function AdViewUnitClient({
|
|
190
|
+
unitId,
|
|
191
|
+
format,
|
|
192
|
+
children,
|
|
193
|
+
...config
|
|
82
194
|
}) {
|
|
83
|
-
const
|
|
195
|
+
const [response, error, loadState] = useAdViewController_default(
|
|
196
|
+
config,
|
|
197
|
+
unitId,
|
|
198
|
+
format
|
|
199
|
+
);
|
|
200
|
+
const responseGroup = error ? null : response?.groups?.[0];
|
|
201
|
+
const customTracker = responseGroup?.custom_tracker ?? {};
|
|
202
|
+
const groupItems = responseGroup?.items;
|
|
203
|
+
if (groupItems && groupItems?.length > 0) {
|
|
204
|
+
return groupItems.map(({ tracker, ...data }) => {
|
|
205
|
+
return /* @__PURE__ */ React4.createElement(AdViewUnitTracking_default, { key: data.id, ...tracker }, renderAnyTemplates(children, { data, type: data.type || "default", error, state: loadState }));
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
return /* @__PURE__ */ React4.createElement(AdViewUnitTracking_default, { ...customTracker }, renderAnyTemplates(children, { data: null, type: "default", error, state: loadState }));
|
|
209
|
+
}
|
|
210
|
+
var AdViewUnit_client_default = AdViewUnitClient;
|
|
211
|
+
|
|
212
|
+
// src/AdViewUnit/AdViewUnitBannerTemplate.tsx
|
|
213
|
+
import { getAssetByName, getPrepareURL, getSrcSetCSSThumbs } from "@adview/core/utils";
|
|
214
|
+
import React5 from "react";
|
|
215
|
+
function AdViewUnitBannerTemplate({ className = "banner", style, data, state }) {
|
|
216
|
+
if (!data || !data.assets || !data.assets.length || !state?.isComplete) {
|
|
217
|
+
return null;
|
|
218
|
+
}
|
|
219
|
+
const asset = getAssetByName("main", data.assets);
|
|
220
|
+
return /* @__PURE__ */ React5.createElement(
|
|
221
|
+
"a",
|
|
222
|
+
{
|
|
223
|
+
target: "_blank",
|
|
224
|
+
rel: "noopener noreferrer",
|
|
225
|
+
href: getPrepareURL(data.url),
|
|
226
|
+
className,
|
|
227
|
+
style: { fontSize: 0, ...style }
|
|
228
|
+
},
|
|
229
|
+
asset && /* @__PURE__ */ React5.createElement(
|
|
230
|
+
"img",
|
|
231
|
+
{
|
|
232
|
+
alt: "main",
|
|
233
|
+
src: asset.path,
|
|
234
|
+
srcSet: asset.thumbs ? getSrcSetCSSThumbs(asset.thumbs) : ""
|
|
235
|
+
}
|
|
236
|
+
)
|
|
237
|
+
);
|
|
238
|
+
}
|
|
239
|
+
var AdViewUnitBannerTemplate_default = AdViewUnitBannerTemplate;
|
|
240
|
+
|
|
241
|
+
// src/AdViewUnit/AdViewUnitDefaultTemplate.tsx
|
|
242
|
+
import React6 from "react";
|
|
243
|
+
function AdViewUnitDefaultTemplate({ type = "default", data, state, children, ...props }) {
|
|
244
|
+
if (typeof children === "function") {
|
|
245
|
+
return /* @__PURE__ */ React6.createElement(React6.Fragment, null, children({ data, state, ...props }));
|
|
246
|
+
}
|
|
247
|
+
return children ? /* @__PURE__ */ React6.createElement(React6.Fragment, null, children) : /* @__PURE__ */ React6.createElement("div", { style: { padding: "1rem", textAlign: "center", color: "#666" } }, /* @__PURE__ */ React6.createElement("p", null, "\u{1F504} Default content for ad unit"), /* @__PURE__ */ React6.createElement("p", null, "Data: ", JSON.stringify(data)), /* @__PURE__ */ React6.createElement("p", null, "State: ", JSON.stringify(state)));
|
|
248
|
+
}
|
|
249
|
+
AdViewUnitDefaultTemplate.defaultProps = {
|
|
250
|
+
type: "default",
|
|
251
|
+
children: null
|
|
252
|
+
};
|
|
253
|
+
var AdViewUnitDefaultTemplate_default = AdViewUnitDefaultTemplate;
|
|
254
|
+
|
|
255
|
+
// src/AdViewUnit/AdViewUnitNativeTemplate.tsx
|
|
256
|
+
import { getAssetByName as getAssetByName2, getPrepareURL as getPrepareURL2, getSrcSetCSSThumbs as getSrcSetCSSThumbs2 } from "@adview/core/utils";
|
|
257
|
+
import React7 from "react";
|
|
258
|
+
function AdViewUnitNativeTemplate({ classNames, data, state }) {
|
|
259
|
+
if (!data || !data.assets || !data.assets.length || !state?.isComplete) {
|
|
260
|
+
return null;
|
|
261
|
+
}
|
|
262
|
+
const { assets, url, fields } = data;
|
|
263
|
+
const asset = getAssetByName2("main", assets);
|
|
84
264
|
if (!url) {
|
|
85
265
|
return null;
|
|
86
266
|
}
|
|
87
|
-
return /* @__PURE__ */
|
|
267
|
+
return /* @__PURE__ */ React7.createElement("div", { className: classNames?.container }, /* @__PURE__ */ React7.createElement(
|
|
88
268
|
"a",
|
|
89
269
|
{
|
|
90
270
|
target: "_blank",
|
|
91
271
|
rel: "noopener noreferrer",
|
|
92
|
-
href:
|
|
272
|
+
href: getPrepareURL2(url),
|
|
93
273
|
className: classNames?.imageLink
|
|
94
274
|
},
|
|
95
|
-
asset && /* @__PURE__ */
|
|
275
|
+
asset && /* @__PURE__ */ React7.createElement(
|
|
96
276
|
"img",
|
|
97
277
|
{
|
|
98
278
|
alt: fields?.title,
|
|
99
279
|
title: fields?.title,
|
|
100
280
|
src: asset.path,
|
|
101
|
-
srcSet: asset.thumbs ?
|
|
281
|
+
srcSet: asset.thumbs ? getSrcSetCSSThumbs2(asset.thumbs) : void 0,
|
|
102
282
|
className: classNames?.image,
|
|
103
283
|
style: { objectFit: "cover", width: "100%", height: "100%" }
|
|
104
284
|
}
|
|
105
285
|
)
|
|
106
|
-
), /* @__PURE__ */
|
|
286
|
+
), /* @__PURE__ */ React7.createElement("div", { className: classNames?.label }, fields?.title && /* @__PURE__ */ React7.createElement(
|
|
107
287
|
"a",
|
|
108
288
|
{
|
|
109
289
|
target: "_blank",
|
|
110
290
|
rel: "noopener noreferrer",
|
|
111
|
-
href:
|
|
291
|
+
href: getPrepareURL2(url),
|
|
112
292
|
"data-class": "titleLink",
|
|
113
293
|
className: classNames?.titleLink
|
|
114
294
|
},
|
|
115
295
|
fields.title
|
|
116
|
-
), fields?.description && /* @__PURE__ */
|
|
296
|
+
), fields?.description && /* @__PURE__ */ React7.createElement(
|
|
117
297
|
"a",
|
|
118
298
|
{
|
|
119
299
|
target: "_blank",
|
|
120
300
|
rel: "noopener noreferrer",
|
|
121
|
-
href:
|
|
301
|
+
href: getPrepareURL2(url),
|
|
122
302
|
"data-class": "descriptionLink",
|
|
123
303
|
className: classNames?.descriptionLink
|
|
124
304
|
},
|
|
125
305
|
fields.description
|
|
126
|
-
), fields?.brandname && /* @__PURE__ */
|
|
306
|
+
), fields?.brandname && /* @__PURE__ */ React7.createElement(
|
|
127
307
|
"a",
|
|
128
308
|
{
|
|
129
309
|
target: "_blank",
|
|
130
310
|
rel: "noopener noreferrer",
|
|
131
|
-
href:
|
|
311
|
+
href: getPrepareURL2(url),
|
|
132
312
|
"data-class": "brandNameLink",
|
|
133
313
|
className: classNames?.brandNameLink
|
|
134
314
|
},
|
|
135
315
|
fields.brandname
|
|
136
|
-
), fields?.phone && /* @__PURE__ */
|
|
316
|
+
), fields?.phone && /* @__PURE__ */ React7.createElement(
|
|
137
317
|
"a",
|
|
138
318
|
{
|
|
139
319
|
target: "_blank",
|
|
140
320
|
rel: "noopener noreferrer",
|
|
141
|
-
href:
|
|
321
|
+
href: getPrepareURL2(url),
|
|
142
322
|
"data-class": "phoneLink",
|
|
143
323
|
className: classNames?.phoneLink
|
|
144
324
|
},
|
|
145
325
|
fields.phone
|
|
146
|
-
), fields?.url && /* @__PURE__ */
|
|
326
|
+
), fields?.url && /* @__PURE__ */ React7.createElement(
|
|
147
327
|
"a",
|
|
148
328
|
{
|
|
149
329
|
target: "_blank",
|
|
150
330
|
rel: "noopener noreferrer",
|
|
151
|
-
href:
|
|
331
|
+
href: getPrepareURL2(url),
|
|
152
332
|
"data-class": "urlLink",
|
|
153
333
|
className: classNames?.urlLink
|
|
154
334
|
},
|
|
155
335
|
fields?.url
|
|
156
336
|
)));
|
|
157
337
|
}
|
|
158
|
-
var
|
|
338
|
+
var AdViewUnitNativeTemplate_default = AdViewUnitNativeTemplate;
|
|
159
339
|
|
|
160
|
-
// src/AdViewUnit/
|
|
161
|
-
import
|
|
162
|
-
function
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
}
|
|
340
|
+
// src/AdViewUnit/AdViewUnitProxyTemplate.tsx
|
|
341
|
+
import React8 from "react";
|
|
342
|
+
function AdViewUnitProxyTemplate({ className, style, data, state }) {
|
|
343
|
+
if (!data || !state?.isComplete) {
|
|
344
|
+
return null;
|
|
345
|
+
}
|
|
346
|
+
const { url, fields } = data;
|
|
167
347
|
const iframeSrc = fields?.url || url;
|
|
168
348
|
if (!iframeSrc) {
|
|
169
349
|
return null;
|
|
170
350
|
}
|
|
171
|
-
return /* @__PURE__ */
|
|
351
|
+
return /* @__PURE__ */ React8.createElement(
|
|
172
352
|
"iframe",
|
|
173
353
|
{
|
|
354
|
+
className,
|
|
174
355
|
width: "100%",
|
|
175
356
|
height: "100%",
|
|
176
357
|
frameBorder: "0",
|
|
@@ -179,197 +360,26 @@ function AdViewUnitProxy({
|
|
|
179
360
|
allowTransparency: true,
|
|
180
361
|
scrolling: "no",
|
|
181
362
|
allowFullScreen: true,
|
|
182
|
-
style: { width: "100%", height: "100%" },
|
|
363
|
+
style: { width: "100%", height: "100%", border: "none", ...style },
|
|
183
364
|
src: iframeSrc
|
|
184
365
|
}
|
|
185
366
|
);
|
|
186
367
|
}
|
|
187
|
-
var
|
|
188
|
-
|
|
189
|
-
// src/AdViewUnit/AdViewUnitBanner.tsx
|
|
190
|
-
import { getAssetByName as getAssetByName2, getPrepareURL as getPrepareURL2, getSrcSetCSSThumbs as getSrcSetCSSThumbs2 } from "@adview/core/utils";
|
|
191
|
-
import React5 from "react";
|
|
192
|
-
function AdViewUnitBanner({ assets, url }) {
|
|
193
|
-
const asset = getAssetByName2("main", assets);
|
|
194
|
-
return /* @__PURE__ */ React5.createElement("center", null, /* @__PURE__ */ React5.createElement(
|
|
195
|
-
"a",
|
|
196
|
-
{
|
|
197
|
-
target: "_blank",
|
|
198
|
-
rel: "noopener noreferrer",
|
|
199
|
-
href: getPrepareURL2(url),
|
|
200
|
-
className: "banner",
|
|
201
|
-
style: { fontSize: 0 }
|
|
202
|
-
},
|
|
203
|
-
asset && /* @__PURE__ */ React5.createElement(
|
|
204
|
-
"img",
|
|
205
|
-
{
|
|
206
|
-
alt: "main",
|
|
207
|
-
src: asset.path,
|
|
208
|
-
srcSet: asset.thumbs ? getSrcSetCSSThumbs2(asset.thumbs) : ""
|
|
209
|
-
}
|
|
210
|
-
)
|
|
211
|
-
));
|
|
212
|
-
}
|
|
213
|
-
var AdViewUnitBanner_default = AdViewUnitBanner;
|
|
214
|
-
|
|
215
|
-
// src/AdViewUnit/AdViewUnitTypeSwitch.tsx
|
|
216
|
-
import React6 from "react";
|
|
217
|
-
function AdViewUnitTypeSwitch({
|
|
218
|
-
data,
|
|
219
|
-
classNames,
|
|
220
|
-
onDefault
|
|
221
|
-
}) {
|
|
222
|
-
switch (data?.type) {
|
|
223
|
-
case "native":
|
|
224
|
-
return /* @__PURE__ */ React6.createElement(AdViewUnitNative_default, { ...data, classNames: classNames?.native });
|
|
225
|
-
case "proxy":
|
|
226
|
-
return /* @__PURE__ */ React6.createElement(AdViewUnitProxy_default, { ...data, classNames: classNames?.proxy });
|
|
227
|
-
case "banner":
|
|
228
|
-
return /* @__PURE__ */ React6.createElement(AdViewUnitBanner_default, { ...data, classNames: classNames?.banner });
|
|
229
|
-
default:
|
|
230
|
-
if (React6.isValidElement(onDefault)) {
|
|
231
|
-
return React6.cloneElement(onDefault);
|
|
232
|
-
}
|
|
233
|
-
if (typeof onDefault === "function") {
|
|
234
|
-
return onDefault();
|
|
235
|
-
}
|
|
236
|
-
return null;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
var AdViewUnitTypeSwitch_default = AdViewUnitTypeSwitch;
|
|
240
|
-
|
|
241
|
-
// src/AdViewUnit/AdViewUnitWrapper.client.tsx
|
|
242
|
-
function AdViewUnitWrapperClient({
|
|
243
|
-
data,
|
|
244
|
-
state,
|
|
245
|
-
error,
|
|
246
|
-
children,
|
|
247
|
-
onDefault
|
|
248
|
-
}) {
|
|
249
|
-
const { isLoading, isError } = state;
|
|
250
|
-
const isChildrenReactNode = React7.isValidElement(children);
|
|
251
|
-
const isChildrenFunction = typeof children === "function";
|
|
252
|
-
if (isChildrenReactNode) {
|
|
253
|
-
return React7.cloneElement(children, {
|
|
254
|
-
data,
|
|
255
|
-
state,
|
|
256
|
-
error,
|
|
257
|
-
onDefault
|
|
258
|
-
});
|
|
259
|
-
}
|
|
260
|
-
if (isChildrenFunction) {
|
|
261
|
-
return children({
|
|
262
|
-
data,
|
|
263
|
-
state,
|
|
264
|
-
error,
|
|
265
|
-
onDefault
|
|
266
|
-
});
|
|
267
|
-
}
|
|
268
|
-
if (isLoading) {
|
|
269
|
-
return null;
|
|
270
|
-
}
|
|
271
|
-
if (!children && !isError && data) {
|
|
272
|
-
return /* @__PURE__ */ React7.createElement(AdViewUnitTypeSwitch_default, { data, onDefault });
|
|
273
|
-
}
|
|
274
|
-
if (React7.isValidElement(onDefault)) {
|
|
275
|
-
return React7.cloneElement(onDefault);
|
|
276
|
-
}
|
|
277
|
-
if (typeof onDefault === "function") {
|
|
278
|
-
return onDefault();
|
|
279
|
-
}
|
|
280
|
-
return null;
|
|
281
|
-
}
|
|
282
|
-
var AdViewUnitWrapper_client_default = AdViewUnitWrapperClient;
|
|
283
|
-
|
|
284
|
-
// src/AdViewUnit/useAdViewController.ts
|
|
285
|
-
import { adViewFetcher, getAdRequestUrl, getResolveConfig } from "@adview/core/utils";
|
|
286
|
-
import { useContext, useEffect as useEffect2, useState } from "react";
|
|
287
|
-
function useAdViewController(adUnitConfig, unitId, format) {
|
|
288
|
-
const [adLoadState, setAdLoadState] = useState("initial");
|
|
289
|
-
const [adData, setAdData] = useState(null);
|
|
290
|
-
const [errorMessage, setErrorMessage] = useState(null);
|
|
291
|
-
const globalConfig = useContext(AdViewProviderContext);
|
|
292
|
-
const baseConfig = getResolveConfig({ ...adUnitConfig, ...globalConfig });
|
|
293
|
-
const requestUrl = getAdRequestUrl(baseConfig, unitId, format);
|
|
294
|
-
const loadAd = async () => {
|
|
295
|
-
setAdLoadState("loading");
|
|
296
|
-
try {
|
|
297
|
-
console.log("Requesting ad data from:", adViewFetcher, "with URL:", requestUrl);
|
|
298
|
-
const response = await adViewFetcher(requestUrl, baseConfig.defaultAdData);
|
|
299
|
-
console.log("AdViewController response:", response);
|
|
300
|
-
if (response instanceof Error) {
|
|
301
|
-
setAdLoadState("error");
|
|
302
|
-
setErrorMessage(response);
|
|
303
|
-
} else {
|
|
304
|
-
setAdData(response);
|
|
305
|
-
}
|
|
306
|
-
setAdLoadState("complete");
|
|
307
|
-
} catch (error) {
|
|
308
|
-
setAdLoadState("error");
|
|
309
|
-
setAdLoadState("complete");
|
|
310
|
-
setErrorMessage(error);
|
|
311
|
-
}
|
|
312
|
-
};
|
|
313
|
-
const loadState = {
|
|
314
|
-
isInitial: adLoadState === "initial",
|
|
315
|
-
isLoading: adLoadState === "loading",
|
|
316
|
-
isComplete: adLoadState === "complete",
|
|
317
|
-
isError: adLoadState === "error"
|
|
318
|
-
};
|
|
319
|
-
useEffect2(() => {
|
|
320
|
-
loadAd();
|
|
321
|
-
}, []);
|
|
322
|
-
return [adData, errorMessage, loadState];
|
|
323
|
-
}
|
|
324
|
-
var useAdViewController_default = useAdViewController;
|
|
325
|
-
|
|
326
|
-
// src/AdViewUnit/AdViewUnit.client.tsx
|
|
327
|
-
function AdViewUnitClient({
|
|
328
|
-
unitId,
|
|
329
|
-
format,
|
|
330
|
-
children,
|
|
331
|
-
onDefault = () => null,
|
|
332
|
-
...config
|
|
333
|
-
}) {
|
|
334
|
-
const [response, error, loadState] = useAdViewController_default(
|
|
335
|
-
config,
|
|
336
|
-
unitId,
|
|
337
|
-
format
|
|
338
|
-
);
|
|
339
|
-
const responseGroup = error ? null : response?.groups?.[0];
|
|
340
|
-
const customTracker = responseGroup?.custom_tracker ?? {};
|
|
341
|
-
const groupItems = responseGroup?.items;
|
|
342
|
-
if (groupItems && groupItems?.length) {
|
|
343
|
-
return groupItems.map(({ tracker, ...data }) => {
|
|
344
|
-
return /* @__PURE__ */ React8.createElement(AdViewUnitTracking_default, { key: data.id, ...tracker }, /* @__PURE__ */ React8.createElement(
|
|
345
|
-
AdViewUnitWrapper_client_default,
|
|
346
|
-
{
|
|
347
|
-
state: loadState,
|
|
348
|
-
error,
|
|
349
|
-
data,
|
|
350
|
-
onDefault
|
|
351
|
-
},
|
|
352
|
-
children
|
|
353
|
-
));
|
|
354
|
-
});
|
|
355
|
-
}
|
|
356
|
-
return /* @__PURE__ */ React8.createElement(AdViewUnitTracking_default, { ...customTracker }, /* @__PURE__ */ React8.createElement(
|
|
357
|
-
AdViewUnitWrapper_client_default,
|
|
358
|
-
{
|
|
359
|
-
state: loadState,
|
|
360
|
-
error,
|
|
361
|
-
onDefault
|
|
362
|
-
},
|
|
363
|
-
children
|
|
364
|
-
));
|
|
365
|
-
}
|
|
366
|
-
var AdViewUnit_client_default = AdViewUnitClient;
|
|
368
|
+
var AdViewUnitProxyTemplate_default = AdViewUnitProxyTemplate;
|
|
367
369
|
export {
|
|
368
|
-
|
|
369
|
-
|
|
370
|
+
AdViewProvider_default as AdViewProvider,
|
|
371
|
+
AdViewUnitBannerTemplate_default as AdViewUnitBannerTemplate,
|
|
372
|
+
AdViewUnit_client_default as AdViewUnitClient,
|
|
373
|
+
AdViewUnitDefaultTemplate_default as AdViewUnitDefaultTemplate,
|
|
374
|
+
AdViewUnitNativeTemplate_default as AdViewUnitNativeTemplate,
|
|
375
|
+
AdViewUnitProxyTemplate_default as AdViewUnitProxyTemplate,
|
|
376
|
+
AdViewUnitTemplate_default as AdViewUnitTemplate,
|
|
377
|
+
AdViewUnitBannerTemplate_default as BannerTemplate,
|
|
378
|
+
AdViewUnitDefaultTemplate_default as DefaultTemplate,
|
|
379
|
+
AdViewUnitNativeTemplate_default as NativeTemplate,
|
|
370
380
|
AdViewProvider_default as Provider,
|
|
371
|
-
|
|
372
|
-
|
|
381
|
+
AdViewUnitProxyTemplate_default as ProxyTemplate,
|
|
382
|
+
AdViewUnitTemplate_default as Template,
|
|
373
383
|
AdViewUnit_client_default as Unit
|
|
374
384
|
};
|
|
375
385
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/AdViewUnit/AdViewProvider.tsx","../src/AdViewUnit/AdViewUnit.client.tsx","../src/AdViewUnit/AdViewUnitTracking.tsx","../src/AdViewUnit/AdViewUnitWrapper.client.tsx","../src/AdViewUnit/AdViewUnitNative.tsx","../src/AdViewUnit/AdViewUnitProxy.tsx","../src/AdViewUnit/AdViewUnitBanner.tsx","../src/AdViewUnit/AdViewUnitTypeSwitch.tsx","../src/AdViewUnit/useAdViewController.ts"],"sourcesContent":["'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","'use client';\n\nimport React from 'react';\nimport { AdViewUnitClientChildren, AdViewUnitPropsBase } from '../types';\nimport AdViewUnitTracking from './AdViewUnitTracking';\nimport AdViewUnitWrapperClient from './AdViewUnitWrapper.client';\nimport useAdViewController from './useAdViewController';\n\nexport type AdViewUnitClientProps = AdViewUnitPropsBase & {\n children?: AdViewUnitClientChildren;\n};\n\nfunction AdViewUnitClient({\n unitId,\n format,\n children,\n onDefault = () => null,\n ...config\n}: AdViewUnitClientProps) {\n const [response, error, loadState] = useAdViewController(\n config,\n unitId,\n format,\n );\n const responseGroup = error ? null : response?.groups?.[0];\n const customTracker = responseGroup?.custom_tracker ?? {};\n const groupItems = responseGroup?.items;\n\n if (groupItems && groupItems?.length) {\n return groupItems.map(({ tracker, ...data }) => {\n return (\n <AdViewUnitTracking key={data.id} {...tracker}>\n <AdViewUnitWrapperClient\n state={loadState}\n error={error}\n data={data}\n onDefault={onDefault}\n >\n {children}\n </AdViewUnitWrapperClient>\n </AdViewUnitTracking>\n );\n });\n }\n\n return (\n <AdViewUnitTracking {...customTracker}>\n <AdViewUnitWrapperClient\n state={loadState}\n error={error}\n onDefault={onDefault}\n >\n {children}\n </AdViewUnitWrapperClient>\n </AdViewUnitTracking>\n );\n}\n\nexport default AdViewUnitClient;\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};\n\nfunction AdViewUnitTracking({\n impressions,\n views,\n clicks,\n children,\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 <div ref={wrapperRef}>{children}</div>;\n}\n\nexport default AdViewUnitTracking;\n","'use client';\n\nimport React from 'react';\nimport AdViewUnitTypeSwitch from './AdViewUnitTypeSwitch';\nimport {\n AdViewUnitClientChildren,\n AdViewUnitClientChildrenProps,\n AdViewUnitDefault,\n} from '../types';\n\nexport type AdViewUnitWrapperClientProps = AdViewUnitClientChildrenProps & {\n children?: AdViewUnitClientChildren;\n onDefault: AdViewUnitDefault;\n};\n\nfunction AdViewUnitWrapperClient({\n data,\n state,\n error,\n children,\n onDefault,\n}: AdViewUnitWrapperClientProps) {\n const { isLoading, isError } = state;\n const isChildrenReactNode = React.isValidElement(children);\n const isChildrenFunction = typeof children === 'function';\n\n if (isChildrenReactNode) {\n return React.cloneElement(children, {\n data,\n state,\n error,\n onDefault,\n });\n }\n\n if (isChildrenFunction) {\n return children({\n data,\n state,\n error,\n onDefault,\n });\n }\n\n if (isLoading) {\n return null;\n }\n\n if (!children && !isError && data) {\n return <AdViewUnitTypeSwitch data={data} onDefault={onDefault} />;\n }\n\n if (React.isValidElement(onDefault)) {\n return React.cloneElement(onDefault);\n }\n\n if (typeof onDefault === 'function') {\n return onDefault();\n }\n\n return null;\n}\n\nexport default AdViewUnitWrapperClient;\n","import { getAssetByName, getPrepareURL, getSrcSetCSSThumbs } from '@adview/core/utils';\nimport React from 'react';\nimport { AdViewDataClient, AdViewStyleTokensNative } from '../types';\n\ntype AdViewUnitNativeProps = AdViewDataClient & {\n classNames?: AdViewStyleTokensNative;\n};\n\nfunction AdViewUnitNative({\n assets,\n fields,\n url,\n classNames,\n}: AdViewUnitNativeProps) {\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\nexport default AdViewUnitNative;\n","import React from 'react';\nimport { AdViewDataClient, AdViewStyleTokensNative } from '../types';\n\ntype AdViewUnitProxyProps = AdViewDataClient & {\n classNames?: AdViewStyleTokensNative;\n};\n\nfunction AdViewUnitProxy({\n // assets,\n fields,\n url,\n}: AdViewUnitProxyProps) {\n const iframeSrc = fields?.url || url;\n\n if (!iframeSrc) {\n return null;\n }\n\n return (\n <iframe\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%' }}\n src={iframeSrc}\n ></iframe>\n );\n}\n\nexport default AdViewUnitProxy;\n","import { getAssetByName, getPrepareURL, getSrcSetCSSThumbs } from '@adview/core/utils';\nimport React from 'react';\nimport { AdViewDataClient, AdViewStyleTokensNative } from '../types';\n\ntype AdViewUnitBannerProps = AdViewDataClient & {\n classNames?: AdViewStyleTokensNative;\n};\n\nfunction AdViewUnitBanner({ assets, url }: AdViewUnitBannerProps) {\n const asset = getAssetByName('main', assets);\n\n return (\n <center>\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={getPrepareURL(url)}\n className=\"banner\"\n style={{ fontSize: 0 }}\n >\n {asset && (\n <img\n alt=\"main\"\n src={asset.path}\n srcSet={asset.thumbs ? getSrcSetCSSThumbs(asset.thumbs) : ''}\n />\n )}\n </a>\n </center>\n );\n}\n\nexport default AdViewUnitBanner;\n","import {\n AdViewDataClient,\n AdViewStyleTokens,\n AdViewUnitDefault,\n} from '../types';\nimport AdViewUnitNative from './AdViewUnitNative';\nimport AdViewUnitProxy from './AdViewUnitProxy';\nimport AdViewUnitBanner from './AdViewUnitBanner';\nimport React from 'react';\n\ntype AdViewUnitDefaultProps = {\n data?: AdViewDataClient;\n classNames?: AdViewStyleTokens;\n onDefault?: AdViewUnitDefault;\n};\n\nfunction AdViewUnitTypeSwitch({\n data,\n classNames,\n onDefault,\n}: AdViewUnitDefaultProps) {\n switch (data?.type) {\n case 'native':\n return <AdViewUnitNative {...data} classNames={classNames?.native} />;\n case 'proxy':\n return <AdViewUnitProxy {...data} classNames={classNames?.proxy} />;\n case 'banner':\n return <AdViewUnitBanner {...data} classNames={classNames?.banner} />;\n default:\n if (React.isValidElement(onDefault)) {\n return React.cloneElement(onDefault);\n }\n\n if (typeof onDefault === 'function') {\n return onDefault();\n }\n\n return null;\n }\n}\n\nexport default AdViewUnitTypeSwitch;\n","'use client';\n\nimport { AdViewData } from '@adview/core/typings';\nimport { adViewFetcher, getAdRequestUrl, 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 format?: 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 requestUrl = getAdRequestUrl(baseConfig, unitId, format);\n const loadAd = async () => {\n setAdLoadState('loading');\n\n try {\n console.log('Requesting ad data from:', adViewFetcher, 'with URL:', requestUrl);\n const response = await adViewFetcher(requestUrl, baseConfig.defaultAdData);\n console.log('AdViewController response:', response);\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 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 }, []);\n\n return [adData, errorMessage, loadState];\n}\n\nexport default useAdViewController;\n"],"mappings":";AAEA,OAAO,SAAS,qBAAqB;AAK9B,IAAM,wBAAwB;AAAA,EACnC,CAAC;AACH;AAMA,IAAM,iBAAiB,CAAC,EAAE,UAAU,GAAG,MAAM,MAA2B;AACtE,SACE,oCAAC,sBAAsB,UAAtB,EAA+B,OAAO,SACpC,QACH;AAEJ;AAEA,IAAO,yBAAQ;;;ACrBf,OAAOA,YAAW;;;ACAlB,SAAS,kCAAkC;AAC3C,OAAOC,UAAS,aAAa,WAAW,SAAS,cAAc;AAS/D,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA4B;AAC1B,QAAM,WAAW,OAAO,WAAW;AACnC,QAAM,aAAa,OAAuB,IAAI;AAC9C,QAAM,oCAAoC;AAAA,IACxC,MAAM,2BAA2B,WAAW;AAAA,IAC5C,CAAC,WAAW;AAAA,EACd;AACA,QAAM,kCAAkC;AAAA,IACtC,CAAC,YAAyC;AACxC,cAAQ,QAAQ,WAAS;AACvB,YAAI,MAAM,gBAAgB;AACxB,qCAA2B,KAAK;AAChC,oCAA0B,UAAU,WAAW,OAAQ;AAAA,QACzD;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,CAAC,KAAK;AAAA,EACR;AACA,QAAM,2BAA2B,QAAqC,MAAM;AAC1E,WAAO,CAAC,WACJ,IAAI,qBAAqB,+BAA+B,IACxD;AAAA,EACN,GAAG,CAAC,UAAU,+BAA+B,CAAC;AAC9C,QAAM,sBAAsB,YAAY,MAAM;AAC5C,+BAA2B,MAAM;AAEjC,eAAW,SAAS,oBAAoB,SAAS,mBAAmB;AAAA,EACtE,GAAG,CAAC,MAAM,CAAC;AAEX,YAAU,MAAM;AACd,QAAI,WAAW,WAAW,0BAA0B;AAClD,wCAAkC;AAClC,iBAAW,SAAS,iBAAiB,SAAS,mBAAmB;AACjE,gCAA0B,QAAQ,WAAW,OAAO;AAEpD,aAAO,MAAM;AACX,mBAAW,SAAS,oBAAoB,SAAS,mBAAmB;AACpE,YAAI,WAAW;AACb,oCAA0B,UAAU,WAAW,OAAO;AAAA,MAC1D;AAAA,IACF;AAEA,WAAO,MAAM;AAAA,IAAC;AAAA,EAChB,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,SAAO,gBAAAA,OAAA,cAAC,SAAI,KAAK,cAAa,QAAS;AACzC;AAEA,IAAO,6BAAQ;;;ACnEf,OAAOC,YAAW;;;ACFlB,SAAS,gBAAgB,eAAe,0BAA0B;AAClE,OAAOC,YAAW;AAOlB,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA0B;AACxB,QAAM,QAAQ,eAAe,QAAQ,MAAM;AAE3C,MAAI,CAAC,KAAK;AACR,WAAO;AAAA,EACT;AAEA,SACE,gBAAAA,OAAA,cAAC,SAAI,WAAW,YAAY,aAC1B,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,QAAO;AAAA,MACP,KAAI;AAAA,MACJ,MAAM,cAAc,GAAG;AAAA,MACvB,WAAW,YAAY;AAAA;AAAA,IAEtB,SACC,gBAAAA,OAAA;AAAA,MAAC;AAAA;AAAA,QACC,KAAK,QAAQ;AAAA,QACb,OAAO,QAAQ;AAAA,QACf,KAAK,MAAM;AAAA,QACX,QAAQ,MAAM,SAAS,mBAAmB,MAAM,MAAM,IAAI;AAAA,QAC1D,WAAW,YAAY;AAAA,QACvB,OAAO,EAAE,WAAW,SAAS,OAAO,QAAQ,QAAQ,OAAO;AAAA;AAAA,IAC7D;AAAA,EAEJ,GACA,gBAAAA,OAAA,cAAC,SAAI,WAAW,YAAY,SACzB,QAAQ,SACP,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,QAAO;AAAA,MACP,KAAI;AAAA,MACJ,MAAM,cAAc,GAAG;AAAA,MACvB,cAAW;AAAA,MACX,WAAW,YAAY;AAAA;AAAA,IAEtB,OAAO;AAAA,EACV,GAED,QAAQ,eACP,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,QAAO;AAAA,MACP,KAAI;AAAA,MACJ,MAAM,cAAc,GAAG;AAAA,MACvB,cAAW;AAAA,MACX,WAAW,YAAY;AAAA;AAAA,IAEtB,OAAO;AAAA,EACV,GAED,QAAQ,aACP,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,QAAO;AAAA,MACP,KAAI;AAAA,MACJ,MAAM,cAAc,GAAG;AAAA,MACvB,cAAW;AAAA,MACX,WAAW,YAAY;AAAA;AAAA,IAEtB,OAAO;AAAA,EACV,GAED,QAAQ,SACP,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,QAAO;AAAA,MACP,KAAI;AAAA,MACJ,MAAM,cAAc,GAAG;AAAA,MACvB,cAAW;AAAA,MACX,WAAW,YAAY;AAAA;AAAA,IAEtB,OAAO;AAAA,EACV,GAED,QAAQ,OACP,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,QAAO;AAAA,MACP,KAAI;AAAA,MACJ,MAAM,cAAc,GAAG;AAAA,MACvB,cAAW;AAAA,MACX,WAAW,YAAY;AAAA;AAAA,IAEtB,QAAQ;AAAA,EACX,CAEJ,CACF;AAEJ;AAEA,IAAO,2BAAQ;;;ACpGf,OAAOC,YAAW;AAOlB,SAAS,gBAAgB;AAAA;AAAA,EAEvB;AAAA,EACA;AACF,GAAyB;AACvB,QAAM,YAAY,QAAQ,OAAO;AAEjC,MAAI,CAAC,WAAW;AACd,WAAO;AAAA,EACT;AAEA,SACE,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,aAAY;AAAA,MACZ,aAAa;AAAA,MACb,cAAc;AAAA,MACd,mBAAmB;AAAA,MACnB,WAAU;AAAA,MACV,iBAAiB;AAAA,MACjB,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAO;AAAA,MACvC,KAAK;AAAA;AAAA,EACN;AAEL;AAEA,IAAO,0BAAQ;;;AClCf,SAAS,kBAAAC,iBAAgB,iBAAAC,gBAAe,sBAAAC,2BAA0B;AAClE,OAAOC,YAAW;AAOlB,SAAS,iBAAiB,EAAE,QAAQ,IAAI,GAA0B;AAChE,QAAM,QAAQH,gBAAe,QAAQ,MAAM;AAE3C,SACE,gBAAAG,OAAA,cAAC,gBACC,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,QAAO;AAAA,MACP,KAAI;AAAA,MACJ,MAAMF,eAAc,GAAG;AAAA,MACvB,WAAU;AAAA,MACV,OAAO,EAAE,UAAU,EAAE;AAAA;AAAA,IAEpB,SACC,gBAAAE,OAAA;AAAA,MAAC;AAAA;AAAA,QACC,KAAI;AAAA,QACJ,KAAK,MAAM;AAAA,QACX,QAAQ,MAAM,SAASD,oBAAmB,MAAM,MAAM,IAAI;AAAA;AAAA,IAC5D;AAAA,EAEJ,CACF;AAEJ;AAEA,IAAO,2BAAQ;;;ACxBf,OAAOE,YAAW;AAQlB,SAAS,qBAAqB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AACF,GAA2B;AACzB,UAAQ,MAAM,MAAM;AAAA,IAClB,KAAK;AACH,aAAO,gBAAAA,OAAA,cAAC,4BAAkB,GAAG,MAAM,YAAY,YAAY,QAAQ;AAAA,IACrE,KAAK;AACH,aAAO,gBAAAA,OAAA,cAAC,2BAAiB,GAAG,MAAM,YAAY,YAAY,OAAO;AAAA,IACnE,KAAK;AACH,aAAO,gBAAAA,OAAA,cAAC,4BAAkB,GAAG,MAAM,YAAY,YAAY,QAAQ;AAAA,IACrE;AACE,UAAIA,OAAM,eAAe,SAAS,GAAG;AACnC,eAAOA,OAAM,aAAa,SAAS;AAAA,MACrC;AAEA,UAAI,OAAO,cAAc,YAAY;AACnC,eAAO,UAAU;AAAA,MACnB;AAEA,aAAO;AAAA,EACX;AACF;AAEA,IAAO,+BAAQ;;;AJ1Bf,SAAS,wBAAwB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAiC;AAC/B,QAAM,EAAE,WAAW,QAAQ,IAAI;AAC/B,QAAM,sBAAsBC,OAAM,eAAe,QAAQ;AACzD,QAAM,qBAAqB,OAAO,aAAa;AAE/C,MAAI,qBAAqB;AACvB,WAAOA,OAAM,aAAa,UAAU;AAAA,MAClC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAEA,MAAI,oBAAoB;AACtB,WAAO,SAAS;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAEA,MAAI,WAAW;AACb,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,YAAY,CAAC,WAAW,MAAM;AACjC,WAAO,gBAAAA,OAAA,cAAC,gCAAqB,MAAY,WAAsB;AAAA,EACjE;AAEA,MAAIA,OAAM,eAAe,SAAS,GAAG;AACnC,WAAOA,OAAM,aAAa,SAAS;AAAA,EACrC;AAEA,MAAI,OAAO,cAAc,YAAY;AACnC,WAAO,UAAU;AAAA,EACnB;AAEA,SAAO;AACT;AAEA,IAAO,mCAAQ;;;AK5Df,SAAS,eAAe,iBAAiB,wBAAwB;AACjE,SAAS,YAAY,aAAAC,YAAW,gBAAgB;AAMhD,SAAS,oBACP,cACA,QACA,QAC0B;AAC1B,QAAM,CAAC,aAAa,cAAc,IAAI,SAAiB,SAAS;AAChE,QAAM,CAAC,QAAQ,SAAS,IAAI,SAA4B,IAAI;AAC5D,QAAM,CAAC,cAAc,eAAe,IAAI,SAAuB,IAAI;AACnE,QAAM,eAAe,WAAW,qBAAqB;AACrD,QAAM,aAAa,iBAAiB,EAAE,GAAG,cAAc,GAAG,aAAa,CAAC;AACxE,QAAM,aAAa,gBAAgB,YAAY,QAAQ,MAAM;AAC7D,QAAM,SAAS,YAAY;AACzB,mBAAe,SAAS;AAExB,QAAI;AACF,cAAQ,IAAI,4BAA4B,eAAe,aAAa,UAAU;AAC9E,YAAM,WAAW,MAAM,cAAc,YAAY,WAAW,aAAa;AACzE,cAAQ,IAAI,8BAA8B,QAAQ;AAElD,UAAI,oBAAoB,OAAO;AAC7B,uBAAe,OAAO;AACtB,wBAAgB,QAAQ;AAAA,MAC1B,OAAO;AACL,kBAAU,QAAQ;AAAA,MACpB;AACA,qBAAe,UAAU;AAAA,IAC3B,SAAS,OAAO;AACd,qBAAe,OAAO;AACtB,qBAAe,UAAU;AACzB,sBAAgB,KAAc;AAAA,IAChC;AAAA,EACF;AACA,QAAM,YAAY;AAAA,IAChB,WAAW,gBAAgB;AAAA,IAC3B,WAAW,gBAAgB;AAAA,IAC3B,YAAY,gBAAgB;AAAA,IAC5B,SAAS,gBAAgB;AAAA,EAC3B;AAEA,EAAAC,WAAU,MAAM;AACd,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AAEL,SAAO,CAAC,QAAQ,cAAc,SAAS;AACzC;AAEA,IAAO,8BAAQ;;;AP5Cf,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY,MAAM;AAAA,EAClB,GAAG;AACL,GAA0B;AACxB,QAAM,CAAC,UAAU,OAAO,SAAS,IAAI;AAAA,IACnC;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,QAAM,gBAAgB,QAAQ,OAAO,UAAU,SAAS,CAAC;AACzD,QAAM,gBAAgB,eAAe,kBAAkB,CAAC;AACxD,QAAM,aAAa,eAAe;AAElC,MAAI,cAAc,YAAY,QAAQ;AACpC,WAAO,WAAW,IAAI,CAAC,EAAE,SAAS,GAAG,KAAK,MAAM;AAC9C,aACE,gBAAAC,OAAA,cAAC,8BAAmB,KAAK,KAAK,IAAK,GAAG,WACpC,gBAAAA,OAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,UACP;AAAA,UACA;AAAA,UACA;AAAA;AAAA,QAEC;AAAA,MACH,CACF;AAAA,IAEJ,CAAC;AAAA,EACH;AAEA,SACE,gBAAAA,OAAA,cAAC,8BAAoB,GAAG,iBACtB,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP;AAAA,MACA;AAAA;AAAA,IAEC;AAAA,EACH,CACF;AAEJ;AAEA,IAAO,4BAAQ;","names":["React","React","React","React","React","getAssetByName","getPrepareURL","getSrcSetCSSThumbs","React","React","React","useEffect","useEffect","React"]}
|
|
1
|
+
{"version":3,"sources":["../src/AdViewUnit/AdViewProvider.tsx","../src/AdViewUnit/AdViewUnit.client.tsx","../src/AdViewUnit/AdViewUnitTemplate.tsx","../src/AdViewUnit/AdViewUnitTracking.tsx","../src/AdViewUnit/useAdViewController.ts","../src/AdViewUnit/AdViewUnitBannerTemplate.tsx","../src/AdViewUnit/AdViewUnitDefaultTemplate.tsx","../src/AdViewUnit/AdViewUnitNativeTemplate.tsx","../src/AdViewUnit/AdViewUnitProxyTemplate.tsx"],"sourcesContent":["'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","'use client';\n\nimport React from 'react';\nimport { AdViewUnitClientChildren, AdViewUnitPropsBase } from '../types';\nimport { renderAnyTemplates } from './AdViewUnitTemplate';\nimport AdViewUnitTracking from './AdViewUnitTracking';\nimport useAdViewController from './useAdViewController';\n\nexport type AdViewUnitClientProps = AdViewUnitPropsBase & {\n children?: AdViewUnitClientChildren;\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 format,\n children,\n ...config\n}: AdViewUnitClientProps) {\n const [response, error, loadState] = useAdViewController(\n config,\n unitId,\n format,\n );\n const responseGroup = error ? null : response?.groups?.[0];\n const customTracker = responseGroup?.custom_tracker ?? {};\n const groupItems = responseGroup?.items;\n\n if (groupItems && groupItems?.length > 0) {\n return groupItems.map(({ tracker, ...data }) => {\n return (\n <AdViewUnitTracking key={data.id} {...tracker}>\n {renderAnyTemplates(children, {data, type: data.type || 'default', error, state: loadState})}\n </AdViewUnitTracking>\n );\n });\n }\n\n return (\n <AdViewUnitTracking {...customTracker}>\n {renderAnyTemplates(children, {data: null, type: 'default', error, state: loadState})}\n </AdViewUnitTracking>\n );\n}\n\nexport default AdViewUnitClient;\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 { AdViewUnitClientChildrenProps, AdViewUnitTemplateProps, AdViewUnitTemplateTypeProps } from '../types';\n\n// TemplateListRender is a function that takes a list of TemplateType and returns a React element\nexport type TemplateListRender = (tmpls: TemplateElement[]) => 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 = (props: AdViewUnitTemplateTypeProps) => React.ReactNode | React.ReactElement;\n\n// templateFromListRender is a function that takes a list of TemplateType and returns a React element\nexport const templateFromListRender = (tmpls: TemplateElement[], data: AdViewUnitTemplateTypeProps, wrap?: (children: React.ReactNode) => React.ReactNode): JSX.Element | React.ReactElement => {\n let renderedRemplates = tmpls.map((tmpl, index) => {\n let tmp = renderTemplate(tmpl, data);\n return !!tmp && React.isValidElement(tmp)\n ? <React.Fragment key={index}>{!!wrap ? wrap(tmp) : tmp}</React.Fragment>\n : null;\n }).filter(it => !!it);\n\n if (!renderedRemplates.length) {\n renderedRemplates = tmpls.map((tmpl, index) => {\n let tmp = renderTemplate(tmpl, {...data, type: 'default'});\n return !!tmp && React.isValidElement(tmp)\n ? <React.Fragment key={index}>{!!wrap ? wrap(tmp) : tmp}</React.Fragment>\n : null;\n }).filter(it => !!it);\n }\n\n return (<>{renderedRemplates}</>);\n};\n\n// renderTemplate is a function that takes a TemplateType or a function and returns a React node\nexport const renderTemplate = (tmpl: TemplateElement | TemplateTypeFunction, data: AdViewUnitTemplateTypeProps): 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 const { type, children } = (tmpl as TemplateElement).props;\n console.log('=====>\\nrenderTemplate: React element detected, type:', type, 'data:', data.type, data.type !== type);\n // If the type does not match, return null\n if (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 console.log('CLONE ELEMENT', tmpl);\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 = (tmpls: TemplateElement[], data: AdViewUnitTemplateTypeProps, listRender?: TemplateListRender): React.ReactNode | React.ReactElement | JSX.Element => {\n return listRender ? listRender(tmpls) : templateFromListRender(tmpls, data);\n};\n\nexport const renderAnyTemplates = (tmpls: any, data: AdViewUnitTemplateTypeProps, listRender?: TemplateListRender): 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 = ({ type, children, ...data }: AdViewUnitTemplateProps) => {\n const tmplProps: AdViewUnitTemplateTypeProps = {\n type,\n ...data,\n };\n\n // If children is a function, call it with the data\n if (typeof children === 'function') {\n return children(tmplProps as AdViewUnitClientChildrenProps) 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};\n\nfunction AdViewUnitTracking({\n impressions,\n views,\n clicks,\n children,\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 <div ref={wrapperRef}>{children}</div>;\n}\n\nexport default AdViewUnitTracking;\n","'use client';\n\nimport { AdViewData } from '@adview/core/typings';\nimport { adViewFetcher, getAdRequestUrl, 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 format?: string | 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 requestUrl = getAdRequestUrl(baseConfig, unitId,\n typeof format === 'string' ? format : format?.join(',') || '');\n\n const loadAd = async () => {\n setAdLoadState('loading');\n\n try {\n console.log('Requesting ad data from:', adViewFetcher, 'with URL:', requestUrl);\n const response = await adViewFetcher(requestUrl, baseConfig.defaultAdData);\n console.log('AdViewController response:', response);\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(() => {loadAd()}, []);\n\n return [adData, errorMessage, loadState];\n}\n\nexport default useAdViewController;\n","import { getAssetByName, getPrepareURL, getSrcSetCSSThumbs } from '@adview/core/utils';\nimport React from 'react';\nimport { AdViewUnitTemplateTypeProps } from '../types';\n\ntype AdViewUnitBannerTemplateProps = Omit<AdViewUnitTemplateTypeProps, 'type'> & {\n type?: 'banner';\n className?: string;\n style?: React.CSSProperties;\n};\n\nfunction AdViewUnitBannerTemplate({className=\"banner\", style, data, state}: AdViewUnitBannerTemplateProps) {\n if (!data || !data.assets || !data.assets.length || !state?.isComplete) {\n return null;\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 />\n )}\n </a>\n );\n}\n\nexport default AdViewUnitBannerTemplate;\n","import React from \"react\";\nimport { AdViewOptionalDataProps, AdViewUnitTemplateTypeProps } from \"../types\";\n\ntype AdViewUnitDefaultTemplateProps = Omit<AdViewUnitTemplateTypeProps, 'type'> & {\n type?: 'default';\n children?: React.ReactNode | ((props: AdViewOptionalDataProps) => React.ReactNode);\n};\n\nfunction AdViewUnitDefaultTemplate({ type='default', data, state, children, ...props }: AdViewUnitDefaultTemplateProps) {\n if (typeof children === 'function') {\n return <>{children({ data, state, ...props })}</>;\n }\n\n return (\n children ? <>{children}</> : (\n <div style={{ padding: '1rem', textAlign: 'center', color: '#666' }}>\n <p>🔄 Default content for ad unit</p>\n <p>Data: {JSON.stringify(data)}</p>\n <p>State: {JSON.stringify(state)}</p>\n </div>\n )\n );\n}\n\nAdViewUnitDefaultTemplate.defaultProps = {\n type: 'default',\n children: null,\n};\n\nexport default AdViewUnitDefaultTemplate;\n","import { getAssetByName, getPrepareURL, getSrcSetCSSThumbs } from '@adview/core/utils';\nimport React from 'react';\nimport { AdViewStyleTokensNative, AdViewUnitTemplateTypeProps } from '../types';\n\ntype AdViewUnitNativeTemplateProps = Omit<AdViewUnitTemplateTypeProps, 'type'> & {\n type?: 'native';\n classNames?: AdViewStyleTokensNative;\n};\n\nfunction AdViewUnitNativeTemplate({classNames, data, state}: AdViewUnitNativeTemplateProps) {\n if (!data || !data.assets || !data.assets.length || !state?.isComplete) {\n return null;\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\nexport default AdViewUnitNativeTemplate;\n","import React from 'react';\nimport { AdViewUnitTemplateTypeProps } from '../types';\n\ntype AdViewUnitProxyTemplateProps = Omit<AdViewUnitTemplateTypeProps, 'type'> & {\n type?: 'proxy';\n className?: string;\n style?: React.CSSProperties;\n};\n\nfunction AdViewUnitProxyTemplate({className, style, data, state}: AdViewUnitProxyTemplateProps) {\n if (!data || !state?.isComplete) {\n return null;\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\nexport default AdViewUnitProxyTemplate;\n"],"mappings":"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","names":["React","React","React","useEffect","useEffect","React","React","React","getAssetByName","getPrepareURL","getSrcSetCSSThumbs","React","React"]}
|