@remkoj/optimizely-cms-react 6.0.0-pre8 → 6.0.0-rc.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.
Files changed (56) hide show
  1. package/LICENSE +12 -12
  2. package/README.md +3 -4
  3. package/dist/components/cms-content/get-content-type.js +8 -17
  4. package/dist/components/cms-content/get-content-type.js.map +1 -1
  5. package/dist/components/cms-content/get-content.js +46 -50
  6. package/dist/components/cms-content/get-content.js.map +1 -1
  7. package/dist/components/cms-content/resolve-component.js +8 -9
  8. package/dist/components/cms-content/resolve-component.js.map +1 -1
  9. package/dist/components/cms-content/rsc.d.ts +1 -1
  10. package/dist/components/cms-content/rsc.js +9 -7
  11. package/dist/components/cms-content/rsc.js.map +1 -1
  12. package/dist/components/cms-content/types.d.ts +46 -2
  13. package/dist/components/cms-content-area/index.js +3 -3
  14. package/dist/components/cms-content-area/index.js.map +1 -1
  15. package/dist/components/cms-content-area/types.d.ts +51 -10
  16. package/dist/components/cms-editable/index.d.ts +86 -17
  17. package/dist/components/cms-editable/index.js +20 -10
  18. package/dist/components/cms-editable/index.js.map +1 -1
  19. package/dist/components/rich-text/index.d.ts +2 -1
  20. package/dist/components/rich-text/index.js +6 -3
  21. package/dist/components/rich-text/index.js.map +1 -1
  22. package/dist/components/rsc-components.d.ts +154 -5
  23. package/dist/components/rsc-components.js +153 -5
  24. package/dist/components/rsc-components.js.map +1 -1
  25. package/dist/components/rsc.d.ts +2 -0
  26. package/dist/components/rsc.js +1 -0
  27. package/dist/components/rsc.js.map +1 -1
  28. package/dist/components/visual-builder/functions.js +10 -17
  29. package/dist/components/visual-builder/functions.js.map +1 -1
  30. package/dist/components/visual-builder/index.d.ts +3 -1
  31. package/dist/components/visual-builder/index.js +19 -16
  32. package/dist/components/visual-builder/index.js.map +1 -1
  33. package/dist/components/visual-builder/types.d.ts +8 -2
  34. package/dist/context/client.js +5 -2
  35. package/dist/context/client.js.map +1 -1
  36. package/dist/context/rsc.d.ts +1 -1
  37. package/dist/context/rsc.js +11 -42
  38. package/dist/context/rsc.js.map +1 -1
  39. package/dist/context/shared.js +2 -1
  40. package/dist/context/shared.js.map +1 -1
  41. package/dist/context/types.d.ts +3 -11
  42. package/dist/factory/default.d.ts +20 -3
  43. package/dist/factory/default.js +41 -27
  44. package/dist/factory/default.js.map +1 -1
  45. package/dist/factory/types.d.ts +24 -4
  46. package/dist/factory/undef.d.ts +7 -5
  47. package/dist/factory/undef.js +10 -4
  48. package/dist/factory/undef.js.map +1 -1
  49. package/dist/rsc.d.ts +24 -0
  50. package/dist/rsc.js +24 -0
  51. package/dist/rsc.js.map +1 -1
  52. package/dist/types.d.ts +37 -6
  53. package/dist/utilities.d.ts +56 -6
  54. package/dist/utilities.js +112 -14
  55. package/dist/utilities.js.map +1 -1
  56. package/package.json +19 -15
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.
package/README.md CHANGED
@@ -1,8 +1,7 @@
1
1
  # Optimizely SaaS CMS React Components
2
+
2
3
  > [!WARNING]
3
- > This documentation is for V3 and up. This version introduced a number of breaking changes - most notably it significantly simplified the exports.
4
- >
5
- > For some of the commonly used old exports it still contains placeholders, however those are deprecated and will be removed in a future version
4
+ > There'll be an update of Optimizely SaaS CMS that is incompatible with all SDK versions prior to 5.1.6. If you don't upgrade, you will see empty pages (main website) and "Component not found" messages (preview).
6
5
 
7
6
  This package provides two main entry points, depending on your build environment:
8
7
  - `@remkoj/optimizely-cms-react` This export contains the library, whith React components that use a client side context
@@ -46,4 +45,4 @@ An entry within the factory consists of the following fields:
46
45
  - ***type:*** The identifier of the content type, can either be an array of strings or a string. The implementation *should* normalize the type. The `DefaultComponentFactory` normalized to a string, using `/` as item separator.
47
46
  - ***component:*** The component to do the actual rendering of the data. *The factory is indifferent to the actual type, so this could be the output of `next/dynamic` to trigger bundle splitting in Next.js.*
