@builder.io/sdk-react-nextjs 0.16.17 → 0.16.19

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 (61) hide show
  1. package/lib/browser/components/content/components/enable-editor.cjs +1 -1
  2. package/lib/browser/components/content/components/enable-editor.mjs +107 -105
  3. package/lib/browser/components/content/content.cjs +1 -1
  4. package/lib/browser/components/content/content.mjs +23 -21
  5. package/lib/browser/components/content-variants/content-variants.cjs +1 -1
  6. package/lib/browser/components/content-variants/content-variants.mjs +10 -8
  7. package/lib/browser/constants/sdk-version.cjs +1 -1
  8. package/lib/browser/constants/sdk-version.mjs +1 -1
  9. package/lib/browser/functions/get-content/generate-content-url.cjs +1 -1
  10. package/lib/browser/functions/get-content/generate-content-url.mjs +24 -23
  11. package/lib/browser/functions/get-content/index.cjs +1 -1
  12. package/lib/browser/functions/get-content/index.mjs +50 -43
  13. package/lib/browser/functions/track/index.cjs +1 -1
  14. package/lib/browser/functions/track/index.mjs +35 -31
  15. package/lib/browser/helpers/sdk-headers.cjs +1 -0
  16. package/lib/browser/helpers/sdk-headers.mjs +10 -0
  17. package/lib/edge/components/content/components/enable-editor.cjs +1 -1
  18. package/lib/edge/components/content/components/enable-editor.mjs +107 -105
  19. package/lib/edge/components/content/content.cjs +1 -1
  20. package/lib/edge/components/content/content.mjs +23 -21
  21. package/lib/edge/components/content-variants/content-variants.cjs +1 -1
  22. package/lib/edge/components/content-variants/content-variants.mjs +10 -8
  23. package/lib/edge/constants/sdk-version.cjs +1 -1
  24. package/lib/edge/constants/sdk-version.mjs +1 -1
  25. package/lib/edge/functions/get-content/generate-content-url.cjs +1 -1
  26. package/lib/edge/functions/get-content/generate-content-url.mjs +24 -23
  27. package/lib/edge/functions/get-content/index.cjs +1 -1
  28. package/lib/edge/functions/get-content/index.mjs +50 -43
  29. package/lib/edge/functions/track/index.cjs +1 -1
  30. package/lib/edge/functions/track/index.mjs +35 -31
  31. package/lib/edge/helpers/sdk-headers.cjs +1 -0
  32. package/lib/edge/helpers/sdk-headers.mjs +10 -0
  33. package/lib/node/components/content/components/enable-editor.cjs +1 -1
  34. package/lib/node/components/content/components/enable-editor.mjs +107 -105
  35. package/lib/node/components/content/content.cjs +1 -1
  36. package/lib/node/components/content/content.mjs +23 -21
  37. package/lib/node/components/content-variants/content-variants.cjs +1 -1
  38. package/lib/node/components/content-variants/content-variants.mjs +10 -8
  39. package/lib/node/constants/sdk-version.cjs +1 -1
  40. package/lib/node/constants/sdk-version.mjs +1 -1
  41. package/lib/node/functions/get-content/generate-content-url.cjs +1 -1
  42. package/lib/node/functions/get-content/generate-content-url.mjs +24 -23
  43. package/lib/node/functions/get-content/index.cjs +1 -1
  44. package/lib/node/functions/get-content/index.mjs +50 -43
  45. package/lib/node/functions/track/index.cjs +1 -1
  46. package/lib/node/functions/track/index.mjs +35 -31
  47. package/lib/node/helpers/sdk-headers.cjs +1 -0
  48. package/lib/node/helpers/sdk-headers.mjs +10 -0
  49. package/package.json +1 -1
  50. package/types/cjs/components/content/components/enable-editor.d.ts +1 -1
  51. package/types/cjs/components/content-variants/content-variants.types.d.ts +4 -0
  52. package/types/cjs/constants/sdk-version.d.ts +1 -1
  53. package/types/cjs/functions/get-content/types.d.ts +4 -0
  54. package/types/cjs/functions/track/index.d.ts +3 -1
  55. package/types/cjs/helpers/sdk-headers.d.ts +5 -0
  56. package/types/esm/components/content/components/enable-editor.d.ts +1 -1
  57. package/types/esm/components/content-variants/content-variants.types.d.ts +4 -0
  58. package/types/esm/constants/sdk-version.d.ts +1 -1
  59. package/types/esm/functions/get-content/types.d.ts +4 -0
  60. package/types/esm/functions/track/index.d.ts +3 -1
  61. package/types/esm/helpers/sdk-headers.d.ts +5 -0
