@builder.io/sdk-react 0.12.3 → 0.12.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/browser/index.cjs +25 -29
- package/lib/browser/index.mjs +736 -669
- package/lib/{edge/server-entry-f978b3a5.js → browser/server-entry-b9bdd327.js} +5 -6
- package/lib/browser/{server-entry-df9eba5d.cjs → server-entry-fc715776.cjs} +1 -1
- package/lib/browser/server-entry.cjs +1 -1
- package/lib/browser/server-entry.mjs +1 -1
- package/lib/edge/index.cjs +38 -42
- package/lib/edge/index.mjs +1280 -1212
- package/lib/{browser/server-entry-f978b3a5.js → edge/server-entry-57d4ae22.js} +4 -5
- package/lib/{node/server-entry-df9eba5d.cjs → edge/server-entry-fc715776.cjs} +1 -1
- package/lib/edge/server-entry.cjs +1 -1
- package/lib/edge/server-entry.mjs +1 -1
- package/lib/node/index.cjs +7 -11
- package/lib/node/index.mjs +321 -253
- package/lib/node/{server-entry-46908b1b.js → server-entry-0457c4c8.js} +3 -4
- package/lib/{edge/server-entry-df9eba5d.cjs → node/server-entry-bcb725be.cjs} +1 -1
- package/lib/node/server-entry.cjs +1 -1
- package/lib/node/server-entry.mjs +1 -1
- package/package.json +1 -1
- package/types/blocks/button/button.types.d.ts +2 -1
- package/types/blocks/columns/columns.types.d.ts +3 -3
- package/types/blocks/symbol/symbol.types.d.ts +2 -2
- package/types/components/block/block.d.ts +1 -0
- package/types/components/block/components/block-wrapper.d.ts +1 -0
- package/types/components/block/components/component-ref/component-ref.helpers.d.ts +4 -1
- package/types/components/block/components/repeated-block.d.ts +3 -5
- package/types/components/blocks/blocks.types.d.ts +1 -0
- package/types/components/content-variants/content-variants.types.d.ts +6 -2
- package/types/constants/sdk-version.d.ts +1 -1
- package/types/functions/evaluate/should-force-browser-runtime-in-node.d.ts +1 -0
- package/types/functions/get-block-properties.d.ts +5 -1
- package/types/functions/get-class-prop-name.d.ts +1 -0
- package/types/functions/get-style.d.ts +12 -0
- package/types/functions/transform-block-properties.d.ts +7 -5
- package/types/functions/transform-style-property.d.ts +7 -0
- package/types/helpers/omit.d.ts +1 -0
- package/types/types/builder-block.d.ts +1 -0
- package/types/types/builder-props.d.ts +3 -0
package/lib/node/index.mjs
CHANGED
|
@@ -1,29 +1,46 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, Fragment, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { createContext, useState, useContext,
|
|
4
|
-
import { i as isEditing, j as isBrowser, k as getUserAttributes, l as fastClone, m as
|
|
5
|
-
import { _ as H, h as K, f as z, g as q, e as Y, d as G, s as J, t as Q } from "./server-entry-
|
|
3
|
+
import { createContext, useState, useContext, useRef, useEffect, createElement } from "react";
|
|
4
|
+
import { T as TARGET, i as isEditing, j as isBrowser, k as getUserAttributes, l as fastClone, m as checkIsDefined, n as logger, r as register, o as getDefaultCanTrack, p as _track, a as isPreviewing, c as createRegisterComponentMessage, b as fetchOneEntry, q as fetch$1, u as components, v as serializeComponentInfo, w as handleABTestingSync } from "./server-entry-0457c4c8.js";
|
|
5
|
+
import { _ as H, h as K, f as z, g as q, e as Y, d as G, s as J, t as Q } from "./server-entry-0457c4c8.js";
|
|
6
6
|
import { createRequire } from "node:module";
|
|
7
|
+
const EMPTY_HTML_ELEMENTS = /* @__PURE__ */ new Set(["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"]), isEmptyElement = (e) => typeof e == "string" && EMPTY_HTML_ELEMENTS.has(e.toLowerCase());
|
|
8
|
+
function DynamicRenderer(e) {
|
|
9
|
+
return /* @__PURE__ */ jsx(Fragment, { children: isEmptyElement(e.TagName) ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(e.TagName, { ...e.attributes, ...e.actionAttributes }) }) : /* @__PURE__ */ jsx(Fragment, { children: typeof e.TagName == "string" ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(e.TagName, { ...e.attributes, ...e.actionAttributes, children: e.children }) }) : /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(e.TagName, { ...e.attributes, ...e.actionAttributes, children: e.children }) }) }) });
|
|
10
|
+
}
|
|
11
|
+
const getClassPropName = () => {
|
|
12
|
+
switch (TARGET) {
|
|
13
|
+
case "react":
|
|
14
|
+
case "reactNative":
|
|
15
|
+
case "rsc":
|
|
16
|
+
return "className";
|
|
17
|
+
case "svelte":
|
|
18
|
+
case "vue":
|
|
19
|
+
case "solid":
|
|
20
|
+
case "qwik":
|
|
21
|
+
return "class";
|
|
22
|
+
}
|
|
23
|
+
};
|
|
7
24
|
function Button(e) {
|
|
8
|
-
return /* @__PURE__ */ jsx(
|
|
9
|
-
|
|
10
|
-
{
|
|
11
|
-
...e.attributes,
|
|
12
|
-
href: e.link,
|
|
13
|
-
target: e.openLinkInNewTab ? "_blank" : void 0,
|
|
14
|
-
role: "button",
|
|
15
|
-
children: e.text
|
|
16
|
-
}
|
|
17
|
-
) }) : /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
|
|
18
|
-
"button",
|
|
25
|
+
return /* @__PURE__ */ jsx(
|
|
26
|
+
DynamicRenderer,
|
|
19
27
|
{
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
28
|
+
TagName: e.link ? e.builderLinkComponent || "a" : "button",
|
|
29
|
+
attributes: {
|
|
30
|
+
...e.attributes,
|
|
31
|
+
[getClassPropName()]: `${e.link ? "" : "builder-button"} ${e.attributes[getClassPropName()] || ""}`,
|
|
32
|
+
...e.link ? {
|
|
33
|
+
href: e.link,
|
|
34
|
+
target: e.openLinkInNewTab ? "_blank" : void 0,
|
|
35
|
+
role: "link"
|
|
36
|
+
} : {
|
|
37
|
+
role: "button"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
actionAttributes: {},
|
|
24
41
|
children: e.text
|
|
25
42
|
}
|
|
26
|
-
)
|
|
43
|
+
);
|
|
27
44
|
}
|
|
28
45
|
const builderContext = createContext({
|
|
29
46
|
content: null,
|
|
@@ -78,13 +95,13 @@ const getFunctionArguments = ({
|
|
|
78
95
|
rootSetState: r,
|
|
79
96
|
rootState: a
|
|
80
97
|
}) => {
|
|
81
|
-
const
|
|
98
|
+
const s = getFunctionArguments({
|
|
82
99
|
builder: t,
|
|
83
100
|
context: n,
|
|
84
101
|
event: i,
|
|
85
102
|
state: flattenState(a, o, r)
|
|
86
103
|
});
|
|
87
|
-
return new Function(...
|
|
104
|
+
return new Function(...s.map(([c]) => c), e)(...s.map(([, c]) => c));
|
|
88
105
|
};
|
|
89
106
|
function flattenState(e, t, n) {
|
|
90
107
|
if (e === t)
|
|
@@ -171,39 +188,50 @@ output;
|
|
|
171
188
|
rootSetState: r,
|
|
172
189
|
rootState: a
|
|
173
190
|
}) => {
|
|
174
|
-
const
|
|
191
|
+
const s = fastClone({
|
|
175
192
|
...a,
|
|
176
193
|
...o
|
|
177
|
-
}),
|
|
194
|
+
}), c = getFunctionArguments({
|
|
178
195
|
builder: t,
|
|
179
196
|
context: n,
|
|
180
197
|
event: i,
|
|
181
|
-
state:
|
|
198
|
+
state: s
|
|
182
199
|
}), l = getIsolateContext(), d = l.global;
|
|
183
200
|
d.setSync("global", d.derefInto()), d.setSync("log", function(...f) {
|
|
184
201
|
console.log(...f);
|
|
185
|
-
}), d.setSync(BUILDER_SET_STATE_NAME, function(f,
|
|
186
|
-
set(a, f,
|
|
187
|
-
}),
|
|
188
|
-
const y = typeof
|
|
202
|
+
}), d.setSync(BUILDER_SET_STATE_NAME, function(f, h) {
|
|
203
|
+
set(a, f, h), r == null || r(a);
|
|
204
|
+
}), c.forEach(([f, h]) => {
|
|
205
|
+
const y = typeof h == "object" ? new ivm.Reference(
|
|
189
206
|
// workaround: methods with default values for arguments is not being cloned over
|
|
190
207
|
f === "builder" ? {
|
|
191
|
-
...
|
|
192
|
-
getUserAttributes: () =>
|
|
193
|
-
} :
|
|
208
|
+
...h,
|
|
209
|
+
getUserAttributes: () => h.getUserAttributes()
|
|
210
|
+
} : h
|
|
194
211
|
) : null;
|
|
195
212
|
d.setSync(getSyncValName(f), y);
|
|
196
213
|
}), d.setSync(INJECTED_IVM_GLOBAL, ivm);
|
|
197
214
|
const g = processCode({
|
|
198
215
|
code: e,
|
|
199
|
-
args:
|
|
200
|
-
}),
|
|
216
|
+
args: c
|
|
217
|
+
}), x = l.evalSync(g);
|
|
201
218
|
try {
|
|
202
|
-
return JSON.parse(
|
|
219
|
+
return JSON.parse(x);
|
|
203
220
|
} catch {
|
|
204
|
-
return
|
|
221
|
+
return x;
|
|
205
222
|
}
|
|
206
|
-
}
|
|
223
|
+
};
|
|
224
|
+
function isNodeRuntime() {
|
|
225
|
+
var e;
|
|
226
|
+
return typeof process != "undefined" && checkIsDefined((e = process == null ? void 0 : process.versions) == null ? void 0 : e.node);
|
|
227
|
+
}
|
|
228
|
+
const shouldForceBrowserRuntimeInNode = () => {
|
|
229
|
+
var i;
|
|
230
|
+
if (!isNodeRuntime())
|
|
231
|
+
return !1;
|
|
232
|
+
const e = process.arch === "arm64", t = process.version.startsWith("v20"), n = (i = process.env.NODE_OPTIONS) == null ? void 0 : i.includes("--no-node-snapshot");
|
|
233
|
+
return e && t && !n ? (logger.log("Skipping usage of `isolated-vm` to avoid crashes in Node v20 on an arm64 machine.\n If you would like to use the `isolated-vm` package on this machine, please provide the `NODE_OPTIONS=--no-node-snapshot` config to your Node process.\n See https://github.com/BuilderIO/builder/blob/main/packages/sdks/README.md#node-v20--m1-macs-apple-silicon-support for more information.\n "), !0) : !1;
|
|
234
|
+
}, chooseBrowserOrServerEval = (e) => isBrowser() || shouldForceBrowserRuntimeInNode() ? runInBrowser(e) : runInNode(e);
|
|
207
235
|
function evaluate({
|
|
208
236
|
code: e,
|
|
209
237
|
context: t,
|
|
@@ -217,7 +245,7 @@ function evaluate({
|
|
|
217
245
|
logger.warn("Skipping evaluation of empty code block.");
|
|
218
246
|
return;
|
|
219
247
|
}
|
|
220
|
-
const
|
|
248
|
+
const s = {
|
|
221
249
|
code: parseCode(e, {
|
|
222
250
|
isExpression: a
|
|
223
251
|
}),
|
|
@@ -229,9 +257,9 @@ function evaluate({
|
|
|
229
257
|
localState: n
|
|
230
258
|
};
|
|
231
259
|
try {
|
|
232
|
-
return chooseBrowserOrServerEval(
|
|
233
|
-
} catch (
|
|
234
|
-
logger.error("Failed code evaluation: " +
|
|
260
|
+
return chooseBrowserOrServerEval(s);
|
|
261
|
+
} catch (c) {
|
|
262
|
+
logger.error("Failed code evaluation: " + c.message, {
|
|
235
263
|
code: e
|
|
236
264
|
});
|
|
237
265
|
return;
|
|
@@ -258,15 +286,15 @@ const evaluateBindings = ({
|
|
|
258
286
|
...r.actions
|
|
259
287
|
}
|
|
260
288
|
};
|
|
261
|
-
for (const
|
|
262
|
-
const
|
|
263
|
-
code:
|
|
289
|
+
for (const s in e.bindings) {
|
|
290
|
+
const c = e.bindings[s], l = evaluate({
|
|
291
|
+
code: c,
|
|
264
292
|
localState: n,
|
|
265
293
|
rootState: i,
|
|
266
294
|
rootSetState: o,
|
|
267
295
|
context: t
|
|
268
296
|
});
|
|
269
|
-
set(a,
|
|
297
|
+
set(a, s, l);
|
|
270
298
|
}
|
|
271
299
|
return a;
|
|
272
300
|
};
|
|
@@ -329,14 +357,14 @@ const getComponent = ({
|
|
|
329
357
|
if (!Array.isArray(o))
|
|
330
358
|
return;
|
|
331
359
|
const r = n.collection.split(".").pop(), a = n.itemName || (r ? r + "Item" : "item");
|
|
332
|
-
return o.map((
|
|
360
|
+
return o.map((c, l) => ({
|
|
333
361
|
context: {
|
|
334
362
|
...t,
|
|
335
363
|
localState: {
|
|
336
364
|
...t.localState,
|
|
337
365
|
$index: l,
|
|
338
|
-
$item:
|
|
339
|
-
[a]:
|
|
366
|
+
$item: c,
|
|
367
|
+
[a]: c,
|
|
340
368
|
[`$${a}Index`]: l
|
|
341
369
|
}
|
|
342
370
|
},
|
|
@@ -416,7 +444,7 @@ function BlockStyles(e) {
|
|
|
416
444
|
return checkIsDefined(i.hide) ? !i.hide : checkIsDefined(i.show) ? i.show : !0;
|
|
417
445
|
}
|
|
418
446
|
function n() {
|
|
419
|
-
var
|
|
447
|
+
var h;
|
|
420
448
|
const i = getProcessedBlock({
|
|
421
449
|
block: e.block,
|
|
422
450
|
localState: e.context.localState,
|
|
@@ -425,16 +453,16 @@ function BlockStyles(e) {
|
|
|
425
453
|
context: e.context.context,
|
|
426
454
|
shouldEvaluateBindings: !0
|
|
427
455
|
}), o = i.responsiveStyles, r = e.context.content, a = getSizesForBreakpoints(
|
|
428
|
-
((
|
|
429
|
-
),
|
|
456
|
+
((h = r == null ? void 0 : r.meta) == null ? void 0 : h.breakpoints) || {}
|
|
457
|
+
), s = o == null ? void 0 : o.large, c = o == null ? void 0 : o.medium, l = o == null ? void 0 : o.small, d = i.id;
|
|
430
458
|
if (!d)
|
|
431
459
|
return "";
|
|
432
|
-
const g =
|
|
460
|
+
const g = s ? createCssClass({
|
|
433
461
|
className: d,
|
|
434
|
-
styles:
|
|
435
|
-
}) : "",
|
|
462
|
+
styles: s
|
|
463
|
+
}) : "", x = c ? createCssClass({
|
|
436
464
|
className: d,
|
|
437
|
-
styles:
|
|
465
|
+
styles: c,
|
|
438
466
|
mediaQuery: getMaxWidthQueryForSize(
|
|
439
467
|
"medium",
|
|
440
468
|
a
|
|
@@ -447,7 +475,7 @@ function BlockStyles(e) {
|
|
|
447
475
|
a
|
|
448
476
|
)
|
|
449
477
|
}) : "";
|
|
450
|
-
return [g,
|
|
478
|
+
return [g, x, f].join(" ");
|
|
451
479
|
}
|
|
452
480
|
return /* @__PURE__ */ jsx(Fragment, { children: n() && t() ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(InlinedStyles, { styles: n() }) }) : null });
|
|
453
481
|
}
|
|
@@ -484,10 +512,36 @@ function getBlockActions(e) {
|
|
|
484
512
|
}
|
|
485
513
|
return t;
|
|
486
514
|
}
|
|
515
|
+
function transformStyleProperty({
|
|
516
|
+
style: e
|
|
517
|
+
}) {
|
|
518
|
+
return e;
|
|
519
|
+
}
|
|
520
|
+
const getStyle = ({
|
|
521
|
+
block: e,
|
|
522
|
+
context: t
|
|
523
|
+
}) => mapStyleObjToStrIfNeeded(transformStyleProperty({
|
|
524
|
+
style: e.style || {},
|
|
525
|
+
context: t,
|
|
526
|
+
block: e
|
|
527
|
+
}));
|
|
528
|
+
function mapStyleObjToStrIfNeeded(e) {
|
|
529
|
+
switch (TARGET) {
|
|
530
|
+
case "svelte":
|
|
531
|
+
case "vue":
|
|
532
|
+
case "solid":
|
|
533
|
+
return convertStyleMapToCSSArray(e).join(" ");
|
|
534
|
+
case "qwik":
|
|
535
|
+
case "reactNative":
|
|
536
|
+
case "react":
|
|
537
|
+
case "rsc":
|
|
538
|
+
return e;
|
|
539
|
+
}
|
|
540
|
+
}
|
|
487
541
|
function transformBlockProperties({
|
|
488
542
|
properties: e
|
|
489
543
|
}) {
|
|
490
|
-
return e
|
|
544
|
+
return e;
|
|
491
545
|
}
|
|
492
546
|
const extractRelevantRootBlockProperties = (e) => ({
|
|
493
547
|
href: e.href
|
|
@@ -501,8 +555,11 @@ function getBlockProperties({
|
|
|
501
555
|
...extractRelevantRootBlockProperties(e),
|
|
502
556
|
...e.properties,
|
|
503
557
|
"builder-id": e.id,
|
|
504
|
-
style:
|
|
505
|
-
|
|
558
|
+
style: getStyle({
|
|
559
|
+
block: e,
|
|
560
|
+
context: t
|
|
561
|
+
}),
|
|
562
|
+
[getClassPropName()]: [e.id, "builder-block", e.class, (i = e.properties) == null ? void 0 : i.class].filter(Boolean).join(" ")
|
|
506
563
|
};
|
|
507
564
|
return transformBlockProperties({
|
|
508
565
|
properties: n,
|
|
@@ -510,23 +567,6 @@ function getBlockProperties({
|
|
|
510
567
|
block: e
|
|
511
568
|
});
|
|
512
569
|
}
|
|
513
|
-
function getStyleAttribute(e) {
|
|
514
|
-
switch (TARGET) {
|
|
515
|
-
case "svelte":
|
|
516
|
-
case "vue":
|
|
517
|
-
case "solid":
|
|
518
|
-
return convertStyleMapToCSSArray(e).join(" ");
|
|
519
|
-
case "qwik":
|
|
520
|
-
case "reactNative":
|
|
521
|
-
case "react":
|
|
522
|
-
case "rsc":
|
|
523
|
-
return e;
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
const EMPTY_HTML_ELEMENTS = /* @__PURE__ */ new Set(["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"]), isEmptyElement = (e) => typeof e == "string" && EMPTY_HTML_ELEMENTS.has(e.toLowerCase());
|
|
527
|
-
function DynamicRenderer(e) {
|
|
528
|
-
return /* @__PURE__ */ jsx(Fragment, { children: isEmptyElement(e.TagName) ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(e.TagName, { ...e.attributes, ...e.actionAttributes }) }) : /* @__PURE__ */ jsx(Fragment, { children: typeof e.TagName == "string" ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(e.TagName, { ...e.attributes, ...e.actionAttributes, children: e.children }) }) : /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(e.TagName, { ...e.attributes, ...e.actionAttributes, children: e.children }) }) }) });
|
|
529
|
-
}
|
|
530
570
|
function BlockWrapper(e) {
|
|
531
571
|
return /* @__PURE__ */ jsx(
|
|
532
572
|
DynamicRenderer,
|
|
@@ -579,7 +619,7 @@ const getWrapperProps = ({
|
|
|
579
619
|
isInteractive: r,
|
|
580
620
|
contextValue: a
|
|
581
621
|
}) => {
|
|
582
|
-
const
|
|
622
|
+
const s = {
|
|
583
623
|
...e,
|
|
584
624
|
/**
|
|
585
625
|
* If `noWrap` is set to `true`, then the block's props/attributes are provided to the
|
|
@@ -598,7 +638,7 @@ const getWrapperProps = ({
|
|
|
598
638
|
context: n,
|
|
599
639
|
wrapperProps: e,
|
|
600
640
|
includeBlockProps: o
|
|
601
|
-
} :
|
|
641
|
+
} : s;
|
|
602
642
|
};
|
|
603
643
|
function ComponentRef(e) {
|
|
604
644
|
var i;
|
|
@@ -613,6 +653,7 @@ function ComponentRef(e) {
|
|
|
613
653
|
builderBlock: e.builderBlock,
|
|
614
654
|
context: e.context,
|
|
615
655
|
componentRef: e.componentRef,
|
|
656
|
+
linkComponent: e.linkComponent,
|
|
616
657
|
includeBlockProps: e.includeBlockProps,
|
|
617
658
|
isInteractive: e.isInteractive,
|
|
618
659
|
contextValue: e.context
|
|
@@ -622,7 +663,8 @@ function ComponentRef(e) {
|
|
|
622
663
|
{
|
|
623
664
|
block: o,
|
|
624
665
|
context: e.context,
|
|
625
|
-
registeredComponents: e.registeredComponents
|
|
666
|
+
registeredComponents: e.registeredComponents,
|
|
667
|
+
linkComponent: e.linkComponent
|
|
626
668
|
},
|
|
627
669
|
o.id
|
|
628
670
|
))
|
|
@@ -636,12 +678,13 @@ function RepeatedBlock(e) {
|
|
|
636
678
|
{
|
|
637
679
|
block: e.block,
|
|
638
680
|
context: t,
|
|
639
|
-
registeredComponents: e.registeredComponents
|
|
681
|
+
registeredComponents: e.registeredComponents,
|
|
682
|
+
linkComponent: e.linkComponent
|
|
640
683
|
}
|
|
641
684
|
) });
|
|
642
685
|
}
|
|
643
686
|
function Block(e) {
|
|
644
|
-
var d, g,
|
|
687
|
+
var d, g, x;
|
|
645
688
|
function t() {
|
|
646
689
|
return getComponent({
|
|
647
690
|
block: e.block,
|
|
@@ -667,7 +710,8 @@ function Block(e) {
|
|
|
667
710
|
});
|
|
668
711
|
}
|
|
669
712
|
function o() {
|
|
670
|
-
|
|
713
|
+
var h;
|
|
714
|
+
return e.block.tagName === "a" || ((h = i().properties) == null ? void 0 : h.href) || i().href ? e.linkComponent || "a" : e.block.tagName || "div";
|
|
671
715
|
}
|
|
672
716
|
function r() {
|
|
673
717
|
var y, I;
|
|
@@ -677,77 +721,86 @@ function Block(e) {
|
|
|
677
721
|
return ("show" in i() ? i().show : !0) && !f;
|
|
678
722
|
}
|
|
679
723
|
function a() {
|
|
680
|
-
var
|
|
681
|
-
return !((
|
|
724
|
+
var h, y;
|
|
725
|
+
return !((h = t == null ? void 0 : t()) != null && h.component) && !n() ? (y = i().children) != null ? y : [] : [];
|
|
682
726
|
}
|
|
683
|
-
function
|
|
684
|
-
var f,
|
|
727
|
+
function s() {
|
|
728
|
+
var f, h, y, I, E, v, C, T, w;
|
|
685
729
|
return {
|
|
686
730
|
blockChildren: (f = i().children) != null ? f : [],
|
|
687
|
-
componentRef: (
|
|
731
|
+
componentRef: (h = t == null ? void 0 : t()) == null ? void 0 : h.component,
|
|
688
732
|
componentOptions: {
|
|
689
733
|
...getBlockComponentOptions(i()),
|
|
690
734
|
builderContext: e.context,
|
|
691
|
-
...((y = t == null ? void 0 : t()) == null ? void 0 : y.name) === "
|
|
735
|
+
...((y = t == null ? void 0 : t()) == null ? void 0 : y.name) === "Core:Button" || ((I = t == null ? void 0 : t()) == null ? void 0 : I.name) === "Symbol" || ((E = t == null ? void 0 : t()) == null ? void 0 : E.name) === "Columns" ? {
|
|
736
|
+
builderLinkComponent: e.linkComponent
|
|
737
|
+
} : {},
|
|
738
|
+
...((v = t == null ? void 0 : t()) == null ? void 0 : v.name) === "Symbol" || ((C = t == null ? void 0 : t()) == null ? void 0 : C.name) === "Columns" ? {
|
|
692
739
|
builderComponents: e.registeredComponents
|
|
693
740
|
} : {}
|
|
694
741
|
},
|
|
695
|
-
context:
|
|
742
|
+
context: c,
|
|
743
|
+
linkComponent: e.linkComponent,
|
|
696
744
|
registeredComponents: e.registeredComponents,
|
|
697
745
|
builderBlock: i(),
|
|
698
|
-
includeBlockProps: ((
|
|
699
|
-
isInteractive: !((
|
|
746
|
+
includeBlockProps: ((T = t == null ? void 0 : t()) == null ? void 0 : T.noWrap) === !0,
|
|
747
|
+
isInteractive: !((w = t == null ? void 0 : t()) != null && w.isRSC)
|
|
700
748
|
};
|
|
701
749
|
}
|
|
702
|
-
const [
|
|
750
|
+
const [c, l] = useState(() => e.context);
|
|
703
751
|
return /* @__PURE__ */ jsx(Fragment, { children: r() ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
704
752
|
/* @__PURE__ */ jsx(BlockStyles, { block: e.block, context: e.context }),
|
|
705
753
|
(d = t == null ? void 0 : t()) != null && d.noWrap ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
|
|
706
754
|
ComponentRef,
|
|
707
755
|
{
|
|
708
|
-
componentRef:
|
|
709
|
-
componentOptions:
|
|
710
|
-
blockChildren:
|
|
711
|
-
context:
|
|
712
|
-
registeredComponents:
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
756
|
+
componentRef: s().componentRef,
|
|
757
|
+
componentOptions: s().componentOptions,
|
|
758
|
+
blockChildren: s().blockChildren,
|
|
759
|
+
context: s().context,
|
|
760
|
+
registeredComponents: s().registeredComponents,
|
|
761
|
+
linkComponent: s().linkComponent,
|
|
762
|
+
builderBlock: s().builderBlock,
|
|
763
|
+
includeBlockProps: s().includeBlockProps,
|
|
764
|
+
isInteractive: s().isInteractive
|
|
716
765
|
}
|
|
717
|
-
) }) : /* @__PURE__ */ jsx(Fragment, { children: n() ? /* @__PURE__ */ jsx(Fragment, { children: (
|
|
766
|
+
) }) : /* @__PURE__ */ jsx(Fragment, { children: n() ? /* @__PURE__ */ jsx(Fragment, { children: (x = n()) == null ? void 0 : x.map((f, h) => /* @__PURE__ */ jsx(
|
|
718
767
|
RepeatedBlock,
|
|
719
768
|
{
|
|
720
769
|
repeatContext: f.context,
|
|
721
770
|
block: f.block,
|
|
722
|
-
registeredComponents: e.registeredComponents
|
|
771
|
+
registeredComponents: e.registeredComponents,
|
|
772
|
+
linkComponent: e.linkComponent
|
|
723
773
|
},
|
|
724
|
-
|
|
774
|
+
h
|
|
725
775
|
)) }) : /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(
|
|
726
776
|
BlockWrapper,
|
|
727
777
|
{
|
|
728
778
|
Wrapper: o(),
|
|
729
779
|
block: i(),
|
|
730
780
|
context: e.context,
|
|
781
|
+
linkComponent: e.linkComponent,
|
|
731
782
|
children: [
|
|
732
783
|
/* @__PURE__ */ jsx(
|
|
733
784
|
ComponentRef,
|
|
734
785
|
{
|
|
735
|
-
componentRef:
|
|
736
|
-
componentOptions:
|
|
737
|
-
blockChildren:
|
|
738
|
-
context:
|
|
739
|
-
registeredComponents:
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
786
|
+
componentRef: s().componentRef,
|
|
787
|
+
componentOptions: s().componentOptions,
|
|
788
|
+
blockChildren: s().blockChildren,
|
|
789
|
+
context: s().context,
|
|
790
|
+
registeredComponents: s().registeredComponents,
|
|
791
|
+
linkComponent: s().linkComponent,
|
|
792
|
+
builderBlock: s().builderBlock,
|
|
793
|
+
includeBlockProps: s().includeBlockProps,
|
|
794
|
+
isInteractive: s().isInteractive
|
|
743
795
|
}
|
|
744
796
|
),
|
|
745
797
|
(g = a()) == null ? void 0 : g.map((f) => /* @__PURE__ */ jsx(
|
|
746
798
|
Block,
|
|
747
799
|
{
|
|
748
800
|
block: f,
|
|
749
|
-
context:
|
|
750
|
-
registeredComponents: e.registeredComponents
|
|
801
|
+
context: c,
|
|
802
|
+
registeredComponents: e.registeredComponents,
|
|
803
|
+
linkComponent: e.linkComponent
|
|
751
804
|
},
|
|
752
805
|
f.id
|
|
753
806
|
))
|
|
@@ -825,6 +878,7 @@ function Blocks(e) {
|
|
|
825
878
|
Block,
|
|
826
879
|
{
|
|
827
880
|
block: a,
|
|
881
|
+
linkComponent: e.linkComponent,
|
|
828
882
|
context: e.context || t,
|
|
829
883
|
registeredComponents: e.registeredComponents || n.registeredComponents
|
|
830
884
|
},
|
|
@@ -840,13 +894,13 @@ function Columns(e) {
|
|
|
840
894
|
), [i, o] = useState(() => e.columns || []), [r, a] = useState(
|
|
841
895
|
() => e.stackColumnsAt || "tablet"
|
|
842
896
|
);
|
|
843
|
-
function
|
|
897
|
+
function s(v) {
|
|
844
898
|
var C;
|
|
845
899
|
return ((C = i[v]) == null ? void 0 : C.width) || 100 / i.length;
|
|
846
900
|
}
|
|
847
|
-
function
|
|
901
|
+
function c(v) {
|
|
848
902
|
const C = t * (i.length - 1) / i.length;
|
|
849
|
-
return `calc(${
|
|
903
|
+
return `calc(${s(v)}% - ${C}px)`;
|
|
850
904
|
}
|
|
851
905
|
function l({
|
|
852
906
|
stackedStyle: v,
|
|
@@ -860,7 +914,7 @@ function Columns(e) {
|
|
|
860
914
|
}) {
|
|
861
915
|
return r === "never" ? C : v;
|
|
862
916
|
}
|
|
863
|
-
const [g,
|
|
917
|
+
const [g, x] = useState(
|
|
864
918
|
() => e.stackColumnsAt === "never" ? "row" : e.reverseColumnsWhenStacked ? "column-reverse" : "column"
|
|
865
919
|
);
|
|
866
920
|
function f() {
|
|
@@ -872,9 +926,14 @@ function Columns(e) {
|
|
|
872
926
|
})
|
|
873
927
|
};
|
|
874
928
|
}
|
|
875
|
-
function
|
|
876
|
-
const C = v === 0 ? 0 : t, T =
|
|
929
|
+
function h(v) {
|
|
930
|
+
const C = v === 0 ? 0 : t, T = c(v), w = `${C}px`, R = "100%", j = 0;
|
|
877
931
|
return {
|
|
932
|
+
...{
|
|
933
|
+
display: "flex",
|
|
934
|
+
flexDirection: "column",
|
|
935
|
+
alignItems: "stretch"
|
|
936
|
+
},
|
|
878
937
|
width: T,
|
|
879
938
|
["marginLeft"]: w,
|
|
880
939
|
"--column-width-mobile": d({
|
|
@@ -932,41 +991,45 @@ function Columns(e) {
|
|
|
932
991
|
/* @__PURE__ */ jsxs(
|
|
933
992
|
"div",
|
|
934
993
|
{
|
|
935
|
-
className: `builder-columns ${e.builderBlock.id}-breakpoints div-
|
|
994
|
+
className: `builder-columns ${e.builderBlock.id}-breakpoints div-6f826264`,
|
|
936
995
|
style: f(),
|
|
937
996
|
children: [
|
|
938
997
|
/* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(InlinedStyles, { styles: I() }) }),
|
|
939
|
-
(E = e.columns) == null ? void 0 : E.map((v, C) => /* @__PURE__ */
|
|
940
|
-
|
|
998
|
+
(E = e.columns) == null ? void 0 : E.map((v, C) => /* @__PURE__ */ jsx(
|
|
999
|
+
DynamicRenderer,
|
|
941
1000
|
{
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
1001
|
+
TagName: v.link ? e.builderLinkComponent || "a" : "div",
|
|
1002
|
+
actionAttributes: {},
|
|
1003
|
+
attributes: {
|
|
1004
|
+
...v.link ? {
|
|
1005
|
+
href: v.link
|
|
1006
|
+
} : {},
|
|
1007
|
+
[getClassPropName()]: "builder-column",
|
|
1008
|
+
style: mapStyleObjToStrIfNeeded(h(C))
|
|
1009
|
+
},
|
|
1010
|
+
children: /* @__PURE__ */ jsx(
|
|
1011
|
+
Blocks,
|
|
1012
|
+
{
|
|
1013
|
+
path: `component.options.columns.${C}.blocks`,
|
|
1014
|
+
parent: e.builderBlock.id,
|
|
1015
|
+
styleProp: {
|
|
1016
|
+
flexGrow: "1"
|
|
1017
|
+
},
|
|
1018
|
+
context: e.builderContext,
|
|
1019
|
+
registeredComponents: e.builderComponents,
|
|
1020
|
+
linkComponent: e.builderLinkComponent,
|
|
1021
|
+
blocks: v.blocks
|
|
1022
|
+
}
|
|
1023
|
+
)
|
|
945
1024
|
},
|
|
946
|
-
|
|
947
|
-
Blocks,
|
|
948
|
-
{
|
|
949
|
-
path: `component.options.columns.${C}.blocks`,
|
|
950
|
-
parent: e.builderBlock.id,
|
|
951
|
-
styleProp: {
|
|
952
|
-
flexGrow: "1"
|
|
953
|
-
},
|
|
954
|
-
context: e.builderContext,
|
|
955
|
-
registeredComponents: e.builderComponents,
|
|
956
|
-
blocks: v.blocks
|
|
957
|
-
}
|
|
958
|
-
)
|
|
1025
|
+
C
|
|
959
1026
|
))
|
|
960
1027
|
]
|
|
961
1028
|
}
|
|
962
1029
|
),
|
|
963
|
-
/* @__PURE__ */ jsx("style", { children: `.div-
|
|
1030
|
+
/* @__PURE__ */ jsx("style", { children: `.div-6f826264 {
|
|
964
1031
|
display: flex;
|
|
965
1032
|
line-height: normal;
|
|
966
|
-
}.div-3c01d6ec-2 {
|
|
967
|
-
display: flex;
|
|
968
|
-
flex-direction: column;
|
|
969
|
-
align-items: stretch;
|
|
970
1033
|
}` })
|
|
971
1034
|
] });
|
|
972
1035
|
}
|
|
@@ -1004,7 +1067,7 @@ function getSrcSet(e) {
|
|
|
1004
1067
|
return e.match(/cdn\.shopify\.com/) ? t.map((n) => [getShopifyImageUrl(e, `${n}x${n}`), n]).filter(([n]) => !!n).map(([n, i]) => `${n} ${i}w`).concat([e]).join(", ") : e;
|
|
1005
1068
|
}
|
|
1006
1069
|
function Image(e) {
|
|
1007
|
-
var o, r, a,
|
|
1070
|
+
var o, r, a, s;
|
|
1008
1071
|
function t() {
|
|
1009
1072
|
var d;
|
|
1010
1073
|
const l = e.image || e.src;
|
|
@@ -1020,18 +1083,18 @@ function Image(e) {
|
|
|
1020
1083
|
return getSrcSet(l);
|
|
1021
1084
|
}
|
|
1022
1085
|
function n() {
|
|
1023
|
-
var
|
|
1024
|
-
return (
|
|
1086
|
+
var c;
|
|
1087
|
+
return (c = t == null ? void 0 : t()) != null && c.match(/builder\.io/) && !e.noWebp ? t().replace(/\?/g, "?format=webp&") : "";
|
|
1025
1088
|
}
|
|
1026
1089
|
function i() {
|
|
1027
|
-
const
|
|
1090
|
+
const c = {
|
|
1028
1091
|
position: "absolute",
|
|
1029
1092
|
height: "100%",
|
|
1030
1093
|
width: "100%",
|
|
1031
1094
|
left: "0px",
|
|
1032
1095
|
top: "0px"
|
|
1033
1096
|
};
|
|
1034
|
-
return e.aspectRatio ?
|
|
1097
|
+
return e.aspectRatio ? c : void 0;
|
|
1035
1098
|
}
|
|
1036
1099
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1037
1100
|
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -1064,7 +1127,7 @@ function Image(e) {
|
|
|
1064
1127
|
}
|
|
1065
1128
|
}
|
|
1066
1129
|
) }) : null,
|
|
1067
|
-
(
|
|
1130
|
+
(s = (a = e.builderBlock) == null ? void 0 : a.children) != null && s.length && e.fitContent ? /* @__PURE__ */ jsx(Fragment, { children: e.children }) : null,
|
|
1068
1131
|
!e.fitContent && e.children ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx("div", { className: "div-40c70c9b-2", children: e.children }) }) : null
|
|
1069
1132
|
] }),
|
|
1070
1133
|
/* @__PURE__ */ jsx("style", { children: `.img-40c70c9b {
|
|
@@ -1319,7 +1382,7 @@ const componentInfo$b = {
|
|
|
1319
1382
|
});
|
|
1320
1383
|
}
|
|
1321
1384
|
const n = e.get("columns");
|
|
1322
|
-
Array.isArray(n) && n.find((o) => o.get("width")) && (n.find((r) => !r.get("width")) || n.reduce((
|
|
1385
|
+
Array.isArray(n) && n.find((o) => o.get("width")) && (n.find((r) => !r.get("width")) || n.reduce((s, c) => s + c.get("width"), 0) !== 100) && t();
|
|
1323
1386
|
}
|
|
1324
1387
|
}, {
|
|
1325
1388
|
name: "space",
|
|
@@ -1367,12 +1430,12 @@ const componentInfo$b = {
|
|
|
1367
1430
|
function CustomCode(e) {
|
|
1368
1431
|
const t = useRef(null), [n, i] = useState(() => []), [o, r] = useState(() => []);
|
|
1369
1432
|
return useEffect(() => {
|
|
1370
|
-
var
|
|
1371
|
-
if (!((
|
|
1433
|
+
var s;
|
|
1434
|
+
if (!((s = t.current) != null && s.getElementsByTagName) || typeof window == "undefined")
|
|
1372
1435
|
return;
|
|
1373
1436
|
const a = t.current.getElementsByTagName("script");
|
|
1374
|
-
for (let
|
|
1375
|
-
const l = a[
|
|
1437
|
+
for (let c = 0; c < a.length; c++) {
|
|
1438
|
+
const l = a[c];
|
|
1376
1439
|
if (l.src) {
|
|
1377
1440
|
if (n.includes(l.src))
|
|
1378
1441
|
continue;
|
|
@@ -1429,8 +1492,8 @@ const componentInfo$8 = {
|
|
|
1429
1492
|
}]
|
|
1430
1493
|
}, SCRIPT_MIME_TYPES = ["text/javascript", "application/javascript", "application/ecmascript"], isJsScript = (e) => SCRIPT_MIME_TYPES.includes(e.type);
|
|
1431
1494
|
function Embed(e) {
|
|
1432
|
-
const t = useRef(null), [n, i] = useState(() => []), [o, r] = useState(() => []), [a,
|
|
1433
|
-
function
|
|
1495
|
+
const t = useRef(null), [n, i] = useState(() => []), [o, r] = useState(() => []), [a, s] = useState(() => !1);
|
|
1496
|
+
function c() {
|
|
1434
1497
|
if (!t.current || !t.current.getElementsByTagName)
|
|
1435
1498
|
return;
|
|
1436
1499
|
const l = t.current.getElementsByTagName("script");
|
|
@@ -1438,18 +1501,18 @@ function Embed(e) {
|
|
|
1438
1501
|
const g = l[d];
|
|
1439
1502
|
if (g.src && !n.includes(g.src)) {
|
|
1440
1503
|
n.push(g.src);
|
|
1441
|
-
const
|
|
1442
|
-
|
|
1504
|
+
const x = document.createElement("script");
|
|
1505
|
+
x.async = !0, x.src = g.src, document.head.appendChild(x);
|
|
1443
1506
|
} else if (isJsScript(g) && !o.includes(g.innerText))
|
|
1444
1507
|
try {
|
|
1445
1508
|
o.push(g.innerText), new Function(g.innerText)();
|
|
1446
|
-
} catch (
|
|
1447
|
-
console.warn("`Embed`: Error running script:",
|
|
1509
|
+
} catch (x) {
|
|
1510
|
+
console.warn("`Embed`: Error running script:", x);
|
|
1448
1511
|
}
|
|
1449
1512
|
}
|
|
1450
1513
|
}
|
|
1451
1514
|
return useEffect(() => {
|
|
1452
|
-
t.current && !a && (
|
|
1515
|
+
t.current && !a && (s(!0), c());
|
|
1453
1516
|
}, [t.current, a]), /* @__PURE__ */ jsx(
|
|
1454
1517
|
"div",
|
|
1455
1518
|
{
|
|
@@ -1485,17 +1548,17 @@ const componentInfo$7 = {
|
|
|
1485
1548
|
defaultValue: "https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F72c80f114dc149019051b6852a9e3b7a",
|
|
1486
1549
|
onChange: (e) => {
|
|
1487
1550
|
e.delete("srcset"), e.delete("noWebp");
|
|
1488
|
-
function n(a,
|
|
1489
|
-
return new Promise((
|
|
1551
|
+
function n(a, s = 6e4) {
|
|
1552
|
+
return new Promise((c, l) => {
|
|
1490
1553
|
const d = document.createElement("img");
|
|
1491
1554
|
let g = !1;
|
|
1492
1555
|
d.onload = () => {
|
|
1493
|
-
g = !0,
|
|
1494
|
-
}, d.addEventListener("error", (
|
|
1495
|
-
console.warn("Image load failed",
|
|
1556
|
+
g = !0, c(d);
|
|
1557
|
+
}, d.addEventListener("error", (x) => {
|
|
1558
|
+
console.warn("Image load failed", x.error), l(x.error);
|
|
1496
1559
|
}), d.src = a, setTimeout(() => {
|
|
1497
1560
|
g || l(new Error("Image load timed out"));
|
|
1498
|
-
},
|
|
1561
|
+
}, s);
|
|
1499
1562
|
});
|
|
1500
1563
|
}
|
|
1501
1564
|
function i(a) {
|
|
@@ -1506,8 +1569,8 @@ const componentInfo$7 = {
|
|
|
1506
1569
|
a.type.includes("svg") && e.set("noWebp", !0);
|
|
1507
1570
|
}), o && (!r || r === 0.7041))
|
|
1508
1571
|
return n(o).then((a) => {
|
|
1509
|
-
const
|
|
1510
|
-
e.get("image") === o && (!
|
|
1572
|
+
const s = e.get("aspectRatio");
|
|
1573
|
+
e.get("image") === o && (!s || s === 0.7041) && a.width && a.height && (e.set("aspectRatio", i(a.height / a.width)), e.set("height", a.height), e.set("width", a.width));
|
|
1511
1574
|
});
|
|
1512
1575
|
}
|
|
1513
1576
|
}, {
|
|
@@ -1819,7 +1882,7 @@ const componentInfo = {
|
|
|
1819
1882
|
}]
|
|
1820
1883
|
};
|
|
1821
1884
|
function Video(e) {
|
|
1822
|
-
var i, o, r, a,
|
|
1885
|
+
var i, o, r, a, s, c, l;
|
|
1823
1886
|
function t() {
|
|
1824
1887
|
return {
|
|
1825
1888
|
...e.autoPlay === !0 ? {
|
|
@@ -1887,7 +1950,7 @@ function Video(e) {
|
|
|
1887
1950
|
}
|
|
1888
1951
|
}
|
|
1889
1952
|
) }) : null,
|
|
1890
|
-
(
|
|
1953
|
+
(s = (a = e.builderBlock) == null ? void 0 : a.children) != null && s.length && e.fitContent ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
|
|
1891
1954
|
"div",
|
|
1892
1955
|
{
|
|
1893
1956
|
style: {
|
|
@@ -1898,7 +1961,7 @@ function Video(e) {
|
|
|
1898
1961
|
children: e.children
|
|
1899
1962
|
}
|
|
1900
1963
|
) }) : null,
|
|
1901
|
-
(l = (
|
|
1964
|
+
(l = (c = e.builderBlock) == null ? void 0 : c.children) != null && l.length && !e.fitContent ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
|
|
1902
1965
|
"div",
|
|
1903
1966
|
{
|
|
1904
1967
|
style: {
|
|
@@ -2120,7 +2183,7 @@ const findParentElement = (e, t, n = !0) => {
|
|
|
2120
2183
|
builderElementIndex: n && i ? [].slice.call(document.getElementsByClassName(i)).indexOf(n) : void 0
|
|
2121
2184
|
}
|
|
2122
2185
|
};
|
|
2123
|
-
}, SDK_VERSION = "0.12.
|
|
2186
|
+
}, SDK_VERSION = "0.12.5", registerInsertMenu = () => {
|
|
2124
2187
|
register("insertMenu", {
|
|
2125
2188
|
name: "_default",
|
|
2126
2189
|
default: !0,
|
|
@@ -2172,22 +2235,22 @@ const setupBrowserForEditing = (e = {}) => {
|
|
|
2172
2235
|
if (o != null && o.type)
|
|
2173
2236
|
switch (o.type) {
|
|
2174
2237
|
case "builder.evaluate": {
|
|
2175
|
-
const
|
|
2176
|
-
let g,
|
|
2238
|
+
const s = o.data.text, c = o.data.arguments || [], l = o.data.id, d = new Function(s);
|
|
2239
|
+
let g, x = null;
|
|
2177
2240
|
try {
|
|
2178
|
-
g = d.apply(null,
|
|
2241
|
+
g = d.apply(null, c);
|
|
2179
2242
|
} catch (f) {
|
|
2180
|
-
|
|
2243
|
+
x = f;
|
|
2181
2244
|
}
|
|
2182
|
-
|
|
2245
|
+
x ? (r = window.parent) == null || r.postMessage({
|
|
2183
2246
|
type: "builder.evaluateError",
|
|
2184
2247
|
data: {
|
|
2185
2248
|
id: l,
|
|
2186
|
-
error:
|
|
2249
|
+
error: x.message
|
|
2187
2250
|
}
|
|
2188
2251
|
}, "*") : g && typeof g.then == "function" ? g.then((f) => {
|
|
2189
|
-
var
|
|
2190
|
-
(
|
|
2252
|
+
var h;
|
|
2253
|
+
(h = window.parent) == null || h.postMessage({
|
|
2191
2254
|
type: "builder.evaluateResult",
|
|
2192
2255
|
data: {
|
|
2193
2256
|
id: l,
|
|
@@ -2207,56 +2270,56 @@ const setupBrowserForEditing = (e = {}) => {
|
|
|
2207
2270
|
})));
|
|
2208
2271
|
};
|
|
2209
2272
|
function EnableEditor(e) {
|
|
2210
|
-
var j, P, A, F, _, V
|
|
2273
|
+
var j, P, A, F, N, _, V;
|
|
2211
2274
|
const t = useRef(null), [n, i] = useState(() => 0);
|
|
2212
2275
|
useState(() => !0);
|
|
2213
2276
|
function o(u) {
|
|
2214
|
-
var
|
|
2277
|
+
var b, S;
|
|
2215
2278
|
const m = {
|
|
2216
2279
|
...e.builderContextSignal.rootState,
|
|
2217
2280
|
...u
|
|
2218
2281
|
};
|
|
2219
|
-
e.builderContextSignal.rootSetState ? (
|
|
2282
|
+
e.builderContextSignal.rootSetState ? (S = (b = e.builderContextSignal).rootSetState) == null || S.call(b, m) : e.setBuilderContextSignal((p) => ({
|
|
2220
2283
|
...p,
|
|
2221
2284
|
rootState: m
|
|
2222
2285
|
}));
|
|
2223
2286
|
}
|
|
2224
2287
|
function r(u) {
|
|
2225
|
-
var
|
|
2288
|
+
var b, S, p, k, B;
|
|
2226
2289
|
const m = {
|
|
2227
2290
|
...e.builderContextSignal.content,
|
|
2228
2291
|
...u,
|
|
2229
2292
|
data: {
|
|
2230
|
-
...(
|
|
2293
|
+
...(b = e.builderContextSignal.content) == null ? void 0 : b.data,
|
|
2231
2294
|
...u == null ? void 0 : u.data
|
|
2232
2295
|
},
|
|
2233
2296
|
meta: {
|
|
2234
|
-
...(
|
|
2297
|
+
...(S = e.builderContextSignal.content) == null ? void 0 : S.meta,
|
|
2235
2298
|
...u == null ? void 0 : u.meta,
|
|
2236
2299
|
breakpoints: ((p = u == null ? void 0 : u.meta) == null ? void 0 : p.breakpoints) || ((B = (k = e.builderContextSignal.content) == null ? void 0 : k.meta) == null ? void 0 : B.breakpoints)
|
|
2237
2300
|
}
|
|
2238
2301
|
};
|
|
2239
|
-
e.setBuilderContextSignal((
|
|
2240
|
-
|
|
2302
|
+
e.setBuilderContextSignal(($) => ({
|
|
2303
|
+
...$,
|
|
2241
2304
|
content: m
|
|
2242
2305
|
}));
|
|
2243
2306
|
}
|
|
2244
2307
|
useState(() => 0);
|
|
2245
|
-
const [a,
|
|
2308
|
+
const [a, s] = useState(
|
|
2246
2309
|
() => !1
|
|
2247
|
-
), [
|
|
2310
|
+
), [c, l] = useState(
|
|
2248
2311
|
() => e.contentWrapper || "div"
|
|
2249
2312
|
);
|
|
2250
2313
|
function d(u) {
|
|
2251
|
-
var
|
|
2314
|
+
var b;
|
|
2252
2315
|
if (!isFromTrustedHost(e.trustedHosts, u))
|
|
2253
2316
|
return;
|
|
2254
2317
|
const { data: m } = u;
|
|
2255
2318
|
if (m)
|
|
2256
2319
|
switch (m.type) {
|
|
2257
2320
|
case "builder.configureSdk": {
|
|
2258
|
-
const
|
|
2259
|
-
if (!k || k !== ((
|
|
2321
|
+
const S = m.data, { breakpoints: p, contentId: k } = S;
|
|
2322
|
+
if (!k || k !== ((b = e.builderContextSignal.content) == null ? void 0 : b.id))
|
|
2260
2323
|
return;
|
|
2261
2324
|
p && r({
|
|
2262
2325
|
meta: {
|
|
@@ -2266,15 +2329,15 @@ function EnableEditor(e) {
|
|
|
2266
2329
|
break;
|
|
2267
2330
|
}
|
|
2268
2331
|
case "builder.contentUpdate": {
|
|
2269
|
-
const
|
|
2332
|
+
const S = m.data, p = S.key || S.alias || S.entry || S.modelName, k = S.data;
|
|
2270
2333
|
p === e.model && (r(k), i(n + 1));
|
|
2271
2334
|
break;
|
|
2272
2335
|
}
|
|
2273
2336
|
}
|
|
2274
2337
|
}
|
|
2275
2338
|
function g() {
|
|
2276
|
-
var m,
|
|
2277
|
-
const u = (
|
|
2339
|
+
var m, b;
|
|
2340
|
+
const u = (b = (m = e.builderContextSignal.content) == null ? void 0 : m.data) == null ? void 0 : b.jsCode;
|
|
2278
2341
|
u && evaluate({
|
|
2279
2342
|
code: u,
|
|
2280
2343
|
context: e.context || {},
|
|
@@ -2283,28 +2346,28 @@ function EnableEditor(e) {
|
|
|
2283
2346
|
rootSetState: e.builderContextSignal.rootSetState
|
|
2284
2347
|
});
|
|
2285
2348
|
}
|
|
2286
|
-
const [
|
|
2349
|
+
const [x, f] = useState(() => ({})), [h, y] = useState(() => !1);
|
|
2287
2350
|
function I(u) {
|
|
2288
|
-
var m,
|
|
2351
|
+
var m, b;
|
|
2289
2352
|
if (e.builderContextSignal.content) {
|
|
2290
|
-
const
|
|
2353
|
+
const S = (m = e.builderContextSignal.content) == null ? void 0 : m.testVariationId, p = (b = e.builderContextSignal.content) == null ? void 0 : b.id;
|
|
2291
2354
|
_track({
|
|
2292
2355
|
type: "click",
|
|
2293
2356
|
canTrack: getDefaultCanTrack(e.canTrack),
|
|
2294
2357
|
contentId: p,
|
|
2295
2358
|
apiKey: e.apiKey,
|
|
2296
|
-
variationId:
|
|
2359
|
+
variationId: S !== p ? S : void 0,
|
|
2297
2360
|
...getInteractionPropertiesForEvent(u),
|
|
2298
|
-
unique: !
|
|
2361
|
+
unique: !h
|
|
2299
2362
|
});
|
|
2300
2363
|
}
|
|
2301
|
-
|
|
2364
|
+
h || y(!0);
|
|
2302
2365
|
}
|
|
2303
2366
|
function E(u) {
|
|
2304
2367
|
return u.replace(
|
|
2305
2368
|
/{{([^}]+)}}/g,
|
|
2306
|
-
(m,
|
|
2307
|
-
code:
|
|
2369
|
+
(m, b) => evaluate({
|
|
2370
|
+
code: b,
|
|
2308
2371
|
context: e.context || {},
|
|
2309
2372
|
localState: void 0,
|
|
2310
2373
|
rootState: e.builderContextSignal.rootState,
|
|
@@ -2313,22 +2376,22 @@ function EnableEditor(e) {
|
|
|
2313
2376
|
);
|
|
2314
2377
|
}
|
|
2315
2378
|
function v({ url: u, key: m }) {
|
|
2316
|
-
fetch$1(u).then((
|
|
2379
|
+
fetch$1(u).then((b) => b.json()).then((b) => {
|
|
2317
2380
|
var p, k;
|
|
2318
|
-
const
|
|
2381
|
+
const S = {
|
|
2319
2382
|
...e.builderContextSignal.rootState,
|
|
2320
|
-
[m]:
|
|
2383
|
+
[m]: b
|
|
2321
2384
|
};
|
|
2322
|
-
(k = (p = e.builderContextSignal).rootSetState) == null || k.call(p,
|
|
2323
|
-
}).catch((
|
|
2324
|
-
console.error("error fetching dynamic data", u,
|
|
2385
|
+
(k = (p = e.builderContextSignal).rootSetState) == null || k.call(p, S), x[m] = !0;
|
|
2386
|
+
}).catch((b) => {
|
|
2387
|
+
console.error("error fetching dynamic data", u, b);
|
|
2325
2388
|
});
|
|
2326
2389
|
}
|
|
2327
2390
|
function C() {
|
|
2328
|
-
var m,
|
|
2329
|
-
const u = (
|
|
2391
|
+
var m, b, S;
|
|
2392
|
+
const u = (S = (b = (m = e.builderContextSignal.content) == null ? void 0 : m.data) == null ? void 0 : b.httpRequests) != null ? S : {};
|
|
2330
2393
|
Object.entries(u).forEach(([p, k]) => {
|
|
2331
|
-
if (k && (!
|
|
2394
|
+
if (k && (!x[p] || isEditing())) {
|
|
2332
2395
|
const B = E(k);
|
|
2333
2396
|
v({
|
|
2334
2397
|
url: B,
|
|
@@ -2369,19 +2432,19 @@ function EnableEditor(e) {
|
|
|
2369
2432
|
}), Object.values(
|
|
2370
2433
|
e.builderContextSignal.componentInfos
|
|
2371
2434
|
).forEach((m) => {
|
|
2372
|
-
var
|
|
2373
|
-
const
|
|
2374
|
-
(
|
|
2435
|
+
var S;
|
|
2436
|
+
const b = createRegisterComponentMessage(m);
|
|
2437
|
+
(S = window.parent) == null || S.postMessage(b, "*");
|
|
2375
2438
|
}), window.addEventListener(
|
|
2376
2439
|
"builder:component:stateChangeListenerActivated",
|
|
2377
2440
|
T
|
|
2378
2441
|
);
|
|
2379
2442
|
}
|
|
2380
2443
|
function R(u) {
|
|
2381
|
-
const m = new URL(location.href).searchParams,
|
|
2382
|
-
`builder.preview.${
|
|
2444
|
+
const m = new URL(location.href).searchParams, b = m.get("builder.preview"), S = m.get(
|
|
2445
|
+
`builder.preview.${b}`
|
|
2383
2446
|
), p = m.get("apiKey") || m.get("builder.space");
|
|
2384
|
-
|
|
2447
|
+
b === e.model && p === e.apiKey && (!e.content || S === e.content.id) && fetchOneEntry({
|
|
2385
2448
|
model: e.model,
|
|
2386
2449
|
apiKey: e.apiKey,
|
|
2387
2450
|
apiVersion: e.builderContextSignal.apiVersion
|
|
@@ -2417,13 +2480,13 @@ function EnableEditor(e) {
|
|
|
2417
2480
|
var u, m;
|
|
2418
2481
|
if (isBrowser()) {
|
|
2419
2482
|
if (isEditing() && t.current && t.current.dispatchEvent(new CustomEvent("initeditingbldr")), e.builderContextSignal.content && getDefaultCanTrack(e.canTrack)) {
|
|
2420
|
-
const
|
|
2483
|
+
const S = (u = e.builderContextSignal.content) == null ? void 0 : u.testVariationId, p = (m = e.builderContextSignal.content) == null ? void 0 : m.id, k = e.apiKey;
|
|
2421
2484
|
_track({
|
|
2422
2485
|
type: "impression",
|
|
2423
2486
|
canTrack: !0,
|
|
2424
2487
|
contentId: p,
|
|
2425
2488
|
apiKey: k,
|
|
2426
|
-
variationId:
|
|
2489
|
+
variationId: S !== p ? S : void 0
|
|
2427
2490
|
});
|
|
2428
2491
|
}
|
|
2429
2492
|
isPreviewing() && t.current && t.current.dispatchEvent(new CustomEvent("initpreviewingbldr"));
|
|
@@ -2456,19 +2519,19 @@ function EnableEditor(e) {
|
|
|
2456
2519
|
T
|
|
2457
2520
|
));
|
|
2458
2521
|
}, []), /* @__PURE__ */ jsx(builderContext.Provider, { value: e.builderContextSignal, children: e.builderContextSignal.content ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ createElement(
|
|
2459
|
-
|
|
2522
|
+
c,
|
|
2460
2523
|
{
|
|
2461
2524
|
key: n,
|
|
2462
2525
|
ref: t,
|
|
2463
2526
|
onClick: (u) => I(u),
|
|
2464
|
-
"builder-content-id": (
|
|
2527
|
+
"builder-content-id": (N = e.builderContextSignal.content) == null ? void 0 : N.id,
|
|
2465
2528
|
"builder-model": e.model,
|
|
2466
2529
|
...e.showContent ? {} : {
|
|
2467
2530
|
hidden: !0,
|
|
2468
2531
|
"aria-hidden": !0
|
|
2469
2532
|
},
|
|
2470
2533
|
...e.contentWrapperProps,
|
|
2471
|
-
className: `variant-${((
|
|
2534
|
+
className: `variant-${((_ = e.content) == null ? void 0 : _.testVariationId) || ((V = e.content) == null ? void 0 : V.id)}`
|
|
2472
2535
|
},
|
|
2473
2536
|
e.children
|
|
2474
2537
|
) }) : null });
|
|
@@ -2485,16 +2548,16 @@ font-display: fallback;
|
|
|
2485
2548
|
font-weight: 400;
|
|
2486
2549
|
}
|
|
2487
2550
|
`.trim()), e.files)
|
|
2488
|
-
for (const
|
|
2489
|
-
if (!(String(Number(
|
|
2551
|
+
for (const s in e.files) {
|
|
2552
|
+
if (!(String(Number(s)) === s))
|
|
2490
2553
|
continue;
|
|
2491
|
-
const l = e.files[
|
|
2554
|
+
const l = e.files[s];
|
|
2492
2555
|
l && l !== i && (o += `
|
|
2493
2556
|
@font-face {
|
|
2494
2557
|
font-family: "${t}";
|
|
2495
2558
|
src: url('${l}') format('woff2');
|
|
2496
2559
|
font-display: fallback;
|
|
2497
|
-
font-weight: ${
|
|
2560
|
+
font-weight: ${s};
|
|
2498
2561
|
}
|
|
2499
2562
|
`.trim());
|
|
2500
2563
|
}
|
|
@@ -2544,10 +2607,10 @@ const getRootStateInitialValue = ({
|
|
|
2544
2607
|
data: t,
|
|
2545
2608
|
locale: n
|
|
2546
2609
|
}) => {
|
|
2547
|
-
var r, a,
|
|
2610
|
+
var r, a, s;
|
|
2548
2611
|
const i = {}, o = ((r = e == null ? void 0 : e.data) == null ? void 0 : r.state) || {};
|
|
2549
|
-
return (
|
|
2550
|
-
|
|
2612
|
+
return (s = (a = e == null ? void 0 : e.data) == null ? void 0 : a.inputs) == null || s.forEach((c) => {
|
|
2613
|
+
c.name && c.defaultValue !== void 0 && (i[c.name] = c.defaultValue);
|
|
2551
2614
|
}), {
|
|
2552
2615
|
...i,
|
|
2553
2616
|
...o,
|
|
@@ -2568,7 +2631,7 @@ const getRootStateInitialValue = ({
|
|
|
2568
2631
|
meta: e == null ? void 0 : e.meta
|
|
2569
2632
|
} : void 0;
|
|
2570
2633
|
function ContentComponent(e) {
|
|
2571
|
-
var
|
|
2634
|
+
var c, l, d, g, x, f, h;
|
|
2572
2635
|
const [t, n] = useState(
|
|
2573
2636
|
() => {
|
|
2574
2637
|
var y, I;
|
|
@@ -2581,7 +2644,7 @@ function ContentComponent(e) {
|
|
|
2581
2644
|
}
|
|
2582
2645
|
);
|
|
2583
2646
|
function i(y) {
|
|
2584
|
-
|
|
2647
|
+
s((I) => ({
|
|
2585
2648
|
...I,
|
|
2586
2649
|
rootState: y
|
|
2587
2650
|
}));
|
|
@@ -2606,7 +2669,7 @@ function ContentComponent(e) {
|
|
|
2606
2669
|
}),
|
|
2607
2670
|
{}
|
|
2608
2671
|
)
|
|
2609
|
-
), [a,
|
|
2672
|
+
), [a, s] = useState(() => ({
|
|
2610
2673
|
content: getContentInitialValue({
|
|
2611
2674
|
content: e.content,
|
|
2612
2675
|
data: e.data
|
|
@@ -2663,24 +2726,26 @@ function ContentComponent(e) {
|
|
|
2663
2726
|
builderContextSignal: a,
|
|
2664
2727
|
contentWrapper: e.contentWrapper,
|
|
2665
2728
|
contentWrapperProps: e.contentWrapperProps,
|
|
2729
|
+
linkComponent: e.linkComponent,
|
|
2666
2730
|
trustedHosts: e.trustedHosts,
|
|
2667
|
-
setBuilderContextSignal:
|
|
2731
|
+
setBuilderContextSignal: s,
|
|
2668
2732
|
children: [
|
|
2669
2733
|
e.isSsrAbTest ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(InlinedScript, { scriptStr: t }) }) : null,
|
|
2670
2734
|
/* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
|
|
2671
2735
|
ContentStyles,
|
|
2672
2736
|
{
|
|
2673
|
-
contentId: (
|
|
2737
|
+
contentId: (c = a.content) == null ? void 0 : c.id,
|
|
2674
2738
|
cssCode: (d = (l = a.content) == null ? void 0 : l.data) == null ? void 0 : d.cssCode,
|
|
2675
|
-
customFonts: (
|
|
2739
|
+
customFonts: (x = (g = a.content) == null ? void 0 : g.data) == null ? void 0 : x.customFonts
|
|
2676
2740
|
}
|
|
2677
2741
|
) }),
|
|
2678
2742
|
/* @__PURE__ */ jsx(
|
|
2679
2743
|
Blocks,
|
|
2680
2744
|
{
|
|
2681
|
-
blocks: (
|
|
2745
|
+
blocks: (h = (f = a.content) == null ? void 0 : f.data) == null ? void 0 : h.blocks,
|
|
2682
2746
|
context: a,
|
|
2683
|
-
registeredComponents: o
|
|
2747
|
+
registeredComponents: o,
|
|
2748
|
+
linkComponent: e.linkComponent
|
|
2684
2749
|
}
|
|
2685
2750
|
)
|
|
2686
2751
|
]
|
|
@@ -2690,7 +2755,7 @@ function ContentComponent(e) {
|
|
|
2690
2755
|
);
|
|
2691
2756
|
}
|
|
2692
2757
|
function ContentVariants(e) {
|
|
2693
|
-
var a,
|
|
2758
|
+
var a, s;
|
|
2694
2759
|
const [t, n] = useState(
|
|
2695
2760
|
() => checkShouldRenderVariants({
|
|
2696
2761
|
canTrack: getDefaultCanTrack(e.canTrack),
|
|
@@ -2698,23 +2763,23 @@ function ContentVariants(e) {
|
|
|
2698
2763
|
})
|
|
2699
2764
|
);
|
|
2700
2765
|
function i() {
|
|
2701
|
-
var
|
|
2766
|
+
var c;
|
|
2702
2767
|
return getUpdateCookieAndStylesScript(
|
|
2703
2768
|
getVariants(e.content).map((l) => ({
|
|
2704
2769
|
id: l.testVariationId,
|
|
2705
2770
|
testRatio: l.testRatio
|
|
2706
2771
|
})),
|
|
2707
|
-
((
|
|
2772
|
+
((c = e.content) == null ? void 0 : c.id) || ""
|
|
2708
2773
|
);
|
|
2709
2774
|
}
|
|
2710
2775
|
function o() {
|
|
2711
|
-
return getVariants(e.content).map((
|
|
2776
|
+
return getVariants(e.content).map((c) => `.variant-${c.testVariationId} { display: none; } `).join("");
|
|
2712
2777
|
}
|
|
2713
2778
|
function r() {
|
|
2714
|
-
var
|
|
2779
|
+
var c;
|
|
2715
2780
|
return t ? {
|
|
2716
2781
|
...e.content,
|
|
2717
|
-
testVariationId: (
|
|
2782
|
+
testVariationId: (c = e.content) == null ? void 0 : c.id
|
|
2718
2783
|
} : handleABTestingSync({
|
|
2719
2784
|
item: e.content,
|
|
2720
2785
|
canTrack: getDefaultCanTrack(e.canTrack)
|
|
@@ -2732,10 +2797,10 @@ function ContentVariants(e) {
|
|
|
2732
2797
|
}
|
|
2733
2798
|
),
|
|
2734
2799
|
/* @__PURE__ */ jsx(InlinedScript, { scriptStr: i() }),
|
|
2735
|
-
(
|
|
2800
|
+
(s = getVariants(e.content)) == null ? void 0 : s.map((c) => /* @__PURE__ */ jsx(
|
|
2736
2801
|
ContentComponent,
|
|
2737
2802
|
{
|
|
2738
|
-
content:
|
|
2803
|
+
content: c,
|
|
2739
2804
|
showContent: !1,
|
|
2740
2805
|
model: e.model,
|
|
2741
2806
|
data: e.data,
|
|
@@ -2743,6 +2808,7 @@ function ContentVariants(e) {
|
|
|
2743
2808
|
apiKey: e.apiKey,
|
|
2744
2809
|
apiVersion: e.apiVersion,
|
|
2745
2810
|
customComponents: e.customComponents,
|
|
2811
|
+
linkComponent: e.linkComponent,
|
|
2746
2812
|
canTrack: e.canTrack,
|
|
2747
2813
|
locale: e.locale,
|
|
2748
2814
|
includeRefs: e.includeRefs,
|
|
@@ -2754,7 +2820,7 @@ function ContentVariants(e) {
|
|
|
2754
2820
|
contentWrapperProps: e.contentWrapperProps,
|
|
2755
2821
|
trustedHosts: e.trustedHosts
|
|
2756
2822
|
},
|
|
2757
|
-
|
|
2823
|
+
c.testVariationId
|
|
2758
2824
|
))
|
|
2759
2825
|
] }) : null,
|
|
2760
2826
|
/* @__PURE__ */ jsx(
|
|
@@ -2768,6 +2834,7 @@ function ContentVariants(e) {
|
|
|
2768
2834
|
apiKey: e.apiKey,
|
|
2769
2835
|
apiVersion: e.apiVersion,
|
|
2770
2836
|
customComponents: e.customComponents,
|
|
2837
|
+
linkComponent: e.linkComponent,
|
|
2771
2838
|
canTrack: e.canTrack,
|
|
2772
2839
|
locale: e.locale,
|
|
2773
2840
|
includeRefs: e.includeRefs,
|
|
@@ -2802,11 +2869,11 @@ const fetchSymbolContent = async ({
|
|
|
2802
2869
|
});
|
|
2803
2870
|
};
|
|
2804
2871
|
function Symbol$1(e) {
|
|
2805
|
-
var r, a,
|
|
2872
|
+
var r, a, s, c;
|
|
2806
2873
|
function t() {
|
|
2807
2874
|
var l, d;
|
|
2808
2875
|
return [
|
|
2809
|
-
e.attributes
|
|
2876
|
+
e.attributes[getClassPropName()],
|
|
2810
2877
|
"builder-symbol",
|
|
2811
2878
|
(l = e.symbol) != null && l.inline ? "builder-inline-symbol" : void 0,
|
|
2812
2879
|
(d = e.symbol) != null && d.dynamic || e.dynamic ? "builder-dynamic-symbol" : void 0
|
|
@@ -2841,10 +2908,11 @@ function Symbol$1(e) {
|
|
|
2841
2908
|
data: {
|
|
2842
2909
|
...(a = e.symbol) == null ? void 0 : a.data,
|
|
2843
2910
|
...e.builderContext.localState,
|
|
2844
|
-
...(
|
|
2911
|
+
...(s = n == null ? void 0 : n.data) == null ? void 0 : s.state
|
|
2845
2912
|
},
|
|
2846
|
-
model: (
|
|
2847
|
-
content: n
|
|
2913
|
+
model: (c = e.symbol) == null ? void 0 : c.model,
|
|
2914
|
+
content: n,
|
|
2915
|
+
linkComponent: e.builderLinkComponent
|
|
2848
2916
|
}
|
|
2849
2917
|
) });
|
|
2850
2918
|
}
|