@adsterra-ad/vue 0.1.2 → 0.1.3
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/index.cjs +64 -10
- package/dist/index.d.cts +36 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.js +64 -10
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -37,6 +37,8 @@ var AdBanner = (0, import_vue.defineComponent)({
|
|
|
37
37
|
adLabel: { type: String, default: "Advertisement" },
|
|
38
38
|
showAdLabel: { type: Boolean, default: true },
|
|
39
39
|
adLabelPosition: { type: String, default: "top-left" },
|
|
40
|
+
showFallbackPlaceholder: { type: Boolean, default: false },
|
|
41
|
+
fallbackPlaceholderText: { type: String, default: "Test advertisement" },
|
|
40
42
|
className: { type: String, default: "" }
|
|
41
43
|
},
|
|
42
44
|
emits: ["load", "error"],
|
|
@@ -45,9 +47,14 @@ var AdBanner = (0, import_vue.defineComponent)({
|
|
|
45
47
|
const adLoaded = (0, import_vue.ref)(false);
|
|
46
48
|
const adFailed = (0, import_vue.ref)(false);
|
|
47
49
|
const activeProvider = (0, import_vue.ref)(props.provider);
|
|
48
|
-
(0, import_vue.watch)(
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
(0, import_vue.watch)(
|
|
51
|
+
() => [props.provider, props.format, props.adKey],
|
|
52
|
+
([nextProvider]) => {
|
|
53
|
+
activeProvider.value = nextProvider;
|
|
54
|
+
adLoaded.value = false;
|
|
55
|
+
adFailed.value = false;
|
|
56
|
+
}
|
|
57
|
+
);
|
|
51
58
|
const config = (0, import_vue.computed)(() => (0, import_core.resolveAdConfig)(props.format, props.adKey || void 0));
|
|
52
59
|
const srcDoc = (0, import_vue.computed)(
|
|
53
60
|
() => (0, import_core.buildSrcDoc)({ format: props.format, provider: activeProvider.value, config: config.value, bannerId })
|
|
@@ -80,7 +87,7 @@ var AdBanner = (0, import_vue.defineComponent)({
|
|
|
80
87
|
width: "100%"
|
|
81
88
|
}));
|
|
82
89
|
const visibilityStyle = (0, import_vue.computed)(
|
|
83
|
-
() => adLoaded.value ? { opacity: "1", transform: "scale(1)" } : {
|
|
90
|
+
() => adLoaded.value || adFailed.value && props.showFallbackPlaceholder ? { opacity: "1", transform: "scale(1)" } : {
|
|
84
91
|
opacity: "0",
|
|
85
92
|
transform: "scale(0.95)",
|
|
86
93
|
pointerEvents: "none",
|
|
@@ -106,18 +113,26 @@ var AdBanner = (0, import_vue.defineComponent)({
|
|
|
106
113
|
(0, import_vue.onMounted)(() => window.addEventListener("message", onMessage));
|
|
107
114
|
(0, import_vue.onUnmounted)(() => window.removeEventListener("message", onMessage));
|
|
108
115
|
return () => {
|
|
109
|
-
if (adFailed.value) return null;
|
|
116
|
+
if (adFailed.value && !props.showFallbackPlaceholder) return null;
|
|
110
117
|
const topLabel = props.showAdLabel && props.adLabelPosition.startsWith("top");
|
|
111
118
|
const bottomLabel = props.showAdLabel && props.adLabelPosition.startsWith("bottom");
|
|
119
|
+
const isPlaceholderVisible = adFailed.value && props.showFallbackPlaceholder;
|
|
112
120
|
return (0, import_vue.h)("div", { class: props.className, style: { ...wrapperStyle.value, ...visibilityStyle.value } }, [
|
|
113
121
|
topLabel ? (0, import_vue.h)("span", { style: labelStyle.value }, props.adLabel) : null,
|
|
114
122
|
(0, import_vue.h)("div", { "data-testid": "ad-banner", style: style.value }, [
|
|
115
|
-
(0, import_vue.h)("iframe", {
|
|
123
|
+
isPlaceholderVisible ? (0, import_vue.h)(FallbackPlaceholder, { format: props.format, text: props.fallbackPlaceholderText }) : (0, import_vue.h)("iframe", {
|
|
116
124
|
title: "Advertisement",
|
|
117
125
|
srcdoc: srcDoc.value,
|
|
126
|
+
width: "100%",
|
|
127
|
+
height: "100%",
|
|
118
128
|
frameborder: "0",
|
|
119
129
|
scrolling: "no",
|
|
120
|
-
sandbox: "allow-scripts allow-forms allow-same-origin allow-popups allow-modals"
|
|
130
|
+
sandbox: "allow-scripts allow-forms allow-same-origin allow-popups allow-modals",
|
|
131
|
+
style: {
|
|
132
|
+
display: "block",
|
|
133
|
+
width: "100%",
|
|
134
|
+
height: "100%"
|
|
135
|
+
}
|
|
121
136
|
})
|
|
122
137
|
]),
|
|
123
138
|
bottomLabel ? (0, import_vue.h)("span", { style: labelStyle.value }, props.adLabel) : null
|
|
@@ -134,14 +149,16 @@ var AdContainer = (0, import_vue.defineComponent)({
|
|
|
134
149
|
className: { type: String, default: "" },
|
|
135
150
|
adLabel: { type: String, default: "Advertisement" },
|
|
136
151
|
showAdLabel: { type: Boolean, default: true },
|
|
137
|
-
adLabelPosition: { type: String, default: "top-left" }
|
|
152
|
+
adLabelPosition: { type: String, default: "top-left" },
|
|
153
|
+
showFallbackPlaceholder: { type: Boolean, default: false },
|
|
154
|
+
fallbackPlaceholderText: { type: String, default: "Test advertisement" }
|
|
138
155
|
},
|
|
139
156
|
setup(props) {
|
|
140
157
|
const adLoaded = (0, import_vue.ref)(false);
|
|
141
158
|
const adFailed = (0, import_vue.ref)(false);
|
|
142
159
|
return () => {
|
|
143
|
-
if (adFailed.value) return null;
|
|
144
|
-
const containerVisibilityStyle = adLoaded.value ? { opacity: "1", transform: "scale(1)" } : {
|
|
160
|
+
if (adFailed.value && !props.showFallbackPlaceholder) return null;
|
|
161
|
+
const containerVisibilityStyle = adLoaded.value || adFailed.value && props.showFallbackPlaceholder ? { opacity: "1", transform: "scale(1)" } : {
|
|
145
162
|
opacity: "0",
|
|
146
163
|
transform: "scale(0.95)",
|
|
147
164
|
pointerEvents: "none",
|
|
@@ -159,6 +176,8 @@ var AdContainer = (0, import_vue.defineComponent)({
|
|
|
159
176
|
adLabel: props.adLabel,
|
|
160
177
|
showAdLabel: props.showAdLabel,
|
|
161
178
|
adLabelPosition: props.adLabelPosition,
|
|
179
|
+
showFallbackPlaceholder: props.showFallbackPlaceholder,
|
|
180
|
+
fallbackPlaceholderText: props.fallbackPlaceholderText,
|
|
162
181
|
onLoad: () => {
|
|
163
182
|
adLoaded.value = true;
|
|
164
183
|
},
|
|
@@ -170,6 +189,41 @@ var AdContainer = (0, import_vue.defineComponent)({
|
|
|
170
189
|
};
|
|
171
190
|
}
|
|
172
191
|
});
|
|
192
|
+
var FallbackPlaceholder = (0, import_vue.defineComponent)({
|
|
193
|
+
name: "FallbackPlaceholder",
|
|
194
|
+
props: {
|
|
195
|
+
format: { type: String, required: true },
|
|
196
|
+
text: { type: String, required: true }
|
|
197
|
+
},
|
|
198
|
+
setup(props) {
|
|
199
|
+
return () => (0, import_vue.h)(
|
|
200
|
+
"div",
|
|
201
|
+
{
|
|
202
|
+
role: "img",
|
|
203
|
+
"aria-label": `${props.text} placeholder`,
|
|
204
|
+
style: {
|
|
205
|
+
width: "100%",
|
|
206
|
+
height: "100%",
|
|
207
|
+
display: "flex",
|
|
208
|
+
flexDirection: "column",
|
|
209
|
+
alignItems: "center",
|
|
210
|
+
justifyContent: "center",
|
|
211
|
+
gap: "6px",
|
|
212
|
+
boxSizing: "border-box",
|
|
213
|
+
padding: "12px",
|
|
214
|
+
color: "#475569",
|
|
215
|
+
background: "repeating-linear-gradient(135deg, #f8fafc 0, #f8fafc 10px, #eef2f7 10px, #eef2f7 20px)",
|
|
216
|
+
textAlign: "center",
|
|
217
|
+
fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif'
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
[
|
|
221
|
+
(0, import_vue.h)("strong", { style: { fontSize: "13px", lineHeight: "1.2" } }, props.text),
|
|
222
|
+
(0, import_vue.h)("span", { style: { fontSize: "11px", lineHeight: "1.2" } }, props.format)
|
|
223
|
+
]
|
|
224
|
+
);
|
|
225
|
+
}
|
|
226
|
+
});
|
|
173
227
|
var index_default = AdBanner;
|
|
174
228
|
// Annotate the CommonJS export names for ESM import in node:
|
|
175
229
|
0 && (module.exports = {
|
package/dist/index.d.cts
CHANGED
|
@@ -29,6 +29,14 @@ declare const AdBanner: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
29
29
|
type: PropType<AdLabelPosition>;
|
|
30
30
|
default: string;
|
|
31
31
|
};
|
|
32
|
+
showFallbackPlaceholder: {
|
|
33
|
+
type: BooleanConstructor;
|
|
34
|
+
default: boolean;
|
|
35
|
+
};
|
|
36
|
+
fallbackPlaceholderText: {
|
|
37
|
+
type: StringConstructor;
|
|
38
|
+
default: string;
|
|
39
|
+
};
|
|
32
40
|
className: {
|
|
33
41
|
type: StringConstructor;
|
|
34
42
|
default: string;
|
|
@@ -60,6 +68,14 @@ declare const AdBanner: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
60
68
|
type: PropType<AdLabelPosition>;
|
|
61
69
|
default: string;
|
|
62
70
|
};
|
|
71
|
+
showFallbackPlaceholder: {
|
|
72
|
+
type: BooleanConstructor;
|
|
73
|
+
default: boolean;
|
|
74
|
+
};
|
|
75
|
+
fallbackPlaceholderText: {
|
|
76
|
+
type: StringConstructor;
|
|
77
|
+
default: string;
|
|
78
|
+
};
|
|
63
79
|
className: {
|
|
64
80
|
type: StringConstructor;
|
|
65
81
|
default: string;
|
|
@@ -73,6 +89,8 @@ declare const AdBanner: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
73
89
|
adLabel: string;
|
|
74
90
|
showAdLabel: boolean;
|
|
75
91
|
adLabelPosition: AdLabelPosition;
|
|
92
|
+
showFallbackPlaceholder: boolean;
|
|
93
|
+
fallbackPlaceholderText: string;
|
|
76
94
|
className: string;
|
|
77
95
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
78
96
|
declare const AdContainer: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
@@ -104,6 +122,14 @@ declare const AdContainer: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
104
122
|
type: PropType<AdLabelPosition>;
|
|
105
123
|
default: string;
|
|
106
124
|
};
|
|
125
|
+
showFallbackPlaceholder: {
|
|
126
|
+
type: BooleanConstructor;
|
|
127
|
+
default: boolean;
|
|
128
|
+
};
|
|
129
|
+
fallbackPlaceholderText: {
|
|
130
|
+
type: StringConstructor;
|
|
131
|
+
default: string;
|
|
132
|
+
};
|
|
107
133
|
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
108
134
|
[key: string]: any;
|
|
109
135
|
}> | null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
|
|
@@ -135,12 +161,22 @@ declare const AdContainer: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
135
161
|
type: PropType<AdLabelPosition>;
|
|
136
162
|
default: string;
|
|
137
163
|
};
|
|
164
|
+
showFallbackPlaceholder: {
|
|
165
|
+
type: BooleanConstructor;
|
|
166
|
+
default: boolean;
|
|
167
|
+
};
|
|
168
|
+
fallbackPlaceholderText: {
|
|
169
|
+
type: StringConstructor;
|
|
170
|
+
default: string;
|
|
171
|
+
};
|
|
138
172
|
}>> & Readonly<{}>, {
|
|
139
173
|
provider: AdProvider;
|
|
140
174
|
adKey: string;
|
|
141
175
|
adLabel: string;
|
|
142
176
|
showAdLabel: boolean;
|
|
143
177
|
adLabelPosition: AdLabelPosition;
|
|
178
|
+
showFallbackPlaceholder: boolean;
|
|
179
|
+
fallbackPlaceholderText: string;
|
|
144
180
|
className: string;
|
|
145
181
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
146
182
|
|
package/dist/index.d.ts
CHANGED
|
@@ -29,6 +29,14 @@ declare const AdBanner: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
29
29
|
type: PropType<AdLabelPosition>;
|
|
30
30
|
default: string;
|
|
31
31
|
};
|
|
32
|
+
showFallbackPlaceholder: {
|
|
33
|
+
type: BooleanConstructor;
|
|
34
|
+
default: boolean;
|
|
35
|
+
};
|
|
36
|
+
fallbackPlaceholderText: {
|
|
37
|
+
type: StringConstructor;
|
|
38
|
+
default: string;
|
|
39
|
+
};
|
|
32
40
|
className: {
|
|
33
41
|
type: StringConstructor;
|
|
34
42
|
default: string;
|
|
@@ -60,6 +68,14 @@ declare const AdBanner: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
60
68
|
type: PropType<AdLabelPosition>;
|
|
61
69
|
default: string;
|
|
62
70
|
};
|
|
71
|
+
showFallbackPlaceholder: {
|
|
72
|
+
type: BooleanConstructor;
|
|
73
|
+
default: boolean;
|
|
74
|
+
};
|
|
75
|
+
fallbackPlaceholderText: {
|
|
76
|
+
type: StringConstructor;
|
|
77
|
+
default: string;
|
|
78
|
+
};
|
|
63
79
|
className: {
|
|
64
80
|
type: StringConstructor;
|
|
65
81
|
default: string;
|
|
@@ -73,6 +89,8 @@ declare const AdBanner: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
73
89
|
adLabel: string;
|
|
74
90
|
showAdLabel: boolean;
|
|
75
91
|
adLabelPosition: AdLabelPosition;
|
|
92
|
+
showFallbackPlaceholder: boolean;
|
|
93
|
+
fallbackPlaceholderText: string;
|
|
76
94
|
className: string;
|
|
77
95
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
78
96
|
declare const AdContainer: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
@@ -104,6 +122,14 @@ declare const AdContainer: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
104
122
|
type: PropType<AdLabelPosition>;
|
|
105
123
|
default: string;
|
|
106
124
|
};
|
|
125
|
+
showFallbackPlaceholder: {
|
|
126
|
+
type: BooleanConstructor;
|
|
127
|
+
default: boolean;
|
|
128
|
+
};
|
|
129
|
+
fallbackPlaceholderText: {
|
|
130
|
+
type: StringConstructor;
|
|
131
|
+
default: string;
|
|
132
|
+
};
|
|
107
133
|
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
108
134
|
[key: string]: any;
|
|
109
135
|
}> | null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
|
|
@@ -135,12 +161,22 @@ declare const AdContainer: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
135
161
|
type: PropType<AdLabelPosition>;
|
|
136
162
|
default: string;
|
|
137
163
|
};
|
|
164
|
+
showFallbackPlaceholder: {
|
|
165
|
+
type: BooleanConstructor;
|
|
166
|
+
default: boolean;
|
|
167
|
+
};
|
|
168
|
+
fallbackPlaceholderText: {
|
|
169
|
+
type: StringConstructor;
|
|
170
|
+
default: string;
|
|
171
|
+
};
|
|
138
172
|
}>> & Readonly<{}>, {
|
|
139
173
|
provider: AdProvider;
|
|
140
174
|
adKey: string;
|
|
141
175
|
adLabel: string;
|
|
142
176
|
showAdLabel: boolean;
|
|
143
177
|
adLabelPosition: AdLabelPosition;
|
|
178
|
+
showFallbackPlaceholder: boolean;
|
|
179
|
+
fallbackPlaceholderText: string;
|
|
144
180
|
className: string;
|
|
145
181
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
146
182
|
|
package/dist/index.js
CHANGED
|
@@ -15,6 +15,8 @@ var AdBanner = defineComponent({
|
|
|
15
15
|
adLabel: { type: String, default: "Advertisement" },
|
|
16
16
|
showAdLabel: { type: Boolean, default: true },
|
|
17
17
|
adLabelPosition: { type: String, default: "top-left" },
|
|
18
|
+
showFallbackPlaceholder: { type: Boolean, default: false },
|
|
19
|
+
fallbackPlaceholderText: { type: String, default: "Test advertisement" },
|
|
18
20
|
className: { type: String, default: "" }
|
|
19
21
|
},
|
|
20
22
|
emits: ["load", "error"],
|
|
@@ -23,9 +25,14 @@ var AdBanner = defineComponent({
|
|
|
23
25
|
const adLoaded = ref(false);
|
|
24
26
|
const adFailed = ref(false);
|
|
25
27
|
const activeProvider = ref(props.provider);
|
|
26
|
-
watch(
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
watch(
|
|
29
|
+
() => [props.provider, props.format, props.adKey],
|
|
30
|
+
([nextProvider]) => {
|
|
31
|
+
activeProvider.value = nextProvider;
|
|
32
|
+
adLoaded.value = false;
|
|
33
|
+
adFailed.value = false;
|
|
34
|
+
}
|
|
35
|
+
);
|
|
29
36
|
const config = computed(() => resolveAdConfig(props.format, props.adKey || void 0));
|
|
30
37
|
const srcDoc = computed(
|
|
31
38
|
() => buildSrcDoc({ format: props.format, provider: activeProvider.value, config: config.value, bannerId })
|
|
@@ -58,7 +65,7 @@ var AdBanner = defineComponent({
|
|
|
58
65
|
width: "100%"
|
|
59
66
|
}));
|
|
60
67
|
const visibilityStyle = computed(
|
|
61
|
-
() => adLoaded.value ? { opacity: "1", transform: "scale(1)" } : {
|
|
68
|
+
() => adLoaded.value || adFailed.value && props.showFallbackPlaceholder ? { opacity: "1", transform: "scale(1)" } : {
|
|
62
69
|
opacity: "0",
|
|
63
70
|
transform: "scale(0.95)",
|
|
64
71
|
pointerEvents: "none",
|
|
@@ -84,18 +91,26 @@ var AdBanner = defineComponent({
|
|
|
84
91
|
onMounted(() => window.addEventListener("message", onMessage));
|
|
85
92
|
onUnmounted(() => window.removeEventListener("message", onMessage));
|
|
86
93
|
return () => {
|
|
87
|
-
if (adFailed.value) return null;
|
|
94
|
+
if (adFailed.value && !props.showFallbackPlaceholder) return null;
|
|
88
95
|
const topLabel = props.showAdLabel && props.adLabelPosition.startsWith("top");
|
|
89
96
|
const bottomLabel = props.showAdLabel && props.adLabelPosition.startsWith("bottom");
|
|
97
|
+
const isPlaceholderVisible = adFailed.value && props.showFallbackPlaceholder;
|
|
90
98
|
return h("div", { class: props.className, style: { ...wrapperStyle.value, ...visibilityStyle.value } }, [
|
|
91
99
|
topLabel ? h("span", { style: labelStyle.value }, props.adLabel) : null,
|
|
92
100
|
h("div", { "data-testid": "ad-banner", style: style.value }, [
|
|
93
|
-
h("iframe", {
|
|
101
|
+
isPlaceholderVisible ? h(FallbackPlaceholder, { format: props.format, text: props.fallbackPlaceholderText }) : h("iframe", {
|
|
94
102
|
title: "Advertisement",
|
|
95
103
|
srcdoc: srcDoc.value,
|
|
104
|
+
width: "100%",
|
|
105
|
+
height: "100%",
|
|
96
106
|
frameborder: "0",
|
|
97
107
|
scrolling: "no",
|
|
98
|
-
sandbox: "allow-scripts allow-forms allow-same-origin allow-popups allow-modals"
|
|
108
|
+
sandbox: "allow-scripts allow-forms allow-same-origin allow-popups allow-modals",
|
|
109
|
+
style: {
|
|
110
|
+
display: "block",
|
|
111
|
+
width: "100%",
|
|
112
|
+
height: "100%"
|
|
113
|
+
}
|
|
99
114
|
})
|
|
100
115
|
]),
|
|
101
116
|
bottomLabel ? h("span", { style: labelStyle.value }, props.adLabel) : null
|
|
@@ -112,14 +127,16 @@ var AdContainer = defineComponent({
|
|
|
112
127
|
className: { type: String, default: "" },
|
|
113
128
|
adLabel: { type: String, default: "Advertisement" },
|
|
114
129
|
showAdLabel: { type: Boolean, default: true },
|
|
115
|
-
adLabelPosition: { type: String, default: "top-left" }
|
|
130
|
+
adLabelPosition: { type: String, default: "top-left" },
|
|
131
|
+
showFallbackPlaceholder: { type: Boolean, default: false },
|
|
132
|
+
fallbackPlaceholderText: { type: String, default: "Test advertisement" }
|
|
116
133
|
},
|
|
117
134
|
setup(props) {
|
|
118
135
|
const adLoaded = ref(false);
|
|
119
136
|
const adFailed = ref(false);
|
|
120
137
|
return () => {
|
|
121
|
-
if (adFailed.value) return null;
|
|
122
|
-
const containerVisibilityStyle = adLoaded.value ? { opacity: "1", transform: "scale(1)" } : {
|
|
138
|
+
if (adFailed.value && !props.showFallbackPlaceholder) return null;
|
|
139
|
+
const containerVisibilityStyle = adLoaded.value || adFailed.value && props.showFallbackPlaceholder ? { opacity: "1", transform: "scale(1)" } : {
|
|
123
140
|
opacity: "0",
|
|
124
141
|
transform: "scale(0.95)",
|
|
125
142
|
pointerEvents: "none",
|
|
@@ -137,6 +154,8 @@ var AdContainer = defineComponent({
|
|
|
137
154
|
adLabel: props.adLabel,
|
|
138
155
|
showAdLabel: props.showAdLabel,
|
|
139
156
|
adLabelPosition: props.adLabelPosition,
|
|
157
|
+
showFallbackPlaceholder: props.showFallbackPlaceholder,
|
|
158
|
+
fallbackPlaceholderText: props.fallbackPlaceholderText,
|
|
140
159
|
onLoad: () => {
|
|
141
160
|
adLoaded.value = true;
|
|
142
161
|
},
|
|
@@ -148,6 +167,41 @@ var AdContainer = defineComponent({
|
|
|
148
167
|
};
|
|
149
168
|
}
|
|
150
169
|
});
|
|
170
|
+
var FallbackPlaceholder = defineComponent({
|
|
171
|
+
name: "FallbackPlaceholder",
|
|
172
|
+
props: {
|
|
173
|
+
format: { type: String, required: true },
|
|
174
|
+
text: { type: String, required: true }
|
|
175
|
+
},
|
|
176
|
+
setup(props) {
|
|
177
|
+
return () => h(
|
|
178
|
+
"div",
|
|
179
|
+
{
|
|
180
|
+
role: "img",
|
|
181
|
+
"aria-label": `${props.text} placeholder`,
|
|
182
|
+
style: {
|
|
183
|
+
width: "100%",
|
|
184
|
+
height: "100%",
|
|
185
|
+
display: "flex",
|
|
186
|
+
flexDirection: "column",
|
|
187
|
+
alignItems: "center",
|
|
188
|
+
justifyContent: "center",
|
|
189
|
+
gap: "6px",
|
|
190
|
+
boxSizing: "border-box",
|
|
191
|
+
padding: "12px",
|
|
192
|
+
color: "#475569",
|
|
193
|
+
background: "repeating-linear-gradient(135deg, #f8fafc 0, #f8fafc 10px, #eef2f7 10px, #eef2f7 20px)",
|
|
194
|
+
textAlign: "center",
|
|
195
|
+
fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif'
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
[
|
|
199
|
+
h("strong", { style: { fontSize: "13px", lineHeight: "1.2" } }, props.text),
|
|
200
|
+
h("span", { style: { fontSize: "11px", lineHeight: "1.2" } }, props.format)
|
|
201
|
+
]
|
|
202
|
+
);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
151
205
|
var index_default = AdBanner;
|
|
152
206
|
export {
|
|
153
207
|
AdBanner,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adsterra-ad/vue",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.cjs",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"vue": "^3.4.0"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@adsterra-ad/core": "0.1.
|
|
34
|
+
"@adsterra-ad/core": "0.1.3"
|
|
35
35
|
},
|
|
36
36
|
"scripts": {
|
|
37
37
|
"build": "tsup src/index.ts --format esm,cjs --dts",
|
|
@@ -43,4 +43,4 @@
|
|
|
43
43
|
"typescript": "^5.5.4",
|
|
44
44
|
"vue": "^3.4.38"
|
|
45
45
|
}
|
|
46
|
-
}
|
|
46
|
+
}
|