@builder.io/react 6.0.2 → 6.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builder.io/react",
3
- "version": "6.0.2",
3
+ "version": "6.0.3",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "main": "dist/builder-react.cjs.js",
@@ -42,11 +42,11 @@ var builder_blocks_component_1 = require("../components/builder-blocks.component
42
42
  var filter_with_custom_targeting_1 = require("../functions/filter-with-custom-targeting");
43
43
  var builder_store_1 = require("../store/builder-store");
44
44
  function PersonalizationContainer(props) {
45
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
45
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
46
46
  var isBeingHydrated = Boolean(sdk_1.Builder.isBrowser && ((_a = window.__hydrated) === null || _a === void 0 ? void 0 : _a[(_b = props.builderBlock) === null || _b === void 0 ? void 0 : _b.id]));
47
47
  var rootRef = (0, react_1.useRef)(null);
48
- var _w = (0, react_2.useState)(isBeingHydrated), isClient = _w[0], setIsClient = _w[1];
49
- var _x = (0, react_2.useState)(0), update = _x[0], setUpdate = _x[1];
48
+ var _x = (0, react_2.useState)(isBeingHydrated), isClient = _x[0], setIsClient = _x[1];
49
+ var _y = (0, react_2.useState)(0), update = _y[0], setUpdate = _y[1];
50
50
  var builderStore = (0, react_1.useContext)(builder_store_1.BuilderStoreContext);
51
51
  (0, react_2.useEffect)(function () {
52
52
  var _a;
@@ -54,6 +54,7 @@ function PersonalizationContainer(props) {
54
54
  var subscriber = sdk_1.builder.userAttributesChanged.subscribe(function () {
55
55
  setUpdate(update + 1);
56
56
  });
57
+ var unsubs = [function () { return subscriber.unsubscribe(); }];
57
58
  if (!(sdk_1.Builder.isEditing || sdk_1.Builder.isPreviewing)) {
58
59
  var variant_1 = filteredVariants[0];
59
60
  // fire a custom event to update the personalization container
@@ -65,7 +66,7 @@ function PersonalizationContainer(props) {
65
66
  bubbles: true,
66
67
  }));
67
68
  // add an intersection observer to fire a builder.variantDisplayed event when the container is in the viewport
68
- var observer = new IntersectionObserver(function (entries) {
69
+ var observer_1 = new IntersectionObserver(function (entries) {
69
70
  entries.forEach(function (entry) {
70
71
  var _a;
71
72
  if (entry.isIntersecting) {
@@ -79,10 +80,11 @@ function PersonalizationContainer(props) {
79
80
  }
80
81
  });
81
82
  });
82
- observer.observe(rootRef.current);
83
+ observer_1.observe(rootRef.current);
84
+ unsubs.push(function () { return observer_1.disconnect(); });
83
85
  }
84
86
  return function () {
85
- subscriber.unsubscribe();
87
+ unsubs.forEach(function (fn) { return fn(); });
86
88
  };
87
89
  }, []);
88
90
  if (sdk_1.Builder.isServer) {
@@ -96,27 +98,28 @@ function PersonalizationContainer(props) {
96
98
  react_1.default.createElement(builder_blocks_component_1.BuilderBlocks, { blocks: variant.blocks, parentElementId: (_b = props.builderBlock) === null || _b === void 0 ? void 0 : _b.id, dataPath: "component.options.variants.".concat(index, ".blocks"), child: true })));
97
99
  }),
98
100
  react_1.default.createElement("script", { id: "variants-script-".concat((_e = props.builderBlock) === null || _e === void 0 ? void 0 : _e.id), dangerouslySetInnerHTML: {
99
- __html: getPersonalizationScript(props.variants, (_f = props.builderBlock) === null || _f === void 0 ? void 0 : _f.id),
101
+ __html: getPersonalizationScript(props.variants, ((_f = props.builderBlock) === null || _f === void 0 ? void 0 : _f.id) || 'none', (_g = props.builderState.state) === null || _g === void 0 ? void 0 : _g.locale),
100
102
  } }),
101
- react_1.default.createElement(builder_blocks_component_1.BuilderBlocks, { blocks: (_g = props.builderBlock) === null || _g === void 0 ? void 0 : _g.children, parentElementId: (_h = props.builderBlock) === null || _h === void 0 ? void 0 : _h.id, dataPath: "this.children", child: true })),
103
+ react_1.default.createElement(builder_blocks_component_1.BuilderBlocks, { blocks: (_h = props.builderBlock) === null || _h === void 0 ? void 0 : _h.children, parentElementId: (_j = props.builderBlock) === null || _j === void 0 ? void 0 : _j.id, dataPath: "this.children", child: true })),
102
104
  react_1.default.createElement("script", { dangerouslySetInnerHTML: {
103
- __html: "\n window.__hydrated = window.__hydrated || {};\n window.__hydrated['".concat((_j = props.builderBlock) === null || _j === void 0 ? void 0 : _j.id, "'] = true;\n ").replace(/\s+/g, ' '),
105
+ __html: "\n window.__hydrated = window.__hydrated || {};\n window.__hydrated['".concat((_k = props.builderBlock) === null || _k === void 0 ? void 0 : _k.id, "'] = true;\n ").replace(/\s+/g, ' '),
104
106
  } })));
