@builder.io/sdk-svelte 3.0.7 → 4.0.1
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/lib/browser/blocks/symbol/symbol.svelte +1 -1
- package/lib/browser/blocks/video/video.svelte +54 -9
- package/lib/browser/blocks/video/video.svelte.d.ts +2 -2
- package/lib/browser/components/content/components/enable-editor.svelte +9 -5
- package/lib/browser/components/content/components/enable-editor.svelte.d.ts +2 -2
- package/lib/browser/components/content/content.svelte +3 -3
- package/lib/browser/components/content/content.svelte.d.ts +2 -2
- package/lib/browser/components/content-variants/content-variants.svelte +2 -2
- package/lib/browser/components/content-variants/content-variants.svelte.d.ts +2 -2
- package/lib/browser/components/content-variants/content-variants.types.d.ts +2 -2
- package/lib/browser/constants/sdk-version.d.ts +1 -1
- package/lib/browser/constants/sdk-version.js +1 -1
- package/lib/browser/helpers/subscribe-to-editor.d.ts +15 -13
- package/lib/browser/helpers/subscribe-to-editor.js +18 -4
- package/lib/browser/scripts/init-editing.d.ts +3 -1
- package/lib/browser/scripts/init-editing.js +3 -1
- package/lib/edge/blocks/symbol/symbol.svelte +1 -1
- package/lib/edge/blocks/video/video.svelte +54 -9
- package/lib/edge/blocks/video/video.svelte.d.ts +2 -2
- package/lib/edge/components/content/components/enable-editor.svelte +9 -5
- package/lib/edge/components/content/components/enable-editor.svelte.d.ts +2 -2
- package/lib/edge/components/content/content.svelte +3 -3
- package/lib/edge/components/content/content.svelte.d.ts +2 -2
- package/lib/edge/components/content-variants/content-variants.svelte +2 -2
- package/lib/edge/components/content-variants/content-variants.svelte.d.ts +2 -2
- package/lib/edge/components/content-variants/content-variants.types.d.ts +2 -2
- package/lib/edge/constants/sdk-version.d.ts +1 -1
- package/lib/edge/constants/sdk-version.js +1 -1
- package/lib/edge/helpers/subscribe-to-editor.d.ts +15 -13
- package/lib/edge/helpers/subscribe-to-editor.js +18 -4
- package/lib/edge/scripts/init-editing.d.ts +3 -1
- package/lib/edge/scripts/init-editing.js +3 -1
- package/lib/node/blocks/symbol/symbol.svelte +1 -1
- package/lib/node/blocks/video/video.svelte +54 -9
- package/lib/node/blocks/video/video.svelte.d.ts +2 -2
- package/lib/node/components/content/components/enable-editor.svelte +9 -5
- package/lib/node/components/content/components/enable-editor.svelte.d.ts +2 -2
- package/lib/node/components/content/content.svelte +3 -3
- package/lib/node/components/content/content.svelte.d.ts +2 -2
- package/lib/node/components/content-variants/content-variants.svelte +2 -2
- package/lib/node/components/content-variants/content-variants.svelte.d.ts +2 -2
- package/lib/node/components/content-variants/content-variants.types.d.ts +2 -2
- package/lib/node/constants/sdk-version.d.ts +1 -1
- package/lib/node/constants/sdk-version.js +1 -1
- package/lib/node/helpers/subscribe-to-editor.d.ts +15 -13
- package/lib/node/helpers/subscribe-to-editor.js +18 -4
- package/lib/node/scripts/init-editing.d.ts +3 -1
- package/lib/node/scripts/init-editing.js +3 -1
- package/package.json +1 -1
- package/src/blocks/symbol/symbol.svelte +1 -1
- package/src/blocks/video/video.svelte +59 -8
- package/src/components/content/components/enable-editor.svelte +8 -4
- package/src/components/content/content.svelte +3 -3
- package/src/components/content-variants/content-variants.svelte +2 -2
- package/src/components/content-variants/content-variants.types.ts +2 -2
- package/src/constants/sdk-version.ts +1 -1
- package/src/helpers/subscribe-to-editor.ts +43 -17
- package/src/scripts/init-editing.ts +5 -1
|
@@ -57,8 +57,8 @@
|
|
|
57
57
|
export let locale: BuilderEditorProps["locale"] = undefined;
|
|
58
58
|
export let enrich: BuilderEditorProps["enrich"] = undefined;
|
|
59
59
|
export let trustedHosts: BuilderEditorProps["trustedHosts"] = undefined;
|
|
60
|
-
export let model: BuilderEditorProps["model"]
|
|
61
|
-
export let content: BuilderEditorProps["content"]
|
|
60
|
+
export let model: BuilderEditorProps["model"];
|
|
61
|
+
export let content: BuilderEditorProps["content"];
|
|
62
62
|
export let context: BuilderEditorProps["context"] = undefined;
|
|
63
63
|
export let data: BuilderEditorProps["data"] = undefined;
|
|
64
64
|
export let showContent: BuilderEditorProps["showContent"];
|
|
@@ -130,6 +130,9 @@
|
|
|
130
130
|
contentUpdate: (newContent) => {
|
|
131
131
|
mergeNewContent(newContent);
|
|
132
132
|
},
|
|
133
|
+
stateUpdate: (newState) => {
|
|
134
|
+
mergeNewRootState(newState);
|
|
135
|
+
},
|
|
133
136
|
},
|
|
134
137
|
})(event);
|
|
135
138
|
}
|
|
@@ -229,11 +232,12 @@
|
|
|
229
232
|
trustedHosts: trustedHosts,
|
|
230
233
|
}
|
|
231
234
|
: {}),
|
|
235
|
+
modelName: model ?? "",
|
|
236
|
+
apiKey: apiKey,
|
|
232
237
|
});
|
|
233
238
|
Object.values<ComponentInfo>($builderContextSignal.componentInfos).forEach(
|
|
234
239
|
(registeredComponent) => {
|
|
235
240
|
if (
|
|
236
|
-
!model ||
|
|
237
241
|
!registeredComponent.models?.length ||
|
|
238
242
|
registeredComponent.models.includes(model)
|
|
239
243
|
) {
|
|
@@ -272,7 +276,7 @@
|
|
|
272
276
|
(!content || searchParamPreviewId === content.id))
|
|
273
277
|
) {
|
|
274
278
|
fetchOneEntry({
|
|
275
|
-
model: model
|
|
279
|
+
model: model,
|
|
276
280
|
apiKey: apiKey,
|
|
277
281
|
apiVersion: $builderContextSignal.apiVersion,
|
|
278
282
|
...(searchParamPreviewModel === "BUILDER_STUDIO" && context?.symbolId
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
export let apiKey: ContentProps["apiKey"];
|
|
32
32
|
export let context: ContentProps["context"] = undefined;
|
|
33
|
-
export let content: ContentProps["content"]
|
|
33
|
+
export let content: ContentProps["content"];
|
|
34
34
|
export let customComponents: ContentProps["customComponents"] = undefined;
|
|
35
35
|
export let data: ContentProps["data"] = undefined;
|
|
36
36
|
export let locale: ContentProps["locale"] = undefined;
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
export let blocksWrapper: ContentProps["blocksWrapper"] = undefined;
|
|
40
40
|
export let blocksWrapperProps: ContentProps["blocksWrapperProps"] = undefined;
|
|
41
41
|
export let nonce: ContentProps["nonce"] = undefined;
|
|
42
|
-
export let model: ContentProps["model"]
|
|
42
|
+
export let model: ContentProps["model"];
|
|
43
43
|
export let apiHost: ContentProps["apiHost"] = undefined;
|
|
44
44
|
export let enrich: ContentProps["enrich"] = undefined;
|
|
45
45
|
export let showContent: ContentProps["showContent"];
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
BlocksWrapper: blocksWrapper || "div",
|
|
105
105
|
BlocksWrapperProps: blocksWrapperProps || {},
|
|
106
106
|
nonce: nonce || "",
|
|
107
|
-
model: model
|
|
107
|
+
model: model,
|
|
108
108
|
});
|
|
109
109
|
if (!apiKey) {
|
|
110
110
|
logger.error(
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
} from "./helpers";
|
|
26
26
|
|
|
27
27
|
export let canTrack: VariantsProviderProps["canTrack"] = undefined;
|
|
28
|
-
export let content: VariantsProviderProps["content"]
|
|
28
|
+
export let content: VariantsProviderProps["content"];
|
|
29
29
|
export let isNestedRender: VariantsProviderProps["isNestedRender"] =
|
|
30
30
|
undefined;
|
|
31
31
|
export let nonce: VariantsProviderProps["nonce"] = undefined;
|
|
32
32
|
export let apiHost: VariantsProviderProps["apiHost"] = undefined;
|
|
33
|
-
export let model: VariantsProviderProps["model"]
|
|
33
|
+
export let model: VariantsProviderProps["model"];
|
|
34
34
|
export let data: VariantsProviderProps["data"] = undefined;
|
|
35
35
|
export let context: VariantsProviderProps["context"] = undefined;
|
|
36
36
|
export let apiKey: VariantsProviderProps["apiKey"];
|
|
@@ -7,12 +7,12 @@ export interface ContentVariantsPrps extends ExtraFrameworkProps {
|
|
|
7
7
|
/**
|
|
8
8
|
* The Builder content JSON to render (required).
|
|
9
9
|
*/
|
|
10
|
-
content
|
|
10
|
+
content: Nullable<BuilderContent>;
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* The Builder content `model` to render (required).
|
|
14
14
|
*/
|
|
15
|
-
model
|
|
15
|
+
model: string;
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Additional data to inject into your Builder content (optional).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const SDK_VERSION = "
|
|
1
|
+
export const SDK_VERSION = "4.0.1"
|
|
@@ -4,10 +4,12 @@ import { isFromTrustedHost } from '../functions/is-from-trusted-host';
|
|
|
4
4
|
import { setupBrowserForEditing } from '../scripts/init-editing';
|
|
5
5
|
import type { BuilderAnimation } from '../types/builder-block';
|
|
6
6
|
import type { BuilderContent } from '../types/builder-content';
|
|
7
|
+
import type { Dictionary } from '../types/typescript';
|
|
7
8
|
import { logger } from './logger';
|
|
8
9
|
type ContentListener = Required<Pick<ContentProps, 'model' | 'trustedHosts'>> & {
|
|
9
10
|
callbacks: {
|
|
10
11
|
contentUpdate: (updatedContent: BuilderContent) => void;
|
|
12
|
+
stateUpdate: (newState: Dictionary<string>) => void;
|
|
11
13
|
animation: (updatedContent: BuilderAnimation) => void;
|
|
12
14
|
configureSdk: (updatedContent: any) => void;
|
|
13
15
|
};
|
|
@@ -36,6 +38,16 @@ export const createEditorListener = ({
|
|
|
36
38
|
callbacks.animation(data.data);
|
|
37
39
|
break;
|
|
38
40
|
}
|
|
41
|
+
case 'builder.resetState':
|
|
42
|
+
{
|
|
43
|
+
const messageContent = data.data;
|
|
44
|
+
const modelName = messageContent.model;
|
|
45
|
+
const newState = messageContent?.state;
|
|
46
|
+
if (modelName === model && newState) {
|
|
47
|
+
callbacks.stateUpdate(newState);
|
|
48
|
+
}
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
39
51
|
case 'builder.contentUpdate':
|
|
40
52
|
{
|
|
41
53
|
const messageContent = data.data;
|
|
@@ -50,19 +62,24 @@ export const createEditorListener = ({
|
|
|
50
62
|
}
|
|
51
63
|
};
|
|
52
64
|
};
|
|
53
|
-
type SubscribeToEditor = (
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
type SubscribeToEditor = ({
|
|
66
|
+
model,
|
|
67
|
+
apiKey,
|
|
68
|
+
callback,
|
|
69
|
+
trustedHosts
|
|
70
|
+
}: {
|
|
71
|
+
/**
|
|
72
|
+
* The Builder `model` to subscribe to
|
|
73
|
+
*/
|
|
74
|
+
model: string;
|
|
75
|
+
/**
|
|
76
|
+
* Builder API Key to use for the editor.
|
|
77
|
+
*/
|
|
78
|
+
apiKey: string;
|
|
79
|
+
/**
|
|
80
|
+
* The callback function to call when the content is updated.
|
|
81
|
+
*/
|
|
82
|
+
callback: (updatedContent: BuilderContent) => void;
|
|
66
83
|
/**
|
|
67
84
|
* List of hosts to allow editing content from.
|
|
68
85
|
*/
|
|
@@ -73,20 +90,29 @@ options?: {
|
|
|
73
90
|
* Subscribes to the Builder editor and listens to `content` updates of a certain `model`.
|
|
74
91
|
* Sends the updated `content` to the `callback` function.
|
|
75
92
|
*/
|
|
76
|
-
export const subscribeToEditor: SubscribeToEditor = (
|
|
93
|
+
export const subscribeToEditor: SubscribeToEditor = ({
|
|
94
|
+
model,
|
|
95
|
+
apiKey,
|
|
96
|
+
callback,
|
|
97
|
+
trustedHosts
|
|
98
|
+
}) => {
|
|
77
99
|
if (!isBrowser) {
|
|
78
100
|
logger.warn('`subscribeToEditor` only works in the browser. It currently seems to be running on the server.');
|
|
79
101
|
return () => {};
|
|
80
102
|
}
|
|
81
|
-
setupBrowserForEditing(
|
|
103
|
+
setupBrowserForEditing({
|
|
104
|
+
modelName: model,
|
|
105
|
+
apiKey
|
|
106
|
+
});
|
|
82
107
|
const listener = createEditorListener({
|
|
83
108
|
callbacks: {
|
|
84
109
|
contentUpdate: callback,
|
|
85
110
|
animation: () => {},
|
|
86
|
-
configureSdk: () => {}
|
|
111
|
+
configureSdk: () => {},
|
|
112
|
+
stateUpdate: () => {}
|
|
87
113
|
},
|
|
88
114
|
model,
|
|
89
|
-
trustedHosts
|
|
115
|
+
trustedHosts
|
|
90
116
|
});
|
|
91
117
|
window.addEventListener('message', listener);
|
|
92
118
|
return () => {
|
|
@@ -28,11 +28,13 @@ export const registerInsertMenu = () => {
|
|
|
28
28
|
};
|
|
29
29
|
let isSetupForEditing = false;
|
|
30
30
|
export const setupBrowserForEditing = (options: {
|
|
31
|
+
modelName: string;
|
|
32
|
+
apiKey: string;
|
|
31
33
|
enrich?: boolean;
|
|
32
34
|
includeRefs?: boolean;
|
|
33
35
|
locale?: string;
|
|
34
36
|
trustedHosts?: string[];
|
|
35
|
-
}
|
|
37
|
+
}) => {
|
|
36
38
|
if (isSetupForEditing) {
|
|
37
39
|
return;
|
|
38
40
|
}
|
|
@@ -48,6 +50,8 @@ export const setupBrowserForEditing = (options: {
|
|
|
48
50
|
// scope our '+ add block' button styling
|
|
49
51
|
supportsAddBlockScoping: true,
|
|
50
52
|
supportsCustomBreakpoints: true,
|
|
53
|
+
modelName: options.modelName,
|
|
54
|
+
apiKey: options.apiKey,
|
|
51
55
|
supportsXSmallBreakpoint: TARGET === 'reactNative' ? false : true,
|
|
52
56
|
blockLevelPersonalization: true
|
|
53
57
|
}
|