@builder.io/sdk-svelte 0.0.1-0
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 +12 -0
- package/src/blocks/button.svelte +38 -0
- package/src/blocks/columns.svelte +95 -0
- package/src/blocks/custom-code.svelte +63 -0
- package/src/blocks/embed.svelte +62 -0
- package/src/blocks/form.svelte +300 -0
- package/src/blocks/fragment.svelte +25 -0
- package/src/blocks/image.svelte +99 -0
- package/src/blocks/img.svelte +33 -0
- package/src/blocks/input.svelte +32 -0
- package/src/blocks/raw-text.svelte +26 -0
- package/src/blocks/section.svelte +33 -0
- package/src/blocks/select.svelte +34 -0
- package/src/blocks/submit-button.svelte +30 -0
- package/src/blocks/symbol.svelte +55 -0
- package/src/blocks/text.svelte +25 -0
- package/src/blocks/textarea.svelte +29 -0
- package/src/blocks/video.svelte +42 -0
- package/src/components/block-styles.svelte +23 -0
- package/src/components/error-boundary.svelte +23 -0
- package/src/components/render-block.svelte +121 -0
- package/src/components/render-blocks.svelte +70 -0
- package/src/components/render-content/components/render-styles.svelte +95 -0
- package/src/components/render-content/render-content.svelte +216 -0
- package/src/constants/device-sizes.js +46 -0
- package/src/constants/target.js +11 -0
- package/src/context/builder.context.js +33 -0
- package/src/functions/evaluate.js +51 -0
- package/src/functions/event-handler-name.js +14 -0
- package/src/functions/get-block-actions.js +46 -0
- package/src/functions/get-block-component-options.js +29 -0
- package/src/functions/get-block-properties.js +35 -0
- package/src/functions/get-block-styles.js +52 -0
- package/src/functions/get-block-tag.js +13 -0
- package/src/functions/get-builder-search-params/fn.test.js +31 -0
- package/src/functions/get-builder-search-params/index.js +29 -0
- package/src/functions/get-content/fn.test.js +49 -0
- package/src/functions/get-content/index.js +158 -0
- package/src/functions/get-fetch.js +35 -0
- package/src/functions/get-global-this.js +25 -0
- package/src/functions/get-processed-block.js +67 -0
- package/src/functions/get-processed-block.test.js +49 -0
- package/src/functions/if-target.js +38 -0
- package/src/functions/is-browser.js +13 -0
- package/src/functions/is-editing.js +30 -0
- package/src/functions/is-iframe.js +30 -0
- package/src/functions/is-previewing.js +37 -0
- package/src/functions/macro-eval.js +12 -0
- package/src/functions/on-change.js +34 -0
- package/src/functions/on-change.test.js +37 -0
- package/src/functions/previewing-model-name.js +34 -0
- package/src/functions/register-component.js +74 -0
- package/src/functions/register.js +52 -0
- package/src/functions/set-editor-settings.js +38 -0
- package/src/functions/set.js +18 -0
- package/src/functions/set.test.js +34 -0
- package/src/functions/track.js +45 -0
- package/src/functions/transform-block.js +13 -0
- package/src/index-helpers/blocks-exports.js +43 -0
- package/src/index-helpers/top-of-file.js +11 -0
- package/src/index.js +32 -0
- package/src/scripts/init-editing.js +89 -0
- package/src/types/builder-block.js +3 -0
- package/src/types/builder-content.js +3 -0
- package/src/types/deep-partial.js +3 -0
- package/src/types/targets.js +3 -0
- package/src/types/typescript.js +3 -0
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import { onMount } from 'svelte'
|
|
3
|
+
import { afterUpdate } from 'svelte'
|
|
4
|
+
import { onDestroy } from 'svelte'
|
|
5
|
+
|
|
6
|
+
import { isBrowser } from '../../functions/is-browser';
|
|
7
|
+
import BuilderContext, { } from '../../context/builder.context.lite';
|
|
8
|
+
import { track } from '../../functions/track';
|
|
9
|
+
import { isEditing } from '../../functions/is-editing';
|
|
10
|
+
import { isPreviewing } from '../../functions/is-previewing';
|
|
11
|
+
import { previewingModelName } from '../../functions/previewing-model-name';
|
|
12
|
+
import { getContent } from '../../functions/get-content';
|
|
13
|
+
import { convertSearchParamsToQueryObject , getBuilderSearchParams } from '../../functions/get-builder-search-params';
|
|
14
|
+
import RenderBlocks, { } from '../render-blocks.lite';
|
|
15
|
+
import { evaluate } from '../../functions/evaluate';
|
|
16
|
+
import { getFetch } from '../../functions/get-fetch';
|
|
17
|
+
import { TARGET } from '../../constants/target';
|
|
18
|
+
import RenderStyles, { } from './components/render-styles.lite';
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
export let content;
|
|
25
|
+
export let data;
|
|
26
|
+
export let model;
|
|
27
|
+
export let apiKey;
|
|
28
|
+
|
|
29
|
+
function processMessage(event) {
|
|
30
|
+
const {
|
|
31
|
+
data
|
|
32
|
+
} = event;
|
|
33
|
+
|
|
34
|
+
if (data) {
|
|
35
|
+
switch (data.type) {
|
|
36
|
+
case 'builder.contentUpdate':
|
|
37
|
+
{
|
|
38
|
+
const messageContent = data.data;
|
|
39
|
+
const key = messageContent.key || messageContent.alias || messageContent.entry || messageContent.modelName;
|
|
40
|
+
const contentData = messageContent.data;
|
|
41
|
+
|
|
42
|
+
if (key === model) {
|
|
43
|
+
overrideContent = contentData;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
case 'builder.patchUpdates':
|
|
50
|
+
{
|
|
51
|
+
// TODO
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function evaluateJsCode() {
|
|
59
|
+
// run any dynamic JS code attached to content
|
|
60
|
+
const jsCode = useContent?.()?.data?.jsCode;
|
|
61
|
+
|
|
62
|
+
if (jsCode) {
|
|
63
|
+
evaluate({
|
|
64
|
+
code: jsCode,
|
|
65
|
+
context: context(),
|
|
66
|
+
state: state()
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function evalExpression(expression) {
|
|
72
|
+
return expression.replace(/{{([^}]+)}}/g, (_match, group) => evaluate({
|
|
73
|
+
code: group,
|
|
74
|
+
context: context(),
|
|
75
|
+
state: state()
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function handleRequest({
|
|
80
|
+
url,
|
|
81
|
+
key
|
|
82
|
+
}) {
|
|
83
|
+
const fetchAndSetState = async () => {
|
|
84
|
+
const response = await getFetch()(url);
|
|
85
|
+
const json = await response.json();
|
|
86
|
+
const newOverrideState = { ...overrideState,
|
|
87
|
+
[key]: json
|
|
88
|
+
};
|
|
89
|
+
overrideState = newOverrideState;
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
fetchAndSetState();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
function runHttpRequests() {
|
|
96
|
+
const requests = useContent?.()?.data?.httpRequests ?? {};
|
|
97
|
+
Object.entries(requests).forEach(([key, url]) => {
|
|
98
|
+
if (url && (!httpReqsData()[key] || isEditing())) {
|
|
99
|
+
const evaluatedUrl = evalExpression(url);
|
|
100
|
+
handleRequest({
|
|
101
|
+
url: evaluatedUrl,
|
|
102
|
+
key
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
function emitStateUpdate() {
|
|
109
|
+
window.dispatchEvent(new CustomEvent('builder:component:stateChange', {
|
|
110
|
+
detail: {
|
|
111
|
+
state: state(),
|
|
112
|
+
ref: {
|
|
113
|
+
name: model
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}));
|
|
117
|
+
}
|
|
118
|
+
$: useContent = () => {
|
|
119
|
+
const mergedContent = { ...content,
|
|
120
|
+
...overrideContent,
|
|
121
|
+
data: { ...content?.data,
|
|
122
|
+
...data,
|
|
123
|
+
...overrideContent?.data
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
return mergedContent;
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
$: state = () => {
|
|
130
|
+
return { ...content?.data?.state,
|
|
131
|
+
...data,
|
|
132
|
+
...overrideState
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
$: context = () => {
|
|
137
|
+
return {};
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
$: httpReqsData = () => {
|
|
141
|
+
return {};
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
let overrideContent = null;
|
|
145
|
+
let update = 0;
|
|
146
|
+
let overrideState = {};
|
|
147
|
+
|
|
148
|
+
onMount(() => {
|
|
149
|
+
if (isBrowser()) {
|
|
150
|
+
if (isEditing()) {
|
|
151
|
+
window.addEventListener('message', processMessage);
|
|
152
|
+
window.addEventListener('builder:component:stateChangeListenerActivated', emitStateUpdate);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
if (useContent()) {
|
|
156
|
+
track('impression', {
|
|
157
|
+
contentId: useContent().id
|
|
158
|
+
});
|
|
159
|
+
} // override normal content in preview mode
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
if (isPreviewing()) {
|
|
163
|
+
if (model && previewingModelName() === model) {
|
|
164
|
+
const currentUrl = new URL(location.href);
|
|
165
|
+
const previewApiKey = currentUrl.searchParams.get('apiKey');
|
|
166
|
+
|
|
167
|
+
if (previewApiKey) {
|
|
168
|
+
getContent({
|
|
169
|
+
model: model,
|
|
170
|
+
apiKey: previewApiKey,
|
|
171
|
+
options: getBuilderSearchParams(convertSearchParamsToQueryObject(currentUrl.searchParams))
|
|
172
|
+
}).then(content => {
|
|
173
|
+
if (content) {
|
|
174
|
+
overrideContent = content;
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
evaluateJsCode();
|
|
182
|
+
runHttpRequests();
|
|
183
|
+
emitStateUpdate();
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
afterUpdate(() => {
|
|
188
|
+
evaluateJsCode();
|
|
189
|
+
});afterUpdate(() => {
|
|
190
|
+
runHttpRequests();
|
|
191
|
+
});afterUpdate(() => {
|
|
192
|
+
emitStateUpdate();
|
|
193
|
+
})
|
|
194
|
+
|
|
195
|
+
onDestroy(() => {
|
|
196
|
+
if (isBrowser()) {
|
|
197
|
+
window.removeEventListener('message', processMessage);
|
|
198
|
+
window.removeEventListener('builder:component:stateChangeListenerActivated', emitStateUpdate);
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
</script>
|
|
202
|
+
|
|
203
|
+
{#if useContent() }
|
|
204
|
+
|
|
205
|
+
<div on:click="{event => track('click', {
|
|
206
|
+
contentId: useContent().id
|
|
207
|
+
})}" data-builder-content-id={useContent?.()?.id} >
|
|
208
|
+
|
|
209
|
+
{#if (useContent?.()?.data?.cssCode || useContent?.()?.data?.customFonts?.length) && TARGET !== 'reactNative' }<RenderStyles cssCode={useContent().data.cssCode} customFonts={useContent().data.customFonts} ></RenderStyles>{/if}
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
<RenderBlocks blocks={useContent?.()?.data?.blocks} ></RenderBlocks>
|
|
213
|
+
|
|
214
|
+
</div>
|
|
215
|
+
|
|
216
|
+
{/if}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
3
|
+
var __export = (target, all) => {
|
|
4
|
+
__markAsModule(target);
|
|
5
|
+
for (var name in all)
|
|
6
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
7
|
+
};
|
|
8
|
+
__export(exports, {
|
|
9
|
+
sizeNames: () => sizeNames,
|
|
10
|
+
sizes: () => sizes
|
|
11
|
+
});
|
|
12
|
+
const sizeNames = ["xsmall", "small", "medium", "large"];
|
|
13
|
+
const sizes = {
|
|
14
|
+
xsmall: {
|
|
15
|
+
min: 0,
|
|
16
|
+
default: 0,
|
|
17
|
+
max: 0
|
|
18
|
+
},
|
|
19
|
+
small: {
|
|
20
|
+
min: 320,
|
|
21
|
+
default: 321,
|
|
22
|
+
max: 640
|
|
23
|
+
},
|
|
24
|
+
medium: {
|
|
25
|
+
min: 641,
|
|
26
|
+
default: 642,
|
|
27
|
+
max: 991
|
|
28
|
+
},
|
|
29
|
+
large: {
|
|
30
|
+
min: 990,
|
|
31
|
+
default: 991,
|
|
32
|
+
max: 1200
|
|
33
|
+
},
|
|
34
|
+
getWidthForSize(size) {
|
|
35
|
+
return this[size].default;
|
|
36
|
+
},
|
|
37
|
+
getSizeForWidth(width) {
|
|
38
|
+
for (const size of sizeNames) {
|
|
39
|
+
const value = this[size];
|
|
40
|
+
if (width <= value.max) {
|
|
41
|
+
return size;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return "large";
|
|
45
|
+
}
|
|
46
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
3
|
+
var __export = (target, all) => {
|
|
4
|
+
__markAsModule(target);
|
|
5
|
+
for (var name in all)
|
|
6
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
7
|
+
};
|
|
8
|
+
__export(exports, {
|
|
9
|
+
TARGET: () => TARGET
|
|
10
|
+
});
|
|
11
|
+
const TARGET = "reactNative";
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
__markAsModule(target);
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __reExport = (target, module2, desc) => {
|
|
14
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(module2))
|
|
16
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
17
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return target;
|
|
20
|
+
};
|
|
21
|
+
var __toModule = (module2) => {
|
|
22
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
23
|
+
};
|
|
24
|
+
__export(exports, {
|
|
25
|
+
default: () => stdin_default
|
|
26
|
+
});
|
|
27
|
+
var import_react = __toModule(require("react"));
|
|
28
|
+
var stdin_default = (0, import_react.createContext)({
|
|
29
|
+
content: null,
|
|
30
|
+
context: {},
|
|
31
|
+
state: {},
|
|
32
|
+
apiKey: null
|
|
33
|
+
});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
__markAsModule(target);
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __reExport = (target, module2, desc) => {
|
|
14
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(module2))
|
|
16
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
17
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return target;
|
|
20
|
+
};
|
|
21
|
+
var __toModule = (module2) => {
|
|
22
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
23
|
+
};
|
|
24
|
+
__export(exports, {
|
|
25
|
+
evaluate: () => evaluate
|
|
26
|
+
});
|
|
27
|
+
var import_is_browser = __toModule(require("./is-browser"));
|
|
28
|
+
var import_is_editing = __toModule(require("./is-editing"));
|
|
29
|
+
function evaluate({
|
|
30
|
+
code,
|
|
31
|
+
context,
|
|
32
|
+
state,
|
|
33
|
+
event
|
|
34
|
+
}) {
|
|
35
|
+
if (code === "") {
|
|
36
|
+
console.warn("Skipping evaluation of empty code block.");
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const builder = {
|
|
40
|
+
isEditing: (0, import_is_editing.isEditing)(),
|
|
41
|
+
isBrowser: (0, import_is_browser.isBrowser)(),
|
|
42
|
+
isServer: !(0, import_is_browser.isBrowser)()
|
|
43
|
+
};
|
|
44
|
+
const useReturn = !(code.includes(";") || code.includes(" return ") || code.trim().startsWith("return "));
|
|
45
|
+
const useCode = useReturn ? `return (${code});` : code;
|
|
46
|
+
try {
|
|
47
|
+
return new Function("builder", "Builder", "state", "context", "event", useCode)(builder, builder, state, context, event);
|
|
48
|
+
} catch (e) {
|
|
49
|
+
console.warn("Builder custom code error: ", e);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
3
|
+
var __export = (target, all) => {
|
|
4
|
+
__markAsModule(target);
|
|
5
|
+
for (var name in all)
|
|
6
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
7
|
+
};
|
|
8
|
+
__export(exports, {
|
|
9
|
+
getEventHandlerName: () => getEventHandlerName
|
|
10
|
+
});
|
|
11
|
+
function capitalizeFirstLetter(string) {
|
|
12
|
+
return string.charAt(0).toUpperCase() + string.slice(1);
|
|
13
|
+
}
|
|
14
|
+
const getEventHandlerName = (key) => `on${capitalizeFirstLetter(key)}`;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
__markAsModule(target);
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __reExport = (target, module2, desc) => {
|
|
14
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(module2))
|
|
16
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
17
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return target;
|
|
20
|
+
};
|
|
21
|
+
var __toModule = (module2) => {
|
|
22
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
23
|
+
};
|
|
24
|
+
__export(exports, {
|
|
25
|
+
getBlockActions: () => getBlockActions
|
|
26
|
+
});
|
|
27
|
+
var import_evaluate = __toModule(require("./evaluate"));
|
|
28
|
+
var import_event_handler_name = __toModule(require("./event-handler-name"));
|
|
29
|
+
function getBlockActions(options) {
|
|
30
|
+
var _a;
|
|
31
|
+
const obj = {};
|
|
32
|
+
const optionActions = (_a = options.block.actions) != null ? _a : {};
|
|
33
|
+
for (const key in optionActions) {
|
|
34
|
+
if (!optionActions.hasOwnProperty(key)) {
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
const value = optionActions[key];
|
|
38
|
+
obj[(0, import_event_handler_name.getEventHandlerName)(key)] = (event) => (0, import_evaluate.evaluate)({
|
|
39
|
+
code: value,
|
|
40
|
+
context: options.context,
|
|
41
|
+
state: options.state,
|
|
42
|
+
event
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
return obj;
|
|
46
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
+
var __spreadValues = (a, b) => {
|
|
7
|
+
for (var prop in b || (b = {}))
|
|
8
|
+
if (__hasOwnProp.call(b, prop))
|
|
9
|
+
__defNormalProp(a, prop, b[prop]);
|
|
10
|
+
if (__getOwnPropSymbols)
|
|
11
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
12
|
+
if (__propIsEnum.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
}
|
|
15
|
+
return a;
|
|
16
|
+
};
|
|
17
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
18
|
+
var __export = (target, all) => {
|
|
19
|
+
__markAsModule(target);
|
|
20
|
+
for (var name in all)
|
|
21
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
22
|
+
};
|
|
23
|
+
__export(exports, {
|
|
24
|
+
getBlockComponentOptions: () => getBlockComponentOptions
|
|
25
|
+
});
|
|
26
|
+
function getBlockComponentOptions(block) {
|
|
27
|
+
var _a;
|
|
28
|
+
return __spreadValues(__spreadValues({}, (_a = block.component) == null ? void 0 : _a.options), block.options);
|
|
29
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
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 __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
21
|
+
var __export = (target, all) => {
|
|
22
|
+
__markAsModule(target);
|
|
23
|
+
for (var name in all)
|
|
24
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
25
|
+
};
|
|
26
|
+
__export(exports, {
|
|
27
|
+
getBlockProperties: () => getBlockProperties
|
|
28
|
+
});
|
|
29
|
+
function getBlockProperties(block) {
|
|
30
|
+
var _a;
|
|
31
|
+
return __spreadProps(__spreadValues({}, block.properties), {
|
|
32
|
+
"builder-id": block.id,
|
|
33
|
+
class: [block.id, "builder-block", block.class, (_a = block.properties) == null ? void 0 : _a.class].filter(Boolean).join(" ")
|
|
34
|
+
});
|
|
35
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
+
var __spreadValues = (a, b) => {
|
|
11
|
+
for (var prop in b || (b = {}))
|
|
12
|
+
if (__hasOwnProp.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
if (__getOwnPropSymbols)
|
|
15
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
+
if (__propIsEnum.call(b, prop))
|
|
17
|
+
__defNormalProp(a, prop, b[prop]);
|
|
18
|
+
}
|
|
19
|
+
return a;
|
|
20
|
+
};
|
|
21
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
22
|
+
var __export = (target, all) => {
|
|
23
|
+
__markAsModule(target);
|
|
24
|
+
for (var name in all)
|
|
25
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
26
|
+
};
|
|
27
|
+
var __reExport = (target, module2, desc) => {
|
|
28
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
29
|
+
for (let key of __getOwnPropNames(module2))
|
|
30
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
31
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
32
|
+
}
|
|
33
|
+
return target;
|
|
34
|
+
};
|
|
35
|
+
var __toModule = (module2) => {
|
|
36
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
37
|
+
};
|
|
38
|
+
__export(exports, {
|
|
39
|
+
getBlockStyles: () => getBlockStyles
|
|
40
|
+
});
|
|
41
|
+
var import_device_sizes = __toModule(require("../constants/device-sizes"));
|
|
42
|
+
function getBlockStyles(block) {
|
|
43
|
+
var _a, _b, _c, _d, _e;
|
|
44
|
+
const styles = __spreadValues(__spreadValues({}, (_a = block.responsiveStyles) == null ? void 0 : _a.large), block.styles);
|
|
45
|
+
if ((_b = block.responsiveStyles) == null ? void 0 : _b.medium) {
|
|
46
|
+
styles[`@media (max-width: ${import_device_sizes.sizes.medium})`] = (_c = block.responsiveStyles) == null ? void 0 : _c.medium;
|
|
47
|
+
}
|
|
48
|
+
if ((_d = block.responsiveStyles) == null ? void 0 : _d.small) {
|
|
49
|
+
styles[`@media (max-width: ${import_device_sizes.sizes.small})`] = (_e = block.responsiveStyles) == null ? void 0 : _e.small;
|
|
50
|
+
}
|
|
51
|
+
return styles;
|
|
52
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
3
|
+
var __export = (target, all) => {
|
|
4
|
+
__markAsModule(target);
|
|
5
|
+
for (var name in all)
|
|
6
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
7
|
+
};
|
|
8
|
+
__export(exports, {
|
|
9
|
+
getBlockTag: () => getBlockTag
|
|
10
|
+
});
|
|
11
|
+
function getBlockTag(block) {
|
|
12
|
+
return block.tagName || "div";
|
|
13
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __reExport = (target, module2, desc) => {
|
|
9
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
10
|
+
for (let key of __getOwnPropNames(module2))
|
|
11
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
12
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
13
|
+
}
|
|
14
|
+
return target;
|
|
15
|
+
};
|
|
16
|
+
var __toModule = (module2) => {
|
|
17
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
18
|
+
};
|
|
19
|
+
var import__ = __toModule(require("."));
|
|
20
|
+
const querystring = "someotherValue=jklsjfdal&abc=klfdjklgfds&builder.cachebust=true&builder.preview=page&builder.noCache=true&__builder_editing__=true&builder.overrides.page=037948e52eaf4743afed464f02c70da4&builder.overrides.037948e52eaf4743afed464f02c70da4=037948e52eaf4743afed464f02c70da4&builder.overrides.page%3A%2F=037948e52eaf4743afed464f02c70da4&preview_theme_id=128854393017";
|
|
21
|
+
const url = new URL(`localhost:3000/about-us?${querystring}`);
|
|
22
|
+
describe("Get Builder SearchParams", () => {
|
|
23
|
+
test("correctly converts URLSearchParams to object", () => {
|
|
24
|
+
const output = (0, import__.convertSearchParamsToQueryObject)(url.searchParams);
|
|
25
|
+
expect(output).toMatchSnapshot();
|
|
26
|
+
});
|
|
27
|
+
test("correctly extracts all builder params from a query object", () => {
|
|
28
|
+
const output = (0, import__.getBuilderSearchParams)((0, import__.convertSearchParamsToQueryObject)(url.searchParams));
|
|
29
|
+
expect(output).toMatchSnapshot();
|
|
30
|
+
});
|
|
31
|
+
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
3
|
+
var __export = (target, all) => {
|
|
4
|
+
__markAsModule(target);
|
|
5
|
+
for (var name in all)
|
|
6
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
7
|
+
};
|
|
8
|
+
__export(exports, {
|
|
9
|
+
convertSearchParamsToQueryObject: () => convertSearchParamsToQueryObject,
|
|
10
|
+
getBuilderSearchParams: () => getBuilderSearchParams
|
|
11
|
+
});
|
|
12
|
+
const BUILDER_SEARCHPARAMS_PREFIX = "builder.";
|
|
13
|
+
const convertSearchParamsToQueryObject = (searchParams) => {
|
|
14
|
+
const options = {};
|
|
15
|
+
searchParams.forEach((value, key) => {
|
|
16
|
+
options[key] = value;
|
|
17
|
+
});
|
|
18
|
+
return options;
|
|
19
|
+
};
|
|
20
|
+
const getBuilderSearchParams = (options) => {
|
|
21
|
+
const newOptions = {};
|
|
22
|
+
Object.keys(options).forEach((key) => {
|
|
23
|
+
if (key.startsWith(BUILDER_SEARCHPARAMS_PREFIX)) {
|
|
24
|
+
const trimmedKey = key.replace(BUILDER_SEARCHPARAMS_PREFIX, "");
|
|
25
|
+
newOptions[trimmedKey] = options[key];
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
return newOptions;
|
|
29
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __reExport = (target, module2, desc) => {
|
|
9
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
10
|
+
for (let key of __getOwnPropNames(module2))
|
|
11
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
12
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
13
|
+
}
|
|
14
|
+
return target;
|
|
15
|
+
};
|
|
16
|
+
var __toModule = (module2) => {
|
|
17
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
18
|
+
};
|
|
19
|
+
var import__ = __toModule(require("."));
|
|
20
|
+
const testKey = "YJIGb4i01jvw0SRdL5Bt";
|
|
21
|
+
const testModel = "page";
|
|
22
|
+
const testId = "c1b81bab59704599b997574eb0736def";
|
|
23
|
+
const options = {
|
|
24
|
+
cachebust: "true",
|
|
25
|
+
noCache: "true",
|
|
26
|
+
"overrides.037948e52eaf4743afed464f02c70da4": "037948e52eaf4743afed464f02c70da4",
|
|
27
|
+
"overrides.page": "037948e52eaf4743afed464f02c70da4",
|
|
28
|
+
"overrides.page:/": "037948e52eaf4743afed464f02c70da4",
|
|
29
|
+
preview: "page"
|
|
30
|
+
};
|
|
31
|
+
describe("Generate Content URL", () => {
|
|
32
|
+
test("generates the proper value for a simple query", () => {
|
|
33
|
+
const output = (0, import__.generateContentUrl)({
|
|
34
|
+
apiKey: testKey,
|
|
35
|
+
model: testModel,
|
|
36
|
+
query: { id: testId }
|
|
37
|
+
});
|
|
38
|
+
expect(output).toMatchSnapshot();
|
|
39
|
+
});
|
|
40
|
+
test("Handles overrides correctly", () => {
|
|
41
|
+
const output = (0, import__.generateContentUrl)({
|
|
42
|
+
apiKey: testKey,
|
|
43
|
+
model: testModel,
|
|
44
|
+
query: { id: testId },
|
|
45
|
+
options
|
|
46
|
+
});
|
|
47
|
+
expect(output).toMatchSnapshot();
|
|
48
|
+
});
|
|
49
|
+
});
|