105
107
  }
106
108
  var filteredVariants = (props.variants || []).filter(function (variant) {
107
- return (0, filter_with_custom_targeting_1.filterWithCustomTargeting)(sdk_1.builder.getUserAttributes(), variant.query, variant.startDate, variant.endDate);
109
+ var _a;
110
+ return (0, filter_with_custom_targeting_1.filterWithCustomTargeting)(__assign(__assign({}, (((_a = props.builderState.state) === null || _a === void 0 ? void 0 : _a.locale) ? { locale: props.builderState.state.locale } : {})), sdk_1.builder.getUserAttributes()), variant.query, variant.startDate, variant.endDate);
108
111
  });
109
112
  return (react_1.default.createElement(react_1.default.Fragment, null,
110
- react_1.default.createElement("div", __assign({ ref: rootRef }, props.attributes, { style: __assign({ opacity: isClient ? 1 : 0, transition: 'opacity 0.2s ease-in-out' }, (_k = props.attributes) === null || _k === void 0 ? void 0 : _k.style), className: "builder-personalization-container ".concat(props.attributes.className, " ").concat(isClient ? '' : 'builder-personalization-container-loading') }), sdk_1.Builder.isEditing &&
113
+ react_1.default.createElement("div", __assign({ ref: rootRef }, props.attributes, { style: __assign({ opacity: isClient ? 1 : 0, transition: 'opacity 0.2s ease-in-out' }, (_l = props.attributes) === null || _l === void 0 ? void 0 : _l.style), className: "builder-personalization-container ".concat(props.attributes.className, " ").concat(isClient ? '' : 'builder-personalization-container-loading') }), sdk_1.Builder.isEditing &&
111
114
  typeof props.previewingIndex === 'number' &&
112
- props.previewingIndex < (((_l = props.variants) === null || _l === void 0 ? void 0 : _l.length) || 0) ? (react_1.default.createElement(builder_blocks_component_1.BuilderBlocks, { blocks: (_o = (_m = props.variants) === null || _m === void 0 ? void 0 : _m[props.previewingIndex]) === null || _o === void 0 ? void 0 : _o.blocks, parentElementId: (_p = props.builderBlock) === null || _p === void 0 ? void 0 : _p.id, dataPath: "component.options.variants.".concat(props.previewingIndex, ".blocks"), child: true })) : // If editing the default or we're on the server and there are no matching variants show the default
115
+ props.previewingIndex < (((_m = props.variants) === null || _m === void 0 ? void 0 : _m.length) || 0) ? (react_1.default.createElement(builder_blocks_component_1.BuilderBlocks, { blocks: (_p = (_o = props.variants) === null || _o === void 0 ? void 0 : _o[props.previewingIndex]) === null || _p === void 0 ? void 0 : _p.blocks, parentElementId: (_q = props.builderBlock) === null || _q === void 0 ? void 0 : _q.id, dataPath: "component.options.variants.".concat(props.previewingIndex, ".blocks"), child: true })) : // If editing the default or we're on the server and there are no matching variants show the default
113
116
  (sdk_1.Builder.isEditing && typeof props.previewingIndex !== 'number') ||
114
117
  !isClient ||
115
- !filteredVariants.length ? (react_1.default.createElement(builder_blocks_component_1.BuilderBlocks, { blocks: (_q = props.builderBlock) === null || _q === void 0 ? void 0 : _q.children, parentElementId: (_r = props.builderBlock) === null || _r === void 0 ? void 0 : _r.id, dataPath: "this.children", child: true })) : (
118
+ !filteredVariants.length ? (react_1.default.createElement(builder_blocks_component_1.BuilderBlocks, { blocks: (_r = props.builderBlock) === null || _r === void 0 ? void 0 : _r.children, parentElementId: (_s = props.builderBlock) === null || _s === void 0 ? void 0 : _s.id, dataPath: "this.children", child: true })) : (
116
119
  // Show the variant matching the current user attributes
117
- react_1.default.createElement(builder_blocks_component_1.BuilderBlocks, { blocks: (_s = filteredVariants[0]) === null || _s === void 0 ? void 0 : _s.blocks, parentElementId: (_t = props.builderBlock) === null || _t === void 0 ? void 0 : _t.id, dataPath: "component.options.variants.".concat((_u = props.variants) === null || _u === void 0 ? void 0 : _u.indexOf(filteredVariants[0]), ".blocks"), child: true }))),
120
+ react_1.default.createElement(builder_blocks_component_1.BuilderBlocks, { blocks: (_t = filteredVariants[0]) === null || _t === void 0 ? void 0 : _t.blocks, parentElementId: (_u = props.builderBlock) === null || _u === void 0 ? void 0 : _u.id, dataPath: "component.options.variants.".concat((_v = props.variants) === null || _v === void 0 ? void 0 : _v.indexOf(filteredVariants[0]), ".blocks"), child: true }))),
118
121
  react_1.default.createElement("script", { dangerouslySetInnerHTML: {
119
- __html: "\n window.__hydrated = window.__hydrated || {};\n window.__hydrated['".concat((_v = props.builderBlock) === null || _v === void 0 ? void 0 : _v.id, "'] = true;\n ").replace(/\s+/g, ' '),
122
+ __html: "\n window.__hydrated = window.__hydrated || {};\n window.__hydrated['".concat((_w = props.builderBlock) === null || _w === void 0 ? void 0 : _w.id, "'] = true;\n ").replace(/\s+/g, ' '),
120
123
  } })));