@@ -1,8 +1,8 @@
1
- import { flatten as g, flattenMongoQuery as U } from "../../helpers/flatten.mjs";
2
- import { normalizeSearchParams as A } from "../../helpers/search/search.mjs";
3
- import { DEFAULT_API_VERSION as O } from "../../types/api-version.mjs";
4
- import { getBuilderSearchParamsFromWindow as k } from "../get-builder-search-params/index.mjs";
5
- const y = (s) => typeof s == "number" && !isNaN(s) && s >= 0, J = (s) => {
1
+ import { flatten as g, flattenMongoQuery as O } from "../../helpers/flatten.mjs";
2
+ import { normalizeSearchParams as k } from "../../helpers/search/search.mjs";
3
+ import { DEFAULT_API_VERSION as E } from "../../types/api-version.mjs";
4
+ import { getBuilderSearchParamsFromWindow as I } from "../get-builder-search-params/index.mjs";
5
+ const y = (r) => typeof r == "number" && !isNaN(r) && r >= 0, M = (r) => {
6
6
  const {
7
7
  limit: c = 30,
8
8
  userAttributes: m,
@@ -11,42 +11,43 @@ const y = (s) => typeof s == "number" && !isNaN(s) && s >= 0, J = (s) => {
11
11
  apiKey: l,
12
12
  enrich: h,
13
13
  locale: d,
14
- apiVersion: a = O,
14
+ apiVersion: a = E,
15
15
  fields: u,
16
16
  omit: N,
17
17
  offset: i,
18
18
  cacheSeconds: n,
19
19
  staleCacheSeconds: o,
20
20
  sort: P,
21
- includeUnpublished: S
22
- } = s;
21
+ includeUnpublished: p,
22
+ apiHost: v
23
+ } = r;
23
24
  if (!l)
24
25
  throw new Error("Missing API key");
25
26
  if (!["v3"].includes(a))
26
27
  throw new Error(`Invalid apiVersion: expected 'v3', received '${a}'`);
27
- const v = c !== 1, e = new URL(`https://cdn.builder.io/api/${a}/content/${b}`);
28
- if (e.searchParams.set("apiKey", l), e.searchParams.set("limit", String(c)), e.searchParams.set("noTraverse", String(v)), e.searchParams.set("includeRefs", String(!0)), d && e.searchParams.set("locale", d), h && e.searchParams.set("enrich", String(h)), e.searchParams.set("omit", N || "meta.componentsUsed"), u && e.searchParams.set("fields", u), Number.isFinite(i) && i > -1 && e.searchParams.set("offset", String(Math.floor(i))), typeof S == "boolean" && e.searchParams.set("includeUnpublished", String(S)), n && y(n) && e.searchParams.set("cacheSeconds", String(n)), o && y(o) && e.searchParams.set("staleCacheSeconds", String(o)), P) {
29
- const r = g({
28
+ const U = c !== 1, w = v || "https://cdn.builder.io", e = new URL(`${w}/api/${a}/content/${b}`);
29
+ if (e.searchParams.set("apiKey", l), e.searchParams.set("limit", String(c)), e.searchParams.set("noTraverse", String(U)), e.searchParams.set("includeRefs", String(!0)), d && e.searchParams.set("locale", d), h && e.searchParams.set("enrich", String(h)), e.searchParams.set("omit", N || "meta.componentsUsed"), u && e.searchParams.set("fields", u), Number.isFinite(i) && i > -1 && e.searchParams.set("offset", String(Math.floor(i))), typeof p == "boolean" && e.searchParams.set("includeUnpublished", String(p)), n && y(n) && e.searchParams.set("cacheSeconds", String(n)), o && y(o) && e.searchParams.set("staleCacheSeconds", String(o)), P) {
30
+ const s = g({
30
31
  sort: P
31
32
  });
32
- for (const t in r)
33
- e.searchParams.set(t, JSON.stringify(r[t]));
33
+ for (const t in s)
34
+ e.searchParams.set(t, JSON.stringify(s[t]));
34
35
  }
35
- const w = {
36
- ...k(),
37
- ...A(s.options || {})
38
- }, p = g(w);
39
- for (const r in p)
40
- e.searchParams.set(r, String(p[r]));
36
+ const A = {
37
+ ...I(),
38
+ ...k(r.options || {})
39
+ }, S = g(A);
40
+ for (const s in S)
41
+ e.searchParams.set(s, String(S[s]));
41
42
  if (m && e.searchParams.set("userAttributes", JSON.stringify(m)), f) {
42
- const r = U({
43
+ const s = O({
43
44
  query: f
44
45
  });
45
- for (const t in r)
46
- e.searchParams.set(t, JSON.stringify(r[t]));
46
+ for (const t in s)
47
+ e.searchParams.set(t, JSON.stringify(s[t]));
47
48
  }
48
49
  return e;
49
50
  };
50
51
  export {
51
- J as generateContentUrl
52
+ M as generateContentUrl
52
53
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("../../constants/target.cjs"),h=require("../../helpers/ab-tests.cjs"),w=require("../../helpers/canTrack.cjs"),o=require("../../helpers/logger.cjs"),C=require("../../helpers/preview-lru-cache/get.cjs"),y=require("../get-fetch.cjs"),T=require("../is-browser.cjs"),a=require("./generate-content-url.cjs"),q=t=>"results"in t;async function d(t){const e=await i({...t,limit:1});return e&&e[0]||null}const v=async t=>{var r;const e=a.generateContentUrl(t);return await(await((r=t.fetch)!=null?r:y.fetch)(e.href,t.fetchOptions)).json()},u=async(t,e,n=a.generateContentUrl(t))=>{const s=w.getDefaultCanTrack(t.canTrack);if(n.search.includes("preview=")){const r=[];for(const c of e.results){const f=C.getPreviewContent(n.searchParams);r.push(f||c)}e.results=r}if(!s||!(T.isBrowser()||g.TARGET==="reactNative"))return e.results;try{const r=[];for(const c of e.results)r.push(await h.handleABTesting({item:c,canTrack:s}));e.results=r}catch(r){o.logger.error("Could not process A/B tests. ",r)}return e.results};async function i(t){try{const e=a.generateContentUrl(t),n=await v(t);return q(n)?u(t,n):(o.logger.error("Error fetching data. ",{url:e,content:n,options:t}),null)}catch(e){return o.logger.error("Error fetching data. ",e),null}}exports._processContentResult=u;exports.fetchEntries=i;exports.fetchOneEntry=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("../../constants/target.cjs"),h=require("../../helpers/ab-tests.cjs"),w=require("../../helpers/canTrack.cjs"),o=require("../../helpers/logger.cjs"),d=require("../../helpers/preview-lru-cache/get.cjs"),C=require("../../helpers/sdk-headers.cjs"),y=require("../get-fetch.cjs"),T=require("../is-browser.cjs"),u=require("./generate-content-url.cjs"),q=e=>"results"in e;async function k(e){const t=await l({...e,limit:1});return t&&t[0]||null}const v=async e=>{var s,a;const t=u.generateContentUrl(e),r=(s=e.fetch)!=null?s:y.fetch,c={...e.fetchOptions,headers:{...(a=e.fetchOptions)==null?void 0:a.headers,...C.getSdkHeaders()}};return await(await r(t.href,c)).json()},i=async(e,t,r=u.generateContentUrl(e))=>{const c=w.getDefaultCanTrack(e.canTrack);if(r.search.includes("preview=")){const n=[];for(const s of t.results){const a=d.getPreviewContent(r.searchParams);n.push(a||s)}t.results=n}if(!c||!(T.isBrowser()||g.TARGET==="reactNative"))return t.results;try{const n=[];for(const s of t.results)n.push(await h.handleABTesting({item:s,canTrack:c}));t.results=n}catch(n){o.logger.error("Could not process A/B tests. ",n)}return t.results};async function l(e){try{const t=u.generateContentUrl(e),r=await v(e);return q(r)?i(e,r):(o.logger.error("Error fetching data. ",{url:t,content:r,options:e}),null)}catch(t){return o.logger.error("Error fetching data. ",t),null}}exports._processContentResult=i;exports.fetchEntries=l;exports.fetchOneEntry=k;
@@ -1,62 +1,69 @@
1
- import { TARGET as f } from "../../constants/target.mjs";
1
+ import { TARGET as u } from "../../constants/target.mjs";
2
2
  import { handleABTesting as l } from "../../helpers/ab-tests.mjs";
3
- import { getDefaultCanTrack as m } from "../../helpers/canTrack.mjs";
4
- import { logger as o } from "../../helpers/logger.mjs";
5
- import { getPreviewContent as h } from "../../helpers/preview-lru-cache/get.mjs";
6
- import { fetch as w } from "../get-fetch.mjs";
3
+ import { getDefaultCanTrack as h } from "../../helpers/canTrack.mjs";
4
+ import { logger as a } from "../../helpers/logger.mjs";
5
+ import { getPreviewContent as m } from "../../helpers/preview-lru-cache/get.mjs";
6
+ import { getSdkHeaders as w } from "../../helpers/sdk-headers.mjs";
7
+ import { fetch as p } from "../get-fetch.mjs";
7
8
  import { isBrowser as g } from "../is-browser.mjs";
8
- import { generateContentUrl as a } from "./generate-content-url.mjs";
9
- const p = (t) => "results" in t;
10
- async function B(t) {
11
- const r = await v({
12
- ...t,
9
+ import { generateContentUrl as i } from "./generate-content-url.mjs";
10
+ const d = (r) => "results" in r;
11
+ async function H(r) {
12
+ const t = await v({
13
+ ...r,
13
14
  limit: 1
14
15
  });
15
- return r && r[0] || null;
16
+ return t && t[0] || null;
16
17
  }
17
- const C = async (t) => {
18
- var e;
19
- const r = a(t);
20
- return await (await ((e = t.fetch) != null ? e : w)(r.href, t.fetchOptions)).json();
21
- }, y = async (t, r, s = a(t)) => {
22
- const n = m(t.canTrack);
23
- if (s.search.includes("preview=")) {
24
- const e = [];
25
- for (const c of r.results) {
26
- const u = h(s.searchParams);
27
- e.push(u || c);
18
+ const C = async (r) => {
19
+ var n, o;
20
+ const t = i(r), e = (n = r.fetch) != null ? n : p, c = {
21
+ ...r.fetchOptions,
22
+ headers: {
23
+ ...(o = r.fetchOptions) == null ? void 0 : o.headers,
24
+ ...w()
28
25
  }
29
- r.results = e;
26
+ };
27
+ return await (await e(t.href, c)).json();
28
+ }, y = async (r, t, e = i(r)) => {
29
+ const c = h(r.canTrack);
30
+ if (e.search.includes("preview=")) {
31
+ const s = [];
32
+ for (const n of t.results) {
33
+ const o = m(e.searchParams);
34
+ s.push(o || n);
35
+ }
36
+ t.results = s;
30
37
  }
31
- if (!n || !(g() || f === "reactNative"))
32
- return r.results;
38
+ if (!c || !(g() || u === "reactNative"))
39
+ return t.results;
33
40
  try {
34
- const e = [];
35
- for (const c of r.results)
36
- e.push(await l({
37
- item: c,
38
- canTrack: n
41
+ const s = [];
42
+ for (const n of t.results)
43
+ s.push(await l({
44
+ item: n,
45
+ canTrack: c
39
46
  }));
40
- r.results = e;
41
- } catch (e) {
42
- o.error("Could not process A/B tests. ", e);
47
+ t.results = s;
48
+ } catch (s) {
49
+ a.error("Could not process A/B tests. ", s);
43
50
  }
44
- return r.results;
51
+ return t.results;
45
52
  };
46
- async function v(t) {
53
+ async function v(r) {
47
54
  try {
48
- const r = a(t), s = await C(t);
49
- return p(s) ? y(t, s) : (o.error("Error fetching data. ", {
50
- url: r,
51
- content: s,
52
- options: t
55
+ const t = i(r), e = await C(r);
56
+ return d(e) ? y(r, e) : (a.error("Error fetching data. ", {
57
+ url: t,
58
+ content: e,
59
+ options: r
53
60
  }), null);
54
- } catch (r) {
55
- return o.error("Error fetching data. ", r), null;
61
+ } catch (t) {
62
+ return a.error("Error fetching data. ", t), null;
56
63
  }
57
64
  }
58
65
  export {
59
66
  y as _processContentResult,
60
67
  v as fetchEntries,
61
- B as fetchOneEntry
68
+ H as fetchOneEntry
62
69
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("../../constants/target.cjs"),a=require("../../helpers/logger.cjs"),c=require("../../helpers/sessionId.cjs"),d=require("../../helpers/visitorId.cjs"),u=require("../is-browser.cjs"),g=require("../is-editing.cjs"),l=require("./helpers.cjs"),y=async({canTrack:t})=>{if(!t)return{visitorId:void 0,sessionId:void 0};const e=await c.getSessionId({canTrack:t}),r=d.getVisitorId({canTrack:t});return{sessionId:e,visitorId:r}},I=async({type:t,canTrack:e,apiKey:r,metadata:s,...o})=>({type:t,data:{...o,metadata:{url:location.href,...s},...await y({canTrack:e}),userAttributes:l.getUserAttributes(),ownerId:r}});async function i(t){if(!t.apiKey){a.logger.error("Missing API key for track call. Please provide your API key.");return}if(t.canTrack&&!g.isEditing()&&(u.isBrowser()||n.TARGET==="reactNative"))return fetch("https://cdn.builder.io/api/v1/track",{method:"POST",body:JSON.stringify({events:[await I(t)]}),headers:{"content-type":"application/json"},mode:"cors"}).catch(e=>{console.error("Failed to track: ",e)})}const f=t=>i({...t,canTrack:!0});exports._track=i;exports.track=f;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("../../constants/target.cjs"),a=require("../../helpers/logger.cjs"),c=require("../../helpers/sdk-headers.cjs"),d=require("../../helpers/sessionId.cjs"),u=require("../../helpers/visitorId.cjs"),g=require("../is-browser.cjs"),l=require("../is-editing.cjs"),y=require("./helpers.cjs"),I=async({canTrack:e})=>{if(!e)return{visitorId:void 0,sessionId:void 0};const t=await d.getSessionId({canTrack:e}),r=u.getVisitorId({canTrack:e});return{sessionId:t,visitorId:r}},k=async({type:e,canTrack:t,apiKey:r,metadata:i,...o})=>({type:e,data:{...o,metadata:{url:location.href,...i},...await I({canTrack:t}),userAttributes:y.getUserAttributes(),ownerId:r}});async function s({apiHost:e,...t}){if(!t.apiKey){a.logger.error("Missing API key for track call. Please provide your API key.");return}return!t.canTrack||l.isEditing()||!(g.isBrowser()||n.TARGET==="reactNative")?void 0:fetch(`${e||"https://cdn.builder.io"}/api/v1/track`,{method:"POST",body:JSON.stringify({events:[await k(t)]}),headers:{"content-type":"application/json",...c.getSdkHeaders()},mode:"cors"}).catch(i=>{console.error("Failed to track: ",i)})}const f=e=>s({...e,canTrack:!0});exports._track=s;exports.track=f;
@@ -1,11 +1,12 @@
1
1
  import { TARGET as a } from "../../constants/target.mjs";
2
2
  import { logger as s } from "../../helpers/logger.mjs";
3
- import { getSessionId as n } from "../../helpers/sessionId.mjs";
4
- import { getVisitorId as c } from "../../helpers/visitorId.mjs";
5
- import { isBrowser as d } from "../is-browser.mjs";
3
+ import { getSdkHeaders as n } from "../../helpers/sdk-headers.mjs";
4
+ import { getSessionId as c } from "../../helpers/sessionId.mjs";
5
+ import { getVisitorId as d } from "../../helpers/visitorId.mjs";
6
+ import { isBrowser as m } from "../is-browser.mjs";
6
7
  import { isEditing as f } from "../is-editing.mjs";
7
- import { getUserAttributes as m } from "./helpers.mjs";
8
- const p = async ({
8
+ import { getUserAttributes as p } from "./helpers.mjs";
9
+ const u = async ({
9
10
  canTrack: t
10
11
  }) => {
11
12
  if (!t)
@@ -13,60 +14,63 @@ const p = async ({
13
14
  visitorId: void 0,
14
15
  sessionId: void 0
15
16
  };
16
- const r = await n({
17
+ const r = await c({
17
18
  canTrack: t
18
- }), e = c({
19
+ }), e = d({
19
20
  canTrack: t
20
21
  });
21
22
  return {
22
23
  sessionId: r,
23
24
  visitorId: e
24
25
  };
25
- }, u = async ({
26
+ }, l = async ({
26
27
  type: t,
27
28
  canTrack: r,
28
29
  apiKey: e,
29
- metadata: i,
30
- ...o
30
+ metadata: o,
31
+ ...i
31
32
  }) => ({
32
33
  type: t,
33
34
  data: {
34
- ...o,
35
+ ...i,
35
36
  metadata: {
36
37
  url: location.href,
37
- ...i
38
+ ...o
38
39
  },
39
- ...await p({
40
+ ...await u({
40
41
  canTrack: r
41
42
  }),
42
- userAttributes: m(),
43
+ userAttributes: p(),
43
44
  ownerId: e
44
45
  }
45
46
  });
46
- async function y(t) {
47
- if (!t.apiKey) {
47
+ async function y({
48
+ apiHost: t,
49
+ ...r
50
+ }) {
51
+ if (!r.apiKey) {
48
52
  s.error("Missing API key for track call. Please provide your API key.");
49
53
  return;
50
54
  }
51
- if (t.canTrack && !f() && (d() || a === "reactNative"))
52
- return fetch("https://cdn.builder.io/api/v1/track", {
53
- method: "POST",
54
- body: JSON.stringify({
55
- events: [await u(t)]
56
- }),
57
- headers: {
58
- "content-type": "application/json"
59
- },
60
- mode: "cors"
61
- }).catch((r) => {
62
- console.error("Failed to track: ", r);
63
- });
55
+ return !r.canTrack || f() || !(m() || a === "reactNative") ? void 0 : fetch(`${t || "https://cdn.builder.io"}/api/v1/track`, {
56
+ method: "POST",
57
+ body: JSON.stringify({
58
+ events: [await l(r)]
59
+ }),
60
+ headers: {
61
+ "content-type": "application/json",
62
+ ...n()
63
+ },
64
+ mode: "cors"
65
+ }).catch((o) => {
66
+ console.error("Failed to track: ", o);
67
+ });
64
68
  }
65
- const A = (t) => y({
69
+ const E = (t) => y({
66
70
  ...t,
67
71
  canTrack: !0
68
72
  });
69
73
  export {
70
74
  y as _track,
71
- A as track
75
+ E as track
72
76
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../constants/sdk-version.cjs"),r=require("../constants/target.cjs"),t=()=>({"X-Builder-SDK":r.TARGET,"X-Builder-SDK-GEN":"2","X-Builder-SDK-Version":e.SDK_VERSION});exports.getSdkHeaders=t;
@@ -0,0 +1,10 @@
1
+ import { SDK_VERSION as r } from "../constants/sdk-version.mjs";
2
+ import { TARGET as e } from "../constants/target.mjs";
3
+ const S = () => ({
4
+ "X-Builder-SDK": e,
5
+ "X-Builder-SDK-GEN": "2",
6
+ "X-Builder-SDK-Version": r
7
+ });
8
+ export {
9
+ S as getSdkHeaders
10
+ };
@@ -1 +1 @@
1
- "use client";"use strict";const k=require("react/jsx-runtime"),o=require("react"),W=require("../../../context/builder.context.cjs"),A=require("../../../functions/evaluate/evaluate.cjs"),B=require("../../../functions/fast-clone.cjs"),D=require("../../../functions/get-content/index.cjs"),P=require("../../../functions/is-browser.cjs"),g=require("../../../functions/is-editing.cjs"),N=require("../../../functions/is-previewing.cjs"),U=require("../../../functions/register-component.cjs"),R=require("../../../functions/track/index.cjs"),O=require("../../../functions/track/interaction.cjs"),y=require("../../../helpers/canTrack.cjs"),F=require("../../../helpers/preview-lru-cache/set.cjs"),$=require("../../../helpers/subscribe-to-editor.cjs"),L=require("../../../scripts/init-editing.cjs"),z=require("../../block/animator.cjs"),G=require("./styles.helpers.cjs"),J=require("next/navigation");function Q(e){var q,w,I;const d=o.useRef(null);function f(n){var r,i;const t={...e.builderContextSignal.rootState,...n};e.builderContextSignal.rootSetState?(i=(r=e.builderContextSignal).rootSetState)==null||i.call(r,t):e.builderContextSignal.rootState=t}function b(n){var r,i,a,c,u;const t={...e.builderContextSignal.content,...n,data:{...(r=e.builderContextSignal.content)==null?void 0:r.data,...n==null?void 0:n.data},meta:{...(i=e.builderContextSignal.content)==null?void 0:i.meta,...n==null?void 0:n.meta,breakpoints:((a=n==null?void 0:n.meta)==null?void 0:a.breakpoints)||((u=(c=e.builderContextSignal.content)==null?void 0:c.meta)==null?void 0:u.breakpoints)}};F.postPreviewContent({value:t,key:t.id}).then(()=>{V.refresh()})}function K(){return e.showContent?{}:{hidden:!0,"aria-hidden":!0}}const[T,X]=o.useState(()=>e.contentWrapper||"div");function S(n){return $.createEditorListener({model:e.model,trustedHosts:e.trustedHosts,callbacks:{configureSdk:t=>{var a;const{breakpoints:r,contentId:i}=t;!i||i!==((a=e.builderContextSignal.content)==null?void 0:a.id)||r&&b({meta:{breakpoints:r}})},animation:t=>{z.triggerAnimation(t)},contentUpdate:t=>{b(t)}}})(n)}const[v,Y]=o.useState(()=>({})),[m,Z]=o.useState(()=>({})),[h,H]=o.useState(()=>!1);function _(n){var t,r;if(e.builderContextSignal.content){const i=(t=e.builderContextSignal.content)==null?void 0:t.testVariationId,a=(r=e.builderContextSignal.content)==null?void 0:r.id;R._track({type:"click",canTrack:y.getDefaultCanTrack(e.canTrack),contentId:a,apiKey:e.apiKey,variationId:i!==a?i:void 0,...O.getInteractionPropertiesForEvent(n),unique:!h})}h||H(!0)}function j(){var t,r,i;const n=(i=(r=(t=e.builderContextSignal.content)==null?void 0:t.data)==null?void 0:r.httpRequests)!=null?i:{};Object.entries(n).forEach(([a,c])=>{if(!c||m[a]||v[a]&&!g.isEditing())return;m[a]=!0;const u=c.replace(/{{([^}]+)}}/g,(s,M)=>String(A.evaluate({code:M,context:e.context||{},localState:void 0,rootState:e.builderContextSignal.rootState,rootSetState:e.builderContextSignal.rootSetState})));fetch(u).then(s=>s.json()).then(s=>{f({[a]:s}),v[a]=!0}).catch(s=>{console.error("error fetching dynamic data",c,s)}).finally(()=>{m[a]=!1})})}function l(){g.isEditing()&&window.dispatchEvent(new CustomEvent("builder:component:stateChange",{detail:{state:B.fastClone(e.builderContextSignal.rootState),ref:{name:e.model}}}))}function E(n){window.addEventListener("message",S),L.registerInsertMenu(),L.setupBrowserForEditing({...e.locale?{locale:e.locale}:{},...e.enrich?{enrich:e.enrich}:{},...e.trustedHosts?{trustedHosts:e.trustedHosts}:{}}),Object.values(e.builderContextSignal.componentInfos).forEach(t=>{var i;const r=U.createRegisterComponentMessage(t);(i=window.parent)==null||i.postMessage(r,"*")}),window.addEventListener("builder:component:stateChangeListenerActivated",l)}function x(n){const t=new URL(location.href).searchParams,r=t.get("builder.preview"),i=t.get(`builder.overrides.${r}`),a=t.get("apiKey")||t.get("builder.space");r===e.model&&a===e.apiKey&&(!e.content||i===e.content.id)&&D.fetchOneEntry({model:e.model,apiKey:e.apiKey,apiVersion:e.builderContextSignal.apiVersion}).then(c=>{c&&b(c)})}const V=J.useRouter(),C=o.useRef(!1);return C.current||(j(),l(),C.current=!0),o.useEffect(()=>{var n;return(n=d.current)==null||n.addEventListener("initeditingbldr",E),()=>{var t;return(t=d.current)==null?void 0:t.removeEventListener("initeditingbldr",E)}},[]),o.useEffect(()=>{var n;return(n=d.current)==null||n.addEventListener("initpreviewingbldr",x),()=>{var t;return(t=d.current)==null?void 0:t.removeEventListener("initpreviewingbldr",x)}},[]),o.useEffect(()=>{var n,t;if(P.isBrowser()){if(g.isEditing()&&d.current&&d.current.dispatchEvent(new CustomEvent("initeditingbldr")),e.builderContextSignal.content&&y.getDefaultCanTrack(e.canTrack)){const i=(n=e.builderContextSignal.content)==null?void 0:n.testVariationId,a=(t=e.builderContextSignal.content)==null?void 0:t.id,c=e.apiKey;R._track({type:"impression",canTrack:!0,contentId:a,apiKey:c,variationId:i!==a?i:void 0})}N.isPreviewing()&&g.isEditing()}},[]),o.useEffect(()=>{},[e.content]),o.useEffect(()=>{l()},[e.builderContextSignal.rootState]),o.useEffect(()=>{e.data&&f(e.data)},[e.data]),o.useEffect(()=>{e.locale&&f({locale:e.locale})},[e.locale]),o.useEffect(()=>()=>{P.isBrowser()&&(window.removeEventListener("message",S),window.removeEventListener("builder:component:stateChangeListenerActivated",l))},[]),k.jsx(W.Provider,{value:e.builderContextSignal,children:e.builderContextSignal.content?k.jsx(T,{ref:d,onClick:n=>_(n),"builder-content-id":(q=e.builderContextSignal.content)==null?void 0:q.id,"builder-model":e.model,className:G.getWrapperClassName(((w=e.content)==null?void 0:w.testVariationId)||((I=e.content)==null?void 0:I.id)),...K(),...e.contentWrapperProps,children:e.children}):null})}module.exports=Q;
1
+ "use client";"use strict";const k=require("react/jsx-runtime"),o=require("react"),N=require("../../../context/builder.context.cjs"),W=require("../../../functions/evaluate/evaluate.cjs"),A=require("../../../functions/fast-clone.cjs"),B=require("../../../functions/get-content/index.cjs"),R=require("../../../functions/is-browser.cjs"),g=require("../../../functions/is-editing.cjs"),D=require("../../../functions/is-previewing.cjs"),U=require("../../../functions/register-component.cjs"),P=require("../../../functions/track/index.cjs"),O=require("../../../functions/track/interaction.cjs"),y=require("../../../helpers/canTrack.cjs"),F=require("../../../helpers/preview-lru-cache/set.cjs"),$=require("../../../helpers/subscribe-to-editor.cjs"),H=require("../../../scripts/init-editing.cjs"),z=require("../../block/animator.cjs"),G=require("./styles.helpers.cjs"),J=require("next/navigation");function Q(e){var q,w,I;const d=o.useRef(null);function f(n){var a,i;const t={...e.builderContextSignal.rootState,...n};e.builderContextSignal.rootSetState?(i=(a=e.builderContextSignal).rootSetState)==null||i.call(a,t):e.builderContextSignal.rootState=t}function b(n){var a,i,r,c,u;const t={...e.builderContextSignal.content,...n,data:{...(a=e.builderContextSignal.content)==null?void 0:a.data,...n==null?void 0:n.data},meta:{...(i=e.builderContextSignal.content)==null?void 0:i.meta,...n==null?void 0:n.meta,breakpoints:((r=n==null?void 0:n.meta)==null?void 0:r.breakpoints)||((u=(c=e.builderContextSignal.content)==null?void 0:c.meta)==null?void 0:u.breakpoints)}};F.postPreviewContent({value:t,key:t.id}).then(()=>{V.refresh()})}function L(){return e.showContent?{}:{hidden:!0,"aria-hidden":!0}}const[K,X]=o.useState(()=>e.contentWrapper||"div");function S(n){return $.createEditorListener({model:e.model,trustedHosts:e.trustedHosts,callbacks:{configureSdk:t=>{var r;const{breakpoints:a,contentId:i}=t;!i||i!==((r=e.builderContextSignal.content)==null?void 0:r.id)||a&&b({meta:{breakpoints:a}})},animation:t=>{z.triggerAnimation(t)},contentUpdate:t=>{b(t)}}})(n)}const[v,Y]=o.useState(()=>({})),[m,Z]=o.useState(()=>({})),[h,T]=o.useState(()=>!1);function _(n){var t,a;if(e.builderContextSignal.content){const i=(t=e.builderContextSignal.content)==null?void 0:t.testVariationId,r=(a=e.builderContextSignal.content)==null?void 0:a.id;P._track({apiHost:e.apiHost,type:"click",canTrack:y.getDefaultCanTrack(e.canTrack),contentId:r,apiKey:e.apiKey,variationId:i!==r?i:void 0,...O.getInteractionPropertiesForEvent(n),unique:!h})}h||T(!0)}function j(){var t,a,i;const n=(i=(a=(t=e.builderContextSignal.content)==null?void 0:t.data)==null?void 0:a.httpRequests)!=null?i:{};Object.entries(n).forEach(([r,c])=>{if(!c||m[r]||v[r]&&!g.isEditing())return;m[r]=!0;const u=c.replace(/{{([^}]+)}}/g,(s,M)=>String(W.evaluate({code:M,context:e.context||{},localState:void 0,rootState:e.builderContextSignal.rootState,rootSetState:e.builderContextSignal.rootSetState})));fetch(u).then(s=>s.json()).then(s=>{f({[r]:s}),v[r]=!0}).catch(s=>{console.error("error fetching dynamic data",c,s)}).finally(()=>{m[r]=!1})})}function l(){g.isEditing()&&window.dispatchEvent(new CustomEvent("builder:component:stateChange",{detail:{state:A.fastClone(e.builderContextSignal.rootState),ref:{name:e.model}}}))}function E(n){window.addEventListener("message",S),H.registerInsertMenu(),H.setupBrowserForEditing({...e.locale?{locale:e.locale}:{},...e.enrich?{enrich:e.enrich}:{},...e.trustedHosts?{trustedHosts:e.trustedHosts}:{}}),Object.values(e.builderContextSignal.componentInfos).forEach(t=>{var i;const a=U.createRegisterComponentMessage(t);(i=window.parent)==null||i.postMessage(a,"*")}),window.addEventListener("builder:component:stateChangeListenerActivated",l)}function x(n){const t=new URL(location.href).searchParams,a=t.get("builder.preview"),i=t.get(`builder.overrides.${a}`),r=t.get("apiKey")||t.get("builder.space");a===e.model&&r===e.apiKey&&(!e.content||i===e.content.id)&&B.fetchOneEntry({model:e.model,apiKey:e.apiKey,apiVersion:e.builderContextSignal.apiVersion}).then(c=>{c&&b(c)})}const V=J.useRouter(),C=o.useRef(!1);return C.current||(j(),l(),C.current=!0),o.useEffect(()=>{var n;return(n=d.current)==null||n.addEventListener("initeditingbldr",E),()=>{var t;return(t=d.current)==null?void 0:t.removeEventListener("initeditingbldr",E)}},[]),o.useEffect(()=>{var n;return(n=d.current)==null||n.addEventListener("initpreviewingbldr",x),()=>{var t;return(t=d.current)==null?void 0:t.removeEventListener("initpreviewingbldr",x)}},[]),o.useEffect(()=>{var n,t;if(R.isBrowser()){if(g.isEditing()&&!e.isNestedRender&&d.current&&d.current.dispatchEvent(new CustomEvent("initeditingbldr")),e.builderContextSignal.content&&y.getDefaultCanTrack(e.canTrack)){const i=(n=e.builderContextSignal.content)==null?void 0:n.testVariationId,r=(t=e.builderContextSignal.content)==null?void 0:t.id,c=e.apiKey;P._track({apiHost:e.apiHost,type:"impression",canTrack:!0,contentId:r,apiKey:c,variationId:i!==r?i:void 0})}D.isPreviewing()&&g.isEditing()}},[]),o.useEffect(()=>{},[e.content]),o.useEffect(()=>{l()},[e.builderContextSignal.rootState]),o.useEffect(()=>{e.data&&f(e.data)},[e.data]),o.useEffect(()=>{e.locale&&f({locale:e.locale})},[e.locale]),o.useEffect(()=>()=>{R.isBrowser()&&(window.removeEventListener("message",S),window.removeEventListener("builder:component:stateChangeListenerActivated",l))},[]),k.jsx(N.Provider,{value:e.builderContextSignal,children:e.builderContextSignal.content?k.jsx(K,{ref:d,onClick:n=>_(n),"builder-content-id":(q=e.builderContextSignal.content)==null?void 0:q.id,"builder-model":e.model,className:G.getWrapperClassName(((w=e.content)==null?void 0:w.testVariationId)||((I=e.content)==null?void 0:I.id)),...L(),...e.contentWrapperProps,children:e.children}):null})}module.exports=Q;