@remkoj/optimizely-cms-react 5.1.2 → 5.1.4
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/dist/components/cms-content/get-content.js +24 -10
- package/dist/components/cms-content/get-content.js.map +1 -1
- package/dist/components/cms-content/rsc.d.ts +1 -1
- package/dist/components/cms-content/rsc.js +7 -2
- package/dist/components/cms-content/rsc.js.map +1 -1
- package/dist/components/cms-content/types.d.ts +8 -0
- package/dist/components/cms-editable/index.d.ts +9 -3
- package/dist/components/cms-editable/index.js +7 -3
- package/dist/components/cms-editable/index.js.map +1 -1
- package/dist/components/visual-builder/functions.js +2 -2
- package/dist/components/visual-builder/functions.js.map +1 -1
- package/dist/components/visual-builder/index.js +4 -4
- package/dist/components/visual-builder/index.js.map +1 -1
- package/dist/components/visual-builder/types.d.ts +7 -2
- package/dist/types.d.ts +34 -5
- package/package.json +3 -3
|
@@ -51,22 +51,36 @@ export function getContent(client, contentLink, Component, fragmentData, noDataL
|
|
|
51
51
|
}
|
|
52
52
|
if (isCmsComponentWithFragment(Component))
|
|
53
53
|
return getComponentDataFromFragment(Component, contentLink, client).then(data => (data || {}));
|
|
54
|
-
if (isCmsComponentWithDataQuery(Component))
|
|
55
|
-
|
|
56
|
-
const gqlVariables = contentLinkToRequestVariables(contentLink);
|
|
57
|
-
// If the CMS Preview mode has been enabled, make sure we include that in the query
|
|
58
|
-
if (client.isPreviewEnabled())
|
|
59
|
-
gqlVariables.changeset = client.getChangeset();
|
|
60
|
-
if (client.debug)
|
|
61
|
-
console.log("⚪ [CmsContent][getContent] Component fetching data using query, provided variables:", gqlVariables);
|
|
62
|
-
return client.request(gqlQuery, gqlVariables);
|
|
63
|
-
}
|
|
54
|
+
if (isCmsComponentWithDataQuery(Component))
|
|
55
|
+
return getComponentDataFromQuery(Component, contentLink, client);
|
|
64
56
|
// Assume there's no data load required for the component
|
|
65
57
|
if (client.debug)
|
|
66
58
|
console.log(`⚪ [CmsContent] Component of type "${componentLabel}" did not request loading of data`);
|
|
67
59
|
return Promise.resolve({});
|
|
68
60
|
}
|
|
69
61
|
export default getContent;
|
|
62
|
+
async function getComponentDataFromQuery(Component, contentLink, client) {
|
|
63
|
+
const gqlQuery = Component.getDataQuery();
|
|
64
|
+
const gqlVariables = contentLinkToRequestVariables(contentLink);
|
|
65
|
+
// If the CMS Preview mode has been enabled, make sure we include that in the query
|
|
66
|
+
if (client.isPreviewEnabled())
|
|
67
|
+
gqlVariables.changeset = client.getChangeset();
|
|
68
|
+
if (client.debug)
|
|
69
|
+
console.log("⚪ [CmsContent][getContent] Component fetching data using query, using provided variables:", gqlVariables);
|
|
70
|
+
const responseData = await client.request(gqlQuery, gqlVariables);
|
|
71
|
+
const responseItem = responseData?.data?.item;
|
|
72
|
+
if (!responseItem)
|
|
73
|
+
return responseData;
|
|
74
|
+
if (client.debug)
|
|
75
|
+
console.log('⚪ [CmsContent][getContent] ResponseData has expected structure (data > item), filtering response');
|
|
76
|
+
const responseItemKey = responseItem?._metadata?.key;
|
|
77
|
+
if (responseItemKey === null) {
|
|
78
|
+
if (client.debug)
|
|
79
|
+
console.log('⚪ [CmsContent][getContent] Item is empty, returning empty object');
|
|
80
|
+
return {};
|
|
81
|
+
}
|
|
82
|
+
return responseItemKey ? responseItem : responseItem;
|
|
83
|
+
}
|
|
70
84
|
async function getComponentDataFromFragment(Component, contentLink, client) {
|
|
71
85
|
const [name, fragment] = Component.getDataFragment();
|
|
72
86
|
if (client.debug)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-content.js","sourceRoot":"","sources":["../../../src/components/cms-content/get-content.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"get-content.js","sourceRoot":"","sources":["../../../src/components/cms-content/get-content.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,5 +7,5 @@ export type * from './types.js';
|
|
|
7
7
|
* @param param0
|
|
8
8
|
* @returns
|
|
9
9
|
*/
|
|
10
|
-
export declare function CmsContent<LocalesType = string>({ contentType, contentTypePrefix, contentLink: rawContentLink, children, fragmentData, layoutProps, noDataLoad, variant, ctx, }: BaseCmsContentProps<LocalesType>): Promise<ReactNode>;
|
|
10
|
+
export declare function CmsContent<LocalesType = string>({ contentType, contentTypePrefix, contentLink: rawContentLink, children, fragmentData, layoutProps, noDataLoad, variant, ctx, editorComponentId, }: BaseCmsContentProps<LocalesType>): Promise<ReactNode>;
|
|
11
11
|
export default CmsContent;
|
|
@@ -12,7 +12,7 @@ import resolveContentType from './resolve-content-type.js';
|
|
|
12
12
|
*/
|
|
13
13
|
export async function CmsContent({
|
|
14
14
|
// Own properties
|
|
15
|
-
contentType, contentTypePrefix, contentLink: rawContentLink, children, fragmentData, layoutProps, noDataLoad, variant, ctx, }) {
|
|
15
|
+
contentType, contentTypePrefix, contentLink: rawContentLink, children, fragmentData, layoutProps, noDataLoad, variant, ctx, editorComponentId, }) {
|
|
16
16
|
// Prepare context
|
|
17
17
|
const graphClient = ctx.client;
|
|
18
18
|
// Normalize the ContentLink
|
|
@@ -50,8 +50,13 @@ contentType, contentTypePrefix, contentLink: rawContentLink, children, fragmentD
|
|
|
50
50
|
return _jsx(Component, { contentLink: contentLink });
|
|
51
51
|
// Ensure we have the data the Component requested
|
|
52
52
|
const data = await getContent(graphClient, contentLink, Component, fragmentData, noDataLoad);
|
|
53
|
+
const editProps = {
|
|
54
|
+
ctx,
|
|
55
|
+
currentContent: ctx.editableContent || undefined,
|
|
56
|
+
cmsId: editorComponentId || contentLink?.key,
|
|
57
|
+
};
|
|
53
58
|
// Output the actual component
|
|
54
|
-
return (_jsx(Component, { contentLink: contentLink, data: data, inEditMode: ctx.inEditMode, layoutProps: layoutProps, ctx: ctx, children: children }));
|
|
59
|
+
return (_jsx(Component, { contentLink: contentLink, data: data, inEditMode: ctx.inEditMode, layoutProps: layoutProps, editProps: editProps, ctx: ctx, children: children }));
|
|
55
60
|
}
|
|
56
61
|
export default CmsContent;
|
|
57
62
|
//# sourceMappingURL=rsc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsc.js","sourceRoot":"","sources":["../../../src/components/cms-content/rsc.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"rsc.js","sourceRoot":"","sources":["../../../src/components/cms-content/rsc.tsx"],"names":[],"mappings":";AAGA,OAAO,cAAc,MAAM,uBAAuB,CAAA;AAClD,OAAO,UAAU,MAAM,kBAAkB,CAAA;AACzC,OAAO,EACL,QAAQ,EACR,oBAAoB,GAErB,MAAM,iCAAiC,CAAA;AACxC,OAAO,gBAAgB,EAAE,EACvB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,kBAAkB,MAAM,2BAA2B,CAAA;AAI1D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAuB;AACrD,iBAAiB;AACjB,WAAW,EACX,iBAAiB,EACjB,WAAW,EAAE,cAAc,EAC3B,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,UAAU,EACV,OAAO,EACP,GAAG,EACH,iBAAiB,GACgB;IACjC,kBAAkB;IAClB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAA;IAE9B,4BAA4B;IAC5B,MAAM,WAAW,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAA;IAExD,iCAAiC;IACjC,IAAI,aAAa,GAAG,kBAAkB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;IACjE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CACX,kFAAkF,CACnF,CAAA;YACD,OAAM;QACR,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CACX,uEAAuE,CACxE,CAAA;YACD,OAAM;QACR,CAAC;QACD,aAAa,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;IAChE,CAAC;IAED,qCAAqC;IACrC,IAAI,WAAW,EAAE,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU;YACzB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,GAAG,CAAC,aAAa;gBACjB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,QAAQ,CAAA;QACd;;WAEG;QACH,IACE,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,aAAa,CAAC;YACrC,WAAW,CAAC,eAAe,IAAI,QAAQ,CAAC,MAAM;YAE9C,OAAO,CAAC,IAAI,CACV,mBAAmB,IAAI,iIAAiI,CACzJ,CAAA;IACL,CAAC;IAED,kDAAkD;IAClD,MAAM,SAAS,GAAG,gBAAgB,CAChC,aAAa,EACb,iBAAiB,EACjB,OAAO,EACP,GAAG,CACJ,CAAA;IACD,IAAI,2BAA2B,CAAC,SAAS,CAAC;QACxC,OAAO,KAAC,SAAS,IAAC,WAAW,EAAE,WAA0B,GAAI,CAAA;IAE/D,kDAAkD;IAClD,MAAM,IAAI,GAAG,MAAM,UAAU,CAC3B,WAAW,EACX,WAAW,EACX,SAAS,EACT,YAAY,EACZ,UAAU,CACX,CAAA;IAED,MAAM,SAAS,GAA8B;QAC3C,GAAG;QACH,cAAc,EAAE,GAAG,CAAC,eAAe,IAAI,SAAS;QAChD,KAAK,EAAE,iBAAiB,IAAI,WAAW,EAAE,GAAG;KAC7C,CAAA;IAED,8BAA8B;IAC9B,OAAO,CACL,KAAC,SAAS,IACR,WAAW,EAAE,WAA0B,EACvC,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,GAAG,CAAC,UAAU,EAC1B,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,GAAG,YAEP,QAAQ,GACC,CACb,CAAA;AACH,CAAC;AAED,eAAe,UAAU,CAAA"}
|
|
@@ -11,6 +11,14 @@ export type CmsContentProps<LocalesType = string> = PropsWithChildren<PropsWithO
|
|
|
11
11
|
* The content link to render
|
|
12
12
|
*/
|
|
13
13
|
contentLink: ContentLinkWithLocale<LocalesType> | InlineContentLinkWithLocale<LocalesType>;
|
|
14
|
+
/**
|
|
15
|
+
* When provided this value will override the value for the `cmsId` field in
|
|
16
|
+
* the `editProps` the CmsComponent will provide to the component.
|
|
17
|
+
*
|
|
18
|
+
* This value is only needed when there's a difference between the Data ID and
|
|
19
|
+
* the ID expected by the editor.
|
|
20
|
+
*/
|
|
21
|
+
editorComponentId?: string;
|
|
14
22
|
/**
|
|
15
23
|
* The initial, pre-loaded data. If set this will be used instead of having the
|
|
16
24
|
* component fetching its' own data. So be sure that this leverages the fragment
|
|
@@ -28,22 +28,28 @@ export type CmsEditableProps<FT extends ElementType> = PropsWithChildren<{
|
|
|
28
28
|
* `ctx` property to the 'as' Component, or set to a valid property name to pass into
|
|
29
29
|
* that property.
|
|
30
30
|
*/
|
|
31
|
-
forwardCtx?:
|
|
31
|
+
forwardCtx?: boolean | GenericContextProps<FT>;
|
|
32
32
|
/**
|
|
33
33
|
* If set, the `data-epi-block-id` attribute will always be included when the `cmsId`
|
|
34
34
|
* parameter is being set.
|
|
35
35
|
*/
|
|
36
36
|
forceBlockId?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* If set `CmsEditable` will output both `cmsId` and `cmsFieldName` (if both are provided)
|
|
39
|
+
* otherwise it will prioritize `cmsFieldName`.
|
|
40
|
+
*/
|
|
41
|
+
forceId?: boolean;
|
|
37
42
|
/**
|
|
38
43
|
* If set, this will be used to test if the content item being rendered is actually
|
|
39
|
-
* the one being edited. This allows
|
|
44
|
+
* the one being edited. This allows conditional output of the edit properties. This will
|
|
45
|
+
* only affect `cmsFieldName`, not `cmsId`.
|
|
40
46
|
*/
|
|
41
47
|
currentContent?: ContentLink;
|
|
42
48
|
/**
|
|
43
49
|
* Override the value for the `data-epi-property-edittype` property
|
|
44
50
|
*/
|
|
45
51
|
editType?: 'floating' | 'inline' | null;
|
|
46
|
-
} & Omit<ElementProps<FT>, 'as' | 'cmsId' | 'cmsFieldName' | 'ctx' | 'forwardCtx'>>;
|
|
52
|
+
} & Omit<ElementProps<FT>, 'as' | 'cmsId' | 'cmsFieldName' | 'ctx' | 'forwardCtx' | 'forceBlockId' | 'forceId' | 'currentContent' | 'editType'>>;
|
|
47
53
|
export type CmsEditableComponent = <CT extends ElementType>(props: CmsEditableProps<CT>) => ReactNode;
|
|
48
54
|
export type CmsEditableBaseComponent = <CT extends ElementType>(props: PropsWithContext<CmsEditableProps<CT>>) => ReactNode;
|
|
49
55
|
/**
|
|
@@ -8,7 +8,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
8
8
|
* @param param0 The HTML element with the simple properties
|
|
9
9
|
* @returns
|
|
10
10
|
*/
|
|
11
|
-
export const CmsEditable = ({ ctx, forwardCtx, as, cmsId, cmsFieldName, children, key, forceBlockId, currentContent, editType, ...props }) => {
|
|
11
|
+
export const CmsEditable = ({ ctx, forwardCtx, as, cmsId = null, cmsFieldName = null, children, key, forceBlockId = false, forceId = true, currentContent, editType = null, ...props }) => {
|
|
12
12
|
const { inEditMode, isDebugOrDevelopment, isDebug, editableContent, editableContentIsExperience, } = ctx || {
|
|
13
13
|
inEditMode: false,
|
|
14
14
|
isDebug: true,
|
|
@@ -33,15 +33,19 @@ export const CmsEditable = ({ ctx, forwardCtx, as, cmsId, cmsFieldName, children
|
|
|
33
33
|
const dataEpiPropertyName = editableContentIsExperience
|
|
34
34
|
? undefined
|
|
35
35
|
: (cmsFieldName ?? undefined);
|
|
36
|
+
const showBlockId = cmsId && cmsId?.length != 32 && (forceBlockId || !dataEpiPropertyName);
|
|
37
|
+
const showContentId = cmsId?.length == 32 && (forceBlockId || !dataEpiPropertyName);
|
|
36
38
|
const itemProps = addEditProps
|
|
37
39
|
? {
|
|
38
40
|
...props,
|
|
39
41
|
// We assume GUIDs are represented as 32 char long strings, all other values are IDs
|
|
40
|
-
'data-epi-block-id':
|
|
42
|
+
'data-epi-block-id': showBlockId ? cmsId : undefined,
|
|
41
43
|
// We assume GUIDs are represented as 32 char long strings
|
|
42
|
-
'data-epi-content-id':
|
|
44
|
+
'data-epi-content-id': showContentId ? cmsId : undefined,
|
|
43
45
|
// We pass through the property name if provided
|
|
44
46
|
'data-epi-property-name': dataEpiPropertyName,
|
|
47
|
+
// We pass through the property name if provided
|
|
48
|
+
'data-epi-edit': dataEpiPropertyName,
|
|
45
49
|
// Configure the rendition of the property editor
|
|
46
50
|
'data-epi-property-edittype': editType ?? undefined,
|
|
47
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/cms-editable/index.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/cms-editable/index.tsx"],"names":[],"mappings":";AAsFA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,WAAW,GAA6B,CAAyB,EAC5E,GAAG,EACH,UAAU,EACV,EAAE,EACF,KAAK,GAAG,IAAI,EACZ,YAAY,GAAG,IAAI,EACnB,QAAQ,EACR,GAAG,EACH,YAAY,GAAG,KAAK,EACpB,OAAO,GAAG,IAAI,EACd,cAAc,EACd,QAAQ,GAAG,IAAI,EACf,GAAG,KAAK,EAC+B,EAAE,EAAE;IAC3C,MAAM,EACJ,UAAU,EACV,oBAAoB,EACpB,OAAO,EACP,eAAe,EACf,2BAA2B,GAC5B,GAAG,GAAG,IAAI;QACT,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,IAAI;QACb,oBAAoB,EAAE,IAAI;QAC1B,2BAA2B,EAAE,KAAK;KACnC,CAAA;IACD,MAAM,cAAc,GAAG,EAAE,IAAI,KAAK,CAAA;IAElC,IAAI,oBAAoB,IAAI,UAAU,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;QAClE,OAAO,CAAC,IAAI,CACV,4FAA4F,CAC7F,CAAA;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,UAAU;QAC7B,CAAC,CAAC,cAAc;YACd,CAAC,CAAC,eAAe,EAAE,GAAG,IAAI,cAAc,CAAC,GAAG;YAC5C,CAAC,CAAC,IAAI;QACR,CAAC,CAAC,KAAK,CAAA;IAET,uFAAuF;IACvF,uFAAuF;IACvF,iCAAiC;IACjC,MAAM,mBAAmB,GAAG,2BAA2B;QACrD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,CAAC,YAAY,IAAI,SAAS,CAAC,CAAA;IAE/B,MAAM,WAAW,GACf,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACxE,MAAM,aAAa,GACjB,KAAK,EAAE,MAAM,IAAI,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAE/D,MAAM,SAAS,GAAwB,YAAY;QACjD,CAAC,CAAC;YACE,GAAG,KAAK;YACR,oFAAoF;YACpF,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACpD,0DAA0D;YAC1D,qBAAqB,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACxD,gDAAgD;YAChD,wBAAwB,EAAE,mBAAmB;YAC7C,gDAAgD;YAChD,eAAe,EAAE,mBAAmB;YACpC,iDAAiD;YACjD,4BAA4B,EAAE,QAAQ,IAAI,SAAS;SACpD;QACH,CAAC,CAAC;YACE,GAAG,KAAK;SACT,CAAA;IAEL,IAAI,UAAU,KAAK,IAAI;QAAE,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;IAC/C,IAAI,OAAO,UAAU,IAAI,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QACxD,SAAS,CAAC,UAAU,CAAC,GAAG,GAAG,CAAA;IAE7B,OAAO,KAAC,cAAc,OAAK,SAAS,YAAG,QAAQ,GAAkB,CAAA;AACnE,CAAC,CAAA;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -60,7 +60,7 @@ export const defaultPropsFactory = (node) => {
|
|
|
60
60
|
template: node.template,
|
|
61
61
|
settings: node.settings,
|
|
62
62
|
};
|
|
63
|
-
return [contentLink, contentType, node.component, layoutData];
|
|
63
|
+
return [contentLink, contentType, node.key || undefined, node.component, layoutData];
|
|
64
64
|
};
|
|
65
65
|
export const defaultNodePropsFactory = (node) => {
|
|
66
66
|
const componentTypes = [
|
|
@@ -87,7 +87,7 @@ export const defaultNodePropsFactory = (node) => {
|
|
|
87
87
|
};
|
|
88
88
|
if (!(isContentLink(contentLink) || isInlineContentLink(contentLink)))
|
|
89
89
|
throw new Error("🔴 [VisualBuilder] Invalid content link: " + JSON.stringify(contentLink) + " - Node: " + JSON.stringify(node));
|
|
90
|
-
return [contentLink, componentTypes, componentData, layoutData];
|
|
90
|
+
return [contentLink, componentTypes, node.key || undefined, componentData, layoutData];
|
|
91
91
|
};
|
|
92
92
|
export function ucFirst(input) {
|
|
93
93
|
if (typeof (input) == 'string' && input.length > 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/components/visual-builder/functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAyB,mBAAmB,EAA+B,MAAM,iCAAiC,CAAA;AAGxI;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,IAA0C;IACtE,OAAO,eAAe,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAA0C;IACxE,OAAO,IAAI,CAAC,UAAU,IAAI,WAAW,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAiC,IAA0C,EAAE,IAA+C;IAC/J,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QACxB,OAAO,KAAK,CAAA;IACd,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAA0C;IACxE,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CAAC,MAAW;IAChC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,QAAQ,IAAI,MAAM,IAAI,IAAI;QAC/C,OAAO,KAAK,CAAA;IAEd,MAAM,SAAS,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;IACzE,MAAM,YAAY,GAAG,CAAC,OAAQ,MAA0B,CAAC,IAAI,IAAI,QAAQ,IAAI,CAAE,MAA0B,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAK,MAA0B,CAAC,IAAI,IAAI,IAAI,CAAA;IAC7K,MAAM,YAAY,GAAG,OAAQ,MAA0B,CAAC,UAAU,IAAI,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAE,MAA0B,CAAC,UAAU,CAAC,CAAA;IAE5I,OAAO,YAAY,IAAI,YAAY,CAAA;AACrC,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAqB,CAA8C,IAAkC,EAAE,EAAE;IACvI,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAA;IACpD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAA;IAEzE,MAAM,WAAW,GAAuC;QACtD,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,SAAS;QAC5D,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO;QAC3C,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM;QACzC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;KACxD,CAAA;IACD,IAAI,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAA;IAEzE,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAA;IAED,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/components/visual-builder/functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,8 +12,8 @@ export function OptimizelyComposition({ node, leafPropsFactory = defaultPropsFac
|
|
|
12
12
|
if (isComponentNode(node)) {
|
|
13
13
|
if (isDebug)
|
|
14
14
|
console.log(`⚪ [VisualBuilder] Rendering element node ${JSON.stringify(node)}`);
|
|
15
|
-
const [contentLink, contentType, fragmentData, layoutProps] = leafPropsFactory(node);
|
|
16
|
-
return (_jsx(CmsContent, { contentLink: contentLink, contentType: contentType, fragmentData: fragmentData, layoutProps: layoutProps, ctx: ctx }));
|
|
15
|
+
const [contentLink, contentType, nodeId, fragmentData, layoutProps] = leafPropsFactory(node);
|
|
16
|
+
return (_jsx(CmsContent, { contentLink: contentLink, contentType: contentType, fragmentData: fragmentData, layoutProps: layoutProps, editorComponentId: nodeId || contentLink.key || undefined, ctx: ctx }));
|
|
17
17
|
}
|
|
18
18
|
// Debug
|
|
19
19
|
if (isDebug)
|
|
@@ -21,14 +21,14 @@ export function OptimizelyComposition({ node, leafPropsFactory = defaultPropsFac
|
|
|
21
21
|
// Ensure we've got a factory
|
|
22
22
|
if (!factory)
|
|
23
23
|
throw new Error('🟡 [VisualBuilder] [OptimizelyComposition] The factory must be defined within the serverContext');
|
|
24
|
-
const [contentLink, contentTypes, fragmentData, layoutProps] = nodePropsFactory(node);
|
|
24
|
+
const [contentLink, contentTypes, nodeId, fragmentData, layoutProps] = nodePropsFactory(node);
|
|
25
25
|
const firstExistingType = contentTypes
|
|
26
26
|
.map((ct) => factory.has([...ct].reverse()))
|
|
27
27
|
.indexOf(true);
|
|
28
28
|
const contentType = contentTypes[firstExistingType];
|
|
29
29
|
if (!contentType)
|
|
30
30
|
throw new Error(`🟡 [VisualBuilder] [OptimizelyComposition] The factory must have a definition for one of these types: ${contentTypes.map((x) => x.join('/')).join(', ')}`);
|
|
31
|
-
return (_jsx(CmsContent, { contentType: contentType, contentLink: contentLink, fragmentData: fragmentData, layoutProps: layoutProps, noDataLoad: true, ctx: ctx, children: (node.nodes ?? []).map((child) => {
|
|
31
|
+
return (_jsx(CmsContent, { contentType: contentType, contentLink: contentLink, fragmentData: fragmentData, layoutProps: layoutProps, editorComponentId: nodeId || contentLink.key || undefined, noDataLoad: true, ctx: ctx, children: (node.nodes ?? []).map((child) => {
|
|
32
32
|
const childKey = child.key ? child.key : `vb::${JSON.stringify(child)}`;
|
|
33
33
|
return (_jsx(OptimizelyComposition, { node: child, leafPropsFactory: leafPropsFactory, nodePropsFactory: nodePropsFactory, ctx: ctx, cmsContent: CmsContent }, childKey));
|
|
34
34
|
}) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/visual-builder/index.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,gBAAgB,CAAA;AAIvB;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,EACpC,IAAI,EACJ,gBAAgB,GAAG,mBAAmB,EACtC,gBAAgB,GAAG,uBAAuB,EAC1C,GAAG,EACH,UAAU,EAAE,UAAU,GACS;IAC/B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA;IAEhC,qBAAqB;IACrB,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,IAAI,OAAO;YACT,OAAO,CAAC,GAAG,CACT,4CAA4C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CACnE,CAAA;QACH,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/visual-builder/index.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,gBAAgB,CAAA;AAIvB;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,EACpC,IAAI,EACJ,gBAAgB,GAAG,mBAAmB,EACtC,gBAAgB,GAAG,uBAAuB,EAC1C,GAAG,EACH,UAAU,EAAE,UAAU,GACS;IAC/B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA;IAEhC,qBAAqB;IACrB,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,IAAI,OAAO;YACT,OAAO,CAAC,GAAG,CACT,4CAA4C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CACnE,CAAA;QACH,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,GACjE,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACxB,OAAO,CACL,KAAC,UAAU,IACT,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,SAAS,EACzD,GAAG,EAAE,GAAG,GACR,CACH,CAAA;IACH,CAAC;IAED,QAAQ;IACR,IAAI,OAAO;QACT,OAAO,CAAC,GAAG,CACT,8CAA8C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CACrE,CAAA;IAEH,6BAA6B;IAC7B,IAAI,CAAC,OAAO;QACV,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAA;IAEH,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,GAClE,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACxB,MAAM,iBAAiB,GAAG,YAAY;SACnC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;SAC3C,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,MAAM,WAAW,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAA;IACnD,IAAI,CAAC,WAAW;QACd,MAAM,IAAI,KAAK,CACb,yGAAyG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3J,CAAA;IAEH,OAAO,CACL,KAAC,UAAU,IACT,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,SAAS,EACzD,UAAU,QACV,GAAG,EAAE,GAAG,YAEP,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAA;YACvE,OAAO,CACL,KAAC,qBAAqB,IAEpB,IAAI,EAAE,KAAK,EACX,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,IALjB,QAAQ,CAMb,CACH,CAAA;QACH,CAAC,CAAC,GACS,CACd,CAAA;AACH,CAAC;AAED,eAAe,qBAAqB,CAAA"}
|
|
@@ -34,8 +34,13 @@ export type CompositionComponentType<NT extends CompositionNode> = ComponentType
|
|
|
34
34
|
} : PropsWithChildren<{
|
|
35
35
|
node: Omit<NT, 'nodes'>;
|
|
36
36
|
}>>;
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Get the props to render a leaf inside an experience
|
|
39
|
+
*
|
|
40
|
+
* @returns An array with the contentLink, Content Type, Node ID, Loaded Data & Layout Properties
|
|
41
|
+
*/
|
|
42
|
+
export type LeafPropsFactory = <ET extends Record<string, any>, LT = string>(node: CompositionComponentNode<ET>) => [ContentLinkWithLocale<LT> | InlineContentLinkWithLocale<LT>, ContentType, string | undefined, ET] | [ContentLinkWithLocale<LT> | InlineContentLinkWithLocale<LT>, ContentType, string | undefined, ET, Record<string, any>];
|
|
43
|
+
export type NodePropsFactory = <ET extends Record<string, any>, LT = string>(node: CompositionStructureNode) => [ContentLinkWithLocale<LT> | InlineContentLinkWithLocale<LT>, Array<ContentType>, string | undefined, ET] | [ContentLinkWithLocale<LT> | InlineContentLinkWithLocale<LT>, Array<ContentType>, string | undefined, ET, Record<string, any>];
|
|
39
44
|
export type OptimizelyCompositionProps = PropsWithOptionalContext<JSX.IntrinsicAttributes & {
|
|
40
45
|
/**
|
|
41
46
|
* The Visual Builder node to start rendering from
|
package/dist/types.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { DocumentNode } from "graphql";
|
|
|
3
3
|
import type { TypedDocumentNode } from '@graphql-typed-document-node/core';
|
|
4
4
|
import type { ContentLinkWithLocale, ContentLink, InlineContentLinkWithLocale } from "@remkoj/optimizely-graph-client";
|
|
5
5
|
import type { GenericContext } from "./context/types.js";
|
|
6
|
+
import type { CmsEditableProps } from "./components/cms-editable/index.js";
|
|
6
7
|
export type ContentType = string[];
|
|
7
8
|
export type {
|
|
8
9
|
/**
|
|
@@ -13,9 +14,10 @@ ContentLink,
|
|
|
13
14
|
* @deprecated Use the export from `@remkoj/optimizely-graph-client` directly
|
|
14
15
|
*/
|
|
15
16
|
ContentLinkWithLocale } from "@remkoj/optimizely-graph-client";
|
|
17
|
+
export type ComponentCmsEditableProps = Pick<CmsEditableProps<'div'>, 'cmsId' | 'ctx' | 'currentContent'>;
|
|
16
18
|
export type CmsComponentProps<T, L extends Record<string, any> = Record<string, any>> = PropsWithChildren<{
|
|
17
19
|
/**
|
|
18
|
-
* The identifier of the content item
|
|
20
|
+
* The identifier of the content item.
|
|
19
21
|
*/
|
|
20
22
|
contentLink: ContentLinkWithLocale | InlineContentLinkWithLocale;
|
|
21
23
|
/**
|
|
@@ -24,22 +26,31 @@ export type CmsComponentProps<T, L extends Record<string, any> = Record<string,
|
|
|
24
26
|
data: T;
|
|
25
27
|
/**
|
|
26
28
|
* Use the Server/Client context instead if you need this information
|
|
29
|
+
*
|
|
30
|
+
* @deprecated
|
|
27
31
|
*/
|
|
28
32
|
inEditMode?: boolean;
|
|
29
33
|
/**
|
|
30
|
-
* Contextual layout data
|
|
34
|
+
* Contextual layout data from an Experience. This will be `undefined` if
|
|
35
|
+
* there's no layout data attached.
|
|
31
36
|
*/
|
|
32
37
|
layoutProps?: L;
|
|
38
|
+
/**
|
|
39
|
+
* The minimal properties needed to render a CmsEditable inside the
|
|
40
|
+
* component.
|
|
41
|
+
*/
|
|
42
|
+
editProps?: ComponentCmsEditableProps;
|
|
33
43
|
/**
|
|
34
44
|
* The context in which this component will be rendered
|
|
35
45
|
*/
|
|
36
46
|
ctx?: GenericContext;
|
|
37
47
|
}>;
|
|
38
|
-
export type ContentQueryProps<LocaleType = string> = ContentLink & {
|
|
48
|
+
export type ContentQueryProps<LocaleType = string> = Omit<ContentLink, 'isInline'> & {
|
|
39
49
|
locale?: Array<LocaleType> | LocaleType | null;
|
|
40
50
|
path?: string | null;
|
|
41
51
|
domain?: string | null;
|
|
42
52
|
changeset?: string | null;
|
|
53
|
+
variant?: string | null;
|
|
43
54
|
};
|
|
44
55
|
/**
|
|
45
56
|
* Extract the data type from a GraphQL Query
|
|
@@ -47,7 +58,21 @@ export type ContentQueryProps<LocaleType = string> = ContentLink & {
|
|
|
47
58
|
export type ResponseDataType<T extends DocumentNode> = T extends TypedDocumentNode<infer DataType> ? DataType : {
|
|
48
59
|
[key: string]: any;
|
|
49
60
|
};
|
|
50
|
-
export type
|
|
61
|
+
export type GetDataQueryResponseTemplate = {
|
|
62
|
+
__typename?: 'Query' | null;
|
|
63
|
+
data?: {
|
|
64
|
+
__typename?: string | null;
|
|
65
|
+
item?: {
|
|
66
|
+
__typename?: string | null;
|
|
67
|
+
_metadata?: {
|
|
68
|
+
key?: string | null;
|
|
69
|
+
} | null;
|
|
70
|
+
[key: string]: any;
|
|
71
|
+
} | null;
|
|
72
|
+
} | null;
|
|
73
|
+
};
|
|
74
|
+
export type ProcessQueryResponse<T> = T extends GetDataQueryResponseTemplate ? NonNullable<NonNullable<Required<T>['data']>['item']> : T;
|
|
75
|
+
export type GetDataQuery<T> = () => TypedDocumentNode<T, Omit<ContentQueryProps, 'path' | 'domain'>> | DocumentNode;
|
|
51
76
|
export type GetDataFragment<T> = () => [string, TypedDocumentNode<T, never> | DocumentNode | string];
|
|
52
77
|
export type WithGqlFragment<BaseComponent, DataType> = BaseComponent & {
|
|
53
78
|
getDataFragment: GetDataFragment<DataType>;
|
|
@@ -56,7 +81,7 @@ export type WithGqlFragment<BaseComponent, DataType> = BaseComponent & {
|
|
|
56
81
|
export type WithGqlQuery<B, T> = B & {
|
|
57
82
|
getDataQuery: GetDataQuery<T>;
|
|
58
83
|
};
|
|
59
|
-
export type BaseCmsComponent<T = {}, L extends Record<string, any> = Record<string, any>> = T extends never | TypedDocumentNode | DocumentNode ? DynamicCmsComponent<T
|
|
84
|
+
export type BaseCmsComponent<T = {}, L extends Record<string, any> = Record<string, any>> = T extends never | TypedDocumentNode | DocumentNode ? DynamicCmsComponent<ProcessQueryResponse<T>> : ReactComponentType<CmsComponentProps<ProcessQueryResponse<T>, L>>;
|
|
60
85
|
export type DynamicCmsComponent<T extends TypedDocumentNode | DocumentNode = DocumentNode, L extends Record<string, any> = Record<string, any>> = ReactComponentType<CmsComponentProps<ResponseDataType<T>, L>>;
|
|
61
86
|
export type GraphQLFragmentBase = {
|
|
62
87
|
' $fragmentName'?: string;
|
|
@@ -79,4 +104,8 @@ export type CmsComponentWithOptionalQuery<T = DocumentNode, L extends Record<str
|
|
|
79
104
|
export type CmsComponent<T = DocumentNode, L extends Record<string, any> = Record<string, any>> = T extends TypedDocumentNode<infer R, any> ? CmsComponentWithQuery<R, L> : T extends DocumentNode ? CmsComponentWithQuery<{
|
|
80
105
|
[key: string]: any;
|
|
81
106
|
}, L> : T extends GraphQLFragmentBase ? CmsComponentWithFragment<T, L> : T extends GraphQLQueryBase ? CmsComponentWithQuery<T, L> : CmsComponentWithOptionalQuery<T, L>;
|
|
107
|
+
/**
|
|
108
|
+
* A generic Optimizely CMS Component used to render a layout node from an experience, which cannot
|
|
109
|
+
* be loaded directly as independent Content Item from Optimizely Graph
|
|
110
|
+
*/
|
|
82
111
|
export type CmsLayoutComponent<L extends Record<string, any> = Record<string, any>, T = never> = ReactComponentType<CmsComponentProps<T, L>>;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remkoj/optimizely-cms-react",
|
|
3
3
|
"license": "Apache-2.0",
|
|
4
|
-
"version": "5.1.
|
|
4
|
+
"version": "5.1.4",
|
|
5
5
|
"repository": "https://github.com/remkoj/optimizely-dxp-clients.git",
|
|
6
6
|
"author": "Remko Jantzen <693172+remkoj@users.noreply.github.com>",
|
|
7
7
|
"homepage": "https://github.com/remkoj/optimizely-dxp-clients/tree/main/packages/optimizely-cms-react",
|
|
@@ -27,9 +27,9 @@
|
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@remkoj/optimizely-graph-client": "5.1.
|
|
30
|
+
"@remkoj/optimizely-graph-client": "5.1.4",
|
|
31
31
|
"@types/crypto-js": "^4.2.2",
|
|
32
|
-
"@types/node": "^22.16.
|
|
32
|
+
"@types/node": "^22.16.5",
|
|
33
33
|
"@types/react": "^18.3.23",
|
|
34
34
|
"@types/react-dom": "18.3.7",
|
|
35
35
|
"entities": "^6.0.1",
|