48
47
  - ***useSuspense:*** When set to `true` the component will be wrapped in the `<Suspense></Suspense>` from React. Optional, the default value is `false`.
49
- - ***loader:*** The component to show while Suspense is awaiting the actual component. This component is given to the `fallback` property of `<Suspense>`. Optional, the default value is `undefined`.
48
+ - ***loader:*** The component to show while Suspense is awaiting the actual component. This component is given to the `fallback` property of `<Suspense>`. Optional, the default value is `undefined`.
@@ -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 items = gqlResponse.Content?.items;
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
- where: {
54
- _metadata: {
55
- key: { eq: $key }
56
- version: { eq: $version }
57
- }
58
- },
48
+ ids: $key
59
49
  locale: $locale
60
- limit: 1
50
+ variation: $variation
51
+ where: { _metadata: { changeset: { eq: $changeset }, version: { eq: $version } } }
61
52
  ) {
62
- items {
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;IAE5C,MAAM,EAAE,GAAoB;QAC1B,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;IAEnG,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,4GAA6G,mBAAmB,CAAC,IAAI,CAAE,EAAE,CAAC,CAAA;QACxJ,MAAM,IAAI,KAAK,CAAC,4EAA6E,mBAAmB,CAAC,IAAI,CAAE,EAAE,CAAC,CAAA;IAC9H,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,kFAAmF,mBAAmB,CAAC,IAAI,CAAE,EAAE,CAAC,CAAA;QAC9H,MAAM,IAAI,KAAK,CAAC,kDAAmD,mBAAmB,CAAC,IAAI,CAAE,EAAE,CAAC,CAAA;IACpG,CAAC;IAED,MAAM,YAAY,GAAG,6BAA6B,CAAC,IAAI,CAAC,CAAA;IACxD,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,OAAO,CAAyB,mBAAmB,EAAE,YAAY,CAAC,CAAA;IACtG,IAAI,WAAW,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAClC,IAAI,SAAS,CAAC,KAAK;YACf,OAAO,CAAC,KAAK,CAAC,uEAAwE,WAAW,CAAC,OAAO,EAAE,KAAK,IAAI,CAAE,YAAY,EAAE,YAAY,CAAC,CAAA;QACrJ,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,EAAE,KAAK,CAAA;IACxC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,yEAA0E,mBAAmB,CAAC,IAAI,CAAE,GAAG,CAAC,CAAA;QACtH,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;IAC3D,CAAC;IAED,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;IACpE,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+EAAgF,mBAAmB,CAAC,IAAI,CAAE,GAAG,CAAC,CAAA;QAC5H,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAChE,CAAC;IAED,OAAO,WAAW,CAAA;AACtB,CAAC;AAED,eAAe,cAAc,CAAA;AAa7B,MAAM,mBAAmB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;EAmB7B,CAAA"}
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,QAAQ,EAAE,KAAK,CAAC,CAAA;IACpF,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
@@ -17,13 +17,11 @@ export function getContent(client, contentLink, Component, fragmentData, noDataL
17
17
  }
18
18
  else if (client?.isPreviewEnabled() && isContentLink(contentLink) && !isInlineContentLink(contentLink)) {
19
19
  if (debug)
20
- console.warn("🔴 [CmsContent][getContent] Rendering shared instance, while in preview mode, falling back to loading for ", componentLabel);
20
+ console.warn(`🔴 [CmsContent][getContent] Rendering shared instance (${JSON.stringify(contentLink)}), while in preview mode, falling back to loading for ${componentLabel}`);
21
21
  contentLink.version = null;
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 (noDataLoad) {
37
- if (debug)
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
- if (client.debug)
73
- console.log(`⚪ [CmsContent] Component data fetching using fragment: ${name}`);
74
- const fragmentQuery = client.currentOptiCmsSchema == OptiCmsSchema.CMS12 ? buildCms12Query(name, fragment) : buildCms13Query(name, fragment);
75
- const fragmentVariables = contentLinkToRequestVariables(contentLink);
76
- // CMS 12 Requires the version number to be an Int
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(fragmentVariables)}`);
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
- where: {
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":"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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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"}
@@ -24,20 +24,16 @@ export function resolveComponent(contentType, prefix, variant, ctx) {
24
24
  console.error(`🔴 [CmsContent][resolveComponent] No content type factory registered in the context`);
25
25
  throw new Error('Empty factory on the context');
26
26
  }
27
- // Optimizely Graph stores the type in Most Significant first order, we need least significant first, also we're stripping out the common "Content" item from it
28
- const myContentType = prefix
29
- ? Utils.normalizeAndPrefixContentType(Array.isArray(contentType) ? [...contentType].reverse() : contentType, prefix)
30
- : Utils.normalizeContentType(Array.isArray(contentType) ? [...contentType].reverse() : contentType, true);
27
+ // Make sure that we normalize the input from graph into a string array
28
+ const myContentType = Utils.normalizeContentType(contentType, false);
31
29
  // Validate that we have a value to ask the factory a component for
32
30
  if (!myContentType || myContentType.length == 0) {
33
31
  if (isDebug)
34
32
  console.error(`🔴 [CmsContent][resolveComponent] The content type ${JSON.stringify(contentType)}, with prefix ${JSON.stringify(prefix)} yielded an empty normalized type`);
35
33
  throw new Error(`The content type ${JSON.stringify(contentType)}, with prefix ${JSON.stringify(prefix)} yielded an empty normalized type`);
36
34
  }
37
- if (isDebug)
38
- console.log(`⚪ [CmsContent][resolveComponent] Normalized content type ${JSON.stringify(contentType)} to ${myContentType}`);
39
35
  // Resolve component
40
- const Component = Utils.resolveComponentType(factory, myContentType, variant ? [variant] : []);
36
+ const Component = Utils.resolveComponentType(factory, myContentType, [variant, prefix].filter(Utils.isNotNullOrUndefined));
41
37
  // Handle component not found in factory
42
38
  if (!Component) {
43
39
  const contentTypeDisplay = Array.isArray(myContentType)
@@ -55,8 +51,11 @@ export function resolveComponent(contentType, prefix, variant, ctx) {
55
51
  return ErrorComponent;
56
52
  }
57
53
  // Return the component
58
- if (isDebug)
59
- console.log('⚪ [CmsContent] Rendering item using component:', getComponentLabel(Component));
54
+ /*if (isDebug)
55
+ console.log(
56
+ '⚪ [CmsContent] Rendering item using component:',
57
+ getComponentLabel(Component as ComponentType)
58
+ )*/
60
59
  return Component;
61
60
  }
62
61
  export default resolveComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-component.js","sourceRoot":"","sources":["../../../src/components/cms-content/resolve-component.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve-component.js","sourceRoot":"","sources":["../../../src/components/cms-content/resolve-component.tsx"],"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;
@@ -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, normalizeContentLink, } from '@remkoj/optimizely-graph-client';
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 = normalizeContentLink(rawContentLink);
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;;AAGZ,OAAO,cAAc,MAAM,uBAAuB,CAAA;AAClD,OAAO,UAAU,MAAM,kBAAkB,CAAA;AACzC,OAAO,EACL,QAAQ,EACR,oBAAoB,GAGrB,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,GAC8B;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,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,GAAG,EAAE,GAAG,YAEP,QAAQ,GACC,CACb,CAAA;AACH,CAAC;AAED,eAAe,UAAU,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"}
@@ -2,6 +2,42 @@ import { type PropsWithChildren, type ComponentType, type ComponentProps, type R
2
2
  import type { CmsComponent } from '../../types.js';
3
3
  import type { PropsWithContext, PropsWithOptionalContext } from "../../context/types.js";
4
4
  import type { ContentLinkWithLocale, InlineContentLinkWithLocale } from "@remkoj/optimizely-graph-client";
5
+ /**
6
+ * Properties for `CmsContent`.
7
+ *
8
+ * `CmsContent` resolves and renders a CMS template component for the item
9
+ * identified by `contentLink`.
10
+ *
11
+ * Property overview:
12
+ * - `contentLink` (required): content identity (`key` + optional locale).
13
+ * - `contentType`: explicit content type array; skips content-type lookup when set.
14
+ * - `contentTypePrefix`: template prefix (for example `Page`, `Component`).
15
+ * - `variant`: template variant suffix.
16
+ * - `fragmentData`: preloaded data for rendering.
17
+ * - `noDataLoad`: skip loading data from Graph.
18
+ * - `layoutProps`: layout metadata forwarded to resolved component.
19
+ * - `editorComponentId`: explicit editor id override for `editProps.cmsId`.
20
+ * - `ctx`: explicit CMS context override.
21
+ * - `children`: nested content passed through to resolved component.
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * <CmsContent
26
+ * contentLink={{ key: 'b9f76fd06f5d4e2e8d2cc3f010f7abf9', locale: 'en' }}
27
+ * contentTypePrefix="Page"
28
+ * />
29
+ * ```
30
+ *
31
+ * @example
32
+ * ```tsx
33
+ * <CmsContent
34
+ * contentLink={{ key: '4f9ac0f95ed147b6956c9f6bd4151f38' }}
35
+ * contentType={["Component", "HeroBlock"]}
36
+ * fragmentData={heroData}
37
+ * noDataLoad
38
+ * />
39
+ * ```
40
+ */
5
41
  export type CmsContentProps<LocalesType = string> = PropsWithChildren<PropsWithOptionalContext<{
6
42
  /**
7
43
  * The content type to render
@@ -11,6 +47,14 @@ export type CmsContentProps<LocalesType = string> = PropsWithChildren<PropsWithO
11
47
  * The content link to render
12
48
  */
13
49
  contentLink: ContentLinkWithLocale<LocalesType> | InlineContentLinkWithLocale<LocalesType>;
50
+ /**
51
+ * When provided this value will override the value for the `cmsId` field in
52
+ * the `editProps` the CmsComponent will provide to the component.
53
+ *
54
+ * This value is only needed when there's a difference between the Data ID and
55
+ * the ID expected by the editor.
56
+ */
57
+ editorComponentId?: string;
14
58
  /**
15
59
  * The initial, pre-loaded data. If set this will be used instead of having the
16
60
  * component fetching its' own data. So be sure that this leverages the fragment
@@ -23,7 +67,7 @@ export type CmsContentProps<LocalesType = string> = PropsWithChildren<PropsWithO
23
67
  [fieldname: string]: any;
24
68
  };
25
69
  /**
26
- * The native key to use when the element is part of an array
70
+ * React key to use when the component is rendered in a list.
27
71
  */
28
72
  key?: string;
29
73
  /**
@@ -38,7 +82,7 @@ export type CmsContentProps<LocalesType = string> = PropsWithChildren<PropsWithO
38
82
  */
39
83
  variant?: string;
40
84
  /**
41
- * Any layout properties inferred from the context
85
+ * Additional layout properties forwarded to the resolved CMS template.
42
86
  */
43
87
  layoutProps?: Record<string, any>;
44
88
  /**
@@ -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) || undefined
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,IAAI,SAAS;gBAClD,CAAC,CAAC,SAAS;YACf,oBAAoB,EAAE,IAAI,CAAC,aAAa,IAAI,SAAS;YACrD,UAAU,EAAE,IAAI,CAAC,GAAG,IAAI,SAAS;YACjC,gBAAgB,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;YACpC,GAAG,uBAAuB;YAC1B,SAAS,EAAE,iDAAiD,GAAG,GAAG,wBAAwB,CAAC,CAAC,CAAC,GAAG,GAAG,wBAAwB,CAAC,CAAC,CAAC,EAAE,IAAI,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,IAAI,SAAS,EAAE,WAAW,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;SAChO,CAAA;QACD,MAAM,sBAAsB,GAAgB,WAAW,CAAC,CAAC,CAAC,CACxD,KAAC,QAAQ,IAAC,QAAQ,EAAE,QAAQ,YAC1B,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,GACO,CACZ,CAAC,CAAC,CAAC,CACF,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,CACH,CAAA;QAED,sCAAsC;QACtC,IAAI,gCAAgC,GAAG,SAAS,CAAA;QAChD,IAAI,cAAc,IAAI,UAAU;YAC9B,gCAAgC,GAAG,sBAAsB,CAAA;;YAEzD,6BAA6B,CAAC,cAAc,CAAC,GAAG,sBAAsB,CAAA;QAExE,OAAO,CACL,KAAC,wBAAwB,OAEnB,6BAA6B,YAEhC,gCAAgC,IAH5B,kBAAkB,CAIE,CAC5B,CAAA;IACH,CAAC,CAAC,CAAA;IAEJ,IAAI,sBAAsB;QAAE,OAAO,4BAAG,aAAa,GAAI,CAAA;IAEvD,0BAA0B;IAC1B,MAAM,yBAAyB,GAAQ;QACrC,SAAS,EACP,qBAAqB,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE;QAClJ,eAAe,EAAE,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAChE,gBAAgB,EAAE,aAAa;QAC/B,GAAG,eAAe;KACnB,CAAA;IACD,MAAM,kCAAkC,GAAG,aAAa,IAAI,UAAU,CAAA;IACtE,IAAI,4BAA4B,GAAG,SAAS,CAAA;IAC5C,IAAI,kCAAkC,IAAI,UAAU;QAClD,4BAA4B,GAAG,aAAa,CAAA;;QAE5C,yBAAyB,CAAC,kCAAkC,CAAC;YAC3D,aAAa,CAAA;IACjB,MAAM,oBAAoB,GAAgB,WAAW,IAAI,KAAK,CAAA;IAC9D,OAAO,CACL,KAAC,oBAAoB,OAAK,yBAAyB,YAChD,4BAA4B,GACR,CACxB,CAAA;AACH,CAAC,CAAA;AAED,SAAS,wBAAwB,CAC/B,GAAsC;IAEtC,OAAO,CACL,OAAO,GAAG,IAAI,QAAQ;QACtB,GAAG,IAAI,IAAI;QACX,OAAO,GAAG,CAAC,SAAS,IAAI,QAAQ;QAChC,GAAG,CAAC,SAAS,IAAI,IAAI,CACtB,CAAA;AACH,CAAC;AAED,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/cms-content-area/index.tsx"],"names":[],"mappings":"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"}