121
124
  }
122
125
  exports.PersonalizationContainer = PersonalizationContainer;
@@ -165,7 +168,7 @@ sdk_1.Builder.registerComponent(PersonalizationContainer, {
165
168
  },
166
169
  ],
167
170
  });
168
- function getPersonalizationScript(variants, blockId) {
169
- return "\n (function() {\n function getCookie(name) {\n var nameEQ = name + \"=\";\n var ca = document.cookie.split(';');\n for(var i=0;i < ca.length;i++) {\n var c = ca[i];\n while (c.charAt(0)==' ') c = c.substring(1,c.length);\n if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);\n }\n return null;\n }\n function removeVariants() {\n variants.forEach(function (template, index) {\n document.querySelector('template[data-variant-id=\"' + \"".concat(blockId, "\" + index + '\"]').remove();\n });\n document.getElementById('variants-script-").concat(blockId, "').remove();\n }\n\n var attributes = JSON.parse(getCookie(\"").concat(sdk_1.Builder.attributesCookieName, "\") || \"{}\");\n var variants = ").concat(JSON.stringify(variants === null || variants === void 0 ? void 0 : variants.map(function (v) { return ({ query: v.query, startDate: v.startDate, endDate: v.endDate }); })), ";\n var winningVariantIndex = variants.findIndex(function(variant) {\n return filterWithCustomTargeting(\n attributes,\n variant.query,\n variant.startDate,\n variant.endDate\n );\n });\n var isDebug = location.href.includes('builder.debug=true');\n if (isDebug) {\n console.debug('PersonalizationContainer', {\n attributes: attributes,\n variants: variants,\n winningVariantIndex: winningVariantIndex,\n });\n }\n if (winningVariantIndex !== -1) {\n var winningVariant = document.querySelector('template[data-variant-id=\"' + \"").concat(blockId, "\" + winningVariantIndex + '\"]');\n if (winningVariant) {\n var parentNode = winningVariant.parentNode;\n var newParent = parentNode.cloneNode(false);\n newParent.appendChild(winningVariant.content.firstChild);\n parentNode.parentNode.replaceChild(newParent, parentNode);\n if (isDebug) {\n console.debug('PersonalizationContainer', 'Winning variant Replaced:', winningVariant);\n }\n }\n } else if (variants.length > 0) {\n removeVariants();\n }\n ").concat(filter_with_custom_targeting_1.filterWithCustomTargetingScript, "\n })();\n ").replace(/\s+/g, ' ');
171
+ function getPersonalizationScript(variants, blockId, locale) {
172
+ return "\n (function() {\n function getCookie(name) {\n var nameEQ = name + \"=\";\n var ca = document.cookie.split(';');\n for(var i=0;i < ca.length;i++) {\n var c = ca[i];\n while (c.charAt(0)==' ') c = c.substring(1,c.length);\n if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);\n }\n return null;\n }\n function removeVariants() {\n variants.forEach(function (template, index) {\n document.querySelector('template[data-variant-id=\"' + \"".concat(blockId, "\" + index + '\"]').remove();\n });\n document.getElementById('variants-script-").concat(blockId, "').remove();\n }\n\n var attributes = JSON.parse(getCookie(\"").concat(sdk_1.Builder.attributesCookieName, "\") || \"{}\");\n ").concat(locale ? "attributes.locale = \"".concat(locale, "\";") : '', "\n var variants = ").concat(JSON.stringify(variants === null || variants === void 0 ? void 0 : variants.map(function (v) { return ({ query: v.query, startDate: v.startDate, endDate: v.endDate }); })), ";\n var winningVariantIndex = variants.findIndex(function(variant) {\n return filterWithCustomTargeting(\n attributes,\n variant.query,\n variant.startDate,\n variant.endDate\n );\n });\n var isDebug = location.href.includes('builder.debug=true');\n if (isDebug) {\n console.debug('PersonalizationContainer', {\n attributes: attributes,\n variants: variants,\n winningVariantIndex: winningVariantIndex,\n });\n }\n if (winningVariantIndex !== -1) {\n var winningVariant = document.querySelector('template[data-variant-id=\"' + \"").concat(blockId, "\" + winningVariantIndex + '\"]');\n if (winningVariant) {\n var parentNode = winningVariant.parentNode;\n var newParent = parentNode.cloneNode(false);\n newParent.appendChild(winningVariant.content.firstChild);\n parentNode.parentNode.replaceChild(newParent, parentNode);\n if (isDebug) {\n console.debug('PersonalizationContainer', 'Winning variant Replaced:', winningVariant);\n }\n }\n } else if (variants.length > 0) {\n removeVariants();\n }\n ").concat(filter_with_custom_targeting_1.filterWithCustomTargetingScript, "\n })();\n ").replace(/\s+/g, ' ');
170
173
  }
171
174
  //# sourceMappingURL=PersonalizationContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PersonalizationContainer.js","sourceRoot":"","sources":["../../../../src/blocks/PersonalizationContainer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PersonalizationContainer.js","sourceRoot":"","sources":["../../../../src/blocks/PersonalizationContainer.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SDK_VERSION = void 0;
4
- exports.SDK_VERSION = '6.0.2';
4
+ exports.SDK_VERSION = '6.0.3';
5
5
  //# sourceMappingURL=sdk-version.js.map
@@ -5,6 +5,7 @@ export type PersonalizationContainerProps = {
5
5
  children: React.ReactNode;
6
6
  previewingIndex: number | null;
7
7
  builderBlock?: BuilderElement;
8
+ builderState: any;
8
9
  variants?: [
9
10
  {
10
11
  query: Query[];
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "6.0.2";
1
+ export declare const SDK_VERSION = "6.0.3";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builder.io/react",
3
- "version": "6.0.2",
3
+ "version": "6.0.3",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "main": "dist/builder-react.cjs.js",
@@ -97,7 +97,7 @@
97
97
  "react-dom": ">=16.8.0 || ^19.0.0-rc"
98
98
  },
99
99
  "dependencies": {
100
- "@builder.io/sdk": "4.0.2",
100
+ "@builder.io/sdk": "4.0.3",
101
101
  "@emotion/core": "^10.0.17",
102
102
  "hash-sum": "^2.0.0",
103
103
  "isolated-vm": "^5.0.0",
@@ -13,6 +13,7 @@ export type PersonalizationContainerProps = {
13
13
  children: React.ReactNode;
14
14
  previewingIndex: number | null;
15
15
  builderBlock?: BuilderElement;
16
+ builderState: any;
16
17
  variants?: [
17
18
  {
18
19
  query: Query[];
@@ -38,6 +39,7 @@ export function PersonalizationContainer(props: PersonalizationContainerProps) {
38
39
  const subscriber = builder.userAttributesChanged.subscribe(() => {
39
40
  setUpdate(update + 1);
40
41
  });
42
+ let unsubs = [() => subscriber.unsubscribe()];
41
43
 
42
44
  if (!(Builder.isEditing || Builder.isPreviewing)) {
43
45
  const variant = filteredVariants[0];
@@ -70,10 +72,11 @@ export function PersonalizationContainer(props: PersonalizationContainerProps) {
70
72
  });
71
73
 
72
74
  observer.observe(rootRef.current!);
75
+ unsubs.push(() => observer.disconnect());
73
76
  }
74
77
 
75
78
  return () => {
76
- subscriber.unsubscribe();
79
+ unsubs.forEach(fn => fn());
77
80
  };
78
81
  }, []);
79
82
 
@@ -103,7 +106,11 @@ export function PersonalizationContainer(props: PersonalizationContainerProps) {
103
106
  <script
104
107
  id={`variants-script-${props.builderBlock?.id}`}
105
108
  dangerouslySetInnerHTML={{
106
- __html: getPersonalizationScript(props.variants, props.builderBlock?.id),
109
+ __html: getPersonalizationScript(
110
+ props.variants,
111
+ props.builderBlock?.id || 'none',
112
+ props.builderState.state?.locale
113
+ ),
107
114
  }}
108
115
  />
109
116
  <BuilderBlocks
@@ -127,7 +134,10 @@ export function PersonalizationContainer(props: PersonalizationContainerProps) {
127
134
 
128
135
  const filteredVariants = (props.variants || []).filter(variant => {
129
136
  return filterWithCustomTargeting(
130
- builder.getUserAttributes(),
137
+ {
138
+ ...(props.builderState.state?.locale ? { locale: props.builderState.state.locale } : {}),
139
+ ...builder.getUserAttributes(),
140
+ },
131
141
  variant.query,
132
142
  variant.startDate,
133
143
  variant.endDate
@@ -241,7 +251,8 @@ Builder.registerComponent(PersonalizationContainer, {
241
251
 
242
252
  function getPersonalizationScript(
243
253
  variants: PersonalizationContainerProps['variants'],
244
- blockId?: string
254
+ blockId: string,
255
+ locale?: string
245
256
  ) {
246
257
  return `
247
258
  (function() {
@@ -263,6 +274,7 @@ function getPersonalizationScript(
263
274
  }
264
275
 
265
276
  var attributes = JSON.parse(getCookie("${Builder.attributesCookieName}") || "{}");
277
+ ${locale ? `attributes.locale = "${locale}";` : ''}
266
278
  var variants = ${JSON.stringify(variants?.map(v => ({ query: v.query, startDate: v.startDate, endDate: v.endDate })))};
267
279
  var winningVariantIndex = variants.findIndex(function(variant) {
268
280
  return filterWithCustomTargeting(