@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.
Files changed (198) hide show
  1. package/dist/development/index.cjs +17 -0
  2. package/dist/development/index.cjs.map +1 -0
  3. package/dist/development/index.js +17 -0
  4. package/dist/development/index.js.map +1 -0
  5. package/dist/development/src/RichTextRendererError.cjs +6 -0
  6. package/dist/development/src/RichTextRendererError.cjs.map +1 -0
  7. package/dist/development/src/RichTextRendererError.js +6 -0
  8. package/dist/development/src/RichTextRendererError.js.map +1 -0
  9. package/dist/development/src/components/RichText.cjs +40 -0
  10. package/dist/development/src/components/RichText.cjs.map +1 -0
  11. package/dist/development/src/components/RichText.js +40 -0
  12. package/dist/development/src/components/RichText.js.map +1 -0
  13. package/dist/development/src/components/RichTextBlocksRenderer.cjs +42 -0
  14. package/dist/development/src/components/RichTextBlocksRenderer.cjs.map +1 -0
  15. package/dist/development/src/components/RichTextBlocksRenderer.js +42 -0
  16. package/dist/development/src/components/RichTextBlocksRenderer.js.map +1 -0
  17. package/dist/development/src/components/RichTextFieldRenderer.cjs +36 -0
  18. package/dist/development/src/components/RichTextFieldRenderer.cjs.map +1 -0
  19. package/dist/development/src/components/RichTextFieldRenderer.js +36 -0
  20. package/dist/development/src/components/RichTextFieldRenderer.js.map +1 -0
  21. package/dist/development/src/components/RichTextRenderer.cjs +22 -0
  22. package/dist/development/src/components/RichTextRenderer.cjs.map +1 -0
  23. package/dist/development/src/components/RichTextRenderer.js +22 -0
  24. package/dist/development/src/components/RichTextRenderer.js.map +1 -0
  25. package/dist/development/src/hooks/useRichTextBlocksSource.cjs +64 -0
  26. package/dist/development/src/hooks/useRichTextBlocksSource.cjs.map +1 -0
  27. package/dist/development/src/hooks/useRichTextBlocksSource.js +64 -0
  28. package/dist/development/src/hooks/useRichTextBlocksSource.js.map +1 -0
  29. package/dist/development/src/hooks/useRichTextFieldSource.cjs +26 -0
  30. package/dist/development/src/hooks/useRichTextFieldSource.cjs.map +1 -0
  31. package/dist/development/src/hooks/useRichTextFieldSource.js +26 -0
  32. package/dist/development/src/hooks/useRichTextFieldSource.js.map +1 -0
  33. package/dist/development/src/internal/components/ElementRenderer.cjs +40 -0
  34. package/dist/development/src/internal/components/ElementRenderer.cjs.map +1 -0
  35. package/dist/development/src/internal/components/ElementRenderer.js +40 -0
  36. package/dist/development/src/internal/components/ElementRenderer.js.map +1 -0
  37. package/dist/development/src/internal/components/LeafRenderer.cjs +27 -0
  38. package/dist/development/src/internal/components/LeafRenderer.cjs.map +1 -0
  39. package/dist/development/src/internal/components/LeafRenderer.js +27 -0
  40. package/dist/development/src/internal/components/LeafRenderer.js.map +1 -0
  41. package/dist/development/src/internal/components/RenderElementFallback.cjs +164 -0
  42. package/dist/development/src/internal/components/RenderElementFallback.cjs.map +1 -0
  43. package/dist/development/src/internal/components/RenderElementFallback.js +164 -0
  44. package/dist/development/src/internal/components/RenderElementFallback.js.map +1 -0
  45. package/dist/development/src/internal/components/RenderLeafFallback.cjs +74 -0
  46. package/dist/development/src/internal/components/RenderLeafFallback.cjs.map +1 -0
  47. package/dist/development/src/internal/components/RenderLeafFallback.js +74 -0
  48. package/dist/development/src/internal/components/RenderLeafFallback.js.map +1 -0
  49. package/dist/development/src/internal/defaultDeserialize.cjs +14 -0
  50. package/dist/development/src/internal/defaultDeserialize.cjs.map +1 -0
  51. package/dist/development/src/internal/defaultDeserialize.js +14 -0
  52. package/dist/development/src/internal/defaultDeserialize.js.map +1 -0
  53. package/dist/development/src/internal/renderChildren.cjs +30 -0
  54. package/dist/development/src/internal/renderChildren.cjs.map +1 -0
  55. package/dist/development/src/internal/renderChildren.js +30 -0
  56. package/dist/development/src/internal/renderChildren.js.map +1 -0
  57. package/dist/development/src/internal/useReferenceMetadata.cjs +42 -0
  58. package/dist/development/src/internal/useReferenceMetadata.cjs.map +1 -0
  59. package/dist/development/src/internal/useReferenceMetadata.js +42 -0
  60. package/dist/development/src/internal/useReferenceMetadata.js.map +1 -0
  61. package/dist/production/index.cjs +17 -0
  62. package/dist/production/index.cjs.map +1 -0
  63. package/dist/production/index.js +17 -0
  64. package/dist/production/index.js.map +1 -0
  65. package/dist/production/src/RichTextRendererError.cjs +6 -0
  66. package/dist/production/src/RichTextRendererError.cjs.map +1 -0
  67. package/dist/production/src/RichTextRendererError.js +6 -0
  68. package/dist/production/src/RichTextRendererError.js.map +1 -0
  69. package/dist/production/src/components/RichText.cjs +32 -0
  70. package/dist/production/src/components/RichText.cjs.map +1 -0
  71. package/dist/production/src/components/RichText.js +32 -0
  72. package/dist/production/src/components/RichText.js.map +1 -0
  73. package/dist/production/src/components/RichTextBlocksRenderer.cjs +30 -0
  74. package/dist/production/src/components/RichTextBlocksRenderer.cjs.map +1 -0
  75. package/dist/production/src/components/RichTextBlocksRenderer.js +30 -0
  76. package/dist/production/src/components/RichTextBlocksRenderer.js.map +1 -0
  77. package/dist/production/src/components/RichTextFieldRenderer.cjs +28 -0
  78. package/dist/production/src/components/RichTextFieldRenderer.cjs.map +1 -0
  79. package/dist/production/src/components/RichTextFieldRenderer.js +28 -0
  80. package/dist/production/src/components/RichTextFieldRenderer.js.map +1 -0
  81. package/dist/production/src/components/RichTextRenderer.cjs +14 -0
  82. package/dist/production/src/components/RichTextRenderer.cjs.map +1 -0
  83. package/dist/production/src/components/RichTextRenderer.js +14 -0
  84. package/dist/production/src/components/RichTextRenderer.js.map +1 -0
  85. package/dist/production/src/hooks/useRichTextBlocksSource.cjs +64 -0
  86. package/dist/production/src/hooks/useRichTextBlocksSource.cjs.map +1 -0
  87. package/dist/production/src/hooks/useRichTextBlocksSource.js +64 -0
  88. package/dist/production/src/hooks/useRichTextBlocksSource.js.map +1 -0
  89. package/dist/production/src/hooks/useRichTextFieldSource.cjs +26 -0
  90. package/dist/production/src/hooks/useRichTextFieldSource.cjs.map +1 -0
  91. package/dist/production/src/hooks/useRichTextFieldSource.js +26 -0
  92. package/dist/production/src/hooks/useRichTextFieldSource.js.map +1 -0
  93. package/dist/production/src/internal/components/ElementRenderer.cjs +32 -0
  94. package/dist/production/src/internal/components/ElementRenderer.cjs.map +1 -0
  95. package/dist/production/src/internal/components/ElementRenderer.js +32 -0
  96. package/dist/production/src/internal/components/ElementRenderer.js.map +1 -0
  97. package/dist/production/src/internal/components/LeafRenderer.cjs +23 -0
  98. package/dist/production/src/internal/components/LeafRenderer.cjs.map +1 -0
  99. package/dist/production/src/internal/components/LeafRenderer.js +23 -0
  100. package/dist/production/src/internal/components/LeafRenderer.js.map +1 -0
  101. package/dist/production/src/internal/components/RenderElementFallback.cjs +85 -0
  102. package/dist/production/src/internal/components/RenderElementFallback.cjs.map +1 -0
  103. package/dist/production/src/internal/components/RenderElementFallback.js +85 -0
  104. package/dist/production/src/internal/components/RenderElementFallback.js.map +1 -0
  105. package/dist/production/src/internal/components/RenderLeafFallback.cjs +38 -0
  106. package/dist/production/src/internal/components/RenderLeafFallback.cjs.map +1 -0
  107. package/dist/production/src/internal/components/RenderLeafFallback.js +38 -0
  108. package/dist/production/src/internal/components/RenderLeafFallback.js.map +1 -0
  109. package/dist/production/src/internal/defaultDeserialize.cjs +14 -0
  110. package/dist/production/src/internal/defaultDeserialize.cjs.map +1 -0
  111. package/dist/production/src/internal/defaultDeserialize.js +14 -0
  112. package/dist/production/src/internal/defaultDeserialize.js.map +1 -0
  113. package/dist/production/src/internal/renderChildren.cjs +18 -0
  114. package/dist/production/src/internal/renderChildren.cjs.map +1 -0
  115. package/dist/production/src/internal/renderChildren.js +18 -0
  116. package/dist/production/src/internal/renderChildren.js.map +1 -0
  117. package/dist/production/src/internal/useReferenceMetadata.cjs +37 -0
  118. package/dist/production/src/internal/useReferenceMetadata.cjs.map +1 -0
  119. package/dist/production/src/internal/useReferenceMetadata.js +37 -0
  120. package/dist/production/src/internal/useReferenceMetadata.js.map +1 -0
  121. package/dist/types/RichTextRendererError.d.ts +3 -0
  122. package/dist/types/RichTextRendererError.d.ts.map +1 -0
  123. package/dist/types/components/RichText.d.ts +13 -0
  124. package/dist/types/components/RichText.d.ts.map +1 -0
  125. package/dist/types/components/RichTextBlocksRenderer.d.ts +10 -0
  126. package/dist/types/components/RichTextBlocksRenderer.d.ts.map +1 -0
  127. package/dist/types/components/RichTextFieldRenderer.d.ts +10 -0
  128. package/dist/types/components/RichTextFieldRenderer.d.ts.map +1 -0
  129. package/dist/types/components/RichTextRenderer.d.ts +12 -0
  130. package/dist/types/components/RichTextRenderer.d.ts.map +1 -0
  131. package/dist/types/components/index.d.ts +5 -0
  132. package/dist/types/components/index.d.ts.map +1 -0
  133. package/dist/types/hooks/index.d.ts +3 -0
  134. package/dist/types/hooks/index.d.ts.map +1 -0
  135. package/dist/types/hooks/useRichTextBlocksSource.d.ts +3 -0
  136. package/dist/types/hooks/useRichTextBlocksSource.d.ts.map +1 -0
  137. package/dist/types/hooks/useRichTextFieldSource.d.ts +3 -0
  138. package/dist/types/hooks/useRichTextFieldSource.d.ts.map +1 -0
  139. package/dist/types/index.d.ts +5 -0
  140. package/dist/types/index.d.ts.map +1 -0
  141. package/dist/types/internal/components/ElementRenderer.d.ts +14 -0
  142. package/dist/types/internal/components/ElementRenderer.d.ts.map +1 -0
  143. package/dist/types/internal/components/LeafRenderer.d.ts +12 -0
  144. package/dist/types/internal/components/LeafRenderer.d.ts.map +1 -0
  145. package/dist/types/internal/components/RenderElementFallback.d.ts +14 -0
  146. package/dist/types/internal/components/RenderElementFallback.d.ts.map +1 -0
  147. package/dist/types/internal/components/RenderLeafFallback.d.ts +6 -0
  148. package/dist/types/internal/components/RenderLeafFallback.d.ts.map +1 -0
  149. package/dist/types/internal/defaultDeserialize.d.ts +5 -0
  150. package/dist/types/internal/defaultDeserialize.d.ts.map +1 -0
  151. package/dist/types/internal/renderChildren.d.ts +8 -0
  152. package/dist/types/internal/renderChildren.d.ts.map +1 -0
  153. package/dist/types/internal/useReferenceMetadata.d.ts +9 -0
  154. package/dist/types/internal/useReferenceMetadata.d.ts.map +1 -0
  155. package/dist/types/tsconfig.tsbuildinfo +1 -0
  156. package/dist/types/types/RenderChildren.d.ts +9 -0
  157. package/dist/types/types/RenderChildren.d.ts.map +1 -0
  158. package/dist/types/types/RichTextBlock.d.ts +8 -0
  159. package/dist/types/types/RichTextBlock.d.ts.map +1 -0
  160. package/dist/types/types/RichTextBlockSource.d.ts +9 -0
  161. package/dist/types/types/RichTextBlockSource.d.ts.map +1 -0
  162. package/dist/types/types/RichTextFieldSource.d.ts +6 -0
  163. package/dist/types/types/RichTextFieldSource.d.ts.map +1 -0
  164. package/dist/types/types/RichTextReference.d.ts +5 -0
  165. package/dist/types/types/RichTextReference.d.ts.map +1 -0
  166. package/dist/types/types/RichTextReferenceMetadata.d.ts +15 -0
  167. package/dist/types/types/RichTextReferenceMetadata.d.ts.map +1 -0
  168. package/dist/types/types/RichTextRenderingOptions.d.ts +14 -0
  169. package/dist/types/types/RichTextRenderingOptions.d.ts.map +1 -0
  170. package/dist/types/types/builtin/BuiltinElements.d.ts +48 -0
  171. package/dist/types/types/builtin/BuiltinElements.d.ts.map +1 -0
  172. package/dist/types/types/builtin/BuiltinLeaves.d.ts +21 -0
  173. package/dist/types/types/builtin/BuiltinLeaves.d.ts.map +1 -0
  174. package/dist/types/types/builtin/index.d.ts +3 -0
  175. package/dist/types/types/builtin/index.d.ts.map +1 -0
  176. package/dist/types/types/custom/ReferenceRenderer.d.ts +17 -0
  177. package/dist/types/types/custom/ReferenceRenderer.d.ts.map +1 -0
  178. package/dist/types/types/custom/RenderBlock.d.ts +7 -0
  179. package/dist/types/types/custom/RenderBlock.d.ts.map +1 -0
  180. package/dist/types/types/custom/RenderElement.d.ts +24 -0
  181. package/dist/types/types/custom/RenderElement.d.ts.map +1 -0
  182. package/dist/types/types/custom/RenderLeaf.d.ts +11 -0
  183. package/dist/types/types/custom/RenderLeaf.d.ts.map +1 -0
  184. package/dist/types/types/custom/index.d.ts +5 -0
  185. package/dist/types/types/custom/index.d.ts.map +1 -0
  186. package/dist/types/types/index.d.ts +11 -0
  187. package/dist/types/types/index.d.ts.map +1 -0
  188. package/dist/types/types/structure/RichTextChild.d.ts +5 -0
  189. package/dist/types/types/structure/RichTextChild.d.ts.map +1 -0
  190. package/dist/types/types/structure/RichTextElement.d.ts +8 -0
  191. package/dist/types/types/structure/RichTextElement.d.ts.map +1 -0
  192. package/dist/types/types/structure/RichTextLeaf.d.ts +4 -0
  193. package/dist/types/types/structure/RichTextLeaf.d.ts.map +1 -0
  194. package/dist/types/types/structure/RootEditorNode.d.ts +8 -0
  195. package/dist/types/types/structure/RootEditorNode.d.ts.map +1 -0
  196. package/dist/types/types/structure/index.d.ts +5 -0
  197. package/dist/types/types/structure/index.d.ts.map +1 -0
  198. 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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"}