@builder.io/sdk-react-native 0.0.6-1 → 0.0.6-2
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/package.json +1 -1
- package/src/blocks/button/button.js +34 -0
- package/src/blocks/button/component-info.js +41 -0
- package/src/blocks/columns/columns.js +62 -0
- package/src/blocks/columns/component-info.js +242 -0
- package/src/blocks/custom-code/component-info.js +31 -0
- package/src/blocks/custom-code/custom-code.js +50 -0
- package/src/blocks/embed/component-info.js +44 -0
- package/src/blocks/embed/embed.js +43 -0
- package/src/blocks/embed/helpers.js +9 -0
- package/src/blocks/form/component-info.js +262 -0
- package/src/blocks/form/form.js +224 -0
- package/src/blocks/fragment/component-info.js +11 -0
- package/src/blocks/fragment/fragment.js +8 -0
- package/src/blocks/image/component-info.js +151 -0
- package/src/blocks/image/image.helpers.js +48 -0
- package/src/blocks/image/image.js +41 -0
- package/src/blocks/img/component-info.js +20 -0
- package/src/blocks/img/img.js +36 -0
- package/src/blocks/input/component-info.js +74 -0
- package/src/blocks/input/input.js +36 -0
- package/src/blocks/raw-text/component-info.js +16 -0
- package/src/blocks/raw-text/raw-text.js +10 -0
- package/src/blocks/section/component-info.js +49 -0
- package/src/blocks/section/section.js +31 -0
- package/src/blocks/select/component-info.js +59 -0
- package/src/blocks/select/select.js +36 -0
- package/src/blocks/submit-button/component-info.js +28 -0
- package/src/blocks/submit-button/submit-button.js +29 -0
- package/src/blocks/symbol/component-info.js +43 -0
- package/src/blocks/symbol/symbol.js +65 -0
- package/src/blocks/text/component-info.js +24 -0
- package/src/blocks/text/text.js +65 -0
- package/src/blocks/textarea/component-info.js +47 -0
- package/src/blocks/textarea/textarea.js +32 -0
- package/src/blocks/util.js +7 -0
- package/src/blocks/video/component-info.js +106 -0
- package/src/blocks/video/video.js +52 -0
- package/src/components/render-block/block-styles.js +37 -0
- package/src/components/render-block/render-block.helpers.js +23 -0
- package/src/components/render-block/render-block.js +171 -0
- package/src/components/render-block/render-component.js +36 -0
- package/src/components/render-block/render-repeated-block.js +30 -0
- package/src/components/render-block/types.js +0 -0
- package/src/components/render-blocks.js +63 -0
- package/src/components/render-content/components/render-styles.js +58 -0
- package/src/components/render-content/index.js +4 -0
- package/src/components/render-content/render-content.js +262 -0
- package/src/components/render-inlined-styles.js +18 -0
- package/src/constants/builder-registered-components.js +42 -0
- package/src/constants/device-sizes.js +21 -0
- package/src/constants/target.js +4 -0
- package/src/context/builder.context.js +11 -0
- package/src/context/types.js +0 -0
- package/src/functions/camel-to-kebab-case.js +4 -0
- package/src/functions/convert-style-object.js +6 -0
- package/src/functions/evaluate.js +28 -0
- package/src/functions/event-handler-name.js +7 -0
- package/src/functions/get-block-actions.js +23 -0
- package/src/functions/get-block-component-options.js +28 -0
- package/src/functions/get-block-properties.js +41 -0
- package/src/functions/get-block-styles.js +44 -0
- package/src/functions/get-block-tag.js +7 -0
- package/src/functions/get-builder-search-params/fn.test.js +13 -0
- package/src/functions/get-builder-search-params/index.js +37 -0
- package/src/functions/get-content/ab-testing.js +98 -0
- package/src/functions/get-content/fn.test.js +31 -0
- package/src/functions/get-content/index.js +96 -0
- package/src/functions/get-content/types.js +0 -0
- package/src/functions/get-fetch.js +34 -0
- package/src/functions/get-global-this.js +18 -0
- package/src/functions/get-processed-block.js +57 -0
- package/src/functions/get-processed-block.test.js +32 -0
- package/src/functions/if-target.js +15 -0
- package/src/functions/is-browser.js +6 -0
- package/src/functions/is-editing.js +7 -0
- package/src/functions/is-iframe.js +7 -0
- package/src/functions/is-previewing.js +14 -0
- package/src/functions/mark-mutable.js +10 -0
- package/src/functions/on-change.js +27 -0
- package/src/functions/on-change.test.js +19 -0
- package/src/functions/register-component.js +72 -0
- package/src/functions/register.js +29 -0
- package/src/functions/sanitize-styles.js +61 -0
- package/src/functions/set-editor-settings.js +15 -0
- package/src/functions/set.js +11 -0
- package/src/functions/set.test.js +16 -0
- package/src/functions/track.js +117 -0
- package/src/functions/transform-block.js +37 -0
- package/src/helpers/ab-tests.js +16 -0
- package/src/helpers/cookie.js +72 -0
- package/src/helpers/css.js +12 -0
- package/src/helpers/flatten.js +34 -0
- package/src/helpers/localStorage.js +34 -0
- package/src/helpers/nullable.js +4 -0
- package/src/helpers/sessionId.js +49 -0
- package/src/helpers/time.js +5 -0
- package/src/helpers/url.js +10 -0
- package/src/helpers/url.test.js +15 -0
- package/src/helpers/uuid.js +13 -0
- package/src/helpers/visitorId.js +33 -0
- package/src/index-helpers/blocks-exports.js +18 -0
- package/src/index-helpers/top-of-file.js +1 -0
- package/src/index.js +10 -0
- package/src/scripts/init-editing.js +79 -0
- package/src/types/builder-block.js +0 -0
- package/src/types/builder-content.js +0 -0
- package/src/types/can-track.js +0 -0
- package/src/types/components.js +0 -0
- package/src/types/deep-partial.js +0 -0
- package/src/types/element.js +0 -0
- package/src/types/targets.js +0 -0
- package/src/types/typescript.js +0 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
const propertiesThatMustBeNumber = new Set(["lineHeight"]);
|
|
21
|
+
const displayValues = new Set(["flex", "none"]);
|
|
22
|
+
const SHOW_WARNINGS = false;
|
|
23
|
+
const normalizeNumber = (value) => {
|
|
24
|
+
if (Number.isNaN(value)) {
|
|
25
|
+
return void 0;
|
|
26
|
+
} else if (value < 0) {
|
|
27
|
+
return 0;
|
|
28
|
+
} else {
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
const sanitizeBlockStyles = (styles) => {
|
|
33
|
+
return Object.keys(styles).reduce((acc, key) => {
|
|
34
|
+
const propertyValue = styles[key];
|
|
35
|
+
if (key === "display" && !displayValues.has(propertyValue)) {
|
|
36
|
+
if (SHOW_WARNINGS) {
|
|
37
|
+
console.warn(`Style value for key "display" must be "flex" or "none" but had ${propertyValue}`);
|
|
38
|
+
}
|
|
39
|
+
return acc;
|
|
40
|
+
}
|
|
41
|
+
if (propertiesThatMustBeNumber.has(key) && typeof propertyValue !== "number") {
|
|
42
|
+
if (SHOW_WARNINGS) {
|
|
43
|
+
console.warn(`Style key ${key} must be a number, but had value \`${styles[key]}\``);
|
|
44
|
+
}
|
|
45
|
+
return acc;
|
|
46
|
+
}
|
|
47
|
+
if (typeof propertyValue === "string" && propertyValue.match(/^-?(\d*)(\.?)(\d*)*px/)) {
|
|
48
|
+
const newValue = parseFloat(propertyValue);
|
|
49
|
+
const normalizedValue = normalizeNumber(newValue);
|
|
50
|
+
if (normalizedValue) {
|
|
51
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: normalizedValue });
|
|
52
|
+
} else {
|
|
53
|
+
return acc;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: propertyValue });
|
|
57
|
+
}, {});
|
|
58
|
+
};
|
|
59
|
+
export {
|
|
60
|
+
sanitizeBlockStyles
|
|
61
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { isBrowser } from "./is-browser.js";
|
|
2
|
+
const settings = {};
|
|
3
|
+
function setEditorSettings(newSettings) {
|
|
4
|
+
if (isBrowser()) {
|
|
5
|
+
Object.assign(settings, newSettings);
|
|
6
|
+
const message = {
|
|
7
|
+
type: "builder.settingsChange",
|
|
8
|
+
data: settings
|
|
9
|
+
};
|
|
10
|
+
parent.postMessage(message, "*");
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
setEditorSettings
|
|
15
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const set = (obj, _path, value) => {
|
|
2
|
+
if (Object(obj) !== obj) {
|
|
3
|
+
return obj;
|
|
4
|
+
}
|
|
5
|
+
const path = Array.isArray(_path) ? _path : _path.toString().match(/[^.[\]]+/g);
|
|
6
|
+
path.slice(0, -1).reduce((a, c, i) => Object(a[c]) === a[c] ? a[c] : a[c] = Math.abs(Number(path[i + 1])) >> 0 === +path[i + 1] ? [] : {}, obj)[path[path.length - 1]] = value;
|
|
7
|
+
return obj;
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
set
|
|
11
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { set } from "./set.js";
|
|
2
|
+
test("can shallow set a property", () => {
|
|
3
|
+
const obj = { foo: "bar" };
|
|
4
|
+
set(obj, "foo", "baz");
|
|
5
|
+
expect(obj.foo).toBe("baz");
|
|
6
|
+
});
|
|
7
|
+
test("can deeply set a property", () => {
|
|
8
|
+
const obj = { foo: "bar" };
|
|
9
|
+
set(obj, "foo.bar", "baz");
|
|
10
|
+
expect(obj.foo.bar).toBe("baz");
|
|
11
|
+
});
|
|
12
|
+
test("can deeply create arrays", () => {
|
|
13
|
+
const obj = { foo: "bar" };
|
|
14
|
+
set(obj, "foo.bar.0", "hi");
|
|
15
|
+
expect(obj.foo.bar).toEqual(["hi"]);
|
|
16
|
+
});
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
var __objRest = (source, exclude) => {
|
|
21
|
+
var target = {};
|
|
22
|
+
for (var prop in source)
|
|
23
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
24
|
+
target[prop] = source[prop];
|
|
25
|
+
if (source != null && __getOwnPropSymbols)
|
|
26
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
27
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
28
|
+
target[prop] = source[prop];
|
|
29
|
+
}
|
|
30
|
+
return target;
|
|
31
|
+
};
|
|
32
|
+
var __async = (__this, __arguments, generator) => {
|
|
33
|
+
return new Promise((resolve, reject) => {
|
|
34
|
+
var fulfilled = (value) => {
|
|
35
|
+
try {
|
|
36
|
+
step(generator.next(value));
|
|
37
|
+
} catch (e) {
|
|
38
|
+
reject(e);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
var rejected = (value) => {
|
|
42
|
+
try {
|
|
43
|
+
step(generator.throw(value));
|
|
44
|
+
} catch (e) {
|
|
45
|
+
reject(e);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
49
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
import { TARGET } from "../constants/target.js";
|
|
53
|
+
import { getSessionId } from "../helpers/sessionId.js";
|
|
54
|
+
import { getVisitorId } from "../helpers/visitorId.js";
|
|
55
|
+
import { isBrowser } from "./is-browser.js";
|
|
56
|
+
import { isEditing } from "./is-editing.js";
|
|
57
|
+
const getTrackingEventData = (_0) => __async(void 0, [_0], function* ({
|
|
58
|
+
canTrack
|
|
59
|
+
}) {
|
|
60
|
+
if (!canTrack) {
|
|
61
|
+
return { visitorId: void 0, sessionId: void 0 };
|
|
62
|
+
}
|
|
63
|
+
const sessionId = yield getSessionId({ canTrack });
|
|
64
|
+
const visitorId = getVisitorId({ canTrack });
|
|
65
|
+
return {
|
|
66
|
+
sessionId,
|
|
67
|
+
visitorId
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
const createEvent = (_a) => __async(void 0, null, function* () {
|
|
71
|
+
var _b = _a, {
|
|
72
|
+
type: eventType,
|
|
73
|
+
canTrack,
|
|
74
|
+
orgId,
|
|
75
|
+
contentId
|
|
76
|
+
} = _b, properties = __objRest(_b, [
|
|
77
|
+
"type",
|
|
78
|
+
"canTrack",
|
|
79
|
+
"orgId",
|
|
80
|
+
"contentId"
|
|
81
|
+
]);
|
|
82
|
+
return {
|
|
83
|
+
type: eventType,
|
|
84
|
+
data: __spreadProps(__spreadValues(__spreadValues({}, properties), yield getTrackingEventData({ canTrack })), {
|
|
85
|
+
ownerId: orgId,
|
|
86
|
+
contentId
|
|
87
|
+
})
|
|
88
|
+
};
|
|
89
|
+
});
|
|
90
|
+
function track(eventProps) {
|
|
91
|
+
return __async(this, null, function* () {
|
|
92
|
+
if (!eventProps.canTrack) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
if (isEditing()) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
if (!(isBrowser() || TARGET === "reactNative")) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
return fetch(`https://builder.io/api/v1/track`, {
|
|
102
|
+
method: "POST",
|
|
103
|
+
body: JSON.stringify({
|
|
104
|
+
events: [yield createEvent(eventProps)]
|
|
105
|
+
}),
|
|
106
|
+
headers: {
|
|
107
|
+
"content-type": "application/json"
|
|
108
|
+
},
|
|
109
|
+
mode: "cors"
|
|
110
|
+
}).catch((err) => {
|
|
111
|
+
console.error("Failed to track: ", err);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
export {
|
|
116
|
+
track
|
|
117
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
function transformBlock(block) {
|
|
21
|
+
if (block.id.startsWith("builder-pixel-") && !block.component) {
|
|
22
|
+
return __spreadProps(__spreadValues({}, block), {
|
|
23
|
+
component: {
|
|
24
|
+
name: "Image",
|
|
25
|
+
options: {
|
|
26
|
+
image: block.properties.src,
|
|
27
|
+
width: 1,
|
|
28
|
+
height: 1
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
return block;
|
|
34
|
+
}
|
|
35
|
+
export {
|
|
36
|
+
transformBlock
|
|
37
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { getCookie, setCookie } from "./cookie.js";
|
|
2
|
+
const BUILDER_STORE_PREFIX = "builderio.variations";
|
|
3
|
+
const getContentTestKey = (id) => `${BUILDER_STORE_PREFIX}.${id}`;
|
|
4
|
+
const getContentVariationCookie = ({
|
|
5
|
+
contentId,
|
|
6
|
+
canTrack
|
|
7
|
+
}) => getCookie({ name: getContentTestKey(contentId), canTrack });
|
|
8
|
+
const setContentVariationCookie = ({
|
|
9
|
+
contentId,
|
|
10
|
+
canTrack,
|
|
11
|
+
value
|
|
12
|
+
}) => setCookie({ name: getContentTestKey(contentId), value, canTrack });
|
|
13
|
+
export {
|
|
14
|
+
getContentVariationCookie,
|
|
15
|
+
setContentVariationCookie
|
|
16
|
+
};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
var __async = (__this, __arguments, generator) => {
|
|
2
|
+
return new Promise((resolve, reject) => {
|
|
3
|
+
var fulfilled = (value) => {
|
|
4
|
+
try {
|
|
5
|
+
step(generator.next(value));
|
|
6
|
+
} catch (e) {
|
|
7
|
+
reject(e);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
var rejected = (value) => {
|
|
11
|
+
try {
|
|
12
|
+
step(generator.throw(value));
|
|
13
|
+
} catch (e) {
|
|
14
|
+
reject(e);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
18
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
import Storage from "react-native-storage";
|
|
22
|
+
import { isBrowser } from "../functions/is-browser.js";
|
|
23
|
+
import AsyncStorage from "@react-native-async-storage/async-storage";
|
|
24
|
+
const ONE_DAY = 1e3 * 60 * 60 * 24;
|
|
25
|
+
const initStorage = () => {
|
|
26
|
+
const backend = isBrowser() ? window.localStorage : AsyncStorage;
|
|
27
|
+
const storage2 = new Storage({
|
|
28
|
+
size: 1e3,
|
|
29
|
+
storageBackend: backend,
|
|
30
|
+
defaultExpires: ONE_DAY * 30,
|
|
31
|
+
enableCache: true
|
|
32
|
+
});
|
|
33
|
+
return storage2;
|
|
34
|
+
};
|
|
35
|
+
const storage = initStorage();
|
|
36
|
+
const getStorageName = (name) => `builderio.${name}`;
|
|
37
|
+
const getCookie = (_0) => __async(void 0, [_0], function* ({
|
|
38
|
+
name,
|
|
39
|
+
canTrack
|
|
40
|
+
}) {
|
|
41
|
+
try {
|
|
42
|
+
if (!canTrack) {
|
|
43
|
+
return void 0;
|
|
44
|
+
}
|
|
45
|
+
const parsedName = name.replace(/_/g, ".");
|
|
46
|
+
const data = yield storage.load({ key: getStorageName(parsedName) });
|
|
47
|
+
console.log("loaded data: ", data.value);
|
|
48
|
+
return data.value;
|
|
49
|
+
} catch (err) {
|
|
50
|
+
console.debug("[COOKIE] GET error: ", err);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
const setCookie = (_0) => __async(void 0, [_0], function* ({
|
|
54
|
+
name,
|
|
55
|
+
value,
|
|
56
|
+
expires,
|
|
57
|
+
canTrack
|
|
58
|
+
}) {
|
|
59
|
+
try {
|
|
60
|
+
if (!canTrack) {
|
|
61
|
+
return void 0;
|
|
62
|
+
}
|
|
63
|
+
yield storage.save({ key: getStorageName(name), data: { value }, expires });
|
|
64
|
+
console.log("saved data: ", { key: name, data: { value }, expires });
|
|
65
|
+
} catch (err) {
|
|
66
|
+
console.warn("[COOKIE] SET error: ", err);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
export {
|
|
70
|
+
getCookie,
|
|
71
|
+
setCookie
|
|
72
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { camelToKebabCase } from "../functions/camel-to-kebab-case.js";
|
|
2
|
+
const convertStyleMaptoCSS = (style) => {
|
|
3
|
+
const cssProps = Object.entries(style).map(([key, value]) => {
|
|
4
|
+
if (typeof value === "string") {
|
|
5
|
+
return `${camelToKebabCase(key)}: ${value};`;
|
|
6
|
+
}
|
|
7
|
+
});
|
|
8
|
+
return cssProps.join("\n");
|
|
9
|
+
};
|
|
10
|
+
export {
|
|
11
|
+
convertStyleMaptoCSS
|
|
12
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
function flatten(object, path = null, separator = ".") {
|
|
21
|
+
return Object.keys(object).reduce((acc, key) => {
|
|
22
|
+
const value = object[key];
|
|
23
|
+
const newPath = [path, key].filter(Boolean).join(separator);
|
|
24
|
+
const isObject = [
|
|
25
|
+
typeof value === "object",
|
|
26
|
+
value !== null,
|
|
27
|
+
!(Array.isArray(value) && value.length === 0)
|
|
28
|
+
].every(Boolean);
|
|
29
|
+
return isObject ? __spreadValues(__spreadValues({}, acc), flatten(value, newPath, separator)) : __spreadProps(__spreadValues({}, acc), { [newPath]: value });
|
|
30
|
+
}, {});
|
|
31
|
+
}
|
|
32
|
+
export {
|
|
33
|
+
flatten
|
|
34
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { isBrowser } from "../functions/is-browser.js";
|
|
2
|
+
const getLocalStorage = () => isBrowser() && typeof localStorage !== "undefined" ? localStorage : void 0;
|
|
3
|
+
const getLocalStorageItem = ({
|
|
4
|
+
key,
|
|
5
|
+
canTrack
|
|
6
|
+
}) => {
|
|
7
|
+
var _a;
|
|
8
|
+
try {
|
|
9
|
+
if (canTrack) {
|
|
10
|
+
return (_a = getLocalStorage()) == null ? void 0 : _a.getItem(key);
|
|
11
|
+
}
|
|
12
|
+
return void 0;
|
|
13
|
+
} catch (err) {
|
|
14
|
+
console.debug("[LocalStorage] GET error: ", err);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
const setLocalStorageItem = ({
|
|
18
|
+
key,
|
|
19
|
+
canTrack,
|
|
20
|
+
value
|
|
21
|
+
}) => {
|
|
22
|
+
var _a;
|
|
23
|
+
try {
|
|
24
|
+
if (canTrack) {
|
|
25
|
+
(_a = getLocalStorage()) == null ? void 0 : _a.setItem(key, value);
|
|
26
|
+
}
|
|
27
|
+
} catch (err) {
|
|
28
|
+
console.debug("[LocalStorage] SET error: ", err);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
export {
|
|
32
|
+
getLocalStorageItem,
|
|
33
|
+
setLocalStorageItem
|
|
34
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
var __async = (__this, __arguments, generator) => {
|
|
2
|
+
return new Promise((resolve, reject) => {
|
|
3
|
+
var fulfilled = (value) => {
|
|
4
|
+
try {
|
|
5
|
+
step(generator.next(value));
|
|
6
|
+
} catch (e) {
|
|
7
|
+
reject(e);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
var rejected = (value) => {
|
|
11
|
+
try {
|
|
12
|
+
step(generator.throw(value));
|
|
13
|
+
} catch (e) {
|
|
14
|
+
reject(e);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
18
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
import { getCookie, setCookie } from "./cookie.js";
|
|
22
|
+
import { checkIsDefined } from "./nullable.js";
|
|
23
|
+
import { uuid } from "./uuid.js";
|
|
24
|
+
const SESSION_LOCAL_STORAGE_KEY = "builderSessionId";
|
|
25
|
+
const getSessionId = (_0) => __async(void 0, [_0], function* ({ canTrack }) {
|
|
26
|
+
if (!canTrack) {
|
|
27
|
+
return void 0;
|
|
28
|
+
}
|
|
29
|
+
const sessionId = yield getCookie({
|
|
30
|
+
name: SESSION_LOCAL_STORAGE_KEY,
|
|
31
|
+
canTrack
|
|
32
|
+
});
|
|
33
|
+
if (checkIsDefined(sessionId)) {
|
|
34
|
+
return sessionId;
|
|
35
|
+
} else {
|
|
36
|
+
const newSessionId = createSessionId();
|
|
37
|
+
setSessionId({ id: newSessionId, canTrack });
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
const createSessionId = () => uuid();
|
|
41
|
+
const setSessionId = ({
|
|
42
|
+
id,
|
|
43
|
+
canTrack
|
|
44
|
+
}) => setCookie({ name: SESSION_LOCAL_STORAGE_KEY, value: id, canTrack });
|
|
45
|
+
export {
|
|
46
|
+
createSessionId,
|
|
47
|
+
getSessionId,
|
|
48
|
+
setSessionId
|
|
49
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { getTopLevelDomain } from "./url.js";
|
|
2
|
+
describe("getTopLevelDomain", () => {
|
|
3
|
+
test("handles root domain", () => {
|
|
4
|
+
const output = getTopLevelDomain("example.com");
|
|
5
|
+
expect(output).toBe("example.com");
|
|
6
|
+
});
|
|
7
|
+
test("handles subdomain", () => {
|
|
8
|
+
const output = getTopLevelDomain("wwww.example.com");
|
|
9
|
+
expect(output).toBe("example.com");
|
|
10
|
+
});
|
|
11
|
+
test("handles subdomain with long suffix", () => {
|
|
12
|
+
const output = getTopLevelDomain("www.example.co.uk");
|
|
13
|
+
expect(output).toBe("example.co.uk");
|
|
14
|
+
});
|
|
15
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
function uuidv4() {
|
|
2
|
+
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
|
|
3
|
+
const r = Math.random() * 16 | 0, v = c == "x" ? r : r & 3 | 8;
|
|
4
|
+
return v.toString(16);
|
|
5
|
+
});
|
|
6
|
+
}
|
|
7
|
+
function uuid() {
|
|
8
|
+
return uuidv4().replace(/-/g, "");
|
|
9
|
+
}
|
|
10
|
+
export {
|
|
11
|
+
uuid,
|
|
12
|
+
uuidv4
|
|
13
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { getLocalStorageItem, setLocalStorageItem } from "./localStorage.js";
|
|
2
|
+
import { checkIsDefined } from "./nullable.js";
|
|
3
|
+
import { uuid } from "./uuid.js";
|
|
4
|
+
const VISITOR_LOCAL_STORAGE_KEY = "builderVisitorId";
|
|
5
|
+
const getVisitorId = ({ canTrack }) => {
|
|
6
|
+
if (!canTrack) {
|
|
7
|
+
return void 0;
|
|
8
|
+
}
|
|
9
|
+
const visitorId = getLocalStorageItem({
|
|
10
|
+
key: VISITOR_LOCAL_STORAGE_KEY,
|
|
11
|
+
canTrack
|
|
12
|
+
});
|
|
13
|
+
if (checkIsDefined(visitorId)) {
|
|
14
|
+
return visitorId;
|
|
15
|
+
} else {
|
|
16
|
+
const newVisitorId = createVisitorId();
|
|
17
|
+
setVisitorId({ id: newVisitorId, canTrack });
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
const createVisitorId = () => uuid();
|
|
21
|
+
const setVisitorId = ({
|
|
22
|
+
id,
|
|
23
|
+
canTrack
|
|
24
|
+
}) => setLocalStorageItem({
|
|
25
|
+
key: VISITOR_LOCAL_STORAGE_KEY,
|
|
26
|
+
value: id,
|
|
27
|
+
canTrack
|
|
28
|
+
});
|
|
29
|
+
export {
|
|
30
|
+
createVisitorId,
|
|
31
|
+
getVisitorId,
|
|
32
|
+
setVisitorId
|
|
33
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { default as default2 } from "../blocks/columns/columns.js";
|
|
2
|
+
import { default as default3 } from "../blocks/image/image.js";
|
|
3
|
+
import { default as default4 } from "../blocks/text/text.js";
|
|
4
|
+
import { default as default5 } from "../blocks/symbol/symbol.js";
|
|
5
|
+
import { default as default6 } from "../blocks/button/button.js";
|
|
6
|
+
import { default as default7 } from "../blocks/section/section.js";
|
|
7
|
+
import { default as default8 } from "../blocks/fragment/fragment.js";
|
|
8
|
+
import { default as default9 } from "../components/render-content/render-content.js";
|
|
9
|
+
export {
|
|
10
|
+
default6 as Button,
|
|
11
|
+
default2 as Columns,
|
|
12
|
+
default8 as Fragment,
|
|
13
|
+
default3 as Image,
|
|
14
|
+
default9 as RenderContent,
|
|
15
|
+
default7 as Section,
|
|
16
|
+
default5 as Symbol,
|
|
17
|
+
default4 as Text
|
|
18
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "react-native-url-polyfill/auto";
|
package/src/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import "./index-helpers/top-of-file.js";
|
|
2
|
+
import "./scripts/init-editing.js";
|
|
3
|
+
export * from "./index-helpers/blocks-exports.js";
|
|
4
|
+
export * from "./functions/is-editing.js";
|
|
5
|
+
export * from "./functions/is-previewing.js";
|
|
6
|
+
export * from "./functions/register-component.js";
|
|
7
|
+
export * from "./functions/register.js";
|
|
8
|
+
export * from "./functions/set-editor-settings.js";
|
|
9
|
+
export * from "./functions/get-content/index.js";
|
|
10
|
+
export * from "./functions/get-builder-search-params/index.js";
|