@builder.io/sdk-vue 0.3.1 → 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 (113) 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.b09f50da.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.c14ab4be.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.2b74ef23.cjs → render-component.89838d4a.cjs} +1 -1
  13. package/packages/_vue2/dist/{render-component.d7f78e3d.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.a8717618.js → render-repeated-block.7a35249f.js} +2 -2
  19. package/packages/_vue2/dist/{render-repeated-block.58333f68.cjs → render-repeated-block.aeeee917.cjs} +1 -1
  20. package/packages/_vue2/dist/{render-styles.a49c2339.js → render-styles.0e5b622f.js} +3 -3
  21. package/packages/_vue2/dist/{render-styles.4a1edc25.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 +11 -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/wrap-component-ref.d.ts +6 -0
  33. package/packages/_vue2/dist/src/components/render-content-variants/helpers.d.ts +17 -0
  34. package/packages/_vue2/dist/src/components/render-content-variants/render-content-variants.vue.d.ts +29 -0
  35. package/packages/_vue2/dist/src/components/render-inlined-styles.vue.d.ts +4 -6
  36. package/packages/_vue2/dist/src/constants/sdk-version.d.ts +1 -1
  37. package/packages/_vue2/dist/src/functions/get-content/index.d.ts +7 -2
  38. package/packages/_vue2/dist/src/functions/get-content/types.d.ts +6 -0
  39. package/packages/_vue2/dist/src/helpers/ab-tests.d.ts +8 -7
  40. package/packages/_vue2/dist/src/helpers/canTrack.d.ts +1 -0
  41. package/packages/_vue2/dist/src/helpers/cookie.d.ts +7 -3
  42. package/packages/_vue2/dist/src/helpers/logger.d.ts +1 -0
  43. package/packages/_vue2/dist/src/index-helpers/blocks-exports.d.ts +1 -1
  44. package/packages/_vue2/dist/src/index.d.ts +8 -7
  45. package/packages/_vue2/dist/src/scripts/init-editing.d.ts +1 -0
  46. package/packages/_vue2/dist/src/types/builder-content.d.ts +1 -3
  47. package/packages/_vue2/dist/src/types/targets.d.ts +3 -0
  48. package/packages/_vue2/dist/style.css +1 -1
  49. package/packages/_vue3/dist/block-styles.10cf87f2.cjs +1 -0
  50. package/packages/_vue3/dist/{block-styles.ae0db517.js → block-styles.bce8f3cd.js} +10 -9
  51. package/packages/_vue3/dist/css.136ed67a.js +75 -0
  52. package/packages/_vue3/dist/css.ecfa9f0c.cjs +6 -0
  53. package/packages/_vue3/dist/evaluate.38cae9b6.js +63 -0
  54. package/packages/_vue3/dist/evaluate.e68b2bb7.cjs +4 -0
  55. package/packages/_vue3/dist/index.32c5f4e2.js +1392 -0
  56. package/packages/_vue3/dist/index.b0a65841.cjs +32 -0
  57. package/packages/_vue3/dist/render-block.9e2345a9.cjs +3 -0
  58. package/packages/_vue3/dist/{render-block.c70eab34.js → render-block.d226379d.js} +16 -15
  59. package/packages/_vue3/dist/{render-component.023d5d67.cjs → render-component.b3f51b9c.cjs} +1 -1
  60. package/packages/_vue3/dist/{render-component.9b027ad2.js → render-component.b49ee7fc.js} +3 -3
  61. package/packages/_vue3/dist/render-content.03e6b41b.js +1355 -0
  62. package/packages/_vue3/dist/render-content.e7b1a19e.cjs +1 -0
  63. package/packages/_vue3/dist/render-inlined-styles.00a6f102.js +16 -0
  64. package/packages/_vue3/dist/render-inlined-styles.03a0b90a.cjs +1 -0
  65. package/packages/_vue3/dist/{render-repeated-block.1743f160.cjs → render-repeated-block.671f867f.cjs} +1 -1
  66. package/packages/_vue3/dist/{render-repeated-block.1b229997.js → render-repeated-block.a26cf553.js} +2 -2
  67. package/packages/_vue3/dist/{render-styles.f8cb298d.js → render-styles.665ea958.js} +3 -3
  68. package/packages/_vue3/dist/{render-styles.70e1b259.cjs → render-styles.90c0cc7c.cjs} +3 -3
  69. package/packages/_vue3/dist/sdk.cjs +1 -1
  70. package/packages/_vue3/dist/sdk.js +17 -22
  71. package/packages/_vue3/dist/src/blocks/button/button.vue.d.ts +1 -1
  72. package/packages/_vue3/dist/src/blocks/columns/columns.vue.d.ts +1 -1
  73. package/packages/_vue3/dist/src/blocks/custom-code/custom-code.vue.d.ts +1 -1
  74. package/packages/_vue3/dist/src/blocks/image/image.vue.d.ts +1 -1
  75. package/packages/_vue3/dist/src/blocks/symbol/symbol.vue.d.ts +1 -1
  76. package/packages/_vue3/dist/src/components/render-blocks.vue.d.ts +1 -1
  77. package/packages/_vue3/dist/src/components/render-content/render-content.types.d.ts +11 -2
  78. package/packages/_vue3/dist/src/components/render-content/render-content.vue.d.ts +20 -3
  79. package/packages/_vue3/dist/src/components/render-content/wrap-component-ref.d.ts +6 -0
  80. package/packages/_vue3/dist/src/components/render-content-variants/helpers.d.ts +17 -0
  81. package/packages/_vue3/dist/src/components/render-content-variants/render-content-variants.vue.d.ts +29 -0
  82. package/packages/_vue3/dist/src/components/render-inlined-styles.vue.d.ts +4 -6
  83. package/packages/_vue3/dist/src/constants/sdk-version.d.ts +1 -1
  84. package/packages/_vue3/dist/src/functions/get-content/index.d.ts +7 -2
  85. package/packages/_vue3/dist/src/functions/get-content/types.d.ts +6 -0
  86. package/packages/_vue3/dist/src/helpers/ab-tests.d.ts +8 -7
  87. package/packages/_vue3/dist/src/helpers/canTrack.d.ts +1 -0
  88. package/packages/_vue3/dist/src/helpers/cookie.d.ts +7 -3
  89. package/packages/_vue3/dist/src/helpers/logger.d.ts +1 -0
  90. package/packages/_vue3/dist/src/index-helpers/blocks-exports.d.ts +1 -1
  91. package/packages/_vue3/dist/src/index.d.ts +8 -7
  92. package/packages/_vue3/dist/src/scripts/init-editing.d.ts +1 -0
  93. package/packages/_vue3/dist/src/types/builder-content.d.ts +1 -3
  94. package/packages/_vue3/dist/src/types/targets.d.ts +3 -0
  95. package/packages/_vue3/dist/style.css +1 -1
  96. package/packages/_vue2/dist/block-styles.ae2c8895.cjs +0 -1
  97. package/packages/_vue2/dist/css.e6670a83.cjs +0 -6
  98. package/packages/_vue2/dist/css.fb10bcf8.js +0 -74
  99. package/packages/_vue2/dist/index.36f3710d.js +0 -2578
  100. package/packages/_vue2/dist/index.ae3f58f8.cjs +0 -29
  101. package/packages/_vue2/dist/render-block.74bc834e.cjs +0 -3
  102. package/packages/_vue2/dist/render-inlined-styles.04d09a3c.js +0 -34
  103. package/packages/_vue2/dist/render-inlined-styles.c8d80bc4.cjs +0 -1
  104. package/packages/_vue2/dist/src/functions/get-content/ab-testing.d.ts +0 -5
  105. package/packages/_vue3/dist/block-styles.a1577ff9.cjs +0 -1
  106. package/packages/_vue3/dist/css.c52c28f5.js +0 -74
  107. package/packages/_vue3/dist/css.eaf664fa.cjs +0 -6
  108. package/packages/_vue3/dist/index.8ed3c046.cjs +0 -29
  109. package/packages/_vue3/dist/index.d8d44f06.js +0 -2566
  110. package/packages/_vue3/dist/render-block.8f200c30.cjs +0 -3
  111. package/packages/_vue3/dist/render-inlined-styles.0b6cafc4.js +0 -32
  112. package/packages/_vue3/dist/render-inlined-styles.e3ea32fb.cjs +0 -1
  113. package/packages/_vue3/dist/src/functions/get-content/ab-testing.d.ts +0 -5
@@ -0,0 +1,1355 @@
1
+ import { defineComponent as g, openBlock as m, createElementBlock as b, mergeProps as U, toHandlers as P, normalizeClass as j, markRaw as L, defineAsyncComponent as R, resolveComponent as w, createBlock as v, resolveDynamicComponent as M, createCommentVNode as C } from "vue";
2
+ import { s as x, _ as y, i as f, B as W, C as _, F as B, I as q, S as N, d as O, e as D, V as K, r as z, b as k, T as $, c as J, h as Y, j as G, k as X, l as Q, m as Z, n as I, o as ee, p as te, q as ne } from "./index.32c5f4e2.js";
3
+ import { e as E } from "./evaluate.38cae9b6.js";
4
+ const ae = {
5
+ name: "Core:Button",
6
+ image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F81a15681c3e74df09677dfc57a615b13",
7
+ defaultStyles: {
8
+ appearance: "none",
9
+ paddingTop: "15px",
10
+ paddingBottom: "15px",
11
+ paddingLeft: "25px",
12
+ paddingRight: "25px",
13
+ backgroundColor: "#000000",
14
+ color: "white",
15
+ borderRadius: "4px",
16
+ textAlign: "center",
17
+ cursor: "pointer"
18
+ },
19
+ inputs: [
20
+ {
21
+ name: "text",
22
+ type: "text",
23
+ defaultValue: "Click me!",
24
+ bubble: !0
25
+ },
26
+ {
27
+ name: "link",
28
+ type: "url",
29
+ bubble: !0
30
+ },
31
+ {
32
+ name: "openLinkInNewTab",
33
+ type: "boolean",
34
+ defaultValue: !1,
35
+ friendlyName: "Open link in new tab"
36
+ }
37
+ ],
38
+ static: !0,
39
+ noWrap: !0
40
+ }, oe = {
41
+ name: "Columns",
42
+ inputs: [
43
+ {
44
+ name: "columns",
45
+ type: "array",
46
+ broadcast: !0,
47
+ subFields: [
48
+ {
49
+ name: "blocks",
50
+ type: "array",
51
+ hideFromUI: !0,
52
+ defaultValue: [
53
+ {
54
+ "@type": "@builder.io/sdk:Element",
55
+ responsiveStyles: {
56
+ large: {
57
+ display: "flex",
58
+ flexDirection: "column",
59
+ alignItems: "stretch",
60
+ flexShrink: "0",
61
+ position: "relative",
62
+ marginTop: "30px",
63
+ textAlign: "center",
64
+ lineHeight: "normal",
65
+ height: "auto",
66
+ minHeight: "20px",
67
+ minWidth: "20px",
68
+ overflow: "hidden"
69
+ }
70
+ },
71
+ component: {
72
+ name: "Image",
73
+ options: {
74
+ image: "https://builder.io/api/v1/image/assets%2Fpwgjf0RoYWbdnJSbpBAjXNRMe9F2%2Ffb27a7c790324294af8be1c35fe30f4d",
75
+ backgroundPosition: "center",
76
+ backgroundSize: "cover",
77
+ aspectRatio: 0.7004048582995948
78
+ }
79
+ }
80
+ },
81
+ {
82
+ "@type": "@builder.io/sdk:Element",
83
+ responsiveStyles: {
84
+ large: {
85
+ display: "flex",
86
+ flexDirection: "column",
87
+ alignItems: "stretch",
88
+ flexShrink: "0",
89
+ position: "relative",
90
+ marginTop: "30px",
91
+ textAlign: "center",
92
+ lineHeight: "normal",
93
+ height: "auto"
94
+ }
95
+ },
96
+ component: {
97
+ name: "Text",
98
+ options: {
99
+ text: "<p>Enter some text...</p>"
100
+ }
101
+ }
102
+ }
103
+ ]
104
+ },
105
+ {
106
+ name: "width",
107
+ type: "number",
108
+ hideFromUI: !0,
109
+ helperText: "Width %, e.g. set to 50 to fill half of the space"
110
+ },
111
+ {
112
+ name: "link",
113
+ type: "url",
114
+ helperText: "Optionally set a url that clicking this column will link to"
115
+ }
116
+ ],
117
+ defaultValue: [
118
+ {
119
+ blocks: [
120
+ {
121
+ "@type": "@builder.io/sdk:Element",
122
+ responsiveStyles: {
123
+ large: {
124
+ display: "flex",
125
+ flexDirection: "column",
126
+ alignItems: "stretch",
127
+ flexShrink: "0",
128
+ position: "relative",
129
+ marginTop: "30px",
130
+ textAlign: "center",
131
+ lineHeight: "normal",
132
+ height: "auto",
133
+ minHeight: "20px",
134
+ minWidth: "20px",
135
+ overflow: "hidden"
136
+ }
137
+ },
138
+ component: {
139
+ name: "Image",
140
+ options: {
141
+ image: "https://builder.io/api/v1/image/assets%2Fpwgjf0RoYWbdnJSbpBAjXNRMe9F2%2Ffb27a7c790324294af8be1c35fe30f4d",
142
+ backgroundPosition: "center",
143
+ backgroundSize: "cover",
144
+ aspectRatio: 0.7004048582995948
145
+ }
146
+ }
147
+ },
148
+ {
149
+ "@type": "@builder.io/sdk:Element",
150
+ responsiveStyles: {
151
+ large: {
152
+ display: "flex",
153
+ flexDirection: "column",
154
+ alignItems: "stretch",
155
+ flexShrink: "0",
156
+ position: "relative",
157
+ marginTop: "30px",
158
+ textAlign: "center",
159
+ lineHeight: "normal",
160
+ height: "auto"
161
+ }
162
+ },
163
+ component: {
164
+ name: "Text",
165
+ options: {
166
+ text: "<p>Enter some text...</p>"
167
+ }
168
+ }
169
+ }
170
+ ]
171
+ },
172
+ {
173
+ blocks: [
174
+ {
175
+ "@type": "@builder.io/sdk:Element",
176
+ responsiveStyles: {
177
+ large: {
178
+ display: "flex",
179
+ flexDirection: "column",
180
+ alignItems: "stretch",
181
+ flexShrink: "0",
182
+ position: "relative",
183
+ marginTop: "30px",
184
+ textAlign: "center",
185
+ lineHeight: "normal",
186
+ height: "auto",
187
+ minHeight: "20px",
188
+ minWidth: "20px",
189
+ overflow: "hidden"
190
+ }
191
+ },
192
+ component: {
193
+ name: "Image",
194
+ options: {
195
+ image: "https://builder.io/api/v1/image/assets%2Fpwgjf0RoYWbdnJSbpBAjXNRMe9F2%2Ffb27a7c790324294af8be1c35fe30f4d",
196
+ backgroundPosition: "center",
197
+ backgroundSize: "cover",
198
+ aspectRatio: 0.7004048582995948
199
+ }
200
+ }
201
+ },
202
+ {
203
+ "@type": "@builder.io/sdk:Element",
204
+ responsiveStyles: {
205
+ large: {
206
+ display: "flex",
207
+ flexDirection: "column",
208
+ alignItems: "stretch",
209
+ flexShrink: "0",
210
+ position: "relative",
211
+ marginTop: "30px",
212
+ textAlign: "center",
213
+ lineHeight: "normal",
214
+ height: "auto"
215
+ }
216
+ },
217
+ component: {
218
+ name: "Text",
219
+ options: {
220
+ text: "<p>Enter some text...</p>"
221
+ }
222
+ }
223
+ }
224
+ ]
225
+ }
226
+ ],
227
+ onChange: x((e) => {
228
+ function n() {
229
+ t.forEach((a) => {
230
+ a.delete("width");
231
+ });
232
+ }
233
+ const t = e.get("columns");
234
+ Array.isArray(t) && !!t.find(
235
+ (o) => o.get("width")
236
+ ) && (!!t.find(
237
+ (i) => !i.get("width")
238
+ ) || t.reduce((l, r) => l + r.get("width"), 0) !== 100) && n();
239
+ })
240
+ },
241
+ {
242
+ name: "space",
243
+ type: "number",
244
+ defaultValue: 20,
245
+ helperText: "Size of gap between columns",
246
+ advanced: !0
247
+ },
248
+ {
249
+ name: "stackColumnsAt",
250
+ type: "string",
251
+ defaultValue: "tablet",
252
+ helperText: "Convert horizontal columns to vertical at what device size",
253
+ enum: ["tablet", "mobile", "never"],
254
+ advanced: !0
255
+ },
256
+ {
257
+ name: "reverseColumnsWhenStacked",
258
+ type: "boolean",
259
+ defaultValue: !1,
260
+ helperText: "When stacking columns for mobile devices, reverse the ordering",
261
+ advanced: !0
262
+ }
263
+ ]
264
+ }, ie = {
265
+ name: "Fragment",
266
+ static: !0,
267
+ hidden: !0,
268
+ canHaveChildren: !0,
269
+ noWrap: !0
270
+ }, se = {
271
+ name: "Image",
272
+ static: !0,
273
+ image: "https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-insert_photo-24px.svg?alt=media&token=4e5d0ef4-f5e8-4e57-b3a9-38d63a9b9dc4",
274
+ defaultStyles: {
275
+ position: "relative",
276
+ minHeight: "20px",
277
+ minWidth: "20px",
278
+ overflow: "hidden"
279
+ },
280
+ canHaveChildren: !0,
281
+ inputs: [
282
+ {
283
+ name: "image",
284
+ type: "file",
285
+ bubble: !0,
286
+ allowedFileTypes: ["jpeg", "jpg", "png", "svg"],
287
+ required: !0,
288
+ defaultValue: "https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F72c80f114dc149019051b6852a9e3b7a",
289
+ onChange: x(
290
+ (e) => {
291
+ e.delete("srcset"), e.delete("noWebp");
292
+ function t(s, l = 6e4) {
293
+ return new Promise((r, c) => {
294
+ const d = document.createElement("img");
295
+ let u = !1;
296
+ d.onload = () => {
297
+ u = !0, r(d);
298
+ }, d.addEventListener("error", (p) => {
299
+ console.warn("Image load failed", p.error), c(p.error);
300
+ }), d.src = s, setTimeout(() => {
301
+ u || c(new Error("Image load timed out"));
302
+ }, l);
303
+ });
304
+ }
305
+ function a(s) {
306
+ return Math.round(s * 1e3) / 1e3;
307
+ }
308
+ const o = e.get("image"), i = e.get("aspectRatio");
309
+ if (fetch(o).then((s) => s.blob()).then((s) => {
310
+ s.type.includes("svg") && e.set("noWebp", !0);
311
+ }), o && (!i || i === 0.7041))
312
+ return t(o).then((s) => {
313
+ const l = e.get("aspectRatio");
314
+ e.get("image") === o && (!l || l === 0.7041) && s.width && s.height && (e.set("aspectRatio", a(s.height / s.width)), e.set("height", s.height), e.set("width", s.width));
315
+ });
316
+ }
317
+ )
318
+ },
319
+ {
320
+ name: "backgroundSize",
321
+ type: "text",
322
+ defaultValue: "cover",
323
+ enum: [
324
+ {
325
+ label: "contain",
326
+ value: "contain",
327
+ helperText: "The image should never get cropped"
328
+ },
329
+ {
330
+ label: "cover",
331
+ value: "cover",
332
+ helperText: "The image should fill it's box, cropping when needed"
333
+ }
334
+ ]
335
+ },
336
+ {
337
+ name: "backgroundPosition",
338
+ type: "text",
339
+ defaultValue: "center",
340
+ enum: [
341
+ "center",
342
+ "top",
343
+ "left",
344
+ "right",
345
+ "bottom",
346
+ "top left",
347
+ "top right",
348
+ "bottom left",
349
+ "bottom right"
350
+ ]
351
+ },
352
+ {
353
+ name: "altText",
354
+ type: "string",
355
+ helperText: "Text to display when the user has images off"
356
+ },
357
+ {
358
+ name: "height",
359
+ type: "number",
360
+ hideFromUI: !0
361
+ },
362
+ {
363
+ name: "width",
364
+ type: "number",
365
+ hideFromUI: !0
366
+ },
367
+ {
368
+ name: "sizes",
369
+ type: "string",
370
+ hideFromUI: !0
371
+ },
372
+ {
373
+ name: "srcset",
374
+ type: "string",
375
+ hideFromUI: !0
376
+ },
377
+ {
378
+ name: "lazy",
379
+ type: "boolean",
380
+ defaultValue: !0,
381
+ hideFromUI: !0
382
+ },
383
+ {
384
+ name: "fitContent",
385
+ type: "boolean",
386
+ helperText: "When child blocks are provided, fit to them instead of using the image's aspect ratio",
387
+ defaultValue: !0
388
+ },
389
+ {
390
+ name: "aspectRatio",
391
+ type: "number",
392
+ helperText: "This is the ratio of height/width, e.g. set to 1.5 for a 300px wide and 200px tall photo. Set to 0 to not force the image to maintain it's aspect ratio",
393
+ advanced: !0,
394
+ defaultValue: 0.7041
395
+ }
396
+ ]
397
+ }, re = {
398
+ name: "Core:Section",
399
+ static: !0,
400
+ image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F682efef23ace49afac61748dd305c70a",
401
+ inputs: [
402
+ {
403
+ name: "maxWidth",
404
+ type: "number",
405
+ defaultValue: 1200
406
+ },
407
+ {
408
+ name: "lazyLoad",
409
+ type: "boolean",
410
+ defaultValue: !1,
411
+ advanced: !0,
412
+ description: "Only render this section when in view"
413
+ }
414
+ ],
415
+ defaultStyles: {
416
+ paddingLeft: "20px",
417
+ paddingRight: "20px",
418
+ paddingTop: "50px",
419
+ paddingBottom: "50px",
420
+ marginTop: "0px",
421
+ width: "100vw",
422
+ marginLeft: "calc(50% - 50vw)"
423
+ },
424
+ canHaveChildren: !0,
425
+ defaultChildren: [
426
+ {
427
+ "@type": "@builder.io/sdk:Element",
428
+ responsiveStyles: {
429
+ large: {
430
+ textAlign: "center"
431
+ }
432
+ },
433
+ component: {
434
+ name: "Text",
435
+ options: {
436
+ text: "<p><b>I am a section! My content keeps from getting too wide, so that it's easy to read even on big screens.</b></p><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur</p>"
437
+ }
438
+ }
439
+ }
440
+ ]
441
+ }, le = {
442
+ name: "Symbol",
443
+ noWrap: !0,
444
+ static: !0,
445
+ inputs: [
446
+ {
447
+ name: "symbol",
448
+ type: "uiSymbol"
449
+ },
450
+ {
451
+ name: "dataOnly",
452
+ helperText: "Make this a data symbol that doesn't display any UI",
453
+ type: "boolean",
454
+ defaultValue: !1,
455
+ advanced: !0,
456
+ hideFromUI: !0
457
+ },
458
+ {
459
+ name: "inheritState",
460
+ helperText: "Inherit the parent component state and data",
461
+ type: "boolean",
462
+ defaultValue: !1,
463
+ advanced: !0
464
+ },
465
+ {
466
+ name: "renderToLiquid",
467
+ helperText: "Render this symbols contents to liquid. Turn off to fetch with javascript and use custom targeting",
468
+ type: "boolean",
469
+ defaultValue: !1,
470
+ advanced: !0,
471
+ hideFromUI: !0
472
+ },
473
+ {
474
+ name: "useChildren",
475
+ hideFromUI: !0,
476
+ type: "boolean"
477
+ }
478
+ ]
479
+ }, de = {
480
+ name: "Text",
481
+ static: !0,
482
+ image: "https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-text_fields-24px%20(1).svg?alt=media&token=12177b73-0ee3-42ca-98c6-0dd003de1929",
483
+ inputs: [
484
+ {
485
+ name: "text",
486
+ type: "html",
487
+ required: !0,
488
+ autoFocus: !0,
489
+ bubble: !0,
490
+ defaultValue: "Enter some text..."
491
+ }
492
+ ],
493
+ defaultStyles: {
494
+ lineHeight: "normal",
495
+ height: "auto",
496
+ textAlign: "center"
497
+ }
498
+ }, ce = {
499
+ name: "Video",
500
+ canHaveChildren: !0,
501
+ defaultStyles: {
502
+ minHeight: "20px",
503
+ minWidth: "20px"
504
+ },
505
+ image: "https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-videocam-24px%20(1).svg?alt=media&token=49a84e4a-b20e-4977-a650-047f986874bb",
506
+ inputs: [
507
+ {
508
+ name: "video",
509
+ type: "file",
510
+ allowedFileTypes: ["mp4"],
511
+ bubble: !0,
512
+ defaultValue: "https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/assets%2FKQlEmWDxA0coC3PK6UvkrjwkIGI2%2F28cb070609f546cdbe5efa20e931aa4b?alt=media&token=912e9551-7a7c-4dfb-86b6-3da1537d1a7f",
513
+ required: !0
514
+ },
515
+ {
516
+ name: "posterImage",
517
+ type: "file",
518
+ allowedFileTypes: ["jpeg", "png"],
519
+ helperText: "Image to show before the video plays"
520
+ },
521
+ {
522
+ name: "autoPlay",
523
+ type: "boolean",
524
+ defaultValue: !0
525
+ },
526
+ {
527
+ name: "controls",
528
+ type: "boolean",
529
+ defaultValue: !1
530
+ },
531
+ {
532
+ name: "muted",
533
+ type: "boolean",
534
+ defaultValue: !0
535
+ },
536
+ {
537
+ name: "loop",
538
+ type: "boolean",
539
+ defaultValue: !0
540
+ },
541
+ {
542
+ name: "playsInline",
543
+ type: "boolean",
544
+ defaultValue: !0
545
+ },
546
+ {
547
+ name: "fit",
548
+ type: "text",
549
+ defaultValue: "cover",
550
+ enum: ["contain", "cover", "fill", "auto"]
551
+ },
552
+ {
553
+ name: "fitContent",
554
+ type: "boolean",
555
+ helperText: "When child blocks are provided, fit to them instead of using the aspect ratio",
556
+ defaultValue: !0,
557
+ advanced: !0
558
+ },
559
+ {
560
+ name: "position",
561
+ type: "text",
562
+ defaultValue: "center",
563
+ enum: [
564
+ "center",
565
+ "top",
566
+ "left",
567
+ "right",
568
+ "bottom",
569
+ "top left",
570
+ "top right",
571
+ "bottom left",
572
+ "bottom right"
573
+ ]
574
+ },
575
+ {
576
+ name: "height",
577
+ type: "number",
578
+ advanced: !0
579
+ },
580
+ {
581
+ name: "width",
582
+ type: "number",
583
+ advanced: !0
584
+ },
585
+ {
586
+ name: "aspectRatio",
587
+ type: "number",
588
+ advanced: !0,
589
+ defaultValue: 0.7004048582995948
590
+ },
591
+ {
592
+ name: "lazyLoad",
593
+ type: "boolean",
594
+ helperText: 'Load this video "lazily" - as in only when a user scrolls near the video. Recommended for optmized performance and bandwidth consumption',
595
+ defaultValue: !0,
596
+ advanced: !0
597
+ }
598
+ ]
599
+ }, ue = {
600
+ name: "Embed",
601
+ static: !0,
602
+ inputs: [
603
+ {
604
+ name: "url",
605
+ type: "url",
606
+ required: !0,
607
+ defaultValue: "",
608
+ helperText: "e.g. enter a youtube url, google map, etc",
609
+ onChange: x(
610
+ (e) => {
611
+ const n = e.get("url");
612
+ if (n)
613
+ return e.set("content", "Loading..."), fetch(
614
+ `https://iframe.ly/api/iframely?url=${n}&api_key=ae0e60e78201a3f2b0de4b`
615
+ ).then((a) => a.json()).then((a) => {
616
+ e.get("url") === n && (a.html ? e.set("content", a.html) : e.set("content", "Invalid url, please try another"));
617
+ }).catch((a) => {
618
+ e.set(
619
+ "content",
620
+ "There was an error embedding this URL, please try again or another URL"
621
+ );
622
+ });
623
+ e.delete("content");
624
+ }
625
+ )
626
+ },
627
+ {
628
+ name: "content",
629
+ type: "html",
630
+ defaultValue: '<div style="padding: 20px; text-align: center">(Choose an embed URL)<div>',
631
+ hideFromUI: !0
632
+ }
633
+ ]
634
+ }, pe = [
635
+ "text/javascript",
636
+ "application/javascript",
637
+ "application/ecmascript"
638
+ ], me = (e) => pe.includes(e.type), he = g({
639
+ name: "builder-embed",
640
+ props: ["content"],
641
+ data() {
642
+ return { scriptsInserted: [], scriptsRun: [], ranInitFn: !1 };
643
+ },
644
+ watch: {
645
+ onUpdateHook0: {
646
+ handler() {
647
+ this.$refs.elem && !this.ranInitFn && (this.ranInitFn = !0, this.findAndRunScripts());
648
+ },
649
+ immediate: !0
650
+ }
651
+ },
652
+ computed: {
653
+ onUpdateHook0() {
654
+ return {
655
+ 0: this.$refs.elem,
656
+ 1: this.ranInitFn
657
+ };
658
+ }
659
+ },
660
+ methods: {
661
+ findAndRunScripts() {
662
+ if (!this.$refs.elem || !this.$refs.elem.getElementsByTagName)
663
+ return;
664
+ const e = this.$refs.elem.getElementsByTagName("script");
665
+ for (let n = 0; n < e.length; n++) {
666
+ const t = e[n];
667
+ if (t.src && !this.scriptsInserted.includes(t.src)) {
668
+ this.scriptsInserted.push(t.src);
669
+ const a = document.createElement("script");
670
+ a.async = !0, a.src = t.src, document.head.appendChild(a);
671
+ } else if (me(t) && !this.scriptsRun.includes(t.innerText))
672
+ try {
673
+ this.scriptsRun.push(t.innerText), new Function(t.innerText)();
674
+ } catch (a) {
675
+ console.warn("`Embed`: Error running script:", a);
676
+ }
677
+ }
678
+ }
679
+ }
680
+ }), fe = ["innerHTML"];
681
+ function ge(e, n, t, a, o, i) {
682
+ return m(), b("div", {
683
+ class: "builder-embed",
684
+ ref: "elem",
685
+ innerHTML: e.content
686
+ }, null, 8, fe);
687
+ }
688
+ const be = /* @__PURE__ */ y(he, [["render", ge]]), ye = g({
689
+ name: "builder-img-component",
690
+ props: [
691
+ "backgroundSize",
692
+ "backgroundPosition",
693
+ "imgSrc",
694
+ "altText",
695
+ "image",
696
+ "attributes"
697
+ ],
698
+ data() {
699
+ return { isEditing: f };
700
+ },
701
+ methods: {
702
+ filterAttrs: function(n = {}, t) {
703
+ const a = "v-on:";
704
+ return Object.keys(n).filter((o) => {
705
+ if (!n[o])
706
+ return !1;
707
+ const i = o.startsWith(a);
708
+ return t ? i : !i;
709
+ }).reduce(
710
+ (o, i) => ({
711
+ ...o,
712
+ [i.replace(a, "")]: n[i]
713
+ }),
714
+ {}
715
+ );
716
+ }
717
+ }
718
+ }), ve = ["alt", "src"];
719
+ function Ce(e, n, t, a, o, i) {
720
+ return m(), b("img", U({
721
+ style: {
722
+ objectFit: e.backgroundSize || "cover",
723
+ objectPosition: e.backgroundPosition || "center"
724
+ },
725
+ key: e.isEditing() && e.imgSrc || "default-key",
726
+ alt: e.altText,
727
+ src: e.imgSrc || e.image
728
+ }, e.filterAttrs(e.attributes, !1), P(e.filterAttrs(e.attributes, !0), !0)), null, 16, ve);
729
+ }
730
+ const ke = /* @__PURE__ */ y(ye, [["render", Ce]]), xe = {
731
+ name: "Raw:Img",
732
+ hideFromInsertMenu: !0,
733
+ image: "https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-insert_photo-24px.svg?alt=media&token=4e5d0ef4-f5e8-4e57-b3a9-38d63a9b9dc4",
734
+ inputs: [
735
+ {
736
+ name: "image",
737
+ bubble: !0,
738
+ type: "file",
739
+ allowedFileTypes: ["jpeg", "jpg", "png", "svg"],
740
+ required: !0
741
+ }
742
+ ],
743
+ noWrap: !0,
744
+ static: !0
745
+ }, Se = g({
746
+ name: "builder-custom-code",
747
+ props: ["replaceNodes", "code"],
748
+ data() {
749
+ return { scriptsInserted: [], scriptsRun: [] };
750
+ },
751
+ mounted() {
752
+ this.findAndRunScripts();
753
+ },
754
+ methods: {
755
+ findAndRunScripts() {
756
+ if (this.$refs.elem && this.$refs.elem.getElementsByTagName && typeof window < "u") {
757
+ const e = this.$refs.elem.getElementsByTagName("script");
758
+ for (let n = 0; n < e.length; n++) {
759
+ const t = e[n];
760
+ if (t.src) {
761
+ if (this.scriptsInserted.includes(t.src))
762
+ continue;
763
+ this.scriptsInserted.push(t.src);
764
+ const a = document.createElement("script");
765
+ a.async = !0, a.src = t.src, document.head.appendChild(a);
766
+ } else if (!t.type || [
767
+ "text/javascript",
768
+ "application/javascript",
769
+ "application/ecmascript"
770
+ ].includes(t.type)) {
771
+ if (this.scriptsRun.includes(t.innerText))
772
+ continue;
773
+ try {
774
+ this.scriptsRun.push(t.innerText), new Function(t.innerText)();
775
+ } catch (a) {
776
+ console.warn("`CustomCode`: Error running script:", a);
777
+ }
778
+ }
779
+ }
780
+ }
781
+ },
782
+ _classStringToObject(e) {
783
+ const n = {};
784
+ if (typeof e != "string")
785
+ return n;
786
+ const t = e.trim().split(/\s+/);
787
+ for (const a of t)
788
+ n[a] = !0;
789
+ return n;
790
+ }
791
+ }
792
+ }), Te = ["innerHTML"];
793
+ function Re(e, n, t, a, o, i) {
794
+ return m(), b("div", {
795
+ ref: "elem",
796
+ class: j(
797
+ e._classStringToObject(
798
+ "builder-custom-code" + (e.replaceNodes ? " replace-nodes" : "")
799
+ )
800
+ ),
801
+ innerHTML: e.code
802
+ }, null, 10, Te);
803
+ }
804
+ const we = /* @__PURE__ */ y(Se, [["render", Re]]), Ie = {
805
+ name: "Custom Code",
806
+ static: !0,
807
+ requiredPermissions: ["editCode"],
808
+ inputs: [
809
+ {
810
+ name: "code",
811
+ type: "html",
812
+ required: !0,
813
+ defaultValue: "<p>Hello there, I am custom HTML code!</p>",
814
+ code: !0
815
+ },
816
+ {
817
+ name: "replaceNodes",
818
+ type: "boolean",
819
+ helperText: "Preserve server rendered dom nodes",
820
+ advanced: !0
821
+ },
822
+ {
823
+ name: "scriptsClientOnly",
824
+ type: "boolean",
825
+ defaultValue: !1,
826
+ helperText: "Only print and run scripts on the client. Important when scripts influence DOM that could be replaced when client loads",
827
+ advanced: !0
828
+ }
829
+ ]
830
+ }, Ee = () => [
831
+ { component: W, ...ae },
832
+ { component: _, ...oe },
833
+ { component: we, ...Ie },
834
+ { component: be, ...ue },
835
+ { component: B, ...ie },
836
+ { component: q, ...se },
837
+ { component: ke, ...xe },
838
+ { component: N, ...re },
839
+ { component: O, ...le },
840
+ { component: D, ...de },
841
+ { component: K, ...ce }
842
+ ], Fe = "0.4.0", Ve = () => {
843
+ z("insertMenu", {
844
+ name: "_default",
845
+ default: !0,
846
+ items: [
847
+ { name: "Box" },
848
+ { name: "Text" },
849
+ { name: "Image" },
850
+ { name: "Columns" },
851
+ { name: "Core:Section" },
852
+ { name: "Core:Button" },
853
+ { name: "Embed" },
854
+ { name: "Custom Code" }
855
+ ]
856
+ });
857
+ };
858
+ let F = !1;
859
+ const Ae = (e = {}) => {
860
+ var n, t;
861
+ F || (F = !0, k() && ((n = window.parent) == null || n.postMessage(
862
+ {
863
+ type: "builder.sdkInfo",
864
+ data: {
865
+ target: $,
866
+ version: Fe,
867
+ supportsPatchUpdates: !1,
868
+ supportsAddBlockScoping: !0,
869
+ supportsCustomBreakpoints: !0
870
+ }
871
+ },
872
+ "*"
873
+ ), (t = window.parent) == null || t.postMessage(
874
+ {
875
+ type: "builder.updateContent",
876
+ data: {
877
+ options: e
878
+ }
879
+ },
880
+ "*"
881
+ ), window.addEventListener("message", ({ data: a }) => {
882
+ var o, i;
883
+ if (!!(a != null && a.type))
884
+ switch (a.type) {
885
+ case "builder.evaluate": {
886
+ const s = a.data.text, l = a.data.arguments || [], r = a.data.id, c = new Function(s);
887
+ let d, u = null;
888
+ try {
889
+ d = c.apply(null, l);
890
+ } catch (p) {
891
+ u = p;
892
+ }
893
+ u ? (o = window.parent) == null || o.postMessage(
894
+ {
895
+ type: "builder.evaluateError",
896
+ data: { id: r, error: u.message }
897
+ },
898
+ "*"
899
+ ) : d && typeof d.then == "function" ? d.then((p) => {
900
+ var h;
901
+ (h = window.parent) == null || h.postMessage(
902
+ {
903
+ type: "builder.evaluateResult",
904
+ data: { id: r, result: p }
905
+ },
906
+ "*"
907
+ );
908
+ }).catch(console.error) : (i = window.parent) == null || i.postMessage(
909
+ {
910
+ type: "builder.evaluateResult",
911
+ data: { result: d, id: r }
912
+ },
913
+ "*"
914
+ );
915
+ break;
916
+ }
917
+ }
918
+ })));
919
+ };
920
+ function V(e) {
921
+ return Math.round(e * 1e3) / 1e3;
922
+ }
923
+ const Ue = (e, n, t = !0) => {
924
+ if (!(e instanceof HTMLElement))
925
+ return null;
926
+ let a = t ? e : e.parentElement;
927
+ do {
928
+ if (!a)
929
+ return null;
930
+ if (n(a))
931
+ return a;
932
+ } while (a = a.parentElement);
933
+ return null;
934
+ }, $e = (e) => Ue(e, (n) => {
935
+ const t = n.getAttribute("builder-id") || n.id;
936
+ return Boolean((t == null ? void 0 : t.indexOf("builder-")) === 0);
937
+ }), A = ({
938
+ event: e,
939
+ target: n
940
+ }) => {
941
+ const t = n.getBoundingClientRect(), a = e.clientX - t.left, o = e.clientY - t.top, i = V(a / t.width), s = V(o / t.height);
942
+ return {
943
+ x: i,
944
+ y: s
945
+ };
946
+ }, He = (e) => {
947
+ const n = e.target, t = n && $e(n), a = (t == null ? void 0 : t.getAttribute("builder-id")) || (t == null ? void 0 : t.id);
948
+ return {
949
+ targetBuilderElement: a || void 0,
950
+ metadata: {
951
+ targetOffset: n ? A({ event: e, target: n }) : void 0,
952
+ builderTargetOffset: t ? A({ event: e, target: t }) : void 0,
953
+ builderElementIndex: t && a ? [].slice.call(document.getElementsByClassName(a)).indexOf(t) : void 0
954
+ }
955
+ };
956
+ }, Pe = ({
957
+ content: e,
958
+ data: n,
959
+ locale: t
960
+ }) => {
961
+ var i, s, l;
962
+ const a = {};
963
+ (s = (i = e == null ? void 0 : e.data) == null ? void 0 : i.inputs) == null || s.forEach((r) => {
964
+ var c;
965
+ r.name && r.defaultValue !== void 0 && ((c = e == null ? void 0 : e.data) == null ? void 0 : c.state) && e.data.state[r.name] === void 0 && (a[r.name] = r.defaultValue);
966
+ });
967
+ const o = {
968
+ ...(l = e == null ? void 0 : e.data) == null ? void 0 : l.state,
969
+ ...n,
970
+ ...t ? { locale: t } : {}
971
+ };
972
+ return { ...a, ...o };
973
+ }, je = ({
974
+ content: e,
975
+ data: n
976
+ }) => e ? {
977
+ ...e,
978
+ data: {
979
+ ...e == null ? void 0 : e.data,
980
+ ...n
981
+ },
982
+ meta: e == null ? void 0 : e.meta
983
+ } : void 0, Le = L, Me = () => import("./index.32c5f4e2.js").then((e) => e.z).then((e) => e.default).catch((e) => {
984
+ throw console.error(
985
+ "Error while attempting to dynamically import component RenderBlocks at ../render-blocks.vue",
986
+ e
987
+ ), e;
988
+ }), We = () => import("./render-styles.665ea958.js").then((e) => e.default).catch((e) => {
989
+ throw console.error(
990
+ "Error while attempting to dynamically import component RenderContentStyles at ./components/render-styles.vue",
991
+ e
992
+ ), e;
993
+ }), _e = g({
994
+ name: "render-content",
995
+ components: {
996
+ RenderContentStyles: R(We),
997
+ RenderBlocks: R(Me)
998
+ },
999
+ props: [
1000
+ "content",
1001
+ "data",
1002
+ "canTrack",
1003
+ "locale",
1004
+ "customComponents",
1005
+ "model",
1006
+ "context",
1007
+ "apiKey",
1008
+ "parentContentId",
1009
+ "hideContent",
1010
+ "classNameProp",
1011
+ "isSsrAbTest",
1012
+ "includeRefs",
1013
+ "enrich",
1014
+ "apiVersion"
1015
+ ],
1016
+ data() {
1017
+ var e;
1018
+ return {
1019
+ forceReRenderCount: 0,
1020
+ overrideContent: null,
1021
+ useContent: je({
1022
+ content: this.content,
1023
+ data: this.data
1024
+ }),
1025
+ update: 0,
1026
+ canTrackToUse: J(this.canTrack) ? this.canTrack : !0,
1027
+ contentState: Pe({
1028
+ content: this.content,
1029
+ data: this.data,
1030
+ locale: this.locale
1031
+ }),
1032
+ allRegisteredComponents: [
1033
+ ...Ee(),
1034
+ ...Y,
1035
+ ...this.customComponents || []
1036
+ ].reduce(
1037
+ (n, { component: t, ...a }) => ({
1038
+ ...n,
1039
+ [a.name]: {
1040
+ component: Le(t),
1041
+ ...a
1042
+ }
1043
+ }),
1044
+ {}
1045
+ ),
1046
+ httpReqsData: {},
1047
+ clicked: !1,
1048
+ scriptStr: G({
1049
+ contentId: (e = this.content) == null ? void 0 : e.id,
1050
+ parentContentId: this.parentContentId
1051
+ }),
1052
+ TARGET: $
1053
+ };
1054
+ },
1055
+ provide() {
1056
+ const e = this;
1057
+ return {
1058
+ [X.key]: {
1059
+ content: e.useContent,
1060
+ localState: void 0,
1061
+ rootState: e.contentState,
1062
+ rootSetState: e.contentSetState,
1063
+ context: e.context || {},
1064
+ apiKey: e.apiKey,
1065
+ apiVersion: e.apiVersion,
1066
+ registeredComponents: e.allRegisteredComponents,
1067
+ inheritedStyles: {}
1068
+ }
1069
+ };
1070
+ },
1071
+ mounted() {
1072
+ var e, n;
1073
+ if (this.apiKey || Q.error(
1074
+ "No API key provided to `RenderContent` component. This can cause issues. Please provide an API key using the `apiKey` prop."
1075
+ ), k()) {
1076
+ if (f() && (this.forceReRenderCount = this.forceReRenderCount + 1, Ve(), Ae({
1077
+ ...this.locale ? {
1078
+ locale: this.locale
1079
+ } : {},
1080
+ ...this.includeRefs ? {
1081
+ includeRefs: this.includeRefs
1082
+ } : {},
1083
+ ...this.enrich ? {
1084
+ enrich: this.enrich
1085
+ } : {}
1086
+ }), Object.values(
1087
+ this.allRegisteredComponents
1088
+ ).forEach((t) => {
1089
+ var o;
1090
+ const a = Z(t);
1091
+ (o = window.parent) == null || o.postMessage(a, "*");
1092
+ }), window.addEventListener("message", this.processMessage), window.addEventListener(
1093
+ "builder:component:stateChangeListenerActivated",
1094
+ this.emitStateUpdate
1095
+ )), this.useContent) {
1096
+ const t = (e = this.useContent) == null ? void 0 : e.testVariationId, a = (n = this.useContent) == null ? void 0 : n.id;
1097
+ I({
1098
+ type: "impression",
1099
+ canTrack: this.canTrackToUse,
1100
+ contentId: a,
1101
+ apiKey: this.apiKey,
1102
+ variationId: t !== a ? t : void 0
1103
+ });
1104
+ }
1105
+ if (ee()) {
1106
+ const t = new URL(location.href).searchParams, a = t.get("builder.preview"), o = t.get(
1107
+ `builder.preview.${a}`
1108
+ ), i = t.get("apiKey") || t.get("builder.space");
1109
+ a === this.model && i === this.apiKey && (!this.content || o === this.content.id) && te({
1110
+ model: this.model,
1111
+ apiKey: this.apiKey,
1112
+ apiVersion: this.apiVersion
1113
+ }).then((s) => {
1114
+ s && this.mergeNewContent(s);
1115
+ });
1116
+ }
1117
+ this.evaluateJsCode(), this.runHttpRequests(), this.emitStateUpdate();
1118
+ }
1119
+ },
1120
+ watch: {
1121
+ onUpdateHook0: {
1122
+ handler() {
1123
+ this.content && this.mergeNewContent(this.content);
1124
+ },
1125
+ immediate: !0
1126
+ },
1127
+ onUpdateHook1: {
1128
+ handler() {
1129
+ this.evaluateJsCode();
1130
+ },
1131
+ immediate: !0
1132
+ },
1133
+ onUpdateHook2: {
1134
+ handler() {
1135
+ this.runHttpRequests();
1136
+ },
1137
+ immediate: !0
1138
+ },
1139
+ onUpdateHook3: {
1140
+ handler() {
1141
+ this.emitStateUpdate();
1142
+ },
1143
+ immediate: !0
1144
+ }
1145
+ },
1146
+ unmounted() {
1147
+ k() && (window.removeEventListener("message", this.processMessage), window.removeEventListener(
1148
+ "builder:component:stateChangeListenerActivated",
1149
+ this.emitStateUpdate
1150
+ ));
1151
+ },
1152
+ computed: {
1153
+ onUpdateHook0() {
1154
+ return {
1155
+ 0: this.content
1156
+ };
1157
+ },
1158
+ onUpdateHook1() {
1159
+ var e, n;
1160
+ return {
1161
+ 0: (n = (e = this.useContent) == null ? void 0 : e.data) == null ? void 0 : n.jsCode,
1162
+ 1: this.contentState
1163
+ };
1164
+ },
1165
+ onUpdateHook2() {
1166
+ var e, n;
1167
+ return {
1168
+ 0: (n = (e = this.useContent) == null ? void 0 : e.data) == null ? void 0 : n.httpRequests
1169
+ };
1170
+ },
1171
+ onUpdateHook3() {
1172
+ return {
1173
+ 0: this.contentState
1174
+ };
1175
+ }
1176
+ },
1177
+ methods: {
1178
+ mergeNewContent(e) {
1179
+ var n, t, a, o, i;
1180
+ this.useContent = {
1181
+ ...this.useContent,
1182
+ ...e,
1183
+ data: {
1184
+ ...(n = this.useContent) == null ? void 0 : n.data,
1185
+ ...e == null ? void 0 : e.data
1186
+ },
1187
+ meta: {
1188
+ ...(t = this.useContent) == null ? void 0 : t.meta,
1189
+ ...e == null ? void 0 : e.meta,
1190
+ breakpoints: ((a = e == null ? void 0 : e.meta) == null ? void 0 : a.breakpoints) || ((i = (o = this.useContent) == null ? void 0 : o.meta) == null ? void 0 : i.breakpoints)
1191
+ }
1192
+ };
1193
+ },
1194
+ setBreakpoints(e) {
1195
+ var n;
1196
+ this.useContent = {
1197
+ ...this.useContent,
1198
+ meta: {
1199
+ ...(n = this.useContent) == null ? void 0 : n.meta,
1200
+ breakpoints: e
1201
+ }
1202
+ };
1203
+ },
1204
+ contentSetState(e) {
1205
+ this.contentState = e;
1206
+ },
1207
+ processMessage(e) {
1208
+ var t;
1209
+ const { data: n } = e;
1210
+ if (n)
1211
+ switch (n.type) {
1212
+ case "builder.configureSdk": {
1213
+ const a = n.data, { breakpoints: o, contentId: i } = a;
1214
+ if (!i || i !== ((t = this.useContent) == null ? void 0 : t.id))
1215
+ return;
1216
+ o && this.setBreakpoints(o), this.forceReRenderCount = this.forceReRenderCount + 1;
1217
+ break;
1218
+ }
1219
+ case "builder.contentUpdate": {
1220
+ const a = n.data, o = a.key || a.alias || a.entry || a.modelName, i = a.data;
1221
+ o === this.model && (this.mergeNewContent(i), this.forceReRenderCount = this.forceReRenderCount + 1);
1222
+ break;
1223
+ }
1224
+ }
1225
+ },
1226
+ evaluateJsCode() {
1227
+ var n, t;
1228
+ const e = (t = (n = this.useContent) == null ? void 0 : n.data) == null ? void 0 : t.jsCode;
1229
+ e && E({
1230
+ code: e,
1231
+ context: this.context || {},
1232
+ localState: void 0,
1233
+ rootState: this.contentState,
1234
+ rootSetState: this.contentSetState
1235
+ });
1236
+ },
1237
+ onClick(e) {
1238
+ var n, t;
1239
+ if (this.useContent) {
1240
+ const a = (n = this.useContent) == null ? void 0 : n.testVariationId, o = (t = this.useContent) == null ? void 0 : t.id;
1241
+ I({
1242
+ type: "click",
1243
+ canTrack: this.canTrackToUse,
1244
+ contentId: o,
1245
+ apiKey: this.apiKey,
1246
+ variationId: a !== o ? a : void 0,
1247
+ ...He(e),
1248
+ unique: !this.clicked
1249
+ });
1250
+ }
1251
+ this.clicked || (this.clicked = !0);
1252
+ },
1253
+ evalExpression(e) {
1254
+ return e.replace(
1255
+ /{{([^}]+)}}/g,
1256
+ (n, t) => E({
1257
+ code: t,
1258
+ context: this.context || {},
1259
+ localState: void 0,
1260
+ rootState: this.contentState,
1261
+ rootSetState: this.contentSetState
1262
+ })
1263
+ );
1264
+ },
1265
+ handleRequest({ url: e, key: n }) {
1266
+ ne(e).then((t) => t.json()).then((t) => {
1267
+ const a = {
1268
+ ...this.contentState,
1269
+ [n]: t
1270
+ };
1271
+ this.contentSetState(a);
1272
+ }).catch((t) => {
1273
+ console.error("error fetching dynamic data", e, t);
1274
+ });
1275
+ },
1276
+ runHttpRequests() {
1277
+ var n, t, a;
1278
+ const e = (a = (t = (n = this.useContent) == null ? void 0 : n.data) == null ? void 0 : t.httpRequests) != null ? a : {};
1279
+ Object.entries(e).forEach(([o, i]) => {
1280
+ if (i && (!this.httpReqsData[o] || f())) {
1281
+ const s = this.evalExpression(i);
1282
+ this.handleRequest({
1283
+ url: s,
1284
+ key: o
1285
+ });
1286
+ }
1287
+ });
1288
+ },
1289
+ emitStateUpdate() {
1290
+ f() && window.dispatchEvent(
1291
+ new CustomEvent(
1292
+ "builder:component:stateChange",
1293
+ {
1294
+ detail: {
1295
+ state: this.contentState,
1296
+ ref: {
1297
+ name: this.model
1298
+ }
1299
+ }
1300
+ }
1301
+ )
1302
+ );
1303
+ },
1304
+ _classStringToObject(e) {
1305
+ const n = {};
1306
+ if (typeof e != "string")
1307
+ return n;
1308
+ const t = e.trim().split(/\s+/);
1309
+ for (const a of t)
1310
+ n[a] = !0;
1311
+ return n;
1312
+ }
1313
+ }
1314
+ }), Be = ["builder-content-id", "builder-model"];
1315
+ function qe(e, n, t, a, o, i) {
1316
+ var r, c, d, u, p, h, S, T;
1317
+ const s = w("render-content-styles"), l = w("render-blocks");
1318
+ return e.useContent ? (m(), b("div", U({
1319
+ key: 0,
1320
+ ref: "elementRef",
1321
+ onClick: n[0] || (n[0] = (H) => e.onClick(H)),
1322
+ "builder-content-id": (r = e.useContent) == null ? void 0 : r.id,
1323
+ "builder-model": e.model,
1324
+ class: e._classStringToObject(e.classNameProp)
1325
+ }, {
1326
+ ...e.TARGET === "reactNative" ? {
1327
+ dataSet: {
1328
+ "builder-content-id": ""
1329
+ }
1330
+ } : {},
1331
+ ...e.hideContent ? {
1332
+ hidden: !0,
1333
+ "aria-hidden": !0
1334
+ } : {}
1335
+ }), [
1336
+ e.isSsrAbTest ? (m(), v(M("script"), {
1337
+ key: 0,
1338
+ innerHTML: e.scriptStr
1339
+ }, null, 8, ["innerHTML"])) : C("", !0),
1340
+ e.TARGET !== "reactNative" ? (m(), v(s, {
1341
+ key: 1,
1342
+ contentId: (c = e.useContent) == null ? void 0 : c.id,
1343
+ cssCode: (u = (d = e.useContent) == null ? void 0 : d.data) == null ? void 0 : u.cssCode,
1344
+ customFonts: (h = (p = e.useContent) == null ? void 0 : p.data) == null ? void 0 : h.customFonts
1345
+ }, null, 8, ["contentId", "cssCode", "customFonts"])) : C("", !0),
1346
+ (m(), v(l, {
1347
+ blocks: (T = (S = e.useContent) == null ? void 0 : S.data) == null ? void 0 : T.blocks,
1348
+ key: e.forceReRenderCount
1349
+ }, null, 8, ["blocks"]))
1350
+ ], 16, Be)) : C("", !0);
1351
+ }
1352
+ const Ke = /* @__PURE__ */ y(_e, [["render", qe]]);
1353
+ export {
1354
+ Ke as default
1355
+ };