@contember/react-richtext-renderer 2.1.0-alpha.36 → 2.1.0-alpha.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/development/index.cjs +17 -0
- package/dist/development/index.cjs.map +1 -0
- package/dist/development/index.js +17 -0
- package/dist/development/index.js.map +1 -0
- package/dist/development/src/RichTextRendererError.cjs +6 -0
- package/dist/development/src/RichTextRendererError.cjs.map +1 -0
- package/dist/development/src/RichTextRendererError.js +6 -0
- package/dist/development/src/RichTextRendererError.js.map +1 -0
- package/dist/development/src/components/RichText.cjs +40 -0
- package/dist/development/src/components/RichText.cjs.map +1 -0
- package/dist/development/src/components/RichText.js +40 -0
- package/dist/development/src/components/RichText.js.map +1 -0
- package/dist/development/src/components/RichTextBlocksRenderer.cjs +42 -0
- package/dist/development/src/components/RichTextBlocksRenderer.cjs.map +1 -0
- package/dist/development/src/components/RichTextBlocksRenderer.js +42 -0
- package/dist/development/src/components/RichTextBlocksRenderer.js.map +1 -0
- package/dist/development/src/components/RichTextFieldRenderer.cjs +36 -0
- package/dist/development/src/components/RichTextFieldRenderer.cjs.map +1 -0
- package/dist/development/src/components/RichTextFieldRenderer.js +36 -0
- package/dist/development/src/components/RichTextFieldRenderer.js.map +1 -0
- package/dist/development/src/components/RichTextRenderer.cjs +22 -0
- package/dist/development/src/components/RichTextRenderer.cjs.map +1 -0
- package/dist/development/src/components/RichTextRenderer.js +22 -0
- package/dist/development/src/components/RichTextRenderer.js.map +1 -0
- package/dist/development/src/hooks/useRichTextBlocksSource.cjs +64 -0
- package/dist/development/src/hooks/useRichTextBlocksSource.cjs.map +1 -0
- package/dist/development/src/hooks/useRichTextBlocksSource.js +64 -0
- package/dist/development/src/hooks/useRichTextBlocksSource.js.map +1 -0
- package/dist/development/src/hooks/useRichTextFieldSource.cjs +26 -0
- package/dist/development/src/hooks/useRichTextFieldSource.cjs.map +1 -0
- package/dist/development/src/hooks/useRichTextFieldSource.js +26 -0
- package/dist/development/src/hooks/useRichTextFieldSource.js.map +1 -0
- package/dist/development/src/internal/components/ElementRenderer.cjs +40 -0
- package/dist/development/src/internal/components/ElementRenderer.cjs.map +1 -0
- package/dist/development/src/internal/components/ElementRenderer.js +40 -0
- package/dist/development/src/internal/components/ElementRenderer.js.map +1 -0
- package/dist/development/src/internal/components/LeafRenderer.cjs +27 -0
- package/dist/development/src/internal/components/LeafRenderer.cjs.map +1 -0
- package/dist/development/src/internal/components/LeafRenderer.js +27 -0
- package/dist/development/src/internal/components/LeafRenderer.js.map +1 -0
- package/dist/development/src/internal/components/RenderElementFallback.cjs +164 -0
- package/dist/development/src/internal/components/RenderElementFallback.cjs.map +1 -0
- package/dist/development/src/internal/components/RenderElementFallback.js +164 -0
- package/dist/development/src/internal/components/RenderElementFallback.js.map +1 -0
- package/dist/development/src/internal/components/RenderLeafFallback.cjs +74 -0
- package/dist/development/src/internal/components/RenderLeafFallback.cjs.map +1 -0
- package/dist/development/src/internal/components/RenderLeafFallback.js +74 -0
- package/dist/development/src/internal/components/RenderLeafFallback.js.map +1 -0
- package/dist/development/src/internal/defaultDeserialize.cjs +14 -0
- package/dist/development/src/internal/defaultDeserialize.cjs.map +1 -0
- package/dist/development/src/internal/defaultDeserialize.js +14 -0
- package/dist/development/src/internal/defaultDeserialize.js.map +1 -0
- package/dist/development/src/internal/renderChildren.cjs +30 -0
- package/dist/development/src/internal/renderChildren.cjs.map +1 -0
- package/dist/development/src/internal/renderChildren.js +30 -0
- package/dist/development/src/internal/renderChildren.js.map +1 -0
- package/dist/development/src/internal/useReferenceMetadata.cjs +42 -0
- package/dist/development/src/internal/useReferenceMetadata.cjs.map +1 -0
- package/dist/development/src/internal/useReferenceMetadata.js +42 -0
- package/dist/development/src/internal/useReferenceMetadata.js.map +1 -0
- package/dist/production/index.cjs +17 -0
- package/dist/production/index.cjs.map +1 -0
- package/dist/production/index.js +17 -0
- package/dist/production/index.js.map +1 -0
- package/dist/production/src/RichTextRendererError.cjs +6 -0
- package/dist/production/src/RichTextRendererError.cjs.map +1 -0
- package/dist/production/src/RichTextRendererError.js +6 -0
- package/dist/production/src/RichTextRendererError.js.map +1 -0
- package/dist/production/src/components/RichText.cjs +32 -0
- package/dist/production/src/components/RichText.cjs.map +1 -0
- package/dist/production/src/components/RichText.js +32 -0
- package/dist/production/src/components/RichText.js.map +1 -0
- package/dist/production/src/components/RichTextBlocksRenderer.cjs +30 -0
- package/dist/production/src/components/RichTextBlocksRenderer.cjs.map +1 -0
- package/dist/production/src/components/RichTextBlocksRenderer.js +30 -0
- package/dist/production/src/components/RichTextBlocksRenderer.js.map +1 -0
- package/dist/production/src/components/RichTextFieldRenderer.cjs +28 -0
- package/dist/production/src/components/RichTextFieldRenderer.cjs.map +1 -0
- package/dist/production/src/components/RichTextFieldRenderer.js +28 -0
- package/dist/production/src/components/RichTextFieldRenderer.js.map +1 -0
- package/dist/production/src/components/RichTextRenderer.cjs +14 -0
- package/dist/production/src/components/RichTextRenderer.cjs.map +1 -0
- package/dist/production/src/components/RichTextRenderer.js +14 -0
- package/dist/production/src/components/RichTextRenderer.js.map +1 -0
- package/dist/production/src/hooks/useRichTextBlocksSource.cjs +64 -0
- package/dist/production/src/hooks/useRichTextBlocksSource.cjs.map +1 -0
- package/dist/production/src/hooks/useRichTextBlocksSource.js +64 -0
- package/dist/production/src/hooks/useRichTextBlocksSource.js.map +1 -0
- package/dist/production/src/hooks/useRichTextFieldSource.cjs +26 -0
- package/dist/production/src/hooks/useRichTextFieldSource.cjs.map +1 -0
- package/dist/production/src/hooks/useRichTextFieldSource.js +26 -0
- package/dist/production/src/hooks/useRichTextFieldSource.js.map +1 -0
- package/dist/production/src/internal/components/ElementRenderer.cjs +32 -0
- package/dist/production/src/internal/components/ElementRenderer.cjs.map +1 -0
- package/dist/production/src/internal/components/ElementRenderer.js +32 -0
- package/dist/production/src/internal/components/ElementRenderer.js.map +1 -0
- package/dist/production/src/internal/components/LeafRenderer.cjs +23 -0
- package/dist/production/src/internal/components/LeafRenderer.cjs.map +1 -0
- package/dist/production/src/internal/components/LeafRenderer.js +23 -0
- package/dist/production/src/internal/components/LeafRenderer.js.map +1 -0
- package/dist/production/src/internal/components/RenderElementFallback.cjs +85 -0
- package/dist/production/src/internal/components/RenderElementFallback.cjs.map +1 -0
- package/dist/production/src/internal/components/RenderElementFallback.js +85 -0
- package/dist/production/src/internal/components/RenderElementFallback.js.map +1 -0
- package/dist/production/src/internal/components/RenderLeafFallback.cjs +38 -0
- package/dist/production/src/internal/components/RenderLeafFallback.cjs.map +1 -0
- package/dist/production/src/internal/components/RenderLeafFallback.js +38 -0
- package/dist/production/src/internal/components/RenderLeafFallback.js.map +1 -0
- package/dist/production/src/internal/defaultDeserialize.cjs +14 -0
- package/dist/production/src/internal/defaultDeserialize.cjs.map +1 -0
- package/dist/production/src/internal/defaultDeserialize.js +14 -0
- package/dist/production/src/internal/defaultDeserialize.js.map +1 -0
- package/dist/production/src/internal/renderChildren.cjs +18 -0
- package/dist/production/src/internal/renderChildren.cjs.map +1 -0
- package/dist/production/src/internal/renderChildren.js +18 -0
- package/dist/production/src/internal/renderChildren.js.map +1 -0
- package/dist/production/src/internal/useReferenceMetadata.cjs +37 -0
- package/dist/production/src/internal/useReferenceMetadata.cjs.map +1 -0
- package/dist/production/src/internal/useReferenceMetadata.js +37 -0
- package/dist/production/src/internal/useReferenceMetadata.js.map +1 -0
- package/dist/types/RichTextRendererError.d.ts +3 -0
- package/dist/types/RichTextRendererError.d.ts.map +1 -0
- package/dist/types/components/RichText.d.ts +13 -0
- package/dist/types/components/RichText.d.ts.map +1 -0
- package/dist/types/components/RichTextBlocksRenderer.d.ts +10 -0
- package/dist/types/components/RichTextBlocksRenderer.d.ts.map +1 -0
- package/dist/types/components/RichTextFieldRenderer.d.ts +10 -0
- package/dist/types/components/RichTextFieldRenderer.d.ts.map +1 -0
- package/dist/types/components/RichTextRenderer.d.ts +12 -0
- package/dist/types/components/RichTextRenderer.d.ts.map +1 -0
- package/dist/types/components/index.d.ts +5 -0
- package/dist/types/components/index.d.ts.map +1 -0
- package/dist/types/hooks/index.d.ts +3 -0
- package/dist/types/hooks/index.d.ts.map +1 -0
- package/dist/types/hooks/useRichTextBlocksSource.d.ts +3 -0
- package/dist/types/hooks/useRichTextBlocksSource.d.ts.map +1 -0
- package/dist/types/hooks/useRichTextFieldSource.d.ts +3 -0
- package/dist/types/hooks/useRichTextFieldSource.d.ts.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/internal/components/ElementRenderer.d.ts +14 -0
- package/dist/types/internal/components/ElementRenderer.d.ts.map +1 -0
- package/dist/types/internal/components/LeafRenderer.d.ts +12 -0
- package/dist/types/internal/components/LeafRenderer.d.ts.map +1 -0
- package/dist/types/internal/components/RenderElementFallback.d.ts +14 -0
- package/dist/types/internal/components/RenderElementFallback.d.ts.map +1 -0
- package/dist/types/internal/components/RenderLeafFallback.d.ts +6 -0
- package/dist/types/internal/components/RenderLeafFallback.d.ts.map +1 -0
- package/dist/types/internal/defaultDeserialize.d.ts +5 -0
- package/dist/types/internal/defaultDeserialize.d.ts.map +1 -0
- package/dist/types/internal/renderChildren.d.ts +8 -0
- package/dist/types/internal/renderChildren.d.ts.map +1 -0
- package/dist/types/internal/useReferenceMetadata.d.ts +9 -0
- package/dist/types/internal/useReferenceMetadata.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/dist/types/types/RenderChildren.d.ts +9 -0
- package/dist/types/types/RenderChildren.d.ts.map +1 -0
- package/dist/types/types/RichTextBlock.d.ts +8 -0
- package/dist/types/types/RichTextBlock.d.ts.map +1 -0
- package/dist/types/types/RichTextBlockSource.d.ts +9 -0
- package/dist/types/types/RichTextBlockSource.d.ts.map +1 -0
- package/dist/types/types/RichTextFieldSource.d.ts +6 -0
- package/dist/types/types/RichTextFieldSource.d.ts.map +1 -0
- package/dist/types/types/RichTextReference.d.ts +5 -0
- package/dist/types/types/RichTextReference.d.ts.map +1 -0
- package/dist/types/types/RichTextReferenceMetadata.d.ts +15 -0
- package/dist/types/types/RichTextReferenceMetadata.d.ts.map +1 -0
- package/dist/types/types/RichTextRenderingOptions.d.ts +14 -0
- package/dist/types/types/RichTextRenderingOptions.d.ts.map +1 -0
- package/dist/types/types/builtin/BuiltinElements.d.ts +48 -0
- package/dist/types/types/builtin/BuiltinElements.d.ts.map +1 -0
- package/dist/types/types/builtin/BuiltinLeaves.d.ts +21 -0
- package/dist/types/types/builtin/BuiltinLeaves.d.ts.map +1 -0
- package/dist/types/types/builtin/index.d.ts +3 -0
- package/dist/types/types/builtin/index.d.ts.map +1 -0
- package/dist/types/types/custom/ReferenceRenderer.d.ts +17 -0
- package/dist/types/types/custom/ReferenceRenderer.d.ts.map +1 -0
- package/dist/types/types/custom/RenderBlock.d.ts +7 -0
- package/dist/types/types/custom/RenderBlock.d.ts.map +1 -0
- package/dist/types/types/custom/RenderElement.d.ts +24 -0
- package/dist/types/types/custom/RenderElement.d.ts.map +1 -0
- package/dist/types/types/custom/RenderLeaf.d.ts +11 -0
- package/dist/types/types/custom/RenderLeaf.d.ts.map +1 -0
- package/dist/types/types/custom/index.d.ts +5 -0
- package/dist/types/types/custom/index.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +11 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/structure/RichTextChild.d.ts +5 -0
- package/dist/types/types/structure/RichTextChild.d.ts.map +1 -0
- package/dist/types/types/structure/RichTextElement.d.ts +8 -0
- package/dist/types/types/structure/RichTextElement.d.ts.map +1 -0
- package/dist/types/types/structure/RichTextLeaf.d.ts +4 -0
- package/dist/types/types/structure/RichTextLeaf.d.ts.map +1 -0
- package/dist/types/types/structure/RootEditorNode.d.ts +8 -0
- package/dist/types/types/structure/RootEditorNode.d.ts.map +1 -0
- package/dist/types/types/structure/index.d.ts +5 -0
- package/dist/types/types/structure/index.d.ts.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { useMemo } from "react";
|
|
2
|
+
import { defaultDeserialize } from "../internal/defaultDeserialize.js";
|
|
3
|
+
const useRichTextFieldSource = ({
|
|
4
|
+
source,
|
|
5
|
+
deserialize = defaultDeserialize
|
|
6
|
+
}) => {
|
|
7
|
+
return useMemo(() => {
|
|
8
|
+
return [
|
|
9
|
+
{
|
|
10
|
+
content: source ? typeof source === "string" ? deserialize(source) : source : {
|
|
11
|
+
formatVersion: 0,
|
|
12
|
+
children: []
|
|
13
|
+
},
|
|
14
|
+
id: void 0,
|
|
15
|
+
referencesField: void 0,
|
|
16
|
+
referenceDiscriminationField: void 0,
|
|
17
|
+
referenceRenderers: {},
|
|
18
|
+
references: void 0
|
|
19
|
+
}
|
|
20
|
+
];
|
|
21
|
+
}, [deserialize, source]);
|
|
22
|
+
};
|
|
23
|
+
export {
|
|
24
|
+
useRichTextFieldSource
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=useRichTextFieldSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRichTextFieldSource.js","sources":["../../../../../packages/react-richtext-renderer/src/hooks/useRichTextFieldSource.ts"],"sourcesContent":["import { RichTextBlock, RichTextElement, RichTextFieldSource, RichTextLeaf } from '../types'\nimport { useMemo } from 'react'\nimport { defaultDeserialize } from '../internal/defaultDeserialize'\n\nexport const useRichTextFieldSource = <CustomElements extends RichTextElement, CustomLeaves extends RichTextLeaf>({\n\tsource,\n\tdeserialize = defaultDeserialize,\n}: RichTextFieldSource<CustomElements, CustomLeaves>): RichTextBlock<CustomElements, CustomLeaves>[] => {\n\treturn useMemo(() => {\n\t\treturn [\n\t\t\t{\n\t\t\t\tcontent: source\n\t\t\t\t\t? (typeof source === 'string' ? deserialize(source) : source)\n\t\t\t\t\t: {\n\t\t\t\t\t\tformatVersion: 0,\n\t\t\t\t\t\tchildren: [],\n\t\t\t\t\t},\n\t\t\t\tid: undefined,\n\t\t\t\treferencesField: undefined,\n\t\t\t\treferenceDiscriminationField: undefined,\n\t\t\t\treferenceRenderers: {},\n\t\t\t\treferences: undefined,\n\t\t\t},\n\t\t]\n\t}, [deserialize, source])\n}\n"],"names":[],"mappings":";;AAIO,MAAM,yBAAyB,CAA4E;AAAA,EACjH;AAAA,EACA,cAAc;AACf,MAAwG;AACvG,SAAO,QAAQ,MAAM;AACpB,WAAO;AAAA,MACN;AAAA,QACC,SAAS,SACL,OAAO,WAAW,WAAW,YAAY,MAAM,IAAI,SACpD;AAAA,UACD,eAAe;AAAA,UACf,UAAU,CAAA;AAAA,QAAC;AAAA,QAEb,IAAI;AAAA,QACJ,iBAAiB;AAAA,QACjB,8BAA8B;AAAA,QAC9B,oBAAoB,CAAA;AAAA,QACpB,YAAY;AAAA,MAAA;AAAA,IACb;AAAA,EAEF,GAAG,CAAC,aAAa,MAAM,CAAC;AACzB;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxDevRuntime = require("react/jsx-dev-runtime");
|
|
4
|
+
const React = require("react");
|
|
5
|
+
const renderChildren = require("../renderChildren.cjs");
|
|
6
|
+
const RenderElementFallback = require("./RenderElementFallback.cjs");
|
|
7
|
+
const useReferenceMetadata = require("../useReferenceMetadata.cjs");
|
|
8
|
+
function ElementRenderer({ element, children, options, block }) {
|
|
9
|
+
const referenceMetadata = useReferenceMetadata.useReferenceMetadata(element, options, block);
|
|
10
|
+
const fallback = /* @__PURE__ */ jsxDevRuntime.jsxDEV(
|
|
11
|
+
RenderElementFallback.RenderElementFallback,
|
|
12
|
+
{
|
|
13
|
+
element,
|
|
14
|
+
options,
|
|
15
|
+
block,
|
|
16
|
+
children
|
|
17
|
+
},
|
|
18
|
+
void 0,
|
|
19
|
+
false,
|
|
20
|
+
{
|
|
21
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/ElementRenderer.tsx",
|
|
22
|
+
lineNumber: 29,
|
|
23
|
+
columnNumber: 3
|
|
24
|
+
},
|
|
25
|
+
this
|
|
26
|
+
);
|
|
27
|
+
return options.renderElement ? React.createElement(options.renderElement, {
|
|
28
|
+
...referenceMetadata,
|
|
29
|
+
formatVersion: block.content.formatVersion,
|
|
30
|
+
block,
|
|
31
|
+
options,
|
|
32
|
+
element,
|
|
33
|
+
fallback,
|
|
34
|
+
children,
|
|
35
|
+
renderChildren: (children2, opts = options) => renderChildren.renderChildren(children2, opts, block),
|
|
36
|
+
renderChildrenOptions: options
|
|
37
|
+
}) : fallback;
|
|
38
|
+
}
|
|
39
|
+
exports.ElementRenderer = ElementRenderer;
|
|
40
|
+
//# sourceMappingURL=ElementRenderer.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ElementRenderer.cjs","sources":["../../../../../../packages/react-richtext-renderer/src/internal/components/ElementRenderer.tsx"],"sourcesContent":["import type { ReactElement } from 'react'\nimport { createElement } from 'react'\nimport type { BuiltinElements } from '../../types/builtin/BuiltinElements'\nimport { renderChildren } from '../renderChildren'\nimport { RenderElementFallback } from './RenderElementFallback'\nimport { useReferenceMetadata } from '../useReferenceMetadata'\nimport type { RichTextElement } from '../../types/structure/RichTextElement'\nimport type { RichTextLeaf } from '../../types/structure/RichTextLeaf'\nimport { RichTextBlock } from '../../types/RichTextBlock'\nimport { RichTextRenderingOptions } from '../../types/RichTextRenderingOptions'\n\nexport interface ElementRendererProps<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = RichTextLeaf,\n> {\n\telement: CustomElements | BuiltinElements<CustomElements, CustomLeaves>\n\tchildren: ReactElement\n\toptions: RichTextRenderingOptions<CustomElements, CustomLeaves>\n\tblock: RichTextBlock<CustomElements, CustomLeaves>\n}\n\nexport function ElementRenderer<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = RichTextLeaf,\n>({ element, children, options, block }: ElementRendererProps<CustomElements, CustomLeaves>) {\n\tconst referenceMetadata = useReferenceMetadata<CustomElements, CustomLeaves>(element, options, block)\n\n\tconst fallback = (\n\t\t<RenderElementFallback<CustomElements, CustomLeaves>\n\t\t\telement={element as BuiltinElements<CustomElements, CustomLeaves>}\n\t\t\toptions={options}\n\t\t\tblock={block}\n\t\t>\n\t\t\t{children}\n\t\t</RenderElementFallback>\n\t)\n\n\treturn options.renderElement\n\t\t? createElement(options.renderElement, {\n\t\t\t...referenceMetadata,\n\t\t\tformatVersion: block.content.formatVersion,\n\t\t\tblock,\n\t\t\toptions,\n\t\t\telement,\n\t\t\tfallback,\n\t\t\tchildren,\n\t\t\trenderChildren: (children, opts = options) => renderChildren(children, opts, block),\n\t\t\trenderChildrenOptions: options,\n\t\t})\n\t\t: fallback\n}\n"],"names":["useReferenceMetadata","jsxDEV","RenderElementFallback","createElement","children","renderChildren"],"mappings":";;;;;;;AAqBO,SAAS,gBAGd,EAAE,SAAS,UAAU,SAAS,SAA6D;AAC5F,QAAM,oBAAoBA,qBAAAA,qBAAmD,SAAS,SAAS,KAAK;AAEpG,QAAM,WACLC,8BAAAA;AAAAA,IAACC,sBAAAA;AAAAA,IAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEC;AAAA,IAAA;AAAA,IALF;AAAA,IAAA;AAAA,IAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAA;AAAA,IAAA;AAAA,EAAA;AASD,SAAO,QAAQ,gBACZC,oBAAc,QAAQ,eAAe;AAAA,IACtC,GAAG;AAAA,IACH,eAAe,MAAM,QAAQ;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB,CAACC,WAAU,OAAO,YAAYC,eAAAA,eAAeD,WAAU,MAAM,KAAK;AAAA,IAClF,uBAAuB;AAAA,EAAA,CACvB,IACC;AACJ;;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
2
|
+
import { createElement } from "react";
|
|
3
|
+
import { renderChildren } from "../renderChildren.js";
|
|
4
|
+
import { RenderElementFallback } from "./RenderElementFallback.js";
|
|
5
|
+
import { useReferenceMetadata } from "../useReferenceMetadata.js";
|
|
6
|
+
function ElementRenderer({ element, children, options, block }) {
|
|
7
|
+
const referenceMetadata = useReferenceMetadata(element, options, block);
|
|
8
|
+
const fallback = /* @__PURE__ */ jsxDEV(
|
|
9
|
+
RenderElementFallback,
|
|
10
|
+
{
|
|
11
|
+
element,
|
|
12
|
+
options,
|
|
13
|
+
block,
|
|
14
|
+
children
|
|
15
|
+
},
|
|
16
|
+
void 0,
|
|
17
|
+
false,
|
|
18
|
+
{
|
|
19
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/ElementRenderer.tsx",
|
|
20
|
+
lineNumber: 29,
|
|
21
|
+
columnNumber: 3
|
|
22
|
+
},
|
|
23
|
+
this
|
|
24
|
+
);
|
|
25
|
+
return options.renderElement ? createElement(options.renderElement, {
|
|
26
|
+
...referenceMetadata,
|
|
27
|
+
formatVersion: block.content.formatVersion,
|
|
28
|
+
block,
|
|
29
|
+
options,
|
|
30
|
+
element,
|
|
31
|
+
fallback,
|
|
32
|
+
children,
|
|
33
|
+
renderChildren: (children2, opts = options) => renderChildren(children2, opts, block),
|
|
34
|
+
renderChildrenOptions: options
|
|
35
|
+
}) : fallback;
|
|
36
|
+
}
|
|
37
|
+
export {
|
|
38
|
+
ElementRenderer
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=ElementRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ElementRenderer.js","sources":["../../../../../../packages/react-richtext-renderer/src/internal/components/ElementRenderer.tsx"],"sourcesContent":["import type { ReactElement } from 'react'\nimport { createElement } from 'react'\nimport type { BuiltinElements } from '../../types/builtin/BuiltinElements'\nimport { renderChildren } from '../renderChildren'\nimport { RenderElementFallback } from './RenderElementFallback'\nimport { useReferenceMetadata } from '../useReferenceMetadata'\nimport type { RichTextElement } from '../../types/structure/RichTextElement'\nimport type { RichTextLeaf } from '../../types/structure/RichTextLeaf'\nimport { RichTextBlock } from '../../types/RichTextBlock'\nimport { RichTextRenderingOptions } from '../../types/RichTextRenderingOptions'\n\nexport interface ElementRendererProps<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = RichTextLeaf,\n> {\n\telement: CustomElements | BuiltinElements<CustomElements, CustomLeaves>\n\tchildren: ReactElement\n\toptions: RichTextRenderingOptions<CustomElements, CustomLeaves>\n\tblock: RichTextBlock<CustomElements, CustomLeaves>\n}\n\nexport function ElementRenderer<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = RichTextLeaf,\n>({ element, children, options, block }: ElementRendererProps<CustomElements, CustomLeaves>) {\n\tconst referenceMetadata = useReferenceMetadata<CustomElements, CustomLeaves>(element, options, block)\n\n\tconst fallback = (\n\t\t<RenderElementFallback<CustomElements, CustomLeaves>\n\t\t\telement={element as BuiltinElements<CustomElements, CustomLeaves>}\n\t\t\toptions={options}\n\t\t\tblock={block}\n\t\t>\n\t\t\t{children}\n\t\t</RenderElementFallback>\n\t)\n\n\treturn options.renderElement\n\t\t? createElement(options.renderElement, {\n\t\t\t...referenceMetadata,\n\t\t\tformatVersion: block.content.formatVersion,\n\t\t\tblock,\n\t\t\toptions,\n\t\t\telement,\n\t\t\tfallback,\n\t\t\tchildren,\n\t\t\trenderChildren: (children, opts = options) => renderChildren(children, opts, block),\n\t\t\trenderChildrenOptions: options,\n\t\t})\n\t\t: fallback\n}\n"],"names":["children"],"mappings":";;;;;AAqBO,SAAS,gBAGd,EAAE,SAAS,UAAU,SAAS,SAA6D;AAC5F,QAAM,oBAAoB,qBAAmD,SAAS,SAAS,KAAK;AAEpG,QAAM,WACL;AAAA,IAAC;AAAA,IAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEC;AAAA,IAAA;AAAA,IALF;AAAA,IAAA;AAAA,IAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAA;AAAA,IAAA;AAAA,EAAA;AASD,SAAO,QAAQ,gBACZ,cAAc,QAAQ,eAAe;AAAA,IACtC,GAAG;AAAA,IACH,eAAe,MAAM,QAAQ;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB,CAACA,WAAU,OAAO,YAAY,eAAeA,WAAU,MAAM,KAAK;AAAA,IAClF,uBAAuB;AAAA,EAAA,CACvB,IACC;AACJ;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxDevRuntime = require("react/jsx-dev-runtime");
|
|
4
|
+
const React = require("react");
|
|
5
|
+
const RenderLeafFallback = require("./RenderLeafFallback.cjs");
|
|
6
|
+
function LeafRenderer({
|
|
7
|
+
leaf,
|
|
8
|
+
options: { renderLeaf },
|
|
9
|
+
block: { content: { formatVersion } }
|
|
10
|
+
}) {
|
|
11
|
+
const fallback = /* @__PURE__ */ jsxDevRuntime.jsxDEV(RenderLeafFallback.RenderLeafFallback, { leaf }, void 0, false, {
|
|
12
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/LeafRenderer.tsx",
|
|
13
|
+
lineNumber: 23,
|
|
14
|
+
columnNumber: 19
|
|
15
|
+
}, this);
|
|
16
|
+
return renderLeaf ? React.createElement(
|
|
17
|
+
renderLeaf,
|
|
18
|
+
{
|
|
19
|
+
formatVersion,
|
|
20
|
+
leaf,
|
|
21
|
+
fallback,
|
|
22
|
+
children: leaf.text
|
|
23
|
+
}
|
|
24
|
+
) : fallback;
|
|
25
|
+
}
|
|
26
|
+
exports.LeafRenderer = LeafRenderer;
|
|
27
|
+
//# sourceMappingURL=LeafRenderer.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LeafRenderer.cjs","sources":["../../../../../../packages/react-richtext-renderer/src/internal/components/LeafRenderer.tsx"],"sourcesContent":["import { createElement } from 'react'\nimport type { BuiltinLeaves } from '../../types/builtin/BuiltinLeaves'\nimport { RenderLeafFallback } from './RenderLeafFallback'\nimport type { RichTextLeaf } from '../../types/structure/RichTextLeaf'\nimport { RichTextElement } from '../../types/structure/RichTextElement'\nimport { RichTextRenderingOptions } from '../../types/RichTextRenderingOptions'\nimport { RichTextBlock } from '../../types/RichTextBlock'\n\nexport interface LeafRendererProps<CustomElements extends RichTextElement = never, CustomLeaves extends RichTextLeaf = RichTextLeaf> {\n\toptions: RichTextRenderingOptions<CustomElements, CustomLeaves>\n\tblock: RichTextBlock<CustomElements, CustomLeaves>\n\tleaf: CustomLeaves & BuiltinLeaves\n}\n\nexport function LeafRenderer<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = RichTextLeaf,\n>({\n\tleaf,\n\toptions: { renderLeaf },\n\tblock: { content: { formatVersion } },\n}: LeafRendererProps<CustomElements, CustomLeaves>) {\n\tconst fallback = <RenderLeafFallback leaf={leaf} />\n\n\treturn renderLeaf\n\t\t? createElement(\n\t\t\trenderLeaf,\n\t\t\t{\n\t\t\t\tformatVersion,\n\t\t\t\tleaf,\n\t\t\t\tfallback,\n\t\t\t\tchildren: leaf.text,\n\t\t\t},\n\t\t)\n\t\t: fallback\n}\n"],"names":["jsxDEV","RenderLeafFallback","createElement"],"mappings":";;;;;AAcO,SAAS,aAGd;AAAA,EACD;AAAA,EACA,SAAS,EAAE,WAAA;AAAA,EACX,OAAO,EAAE,SAAS,EAAE,gBAAc;AACnC,GAAoD;AACnD,QAAM,WAAWA,8BAAAA,OAACC,mBAAAA,oBAAA,EAAmB,KAAA,GAApB,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAA,IAAgC;AAEjD,SAAO,aACJC,MAAAA;AAAAA,IACD;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU,KAAK;AAAA,IAAA;AAAA,EAChB,IAEC;AACJ;;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
2
|
+
import { createElement } from "react";
|
|
3
|
+
import { RenderLeafFallback } from "./RenderLeafFallback.js";
|
|
4
|
+
function LeafRenderer({
|
|
5
|
+
leaf,
|
|
6
|
+
options: { renderLeaf },
|
|
7
|
+
block: { content: { formatVersion } }
|
|
8
|
+
}) {
|
|
9
|
+
const fallback = /* @__PURE__ */ jsxDEV(RenderLeafFallback, { leaf }, void 0, false, {
|
|
10
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/LeafRenderer.tsx",
|
|
11
|
+
lineNumber: 23,
|
|
12
|
+
columnNumber: 19
|
|
13
|
+
}, this);
|
|
14
|
+
return renderLeaf ? createElement(
|
|
15
|
+
renderLeaf,
|
|
16
|
+
{
|
|
17
|
+
formatVersion,
|
|
18
|
+
leaf,
|
|
19
|
+
fallback,
|
|
20
|
+
children: leaf.text
|
|
21
|
+
}
|
|
22
|
+
) : fallback;
|
|
23
|
+
}
|
|
24
|
+
export {
|
|
25
|
+
LeafRenderer
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=LeafRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LeafRenderer.js","sources":["../../../../../../packages/react-richtext-renderer/src/internal/components/LeafRenderer.tsx"],"sourcesContent":["import { createElement } from 'react'\nimport type { BuiltinLeaves } from '../../types/builtin/BuiltinLeaves'\nimport { RenderLeafFallback } from './RenderLeafFallback'\nimport type { RichTextLeaf } from '../../types/structure/RichTextLeaf'\nimport { RichTextElement } from '../../types/structure/RichTextElement'\nimport { RichTextRenderingOptions } from '../../types/RichTextRenderingOptions'\nimport { RichTextBlock } from '../../types/RichTextBlock'\n\nexport interface LeafRendererProps<CustomElements extends RichTextElement = never, CustomLeaves extends RichTextLeaf = RichTextLeaf> {\n\toptions: RichTextRenderingOptions<CustomElements, CustomLeaves>\n\tblock: RichTextBlock<CustomElements, CustomLeaves>\n\tleaf: CustomLeaves & BuiltinLeaves\n}\n\nexport function LeafRenderer<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = RichTextLeaf,\n>({\n\tleaf,\n\toptions: { renderLeaf },\n\tblock: { content: { formatVersion } },\n}: LeafRendererProps<CustomElements, CustomLeaves>) {\n\tconst fallback = <RenderLeafFallback leaf={leaf} />\n\n\treturn renderLeaf\n\t\t? createElement(\n\t\t\trenderLeaf,\n\t\t\t{\n\t\t\t\tformatVersion,\n\t\t\t\tleaf,\n\t\t\t\tfallback,\n\t\t\t\tchildren: leaf.text,\n\t\t\t},\n\t\t)\n\t\t: fallback\n}\n"],"names":[],"mappings":";;;AAcO,SAAS,aAGd;AAAA,EACD;AAAA,EACA,SAAS,EAAE,WAAA;AAAA,EACX,OAAO,EAAE,SAAS,EAAE,gBAAc;AACnC,GAAoD;AACnD,QAAM,WAAW,uBAAC,oBAAA,EAAmB,KAAA,GAApB,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAA,IAAgC;AAEjD,SAAO,aACJ;AAAA,IACD;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU,KAAK;AAAA,IAAA;AAAA,EAChB,IAEC;AACJ;"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxDevRuntime = require("react/jsx-dev-runtime");
|
|
4
|
+
const React = require("react");
|
|
5
|
+
const renderChildren = require("../renderChildren.cjs");
|
|
6
|
+
const useReferenceMetadata = require("../useReferenceMetadata.cjs");
|
|
7
|
+
const RichTextRendererError = require("../../RichTextRendererError.cjs");
|
|
8
|
+
const getElementDataAttributes = (element, attributeNamePrefix = "contember-") => {
|
|
9
|
+
const { children, referenceId, ...extendedSpecifics } = element;
|
|
10
|
+
return Object.fromEntries(
|
|
11
|
+
Object.entries(extendedSpecifics).filter(([, value]) => {
|
|
12
|
+
const t = typeof value;
|
|
13
|
+
return t === "string" || t === "number" || t === "boolean";
|
|
14
|
+
}).map(([attribute, value]) => [`data-${attributeNamePrefix}${attribute.toLowerCase()}`, value])
|
|
15
|
+
);
|
|
16
|
+
};
|
|
17
|
+
function RenderElementFallback({ element, children, options, block }) {
|
|
18
|
+
const attributes = getElementDataAttributes(element, options.attributeNamePrefix);
|
|
19
|
+
switch (element.type) {
|
|
20
|
+
case "anchor":
|
|
21
|
+
return /* @__PURE__ */ jsxDevRuntime.jsxDEV("a", { ...attributes, href: element.href, children }, void 0, false, {
|
|
22
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
23
|
+
lineNumber: 51,
|
|
24
|
+
columnNumber: 5
|
|
25
|
+
}, this);
|
|
26
|
+
case "heading":
|
|
27
|
+
return React.createElement(`h${element.level}`, attributes, children);
|
|
28
|
+
// TODO numbered
|
|
29
|
+
case "horizontalRule":
|
|
30
|
+
return /* @__PURE__ */ jsxDevRuntime.jsxDEV("hr", { ...attributes }, void 0, false, {
|
|
31
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
32
|
+
lineNumber: 58,
|
|
33
|
+
columnNumber: 11
|
|
34
|
+
}, this);
|
|
35
|
+
case "listItem":
|
|
36
|
+
return /* @__PURE__ */ jsxDevRuntime.jsxDEV("li", { ...attributes, children }, void 0, false, {
|
|
37
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
38
|
+
lineNumber: 60,
|
|
39
|
+
columnNumber: 11
|
|
40
|
+
}, this);
|
|
41
|
+
case "orderedList":
|
|
42
|
+
return /* @__PURE__ */ jsxDevRuntime.jsxDEV("ol", { ...attributes, children }, void 0, false, {
|
|
43
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
44
|
+
lineNumber: 62,
|
|
45
|
+
columnNumber: 11
|
|
46
|
+
}, this);
|
|
47
|
+
case "paragraph":
|
|
48
|
+
return /* @__PURE__ */ jsxDevRuntime.jsxDEV("p", { ...attributes, children }, void 0, false, {
|
|
49
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
50
|
+
lineNumber: 64,
|
|
51
|
+
columnNumber: 11
|
|
52
|
+
}, this);
|
|
53
|
+
case "reference": {
|
|
54
|
+
return /* @__PURE__ */ jsxDevRuntime.jsxDEV(ReferenceElementFallback, { element, children, options, block }, void 0, false, {
|
|
55
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
56
|
+
lineNumber: 66,
|
|
57
|
+
columnNumber: 11
|
|
58
|
+
}, this);
|
|
59
|
+
}
|
|
60
|
+
case "scrollTarget":
|
|
61
|
+
return /* @__PURE__ */ jsxDevRuntime.jsxDEV("span", { ...attributes, id: element.identifier, children }, void 0, false, {
|
|
62
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
63
|
+
lineNumber: 70,
|
|
64
|
+
columnNumber: 5
|
|
65
|
+
}, this);
|
|
66
|
+
case "table": {
|
|
67
|
+
const firstRow = element.children[0];
|
|
68
|
+
if (!firstRow || firstRow.headerScope !== "table") {
|
|
69
|
+
return /* @__PURE__ */ jsxDevRuntime.jsxDEV("table", { ...attributes, children: /* @__PURE__ */ jsxDevRuntime.jsxDEV("tbody", { children }, void 0, false, {
|
|
70
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
71
|
+
lineNumber: 79,
|
|
72
|
+
columnNumber: 7
|
|
73
|
+
}, this) }, void 0, false, {
|
|
74
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
75
|
+
lineNumber: 78,
|
|
76
|
+
columnNumber: 6
|
|
77
|
+
}, this);
|
|
78
|
+
}
|
|
79
|
+
return /* @__PURE__ */ jsxDevRuntime.jsxDEV("table", { ...attributes, children: [
|
|
80
|
+
/* @__PURE__ */ jsxDevRuntime.jsxDEV("thead", { children: renderChildren.renderChildren([firstRow], options, block) }, void 0, false, {
|
|
81
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
82
|
+
lineNumber: 85,
|
|
83
|
+
columnNumber: 6
|
|
84
|
+
}, this),
|
|
85
|
+
/* @__PURE__ */ jsxDevRuntime.jsxDEV("tbody", { children: renderChildren.renderChildren(element.children.slice(1), options, block) }, void 0, false, {
|
|
86
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
87
|
+
lineNumber: 86,
|
|
88
|
+
columnNumber: 6
|
|
89
|
+
}, this)
|
|
90
|
+
] }, void 0, true, {
|
|
91
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
92
|
+
lineNumber: 84,
|
|
93
|
+
columnNumber: 5
|
|
94
|
+
}, this);
|
|
95
|
+
}
|
|
96
|
+
case "tableRow":
|
|
97
|
+
return /* @__PURE__ */ jsxDevRuntime.jsxDEV("tr", { ...attributes, children }, void 0, false, {
|
|
98
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
99
|
+
lineNumber: 91,
|
|
100
|
+
columnNumber: 11
|
|
101
|
+
}, this);
|
|
102
|
+
case "tableCell": {
|
|
103
|
+
if (element.headerScope) {
|
|
104
|
+
return /* @__PURE__ */ jsxDevRuntime.jsxDEV("th", { ...attributes, scope: element.headerScope, children }, void 0, false, {
|
|
105
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
106
|
+
lineNumber: 95,
|
|
107
|
+
columnNumber: 6
|
|
108
|
+
}, this);
|
|
109
|
+
}
|
|
110
|
+
return /* @__PURE__ */ jsxDevRuntime.jsxDEV("td", { ...attributes, children }, void 0, false, {
|
|
111
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
112
|
+
lineNumber: 100,
|
|
113
|
+
columnNumber: 11
|
|
114
|
+
}, this);
|
|
115
|
+
}
|
|
116
|
+
case "unorderedList":
|
|
117
|
+
return /* @__PURE__ */ jsxDevRuntime.jsxDEV("ul", { ...attributes, children }, void 0, false, {
|
|
118
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
119
|
+
lineNumber: 103,
|
|
120
|
+
columnNumber: 11
|
|
121
|
+
}, this);
|
|
122
|
+
default: {
|
|
123
|
+
{
|
|
124
|
+
throw new RichTextRendererError.RichTextRendererError(
|
|
125
|
+
`RichTextRenderer: unknown element of type '${element.type}'.`
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
function ReferenceElementFallback({ element, children, options, block }) {
|
|
132
|
+
const elementMetadata = useReferenceMetadata.useReferenceMetadata(element, options, block, true);
|
|
133
|
+
if (elementMetadata.referenceRenderer === void 0 || elementMetadata.referenceType === void 0 || elementMetadata.reference === void 0) {
|
|
134
|
+
return children;
|
|
135
|
+
}
|
|
136
|
+
let Renderer = elementMetadata.referenceRenderer;
|
|
137
|
+
return /* @__PURE__ */ jsxDevRuntime.jsxDEV(jsxDevRuntime.Fragment, { children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(
|
|
138
|
+
Renderer,
|
|
139
|
+
{
|
|
140
|
+
referenceType: elementMetadata.referenceType,
|
|
141
|
+
referenceRenderer: elementMetadata.referenceRenderer,
|
|
142
|
+
reference: elementMetadata.reference,
|
|
143
|
+
formatVersion: block.content.formatVersion,
|
|
144
|
+
block,
|
|
145
|
+
options,
|
|
146
|
+
element,
|
|
147
|
+
children
|
|
148
|
+
},
|
|
149
|
+
void 0,
|
|
150
|
+
false,
|
|
151
|
+
{
|
|
152
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
153
|
+
lineNumber: 140,
|
|
154
|
+
columnNumber: 4
|
|
155
|
+
},
|
|
156
|
+
this
|
|
157
|
+
) }, void 0, false, {
|
|
158
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
159
|
+
lineNumber: 139,
|
|
160
|
+
columnNumber: 3
|
|
161
|
+
}, this);
|
|
162
|
+
}
|
|
163
|
+
exports.RenderElementFallback = RenderElementFallback;
|
|
164
|
+
//# sourceMappingURL=RenderElementFallback.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderElementFallback.cjs","sources":["../../../../../../packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx"],"sourcesContent":["import { createElement, ReactElement } from 'react'\nimport type { BuiltinElements, RichTextReferenceElement, RichTextTableRowElement } from '../../types/builtin/BuiltinElements'\nimport { renderChildren } from '../renderChildren'\nimport { useReferenceMetadata } from '../useReferenceMetadata'\nimport type { RichTextElement } from '../../types/structure/RichTextElement'\nimport type { RichTextLeaf } from '../../types/structure/RichTextLeaf'\nimport { RichTextRendererError } from '../../RichTextRendererError'\nimport { RichTextBlock } from '../../types/RichTextBlock'\nimport { RichTextRenderingOptions } from '../../types/RichTextRenderingOptions'\n\nexport interface RenderElementFallbackProps<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = RichTextLeaf,\n> {\n\telement: BuiltinElements<CustomElements, CustomLeaves>\n\tchildren: ReactElement\n\toptions: RichTextRenderingOptions<CustomElements, CustomLeaves>\n\tblock: RichTextBlock<CustomElements, CustomLeaves>\n}\n\nconst getElementDataAttributes = <\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = RichTextLeaf,\n>(\n\telement: RichTextElement<CustomElements, CustomLeaves>,\n\tattributeNamePrefix: string = 'contember-',\n): {\n\t[dataAttribute: string]: string | number | boolean\n} => {\n\tconst { children, referenceId, ...extendedSpecifics } = element\n\n\treturn Object.fromEntries(\n\t\tObject.entries(extendedSpecifics)\n\t\t\t.filter(([, value]) => {\n\t\t\t\tconst t = typeof value\n\t\t\t\treturn t === 'string' || t === 'number' || t === 'boolean'\n\t\t\t})\n\t\t\t.map(([attribute, value]) => [`data-${attributeNamePrefix}${attribute.toLowerCase()}`, value]),\n\t)\n}\n\nexport function RenderElementFallback<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = RichTextLeaf,\n>({ element, children, options, block }: RenderElementFallbackProps<CustomElements, CustomLeaves>) {\n\tconst attributes = getElementDataAttributes(element, options.attributeNamePrefix)\n\n\tswitch (element.type) {\n\t\tcase 'anchor':\n\t\t\treturn (\n\t\t\t\t<a {...attributes} href={element.href}>\n\t\t\t\t\t{children}\n\t\t\t\t</a>\n\t\t\t)\n\t\tcase 'heading':\n\t\t\treturn createElement(`h${element.level}`, attributes, children) // TODO numbered\n\t\tcase 'horizontalRule':\n\t\t\treturn <hr {...attributes} />\n\t\tcase 'listItem':\n\t\t\treturn <li {...attributes}>{children}</li>\n\t\tcase 'orderedList':\n\t\t\treturn <ol {...attributes}>{children}</ol>\n\t\tcase 'paragraph':\n\t\t\treturn <p {...attributes}>{children}</p>\n\t\tcase 'reference': {\n\t\t\treturn <ReferenceElementFallback element={element} children={children} options={options} block={block} />\n\t\t}\n\t\tcase 'scrollTarget':\n\t\t\treturn (\n\t\t\t\t<span {...attributes} id={element.identifier}>\n\t\t\t\t\t{children}\n\t\t\t\t</span>\n\t\t\t)\n\t\tcase 'table': {\n\t\t\tconst firstRow = element.children[0] as RichTextTableRowElement<CustomElements, CustomLeaves> | undefined\n\t\t\tif (!firstRow || firstRow.headerScope !== 'table') {\n\t\t\t\treturn (\n\t\t\t\t\t<table {...attributes}>\n\t\t\t\t\t\t<tbody>{children}</tbody>\n\t\t\t\t\t</table>\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t<table {...attributes}>\n\t\t\t\t\t<thead>{renderChildren<CustomElements, CustomLeaves>([firstRow], options, block)}</thead>\n\t\t\t\t\t<tbody>{renderChildren<CustomElements, CustomLeaves>(element.children.slice(1) as any, options, block)}</tbody>\n\t\t\t\t</table>\n\t\t\t)\n\t\t}\n\t\tcase 'tableRow':\n\t\t\treturn <tr {...attributes}>{children}</tr>\n\t\tcase 'tableCell': {\n\t\t\tif (element.headerScope) {\n\t\t\t\treturn (\n\t\t\t\t\t<th {...attributes} scope={element.headerScope}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</th>\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn <td {...attributes}>{children}</td>\n\t\t}\n\t\tcase 'unorderedList':\n\t\t\treturn <ul {...attributes}>{children}</ul>\n\t\tdefault: {\n\t\t\tif (import.meta.env.DEV) {\n\t\t\t\tthrow new RichTextRendererError(\n\t\t\t\t\t`RichTextRenderer: unknown element of type '${(element as { type: string }).type}'.`,\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\treturn children // At least render the text contents\n\t\t\t}\n\t\t}\n\t}\n}\n\ntype ReferenceElementFallbackProps<CustomElements extends RichTextElement = never, CustomLeaves extends RichTextLeaf = RichTextLeaf> = {\n\telement: RichTextReferenceElement<CustomElements, CustomLeaves>\n\tchildren: ReactElement\n\toptions: RichTextRenderingOptions<CustomElements, CustomLeaves>\n\tblock: RichTextBlock<CustomElements, CustomLeaves>\n}\n\nfunction ReferenceElementFallback<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = RichTextLeaf,\n>({ element, children, options, block }: ReferenceElementFallbackProps<CustomElements, CustomLeaves>) {\n\tconst elementMetadata = useReferenceMetadata<CustomElements, CustomLeaves>(element, options, block, true)\n\n\tif (\n\t\telementMetadata.referenceRenderer === undefined\n\t\t|| elementMetadata.referenceType === undefined\n\t\t|| elementMetadata.reference === undefined\n\t) {\n\t\treturn children // At least render the text contents\n\t}\n\n\tlet Renderer = elementMetadata.referenceRenderer\n\treturn (\n\t\t<>\n\t\t\t<Renderer\n\t\t\t\treferenceType={elementMetadata.referenceType}\n\t\t\t\treferenceRenderer={elementMetadata.referenceRenderer}\n\t\t\t\treference={elementMetadata.reference}\n\t\t\t\tformatVersion={block.content.formatVersion}\n\t\t\t\tblock={block}\n\t\t\t\toptions={options}\n\t\t\t\telement={element}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</Renderer>\n\t\t</>\n\t)\n}\n"],"names":["createElement","jsxDEV","renderChildren","RichTextRendererError","useReferenceMetadata","Fragment"],"mappings":"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"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { jsxDEV, Fragment } from "react/jsx-dev-runtime";
|
|
2
|
+
import { createElement } from "react";
|
|
3
|
+
import { renderChildren } from "../renderChildren.js";
|
|
4
|
+
import { useReferenceMetadata } from "../useReferenceMetadata.js";
|
|
5
|
+
import { RichTextRendererError } from "../../RichTextRendererError.js";
|
|
6
|
+
const getElementDataAttributes = (element, attributeNamePrefix = "contember-") => {
|
|
7
|
+
const { children, referenceId, ...extendedSpecifics } = element;
|
|
8
|
+
return Object.fromEntries(
|
|
9
|
+
Object.entries(extendedSpecifics).filter(([, value]) => {
|
|
10
|
+
const t = typeof value;
|
|
11
|
+
return t === "string" || t === "number" || t === "boolean";
|
|
12
|
+
}).map(([attribute, value]) => [`data-${attributeNamePrefix}${attribute.toLowerCase()}`, value])
|
|
13
|
+
);
|
|
14
|
+
};
|
|
15
|
+
function RenderElementFallback({ element, children, options, block }) {
|
|
16
|
+
const attributes = getElementDataAttributes(element, options.attributeNamePrefix);
|
|
17
|
+
switch (element.type) {
|
|
18
|
+
case "anchor":
|
|
19
|
+
return /* @__PURE__ */ jsxDEV("a", { ...attributes, href: element.href, children }, void 0, false, {
|
|
20
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
21
|
+
lineNumber: 51,
|
|
22
|
+
columnNumber: 5
|
|
23
|
+
}, this);
|
|
24
|
+
case "heading":
|
|
25
|
+
return createElement(`h${element.level}`, attributes, children);
|
|
26
|
+
// TODO numbered
|
|
27
|
+
case "horizontalRule":
|
|
28
|
+
return /* @__PURE__ */ jsxDEV("hr", { ...attributes }, void 0, false, {
|
|
29
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
30
|
+
lineNumber: 58,
|
|
31
|
+
columnNumber: 11
|
|
32
|
+
}, this);
|
|
33
|
+
case "listItem":
|
|
34
|
+
return /* @__PURE__ */ jsxDEV("li", { ...attributes, children }, void 0, false, {
|
|
35
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
36
|
+
lineNumber: 60,
|
|
37
|
+
columnNumber: 11
|
|
38
|
+
}, this);
|
|
39
|
+
case "orderedList":
|
|
40
|
+
return /* @__PURE__ */ jsxDEV("ol", { ...attributes, children }, void 0, false, {
|
|
41
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
42
|
+
lineNumber: 62,
|
|
43
|
+
columnNumber: 11
|
|
44
|
+
}, this);
|
|
45
|
+
case "paragraph":
|
|
46
|
+
return /* @__PURE__ */ jsxDEV("p", { ...attributes, children }, void 0, false, {
|
|
47
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
48
|
+
lineNumber: 64,
|
|
49
|
+
columnNumber: 11
|
|
50
|
+
}, this);
|
|
51
|
+
case "reference": {
|
|
52
|
+
return /* @__PURE__ */ jsxDEV(ReferenceElementFallback, { element, children, options, block }, void 0, false, {
|
|
53
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
54
|
+
lineNumber: 66,
|
|
55
|
+
columnNumber: 11
|
|
56
|
+
}, this);
|
|
57
|
+
}
|
|
58
|
+
case "scrollTarget":
|
|
59
|
+
return /* @__PURE__ */ jsxDEV("span", { ...attributes, id: element.identifier, children }, void 0, false, {
|
|
60
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
61
|
+
lineNumber: 70,
|
|
62
|
+
columnNumber: 5
|
|
63
|
+
}, this);
|
|
64
|
+
case "table": {
|
|
65
|
+
const firstRow = element.children[0];
|
|
66
|
+
if (!firstRow || firstRow.headerScope !== "table") {
|
|
67
|
+
return /* @__PURE__ */ jsxDEV("table", { ...attributes, children: /* @__PURE__ */ jsxDEV("tbody", { children }, void 0, false, {
|
|
68
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
69
|
+
lineNumber: 79,
|
|
70
|
+
columnNumber: 7
|
|
71
|
+
}, this) }, void 0, false, {
|
|
72
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
73
|
+
lineNumber: 78,
|
|
74
|
+
columnNumber: 6
|
|
75
|
+
}, this);
|
|
76
|
+
}
|
|
77
|
+
return /* @__PURE__ */ jsxDEV("table", { ...attributes, children: [
|
|
78
|
+
/* @__PURE__ */ jsxDEV("thead", { children: renderChildren([firstRow], options, block) }, void 0, false, {
|
|
79
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
80
|
+
lineNumber: 85,
|
|
81
|
+
columnNumber: 6
|
|
82
|
+
}, this),
|
|
83
|
+
/* @__PURE__ */ jsxDEV("tbody", { children: renderChildren(element.children.slice(1), options, block) }, void 0, false, {
|
|
84
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
85
|
+
lineNumber: 86,
|
|
86
|
+
columnNumber: 6
|
|
87
|
+
}, this)
|
|
88
|
+
] }, void 0, true, {
|
|
89
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
90
|
+
lineNumber: 84,
|
|
91
|
+
columnNumber: 5
|
|
92
|
+
}, this);
|
|
93
|
+
}
|
|
94
|
+
case "tableRow":
|
|
95
|
+
return /* @__PURE__ */ jsxDEV("tr", { ...attributes, children }, void 0, false, {
|
|
96
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
97
|
+
lineNumber: 91,
|
|
98
|
+
columnNumber: 11
|
|
99
|
+
}, this);
|
|
100
|
+
case "tableCell": {
|
|
101
|
+
if (element.headerScope) {
|
|
102
|
+
return /* @__PURE__ */ jsxDEV("th", { ...attributes, scope: element.headerScope, children }, void 0, false, {
|
|
103
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
104
|
+
lineNumber: 95,
|
|
105
|
+
columnNumber: 6
|
|
106
|
+
}, this);
|
|
107
|
+
}
|
|
108
|
+
return /* @__PURE__ */ jsxDEV("td", { ...attributes, children }, void 0, false, {
|
|
109
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
110
|
+
lineNumber: 100,
|
|
111
|
+
columnNumber: 11
|
|
112
|
+
}, this);
|
|
113
|
+
}
|
|
114
|
+
case "unorderedList":
|
|
115
|
+
return /* @__PURE__ */ jsxDEV("ul", { ...attributes, children }, void 0, false, {
|
|
116
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
117
|
+
lineNumber: 103,
|
|
118
|
+
columnNumber: 11
|
|
119
|
+
}, this);
|
|
120
|
+
default: {
|
|
121
|
+
{
|
|
122
|
+
throw new RichTextRendererError(
|
|
123
|
+
`RichTextRenderer: unknown element of type '${element.type}'.`
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
function ReferenceElementFallback({ element, children, options, block }) {
|
|
130
|
+
const elementMetadata = useReferenceMetadata(element, options, block, true);
|
|
131
|
+
if (elementMetadata.referenceRenderer === void 0 || elementMetadata.referenceType === void 0 || elementMetadata.reference === void 0) {
|
|
132
|
+
return children;
|
|
133
|
+
}
|
|
134
|
+
let Renderer = elementMetadata.referenceRenderer;
|
|
135
|
+
return /* @__PURE__ */ jsxDEV(Fragment, { children: /* @__PURE__ */ jsxDEV(
|
|
136
|
+
Renderer,
|
|
137
|
+
{
|
|
138
|
+
referenceType: elementMetadata.referenceType,
|
|
139
|
+
referenceRenderer: elementMetadata.referenceRenderer,
|
|
140
|
+
reference: elementMetadata.reference,
|
|
141
|
+
formatVersion: block.content.formatVersion,
|
|
142
|
+
block,
|
|
143
|
+
options,
|
|
144
|
+
element,
|
|
145
|
+
children
|
|
146
|
+
},
|
|
147
|
+
void 0,
|
|
148
|
+
false,
|
|
149
|
+
{
|
|
150
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
151
|
+
lineNumber: 140,
|
|
152
|
+
columnNumber: 4
|
|
153
|
+
},
|
|
154
|
+
this
|
|
155
|
+
) }, void 0, false, {
|
|
156
|
+
fileName: "/home/runner/work/contember/contember/packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx",
|
|
157
|
+
lineNumber: 139,
|
|
158
|
+
columnNumber: 3
|
|
159
|
+
}, this);
|
|
160
|
+
}
|
|
161
|
+
export {
|
|
162
|
+
RenderElementFallback
|
|
163
|
+
};
|
|
164
|
+
//# sourceMappingURL=RenderElementFallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderElementFallback.js","sources":["../../../../../../packages/react-richtext-renderer/src/internal/components/RenderElementFallback.tsx"],"sourcesContent":["import { createElement, ReactElement } from 'react'\nimport type { BuiltinElements, RichTextReferenceElement, RichTextTableRowElement } from '../../types/builtin/BuiltinElements'\nimport { renderChildren } from '../renderChildren'\nimport { useReferenceMetadata } from '../useReferenceMetadata'\nimport type { RichTextElement } from '../../types/structure/RichTextElement'\nimport type { RichTextLeaf } from '../../types/structure/RichTextLeaf'\nimport { RichTextRendererError } from '../../RichTextRendererError'\nimport { RichTextBlock } from '../../types/RichTextBlock'\nimport { RichTextRenderingOptions } from '../../types/RichTextRenderingOptions'\n\nexport interface RenderElementFallbackProps<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = RichTextLeaf,\n> {\n\telement: BuiltinElements<CustomElements, CustomLeaves>\n\tchildren: ReactElement\n\toptions: RichTextRenderingOptions<CustomElements, CustomLeaves>\n\tblock: RichTextBlock<CustomElements, CustomLeaves>\n}\n\nconst getElementDataAttributes = <\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = RichTextLeaf,\n>(\n\telement: RichTextElement<CustomElements, CustomLeaves>,\n\tattributeNamePrefix: string = 'contember-',\n): {\n\t[dataAttribute: string]: string | number | boolean\n} => {\n\tconst { children, referenceId, ...extendedSpecifics } = element\n\n\treturn Object.fromEntries(\n\t\tObject.entries(extendedSpecifics)\n\t\t\t.filter(([, value]) => {\n\t\t\t\tconst t = typeof value\n\t\t\t\treturn t === 'string' || t === 'number' || t === 'boolean'\n\t\t\t})\n\t\t\t.map(([attribute, value]) => [`data-${attributeNamePrefix}${attribute.toLowerCase()}`, value]),\n\t)\n}\n\nexport function RenderElementFallback<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = RichTextLeaf,\n>({ element, children, options, block }: RenderElementFallbackProps<CustomElements, CustomLeaves>) {\n\tconst attributes = getElementDataAttributes(element, options.attributeNamePrefix)\n\n\tswitch (element.type) {\n\t\tcase 'anchor':\n\t\t\treturn (\n\t\t\t\t<a {...attributes} href={element.href}>\n\t\t\t\t\t{children}\n\t\t\t\t</a>\n\t\t\t)\n\t\tcase 'heading':\n\t\t\treturn createElement(`h${element.level}`, attributes, children) // TODO numbered\n\t\tcase 'horizontalRule':\n\t\t\treturn <hr {...attributes} />\n\t\tcase 'listItem':\n\t\t\treturn <li {...attributes}>{children}</li>\n\t\tcase 'orderedList':\n\t\t\treturn <ol {...attributes}>{children}</ol>\n\t\tcase 'paragraph':\n\t\t\treturn <p {...attributes}>{children}</p>\n\t\tcase 'reference': {\n\t\t\treturn <ReferenceElementFallback element={element} children={children} options={options} block={block} />\n\t\t}\n\t\tcase 'scrollTarget':\n\t\t\treturn (\n\t\t\t\t<span {...attributes} id={element.identifier}>\n\t\t\t\t\t{children}\n\t\t\t\t</span>\n\t\t\t)\n\t\tcase 'table': {\n\t\t\tconst firstRow = element.children[0] as RichTextTableRowElement<CustomElements, CustomLeaves> | undefined\n\t\t\tif (!firstRow || firstRow.headerScope !== 'table') {\n\t\t\t\treturn (\n\t\t\t\t\t<table {...attributes}>\n\t\t\t\t\t\t<tbody>{children}</tbody>\n\t\t\t\t\t</table>\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t<table {...attributes}>\n\t\t\t\t\t<thead>{renderChildren<CustomElements, CustomLeaves>([firstRow], options, block)}</thead>\n\t\t\t\t\t<tbody>{renderChildren<CustomElements, CustomLeaves>(element.children.slice(1) as any, options, block)}</tbody>\n\t\t\t\t</table>\n\t\t\t)\n\t\t}\n\t\tcase 'tableRow':\n\t\t\treturn <tr {...attributes}>{children}</tr>\n\t\tcase 'tableCell': {\n\t\t\tif (element.headerScope) {\n\t\t\t\treturn (\n\t\t\t\t\t<th {...attributes} scope={element.headerScope}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</th>\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn <td {...attributes}>{children}</td>\n\t\t}\n\t\tcase 'unorderedList':\n\t\t\treturn <ul {...attributes}>{children}</ul>\n\t\tdefault: {\n\t\t\tif (import.meta.env.DEV) {\n\t\t\t\tthrow new RichTextRendererError(\n\t\t\t\t\t`RichTextRenderer: unknown element of type '${(element as { type: string }).type}'.`,\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\treturn children // At least render the text contents\n\t\t\t}\n\t\t}\n\t}\n}\n\ntype ReferenceElementFallbackProps<CustomElements extends RichTextElement = never, CustomLeaves extends RichTextLeaf = RichTextLeaf> = {\n\telement: RichTextReferenceElement<CustomElements, CustomLeaves>\n\tchildren: ReactElement\n\toptions: RichTextRenderingOptions<CustomElements, CustomLeaves>\n\tblock: RichTextBlock<CustomElements, CustomLeaves>\n}\n\nfunction ReferenceElementFallback<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = RichTextLeaf,\n>({ element, children, options, block }: ReferenceElementFallbackProps<CustomElements, CustomLeaves>) {\n\tconst elementMetadata = useReferenceMetadata<CustomElements, CustomLeaves>(element, options, block, true)\n\n\tif (\n\t\telementMetadata.referenceRenderer === undefined\n\t\t|| elementMetadata.referenceType === undefined\n\t\t|| elementMetadata.reference === undefined\n\t) {\n\t\treturn children // At least render the text contents\n\t}\n\n\tlet Renderer = elementMetadata.referenceRenderer\n\treturn (\n\t\t<>\n\t\t\t<Renderer\n\t\t\t\treferenceType={elementMetadata.referenceType}\n\t\t\t\treferenceRenderer={elementMetadata.referenceRenderer}\n\t\t\t\treference={elementMetadata.reference}\n\t\t\t\tformatVersion={block.content.formatVersion}\n\t\t\t\tblock={block}\n\t\t\t\toptions={options}\n\t\t\t\telement={element}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</Renderer>\n\t\t</>\n\t)\n}\n"],"names":[],"mappings":"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"}
|