@builder.io/sdk-vue 0.3.2-0 → 0.4.0

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.
Files changed (107) hide show
  1. package/package.json +1 -1
  2. package/packages/_vue2/dist/block-styles.5d12dd48.cjs +1 -0
  3. package/packages/_vue2/dist/{block-styles.22c50e60.js → block-styles.6046e541.js} +11 -10
  4. package/packages/_vue2/dist/css.1c33bc00.cjs +6 -0
  5. package/packages/_vue2/dist/css.6d40adbf.js +75 -0
  6. package/packages/_vue2/dist/evaluate.1f3c9eb2.cjs +4 -0
  7. package/packages/_vue2/dist/evaluate.9b61c455.js +63 -0
  8. package/packages/_vue2/dist/index.75296c8a.js +1371 -0
  9. package/packages/_vue2/dist/index.d1a8c547.cjs +32 -0
  10. package/packages/_vue2/dist/{render-block.11a66585.js → render-block.0c043cce.js} +22 -21
  11. package/packages/_vue2/dist/render-block.aa8d982e.cjs +3 -0
  12. package/packages/_vue2/dist/{render-component.8f5204ca.cjs → render-component.89838d4a.cjs} +1 -1
  13. package/packages/_vue2/dist/{render-component.dc53dbd0.js → render-component.d72cfa86.js} +3 -3
  14. package/packages/_vue2/dist/render-content.0b8e6a43.cjs +1 -0
  15. package/packages/_vue2/dist/render-content.a8742da7.js +1359 -0
  16. package/packages/_vue2/dist/render-inlined-styles.57cb3887.js +23 -0
  17. package/packages/_vue2/dist/render-inlined-styles.80c83f3f.cjs +1 -0
  18. package/packages/_vue2/dist/{render-repeated-block.7b83bd13.js → render-repeated-block.7a35249f.js} +2 -2
  19. package/packages/_vue2/dist/{render-repeated-block.1cb6b42e.cjs → render-repeated-block.aeeee917.cjs} +1 -1
  20. package/packages/_vue2/dist/{render-styles.37cf66d9.js → render-styles.0e5b622f.js} +3 -3
  21. package/packages/_vue2/dist/{render-styles.fe76b092.cjs → render-styles.189908f8.cjs} +6 -6
  22. package/packages/_vue2/dist/sdk.cjs +1 -1
  23. package/packages/_vue2/dist/sdk.js +16 -21
  24. package/packages/_vue2/dist/src/blocks/button/button.vue.d.ts +1 -1
  25. package/packages/_vue2/dist/src/blocks/columns/columns.vue.d.ts +1 -1
  26. package/packages/_vue2/dist/src/blocks/custom-code/custom-code.vue.d.ts +1 -1
  27. package/packages/_vue2/dist/src/blocks/image/image.vue.d.ts +1 -1
  28. package/packages/_vue2/dist/src/blocks/symbol/symbol.vue.d.ts +1 -1
  29. package/packages/_vue2/dist/src/components/render-blocks.vue.d.ts +1 -1
  30. package/packages/_vue2/dist/src/components/render-content/render-content.types.d.ts +9 -2
  31. package/packages/_vue2/dist/src/components/render-content/render-content.vue.d.ts +2 -0
  32. package/packages/_vue2/dist/src/components/render-content-variants/helpers.d.ts +17 -0
  33. package/packages/_vue2/dist/src/components/render-content-variants/render-content-variants.vue.d.ts +29 -0
  34. package/packages/_vue2/dist/src/components/render-inlined-styles.vue.d.ts +4 -6
  35. package/packages/_vue2/dist/src/constants/sdk-version.d.ts +1 -1
  36. package/packages/_vue2/dist/src/functions/get-content/index.d.ts +7 -2
  37. package/packages/_vue2/dist/src/helpers/ab-tests.d.ts +8 -7
  38. package/packages/_vue2/dist/src/helpers/canTrack.d.ts +1 -0
  39. package/packages/_vue2/dist/src/helpers/cookie.d.ts +7 -3
  40. package/packages/_vue2/dist/src/helpers/logger.d.ts +1 -0
  41. package/packages/_vue2/dist/src/index-helpers/blocks-exports.d.ts +1 -1
  42. package/packages/_vue2/dist/src/index.d.ts +8 -7
  43. package/packages/_vue2/dist/src/types/builder-content.d.ts +1 -3
  44. package/packages/_vue2/dist/src/types/targets.d.ts +3 -0
  45. package/packages/_vue2/dist/style.css +1 -1
  46. package/packages/_vue3/dist/block-styles.10cf87f2.cjs +1 -0
  47. package/packages/_vue3/dist/{block-styles.c0e7bfbe.js → block-styles.bce8f3cd.js} +10 -9
  48. package/packages/_vue3/dist/css.136ed67a.js +75 -0
  49. package/packages/_vue3/dist/css.ecfa9f0c.cjs +6 -0
  50. package/packages/_vue3/dist/evaluate.38cae9b6.js +63 -0
  51. package/packages/_vue3/dist/evaluate.e68b2bb7.cjs +4 -0
  52. package/packages/_vue3/dist/index.32c5f4e2.js +1392 -0
  53. package/packages/_vue3/dist/index.b0a65841.cjs +32 -0
  54. package/packages/_vue3/dist/render-block.9e2345a9.cjs +3 -0
  55. package/packages/_vue3/dist/{render-block.d0ed34b4.js → render-block.d226379d.js} +16 -15
  56. package/packages/_vue3/dist/{render-component.77f33093.cjs → render-component.b3f51b9c.cjs} +1 -1
  57. package/packages/_vue3/dist/{render-component.268e7bd8.js → render-component.b49ee7fc.js} +3 -3
  58. package/packages/_vue3/dist/render-content.03e6b41b.js +1355 -0
  59. package/packages/_vue3/dist/render-content.e7b1a19e.cjs +1 -0
  60. package/packages/_vue3/dist/render-inlined-styles.00a6f102.js +16 -0
  61. package/packages/_vue3/dist/render-inlined-styles.03a0b90a.cjs +1 -0
  62. package/packages/_vue3/dist/{render-repeated-block.0d46ab69.cjs → render-repeated-block.671f867f.cjs} +1 -1
  63. package/packages/_vue3/dist/{render-repeated-block.b1101852.js → render-repeated-block.a26cf553.js} +2 -2
  64. package/packages/_vue3/dist/{render-styles.7f31b369.js → render-styles.665ea958.js} +3 -3
  65. package/packages/_vue3/dist/{render-styles.5073866f.cjs → render-styles.90c0cc7c.cjs} +3 -3
  66. package/packages/_vue3/dist/sdk.cjs +1 -1
  67. package/packages/_vue3/dist/sdk.js +17 -22
  68. package/packages/_vue3/dist/src/blocks/button/button.vue.d.ts +1 -1
  69. package/packages/_vue3/dist/src/blocks/columns/columns.vue.d.ts +1 -1
  70. package/packages/_vue3/dist/src/blocks/custom-code/custom-code.vue.d.ts +1 -1
  71. package/packages/_vue3/dist/src/blocks/image/image.vue.d.ts +1 -1
  72. package/packages/_vue3/dist/src/blocks/symbol/symbol.vue.d.ts +1 -1
  73. package/packages/_vue3/dist/src/components/render-blocks.vue.d.ts +1 -1
  74. package/packages/_vue3/dist/src/components/render-content/render-content.types.d.ts +9 -2
  75. package/packages/_vue3/dist/src/components/render-content/render-content.vue.d.ts +17 -3
  76. package/packages/_vue3/dist/src/components/render-content-variants/helpers.d.ts +17 -0
  77. package/packages/_vue3/dist/src/components/render-content-variants/render-content-variants.vue.d.ts +29 -0
  78. package/packages/_vue3/dist/src/components/render-inlined-styles.vue.d.ts +4 -6
  79. package/packages/_vue3/dist/src/constants/sdk-version.d.ts +1 -1
  80. package/packages/_vue3/dist/src/functions/get-content/index.d.ts +7 -2
  81. package/packages/_vue3/dist/src/helpers/ab-tests.d.ts +8 -7
  82. package/packages/_vue3/dist/src/helpers/canTrack.d.ts +1 -0
  83. package/packages/_vue3/dist/src/helpers/cookie.d.ts +7 -3
  84. package/packages/_vue3/dist/src/helpers/logger.d.ts +1 -0
  85. package/packages/_vue3/dist/src/index-helpers/blocks-exports.d.ts +1 -1
  86. package/packages/_vue3/dist/src/index.d.ts +8 -7
  87. package/packages/_vue3/dist/src/types/builder-content.d.ts +1 -3
  88. package/packages/_vue3/dist/src/types/targets.d.ts +3 -0
  89. package/packages/_vue3/dist/style.css +1 -1
  90. package/packages/_vue2/dist/block-styles.82ffdfab.cjs +0 -1
  91. package/packages/_vue2/dist/css.d1f35fa9.js +0 -74
  92. package/packages/_vue2/dist/css.d67364ee.cjs +0 -6
  93. package/packages/_vue2/dist/index.1955e2ac.js +0 -2586
  94. package/packages/_vue2/dist/index.2eccdb53.cjs +0 -29
  95. package/packages/_vue2/dist/render-block.742f7d9b.cjs +0 -3
  96. package/packages/_vue2/dist/render-inlined-styles.1887b766.cjs +0 -1
  97. package/packages/_vue2/dist/render-inlined-styles.955770d4.js +0 -34
  98. package/packages/_vue2/dist/src/functions/get-content/ab-testing.d.ts +0 -5
  99. package/packages/_vue3/dist/block-styles.18a1a0e6.cjs +0 -1
  100. package/packages/_vue3/dist/css.7a6108f3.cjs +0 -6
  101. package/packages/_vue3/dist/css.ee7d0ab8.js +0 -74
  102. package/packages/_vue3/dist/index.c3536d81.js +0 -2574
  103. package/packages/_vue3/dist/index.e7a22b43.cjs +0 -29
  104. package/packages/_vue3/dist/render-block.bcafe494.cjs +0 -3
  105. package/packages/_vue3/dist/render-inlined-styles.5aa04bb8.js +0 -32
  106. package/packages/_vue3/dist/render-inlined-styles.86c0a89d.cjs +0 -1
  107. package/packages/_vue3/dist/src/functions/get-content/ab-testing.d.ts +0 -5
