@builder.io/react 5.0.2-0 → 5.0.2-11

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": "5.0.1",
3
+ "version": "5.0.2-10",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "main": "dist/builder-react.cjs.js",
@@ -14,112 +14,61 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.filterWithCustomTargeting = void 0;
17
+ exports.PersonalizationContainer = void 0;
18
18
  var react_1 = __importDefault(require("react"));
19
19
  var sdk_1 = require("@builder.io/sdk");
20
20
  var react_2 = require("react");
21
21
  var builder_blocks_component_1 = require("../components/builder-blocks.component");
22
+ var filter_with_custom_targeting_1 = require("../functions/filter-with-custom-targeting");
23
+ var attributesCookie = 'builder.attributes';
22
24
  function PersonalizationContainer(props) {
23
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
24
- var _k = (0, react_2.useState)(false), isClient = _k[0], setIsClient = _k[1];
25
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
26
+ 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]));
27
+ var _v = (0, react_2.useState)(isBeingHydrated), isClient = _v[0], setIsClient = _v[1];
28
+ var _w = (0, react_2.useState)(0), update = _w[0], setUpdate = _w[1];
25
29
  (0, react_2.useEffect)(function () {
26
30
  setIsClient(true);
31
+ var subscriber = sdk_1.builder.userAttributesChanged.subscribe(function () {
32
+ sdk_1.builder.setCookie(attributesCookie, JSON.stringify(sdk_1.builder.getUserAttributes()));
33
+ setUpdate(update + 1);
34
+ });
35
+ return function () {
36
+ subscriber.unsubscribe();
37
+ };
27
38
  }, []);
28
- var filteredVariants = (props.variants || []).filter(function (variant) {
29
- return filterWithCustomTargeting(sdk_1.builder.getUserAttributes(), variant.query, variant.startDate, variant.endDate);
30
- });
31
- return (react_1.default.createElement("div", __assign({ style: __assign({ opacity: isClient ? 1 : 0, transition: 'opacity 0.2s ease-in-out' }, props.attributes) }, props.attributes, { className: "builder-personalization-container ".concat(props.attributes.className, " ").concat(isClient ? '' : 'builder-personalization-container-loading') }), sdk_1.Builder.isEditing &&
32
- typeof props.previewingIndex === 'number' &&
33
- props.previewingIndex < (((_a = props.variants) === null || _a === void 0 ? void 0 : _a.length) || 0) ? (react_1.default.createElement(builder_blocks_component_1.BuilderBlocks, { blocks: (_c = (_b = props.variants) === null || _b === void 0 ? void 0 : _b[props.previewingIndex]) === null || _c === void 0 ? void 0 : _c.blocks, parentElementId: (_d = props.builderBlock) === null || _d === void 0 ? void 0 : _d.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
34
- (sdk_1.Builder.isEditing && typeof props.previewingIndex !== 'number') ||
35
- !isClient ||
36
- !filteredVariants.length ? (react_1.default.createElement(builder_blocks_component_1.BuilderBlocks, { blocks: (_e = props.builderBlock) === null || _e === void 0 ? void 0 : _e.children, parentElementId: (_f = props.builderBlock) === null || _f === void 0 ? void 0 : _f.id, dataPath: "this.children", child: true })) : (
37
- // Show the variant matching the current user attributes
38
- react_1.default.createElement(builder_blocks_component_1.BuilderBlocks, { blocks: (_g = filteredVariants[0]) === null || _g === void 0 ? void 0 : _g.blocks, parentElementId: (_h = props.builderBlock) === null || _h === void 0 ? void 0 : _h.id, dataPath: "component.options.variants.".concat((_j = props.variants) === null || _j === void 0 ? void 0 : _j.indexOf(filteredVariants[0]), ".blocks"), child: true }))));
39
- }
40
- exports.default = PersonalizationContainer;
41
- function filterWithCustomTargeting(userAttributes, query, startDate, endDate) {
42
- var item = {
43
- query: query,
44
- startDate: startDate,
45
- endDate: endDate,
46
- };
47
- var now = (userAttributes.date && new Date(userAttributes.date)) || new Date();
48
- if (item.startDate && new Date(item.startDate) > now) {
49
- return false;
50
- }
51
- else if (item.endDate && new Date(item.endDate) < now) {
52
- return false;
53
- }
54
- if (!item.query || !item.query.length) {
55
- return true;
39
+ if (sdk_1.Builder.isServer) {
40
+ return (react_1.default.createElement("section", null, (_c = props.variants) === null || _c === void 0 ? void 0 :
41
+ _c.map(function (variant, index) {
42
+ var _a, _b;
43
+ return (react_1.default.createElement("template", { key: index, "data-variant-id": ((_a = props.builderBlock) === null || _a === void 0 ? void 0 : _a.id) + index },
44
+ 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 })));
45
+ }),
46
+ react_1.default.createElement("script", { id: "variants-script-".concat((_d = props.builderBlock) === null || _d === void 0 ? void 0 : _d.id), dangerouslySetInnerHTML: {
47
+ __html: getPersonalizationScript(props.variants, (_e = props.builderBlock) === null || _e === void 0 ? void 0 : _e.id),
48
+ } }),
49
+ react_1.default.createElement("div", __assign({}, props.attributes, {
50
+ // same as the client side styles for hydration matching
51
+ style: __assign({ opacity: 1, transition: 'opacity 0.2s ease-in-out' }, (_f = props.attributes) === null || _f === void 0 ? void 0 : _f.style), className: "builder-personalization-container ".concat(props.attributes.className) }),
52
+ 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 }))));
56
53
  }
