@remkoj/optimizely-cms-react 1.0.4 → 2.0.0-pre2

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 (42) hide show
  1. package/dist/components/index.d.ts +1 -0
  2. package/dist/components/index.js +2 -0
  3. package/dist/components/index.js.map +1 -0
  4. package/dist/components/rich-text/index.d.ts +32 -0
  5. package/dist/components/rich-text/index.js +43 -0
  6. package/dist/components/rich-text/index.js.map +1 -0
  7. package/dist/factory.d.ts +2 -0
  8. package/dist/factory.js +11 -1
  9. package/dist/factory.js.map +1 -1
  10. package/dist/server/components/cms-content-area.js +10 -15
  11. package/dist/server/components/cms-content-area.js.map +1 -1
  12. package/dist/server/components/cms-content.d.ts +1 -1
  13. package/dist/server/components/cms-content.js +41 -24
  14. package/dist/server/components/cms-content.js.map +1 -1
  15. package/dist/server/components/get-content-type.js +2 -1
  16. package/dist/server/components/get-content-type.js.map +1 -1
  17. package/dist/server/components/index.d.ts +1 -0
  18. package/dist/server/components/index.js +1 -0
  19. package/dist/server/components/index.js.map +1 -1
  20. package/dist/server/components/queries.js +1 -1
  21. package/dist/server/components/queries.js.map +1 -1
  22. package/dist/server/components/types.d.ts +34 -24
  23. package/dist/server/components/visual-builder/Composition.d.ts +5 -0
  24. package/dist/server/components/visual-builder/Composition.js +37 -0
  25. package/dist/server/components/visual-builder/Composition.js.map +1 -0
  26. package/dist/server/components/visual-builder/functions.d.ts +5 -0
  27. package/dist/server/components/visual-builder/functions.js +20 -0
  28. package/dist/server/components/visual-builder/functions.js.map +1 -0
  29. package/dist/server/components/visual-builder/index.d.ts +4 -0
  30. package/dist/server/components/visual-builder/index.js +4 -0
  31. package/dist/server/components/visual-builder/index.js.map +1 -0
  32. package/dist/server/components/visual-builder/types.d.ts +37 -0
  33. package/dist/server/components/visual-builder/types.js +8 -0
  34. package/dist/server/components/visual-builder/types.js.map +1 -0
  35. package/dist/server/context.d.ts +8 -21
  36. package/dist/server/context.js +2 -5
  37. package/dist/server/context.js.map +1 -1
  38. package/dist/types.d.ts +19 -34
  39. package/dist/utilities.d.ts +1 -16
  40. package/dist/utilities.js +9 -48
  41. package/dist/utilities.js.map +1 -1
  42. package/package.json +17 -12
@@ -0,0 +1 @@
1
+ export * from './rich-text';
@@ -0,0 +1,2 @@
1
+ export * from './rich-text';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA"}
@@ -0,0 +1,32 @@
1
+ /// <reference types="react" />
2
+ import { type ComponentFactory } from "../../types";
3
+ export type RichTextProps = {
4
+ /**
5
+ * The component factory used for this rich text content
6
+ */
7
+ factory: ComponentFactory;
8
+ /**
9
+ * The rich text to render, provided as either a HTML string or JSON encoded
10
+ * structured data.
11
+ */
12
+ text: string | null | undefined;
13
+ /**
14
+ * The value for the "data-epi-edit" marker on the top level element
15
+ */
16
+ editId?: string | null;
17
+ /**
18
+ * The CSS Class to apply to the text container
19
+ */
20
+ className?: string;
21
+ };
22
+ export type RichTextTextNode = {
23
+ text: string;
24
+ };
25
+ export type RichTextData = {
26
+ type: string;
27
+ children?: Array<RichTextData | RichTextTextNode>;
28
+ };
29
+ export declare function isRichTextData(toTest: any): toTest is RichTextData;
30
+ export declare function isRichTextText(toTest: any): toTest is RichTextTextNode;
31
+ export declare const RichText: (props: RichTextProps) => JSX.Element;
32
+ export default RichText;
@@ -0,0 +1,43 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ export function isRichTextData(toTest) {
3
+ if (typeof (toTest) != 'object' || toTest == null)
4
+ return false;
5
+ return typeof toTest.type == 'string' && toTest.type.length > 0;
6
+ }
7
+ export function isRichTextText(toTest) {
8
+ if (typeof (toTest) != 'object' || toTest == null)
9
+ return false;
10
+ return typeof toTest.text == 'string' && toTest.text.length > 0;
11
+ }
12
+ export const RichText = ({ factory, text, editId, className }) => {
13
+ const debug = process.env.NODE_ENV != 'production';
14
+ let data = undefined;
15
+ try {
16
+ data = JSON.parse(text ?? 'undefined');
17
+ }
18
+ catch (e) { /* Ignore any error as we'll fall-back to HTML injection */ }
19
+ if (!data)
20
+ return _jsx("div", { dangerouslySetInnerHTML: { __html: text ?? '' }, className: className, "data-epi-edit": editId });
21
+ if (!isRichTextData(data)) {
22
+ if (debug)
23
+ console.warn(`[Rich Text] Invalid rich text data received: ${text}`);
24
+ return _jsx("div", { className: className, "data-epi-edit": editId });
25
+ }
26
+ return _jsx("div", { className: className, "data-epi-edit": editId, children: _jsx(RichTextElement, { factory: factory, ...data }) });
27
+ };
28
+ const RichTextElement = ({ type, children, text, factory, ...props }) => {
29
+ const debug = process.env.NODE_ENV != 'production';
30
+ if (!type && text)
31
+ return _jsx(_Fragment, { children: text });
32
+ if (!type) {
33
+ if (debug)
34
+ console.warn(`[Rich Text] Invalid rich text element data received: ${{ type, children, text, ...props }}`);
35
+ return _jsx(_Fragment, {});
36
+ }
37
+ const DivElement = 'div';
38
+ const Component = factory.resolve(type) ?? DivElement;
39
+ const uid = Math.round(Math.random() * 10000);
40
+ return _jsx(Component, { ...props, children: children?.map(child => _jsx(RichTextElement, { factory: factory, ...child }, `${uid}::${child.type ?? 'text'}`)) });
41
+ };
42
+ export default RichText;
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/rich-text/index.tsx"],"names":[],"mappings":";AAiCA,MAAM,UAAU,cAAc,CAAC,MAAW;IAEtC,IAAI,OAAM,CAAC,MAAM,CAAC,IAAI,QAAQ,IAAI,MAAM,IAAI,IAAI;QAC5C,OAAO,KAAK,CAAA;IAChB,OAAO,OAAQ,MAAuB,CAAC,IAAI,IAAI,QAAQ,IAAK,MAAuB,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;AACvG,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAW;IAEtC,IAAI,OAAM,CAAC,MAAM,CAAC,IAAI,QAAQ,IAAI,MAAM,IAAI,IAAI;QAC5C,OAAO,KAAK,CAAA;IAChB,OAAO,OAAQ,MAA2B,CAAC,IAAI,IAAI,QAAQ,IAAK,MAA2B,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;AAC/G,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAA2C,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;IAErG,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,YAAY,CAAA;IAClD,IAAI,IAAI,GAA8B,SAAS,CAAA;IAC/C,IAAI,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,WAAW,CAAC,CAAA;IAC1C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAC,2DAA2D,CAAA,CAAC;IAE1E,IAAI,CAAC,IAAI;QACL,OAAO,cAAK,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,SAAS,EAAG,SAAS,mBAAmB,MAAM,GAAS,CAAA;IAExH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,IAAI,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,gDAAiD,IAAK,EAAE,CAAC,CAAA;QACjF,OAAO,cAAK,SAAS,EAAG,SAAS,mBAAmB,MAAM,GAAS,CAAA;IACvE,CAAC;IAED,OAAO,cAAK,SAAS,EAAG,SAAS,mBAAmB,MAAM,YAAG,KAAC,eAAe,IAAC,OAAO,EAAG,OAAO,KAAQ,IAAI,GAAK,GAAM,CAAA;AAC1H,CAAC,CAAA;AAED,MAAM,eAAe,GAA+G,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAEhL,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,YAAY,CAAA;IAClD,IAAI,CAAC,IAAI,IAAI,IAAI;QACb,OAAO,4BAAI,IAAI,GAAK,CAAA;IAExB,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,IAAI,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,wDAAyD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,EAAG,EAAE,CAAC,CAAA;QACnH,OAAO,mBAAK,CAAA;IACpB,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAA;IACxB,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,UAAU,CAAA;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAA;IAC7C,OAAO,KAAC,SAAS,OAAM,KAAK,YACtB,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAC,eAAe,IAA8D,OAAO,EAAG,OAAO,KAAO,KAAK,IAApF,GAAG,GAAG,KAAO,KAAsB,CAAC,IAAI,IAAI,MAAO,EAAE,CAAmC,CAAC,GACjI,CAAA;AAChB,CAAC,CAAA;AAED,eAAe,QAAQ,CAAA"}
package/dist/factory.d.ts CHANGED
@@ -5,6 +5,8 @@ export declare const EmptyComponentHandle = "$$fragment$$";
5
5
  */