@@ -0,0 +1,1392 @@
1
+ import { defineComponent as S, openBlock as l, createElementBlock as u, mergeProps as A, toHandlers as P, toDisplayString as H, defineAsyncComponent as T, resolveComponent as I, normalizeClass as K, normalizeStyle as E, createBlock as V, createCommentVNode as $, Fragment as C, renderList as N, createVNode as M, renderSlot as L, createElementVNode as J, resolveDynamicComponent as ge } from "vue";
2
+ const ye = S({
3
+ name: "builder-button",
4
+ props: ["attributes", "text", "link", "openLinkInNewTab"],
5
+ methods: {
6
+ filterAttrs: function(t = {}, n) {
7
+ const o = "v-on:";
8
+ return Object.keys(t).filter((r) => {
9
+ if (!t[r])
10
+ return !1;
11
+ const s = r.startsWith(o);
12
+ return n ? s : !s;
13
+ }).reduce(
14
+ (r, s) => ({
15
+ ...r,
16
+ [s.replace(o, "")]: t[s]
17
+ }),
18
+ {}
19
+ );
20
+ },
21
+ _classStringToObject(e) {
22
+ const t = {};
23
+ if (typeof e != "string")
24
+ return t;
25
+ const n = e.trim().split(/\s+/);
26
+ for (const o of n)
27
+ t[o] = !0;
28
+ return t;
29
+ }
30
+ }
31
+ });
32
+ const v = (e, t) => {
33
+ const n = e.__vccOpts || e;
34
+ for (const [o, r] of t)
35
+ n[o] = r;
36
+ return n;
37
+ }, ke = ["href", "target"];
38
+ function Se(e, t, n, o, r, s) {
39
+ return e.link ? (l(), u("a", A({
40
+ key: 0,
41
+ role: "button",
42
+ href: e.link,
43
+ target: e.openLinkInNewTab ? "_blank" : void 0
44
+ }, e.filterAttrs(e.attributes, !1), P(e.filterAttrs(e.attributes, !0), !0)), H(e.text), 17, ke)) : (l(), u("button", A({
45
+ key: 1,
46
+ class: e._classStringToObject(
47
+ e.attributes.class + " button-361b1o6wv2k"
48
+ )
49
+ }, e.filterAttrs(e.attributes, !1), P(e.filterAttrs(e.attributes, !0), !0)), H(e.text), 17));
50
+ }
51
+ const Xt = /* @__PURE__ */ v(ye, [["render", Se], ["__scopeId", "data-v-a4481d84"]]), z = (e) => JSON.parse(JSON.stringify(e)), te = {
52
+ small: {
53
+ min: 320,
54
+ default: 321,
55
+ max: 640
56
+ },
57
+ medium: {
58
+ min: 641,
59
+ default: 642,
60
+ max: 991
61
+ },
62
+ large: {
63
+ min: 990,
64
+ default: 991,
65
+ max: 1200
66
+ }
67
+ }, Yt = (e, t = te) => `@media (max-width: ${t[e].max}px)`, ve = ({ small: e, medium: t }) => {
68
+ const n = z(te);
69
+ if (!e || !t)
70
+ return n;
71
+ const o = Math.floor(e / 2);
72
+ n.small = {
73
+ max: e,
74
+ min: o,
75
+ default: o + 1
76
+ };
77
+ const r = n.small.max + 1;
78
+ n.medium = {
79
+ max: t,
80
+ min: r,
81
+ default: r + 1
82
+ };
83
+ const s = n.medium.max + 1;
84
+ return n.large = {
85
+ max: 2e3,
86
+ min: s,
87
+ default: s + 1
88
+ }, n;
89
+ }, x = "vue3", $e = Symbol(), D = {
90
+ Builder: {
91
+ content: null,
92
+ context: {},
93
+ localState: void 0,
94
+ rootSetState() {
95
+ },
96
+ rootState: {},
97
+ apiKey: null,
98
+ apiVersion: void 0,
99
+ registeredComponents: {},
100
+ inheritedStyles: {}
101
+ },
102
+ key: $e
103
+ }, we = () => Promise.resolve().then(() => Ke).then((e) => e.default).catch((e) => {
104
+ throw console.error(
105
+ "Error while attempting to dynamically import component RenderBlocks at ../../components/render-blocks.vue",
106
+ e
107
+ ), e;
108
+ }), Ce = () => import("./render-inlined-styles.00a6f102.js").then((e) => e.default).catch((e) => {
109
+ throw console.error(
110
+ "Error while attempting to dynamically import component RenderInlinedStyles at ../../components/render-inlined-styles.vue",
111
+ e
112
+ ), e;
113
+ }), Te = S({
114
+ name: "builder-columns",
115
+ components: {
116
+ RenderInlinedStyles: T(Ce),
117
+ RenderBlocks: T(we)
118
+ },
119
+ props: [
120
+ "space",
121
+ "columns",
122
+ "stackColumnsAt",
123
+ "reverseColumnsWhenStacked",
124
+ "builderBlock"
125
+ ],
126
+ data() {
127
+ return {
128
+ gutterSize: typeof this.space == "number" ? this.space || 0 : 20,
129
+ cols: this.columns || [],
130
+ stackAt: this.stackColumnsAt || "tablet",
131
+ flexDir: this.stackColumnsAt === "never" ? "row" : this.reverseColumnsWhenStacked ? "column-reverse" : "column",
132
+ TARGET: x
133
+ };
134
+ },
135
+ inject: {
136
+ builderContext: D.key
137
+ },
138
+ computed: {
139
+ columnsCssVars() {
140
+ return {
141
+ "--flex-dir": this.flexDir,
142
+ "--flex-dir-tablet": this.getTabletStyle({
143
+ stackedStyle: this.flexDir,
144
+ desktopStyle: "row"
145
+ })
146
+ };
147
+ },
148
+ columnsStyles() {
149
+ return `
150
+ @media (max-width: ${this.getWidthForBreakpointSize("medium")}px) {
151
+ .${this.builderBlock.id}-breakpoints {
152
+ flex-direction: var(--flex-dir-tablet);
153
+ align-items: stretch;
154
+ }
155
+
156
+ .${this.builderBlock.id}-breakpoints > .builder-column {
157
+ width: var(--column-width-tablet) !important;
158
+ margin-left: var(--column-margin-left-tablet) !important;
159
+ }
160
+ }
161
+
162
+ @media (max-width: ${this.getWidthForBreakpointSize("small")}px) {
163
+ .${this.builderBlock.id}-breakpoints {
164
+ flex-direction: var(--flex-dir);
165
+ align-items: stretch;
166
+ }
167
+
168
+ .${this.builderBlock.id}-breakpoints > .builder-column {
169
+ width: var(--column-width-mobile) !important;
170
+ margin-left: var(--column-margin-left-mobile) !important;
171
+ }
172
+ },
173
+ `;
174
+ }
175
+ },
176
+ methods: {
177
+ getWidth(e) {
178
+ var t;
179
+ return ((t = this.cols[e]) == null ? void 0 : t.width) || 100 / this.cols.length;
180
+ },
181
+ getColumnCssWidth(e) {
182
+ const t = this.gutterSize * (this.cols.length - 1) / this.cols.length;
183
+ return `calc(${this.getWidth(e)}% - ${t}px)`;
184
+ },
185
+ getTabletStyle({
186
+ stackedStyle: e,
187
+ desktopStyle: t
188
+ }) {
189
+ return this.stackAt === "tablet" ? e : t;
190
+ },
191
+ getMobileStyle({
192
+ stackedStyle: e,
193
+ desktopStyle: t
194
+ }) {
195
+ return this.stackAt === "never" ? t : e;
196
+ },
197
+ columnCssVars(e) {
198
+ const t = e === 0 ? 0 : this.gutterSize, n = this.getColumnCssWidth(e), o = `${t}px`, r = "100%", s = 0;
199
+ return {
200
+ width: n,
201
+ "margin-left": o,
202
+ "--column-width-mobile": this.getMobileStyle({
203
+ stackedStyle: r,
204
+ desktopStyle: n
205
+ }),
206
+ "--column-margin-left-mobile": this.getMobileStyle({
207
+ stackedStyle: s,
208
+ desktopStyle: o
209
+ }),
210
+ "--column-width-tablet": this.getTabletStyle({
211
+ stackedStyle: r,
212
+ desktopStyle: n
213
+ }),
214
+ "--column-margin-left-tablet": this.getTabletStyle({
215
+ stackedStyle: s,
216
+ desktopStyle: o
217
+ })
218
+ };
219
+ },
220
+ getWidthForBreakpointSize(e) {
221
+ var n, o;
222
+ return ve(
223
+ ((o = (n = this.builderContext.content) == null ? void 0 : n.meta) == null ? void 0 : o.breakpoints) || {}
224
+ )[e].max;
225
+ },
226
+ _classStringToObject(e) {
227
+ const t = {};
228
+ if (typeof e != "string")
229
+ return t;
230
+ const n = e.trim().split(/\s+/);
231
+ for (const o of n)
232
+ t[o] = !0;
233
+ return t;
234
+ }
235
+ }
236
+ });
237
+ function Ie(e, t, n, o, r, s) {
238
+ const i = I("render-inlined-styles"), c = I("render-blocks");
239
+ return l(), u("div", {
240
+ class: K(
241
+ e._classStringToObject(
242
+ `builder-columns ${e.builderBlock.id}-breakpoints div-1eih9th5ow6`
243
+ )
244
+ ),
245
+ style: E(e.columnsCssVars),
246
+ dataSet: {
247
+ "builder-block-name": "builder-columns"
248
+ }
249
+ }, [
250
+ e.TARGET !== "reactNative" ? (l(), V(i, {
251
+ key: 0,
252
+ styles: e.columnsStyles
253
+ }, null, 8, ["styles"])) : $("", !0),
254
+ (l(!0), u(C, null, N(e.columns, (a, d) => (l(), u("div", {
255
+ key: d,
256
+ class: "builder-column div-1eih9th5ow6-2",
257
+ style: E(e.columnCssVars(d)),
258
+ dataSet: {
259
+ "builder-block-name": "builder-column"
260
+ }
261
+ }, [
262
+ M(c, {
263
+ blocks: a.blocks,
264
+ path: `component.options.columns.${d}.blocks`,
265
+ parent: e.builderBlock.id,
266
+ styleProp: {
267
+ flexGrow: "1"
268
+ }
269
+ }, null, 8, ["blocks", "path", "parent"])
270
+ ], 4))), 128))
271
+ ], 6);
272
+ }
273
+ const Zt = /* @__PURE__ */ v(Te, [["render", Ie], ["__scopeId", "data-v-cc8d4c1f"]]), Re = S({
274
+ name: "builder-fragment-component",
275
+ props: []
276
+ });
277
+ function _e(e, t, n, o, r, s) {
278
+ return l(), u("span", null, [
279
+ L(e.$slots, "default")
280
+ ]);
281
+ }
282
+ const en = /* @__PURE__ */ v(Re, [["render", _e]]);
283
+ function q(e) {
284
+ return e.replace(/http(s)?:/, "");
285
+ }
286
+ function Ae(e = "", t, n) {
287
+ const o = new RegExp("([?&])" + t + "=.*?(&|$)", "i"), r = e.indexOf("?") !== -1 ? "&" : "?";
288
+ return e.match(o) ? e.replace(o, "$1" + t + "=" + encodeURIComponent(n) + "$2") : e + r + t + "=" + encodeURIComponent(n);
289
+ }
290
+ function Ee(e, t) {
291
+ if (!e || !(e != null && e.match(/cdn\.shopify\.com/)) || !t)
292
+ return e;
293
+ if (t === "master")
294
+ return q(e);
295
+ const n = e.match(
296
+ /(_\d+x(\d+)?)?(\.(jpg|jpeg|gif|png|bmp|bitmap|tiff|tif)(\?v=\d+)?)/i
297
+ );
298
+ if (n) {
299
+ const o = e.split(n[0]), r = n[3], s = t.match("x") ? t : `${t}x`;
300
+ return q(`${o[0]}_${s}${r}`);
301
+ }
302
+ return null;
303
+ }
304
+ function W(e) {
305
+ if (!e)
306
+ return e;
307
+ const t = [100, 200, 400, 800, 1200, 1600, 2e3];
308
+ if (e.match(/builder\.io/)) {
309
+ let n = e;
310
+ const o = Number(e.split("?width=")[1]);
311
+ return isNaN(o) || (n = `${n} ${o}w`), t.filter((r) => r !== o).map((r) => `${Ae(e, "width", r)} ${r}w`).concat([n]).join(", ");
312
+ }
313
+ return e.match(/cdn\.shopify\.com/) ? t.map((n) => [Ee(e, `${n}x${n}`), n]).filter(([n]) => !!n).map(([n, o]) => `${n} ${o}w`).concat([e]).join(", ") : e;
314
+ }
315
+ const Ve = S({
316
+ name: "builder-image",
317
+ props: [
318
+ "image",
319
+ "src",
320
+ "srcset",
321
+ "noWebp",
322
+ "aspectRatio",
323
+ "altText",
324
+ "backgroundPosition",
325
+ "backgroundSize",
326
+ "className",
327
+ "sizes",
328
+ "builderBlock",
329
+ "fitContent"
330
+ ],
331
+ computed: {
332
+ srcSetToUse() {
333
+ var n;
334
+ const t = this.image || this.src;
335
+ if (!t || !(t.match(/builder\.io/) || t.match(/cdn\.shopify\.com/)))
336
+ return this.srcset;
337
+ if (this.srcset && ((n = this.image) == null ? void 0 : n.includes("builder.io/api/v1/image"))) {
338
+ if (!this.srcset.includes(this.image.split("?")[0]))
339
+ return console.debug("Removed given srcset"), W(t);
340
+ } else if (this.image && !this.srcset)
341
+ return W(t);
342
+ return W(t);
343
+ },
344
+ webpSrcSet() {
345
+ var e;
346
+ return ((e = this.srcSetToUse) == null ? void 0 : e.match(/builder\.io/)) && !this.noWebp ? this.srcSetToUse.replace(/\?/g, "?format=webp&") : "";
347
+ },
348
+ aspectRatioCss() {
349
+ const e = {
350
+ position: "absolute",
351
+ height: "100%",
352
+ width: "100%",
353
+ left: "0px",
354
+ top: "0px"
355
+ };
356
+ return this.aspectRatio ? e : void 0;
357
+ }
358
+ },
359
+ methods: {
360
+ _classStringToObject(e) {
361
+ const t = {};
362
+ if (typeof e != "string")
363
+ return t;
364
+ const n = e.trim().split(/\s+/);
365
+ for (const o of n)
366
+ t[o] = !0;
367
+ return t;
368
+ }
369
+ }
370
+ });
371
+ const Oe = ["srcset"], Be = ["alt", "role", "src", "srcset", "sizes"], je = {
372
+ key: 2,
373
+ class: "div-256wrwn33ry-2"
374
+ };
375
+ function Pe(e, t, n, o, r, s) {
376
+ var i, c, a, d;
377
+ return l(), u(C, null, [
378
+ J("picture", null, [
379
+ e.webpSrcSet ? (l(), u("source", {
380
+ key: 0,
381
+ type: "image/webp",
382
+ srcset: e.webpSrcSet
383
+ }, null, 8, Oe)) : $("", !0),
384
+ J("img", {
385
+ loading: "lazy",
386
+ alt: e.altText,
387
+ role: e.altText ? "presentation" : void 0,
388
+ style: E({
389
+ objectPosition: e.backgroundPosition || "center",
390
+ objectFit: e.backgroundSize || "cover",
391
+ ...e.aspectRatioCss
392
+ }),
393
+ class: K(
394
+ e._classStringToObject(
395
+ "builder-image" + (e.className ? " " + e.className : "") + " img-256wrwn33ry"
396
+ )
397
+ ),
398
+ src: e.image,
399
+ srcset: e.srcSetToUse,
400
+ sizes: e.sizes
401
+ }, null, 14, Be)
402
+ ]),
403
+ e.aspectRatio && !(((c = (i = e.builderBlock) == null ? void 0 : i.children) == null ? void 0 : c.length) && e.fitContent) ? (l(), u("div", {
404
+ key: 0,
405
+ class: "builder-image-sizer div-256wrwn33ry",
406
+ style: E({
407
+ paddingTop: e.aspectRatio * 100 + "%"
408
+ })
409
+ }, null, 4)) : $("", !0),
410
+ ((d = (a = e.builderBlock) == null ? void 0 : a.children) == null ? void 0 : d.length) && e.fitContent ? L(e.$slots, "default", { key: 1 }, void 0, !0) : $("", !0),
411
+ !e.fitContent && e.children ? (l(), u("div", je, [
412
+ L(e.$slots, "default", {}, void 0, !0)
413
+ ])) : $("", !0)
414
+ ], 64);
415
+ }
416
+ const tn = /* @__PURE__ */ v(Ve, [["render", Pe], ["__scopeId", "data-v-15a2d98b"]]);
417
+ function y() {
418
+ return typeof window < "u" && typeof document < "u";
419
+ }
420
+ function Ne() {
421
+ return y() && window.self !== window.top;
422
+ }
423
+ function U() {
424
+ return Ne() && window.location.search.indexOf("builder.frameEditing=") !== -1;
425
+ }
426
+ const Me = () => import("./block-styles.bce8f3cd.js").then((e) => e.default).catch((e) => {
427
+ throw console.error(
428
+ "Error while attempting to dynamically import component BlockStyles at ./render-block/block-styles.vue",
429
+ e
430
+ ), e;
431
+ }), Le = () => import("./render-block.d226379d.js").then((e) => e.default).catch((e) => {
432
+ throw console.error(
433
+ "Error while attempting to dynamically import component RenderBlock at ./render-block/render-block.vue",
434
+ e
435
+ ), e;
436
+ }), Ue = S({
437
+ name: "render-blocks",
438
+ components: {
439
+ RenderBlock: T(Le),
440
+ BlockStyles: T(Me)
441
+ },
442
+ props: ["blocks", "parent", "path", "styleProp"],
443
+ inject: {
444
+ builderContext: D.key
445
+ },
446
+ computed: {
447
+ className() {
448
+ var e;
449
+ return "builder-blocks" + ((e = this.blocks) != null && e.length ? "" : " no-blocks");
450
+ }
451
+ },
452
+ methods: {
453
+ onClick() {
454
+ var e, t;
455
+ U() && !((e = this.blocks) != null && e.length) && ((t = window.parent) == null || t.postMessage(
456
+ {
457
+ type: "builder.clickEmptyBlocks",
458
+ data: {
459
+ parentElementId: this.parent,
460
+ dataPath: this.path
461
+ }
462
+ },
463
+ "*"
464
+ ));
465
+ },
466
+ onMouseEnter() {
467
+ var e, t;
468
+ U() && !((e = this.blocks) != null && e.length) && ((t = window.parent) == null || t.postMessage(
469
+ {
470
+ type: "builder.hoverEmptyBlocks",
471
+ data: {
472
+ parentElementId: this.parent,
473
+ dataPath: this.path
474
+ }
475
+ },
476
+ "*"
477
+ ));
478
+ },
479
+ _classStringToObject(e) {
480
+ const t = {};
481
+ if (typeof e != "string")
482
+ return t;
483
+ const n = e.trim().split(/\s+/);
484
+ for (const o of n)
485
+ t[o] = !0;
486
+ return t;
487
+ }
488
+ }
489
+ });
490
+ const xe = ["builder-path", "builder-parent-id", "dataSet"];
491
+ function We(e, t, n, o, r, s) {
492
+ const i = I("render-block"), c = I("block-styles");
493
+ return l(), u("div", {
494
+ class: K(e._classStringToObject(e.className + " div-4o9pb21oca6")),
495
+ "builder-path": e.path,
496
+ "builder-parent-id": e.parent,
497
+ dataSet: {
498
+ class: e.className
499
+ },
500
+ style: E(e.styleProp),
501
+ onClick: t[0] || (t[0] = (a) => e.onClick()),
502
+ onMouseenter: t[1] || (t[1] = (a) => e.onMouseEnter())
503
+ }, [
504
+ e.blocks ? (l(!0), u(C, { key: 0 }, N(e.blocks, (a, d) => (l(), V(i, {
505
+ key: "render-block-" + a.id,
506
+ block: a,
507
+ context: e.builderContext
508
+ }, null, 8, ["block", "context"]))), 128)) : $("", !0),
509
+ e.blocks ? (l(!0), u(C, { key: 1 }, N(e.blocks, (a, d) => (l(), V(c, {
510
+ key: "block-style-" + a.id,
511
+ block: a,
512
+ context: e.builderContext
513
+ }, null, 8, ["block", "context"]))), 128)) : $("", !0)
514
+ ], 46, xe);
515
+ }
516
+ const Fe = /* @__PURE__ */ v(Ue, [["render", We], ["__scopeId", "data-v-8ed03d66"]]), Ke = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
517
+ __proto__: null,
518
+ default: Fe
519
+ }, Symbol.toStringTag, { value: "Module" })), ze = S({
520
+ name: "builder-section-component",
521
+ props: ["maxWidth", "attributes"],
522
+ methods: {
523
+ filterAttrs: function(t = {}, n) {
524
+ const o = "v-on:";
525
+ return Object.keys(t).filter((r) => {
526
+ if (!t[r])
527
+ return !1;
528
+ const s = r.startsWith(o);
529
+ return n ? s : !s;
530
+ }).reduce(
531
+ (r, s) => ({
532
+ ...r,
533
+ [s.replace(o, "")]: t[s]
534
+ }),
535
+ {}
536
+ );
537
+ }
538
+ }
539
+ });
540
+ function De(e, t, n, o, r, s) {
541
+ return l(), u("section", A({
542
+ style: {
543
+ width: "100%",
544
+ alignSelf: "stretch",
545
+ flexGrow: 1,
546
+ boxSizing: "border-box",
547
+ maxWidth: e.maxWidth || 1200,
548
+ display: "flex",
549
+ flexDirection: "column",
550
+ alignItems: "stretch",
551
+ marginLeft: "auto",
552
+ marginRight: "auto"
553
+ }
554
+ }, e.filterAttrs(e.attributes, !1), P(e.filterAttrs(e.attributes, !0), !0)), [
555
+ L(e.$slots, "default")
556
+ ], 16);
557
+ }
558
+ const nn = /* @__PURE__ */ v(ze, [["render", De]]), O = "[Builder.io]: ", w = {
559
+ log: (...e) => console.log(O, ...e),
560
+ error: (...e) => console.error(O, ...e),
561
+ warn: (...e) => console.warn(O, ...e),
562
+ debug: (...e) => console.debug(O, ...e)
563
+ }, _ = (e) => e != null, Ge = (e) => {
564
+ if (e === "localhost" || e === "127.0.0.1")
565
+ return e;
566
+ const t = e.split(".");
567
+ return t.length > 2 ? t.slice(1).join(".") : e;
568
+ }, ne = ({
569
+ name: e,
570
+ canTrack: t
571
+ }) => {
572
+ var n;
573
+ try {
574
+ return t ? (n = document.cookie.split("; ").find((o) => o.startsWith(`${e}=`))) == null ? void 0 : n.split("=")[1] : void 0;
575
+ } catch (o) {
576
+ w.warn("[COOKIE] GET error: ", (o == null ? void 0 : o.message) || o);
577
+ return;
578
+ }
579
+ }, oe = async (e) => ne(e), He = (e) => e.map(([t, n]) => n ? `${t}=${n}` : t).filter(_).join("; "), Je = [
580
+ ["secure", ""],
581
+ ["SameSite", "None"]
582
+ ], qe = ({
583
+ name: e,
584
+ value: t,
585
+ expires: n
586
+ }) => {
587
+ const r = (y() ? location.protocol === "https:" : !0) ? Je : [[]], s = n ? [["expires", n.toUTCString()]] : [[]], i = [
588
+ [e, t],
589
+ ...s,
590
+ ["path", "/"],
591
+ ["domain", Ge(window.location.hostname)],
592
+ ...r
593
+ ];
594
+ return He(i);
595
+ }, re = async ({
596
+ name: e,
597
+ value: t,
598
+ expires: n,
599
+ canTrack: o
600
+ }) => {
601
+ try {
602
+ if (!o)
603
+ return;
604
+ const r = qe({ name: e, value: t, expires: n });
605
+ document.cookie = r;
606
+ } catch (r) {
607
+ w.warn("[COOKIE] SET error: ", (r == null ? void 0 : r.message) || r);
608
+ }
609
+ }, Qe = "builder.tests", G = (e) => `${Qe}.${e}`, Xe = ({ contentId: e }) => oe({ name: G(e), canTrack: !0 }), Ye = ({ contentId: e }) => ne({ name: G(e), canTrack: !0 }), Ze = ({
610
+ contentId: e,
611
+ value: t
612
+ }) => re({ name: G(e), value: t, canTrack: !0 }), se = (e) => _(e.id) && _(e.variations) && Object.keys(e.variations).length > 0, et = ({
613
+ id: e,
614
+ variations: t
615
+ }) => {
616
+ var r;
617
+ let n = 0;
618
+ const o = Math.random();
619
+ for (const s in t) {
620
+ const i = (r = t[s]) == null ? void 0 : r.testRatio;
621
+ if (n += i, o < n)
622
+ return s;
623
+ }
624
+ return e;
625
+ }, ie = (e) => {
626
+ const t = et(e);
627
+ return Ze({
628
+ contentId: e.id,
629
+ value: t
630
+ }).catch((n) => {
631
+ w.error("could not store A/B test variation: ", n);
632
+ }), t;
633
+ }, ae = ({
634
+ item: e,
635
+ testGroupId: t
636
+ }) => {
637
+ const n = e.variations[t];
638
+ return t === e.id || !n ? {
639
+ testVariationId: e.id,
640
+ testVariationName: "Default"
641
+ } : {
642
+ data: n.data,
643
+ testVariationId: n.id,
644
+ testVariationName: n.name || (n.id === e.id ? "Default" : "")
645
+ };
646
+ }, tt = ({
647
+ item: e,
648
+ canTrack: t
649
+ }) => {
650
+ if (!t)
651
+ return e;
652
+ if (!e)
653
+ return;
654
+ if (!se(e))
655
+ return e;
656
+ const n = Ye({
657
+ contentId: e.id
658
+ }) || ie({
659
+ variations: e.variations,
660
+ id: e.id
661
+ }), o = ae({ item: e, testGroupId: n });
662
+ return {
663
+ ...e,
664
+ ...o
665
+ };
666
+ }, nt = async ({
667
+ item: e,
668
+ canTrack: t
669
+ }) => {
670
+ if (!t || !se(e))
671
+ return e;
672
+ const o = await Xe({
673
+ contentId: e.id
674
+ }) || ie({
675
+ variations: e.variations,
676
+ id: e.id
677
+ }), r = ae({ item: e, testGroupId: o });
678
+ return {
679
+ ...e,
680
+ ...r
681
+ };
682
+ }, B = (e) => _(e) ? e : !0;
683
+ function ot() {
684
+ return typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : globalThis;
685
+ }
686
+ function rt() {
687
+ const e = ot().fetch;
688
+ if (typeof e > "u")
689
+ throw console.warn(
690
+ `Builder SDK could not find a global fetch function. Make sure you have a polyfill for fetch in your project.
691
+ For more information, read https://github.com/BuilderIO/this-package-uses-fetch`
692
+ ), new Error("Builder SDK could not find a global `fetch` function");
693
+ return e;
694
+ }
695
+ const st = rt();
696
+ function F(e, t = null, n = ".") {
697
+ return Object.keys(e).reduce((o, r) => {
698
+ const s = e[r], i = [t, r].filter(Boolean).join(n);
699
+ return [
700
+ typeof s == "object",
701
+ s !== null,
702
+ !(Array.isArray(s) && s.length === 0)
703
+ ].every(Boolean) ? { ...o, ...F(s, i, n) } : { ...o, [i]: s };
704
+ }, {});
705
+ }
706
+ const Q = "builder.", it = "options.", at = (e) => {
707
+ const t = {};
708
+ return e.forEach((n, o) => {
709
+ t[o] = n;
710
+ }), t;
711
+ }, ct = (e) => {
712
+ if (!e)
713
+ return {};
714
+ const t = ce(e), n = {};
715
+ return Object.keys(t).forEach((o) => {
716
+ if (o.startsWith(Q)) {
717
+ const r = o.replace(Q, "").replace(it, "");
718
+ n[r] = t[o];
719
+ }
720
+ }), n;
721
+ }, lt = () => {
722
+ if (!y())
723
+ return {};
724
+ const e = new URLSearchParams(window.location.search);
725
+ return ct(e);
726
+ }, ce = (e) => e instanceof URLSearchParams ? at(e) : e, dt = "v3", le = (e) => {
727
+ const {
728
+ limit: t = 30,
729
+ userAttributes: n,
730
+ query: o,
731
+ noTraverse: r = !1,
732
+ model: s,
733
+ apiKey: i,
734
+ includeRefs: c = !0,
735
+ enrich: a,
736
+ locale: d,
737
+ apiVersion: m = dt
738
+ } = e;
739
+ if (!i)
740
+ throw new Error("Missing API key");
741
+ if (!["v2", "v3"].includes(m))
742
+ throw new Error(
743
+ `Invalid apiVersion: expected 'v2' or 'v3', received '${m}'`
744
+ );
745
+ const f = new URL(
746
+ `https://cdn.builder.io/api/${m}/content/${s}?apiKey=${i}&limit=${t}&noTraverse=${r}&includeRefs=${c}${d ? `&locale=${d}` : ""}${a ? `&enrich=${a}` : ""}`
747
+ ), h = {
748
+ ...lt(),
749
+ ...ce(e.options || {})
750
+ }, b = F(h);
751
+ for (const p in b)
752
+ f.searchParams.set(p, String(b[p]));
753
+ if (n && f.searchParams.set("userAttributes", JSON.stringify(n)), o) {
754
+ const p = F({ query: o });
755
+ for (const k in p)
756
+ f.searchParams.set(k, JSON.stringify(p[k]));
757
+ }
758
+ return f;
759
+ }, de = (e) => "results" in e;
760
+ async function ut(e) {
761
+ const t = await ft({ ...e, limit: 1 });
762
+ return t && de(t) && t.results[0] || null;
763
+ }
764
+ const pt = async (e) => {
765
+ const t = le(e);
766
+ return await (await st(t.href)).json();
767
+ }, mt = async (e, t) => {
768
+ const n = B(e.canTrack);
769
+ if (!n || !(y() || x === "reactNative"))
770
+ return t;
771
+ try {
772
+ const o = [];
773
+ for (const r of t.results)
774
+ o.push(await nt({ item: r, canTrack: n }));
775
+ t.results = o;
776
+ } catch (o) {
777
+ w.error("Could not process A/B tests. ", o);
778
+ }
779
+ return t;
780
+ };
781
+ async function ft(e) {
782
+ try {
783
+ const t = le(e), n = await pt(e);
784
+ return de(n) ? mt(e, n) : (w.error("Error fetching data. ", { url: t, content: n, options: e }), n);
785
+ } catch (t) {
786
+ return w.error("Error fetching data. ", t), null;
787
+ }
788
+ }
789
+ const ht = () => import("./render-content.03e6b41b.js").then((e) => e.default).catch((e) => {
790
+ throw console.error(
791
+ "Error while attempting to dynamically import component RenderContent at ../../components/render-content/render-content.vue",
792
+ e
793
+ ), e;
794
+ }), bt = S({
795
+ name: "builder-symbol",
796
+ components: { RenderContent: T(ht) },
797
+ props: ["attributes", "symbol", "dynamic"],
798
+ data() {
799
+ var e, t, n;
800
+ return {
801
+ className: [
802
+ ...Object.keys(this.attributes.class),
803
+ "builder-symbol",
804
+ (e = this.symbol) != null && e.inline ? "builder-inline-symbol" : void 0,
805
+ ((t = this.symbol) == null ? void 0 : t.dynamic) || this.dynamic ? "builder-dynamic-symbol" : void 0
806
+ ].filter(Boolean).join(" "),
807
+ contentToUse: (n = this.symbol) == null ? void 0 : n.content
808
+ };
809
+ },
810
+ inject: {
811
+ builderContext: D.key
812
+ },
813
+ mounted() {
814
+ this.fetchContent();
815
+ },
816
+ watch: {
817
+ onUpdateHook0: {
818
+ handler() {
819
+ this.fetchContent();
820
+ },
821
+ immediate: !0
822
+ }
823
+ },
824
+ computed: {
825
+ onUpdateHook0() {
826
+ return {
827
+ 0: this.symbol
828
+ };
829
+ }
830
+ },
831
+ methods: {
832
+ fetchContent() {
833
+ var e, t;
834
+ !this.contentToUse && ((e = this.symbol) == null ? void 0 : e.model) && ((t = this.builderContext) == null ? void 0 : t.apiKey) && ut({
835
+ model: this.symbol.model,
836
+ apiKey: this.builderContext.apiKey,
837
+ apiVersion: this.builderContext.apiVersion,
838
+ query: {
839
+ id: this.symbol.entry
840
+ }
841
+ }).then((n) => {
842
+ n && (this.contentToUse = n);
843
+ }).catch((n) => {
844
+ w.error("Could not fetch symbol content: ", n);
845
+ });
846
+ },
847
+ filterAttrs: function(t = {}, n) {
848
+ const o = "v-on:";
849
+ return Object.keys(t).filter((r) => {
850
+ if (!t[r])
851
+ return !1;
852
+ const s = r.startsWith(o);
853
+ return n ? s : !s;
854
+ }).reduce(
855
+ (r, s) => ({
856
+ ...r,
857
+ [s.replace(o, "")]: t[s]
858
+ }),
859
+ {}
860
+ );
861
+ },
862
+ _classStringToObject(e) {
863
+ const t = {};
864
+ if (typeof e != "string")
865
+ return t;
866
+ const n = e.trim().split(/\s+/);
867
+ for (const o of n)
868
+ t[o] = !0;
869
+ return t;
870
+ }
871
+ }
872
+ }), gt = ["dataSet"];
873
+ function yt(e, t, n, o, r, s) {
874
+ var c, a, d, m;
875
+ const i = I("render-content");
876
+ return l(), u("div", A({
877
+ dataSet: {
878
+ class: e.className
879
+ },
880
+ class: e._classStringToObject(e.className)
881
+ }, e.filterAttrs(e.attributes, !1), P(e.filterAttrs(e.attributes, !0), !0)), [
882
+ M(i, {
883
+ apiVersion: e.builderContext.apiVersion,
884
+ apiKey: e.builderContext.apiKey,
885
+ context: e.builderContext.context,
886
+ customComponents: Object.values(e.builderContext.registeredComponents),
887
+ data: {
888
+ ...(c = e.symbol) == null ? void 0 : c.data,
889
+ ...e.builderContext.localState,
890
+ ...(d = (a = e.contentToUse) == null ? void 0 : a.data) == null ? void 0 : d.state
891
+ },
892
+ model: (m = e.symbol) == null ? void 0 : m.model,
893
+ content: e.contentToUse
894
+ }, null, 8, ["apiVersion", "apiKey", "context", "customComponents", "data", "model", "content"])
895
+ ], 16, gt);
896
+ }
897
+ const on = /* @__PURE__ */ v(bt, [["render", yt]]), kt = S({
898
+ name: "builder-text",
899
+ props: ["text"]
900
+ }), St = ["innerHTML"];
901
+ function vt(e, t, n, o, r, s) {
902
+ return l(), u("span", {
903
+ class: "builder-text",
904
+ innerHTML: e.text,
905
+ style: {
906
+ outline: "none"
907
+ }
908
+ }, null, 8, St);
909
+ }
910
+ const rn = /* @__PURE__ */ v(kt, [["render", vt]]), $t = S({
911
+ name: "builder-video",
912
+ props: [
913
+ "autoPlay",
914
+ "muted",
915
+ "controls",
916
+ "loop",
917
+ "playsInline",
918
+ "attributes",
919
+ "fit",
920
+ "position",
921
+ "video",
922
+ "posterImage"
923
+ ],
924
+ computed: {
925
+ videoProps() {
926
+ return {
927
+ ...this.autoPlay === !0 ? {
928
+ autoPlay: !0
929
+ } : {},
930
+ ...this.muted === !0 ? {
931
+ muted: !0
932
+ } : {},
933
+ ...this.controls === !0 ? {
934
+ controls: !0
935
+ } : {},
936
+ ...this.loop === !0 ? {
937
+ loop: !0
938
+ } : {},
939
+ ...this.playsInline === !0 ? {
940
+ playsInline: !0
941
+ } : {}
942
+ };
943
+ },
944
+ spreadProps() {
945
+ return {
946
+ ...this.attributes,
947
+ ...this.videoProps
948
+ };
949
+ }
950
+ }
951
+ }), wt = ["src", "poster"];
952
+ function Ct(e, t, n, o, r, s) {
953
+ var i;
954
+ return l(), u("video", A({
955
+ style: {
956
+ width: "100%",
957
+ height: "100%",
958
+ ...(i = e.attributes) == null ? void 0 : i.style,
959
+ objectFit: e.fit,
960
+ objectPosition: e.position,
961
+ borderRadius: 1
962
+ },
963
+ src: e.video || "no-src",
964
+ poster: e.posterImage
965
+ }, e.spreadProps), null, 16, wt);
966
+ }
967
+ const sn = /* @__PURE__ */ v($t, [["render", Ct]]), j = (e) => Object.values((e == null ? void 0 : e.variations) || {}), X = ({
968
+ canTrack: e,
969
+ content: t
970
+ }) => !(!(j(t).length > 0) || !e || y());
971
+ function Tt(e, t, n) {
972
+ function o() {
973
+ function i(b, p, k) {
974
+ let R = "";
975
+ if (k) {
976
+ const g = new Date();
977
+ g.setTime(g.getTime() + k * 24 * 60 * 60 * 1e3), R = "; expires=" + g.toUTCString();
978
+ }
979
+ document.cookie = b + "=" + (p || "") + R + "; path=/; Secure; SameSite=None";
980
+ }
981
+ function c(b) {
982
+ const p = b + "=", k = document.cookie.split(";");
983
+ for (let R = 0; R < k.length; R++) {
984
+ let g = k[R];
985
+ for (; g.charAt(0) === " "; )
986
+ g = g.substring(1, g.length);
987
+ if (g.indexOf(p) === 0)
988
+ return g.substring(p.length, g.length);
989
+ }
990
+ return null;
991
+ }
992
+ const a = `builder.tests.${e}`, d = c(a), m = t.map((b) => b.id).concat(e);
993
+ if (d && m.includes(d))
994
+ return d;
995
+ let f = 0;
996
+ const h = Math.random();
997
+ for (let b = 0; b < t.length; b++) {
998
+ const p = t[b], k = p.testRatio;
999
+ if (f += k, h < f)
1000
+ return i(a, p.id), p.id;
1001
+ }
1002
+ return i(a, e), e;
1003
+ }
1004
+ const r = o(), s = document.getElementById(
1005
+ `variants-styles-${e}`
1006
+ );
1007
+ if (n) {
1008
+ s.remove();
1009
+ const i = document.getElementById(
1010
+ `variants-script-${e}`
1011
+ );
1012
+ i == null || i.remove();
1013
+ } else {
1014
+ const i = t.concat({ id: e }).filter((c) => c.id !== r).map((c) => `.variant-${c.id} { display: none; }
1015
+ `).join("");
1016
+ s.innerHTML = i;
1017
+ }
1018
+ }
1019
+ function It(e, t, n) {
1020
+ if (!navigator.cookieEnabled)
1021
+ return;
1022
+ function o(a) {
1023
+ const d = a + "=", m = document.cookie.split(";");
1024
+ for (let f = 0; f < m.length; f++) {
1025
+ let h = m[f];
1026
+ for (; h.charAt(0) === " "; )
1027
+ h = h.substring(1, h.length);
1028
+ if (h.indexOf(d) === 0)
1029
+ return h.substring(d.length, h.length);
1030
+ }
1031
+ return null;
1032
+ }
1033
+ const r = `builder.tests.${t}`, s = o(r), i = document.querySelector(
1034
+ `[builder-content-id="${e}"]`
1035
+ ), c = e === t;
1036
+ if (s === e) {
1037
+ if (c)
1038
+ return;
1039
+ i == null || i.removeAttribute("hidden"), i == null || i.removeAttribute("aria-hidden");
1040
+ } else {
1041
+ c && (n ? i == null || i.remove() : (i == null || i.setAttribute("hidden", "true"), i == null || i.setAttribute("aria-hidden", "true")));
1042
+ return;
1043
+ }
1044
+ }
1045
+ const ue = (e) => e === "react" || e === "reactNative" || e === "vue3" || e === "vue2", Y = "bldrAbTest", pe = "bldrCntntScrpt", Rt = (e, t) => {
1046
+ const n = Tt.toString().replace(/\s+/g, " "), o = It.toString().replace(/\s+/g, " ");
1047
+ return `
1048
+ const ${Y} = ${n}
1049
+ const ${pe} = ${o}
1050
+ ${Y}("${t}", ${JSON.stringify(
1051
+ e
1052
+ )}, ${ue})
1053
+ `;
1054
+ }, an = ({
1055
+ parentContentId: e,
1056
+ contentId: t
1057
+ }) => `
1058
+ ${pe}("${t}", "${e}", ${ue})`, _t = () => import("./render-content.03e6b41b.js").then((e) => e.default).catch((e) => {
1059
+ throw console.error(
1060
+ "Error while attempting to dynamically import component RenderContent at ../render-content/render-content.vue",
1061
+ e
1062
+ ), e;
1063
+ }), At = () => import("./render-inlined-styles.00a6f102.js").then((e) => e.default).catch((e) => {
1064
+ throw console.error(
1065
+ "Error while attempting to dynamically import component RenderInlinedStyles at ../render-inlined-styles.vue",
1066
+ e
1067
+ ), e;
1068
+ }), Et = S({
1069
+ name: "render-content-variants",
1070
+ components: {
1071
+ RenderInlinedStyles: T(At),
1072
+ RenderContent: T(_t)
1073
+ },
1074
+ props: [
1075
+ "content",
1076
+ "canTrack",
1077
+ "apiKey",
1078
+ "apiVersion",
1079
+ "customComponents",
1080
+ "model"
1081
+ ],
1082
+ data() {
1083
+ var e;
1084
+ return {
1085
+ variantScriptStr: Rt(
1086
+ j(this.content).map((t) => ({
1087
+ id: t.id,
1088
+ testRatio: t.testRatio
1089
+ })),
1090
+ ((e = this.content) == null ? void 0 : e.id) || ""
1091
+ ),
1092
+ shouldRenderVariants: X({
1093
+ canTrack: B(this.canTrack),
1094
+ content: this.content
1095
+ }),
1096
+ hideVariantsStyleString: j(this.content).map((t) => `.variant-${t.id} { display: none; } `).join(""),
1097
+ contentToRender: X({
1098
+ canTrack: B(this.canTrack),
1099
+ content: this.content
1100
+ }) ? this.content : tt({
1101
+ item: this.content,
1102
+ canTrack: B(this.canTrack)
1103
+ }),
1104
+ getVariants: j
1105
+ };
1106
+ }
1107
+ });
1108
+ function Vt(e, t, n, o, r, s) {
1109
+ var a, d, m, f;
1110
+ const i = I("render-inlined-styles"), c = I("render-content");
1111
+ return l(), u(C, null, [
1112
+ e.shouldRenderVariants ? (l(), u(C, { key: 0 }, [
1113
+ M(i, {
1114
+ id: `variants-styles-${(a = e.content) == null ? void 0 : a.id}`,
1115
+ styles: e.hideVariantsStyleString
1116
+ }, null, 8, ["id", "styles"]),
1117
+ (l(), V(ge("script"), {
1118
+ id: `variants-script-${(d = e.content) == null ? void 0 : d.id}`,
1119
+ innerHTML: e.variantScriptStr
1120
+ }, null, 8, ["id", "innerHTML"])),
1121
+ (l(!0), u(C, null, N(e.getVariants(e.content), (h, b) => {
1122
+ var p;
1123
+ return l(), V(c, {
1124
+ key: h.id,
1125
+ content: h,
1126
+ apiKey: e.apiKey,
1127
+ apiVersion: e.apiVersion,
1128
+ canTrack: e.canTrack,
1129
+ customComponents: e.customComponents,
1130
+ hideContent: !0,
1131
+ parentContentId: (p = e.content) == null ? void 0 : p.id,
1132
+ isSsrAbTest: e.shouldRenderVariants
1133
+ }, null, 8, ["content", "apiKey", "apiVersion", "canTrack", "customComponents", "parentContentId", "isSsrAbTest"]);
1134
+ }), 128))
1135
+ ], 64)) : $("", !0),
1136
+ M(c, {
1137
+ model: e.model,
1138
+ content: e.contentToRender,
1139
+ apiKey: e.apiKey,
1140
+ apiVersion: e.apiVersion,
1141
+ canTrack: e.canTrack,
1142
+ customComponents: e.customComponents,
1143
+ classNameProp: `variant-${(m = e.content) == null ? void 0 : m.id}`,
1144
+ parentContentId: (f = e.content) == null ? void 0 : f.id,
1145
+ isSsrAbTest: e.shouldRenderVariants
1146
+ }, null, 8, ["model", "content", "apiKey", "apiVersion", "canTrack", "customComponents", "classNameProp", "parentContentId", "isSsrAbTest"])
1147
+ ], 64);
1148
+ }
1149
+ const cn = /* @__PURE__ */ v(Et, [["render", Vt]]);
1150
+ function ln() {
1151
+ return !y() || U() ? !1 : Boolean(location.search.indexOf("builder.preview=") !== -1);
1152
+ }
1153
+ const Ot = (e) => {
1154
+ const t = e.toString().trim();
1155
+ return `return (${!t.startsWith("function") && !t.startsWith("(") ? "function " : ""}${t}).apply(this, arguments)`;
1156
+ }, dn = [], un = ({
1157
+ component: e,
1158
+ ...t
1159
+ }) => ({
1160
+ type: "builder.registerComponent",
1161
+ data: jt(t)
1162
+ }), Bt = (e) => typeof e == "function" ? Ot(e) : z(e), jt = ({
1163
+ inputs: e,
1164
+ ...t
1165
+ }) => ({
1166
+ ...z(t),
1167
+ inputs: e == null ? void 0 : e.map(
1168
+ (n) => Object.entries(n).reduce(
1169
+ (o, [r, s]) => ({
1170
+ ...o,
1171
+ [r]: Bt(s)
1172
+ }),
1173
+ {}
1174
+ )
1175
+ )
1176
+ }), Z = {};
1177
+ function pn(e, t) {
1178
+ let n = Z[e];
1179
+ if (n || (n = Z[e] = []), n.push(t), y()) {
1180
+ const o = {
1181
+ type: "builder.register",
1182
+ data: {
1183
+ type: e,
1184
+ info: t
1185
+ }
1186
+ };
1187
+ try {
1188
+ parent.postMessage(o, "*"), parent !== window && window.postMessage(o, "*");
1189
+ } catch (r) {
1190
+ console.debug("Could not postmessage", r);
1191
+ }
1192
+ }
1193
+ }
1194
+ const ee = {};
1195
+ function mn(e) {
1196
+ if (y()) {
1197
+ Object.assign(ee, e);
1198
+ const t = {
1199
+ type: "builder.settingsChange",
1200
+ data: ee
1201
+ };
1202
+ parent.postMessage(t, "*");
1203
+ }
1204
+ }
1205
+ function Pt() {
1206
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e) {
1207
+ const t = Math.random() * 16 | 0;
1208
+ return (e == "x" ? t : t & 3 | 8).toString(16);
1209
+ });
1210
+ }
1211
+ function me() {
1212
+ return Pt().replace(/-/g, "");
1213
+ }
1214
+ const fe = "builderSessionId", Nt = async ({
1215
+ canTrack: e
1216
+ }) => {
1217
+ if (!e)
1218
+ return;
1219
+ const t = await oe({
1220
+ name: fe,
1221
+ canTrack: e
1222
+ });
1223
+ if (_(t))
1224
+ return t;
1225
+ {
1226
+ const n = Mt();
1227
+ return Lt({ id: n, canTrack: e }), n;
1228
+ }
1229
+ }, Mt = () => me(), Lt = ({
1230
+ id: e,
1231
+ canTrack: t
1232
+ }) => re({ name: fe, value: e, canTrack: t }), he = () => y() && typeof localStorage < "u" ? localStorage : void 0, Ut = ({
1233
+ key: e,
1234
+ canTrack: t
1235
+ }) => {
1236
+ var n;
1237
+ try {
1238
+ return t ? (n = he()) == null ? void 0 : n.getItem(e) : void 0;
1239
+ } catch (o) {
1240
+ console.debug("[LocalStorage] GET error: ", o);
1241
+ return;
1242
+ }
1243
+ }, xt = ({
1244
+ key: e,
1245
+ canTrack: t,
1246
+ value: n
1247
+ }) => {
1248
+ var o;
1249
+ try {
1250
+ t && ((o = he()) == null || o.setItem(e, n));
1251
+ } catch (r) {
1252
+ console.debug("[LocalStorage] SET error: ", r);
1253
+ }
1254
+ }, be = "builderVisitorId", Wt = ({ canTrack: e }) => {
1255
+ if (!e)
1256
+ return;
1257
+ const t = Ut({
1258
+ key: be,
1259
+ canTrack: e
1260
+ });
1261
+ if (_(t))
1262
+ return t;
1263
+ {
1264
+ const n = Ft();
1265
+ return Kt({ id: n, canTrack: e }), n;
1266
+ }
1267
+ }, Ft = () => me(), Kt = ({
1268
+ id: e,
1269
+ canTrack: t
1270
+ }) => xt({
1271
+ key: be,
1272
+ value: e,
1273
+ canTrack: t
1274
+ }), zt = () => {
1275
+ if (y()) {
1276
+ const e = new URL(location.href);
1277
+ return e.pathname === "" && (e.pathname = "/"), e;
1278
+ } else
1279
+ return console.warn("Cannot get location for tracking in non-browser environment"), null;
1280
+ }, Dt = () => typeof navigator == "object" && navigator.userAgent || "", Gt = () => {
1281
+ const e = Dt(), t = {
1282
+ Android() {
1283
+ return e.match(/Android/i);
1284
+ },
1285
+ BlackBerry() {
1286
+ return e.match(/BlackBerry/i);
1287
+ },
1288
+ iOS() {
1289
+ return e.match(/iPhone|iPod/i);
1290
+ },
1291
+ Opera() {
1292
+ return e.match(/Opera Mini/i);
1293
+ },
1294
+ Windows() {
1295
+ return e.match(/IEMobile/i) || e.match(/WPDesktop/i);
1296
+ },
1297
+ any() {
1298
+ return t.Android() || t.BlackBerry() || t.iOS() || t.Opera() || t.Windows() || x === "reactNative";
1299
+ }
1300
+ }, n = e.match(/Tablet|iPad/i), o = zt();
1301
+ return {
1302
+ urlPath: o == null ? void 0 : o.pathname,
1303
+ host: (o == null ? void 0 : o.host) || (o == null ? void 0 : o.hostname),
1304
+ device: n ? "tablet" : t.any() ? "mobile" : "desktop"
1305
+ };
1306
+ }, Ht = async ({
1307
+ canTrack: e
1308
+ }) => {
1309
+ if (!e)
1310
+ return { visitorId: void 0, sessionId: void 0 };
1311
+ const t = await Nt({ canTrack: e }), n = Wt({ canTrack: e });
1312
+ return {
1313
+ sessionId: t,
1314
+ visitorId: n
1315
+ };
1316
+ }, Jt = async ({
1317
+ type: e,
1318
+ canTrack: t,
1319
+ apiKey: n,
1320
+ metadata: o,
1321
+ ...r
1322
+ }) => ({
1323
+ type: e,
1324
+ data: {
1325
+ ...r,
1326
+ metadata: {
1327
+ url: location.href,
1328
+ ...o
1329
+ },
1330
+ ...await Ht({ canTrack: t }),
1331
+ userAttributes: Gt(),
1332
+ ownerId: n
1333
+ }
1334
+ });
1335
+ async function qt(e) {
1336
+ if (!e.apiKey) {
1337
+ w.error(
1338
+ "Missing API key for track call. Please provide your API key."
1339
+ );
1340
+ return;
1341
+ }
1342
+ if (!!e.canTrack && !U() && !!(y() || x === "reactNative"))
1343
+ return fetch("https://builder.io/api/v1/track", {
1344
+ method: "POST",
1345
+ body: JSON.stringify({
1346
+ events: [await Jt(e)]
1347
+ }),
1348
+ headers: {
1349
+ "content-type": "application/json"
1350
+ },
1351
+ mode: "cors"
1352
+ }).catch((t) => {
1353
+ console.error("Failed to track: ", t);
1354
+ });
1355
+ }
1356
+ const fn = (e) => qt({ ...e, canTrack: !0 });
1357
+ export {
1358
+ Xt as B,
1359
+ Zt as C,
1360
+ en as F,
1361
+ tn as I,
1362
+ nn as S,
1363
+ x as T,
1364
+ sn as V,
1365
+ v as _,
1366
+ Yt as a,
1367
+ y as b,
1368
+ _ as c,
1369
+ on as d,
1370
+ rn as e,
1371
+ z as f,
1372
+ ve as g,
1373
+ dn as h,
1374
+ U as i,
1375
+ an as j,
1376
+ D as k,
1377
+ w as l,
1378
+ un as m,
1379
+ qt as n,
1380
+ ln as o,
1381
+ ut as p,
1382
+ st as q,
1383
+ pn as r,
1384
+ Ot as s,
1385
+ mn as t,
1386
+ ft as u,
1387
+ mt as v,
1388
+ fn as w,
1389
+ Fe as x,
1390
+ cn as y,
1391
+ Ke as z
1392
+ };