57
- return item.query.every(function (filter) {
58
- if (filter &&
59
- filter.property === 'urlPath' &&
60
- filter.value &&
61
- typeof filter.value === 'string' &&
62
- filter.value !== '/' &&
63
- filter.value.endsWith('/')) {
64
- filter.value = filter.value.slice(0, -1);
65
- }
66
- return objectMatchesQuery(userAttributes, filter);
54
+ var filteredVariants = (props.variants || []).filter(function (variant) {
55
+ return (0, filter_with_custom_targeting_1.filterWithCustomTargeting)(sdk_1.builder.getUserAttributes(), variant.query, variant.startDate, variant.endDate);
67
56
  });
68
- function isNumber(val) {
69
- return typeof val === 'number';
70
- }
71
- function isString(val) {
72
- return typeof val === 'string';
73
- }
74
- function objectMatchesQuery(userattr, query) {
75
- var result = (function () {
76
- var property = query.property;
77
- var operator = query.operator;
78
- var testValue = query.value;
79
- // Check is query property is present in userAttributes. Proceed only if it is present.
80
- if (!(property && operator)) {
81
- return true;
82
- }
83
- if (Array.isArray(testValue)) {
84
- if (operator === 'isNot') {
85
- return testValue.every(function (val) {
86
- return objectMatchesQuery(userattr, { property: property, operator: operator, value: val });
87
- });
88
- }
89
- return !!testValue.find(function (val) {
90
- return objectMatchesQuery(userattr, { property: property, operator: operator, value: val });
91
- });
92
- }
93
- var value = userattr[property];
94
- if (Array.isArray(value)) {
95
- return value.includes(testValue);
96
- }
97
- switch (operator) {
98
- case 'is':
99
- return value === testValue;
100
- case 'isNot':
101
- return value !== testValue;
102
- case 'contains':
103
- return (isString(value) || Array.isArray(value)) && value.includes(testValue);
104
- case 'startsWith':
105
- return isString(value) && value.startsWith(testValue);
106
- case 'endsWith':
107
- return isString(value) && value.endsWith(testValue);
108
- case 'greaterThan':
109
- return isNumber(value) && isNumber(testValue) && value > testValue;
110
- case 'lessThan':
111
- return isNumber(value) && isNumber(testValue) && value < testValue;
112
- case 'greaterThanOrEqualTo':
113
- return isNumber(value) && isNumber(testValue) && value >= testValue;
114
- case 'lessThanOrEqualTo':
115
- return isNumber(value) && isNumber(testValue) && value <= testValue;
116
- }
117
- return false;
118
- })();
119
- return result;
120
- }
57
+ return (react_1.default.createElement("section", null,
58
+ react_1.default.createElement("div", __assign({}, props.attributes, { style: __assign({ opacity: isClient ? 1 : 0, transition: 'opacity 0.2s ease-in-out' }, (_j = props.attributes) === null || _j === void 0 ? void 0 : _j.style), className: "builder-personalization-container ".concat(props.attributes.className, " ").concat(isClient ? '' : 'builder-personalization-container-loading') }),
59
+ sdk_1.Builder.isEditing &&
60
+ typeof props.previewingIndex === 'number' &&
61
+ props.previewingIndex < (((_k = props.variants) === null || _k === void 0 ? void 0 : _k.length) || 0) ? (react_1.default.createElement(builder_blocks_component_1.BuilderBlocks, { blocks: (_m = (_l = props.variants) === null || _l === void 0 ? void 0 : _l[props.previewingIndex]) === null || _m === void 0 ? void 0 : _m.blocks, parentElementId: (_o = props.builderBlock) === null || _o === void 0 ? void 0 : _o.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
62
+ (sdk_1.Builder.isEditing && typeof props.previewingIndex !== 'number') ||
63
+ !isClient ||
64
+ !filteredVariants.length ? (react_1.default.createElement(builder_blocks_component_1.BuilderBlocks, { blocks: (_p = props.builderBlock) === null || _p === void 0 ? void 0 : _p.children, parentElementId: (_q = props.builderBlock) === null || _q === void 0 ? void 0 : _q.id, dataPath: "this.children", child: true })) : (
65
+ // Show the variant matching the current user attributes
66
+ react_1.default.createElement(builder_blocks_component_1.BuilderBlocks, { blocks: (_r = filteredVariants[0]) === null || _r === void 0 ? void 0 : _r.blocks, parentElementId: (_s = props.builderBlock) === null || _s === void 0 ? void 0 : _s.id, dataPath: "component.options.variants.".concat((_t = props.variants) === null || _t === void 0 ? void 0 : _t.indexOf(filteredVariants[0]), ".blocks"), child: true })),
67
+ react_1.default.createElement("script", { dangerouslySetInnerHTML: {
68
+ __html: "\n window.__hydrated = window.__hydrated || {};\n window.__hydrated['".concat((_u = props.builderBlock) === null || _u === void 0 ? void 0 : _u.id, "'] = true;\n ").replace(/\s+/g, ' '),
69
+ } }))));
121
70
  }
122
- exports.filterWithCustomTargeting = filterWithCustomTargeting;
71
+ exports.PersonalizationContainer = PersonalizationContainer;
123
72
  sdk_1.Builder.registerComponent(PersonalizationContainer, {
124
73
  name: 'PersonalizationContainer',
125
74
  noWrap: true,
@@ -137,7 +86,8 @@ sdk_1.Builder.registerComponent(PersonalizationContainer, {
137
86
  type: 'text',
138
87
  },
139
88
  {
140
- name: 'variants',
89
+ name: 'query',
90
+ friendlyName: 'Targeting rules',
141
91
  type: 'BuilderQuery',
142
92
  defaultValue: [],
143
93
  },
@@ -159,4 +109,7 @@ sdk_1.Builder.registerComponent(PersonalizationContainer, {
159
109
  },
160
110
  ],
161
111
  });
112
+ function getPersonalizationScript(variants, blockId) {
113
+ 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(attributesCookie, "\") || \"{}\");\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 if (winningVariantIndex !== -1) {\n var winningVariant = document.querySelector('template[data-variant-index=\"' + \"").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 }\n } else if (variants.length > 0) {\n removeVariants();\n }\n ").concat(filter_with_custom_targeting_1.filterWithCustomTargetingScript, "\n })();\n ").replace(/\s+/g, ' ');
114
+ }
162
115
  //# 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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"}
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.Builder = exports.builder = exports.useIsPreviewing = exports.stringToFunction = exports.RawText = exports.Img = exports.TextArea = exports.FormSelect = exports.Label = exports.FormSubmitButton = exports.FormInput = exports.Form = exports.Mutation = exports.Router = exports.StateProvider = exports.Section = exports.Button = exports.Symbol = exports.Video = exports.getSrcSet = exports.Image = exports.CustomCode = exports.Embed = exports.Columns = exports.Fragment = exports.Dropzone = exports.Text = exports.Content = exports.BuilderComponent = exports.onChange = exports.BuilderPage = exports.noWrap = exports.withChildren = exports.withBuilder = exports.BuilderBlock = exports.BuilderAsyncRequestsContext = exports.BuilderMetaContext = exports.BuilderStoreContext = exports.BuilderContent = exports.BuilderBlockComponent = exports.BuilderBlocks = void 0;
17
+ exports.Builder = exports.builder = exports.useIsPreviewing = exports.stringToFunction = exports.PersonalizationContainer = exports.RawText = exports.Img = exports.TextArea = exports.FormSelect = exports.Label = exports.FormSubmitButton = exports.FormInput = exports.Form = exports.Mutation = exports.Router = exports.StateProvider = exports.Section = exports.Button = exports.Symbol = exports.Video = exports.getSrcSet = exports.Image = exports.CustomCode = exports.Embed = exports.Columns = exports.Fragment = exports.Dropzone = exports.Text = exports.Content = exports.BuilderComponent = exports.onChange = exports.BuilderPage = exports.noWrap = exports.withChildren = exports.withBuilder = exports.BuilderBlock = exports.BuilderAsyncRequestsContext = exports.BuilderMetaContext = exports.BuilderStoreContext = exports.BuilderContent = exports.BuilderBlockComponent = exports.BuilderBlocks = void 0;
18
18
  require("./scripts/init-editing");
19
19
  var sdk_1 = require("@builder.io/sdk");
20
20
  Object.defineProperty(exports, "builder", { enumerable: true, get: function () { return sdk_1.builder; } });
@@ -91,6 +91,8 @@ var Img_1 = require("./blocks/raw/Img");
91
91
  Object.defineProperty(exports, "Img", { enumerable: true, get: function () { return Img_1.Img; } });
92
92
  var RawText_1 = require("./blocks/raw/RawText");
93
93
  Object.defineProperty(exports, "RawText", { enumerable: true, get: function () { return RawText_1.RawText; } });
94
+ var PersonalizationContainer_1 = require("./blocks/PersonalizationContainer");
95
+ Object.defineProperty(exports, "PersonalizationContainer", { enumerable: true, get: function () { return PersonalizationContainer_1.PersonalizationContainer; } });
94
96
  var string_to_function_1 = require("./functions/string-to-function");
95
97
  Object.defineProperty(exports, "stringToFunction", { enumerable: true, get: function () { return string_to_function_1.stringToFunction; } });
96
98
  var useIsPreviewing_1 = require("./hooks/useIsPreviewing");
@@ -1 +1 @@
1
- {"version":3,"file":"builder-react.js","sourceRoot":"","sources":["../../../src/builder-react.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kCAAgC;AAEhC,uCAAmD;AAuD1C,wFAvDA,aAAO,OAuDA;AAAE,wFAvDA,aAAO,OAuDA;AApDzB,aAAO,CAAC,OAAO,GAAG,IAAI,CAAC;AAEvB,kFAAsE;AAA7D,yHAAA,aAAa,OAAA;AACtB,gFAA6F;AAApF,gIAAA,YAAY,OAAyB;AAC9C,oFAAwE;AAA/D,2HAAA,cAAc,OAAA;AACvB,wFAIkD;AAYrB,4FAf3B,8CAAgB,OAesB;AAC/B,iGAhBP,8CAAgB,OAgBO;AACI,wFAjB3B,8CAAgB,OAiBkB;AAFM,yFAdxC,sCAAQ,OAcwC;AAXlD,uDAA0E;AAAjE,oHAAA,mBAAmB,OAAA;AAC5B,qDAA0D;AAAjD,kHAAA,kBAAkB,OAAA;AAC3B,yEAA6E;AAApE,qIAAA,2BAA2B,OAAA;AACpC,gFAAoE;AAA3D,uHAAA,YAAY,OAAA;AAErB,8DAA4C;AAE5C,yDAAuD;AAA9C,2GAAA,WAAW,OAAA;AACpB,2DAAyD;AAAhD,6GAAA,YAAY,OAAA;AACrB,+CAA6C;AAApC,iGAAA,MAAM,OAAA;AAMf,sCAAqC;AAA5B,4FAAA,IAAI,OAAA;AACb,sCAAiD;AAAxC,gGAAA,IAAI,OAAY;AACzB,8CAA6C;AAApC,oGAAA,QAAQ,OAAA;AACjB,4CAA2C;AAAlC,kGAAA,OAAO,OAAA;AAChB,wCAAuC;AAA9B,8FAAA,KAAK,OAAA;AACd,kDAAiD;AAAxC,wGAAA,UAAU,OAAA;AACnB,wCAAkD;AAAzC,8FAAA,KAAK,OAAA;AAAE,kGAAA,SAAS,OAAA;AACzB,wCAAuC;AAA9B,8FAAA,KAAK,OAAA;AACd,0CAAyC;AAAhC,gGAAA,MAAM,OAAA;AACf,0CAAyC;AAAhC,gGAAA,MAAM,OAAA;AACf,4CAA2C;AAAlC,kGAAA,OAAO,OAAA;AAChB,wDAAuD;AAA9C,8GAAA,aAAa,OAAA;AACtB,0CAAyC;AAAhC,gGAAA,MAAM,OAAA;AACf,8CAA6C;AAApC,oGAAA,QAAQ,OAAA;AAEjB,4CAA2C;AAAlC,4FAAA,IAAI,OAAA;AACb,8CAAiD;AAAxC,kGAAA,SAAS,OAAA;AAClB,gDAAyD;AAAhD,0GAAA,gBAAgB,OAAA;AACzB,8CAA6C,CAAC,YAAY;AAAjD,8FAAA,KAAK,OAAA;AACd,gDAAmD,CAAC,YAAY;AAAvD,oGAAA,UAAU,OAAA;AACnB,oDAAmD;AAA1C,oGAAA,QAAQ,OAAA;AACjB,wCAAuC;AAA9B,0FAAA,GAAG,OAAA;AACZ,gDAA+C;AAAtC,kGAAA,OAAO,OAAA;AAEhB,qEAAkE;AAAzD,sHAAA,gBAAgB,OAAA;AACzB,2DAA0D;AAAjD,kHAAA,eAAe,OAAA;AAGxB,kBAAe,aAAO,CAAC"}
1
+ {"version":3,"file":"builder-react.js","sourceRoot":"","sources":["../../../src/builder-react.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kCAAgC;AAEhC,uCAAmD;AAwD1C,wFAxDA,aAAO,OAwDA;AAAE,wFAxDA,aAAO,OAwDA;AArDzB,aAAO,CAAC,OAAO,GAAG,IAAI,CAAC;AAEvB,kFAAsE;AAA7D,yHAAA,aAAa,OAAA;AACtB,gFAA6F;AAApF,gIAAA,YAAY,OAAyB;AAC9C,oFAAwE;AAA/D,2HAAA,cAAc,OAAA;AACvB,wFAIkD;AAYrB,4FAf3B,8CAAgB,OAesB;AAC/B,iGAhBP,8CAAgB,OAgBO;AACI,wFAjB3B,8CAAgB,OAiBkB;AAFM,yFAdxC,sCAAQ,OAcwC;AAXlD,uDAA0E;AAAjE,oHAAA,mBAAmB,OAAA;AAC5B,qDAA0D;AAAjD,kHAAA,kBAAkB,OAAA;AAC3B,yEAA6E;AAApE,qIAAA,2BAA2B,OAAA;AACpC,gFAAoE;AAA3D,uHAAA,YAAY,OAAA;AAErB,8DAA4C;AAE5C,yDAAuD;AAA9C,2GAAA,WAAW,OAAA;AACpB,2DAAyD;AAAhD,6GAAA,YAAY,OAAA;AACrB,+CAA6C;AAApC,iGAAA,MAAM,OAAA;AAMf,sCAAqC;AAA5B,4FAAA,IAAI,OAAA;AACb,sCAAiD;AAAxC,gGAAA,IAAI,OAAY;AACzB,8CAA6C;AAApC,oGAAA,QAAQ,OAAA;AACjB,4CAA2C;AAAlC,kGAAA,OAAO,OAAA;AAChB,wCAAuC;AAA9B,8FAAA,KAAK,OAAA;AACd,kDAAiD;AAAxC,wGAAA,UAAU,OAAA;AACnB,wCAAkD;AAAzC,8FAAA,KAAK,OAAA;AAAE,kGAAA,SAAS,OAAA;AACzB,wCAAuC;AAA9B,8FAAA,KAAK,OAAA;AACd,0CAAyC;AAAhC,gGAAA,MAAM,OAAA;AACf,0CAAyC;AAAhC,gGAAA,MAAM,OAAA;AACf,4CAA2C;AAAlC,kGAAA,OAAO,OAAA;AAChB,wDAAuD;AAA9C,8GAAA,aAAa,OAAA;AACtB,0CAAyC;AAAhC,gGAAA,MAAM,OAAA;AACf,8CAA6C;AAApC,oGAAA,QAAQ,OAAA;AAEjB,4CAA2C;AAAlC,4FAAA,IAAI,OAAA;AACb,8CAAiD;AAAxC,kGAAA,SAAS,OAAA;AAClB,gDAAyD;AAAhD,0GAAA,gBAAgB,OAAA;AACzB,8CAA6C,CAAC,YAAY;AAAjD,8FAAA,KAAK,OAAA;AACd,gDAAmD,CAAC,YAAY;AAAvD,oGAAA,UAAU,OAAA;AACnB,oDAAmD;AAA1C,oGAAA,QAAQ,OAAA;AACjB,wCAAuC;AAA9B,0FAAA,GAAG,OAAA;AACZ,gDAA+C;AAAtC,kGAAA,OAAO,OAAA;AAChB,8EAA6E;AAApE,oIAAA,wBAAwB,OAAA;AAEjC,qEAAkE;AAAzD,sHAAA,gBAAgB,OAAA;AACzB,2DAA0D;AAAjD,kHAAA,eAAe,OAAA;AAGxB,kBAAe,aAAO,CAAC"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.filterWithCustomTargeting = exports.filterWithCustomTargetingScript = void 0;
4
+ // minified version of the function need to be added to the script
5
+ exports.filterWithCustomTargetingScript = "function filterWithCustomTargeting(e,t,n,r){var i={query:t,startDate:n,endDate:r},o=e.date&&new Date(e.date)||new Date;return!(i.startDate&&new Date(i.startDate)>o)&&(!(i.endDate&&new Date(i.endDate)<o)&&(!i.query||!i.query.length||i.query.every((function(t){return objectMatchesQuery(e,t)}))))}function isString(e){return\"string\"==typeof e}function isNumber(e){return\"number\"==typeof e}function objectMatchesQuery(e,t){return function(){var n=t.property,r=t.operator,i=t.value;if(t&&\"urlPath\"===t.property&&t.value&&\"string\"==typeof t.value&&\"/\"!==t.value&&t.value.endsWith(\"/\")&&(i=t.value.slice(0,-1)),!n||!r)return!0;if(Array.isArray(i))return\"isNot\"===r?i.every((function(t){return objectMatchesQuery(e,{property:n,operator:r,value:t})})):!!i.find((function(t){return objectMatchesQuery(e,{property:n,operator:r,value:t})}));var o=e[n];if(Array.isArray(o))return o.includes(i);switch(r){case\"is\":return o===i;case\"isNot\":return o!==i;case\"contains\":return(isString(o)||Array.isArray(o))&&o.includes(String(i));case\"startsWith\":return isString(o)&&o.startsWith(String(i));case\"endsWith\":return isString(o)&&o.endsWith(String(i));case\"greaterThan\":return isNumber(o)&&isNumber(i)&&o>i;case\"lessThan\":return isNumber(o)&&isNumber(i)&&o<i;case\"greaterThanOrEqualTo\":return isNumber(o)&&isNumber(i)&&o>=i;case\"lessThanOrEqualTo\":return isNumber(o)&&isNumber(i)&&o<=i}return!1}()}";
6
+ function filterWithCustomTargeting(userAttributes, query, startDate, endDate) {
7
+ var item = {
8
+ query: query,
9
+ startDate: startDate,
10
+ endDate: endDate,
11
+ };
12
+ var now = (userAttributes.date && new Date(userAttributes.date)) || new Date();
13
+ if (item.startDate && new Date(item.startDate) > now) {
14
+ return false;
15
+ }
16
+ else if (item.endDate && new Date(item.endDate) < now) {
17
+ return false;
18
+ }
19
+ if (!item.query || !item.query.length) {
20
+ return true;
21
+ }
22
+ return item.query.every(function (filter) {
23
+ return objectMatchesQuery(userAttributes, filter);
24
+ });
25
+ }
26
+ exports.filterWithCustomTargeting = filterWithCustomTargeting;
27
+ function isString(val) {
28
+ return typeof val === 'string';
29
+ }
30
+ function isNumber(val) {
31
+ return typeof val === 'number';
32
+ }
33
+ function objectMatchesQuery(userattr, query) {
34
+ var result = (function () {
35
+ var property = query.property;
36
+ var operator = query.operator;
37
+ var testValue = query.value;
38
+ if (query &&
39
+ query.property === 'urlPath' &&
40
+ query.value &&
41
+ typeof query.value === 'string' &&
42
+ query.value !== '/' &&
43
+ query.value.endsWith('/')) {
44
+ testValue = query.value.slice(0, -1);
45
+ }
46
+ // Check is query property is present in userAttributes. Proceed only if it is present.
47
+ if (!(property && operator)) {
48
+ return true;
49
+ }
50
+ if (Array.isArray(testValue)) {
51
+ if (operator === 'isNot') {
52
+ return testValue.every(function (val) {
53
+ return objectMatchesQuery(userattr, { property: property, operator: operator, value: val });
54
+ });
55
+ }
56
+ return !!testValue.find(function (val) {
57
+ return objectMatchesQuery(userattr, { property: property, operator: operator, value: val });
58
+ });
59
+ }
60
+ var value = userattr[property];
61
+ if (Array.isArray(value)) {
62
+ return value.includes(testValue);
63
+ }
64
+ switch (operator) {
65
+ case 'is':
66
+ return value === testValue;
67
+ case 'isNot':
68
+ return value !== testValue;
69
+ case 'contains':
70
+ return (isString(value) || Array.isArray(value)) && value.includes(String(testValue));
71
+ case 'startsWith':
72
+ return isString(value) && value.startsWith(String(testValue));
73
+ case 'endsWith':
74
+ return isString(value) && value.endsWith(String(testValue));
75
+ case 'greaterThan':
76
+ return isNumber(value) && isNumber(testValue) && value > testValue;
77
+ case 'lessThan':
78
+ return isNumber(value) && isNumber(testValue) && value < testValue;
79
+ case 'greaterThanOrEqualTo':
80
+ return isNumber(value) && isNumber(testValue) && value >= testValue;
81
+ case 'lessThanOrEqualTo':
82
+ return isNumber(value) && isNumber(testValue) && value <= testValue;
83
+ }
84
+ return false;
85
+ })();
86
+ return result;
87
+ }
88
+ //# sourceMappingURL=filter-with-custom-targeting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-with-custom-targeting.js","sourceRoot":"","sources":["../../../../src/functions/filter-with-custom-targeting.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ if (typeof window !== 'undefined') {
10
10
  supportsPatchUpdates: 'v4',
11
11
  supportsCustomBreakpoints: true,
12
12
  supportsGlobalSymbols: true,
13
+ blockLevelPersonalization: true,
13
14
  priorVersion: package_json_1.version,
14
15
  },
15
16
  }, '*');
@@ -1 +1 @@
1
- {"version":3,"file":"init-editing.js","sourceRoot":"","sources":["../../../../src/scripts/init-editing.ts"],"names":[],"mappings":";;;AAAA,mDAA6C;AAE7C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IACjC,MAAA,MAAM,CAAC,MAAM,0CAAE,WAAW,CACxB;QACE,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE;YACJ,KAAK,EAAE,IAAI;YACX,oBAAoB,EAAE,IAAI;YAC1B,yBAAyB,EAAE,IAAI;YAC/B,qBAAqB,EAAE,IAAI;YAC3B,YAAY,EAAE,sBAAO;SACtB;KACF,EACD,GAAG,CACJ,CAAC;CACH"}
1
+ {"version":3,"file":"init-editing.js","sourceRoot":"","sources":["../../../../src/scripts/init-editing.ts"],"names":[],"mappings":";;;AAAA,mDAA6C;AAE7C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IACjC,MAAA,MAAM,CAAC,MAAM,0CAAE,WAAW,CACxB;QACE,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE;YACJ,KAAK,EAAE,IAAI;YACX,oBAAoB,EAAE,IAAI;YAC1B,yBAAyB,EAAE,IAAI;YAC/B,qBAAqB,EAAE,IAAI;YAC3B,yBAAyB,EAAE,IAAI;YAC/B,YAAY,EAAE,sBAAO;SACtB;KACF,EACD,GAAG,CACJ,CAAC;CACH"}
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { BuilderElement } from '@builder.io/sdk';
3
- type UserAttributes = any;
4
- type Query = any;
3
+ import { Query } from '../functions/filter-with-custom-targeting';
5
4
  export type PersonalizationContainerProps = {
6
5
  children: React.ReactNode;
7
6
  previewingIndex: number | null;
@@ -16,6 +15,4 @@ export type PersonalizationContainerProps = {
16
15
  ];
17
16
  attributes: any;
18
17
  };
19
- declare function PersonalizationContainer(props: PersonalizationContainerProps): React.JSX.Element;
20
- export default PersonalizationContainer;
21
- export declare function filterWithCustomTargeting(userAttributes: UserAttributes, query: Query[], startDate?: string, endDate?: string): boolean;
18
+ export declare function PersonalizationContainer(props: PersonalizationContainerProps): React.JSX.Element;
@@ -38,6 +38,7 @@ export { FormSelect } from './blocks/forms/Select';
38
38
  export { TextArea } from './blocks/forms/TextArea';
39
39
  export { Img } from './blocks/raw/Img';
40
40
  export { RawText } from './blocks/raw/RawText';
41
+ export { PersonalizationContainer } from './blocks/PersonalizationContainer';
41
42
  export { stringToFunction } from './functions/string-to-function';
42
43
  export { useIsPreviewing } from './hooks/useIsPreviewing';
43
44
  export { builder, Builder };
@@ -0,0 +1,15 @@
1
+ type UserAttributes = {
2
+ date?: string | Date;
3
+ urlPath?: string;
4
+ [key: string]: any;
5
+ };
6
+ type QueryOperator = 'is' | 'isNot' | 'contains' | 'startsWith' | 'endsWith' | 'greaterThan' | 'lessThan' | 'greaterThanOrEqualTo' | 'lessThanOrEqualTo';
7
+ type QueryValue = string | number | boolean | Array<string | number | boolean>;
8
+ export type Query = {
9
+ property: string;
10
+ operator: QueryOperator;
11
+ value: QueryValue;
12
+ };
13
+ export declare const filterWithCustomTargetingScript = "function filterWithCustomTargeting(e,t,n,r){var i={query:t,startDate:n,endDate:r},o=e.date&&new Date(e.date)||new Date;return!(i.startDate&&new Date(i.startDate)>o)&&(!(i.endDate&&new Date(i.endDate)<o)&&(!i.query||!i.query.length||i.query.every((function(t){return objectMatchesQuery(e,t)}))))}function isString(e){return\"string\"==typeof e}function isNumber(e){return\"number\"==typeof e}function objectMatchesQuery(e,t){return function(){var n=t.property,r=t.operator,i=t.value;if(t&&\"urlPath\"===t.property&&t.value&&\"string\"==typeof t.value&&\"/\"!==t.value&&t.value.endsWith(\"/\")&&(i=t.value.slice(0,-1)),!n||!r)return!0;if(Array.isArray(i))return\"isNot\"===r?i.every((function(t){return objectMatchesQuery(e,{property:n,operator:r,value:t})})):!!i.find((function(t){return objectMatchesQuery(e,{property:n,operator:r,value:t})}));var o=e[n];if(Array.isArray(o))return o.includes(i);switch(r){case\"is\":return o===i;case\"isNot\":return o!==i;case\"contains\":return(isString(o)||Array.isArray(o))&&o.includes(String(i));case\"startsWith\":return isString(o)&&o.startsWith(String(i));case\"endsWith\":return isString(o)&&o.endsWith(String(i));case\"greaterThan\":return isNumber(o)&&isNumber(i)&&o>i;case\"lessThan\":return isNumber(o)&&isNumber(i)&&o<i;case\"greaterThanOrEqualTo\":return isNumber(o)&&isNumber(i)&&o>=i;case\"lessThanOrEqualTo\":return isNumber(o)&&isNumber(i)&&o<=i}return!1}()}";
14
+ export declare function filterWithCustomTargeting(userAttributes: UserAttributes, query: Query[], startDate?: string, endDate?: string): boolean;
15
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builder.io/react",
3
- "version": "5.0.2-0",
3
+ "version": "5.0.2-11",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "main": "dist/builder-react.cjs.js",
@@ -107,5 +107,5 @@
107
107
  "installConfig": {
108
108
  "hoistingLimits": "workspaces"
109
109
  },
110
- "stableVersion": "5.0.1"
110
+ "stableVersion": "5.0.2-10"
111
111
  }