@remkoj/optimizely-cms-react 6.0.0-pre8 → 6.0.0-pre9
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/LICENSE +12 -12
- package/dist/components/cms-content/get-content-type.js +8 -17
- package/dist/components/cms-content/get-content-type.js.map +1 -1
- package/dist/components/cms-content/get-content.js +45 -49
- package/dist/components/cms-content/get-content.js.map +1 -1
- package/dist/components/cms-content/resolve-component.js +9 -4
- package/dist/components/cms-content/resolve-component.js.map +1 -1
- package/dist/components/cms-content/rsc.d.ts +1 -1
- package/dist/components/cms-content/rsc.js +9 -7
- package/dist/components/cms-content/rsc.js.map +1 -1
- package/dist/components/cms-content/types.d.ts +8 -0
- package/dist/components/cms-content-area/index.js +3 -3
- package/dist/components/cms-content-area/index.js.map +1 -1
- package/dist/components/cms-editable/index.d.ts +8 -2
- package/dist/components/cms-editable/index.js +13 -7
- package/dist/components/cms-editable/index.js.map +1 -1
- package/dist/components/rsc.d.ts +2 -0
- package/dist/components/rsc.js +1 -0
- package/dist/components/rsc.js.map +1 -1
- package/dist/components/visual-builder/functions.js +3 -3
- package/dist/components/visual-builder/functions.js.map +1 -1
- package/dist/components/visual-builder/index.js +12 -8
- package/dist/components/visual-builder/index.js.map +1 -1
- package/dist/components/visual-builder/types.d.ts +8 -2
- package/dist/context/client.js +5 -2
- package/dist/context/client.js.map +1 -1
- package/dist/context/rsc.d.ts +1 -1
- package/dist/context/rsc.js +11 -42
- package/dist/context/rsc.js.map +1 -1
- package/dist/context/shared.js +2 -1
- package/dist/context/shared.js.map +1 -1
- package/dist/context/types.d.ts +3 -11
- package/dist/factory/default.js +0 -5
- package/dist/factory/default.js.map +1 -1
- package/dist/types.d.ts +37 -6
- package/dist/utilities.d.ts +54 -4
- package/dist/utilities.js +100 -7
- package/dist/utilities.js.map +1 -1
- package/package.json +16 -12
package/LICENSE
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
Copyright 2024 Remko Jantzen
|
|
2
|
-
|
|
3
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
you may not use this file except in compliance with the License.
|
|
5
|
-
You may obtain a copy of the License at
|
|
6
|
-
|
|
7
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
|
|
9
|
-
Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
See the License for the specific language governing permissions and
|
|
1
|
+
Copyright 2024 Remko Jantzen
|
|
2
|
+
|
|
3
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
you may not use this file except in compliance with the License.
|
|
5
|
+
You may obtain a copy of the License at
|
|
6
|
+
|
|
7
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
|
|
9
|
+
Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
See the License for the specific language governing permissions and
|
|
13
13
|
limitations under the License.
|
|
@@ -27,19 +27,14 @@ export async function getContentType(link, gqlClient) {
|
|
|
27
27
|
console.error(`🔴 [CmsContent][getContentType] The provided link is not a valid content link: ${contentLinkToString(link)}`);
|
|
28
28
|
throw new Error(`The provided link is not a valid content link: ${contentLinkToString(link)}`);
|
|
29
29
|
}
|
|
30
|
-
const gqlQueryVars = contentLinkToRequestVariables(link);
|
|
30
|
+
const gqlQueryVars = contentLinkToRequestVariables(link, gqlClient);
|
|
31
31
|
const gqlResponse = await gqlClient.request(getContentTypeQuery, gqlQueryVars);
|
|
32
32
|
if (gqlResponse.Content?.total != 1) {
|
|
33
33
|
if (gqlClient.debug)
|
|
34
34
|
console.error(`🔴 [CmsContent][getContentType] Expected exactly one type, received ${gqlResponse.Content?.total ?? 0} types for`, gqlQueryVars);
|
|
35
35
|
return undefined;
|
|
36
36
|
}
|
|
37
|
-
const
|
|
38
|
-
if (!items || items.length == 0) {
|
|
39
|
-
console.error(`🔴 [CmsContent][getContentType] The content item could not be found! (${contentLinkToString(link)})`);
|
|
40
|
-
throw new Error("The content item could not be found!");
|
|
41
|
-
}
|
|
42
|
-
const contentType = normalizeContentType(items[0]?._metadata?.types);
|
|
37
|
+
const contentType = normalizeContentType(gqlResponse.Content?.item?._metadata?.types);
|
|
43
38
|
if (!contentType) {
|
|
44
39
|
console.error(`🔴 [CmsContent][getContentType] The item did not contain type information! (${contentLinkToString(link)})`);
|
|
45
40
|
throw new Error("The item did not contain type information");
|
|
@@ -47,20 +42,16 @@ export async function getContentType(link, gqlClient) {
|
|
|
47
42
|
return contentType;
|
|
48
43
|
}
|
|
49
44
|
export default getContentType;
|
|
50
|
-
const getContentTypeQuery = gql `query getContentType($key: String!, $version: String, $locale: [Locales])
|
|
45
|
+
const getContentTypeQuery = gql `query getContentType($key: [String!]!, $version: String, $locale: [Locales!], $changeset: String, $variation: VariationInput)
|
|
51
46
|
{
|
|
52
47
|
Content: _Content(
|
|
53
|
-
|
|
54
|
-
_metadata: {
|
|
55
|
-
key: { eq: $key }
|
|
56
|
-
version: { eq: $version }
|
|
57
|
-
}
|
|
58
|
-
},
|
|
48
|
+
ids: $key
|
|
59
49
|
locale: $locale
|
|
60
|
-
|
|
50
|
+
variation: $variation
|
|
51
|
+
where: { _metadata: { changeset: { eq: $changeset }, version: { eq: $version } } }
|
|
61
52
|
) {
|
|
62
|
-
|
|
63
|
-
_metadata {
|
|
53
|
+
item {
|
|
54
|
+
metadata: _metadata {
|
|
64
55
|
types
|
|
65
56
|
}
|
|
66
57
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-content-type.js","sourceRoot":"","sources":["../../../src/components/cms-content/get-content-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,EAAmE,MAAM,iCAAiC,CAAA;AAE1K,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AACrC,OAAO,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAIxF,MAAM,UAAU,kBAAkB,CAAI,KAAQ;
|
|
1
|
+
{"version":3,"file":"get-content-type.js","sourceRoot":"","sources":["../../../src/components/cms-content/get-content-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,EAAmE,MAAM,iCAAiC,CAAA;AAE1K,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AACrC,OAAO,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAIxF,MAAM,UAAU,kBAAkB,CAAI,KAAQ;IAC5C,MAAM,EAAE,GAAmB;QACzB,IAAI,EAAE,CAAe,WAAiF,EAAE,EAAE;YACxG,IAAI,CAAC,WAAW;gBACd,OAAO,KAAyC,CAAA;YAClD,OAAO,WAAW,CAAC,KAAK,CAA0B,CAAA;QACpD,CAAC;KACF,CAAA;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAqC,EAAE,SAA2B;IACrG,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,4GAA4G,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtJ,MAAM,IAAI,KAAK,CAAC,4EAA4E,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC1H,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,kFAAkF,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC5H,MAAM,IAAI,KAAK,CAAC,kDAAkD,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChG,CAAC;IAED,MAAM,YAAY,GAAG,6BAA6B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IACnE,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,OAAO,CAAyB,mBAAmB,EAAE,YAAY,CAAC,CAAA;IACtG,IAAI,WAAW,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpC,IAAI,SAAS,CAAC,KAAK;YACjB,OAAO,CAAC,KAAK,CAAC,uEAAuE,WAAW,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;QACjJ,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,oBAAoB,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;IACrF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,+EAA+E,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC1H,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,eAAe,cAAc,CAAA;AAa7B,MAAM,mBAAmB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;EAe7B,CAAA"}
|
|
@@ -5,8 +5,8 @@ import { validatesFragment, contentLinkToRequestVariables, isCmsComponentWithFra
|
|
|
5
5
|
import { getComponentLabel } from './resolve-component.js';
|
|
6
6
|
export function getContent(client, contentLink, Component, fragmentData, noDataLoad) {
|
|
7
7
|
const debug = client?.debug ?? false;
|
|
8
|
-
// Handle provided fragment
|
|
9
8
|
const componentLabel = getComponentLabel(Component);
|
|
9
|
+
// Handle provided fragment data
|
|
10
10
|
const fragmentProps = fragmentData ? Object.getOwnPropertyNames(fragmentData).filter(x => !CmsContentFragments.IContentDataProps.includes(x)) : [];
|
|
11
11
|
if (fragmentData && fragmentProps.length > 0) {
|
|
12
12
|
// Invalid fragment
|
|
@@ -22,8 +22,6 @@ export function getContent(client, contentLink, Component, fragmentData, noDataL
|
|
|
22
22
|
// Default mode, use fragment
|
|
23
23
|
}
|
|
24
24
|
else {
|
|
25
|
-
if (debug)
|
|
26
|
-
console.log("⚪ [CmsContent][getContent] Rendering CMS Component using fragment information", fragmentProps);
|
|
27
25
|
return (noDataLoad ? fragmentData : Promise.resolve(fragmentData));
|
|
28
26
|
}
|
|
29
27
|
}
|
|
@@ -33,11 +31,9 @@ export function getContent(client, contentLink, Component, fragmentData, noDataL
|
|
|
33
31
|
console.warn(`🟠 [CmsContent][getContent] No data present for inline content item, this may cause errors if your component expects certain fields to be present`);
|
|
34
32
|
return (noDataLoad ? fragmentData ?? {} : Promise.resolve(fragmentData ?? {}));
|
|
35
33
|
}
|
|
36
|
-
if
|
|
37
|
-
|
|
38
|
-
console.log(`⚪ [CmsContent][getContent] Component of type "${componentLabel}" was prohibited to load data`);
|
|
34
|
+
// Stop before running any Async operation if we're not loading data
|
|
35
|
+
if (noDataLoad)
|
|
39
36
|
return (noDataLoad ? {} : Promise.resolve({}));
|
|
40
|
-
}
|
|
41
37
|
// If we don't have a valid link, stop here
|
|
42
38
|
if (!isContentLink(contentLink)) {
|
|
43
39
|
if (debug)
|
|
@@ -49,69 +45,67 @@ export function getContent(client, contentLink, Component, fragmentData, noDataL
|
|
|
49
45
|
console.error(`🔴 [CmsContent][getContent] Data loading for "${componentLabel}" requires a GraphQL Client`);
|
|
50
46
|
throw new Error(`Data loading for "${componentLabel}" requires a GraphQL Client`);
|
|
51
47
|
}
|
|
48
|
+
if (isCmsComponentWithDataQuery(Component))
|
|
49
|
+
return getComponentDataFromQuery(Component, contentLink, client);
|
|
52
50
|
if (isCmsComponentWithFragment(Component))
|
|
53
51
|
return getComponentDataFromFragment(Component, contentLink, client).then(data => (data || {}));
|
|
54
|
-
if (isCmsComponentWithDataQuery(Component)) {
|
|
55
|
-
const gqlQuery = Component.getDataQuery();
|
|
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
|
-
}
|
|
64
|
-
// Assume there's no data load required for the component
|
|
65
|
-
if (client.debug)
|
|
66
|
-
console.log(`⚪ [CmsContent] Component of type "${componentLabel}" did not request loading of data`);
|
|
67
52
|
return Promise.resolve({});
|
|
68
53
|
}
|
|
69
54
|
export default getContent;
|
|
55
|
+
async function getComponentDataFromQuery(Component, contentLink, client) {
|
|
56
|
+
const gqlQuery = Component.getDataQuery();
|
|
57
|
+
const gqlVariables = contentLinkToRequestVariables(contentLink, client);
|
|
58
|
+
// Run the Query
|
|
59
|
+
const responseData = await client.request(gqlQuery, gqlVariables);
|
|
60
|
+
// See if this is a templated response, if so return the selected fields.
|
|
61
|
+
if (isTemplatedResponse(responseData)) {
|
|
62
|
+
const responseItem = responseData.data?.item;
|
|
63
|
+
// Transform CMS 12 results
|
|
64
|
+
if (client.currentOptiCmsSchema == OptiCmsSchema.CMS12 && responseItem._locale?.name) {
|
|
65
|
+
const metadata = responseItem._metadata ?? {};
|
|
66
|
+
metadata.locale = responseItem._locale?.name;
|
|
67
|
+
responseItem._metadata = metadata;
|
|
68
|
+
delete responseItem._locale;
|
|
69
|
+
}
|
|
70
|
+
return responseItem;
|
|
71
|
+
}
|
|
72
|
+
// Otherwise return the raw result
|
|
73
|
+
return responseData;
|
|
74
|
+
}
|
|
75
|
+
function isTemplatedResponse(responseData) {
|
|
76
|
+
if (!responseData || typeof (responseData) !== 'object')
|
|
77
|
+
return false;
|
|
78
|
+
const responseKey = responseData?.data?.item?._metadata?.key;
|
|
79
|
+
return typeof (responseKey) === 'string' && responseKey.length > 0;
|
|
80
|
+
}
|
|
70
81
|
async function getComponentDataFromFragment(Component, contentLink, client) {
|
|
71
82
|
const [name, fragment] = Component.getDataFragment();
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
const
|
|
76
|
-
//
|
|
77
|
-
if (client.currentOptiCmsSchema == OptiCmsSchema.CMS12)
|
|
78
|
-
fragmentVariables.version = tryParsePositiveInt(fragmentVariables.version);
|
|
79
|
-
// If the CMS Preview mode has been enabled, make sure we include that in the query
|
|
80
|
-
if (client.isPreviewEnabled())
|
|
81
|
-
fragmentVariables.changeset = client.getChangeset();
|
|
82
|
-
if (client.debug)
|
|
83
|
-
console.log(`⚪ [CmsContent] Component data fetching using variables: ${JSON.stringify(fragmentVariables)}`);
|
|
84
|
-
const fragmentResponse = await client.request(fragmentQuery, fragmentVariables);
|
|
83
|
+
const gqlQuery = client.currentOptiCmsSchema == OptiCmsSchema.CMS12 ? buildCms12Query(name, fragment) : buildCms13Query(name, fragment);
|
|
84
|
+
const gqlVariables = contentLinkToRequestVariables(contentLink, client);
|
|
85
|
+
// Run the Query
|
|
86
|
+
const fragmentResponse = await client.request(gqlQuery, gqlVariables);
|
|
87
|
+
// Check the result count
|
|
85
88
|
const totalItems = fragmentResponse.contentById.total || 0;
|
|
86
89
|
if (totalItems < 1)
|
|
87
|
-
throw new Error(`CmsContent expected to load exactly one content item of type ${name}, received ${totalItems} from Optimizely Graph. Content Item: ${JSON.stringify(
|
|
90
|
+
throw new Error(`CmsContent expected to load exactly one content item of type ${name}, received ${totalItems} from Optimizely Graph. Content Item: ${JSON.stringify(gqlVariables)}`);
|
|
88
91
|
if (totalItems > 1 && client.debug)
|
|
89
92
|
console.warn(`🟠 [CmsContent] Resolved ${totalItems} content items, expected only 1. Picked the first one`);
|
|
93
|
+
// Transform CMS 12 results
|
|
90
94
|
if (client.currentOptiCmsSchema == OptiCmsSchema.CMS12) {
|
|
91
95
|
fragmentResponse.contentById.items[0]._metadata.locale = fragmentResponse.contentById.items[0]._metadata.locale ?? fragmentResponse.contentById.items[0]._locale?.name;
|
|
92
96
|
if (fragmentResponse.contentById.items[0]._locale)
|
|
93
97
|
delete fragmentResponse.contentById.items[0]._locale;
|
|
94
98
|
}
|
|
99
|
+
// Return the item
|
|
95
100
|
return fragmentResponse.contentById.items[0];
|
|
96
101
|
}
|
|
97
|
-
function tryParsePositiveInt(value, defaultValue) {
|
|
98
|
-
try {
|
|
99
|
-
const versionNr = value ? Number.parseInt(value) : 0;
|
|
100
|
-
if (!isNaN(versionNr) && versionNr > 0)
|
|
101
|
-
return versionNr;
|
|
102
|
-
}
|
|
103
|
-
catch {
|
|
104
|
-
// Ignore
|
|
105
|
-
}
|
|
106
|
-
return defaultValue;
|
|
107
|
-
}
|
|
108
102
|
const buildCms12Query = (name, fragment) => `query getContentFragmentById($key: String!, $version: Int, $locale: [Locales!]) { contentById: Content(where: { ContentLink: { GuidValue: { eq: $key }, WorkId: { eq: $version } } }, locale: $locale) { total, items { _type: __typename, _metadata: ContentLink { key: GuidValue, version: WorkId }, _locale: Language { name: Name } ...${name} }}}\n${typeof (fragment) == 'string' ? fragment : print(fragment)}`;
|
|
109
|
-
const buildCms13Query = (name, fragment) => `query getContentFragmentById($key: String!, $version: String, $locale: [Locales!], $changeset: String) {
|
|
103
|
+
const buildCms13Query = (name, fragment) => `query getContentFragmentById($key: [String!]!, $version: String, $locale: [Locales!], $changeset: String, $variation: VariationInput) {
|
|
110
104
|
contentById: _Content(
|
|
111
|
-
|
|
112
|
-
_metadata: { key: { eq: $key }, version: { eq: $version }, changeset: { eq: $changeset } }
|
|
113
|
-
}
|
|
105
|
+
ids: $key
|
|
114
106
|
locale: $locale
|
|
107
|
+
variation: $variation
|
|
108
|
+
where: { _metadata: { changeset: { eq: $changeset }, version: { eq: $version } } }
|
|
115
109
|
) {
|
|
116
110
|
total
|
|
117
111
|
items {
|
|
@@ -121,6 +115,8 @@ const buildCms13Query = (name, fragment) => `query getContentFragmentById($key:
|
|
|
121
115
|
key
|
|
122
116
|
version
|
|
123
117
|
locale
|
|
118
|
+
variation
|
|
119
|
+
changeset
|
|
124
120
|
}
|
|
125
121
|
...${name}
|
|
126
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-content.js","sourceRoot":"","sources":["../../../src/components/cms-content/get-content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,EAAE,MAAM,SAAS,CAAA;AAExC,OAAO,EAAmE,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAErK,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAE/I,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,UAAU,UAAU,CAA8B,MAAoC,EAAE,WAAwD,EAAE,SAAwC,EAAE,YAAoD,EAAE,UAAgB;IACtQ,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"get-content.js","sourceRoot":"","sources":["../../../src/components/cms-content/get-content.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,8 +34,10 @@ export function resolveComponent(contentType, prefix, variant, ctx) {
|
|
|
34
34
|
console.error(`🔴 [CmsContent][resolveComponent] The content type ${JSON.stringify(contentType)}, with prefix ${JSON.stringify(prefix)} yielded an empty normalized type`);
|
|
35
35
|
throw new Error(`The content type ${JSON.stringify(contentType)}, with prefix ${JSON.stringify(prefix)} yielded an empty normalized type`);
|
|
36
36
|
}
|
|
37
|
-
if (isDebug)
|
|
38
|
-
|
|
37
|
+
/*if (isDebug)
|
|
38
|
+
console.log(
|
|
39
|
+
`⚪ [CmsContent][resolveComponent] Normalized content type ${JSON.stringify(contentType)} to ${myContentType}`
|
|
40
|
+
)*/
|
|
39
41
|
// Resolve component
|
|
40
42
|
const Component = Utils.resolveComponentType(factory, myContentType, variant ? [variant] : []);
|
|
41
43
|
// Handle component not found in factory
|
|
@@ -55,8 +57,11 @@ export function resolveComponent(contentType, prefix, variant, ctx) {
|
|
|
55
57
|
return ErrorComponent;
|
|
56
58
|
}
|
|
57
59
|
// Return the component
|
|
58
|
-
if (isDebug)
|
|
59
|
-
|
|
60
|
+
/*if (isDebug)
|
|
61
|
+
console.log(
|
|
62
|
+
'⚪ [CmsContent] Rendering item using component:',
|
|
63
|
+
getComponentLabel(Component as ComponentType)
|
|
64
|
+
)*/
|
|
60
65
|
return Component;
|
|
61
66
|
}
|
|
62
67
|
export default resolveComponent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-component.js","sourceRoot":"","sources":["../../../src/components/cms-content/resolve-component.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAS3C,MAAM,UAAU,iBAAiB,CAAC,iBAAwC;IACxE,IAAI,CAAC,iBAAiB;QAAE,OAAO,KAAK,CAAA;IACpC,IAAI,iBAAiB,CAAC,WAAW;QAAE,OAAO,iBAAiB,CAAC,WAAW,CAAA;IACvE,IAAI,OAAO,iBAAiB,IAAI,UAAU,IAAI,iBAAiB,CAAC,IAAI;QAClE,OAAO,iBAAiB,CAAC,IAAI,CAAA;IAC/B,OAAO,iBAAiB,CAAC,QAAQ,EAAE,CAAA;AACrC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAmD,EACnD,MAAiC,EACjC,OAAkC,EAClC,GAAmB;IAEnB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG,CAAA;IAE5C,sFAAsF;IACtF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,qFAAqF,CACtF,CAAA;QACD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACjD,CAAC;IAED,gKAAgK;IAChK,MAAM,aAAa,GAAG,MAAM;QAC1B,CAAC,CAAC,KAAK,CAAC,6BAA6B,CACjC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,EACrE,MAAM,CACP;QACH,CAAC,CAAC,KAAK,CAAC,oBAAoB,CACxB,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,EACrE,IAAI,CACL,CAAA;IAEL,mEAAmE;IACnE,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,OAAO;YACT,OAAO,CAAC,KAAK,CACX,sDAAsD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mCAAmC,CAC5J,CAAA;QACH,MAAM,IAAI,KAAK,CACb,oBAAoB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mCAAmC,CAC1H,CAAA;IACH,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"resolve-component.js","sourceRoot":"","sources":["../../../src/components/cms-content/resolve-component.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAS3C,MAAM,UAAU,iBAAiB,CAAC,iBAAwC;IACxE,IAAI,CAAC,iBAAiB;QAAE,OAAO,KAAK,CAAA;IACpC,IAAI,iBAAiB,CAAC,WAAW;QAAE,OAAO,iBAAiB,CAAC,WAAW,CAAA;IACvE,IAAI,OAAO,iBAAiB,IAAI,UAAU,IAAI,iBAAiB,CAAC,IAAI;QAClE,OAAO,iBAAiB,CAAC,IAAI,CAAA;IAC/B,OAAO,iBAAiB,CAAC,QAAQ,EAAE,CAAA;AACrC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAmD,EACnD,MAAiC,EACjC,OAAkC,EAClC,GAAmB;IAEnB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG,CAAA;IAE5C,sFAAsF;IACtF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,qFAAqF,CACtF,CAAA;QACD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACjD,CAAC;IAED,gKAAgK;IAChK,MAAM,aAAa,GAAG,MAAM;QAC1B,CAAC,CAAC,KAAK,CAAC,6BAA6B,CACjC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,EACrE,MAAM,CACP;QACH,CAAC,CAAC,KAAK,CAAC,oBAAoB,CACxB,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,EACrE,IAAI,CACL,CAAA;IAEL,mEAAmE;IACnE,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,OAAO;YACT,OAAO,CAAC,KAAK,CACX,sDAAsD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mCAAmC,CAC5J,CAAA;QACH,MAAM,IAAI,KAAK,CACb,oBAAoB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mCAAmC,CAC1H,CAAA;IACH,CAAC;IAED;;;SAGK;IAEL,oBAAoB;IACpB,MAAM,SAAS,GAAG,KAAK,CAAC,oBAAoB,CAC1C,OAAO,EACP,aAAa,EACb,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CACW,CAAA;IAErC,wCAAwC;IACxC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;YACrD,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;YACzB,CAAC,CAAC,aAAa,CAAA;QACjB,IAAI,OAAO;YACT,OAAO,CAAC,IAAI,CACV,sCAAsC,kBAAkB,2BAA2B,CACpF,CAAA;QACH,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;YAC1B,MAAM,cAAc,GAA8B,CAAC,EACjD,QAAQ,EACR,WAAW,GACZ,EAAE,EAAE,CAAC,CACJ,8BACE,eAAK,SAAS,EAAC,YAAY,qCACL,kBAAkB,oCAA+B,GAAG,EACvE,WAAW,EAAE,GAAG,IAAI,EAAE,eAAW,WAAW,EAAE,OAAO,IAAI,EAAE,IACxD,EACL,QAAQ,IACR,CACJ,CAAA;YACD,cAAc,CAAC,WAAW,GAAG,wBAAwB,CAAA;YACrD,OAAO,cAAc,CAAA;QACvB,CAAC;QACD,MAAM,cAAc,GAA8B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAA;QAC3E,cAAc,CAAC,WAAW,GAAG,wBAAwB,CAAA;QACrD,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,uBAAuB;IACvB;;;;SAIK;IACL,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,eAAe,gBAAgB,CAAA;AAQ/B,MAAM,UAAU,2BAA2B,CACzC,MAA6C;IAE7C,OAAO,MAAM,EAAE,WAAW,IAAI,wBAAwB,CAAA;AACxD,CAAC"}
|
|
@@ -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;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import getContentType from './get-content-type.js';
|
|
4
4
|
import getContent from './get-content.js';
|
|
5
|
-
import { AuthMode,
|
|
5
|
+
import { AuthMode, normalizeContentLinkWithLocale, } from '@remkoj/optimizely-graph-client';
|
|
6
6
|
import resolveComponent, { isComponentMissingComponent, } from './resolve-component.js';
|
|
7
7
|
import resolveContentType from './resolve-content-type.js';
|
|
8
8
|
/**
|
|
@@ -13,11 +13,11 @@ import resolveContentType from './resolve-content-type.js';
|
|
|
13
13
|
*/
|
|
14
14
|
export async function CmsContent({
|
|
15
15
|
// Own properties
|
|
16
|
-
contentType, contentTypePrefix, contentLink: rawContentLink, children, fragmentData, layoutProps, noDataLoad, variant, ctx, }) {
|
|
16
|
+
contentType, contentTypePrefix, contentLink: rawContentLink, children, fragmentData, layoutProps, noDataLoad, variant, ctx, editorComponentId, }) {
|
|
17
17
|
// Prepare context
|
|
18
18
|
const graphClient = ctx.client;
|
|
19
19
|
// Normalize the ContentLink
|
|
20
|
-
const contentLink =
|
|
20
|
+
const contentLink = normalizeContentLinkWithLocale(rawContentLink);
|
|
21
21
|
// Ensure we have the contentType
|
|
22
22
|
let myContentType = resolveContentType(contentType, fragmentData);
|
|
23
23
|
if (!myContentType) {
|
|
@@ -38,9 +38,6 @@ contentType, contentTypePrefix, contentLink: rawContentLink, children, fragmentD
|
|
|
38
38
|
: ctx.inPreviewMode
|
|
39
39
|
? 'Preview'
|
|
40
40
|
: 'Public';
|
|
41
|
-
/*console.log(
|
|
42
|
-
`👔 [CmsContent] ${mode} mode active for content with id: ${contentLinkToString(contentLink)} of type ${myContentType?.join('/') ?? 'unknown'}`
|
|
43
|
-
)*/
|
|
44
41
|
if ((ctx.inEditMode || ctx.inPreviewMode) &&
|
|
45
42
|
graphClient.currentAuthMode == AuthMode.Public)
|
|
46
43
|
console.warn(`🟠 [CmsContent] ${mode} mode active without an authenticated graphClient, this will cause problems. Make sure the context has an authenticated client.`);
|
|
@@ -51,8 +48,13 @@ contentType, contentTypePrefix, contentLink: rawContentLink, children, fragmentD
|
|
|
51
48
|
return _jsx(Component, { contentLink: contentLink });
|
|
52
49
|
// Ensure we have the data the Component requested
|
|
53
50
|
const data = await getContent(graphClient, contentLink, Component, fragmentData, noDataLoad);
|
|
51
|
+
const editProps = {
|
|
52
|
+
ctx,
|
|
53
|
+
currentContent: ctx.editableContent || undefined,
|
|
54
|
+
cmsId: editorComponentId || contentLink?.key,
|
|
55
|
+
};
|
|
54
56
|
// Output the actual component
|
|
55
|
-
return (_jsx(Component, { contentLink: contentLink, data: data, inEditMode: ctx.inEditMode, layoutProps: layoutProps, ctx: ctx, children: children }));
|
|
57
|
+
return (_jsx(Component, { contentLink: contentLink, data: data, inEditMode: ctx.inEditMode, layoutProps: layoutProps, editProps: editProps, ctx: ctx, children: children }));
|
|
56
58
|
}
|
|
57
59
|
export default CmsContent;
|
|
58
60
|
//# sourceMappingURL=rsc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsc.js","sourceRoot":"","sources":["../../../src/components/cms-content/rsc.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;
|
|
1
|
+
{"version":3,"file":"rsc.js","sourceRoot":"","sources":["../../../src/components/cms-content/rsc.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAIZ,OAAO,cAAc,MAAM,uBAAuB,CAAA;AAClD,OAAO,UAAU,MAAM,kBAAkB,CAAA;AACzC,OAAO,EACL,QAAQ,EACR,8BAA8B,GAE/B,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,8BAA8B,CAAC,cAAc,CAAC,CAAA;IAElE,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,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
|
|
@@ -34,12 +34,12 @@ export const CmsContentArea = ({ items = [], classMapper, fieldName, as: element
|
|
|
34
34
|
// Buld wrapper configuration
|
|
35
35
|
const contentAreaItemContainerProps = {
|
|
36
36
|
'data-epi-block-id': inEditMode && fieldName
|
|
37
|
-
? Utils.getContentEditId(contentLink)
|
|
37
|
+
? Utils.getContentEditId(contentLink)
|
|
38
38
|
: undefined,
|
|
39
39
|
'data-displayoption': item.displayOption || undefined,
|
|
40
40
|
'data-tag': item.tag || undefined,
|
|
41
41
|
'data-component': contentType?.at(0),
|
|
42
|
-
...contentItemElementProps,
|
|
42
|
+
...Utils.filterCmsComponentProps(contentItemElementProps),
|
|
43
43
|
className: `opti-content-area-item opti-content-area-item-${idx}${contentAreaItemClassName ? ' ' + contentAreaItemClassName : ''} ${classMapper ? classMapper(item.displayOption ?? 'default', contentType ?? null, idx) : ''}`,
|
|
44
44
|
};
|
|
45
45
|
const contentAraeItemContent = useSuspense ? (_jsx(Suspense, { fallback: fallback, children: _jsx(CmsContent, { contentLink: contentLink, contentType: contentType, fragmentData: fragmentData, contentTypePrefix: "Component", variant: variant, ctx: ctx }) })) : (_jsx(CmsContent, { contentLink: contentLink, contentType: contentType, fragmentData: fragmentData, contentTypePrefix: "Component", variant: variant, ctx: ctx }));
|
|
@@ -58,7 +58,7 @@ export const CmsContentArea = ({ items = [], classMapper, fieldName, as: element
|
|
|
58
58
|
className: `opti-content-area ${Array.isArray(additionalProps.className) ? additionalProps.className.join(' ') : (additionalProps.className ?? '')}`.trim(),
|
|
59
59
|
'data-epi-edit': inEditMode && fieldName ? fieldName : undefined,
|
|
60
60
|
'data-component': 'ContentArea',
|
|
61
|
-
...additionalProps,
|
|
61
|
+
...Utils.filterCmsComponentProps(additionalProps),
|
|
62
62
|
};
|
|
63
63
|
const contentAreaContainerChildrenTarget = itemsProperty ?? 'children';
|
|
64
64
|
let contentAreaContainerChildren = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/cms-content-area/index.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,EACL,8BAA8B,EAC9B,mBAAmB,GACpB,MAAM,uCAAuC,CAAA;AAO9C,OAAO,EAAE,QAAQ,EAAY,MAAM,OAAO,CAAA;AAS1C,YAAY;AAEZ;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAgC,CAGzD,EACA,KAAK,GAAG,EAA4C,EACpD,WAAW,EACX,SAAS,EACT,EAAE,EAAE,WAAW,EACf,aAAa,EACb,WAAW,EACX,WAAW,GAAG,KAAqD,EACnE,QAAQ,EACR,SAAS,EAAE,sBAAsB,GAAG,KAGtB,EACd,OAAO,EAEP,GAAG,EACH,UAAU,EAAE,UAAU,EAEtB,GAAG,eAAe,EACY,EAAE,EAAE;IAClC,MAAM,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,GAAG,CAAA;IAElC,8FAA8F;IAC9F,MAAM,aAAa,GACjB,CAAC,KAAK,IAAI,EAAE,CACb;SACE,MAAM,CAAC,wBAAwB,CAAC;SAChC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACjB,iDAAiD;QACjD,MAAM,WAAW,GAAG,8BAA8B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAClE,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC1E,MAAM,WAAW,GAAG,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACpE,MAAM,YAAY,GAAG,IAAI,CAAA;QAEzB,qCAAqC;QACrC,MAAM,EACJ,EAAE,EAAE,wBAAwB,GAAG,KAAK,EACpC,aAAa,EAAE,cAAc,GAAG,UAAU,EAC1C,SAAS,EAAE,0BAA0B,GAAG,KAAK,EAC7C,SAAS,EAAE,2BAA2B,EACtC,GAAG,uBAAuB,EAC3B,GAAG,WAAW,IAAI,EAAE,CAAA;QACrB,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,WAAW,CAAC,EAAE,CAAA;QACvF,MAAM,wBAAwB,GAAG,KAAK,CAAC,OAAO,CAC5C,2BAA2B,CAC5B;YACC,CAAC,CAAC,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC;YACvC,CAAC,CAAC,2BAA2B,CAAA;QAE/B,mCAAmC;QACnC,IAAI,0BAA0B;YAC5B,OAAO,WAAW,CAAC,CAAC,CAAC,CACnB,KAAC,QAAQ,IAA0B,QAAQ,EAAE,QAAQ,YACnD,KAAC,UAAU,IACT,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAC,WAAW,EAC7B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,GACR,IARW,kBAAkB,CAStB,CACZ,CAAC,CAAC,CAAC,CACF,KAAC,UAAU,IAET,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAC,WAAW,EAC7B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,IANH,kBAAkB,CAOvB,CACH,CAAA;QAEH,6BAA6B;QAC7B,MAAM,6BAA6B,GAAQ;YACzC,mBAAmB,EACjB,UAAU,IAAI,SAAS;gBACrB,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/cms-content-area/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -34,16 +34,22 @@ export type CmsEditableProps<FT extends ElementType> = PropsWithChildren<{
|
|
|
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 = false, 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,25 +33,31 @@ 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
|
}
|
|
48
52
|
: {
|
|
49
53
|
...props,
|
|
50
54
|
};
|
|
51
|
-
if (
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
+
if (typeof DefaultElement !== 'string') {
|
|
56
|
+
if (forwardCtx === true)
|
|
57
|
+
itemProps['ctx'] = ctx;
|
|
58
|
+
if (typeof forwardCtx === 'string' && forwardCtx.length > 0)
|
|
59
|
+
itemProps[forwardCtx] = ctx;
|
|
60
|
+
}
|
|
55
61
|
return _jsx(DefaultElement, { ...itemProps, children: children });
|
|
56
62
|
};
|
|
57
63
|
export default CmsEditable;
|
|
@@ -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,GAAG,KAAK,EAClB,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,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;QACvC,IAAI,UAAU,KAAK,IAAI;YAAE,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;QAC/C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YACzD,SAAS,CAAC,UAAU,CAAC,GAAG,GAAG,CAAA;IAC/B,CAAC;IAED,OAAO,KAAC,cAAc,OAAK,SAAS,YAAG,QAAQ,GAAkB,CAAA;AACnE,CAAC,CAAA;AAED,eAAe,WAAW,CAAA"}
|
package/dist/components/rsc.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export type { BaseStyleDefinition, ElementStyleDefinition, LayoutProps, LayoutPr
|
|
|
3
3
|
export { extractSettings, readSetting } from './cms-styles/index.js';
|
|
4
4
|
export * from './cms-styles/index.js';
|
|
5
5
|
export { isNode, isComponentNode, isComponentNodeOfType, isStructureNode, isElementNode, } from './visual-builder/functions.js';
|
|
6
|
+
export type { CompositionNode, CompositionNodeBase, CompositionComponentNode, CompositionStructureNode, CompositionComponentType, LeafPropsFactory, NodePropsFactory, } from './visual-builder/types.js';
|
|
7
|
+
export { StructureNodeTypes, } from './visual-builder/types.js';
|
|
6
8
|
export type { RichTextComponent, RichTextProps, RichTextNode, StringNode, TypedNode, NodeInput, } from './rich-text/index.js';
|
|
7
9
|
export { DefaultComponents as RichTextComponentDictionary, createHtmlComponent, } from './rich-text/components.js';
|
|
8
10
|
export { isNodeInput, isNonEmptyString, isRichTextNode, isStringNode, isText, isTypedNode, } from './rich-text/utils.js';
|
package/dist/components/rsc.js
CHANGED
|
@@ -3,6 +3,7 @@ export { extractSettings, readSetting } from './cms-styles/index.js';
|
|
|
3
3
|
export * from './cms-styles/index.js';
|
|
4
4
|
// Visual Builder items
|
|
5
5
|
export { isNode, isComponentNode, isComponentNodeOfType, isStructureNode, isElementNode, } from './visual-builder/functions.js';
|
|
6
|
+
export { StructureNodeTypes, } from './visual-builder/types.js';
|
|
6
7
|
export { DefaultComponents as RichTextComponentDictionary, createHtmlComponent, } from './rich-text/components.js';
|
|
7
8
|
export { isNodeInput, isNonEmptyString, isRichTextNode, isStringNode, isText, isTypedNode, } from './rich-text/utils.js';
|
|
8
9
|
//# sourceMappingURL=rsc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsc.js","sourceRoot":"","sources":["../../src/components/rsc.tsx"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAepB,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACpE,cAAc,uBAAuB,CAAA;AAErC,uBAAuB;AACvB,OAAO,EACL,MAAM,EACN,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,aAAa,GACd,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"rsc.js","sourceRoot":"","sources":["../../src/components/rsc.tsx"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAepB,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACpE,cAAc,uBAAuB,CAAA;AAErC,uBAAuB;AACvB,OAAO,EACL,MAAM,EACN,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,aAAa,GACd,MAAM,+BAA+B,CAAA;AAYtC,OAAO,EACL,kBAAkB,GACnB,MAAM,2BAA2B,CAAA;AAUlC,OAAO,EACL,iBAAiB,IAAI,2BAA2B,EAChD,mBAAmB,GACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,MAAM,EACN,WAAW,GACZ,MAAM,sBAAsB,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 = [
|
|
@@ -78,7 +78,7 @@ export const defaultNodePropsFactory = (node) => {
|
|
|
78
78
|
["Node", "Component", "Content"]
|
|
79
79
|
].filter(x => x);
|
|
80
80
|
const contentLink = { key: node.key ?? '', isInline: true };
|
|
81
|
-
const componentData = { __name: node.name };
|
|
81
|
+
const componentData = { __name: node.name, ...node.component };
|
|
82
82
|
const layoutData = {
|
|
83
83
|
type: node.type,
|
|
84
84
|
layoutType: node.layoutType,
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/components/visual-builder/functions.ts"],"names":[],"mappings":"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"}
|