6
6
  export declare class DefaultComponentFactory implements ComponentFactory {
7
7
  private registry;
8
+ private dbg;
9
+ constructor();
8
10
  register(type: ComponentTypeHandle, component: ComponentType): void;
9
11
  registerAll(components: ComponentTypeDictionary): void;
10
12
  has(type: ComponentTypeHandle): boolean;
package/dist/factory.js CHANGED
@@ -1,13 +1,18 @@
1
1
  const MERGE_SYMBOL = '/';
2
- const DBG = process.env.DXP_DEBUG == '1';
3
2
  export const EmptyComponentHandle = '$$fragment$$';
4
3
  /**
5
4
  * The default implementation of the ComponentFactory iterface
6
5
  */
7
6
  export class DefaultComponentFactory {
8
7
  registry = {};
8
+ dbg;
9
+ constructor() {
10
+ this.dbg = process.env.OPTIMIZELY_DEBUG == '1';
11
+ }
9
12
  register(type, component) {
10
13
  type = processComponentTypeHandle(type);
14
+ if (this.dbg)
15
+ console.log(`➕ [DefaultComponentFactory] Adding ${type}`);
11
16
  this.registry[type] = component;
12
17
  }
13
18
  registerAll(components) {
@@ -15,10 +20,14 @@ export class DefaultComponentFactory {
15
20
  }
16
21
  has(type) {
17
22
  type = processComponentTypeHandle(type);
23
+ if (this.dbg)
24
+ console.log(`🔎 [DefaultComponentFactory] Checking for ${type}`);
18
25
  return Object.getOwnPropertyNames(this.registry).includes(type);
19
26
  }
20
27
  resolve(type) {
21
28
  type = processComponentTypeHandle(type);
29
+ if (this.dbg)
30
+ console.log(`⚡ [DefaultComponentFactory] Resolving ${type}`);
22
31
  if (Object.getOwnPropertyNames(this.registry).includes(type))
23
32
  return this.registry[type];
24
33
  return undefined;
@@ -40,6 +49,7 @@ const _static = {};
40
49
  * @returns The ComponentFactory
41
50
  */
42
51
  export const getFactory = () => {
52
+ const DBG = process.env.OPTIMIZELY_DEBUG == '1';
43
53
  if (!_static.factory) {
44
54
  if (DBG)
45
55
  console.log("⚪ [ComponentFactory] Creating new Component Factory");
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AACA,MAAM,YAAY,GAAG,GAAG,CAAA;AACxB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAA;AAExC,MAAM,CAAC,MAAM,oBAAoB,GAAI,cAAc,CAAA;AAEnD;;GAEG;AACH,MAAM,OAAO,uBAAuB;IACxB,QAAQ,GAA2C,EAAE,CAAA;IAE7D,QAAQ,CAAC,IAAyB,EAAE,SAAwB;QAExD,IAAI,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;IACnC,CAAC;IAED,WAAW,CAAC,UAAmC;QAE3C,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;IAC/D,CAAC;IAED,GAAG,CAAC,IAAyB;QAEzB,IAAI,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACnE,CAAC;IAED,OAAO,CAAC,IAAyB;QAE7B,IAAI,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YACxD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC9B,OAAO,SAAS,CAAA;IACpB,CAAC;CACJ;AAED,SAAS,0BAA0B,CAAC,MAA2B;IAE3D,IAAI,OAAM,CAAC,MAAM,CAAC,IAAI,QAAQ;QAC1B,OAAO,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAA;IACvD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;QACjE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC3H,MAAM,IAAI,KAAK,CAAC,kCAAmC,OAAM,CAAC,MAAM,CAAE,EAAE,CAAC,CAAA;AACzE,CAAC;AAED,MAAM,OAAO,GAAqC,EAAE,CAAA;AAEpD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAA4B,GAAG,EAAE;IACpD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACnB,IAAI,GAAG;YAAE,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAA;QAC3E,OAAO,CAAC,OAAO,GAAG,IAAI,uBAAuB,EAAE,CAAA;IACnD,CAAC;SAAM,CAAC;QACJ,IAAI,GAAG;YAAE,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAA;IACnF,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,CAAA;AAC1B,CAAC,CAAA;AACD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAA4C,CAAC,UAA4B,EAAE,EAAE;IAChG,OAAO,CAAC,OAAO,GAAG,UAAU,CAAA;AAChC,CAAC,CAAA;AACD,eAAe,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import CmsContent from './cms-content';
4
4
  import * as Utils from '../../utilities';
5
5
  import * as Errors from '../../errors';
6
6
  import createClient from '@remkoj/optimizely-graph-client';
7
+ import { normalizeContentLinkWithLocale, contentLinkToString } from '@remkoj/optimizely-graph-client/utils';
7
8
  import getServerContext from '../context';
8
9
  //#endregion
9
10
  /**
@@ -32,23 +33,23 @@ export const CmsContentArea = async ({ items, classMapper, className, fieldName,
32
33
  const actualItems = (items || []).filter(forValidContentAreaItems);
33
34
  const componentData = await Promise.all(actualItems.map(async (item, idx) => {
34
35
  // Prepare data from received content area format
35
- const contentLink = Utils.normalizeContentLinkWithLocale({ ...item.item, locale: locale });
36
+ const contentLink = normalizeContentLinkWithLocale(item._metadata);
36
37
  if (!contentLink)
37
- throw new Errors.InvalidContentLinkError({ ...item.item, locale: locale });
38
- const contentType = Utils.normalizeContentType(item.item?.data?.contentType);
39
- const fragmentData = item.item?.data || undefined;
38
+ throw new Errors.InvalidContentLinkError(item._metadata);
39
+ const contentType = Utils.normalizeContentType(item._metadata.types);
40
+ const fragmentData = item;
40
41
  // Read element wrapper configuration
41
42
  const { as: contentItemElement, className: contentItemBaseClassName, itemsProperty: contentItemTarget, ...contentItemElementProps } = itemWrapper ?? {};
42
43
  // Generate element wrapper properties
43
- const contentAreaItemContainerKey = `ContentAreaItem-${idx}-${contentLink.guidValue}-${contentLink.id}-${contentLink.workId}`;
44
+ const contentAreaItemContainerKey = `ContentAreaItem-${idx}-${contentLinkToString(contentLink)}`;
44
45
  const contentAreaItemContainerProps = {
45
46
  className: `opti-content-area-item opti-content-area-item-${idx}${contentItemBaseClassName ? ' ' + contentItemBaseClassName : ''} ${classMapper ? classMapper(item.displayOption ?? 'default', contentType ?? null, idx) : ""}`,
46
- "data-epi-block-id": inEditMode && fieldName ? contentLink?.id || undefined : undefined,
47
+ "data-epi-block-id": inEditMode && fieldName ? Utils.getContentEditId(contentLink) || undefined : undefined,
47
48
  "data-displayoption": item.displayOption || undefined,
48
49
  "data-tag": item.tag || undefined,
49
50
  ...contentItemElementProps
50
51
  };
51
- const contentAraeItemContent = await CmsContent({ contentLink, contentType, fragmentData, client: gqlClient, factory, outputEditorWarning: inEditMode, contentTypePrefix: "Block" });
52
+ const contentAraeItemContent = await CmsContent({ contentLink, contentType, fragmentData, client: gqlClient, factory, outputEditorWarning: inEditMode, contentTypePrefix: "Component" });
52
53
  // Inject the element into the wrapper
53
54
  const childrenTarget = contentItemTarget || "children";
54
55
  let contentAreaItemContainerChildren = undefined;
@@ -75,19 +76,13 @@ export const CmsContentArea = async ({ items, classMapper, className, fieldName,
75
76
  return _jsx(ContentAreaContainer, { ...contentAreaContainerProps, children: contentAreaContainerChildren });
76
77
  };
77
78
  function forValidContentAreaItems(itm) {
78
- if (itm == undefined || itm == null)
79
- return false;
80
- if (itm.item == undefined || itm.item == null)
81
- return false;
82
- if (itm.item.data == undefined || itm.item.data == null)
83
- return typeof (itm.item.guidValue) == 'string' && itm.item.guidValue.length > 0;
84
- return itm.item.guidValue == itm.item.data.id?.guidValue;
79
+ return typeof (itm) == 'object' && itm != null && typeof (itm._metadata) == 'object' && itm._metadata != null;
85
80
  }
86
81
  export async function processContentAreaItems(items, locale) {
87
82
  const actualItems = (items ?? []).filter(Utils.isNotNullOrUndefined);
88
83
  return Promise.all(actualItems.map(async (item, idx) => {
89
84
  // Prepare data from received content area format
90
- const contentLink = Utils.normalizeContentLinkWithLocale({ ...item.item, locale: locale });
85
+ const contentLink = normalizeContentLinkWithLocale({ ...item.item, locale: locale });
91
86
  if (!contentLink)
92
87
  throw new Errors.InvalidContentLinkError({ ...item.item, locale: locale });
93
88
  const contentType = Utils.normalizeContentType(item.item?.data?.contentType);
@@ -1 +1 @@
1
- {"version":3,"file":"cms-content-area.js","sourceRoot":"","sources":["../../../src/server/components/cms-content-area.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cms-content-area.js","sourceRoot":"","sources":["../../../src/server/components/cms-content-area.tsx"],"names":[],"mappings":"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"}
@@ -8,5 +8,5 @@ export type { CmsContentProps } from './types';
8
8
  * @param param0
9
9
  * @returns
10
10
  */
11
- export declare const CmsContent: ({ contentType, contentTypePrefix, contentLink, children, fragmentData }: CmsContentProps) => Promise<JSX.Element>;
11
+ export declare const CmsContent: <LocalesType = string>({ contentType, contentTypePrefix, contentLink: rawContentLink, children, fragmentData }: CmsContentProps<LocalesType>) => Promise<JSX.Element>;
12
12
  export default CmsContent;
@@ -1,8 +1,8 @@
1
- import { jsxs as _jsxs, Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import 'server-only';
3
3
  import getContentType from './get-content-type';
4
4
  import getServerContext from '../context';
5
- import createClient, { AuthMode } from '@remkoj/optimizely-graph-client';
5
+ import createClient, { AuthMode, normalizeContentLink, contentLinkToString, isInlineContentLink } from '@remkoj/optimizely-graph-client';
6
6
  import { print } from 'graphql';
7
7
  import * as Utils from "../../utilities";
8
8
  import * as Queries from './queries';
@@ -12,29 +12,45 @@ import * as Queries from './queries';
12
12
  * @param param0
13
13
  * @returns
14
14
  */
15
- export const CmsContent = async ({ contentType, contentTypePrefix, contentLink, children, fragmentData }) => {
15
+ export const CmsContent = async ({ contentType, contentTypePrefix, contentLink: rawContentLink, children, fragmentData }) => {
16
16
  const context = getServerContext();
17
+ const contentLink = normalizeContentLink(rawContentLink);
18
+ if (!contentLink) {
19
+ if (context.isDebugOrDevelopment)
20
+ console.warn(`🟠 [CmsContent] Invalid content link provided, not rendering anything`, rawContentLink);
21
+ return _jsx(_Fragment, {});
22
+ }
17
23
  if (context.isDebugOrDevelopment && !context.client)
18
- console.warn(`🟠 [CmsContent] No Content Graph client provided with ${JSON.stringify(contentLink)}, this will cause problems with edit mode!`);
24
+ console.warn(`🟠 [CmsContent] No Content Graph client provided with ${contentLinkToString(contentLink)}, this will cause problems with edit mode!`);
19
25
  // Parse & prepare props
20
- const inEditMode = context.inEditMode && context.isEditableContent(contentLink);
26
+ const isInline = isInlineContentLink(contentLink);
21
27
  const outputEditorWarning = context.forceEditorWarnings;
22
28
  const factory = context.factory;
29
+ if (!factory) {
30
+ console.error(`🔴 [CmsContent] No content type factory registered in the context`);
31
+ throw new Error("Empty factory on the context");
32
+ }
23
33
  const client = context.client ?? createClient();
24
- const isInlineBlock = Utils.isInlineContentLink(contentLink);
25
- if (context.isDebug && inEditMode)
26
- console.log(`👔 [CmsContent] Edit mode active for content with id: ${JSON.stringify(contentLink)}`);
27
- if (context.isDebug && inEditMode && client.currentAuthMode == AuthMode.Public)
34
+ if (context.isDebug && context.inEditMode)
35
+ console.log(`👔 [CmsContent] Edit mode active for content with id: ${contentLinkToString(contentLink)}`);
36
+ if (context.isDebug && context.inEditMode && client.currentAuthMode == AuthMode.Public)
28
37
  console.warn(`🟠 [CmsContent] Edit mode active without an authenticated client, this will cause problems`);
29
38
  // DEBUG Tracing
30
39
  if (context.isDebug)
31
- console.log("⚪ [CmsContent] Rendering CMS Content for:", JSON.stringify(contentType), isInlineBlock ? "Inline content" : JSON.stringify({ id: contentLink.id, workId: contentLink.workId, guidValue: contentLink.guidValue, locale: contentLink.locale }), inEditMode ? "edit-mode" : "published");
40
+ console.log("⚪ [CmsContent] Rendering CMS Content for:", JSON.stringify(contentType), contentLinkToString(contentLink), context.inEditMode ? "edit-mode" : "published");
32
41
  // Ensure we have a content type to work with
33
- if (!isInlineBlock && !contentType) {
42
+ if (!contentType) {
43
+ if (isInline) {
44
+ console.error(`🔴 [CmsContent] No content type provided for content ${contentLinkToString(contentLink)}, content types cannot be resolved for inline content`);
45
+ throw new Error("Unable to render Inline CMS Content without Content Type information");
46
+ }
34
47
  if (context.isDebugOrDevelopment)
35
- console.warn(`🟠 [CmsContent] No content type provided for content ${JSON.stringify({ id: contentLink.id, workId: contentLink.workId, guidValue: contentLink.guidValue, locale: contentLink.locale })}, this causes an additional GraphQL query to resolve the ContentType`);
48
+ console.warn(`🟠 [CmsContent] No content type provided for content ${contentLinkToString(contentLink)}, this causes an additional GraphQL query to resolve the ContentType`);
36
49
  contentType = await getContentType(contentLink, client);
37
50
  }
51
+ // 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
52
+ if (Array.isArray(contentType))
53
+ contentType = contentType.filter(x => x.toLowerCase() != "content").reverse();
38
54
  // Apply the content-type prefix if needed
39
55
  if (Array.isArray(contentType) && Utils.isNonEmptyString(contentTypePrefix) && contentType.length > 0 && contentType[0] != contentTypePrefix) {
40
56
  if (context.isDebug)
@@ -47,7 +63,7 @@ export const CmsContent = async ({ contentType, contentTypePrefix, contentLink,
47
63
  if (context.isDebugOrDevelopment) {
48
64
  console.warn(`🟠 [CmsContent] Component of type "${contentType?.join('/') ?? ""}" not resolved by factory`);
49
65
  }
50
- if (context.isDebug || inEditMode || outputEditorWarning) {
66
+ if (context.isDebug || context.inEditMode || outputEditorWarning) {
51
67
  const errorMsg = _jsxs("div", { className: 'opti-error', children: ["Component of type \"", contentType?.join('/') ?? "", "\" not resolved by factory"] });
52
68
  return children ? _jsxs(_Fragment, { children: [errorMsg, children] }) : errorMsg;
53
69
  }
@@ -64,11 +80,12 @@ export const CmsContent = async ({ contentType, contentTypePrefix, contentLink,
64
80
  console.error("🔴 [CmsContent] Invalid fragment data received for ", Component.displayName ?? contentType?.join("/") ?? "[Undetermined component]");
65
81
  return _jsx(_Fragment, {});
66
82
  }
67
- return _jsx(Component, { inEditMode: inEditMode, contentLink: contentLink, data: fragmentData || {}, client: client });
83
+ return _jsx(Component, { contentLink: contentLink, data: fragmentData || {}, inEditMode: context.inEditMode });
84
+ }
85
+ if (isInline) {
86
+ console.error(`🔴 [CmsContent] No data for content ${contentLinkToString(contentLink)}, data cannot be resolved for inline content`);
87
+ throw new Error(`Unable to render Inline CMS Content without data. (Content Type: ${Component?.displayName ?? contentType?.join('/') ?? "Unknown"}; Content Link: ${contentLinkToString(contentLink)}; Data keys: ${Object.getOwnPropertyNames(fragmentData ?? {}).join(", ")})`);
68
88
  }
69
- // If we don't have previously loaded data we cannot load content for inline blocks
70
- if (isInlineBlock)
71
- return (context.isDebug || inEditMode || outputEditorWarning) ? _jsx("div", { className: 'opti-error', children: "Inline blocks cannot be loaded individually" }) : _jsx(_Fragment, {});
72
89
  // Render using included query
73
90
  if (Utils.isCmsComponentWithDataQuery(Component)) {
74
91
  const gqlQuery = Component.getDataQuery();
@@ -78,29 +95,29 @@ export const CmsContent = async ({ contentType, contentTypePrefix, contentLink,
78
95
  const gqlResponse = await client.request(gqlQuery, gqlVariables);
79
96
  if (context.isDebug)
80
97
  console.log("⚪ [CmsContent] Component request the following data:", gqlResponse);
81
- return _jsx(Component, { inEditMode: inEditMode, contentLink: contentLink, data: gqlResponse, client: client });
98
+ return _jsx(Component, { contentLink: contentLink, data: gqlResponse, inEditMode: context.inEditMode });
82
99
  }
83
100
  // Render using included fragment
84
101
  if (Utils.isCmsComponentWithFragment(Component)) {
85
102
  const [name, fragment] = Component.getDataFragment();
86
- const fragmentQuery = `query getContentFragmentById($id: Int!, $workId: Int, $guidValue: String, $locale: [Locales]!, $isCommonDraft: Boolean ) { contentById: Content( where: { ContentLink: { Id: { eq: $id }, WorkId: { eq: $workId }, GuidValue: { eq: $guidValue } },IsCommonDraft: {eq: $isCommonDraft} }, orderBy: { Status: ASC }, locale: $locale, limit: 1 ) { total items { contentType: ContentType id: ContentLink { id: Id, workId: WorkId, guidValue: GuidValue } locale: Language { name: Name } ...${name} } } } ${print(fragment)}`;
103
+ if (context.isDebug)
104
+ console.log(`⚪ [CmsContent] Component data fetching using fragment: ${name}`);
105
+ const fragmentQuery = `query getContentFragmentById($key: String!, $version: String, $locale: [Locales!]) {contentById: Content(where: {_metadata: {key: { eq: $key }, version: { eq: $version }}} locale: $locale) { total, items { _type: __typename, _metadata { key, version, locale } ...${name} }}} ${print(fragment)}`;
87
106
  const fragmentVariables = Utils.contentLinkToRequestVariables(contentLink);
88
- if (!fragmentVariables?.workId && inEditMode)
89
- fragmentVariables.isCommonDraft = true;
90
107
  if (context.isDebug)
91
- console.log(`⚪ [CmsContent] Component data fetching using fragment ${name}, with variables: ${JSON.stringify(fragmentVariables)}`);
108
+ console.log(`⚪ [CmsContent] Component data fetching using variables: ${JSON.stringify(fragmentVariables)}`);
92
109
  const fragmentResponse = await client.request(fragmentQuery, fragmentVariables);
93
110
  const totalItems = fragmentResponse.contentById.total || 0;
94
111
  if (totalItems < 1)
95
112
  throw new Error(`CmsContent expected to load exactly one content item of type ${name}, received ${totalItems} from Optimizely Graph. Content Item: ${JSON.stringify(fragmentVariables)}`);
96
113
  if (totalItems > 1 && context.isDebug)
97
114
  console.warn(`🟠 [CmsContent] Resolved ${totalItems} content items, expected only 1. Picked the first one`);
98
- return _jsx(Component, { inEditMode: inEditMode, contentLink: contentLink, data: fragmentResponse.contentById.items[0], client: client });
115
+ return _jsx(Component, { contentLink: contentLink, data: fragmentResponse.contentById.items[0], inEditMode: context.inEditMode });
99
116
  }
100
117
  // Assume there's no server side prepared data needed for the component
101
118
  if (context.isDebug)
102
119
  console.log(`⚪ [CmsContent] Component of type "${contentType?.join('/') ?? Component.displayName ?? '?'}" did not request pre-loading of data`);
103
- return _jsx(Component, { inEditMode: inEditMode, contentLink: contentLink, data: fragmentData || {}, client: client });
120
+ return _jsx(Component, { contentLink: contentLink, data: fragmentData || {}, inEditMode: context.inEditMode });
104
121
  };
105
122
  export default CmsContent;
106
123
  //# sourceMappingURL=cms-content.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cms-content.js","sourceRoot":"","sources":["../../../src/server/components/cms-content.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cms-content.js","sourceRoot":"","sources":["../../../src/server/components/cms-content.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { gql } from 'graphql-request';
2
2
  import * as Utils from "../../utilities";
3
+ import { isContentLink } from "@remkoj/optimizely-graph-client/utils";
3
4
  const DEBUG = false;
4
5
  /**
5
6
  * Resolve the ContentType of an Optimizely CMS Component, identified by its content link
@@ -9,7 +10,7 @@ const DEBUG = false;
9
10
  * @returns The ContentType, or undefined if it cannot be resolved
10
11
  */
11
12
  export async function getContentType(link, gqlClient) {
12
- if ((!link.id || link.id < 1) && (!link.guidValue || link.guidValue == ""))
13
+ if (!isContentLink(link))
13
14
  throw new Error("Cannot dynamically determine the content type of an inline block");
14
15
  const gqlQueryVars = Utils.contentLinkToRequestVariables(link);
15
16
  const gqlResponse = await gqlClient.request(getContentTypeQuery, gqlQueryVars);
@@ -1 +1 @@
1
- {"version":3,"file":"get-content-type.js","sourceRoot":"","sources":["../../../src/server/components/get-content-type.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AAExC,MAAM,KAAK,GAAG,KAAK,CAAA;AAEnB;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAA2B,EAAE,SAA2B;IAEzF,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;IACvF,MAAM,YAAY,GAAG,KAAK,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAA;IAC9D,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,KAAK;YACL,OAAO,CAAC,KAAK,CAAC,uDAAwD,WAAW,CAAC,OAAO,EAAE,KAAK,IAAI,CAAE,YAAY,EAAE,YAAY,CAAC,CAAA;QACrI,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;QAC3B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;IAE3D,MAAM,WAAW,GAAG,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;IACrE,IAAI,CAAC,WAAW;QACZ,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAEhE,OAAO,WAAW,CAAA;AACtB,CAAC;AAED,eAAe,cAAc,CAAA;AAW7B,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;EAwBpC,CAAA"}
1
+ {"version":3,"file":"get-content-type.js","sourceRoot":"","sources":["../../../src/server/components/get-content-type.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAA;AAErE,MAAM,KAAK,GAAG,KAAK,CAAA;AAEnB;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAA2B,EAAE,SAA2B;IAEzF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;IACvF,MAAM,YAAY,GAAG,KAAK,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAA;IAC9D,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,KAAK;YACL,OAAO,CAAC,KAAK,CAAC,uDAAwD,WAAW,CAAC,OAAO,EAAE,KAAK,IAAI,CAAE,YAAY,EAAE,YAAY,CAAC,CAAA;QACrI,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;QAC3B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;IAE3D,MAAM,WAAW,GAAG,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;IACrE,IAAI,CAAC,WAAW;QACZ,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAEhE,OAAO,WAAW,CAAA;AACtB,CAAC;AAED,eAAe,cAAc,CAAA;AAW7B,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;EAwBpC,CAAA"}
@@ -1,2 +1,3 @@
1
1
  export * from './cms-content';
2
2
  export * from './cms-content-area';
3
+ export * from './visual-builder';
@@ -1,3 +1,4 @@
1
1
  export * from './cms-content';
2
2
  export * from './cms-content-area';
3
+ export * from './visual-builder';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { gql } from 'graphql-request';
2
2
  export const CmsContentFragments = {
3
- IContentDataProps: ["contentType", "id", "locale", "path", "__typename"],
3
+ IContentDataProps: ["_metadata", "_type", "__typename"],
4
4
  ContentLink: gql `fragment ContentLink on ContentModelReference {
5
5
  id: Id,
6
6
  workId: WorkId,
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/server/components/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAErC,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,iBAAiB,EAAE,CAAC,aAAa,EAAC,IAAI,EAAC,QAAQ,EAAC,MAAM,EAAC,YAAY,CAAC;IACpE,WAAW,EAAE,GAAG,CAAA;;;;MAId;IACF,iBAAiB,EAAE,GAAG,CAAA;;;;MAIpB;IACF,YAAY,EAAE,GAAG,CAAA;;;;;;;;;MASf;IACF,mBAAmB,EAAE,GAAG,CAAA;;;;;;;;MAQtB;IACF,8BAA8B,EAAE,GAAG,CAAA;;;;;;;;MAQjC;IACF,wBAAwB,EAAE,GAAG,CAAA;;;;;;;;MAQ3B;IACF,YAAY,EAAE,GAAG,CAAA;;;;;;;;;;;MAWf;IACF,SAAS,EAAE,GAAG,CAAA;;;;;;;;;MASZ;IACF,eAAe,EAAE,GAAG,CAAA;;;;;;;;;MASlB;IACF,SAAS,EAAE,GAAG,CAAA;;MAEZ;IACF,QAAQ,EAAE,GAAG,CAAA;;MAEX;CACL,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,mBAAmB,EAAE,GAAG,CAAA;;;;;;;;;;;IAWtB;CACH,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;EAmB/B,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;EAiBjC,CAAA"}
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/server/components/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAErC,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,iBAAiB,EAAE,CAAC,WAAW,EAAC,OAAO,EAAC,YAAY,CAAC;IACrD,WAAW,EAAE,GAAG,CAAA;;;;MAId;IACF,iBAAiB,EAAE,GAAG,CAAA;;;;MAIpB;IACF,YAAY,EAAE,GAAG,CAAA;;;;;;;;;MASf;IACF,mBAAmB,EAAE,GAAG,CAAA;;;;;;;;MAQtB;IACF,8BAA8B,EAAE,GAAG,CAAA;;;;;;;;MAQjC;IACF,wBAAwB,EAAE,GAAG,CAAA;;;;;;;;MAQ3B;IACF,YAAY,EAAE,GAAG,CAAA;;;;;;;;;;;MAWf;IACF,SAAS,EAAE,GAAG,CAAA;;;;;;;;;MASZ;IACF,eAAe,EAAE,GAAG,CAAA;;;;;;;;;MASlB;IACF,SAAS,EAAE,GAAG,CAAA;;MAEZ;IACF,QAAQ,EAAE,GAAG,CAAA;;MAEX;CACL,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,mBAAmB,EAAE,GAAG,CAAA;;;;;;;;;;;IAWtB;CACH,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;EAmB/B,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;EAiBjC,CAAA"}
@@ -1,8 +1,8 @@
1
1
  import type { SuspenseProps, PropsWithChildren } from "react";
2
- import type { ContentLinkWithLocale, ComponentFactory, ContentType } from "../../types";
2
+ import type { ComponentFactory, ContentType } from "../../types";
3
3
  import type { ElementChildrenProps, ElementProps, ElementType, PropTypeIfPropExists, MayBeArray, TypeIfPropExists } from '../type-utils';
4
- import type { IOptiGraphClient } from "@remkoj/optimizely-graph-client";
5
- export type CmsContentProps = PropsWithChildren<{
4
+ import type { IOptiGraphClient, ContentLinkWithLocale, InlineContentLinkWithLocale } from "@remkoj/optimizely-graph-client";
5
+ export type CmsContentProps<LocalesType = string> = PropsWithChildren<{
6
6
  /**
7
7
  * The content type to render
8
8
  */
@@ -10,7 +10,7 @@ export type CmsContentProps = PropsWithChildren<{
10
10
  /**
11
11
  * The content link to render
12
12
  */
13
- contentLink: ContentLinkWithLocale;
13
+ contentLink: ContentLinkWithLocale<LocalesType> | InlineContentLinkWithLocale<LocalesType>;
14
14
  /**
15
15
  * The initial, pre-loaded data. If set this will be used instead of having the
16
16
  * component fetching its' own data. So be sure that this leverages the fragment
@@ -60,27 +60,38 @@ export type CmsContentProps = PropsWithChildren<{
60
60
  */
61
61
  contentTypePrefix?: string;
62
62
  }>;
63
- type RawContentLink = {
64
- id?: number | null;
65
- workId?: number | null;
66
- guidValue?: string | null;
67
- };
68
- type RawLocale = {
69
- name?: string | null;
70
- };
71
63
  export type ContentAreaItemDefinition = {
72
- __typename?: "ContentAreaItemModelSearch" | "ContentAreaItemModel";
73
- item?: (RawContentLink & {
74
- data?: {
75
- contentType?: (string | null)[] | null;
76
- id?: RawContentLink | null;
77
- locale?: RawLocale | null;
78
- [property: string]: any;
64
+ __typename?: string | null;
65
+ _type?: string | null;
66
+ _metadata?: {
67
+ key?: string | null;
68
+ locale?: string | null;
69
+ types?: Array<string | null> | null;
70
+ displayName?: string | null;
71
+ version?: string | null;
72
+ url?: {
73
+ base?: string | null;
74
+ hierarchical?: string | null;
75
+ default?: string | null;
79
76
  } | null;
80
- }) | null;
81
- displayOption?: string | null;
82
- tag?: string | null;
83
- };
77
+ } | null;
78
+ } & Record<string, any>;
79
+ export type ValidContentAreaItemDefinition = {
80
+ __typename?: string | null;
81
+ _type?: string | null;
82
+ _metadata: {
83
+ key?: string | null;
84
+ locale?: string | null;
85
+ types?: Array<string | null> | null;
86
+ displayName?: string | null;
87
+ version?: string | null;
88
+ url?: {
89
+ base?: string | null;
90
+ hierarchical?: string | null;
91
+ default?: string | null;
92
+ } | null;
93
+ };
94
+ } & Record<string, any>;
84
95
  export type CmsContentAreaProps<T extends ElementType, CT extends ElementType> = {
85
96
  /**
86
97
  * The content area items to be rendered
@@ -173,4 +184,3 @@ export type CmsContentAreaProps<T extends ElementType, CT extends ElementType> =
173
184
  itemsProperty: ElementChildrenProps<T>;
174
185
  });
175
186
  export type CmsContentAreaClassMapper = (displayOption: string, contentType: ContentType | null, index: number) => string;
176
- export {};
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import 'server-only';
3
+ import type { OptimizelyCompositionProps } from './types';
4
+ export declare function OptimizelyComposition({ node, elementFactory, propsFactory }: OptimizelyCompositionProps): Promise<JSX.Element>;
5
+ export default OptimizelyComposition;
@@ -0,0 +1,37 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import 'server-only';
3
+ import { isElementNode } from './functions';
4
+ import { CmsContent } from '../cms-content';
5
+ import { isContentLink, isInlineContentLink } from '@remkoj/optimizely-graph-client';
6
+ function isContentType(toTest) {
7
+ return Array.isArray(toTest) && toTest.every(x => typeof (x) == 'string' && x.length > 0);
8
+ }
9
+ const defaultPropsFactory = (node) => {
10
+ const contentType = node.element?._metadata?.types;
11
+ if (!isContentType(contentType))
12
+ throw new Error("Invalid content type: " + JSON.stringify(contentType));
13
+ const contentLink = {
14
+ key: node.element?._metadata?.key || node.key || undefined,
15
+ version: node.element?._metadata?.version,
16
+ locale: node.element?._metadata?.locale
17
+ };
18
+ if (!(isContentLink(contentLink) || isInlineContentLink(contentLink)))
19
+ throw new Error("Invalid content link: " + JSON.stringify(contentLink));
20
+ return [contentLink, contentType, node.element];
21
+ };
22
+ export async function OptimizelyComposition({ node, elementFactory, propsFactory = defaultPropsFactory }) {
23
+ if (isElementNode(node)) {
24
+ const [contentLink, contentType, fragmentData] = propsFactory(node);
25
+ return CmsContent({ contentLink, contentType, fragmentData });
26
+ }
27
+ const children = await Promise.all((node.nodes ?? []).map((child, idx) => OptimizelyComposition({
28
+ key: `${node.name}::${node.key}::${idx}::${child.name}::${Math.round(Math.random() * 100000)}`,
29
+ node: child,
30
+ elementFactory,
31
+ propsFactory
32
+ })));
33
+ const Element = elementFactory(node);
34
+ return _jsx(Element, { node: { name: node.name, layoutType: node.layoutType, type: node.type, key: node.key }, children: children });
35
+ }
36
+ export default OptimizelyComposition;
37
+ //# sourceMappingURL=Composition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Composition.js","sourceRoot":"","sources":["../../../../src/server/components/visual-builder/Composition.tsx"],"names":[],"mappings":";AAAA,OAAO,aAAa,CAAA;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,OAAO,EAAE,aAAa,EAAyB,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AAG3G,SAAS,aAAa,CAAC,MAAW;IAE9B,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAC5F,CAAC;AAED,MAAM,mBAAmB,GAA8B,CAA8C,IAAgC,EAAE,EAAE;IACrI,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAA;IAClD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAA;IAEzE,MAAM,WAAW,GAAwC;QACrD,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,SAAS;QAC1D,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO;QACzC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM;KAC1C,CAAA;IACD,IAAI,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAA;IACzE,OAAO,CAAE,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAE,CAAA;AACrD,CAAC,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,GAAG,mBAAmB,EAA8B;IAEhI,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,CAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;QACrE,OAAO,UAAU,CAAC,EAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAA;IAChE,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,qBAAqB,CAAC;QAC5F,GAAG,EAAC,GAAI,IAAI,CAAC,IAAK,KAAM,IAAI,CAAC,GAAI,KAAM,GAAI,KAAM,KAAK,CAAC,IAAK,KAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAC,MAAM,CAAE,EAAE;QACrG,IAAI,EAAE,KAAK;QACX,cAAc;QACd,YAAY;KACf,CAAC,CAAC,CAAC,CAAC;IACL,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IACpC,OAAO,KAAC,OAAO,IAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,YAAI,QAAQ,GAAY,CAAA;AAClI,CAAC;AAED,eAAe,qBAAqB,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { CompositionNode, CompositionElementNode, CompositionStructureNode } from './types';
2
+ export declare function isElementNode(node: CompositionNode<Record<string, any>>): node is CompositionElementNode<Record<string, any>>;
3
+ export declare function isElementNodeOfType<ET extends Record<string, any>>(node: CompositionNode<Record<string, any>>, test: (data: Record<string, any>) => data is ET): node is CompositionElementNode<ET>;
4
+ export declare function isStructureNode(node: CompositionNode<Record<string, any>>): node is CompositionStructureNode;
5
+ export declare function isNode(toTest: any): toTest is CompositionNode;
@@ -0,0 +1,20 @@
1
+ export function isElementNode(node) {
2
+ return node.layoutType == "element";
3
+ }
4
+ export function isElementNodeOfType(node, test) {
5
+ if (!isElementNode(node))
6
+ return false;
7
+ return test(node.element);
8
+ }
9
+ export function isStructureNode(node) {
10
+ return !isElementNode(node);
11
+ }
12
+ export function isNode(toTest) {
13
+ if (typeof (toTest) != 'object' || toTest == null)
14
+ return false;
15
+ const nodeTypes = ["experience", "outline", "grid", "row", "column", "element"];
16
+ const hasValidName = (typeof toTest.name == 'string' && (toTest.name?.length ?? 0) > 0) || toTest.name == null;
17
+ const hasValidType = typeof toTest.layoutType == 'string' && nodeTypes.includes(toTest.layoutType);
18
+ return hasValidName && hasValidType;
19
+ }
20
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../../src/server/components/visual-builder/functions.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAAC,IAAyC;IAEnE,OAAO,IAAI,CAAC,UAAU,IAAI,SAAS,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAgC,IAAyC,EAAE,IAA8C;IAExJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QACpB,OAAO,KAAK,CAAA;IAChB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAyC;IAErE,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,MAAW;IAE9B,IAAI,OAAM,CAAC,MAAM,CAAC,IAAI,QAAQ,IAAI,MAAM,IAAI,IAAI;QAC5C,OAAO,KAAK,CAAA;IAEhB,MAAM,SAAS,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;IAC/E,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;AACvC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export type * from './types';
2
+ export * from './functions';
3
+ export { OptimizelyComposition } from './Composition';
4
+ export { OptimizelyComposition as default } from './Composition';
@@ -0,0 +1,4 @@
1
+ export * from './functions';
2
+ export { OptimizelyComposition } from './Composition';
3
+ export { OptimizelyComposition as default } from './Composition';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/components/visual-builder/index.ts"],"names":[],"mappings":"AAEA,cAAc,aAAa,CAAA;AAE3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,qBAAqB,IAAI,OAAO,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,37 @@
1
+ import { type ComponentType, type PropsWithChildren } from "react";
2
+ import { type ContentType } from "../../../types";
3
+ import { type InlineContentLinkWithLocale, type ContentLinkWithLocale } from "@remkoj/optimizely-graph-client";
4
+ export declare enum StructureNodeTypes {
5
+ Outline = "outline",
6
+ Grid = "grid",
7
+ Row = "row",
8
+ Column = "column"
9
+ }
10
+ export type CompositionStructureNode = {
11
+ name: string | null;
12
+ layoutType: "outline" | "grid" | "row" | "column";
13
+ nodes?: Array<CompositionNode>;
14
+ key: string | null;
15
+ type: string | null;
16
+ };
17
+ export type CompositionElementNode<E extends Record<string, any> = Record<string, any>> = {
18
+ name: string | null;
19
+ layoutType: "element";
20
+ element: E;
21
+ key: string | null;
22
+ };
23
+ export type CompositionNode<E extends Record<string, any> = Record<string, any>> = CompositionStructureNode | CompositionElementNode<E>;
24
+ export type CompositionComponentType<NT extends CompositionNode> = ComponentType<NT extends CompositionElementNode<infer DT> ? {
25
+ node: Omit<NT, 'element'>;
26
+ element: DT;
27
+ } : PropsWithChildren<{
28
+ node: Omit<NT, 'nodes'>;
29
+ }>>;
30
+ export type CompositionComponentFactory = (node: CompositionStructureNode) => CompositionComponentType<CompositionStructureNode>;
31
+ export type CmsComponentPropsFactory = <ET extends Record<string, any>, LT = string>(node: CompositionElementNode<ET>) => [ContentLinkWithLocale<LT> | InlineContentLinkWithLocale<LT>, ContentType, ET];
32
+ export type OptimizelyCompositionProps = {
33
+ node: CompositionNode<Record<string, any>>;
34
+ elementFactory: CompositionComponentFactory;
35
+ propsFactory?: CmsComponentPropsFactory;
36
+ key?: string;
37
+ };
@@ -0,0 +1,8 @@
1
+ export var StructureNodeTypes;
2
+ (function (StructureNodeTypes) {
3
+ StructureNodeTypes["Outline"] = "outline";
4
+ StructureNodeTypes["Grid"] = "grid";
5
+ StructureNodeTypes["Row"] = "row";
6
+ StructureNodeTypes["Column"] = "column";
7
+ })(StructureNodeTypes || (StructureNodeTypes = {}));
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/server/components/visual-builder/types.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC1B,yCAAmB,CAAA;IACnB,mCAAa,CAAA;IACb,iCAAW,CAAA;IACX,uCAAiB,CAAA;AACrB,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B"}
@@ -1,31 +1,18 @@
1
1
  import 'server-only';
2
- import type { ComponentFactory } from '../types';
3
- import type { IOptiGraphClient } from "@remkoj/optimizely-graph-client";
4
- export type EditableContentId = {
5
- id: number | null;
6
- workId?: number | null;
7
- guidValue?: string | null;
8
- } | {
9
- id?: number | null;
10
- workId?: number | null;
11
- guidValue: string | null;
12
- };
13
- export interface ServerContext {
14
- readonly inEditMode: Readonly<boolean>;
15
- readonly isDevelopment: boolean;
16
- readonly isDebug: boolean;
17
- readonly isDebugOrDevelopment: boolean;
18
- readonly client?: IOptiGraphClient;
19
- readonly factory: ComponentFactory;
2
+ import type { ComponentFactory, GenericContext } from '../types';
3
+ import { type IOptiGraphClient, type ContentLink } from "@remkoj/optimizely-graph-client";
4
+ export interface ServerContext extends GenericContext {
20
5
  readonly forceEditorWarnings: boolean;
21
- readonly locale?: string;
22
6
  setInEditMode(newValue: boolean): ServerContext;
23
7
  setOptimizelyGraphClient(newValue: IOptiGraphClient): ServerContext;
24
8
  setComponentFactory(newValue: ComponentFactory): ServerContext;
25
9
  setForceEditorWarnings(newValue: boolean): ServerContext;
26
10
  setLocale(newValue: string | undefined): ServerContext;
27
- setEditableContentId(newId: EditableContentId): ServerContext;
28
- isEditableContent(id: EditableContentId): boolean;
11
+ setEditableContentId(newId: ContentLink): ServerContext;
12
+ isEditableContent(id: ContentLink): boolean;
13
+ setLocale(newValue: string | undefined): ServerContext;
14
+ setOptimizelyGraphClient(newValue: IOptiGraphClient): ServerContext;
15
+ setComponentFactory(newValue: ComponentFactory): ServerContext;
29
16
  }
30
17
  /**
31
18
  * Retrieve the working instance of the component factory, which is memoized through the React.cache()
@@ -2,6 +2,7 @@ import 'server-only';
2
2
  import React from 'react';
3
3
  import { isDevelopment, isDebug } from "./is-debug";
4
4
  import { getFactory } from '../factory';
5
+ import { contentLinkIsEqual } from "@remkoj/optimizely-graph-client";
5
6
  class DefaultServerContext {
6
7
  _inEditMode = false;
7
8
  _forceEditorWarnings = false;
@@ -60,11 +61,7 @@ class DefaultServerContext {
60
61
  isEditableContent(id) {
61
62
  if (!this.inEditMode || !this._editableContent)
62
63
  return false; // We can on be editable in edit mode and with an id set
63
- if (id.id != this._editableContent.id && id.guidValue != this._editableContent.guidValue)
64
- return false; // Both ID and GUID don't match
65
- if (this._editableContent.workId && this._editableContent.workId != id.workId)
66
- return false; // We know the work ID and it doesn't match
67
- return true;
64
+ return contentLinkIsEqual(this._editableContent, id);
68
65
  }
69
66
  }
70
67
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/server/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/server/context.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AACpB,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,OAAO,EAAE,kBAAkB,EAA2C,MAAM,iCAAiC,CAAA;AAgB7G,MAAM,oBAAoB;IACd,WAAW,GAAa,KAAK,CAAA;IAC7B,oBAAoB,GAAa,KAAK,CAAA;IACtC,OAAO,GAAkC,SAAS,CAAA;IAClD,QAAQ,GAAkC,SAAS,CAAA;IACnD,OAAO,GAAwB,SAAS,CAAA;IACxC,gBAAgB,GAA6B,SAAS,CAAA;IAC9D,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAA;IAC3B,CAAC;IACD,IAAW,OAAO;QACd,OAAO,OAAO,EAAE,CAAA;IACpB,CAAC;IACD,IAAW,aAAa;QACpB,OAAO,aAAa,EAAE,CAAA;IAC1B,CAAC;IACD,IAAW,oBAAoB;QAC3B,OAAO,aAAa,EAAE,IAAI,OAAO,EAAE,CAAA;IACvC,CAAC;IACD,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;IACD,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,IAAI,UAAU,EAAE,CAAA;IACxC,CAAC;IACD,IAAW,mBAAmB;QAC1B,OAAO,IAAI,CAAC,oBAAoB,CAAA;IACpC,CAAC;IACD,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;IACM,aAAa,CAAC,QAAiB;QAElC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAA;QAC3B,OAAO,IAAI,CAAA;IACf,CAAC;IACM,wBAAwB,CAAC,QAA0B;QACtD,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAA;QACvB,OAAO,IAAI,CAAA;IACf,CAAC;IACM,mBAAmB,CAAC,QAA0B;QACjD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,OAAO,IAAI,CAAA;IACf,CAAC;IACM,sBAAsB,CAAC,QAAiB;QAC3C,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAA;QACpC,OAAO,IAAI,CAAA;IACf,CAAC;IACM,SAAS,CAAC,QAA4B;QACzC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAA;QACvB,OAAO,IAAI,CAAA;IACf,CAAC;IACM,oBAAoB,CAAC,KAAkB;QAC1C,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;QAC7B,OAAO,IAAI,CAAC;IAChB,CAAC;IACM,iBAAiB,CAAC,EAAe;QACpC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO,KAAK,CAAA,CAAC,wDAAwD;QACrH,OAAO,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;IACxD,CAAC;CACJ;AAED;;;GAGG;AACH,oGAAoG;AACpG,MAAM,CAAC,MAAM,gBAAgB,GAAyB,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;IACnE,MAAM,GAAG,GAAG,IAAI,oBAAoB,EAAE,CAAA;IACtC,IAAI,GAAG,CAAC,OAAO;QACX,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAA;IACzD,OAAO,GAAG,CAAA;AACd,CAAC,CAAC,CAAA;AAEF,eAAe,gBAAgB,CAAA"}
package/dist/types.d.ts CHANGED
@@ -1,52 +1,29 @@
1
- import type { PropsWithChildren, ComponentType as ReactComponentType } from "react";
1
+ import type { PropsWithChildren, ComponentType as ReactComponentType, ExoticComponent as ReactExoticComponent } from "react";
2
2
  import type { DocumentNode } from "graphql";
3
3
  import type { TypedDocumentNode } from '@graphql-typed-document-node/core';
4
4
  import type { IOptiGraphClient } from "@remkoj/optimizely-graph-client";
5
+ import type { ContentLink, ContentLinkWithLocale, InlineContentLinkWithLocale } from "@remkoj/optimizely-graph-client";
5
6
  export type ContentType = string[];
6
- export type ContentLink = {
7
- id: number;
8
- workId?: number | null;
9
- guidValue?: string | null;
10
- } | {
11
- id?: number | null;
12
- workId?: number | null;
13
- guidValue: string;
14
- };
15
- export type InlineContentLink = {
16
- id: 0;
17
- workId?: 0 | null;
18
- guidValue?: null | "";
19
- } | {
20
- id?: 0 | null;
21
- workId?: 0 | null;
22
- guidValue: "";
23
- };
24
- export type ContentLinkWithLocale = ContentLink & {
25
- locale?: string;
26
- };
7
+ export type { ContentLink, ContentLinkWithLocale } from "@remkoj/optimizely-graph-client";
27
8
  export type CmsComponentProps<T> = PropsWithChildren<{
28
9
  /**
29
10
  * The identifier of the content item
30
11
  */
31
- contentLink: ContentLinkWithLocale;
12
+ contentLink: ContentLinkWithLocale | InlineContentLinkWithLocale;
32
13
  /**
33
14
  * The data already pre-fetched for the this component
34
15
  */
35
16
  data: T;
36
17
  /**
37
18
  * Use the Server/Client context instead if you need this information
38
- *
39
- * @deprecated
40
19
  */
41
20
  inEditMode?: boolean;
42
- /**
43
- * Use the Server/Client context instead if you need this information
44
- *
45
- * @deprecated
46
- */
47
- client?: IOptiGraphClient;
48
21
  }>;
49
- export type ContentQueryProps = ContentLinkWithLocale;
22
+ export type ContentQueryProps<LocaleType = string> = ContentLink & {
23
+ locale?: Array<LocaleType> | LocaleType | null;
24
+ path?: string | null;
25
+ domain?: string | null;
26
+ };
50
27
  /**
51
28
  * Extract the data type from a GraphQL Query
52
29
  */
@@ -85,8 +62,7 @@ export type CmsComponentWithOptionalQuery<T = DocumentNode> = BaseCmsComponent<T
85
62
  export type CmsComponent<T = DocumentNode> = T extends TypedDocumentNode<infer R, any> ? CmsComponentWithQuery<R> : T extends DocumentNode ? CmsComponentWithQuery<{
86
63
  [key: string]: any;
87
64
  }> : T extends GraphQLFragmentBase ? CmsComponentWithFragment<T> : T extends GraphQLQueryBase ? CmsComponentWithQuery<T> : CmsComponentWithOptionalQuery<T>;
88
- import type { createElement } from 'react';
89
- export type ComponentType = Parameters<typeof createElement>[0];
65
+ export type ComponentType = (ReactComponentType<any>) | (ReactExoticComponent<any>) | (keyof JSX.IntrinsicElements);
90
66
  export type ComponentTypeHandle = string | string[];
91
67
  export type ComponentTypeDictionary = {
92
68
  type: ComponentTypeHandle;
@@ -98,3 +74,12 @@ export interface ComponentFactory {
98
74
  registerAll(components: ComponentTypeDictionary): void;
99
75
  resolve(type: ComponentTypeHandle): ComponentType | undefined;
100
76
  }
77
+ export interface GenericContext {
78
+ readonly client?: IOptiGraphClient;
79
+ readonly factory?: ComponentFactory;
80
+ readonly locale?: string;
81
+ readonly inEditMode: Readonly<boolean>;
82
+ readonly isDevelopment: boolean;
83
+ readonly isDebug: boolean;
84
+ readonly isDebugOrDevelopment: boolean;
85
+ }
@@ -1,29 +1,14 @@
1
1
  import type { ComponentType } from 'react';
2
2
  import type * as Types from './types';
3
3
  import type { DocumentNode } from 'graphql';
4
- export declare function isContentLink(toTest: any): toTest is Types.ContentLink;
5
- export declare function isContentLinkWithLocale(toTest: any): toTest is Types.ContentLinkWithLocale;
6
4
  export declare function isNonEmptyString(toTest: any): toTest is string;
7
5
  export declare function isNotNullOrUndefined<T>(toTest?: T | null): toTest is T;
8
6
  export declare function isContentType(toTest: any): toTest is Types.ContentType;
9
7
  export declare function normalizeContentType(toNormalize: (string | null)[] | null | undefined): Types.ContentType | undefined;
10
- export declare function normalizeContentLink(toNormalize?: {
11
- id?: null | number;
12
- workId?: null | number;
13
- guidValue?: null | string;
14
- } | null): Types.ContentLink | undefined;
15
- export declare function normalizeContentLinkWithLocale(toNormalize?: {
16
- id?: null | number;
17
- workId?: null | number;
18
- guidValue?: null | string;
19
- locale?: string | null;
20
- } | null): Types.ContentLinkWithLocale | undefined;
21
8
  export declare function isCmsComponentWithDataQuery<T = DocumentNode>(toTest?: Types.BaseCmsComponent<T>): toTest is Types.CmsComponentWithQuery<T>;
22
9
  export declare function isCmsComponentWithFragment<T = DocumentNode>(toTest?: Types.BaseCmsComponent<T>): toTest is Types.CmsComponentWithFragment<T>;
23
10
  export declare function validatesFragment<T extends ComponentType<any>>(toTest?: T): toTest is T & Pick<Required<Types.WithGqlFragment<T, any>>, "validateFragment">;
24
- export declare function contentLocaleToGraphLocale<T>(contentLocale?: T): T extends string ? string : undefined;
25
11
  export declare function contentLinkToRequestVariables(contentLink: Types.ContentLinkWithLocale): Types.ContentQueryProps;
26
- export declare function isInlineContentLink(contentLink: Types.ContentLink): contentLink is Types.InlineContentLink;
27
- export declare function contentLinkToString(contentLink: Types.ContentLink): string;
28
12
  export declare function toUniqueValues<R extends any>(value: R, index: number, array: Array<R>): value is R;
29
13
  export declare function trim<T extends string | null | undefined>(valueToTrim: T): T;
14
+ export declare function getContentEditId(contentLink: Types.ContentLink): string;
package/dist/utilities.js CHANGED
@@ -1,17 +1,4 @@
1
- export function isContentLink(toTest) {
2
- // It must be an object
3
- if (typeof (toTest) != 'object' || toTest == null)
4
- return false;
5
- // The object must have an Id (numeric, >= 0) or GuidValue (string, minimum 1 character)
6
- return (typeof (toTest.id) == 'number' && toTest.id >= 0) ||
7
- (typeof (toTest.guidValue) == 'string' && toTest.guidValue.length > 0);
8
- }
9
- export function isContentLinkWithLocale(toTest) {
10
- if (!isContentLink(toTest))
11
- return false;
12
- const locale = toTest.locale;
13
- return locale == undefined || (typeof (locale) == 'string' && locale.length >= 2 && locale.length <= 5);
14
- }
1
+ import { localeToGraphLocale } from '@remkoj/optimizely-graph-client/utils';
15
2
  export function isNonEmptyString(toTest) {
16
3
  return typeof (toTest) == 'string' && toTest.length > 0;
17
4
  }
@@ -29,23 +16,6 @@ export function normalizeContentType(toNormalize) {
29
16
  const filtered = toNormalize.filter(isNonEmptyString);
30
17
  return filtered.length > 0 ? filtered : undefined;
31
18
  }
32
- export function normalizeContentLink(toNormalize) {
33
- if (typeof (toNormalize) != 'object' || toNormalize == null)
34
- return undefined;
35
- if (toNormalize.id == null)
36
- toNormalize.id = 0; // Change the 'null' identifier and turn it into a 'zero'
37
- if (toNormalize.guidValue == null || toNormalize.guidValue == "")
38
- delete toNormalize.guidValue; // Remove an empty or null guid value
39
- if ((toNormalize.id ?? -1) >= 0 || (toNormalize.guidValue ?? "").length > 0)
40
- return toNormalize;
41
- return undefined;
42
- }
43
- export function normalizeContentLinkWithLocale(toNormalize) {
44
- const normalized = normalizeContentLink(toNormalize);
45
- if (normalized.locale != undefined && !(typeof (normalized.locale) == 'string' && normalized.locale.length >= 1 && normalized.locale.length <= 5))
46
- delete normalized.locale;
47
- return normalized;
48
- }
49
19
  export function isCmsComponentWithDataQuery(toTest) {
50
20
  const toTestType = typeof (toTest);
51
21
  if ((toTestType == 'function' || toTestType == 'object') && toTest != null) {
@@ -65,28 +35,16 @@ export function validatesFragment(toTest) {
65
35
  return toTest.validateFragment && typeof (toTest.validateFragment) == 'function' ? true : false;
66
36
  return false;
67
37
  }
68
- export function contentLocaleToGraphLocale(contentLocale) {
69
- if (typeof (contentLocale) == 'string' && contentLocale.length >= 2 && contentLocale.length <= 5)
70
- return contentLocale?.replaceAll('-', '_');
71
- return undefined;
72
- }
73
38
  export function contentLinkToRequestVariables(contentLink) {
74
39
  const variables = {
75
- id: contentLink.id ?? 0,
76
- workId: contentLink.workId,
77
- guidValue: contentLink.guidValue ?? null,
78
- locale: contentLocaleToGraphLocale(contentLink.locale)
40
+ key: contentLink.key ?? '-no-content-selected-',
41
+ locale: contentLink.locale ? localeToGraphLocale(contentLink.locale) : undefined,
42
+ version: contentLink.version
79
43
  };
80
- if (variables.workId == undefined || variables.workId <= 0)
81
- variables.workId = null;
44
+ if (variables.version == undefined || variables.version == '')
45
+ variables.version = null;
82
46
  return variables;
83
47
  }
84
- export function isInlineContentLink(contentLink) {
85
- return !contentLink.id && !contentLink.guidValue;
86
- }
87
- export function contentLinkToString(contentLink) {
88
- return `${contentLink.id ?? 0}_${contentLink.workId ?? 0}#${contentLink.guidValue ?? ''}\$${contentLink.locale ?? ''}`;
89
- }
90
48
  export function toUniqueValues(value, index, array) {
91
49
  return array.indexOf(value) == index;
92
50
  }
@@ -95,4 +53,7 @@ export function trim(valueToTrim) {
95
53
  return valueToTrim.trim();
96
54
  return valueToTrim;
97
55
  }
56
+ export function getContentEditId(contentLink) {
57
+ return contentLink.key;
58
+ }
98
59
  //# sourceMappingURL=utilities.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utilities.js","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utilities.js","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"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"}
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": "1.0.4",
4
+ "version": "2.0.0-pre2",
5
5
  "packageManager": "yarn@4.1.1",
6
6
  "repository": "https://github.com/remkoj/optimizely-dxp-clients.git",
7
7
  "author": "Remko Jantzen <693172+remkoj@users.noreply.github.com>",
@@ -14,6 +14,7 @@
14
14
  ],
15
15
  "exports": {
16
16
  ".": "./dist/index.js",
17
+ "./components": "./dist/components/index.js",
17
18
  "./browser": "./dist/browser/index.js",
18
19
  "./rsc": "./dist/server/index.js",
19
20
  "./rsc/cms-content": "./dist/server/components/cms-content.js",
@@ -24,6 +25,9 @@
24
25
  "browser": [
25
26
  "dist/browser/index.d.ts"
26
27
  ],
28
+ "components": [
29
+ "dist/components/index.d.ts"
30
+ ],
27
31
  "rsc": [
28
32
  "dist/server/index.d.ts"
29
33
  ],
@@ -36,25 +40,25 @@
36
40
  }
37
41
  },
38
42
  "devDependencies": {
39
- "@remkoj/optimizely-graph-client": "1.0.4",
43
+ "@remkoj/optimizely-graph-client": "2.0.0-pre2",
40
44
  "@types/crypto-js": "^4.2.2",
41
- "@types/node": "^20.12.6",
42
- "@types/react": "^18.2.75",
43
- "@types/react-dom": "18.2.24",
45
+ "@types/node": "^20.12.10",
46
+ "@types/react": "^18.3.1",
47
+ "@types/react-dom": "18.3.0",
44
48
  "graphql": "^16.8.1",
45
49
  "graphql-request": "^6.1.0",
46
50
  "prop-types": "^15.8.1",
47
- "react": "^18.2.0",
48
- "react-dom": "^18.2.0",
49
- "scheduler": "^0.23.0",
50
- "typescript": "^5.4.4"
51
+ "react": "^18.3.1",
52
+ "react-dom": "^18.3.1",
53
+ "scheduler": "^0.23.2",
54
+ "typescript": "^5.4.5"
51
55
  },
52
56
  "dependencies": {
53
57
  "@graphql-typed-document-node/core": "^3.2.0",
54
58
  "crypto-js": "^4.2.0"
55
59
  },
56
60
  "peerDependencies": {
57
- "@remkoj/optimizely-graph-client": "1.0.4",
61
+ "@remkoj/optimizely-graph-client": "2.0.0-pre2",
58
62
  "graphql": "*",
59
63
  "graphql-request": "*",
60
64
  "react": "*",
@@ -62,8 +66,9 @@
62
66
  },
63
67
  "scripts": {
64
68
  "clean": "tsc --build --clean",
65
- "prepare": "tsc --build",
69
+ "prepare": "yarn tsc --build",
66
70
  "watch": "tsc --watch",
67
71
  "recompile": "tsc --build --clean && tsc --build --force"
68
- }
72
+ },
73
+ "stableVersion": "1.0.4"
69
74
  }